/*******************************************************************************
 * Copyright (c) 2013 EclipseSource.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    EclipseSource - initial API and implementation
 ******************************************************************************/
package org.eclipse.rap.addons.dropdown.demo.data;

public class Movies {

  public static final String[] VALUES = new String[] {
    "1969",
    "24 Hours of Explicit Sex",
    "36 Fillette",
    "48 Hrs.",
    "'68",
    "9½ Weeks",
    "18 Again! ",
    "About Last Night",
    "Above the Law",
    "The Abyss",
    "The Accidental Tourist",
    "The Accused",
    "Action Jackson",
    "Adventures in Babysitting",
    "The Adventures of Baron Munchausen",
    "The Adventures of Buckaroo Banzai Across the 8th Dimension",
    "The Adventures of Milo and Otis",
    "After Death",
    "After Hours",
    "After the Rehearsal(TV)",
    "Against All Odds",
    "Airplane!",
    "Airplane II: The Sequel",
    "Alice",
    "Alien Nation",
    "Aliens",
    "Alligator",
    "All Dogs Go to Heaven",
    "All Of Me",
    "Altered States",
    "Amadeus",
    "Amazon Women on the Moon",
    "American Pop",
    "An American Tail",
    "An American Werewolf in London",
    "An Eye for an Eye",
    "Angel",
    "Annie",
    "Another Woman",
    "As Tears Go By",
    "Atlantic City",
    "Au revoir, les enfants",
    "Baby It's You",
    "Back to School",
    "Back to the Future",
    "Back to the Future Part II",
    "Bad Boys",
    "Bad Taste",
    "La Bamba",
    "Batman",
    "*batteries not included",
    "The Battle for Endor  (TV)",
    "Beaches",
    "The Beast",
    "Beat Street",
    "Le Beau Mariage (A Good Marriage)",
    "Beetlejuice",
    "Below the Belt",
    "The Best Little Whorehouse in Texas",
    "Betrayed",
    "Better Off Dead",
    "Betty Blue",
    "Betty Boop for President: The Movie",
    "Beverly Hills Cop",
    "Beverly Hills Cop II",
    "Big",
    "Big Business (1988 film)",
    "The Big Chill",
    "The Big Red One",
    "Big Top Pee-wee",
    "Big Trouble in Little China",
    "The Bigger the Better",
    "Bill & Ted's Excellent Adventure",
    "The Black Cauldron",
    "Blade Runner",
    "Blind Date",
    "The Blob",
    "The Blue Lagoon",
    "The Brave Little Toaster",
    "Blue Velvet",
    "The Blues Brothers",
    "Body Double",
    "Body Heat",
    "Das Boot",
    "Born on the Fourth of July",
    "Boyfriends and Girlfriends (L'Ami de mon amie)",
    "Braddock: Missing in Action III",
    "Brazil",
    "Breaker Morant",
    "The Breakfast Club",
    "Breakin'",
    "Breakin' 2: Electric Boogaloo",
    "Breaking All The Rules",
    "Brewster's Millions",
    "Bridge to Terabithia  (TV)",
    "Bright Lights, Big City",
    "Broadcast News",
    "The Brother from Another Planet",
    "Bull Durham",
    "The 'Burbs",
    "Buster",
    "Brimstone and Treacle",
    "Caddyshack",
    "Caddyshack II",
    "Café Flesh",
    "Cannibal Holocaust",
    "Casual Sex?",
    "The Cannonball Run",
    "Cannonball Run II",
    "Can't Buy Me Love",
    "Captain EO",
    "Caravan of Courage: An Ewok Adventure  (TV)",
    "Cat's Eye",
    "Cat People",
    "The Cat Who Walked by Herself",
    "Caveman",
    "Celia",
    "Centurians of Rome",
    "Chained Heat",
    "Chariots of Fire",
    "Cheech & Chong's The Corsican Brothers",
    "Cheech & Chong's Next Movie",
    "Children of a Lesser God",
    "Children of the Corn",
    "Child's Play",
    "A Chorus Line",
    "Christine",
    "A Christmas Story",
    "City Heat",
    "Clash of the Titans",
    "Class of 1984",
    "Class of Nuke 'Em High",
    "Classmates",
    "Cloak & Dagger",
    "Clue",
    "Club Paradise",
    "Coal Miner's Daughter",
    "Coast to Coast",
    "Cobra",
    "Cocktail",
    "Cocoon",
    "Cocoon: The Return",
    "Code of Silence (film)",
    "The Color of Money",
    "The Color Purple",
    "Colors",
    "Coming to America",
    "Commando",
    "The Company of Wolves",
    "Conan the Barbarian",
    "Conan the Destroyer",
    "Condorman",
    "The Cotton Club",
    "Cousins",
    "Crimes and Misdemeanors",
    "Critters",
    "Critters 2",
    "Crocodile Dundee",
    "Crocodile Dundee II",
    "Crossroads",
    "Curse of the Pink Panther",
    "Damnation",
    "Dangerous Curves",
    "Dangerous Liaisons",
    "The Dark Crystal",
    "Dark Eyes",
    "Date with an Angel",
    "Day of the Panther",
    "Daydream",
    "The Decalogue",
    "The Delinquents",
    "The Devil and Max Devlin",
    "Do the Right Thing",
    "D.C. Cab",
    "Dead & Buried",
    "Dead Poets Society",
    "Dead Ringers",
    "The Dead Zone",
    "Deathtrap",
    "Delta Force, The",
    "Desperately Seeking Susan",
    "Die Hard",
    "Diner",
    "Dirty Dancing",
    "Dragnet",
    "Dragon Ball: Curse of the Blood Rubies",
    "Dragon Ball: Sleeping Princess in Devil's Castle",
    "Dragon Ball: Mystical Adventure",
    "Dragon Ball Z: Dead Zone",
    "Dragonslayer",
    "Dreamscape",
    "Dream a Little Dream",
    "Dressed To Kill",
    "The Dresser",
    "Driving Miss Daisy",
    "Dogs in Space",
    "Down and Out in Beverly Hills",
    "Dune",
    "E.T. the Extra-Terrestrial",
    "Earth Girls Are Easy",
    "Eating Raoul",
    "Eight Men Out",
    "Electric Blue 28",
    "Electric Dreams",
    "The Elephant Man",
    "The Emerald Forest",
    "Emmanuelle 5",
    "Empire of the Sun",
    "Endless Love",
    "Enemy Mine",
    "Escape from New York",
    "Everybody's All-American",
    "The Evil That Men Do",
    "Excalibur",
    "Explorers",
    "Eye of the Needle",
    "Eye of the Tiger",
    "Evil Dead",
    "Evil Dead II",
    "The Exterminator",
    "Exterminator 2",
    "The Fabulous Baker Boys",
    "Faces of Death II",
    "Faces of Death III",
    "Fame",
    "Fanny and Alexander",
    "Fast Times at Ridgemont High",
    "La Femme de l'aviateur (The Aviator's Wife)",
    "Fatal Attraction",
    "Fatso",
    "Ferris Bueller's Day Off",
    "Field of Dreams",
    "Firestarter",
    "Firewalker (film)",
    "A Fish Called Wanda",
    "Fitzcarraldo",
    "Flashdance",
    "Flash Gordon",
    "The Flight of Dragons",
    "Flight of the Navigator",
    "The Fly",
    "The Fly II",
    "The Fog",
    "Footloose",
    "Forced Vengeance",
    "For All Mankind",
    "For Keeps",
    "Fortress (1986 film)",
    "For Your Eyes Only",
    "The Fox and The Hound",
    "Foxes",
    "The French Lieutenant's Woman",
    "Friday the 13th",
    "Friday the 13th Part 2",
    "Friday the 13th Part III",
    "Friday the 13th: The Final Chapter",
    "Friday the 13th: A New Beginning",
    "Friday the 13th Part VI: Jason Lives",
    "Friday the 13th Part VII: The New Blood",
    "Friday the 13th Part VIII: Jason Takes Manhattan",
    "Fright Night",
    "Full Metal Jacket",
    "Gandhi",
    "The Gate",
    "'Gator Bait II: Cajun Justice",
    "Get Out of My Room",
    "Germany Pale Mother",
    "Ghostbusters",
    "Ghostbusters II",
    "Girls Just Want To Have Fun",
    "Gloria",
    "Glory",
    "The Gods Must Be Crazy",
    "The Gods Must Be Crazy II",
    "The Good, the Bad, and Huckleberry Hound  (TV)",
    "The Goonies",
    "Godzilla vs. Biollante",
    "Gorillas in the Mist",
    "Gotcha!",
    "Grease 2",
    "The Great Mouse Detective",
    "The Great Muppet Caper",
    "The Green Ray (Le Rayon vert)",
    "Gregory's Girl",
    "Gremlins",
    "Greystoke: The Legend of Tarzan, Lord of the Apes",
    "Gung Ho",
    "Hairspray",
    "Halloween II",
    "Halloween III: Season of the Witch",
    "Halloween 4: The Return of Michael Myers",
    "Halloween 5: The Revenge of Michael Myers",
    "Hamburger Hill",
    "Hannah and Her Sisters",
    "Hanky Panky",
    "Hardbodies",
    "Harry and the Hendersons",
    "Haunted Honeymoon",
    "Heat and Dust",
    "Heathers",
    "The Heavenly Kid",
    "Heaven's Gate",
    "Heavy Metal",
    "Heimat",
    "Hellraiser",
    "he man",
    "Hellbound: Hellraiser II",
    "Her Alibi",
    "Hey Good Lookin'",
    "Highlander",
    "High School U.S.A.  (TV)",
    "The Hills Have Eyes Part II",
    "History of the World Part I",
    "The Hitcher",
    "Hitler's SS: Portrait in Evil  (TV)",
    "Hollywood Heartbreakers",
    "Hollywood Shuffle",
    "Honey, I Shrunk the Kids",
    "Hoosiers",
    "Hope and Glory",
    "Hot Dog... The Movie",
    "Howard the Duck",
    "The Howling",
    "Humongous",
    "The Hunchback of Notre Dame",
    "I Ought to Be in Pictures",
    "Illegally Yours",
    "Raiders of the Lost Ark",
    "Indiana Jones and the Temple of Doom",
    "Indiana Jones and the Last Crusade",
    "I'm Gonna Git You Sucka",
    "Inferno",
    "Innerspace",
    "Inside Moves",
    "Invaders from Mars (1986 film)",
    "Invasion U.S.A. (1985 film)",
    "Ishtar",
    "The Island",
    "It Came From Hollywood",
    "It's Impossible to Learn to Plow by Reading Books",
    "I was a Teenage Zombie",
    "Jagged Edge",
    "Jaws 3-D",
    "Jaws: The Revenge",
    "the Jazz Singer",
    "The Jet Benny Show",
    "The Jetsons Meet the Flintstones  (TV)",
    "The Jewel of the Nile",
    "Jinxed!",
    "Johnny Be Good",
    "Johnny Dangerously",
    "Jumpin' Jack Flash",
    "Just One of the Guys",
    "Kagemusha",
    "The Karate Kid",
    "The Karate Kid Part II",
    "The Karate Kid Part III",
    "Killer Klowns from Outer Space",
    "Kill and Kill Again",
    "Kill or Be Killed",
    "The Killing Fields",
    "King Kong 2",
    "The King of Comedy",
    "Kinky Business",
    "Kiss of the Spider Woman",
    "Knick Knack",
    "Krull",
    "Krush Groove",
    "Labyrinth",
    "Ladyhawke",
    "The Lair of the White Worm",
    "The Land Before Time",
    "Landscape in the Mist",
    "The Last Dragon",
    "The Last Emperor",
    "The Last Place on Earth  (TV)",
    "The Last Starfighter",
    "The Last Temptation of Christ",
    "The Last Unicorn",
    "Lean on Me",
    "Legal Eagles",
    "Legend",
    "The Legend of Billie Jean",
    "Less Than Zero",
    "Lethal Weapon",
    "Lethal Weapon 2",
    "Lianna",
    "Licence to Kill",
    "License to Drive",
    "Little Darlings",
    "The Little Mermaid",
    "Little Monsters",
    "Little Shop of Horrors",
    "The Living Daylights",
    "Local Hero",
    "Lone Wolf McQuade",
    "The Lonely Lady",
    "The Long Good Friday",
    "Look Who's Talking",
    "The Lost Boys",
    "Lost in America",
    "Lo que le Pasó a Santiago",
    "Lucas",
    "Mad Max 2",
    "Mad Max Beyond Thunderdome",
    "The Man with One Red Shoe",
    "Mannequin",
    "Married to the Mob",
    "Mask",
    "Masters of the Universe",
    "Matewan",
    "Max Dugan Returns",
    "Maximum Overdrive",
    "Meet The Feebles",
    "Meet the Hollowheads",
    "Melvin and Howard",
    "Midnight Madness",
    "Midnight Run",
    "Mischief",
    "Missing",
    "Missing in Action",
    "Missing in Action 2: The Beginning",
    "Mississippi Burning",
    "Mommie Dearest",
    "Monty Python's The Meaning of Life",
    "Modern Girls",
    "Modern Problems",
    "Moonstruck",
    "Moonwalker",
    "Mr. Mom",
    "The Money Pit",
    "The Muppets Take Manhattan",
    "Murphy's Romance",
    "My Dinner With Andre",
    "My Left Foot",
    "Mystic Pizza",
    "Nadine",
    "Naked Gun, The: From the Files of Police Squad!",
    "Nate and Hayes",
    "The Natural",
    "Near Dark",
    "The Nest",
    "The Nesting",
    "Never Cry Wolf",
    "Never Say Never Again",
    "The Neverending Story",
    "Nice Dreams",
    "A Night in Heaven",
    "Night of the Comet",
    "Night of the Creeps",
    "Night Shift",
    "A Nightmare on Elm Street",
    "A Nightmare on Elm Street 2: Freddy's Revenge",
    "A Nightmare on Elm Street 3: Dream Warriors",
    "A Nightmare on Elm Street 4: The Dream Master",
    "A Nightmare on Elm Street 5: The Dream Child",
    "Nine to Five",
    "Nineteen Eighty-Four",
    "No Mercy",
    "No Small Affair",
    "No Way Out",
    "Les Nuits de la pleine lune (Full Moon In Paris)",
    "Octopussy",
    "The Octagon (film)",
    "An Officer and a Gentleman",
    "Oh, God! Book II",
    "Oh, God! You Devil",
    "On Golden Pond",
    "Oliver & Company",
    "Once Upon a Spy",
    "Once Upon a Time in America",
    "One Crazy Summer",
    "One More Saturday Night",
    "Only When I Laugh",
    "Ordinary People",
    "The Osterman Weekend",
    "Out of Africa",
    "Outrageous Fortune",
    "The Outsiders",
    "Overboard",
    "Pale Rider",
    "Parenthood",
    "A Passage to India",
    "Pauline at the Beach (Pauline à la plage)",
    "The Peanut Butter Solution",
    "Pee-wee's Big Adventure",
    "Peggy Sue Got Married",
    "Pennies from Heaven",
    "Perfect",
    "The Phantom of the Opera: The Motion Picture",
    "The Pick-Up Artist",
    "Pink Floyd The Wall",
    "Piranha II: The Spawning",
    "Places in the Heart",
    "Planes, Trains and Automobiles",
    "Platoon",
    "Pod People",
    "Police Academy",
    "Police Academy 2: Their First Assignment",
    "Police Academy 3: Back in Training",
    "Police Academy 4: Citizens on Patrol",
    "Police Academy 5: Assignment Miami Beach",
    "Police Academy 6: City Under Siege",
    "Poltergeist",
    "Poltergeist II: The Other Side",
    "Poltergeist III",
    "The Pope of Greenwich Village",
    "Popeye",
    "Porky's",
    "Porky's II: The Next Day",
    "Porky's Revenge",
    "Pound Puppies and the Legend of Big Paw",
    "The Postman Always Rings Twice",
    "Predator",
    "Pretty in Pink",
    "The Princess Bride",
    "Prince of Darkness",
    "Private Lessons",
    "Private School",
    "Project A",
    "Project X",
    "Protocol",
    "Private Resort",
    "Prizzi's Honor",
    "The Pumaman",
    "The Punisher",
    "Purple Rain",
    "Psycho II",
    "Psycho III",
    "Puppet Master",
    "Q, The Winged Serpent",
    "Racing with the Moon",
    "Radio Days",
    "Raging Bull",
    "Ragtime",
    "Raiders of the Lost Ark",
    "Rain Man",
    "Raising Arizona",
    "First Blood",
    "Rambo: First Blood Part II",
    "Rambo III",
    "Ran",
    "Rappin'",
    "The Ratings Game",
    "Raw Deal",
    "Rawhide",
    "The Razor's Edge",
    "Re-Animator",
    "Real Genius",
    "Reckless",
    "Red Dawn",
    "Red Sonja",
    "Redneck Zombies",
    "Reds",
    "Remo Williams: The Adventure Begins",
    "Repo Man",
    "The Return of Godzilla",
    "The Return of the Musketeers",
    "Return of the Killer Tomatoes",
    "The Return of the Living Dead",
    "Return of the Living Dead Part II",
    "Return of the Secaucus 7",
    "Return To Oz",
    "Revenge of the Nerds",
    "Revolution",
    "Rhinestone",
    "Risky Business",
    "The River",
    "River's Edge",
    "Road House",
    "RoboCop",
    "Rock 'n' Roll Nightmare",
    "Rockin' with Judy Jetson  (TV)",
    "Rocky III",
    "Rocky IV",
    "Romancing the Stone",
    "Rumble Fish",
    "The Running Man",
    "A Room with a View",
    "Roxanne",
    "Runaway",
    "Running on Empty",
    "Ruthless People",
    "Sans Soleil",
    "Santa Claus: The Movie",
    "Savage Dawn",
    "Savage Streets",
    "Say Anything...",
    "Scanners",
    "Scarface",
    "Scarred",
    "Scooby-Doo and the Ghoul School  (TV)",
    "Scooby-Doo and the Reluctant Werewolf  (TV)",
    "Scooby-Doo Meets the Boo Brothers  (TV)",
    "Scrooged",
    "Sea of Love",
    "See No Evil, Hear No Evil",
    "Secret Admirer",
    "The Secret of My Success",
    "The Secret of NIMH",
    "The Seventh Sign",
    "Sex, Lies, and Videotape",
    "Shanghai Surprise",
    "Shaolin and Wu Tang",
    "She-Devil",
    "She's Having a Baby",
    "Sheena",
    "The Shining",
    "Shirley Valentine",
    "Shock Treatment",
    "Short Circuit",
    "Short Circuit 2",
    "Sid and Nancy",
    "Silent Night, Deadly Night",
    "Silent Night, Deadly Night Part 2",
    "Silent Night, Deadly Night 3: Better Watch Out!",
    "Silent Rage",
    "Silkwood",
    "Silverado",
    "Sister Dearest",
    "Sixteen Candles",
    "Smokey and the Bandit II",
    "Smokey and the Bandit Part 3",
    "S.O.B.",
    "A Soldier's Story",
    "Some Kind of Wonderful",
    "Something Wicked This Way Comes",
    "Something Wild",
    "Somewhere in Time",
    "Sophie's Choice",
    "Soul Man",
    "Spaceballs",
    "Space Camp",
    "Splash",
    "St. Elmo's Fire",
    "Stakeout",
    "Stand and Deliver",
    "Stand By Me",
    "Star 80",
    "Stardust Memories",
    "Starman",
    "Star Trek II: The Wrath of Khan",
    "Star Trek III: The Search for Spock",
    "Star Trek IV: The Voyage Home",
    "Star Trek V: The Final Frontier",
    "Star Wars Episode V: The Empire Strikes Back",
    "Star Wars Episode VI: Return of the Jedi",
    "Staying Alive",
    "Steel Magnolias",
    "Still Smokin'",
    "Stir Crazy",
    "Street Trash",
    "Streets of Fire",
    "Strike of the Panther",
    "Stripes",
    "Stroker Ace",
    "Student Bodies",
    "Suddenly at Midnight",
    "Summer Rental",
    "Sunset",
    "Supergirl",
    "Superman II",
    "Superman III",
    "Superman IV: The Quest for Peace",
    "The Sure Thing",
    "Surf Nazis Must Die",
    "Swing Shift",
    "Talk Dirty To Me Part III",
    "Tango and Cash",
    "Tarzan, the Ape Man",
    "Teachers",
    "Teen Witch",
    "Teen Wolf",
    "Teen Wolf Too",
    "Telefono rosso",
    "Ten Zan: The Ultimate Mission",
    "Tender Mercies",
    "The Terminator",
    "Terms of Endearment",
    "Tex",
    "They Live",
    "The Thing",
    "Things Are Tough All Over",
    "This Is Spinal Tap",
    "Those Young Girls",
    "Three O'Clock High",
    "Time Bandits",
    "To Be or Not to Be",
    "Tootsie",
    "Top Gun",
    "To Live and Die in L.A.",
    "Top Secret!",
    "The Toxic Avenger",
    "The Toxic Avenger Part II",
    "The Toxic Avenger Part III: The Last Temptation of Toxie",
    "The Toy",
    "Traci, I Love You",
    "Traci Takes Tokyo",
    "Trading Places",
    "Trancers",
    "Troll",
    "Tron",
    "Twilight Zone: The Movie",
    "Twins",
    "Two Moon Junction",
    "Two of a Kind",
    "UHF",
    "Under Fire",
    "Under the Cherry Moon",
    "Under the Volcano",
    "The Untouchables",
    "Valley Girl",
    "Vendetta",
    "The Verdict",
    "Vice Versa",
    "Victor Victoria",
    "Videodrome",
    "A View to a Kill",
    "Vacation",
    "Vincent",
    "Vision Quest",
    "Wall Street",
    "WarGames",
    "The War of the Roses",
    "The Watcher in the Woods",
    "Weekend at Bernie's",
    "Weird Science",
    "What Gets Me Hot!",
    "When Harry Met Sally",
    "Where the Boys Are '84",
    "White Nights",
    "Who Framed Roger Rabbit",
    "Who's That Girl",
    "Wildcats",
    "Willy the Sparrow",
    "Willow",
    "Wish You Were Here",
    "The Witches of Eastwick",
    "Withnail and I",
    "Without a Trace",
    "Witness",
    "The Wizard",
    "The Woman in Red",
    "Working Girl",
    "Working Girls",
    "The Worst of Faces of Death",
    "Xanadu",
    "The Year of Living Dangerously",
    "Year of the Dragon",
    "Yellowbeard",
    "Yentl",
    "Yes, Giorgio",
    "Yogi's First Christmas  (TV)",
    "Yogi's Great Escape  (TV)",
    "Yor, the Hunter from the Future",
    "Young Guns",
    "Young Master",
    "Youngblood",
    "Zelig",
    "Zigeunerweisen"
  };
}
