92 skills found · Page 1 of 4
fosslife / Devtools XCollection of offline first developer utilities available as non-electron desktop application. all in one place, cross-platform, 10MB app!
DDULDDUCK / Every Pdf✍️ A powerful, all-in-one desktop PDF toolkit to edit, convert, merge, and secure your documents. Built with Electron, Next.js, and Python.
jlongster / Electron With Server ExampleAn example Electron app with a backend server all wired up via IPC
atlassian / NucleusA configurable and versatile update server for all your Electron apps
SimulatedGREG / Vue ElectronThe vue plugin that attaches electron APIs to the Vue object, making them accessible to all components.
rprokap / Pset 9CREDITS SEQUENCE NEWSPAPER HEADLINE MONTAGE: HEADLINES flash before us, displaying their accompanying photographs. "UBERMAN - METRO CITY'S HERO AFTER DEFEATING MASTER MIND! PHOTO: A chiseled, statuesque man wearing the COOLEST SUPER HERO SUIT IMAGINABLE, COMPLETE WITH FLOWING CAPE, shines a confident smile at the lens. This is UBERMAN, champion of METRO CITY. "UBERMAN DEFEATS MASTER MIND'S GIANT ROBOT!" PHOTO: Wide-shot of Uberman in mid-flight lifting the GIANT ROBOT in the sky above the city buildings. "MASTER MIND ALL WET AFTER UBERMAN FOILS AQUARIUM HEIST!" PHOTO: Uberman stands knee-deep in water. He has his enemy by the collar. The villain blocks his face from the shot with a METALLIC GAUNTLET. The images start to flash by even quicker, each showing the MYSTERIOUS VILLAIN in various stages of humiliation. In each photograph he successfully blocks his face with his armored glove. We ZOOM IN to the last headline. "MASTER MIND BEHIND BARS ONCE AGAIN - THANKS TO UBERMAN!" PHOTO: Uberman stands in a gallant pose with his fists on his hips, obviously trying to accentuate the "U" insignia on his chest. END OF CREDITS SEQUENCE EXT. BUILDING - DAY We DISSOLVE from the photograph to Uberman standing in the exact same position. WE PULL BACK showing him atop a BUILDING overlooking the city below. A perfect view for our guardian hero. He watches the thriving metropolis, bristling with life as people happily go about their day. Yet, we can't help but detect a hint of sadness in Uberman's expression. 2. UBERMAN You look so peaceful from up here. His serenity is suddenly interrupted by a loud BEEPING SOUND coming from his wrist. He looks down at a BRACELET (a manly one) on his right arm. It's a silver band with a FLASHING red letter "U". UBERMAN (CONT'D) Looks like Roxanne's in trouble again. Uberman leaps off the building and into the air. His cape gracefully flows in the breeze behind him as he shoots off into the distance like a speeding bullet. EXT. OBSERVATORY HIDEOUT - ESTABLISHING SHOT Grime and moss decorate the outside of this long abandoned building overlooking the COAST. Once a place of knowledge and wonder - now home to a great evil. INT. OBSERVATORY HIDEOUT - DAY The inside is in complete contrast to the exterior. The huge hall with a GIANT TELESCOPE teems with advanced ELECTRONIC EQUIPMENT. Computers, monitors and machines which do not have an obvious function FLASH and HUM. A STEEL DOOR slides open, revealing the subject of our story MASTER MIND - a villainous sight to behold. His FACE IS INEXPLICABLY LIGHT BLUE, topped by an OVERSIZED, MUSHROOM- SHAPED HEAD with a CIRCULAR PATCH OF WHITE HAIR ON TOP. He's dressed in the kind of costume only a super villain could pull off: a PURPLE JUMPSUIT AND BLACK BOOT ENSEMBLE WITH A GIANT GREEN "M" ON THE CHEST. His right hand, hanging at his side, is a METAL GAUNTLET WITH THREE SHORT SPIKES PROTRUDING BETWEEN HIS KNUCKLES. Master Mind begins to survey the room with his TWO PERMANENTLY ARCHED EYEBROWS. A man dressed as ALBERT EINSTEIN is busy ranting to two other men. One, a hulking brute, is dressed as LEONARDO DA VINCI. The other, a small intellectual-type carrying a clip-board, is dressed as the philosopher PLATO. EINSTEIN I hate the outfits. I mean, I get it: we're all supposed to be "masterminds" - very clever. (MORE) 3. EINSTEIN(cont'd) I just feel stupid. I mean, what the hell did Einstein really do anyway? PLATO Theory of relativity. Einstein starts feverishly scratching his side. EINSTEIN Well, you'd think he'd invent a wool sweater that didn't itch so much. Da Vinci and Plato's eyes suddenly grow with concern as they see Master Mind walk up behind Einstein. Einstein notices his colleague's staring over his right shoulder and turns around. He turns around and Master Mind SEIZES HIM BY HIS THROAT with his metal gauntlet. MASTER MIND The real Einstein once said, "God does not play dice with the world." He was right, because the world is MY dice. Is that understood? DA VINCI & PLATO Sir! Yes, sir! EINSTEIN (gasping for air) Yes, sir. Master Mind undoes his grip on Einstein's throat. MASTER MIND Alright, then - clean slate. Do we have the girl? DA VINCI Yes, sir. She fell into our trap just like you knew she would. MASTER MIND Reporters are a curious lot, and easily manipulated. He quickly checks his physique in a GIANT MIRROR, adjusts his posture and sucks in his gut. 4. MASTER MIND Alright, let's not keep the lady waiting. MOMENTS LATER Da Vinci escorts a BLINDFOLDED and bound woman, ROXANNE RITCHI, to the back of the room where Plato and Einstein are standing guard over a large BLACK SWIVEL-CHAIR facing away from us. She pulls free of Da Vinci's grasp and waits for him to undo the blindfold. Her face uncovered, we finally see Roxanne's striking features - all of which seem overshadowed by piercing eyes that seem more put off by the situation than afraid of it. MASTER MIND (O.S.) Miss Ritchi, we meet again. The chair turns menacingly slow, finally revealing Master Mind. ROXANNE You didn't need to turn around like that. I can recognize the stench of failure. Master Mind unleashes a wicked laugh. MASTER MIND I trust you gentlemen know the very sassy Roxanne Ritchi, highly regarded investigative journalist who some say has a more than friendly relationship with our super powered foe Uberman. And Miss Ritchi, I trust you've already met my new crew: The Mad Geniuses! Roxanne gives Einstein a once over. ROXANNE Looks like a real group of winners. At the risk of sounding cliche', you'll never get away with this. MASTER MIND In a way, I already have. Roxanne unleashes an exhausted SIGH. 5. ROXANNE We go through this every time. You kidnap me to get to Uberman, he immediately finds your hideout, escapes whatever lame trap you've come up with, and takes you and your cronies to jail. I propose we just save everybody some heartache this time by YOU letting me go, and ME forgetting this whole thing ever happened? MASTER MIND What about my revenge? ROXANNE We can say it was wasting everyone's time. MASTER MIND You have a wicked tongue. I hope you rid yourself of that when you're my queen. Roxanne unleashes a snort-filled laugh. ROXANNE I'm sorry. What makes you think I would want to be your queen? MASTER MIND Power corrupts absolutely, Miss Ritchi. And when I have ultimate power over this city, I have absolutely every intention of corrupting you with it. PLATO Sir! Master Mind turns to Plato who's now standing at a computer terminal. MASTER MIND (annoyed) What is it!? EXT. OBSERVATORY HIDEOUT - DAY Uberman flies toward the Observatory like a rocket. 6. INT. OBSERVATORY HIDEOUT - DAY Uberman crashes through the wall to the room we were just in. He looks around, but there's suddenly NOT A SOUL IN SIGHT. CUT TO: EXT. MASTER MIND'S HYDROFOIL - DAY The boat is shooting through the ocean, away from the observatory. INT. HYDROFOIL CONTROL ROOM - DAY Machines, cables and terminals criss-cross the craft's main bridge. Through the enormous surrounding windows we can see the observatory shrinking in the distance. Master Mind watches Uberman on a small TV monitor as the hero intently searches his hideout. UBERMAN (on monitor) Master Mind! INT. OBSERVATORY HIDEOUT - DAY Uberman throws up his arms in frustration when suddenly - MASTER MIND (O.S.) Over here, old friend. He turns to see a FAMILIAR BLUE FACE OF EVIL ON A GIANT SCREEN. UBERMAN What's the matter, miss your old jail cell? Uberman starts walking toward the monitor. MASTER MIND (ON MONITOR) Actually, I wanted to share the experience with my oldest friend. A MECHANIZED CAGE shoots out of the floor, suddenly trapping Metro City's protector. Totally unfazed, our hero stares on. 7. UBERMAN You can't possibly believe this will work. Master Mind pulls out a SMALL BLACK BOX with a SINGLE RED BUTTON on it. MASTER MIND (ON MONITOR) Oh, can't I? I have attained control of the Earth's most abundant energy source. I doubt even you are strong enough to withstand the FULL CONCENTRATED POWER OF THE SUN!!! He presses the button. EXT. OUTER SPACE A sinister-looking SATELLITE orbits Earth's atmosphere. Its bay doors suddenly open, deploying two huge SOLAR PANELS. The panels shift, angling themselves in the direction of the sun. They immediately start GLOWING as they absorb the burning star's power. The front of the satellite begins to make a loud HUMMING SOUND as it prepares to unleash its unholy power. INT. HYDROFOIL CONTROL ROOM - DAY From the giant window we can see the boat is a good mile from the observatory. PLATO We're now at minimum safe distance, master. Master Mind turns from the CAMERA he was broadcasting on and puts down the control box. MASTER MIND Excellent. Stop here, I like this view. PLATO Twenty seconds until impact. Master Mind turns to Roxanne who is being held by Da Vinci and Einstein. She almost appears a little bored. Disappointed by her lack of horror, he walks over to the monitor now showing Uberman trapped in the cage. 8. MASTER MIND Any last words? Uberman looks up at the screen with a cocky smile. UBERMAN (ON MONITOR) Yes: there's no caging the power of justice. PLATO Ten seconds to impact. On the screen we see Uberman take two of the cage's bars in his hands. He yanks...NOTHING. PLATO (CONT'D) Nine... Master Mind stares at the monitor, slightly confused. PLATO (CONT'D) Eight... Uberman yanks on the bars again, this time using his foot as leverage. MASTER MIND (genuinely concerned) What's going on? UBERMAN (straining) Hold...on...a second. Master Mind looks back at Plato and Einstein. They're equally befuddled at the hero's sudden weakness. PLATO Seven... Uberman loses his grip and FALLS BACKWARD ON HIS ASS. UBERMAN SON OF A BITCH!! Master Mind and the minions all cringe in unison. Da Vinci turns to Roxanne not believing his ears. DA VINCI What did he just say? 9. PLATO Six......Five... Master Mind begins to laugh. MASTER MIND What kind of trick is this? Uberman looks up at the camera with a very grave expression. UBERMAN Like you don't know. These bars are made of copper, aren't they? PLATO Four... MASTER MIND Yeah, so? Uberman tries to shield his grief with his hand. UBERMAN You figured out my weakness, damn you. I CAN'T BEND COPPER! PLATO Three... MASTER MIND Your weakness is copper? PLATO Two...one. Everyone turns to the window. EXT. OUTER SPACE The satellite fires a giant BEAM OF LIGHT toward the earth. EXT. OBSERVATORY HIDEOUT - DAY The beam hits the observatory. The building instantly EXPLODES in a white nova blast of fire. INT. HYDROFOIL CONTROL ROOM - DAY The blast is so bright everyone turns away from the window. Then, as suddenly as it began, the awesome light dies out. One by one, the passengers unshield their eyes and look out toward the observatory. 10. All we can see through the haze of destruction is fire and smoke. PLATO I don't think even he could have survived that. Einstein suddenly turns giddy with excitement. EINSTEIN Whoa! Is it me or did you just finally destroy Uberman? MASTER MIND (carefully skeptical) Well...let's not get ahead of ourselves. Da Vinci suddenly sees something outside. DA VINCI Look, there's something in the sky, coming this way. ROXANNE Uberman! Master Mind turns toward the window. An object is in the air, flying directly toward them. As it closes in we can just make out the FAMILIAR OUTLINE OF A CAPPED FIGURE. MASTER MIND I KNEW IT! PREPARE YOURSELVES! HE'S GONNA RAM US!!! Everyone scatters and braces themselves for the impact. Master Mind, seeing all the good places taken, doesn't know what to do with himself. He just covers his giant head with his hands. The figure CRASHES THROUGH THE WINDOW and lands at his feet. He looks down to see a CHARRED BLACK HUMAN SKELETON. Around its neck is the unmistakable black cape of Uberman. MASTER MIND (CONT'D) (horrified) HOLY SHIT! 11. Roxanne breaks out of Da Vinci's hold and runs over to the body. ROXANNE Uberman? She stares down at the still smoking corpse, the tattered black cape with the yellow "U" on it. Roxanne turns to Master Mind, who's still visibly dumbfounded at the grotesque sight before him. ROXANNE (CONT'D) You killed him! Roxanne's eyes roll back. Da Vinci catches her from behind as she FAINTS. Einstein turns to Master Mind, looking at him as if he's just walked on water. EINSTEIN You did it! Now that he's committed the impossible - our villain is at a complete loss. MASTER MIND ...so I did. EINSTEIN I mean, I know you always wanted to. I mean, all the schemes all the plots - I never thought you'd actually be capable of it. Giddy as a school girl, Einstein turns to his fellow henchmen. EINSTEIN This is history. Every villain and lackey in the history of villains and lackeys dream of this moment, but when does it actually EVER happen? A sudden realization comes over his face. EINSTEIN Good lord...You do all realize what we get to do now, don't you? 12. His question is met with acquisitive looks from Master Mind and the others. EINSTEIN We get to go on a crime wave. CRIME WAVE MONTAGE - SET TO "Fun Fun Fun" by The Beach Boys. SPINNING HEADLINE: "UBERMAN'S DEATH IGNITES CITY WIDE CRIME WAVE!" ARMORED TRUCK It's driving along when the men inside suddenly notice something - THEY'RE FLYING HIGH ABOVE THE CITY STREETS. We PULL BACK to see the truck being carried by a giant claw at the bottom of a BRAIN COPTER. Inside the cockpit Master Mind and his henchmen laugh maniacally. SPINNING HEADLINE: "CHAMPION-LESS CITY AT THE MERCY OF HOOLIGANS." METRO CITY BANK Da Vinci and Einstein run out the front of the bank holding BAGS OF MONEY. Two beat officers see them and take chase after them around the corner and into an alley. After a moment the police reemerge from the alley screaming and running for their lives as a GIANT ROBOT CHASES after them. The robot stops, then suddenly it's head opens up like convertible car top with Master Mind and Plato at the driver's wheel. They smile and shake hands at a bad deed well done. SPINNING HEADLINE: "MASTER MIND BLACKMAILS METRO!!!" A VICIOUS TORNADO It's heading for downtown Metro as Master Mind and the lackeys coolly look on. Three large DUMP TRUCKS pull up, filled to the brim with bricks of CASH. 13. The DRIVERS jump out as the lackeys take the driver seats in the three trucks. Master Mind is about to climb into the passenger seat of one when a drivers taps him on the shoulder and motions toward the tornado. MASTER MIND (absentmindedly) Oh, right. Master Mind pulls a television REMOTE from his pocket and aims it at approaching windstorm of death. He presses the button marked "Tornado Off." The tornado shrinks and disappears just before it hits the city. As they drive through the city streets, Master stares out the window with a hint of something in his eyes. Is it melancholy? END OF MONTAGE EXT. KINGPIN BOWLING - DAY It's Metro City's premier bowling alley. On top of the neon lit building is a GIANT 30 FOOT TALL CEMENT BOWLING BALL. INT. KINGPIN BOWLING - DAY HAL STEWART (early 30's) takes careful aim with his BOWLING BALL. HAL It's a sport of honor, focus and grace. Honor the ball, focus on the pins, release the ball not hard and fast, but as if you were releasing a baby dove. He takes a step, pulls back his arm, and releases the ball, following it with his eyes. It's a horrible shot - INSTANT GUTTER BALL. An aged barmaid type with a cigarette hanging from her mouth looks over at him. HAL Okay, do something like that - but center it more. 14. She picks up her custom made FOGHAT BALL and takes aim. ATTRACTIVE BLOND Tell me how my form looks, honey. Hal focuses on the misshapen bumps of her enormous Johnson administration era derriere. HAL Oh, it's lookin' good. It's lookin' REAL good. It doesn't get anymore clear. This man is a pig. VINNIE (O.S.) Hal, I want to see you in my office! Hal turns to see VINNIE, owner of the bowling alley, calling him. VINNIE Now! INT. KINGPIN BOWLING - VINNIE'S OFFICE - MOMENTS LATER Hal sits down, facing Vinnie who's sitting at his desk. VINNIE You're fired. Leave your shirt and locker key. This bit of news hits Hal like a freight train. HAL Fired? Are you going to tell me why? VINNIE Showing up to work late. Showing up to work late drunk. Sexually harassing customers. Stealing from the register. HAL Vinnie, I don't know where you're getting these accusations - Vinnie takes out a video tape from his desk drawer and puts in a VCR. 15. HAL Oh, which one do you supposedly have here? VINNIE This is all of them at once. TELEVISION A WOMAN walks up to a BOWLING EMPLOYEE and hands him a pair of shoes. As the employee turns to the wall of shoes, a very drunk and disheveled Hal comes running in and pushes him aside. HAL I've got this one, Benny. So, Cinderella. Can I help you find your glass slipper? WOMAN Yeah, I'm looking for a seven. He folds his arms on the counter and leans into her with a cat-like grin on his face. HAL (with a leer) Seven - Well, maybe I could interest you in something in an EIGHT. Namely, me. Disgusted, she walks off screen. HAL Lesbo. Suddenly realizing the register's open, he quickly grabs a stack of cash and shoves it in his pocket. BACK TO OFFICE Vinnie turns off the television and waits for Hal to respond. HAL From the angle of the camera, I can see where you might have gotten the wrong idea. Listen, Vinnie, I don't think you've thought this through. If you fire me, who's gonna be captain of the alley's bowling team? 16. VINNIE Um, I don't know. Maybe somebody who can actually bowl. You guys have never won a game. I hired you because you said you were on the pro circuit. HAL No, I said I WILL BE on the pro circuit. VINNIE Please, a loser like you will never amount to anything. This harsh remark seems to leave Hal genuinely stunned. HAL Wow...If that's how you feel...I guess we should then talk about what kind of severance I'm gonna get. EXT. KINGPIN BOWLING - DAY TWO BRUISERS open the door and throw Hal out onto the street. He quickly picks himself up and turns back toward the building. HAL Hey...what about my ball? A bowling ball sails past him, just missing his head. HAL Thank-you! EXT. CHANNEL 7 NEWS BUILDING - DAY The massive building with a giant 7 on the roof stands in the heart of Metro City. INT. CHANNEL 7 NEWS BUILDING - OFFICE - DAY The cubicles and offices are alive with the hustle and bustle of a busy news day. Phones are RINGING, REPORTERS are TALKING, and Editors are SHOUTING. The elevator doors open and out steps Roxanne Ritchi. 17. Everything stops as the entire office suddenly falls SILENT. Somewhat taken aback by the reaction, Roxanne scans the room to see every eye on her. ROXANNE It's...um...It's good to be back. Thanks for everyone's cards and concerns. I really appreciated it - now I'm ready to climb back on the horse. No one is budging - their looks of pity are really starting to make her uncomfortable. The back office door suddenly opens and out comes FRANK BONIN, the gruff, middle-aged Producer of Channel 7 News. Noticing the silence, he looks up and sees the sad expressions on everybody's face. FRANK Someone die or something? He suddenly notices Roxanne - both feet are placed firmly in his mouth. FRANK (cursing himself) Oh, Jesus. ROXANNE It's okay. Frank quickly walks up to Roxanne and takes her gently by the arm. FRANK Come on into my office, sweetie. INT. CHANNEL 7 NEWS BUILDING - FRANK'S OFFICE - CONTINUOUS He sits her down on his leather couch, then quickly turns toward his door. FRANK Can we get this woman some water for God's sake? (to Rebecca) I gave you two months off. What're you doing back? People are gonna think I'm a slave driver. 18. ROXANNE Aren't you? FRANK Yeah, but I don't want people to think it. ROXANNE Frank, listen. I want to go back to work. I NEED to go back to work. FRANK ...You're hysterical, aren't you? Frank sits down on the couch and blankets Roxanne with A WARM EMBRACE. ROXANNE What're you doing? FRANK Keeping you warm before you go into shock. (toward the open door) DO I HAVE SLICE OPEN A CAMEL HUMP TO GET A GLASS OF WATER AROUND HERE? A SECRETARY quickly enters with a bottled water. She sets it on the table in front of them and leaves. Roxanne pulls herself out of Frank's grasp and stands up to face him. ROXANNE It was a traumatic experience. Yes, everyone knows Uberman and me were...close. But what I really need - what would really make me better is getting back to work. There's a sudden awkward silence from Frank. FRANK Well, that's going to be... ROXANNE I thought you'd be happy to have me back. 19. FRANK Oh, we are. Honey, nothing makes us happier than to have our girl back, but... ROXANNE Yes? FRANK Things have sorta...changed. ROXANNE In three weeks? FRANK Listen, I'm not one who likes to open up wounds - especially ones that are just starting to scab, but you were sorta our go to girl for the exclusive on Uberman. And now that he's gone...I moved Brad into your anchor spot. ROXANNE (disgusted) Brad? Brad Helms? The man is an idiot. FRANK It's the suits. They think it's time to switch things up. ROXANNE Oh, because they can't use me to get the big story. FRANK C'mon, Roxie. Using is in the nature of what we do. They used you, you used Uberman. Everybody's happy. ROXANNE (defensive) I didn't use him. FRANK Oh, I didn't mean that. I know you two were in love or something. My bad. ROXANNE We were. 20. FRANK And that's great. ROXANNE Very in love. There's a hind of self-doubt in Roxanne's expression, as if she's failed to convince even herself of this. ROXANNE Okay. So, where are they going to move me if Brad has my spot? FRANK ...Human interest. ROXANNE Bake sales and pet stories. FRANK I told them I wouldn't be surprised if you just upped and quit. You busted your ass for that desk. Roxanne can hardly get it out - she's busy swallowing her pride ROXANNE I'll take it. Frank looks up at her, not believing what he's hearing. FRANK What? EXT. ABANDONED METRO CITY LIBRARY - NIGHT Amongst the jungle of high rises, one small building stands out from the rest - A tiny, forgotten piece of 19th century Gothic architecture. LIGHTENING FLASHES, revealing TWO CONCRETE GARGOYLES holding a cracked plaque, reading: METRO CITY LIBRARY. INT. ABANDONED METRO CITY LIBRARY - NIGHT A mixture of old and new. Dusty Victorian furniture and dilapidated bookshelves sit side by side with pristinely futuristic machinery. The building has been converted into Master Mind's new SECRET LAIR. 21. In the center of the main room is a three storey tall GLOWING BLUE ORB. At the base of it is a sign that reads "Reactor - Don't Touch." We PAN OVER to the READING ROOM where Master Mind is sitting on a couch watching TELEVISION. REPORTER ON TELEVISION (O.S.) It's been nearly six weeks, and still no word on the whereabouts of billionaire playboy, and philanthropist, Wayne Scott. Tune in at 11:00 as we look into what has become Metro City's biggest mystery. TELEVISION NARRATOR (O.S.) We now return to "The Hero of our Hearts: The Uberman story." Einstein and Plato come into the room holding a BAG OF LOOT. EINSTEIN Just robbed the diamond exchange. MASTER MIND (feigning pleasure) Great, great. Put it on the pile. Einstein tosses it on a LARGE PILE of purloined valuables in the corner of the room. EINSTEIN Anything else today? MASTER MIND No. Master Mind turns his attention back to the screen. Plato sees that Master Mind is in a funk and tries to snap him out of it. PLATO (cheerfully) Sir, the new reactor is installed. Plato nods to the giant orb. PLATO Do you want to throw the switch? I know how you love to start reactors. 22. MASTER MIND Maybe later. Einstein gives Master Mind a funny look then exchanges glances with Plato before leaving the two of them alone. Without turning away from the TV, Master Mind addresses Plato. MASTER MIND (CONT'D) What is it, Plato? PLATO (nervously) Sir, I can't help but notice that you've been...a little down lately. MASTER MIND When I want your opinion I'll beat it out of you. PLATO Yes, sir, I know, but please forgive my impertinence. It's just that you seem to have lost your lust for our profession. You've stopped going on jobs and spend most of your time watching Uberman specials. Master Mind relaxes slightly and turns to face the window in a classically contemplative pose. After an overdramatic beat... MASTER MIND I have defeated my greatest enemy. I have free reign over Metro City. I have more wealth than a thousand Sultans. I've achieved all I have worked for...so why am I so unhappy? He walks over to a PAINTED PORTRAIT that looks almost exactly like him, except slightly older, maybe meaner - MASTER MIND'S FATHER. MASTER MIND I mean, my father, god rest his evil and tormented soul, raised me straight from the test tube to be a symbol of evil. (MORE) 23. MASTER MIND(cont'd) And, I have accomplished something he had only dreamed about - the destruction of Metro City's champion. I tell you, I've always lived with this unquenchable thirst. I thought it was to make him proud or to get absolute power. But now that I've pretty much accomplished both, I am at a loss. PLATO ...I sort of have a theory about all that. MASTER MIND (snippy) Oh, really? PLATO Well, for one thing, maybe Uberman was more important to you than you thought. MASTER MIND He was a worthy rival. Sometimes I wonder, did he consider me his evil equal or was I just an annoying, little gnat to him? ...What's the second part? PLATO I think you sort of have a thing for Roxanne Ritchi. Master Mind quickly takes his lackey by the throat. MASTER MIND YOU WORM! HOW DARE YOU! WHERE WOULD YOU GET SUCH A NOTION? PLATO Sir, your plans always involve Ms. Ritchi either being kidnapped or placed in danger. If that's not love, I don't know what is. It's the grown up equivalent of dipping her pigtails in the ink well. Don't you see? She's the one treasure that's always escaped you. From Master Mind's expression, we see Plato's words beginning to ring true. 24. INT. RESTURAUNT - DAY Roxanne is having lunch with several girlfriends sitting around her, gabbing. FRIEND #1 I can't believe you came back so soon. FRIEND #2 Are you sure it's not TOO SOON, honey? ROXANNE I just wanted to get back to work. FRIEND #3 What we need to do is get you back on the saddle...the love saddle. Friend 1 and 2 give 3 disapproving looks. FRIEND #3 It's been three weeks. FRIEND #2 She just lost the love of her life, Grace. A WAITER comes by with a tray of CAESAR SALADS and begins setting them out for the ladies. ROXANNE I keep trying to tell people it wasn't really like that. Uberman and I - We were kinda having problems. We broke up. The waiter ALMOST DROPS HIS TRAY AT THIS. The women are too shocked by Roxanne's revelation to notice. FRIEND #1 You broke up with Uberman! FRIEND #3 You must have REALLY, REALLY high standards. I mean, you were dating a god. I mean, what's it take? ROXANNE Maybe someone who's a little more aware of his faults. Someone a little more sensitive. 25. FRIEND #3 Right. Someone who listens, sexy but attainable with cute little cheeks like a hamster and heartbreak in his eyes. She turns to Friend one and two to explain. FRIEND #3 She wants John Cusack. FRIEND #2 The actor? FRIEND #3 No, the famous pediatrist - Yes, the actor. Ever since we were teenagers, Roxanne's totally had the hots for him. ROXANNE Well, until he miraculously comes walking into my life, I'm just going to take a little reflection time for myself. The waiter gets a confused look on his face then slips away as Roxanne and her friends continue to chat away. EXT. RESTURAUNT - DAY The waiter tosses his apron in a trash can, then rolls up his sleeve and presses A STRANGE LOOKING DEVICE STRAPPED TO HIS WRIST. His image gets staticy, like a TV station going out, then disappears - revealing the man's true form underneath: MASTER MIND! MASTER MIND Who the hell is John Cusack? EXT. CITY STREET - DAY A YOUNG MOTHER pushes her baby stroller past a building construction site. ACROSS THE STREET A local POLITICIAN addresses a group of REPORTERS on the sidewalk, including Roxanne. 26. POLITICIAN The Fifth Avenue Renovation Project, which I championed, will breath new life into the downtown area. New life means new jobs and new revenue. ROXANNE Councilman, is it true that your brother-in-law's construction company won the contract for this project? POLITICIAN Well...er...yes, but...look I'm not here to answer a lot of crazy questions... YOUNG MOTHER The young mother stops halfway down the block, reaches into the stroller and tries to comfort her now crying baby. Above her, a CRANE is maneuvering a pile of STEEL GIRDERS to an upper floor. Hal comes around the corner and heads in her direction. CRANE The crane GRINDS TO A HALT. The OPERATOR has a confused look on his face as he moves levers back and forth in an effort to fix the problem. Hal stops a few feet from the woman and stoops down to tie his shoe. CRANE The operator's hand slips off the lever, hitting a RED BUTTON. To his horror the crane DROPS ITS LOAD OF STEEL. HAL AND THE WOMAN The woman looks up to see the girders seconds from crushing her and her baby. She screams. Hal looks up and sees it as well. He starts to run out of the way and crashes into the woman and stroller. ACROSS THE STREET 27. The reporters turns their cameras just in time to catch on film what appears to be Hal pushing the woman to safety just as the GIRDERS CRASH TO THE GROUND. HAL AND MOTHER Tears of joy in her eyes, the woman picks up her baby and kisses it. Hal struggles to catch his breath as the mother turns to him. YOUNG MOTHER Thank you! Thank you for saving me and my baby! She hugs him with her free arm, weeping with joy. HAL (not knowing what she's talking about) Huh? He's a little uncomfortable with the woman's public display of affection and the small child in-between their embrace. HAL (CONT'D) There, there. Hal slowly eases out of the woman's grip. HAL (CONT'D) Okay, we better...well, I hear these little guys smother easy. The reporters rush over and surround Hal and the mother. ROXANNE What's it feel like to be a hero? Hal looks up at Roxanne. Instantly, he's captivated by her beauty. HAL Well...I'm just a man doing what men do. You're Roxanne Ritchi, aren't you? They're suddenly interrupted when another reporter pushes his way in between them. REPORTER Were you scared? 28. HAL Scared? Who had time? The reporters eat this up. INT. ABANDONED METRO CITY LIBRARY - NIGHT TELEVISION John Cusack stands in the rain looking up at a window of a two story house. He holds up a BOOMBOX and "In Your Eyes" by Peter Gabriel begins to play. From the couch, Master Mind and his minions watch. MASTER MIND John Cusack, huh? So all I have to do is have a cute puppy dog stare, be willing to make a fool of myself and - Oh, REMOVE BOTH MY BALLS. He turns to see Da Vinci watching the movie and wiping a tear from his cheek. MASTER MIND Please, get a hold of yourself. INT. BOOKSTORE - NIGHT Roxanne is carrying a large paper coffee cup in her hands as she peruses the isles. She sets it down on a shelf to pull a book out and ends up KNOCKING THE DRINK OVER. ROXANNE Shit. She goes to pick it up when someone bends down and picks it up for her. Looking up to thank him, Roxanne is suddenly stunned speechless - It's popular and critically acclaimed actor JOHN CUSACK, or rather Master Mind disguised as him. "JOHN CUSACK" Oh the humanity - it was a Venti. ROXANNE (stunned) You're...you're. "JOHN CUSACK" Yes, it's me. John Cusack...the actor. 29. He notices the book she's reading. "JOHN CUSACK" Hey, is that Shelly? Wait, I think remember something from that one - Let's see: "My head is screaming `I want you and need you' - my heart it keeps reaching to see you and feel you - yet in the end, I'm alone once again." Wow, I scare even myself. I'm sorry. I'm just really into poetry. Probably because I'm so sensitive and always going to great lengths to express myself. But enough about me. Can I fill you up? ROXANNE (captivated) ...Yes. (catching herself) I mean, excuse me? "JOHN CUSACK" Can I fill you up? Your coffee. ROXANNE Right. INT. BOOKSTORE CAFE' - LATER Roxanne talks as John Cusack listens to her every word intently. ROXANNE I did have a boyfriend - until fairly recently. She suddenly begins to feel the stares around her as passers- by being to notice who she's with. ROXANNE I'm sorry - this is so surreal! "JOHN CUSACK" Yeah, they charge way too much at these places - Now back to your boyfriend. I'm interested and compassionate. I want to know about you. 30. ROXANNE Things were complicated. He was a man married to his work. There was...there was a lot of competition in his line of business. I'm sure you know what that's like. "JOHN CUSACK" Sure. In my business, one thing I have is RIVALS. For example, mine is...uh...Lou Ferr...igno. ROXANNE ...The body-builder who used to play The Hulk on TV? "JOHN CUSACK" Did he? Well, we're always up for the same roles. Did your boyfriend have someone like that? A particular rival that was always getting his goat - so to speak? ROXANNE Well...one rival in particular seemed to get more of his attention than I ever did. But enough about my problems. "JOHN CUSACK" NO, TELL ME MORE!!! Suddenly realizing his outburst, he begins COUGHING to mask it. "JOHN CUSACK" (CONT'D) I'm sorry. I got a whooping cough. Had it ever since Serendipity. I WONDER WHERE OUR REFILLS ARE!!! (fakes cough) See, there it goes again. Please, go on. ROXANNE Right, well, he seemed to need him more than he needed me. "JOHN CUSACK" How do you mean? 31. ROXANNE It was conflict he thrived on. He always said he wouldn't know what to do with himself if Master - I mean, this guy were gone. It was like he needed it, like oxygen. The answer to his mental funk hits him like a bolt of lightening. He turns away from her as if for private time. "JOHN CUSACK" (almost to himself) I think I finally understand...The only logical answer is to recreate that rivalry - or if that's impossible, create one of equal structure. That's it! ROXANNE What? John Cusack snaps out of his dream-like haze realizing she's heard every word. "JOHN CUSACK" Oh, sorry, sorry. Just rehearsing for a part...where I play a man who talks to himself at inappropriate times. In a sudden rush, he rises out of his chair. "JOHN CUSACK" I have to go right now, but I'd really like to see you again - if that's alright. Roxanne looks up at him - She can't help but laugh at the craziness of the situation. ROXANNE I'd love that. INT. ABANDONED METRO CITY LIBRARY - DAY Master storms in the office to find Plato and Einstein playing darts with the original Mona Lisa. EINSTEIN Got her nose! MASTER MIND I've got it! 32. Everyone stops what they're doing upon seeing that their master has returned. MASTER MIND I've got it! MASTER MIND It's plain and simple. Extraordinary minds need extraordinary stimulation. Without that stimulus they wither and die. Therefore, there is only one logical conclusion: I must create a new superhero. EINSTEIN Yeah, maybe that's not such hot idea... MASTER MIND (ignoring him) Prepare for Operation Superhero Genesis! INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY The lab is slick, white and ultra modern. Dressed in a lab coat, Master Mind enters through a SLIDING GLASS DOOR rubbing his hands excitedly. MASTER MIND Prepare the subject. He glances down into a large HOLE in the floor to see a naked thirty year old man, SEVERS, shivering. Above the hole, a huge vat dangles precariously. Master Mind steps behind a glass partition next to Plato and Einstein. MASTER MIND (CONT'D) Plato, pour the toxic waste. Plato throws a switch causing the vat to tip hundreds of gallons of green and brown goo into the hole. MASTER MIND (CONT'D) Drainage. The slime is sucked out through the floor, leaving a goo- soaked Severs. 33. Master Mind looks into the pit. MASTER MIND (CONT'D) Well, Severs? SEVERS I feel fine. Just a little sticky, but aside from that everything's completely - BOOM - Severs explodes. A hail of blood and tissue covers Master Mind and his men. For a good ten seconds nobody moves an inch. Finally... MASTER MIND Okay then. INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY Through a glass WATER TANK we see a man breathing normally. MASTER MIND And this one? PLATO We attached gills to him. He can breath under water. MASTER MIND Ah. Does he have extraordinary strength? PLATO Well...no. MASTER MIND Can he fly? PLATO No. MASTER MIND Resilient to weapons fire? PLATO No. MASTER MIND He just breathes under water, then. PLATO Ah...yeah. 34. Master Mind rolls his eyes and walks away. INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY The next guinea-pig, STENWICK, is standing in a sealed glass tube not much wider than himself. MASTER MIND Plato, the radioactive spider, please. Plato throws the switch DROPPING A SINGLE SPIDER onto Stenwick's arm. Stenwick looks and winces as it bites him. STENWICK Ow! He brushes the spider off. MASTER MIND Anything, Stenwick? STENWICK (shaken) No. Ah...sir, I didn't know this was about spiders. I have a pretty severe case of arachnophobia. Master Mind thinks for a moment, then turns to Plato. MASTER MIND We're gonna need more venom. Plato throws another switch, this time DUMPING THOUSANDS OF SPIDERS on poor Stenwick. His SCREAMS begin to fade as he's engulfed with swarms of crawling arachnids. MASTER MIND (CONT'D) How `bout now, Stenwick? ....Stenwick? INT. ABANDONED METRO CITY LIBRARY - OFFICE - DAY Master Mind is pacing back and forth. The muted TV plays in the background. MASTER MIND This has proven to be a challenge. I just don't know what I want. What do I want? 35. He stares at Einstein, Da Vinci and Plato, but they offer no advice. MASTER MIND (CONT'D) I want a man of moral fiber with a strong sense of right and wrong. Someone who doesn't seek power - instead, they must have it thrust upon them and find, within themselves, the courage to rise to the occasion. Einstein lets out a short laugh, getting everyone's attention. EINSTEIN Yeah, well, it sounds like what you want is Uberman. Master Mind snaps the fingers of his non-metal hand. MASTER MIND That's it! Why make a copy when the real thing will do? The lackeys look at each other, they can't believe what they're hearing. EINSTEIN I was just kidding, sir. In case you forgot, you actually burned Uberman alive. MASTER MIND Then we'll make a new one. Plato, bring me the box! MINUTES LATER Master Mind and the lackeys stand in a circle around a small table. Plato places a STAINLESS STEEL CHEST in the tables center. As Master Mind opens it, he's immediately doused in WHITE GLOW emanating from inside. MASTER MIND Behold - Uberessence. The very thing that gave Uberman his superhuman powers. 36. EINSTEIN Where the hell did you get that? MASTER MIND Oh, I shot him with a power sucking gun and had this idea to use this to clone a whole army of evil Ubermen. I'm not sure why I never got around to following up with that. PLATO I believe he defeated you before you could, master. MASTER MIND ...Right. Man, he was good! DA VINCI You want another volunteer, sir? MASTER MIND Not another volunteer driven by the need for personal gain. Somebody else, somebody pure. Master Mind turns to see an INTERVIEW WITH HAL playing on the muted television. Underneath his face is a blue caption with white lettering that reads: "Hal Stewart - Metro City's Newest Hero?" NEWS REPORTER ...who risked his own life to save that of a young mother and her child. HAL Please, please, you're embarrassing me. I saw someone in need and I helped them. What more can we ask of ourselves. I ask you, what more? A smile creeps across the evil one's face. MASTER MIND (CONT'D) Somebody like him! EXT. CITY STREET - DAY Plato is sitting in the van, staring into a pair of binoculars as he speaks on a cellphone. 37. PLATO Yeah, sir. This guy is a real piece of work. He used to teach bowling at Kingpin's. INT. MASTER MIND'S HIDEOUT - DAY Master Mind is sitting with his feet up on a computer console as he speaks to Plato. MASTER MIND (into phone) A modest profession to brilliantly hide his true heroic nature. I love it. EXT. CITY STREET - DAY PLATO Then you are absolutely going to love this - We follow Plato's line of sight across the street where we see HAL PLAYING WITH A LARGE GROUP OF BLIND CHILDREN. PLATO - He volunteers at a school for the blind. INT. MASTER MIND'S HIDEOUT - DAY Intrigued, he suddenly sits up in his chair. MASTER MIND He volunteers. He doesn't ask for any reward for his deeds. The fates are shining down on me. This Mr. Stewart is truly an unselfish soul. EXT. BLIND SCHOOL - DAY From a distance, Hal seems to be consoling an upset child who's sitting on a rock. But up close... HAL You greedy little bastard. I already gave you a twenty. BLIND KID Hey, you want me to play along? Then pay up, bitch! 38. HAL Fine, but you better be convincing. He gives the kid a bill out of his wallet and looks over his shoulder to see a HOT TEACHER walking toward them. HAL Here she comes, go to work. Like a miniature Brando, the blind kid buries his face in his hands and begins to cry. BLIND KID (weeping) Why can't I see! Why God? Hal puts a warm consoling hand on the weeping boy's shoulder. HAL Hey, Peter. C'mon champ, let me look at you. The Hot Teacher stops and curiously watches from a distance. The boy looks up at Hal, tears running down his dark sunglasses - he should get an Oscar. HAL You know, in life we're all given no more than we can bear. This happened to you maybe because you were meant to rise above it - Maybe to be an inspiration to the other little Peteys out there. BLIND KID You really think so, Hal? HAL Hey, does it LOOK like I'm lying? Now c'mon, go feel your way to class before you get your little butt suspended. The boy stands up and is about to take off. HAL Petey, wait a minute. Hal uses his shirt sleeve to wipe the tears away from the boy's face before sending him on his way. 39. The Hot Teacher grabs her chest. Her heart is about to absolutely melt. HAL Don't run into anything! EXT. STREET - CONTINUOUS Plato lowers his binoculars. From his perspective, Hal should be next in line for popehood. PLATO I think I've seen enough, sir. This is your guy. MASTER MIND (O.S.) (over radio) Then return to base. We have much work to do. Plato starts up the van and pulls away. INT. BAR - DAY It's a busy night. A couple of trucker types are shooting pool as the bartender slings drinks. Hal is nursing a beer at the bar when he suddenly notices a very ATTRACTIVE WOMAN sitting next to him. As he goes to straighten his stool-posture, Hal suddenly catches himself on the bar's TELEVISION - it's a story about how he saved the woman and her baby at the construction site. He turns back to the Attractive Woman next to him, then back to the TV. A plan of attack is forming. HAL (obviously playing it up for the woman's benefit) Oh, there it is again. This is really getting embarrassing now. The woman looks up at the screen and gives Hal a double-take. ATTRACTIVE WOMAN Oh my God! It's you! You're the man who saved that woman and her baby the other day! It is you, isn't it? TRUCKER #1, getting a drink at the bar next to them, OVERHEARS. 40. Hal rolls his eyes and puts his hands up in the air. HAL (to Attractive Woman) Oh, crap. You got me. TRUCKER#1 taps Hal on the shoulder. TRUCKER#1 Let me tell you something. That was just about the bravest damn thing I've ever witnessed. (he turns to the rest of the bar) Hey, everybody! This guy's the hero from TV! The bar ERUPTS IN CHEERS. MOMENTS LATER Hal is riding on the shoulders of TRUCKER#2 and TRUCKER#3 as `I'm Holding Out For A Hero' plays on the jukebox. TRUCKER#1 suddenly puts his hands in the air. The room quickly goes silent. TRUCKER#1 I want to give you something. He reaches into his pocket and takes out a medal. He holds it up in the air for everyone to see. TRUCKER#1 (CONT'D) Lost my whole platoon. They were a lot a good boys, a lot of good boys. That was just the way things were in "The Grenada." I'd rather a real hero have this. Trucker#1 gives the medal to a speechless Hal. ATTRACTIVE WOMAN Hey, you're on TV again. The crowd looks up at the Television. TELEVISION - CONTINUOUS The anchor man, BRAD HELMS (early 40's, amazing mustache), suddenly has a memo passed to him. 41. BRAD HELMS This just in. Upon a second look at that tape from this morning, which we'll now replay for you, it appears it was not the heroic act it first seemed to be. The tape shows Hal running in slow motion. BRAD HELMS (O.S.) (CONT'D) With the tape slowed down you can actually see the man push the woman and her child out of the way in an effort to save his own life. The tape shows Hal, in a clear act of self-preservation, pushing the woman and child out of the way. CUT BACK TO: INT. BAR - CONTINUOUS In unison, everyone turns their heads back to Hal. HAL I guess that looks kinda bad. Trucker#1 snatches his medal back. EXT. NEARBY ROOF - NIGHT Master Mind, Da Vinci and Plato look down, spotting Hal cutting through a dark alley. DA VINCI There he is, boss. Da Vinci hands Master Mind a fantastic looking silver rifle. MASTER MIND Now, we're sure this won't kill him? PLATO Yes, sir. He'll just feel a slight electrical shock. MASTER MIND Good. Master Mind raises the rifle and aims it at Hal. 42. EXT. ALLEY - NIGHT Hal wipes the blood from his nose with his shirtsleeve. A LIGHTENING BOLT suddenly zaps Hal in the back. His teeth spark and arc electrons as his entire body shakes and shudders violently. He finally collapses, knocking over a row of garbage cans. EXT. NEARBY ROOF - NIGHT An angry Master Mind slaps Plato. MASTER MIND Slight electrical shock? EXT. ALLEY - NIGHT Hal lies flat on his back, his jacket smoldering. Dazed, he slowly rises to his feet and looks up at the sky. HAL God, I hate the weather in this city. Hal walks off into the night as he attempts to slap the emitting smoke from his jacket. EXT. NEARBY ROOF - NIGHT Master Mind turns to Da Vinci. MASTER MIND Follow him. INT. HAL'S APARTMENT - NIGHT It's a dirty, small studio. Laundry lies everywhere, dishes are piled in the sink and the litter box looks like a minefield. Hal comes staggering in. Through his POV we see the lights wobble and streak like a hallucination. He shakes his head trying to clear thing up, but it looks worse. Hal makes his way to the kitchen table and plops down on a chair. The room begins to swim. His CAT jumps on the table and sits down in front of him. 43. From Hal's POV the cat's face looks like we're seeing it through a kaleidoscope. Hal seems fascinated by it. CAT You don't look so good, man. HAL I don't feel good. I was struck by freaking lightening. Suddenly Hal realizes his cat's talking to him. HAL (CONT'D) AAAAAAHHHHH! You can talk? CAT No, you're just hallucinating. By the way, we're out of orange juice. HAL AAAAAAHHHHH! Hal jumps up, trips over a cardboard box and knocks himself out on the coffee table. INT. HAL'S APARTMENT - MORNING Hal lies in the same position we left him last night. He sits up and grabs his head. He looks like he has the worst hangover in the world. Finally, he remembers last night. He looks around, but not really sure what he's looking for. HAL Man... Shaking his head, he walks to the kitchen and opens the refrigerator. He pulls out an orange juice container and puts it to his mouth. It's empty. As if suddenly remembering something he looks from the carton to the cat, who is busy cleaning himself. He shakes the thought from his mind. BATHROOM Hal lifts the seat and unbuckles his pants. 44. HAL'S FACE He stares at the ceiling with half closed eyes. The inevitable sound of urine hitting water starts. A content look washes over his face. There is a distinct sound of porcelain CRACKING and SPLINTERING. The sound intensifies. Hal looks down to see his URINE STREAM SMASHING THE TOILET. HAL (CONT'D) Oh, God! He whips his stream away only to cut a LONG RIP IN THE WALL. HAL (CONT'D) Oh, God! He freaks out and begins to lose control of his flow as it destroys everything he accidently aims at; the bathroom mirror, a bottle of cheap cologne, the bathroom window. HAL (CONT'D) Oh, God! He aims back for the toilet, which is pretty much rubble now, to see the floor give way. Finally, the pee stops and he glances down the hole. He sees his downstairs NEIGHBOR sitting at his breakfast table. He has a fork halfway to his mouth as he stares at the smashed toilet on his pancakes. EXT. STREET - DAY Hal turns the corner to see his bus pulling away from the stop. HAL Wait! He starts running after it. ZOOM - HE TAKES OFF LIKE LIGHTENING. HAL (CONT'D) Whoa, whoa, whoa! Unable to stop, he SLAMS INTO THE BACK OF THE BUS and falls back to the ground. 45. As the bus continues on he sees an INDENTATION of his torso right below the rear window. Stunned, to say the least, he rises to his feet. HAL (CONT'D) Something's not right here. He slaps himself in the face as hard as he can. HAL (CONT'D) Wake up! Wake up, Hal! HONK! Hal spins around to see a car barreling toward him. He goes to jump out of the way - ZOOM - he FLIES TWO STORIES UP, nails a building and comes crashing back down to the sidewalk. Hal sits up, disheveled and scared. HAL (CONT'D) Okay, okay. Let's get it together, man. He closes his eyes in an attempt to will back his sanity. HAL (CONT'D) This is just some sort of...episode. It will pass, it will pass. He opens his eyes and looks down the street. A BEAUTIFUL NAKED WOMAN is coming toward him. HAL (CONT'D) Well, not too fast I hope. As she passes him and turns the corner out of his view he catches ANOTHER NAKED WOMAN - an old disgusting one. HAL (CONT'D) Yes, fast, fast! He turns away from her in horror only to see AN ENTIRE BLOCK OF NAKED PEOPLE going about their business. He rubs his eyes and looks down the street again. Everyone has returned to a clothed state. 46. He relaxes a little until he looks down and notices that he's floating a foot off the ground. HAL (CONT'D) I think I need to go home. INT. HAL'S APARTMENT - DAY Hal's front door CREAKS as it slowly opens, revealing Master Mind. He walks over to the bathroom and smiles to himself as he notices the giant hole in the floor. MASTER MIND Welcome to your second birth, Hal Stewart. Master Mind continues to survey the room. He stops to look over a "KARATE KID" POSTER on Hal's living room wall. He focuses on the majestic image of Pat Morita teaching a young Ralph Macchio to kick. MASTER MIND (CONT'D) Instruction is very important in the formative years. Every hero needs a mentor, a father figure to look up to. He presses his special watch, causing his body to MORPH INTO THE SPITTING-IMAGE OF PAT MORITA. "PAT MORITA" Perfect. INT. HAL'S APARTMENT - DAY Hal enters, grabs a bottle of vodka from atop of the fridge and takes a long pull from it. VOICE (O.S.) A man will usually find that if he drinks from a bottle, eventually, the bottle drinks from him. Hal does a SPIT TAKE. In the corner a darkened figure stands. HAL Who are you!? 47. VOICE I am the guide on your journey. Fate has chosen you to be it's champion. Pat Morita steps out from the shadows. Hal passes out again. LATER We are close on Hal's face as his eyes flutter open. He appears to be lying on the couch. He hunches up on his elbows, looks around, but everything is as it seems. He lays his head back down. HAL Thank God. It was a dream. Man, I must be losing it. A voice sounds right next to his ear. "PAT MORITA" (O.S.) You know you're out of orange juice? Hal leaps up to find he's been resting his head on Pat's lap. HAL Jesus! This isn't happening, this isn't happening. Hal backs away and trips over a box. "PAT MORITA" Calm. All things must be filtered through calmness. HAL Bullshit! Sometimes it's best to freak out. "PAT MORITA" I think we must work on your attitude first. HAL Look I'm gonna call the cops in about two seconds if you don't get out of here. 48. Pat rises and walks to Hal. He's so calm it makes Hal calm. "PAT MORITA" Are you calm now? HAL Yeah, I'm okay. Pat slaps him across the face hard. "PAT MORITA" Good, because we've got a lot of work to do. Hal grabs his jaw. HAL What the hell was that for? "PAT MORITA" Rule number one: expect the unexpected. HAL Can you just tell me what this is all about? "PAT MORITA" The heavens are not in the habit of bestowing a gift such as this to just anyone. You are being rewarded for being a man of great moral fortitude with an unwavering belief in humanity. HAL That's me alright. "PAT MORITA" I am to train you so you may fulfill your destiny to defeat the great menace to Metro City: Master Mind. Pat gets up and walks toward the door. "PAT MORITA" (CONT'D) Come. HAL We're are we going? 49. "PAT MORITA" To train. EXT. PAT'S CAR - DAY Pat is sitting in the driver's seat. The car is bumping up and down. "PAT MORITA" Strength is just as much in the mind as it is the muscle. Remember, both need to be exercised. We PULL BACK to see Hal lifting the car up over his head. He's hardly straining. HAL I'M LIFTING A FREAKING CAR!!! Pat leans on the HORN. "PAT MORITA" Hey, Corky? You listening? Two highly attractive female joggers run by. They're clearly impressed with Hal's show of strength. He smiles and mouths a "hello." HAL Yeah, work both muscles. EXT. DESERT - DAY Pat cocks back the chamber of a .357 MAGNUM. He holds it up and carefully takes aim...at Hal's chest. "PAT MORITA" Trust me. HAL What are you doing!? "PAT MORITA" An invulnerability test. Something wrong? HAL Uh...yeah. I would prefer not to get shot. Do not fire that thing! Frustrated, Pat lowers the gun. 50. "PAT MORITA" You're bulletproof. HAL Okay, do you know that for sure? Pat quickly aims and fires. Hal lets out a high pitched scream as the bullet ricochets off his chest. "PAT MORITA" I do now. Hal looks down at his chest, not so much as a scratch. HAL You suck. EXT. SKY - DAY Hal is in the air flying in a sitting position. He's weaving back and forth. HAL Ice Man, I got a bogie on my tail. Two Russian Migs coming in hard and fast. "PAT MORITA" Hey! HAL What? Hal looks down to see Pat Morita yelling at him from the roof of a building down below. "PAT MORITA" What did I tell you? Stomach down, hands up. Hal sighs and assumes the proper superhero in-flight position. HAL God, I feel so gay. Pat's CELL PHONE begins to RING. He answers it. "PAT MORITA" (in Master Mind voice) What is it? 51. ROXANNE (V.O.) John? Pat panics. He looks up to make sure no one is in earshot. He sees Hal now doing somersaults in the air. HAL YEEEE HAWWWW! Pat turns his attention back to the phone, talking in his John Cusack voice. "PAT MORITA" (in Cusack voice) Yes, it's John Cusack. ROXANNE (V.O.) Hi, it's Roxanne. Listen, I...I really enjoyed talking with you the other day. "PAT MORITA" ...As did I. ROXANNE (V.O.) Great. God, I feel really silly, and if you have a lot going on I totally understand. But, I was wondering if you maybe wanted to have lunch. He can't believe what he's hearing. "PAT MORITA" (excited) I'd love to! He quickly recovers his composure. "PAT MORITA" (CONT'D) I mean, I AM a little hungry. ROXANNE (V.O.) Great. How does the park sound, around noon-ish? "PAT MORITA" Sure! ROXANNE (V.O.) Great, see you then. 52. Pat hangs up the phone and returns it to his pocket as Hal lands behind him. HAL WHOOOOA! Man, that is so cool. It's like fly - Oh my God, I almost said it was like flying. "PAT MORITA" For the rest of the day I want you to continue to practice your flying posture. HAL Why, where're ya going? "PAT MORITA" ...To do something...mysterious ...and Asian. HAL Say no more, bro. I'll just keep at it, then. EXT. PARK - DAY John Cusack and Roxanne eat WRAPPED SANDWICHES while walking through Metro City Park. ROXANNE How's your sandwich? "JOHN CUSACK" It's quite delicious. ROXANNE Hope you don't think I'm too forward. Some men are intimidated when a woman asks them out. I just find you really easy to talk to. "JOHN CUSACK" And I you. ROXANNE You know, you're not at all like you are in the movies. "JOHN CUSACK" I'm not? 53. ROXANNE Yeah. I don't know - You have this strange, refined way of speaking. "JOHN CUSACK" I do? That is most interesting. ROXANNE Anyway, when we were talking the other day I just felt, even though we only talked for a couple of hours, that we've known each other for years. "JOHN CUSACK" I know just what you mean. Roxanne bites into her sandwich. ROXANNE You know what? This sandwich is disgusting. She tosses it in a nearby garbage can. ROXANNE (CONT'D) Of course I already ate half of it. I wonder what that says about my character? "JOHN CUSACK" It means you don't give up on a sandwich. You see that it has potential, and you give it every chance to be all it can be. Roxanne smiles at his analogy. ROXANNE Thanks, but knowing me, I was probably projecting my expectations of what a lunch should be on the sandwich. It might have been okay at first, but I just made it bitter. John Cusack notices Roxanne's smile starting to fade. "JOHN CUSACK" Is that what happened with your last sandwich - I mean, boyfriend? 54. ROXANNE When I look back, I probably shouldn't of expected so much from him. He was already a giving person. You know, one of those go out and save the world types. "JOHN CUSACK" I've run into a few. ROXANNE I was selfish, I guess. I didn't want to share him with anybody else. "JOHN CUSACK" It sounds like he was a special man. ROXANNE They broke the mold. John Cusack arches his eyebrow in a very familiar manner. "JOHN CUSACK" Perhaps not. INT. ABANDONED WAREHOUSE - DAY Hal walks up to Pat Morita sporting a Lone Ranger-type mask and wearing a purple and red superhero costume. It's not unlike Uberman's except for a giant "T" on his chest. (From here on, Hal is referred to as TITAN) TITAN What's the "T" stand for? "PAT MORITA" Titan. TITAN What's that supposed to mean? "PAT MORITA" It's from Roman mythology. Zeus's father...oh, just go with it. You look perfect. TITAN I don't think this mask is big enough. Are you sure no one is gonna recognize me? 55. "PAT MORITA" It's fine, just don't slouch. It's all in the posture. He grabs Titan's shoulders like a proud papa. "PAT MORITA" (CONT'D) It is time. INT. BANK - DAY There is a long line of people snaked around the velvet ropes. They're all waiting for their chance at the one open teller window. Four men wearing BEATLES MASKS(JOHN,PAUL,GEORGE,AND RINGO)and CARRYING SHOTGUNS enter the bank. John fires a shot in the air, sending everyone into an immediate panic. JOHN Alright folks, this is a robbery. Nobody moves - yadda, yadda, yadda... Ringo jumps over the teller wall and starts stuffing bills into a bag. As John and Paul cover the crowd, George goes to the corner office and puts a gun to the BANK MANAGER'S head. GEORGE The safe. Let's go. BANK MANAGER Okay, just don't hurt anyone. GEORGE Yeah, yeah, yeah. George leads him out by the collar. CRASH - Titan smashes through the window and lands in a bold superhero stance with hands on hips. TITAN Well, boys, there's no need for all this just to get the free toaster. Paul cocks his gun. 56. PAUL What are you suppose to be? We move in for a nice dramatic close up. TITAN Justice. GEORGE Well, justice, suck on this... George, John and Paul open fire on Titan. He just stands there and yawns as the bullets bounce off him. With their guns empty the three just stare at him in amazement. TITAN Now it's my turn. He turns to George. TITAN (CONT'D) Hey, George, here comes the sun. Titan grabs George and throws him into a fluorescent light fixture in the ceiling. Paul tries to run for the door. Titan snatches the collar of his jacket. TITAN (CONT'D) Say, Paul, your mother should know...that you're a scumbag. He tosses Paul out the window and into a parked DELIVERY TRUCK. Titan turns around just as John hits him with the butt of his shotgun. It instantly breaks apart in his hands. Titan lifts him like a rag doll up into the air. TITAN (CONT'D) John, all you need is love... He throws John who lands on top of a cubical wall - GROIN FIRST. TITAN (CONT'D) ...and a good urologist. 57. Titan effortlessly hops over the teller wall to find Ringo cowering on the floor. He grabs him by the shirt and lifts him up. HAL Well, Ringo...um...um...you're under arrest. EXT. BANK - DAY Titan walks out of the bank with Ringo and George under his arm. He's suddenly swarmed by a group of television reporters, including Roxanne. Across the street is Pat Morita. He watches Titan's first news conference with great anxiety. BANK MANAGER (to Hal) On behalf of the First National Bank of Metro City, I'd like to offer you a reward for your act of bravery. He hands Titan a check. TITAN (reading) Ten thousand dollars! Titan looks over to Pat, who violently shakes his head no. TITAN (CONT'D) (unenthusiastically) I...can't except this. Law and order is it's own...um...reward. Pat gives him the thumbs up. Pat turns, suddenly seeing Roxanne with her camera crew. Captivated, his eyes lock on her. Meanwhile, Roxanne and her cameraman, SETH, are maneuvering around the crowd to get closer to Titan. BRAD HELMS (O.S.) Not so fast, Roxanne. They both turn to see Roxanne's reporter rival Brad Helms, Geraldo without the class, and his cameraman, FRANK. BRAD HELMS This story's mine. 58. ROXANNE Listen, Brad. We were just in the area. I was just trying to - BRAD HELMS I've been in this business long enough to know pretty well what you were "just trying to do." Besides, I heard you couldn't take the big game anymore and were put on fluff detail? Dejected, Roxanne turns and motions for Seth to turn the camera off. SETH You're not gonna take that from him, are you? ROXANNE He's right. Old habit, I guess. (to Brad) We'll get out of your way. As they walk off, Brad makes a comment to Frank loud enough for her to hear. BRAD HELMS Besides, I'm sure there's a pancake supper somewhere that needs covering. INT. ABANDONED METRO CITY LIBRARY - OFFICE - DAY ON TELEVISION We see the news conference on the bank's steps. In the corner of the screen is written: "recorded earlier." BRAD HELMS For months now, since the death of Uberman, the citizens of Metro City have been holding out for a hero. Well, it appears they won't have to hold out for much longer as a new costumed crusader has suddenly stormed onto the scene. Today, at the Metro Savings and Trust, a masked mystery man single-handedly defeated "The Fab Four Gang." Just who is this new caped avenger? Brad holds the microphone to Titan's face. 59. BRAD HELMS I'm sure all of our viewers are now wondering, what's the "T" stand for? TITAN It's a message to all the scum out there. Uberman may be gone, but Metro City has a new protector, and his name is "Tighten!" Another reporter leans in. REPORTER How do you spell that? We PULL BACK to see Plato and Da Vinci watching this spectacle. Master Mind is sitting with them, reading a NEWSPAPER. MASTER MIND (reading paper) Oh, for heaven's sake. I can't believe it. He misspelled his name. Master Mind holds up the newspaper. The headline reads "Metro's New Hero: Tighten." MASTER MIND (CONT'D) No matter, I suppose. Master Mind throws the paper on the floor and begins to pace around the room with his arms folded behind his back. MASTER MIND (CONT'D) We've now fully established Titan as Metro City's hero. They will love him just as they loved Uberman. Everything is going according to plan. Einstein leans over and whispers in Plato's ear. EINSTEIN (whispering) Yeah, if the plan is getting us in jail. Master Mind turns around, facing Einstein. He walks over, standing face to face with the rebellious henchmen. 60. MASTER MIND You know, Einstein, maybe I should have called you Socrates. He also didn't know when to keep his thoughts to himself. EINSTEIN I just fail to see the point in all of this. I mean, why are we creating another superhero when it was such a pain in the ass for you to get rid of the other one? I mean, Uberman is destroyed, we should be using this opportunity to...to... MASTER MIND To what? EINSTEIN I don't know. To take over the weather, space, the world - whatever super villains are SUPPOSED to do. MASTER MIND The reason someone like you will always be a minion is because you have no foresight. We take over the earth, like you said. Then what? Women? Cars? Money? Even the grandest treasures will lose their lustre if you don't have someone to hold them over. Einstein throws up his hands. He's had enough. He pulls off his wig and throws it to the floor. EINSTEIN That's it! This balance of the force bullshit is getting way too Oprah for me. I'm blowing. Who's with me? MASTER MIND You dare? EINSTEIN Yeah, I dare. I'm sick of wearing stupid costumes, and I'm sick of working for a super villain who's turning into a softie. 61. Plato and Da Vinci's mouths drop to the floor. They turn to Master Mind for his rebuttal. MASTER MIND What - did - you - call me? EINSTEIN You heard me. You used to be an inhuman monster, now look at you. You're creating super heroes, you don't go with us on robberies anymore, it's been days since you threatened anyone, oh, and not to mention this Roxanne Ritchi thing. MASTER MIND THAT is none of your business, knave! EINSTEIN Hey, you guys haven't sealed the deal yet, have you? MASTER MIND Silence! EINSTEIN (In a woman's voice) Oh, Master, your head is so big. MASTER MIND I'm warning you, Einstein. EINSTEIN (In a woman's voice) Take me! MASTER MIND I said silence! With his metal gauntlet Master Mind grabs Einstein by the throat and lifts him into the air. Einstein looks frightened as he tries to pry himself free of Master Mind's grip. Master Mind's eyes soften as if his heart is suddenly not into what he's about to do. He let's Einstein drop to the floor. MASTER MIND (CONT'D) Get out of my sight. 62. EXT. RESTAURANT - NIGHT Roxanne and John Cusack are eating on the outside patio of a fancy restaurant. ROXANNE Don't get me wrong, I love being a reporter. I don't think I could do anything else. It's the consequences of what we do that I'm having a problem with. He listens intently as he refills her glass with wine. "JOHN CUSACK" That's where journalistic responsibility comes in, no? ROXANNE It's supposed to. "JOHN CUSACK" Sounds to me like you're running from something. ROXANNE I got someone I cared about killed. If it wasn't for me, he wouldn't have been involved. John suddenly gets a disturbed look in his eye, realizing what she's talking about. He reaches across the table and takes her hand. "JOHN CUSACK" You can't blame yourself. My father used to say each of us must answer the great call to truly feel alive. ROXANNE Was he an actor? "JOHN CUSACK" ...No. He was...a landscaper. And a horrible one. I mean he would fail time and time again at his...landscaping. And sometimes he'd get pretty beaten up or thrown in jail - ROXANNE Jail? 63. "JOHN CUSACK" My point is he took the good with the bad. He grew a little each time. Improved, learned. ROXANNE Was he ever successful? "JOHN CUSACK" God, no...but don't let deter you. Roxanne LAUGHS. ROXANNE Thanks for this. You know, this is embarrassing, but it's been a long time since I - It's starting to lightly sprinkle. Roxanne looks up. ROXANNE (CONT'D) I think it's starting to rain. We might want to find a table inside. "JOHN CUSACK" What were you gonna say? ROXANNE Oh, I was gonna say...It's been a long time since...well, I've been with someone I...enjoy being with. John Cusack smiles warmly and raises his glass for a toast. "JOHN CUSACK" To people who enjoy being with each other. They go to clang glasses, when the rain suddenly causes John Cusack's disguise generator to short. His true form of Master Mind is briefly revealed to Roxanne as a BOLT OF ELECTRICITY encircles his body. Roxanne drops her glass and jumps out of her seat. MASTER MIND (CONT'D) Oh, no. Don't look at me. LIKE A BROKEN TV the image keeps switching between MASTER MIND AND JOHN CUSACK. 64. As Master Mind starts to franticly slap at his watch, the Cusack disguise begins to hold steady. He nonchalantly returns to cutting his steak. "JOHN CUSACK" Okay, never mind that. Now, where were we? Roxanne grabs his glass and throws the drink in his face, causing the generator to short out permanently. Master Mind now sits in his true blue form. ROXANNE Oh my God. MASTER MIND You're not gonna get all freaky about this, are you? ROXANNE This...this is too much, even for you. God, I go out with you, tell you my innermost thoughts. MASTER MIND I only did this because I wanted to talk to you on the same level. You know, without all the baggage? ROXANNE Baggage? You burned my boyfriend alive, you sick son-of-a-bitch! MASTER MIND You see, that's exactly what I'm talking about. Roxanne starts to walk away. MASTER MIND (CONT'D) Roxanne! ROXANNE Stay away from me. Master Mind sinks back down to his chair. Despite the now heavy rain bombarding him, he returns to his food. Several resturaunt patron's are looking at him through the window. 65. Our villain turns to them, giving them a villainous glare. MASTER MIND What? INT. MASTER MIND'S BEDROOM - NIGHT Master Mind is lying on his back, wide awake. MASTER MIND (mumbling to himself) Stupid. What was I thinking? Plato, it's his fault. He's the one who sent me on this weak-willed path. I'll filet his scrotum for this. Me, a creature of evil, in love with Roxanne Ritchi. Preposterous. I hardly give such matters thought He rolls onto his side. He yawns and closes his eyes. Suddenly, they shoot back open. CUT TO: EXT. ROXANNE'S APARTMENT - NIGHT Master Mind pulls up in a blue Rolls Royce, across the street from Roxanne's apartment He stares up at the building, hoping to catch a glimpse of her. Finally, she appears, primping her hair in her apartment window's reflection. MASTER MIND I should just go up there and just lay it all out to her. "Roxanne, I like you - I always have. Oh, and I'm sorry I blew up your ex. (realizing the absurdity of his words) Yeah, that would go over like a pants-less clown at a child's birthday party. What the hell am I even doing here? Who cares what she thinks? I'm a supervillain and here I am acting like a love struck schoolboy. Forget this. I control my own destiny! 66. He turns the ignition key - NOTHING HAPPENS. He repeats but gets the same results. MASTER MIND (CONT'D) (disgusted) Perfect. INT. ROXANNE'S APARTMENT - NIGHT She pulls a pack of smokes off her night stand. Empty. ROXANNE Damn. She grabs her long coat and throws it over her robe. EXT. ROXANNE'S APARTMENT BUILDING Roxanne steps outside. ROXANNE Please be open. Across the street is a liquor store. The light is still on. ROXANNE (CONT'D) Thank God. She walks across the street, passing in front of Master Mind's car. Spotting her, he sinks down in his seat. Roxanne walks by, totally unaware of his presence. Relieved, Master Mind sits back up and watches her go into the store. INT. LIQUOR STORE - NIGHT Roxanne walks up to an elderly Korean SHOPKEEPER at the counter. ROXANNE A pack of Lady Strikes, please. EXT. MASTER MIND'S CAR - NIGHT Master Mind is talking on his cell phone. MASTER MIND Hello, Triple A? 67. He suddenly spots something across the street. EXT. LIQUOR STORE - NIGHT A HOODLUM walks up to the entrance of the store and pulls out a gun from under his coat. EXT. MASTER MIND'S CAR - NIGHT Master Mind stares in shock. MASTER MIND I'll call you back. He hangs up the phone and watches the Hoodlum go inside the store. INT. LIQUOR STORE - NIGHT The Hoodlum reaches across the counter and grabs a fist full of cash from the register. SHOPKEEPER Hey! SHOTGUN HOODLUM Shut up, Gramps. He turns to Roxanne, spotting a GOLD NECKLACE around her neck. SHOTGUN HOODLUM (CONT'D) Gimme that necklace! ROXANNE I don't think so. The Hoodlum cocks his shotgun. SHOTGUN HOODLUM I said give it to me! MASTER MIND (O.S.) The lady said no. The hoodlum turns around to see Master Mind in the doorway holding a STRANGE-LOOKING HAND CANNON (GOO GUN) with knobs and blinking lights. The hoodlum starts to laugh. 68. SHOTGUN HOODLUM What the hell's that? A super soaker? MASTER MIND No, it's a goo gun. The hoodlum turns his gun to Master Mind. SHOTGUN HOODLUM Yeah, what's it do? MASTER MIND It goos. Master Mind fires the cannon. It instantly covers the store in a cloud of SMOKE. The smoke clears to reveal the hoodlum STUCK TO THE WALL, covered in a thick, GREEN GUNK. Roxanne stares at him, dumbfounded. MASTER MIND (CONT'D) It's...a prototype. Master Mind starts to walk out when he's suddenly confronted by the shopkeeper. SHOPKEEPER I know you! You Master Brain guy. You a hero. Master Mind points the goo gun at him. MASTER MIND Don't - EVER - say that again. EXT. LIQUOR STORE - NIGHT Master Mind walks out with the cannon resting on his shoulder like he's a short timer in Da Nang. Roxanne follows shortly behind him. ROXANNE Hey! Master Mind turns around. ROXANNE (CONT'D) Are you following me or something? 69. MASTER MIND Don't flatter yourself. He turns away and continues walking. Roxanne runs in front of him blocking his way. ROXANNE Don't walk away from me when I'm talking to you. Finally it occurs to her what's going on. ROXANNE (CONT'D) What a minute...all that stuff you use to say to me when Uberman was alive - about me being the loyal queen by your side as you rule over Metro City. That wasn't just super villain rhetoric, was it? You actually meant it! MASTER MIND My, someone has a rather high opinion of themselves. They stare at each other in silence, their glares locked in conflict. ROXANNE (coldly) Do you really think I would be with someone like you? This stings Master Mind to the bone. And after a brief contemplation, he reaches the only logical, painful conclusion. MASTER MIND No. With that, Master Mind exits into the night, leaving Roxanne with a baffled expression on her face. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind enters in a huff. Da Vinci closes the door behind him as Plato notices his master's agitated state. PLATO Everything alright, sir? Master Mind GRABS PLATO BY THE GROIN with his metal gauntlet causing Plato's eyes to bulge in pain. 70. MASTER MIND (overly calm) Fine, why do you ask? PLATO You...just...seem... Master Mind tightens his grip. MASTER MIND Go on. PLATO ...distracted. Master Mind releases him. MASTER MIND Just with business, my minion. Just with business. I've decided it is time. PLATO You mean? MASTER MIND Yes, we've created our hero, now it's time to give him a little motivation. DA VINCI How do we do that? MASTER MIND To be simply good is not enough. A hero must be driven by an almost relentless desire to right a wrong that can never be corrected. PLATO You mean? MASTER MIND Yes, he must lose someone near and dear to him - his father figure. Gentlemen, it's time for Operation Mentor Kill! EXT. SKY OVER METRO CITY - DAY Titan flies high over and through the city, under bridges, between buildings, etc. He's not really working, just enjoying himself. 71. INT. WOMAN'S APARTMENT - NIGHT A PRETTY WOMAN sits at her makeup table wearing nothing but her bra and panties. Through the reflection in her mirror we see a large window directly behind her. As she applies lipstick we see Titan fly quickly by in the background. After a moment he slowly slides back in view and begins ogling the girl. She sees him in the mirror and quickly covers herself with a robe. Titan tries to hide his face as he zooms off. MOMENTS LATER Titan looks down to see an APARTMENT BUILDING IN RUIN. Emergency lights flash around it as swarms of people run around in chaos. TITAN Man, what the hell happened down there? Wait a sec - He stops in mid-air as he comes to the striking realization. TITAN (CONT'D) THAT'S MY APARTMENT!!! EXT. HAL'S APARTMENT BUILDING - DAY Titan lands in front of the rubble that was once his home. Reporters stand just beyond the police line. TITAN Crap. From the wreckage crawls a dying Pat Morita. TITAN (CONT'D) PAT! Titan goes and kneels beside Pat, holding him in his arms. TITAN (CONT'D) You okay? "PAT MORITA" I'm dying, kid. There is just one last lesson I have for you. It is the most important of all. 72. TITAN What's that? "PAT MORITA" Master Mind did this, you must avenge me. TITAN Master Mind? Why? "PAT MORITA" Because he's evil. You must stop the evil Hal - stop the... Pat's body goes limp. The cameras begin to pop and flash around them. Titan gently lays Pat's body down and stands respectfully over him. The reporters rush over. REPORTER 1 Tighten, Is this the work of Master Mind? REPORTER 2 How will the death of your mentor affect your resolve? REPORTER 3 Was that Pat Morita? Titan walks up to one of the cameras. TITAN This injustice will not go unpunished. Master Mind, if you can hear me, Tighten is coming for you. In the background we see Plato and Da Vinci, DRESSED AS PARAMEDICS, load pat's body onto a stretcher. PLATO ACCIDENTALLY DROPS HIS SIDE. As he bends down to pick it back up, Pat quickly slaps him, then goes back to playing dead. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind and the boys prepare the fortress for Hal's revenge attack. Master Mind is as giddy as a schoolboy. 73. MASTER MIND Alright, people, we don't have much time. Titan should be here any minute, so let's get the lead out. There is a GIANT MOUNTED DEATH RAY in the middle of the hall being tinkered with by Da Vinci. MASTER MIND (CONT'D) How's the death ray coming? DA VINCI Nearly up to full power, sir. MASTER MIND Hum. Let's turn it down a few notches. It's his first time and we don't want to get in a lucky shot, now do we? Plato enters the room. MASTER MIND (CONT'D) Anything on the radar yet? PLATO Not yet, sir. MASTER MIND I see. Well, he must be planning something big. Are the flame androids deployed? PLATO All twelve. Master Mind rubs his hands in anticipation as he sits down on his throne. MASTER MIND Wonderful, wonderful. Plato, Da Vinci, take your places next to me. They move to either side of the chair. MASTER MIND (CONT'D) No slouching. Da Vinci straightens up and sucks in his gut. They remain this way for several long moments. Master Mind occasionally glances at a DIGITAL CLOCK on the wall. Still no Titan. 74. LATER Apparently quite some time has passed. The bold stances have degraded to fatigue. PLATO He's certainly taking his time. MASTER MIND He'll be here. That's the way it works. STILL LATER Master Mind reclines in his chair and taps his metal gauntlet impatiently on the armrest. Plato has squatted down, resting his chin on his hand. MASTER MIND (CONT'D) Unprofessional, that's what this is. No, it's disrespect for the craft. Master Mind rises and begins to pace back and forth. MASTER MIND (CONT'D) Would Uberman have kept us waiting like this? Of course not. He was a pro who knew the score. It's time we spelled out a few things for this Titan. I will not be made a fool of. He storms out of the room. INT. HAL'S NEW APARTMENT - DAY Titan's sitting on the floor in a barren apartment wearing his costume top and some tighty whities. He sips his beer as he watches a basketball game on a tiny TV. Much to his annoyance, there's a KNOCK at the door. TITAN Oh, for crying out loud. He gets up and opens the door. It's Master Mind. MASTER MIND Do you know who I am? 75. It takes a few moments to register, but Titan's suddenly excited. TITAN Yeah, you're Master Mind. Yeah! You're actually the guy I want to see! MASTER MIND Oh, so NOW you want to get down to it. Well, I want to get a few things off my chest first. Master Mind walks past Titan into the apartment. He spins around, pointing at him accusingly with one of his metal fingers. MASTER MIND (CONT'D) Of all the inconsiderate - Do you have any idea how long we waited for you? We're you even planning on coming to me and getting revenge? Titan shuts the apartment door, and turns back toward his guest. TITAN Well, at first I was going to. You know, because that's what I figured I was supposed to do. But then I got to thinking- MASTER MIND (interrupting) -You got to thinking? There's nothing to think about. I'm the villain. I do something bad, you come and get me. TITAN - I got to thinking...what's the point? Master Mind throws up his hands. MASTER MIND Maybe you're right. What's the point? He suddenly notices something in the corner of his eye. He walks over to a futon in the living room. On top of it is a LARGE SACK OVERFLOWING WITH GOLD WATCHES,RINGS AND OTHER VALUABLES. 76. MASTER MIND (CONT'D) What are these? TITAN That's what I wanted to talk to you about. MASTER MIND (baffled) Where did you get all this? TITAN (proudly) Get this: I stole them. MASTER MIND From where? TITAN From all over. You see, once you killed Pat and ruined my other apartment building I was pretty pissed off, so I figured I'd go, find you and kick some ass. Then I thought to myself: "Okay,then what?" I mean, if we were to fight, what would I get out of it? Would I get my apartment back? Would I be able to pay the bills? MASTER MIND Well, what about your mentor? TITAN Tell you the truth? He was kind of a dick. I mean, being a hero is dandy and all, but it's volunteer work. Now you've always had the right take on all this. I mean, when you rob a bank or take over the diamond exchange you get something out of it. I mean, when you don't get caught, which, no offense, isn't very often. And that brings me to what I wanted to propose to you: Who could catch you if I'm by your side? Perplexed by his proposal, Master Mind just stares at Titan awe-struck. MASTER MIND You want to team-up? 77. TITAN You got the brains, I got the brawn. We could even call ourselves that: `Brain' and `Brawn'. Look at this. Titan picks up a piece of POSTER BOARD off the floor and shows it to Master Mind. TITAN (CONT'D) I even designed us some new costumes. The picture is crudely drawn with magic markers and crayons. A big headed man (Master Mind) is standing on a plate of grass in a blue costume with a picture of a brain on his chest. Next to him, is a picture of Titan in a red costume with a black cape, but his chest is mysteriously blank. Titan proudly points to the two figures. TITAN (CONT'D) See, you'd be brain, so you got a little one on your costume, and then I'll have brawn on mine...once I figure out the best, you know, visual interpretation of it. What do you think? MASTER MIND What do I think? Master Mind shakes his head tiredly. MASTER MIND (CONT'D) I think you're probably the biggest idiot I've ever met. I mean, I can't believe you. All your gifts, all your powers, and all you want to use them for is your own financial fulfillment. You know what? Your kind of people make me sick. Titan puts down his drawing. TITAN I worked hard on this. MASTER MIND Oh - gee - I am so sorry! 78. Master Mind looks to Heaven in disgust. MASTER MIND (CONT'D) (under his breath) Of all the people to pick, it had to be this loser. This strikes a cord with Titan. TITAN Now, hold on. You're going a little too far. MASTER MIND I wish your mother said that to your father the night of your conception, they would have saved me a whole lot of heartache. TITAN Hey, I mean it. Master Mind gets right in his face. MASTER MIND Oh, yeah? What are you gonna do? EXT. HAL'S APARTMENT BUILDING - DAY We see Master Mind's body CRASH through the building and land in a DUMPSTER across the street. A car pulls up. The driver's door opens. Da Vinci gets out and runs to help his master. DA VINCI Master! MASTER MIND (O.S.) It hurts. Da Vinci peeks into the dumpster to see Master Mind's body cushioned by a stack of trash bags. DA VINCI What hurts? MASTER MIND It! The overly large henchmen starts to pull his master from the dumpster when they suddenly hear a voice from above. It's Titan peeking through the hole in his apartment wall. 79. TITAN I don't need you, I don't need anybody. I have the power to do and take anything I want. And now, I'm gonna take back everything this city owes me. Beware Metro City, it's time for Titan to collect. Titan shoots up into the air. TITAN (CONT'D) Oh, and from now on - I'M GONNA FLY THE WAY I WANT TO FLY! He takes a sitting position and flies away as if he were piloting an invisible jet. Master Mind climbs out of the dumpster and watches Titan disappear into the distance. DA VINCI How'd the plan go, boss? MASTER MIND I just made myself redundant, old friend. Da Vinci gives Master Mind a whiff. DA VINCI It's not that bad. INT. BANK - DAY Titan, with a happy bounce in his step, enters the bank. The last time he was here he thwarted a robbery. He looks nostalgic. A SECURITY GUARD shyly walks up to him like a kid meeting his TV idol. SECURITY GUARD Morning, Tighten. TITAN Morning. SECURITY GUARD Is there something we can do for you? 80. TITAN Oh, don't bother about me. I'm just here to make a withdrawal. Titan walks across the lobby, drawing stares of admiration from all. A little girl waves to him sweetly. He gives her a good- natured WINK as he heads straight for the vault. The security guard watches him enter and come out with a SACK OF CASH. Sure he must be misunderstanding what's going on, the security guard just stares at Titan as he passes by and out the door. The bank manager comes over to the guard. BANK MANAGER Say, did he just rob us? SECURITY GUARD Not sure. Sort of looks it, don't it? BANK MANAGER Yeah. SECURITY GUARD Should I, you know, stop him? BANK MANAGER Umm...Yeah. As the security guard exits the bank, the manager stares out the window. His eyes suddenly grow wide with terror. The guard's body suddenly smashes through the window, landing at the startled bank manager's feet. BANK MANAGER (CONT'D) (looking down at the guard) He did rob us, didn't he? CUT TO: TELEVISION "A Channel 7 News Special Report." Brad Helms wipes into view. 81. BRAD HELMS "Absolute power corrupts absolutely." When Lord Acton stated that, in a letter to Bishop Mandell Creighton in 1887, no one thought much about it, but today Metro City is reeling from that very prophecy. Tighten, who many thought of as our savior, has turned his back on the cause of justice. CUT TO: TITAN BEING EVIL - MONTAGE EXT. DIAMOND EXCHANGE - DAY Titan flies through the window of the building. He emerges seconds later laughing with his shirt full of booty. EXT. CITY STREET - DAY A woman screams from the window of a BURNING BUILDING. Titan flies up to her, grabs her fur coat and zooms off again, leaving the woman behind, slightly confused. EXT. OUTSIDE MARKET - DAY Titan steals a little boy's lollipop and gooses his mother. EXT. CITY STREET - DAY Dozens of people run through the streets apparently to get out of a downpour. We cut to the top of a building and see Titan ZIPPING UP HIS PANTS and laughing. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind paces back and forth in front of Plato and Da Vinci. PLATO I don't understand it. He seemed to have every characteristic we were looking for in a superhero. MASTER MIND Well, there's no use crying about it now, we must take action. I'm not going to play second fiddle to that crass buffoon. We must destroy Tighten. 82. PLATO It won't be easy. Uberman had a sense of decency and genuine love for the people. That was his weakness and was easily used against him. MASTER MIND Yes, but he possesses the same flaws present in Uberman's DNA - copper. It's like Benjamin Franklin always said: "If something works don't dick with it." EXT. BAR - DAY It looks like a war zone passed through here. Smashed police cars and debris lay everywhere. This seems to be the only building left untouched. INT. BAR - DAY A very tipsy Titan is sitting at the bar, looking deep into the bottom of his beer glass for answers. TITAN I can have anything I want. I'm like a god. The BARTENDER just listens as he wipes down a glass with a dirty rag. TITAN Point to any woman in this bar. I could have her in a second. He follows the bartender's gaze to THE ONLY OTHER PERSON THERE - A passed out, MIDDLE AGED HAG OF A BARFLY. TITAN (to Old Barfly) Hey, you wanna get with this? BARTENDER Buddy, what do you want? Titan carefully considers this for a moment. TITAN What do you want? That's the question, isn't it. I mean, what do you want when you can have everything? (MORE) 83. TITAN(cont'd) I suppose what I really want is to never be forgotten again. I want to do something that can never be cast aside or one-upped. I want a - what's it called? - A legacy. I want a legacy. Yeah, that's it. I like the sound that. BARTENDER I meant, what do you want to drink? TITAN Oh. EXT. BAR - LATER Titan stumbles out of the bar, carrying a large sack of money. MASTER MIND (O.S.) Your time has come to an end, Titan! He looks up to see Master Mind suddenly standing before him. TITAN What? MASTER MIND There can be only one master criminal in this city - and it's me. TITAN Really? Titan melodramatically throws up his arms. TITAN (CONT'D) I guess I should leave town then, huh? MASTER MIND I have a better idea - NOW! Two floors up Da Vinci releases a rope. A COPPER CAGE, like the one that caged Uberman, drops down on top of Titan. Titan nonchalantly surveys the cage. He walks to the bars, tries to pull them apart but can't. MASTER MIND (CONT'D) That's copper my good man. Your one weakness. (MORE) 84. MASTER MIND(cont'd) For all your amazing gifts of brawn you are no match for my intellect. Titan thinks for a moment. Suddenly, he starts to SPIN like a human top, DRILLING HIMSELF INTO THE STREET BELOW. As he disappears beneath the surface, we see a shocked look on Master Mind's face until Titan suddenly explodes out from under the street in front of him. Master Mind stares up at him, dumbfounded. Titan makes like he's going to strike him down, but stops. TITAN You know what? You're nothing but a bug. Not even worth my effort. He turns his back to Master Mind and continues down the street. Plato makes his way from the shadows to join his master. They watch Titan shrink into the distance. MASTER MIND He's not as dumb as I thought. PLATO I guess not...Funny, though. MASTER MIND What's funny? PLATO Funny Uberman didn't think of the same thing. EXT. HIGH ABOVE METRO CITY - DAY As Titan flies, he looks down at the rooftops of the city below. Suddenly, something catches his attention. HAL That's it! He stops, hovering in place as he looks down below. The buildings, which make up the heart of downtown Metro, are in a PERFECT TRIANGLE with a long strip of street leading up to it. It sorta looks like a bowling lane. 85. HAL Hello, Legacy. EXT. KINGPIN BOWLING - DAY Vinnie and his goons come running out as the hear a COMMOTION. They look up to see Titan ripping off THE GIANT BOWLING BALL from the top of the establishment. VINNIE Hey, that's my ball! INT. ROXANNE'S APARTMENT BUILDING - DAY Roxanne enters the building's elevator. Just before the door closes an ELDERLY WOMAN slides in. ELDERLY WOMAN That was a close one. Sixth floor, please. Roxanne smiles and goes to press the button. The elderly woman suddenly pulls out a SPRAY CAN, shooting a MYSTERIOUS-LOOKING MIST into Roxanne's face. She falls to the floor unconscious. INT. ROXANNE'S APARTMENT - DAY Roxanne awakens, finding herself tied to a chair in her living room. We hear NOISE from a TV in the background as she tries to adjust her vision. Slowly, the blurry figure before her becomes clear. It's Master Mind. He sits on her Lazy-Boy, reading what looks to be some kind of JOURNAL. MASTER MIND Wow, I always thought Uberman was your first superhero - but it looks like our little Roxanne dated a linebacker in college. ROXANNE That's my diary. MASTER MIND So it is. 86. ROXANNE It's personal. MASTER MIND Well, then I wouldn't leave it in your underwear drawer for just anyone to find. He throws the diary over his shoulder. ROXANNE What do you want? MASTER MIND I need your help. ROXANNE So you knock me out and tie me to a chair? MASTER MIND You're not going to like what I'm about to tell you. As she tries to shake off her headache from being knocked unconscious, Roxanne spots something on the TV. ON TELEVISION Brad Helms is huddled behind a van. BRAD HELMS It's chaos here in city square as city police - Behind him, Titan picks up a POLICE CAR and throws it at a PADDY WAGON. Both vehicles EXPLODE on impact. BACK TO SCENE ROXANNE He's really out of control. MASTER MIND Tell me about it. As if finally realizing something, Roxanne looks back at Master Mind. ROXANNE I should have known. You have something to do with this, don't you? - With Titan turning evil. 87. MASTER MIND Well, the evil thing he did by himself. My goal was to give MYSELF purpose by creating an intellectual sparring partner. ROXANNE (confused) You're talking like you made him. MASTER MIND And they call me Master Mind. ROXANNE Let me get this straight. You missed getting your ass kicked, so you made a new guy to kick your ass. That's pathetic. MASTER MIND In hindsight... Roxanne turns back to the TV to see a group of POLICE OFFICERS open fire on Titan. The bullets just deflect off his chest. ROXANNE And his powers, they're just like Uberman's. Why would he have his powers? MASTER MIND (almost ashamed) I had some left over from something. I infused him with it. ROXANNE YOU DID WHAT!? Driven by rage, she struggles to tear out of her bonds. She finally relents, giving Master Mind a look fueled by pure hatred. MASTER MIND Yeah, that's why I decided to tie you up. ROXANNE You did all this because you wanted purpose? MASTER MIND He seemed nice. 88. TELEVISION Titan is standing on top of a destroyed police car. He waves for the camera to zoom in on him. TITAN Closer. I want to show the people my real face. He pulls off his mask, revealing himself as Hal Stewart to the public for the first time. TITAN (CONT'D) Recognize me? BACK TO SCENE ROXANNE Hal Stewart. He's the guy we thought saved that woman and kid. Turned out he was just trying to save his own ass. MASTER MIND Yeah, good to know - NOW! TELEVISION Titan throws the mask over this shoulder and hops off the car. TITAN That's right, I'm really Hal Stewart. Former hero and bowling teacher at Kingpin's Bowling. BACK TO SCENE Roxanne turns to Master Mind, condescending him with her eyes. ROXANNE You picked a bowler to give super powers to? MASTER MIND It's a modest profession! TELEVISION 89. TITAN With my new found power, I've recently started to wonder what sort of legacy I should leave. Should I be a hero? I tried that once before - even saved a lady and her baby from being squashed. I was treated like a god until everyone started to shit on me - Okay, so what if I didn't "purposely" save them! He walks over and puts his hand on a large circular concrete shape just off camera. TITAN Well, I'm going to make something that can't be taken away from me. I'm going to create a permanent monument to my greatness. One that won't be so easily forgotten or erased. The camera pulls back revealing THE GIANT CONCRETE BOWLING BALL from Kingpin's. TITAN I intend to create a new category in the Guinness Book of World's Records by rolling the biggest strike in the history of bowling. He grabs the camera and points it to the DOWNTOWN BUILDINGS. We realize they are PERFECTLY ALIGNED IN BOWLING PIN FORMATION. TITAN My thanks to the city planning commission. This wouldn't have been possible without them. Titan grabs the camera so it's pointing back at him again. TITAN Tell your friends and family to tune in right here to this station at noon tomorrow. BACK TO SCENE ROXANNE My god, he's nuts. That'll destroy the whole business triangle. 90. Master Mind seems to be contemplating something - something bad. ROXANNE What? MASTER MIND My lair is in the direct path of the ball. ROXANNE Oh, real nice. Wouldn't want anything to happen to your hideout, would we? MASTER MIND You don't understand. I have certain equipment that's - that's highly unstable. ROXANNE What do you mean? MASTER MIND I sort of have a hydrogen reactor, okay? ROXANNE A HYDROGEN reactor? MASTER MIND It's experimental - only one in the world...Well, how do you think I power all my inventions? Someone like me can't pay for electricity. The bills would be outrageous. ROXANNE A REACTOR? MASTER MIND It creates 100 times the output of a nuclear one...If destroyed it could... ROXANNE - Vaporize the entire city! MASTER MIND (proudly) Pshaw...the whole eastern seaboard, actually. That little baby is amazing. I'm quite proud of it. (MORE) 91. MASTER MIND(cont'd) (off her deadpan reaction) I mean...we'd better find a way to stop him. Master Mind thinks a moment. MASTER MIND Did Uberman have a hideout? ROXANNE What? MASTER MIND A cave, a solitary fortress of some kind. C'mon, all heros have a place to hang their capes up in. Roxanne, it may be our only chance to find something, a clue, anything that could give us a fighting chance. ROXANNE It's under his house. MASTER MIND Whose house? Roxanne can hardly believe what she's telling him. ROXANNE Wayne Scott's. Master Mind shoots up out of his chair. MASTER MIND Wayne Scott? Uberman was Wayne Scott!? Wayne Scott, the wealthy philanthropist? But he disappeared - ROXANNE (interrupting) He disappeared just over two months ago when you killed him. Not only did you rid the world of a hero, you killed a kind, noble, generous man. Perhaps ashamed, the super villain hangs his head. Master Mind walks behind Roxanne and undoes her bonds. Rubbing her wrists, she watches him as he walks over to the door. 92. ROXANNE (CONT'D) Looks like you got what you always wanted. Uberman is out of the picture and Metro City is doomed. He grabs the door knob and stops, considering her words. MASTER MIND "Metro City doomed." You know, I never thought I'd say something like this, but here it goes - He slowly turns to her, CUE HEROIC MUSIC. MASTER MIND (CONT'D) Not if I have anything to say about it. EXT. WAYNE SCOTT'S MANSION - NIGHT Master Mind stands before the huge, Gothic structure in awe. MASTER MIND Such a dark place for one such as you. I wonder, underneath your noble deeds, what inner demons drove you to your endless crusade for justice? He walks to the front entrance. The double doors have been sealed shut with boards and nails. Master Mind begins to tear them off with his metal hand. INT. WAYNE SCOTT'S MANSION - NIGHT The doors opens. A beam of moonlight immediately pierces the darkness, forming an illuminated path into the heart of the manor. Master Mind enters. Covered in dust and cobwebs, the hall looks like a gigantic crypt. MASTER MIND Good lord, man. You've only been dead for two months. Master Mind walks, coming to a gigantic painted PORTRAIT OF WAYNE SCOTT. He stops to reverently admire the image of his fallen foe. 93. MASTER MIND (CONT'D) A disguise so simple, it's ingenious. No wonder I never caught on. Besides the Armani suit, there's nothing to hide the fact that this is the same person as Uberman. In the picture, he's even standing in the same cheesy, heroic pose with his fists on his hips. MASTER MIND (CONT'D) Two lives, yet in both you were an ideal. Perhaps it was you who was victorious in the end, old friend. A BONGING sound suddenly bellows through the dark halls. Master Mind comes to a grandfather clock standing next to a gigantic BOOKCASE. On the twelfth bong it falls silent. Master Mind begins to slide it across the floor until he hears a loud CLICK. The bookcase slides into the wall, REVEALING A HIDDEN PASSAGE. MASTER MIND (CONT'D) I'll miss how predictable you were. The passage way leads Master Mind to a WORKING ESCALATOR. Master Mind gets off the escalator to see a long hallway with stone walls. He begins to hear strange SOUNDS, almost like MUFFLED SCREAMS, coming from a doorway at the end of the hallway. Master Mind starts walking towards it. As he steps closer, he begins to notice a light cracking through the bottom of the door. MASTER MIND (CONT'D) Hello? Anyone here...besides..all the BIG MEN who are with me now? Nothing. MASTER MIND (CONT'D) (to himself) What's the worst you're gonna find? (MORE) 94. MASTER MIND(cont'd) The man was a boy scout, not a serial killer. He opens the door to his immediate amazement. It's some kind of screening room. A PROJECTOR shoots an image onto A DIRTY WHITE SCREEN hanging on the wall. BEER CANS litter the floor; a table in front of a ripped-up couch is covered in discarded snack goods; and a Kiss Pinball machine stands in the far corner next to a CLOSED DOOR. Master Mind turns his attention to the action on the screen. SCREEN A woman dressed in a leather DOMINATRIX OUTFIT is whipping an overweight man lying on a swing-like device with his butt sticking out. DOMINATRIX IN FILM YOU ARE A WORM! She whips him three times. The man CRIES out in pain. FAT MAN IN FILM PINEAPPLE!!! PINEAPPLE!!! Master Mind's eyes are transfixed on the disturbing imagery. The door by the pinball machine suddenly swings open. WAYNE SCOTT, dressed in raggedy sweats, steps into the room carrying a CAN OF BEER and a bowl of JIFFY-POP. Master Mind cannot believe his horrified eyes. MASTER MIND Ahhhhhh! Wayne Scott is just as startled. WAYNE SCOTT Jesus! He drop his drink and snack to the floor. The two men stare at each other as they struggle to regain their normal breathing patterns. Wayne Scott walks over to the couch, brushes off a thick layer of chip crumbs, and sits down. WAYNE SCOTT (CONT'D) What the hell are you doing here? 95. MASTER MIND I might just ask you the same question. I had thought I incinerated you. WAYNE SCOTT You scared the bejesus out of me. How'd you figure out I was still alive? Wait, how do you know my identity!? MASTER MIND Roxanne told me. As for your ruse, I forgot to line the bottom of the copper cage - Somebody pointed that out to me recently. Figured if they could do it, so could you. But one thing I couldn't figure out - WAYNE SCOTT The skeleton? Something I "borrowed" from a medical school a few months before. MASTER MIND A few months? How long had you been planning this? WAYNE SCOTT I always planned to retire - eventually. I mean, come on, you can't do this sort of thing in your fifties. You'd just look ridiculous. The pieces of the puzzle appear to be coming together in Master Mind's head. MASTER MIND I see it all so clearly now. INT. MASTER MIND'S HYDROFOIL - FLASHBACK Master Mind and his minions cover their eyes as the observatory explodes. MASTER MIND (CONT'D - V.O.) You must have done it just seconds before the observatory exploded. 96. INT. OBSERVATORY - FLASHBACK Similar to what Titan did, Uberman bores out from under the cage. MASTER MIND (CONT'D - V.O.) You bore out from under the cage. Then, using your Uber-Speed, - EXT. OBSERVATORY - FLASHBACK Running in a blur-like haze, Uberman screeches to a halt in front of some bushes. MASTER MIND (CONT'D - V.O.) - you made your way to safety, where you had the skeleton safely hidden away somewhere. EXT OBSERVATORY - SKY - DAY Uberman soars high above the clouds. He looks down at the observatory, which is a mere speck in the distance. MASTER MIND (CONT'D - V.O) (CONT'D) Then you must have flown to a safe distance and waited for the explosion, then... Just as the observatory explodes Uberman aims and throws the SKELETON like a javelin. It soars through the air like a missile, tearing through the flames of the explosion, and crashing right into the windshield of Master Mind's hydrofoil. END OF FLASHBACK Wayne stares at Master Mind, clearly impressed. WAYNE Man, you ARE smart. MASTER MIND But why fake your death? Why go through all of it? You could have just quit. WAYNE SCOTT But the responsibility would still be there. (MORE) 97. WAYNE SCOTT(cont'd) A cop can retire and stop handing out speeding tickets - but people expect more from superheroes. I tell you, a volcano couldn't erupt in Zimbabwe without everyone expecting me to do something about it. I figured, out of sight, out of mind. MASTER MIND And Wayne Scott? Why did he have to disappear? WAYNE SCOTT Both of my lives have so much baggage. It's time for new baggage, you know? Master Mind's is absolutely flabbergasted. MASTER MIND I just can't believe it. This whole time you've been in hiding while a force of great evil is tearing your city apart? Wayne rises to his feet, waving his hands for Master Mind to say no more. WAYNE SCOTT I don't want to hear about it. That's why I don't have a television in here to remind me of all the things I SHOULD be doing. Hell, I could get a wife to do that. MASTER MIND There's a demented supervillain out there about to destroy our - I mean, your city. Wayne shrugs indifferently. MASTER MIND You're really going to do nothing? WAYNE SCOTT Good and evil have a way of balancing themselves out. If this guy is as bad as you say, somebody will rise up to fight him. It's just the order of things. You found me, didn't you? 98. Wayne puts a condescending hand on Master Mind's shoulder. WAYNE SCOTT (CONT'D) I know it's hard, but you'll find someone else someday. He then starts walking to the door. MASTER MIND You're the only one who can stop him. Wayne turns around. WAYNE SCOTT Couldn't if I wanted to. Gotta a plane to catch. MASTER MIND A plane? WAYNE SCOTT Going to Barbados for a little change in climate. Now, if you'll excuse me, I got to go pack. He reads the still defeated look on Master Mind's face. WAYNE SCOTT (CONT'D) You were a good foe. I'm sorry if I've let you down. If it makes a difference, you were the best foe a hero could ask for. MASTER MIND Not smart enough to come up with a full-proof trap. WAYNE SCOTT Well, you did almost have me when you figured out my weakness was copper. Now that made me sweat a little. Took me way too long to drill out from under that cage. MASTER MIND I got lucky. WAYNE SCOTT Anyway, it's a good thing for my sake that I could always count on you for an out. 99. MASTER MIND (suddenly confused) What do you mean? WAYNE SCOTT C'mon, we always threw each other a couple of bones. You would always leave me an out in one of your `full-proof' traps, and I'd never had you incarcerated at a penitentiary that you couldn't eventually escape from. It kept our little game going. Master Mind seems deflated. MASTER MIND Game? - Was that all this ever was to you? You know, I was trying my best every time I fought you. Those `outs' as you call them were unintentional. WAYNE SCOTT Oh. MASTER MIND I guess I was never really a match for you, was I? Wayne shrugs. MASTER MIND (CONT'D) (thoughtfully) Then how can I expect to be one for Titan? A beaten man, Master Mind heads for the door, but stops and turns around. MASTER MIND (CONT'D) What about Roxanne? Wayne unleashes an exhausted sigh. WAYNE SCOTT I think we both got what we wanted out of our relationship. She got a career out of me, and I got plenty of other things out of her. But I'm ready to move on to greener pastures. 100. Master Mind's steel hand clinches into a fist at his side. Wayne's oblivious to this. MASTER MIND I guess I wasn't the villain I thought I was, and you...you weren't the hero I thought you were. He turns to make his exit when he suddenly sees ROXANNE STANDING IN THE DOOR FRAME. Wayne is almost at a loss for words. WAYNE SCOTT Roxanne! How long have you been... ROXANNE Long enough. Roxanne looks at Master Mind. ROXANNE (CONT'D) Don't you have something else you can go do? Master Mind leaves Roxanne and Wayne facing each other in silence. EXT. ANOTHER BAR - DAY Titan emerges with Brad and Frank. He's holding a BEER CAN and a bag of PORK RINDS. TITAN Alright, I want this whole thing to look ESPN professional, understand? A distant MECHANIZED RUMBLE can be heard. The noise rises, signaling the approach of something powerful. Titan and his crew walk out to the center of the plaza as the sound becomes almost deafening. A TANK TRACK as it moves over the street. We PULL BACK to see a whole line of TANKS rolling along the street. PLAZA From the five streets branching off the plaza, a dozen tanks roll toward Titan. 101. Titan turns to Brad and Frank. TITAN (CONT'D) You guys are about to get some good footage. I might need a little room, though. Brad and Frank look at each other and run to take cover behind a nearby building. Meanwhile, Titan nonchalantly sips from his beer as the tanks begin to surround them. FEEDBACK belts out of one of the tank's loudspeaker's, causing Titan to do a mock wince. TANK LOUDSPEAKER Titan, we have orders from the city of Metro to take you into custody. If you do not give your self up willingly, we will be forced to open fire. There's a long pause as no one says anything. TANK LOUDSPEAKER What is your answer? Titan takes a sip of his beverage and UNLEASHES A GIGANTIC BURP - The shockwave of which sends several of the tanks flying into a nearby building. Two of the remaining tanks close in on the villain. Both have him dead to rights at point-blank range with their massive guns. Titan sets down his beer, then calmly plugs a fist into each barrel. They FIRE. The FORCE OF THE BLAST SENDS THEM BOTH FLYING IN OPPOSITE DIRECTIONS where they CRASH into nearby buildings. Titan bends down and pick his beet back up. TITAN (to beer) Miss me? Titan is suddenly bombarded by a massive barrage of machine- gun fire. The force sends him flying into the windshield of a nearby car. 102. He looks up to see an APACHE ASSAULT COPTER. It's nose- mounted GATLING-GUN is turning toward him. Titan gets up to his feet and looks down at his beer can. The bottom of it was blown apart in the blast. TITAN (CONT'D) Didn't mean to get you involved in all of this. He stared daggers up at the helicopter pilot just as the gun gets a bead on him. TITAN (CONT'D) Hey, man! You killed my suds! Titan throws the can up and slaps it with the palm of his hand. It flies with so much force it knocks the helicopter blade clean off. The rest of the Apache crashes to the street like a car dropped off a building. TITAN (CONT'D) That's one was for you, beer. Titan salutes the wreckage and walks away to find Brad and Frank still hiding behind the building. TITAN Guys, please tell me you got that last bit. BRAD HELMS Huh? TITAN You're kidding me. I give you my sexiest moves and you mean to tell me it was for nothing? BRAD HELMS We were afraid something might hit us. TITAN Looks like I've given the story of the century to the wrong man. He thinks about this for a moment, then it hits him. 103. TITAN Wait. What about that other reporter. Blond. Not so lumpy on the topper half, but killer legs. BRAD HELMS Roxanne. You want Roxanne. She's a much better reporter than I am. You want her. TITAN Where can I find her. FRANK We're actually not supposed to give out that sort of information. BRAD HELMS 1314 Mockingbird Lane. I believe she lives in a penthouse. TITAN You've been very helpful. He tosses Brad over his shoulder like a discarded ice cream cone. In the faint distance we see him splash down in the middle of the Metro City river. INT. ABANDONED METRO CITY LIBRARY - DAY Master Mind, pacing anxiously as Plato and Da Vinci pack boxes. Obviously Master Mind is going on the lamb. MASTER MIND Hurry, we must be on our way as soon as possible. DA VINCI Master, why must we flee? MASTER MIND I told you, Titan is too powerful. If he's set on destroying us, there's precious little we could do about it. DA VINCI Where are we going? 104. MASTER MIND To another city, someplace with a shitload of superheroes to fight. We'll start over, we'll go back to doing what we do best. PLATO With our tails between our legs? The old Master Mind would never have let this comment slip by, but as we have seen, he's not the same man. MASTER MIND Plato, do you have a better plan?! Master Mind's cell phone rings. He turns in shame from his men and answers it. MASTER MIND (CONT'D) Hello...Roxanne? INT. ROXANNE'S APARTMENT Roxanne paces back and forth on the phone. ROXANNE What are you going to do about Tighten? INTERCUT between Master Mind and Roxanne on phone. MASTER MIND Right now I'm packing, later I'll have a snack on the train. ROXANNE You're running away? MASTER MIND In a word - yes. ROXANNE You created this monster... MASTER MIND I didn't create this - the god's of irony did and I am eating the crow I so richly deserve. ROXANNE There's no time for self pity. 105. MASTER MIND I'll make the time. Roxanne can't believe what she's hearing. MASTER MIND (CONT'D) You can leave with us. You'll be safe. ROXANNE I'm not going anywhere. MASTER MIND Will you listen to me, no one can stop him. ROXANNE You have to try. The city needs your help. MASTER MIND I'm afraid you have an inflated opinion of me. ROXANNE What the hell's happened to you? The Master Mind I knew would never have run from a fight even though he knew deep in his heart that he didn't have a chance in hell of winning it. It was your best quality. You need to be that man right now...I... MASTER MIND What? ROXANNE (heart felt) I believe in you. Master Mind is taken aback, in a good way. But he catches himself before the words swell his heart. MASTER MIND Sweet words, but that man is dead. Please, Roxanne, just come with me. ROXANNE No...I guess you are a coward after all. Suddenly, there's a loud crash. 106. Roxanne looks up to see a huge hunk of her ceiling has been completely ripped off. Titan is flying above, holding the debris as casually as if it were a paper plate at a barbecue. He looks down at her and smiles. TITAN Man, have I got a story for you. Master Mind can hears Titan's familiar laugh from his side of the line. MASTER MIND Roxanne? Roxanne? EXT. KINGPIN BOWLING - DAY Titan is standing in front of the bowling alley, trying to decide on an appropriate pose for the occasion. TITAN What pose would be best? The corny folded arms thing? He demonstrates, arching his chin proudly in the air. TITAN Or maybe on the hips, like this. It's the classic Superman pose, only not as masculine. TITAN No, makes me look like a flamer pirate. As Titan starts to fix his hair in the window, Frank pretends to fix the lens on his camera as he speaks to Roxanne. FRANK (whispering) Shouldn't we be making a run for it right about now? ROXANNE (whispering) The guy can outrun bullets. I don't think either one of us is in that kind of shape. TITAN She's right, Frank. 107. Frank looks up, stunned that Titan could have possibly heard him. TITAN Also got super hearing. I promise not to keep the both of you long, but you'll thank me when this is all over. Frank and Roxanne exchange helpless expressions. INT. ABANDONED METRO CITY LIBRARY - DAY Master Mind reverently stares up at the painted portrait of his father. MASTER MIND Dad, it's me... (he looks around to make sure no one can hear) ...Bubsy. I know we haven't talked in a while, and I'm sorry. It's been a little crazy trying to live up to a legacy. The painting's menacing stare seems to reach into his very soul. MASTER MIND Anyway...You raised me to be the worst that I could possibly be. And I've tried to live up to that as best as I could - even dropping out of dentistry school like you wanted me to. But I'm about to do something now that would really piss you off. I'm going to go against everything you ever taught me. I hope...I hope that maybe you'll look down at what I'm about to do as not so much a good deed, but more like the outright defiance of a hateful and ungrateful, son. If you could do that, then maybe - in your own little way - you could - for probably the first time - find a reason to be proud of me. He looks back up at the picture. Is it our imagination, or does the painting's stare suddenly seem even angrier? 108. MASTER MIND Well...either way, you're probably going to see me real soon. (calling over his shoulder) Men? Plato and Da Vinci suddenly stop what they're doing and look up at him. PLATO AND DA VINCI Yes Sir? MASTER MIND Stop packing. Our work is not finished here. PLATO AND DA VINCI YES SIR! TELEVISION A news report shows an aerial shot of Titan setting the giant ball down in the middle of a vacant city street. REPORTER We interrupt your regular afternoon programming to show you live footage of a potential dangerous situation in downtown Metro. The former hero knows as Titan is placing what appears to be a giant ball... INT. ABANDONED METRO CITY LIBRARY - CONTINUOUS Da Vinci stops in front of a television set, seeing the news report in progress. REPORTER Hold on...It appears our own Roxanne Ritchi is somehow at the scene. We now go to her with a live report. DA VINCI Sir, I think you should see this! CUT TO: 109. EXT. CITY STREET - DAY Roxanne is standing in front of a camera with a mike in her hand. ROXANNE I'm here with the cause of the destruction in Metro City. He has kidnapped me and a cameraman to chronicle what he refers to as the creation of a monument to his invincibility and overall "Asskickiness." He will use this giant concrete bowling ball to play the largest game of bowling ever using the buildings of downtown Metro City as his pins. Titan suddenly steps into the shot. TITAN And I'm going for the biggest strike ever. He leans into the camera. TITAN And you, Metro City, have a ringside seat as I cement my name in the anal of history. ROXANNE Annals. TITAN What? ROXANNE Nevermind. EXT. CITY STREET - MOMENTS LATER Titan holds up the massive bowling ball, lining up his shot. TITAN (in quiet professional bowler announcer voice) Like Tiger before him, a young savior has come to raise a sport from the ashes. Rookie Hal Stewart, a young man with a dream, realizing that dream here today, folks. (MORE) 110. TITAN(cont'd) One might click there heels and say "There's no place like home" upon finding themselves in such a fantasy. Well, Hal looks very much at home right were he is - with a ball in hand and glory in his sights. INT. METRO CITY LIBRARY - CONTINUOUS In the bowels of Master Mind's hideout, the HYDROGEN REACTOR glows and HUMS MENACINGLY. BACK TO SCENE Roxanne just stand helpless as Frank films away. ROXANNE Hal, I know everyone treated you like shit, but you don't have to do this. TITAN You're right. I don't HAVE to do anything. Isn't that cool? Titan lines up his shot. TITAN Here's one for the record books! Titan flies a few feet and rolls the ball down the main street. ROXANNE Her face is utter horror as she watches the inevitable destruction of Metro City. As the ball rolls - it demolishes everything in it's wake; cars, street lamps - windows shatter as the giant concrete sphere brushes along side buildings. TITAN He smiles in anticipation and uses "body English" to direct the ball. GIANT BOWLING BALL POV It's nearly halfway to its target. ROXANNE 111. She closes her eyes. Titan's smile fades. He looks around as if he hears something we don't. About two hundred feet in front of the first building a GIANT SPIDER WEB flies across the path of the ball, creating a defensive barrier. An enormous letter "M" is etched in the web's center. TITAN (CONT'D) What the...? The ball breaks through the web, but it's speed is greatly reduced. FRANK Look, what's that flying in the air? We suddenly see MASTER MIND FLYING OVER THE ROLLING BALL IN A JET PACK. He quickly pulls out his goo gun and starts laying down a path of sticky plasm to stop the destructive sphere's path. MASTER MIND C'mon, slow down Master Mind looks down to see the meter of the gun close to empty. MASTER MIND C'mon. The ball slows drastically then starts rolling to the side. It heads off an embankment and rolls harmlessly into a CANAL. MASTER MIND Gutterball! TITAN He's furious to say the least. TITAN YOU! Master Mind gives him a mocking grin. MASTER MIND Bowling? What other trailer park sports can you play? 112. TITAN You are becoming a real pain in my ass. I should have done this a long time ago. Titan lunges at his tormentor. Master Mind hits the BOOSTER on his jet pack and heads back toward the other side of the city with Titan in hot pursuit. MASTER MIND (CONT'D) (into walkie talkie) Plato, Da Vinci. Secure Roxanne, he's falling for it. ELSEWHERE A flustered Titan lands. He begins searching the city streets, but Master Mind is nowhere in sight. He turns upon hearing an EEKING sound to his left. Sitting on the ground is a CHIMPANZEE wearing a strange collar. It smiles at him. TITAN What the hell? From behind, Titan is immediately set upon by five more RADIO CONTROLLED APES. TITAN (CONT'D) GODAMNIT! The critters bite hop and hit Titan. As soon as he throws one off two more jump him. Titan breaks free and with his mighty breath blows them across the street into a fruit stand. With Titan out of their sight they begin to attack the fruit. MASTER MIND He's a block away frantically hitting his remote. MASTER MIND Shit! Stupid monkeys and their fruit. Titan flies away from the mad monkeys and lands to find Master Mind sitting on the ground wrapped in a long cape with only his head sticking out. 113. TITAN (CONT'D) No more games. Titan FIRES HIS LASER VISION AT MASTER MIND's CHEST. Master Mind pulls the cloak away to reveal a FIRE HYDRANT. Titan's EYE LASERS burn through the hydrant releasing a high pressure stream of water. Master Mind uses the last remote which dumps two tons of CEMENT mix into the truck. The crowd, police and news crews move in closer when Titan doesn't emerge. Master Mind drops his last remote and walks toward the truck cautiously. MASTER MIND Could it really be that easy-- - BOOM - The back of the truck explodes, throwing dust and concrete everywhere. When the dust clears we see and enraged Titan. MASTER MIND (CONT'D) Didn't think so. As the villain walks toward him, he pulls back his fist to give Master Mind the killing blow. TITAN If you don't mind, I'm going to punch trough your face now. Preparing himself for the end, Master Mind shuts his eyes as a SUDDEN GUST OF WIND BEGINS TO PICK UP. AS Titan goes to strike, a BLURRY FIGURE RUNS IN AND SNATCHES MASTER MIND OUT OF THE AWAY. Stunned, Master Mind begins to feel around his body as if to make sure everything's still in place. MASTER MIND I'm alive. He turns to see UBERMAN standing next to him. MASTER MIND Uberman? 114. The terrified bystanders start to notice the figure standing next to Master Mind. BYSTANDER 1 It's Uberman! BYSTANDER 2 Uberman's alive! BYSTANDER 3 We're saved! As the CROWD CHEERS, A confused Master Mind turns to Metro City's newly resurrected champion. MASTER MIND I thought. UBERMAN So did I. He puts a hand on Master Mind's shoulder. UBERMAN Thank you, old enemy. MASTER MIND For what? UBERMAN Showing me the error of my ways, Showing me I'm meant to be this city's savior, showing me that, while we can try, there is no running away from our true destiny. With that, UBERMAN IS STRICKEN BY A LASER BLAST, INSTANTLY TURNING HIM INTO A CHARRED HUMAN SKELETON. Master Mind turns to see Titan smiling with his STILL SMOKING EYES. TITAN Oh...Did I interrupt something? Master Mind turns to run, but, suddenly Titan is before him. TITAN Where you going, buddy? Titan grabs Master Mind by the collar and throws him across the street into a parked car. 115. TITAN (CONT'D) Welcome to Paintown. Population: you. Master Mind manages to stand on shaky legs. He seems in a daze, unable to move. Titan flies up in the air. TITAN (CONT'D) Time to finish this. With his fist front and center, Titan speeds toward Master Mind. He's like a human torpedo, coming in for the killing blow. Master Mind comes to his senses and puts up his hands. MASTER MIND WAIT!!! Titan screeches to a halt and stops just in front of him like an old Warner Bros cartoon. TITAN What? MASTER MIND Quick joke - What's the capital of Thailand? TITAN Huh - I don't know. MASTER MIND It's bang cock! In a sudden surge of strength, MASTER MIND PUNCHES TITAN IN THE GROIN. The once mighty man instantly drops to his knees, searching, with tears in his eyes, for the proper word to express the pain suddenly surging through his member. TITAN (CONT'D) Ow. Baffled, he looks up at Master Mind's hand and sees his gauntlet is now made ENTIRELY OUT OF COPPER. MASTER MIND So, I guess pennies are good for something. 116. He punches Titan in the face, knocking him out cold. Master Mind looks down on Titan with more than a little pride. Suddenly he hears something behind him. He spins to see the crowd making a strange noise - APPLAUSE. Roxanne comes up to him. The crowd starts to go wild and cheers for Master Mind. He's not sure what to make of it. ROXANNE Pretty strange, huh? MASTER MIND They're cheering for me. ROXANNE You saved them. You saved everybody. How's it feel? Master Mind looks at the smiles all around him. He begins to well up a little. MASTER MIND It's a...it's nice, you know? I usually don't get a lot of feedback. (whispering) But I also kind of caused all this. What happens when they find that out I was the cause of some of this? Roxanne looks at the cheering crowd, then back at Master Mind. ROXANNE What they don't know won't hurt them. MASTER MIND I guess that is all in the past. ROXANNE You're the hero. MASTER MIND I don't think I'd go that far...I mean I just...er... ROXANNE Master Mind? 117. MASTER MIND Yes? ROXANNE Stop talking. She kisses him. The crowd erupts in a cheer. TELEVISION The channel 7 he channel 7 logo zooms in followed by the title "Eye on Metro City." A picture of Master Mind smiling appears on the screen behind her. SAMANTHA SUMMERS Who's bad? Well, not Master Mind. It seems the former villain has done a career 180 after defeating Tighten and saving Metro City from certain enslavement. And here he is getting a full pardon by Metro City's Mayor, Steve Dent. Cut to ceremony on capital steps. The MAYOR is shaking Master Mind's metal gauntlet when it suddenly STARTS TO CRUSH HIS HAND. MAYOR Ahhh! Secret service men quickly start to draw their weapons and take aim at Master Mind. Realizing what's happening, he quickly lets the mayor's hand go and puts his arms in the air. MASTER MIND Sorry - Metal hand. Force of habit. He elbows the mayor. MASTER MIND (CONT'D) We're okay, right? Wincing, the mayor signals the men to put their guns down. WE CUT to video of Titan behind bars in a regular prison. 118. BRAD HELMS And what about Tighten? Is there a prison in existence that can hold this super powered menace? Well, the answer we found is no. A man in a white lab coat stands in front of Titan's cell just out of reach. PRISON SCIENTIST Of course normally he could break out of there anytime, but as you can see we've taken some special precautions. The news camera pans over see Titan in his cell wearing a copper JOCK STRAP with electrical cables hooked to it. Back to Samantha at the desk. BRAD HELMS What is a Hero? It seems never has that question needed to be asked more than it does tonight. We go to our very own Roxanne Ritchi, making her triumphant return to our news desk for the answer. Brad turns. The camera pans over to Roxanne who we now see has been sitting beside him. ROXANNE What is a hero? Well, there are many different kinds. There are those who hear a call, like the policeman or doctor, then there's the kind the public creates in their search for meaning and hope. Then, there are those who have the courage to change. DARK ALLEY - NIGHT A woman is being chased by two large thugs. They're gaining on her. She comes to a brick wall - a dead end. The thugs laugh. THUG #1 Hey, gimme that purse? 119. MASTER MIND (O.S) I don't think it would go with your outfit. The thugs turn around to see Master Mind, standing with his arms folded across his chest. THUG #2 It's Master Mind! Thug #1 draws a knife. THUG #1 So? It's not like he has any superpowers. Thug #1 puts his fingers to his mouth and whistles. Suddenly two more Thugs appear behind Master Mind. MASTER MIND I'm gonna give you a chance to surrender. THUG #1 Four against one. For a Master Mind, you're really bad at math. Master Mind throws a hand signal up in the air. Suddenly a giant robotic foot crashes down on the two men behind him. Thug #1 and Thug #2 drop their knives and raise their hands in the air. Master Mind looks up and waves. MASTER MIND Way to take out those two goons, guys! We see Da Vinci and Plato at the wheel of a gigantic robot. DA VINCI What two goons? The giant robot lifts its foot to check the bottom of it's sole. It KNOCKS OVER WATER TOWER in the process. The woman looks at Master Mind, horrified. 120. MASTER MIND (apologetically) Sorry, we're new at this. THE END
QijingZheng / VaspBandUnfoldingA collection of python scripts that deal with VASP outpts, e.g. WAVECAR, POTCAR etc.
jaretburkett / Electron Icon MakerAn icon generator to generate all the icon files needed for electron packaging
sindresorhus / Run ElectronRun Electron without all the junk terminal output
vaibhav-sidapara / Vagrant ManagerVagrant Manager is an electron, status bar menu app that lets you manage all of your vagrant machines from one central location.
RIAEvangelist / Electron Video Player[DEPRECATED] electron based video player for all platforms
Dotneteer / KliveideVersatile emulator and developer environment for all Sinclair machines, provided as Electron application using React and TypeScript
tiagovtristao / Clipmir DesktopA cross platform Electron app for mirroring the clipboard between all synced devices in the same network
ai-dashboad / Flutter SkillAI-powered E2E testing for 10 platforms. 253 MCP tools. Zero config. Works with Claude, Cursor, Windsurf, Copilot. Test Flutter, React Native, iOS, Android, Web, Electron, Tauri, KMP, .NET MAUI — all from natural language.
hockyy / MiteiruMiteiru is an open source Electron video player to learn Chinese, Cantonese, and Japanese AAAND VIETNAMESE! It can play all Youtube and HTML 5 supported format (.mkv, .mp4, .mov, and many more) videos, and lots of supports on other subtitle formats (.srt, .ass, .vtt, and many more)
JKerbin / SCO Smart Contract Obfuscation ToolA visualized, highly integrated, all-in-one code obfuscation tool specifically for smart contract source code. Support visual analysis of code structure, code obfuscation, code security assessment. Electron based development, all content of the project is under the Apache License 2.0 open source license
iofod / IFstruct ParserConvert your iofod project to Web, Electron, Flutter, Taro project code to support cross all platforms.
SimulatedGREG / Asar ExplorerNow you can snoop through all the electron apps
klonnet23 / Helloy Word{ "releases": { "2.0.4": [ "[Fixed] Refresh for Enterprise repositories did not handle API error querying branches - #7713", "[Fixed] Missing \"Discard all changes\" context menu in Changes header - #7696", "[Fixed] \"Select all\" keyboard shortcut not firing on Windows - #7759" ], "2.0.4-beta1": [ "[Fixed] Refresh for Enterprise repositories did not handle API error querying branches - #7713", "[Fixed] Missing \"Discard all changes\" context menu in Changes header - #7696", "[Fixed] \"Select all\" keyboard shortcut not firing on Windows - #7759" ], "2.0.4-beta0": [ "[Added] Extend crash reports with more information about application state for troubleshooting - #7693", "[Fixed] Crash when attempting to update pull requests with partially updated repository information - #7688", "[Fixed] Crash when loading repositories after signing in through the welcome flow - #7699" ], "2.0.3": [ "[Fixed] Crash when loading repositories after signing in through the welcome flow - #7699" ], "2.0.2": [ "[Added] Extend crash reports with more information about application state for troubleshooting - #7693" ], "2.0.1": [ "[Fixed] Crash when attempting to update pull requests with partially updated repository information - #7688" ], "2.0.0": [ "[New] You can now choose to bring your changes with you to a new branch or stash them on the current branch when switching branches - #6107", "[New] Rebase your current branch onto another branch using a guided flow - #5953", "[New] Repositories grouped by owner, and recent repositories listed at top - #6923 #7132", "[New] Suggested next steps now includes suggestion to create a pull request after publishing a branch - #7505", "[Added] .resx syntax highlighting - #7235. Thanks @say25!", "[Added] \"Exit\" menu item now has accelerator and access key - #6507. Thanks @AndreiMaga!", "[Added] Help menu entry to view documentation about keyboard shortcuts - #7184", "[Added] \"Discard all changes\" action under Branch menu - #7394. Thanks @ahuth!", "[Fixed] \"Esc\" key does not close Repository or Branch list - #7177. Thanks @roottool!", "[Fixed] Attempting to revert commits not on current branch results in an error - #6300. Thanks @msftrncs!", "[Fixed] Emoji rendering in app when account name has special characters - #6909", "[Fixed] Files staged outside Desktop for deletion are incorrectly marked as modified after committing - #4133", "[Fixed] Horizontal scroll bar appears unnecessarily when switching branches - #7212", "[Fixed] Icon accessibility labels fail when multiple icons are visible at the same time - #7174", "[Fixed] Incorrectly encoding URLs affects issue filtering - #7506", "[Fixed] License templates do not end with newline character - #6999", "[Fixed] Conflicts banners do not hide after aborting operation outside Desktop - #7046", "[Fixed] Missing tooltips for change indicators in the sidebar - #7174", "[Fixed] Mistaken classification of all crashes being related to launch - #7126", "[Fixed] Unable to switch keyboard layout and retain keyboard focus while using commit form - #6366. Thanks @AndreiMaga!", "[Fixed] Prevent console errors due to underlying component unmounts - #6970", "[Fixed] Menus disabled by activity in inactive repositories - #6313", "[Fixed] Race condition with Git remote lookup may cause push to incorrect remote - #6986", "[Fixed] Restore GitHub Desktop to main screen if external monitor removed - #7418 #2107. Thanks @say25!", "[Fixed] Tab Bar focus ring outlines clip into other elements - #5802. Thanks @Daniel-McCarthy!", "[Improved] \"Automatically Switch Theme\" on macOS checks theme on launch - #7116. Thanks @say25!", "[Improved] \"Add\" button in repository list should always be visible - #6646", "[Improved] Pull Requests list loads and updates pull requests from GitHub more quickly - #7501 #7163", "[Improved] Indicator hidden in Pull Requests list when there are no open pull requests - #7258", "[Improved] Manually refresh pull requests instead of having to wait for a fetch - #7027", "[Improved] Accessibility attributes for dialog - #6496. Thanks @HirdayGupta!", "[Improved] Alignment of icons in repository list - #7133", "[Improved] Command line interface warning when using \"github open\" with a remote URL - #7452. Thanks @msztech!", "[Improved] Error message when unable to publish private repository to an organization - #7472", "[Improved] Initiate cloning by pressing \"Enter\" when a repository is selected - #6570. Thanks @Daniel-McCarthy!", "[Improved] Lowercase pronoun in \"Revert this commit\" menu item - #7534", "[Improved] Styles for manual resolution button in \"Resolve Conflicts\" dialog - #7302", "[Improved] Onboarding language for blank slate components - #6638. Thanks @jamesgeorge007!", "[Improved] Explanation for manually conflicted text files in diff viewer - #7611", "[Improved] Visual progress on \"Remove Repository\" and \"Discard Changes\" dialogs - #7015. Thanks @HashimotoYT!", "[Improved] Menu items now aware of force push state and preference to confirm repository removal - #4976 #7138", "[Removed] Branch and pull request filter text persistence - #7437", "[Removed] \"Discard all changes\" context menu item from Changes list - #7394. Thanks @ahuth!" ], "1.7.1-beta1": [ "[Fixed] Tab Bar focus ring outlines clip into other elements - #5802. Thanks @Daniel-McCarthy!", "[Improved] Show explanation for manually conflicted text files in diff viewer - #7611", "[Improved] Alignment of entries in repository list - #7133" ], "1.7.0-beta9": [ "[Fixed] Add warning when renaming a branch with a stash - #7283", "[Fixed] Restore Desktop to main screen when external monitor removed - #7418 #2107. Thanks @say25!", "[Improved] Performance for bringing uncommitted changes to another branch - #7474" ], "1.7.0-beta8": [ "[Added] Accelerator and access key to \"Exit\" menu item - #6507. Thanks @AndreiMaga!", "[Fixed] Pressing \"Shift\" + \"Alt\" in Commit summary moves input-focus to app menu - #6366. Thanks @AndreiMaga!", "[Fixed] Incorrectly encoding URLs affects issue filtering - #7506", "[Improved] Command line interface warns with helpful message when given a remote URL - #7452. Thanks @msztech!", "[Improved] Lowercase pronoun in \"Revert this commit\" menu item - #7534", "[Improved] \"Pull Requests\" list reflects pull requests from GitHub more quickly - #7501", "[Removed] Branch and pull request filter text persistence - #7437" ], "1.7.0-beta7": [ "[Improved] Error message when unable to publish private repository to an organization - #7472", "[Improved] \"Stashed changes\" button accessibility improvements - #7274", "[Improved] Performance improvements for bringing changes to another branch - #7471", "[Improved] Performance improvements for detecting conflicts from a restored stash - #7476" ], "1.7.0-beta6": [ "[Fixed] Stash viewer does not disable restore button when changes present - #7409", "[Fixed] Stash viewer does not center \"no content\" text - #7299", "[Fixed] Stash viewer pane width not remembered between sessions - #7416", "[Fixed] \"Esc\" key does not close Repository or Branch list - #7177. Thanks @roottool!", "[Fixed] Stash not cleaned up when it conflicts with working directory contents - #7383", "[Improved] Branch names remain accurate in dialog when stashing and switching branches - #7402", "[Improved] Moved \"Discard all changes\" to Branch menu to prevent unintentionally discarding all changes - #7394. Thanks @ahuth!", "[Improved] UI responsiveness when using keyboard to choose branch in rebase flow - #7407" ], "1.7.0-beta5": [ "[Fixed] Handle warnings if stash creation encounters file permission issue - #7351", "[Fixed] Add \"View stash entry\" action to suggested next steps - #7353", "[Fixed] Handle and recover from failed rebase flow starts - #7223", "[Fixed] Reverse button order when viewing a stash on macOS - #7273", "[Fixed] Prevent console errors due to underlying component unmounts - #6970", "[Fixed] Rebase success banner always includes base branch name - #7220", "[Improved] Added explanatory text for \"Restore\" button for stashes - #7303", "[Improved] Ask for confirmation before discarding stash - #7348", "[Improved] Order stashed changes files alphabetically - #7327", "[Improved] Clarify \"Overwrite Stash Confirmation\" dialog text - #7361", "[Improved] Message shown in rebase setup when target branch is already rebased - #7343", "[Improved] Update stashing prompt verbiage - #7393.", "[Improved] Update \"Start Rebase\" dialog verbiage - #7391", "[Improved] Changes list now reflects what will be committed when handling rebase conflicts - #7006" ], "1.7.0-beta4": [ "[Fixed] Manual conflict resolution choice not updated when resolving rebase conflicts - #7255", "[Fixed] Menu items don't display the expected verbiage for force push and removing a repository - #4976 #7138" ], "1.7.0-beta3": [ "[New] Users can choose to bring changes with them to a new branch or stash them on the current branch when switching branches - #6107", "[Added] GitHub Desktop keyboard shortcuts available in Help menu - #7184", "[Added] .resx file extension highlighting support - #7235. Thanks @say25!", "[Fixed] Attempting to revert commits not on current branch results in an error - #6300. Thanks @msftrncs!", "[Improved] Warn users before rebase if operation will require a force push after rebase complete - #6963", "[Improved] Do not show the number of pull requests when there are no open pull requests - #7258", "[Improved] Accessibility attributes for dialog - #6496. Thanks @HirdayGupta!", "[Improved] Initiate cloning by pressing \"Enter\" when a repository is selected - #6570. Thanks @Daniel-McCarthy!", "[Improved] Manual Conflicts button styling - #7302", "[Improved] \"Add\" button in repository list should always be visible - #6646" ], "1.7.0-beta2": [ "[New] Rebase your current branch onto another branch using a guided flow - #5953", "[Fixed] Horizontal scroll bar appears unnecessarily when switching branches - #7212", "[Fixed] License templates do not end with newline character - #6999", "[Fixed] Merge/Rebase conflicts banners do not clear when aborting the operation outside Desktop - #7046", "[Fixed] Missing tooltips for change indicators in the sidebar - #7174", "[Fixed] Icon accessibility labels fail when multiple icons are visible at the same time - #7174", "[Improved] Pull requests load faster and PR build status updates automatically - #7163" ], "1.7.0-beta1": [ "[New] Recently opened repositories appear at the top of the repository list - #7132", "[Fixed] Error when selecting diff text while diff is updating - #7131", "[Fixed] Crash when unable to create log file on disk - #7096", "[Fixed] Race condition with remote lookup could cause push to go to incorrect remote - #6986", "[Fixed] Mistaken classification of all crashes being related to launch - #7126", "[Fixed] Prevent menus from being disabled by activity in inactive repositories - #6313", "[Fixed] \"Automatically Switch Theme\" on macOS does not check theme on launch - #7116. Thanks @say25!", "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Emoji rendering in app broken when account name has special characters - #6909", "[Fixed] Files staged outside Desktop for deletion are incorrectly marked as modified after committing - #4133", "[Improved] Visual feedback on \"Remove Repository\" and \"Discard Changes\" dialogs to show progress - #7015. Thanks @HashimotoYT!", "[Improved] Onboarding language for blank slate components - #6638. Thanks @jamesgeorge007!", "[Improved] Manually refresh pull requests instead of having to wait for a fetch - #7027" ], "1.6.6": [ "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Handle error when unable to create log file for app - #7096", "[Fixed] Crash when selecting text while the underlying diff changes - #7131" ], "1.6.6-test1": [ "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Handle error when unable to create log file for app - #7096", "[Fixed] Crash when selecting text while the underlying diff changes - #7131" ], "1.6.5": [ "[Fixed] Publish Repository does not let you publish to an organization on your Enterprise account - #7052" ], "1.6.5-beta2": [ "[Fixed] Publish Repository does not let you choose an organization on your Enterprise account - #7052" ], "1.6.5-beta1": [ "[Fixed] Publish Repository does not let you choose an organization on your Enterprise account - #7052" ], "1.6.4": [ "[Fixed] Embedded Git not working for core.longpath usage in some environments - #7028", "[Fixed] \"Recover missing repository\" can get stuck in a loop - #7038" ], "1.6.4-beta1": [ "[Fixed] Embedded Git not working for core.longpath usage in some environments - #7028", "[Fixed] \"Recover missing repository\" can get stuck in a loop - #7038" ], "1.6.4-beta0": [ "[Removed] Option to discard when files would be overwritten by a checkout - #7016" ], "1.6.3": [ "[New] Display \"pull with rebase\" if a user has set this option in their Git config - #6553 #3422", "[Fixed] Context menu does not open when right clicking on the edges of files in Changes list - #6296. Thanks @JQuinnie!", "[Fixed] Display question mark in image when no commit selected in dark theme - #6915. Thanks @say25!", "[Fixed] No left padding for :emoji:/@user/#issue autocomplete forms. - #6895. Thanks @murrelljenna!", "[Fixed] Reinstate missing image and update illustration in dark theme when no local changes exist - #6894", "[Fixed] Resizing the diff area preserves text selection range - #2677", "[Fixed] Text selection in wrapped diff lines now allows selection of individual lines - #1551", "[Improved] Add option to fetch when a user needs to pull changes from the remote before pushing - #2738 #5451", "[Improved] Enable Git protocol v2 for fetch/push/pull operations - #6142", "[Improved] Moving mouse pointer outside visible diff while selecting a range of lines in a partial commit now automatically scrolls the diff - #658", "[Improved] Sign in form validates both username and password - #6952. Thanks @say25!", "[Improved] Update GitHub logo in \"About\" dialog - #5619. Thanks @HashimotoYT!" ], "1.6.3-beta4": [ "[Improved] Update GitHub logo in \"About\" dialog - #5619. Thanks @HashimotoYT!", "[Improved] Sign in form validates both username and password - #6952. Thanks @say25!" ], "1.6.3-beta3": [ "[New] Display \"pull with rebase\" if a user has set this option in their Git config - #6553 #3422", "[Added] Provide option to discard when files would be overwritten by a checkout - #6755. Thanks @mathieudutour!", "[Fixed] No left padding for :emoji:/@user/#issue autocomplete forms. - #6895. Thanks @murrelljenna!", "[Fixed] Reinstate missing image and fix illustration to work in the dark theme when there are no local changes - #6894", "[Fixed] Display question mark image when there is no commit selected in dark theme - #6915. Thanks @say25!", "[Improved] Group and filter repositories by owner - #6923", "[Improved] Add option to fetch when a user needs to pull changes from the remote before pushing - #2738 #5451" ], "1.6.3-beta2": [ "[Fixed] Text selection in wrapped diff lines now allows selection of individual lines - #1551", "[Fixed] Resizing the diff area preserves text selection range - #2677", "[Improved] Moving the mouse pointer outside of the visible diff while selecting a range of lines in a partial commit will now automatically scroll the diff - #658" ], "1.6.3-beta1": [ "[New] Branches that have been merged and deleted on GitHub.com will now be pruned after two weeks - #750", "[Fixed] Context menu doesn't open when right clicking on the edges of files in Changes list - #6296. Thanks @JQuinnie!", "[Improved] Enable Git protocol v2 for fetch/push/pull operations - #6142", "[Improved] Upgrade to Electron v3 - #6391" ], "1.6.2": [ "[Added] Allow users to also resolve manual conflicts when resolving merge conflicts - #6062", "[Added] Automatic switching between Dark and Light modes on macOS - #5037. Thanks @say25!", "[Added] Crystal and Julia syntax highlighting - #6710. Thanks @KennethSweezy!", "[Added] Lua and Fortran syntax highlighting - #6700. Thanks @SimpleBinary!", "[Fixed] Abbreviated commits are not long enough for large repositories - #6662. Thanks @say25!", "[Fixed] App menu bar visible on hover on Windows when in \"Let’s get started\" mode - #6669", "[Fixed] Fix pointy corners on commit message text area - #6635. Thanks @lisavogtsf!", "[Fixed] Inconsistent \"Reveal in …\" labels for context menus - #6466. Thanks @say25!", "[Fixed] Merge conflict conflict did not ask user to resolve some binary files - #6693", "[Fixed] Prevent concurrent fetches between user and status indicator checks - #6121 #5438 #5328", "[Fixed] Remember scroll positions in History and Changes lists - #5177 #5059. Thanks @Daniel-McCarthy!", "[Improved] Guided merge conflict resolution only commits changes relevant to the merge - #6349", "[Improved] Use higher contrast color for links in \"Merge Conflicts\" dialog - #6758", "[Improved] Add link to all release notes in Release Notes dialog - #6443. Thanks @koralcem!", "[Improved] Arrow for renamed/copied changes when viewing commit - #6519. Thanks @koralcem!", "[Improved] Updated verbiage for ignoring the files - #6689. Thanks @PaulViola!" ], "1.6.2-beta3": [ "[Improved] Guided merge conflict resolution only commits changes relevant to the merge - #6349" ], "1.6.2-beta2": [ "[Added] Allow users to also resolve manual conflicts when resolving merge conflicts - #6062", "[Added] Crystal and Julia syntax highlighting - #6710. Thanks @KennethSweezy!", "[Fixed] Fix pointy corners on commit message text area - #6635. Thanks @lisavogtsf!", "[Fixed] Use higher contrast color for links in \"Merge Conflicts\" dialog - #6758" ], "1.6.2-beta1": [ "[Added] Automatic switching between Dark and Light modes on macOS - #5037. Thanks @say25!", "[Added] Lua and Fortran syntax highlighting - #6700. Thanks @SimpleBinary!", "[Fixed] Abbreviated commits are not long enough for large repositories - #6662. Thanks @say25!", "[Fixed] App menu bar visible on hover on Windows when in \"Let’s get started\" mode - #6669", "[Fixed] Remember scroll positions in History and Changes lists - #5177 #5059. Thanks @Daniel-McCarthy!", "[Fixed] Inconsistent \"Reveal in …\" labels for context menus - #6466. Thanks @say25!", "[Fixed] Prevent concurrent fetches between user and status indicator checks - #6121 #5438 #5328", "[Fixed] Merge conflict conflict did not ask user to resolve some binary files - #6693", "[Improved] Add link to all release notes in Release Notes dialog - #6443. Thanks @koralcem!", "[Improved] Arrow for renamed/copied changes when viewing commit - #6519. Thanks @koralcem!", "[Improved] Menu state updating to address race condition - #6643", "[Improved] Updated verbiage when clicking on changed files to make it more explicit what will occur when you ignore the file(s) - #6689. Thanks @PaulViola!" ], "1.6.2-beta0": [ "[Fixed] Don't show \"No local changes\" view when switching between changed files" ], "1.6.1": [ "[Fixed] Don't show \"No local changes\" view when switching between changed files" ], "1.6.0": [ "[New] Help users add their first repo during onboarding - #6474", "[New] \"No local changes\" view helpfully suggests next actions for you to take - #6445", "[Added] Support JetBrains Webstorm as an external editor - #6077. Thanks @KennethSweezy!", "[Added] Add Visual Basic syntax highlighting - #6461. Thanks @SimpleBinary!", "[Fixed] Automatically locate a missing repository when it cannot be found - #6228. Thanks @msftrncs!", "[Fixed] Don't include untracked files in merge commit - #6411", "[Fixed] Don't show \"Still Conflicted Warning\" when all conflicts are resolved - #6451", "[Fixed] Only execute menu action a single time upon hitting Enter - #5344", "[Fixed] Show autocompletion of GitHub handles and issues properly in commit description field - #6459", "[Improved] Repository list when no repositories found - #5566 #6474", "[Improved] Image diff menu no longer covered by large images - #6520. Thanks @06b!", "[Improved] Enable additional actions during a merge conflict - #6385", "[Improved] Increase contrast on input placeholder color in dark mode - #6556", "[Improved] Don't show merge success banner when attempted merge doesn't complete - #6282", "[Improved] Capitalize menu items appropriately on macOS - #6469" ], "1.6.0-beta3": [ "[Fixed] Autocomplete selection does not overflow text area - #6459", "[Fixed] No local changes views incorrectly rendering ampersands - #6596", "[Improved] Capitalization of menu items on macOS - #6469" ], "1.6.0-beta2": [ "[New] \"No local changes\" view makes it easy to find and accomplish common actions - #6445", "[Fixed] Automatically locate a missing repository when it cannot be found - #6228. Thanks @msftrncs!", "[Improved] Enable additional actions during a merge conflict - #6385", "[Improved] Increase contrast on input placeholder color in dark mode - #6556", "[Improved] Merge success banner no longer shown when attempted merge doesn't complete - #6282" ], "1.6.0-beta1": [ "[New] Help users add their first repo during onboarding - #6474", "[Added] Include ability for users to add new repositories when there are none available - #5566 #6474", "[Added] Support JetBrains Webstorm as an external editor - #6077. Thanks @KennethSweezy!", "[Added] Add Visual Basic syntax highlighting - #6461. Thanks @SimpleBinary!", "[Fixed] Don't include untracked files in merge commit - #6411", "[Fixed] Don't show \"Still Conflicted Warning\" when all conflicts are resolved - #6451", "[Fixed] Enter when using keyboard to navigate app menu executed menu action twice - #5344", "[Improved] Image diff menu no longer covered by large images - #6520. Thanks @06b!" ], "1.5.2-beta0": [], "1.5.1": [ "[Added] Provide keyboard shortcut for getting to commit summary field - #1719. Thanks @bruncun!", "[Added] Add hover states on list items and tabs - #6310", "[Added] Add Dockerfile syntax highlighting - #4533. Thanks @say25!", "[Added] Support Visual SlickEdit as an external editor - #6029. Thanks @texasaggie97!", "[Fixed] Allow repositories to be cloned to empty folders - #5857. Thanks @Daniel-McCarthy!", "[Fixed] Prevent creating branch with detached HEAD from reverting to default branch - #6085", "[Fixed] Fix \"Open In External Editor\" for Atom/VS Code on Windows when paths contain spaces - #6181. Thanks @msftrncs!", "[Fixed] Persist Branch List and Pull Request List filter text - #6002. Thanks @Daniel-McCarthy!", "[Fixed] Retain renamed branches position in recent branches list - #6155. Thanks @gnehcc!", "[Fixed] Prevent avatar duplication when user is co-author and committer - #6135. Thanks @bblarney!", "[Fixed] Provide keyboard selection for the \"Clone a Repository\" dialog - #3596. Thanks @a-golovanov!", "[Fixed] Close License & Open Source Notices dialog upon pressing \"Enter\" in dialog - #6137. Thanks @bblarney!", "[Fixed] Dismiss \"Merge into Branch\" dialog with escape key - #6154. Thanks @altaf933!", "[Fixed] Focus branch selector when comparing to branch from menu - #5600", "[Fixed] Reverse fold/unfold icons for expand/collapse commit summary - #6196. Thanks @HazemAM!", "[Improved] Allow toggling between diff modes - #6231. Thanks @06b!", "[Improved] Show focus around full input field - #6234. Thanks @seokju-na!", "[Improved] Make lists scroll to bring selected items into view - #6279", "[Improved] Consistently order the options for adding a repository - #6396. Thanks @vilanz!", "[Improved] Clear merge conflicts banner after there are no more conflicted files - #6428" ], "1.5.1-beta6": [ "[Improved] Consistently order the options for adding a repository - #6396. Thanks @vilanz!", "[Improved] Clear merge conflicts banner after there are no more conflicted files - #6428" ], "1.5.1-beta5": [ "[Improved] Commit conflicted files warning - #6381", "[Improved] Dismissable merge conflict dialog and associated banner - #6379 #6380", "[Fixed] Fix feature flag for readme overwrite warning so that it shows on beta - #6412" ], "1.5.1-beta4": [ "[Improved] Display warning if existing readme file will be overwritten - #6338. Thanks @Daniel-McCarthy!", "[Improved] Add check for attempts to commit >100 MB files without Git LFS - #997. Thanks @Daniel-McCarthy!", "[Improved] Merge conflicts dialog visual updates - #6377" ], "1.5.1-beta3": [ "[Improved] Maintains state on tabs for different methods of cloning repositories - #5937" ], "1.5.1-beta2": [ "[Improved] Clarified internal documentation - #6348. Thanks @bblarney!" ], "1.5.1-beta1": [ "[Added] Provide keyboard shortcut for getting to commit summary field - #1719. Thanks @bruncun!", "[Added] Add hover states on list items and tabs - #6310", "[Added] Add Dockerfile syntax highlighting - #4533. Thanks @say25!", "[Added] Support Visual SlickEdit as an external editor - #6029. Thanks @texasaggie97!", "[Improved] Allow toggling between diff modes - #6231. Thanks @06b!", "[Improved] Show focus around full input field - #6234. Thanks @seokju-na!", "[Improved] Make lists scroll to bring selected items into view - #6279", "[Fixed] Allow repositories to be cloned to empty folders - #5857. Thanks @Daniel-McCarthy!", "[Fixed] Prevent creating branch with detached HEAD from reverting to default branch - #6085", "[Fixed] Fix 'Open In External Editor' for Atom/VS Code on Windows when paths contain spaces - #6181. Thanks @msftrncs!", "[Fixed] Persist Branch List and Pull Request List filter text - #6002. Thanks @Daniel-McCarthy!", "[Fixed] Retain renamed branches position in recent branches list - #6155. Thanks @gnehcc!", "[Fixed] Prevent avatar duplication when user is co-author and committer - #6135. Thanks @bblarney!", "[Fixed] Provide keyboard selection for the ‘Clone a Repository’ dialog - #3596. Thanks @a-golovanov!", "[Fixed] Close License & Open Source Notices dialog upon pressing \"Enter\" in dialog - #6137. Thanks @bblarney!", "[Fixed] Dismiss \"Merge into Branch\" dialog with escape key - #6154. Thanks @altaf933!", "[Fixed] Focus branch selector when comparing to branch from menu - #5600", "[Fixed] Reverse fold/unfold icons for expand/collapse commit summary - #6196. Thanks @HazemAM!" ], "1.5.1-beta0": [], "1.5.0": [ "[New] Clone, create, or add repositories right from the repository dropdown - #5878", "[New] Drag-and-drop to add local repositories from macOS tray icon - #5048", "[Added] Resolve merge conflicts through a guided flow - #5400", "[Added] Allow merging branches directly from branch dropdown - #5929. Thanks @bruncun!", "[Added] Commit file list now has \"Copy File Path\" context menu action - #2944. Thanks @Amabel!", "[Added] Keyboard shortcut for \"Rename Branch\" menu item - #5964. Thanks @agisilaos!", "[Added] Notify users when a merge is successfully completed - #5851", "[Fixed] \"Compare on GitHub\" menu item enabled when no repository is selected - #6078", "[Fixed] Diff viewer blocks keyboard navigation using reverse tab order - #2794", "[Fixed] Launching Desktop from browser always asks to clone repository - #5913", "[Fixed] Publish dialog displayed on push when repository is already published - #5936", "[Improved] \"Publish Repository\" dialog handles emoji characters - #5980. Thanks @WaleedAshraf!", "[Improved] Avoid repository checks when no path is specified in \"Create Repository\" dialog - #5828. Thanks @JakeHL!", "[Improved] Clarify the direction of merging branches - #5930. Thanks @JQuinnie!", "[Improved] Default commit summary more explanatory and consistent with GitHub.com - #6017. Thanks @Daniel-McCarthy!", "[Improved] Display a more informative message on merge dialog when branch is up to date - #5890", "[Improved] Getting a repository's status only blocks other operations when absolutely necessary - #5952", "[Improved] Display current branch in header of merge dialog - #6027", "[Improved] Sanitize repository name before publishing to GitHub - #3090. Thanks @Daniel-McCarthy!", "[Improved] Show the branch name in \"Update From Default Branch\" menu item - #3018. Thanks @a-golovanov!", "[Improved] Update license and .gitignore templates for initializing a new repository - #6024. Thanks @say25!" ], "1.5.0-beta5": [], "1.5.0-beta4": [ "[Fixed] \"Compare on GitHub\" menu item enabled when no repository is selected - #6078", "[Fixed] Diff viewer blocks keyboard navigation using reverse tab order - #2794", "[Improved] \"Publish Repository\" dialog handles emoji characters - #5980. Thanks @WaleedAshraf!" ], "1.5.0-beta3": [], "1.5.0-beta2": [ "[Added] Resolve merge conflicts through a guided flow - #5400", "[Added] Notify users when a merge is successfully completed - #5851", "[Added] Allow merging branches directly from branch dropdown - #5929. Thanks @bruncun!", "[Improved] Merge dialog displays current branch in header - #6027", "[Improved] Clarify the direction of merging branches - #5930. Thanks @JQuinnie!", "[Improved] Show the branch name in \"Update From Default Branch\" menu item - #3018. Thanks @a-golovanov!", "[Improved] Default commit summary more explanatory and consistent with GitHub.com - #6017. Thanks @Daniel-McCarthy!", "[Improved] Updated license and .gitignore templates for initializing a new repository - #6024. Thanks @say25!" ], "1.5.0-beta1": [ "[New] Repository switcher has a convenient \"Add\" button to add other repositories - #5878", "[New] macOS tray icon now supports drag-and-drop to add local repositories - #5048", "[Added] Keyboard shortcut for \"Rename Branch\" menu item - #5964. Thanks @agisilaos!", "[Added] Commit file list now has \"Copy File Path\" context menu action - #2944. Thanks @Amabel!", "[Fixed] Launching Desktop from browser always asks to clone repository - #5913", "[Fixed] Publish dialog displayed on push when repository is already published - #5936", "[Improved] Sanitize repository name before publishing to GitHub - #3090. Thanks @Daniel-McCarthy!", "[Improved] Getting a repository's status only blocks other operations when absolutely necessary - #5952", "[Improved] Avoid repository checks when no path is specified in \"Create Repository\" dialog - #5828. Thanks @JakeHL!", "[Improved] Display a more informative message on merge dialog when branch is up to date - #5890" ], "1.4.4-beta0": [], "1.4.3": [ "[Added] Add \"Remove Repository\" keyboard shortcut - #5848. Thanks @say25!", "[Added] Add keyboard shortcut to delete a branch - #5018. Thanks @JakeHL!", "[Fixed] Emoji autocomplete not rendering in some situations - #5859", "[Fixed] Release notes text overflowing dialog box - #5854. Thanks @amarsiingh!", "[Improved] Support Python 3 in Desktop CLI on macOS - #5843. Thanks @munir131!", "[Improved] Avoid unnecessarily reloading commit history - #5470", "[Improved] Publish Branch dialog will publish commits when pressing Enter - #5777. Thanks @JKirkYuan!" ], "1.4.3-beta2": [ "[Added] Added keyboard shortcut to delete a branch - #5018. Thanks @JakeHL!", "[Fixed] Fix release notes text overflowing dialog box - #5854. Thanks @amarsiingh!", "[Improved] Avoid unnecessarily reloading commit history - #5470" ], "1.4.3-beta1": [ "[Added] Add \"Remove Repository\" keyboard shortcut - #5848. Thanks @say25!", "[Fixed] Fix emoji autocomplete not rendering in some situations - #5859", "[Fixed] Support Python 3 in Desktop CLI on macOS - #5843. Thanks @munir131!", "[Improved] Publish Branch dialog will publish commits when pressing Enter - #5777. Thanks @JKirkYuan!" ], "1.4.3-beta0": [], "1.4.2": [ "[New] Show resolved conflicts as resolved in Changes pane - #5609", "[Added] Add Terminator, MATE Terminal, and Terminology shells - #5753. Thanks @joaomlneto!", "[Fixed] Update embedded Git to version 2.19.1 for security vulnerability fix", "[Fixed] Always show commit history list when History tab is clicked - #5783. Thanks @JKirkYuan!", "[Fixed] Stop overriding the protocol of a detected GitHub repository - #5721", "[Fixed] Update sign in error message - #5766. Thanks @tiagodenoronha!", "[Fixed] Correct overflowing T&C and License Notices dialogs - #5756. Thanks @amarsiingh!", "[Improved] Add default commit message for single-file commits - #5240. Thanks @lean257!", "[Improved] Refresh commit list faster after reverting commit via UI - #5752", "[Improved] Add repository path to Remove repository dialog - #5805. Thanks @NickCraver!", "[Improved] Display whether user entered incorrect username or email address - #5775. Thanks @tiagodenoronha!", "[Improved] Update Discard Changes dialog text when discarding all changes - #5744. Thanks @Daniel-McCarthy!" ], "1.4.2-beta0": [], "1.4.1-test2": [ "Testing changes to how Desktop performs CI platform checks" ], "1.4.1-test1": [ "Testing changes to how Desktop performs CI platform checks" ], "1.4.1": [ "[Added] Support for opening repository in Cygwin terminal - #5654. Thanks @LordOfTheThunder!", "[Fixed] 'Compare to Branch' menu item not disabled when modal is open - #5673. Thanks @kanishk98!", "[Fixed] Co-author form does not show/hide for newly-added repository - #5490", "[Fixed] Desktop command line always suffixes `.git` to URL when starting a clone - #5529. Thanks @j-f1!", "[Fixed] Dialog styling issue for dark theme users on Windows - #5629. Thanks @cwongmath!", "[Fixed] No message shown when filter returns no results in Clone Repository view - #5637. Thanks @DanielHix!", "[Improved] Branch names cannot start with a '+' character - #5594. Thanks @Daniel-McCarthy!", "[Improved] Clone dialog re-runs filesystem check when re-focusing on Desktop - #5518. Thanks @Daniel-McCarthy!", "[Improved] Commit disabled when commit summary is only spaces - #5677. Thanks @Daniel-McCarthy!", "[Improved] Commit summary expander sometimes shown when not needed - #5700. Thanks @aryyya!", "[Improved] Error handling when looking for merge base of a missing ref - #5612", "[Improved] Warning if branch exists on remote when creating branch - #5141. Thanks @Daniel-McCarthy!" ], "1.4.1-beta1": [ "[Added] Support for opening repository in Cygwin terminal - #5654. Thanks @LordOfTheThunder!", "[Fixed] 'Compare to Branch' menu item not disabled when modal is open - #5673. Thanks @kanishk98!", "[Fixed] No message shown when filter returns no results in Clone Repository view - #5637. Thanks @DanielHix!", "[Fixed] Co-author form does not show/hide for newly-added repository - #5490", "[Fixed] Dialog styling issue for dark theme users on Windows - #5629. Thanks @cwongmath!", "[Fixed] Desktop command line always suffixes `.git` to URL when starting a clone - #5529. Thanks @j-f1!", "[Improved] Commit summary expander sometimes shown when not needed - #5700. Thanks @aryyya!", "[Improved] Commit disabled when commit summary is only spaces - #5677. Thanks @Daniel-McCarthy!", "[Improved] Error handling when looking for merge base of a missing ref - #5612", "[Improved] Clone dialog re-runs filesystem check when re-focusing on Desktop - #5518. Thanks @Daniel-McCarthy!", "[Improved] Branch names cannot start with a '+' character - #5594. Thanks @Daniel-McCarthy!", "[Improved] Warning if branch exists on remote when creating branch - #5141. Thanks @Daniel-McCarthy!" ], "1.4.1-beta0": [], "1.4.0": [ "[New] When an update is available for GitHub Desktop, release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Fixed] Caret in co-author selector is hidden when dark theme enabled - #5589", "[Fixed] Authenticating to GitHub Enterprise fails when user has no emails defined - #5585", "[Improved] Avoid multiple lookups of default remote - #5399" ], "1.4.0-beta3": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta2": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta1": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta0": [], "1.3.5": [ "[Fixed] Disable delete button while deleting a branch - #5331", "[Fixed] History now avoids calling log.showSignature if set in config - #5466", "[Fixed] Start blocking the ability to add local bare repositories - #4293. Thanks @Daniel-McCarthy!", "[Fixed] Revert workaround for tooltip issue on Windows - #3362. Thanks @divayprakash!", "[Improved] Error message when publishing to missing organisation - #5380. Thanks @Daniel-McCarthy!", "[Improved] Don't hide commit details when commit description is expanded. - #5471. Thanks @aryyya!" ], "1.3.5-beta1": [ "[Fixed] Disable delete button while deleting a branch - #5331", "[Fixed] History now avoids calling log.showSignature if set in config - #5466", "[Fixed] Start blocking the ability to add local bare repositories - #4293. Thanks @Daniel-McCarthy!", "[Fixed] Revert workaround for tooltip issue on Windows - #3362. Thanks @divayprakash!", "[Improved] Error message when publishing to missing organisation - #5380. Thanks @Daniel-McCarthy!", "[Improved] Don't hide commit details when commit summary description is expanded. - #5471. Thanks @aryyya!" ], "1.3.5-beta0": [], "1.3.4": [ "[Improved] Cloning message uses remote repo name not file destination - #5413. Thanks @lisavogtsf!", "[Improved] Support VSCode user scope installation - #5281. Thanks @saschanaz!" ], "1.3.4-beta1": [ "[Improved] Cloning message uses remote repo name not file destination - #5413. Thanks @lisavogtsf!", "[Improved] Support VSCode user scope installation - #5281. Thanks @saschanaz!" ], "1.3.4-beta0": [], "1.3.3": [ "[Fixed] Maximize and restore app on Windows does not fill available space - #5033", "[Fixed] 'Clone repository' menu item label is obscured on Windows - #5348. Thanks @Daniel-McCarthy!", "[Fixed] User can toggle files when commit is in progress - #5341. Thanks @masungwon!", "[Improved] Repository indicator background work - #5317 #5326 #5363 #5241 #5320" ], "1.3.3-beta1": [ "[Fixed] Maximize and restore app on Windows does not fill available space - #5033", "[Fixed] 'Clone repository' menu item label is obscured on Windows - #5348. Thanks @Daniel-McCarthy!", "[Fixed] User can toggle files when commit is in progress - #5341. Thanks @masungwon!", "[Improved] Repository indicator background work - #5317 #5326 #5363 #5241 #5320" ], "1.3.3-test6": ["Testing infrastructure changes"], "1.3.3-test5": ["Testing the new CircleCI config changes"], "1.3.3-test4": ["Testing the new CircleCI config changes"], "1.3.3-test3": ["Testing the new CircleCI config changes"], "1.3.3-test2": ["Testing the new CircleCI config changes"], "1.3.3-test1": ["Testing the new CircleCI config changes"], "1.3.2": [ "[Fixed] Bugfix for background checks not being aware of missing repositories - #5282", "[Fixed] Check the local state of a repository before performing Git operations - #5289", "[Fixed] Switch to history view for default branch when deleting current branch during a compare - #5256", "[Fixed] Handle missing .git directory inside a tracked repository - #5291" ], "1.3.2-beta1": [ "[Fixed] Bugfix for background checks not being aware of missing repositories - #5282", "[Fixed] Check the local state of a repository before performing Git operations - #5289", "[Fixed] Switch to history view for default branch when deleting current branch during a compare - #5256", "[Fixed] Handle missing .git directory inside a tracked repository - #5291" ], "1.3.1": [ "[Fixed] Background Git operations on missing repositories are not handled as expected - #5282" ], "1.3.1-beta1": [ "[Fixed] Background Git operations on missing repositories are not handled as expected - #5282" ], "1.3.1-beta0": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes indicator and ahead/behind information - #2259 #5095", "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Added] Syntax highlighting for PowerShell files - #5081. Thanks @say25!", "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Display root directory name when repository is located at drive root - #4924", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Fixed] History omits latest commit from list - #5243", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Improved] Change primary button color to blue for dark theme - #5074", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes indicator and ahead/behind information - #2259 #5095", "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Added] Syntax highlighting for PowerShell files - #5081. Thanks @say25!", "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Display root directory name when repository is located at drive root - #4924", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Fixed] History omits latest commit from list - #5243", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Improved] Change primary button color to blue for dark theme - #5074", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0-beta7": [], "1.3.0-beta6": [], "1.3.0-beta5": [ "[Fixed] Ensure commit message is cleared after successful commit - #4046", "[Fixed] History omits latest commit from list - #5243" ], "1.3.0-beta4": [ "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069" ], "1.3.0-beta3": [ "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0-beta2": [ "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158" ], "1.2.7-test3": ["Test deployment for electron version bump."], "1.3.0-beta1": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes count and ahead/behind information - #2259", "[Added] Syntax highlighting for PowerShell files- #5081. Thanks @say25!", "[Fixed] Display something when repository is located at drive root - #4924", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Improved] Repository list badge style tweaks and tweaks for dark theme - #5095", "[Improved] Change primary button color to blue for dark theme - #5074" ], "1.2.7-test2": ["Test deployment for electron version bump."], "1.2.7-test1": ["Sanity check deployment for refactored scripts"], "1.2.7-beta0": [ "[Fixed] Visual indicator for upcoming feature should not be shown - #5026" ], "1.2.6": [ "[Fixed] Visual indicator for upcoming feature should not be shown - #5026" ], "1.2.6-beta0": [ "[Fixed] Feature flag for upcoming feature not applied correctly - #5024" ], "1.2.5": [ "[Fixed] Feature flag for upcoming feature not applied correctly - #5024" ], "1.2.4": [ "[New] Dark Theme preview - #4849", "[Added] Syntax highlighting for Cake files - #4935. Thanks @say25!", "[Added] WebStorm support for macOS - #4841. Thanks @mrsimonfletcher!", "[Fixed] Compare tab appends older commits when scrolling to bottom of list - #4964", "[Fixed] Remove temporary directory after Git LFS operation completes - #4414", "[Fixed] Unable to compare when two branches exist - #4947 #4730", "[Fixed] Unhandled errors when refreshing pull requests fails - #4844 #4866", "[Improved] Remove context menu needs to hint if a dialog will be shown - #4975", "[Improved] Upgrade embedded Git LFS - #4602 #4745", "[Improved] Update banner message clarifies that only Desktop needs to be restarted - #4891. Thanks @KennethSweezy!", "[Improved] Discard Changes context menu entry should contain ellipses when user needs to confirm - #4846. Thanks @yongdamsh!", "[Improved] Initializing syntax highlighting components - #4764", "[Improved] Only show overflow shadow when description overflows - #4898", "[Improved] Changes tab displays number of changed files instead of dot - #4772. Thanks @yongdamsh!" ], "1.2.4-beta5": [], "1.2.4-beta4": [ "[Fixed] Compare tab appends older commits when scrolling to bottom of list - #4964", "[Fixed] Remove temporary directory after Git LFS operation completes - #4414", "[Improved] Remove context menu needs to hint if a dialog will be shown - #4975", "[Improved] Upgrade embedded Git LFS - #4602 #4745" ], "1.2.4-test1": [ "Confirming latest Git LFS version addresses reported issues" ], "1.2.4-beta3": [ "[Added] WebStorm support for macOS - #4841. Thanks @mrsimonfletcher!", "[Improved] Update banner message clarifies that only Desktop needs to be restarted - #4891. Thanks @KennethSweezy!" ], "1.2.4-beta2": [], "1.2.4-beta1": [ "[New] Dark Theme preview - #4849", "[Added] Syntax highlighting for Cake files - #4935. Thanks @say25!", "[Fixed] Unable to compare when two branches exist - #4947 #4730", "[Fixed] Unhandled errors when refreshing pull requests fails - #4844 #4866", "[Improved] Discard Changes context menu entry should contain ellipses when user needs to confirm - #4846. Thanks @yongdamsh!", "[Improved] Initializing syntax highlighting components - #4764", "[Improved] Only show overflow shadow when description overflows - #4898", "[Improved] Changes tab displays number of changed files instead of dot - #4772. Thanks @yongdamsh!" ], "1.2.3": [ "[Fixed] No autocomplete when searching for co-authors - #4847", "[Fixed] Error when checking out a PR from a fork - #4842" ], "1.2.3-beta1": [ "[Fixed] No autocomplete when searching for co-authors - #4847", "[Fixed] Error when checking out a PR from a fork - #4842" ], "1.2.3-test1": [ "Confirming switch from uglify-es to babel-minify addresses minification issue - #4871" ], "1.2.2": [ "[Fixed] Make cURL/schannel default to using the Windows certificate store - #4817", "[Fixed] Restore text selection highlighting in diffs - #4818" ], "1.2.2-beta1": [ "[Fixed] Make cURL/schannel default to using the Windows certificate store - #4817", "[Fixed] Text selection highlighting in diffs is back - #4818" ], "1.2.1": [ "[Added] Brackets support for macOS - #4608. Thanks @3raxton!", "[Added] Pull request number and author are included in fuzzy-find filtering - #4653. Thanks @damaneice!", "[Fixed] Decreased the max line length limit - #3740. Thanks @sagaragarwal94!", "[Fixed] Updated embedded Git to 2.17.1 to address upstream security issue - #4791", "[Improved] Display the difference in file size of an image in the diff view - #4380. Thanks @ggajos!" ], "1.2.1-test1": ["Upgraded embedded Git to 2.17.0"], "1.2.1-beta1": [ "[Added] Brackets support for macOS - #4608. Thanks @3raxton!", "[Added] Pull request number and author are included in fuzzy-find filtering - #4653. Thanks @damaneice!", "[Fixed] Decreased the max line length limit - #3740. Thanks @sagaragarwal94!", "[Fixed] Updated embedded Git to 2.17.1 to address upstream security issue - #4791", "[Improved] Display the difference in file size of an image in the diff view - #4380. Thanks @ggajos!" ], "1.2.1-beta0": [], "1.1.2-test6": ["Testing the Webpack v4 output from the project"], "1.2.0": [ "[New] History now has ability to compare to another branch and merge outstanding commits", "[New] Support for selecting more than one file in the changes list - #1712. Thanks @icosamuel!", "[New] Render bitmap images in diffs - #4367. Thanks @MagicMarvMan!", "[Added] Add PowerShell Core support for Windows and macOS - #3791. Thanks @saschanaz!", "[Added] Add MacVim support for macOS - #4532. Thanks @johnelliott!", "[Added] Syntax highlighting for JavaServer Pages (JSP) - #4470. Thanks @damaneice!", "[Added] Syntax highlighting for Haxe files - #4445. Thanks @Gama11!", "[Added] Syntax highlighting for R files - #4455. Thanks @say25!", "[Fixed] 'Open in Shell' on Linux ensures Git is on PATH - #4619. Thanks @ziggy42!", "[Fixed] Pressing 'Enter' on filtered Pull Request does not checkout - #4673", "[Fixed] Alert icon shrinks in rename dialog when branch name is long - #4566", "[Fixed] 'Open in Desktop' performs fetch to ensure branch exists before checkout - #3006", "[Fixed] 'Open in Default Program' on Windows changes the window title - #4446", "[Fixed] Skip fast-forwarding when there are many eligible local branches - #4392", "[Fixed] Image diffs not working for files with upper-case file extension - #4466", "[Fixed] Syntax highlighting not working for files with upper-case file extension - #4462. Thanks @say25!", "[Fixed] Error when creating Git LFS progress causes clone to fail - #4307. Thanks @MagicMarvMan!", "[Fixed] 'Open File in External Editor' always opens a new instance - #4381", "[Fixed] 'Select All' shortcut now works for changes list - #3821", "[Improved] Automatically add valid repository when using command line interface - #4513. Thanks @ggajos!", "[Improved] Always fast-forward the default branch - #4506", "[Improved] Warn when trying to rename a published branch - #4035. Thanks @agisilaos!", "[Improved] Added context menu for files in commit history - #2845. Thanks @crea7or", "[Improved] Discarding all changes always prompts for confirmation - #4459", "[Improved] Getting list of changed files is now more efficient when dealing with thousands of files - #4443", "[Improved] Checking out a Pull Request may skip unnecessary fetch - #4068. Thanks @agisilaos!", "[Improved] Commit summary now has a hint to indicate why committing is disabled - #4429.", "[Improved] Pull request status text now matches format on GitHub - #3521", "[Improved] Add escape hatch to disable hardware acceleration when launching - #3921" ], "1.1.2-beta7": [], "1.1.2-beta6": [ "[Added] Add MacVim support for macOS - #4532. Thanks @johnelliott!", "[Fixed] Open in Shell on Linux ensures Git is available on the user's PATH - #4619. Thanks @ziggy42!", "[Fixed] Keyboard focus issues when navigating Pull Request list - #4673", "[Improved] Automatically add valid repository when using command line interface - #4513. Thanks @ggajos!" ], "1.1.2-test5": ["Actually upgrading fs-extra to v6 in the app"], "1.1.2-test4": ["Upgrading fs-extra to v6"], "1.1.2-beta5": [ "[Added] Syntax highlighting for JavaServer Pages (JSP) - #4470. Thanks @damaneice!", "[Fixed] Prevent icon from shrinking in rename dialog - #4566" ], "1.1.2-beta4": [ "[New] New Compare tab allowing visualization of the relationship between branches", "[New] Support for selecting more than one file in the changes list - #1712. Thanks @icosamuel!", "[Fixed] 'Select All' shortcut now works for changes list - #3821", "[Improved] Always fast-forward the default branch - #4506", "[Improved] Warn when trying to rename a published branch - #4035. Thanks @agisilaos!", "[Improved] Added context menu for files in commit history - #2845. Thanks @crea7or", "[Improved] Discarding all changes always prompts for confirmation - #4459" ], "1.1.2-beta3": [ "[Added] Syntax highlighting for Haxe files - #4445. Thanks @Gama11!", "[Added] Syntax highlighting for R files - #4455. Thanks @say25!", "[Fixed] Fetch to ensure \"Open in Desktop\" has a branch to checkout - #3006", "[Fixed] Handle the click event when opening a binary file - #4446", "[Fixed] Skip fast-forwarding when there are a lot of eligible local branches - #4392", "[Fixed] Image diffs not working for files with upper-case file extension - #4466", "[Fixed] Syntax highlighting not working for files with upper-case file extension - #4462. Thanks @say25!", "[Improved] Getting list of changed files is now more efficient when dealing with thousands of files - #4443", "[Improved] Checking out a Pull Request may skip unnecessary fetch - #4068. Thanks @agisilaos!", "[Improved] Commit summary now has a hint to indicate why committing is disabled - #4429." ], "1.1.2-test3": ["[New] Comparison Branch demo build"], "1.1.2-test2": [ "Refactoring the diff internals to potentially land some SVG improvements" ], "1.1.2-test1": [ "Refactoring the diff internals to potentially land some SVG improvements" ], "1.1.2-beta2": [ "[New] Render bitmap images in diffs - #4367. Thanks @MagicMarvMan!", "[New] Add PowerShell Core support for Windows and macOS - #3791. Thanks @saschanaz!", "[Fixed] Error when creating Git LFS progress causes clone to fail - #4307. Thanks @MagicMarvMan!", "[Fixed] 'Open File in External Editor' does not use existing window - #4381", "[Fixed] Always ask for confirmation when discarding all changes - #4423", "[Improved] Pull request status text now matches format on GitHub - #3521", "[Improved] Add escape hatch to disable hardware acceleration when launching - #3921" ], "1.1.2-beta1": [], "1.1.1": [ "[New] Render WebP images in diffs - #4164. Thanks @agisilaos!", "[Fixed] Edit context menus in commit form input elements - #3886", "[Fixed] Escape behavior for Pull Request list does not match Branch List - #3597", "[Fixed] Keep caret position after inserting completion for emoji/mention - #3835. Thanks @CarlRosell!", "[Fixed] Handle error events when watching files used to get Git LFS output - #4117", "[Fixed] Potential race condition when opening a fork pull request - #4149", "[Fixed] Show placeholder image when no pull requests found - #3973", "[Fixed] Disable commit summary and description inputs while commit in progress - #3893. Thanks @crea7or!", "[Fixed] Ensure pull request cache is cleared after last pull request merged - #4122", "[Fixed] Focus two-factor authentication dialog on input - #4220. Thanks @WaleedAshraf!", "[Fixed] Branches button no longer disabled while on an unborn branch - #4236. Thanks @agisilaos!", "[Fixed] Delete gitignore file when all entries cleared in Repository Settings - #1896", "[Fixed] Add visual indicator that a folder can be dropped on Desktop - #4004. Thanks @agisilaos!", "[Fixed] Attempt to focus the application window on macOS after signing in via the browser - #4126", "[Fixed] Refresh issues when user manually fetches - #4076", "[Improved] Add `Discard All Changes...` to context menu on changed file list - #4197. Thanks @xamm!", "[Improved] Improve contrast for button labels in app toolbar - #4219", "[Improved] Speed up check for submodules when discarding - #4186. Thanks @kmscode!", "[Improved] Make the keychain known issue more clear within Desktop - #4125", "[Improved] Continue past the 'diff too large' message and view the diff - #4050", "[Improved] Repository association might not have expected prefix - #4090. Thanks @mathieudutour!", "[Improved] Add message to gitignore dialog when not on default branch - #3720", "[Improved] Hide Desktop-specific forks in Branch List - #4127", "[Improved] Disregard accidental whitespace when cloning a repository by URL - #4216", "[Improved] Show alert icon in repository list when repository not found on disk - #4254. Thanks @gingerbeardman!", "[Improved] Repository list now closes after removing last repository - #4269. Thanks @agisilaos!", "[Improved] Move forget password link after the password dialog to match expected tab order - #4283. Thanks @iamnapo!", "[Improved] More descriptive text in repository toolbar button when no repositories are tracked - #4268. Thanks @agisilaos!", "[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030" ], "1.1.1-beta4": [ "[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030" ], "1.1.1-beta3": [], "1.1.1-beta2": [ "[New] Render WebP images in diffs - #4164. Thanks @agisilaos!", "[Fixed] Edit context menus in commit form input elements - #3886", "[Fixed] Escape behavior should match that of Branch List - #3972", "[Fixed] Keep caret position after inserting completion - #3835. Thanks @CarlRosell!", "[Fixed] Handle error events when watching files used to get Git LFS output - #4117", "[Fixed] Potential race condition when opening a fork pull request - #4149", "[Fixed] Show placeholder image when no pull requests found - #3973", "[Fixed] Disable input fields summary and description while commit in progress - #3893. Thanks @crea7or!", "[Fixed] Ensure pull request cache is cleared after last pull request merged - #4122", "[Fixed] Focus two-factor authentication dialog on input - #4220. Thanks @WaleedAshraf!", "[Fixed] Branches button no longer disabled while on an unborn branch - #4236. Thanks @agisilaos!", "[Fixed] Delete gitignore file when entries cleared in Repository Settings - #1896", "[Fixed] Add visual indicator that a folder can be dropped on Desktop - #4004. Thanks @agisilaos!", "[Improved] Add `Discard All Changes...` to context menu on changed file list - #4197. Thanks @xamm!", "[Improved] Improve contrast for button labels in app toolbar - #4219", "[Improved] Speed up check for submodules when discarding - #4186. Thanks @kmscode!", "[Improved] Make the keychain known issue more clear within Desktop - #4125", "[Improved] Continue past the 'diff too large' message and view the diff - #4050", "[Improved] Repository association might not have expected prefix - #4090. Thanks @mathieudutour!", "[Improved] Add message to gitignore dialog when not on default branch - #3720", "[Improved] Hide Desktop-specific forks in Branch List - #4127", "[Improved] Disregard accidental whitespace when cloning a repository by URL - #4216", "[Improved] Show alert icon in repository list when repository not found on disk - #4254. Thanks @gingerbeardman!", "[Improved] Repository list now closes after removing last repository - #4269. Thanks @agisilaos!", "[Improved] Move forget password link to after the password dialog to maintain expected tab order - #4283. Thanks @iamnapo!", "[Improved] More descriptive text in repository toolbar button when no repositories are tracked - #4268. Thanks @agisilaos!" ], "1.1.1-test2": ["[Improved] Electron 1.8.3 upgrade (again)"], "1.1.1-test1": [ "[Improved] Forcing a focus on the window after the OAuth dance is done" ], "1.1.1-beta1": [], "1.1.0": [ "[New] Check out pull requests from collaborators or forks from within Desktop", "[New] View the commit status of the branch when it has an open pull request", "[Added] Add RubyMine support for macOS - #3883. Thanks @gssbzn!", "[Added] Add TextMate support for macOS - #3910. Thanks @caiofbpa!", "[Added] Syntax highlighting for Elixir files - #3774. Thanks @joaovitoras!", "[Fixed] Update layout of branch blankslate image - #4011", "[Fixed] Expanded avatar stack in commit summary gets cut off - #3884", "[Fixed] Clear repository filter when switching tabs - #3787. Thanks @reyronald!", "[Fixed] Avoid crash when unable to launch shell - #3954", "[Fixed] Ensure renames are detected when viewing commit diffs - #3673", "[Fixed] Fetch default remote if it differs from the current - #4056", "[Fixed] Handle Git errors when .gitmodules are malformed - #3912", "[Fixed] Handle error when \"where\" is not on PATH - #3882 #3825", "[Fixed] Ignore action assumes CRLF when core.autocrlf is unset - #3514", "[Fixed] Prevent duplicate entries in co-author autocomplete list - #3887", "[Fixed] Renames not detected when viewing commit diffs - #3673", "[Fixed] Support legacy usernames as co-authors - #3897", "[Improved] Update branch button text from \"New\" to \"New Branch\" - #4032", "[Improved] Add fuzzy search in the repository, branch, PR, and clone FilterLists - #911. Thanks @j-f1!", "[Improved] Tidy up commit summary and description layout in commit list - #3922. Thanks @willnode!", "[Improved] Use smaller default size when rendering Gravatar avatars - #3911", "[Improved] Show fetch progress when initializing remote for fork - #3953", "[Improved] Remove references to Hubot from the user setup page - #4015. Thanks @j-f1!", "[Improved] Error handling around ENOENT - #3954", "[Improved] Clear repository filter text when switching tabs - #3787. Thanks @reyronald!", "[Improved] Allow window to accept single click on focus - #3843", "[Improved] Disable drag-and-drop interaction when a popup is in the foreground - #3996" ], "1.1.0-beta3": [ "[Fixed] Fetch default remote if it differs from the current - #4056" ], "1.1.0-beta2": [ "[Improved] Update embedded Git to improve error handling when using stdin - #4058" ], "1.1.0-beta1": [ "[Improved] Add 'Branch' to 'New' branch button - #4032", "[Improved] Remove references to Hubot from the user setup page - #4015. Thanks @j-f1!" ], "1.0.14-beta5": [ "[Fixed] Improve detection of pull requests associated with current branch - #3991", "[Fixed] Disable drag-and-drop interaction when a popup is in the foreground - #3996", "[Fixed] Branch blank slate image out of position - #4011" ], "1.0.14-beta4": [ "[New] Syntax highlighting for Elixir files - #3774. Thanks @joaovitoras!", "[Fixed] Crash when unable to launch shell - #3954", "[Fixed] Support legacy usernames as co-authors - #3897", "[Improved] Enable fuzzy search in the repository, branch, PR, and clone FilterLists - #911. Thanks @j-f1!", "[Improved] Tidy up commit summary and description layout in commit list - #3922. Thanks @willnode!" ], "1.0.14-test1": ["[Improved] Electron 1.8.2 upgrade"], "1.0.14-beta3": [ "[Added] Add TextMate support for macOS - #3910. Thanks @caiofbpa!", "[Fixed] Handle Git errors when .gitmodules are malformed - #3912", "[Fixed] Clear repository filter when switching tabs - #3787. Thanks @reyronald!", "[Fixed] Prevent duplicate entries in co-author autocomplete list - #3887", "[Improved] Show progress when initializing remote for fork - #3953" ], "1.0.14-beta2": [ "[Added] Add RubyMine support for macOS - #3883. Thanks @gssbzn!", "[Fixed] Allow window to accept single click on focus - #3843", "[Fixed] Expanded avatar list hidden behind commit details - #3884", "[Fixed] Renames not detected when viewing commit diffs - #3673", "[Fixed] Ignore action assumes CRLF when core.autocrlf is unset - #3514", "[Improved] Use smaller default size when rendering Gravatar avatars - #3911" ], "1.0.14-beta1": ["[New] Commit together with co-authors - #3879"], "1.0.13": [ "[New] Commit together with co-authors - #3879", "[New] PhpStorm is now a supported external editor on macOS - #3749. Thanks @hubgit!", "[Improved] Update embedded Git to 2.16.1 - #3617 #3828 #3871", "[Improved] Blank slate view is now more responsive when zoomed - #3777", "[Improved] Documentation fix for Open in Shell resource - #3799. Thanks @saschanaz!", "[Improved] Improved error handling for Linux - #3732", "[Improved] Allow links in unexpanded summary to be clickable - #3719. Thanks @koenpunt!", "[Fixed] Update Electron to 1.7.11 to address security issue - #3846", "[Fixed] Allow double dashes in branch name - #3599. Thanks @JQuinnie!", "[Fixed] Sort the organization list - #3657. Thanks @j-f1!", "[Fixed] Check out PRs from a fork - #3395", "[Fixed] Confirm deleting branch when it has an open PR - #3615", "[Fixed] Defer user/email validation in Preferences - #3722", "[Fixed] Checkout progress did not include branch name - #3780", "[Fixed] Don't block branch switching when in detached HEAD - #3807", "[Fixed] Handle discarding submodule changes properly - #3647", "[Fixed] Show tooltip with additional info about the build status - #3134", "[Fixed] Update placeholders to support Linux distributions - #3150", "[Fixed] Refresh local commit list when switching tabs - #3698" ], "1.0.13-test1": [ "[Improved] Update embedded Git to 2.16.1 - #3617 #3828 #3871", "[Fixed] Update Electron to 1.7.11 to address security issue - #3846", "[Fixed] Allows double dashes in branch name - #3599. Thanks @JQuinnie!", "[Fixed] Pull Request store may not have status defined - #3869", "[Fixed] Render the Pull Request badge when no commit statuses found - #3608" ], "1.0.13-beta1": [ "[New] PhpStorm is now a supported external editor on macOS - #3749. Thanks @hubgit!", "[Improved] Blank slate view is now more responsive when zoomed - #3777", "[Improved] Documentation fix for Open in Shell resource - #3799. Thanks @saschanaz!", "[Improved] Improved error handling for Linux - #3732", "[Improved] Allow links in unexpanded summary to be clickable - #3719. Thanks @koenpunt!", "[Fixed] Sort the organization list - #3657. Thanks @j-f1!", "[Fixed] Check out PRs from a fork - #3395", "[Fixed] Confirm deleting branch when it has an open PR - #3615", "[Fixed] Defer user/email validation in Preferences - #3722", "[Fixed] Checkout progress did not include branch name - #3780", "[Fixed] Don't block branch switching when in detached HEAD - #3807", "[Fixed] Handle discarding submodule changes properly - #3647", "[Fixed] Show tooltip with additional info about the build status - #3134", "[Fixed] Update placeholders to support Linux distributions - #3150", "[Fixed] Refresh local commit list when switching tabs - #3698" ], "1.0.12": [ "[New] Syntax highlighting for Rust files - #3666. Thanks @subnomo!", "[New] Syntax highlighting for Clojure cljc, cljs, and edn files - #3610. Thanks @mtkp!", "[Improved] Prevent creating a branch in the middle of a merge - #3733", "[Improved] Truncate long repo names in panes and modals to fit into a single line - #3598. Thanks @http-request!", "[Improved] Keyboard navigation support in pull request list - #3607", "[Fixed] Inconsistent caret behavior in text boxes when using certain keyboard layouts - #3354", "[Fixed] Only render the organizations list when it has orgs - #1414", "[Fixed] Checkout now handles situations where a ref exists on multiple remotes - #3281", "[Fixed] Retain accounts on desktop when losing connectivity - #3641", "[Fixed] Missing argument in FullScreenInfo that could prevent app from launching - #3727. Thanks @OiYouYeahYou!" ], "1.0.12-beta1": [ "[New] Syntax highlighting for Rust files - #3666. Thanks @subnomo!", "[New] Syntax highlighting for Clojure cljc, cljs, and edn files - #3610. Thanks @mtkp!", "[Improved] Prevent creating a branch in the middle of a merge - #3733", "[Improved] Truncate long repo names in panes and modals to fit into a single line - #3598. Thanks @http-request!", "[Improved] Keyboard navigation support in pull request list - #3607", "[Fixed] Inconsistent caret behavior in text boxes when using certain keyboard layouts - #3354", "[Fixed] Only render the organizations list when it has orgs - #1414", "[Fixed] Checkout now handles situations where a ref exists on multiple remotes - #3281", "[Fixed] Retain accounts on desktop when losing connectivity - #3641", "[Fixed] Missing argument in FullScreenInfo that could prevent app from launching - #3727. Thanks @OiYouYeahYou!" ], "1.0.12-beta0": [ "[New] Highlight substring matches in the \"Branches\" and \"Repositories\" list when filtering - #910. Thanks @JordanMussi!", "[New] Add preview for ico files - #3531. Thanks @serhiivinichuk!", "[New] Fallback to Gravatar for loading avatars - #821", "[New] Provide syntax highlighting for Visual Studio project files - #3552. Thanks @saul!", "[New] Provide syntax highlighting for F# fsx and fsi files - #3544. Thanks @saul!", "[New] Provide syntax highlighting for Kotlin files - #3555. Thanks @ziggy42!", "[New] Provide syntax highlighting for Clojure - #3523. Thanks @mtkp!", "[Improved] Toggle the \"Repository List\" from the menu - #2638. Thanks @JordanMussi!", "[Improved] Prevent saving of disallowed character strings for your name and email - #3204", "[Improved] Error messages now appear at the top of the \"Create a New Repository\" dialog - #3571. Thanks @http-request!", "[Improved] \"Repository List\" header is now \"Github.com\" for consistency - #3567. Thanks @iFun!", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] Fix ordering of commit history when your branch and tracking branch have both changed - #2737", "[Fixed] Prevent creating a branch that starts with a period - #3013. Thanks @JordanMussi!", "[Fixed] Branch names are properly encoded when creating a pull request - #3509", "[Fixed] Re-enable all the menu items after closing a popup - #3533", "[Fixed] Removes option to delete remote branch after it's been deleted - #2964. Thanks @JordanMussi!", "[Fixed] Windows: Detects available editors and shells now works even when the group policy blocks write registry access - #3105 #3405", "[Fixed] Windows: Menu items are no longer truncated - #3547", "[Fixed] Windows: Prevent disabled menu items from being accessed - #3391 #1521", "[Fixed] Preserve the selected pull request when a manual fetch is done - #3524", "[Fixed] Update pull request badge after switching branches or pull requests - #3454", "[Fixed] Restore keyboard arrow navigation for pull request list - #3499" ], "1.0.11": [ "[New] Highlight substring matches in the \"Branches\" and \"Repositories\" list when filtering - #910. Thanks @JordanMussi!", "[New] Add preview for ico files - #3531. Thanks @serhiivinichuk!", "[New] Fallback to Gravatar for loading avatars - #821", "[New] Provide syntax highlighting for Visual Studio project files - #3552. Thanks @saul!", "[New] Provide syntax highlighting for F# fsx and fsi files - #3544. Thanks @saul!", "[New] Provide syntax highlighting for Kotlin files - #3555. Thanks @ziggy42!", "[New] Provide syntax highlighting for Clojure - #3523. Thanks @mtkp!", "[Improved] Toggle the \"Repository List\" from the menu - #2638. Thanks @JordanMussi!", "[Improved] Prevent saving of disallowed character strings for your name and email - #3204", "[Improved] Error messages now appear at the top of the \"Create a New Repository\" dialog - #3571. Thanks @http-request!", "[Improved] \"Repository List\" header is now \"Github.com\" for consistency - #3567. Thanks @iFun!", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] Fix ordering of commit history when your branch and tracking branch have both changed - #2737", "[Fixed] Prevent creating a branch that starts with a period - #3013. Thanks @JordanMussi!", "[Fixed] Branch names are properly encoded when creating a pull request - #3509", "[Fixed] Re-enable all the menu items after closing a popup - #3533", "[Fixed] Removes option to delete remote branch after it's been deleted - #2964. Thanks @JordanMussi!", "[Fixed] Windows: Detects available editors and shells now works even when the group policy blocks write registry access - #3105 #3405", "[Fixed] Windows: Menu items are no longer truncated - #3547", "[Fixed] Windows: Prevent disabled menu items from being accessed - #3391 #1521" ], "1.0.11-test0": [ "[Improved] now with a new major version of electron-packager" ], "1.0.11-beta0": [ "[Improved] Refresh the pull requests list after fetching - #3503", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] URL encode branch names when creating a pull request - #3509", "[Fixed] Windows: detecting available editors and shells now works even when the group policy blocks write registry access - #3105 #3405" ], "1.0.10": [ "[New] ColdFusion Builder is now a supported external editor - #3336 #3321. Thanks @AtomicCons!", "[New] VSCode Insiders build is now a supported external editor - #3441. Thanks @say25!", "[New] BBEdit is now a supported external editor - #3467. Thanks @NiklasBr!", "[New] Hyper is now a supported shell on Windows too - #3455. Thanks @JordanMussi!", "[New] Swift is now syntax highlighted - #3305. Thanks @agisilaos!", "[New] Vue.js is now syntax highlighted - #3368. Thanks @wanecek!", "[New] CoffeeScript is now syntax highlighted - #3356. Thanks @agisilaos!", "[New] Cypher is now syntax highlighted - #3440. Thanks @say25!", "[New] .hpp is now syntax highlighted as C++ - #3420. Thanks @say25!", "[New] ML-like languages are now syntax highlighted - #3401. Thanks @say25!", "[New] Objective-C is now syntax highlighted - #3355. Thanks @koenpunt!", "[New] SQL is now syntax highlighted - #3389. Thanks @say25!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Improved] Avoid excessive background fetching when switching repositories - #3329", "[Improved] Ignore menu events sent when a modal is shown - #3308", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268", "[Fixed] Windows: Removed the title attribute on the Windows buttons so that they no longer leave their tooltips hanging around - #3348. Thanks @j-f1!", "[Fixed] Windows: Detect VS Code when installed to non-standard locations - #3304", "[Fixed] Hitting Return would select the first item in a filter list when the filter text was empty - #3447", "[Fixed] Add some missing keyboard shortcuts - #3327. Thanks @say25!", "[Fixed] Handle \"304 Not Modified\" responses - #3399", "[Fixed] Don't overwrite an existing .gitattributes when creating a new repository - #3419. Thanks @strafe!" ], "1.0.10-beta3": [ "[New] Change \"Create Pull Request\" to \"Show Pull Request\" when there is already a pull request open for the branch - #2524", "[New] VSCode Insiders build is now a supported external editor - #3441. Thanks @say25!", "[New] BBEdit is now a supported external editor - #3467. Thanks @NiklasBr!", "[New] Hyper is now a supported shell - #3455. Thanks @JordanMussi!", "[New] Cypher is now syntax highlighted - #3440. Thanks @say25!", "[New] .hpp is now syntax highlighted as C++ - #3420. Thanks @say25!", "[New] ML-like languages are now syntax highlighted - #3401. Thanks @say25!", "[Improved] Use the same colors in pull request dropdown as we use on GitHub.com - #3451", "[Improved] Fancy pull request loading animations - #2868", "[Improved] Avoid excessive background fetching when switching repositories - #3329", "[Improved] Refresh the pull request list when the Push/Pull/Fetch button is clicked - #3448", "[Improved] Ignore menu events sent when a modal is shown - #3308", "[Fixed] Hitting Return would select the first item in a filter list when the filter text was empty - #3447", "[Fixed] Add some missing keyboard shortcuts - #3327. Thanks @say25!", "[Fixed] Handle \"304 Not Modified\" responses - #3399", "[Fixed] Don't overwrite an existing .gitattributes when creating a new repository - #3419. Thanks @strafe!" ], "1.0.10-beta2": [ "[New] SQL is now syntax highlighted! - #3389. Thanks @say25!", "[Fixed] Windows: Detect VS Code when installed to non-standard locations - #3304" ], "1.0.10-beta1": [ "[New] Vue.js code is now syntax highlighted! - #3368. Thanks @wanecek!", "[New] CoffeeScript is now syntax highlighted! - #3356. Thanks @agisilaos!", "[New] Highlight .m as Objective-C - #3355. Thanks @koenpunt!", "[Improved] Use smarter middle truncation for branch names - #3357", "[Fixed] Windows: Removed the title attribute on the Windows buttons so that they no longer leave their tooltips hanging around - #3348. Thanks @j-f1!" ], "1.0.10-beta0": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9-beta1": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9-beta0": [ "[Fixed] Crash when rendering diffs for certain types of files - #3249", "[Fixed] Continually being prompted to add the upstream remote, even when it already exists - #3252" ], "1.0.8": [ "[Fixed] Crash when rendering diffs for certain types of files - #3249", "[Fixed] Continually being prompted to add the upstream remote, even when it already exists - #3252" ], "1.0.8-beta0": [ "[New] Syntax highlighted diffs - #3101", "[New] Add upstream to forked repositories - #2364", "[Fixed] Only reset scale of title bar on macOS - #3193", "[Fixed] Filter symbolic refs in the branch list - #3196", "[Fixed] Address path issue with invoking Git Bash - #3186", "[Fixed] Update embedded Git to support repository hooks and better error messages - #3067 #3079", "[Fixed] Provide credentials to LFS repositories when performing checkout - #3167", "[Fixed] Assorted changelog typos - #3174 #3184 #3207. Thanks @strafe, @alanaasmaa and @jt2k!" ], "1.0.7": [ "[New] Syntax highlighted diffs - #3101", "[New] Add upstream to forked repositories - #2364", "[Fixed] Only reset scale of title bar on macOS - #3193", "[Fixed] Filter symbolic refs in the branch list - #3196", "[Fixed] Address path issue with invoking Git Bash - #3186", "[Fixed] Update embedded Git to support repository hooks and better error messages - #3067 #3079", "[Fixed] Provide credentials to LFS repositories when performing checkout - #3167", "[Fixed] Assorted changelog typos - #3174 #3184 #3207. Thanks @strafe, @alanaasmaa and @jt2k!" ], "1.0.7-beta0": [ "[Fixed] The Branches list wouldn't display the branches for non-GitHub repositories - #3169", "[Fixed] Pushing or pulling could error when the temp directory was unavailable - #3046" ], "1.0.6": [ "[Fixed] The Branches list wouldn't display the branches for non-GitHub repositories - #3169", "[Fixed] Pushing or pulling could error when the temp directory was unavailable - #3046" ], "1.0.5": [ "[New] The command line interface now provides some helpful help! - #2372. Thanks @j-f1!", "[New] Create new branches from the Branches foldout - #2784", "[New] Add support for VSCode Insiders - #3012 #3062. Thanks @MSathieu!", "[New] Linux: Add Atom and Sublime Text support - #3133. Thanks @ziggy42!", "[New] Linux: Tilix support - #3117. Thanks @ziggy42!", "[New] Linux: Add Visual Studio Code support - #3122. Thanks @ziggy42!", "[Improved] Report errors when a problem occurs storing tokens - #3159", "[Improved] Bump to Git 2.14.3 - #3146", "[Improved] Don't try to display diffs that could cause the app to hang - #2596", "[Fixed] Handle local user accounts with URL-hostile characters - #3107", "[Fixed] Cloning a repository which uses Git LFS would leave all the files appearing modified - #3146", "[Fixed] Signing in in the Welcome flow could hang - #2769", "[Fixed] Properly replace old Git LFS configuration values - #2984" ], "1.0.5-beta1": [ "[New] Create new branches from the Branches foldout - #2784", "[New] Add support for VSCode Insiders - #3012 #3062. Thanks @MSathieu!", "[New] Linux: Add Atom and Sublime Text support - #3133. Thanks @ziggy42!", "[New] Linux: Tilix support - #3117. Thanks @ziggy42!", "[New] Linux: Add Visual Studio Code support - #3122. Thanks @ziggy42!", "[Improved] Report errors when a problem occurs storing tokens - #3159", "[Improved] Bump to Git 2.14.3 - #3146", "[Improved] Don't try to display diffs that could cause the app to hang - #2596", "[Fixed] Handle local user accounts with URL-hostile characters - #3107", "[Fixed] Cloning a repository which uses Git LFS would leave all the files appearing modified - #3146", "[Fixed] Signing in in the Welcome flow could hang - #2769", "[Fixed] Properly replace old Git LFS configuration values - #2984" ], "1.0.5-test1": [], "1.0.5-test0": [], "1.0.5-beta0": [ "[New] The command line interface now provides some helpful help! - #2372. Thanks @j-f1!" ], "1.0.4": [ "[New] Report Git LFS progress when cloning, pushing, pulling, or reverting - #2226", "[Improved] Increased diff contrast and and line gutter selection - #2586 #2181", "[Improved] Clarify why publishing a branch is disabled in various scenarios - #2773", "[Improved] Improved error message when installing the command Line tool fails - #2979. Thanks @agisilaos!", "[Improved] Format the branch name in \"Create Branch\" like we format branch names elsewhere - #2977. Thanks @j-f1!", "[Fixed] Avatars not updating after signing in - #2911", "[Fixed] Lots of bugs if there was a file named \"HEAD\" in the repository - #3009 #2721 #2938", "[Fixed] Handle duplicate config values when saving user.name and user.email - #2945", "[Fixed] The \"Create without pushing\" button when creating a new pull request wouldn't actually do anything - #2917" ], "1.0.4-beta1": [ "[New] Report Git LFS progress when cloning, pushing, pulling, or reverting - #2226", "[Improved] Increased diff contrast and and line gutter selection - #2586 #2181", "[Improved] Clarify why publishing a branch is disabled in various scenarios - #2773", "[Improved] Improved error message when installing the command Line tool fails - #2979. Thanks @agisilaos!", "[Improved] Format the branch name in \"Create Branch\" like we format branch names elsewhere - #2977. Thanks @j-f1!", "[Fixed] Avatars not updating after signing in - #2911", "[Fixed] Lots of bugs if there was a file named \"HEAD\" in the repository - #3009 #2721 #2938", "[Fixed] Handle duplicate config values when saving user.name and user.email - #2945", "[Fixed] The \"Create without pushing\" button when creating a new pull request wouldn't actually do anything - #2917 #2917" ], "1.0.4-beta0": [ "[Improved] Increase the contrast of the modified file status octicons - #2914", "[Fixed] Showing changed files in Finder/Explorer would open the file - #2909", "[Fixed] macOS: Fix app icon on High Sierra - #2915", "[Fixed] Cloning an empty repository would fail - #2897 #2906", "[Fixed] Catch logging exceptions - #2910" ], "1.0.3": [ "[Improved] Increase the contrast of the modified file status octicons - #2914", "[Fixed] Showing changed files in Finder/Explorer would open the file - #2909", "[Fixed] macOS: Fix app icon on High Sierra - #2915", "[Fixed] Cloning an empty repository would fail - #2897 #2906", "[Fixed] Catch logging exceptions - #2910" ], "1.0.2": [ "[Improved] Better message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Improved] Clone error message now suggests networking might be involved - #2872. Thanks @agisilaos!", "[Improved] Include push/pull progress information in the push/pull button tooltip - #2879", "[Improved] Allow publishing a brand new, empty repository - #2773", "[Improved] Make file paths in lists selectable - #2801. Thanks @artivilla!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712", "[Fixed] Use the initial path provided when creating a new repository - #2883", "[Fixed] Windows: Avoid long path limits when discarding changes - #2833", "[Fixed] Files would get deleted when undoing the first commit - #2764", "[Fixed] Find the repository root before adding it - #2832", "[Fixed] Display warning about an existing folder before cloning - #2777 #2830", "[Fixed] Show contents of directory when showing a repository from Show in Explorer/Finder instead of showing the parent - #2798" ], "1.0.2-beta1": [ "[Improved] Clone error message now suggests networking might be involved - #2872. Thanks @agisilaos!", "[Improved] Include push/pull progress information in the push/pull button tooltip - #2879", "[Improved] Allow publishing a brand new, empty repository - #2773", "[Improved] Make file paths in lists selectable - #2801. Thanks @artivilla!", "[Fixed] Use the initial path provided when creating a new repository - #2883", "[Fixed] Windows: Avoid long path limits when discarding changes - #2833", "[Fixed] Files would get deleted when undoing the first commit - #2764", "[Fixed] Find the repository root before adding it - #2832", "[Fixed] Display warning about an existing folder before cloning - #2777 #2830", "[Fixed] Show contents of directory when showing a repository from Show in Explorer/Finder instead of showing the parent - #2798" ], "1.0.2-beta0": [ "[Improved] Message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712" ], "1.0.1": [ "[Improved] Message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712" ], "1.0.1-beta0": [ "[Fixed] Use the loading/disabled state while publishing - #1995", "[Fixed] Lock down menu item states for unborn repositories - #2744 #2573", "[Fixed] Windows: Detecting the available shells and editors when using a language other than English - #2735" ], "1.0.0": [ "[Fixed] Use the loading/disabled state while publishing - #1995", "[Fixed] Lock down menu item states for unborn repositories - #2744 #2573", "[Fixed] Windows: Detecting the available shells and editors when using a language other than English - #2735" ], "1.0.0-beta3": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.9.1": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "1.0.0-beta2": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.9.0": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.8.2": [ "[New] Ask to install LFS filters when an LFS repository is added - #2227", "[New] Clone GitHub repositories tab - #57", "[New] Option to opt-out of confirming discarding changes - #2681", "[Fixed] Long commit summary truncation - #1742", "[Fixed] Ensure the repository list is always enabled - #2648", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Clicking the \"Cancel\" button on the Publish Branch dialog - #2646", "[Fixed] Windows: Don't rely on PATH for knowing where to find chcp - #2678", "[Fixed] Relocating a repository now actually does that - #2685", "[Fixed] Clicking autocompletes inserts them - #2674", "[Fixed] Use shift for shortcut chord instead of alt - #2607", "[Fixed] macOS: \"Open in Terminal\" works with repositories with spaces in their path - #2682" ], "1.0.0-beta1": [ "[New] Option to to opt-out of confirming discarding changes - #2681", "[Fixed] Windows: Don't rely on PATH for knowing where to find chcp - #2678", "[Fixed] Relocating a repository now actually does that - #2685", "[Fixed] Clicking autocompletes inserts them - #2674", "[Fixed] Use shift for shortcut chord instead of alt - #2607", "[Fixed] macOS: \"Open in Terminal\" works with repositories with spaces in their path - #2682" ], "1.0.0-beta0": [ "[New] Ask to install LFS filters when an LFS repository is added - #2227", "[New] Clone GitHub repositories tab - #57", "[Fixed] Long commit summary truncation - #1742", "[Fixed] Ensure the repository list is always enabled - #2648", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Clicking the \"Cancel\" button on the Publish Branch dialog - #2646" ], "0.8.1": [ "[New] 'Open in Shell' now supports multiple shells - #2473", "[New] Windows: Enable adding self-signed certificates - #2581", "[Improved] Enhanced image diffs - #2383", "[Improved] Line diffs - #2461", "[Improved] Octicons updated - #2495", "[Improved] Adds ability to close repository list using shortcut - #2532", "[Improved] Switch default buttons in the Publish Branch dialog - #2515", "[Improved] Bring back \"Contact Support\" - #1472", "[Improved] Persist repository filter text after closing repository list - #2571", "[Improved] Redesigned example commit in the Welcome flow - #2141", "[Improved] Tidy up initial \"external editor\" experience - #2551", "[Fixed] 'Include All' checkbox not in sync with partial selection - #2493", "[Fixed] Copied text from diff removed valid characters - #2499", "[Fixed] Click-focus on Windows would dismiss dialog - #2488", "[Fixed] Branch list not rendered in app - #2531", "[Fixed] Git operations checking certificate store - #2520", "[Fixed] Properly identify repositories whose remotes have a trailing slash - #2584", "[Fixed] Windows: Fix launching the `github` command line tool - #2563", "[Fixed] Use the primary email address if it's public - #2244", "[Fixed] Local branch not checked out after clone - #2561", "[Fixed] Only the most recent 30 issues would autocomplete for GitHub Enterprise repositories - #2541", "[Fixed] Missing \"View on GitHub\" menu item for non-Gitub repositories - #2615", "[Fixed] New tab opened when pressing \"]\" for certain keyboard layouts - #2607", "[Fixed] Windows: Crash when exiting full screen - #1502", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Ensure the repository list is always accessible - #2648" ], "0.8.1-beta4": [ "[Improved] Persist repository filter text after closing repository list - #2571", "[Improved] Redesigned example commit in the Welcome flow - #2141", "[Improved] Tidy up initial \"external editor\" experience - #2551", "[Fixed] Missing \"View on GitHub\" menu item for non-Gitub repositories - #2615", "[Fixed] New tab opened when pressing \"]\" for certain keyboard layouts - #2607", "[Fixed] Windows: Crash when exiting full screen - #1502" ], "0.8.1-beta3": [ "[New] Windows: Enable adding self-signed certificates - #2581", "[Improved] Adds ability to close repository list using shortcut - #2532", "[Improved] Switch default buttons in the Publish Branch dialog - #2515", "[Improved] Bring back \"Contact Support\" - #1472", "[Fixed] Properly identify repositories whose remotes have a trailing slash - #2584", "[Fixed] Windows: Fix launching the `github` command line tool - #2563", "[Fixed] Use the primary email address if it's public - #2244", "[Fixed] Local branch not checked out after clone - #2561", "[Fixed] Only the most recent 30 issues would autocomplete for GitHub Enterprise repositories - #2541" ], "0.8.1-beta2": [ "[Fixed] Branch list not rendered in app - #2531", "[Fixed] Git operations checking certificate store - #2520" ], "0.8.1-beta1": [ "[New] 'Open in Shell' now supports multiple shells - #2473", "[Improved] Enhanced image diffs - #2383", "[Improved] Line diffs - #2461", "[Improved] Octicons updated - #2495", "[Fixed] 'Include All' checkbox not in sync with partial selection - #2493", "[Fixed] Copied text from diff removed valid characters - #2499", "[Fixed] Click-focus on Windows would dismiss dialog - #2488" ], "0.8.1-beta0": [], "0.8.0": [ "[New] Added commit context menu - #2434", "[New] Added 'Open in External Editor' - #2009", "[New] Can choose whether a branch should be deleted on the remote as well as locally - #2136", "[New] Support authenticating with non-GitHub servers - #852", "[New] Added the ability to revert a commit - #752", "[New] Added a keyboard shortcut for opening the repository in the shell - #2138", "[Improved] Copied diff text no longer includes the line changetype markers - #1499", "[Improved] Fetch if a push fails because they need to pull first - #2431", "[Improved] Discard changes performance - #1889", "[Fixed] Show 'Add Repository' dialog when repository is dragged onto the app - #2442", "[Fixed] Dialog component did not remove event handler - #2469", "[Fixed] Open in External Editor context menu - #2475", "[Fixed] Update to Git 2.14.1 to fix security vulnerability - #2432", "[Fixed] Recent branches disappearing after renaming a branch - #2426", "[Fixed] Changing the default branch on GitHub.com is now reflected in the app - #1489", "[Fixed] Swap around some callouts for no repositories - #2447", "[Fixed] Darker unfocused selection color - #1669", "[Fixed] Increase the max sidebar width - #1588", "[Fixed] Don't say \"Publish this branch to GitHub\" for non-GitHub repositories - #1498", "[Fixed] macOS: Protocol schemes not getting registered - #2429", "[Fixed] Patches which contain the \"no newline\" marker would fail to apply - #2123", "[Fixed] Close the autocompletion popover when it loses focus - #2358", "[Fixed] Clear the selected org when switching Publish Repository tabs - #2386", "[Fixed] 'Create Without Pushing' button throwing an exception while opening a pull request - #2368", "[Fixed] Windows: Don't removing the running app out from under itself when there are updates pending - #2373", "[Fixed] Windows: Respect `core.autocrlf` and `core.safeclrf` when modifying the .gitignore - #1535", "[Fixed] Windows: Fix opening the app from the command line - #2396" ], "0.7.3-beta5": [], "0.7.3-beta4": [], "0.7.3-beta3": [], "0.7.3-beta2": [], "0.7.3-beta1": [], "0.7.3-beta0": [], "0.7.2": ["[Fixed] Issues with auto-updating to 0.7.1."], "0.7.2-beta0": [], "0.7.1": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Improved] Create Pull Request dialog shows more feedback while it's working - #2265", "[Improved] Version text is now copiable - #1935", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299", "[Fixed] Help menu items now work - #2314", "[Fixed] Windows: `github` command line tool not installing after updating - #2312", "[Fixed] Caret position jumping around while changing the path for adding a local repository - #2222", "[Fixed] Error dialogs being closed too easily - #2211", "[Fixed] Windows: Non-ASCII credentials were mangled - #189" ], "0.7.1-beta5": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Improved] Create Pull Request dialog shows more feedback while it's working - #2265", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299", "[Fixed] Help menu items now work - #2314", "[Fixed] Windows: `github` command line tool not installing after updating - #2312", "[Fixed] Caret position jumping around while changing the path for adding a local repository - #2222", "[Fixed] Error dialogs being closed too easily - #2211", "[Fixed] Windows: Non-ASCII credentials were mangled - #189" ], "0.7.1-beta4": [], "0.7.1-beta3": [], "0.7.1-beta2": [], "0.7.1-beta1": [], "0.7.1-beta0": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299" ], "0.7.0": [ "[New] Added the Branch > Create Pull Request menu item - #2135", "[New] Added the `github` command line tool - #696", "[Improved] Better error message when publishing a repository fails - #2089", "[Improved] Windows: Don't recreate the desktop shortcut if it's been deleted - #1759", "[Fixed] Cloning a repository's wiki - #1624", "[Fixed] Don't call GitHub Enterprise GitHub.com - #2094", "[Fixed] Don't push after publishing a new repository if the branch is unborn - #2086", "[Fixed] Don't close dialogs when clicking the title bar - #2056", "[Fixed] Windows: Clicking 'Show in Explorer' doesn't bring Explorer to the front - #2127", "[Fixed] Windows: Opening links doesn't bring the browser to the front - #1945", "[Fixed] macOS: Closing the window wouldn't exit fullscreen - #1901", "[Fixed] Scale blankslate images so they look nicer on high resolution displays - #1946", "[Fixed] Windows: Installer not completing or getting stuck in a loop - #1875 #1863", "[Fixed] Move the 'Forgot Password' link to fix the tab order of the sign in view - #2200" ], "0.6.3-beta7": [], "0.6.3-beta6": [], "0.6.3-beta5": [], "0.6.3-beta4": [], "0.6.3-beta3": [], "0.6.3-beta2": [], "0.6.3-beta1": [], "0.6.3-beta0": [], "0.6.2": [ "[New] Link to User Guides from the Help menu - #1963", "[New] Added the 'Open in External Editor' contextual menu item to changed files - #2023", "[New] Added the 'Show' and 'Open Command Prompt' contextual menu items to repositories - #1554", "[New] Windows: Support self-signed or untrusted certificates - #671", "[New] Copy the SHA to the clipboard when clicked - #1501", "[Improved] Provide the option of initializing a new repository when adding a directory that isn't already one - #969", "[Improved] Link to the working directory when there are no changes - #1871", "[Improved] Hitting Enter when selecting a base branch creates the new branch - #1780", "[Improved] Prefix repository names with their owner if they are ambiguous - #1848", "[Fixed] Sort and filter licenses like GitHub.com - #1987", "[Fixed] Long branch names not getting truncated in the Rename Branch dialog - #1891", "[Fixed] Prune old log files - #1540", "[Fixed] Ensure the local path is valid before trying to create a new repository - #1487", "[Fixed] Support cloning repository wikis - #1624", "[Fixed] Disable the Select All checkbox when there are no changes - #1389", "[Fixed] Changed docx files wouldn't show anything in the diff panel - #1990", "[Fixed] Disable the Merge button when there are no commits to merge - #1359", "[Fixed] Username/password authentication not working for GitHub Enterprise - #2064", "[Fixed] Better error messages when an API call fails - #2017", "[Fixed] Create the 'logs' directory if it doesn't exist - #1550", "[Fixed] Enable the 'Remove' menu item for missing repositories - #1776" ], "0.6.1": [ "[Fixed] Properly log stats opt in/out - #1949", "[Fixed] Source maps for exceptions in the main process - #1957", "[Fixed] Styling of the exception dialog - #1956", "[Fixed] Handle ambiguous references - #1947", "[Fixed] Handle non-ASCII text in diffs - #1970", "[Fixed] Uncaught exception when hitting the arrow keys after showing autocompletions - #1971", "[Fixed] Clear the organizations list when publishing a new repository and switching between tabs - #1969", "[Fixed] Push properly when a tracking branch has a different name from the local branch - #1967", "[Improved] Warn when line endings will change - #1906" ], "0.6.0": [ "[Fixed] Issue autocompletion not working for older issues - #1814", "[Fixed] GitHub repository association not working for repositories with some remote URL formats - #1826 #1679", "[Fixed] Don't try to delete a remote branch that no longer exists - #1829", "[Fixed] Tokens created by development builds would be used in production builds but wouldn't work - #1727", "[Fixed] Submodules can now be added - #708", "[Fixed] Properly handle the case where a file is added to the index but removed from the working tree - #1310", "[Fixed] Use a local image for the default avatar - #1621", "[Fixed] Make the file path in diffs selectable - #1768", "[Improved] More logging! - #1823", "[Improved] Better error message when trying to add something that's not a repository - #1747", "[Improved] Copy the shell environment into the app's environment - #1796", "[Improved] Updated to Git 2.13.0 - #1897", "[Improved] Add 'Reveal' to the contextual menu for changed files - #1566", "[Improved] Better handling of large diffs - #1818 #1524", "[Improved] App launch time - #1900" ], "0.5.9": [ "[New] Added Zoom In and Zoom Out - #1217", "[Fixed] Various errors when on an unborn branch - #1450", "[Fixed] Disable push/pull menu items when there is no remote - #1448", "[Fixed] Better error message when the GitHub Enterprise version is too old - #1628", "[Fixed] Error parsing non-JSON responses - #1505 #1522", "[Fixed] Updated the 'Install Git' help documentation link - #1797", "[Fixed] Disable menu items while in the Welcome flow - #1529", "[Fixed] Windows: Fall back to HOME if Document cannot be found - #1825", "[Improved] Close the window when an exception occurs - #1562", "[Improved] Always use merge when pulling - #1627", "[Improved] Move the 'New Branch' menu item into the Branch menu - #1757", "[Improved] Remove Repository's default button is now Cancel - #1751", "[Improved] Only fetch the default remote - #1435", "[Improved] Faster commits with many files - #1405", "[Improved] Measure startup time more reliably - #1798", "[Improved] Prefer the GitHub repository name instead of the name on disk - #664" ], "0.5.8": [ "[Fixed] Switching tabs in Preferences/Settings or Repository Settings would close the dialog - #1724", "[Improved] Standardized colors which improves contrast and readability - #1713" ], "0.5.7": [ "[Fixed] Windows: Handle protocol events which launch the app - #1582", "[Fixed] Opting out of stats reporting in the Welcome flow - #1698", "[Fixed] Commit description text being too light - #1695", "[Fixed] Exception on startup if the app was activated too quickly - #1564", "[Improved] Default directory for cloning now - #1663", "[Improved] Accessibility support - #1289", "[Improved] Lovely blank slate illustrations - #1708" ], "0.5.6": [ "[Fixed] macOS: The buttons in the Untrusted Server dialog not doing anything - #1622", "[Fixed] Better warning in Rename Branch when the branch will be created with a different name than was entered - #1480", "[Fixed] Provide a tooltip for commit summaries in the History list - #1483", "[Fixed] Prevent the Update Available banner from getting squished - #1632", "[Fixed] Title bar not responding to double-clicks - #1590 #1655", "[Improved] Discard All Changes is now accessible by right-clicking the file column header - #1635" ], "0.5.5": [ "[Fixed] Save the default path after creating a new repository - #1486", "[Fixed] Only let the user launch the browser once for the OAuth flow - #1427", "[Fixed] Don't linkify invalid URLs - #1456", "[Fixed] Excessive padding in the Merge Branch dialog - #1577", "[Fixed] Octicon pixel alignment issues - #1584", "[Fixed] Windows: Invoking some menu items would break the window's snapped state - #1603", "[Fixed] macOS: Errors authenticating while pushing - #1514", "[Fixed] Don't linkify links in the History list or in Undo - #1548 #1608 #1474", "[Fixed] Diffs not working when certain git config values were set - #1559" ], "0.5.4": [ "[Fixed] The release notes URL pointed to the wrong page - #1503", "[Fixed] Only create the `logs` directory if it doesn't already exist - #1510", "[Fixed] Uncaught exception creating a new repository if you aren't a member of any orgs - #1507", "[Fixed] Only report the first uncaught exception - #1517", "[Fixed] Include the name of the default branch in the New Branch dialog - #1449", "[Fixed] Uncaught exception if a network error occurred while loading user email addresses - #1522 #1508", "[Fixed] Uncaught exception while performing a contextual menu action - #1532", "[Improved] Move all error logging to the main process - #1473", "[Improved] Stats reporting reliability - #1561" ], "0.5.3": [ "[Fixed] Display of large image diffs - #1494", "[Fixed] Discard Changes spacing - #1495" ], "0.5.2": [ "[Fixed] Display errors that happen while publishing a repository - #1396", "[Fixed] Menu items not updating - #1462", "[Fixed] Always select the first changed file - #1306", "[Fixed] macOS: Use Title Case consistently - #1477 #1481", "[Fixed] Create Branch padding - #1479", "[Fixed] Bottom padding in commit descriptions - #1345", "[Improved] Dialog polish - #1451", "[Improved] Store logs in a logs directory - #1370", "[Improved] New Welcome illustrations - #1471", "[Improved] Request confirmation before removing a repository - #1233", "[Improved] Windows icon polish - #1457" ], "0.5.1": [ "[New] Windows: A nice little gif while installing the app - #1440", "[Fixed] Disable pinch zoom - #1431", "[Fixed] Don't show carriage return indicators in diffs - #1444", "[Fixed] History wouldn't update after switching branches - #1446", "[Improved] Include more information in exception reports - #1429", "[Improved] Updated Terms and Conditions - #1438", "[Improved] Sub-pixel anti-aliasing in some lists - #1452", "[Improved] Windows: A new application identifier, less likely to collide with other apps - #1441" ], "0.5.0": [ "[Added] Menu item for showing the app logs - #1349", "[Fixed] Don't let the two-factor authentication dialog be submitted while it's empty - #1386", "[Fixed] Undo Commit showing the wrong commit - #1373", "[Fixed] Windows: Update the icon used for the installer - #1410", "[Fixed] Undoing the first commit - #1401", "[Fixed] A second window would be opened during the OAuth dance - #1382", "[Fixed] Don't include the comment from the default merge commit message - #1367", "[Fixed] Show progress while committing - #923", "[Fixed] Windows: Merge Branch sizing would be wrong on high DPI monitors - #1210", "[Fixed] Windows: Resize the app from the top left corner - #1424", "[Fixed] Changing the destination path for cloning a repository now appends the repository's name - #1408", "[Fixed] The blank slate view could be visible briefly when the app launched - #1398", "[Improved] Performance updating menu items - #1321", "[Improved] Windows: Dim the title bar when the app loses focus - #1189" ], "0.0.39": ["[Fixed] An uncaught exception when adding a user - #1394"], "0.0.38": [ "[New] Shiny new icon! - #1221", "[New] More helpful blank slate view - #871", "[Fixed] Don't allow Undo while pushing/pulling/fetching - #1047", "[Fixed] Updating the default branch on GitHub wouldn't be reflected in the app - #1028 #1314", "[Fixed] Long repository names would overflow their container - #1331", "[Fixed] Removed development menu items in production builds - #1031 #1251 #1323 #1340", "[Fixed] Create Branch no longer changes as it's animating closed - #1304", "[Fixed] Windows: Cut / Copy / Paste menu items not working - #1379", "[Improved] Show a better error message when the user tries to authenticate with a personal access token - #1313", "[Improved] Link to the repository New Issue page from the Help menu - #1349", "[Improved] Clone in Desktop opens the Clone dialog - #918" ], "0.0.37": [ "[Fixed] Better display of the 'no newline at end of file' indicator - #1253", "[Fixed] macOS: Destructive dialogs now use the expected button order - #1315", "[Fixed] Display of submodule paths - #785", "[Fixed] Incomplete stats submission - #1337", "[Improved] Redesigned welcome flow - #1254", "[Improved] App launch time - #1225", "[Improved] Handle uncaught exceptions - #1106" ], "0.0.36": [ "[Fixed] Bugs around associating an email address with a GitHub user - #975", "[Fixed] Use the correct reference name for an unborn branch - #1283", "[Fixed] Better diffs for renamed files - #980", "[Fixed] Typo in Create Branch - #1303", "[Fixed] Don't allow whitespace-only branch names - #1288", "[Improved] Focus ring polish - #1287", "[Improved] Less intrusive update notifications - #1136", "[Improved] Faster launch time on Windows - #1309", "[Improved] Faster git information refreshing - #1305", "[Improved] More consistent use of sentence case on Windows - #1316", "[Improved] Autocomplete polish - #1241" ], "0.0.35": [ "[New] Show push/pull/fetch progress - #1238", "[Fixed] macOS: Add the Zoom menu item - #1260", "[Fixed] macOS: Don't show the titlebar while full screened - #1247", "[Fixed] Windows: Updates would make the app unresponsive - #1269", "[Fixed] Windows: Keyboard navigation in menus - #1293", "[Fixed] Windows: Repositories list item not working - #1293", "[Fixed] Auto updater errors not being propagated properly - #1266", "[Fixed] Only show the current branch tooltip on the branches button - #1275", "[Fixed] Double path truncation - #1270", "[Fixed] Sometimes toggling a file's checkbox would get undone - #1248", "[Fixed] Uncaught exception when internet connectivity was lost - #1048", "[Fixed] Cloned repositories wouldn't be associated with their GitHub repository - #1285", "[Improved] Better performance on large repositories - #1281", "[Improved] Commit summary is now expandable when the summary is long - #519", "[Improved] The SHA in historical commits is now selectable - #1154", "[Improved] The Create Branch dialog was polished and refined - #1137" ], "0.0.34": [ "[New] macOS: Users can choose whether to accept untrusted certificates - #671", "[New] Windows: Users are prompted to install git when opening a shell if it is not installed - #813", "[New] Checkout progress is shown if branch switching takes a while - #1208", "[New] Commit summary and description are automatically populated for merge conflicts - #1228", "[Fixed] Cloning repositories while not signed in - #1163", "[Fixed] Merge commits are now created as merge commits - #1216", "[Fixed] Display of diffs with /r newline - #1234", "[Fixed] Windows: Maximized windows are no longer positioned slightly off screen - #1202", "[Fixed] JSON parse errors - #1243", "[Fixed] GitHub Enterprise repositories were not associated with the proper Enterprise repository - #1242", "[Fixed] Timestamps in the Branches list would wrap - #1255", "[Fixed] Merges created from pulling wouldn't use the right git author - #1262", "[Improved] Check for update errors are suppressed if they happen in the background - #1104, #1195", "[Improved] The shortcut to show the repositories list is now command or control-T - #1220", "[Improved] Command or control-W now closes open dialogs - #949", "[Improved] Less memory usage while parsing large diffs - #1235" ], "0.0.33": ["[Fixed] Update Now wouldn't update now - #1209"], "0.0.32": [ "[New] You can now disable stats reporting from Preferences > Advanced - #1120", "[New] Acknowledgements are now available from About - #810", "[New] Open pull requests from dot com in the app - #808", "[Fixed] Don't show background fetch errors - #875", "[Fixed] No more surprise and delight - #620", "[Fixed] Can't discard renamed files - #1177", "[Fixed] Logging out of one account would log out of all accounts - #1192", "[Fixed] Renamed files truncation - #695", "[Fixed] Git on Windows now integrates with the system certificate store - #706", "[Fixed] Cloning with an account/repoository shortcut would always fail - #1150", "[Fixed] OS version reporting - #1130", "[Fixed] Publish a new repository would always fail - #1046", "[Fixed] Authentication would fail for the first repository after logging in - #1118", "[Fixed] Don't flood the user with errors if a repository disappears on disk - #1132", "[Improved] The Merge dialog uses the Branches list instead of a drop down menu - #749", "[Improved] Lots of design polish - #1188, #1183, #1170, #1184, #1181, #1179, #1142, #1125" ], "0.0.31": [ "[New] Prompt user to login when authentication error occurs - #903", "[New] Windows application has a new app menu, replaces previous hamburger menu - #991", "[New] Refreshed colours to align with GitHub website scheme - #1077", "[New] Custom about dialog on all platforms - #1102", "[Fixed] Improved error handling when probing for a GitHub Enterprise server - #1026", "[Fixed] User can cancel 2FA flow - #1057", "[Fixed] Tidy up current set of menu items - #1063", "[Fixed] Manually focus the window when a URL action has been received - #1072", "[Fixed] Disable middle-click event to prevent new windows being launched - #1074", "[Fixed] Pre-fill the account name in the Welcome wizard, not login - #1078", "[Fixed] Diffs wouldn't work if an external diff program was configured - #1123", "[Improved] Lots of design polish work - #1113, #1099, #1094, #1077" ], "0.0.30": [ "[Fixed] Crash when invoking menu item due to incorrect method signature - #1041" ], "0.0.29": [ "[New] Commit summary and description fields now display issues and mentions as links for GitHub repositories - #941", "[New] Show placeholder when the repository cannot be found on disk - #946", "[New] New Repository actions moved out of popover and into new menu - #1018", "[Fixed] Display a helpful error message when an unverified user signs into GitHub Desktop - #1010", "[Fixed] Fix kerning issue when access keys displayed - #1033", "[Fixed] Protected branches show a descriptive error when the push is rejected - #1036", "[Fixed] 'Open in shell' on Windows opens to repository location - #1037" ], "0.0.28": ["[Fixed] Bumping release notes to test deployments again"], "0.0.27": [ "[Fixed] 2FA dialog when authenticating has information for SMS authentication - #1009", "[Fixed] Autocomplete for users handles accounts containing `-` - #1008" ], "0.0.26": [ "[Fixed] Address deployment issue by properly documenting release notes" ], "0.0.25": [ "[Added] Autocomplete displays user matches - #942", "[Fixed] Handle Enter key in repository and branch list when no matches exist - #995", "[Fixed] 'Add Repository' button displays in dropdown when repository list empty - #984", "[Fixed] Correct icon displayed for non-GitHub repository - #964 #955", "[Fixed] Enter key when inside dialog submits form - #956", "[Fixed] Updated URL handler entry on macOS - #945", "[Fixed] Commit button is disabled while commit in progress - #940", "[Fixed] Handle index state change when gitginore change is discarded - #935", "[Fixed] 'Create New Branch' view squashes branch list when expanded - #927", "[Fixed] Application creates repository path if it doesn't exist on disk - #925", "[Improved] Preferences sign-in flow updated to standalone dialogs - #961" ], "0.0.24": ["Changed a thing", "Added another thing"] } }
sanusanth / Javascript Basic ProgramWhat is JavaScript and what does it do? Before you start learning something new, it’s important to understand exactly what it is and what it does. This is especially useful when it comes to mastering a new programming language. In simple terms, JavaScript is a programming language used to make websites interactive. If you think about the basic makeup of a website, you have HTML, which describes and defines the basic content and structure of the website, then you have CSS, which tells the browser how this HTML content should be displayed—determining things like color and font. With just HTML and CSS, you have a website that looks good but doesn’t actually do much. JavaScript brings the website to life by adding functionality. JavaScript is responsible for elements that the user can interact with, such as drop-down menus, modal windows, and contact forms. It is also used to create things like animations, video players, and interactive maps. Nowadays, JavaScript is an all-purpose programming language—meaning it runs across the entire software stack. The most popular application of JavaScript is on the client side (aka frontend), but since Node.js came on the scene, many people run JavaScript on the server side (aka backend) as well. When used on the client side, JavaScript code is read, interpreted, and executed in the user’s web browser. When used on the server side, it is run on a remote computer. You can learn more about the difference between frontend and backend programming here. JavaScript isn’t only used to create websites. It can also be used to build browser-based games and, with the help of certain frameworks, mobile apps for different operating systems. The creation of new libraries and frameworks is also making it possible to build backend programs with JavaScript, such as web apps and server apps. Is it still worth learning JavaScript in 2021? The world of web development is constantly moving. With so many new tools popping up all the time, it can be extremely difficult to know where you should focus your efforts. As an aspiring developer, you’ll want to make sure that what you’re learning is still relevant in today’s industry. If you’re having doubts about JavaScript, it’s important to know that, since its creation in 1995, JavaScript is pretty much everywhere on the web—and that’s not likely to change any time soon. According to the 2020 StackOverflow developer survey, JavaScript is the most commonly used programming language for the eighth year in a row. It is currently used by 94.5% of all websites and, despite originally being designed as a client-side language, JavaScript has now made its way to the server-side of websites (thanks to Node.js), mobile devices (thanks to React Native and Ionic) and desktop (courtesy of Electron). As long as people are interacting with the web, you can assume that JavaScript is highly relevant—there’s no doubt that this is a language worth knowing! With that in mind, let’s look at some of the key benefits of becoming a JavaScript expert. Why learn JavaScript? The most obvious reason for learning JavaScript is if you have hopes of becoming a web developer. Even if you haven’t got your heart set on a tech career, being proficient in JavaScript will enable you to build websites from scratch—a pretty useful skill to have in today’s job market! If you do want to become a web developer, here are some of the main reasons why you should learn JavaScript: JavaScript experts are versatile JavaScript is an extremely versatile language. Once you’ve mastered it, the possibilities are endless: you can code on the client-side (frontend) using Angular and on the server-side (backend) using Node.js. You can also develop web, mobile, and desktop apps using React, React Native, and Electron, and you can even get involved in machine learning. If you want to become a frontend developer, JavaScript is a prerequisite. However, that’s not the only career path open to you as a JavaScript expert. Mastering this key programming language could see you go on to work in full-stack development, games development, information security software engineering, machine learning, and artificial intelligence—to name just a few! Ultimately, if you want any kind of development or engineering career, proficiency in JavaScript is a must. JavaScript experts are in-demand (and well-paid) JavaScript is the most popular programming language in the world, so it’s no wonder that JavaScript is one of the most sought-after skills in the web development industry today. According to the Devskiller IT Skills and Hiring Report 2020, 72% of companies are looking to hire JavaScript experts. Enter the search term “JavaScript” on job site Indeed and you’ll find over 40,000 jobs requiring this skill (in the US). Run the same search on LinkedIn and the results are in excess of 125,000. At the same time, the global demand for JavaScript seems to outweigh the expertise available on the market. According to this 2018 HackerRank report, 48% of employers worldwide need developers with JavaScript skills, while only 42% of student developers claim to be proficient in JavaScript. And, in their most recent report for 2020, HackerRank once again reports that JavaScript is the most popular language that hiring mangers look for in a web developer candidate. Not only are JavaScript experts in demand—they are also well-paid. In the United States, JavaScript developers earn an average yearly salary of $111,953 per year. We’ve covered this topic in more detail in our JavaScript salary guide, but as you can see, learning JavaScript can really boost your earning potential as a developer. JavaScript is beginner-friendly Compared to many other programming languages, JavaScript offers one of the more beginner-friendly entry points into the world of coding. The great thing about JavaScript is that it comes installed on every modern web browser—there’s no need to set up any kind of development environment, which means you can start coding with JavaScript right away! Another advantage of learning JavaScript as your first programming language is that you get instant feedback; with a minimal amount of JavaScript code, you’ll immediately see visible results. There’s also a huge JavaScript community on sites like Stack Overflow, so you’ll find plenty of support as you learn. Not only is JavaScript beginner-friendly; it will also set you up with some extremely valuable transferable skills. JavaScript supports object-oriented, functional, and imperative styles of programming—skills which can be transferred to any new language you might learn later on, such as Python, Java, or C++. JavaScript provides a crucial introduction to key principles and practices that you’ll take with you throughout your career as a developer. Should you learn plain JavaScript first or can you skip to frameworks and libraries? When deciding whether or not to learn JavaScript, what you’re really asking is whether or not you should learn “vanilla” JavaScript. Vanilla JavaScript just means plain JavaScript without any libraries or frameworks. Let’s explore what this means in more detail now. What is meant by vanilla JavaScript, libraries, and frameworks? If you research the term “vanilla JavaScript”, you might run into some confusion; however, all you need to know is that vanilla JavaScript is used to refer to native, standards-based, non-extended JavaScript. There is no difference between vanilla JavaScript and JavaScript—it’s just there to emphasize the usage of plain JavaScript without the use of libraries and frameworks. So what are libraries and frameworks? JavaScript libraries and frameworks both contain sets of prewritten, ready-to-use JavaScript code—but they’re not the same thing. You can think of a framework as your blueprint for building a website: it gives you a structure to work from, and contains ready-made components and tools that help you to build certain elements much quicker than if you were to code them from scratch. Some popular JavaScript frameworks include Angular, React, Vue, and Node.js. Frameworks also contain libraries. Libraries are smaller than frameworks, and tend to be used for more specific cases. A JavaScript library contains sets of JavaScript code which can be called upon to implement certain functions and features. Let’s imagine you want to code a particular element into your website. You could write, say, ten lines of JavaScript from scratch—or you could take the condensed, ready-made version from your chosen JavaScript library. Some examples of JavaScript libraries include jQuery, Lodash, and Underscore. The easiest way to understand how frameworks and libraries work together is to imagine you are building a house. The framework provides the foundation and the structure, while the library enables you to add in ready-made components (like furniture) rather than building your own from scratch. You can learn more about the relationship between languages and libraries in this post explaining the main differences between JavaScript and jQuery. For now, let’s go back to our original question: How important is it to learn vanilla JavaScript? Should you learn vanilla JavaScript first? When it comes to learning JavaScript, it can be tempting to skip ahead to those time-saving frameworks and libraries we just talked about—and many developers do. However, there are many compelling arguments for learning plain JavaScript first. While JavaScript frameworks may help you get the job done quicker, there’s only so far you can go if you don’t understand the core concepts behind these frameworks. Frontend developer Abhishek Nagekar describes how not learning vanilla JavaScript came back to bite him when he started learning the JavaScript frameworks Node and Express: “As I went to write more and more code in Node and Express, I began to get stuck at even the tiniest problems. Suddenly, I was surrounded with words like callbacks, closures, event loop and prototype. It felt like I got a reintroduction to JavaScript, but this time, it was not a toddler playing in its cradle, it was something of a mysterious monster, challenging me on every other step for not having taken it seriously.” The above Tweet references a long-running joke within the developer community, and although it dates way back to 2015, it’s still highly relevant today. If you want to become a developer who can innovate, not just execute, you need to understand the underlying principles of the web—not just the shortcuts. This means learning vanilla JavaScript before you move on to frameworks. In fact, understanding plain JavaScript will help you later on when it comes to deciding whether to use a framework for a certain project, and if so, which framework to use. Why Study JavaScript? JavaScript is one of the 3 languages all web developers must learn: 1. HTML to define the content of web pages 2. CSS to specify the layout of web pages 3. JavaScript to program the behavior of web pages Learning Speed In this tutorial, the learning speed is your choice. Everything is up to you. If you are struggling, take a break, or re-read the material. Always make sure you understand all the "Try-it-Yourself" examples. The only way to become a clever programmer is to: Practice. Practice. Practice. Code. Code. Code ! Commonly Asked Questions How do I get JavaScript? Where can I download JavaScript? Is JavaScript Free? You don't have to get or download JavaScript. JavaScript is already running in your browser on your computer, on your tablet, and on your smart-phone. JavaScript is free to use for everyone.