diff --git a/recipes/3p_integrations/togetherai/README.md b/recipes/3p_integrations/togetherai/README.md
index 6c812d7dc955c2b3e0dbcab780fd292435bc6133..30d4962276fcb55750d6af0f8c1c9448af88032f 100644
--- a/recipes/3p_integrations/togetherai/README.md
+++ b/recipes/3p_integrations/togetherai/README.md
@@ -1,13 +1,33 @@
-# Building LLM apps using Llama on Together.ai
+# Building LLM apps using Llama on Together AI
 
-This folder contains demos on how to use Llama on [Together.ai](https://www.together.ai/) to quickly build LLM apps.
+This folder contains demos on how to use Llama on [Together AI](https://www.together.ai/) to quickly build LLM apps.
 
-The first demo is a notebook that converts PDF to podcast using Llama 3.1 70B or 8B hosted by Together.ai. It differs and complements the [Meta's implementation](https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama) in several ways:
+ ## Prerequisites
 
-1. You don't need to download the Llama models from HuggingFace and have a GPU to run the notebooks - you can quickly get a free Together API key and run the whole Colab notebook on a browser, in about 10 minutes;
-2. A single system prompt is used to generate the naturally sounding podcast from PDF, with the support of pydantic, scratchpad and JSON response format to make the whole flow simple yet powerful;
-3. A different TTS service, also with an easy-to-get free API key, is used.
+To make the most of the examples in this cookbook, you'll need a Together AI API key (sign up for free [here](https://api.together.ai/signin)).
 
-The whole Colab notebook can run with a single "Runtime - Run all" click, generating the podcast audio from the Transformer paper that started the GenAI revolution. 
+While the code examples are primarily written in Python/JS, the concepts can be adapted to any programming language that supports interaction with the Together API.
 
- 
+## Cookbooks
+
+| Cookbook | Description | Open |
+| -------- | ----------- | ---- |
+| [MultiModal RAG with Nvidia Investor Slide Deck](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/multimodal_RAG_with_nvidia_investor_slide_deck.ipynb) | Multimodal RAG using Nvidia investor slides. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/multimodal_RAG_with_nvidia_investor_slide_deck.ipynb) [![](https://uohmivykqgnnbiouffke.supabase.co/storage/v1/object/public/landingpage/youtubebadge.svg)](https://youtu.be/IluARWPYAUc?si=gG90hqpboQgNOAYG)|
+| [Llama Contextual RAG](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/llama_contextual_RAG.ipynb) | Implementation of Contextual Retrieval using Llama models. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/llama_contextual_RAG.ipynb) |
+| [Llama PDF to podcast](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/pdf_to_podcast_using_llama_on_together.ipynb) | Generate a podcast from PDF content using Llama. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/pdf_to_podcast_using_llama_on_together.ipynb) |
+| [Knowledge Graphs with Structured Outputs](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb) | Get Llama to generate knowledge graphs. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb) |
+| [Structured Text Extraction from Images](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/structured_text_extraction_from_images.ipynb) | Extract structured text from images. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/structured_text_extraction_from_images.ipynb) |
+| [Text RAG](https://github.com/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/text_RAG_using_llama_on_together.ipynb) | Implement text-based Retrieval-Augmented Generation. | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/text_RAG_using_llama_on_together.ipynb) |
+
+## Explore Further
+
+Looking for more resources to enhance your experience with open source models? Check out these helpful links:
+
+- [Together AI developer documentation](https://docs.together.ai/docs/introduction)
+- [Together AI API support docs](https://docs.together.ai/reference/chat-completions-1)
+- [Together AI Discord community](https://discord.gg/9Rk6sSeWEG)
+
+## Additional Resources
+
+- [Together AI Research](https://www.together.ai/research): Explore papers and technical blog posts from our research team.
+- [Together AI Blog](https://www.together.ai/blog): Explore technical blogs, product announcements and more on our blog.
diff --git a/recipes/3p_integrations/togetherai/datasets/movies.json b/recipes/3p_integrations/togetherai/datasets/movies.json
new file mode 100644
index 0000000000000000000000000000000000000000..5dbb6cf22a01cdcafb8a52a4ec394888039f3c5a
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/datasets/movies.json
@@ -0,0 +1 @@
+[{"title":"Minions","overview":"Minions Stuart, Kevin and Bob are recruited by Scarlet Overkill, a super-villain who, alongside her inventor husband Herb, hatches a plot to take over the world.","director":"Kyle Balda","genres":"Family Animation Adventure Comedy","tagline":"Before Gru, they had a history of bad bosses"},{"title":"Interstellar","overview":"Interstellar chronicles the adventures of a group of explorers who make use of a newly discovered wormhole to surpass the limitations on human space travel and conquer the vast distances involved in an interstellar voyage.","director":"Christopher Nolan","genres":"Adventure Drama Science Fiction","tagline":"Mankind was born on Earth. It was never meant to die here."},{"title":"Deadpool","overview":"Deadpool tells the origin story of former Special Forces operative turned mercenary Wade Wilson, who after being subjected to a rogue experiment that leaves him with accelerated healing powers, adopts the alter ego Deadpool. Armed with his new abilities and a dark, twisted sense of humor, Deadpool hunts down the man who nearly destroyed his life.","director":"Tim Miller","genres":"Action Adventure Comedy","tagline":"Witness the beginning of a happy ending"},{"title":"Guardians of the Galaxy","overview":"Light years from Earth, 26 years after being abducted, Peter Quill finds himself the prime target of a manhunt after discovering an orb wanted by Ronan the Accuser.","director":"James Gunn","genres":"Action Science Fiction Adventure","tagline":"All heroes start somewhere."},{"title":"Mad Max: Fury Road","overview":"An apocalyptic story set in the furthest reaches of our planet, in a stark desert landscape where humanity is broken, and most everyone is crazed fighting for the necessities of life. Within this world exist two rebels on the run who just might be able to restore order. There's Max, a man of action and a man of few words, who seeks peace of mind following the loss of his wife and child in the aftermath of the chaos. And Furiosa, a woman of action and a woman who believes her path to survival may be achieved if she can make it across the desert back to her childhood homeland.","director":"George Miller","genres":"Action Adventure Science Fiction Thriller","tagline":"What a Lovely Day."},{"title":"Jurassic World","overview":"Twenty-two years after the events of Jurassic Park, Isla Nublar now features a fully functioning dinosaur theme park, Jurassic World, as originally envisioned by John Hammond.","director":"Colin Trevorrow","genres":"Action Adventure Science Fiction Thriller","tagline":"The park is open."},{"title":"Pirates of the Caribbean: The Curse of the Black Pearl","overview":"Jack Sparrow, a freewheeling 17th-century pirate who roams the Caribbean Sea, butts heads with a rival pirate bent on pillaging the village of Port Royal. When the governor's daughter is kidnapped, Sparrow decides to help the girl's love save her. But their seafaring mission is hardly simple.","director":"Gore Verbinski","genres":"Adventure Fantasy Action","tagline":"Prepare to be blown out of the water."},{"title":"Dawn of the Planet of the Apes","overview":"A group of scientists in San Francisco struggle to stay alive in the aftermath of a plague that is wiping out humanity, while Caesar tries to maintain dominance over his community of intelligent apes.","director":"Matt Reeves","genres":"Science Fiction Action Drama Thriller","tagline":"One last chance for peace."},{"title":"The Hunger Games: Mockingjay - Part 1","overview":"Katniss Everdeen reluctantly becomes the symbol of a mass rebellion against the autocratic Capitol.","director":"Francis Lawrence","genres":"Science Fiction Adventure Thriller","tagline":"Fire burns brighter in the darkness"},{"title":"Big Hero 6","overview":"The special bond that develops between plus-sized inflatable robot Baymax, and prodigy Hiro Hamada, who team up with a group of friends to form a band of high-tech heroes.","director":"Chris Williams","genres":"Adventure Family Animation Action Comedy","tagline":"From the creators of Wreck-it Ralph and Frozen"},{"title":"Terminator Genisys","overview":"The year is 2029. John Connor, leader of the resistance continues the war against the machines. At the Los Angeles offensive, John's fears of the unknown future begin to emerge when TECOM spies reveal a new plot by SkyNet that will attack him from both fronts; past and future, and will ultimately change warfare forever.","director":"Alan Taylor","genres":"Science Fiction Action Thriller Adventure","tagline":"Reset the future"},{"title":"Captain America: Civil War","overview":"Following the events of Age of Ultron, the collective governments of the world pass an act designed to regulate all superhuman activity. This polarizes opinion amongst the Avengers, causing two factions to side with Iron Man or Captain America, which causes an epic battle between former allies.","director":"Anthony Russo","genres":"Adventure Action Science Fiction","tagline":"Divided We Fall"},{"title":"Whiplash","overview":"Under the direction of a ruthless instructor, a talented young drummer begins to pursue perfection at any cost, even his humanity.","director":"Damien Chazelle","genres":"Drama","tagline":"The road to greatness can take you to the edge."},{"title":"The Dark Knight","overview":"Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.","director":"Christopher Nolan","genres":"Drama Action Crime Thriller","tagline":"Why So Serious?"},{"title":"The Martian","overview":"During a manned mission to Mars, Astronaut Mark Watney is presumed dead after a fierce storm and left behind by his crew. But Watney has survived and finds himself stranded and alone on the hostile planet. With only meager supplies, he must draw upon his ingenuity, wit and spirit to subsist and find a way to signal to Earth that he is alive.","director":"Ridley Scott","genres":"Drama Adventure Science Fiction","tagline":"Bring Him Home"},{"title":"Inception","overview":"Cobb, a skilled thief who commits corporate espionage by infiltrating the subconscious of his targets is offered a chance to regain his old life as payment for a task considered to be impossible: \"inception\", the implantation of another person's idea into a target's subconscious.","director":"Christopher Nolan","genres":"Action Thriller Science Fiction Mystery Adventure","tagline":"Your mind is the scene of the crime."},{"title":"Frozen","overview":"Young princess Anna of Arendelle dreams about finding true love at her sister Elsa\u2019s coronation. Fate takes her on a dangerous journey in an attempt to end the eternal winter that has fallen over the kingdom. She's accompanied by ice delivery man Kristoff, his reindeer Sven, and snowman Olaf. On an adventure where she will find out what friendship, courage, family, and true love really means.","director":"Chris Buck","genres":"Animation Adventure Family","tagline":"Only the act of true love will thaw a frozen heart."},{"title":"Batman v Superman: Dawn of Justice","overview":"Fearing the actions of a god-like Super Hero left unchecked, Gotham City\u2019s own formidable, forceful vigilante takes on Metropolis\u2019s most revered, modern-day savior, while the world wrestles with what sort of hero it really needs. And with Batman and Superman at war with one another, a new threat quickly arises, putting mankind in greater danger than it\u2019s ever known before.","director":"Zack Snyder","genres":"Action Adventure Fantasy","tagline":"Justice or revenge"},{"title":"Avatar","overview":"In the 22nd century, a paraplegic Marine is dispatched to the moon Pandora on a unique mission, but becomes torn between following orders and protecting an alien civilization.","director":"James Cameron","genres":"Action Adventure Fantasy Science Fiction","tagline":"Enter the World of Pandora."},{"title":"Fight Club","overview":"A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy. Their concept catches on, with underground \"fight clubs\" forming in every town, until an eccentric gets in the way and ignites an out-of-control spiral toward oblivion.","director":"David Fincher","genres":"Drama","tagline":"Mischief. Mayhem. Soap."},{"title":"Pirates of the Caribbean: Dead Man's Chest","overview":"Captain Jack Sparrow works his way out of a blood debt with the ghostly Davey Jones, he also attempts to avoid eternal damnation.","director":"Gore Verbinski","genres":"Adventure Fantasy Action","tagline":"Jack is back!"},{"title":"The Imitation Game","overview":"Based on the real life story of legendary cryptanalyst Alan Turing, the film portrays the nail-biting race against time by Turing and his brilliant team of code-breakers at Britain's top-secret Government Code and Cypher School at Bletchley Park, during the darkest days of World War II.","director":"Morten Tyldum","genres":"History Drama Thriller War","tagline":"The true enigma was the man who cracked the code."},{"title":"The Avengers","overview":"When an unexpected enemy emerges and threatens global safety and security, Nick Fury, director of the international peacekeeping agency known as S.H.I.E.L.D., finds himself in need of a team to pull the world back from the brink of disaster. Spanning the globe, a daring recruitment effort begins!","director":"Joss Whedon","genres":"Science Fiction Action Adventure","tagline":"Some assembly required."},{"title":"The Godfather","overview":"Spanning the years 1945 to 1955, a chronicle of the fictional Italian-American Corleone crime family. When organized crime family patriarch, Vito Corleone barely survives an attempt on his life, his youngest son, Michael steps in to take care of the would-be killers, launching a campaign of bloody revenge.","director":"Francis Ford Coppola","genres":"Drama Crime","tagline":"An offer you can't refuse."},{"title":"Teenage Mutant Ninja Turtles","overview":"The city needs heroes. Darkness has settled over New York City as Shredder and his evil Foot Clan have an iron grip on everything from the police to the politicians. The future is grim until four unlikely outcast brothers rise from the sewers and discover their destiny as Teenage Mutant Ninja Turtles. The Turtles must work with fearless reporter April and her wise-cracking cameraman Vern Fenwick to save the city and unravel Shredder's diabolical plan.","director":"Jonathan Liebesman","genres":"Science Fiction Action Adventure Fantasy Comedy","tagline":"Mysterious. Dangerous. Reptilious. You've never seen heroes like this."},{"title":"Gone Girl","overview":"With his wife's disappearance having become the focus of an intense media circus, a man sees the spotlight turned on him when it's suspected that he may not be innocent.","director":"David Fincher","genres":"Mystery Thriller Drama","tagline":"You don't know what you've got 'til it's..."},{"title":"Pixels","overview":"Video game experts are recruited by the military to fight 1980s-era video game characters who've attacked New York.","director":"Chris Columbus","genres":"Action Comedy Science Fiction","tagline":"Game On."},{"title":"Fury","overview":"Last months of World War II in April 1945. As the Allies make their final push in the European Theater, a battle-hardened U.S. Army sergeant in the 2nd Armored Division named Wardaddy commands a Sherman tank called \"Fury\" and its five-man crew on a deadly mission behind enemy lines. Outnumbered and outgunned, Wardaddy and his men face overwhelming odds in their heroic attempts to strike at the heart of Nazi Germany.","director":"David Ayer","genres":"War Drama Action","tagline":"War never ends quietly."},{"title":"X-Men: Apocalypse","overview":"After the re-emergence of the world's first mutant, world-destroyer Apocalypse, the X-Men must unite to defeat his extinction level plan.","director":"Bryan Singer","genres":"Science Fiction","tagline":"Only the strong will survive"},{"title":"Pirates of the Caribbean: At World's End","overview":"Captain Barbossa, long believed to be dead, has come back to life and is headed to the edge of the Earth with Will Turner and Elizabeth Swann. But nothing is quite as it seems.","director":"Gore Verbinski","genres":"Adventure Fantasy Action","tagline":"At the end of the world, the adventure begins."},{"title":"Rise of the Planet of the Apes","overview":"Scientist Will Rodman is determined to find a cure for Alzheimer's, the disease which has slowly consumed his father. Will feels certain he is close to a breakthrough and tests his latest serum on apes, noticing dramatic increases in intelligence and brain activity in the primate subjects \u2013 especially Caesar, his pet chimpanzee.","director":"Rupert Wyatt","genres":"Thriller Action Drama Science Fiction","tagline":"Evolution Becomes Revolution."},{"title":"Forrest Gump","overview":"A man with a low IQ has accomplished great things in his life and been present during significant historic events - in each case, far exceeding what anyone imagined he could do. Yet, despite all the things he has attained, his one true love eludes him. 'Forrest Gump' is the story of a man who rose above his challenges, and who proved that determination, courage, and love are more important than ability.","director":"Robert Zemeckis","genres":"Comedy Drama Romance","tagline":"The world will never be the same, once you've seen it through the eyes of Forrest Gump."},{"title":"The Lord of the Rings: The Fellowship of the Ring","overview":"Young hobbit Frodo Baggins, after inheriting a mysterious ring from his uncle Bilbo, must leave his home in order to keep it from falling into the hands of its evil creator. Along the way, a fellowship is formed to protect the ringbearer and make sure that the ring arrives at its final destination: Mt. Doom, the only place where it can be destroyed.","director":"Peter Jackson","genres":"Adventure Fantasy Action","tagline":"One ring to rule them all"},{"title":"Despicable Me 2","overview":"Gru is recruited by the Anti-Villain League to help deal with a powerful new super criminal.","director":"Pierre Coffin","genres":"Animation Comedy Family","tagline":"Back 2 Work"},{"title":"The Shawshank Redemption","overview":"Framed in the 1940s for the double murder of his wife and her lover, upstanding banker Andy Dufresne begins a new life at the Shawshank prison, where he puts his accounting skills to work for an amoral warden. During his long stretch in prison, Dufresne comes to be admired by the other inmates -- including an older prisoner named Red -- for his integrity and unquenchable sense of hope.","director":"Frank Darabont","genres":"Drama Crime","tagline":"Fear can hold you prisoner. Hope can set you free."},{"title":"Pirates of the Caribbean: On Stranger Tides","overview":"Captain Jack Sparrow crosses paths with a woman from his past, and he's not sure if it's love -- or if she's a ruthless con artist who's using him to find the fabled Fountain of Youth. When she forces him aboard the Queen Anne's Revenge, the ship of the formidable pirate Blackbeard, Jack finds himself on an unexpected adventure in which he doesn't know who to fear more: Blackbeard or the woman from his past.","director":"Rob Marshall","genres":"Adventure Action Fantasy","tagline":"Live Forever Or Die Trying."},{"title":"Avengers: Age of Ultron","overview":"When Tony Stark tries to jumpstart a dormant peacekeeping program, things go awry and Earth\u2019s Mightiest Heroes are put to the ultimate test as the fate of the planet hangs in the balance. As the villainous Ultron emerges, it is up to The Avengers to stop him from enacting his terrible plans, and soon uneasy alliances and unexpected action pave the way for an epic and unique global adventure.","director":"Joss Whedon","genres":"Action Adventure Science Fiction","tagline":"A New Age Has Come."},{"title":"Harry Potter and the Chamber of Secrets","overview":"Ignoring threats to his life, Harry returns to Hogwarts to investigate \u2013 aided by Ron and Hermione \u2013 a mysterious series of attacks.","director":"Chris Columbus","genres":"Adventure Fantasy Family","tagline":"Hogwarts is back in session."},{"title":"The Maze Runner","overview":"Set in a post-apocalyptic world, young Thomas is deposited in a community of boys after his memory is erased, soon learning they're all trapped in a maze that will require him to join forces with fellow \"runners\" for a shot at escape.","director":"Wes Ball","genres":"Action Mystery Science Fiction Thriller","tagline":"Run - Remember - Survive"},{"title":"Tomorrowland","overview":"Bound by a shared destiny, a bright, optimistic teen bursting with scientific curiosity and a former boy-genius inventor jaded by disillusionment embark on a danger-filled mission to unearth the secrets of an enigmatic place somewhere in time and space that exists in their collective memory as \"Tomorrowland.\"","director":"Brad Bird","genres":"Adventure Family Mystery Science Fiction","tagline":"Imagine a world where nothing is impossible."},{"title":"Inside Out","overview":"Growing up can be a bumpy road, and it's no exception for Riley, who is uprooted from her Midwest life when her father starts a new job in San Francisco. Like all of us, Riley is guided by her emotions - Joy, Fear, Anger, Disgust and Sadness. The emotions live in Headquarters, the control center inside Riley's mind, where they help advise her through everyday life. As Riley and her emotions struggle to adjust to a new life in San Francisco, turmoil ensues in Headquarters. Although Joy, Riley's main and most important emotion, tries to keep things positive, the emotions conflict on how best to navigate a new city, house and school.","director":"Pete Docter","genres":"Drama Comedy Animation Family","tagline":"Meet the little voices inside your head."},{"title":"One Flew Over the Cuckoo's Nest","overview":"While serving time for insanity at a state mental hospital, implacable rabble-rouser, Randle Patrick McMurphy inspires his fellow patients to rebel against the authoritarian rule of head nurse, Mildred Ratched.","director":"Milo\\u0161 Forman","genres":"Drama","tagline":"If he's crazy, what does that make you?"},{"title":"The Hunger Games: Mockingjay - Part 2","overview":"With the nation of Panem in a full scale war, Katniss confronts President Snow in the final showdown. Teamed with a group of her closest friends \u2013 including Gale, Finnick, and Peeta \u2013 Katniss goes off on a mission with the unit from District 13 as they risk their lives to stage an assassination attempt on President Snow who has become increasingly obsessed with destroying her. The mortal traps, enemies, and moral choices that await Katniss will challenge her more than any arena she faced in The Hunger Games.","director":"Francis Lawrence","genres":"Action Adventure Science Fiction","tagline":"The fire will burn forever."},{"title":"Twilight","overview":"When Bella Swan moves to a small town in the Pacific Northwest to live with her father, she starts school and meets the reclusive Edward Cullen, a mysterious classmate who reveals himself to be a 108-year-old vampire. Despite Edward's repeated cautions, Bella can't help but fall in love with him, a fatal move that endangers her own life when a coven of bloodsuckers try to challenge the Cullen clan.","director":"Catherine Hardwicke","genres":"Adventure Fantasy Drama Romance","tagline":"When you can live forever, what do you live for?"},{"title":"Star Wars","overview":"Princess Leia is captured and held hostage by the evil Imperial forces in their effort to take over the galactic Empire. Venturesome Luke Skywalker and dashing captain Han Solo team together with the loveable robot duo R2-D2 and C-3PO to rescue the beautiful princess and restore peace and justice in the Empire.","director":"George Lucas","genres":"Adventure Action Science Fiction","tagline":"A long time ago in a galaxy far, far away..."},{"title":"Brave","overview":"Brave is set in the mystical Scottish Highlands, where M\u00e9rida is the princess of a kingdom ruled by King Fergus and Queen Elinor. An unruly daughter and an accomplished archer, M\u00e9rida one day defies a sacred custom of the land and inadvertently brings turmoil to the kingdom. In an attempt to set things right, M\u00e9rida seeks out an eccentric old Wise Woman and is granted an ill-fated wish. Also figuring into M\u00e9rida\u2019s quest \u2014 and serving as comic relief \u2014 are the kingdom\u2019s three lords: the enormous Lord MacGuffin, the surly Lord Macintosh, and the disagreeable Lord Dingwall.","director":"Brenda Chapman","genres":"Animation Adventure Comedy Family Action","tagline":"Change your fate."},{"title":"The Lord of the Rings: The Return of the King","overview":"Aragorn is revealed as the heir to the ancient kings as he, Gandalf and the other members of the broken fellowship struggle to save Gondor from Sauron's forces. Meanwhile, Frodo and Sam bring the ring closer to the heart of Mordor, the dark lord's realm.","director":"Peter Jackson","genres":"Adventure Fantasy Action","tagline":"The eye of the enemy is moving."},{"title":"Pulp Fiction","overview":"A burger-loving hit man, his philosophical partner, a drug-addled gangster's moll and a washed-up boxer converge in this sprawling, comedic crime caper. Their adventures unfurl in three stories that ingeniously trip back and forth in time.","director":"Quentin Tarantino","genres":"Thriller Crime","tagline":"Just because you are a character doesn't mean you have character."},{"title":"The Hobbit: The Battle of the Five Armies","overview":"Immediately after the events of The Desolation of Smaug, Bilbo and the dwarves try to defend Erebor's mountain of treasure from others who claim it: the men of the ruined Laketown and the elves of Mirkwood. Meanwhile an army of Orcs led by Azog the Defiler is marching on Erebor, fueled by the rise of the dark lord Sauron. Dwarves, elves and men must unite, and the hope for Middle-Earth falls into Bilbo's hands.","director":"Peter Jackson","genres":"Action Adventure Fantasy","tagline":"Witness the defining chapter of the Middle-Earth saga"},{"title":"Iron Man","overview":"After being held captive in an Afghan cave, billionaire engineer Tony Stark creates a unique weaponized suit of armor to fight evil.","director":"Jon Favreau","genres":"Action Science Fiction Adventure","tagline":"Heroes aren't born. They're built."},{"title":"Ant-Man","overview":"Armed with the astonishing ability to shrink in scale but increase in strength, master thief Scott Lang must embrace his inner-hero and help his mentor, Doctor Hank Pym, protect the secret behind his spectacular Ant-Man suit from a new generation of towering threats. Against seemingly insurmountable obstacles, Pym and Lang must plan and pull off a heist that will save the world.","director":"Peyton Reed","genres":"Science Fiction Action Adventure","tagline":"Heroes don't get any bigger."},{"title":"Spirited Away","overview":"A ten year old girl who wanders away from her parents along a path that leads to a world ruled by strange and unusual monster-like animals. Her parents have been changed into pigs along with others inside a bathhouse full of these creatures. Will she ever see the world how it once was?","director":"Hayao Miyazaki","genres":"Fantasy Adventure Animation Family","tagline":"The tunnel led Chihiro to a mysterious town..."},{"title":"X-Men: Days of Future Past","overview":"The ultimate X-Men ensemble fights a war for the survival of the species across two time periods as they join forces with their younger selves in an epic battle that must change the past \u2013 to save our future.","director":"Bryan Singer","genres":"Action Adventure Fantasy Science Fiction","tagline":"To save the future, they must alter the past"},{"title":"Transformers: Age of Extinction","overview":"As humanity picks up the pieces, following the conclusion of \"Transformers: Dark of the Moon,\" Autobots and Decepticons have all but vanished from the face of the planet. However, a group of powerful, ingenious businessman and scientists attempt to learn from past Transformer incursions and push the boundaries of technology beyond what they can control - all while an ancient, powerful Transformer menace sets Earth in his cross-hairs.","director":"Michael Bay","genres":"Science Fiction Action Adventure","tagline":"This is not war. It's extinction."},{"title":"Chappie","overview":"Every child comes into the world full of promise, and none more so than Chappie: he is gifted, special, a prodigy. Like any child, Chappie will come under the influence of his surroundings\u2014some good, some bad\u2014and he will rely on his heart and soul to find his way in the world and become his own man. But there's one thing that makes Chappie different from any one else: he is a robot.","director":"Neill Blomkamp","genres":"Crime Action Science Fiction","tagline":"I am consciousness. I am alive. I am Chappie."},{"title":"Spider-Man 3","overview":"The seemingly invincible Spider-Man goes up against an all-new crop of villain \u2013 including the shape-shifting Sandman. While Spider-Man\u2019s superpowers are altered by an alien organism, his alter ego, Peter Parker, deals with nemesis Eddie Brock and also gets caught up in a love triangle.","director":"Sam Raimi","genres":"Fantasy Action Adventure","tagline":"The battle within."},{"title":"Night at the Museum: Secret of the Tomb","overview":"When the magic powers of The Tablet of Ahkmenrah begin to die out, Larry Daley (Ben Stiller) spans the globe, uniting favorite and new characters while embarking on an epic quest to save the magic before it is gone forever.","director":"Shawn Levy","genres":"Adventure Comedy Fantasy Family","tagline":"One Final Night to Save the Day."},{"title":"Lucy","overview":"A woman, accidentally caught in a dark deal, turns the tables on her captors and transforms into a merciless warrior evolved beyond human logic.","director":"Luc Besson","genres":"Action Science Fiction","tagline":"The average person uses 10% of their brain capacity. Imagine what she could do with 100%."},{"title":"Batman Begins","overview":"Driven by tragedy, billionaire Bruce Wayne dedicates his life to uncovering and defeating the corruption that plagues his home, Gotham City.  Unable to work within the system, he instead creates a new identity, a symbol of fear for the criminal underworld - The Batman.","director":"Christopher Nolan","genres":"Action Crime Drama","tagline":"Evil fears the knight."},{"title":"Mission: Impossible - Rogue Nation","overview":"Ethan and team take on their most impossible mission yet, eradicating the Syndicate - an International rogue organization as highly skilled as they are, committed to destroying the IMF.","director":"Christopher McQuarrie","genres":"Action Adventure Thriller","tagline":"Desperate Times. Desperate Measures."},{"title":"Despicable Me","overview":"Villainous Gru lives up to his reputation as a despicable, deplorable and downright unlikable guy when he hatches a plan to steal the moon from the sky. But he has a tough time staying on task after three orphans land in his care.","director":"Pierre Coffin","genres":"Animation Family","tagline":"Superbad. Superdad."},{"title":"Maze Runner: The Scorch Trials","overview":"Thomas and his fellow Gladers face their greatest challenge yet: searching for clues about the mysterious and powerful organization known as WCKD. Their journey takes them to the Scorch, a desolate landscape filled with unimaginable obstacles. Teaming up with resistance fighters, the Gladers take on WCKD\u2019s vastly superior forces and uncover its shocking plans for them all.","director":"Wes Ball","genres":"Action","tagline":"The Maze Was Just the Beginning."},{"title":"The Dark Knight Rises","overview":"Following the death of District Attorney Harvey Dent, Batman assumes responsibility for Dent's crimes to protect the late attorney's reputation and is subsequently hunted by the Gotham City Police Department. Eight years later, Batman encounters the mysterious Selina Kyle and the villainous Bane, a new terrorist leader who overwhelms Gotham's finest. The Dark Knight resurfaces to protect a city that has branded him an enemy.","director":"Christopher Nolan","genres":"Action Crime Drama Thriller","tagline":"The Legend Ends"},{"title":"Maleficent","overview":"The untold story of Disney's most iconic villain from the 1959 classic 'Sleeping Beauty'. A beautiful, pure-hearted young woman, Maleficent has an idyllic life growing up in a peaceable forest kingdom, until one day when an invading army threatens the harmony of the land.  Maleficent rises to be the land's fiercest protector, but she ultimately suffers a ruthless betrayal \u2013 an act that begins to turn her heart into stone. Bent on revenge, Maleficent faces an epic battle with the invading King's successor and, as a result, places a curse upon his newborn infant Aurora. As the child grows, Maleficent realizes that Aurora holds the key to peace in the kingdom - and to Maleficent's true happiness as well.","director":"Robert Stromberg","genres":"Fantasy Adventure Action Family Romance","tagline":"Don't believe the fairy tale."},{"title":"Gravity","overview":"Dr. Ryan Stone, a brilliant medical engineer on her first Shuttle mission, with veteran astronaut Matt Kowalsky in command of his last flight before retiring. But on a seemingly routine spacewalk, disaster strikes. The Shuttle is destroyed, leaving Stone and Kowalsky completely alone-tethered to nothing but each other and spiraling out into the blackness of space. The deafening silence tells them they have lost any link to Earth and any chance for rescue. As fear turns to panic, every gulp of air eats away at what little oxygen is left. But the only way home may be to go further out into the terrifying expanse of space.","director":"Alfonso Cuar\\u00f3n","genres":"Science Fiction Thriller Drama","tagline":"Don't Let Go"},{"title":"Harry Potter and the Philosopher's Stone","overview":"Harry Potter has lived under the stairs at his aunt and uncle's house his whole life. But on his 11th birthday, he learns he's a powerful wizard -- with a place waiting for him at the Hogwarts School of Witchcraft and Wizardry. As he learns to harness his newfound powers with the help of the school's kindly headmaster, Harry uncovers the truth about his parents' deaths -- and about the villain who's to blame.","director":"Chris Columbus","genres":"Adventure Fantasy Family","tagline":"Let the Magic Begin."},{"title":"Bruce Almighty","overview":"Bruce Nolan toils as a \"human interest\" television reporter in Buffalo, N.Y. Despite his high ratings and the love of his beautiful girlfriend, Grace, Bruce remains unfulfilled. At the end of the worst day in his life, he angrily ridicules God -- and the Almighty responds, endowing Bruce with all of His divine powers.","director":"Tom Shadyac","genres":"Fantasy Comedy","tagline":"In Bruce we trust"},{"title":"The Fifth Element","overview":"In 2257, a taxi driver is unintentionally given the task of saving a young girl who is part of the key that will ensure the survival of humanity.","director":"Luc Besson","genres":"Adventure Fantasy Action Thriller Science Fiction","tagline":"There is no future without it."},{"title":"The Hobbit: An Unexpected Journey","overview":"Bilbo Baggins, a hobbit enjoying his quiet life, is swept into an epic quest by Gandalf the Grey and thirteen dwarves who seek to reclaim their mountain home from Smaug, the dragon.","director":"Peter Jackson","genres":"Adventure Fantasy Action","tagline":"From the smallest beginnings come the greatest legends."},{"title":"Quantum of Solace","overview":"Quantum of Solace continues the adventures of James Bond after Casino Royale. Betrayed by Vesper, the woman he loved, 007 fights the urge to make his latest mission personal. Pursuing his determination to uncover the truth, Bond and M interrogate Mr. White, who reveals that the organization that blackmailed Vesper is far more complex and dangerous than anyone had imagined.","director":"Marc Forster","genres":"Adventure Action Thriller Crime","tagline":"For love, for hate, for justice, for revenge."},{"title":"Spectre","overview":"A cryptic message from Bond\u2019s past sends him on a trail to uncover a sinister organization. While M battles political forces to keep the secret service alive, Bond peels back the layers of deceit to reveal the terrible truth behind SPECTRE.","director":"Sam Mendes","genres":"Action Adventure Crime","tagline":"A Plan No One Escapes"},{"title":"The Twilight Saga: Eclipse","overview":"Bella once again finds herself surrounded by danger as Seattle is ravaged by a string of mysterious killings and a malicious vampire continues her quest for revenge. In the midst of it all, she is forced to choose between her love for Edward and her friendship with Jacob, knowing that her decision has the potential to ignite the ageless struggle between vampire and werewolf. With her graduation quickly approaching, Bella is confronted with the most important decision of her life.","director":"David Slade","genres":"Adventure Fantasy Drama Romance","tagline":"It all begins ... With a choice."},{"title":"The Lord of the Rings: The Two Towers","overview":"Frodo and Sam are trekking to Mordor to destroy the One Ring of Power while Gimli, Legolas and Aragorn search for the orc-captured Merry and Pippin. All along, nefarious wizard Saruman awaits the Fellowship members at the Orthanc Tower in Isengard.","director":"Peter Jackson","genres":"Adventure Fantasy Action","tagline":"A New Power Is Rising."},{"title":"Monsters, Inc.","overview":"James Sullivan and Mike Wazowski are monsters, they earn their living scaring children and are the best in the business... even though they're more afraid of the children than they are of them. When a child accidentally enters their world, James and Mike suddenly find that kids are not to be afraid of and they uncover a conspiracy that could threaten all children across the world.","director":"Pete Docter","genres":"Animation Comedy Family","tagline":"We Scare Because We Care."},{"title":"The Godfather: Part II","overview":"In the continuing saga of the Corleone crime family, a young Vito Corleone grows up in Sicily and in 1910s New York. In the 1950s, Michael Corleone attempts to expand the family business into Las Vegas, Hollywood and Cuba.","director":"Francis Ford Coppola","genres":"Drama Crime","tagline":"I don't feel I have to wipe everybody out, Tom. Just my enemies."},{"title":"Schindler's List","overview":"The true story of how businessman Oskar Schindler saved over a thousand Jewish lives from the Nazis while they worked as slaves in his factory during World War II.","director":"Steven Spielberg","genres":"Drama History War","tagline":"Whoever saves one life, saves the world entire."},{"title":"The Matrix","overview":"Set in the 22nd century, The Matrix tells the story of a computer hacker who joins a group of underground insurgents fighting the vast and powerful computers who now rule the earth.","director":"Lilly Wachowski","genres":"Action Science Fiction","tagline":"Welcome to the Real World."},{"title":"Men in Black","overview":"Men in Black follows the exploits of agents Kay and Jay, members of a top-secret organization established to monitor and police alien activity on Earth. The two Men in Black find themselves in the middle of the deadly plot by an intergalactic terrorist who has arrived on Earth to assassinate two ambassadors from opposing galaxies. In order to prevent worlds from colliding, the MiB must track down the terrorist and prevent the destruction of Earth. It's just another typical day for the Men in Black.","director":"Barry Sonnenfeld","genres":"Action Adventure Comedy Science Fiction","tagline":"Protecting the Earth from the scum of the universe."},{"title":"Insurgent","overview":"Beatrice Prior must confront her inner demons and continue her fight against a powerful alliance which threatens to tear her society apart.","director":"Robert Schwentke","genres":"Adventure Science Fiction Thriller","tagline":"One Choice Can Destroy You"},{"title":"The Green Mile","overview":"A supernatural tale set on death row in a Southern prison, where gentle giant John Coffey possesses the mysterious power to heal people's ailments. When the cellblock's head guard, Paul Edgecomb, recognizes Coffey's miraculous gift, he tries desperately to help stave off the condemned man's execution.","director":"Frank Darabont","genres":"Fantasy Drama Crime","tagline":"Miracles do happen."},{"title":"Furious 7","overview":"Deckard Shaw seeks revenge against Dominic Toretto and his family for his comatose brother.","director":"James Wan","genres":"Action","tagline":"Vengeance Hits Home"},{"title":"Terminator 2: Judgment Day","overview":"Nearly 10 years have passed since Sarah Connor was targeted for termination by a cyborg from the future. Now her son, John, the future leader of the resistance, is the target for a newer, more deadly terminator. Once again, the resistance has managed to send a protector back to attempt to save John and his mother Sarah.","director":"James Cameron","genres":"Action Thriller Science Fiction","tagline":"It's nothing personal."},{"title":"Exodus: Gods and Kings","overview":"The defiant leader Moses rises up against the Egyptian Pharaoh Ramses, setting 400,000 slaves on a monumental journey of escape from Egypt and its terrifying cycle of deadly plagues.","director":"Ridley Scott","genres":"Adventure Drama Action","tagline":"Once brothers, now enemies."},{"title":"Harry Potter and the Goblet of Fire","overview":"Harry starts his fourth year at Hogwarts, competes in the treacherous Triwizard Tournament and faces the evil Lord Voldemort. Ron and Hermione help Harry manage the pressure \u2013 but Voldemort lurks, awaiting his chance to destroy Harry and all that he stands for.","director":"Mike Newell","genres":"Adventure Fantasy Family","tagline":"Dark And Difficult Times Lie Ahead."},{"title":"Cinderella","overview":"When her father unexpectedly passes away, young Ella finds herself at the mercy of her cruel stepmother and her daughters. Never one to give up hope, Ella's fortunes begin to change after meeting a dashing stranger in the woods.","director":"Kenneth Branagh","genres":"Romance Fantasy Family Drama","tagline":"Midnight is just the beginning."},{"title":"It Follows","overview":"For 19-year-old Jay, fall should be about school, boys and weekends out at the lake. But a seemingly innocent physical encounter turns sour and gives her the inescapable sense that someone, or something, is following her. Faced with this burden, Jay and her teenage friends must find a way to escape the horror that seems to be only a few steps behind.","director":"David Robert Mitchell","genres":"Horror Thriller","tagline":"It doesn't think, it doesn't feel, it doesn't give up"},{"title":"The Revenant","overview":"In the 1820s, a frontiersman, Hugh Glass, sets out on a path of vengeance against those who left him for dead after a bear mauling.","director":"Alejandro Gonz\\u00e1lez I\\u00f1\\u00e1rritu","genres":"Western Drama Adventure Thriller","tagline":"(n. One who has returned, as if from the dead.)"},{"title":"San Andreas","overview":"In the aftermath of a massive earthquake in California, a rescue-chopper pilot makes a dangerous journey across the state in order to rescue his estranged daughter.","director":"Brad Peyton","genres":"Action Drama Thriller","tagline":"A rescue pilot survived an earthquake, this is what happens next"},{"title":"We're the Millers","overview":"A veteran pot dealer creates a fake family as part of his plan to move a huge shipment of weed into the U.S. from Mexico.","director":"Rawson Marshall Thurber","genres":"Comedy Crime","tagline":"-If anyone asks."},{"title":"How to Train Your Dragon 2","overview":"The thrilling second chapter of the epic How To Train Your Dragon trilogy brings back the fantastical world of Hiccup and Toothless five years later. While Astrid, Snotlout and the rest of the gang are challenging each other to dragon races (the island's new favorite contact sport), the now inseparable pair journey through the skies, charting unmapped territories and exploring new worlds. When one of their adventures leads to the discovery of a secret ice cave that is home to hundreds of new wild dragons and the mysterious Dragon Rider, the two friends find themselves at the center of a battle to protect the peace.","director":"Dean DeBlois","genres":"Fantasy Action Adventure Animation Comedy","tagline":"The training is over."},{"title":"Titanic","overview":"84 years later, a 101-year-old woman named Rose DeWitt Bukater tells the story to her granddaughter Lizzy Calvert, Brock Lovett, Lewis Bodine, Bobby Buell and Anatoly Mikailavich on the Keldysh about her life set in April 10th 1912, on a ship called Titanic when young Rose boards the departing ship with the upper-class passengers and her mother, Ruth DeWitt Bukater, and her fianc\u00e9, Caledon Hockley. Meanwhile, a drifter and artist named Jack Dawson and his best friend Fabrizio De Rossi win third-class tickets to the ship in a game. And she explains the whole story from departure until the death of Titanic on its first and last voyage April 15th, 1912 at 2:20 in the morning.","director":"James Cameron","genres":"Drama Romance Thriller","tagline":"Nothing on Earth could come between them."},{"title":"The Twilight Saga: Breaking Dawn - Part 2","overview":"After the birth of Renesmee, the Cullens gather other vampire clans in order to protect the child from a false allegation that puts the family in front of the Volturi.","director":"Bill Condon","genres":"Adventure Fantasy Drama Romance","tagline":"The epic finale that will live forever"},{"title":"Ice Age","overview":"With the impending ice age almost upon them, a mismatched trio of prehistoric critters \u2013 Manny the woolly mammoth, Diego the saber-toothed tiger and Sid the giant sloth \u2013 find an orphaned infant and decide to return it to its human parents. Along the way, the unlikely allies become friends but, when enemies attack, their quest takes on far nobler aims.","director":"Chris Wedge","genres":"Animation Comedy Family Adventure","tagline":"They came. They thawed. They conquered."},{"title":"Thor: The Dark World","overview":"Thor fights to restore order across the cosmos\u2026 but an ancient race led by the vengeful Malekith returns to plunge the universe back into darkness. Faced with an enemy that even Odin and Asgard cannot withstand, Thor must embark on his most perilous and personal journey yet, one that will reunite him with Jane Foster and force him to sacrifice everything to save us all.","director":"Alan Taylor","genres":"Action Adventure Fantasy","tagline":"Delve into the darkness"},{"title":"Man of Steel","overview":"A young boy learns that he has extraordinary powers and is not of this earth. As a young man, he journeys to discover where he came from and what he was sent here to do. But the hero in him must emerge if he is to save the world from annihilation and become the symbol of hope for all mankind.","director":"Zack Snyder","genres":"Action Adventure Fantasy Science Fiction","tagline":"You will believe that a man can fly."},{"title":"Harry Potter and the Half-Blood Prince","overview":"As Harry begins his sixth year at Hogwarts, he discovers an old book marked as 'Property of the Half-Blood Prince', and begins to learn more about Lord Voldemort's dark past.","director":"David Yates","genres":"Adventure Fantasy Family","tagline":"Dark Secrets Revealed"},{"title":"Fifty Shades of Grey","overview":"When college senior Anastasia Steele steps in for her sick roommate to interview prominent businessman Christian Grey for their campus paper, little does she realize the path her life will take. Christian, as enigmatic as he is rich and powerful, finds himself strangely drawn to Ana, and she to him. Though sexually inexperienced, Ana plunges headlong into an affair -- and learns that Christian's true sexual proclivities push the boundaries of pain and pleasure.","director":"Sam Taylor-Johnson","genres":"Drama Romance Thriller","tagline":"Are you curious?"},{"title":"12 Years a Slave","overview":"In the pre-Civil War United States, Solomon Northup, a free black man from upstate New York, is abducted and sold into slavery. Facing cruelty as well as unexpected kindnesses Solomon struggles not only to stay alive, but to retain his dignity. In the twelfth year of his unforgettable odyssey, Solomon\u2019s chance meeting with a Canadian abolitionist will forever alter his life.","director":"Steve McQueen","genres":"Drama History","tagline":"The extraordinary true story of Solomon Northup"},{"title":"I, Robot","overview":"In 2035, where robots are common-place and abide by the three laws of robotics, a techno-phobic cop investigates an apparent suicide. Suspecting that a robot may be responsible for the death, his investigation leads him to believe that humanity may be in danger.","director":"Alex Proyas","genres":"Action Science Fiction","tagline":"Laws are made to be broken."},{"title":"Gladiator","overview":"In the year 180, the death of emperor Marcus Aurelius throws the Roman Empire into chaos. Maximus is one of the Roman army's most capable and trusted generals and a key advisor to the emperor. As Marcus' devious son Commodus ascends to the throne, Maximus is set to be executed. He escapes, but is captured by slave traders. Renamed Spaniard and forced to become a gladiator, Maximus must battle to the death with other men for the amusement of paying audiences. His battle skills serve him well, and he becomes one of the most famous and admired men to fight in the Colosseum. Determined to avenge himself against the man who took away his freedom and laid waste to his family, Maximus believes that he can use his fame and skill in the ring to avenge the loss of his family and former glory. As the gladiator begins to challenge his rule, Commodus decides to put his own fighting mettle to the test by squaring off with Maximus in a battle to the death.","director":"Ridley Scott","genres":"Action Drama Adventure","tagline":"A Hero Will Rise."},{"title":"Ex Machina","overview":"Caleb, a 26 year old coder at the world's largest internet company, wins a competition to spend a week at a private mountain retreat belonging to Nathan, the reclusive CEO of the company. But when Caleb arrives at the remote location he finds that he will have to participate in a strange and fascinating experiment in which he must interact with the world's first true artificial intelligence, housed in the body of a beautiful robot girl.","director":"Alex Garland","genres":"Drama Science Fiction","tagline":"There is nothing more human than the will to survive"},{"title":"The Wolf of Wall Street","overview":"A New York stockbroker refuses to cooperate in a large securities fraud case involving corruption on Wall Street, corporate banking world and mob infiltration. Based on Jordan Belfort's autobiography.","director":"Martin Scorsese","genres":"Crime Drama Comedy","tagline":"EARN. SPEND. PARTY."},{"title":"The Twilight Saga: New Moon","overview":"Forks, Washington resident Bella Swan is reeling from the departure of her vampire love, Edward Cullen, and finds comfort in her friendship with Jacob Black, a werewolf. But before she knows it, she's thrust into a centuries-old conflict, and her desire to be with Edward at any cost leads her to take greater and greater risks.","director":"Chris Weitz","genres":"Adventure Fantasy Drama Romance","tagline":"The Next Chapter Begins."},{"title":"The Hobbit: The Desolation of Smaug","overview":"The Dwarves, Bilbo and Gandalf have successfully escaped the Misty Mountains, and Bilbo has gained the One Ring. They all continue their journey to get their gold back from the Dragon, Smaug.","director":"Peter Jackson","genres":"Adventure Fantasy","tagline":"Beyond darkness... beyond desolation... lies the greatest danger of all."},{"title":"The Jungle Book","overview":"After a threat from the tiger Shere Khan forces him to flee the jungle, a man-cub named Mowgli embarks on a journey of self discovery with the help of panther, Bagheera, and free spirited bear, Baloo.","director":"Jon Favreau","genres":"Family Adventure Drama Fantasy","tagline":null},{"title":"Alien","overview":"During its return to the earth, commercial spaceship Nostromo intercepts a distress signal from a distant planet. When a three-member team of the crew discovers a chamber containing thousands of eggs on the planet, a creature inside one of the eggs attacks an explorer. The entire crew is unaware of the impending nightmare set to descend upon them when the alien parasite planted inside its unfortunate host is birthed.","director":"Ridley Scott","genres":"Horror Action Thriller Science Fiction","tagline":"In space no one can hear you scream."},{"title":"Blade Runner","overview":"In the smog-choked dystopian Los Angeles of 2019, blade runner Rick Deckard is called out of retirement to terminate a quartet of replicants who have escaped to Earth seeking their creator for a way to extend their short life spans.","director":"Ridley Scott","genres":"Science Fiction Drama Thriller","tagline":"Man has made his match... now it's his problem."},{"title":"Psycho","overview":"When larcenous real estate clerk Marion Crane goes on the lam with a wad of cash and hopes of starting a new life, she ends up at the notorious Bates Motel, where manager Norman Bates cares for his housebound mother. The place seems quirky, but fine\u2026 until Marion decides to take a shower.","director":"Alfred Hitchcock","genres":"Drama Horror Thriller","tagline":"The master of suspense moves his cameras into the icy blackness of the unexplored!"},{"title":"Skyfall","overview":"When Bond's latest assignment goes gravely wrong and agents around the world are exposed, MI6 is attacked forcing M to relocate the agency. These events cause her authority and position to be challenged by Gareth Mallory, the new Chairman of the Intelligence and Security Committee. With MI6 now compromised from both inside and out, M is left with one ally she can trust: Bond. 007 takes to the shadows - aided only by field agent, Eve - following a trail to the mysterious Silva, whose lethal and hidden motives have yet to reveal themselves.","director":"Sam Mendes","genres":"Action Adventure Thriller","tagline":"Think on your sins."},{"title":"Aladdin","overview":"Princess Jasmine grows tired of being forced to remain in the palace and she sneaks out into the marketplace  in disguise where she meets street-urchin Aladdin and the two fall in love, although she may only marry a prince. After being thrown in jail, Aladdin and becomes embroiled in a plot to find a mysterious lamp with which the evil Jafar hopes to rule the land.","director":"Ron Clements","genres":"Animation Family Comedy Adventure Fantasy","tagline":"Wish granted!"},{"title":"Up","overview":"Carl Fredricksen spent his entire life dreaming of exploring the globe and experiencing life to its fullest. But at age 78, life seems to have passed him by, until a twist of fate (and a persistent 8-year old Wilderness Explorer named Russell) gives him a new lease on life.","director":"Pete Docter","genres":"Animation Comedy Family Adventure","tagline":null},{"title":"Men in Black II","overview":"Kay and Jay reunite to provide our best, last and only line of defense against a sinister seductress who levels the toughest challenge yet to the MIB's untarnished mission statement \u2013 protecting Earth from the scum of the universe. It's been four years since the alien-seeking agents averted an intergalactic disaster of epic proportions. Now it's a race against the clock as Jay must convince Kay \u2013 who not only has absolutely no memory of his time spent with the MIB, but is also the only living person left with the expertise to save the galaxy \u2013 to reunite with the MIB before the earth submits to ultimate destruction.","director":"Barry Sonnenfeld","genres":"Action Adventure Comedy Science Fiction","tagline":"Same Planet. New Scum."},{"title":"Black Swan","overview":"A ballet dancer wins the lead in \"Swan Lake\" and is perfect for the role of the delicate White Swan - Princess Odette - but slowly loses her mind as she becomes more and more like Odile, the Black Swan.","director":"Darren Aronofsky","genres":"Drama Thriller","tagline":"In the era of personal branding, the scariest possibility is that someone might be better at being you than you are."},{"title":"Pan's Labyrinth","overview":"Living with her tyrannical stepfather in a new home with her pregnant mother, 10-year-old Ofelia feels alone until she explores a decaying labyrinth guarded by a mysterious faun who claims to know her destiny. If she wishes to return to her real father, Ofelia must complete three terrifying tasks.","director":"Guillermo del Toro","genres":"Fantasy Drama War","tagline":"What happens when make-believe believes it's real?"},{"title":"The Lion King","overview":"A young lion cub named Simba can't wait to be king. But his uncle craves the title for himself and will stop at nothing to get it.","director":"Roger Allers","genres":"Family Animation Drama","tagline":"Life's greatest adventure is finding your place in the Circle of Life."},{"title":"The Bourne Legacy","overview":"New CIA operative, Aaron Cross experiences life-or-death stakes that have been triggered by the previous actions of Jason Bourne.","director":"Tony Gilroy","genres":"Action Thriller","tagline":"There Was Never Just One"},{"title":"Suicide Squad","overview":"From DC Comics comes the Suicide Squad, an antihero team of incarcerated supervillains who act as deniable assets for the United States government, undertaking high-risk black ops missions in exchange for commuted prison sentences.","director":"David Ayer","genres":"Action Adventure Crime Fantasy Science Fiction","tagline":"Worst Heroes Ever"},{"title":"The Adventures of Tintin","overview":"Intrepid young reporter, Tintin and his loyal dog, Snowy are thrust into a world of high adventure when they discover a ship carrying an explosive secret. As Tintin is drawn into a centuries-old mystery, Ivan Ivanovitch Sakharine suspects him of stealing a priceless treasure. Tintin and Snowy, with the help of salty, cantankerous Captain Haddock and bumbling detectives, Thompson & Thomson, travel half the world, one step ahead of their enemies as Tintin endeavors to find The Unicorn, a sunken ship that may hold a vast fortune, but also an ancient curse.","director":"Steven Spielberg","genres":"Adventure Animation Mystery","tagline":"This year, discover how far adventure will take you."},{"title":"The Amazing Spider-Man","overview":"Peter Parker is an outcast high schooler abandoned by his parents as a boy, leaving him to be raised by his Uncle Ben and Aunt May. Like most teenagers, Peter is trying to figure out who he is and how he got to be the person he is today. As Peter discovers a mysterious briefcase that belonged to his father, he begins a quest to understand his parents' disappearance \u2013 leading him directly to Oscorp and the lab of Dr. Curt Connors, his father's former partner. As Spider-Man is set on a collision course with Connors' alter ego, The Lizard, Peter will make life-altering choices to use his powers and shape his destiny to become a hero.","director":"Marc Webb","genres":"Action Adventure Fantasy","tagline":"The untold story begins."},{"title":"Birdman","overview":"A fading actor best known for his portrayal of a popular superhero attempts to mount a comeback by appearing in a Broadway play. As opening night approaches, his attempts to become more altruistic, rebuild his career, and reconnect with friends and family prove more difficult than expected.","director":"Alejandro Gonz\\u00e1lez I\\u00f1\\u00e1rritu","genres":"Drama Comedy","tagline":"or (The Unexpected Virtue of Ignorance)"},{"title":"The Amazing Spider-Man 2","overview":"For Peter Parker, life is busy. Between taking out the bad guys as Spider-Man and spending time with the person he loves, Gwen Stacy, high school graduation cannot come quickly enough. Peter has not forgotten about the promise he made to Gwen\u2019s father to protect her by staying away, but that is a promise he cannot keep. Things will change for Peter when a new villain, Electro, emerges, an old friend, Harry Osborn, returns, and Peter uncovers new clues about his past.","director":"Marc Webb","genres":"Action Adventure Fantasy","tagline":"No more secrets."},{"title":"Monsters University","overview":"A look at the relationship between Mike and Sulley during their days at Monsters University \u2014 when they weren't necessarily the best of friends.","director":"Dan Scanlon","genres":"Animation Family","tagline":"School never looked this scary."},{"title":"Nightcrawler","overview":"When Lou Bloom, desperate for work, muscles into the world of L.A. crime journalism, he blurs the line between observer and participant to become the star of his own story. Aiding him in his effort is Nina, a TV-news veteran.","director":"Dan Gilroy","genres":"Crime Drama Thriller","tagline":"The city shines brightest at night"},{"title":"Casino Royale","overview":"Le Chiffre, a banker to the world's terrorists, is scheduled to participate in a high-stakes poker game in Montenegro, where he intends to use his winnings to establish his financial grip on the terrorist market. M sends Bond \u2013 on his maiden mission as a 00 Agent \u2013 to attend this game and prevent Le Chiffre from winning. With the help of Vesper Lynd and Felix Leiter, Bond enters the most important poker game in his already dangerous career.","director":"Martin Campbell","genres":"Adventure Action Thriller","tagline":"Everyone has a past. Every legend has a beginning."},{"title":"Taken 3","overview":"Ex-government operative Bryan Mills finds his life is shattered when he's falsely accused of a murder that hits close to home. As he's pursued by a savvy police inspector, Mills employs his particular set of skills to track the real killer and exact his unique brand of justice.","director":"Olivier Megaton","genres":"Thriller Action","tagline":"It Ends Here"},{"title":"Prisoners","overview":"When Keller Dover's daughter and her friend go missing, he takes matters into his own hands as the police pursue multiple leads and the pressure mounts. But just how far will this desperate father go to protect his family?","director":"Denis Villeneuve","genres":"Drama Thriller Crime","tagline":"Every moment matters."},{"title":"The Good, the Bad and the Ugly","overview":"While the Civil War rages between the Union and the Confederacy, three men \u2013 a quiet loner, a ruthless hit man and a Mexican bandit \u2013 comb the American Southwest in search of a strongbox containing $200,000 in stolen gold.","director":"Sergio Leone","genres":"Western","tagline":"For three men the Civil War wasn't hell. It was practice."},{"title":"American Sniper","overview":"U.S. Navy SEAL Chris Kyle takes his sole mission\u2014protect his comrades\u2014to heart and becomes one of the most lethal snipers in American history. His pinpoint accuracy not only saves countless lives but also makes him a prime target of insurgents. Despite grave danger and his struggle to be a good husband and father to his family back in the States, Kyle serves four tours of duty in Iraq. However, when he finally returns home, he finds that he cannot leave the war behind.","director":"Clint Eastwood","genres":"War Action","tagline":"The most lethal sniper in U.S. history."},{"title":"A Bug's Life","overview":"On behalf of \"oppressed bugs everywhere,\" an inventive ant named Flik hires a troupe of warrior bugs to defend his bustling colony from a horde of freeloading grasshoppers led by the evil-minded Hopper.","director":"Andrew Stanton","genres":"Adventure Animation Comedy Family","tagline":"An epic presentation of miniature proportions."},{"title":"Thor","overview":"Against his father Odin's will, The Mighty Thor - a powerful but arrogant warrior god - recklessly reignites an ancient war. Thor is cast down to Earth and forced to live among humans as punishment. Once here, Thor learns what it takes to be a true hero when the most dangerous villain of his world sends the darkest forces of Asgard to invade Earth.","director":"Kenneth Branagh","genres":"Adventure Fantasy Action","tagline":"Two worlds. One hero."},{"title":"The Bourne Identity","overview":"Wounded to the brink of death and suffering from amnesia, Jason Bourne is rescued at sea by a fisherman. With nothing to go on but a Swiss bank account number, he starts to reconstruct his life, but finds that many people he encounters want him dead. However, Bourne realizes that he has the combat and mental skills of a world-class spy \u2013 but who does he work for?","director":"Doug Liman","genres":"Action Drama Mystery Thriller","tagline":"He was the perfect weapon until he became the target."},{"title":"2001: A Space Odyssey","overview":"Humanity finds a mysterious object buried beneath the lunar surface and sets off to find its origins with the help of HAL 9000, the world's most advanced super computer.","director":"Stanley Kubrick","genres":"Science Fiction Mystery Adventure","tagline":"An epic drama of adventure and exploration"},{"title":"Allegiant","overview":"Beatrice Prior and Tobias Eaton venture into the world outside of the fence and are taken into protective custody by a mysterious agency known as the Bureau of Genetic Welfare.","director":"Robert Schwentke","genres":"Adventure Science Fiction","tagline":"Break the boundaries of your world"},{"title":"Finding Nemo","overview":"Nemo, an adventurous young clownfish, is unexpectedly taken from his Great Barrier Reef home to a dentist's office aquarium. It's up to his worrisome father Marlin and a friendly but forgetful fish Dory to bring Nemo home -- meeting vegetarian sharks, surfer dude turtles, hypnotic jellyfish, hungry seagulls, and more along the way.","director":"Andrew Stanton","genres":"Animation Family","tagline":"There are 3.7 trillion fish in the ocean, they're looking for one."},{"title":"Sin City: A Dame to Kill For","overview":"Some of Sin City's most hard-boiled citizens cross paths with a few of its more reviled inhabitants.","director":"Robert Rodriguez","genres":"Crime Thriller","tagline":"There is no justice without sin."},{"title":"Jupiter Ascending","overview":"In a universe where human genetic material is the most precious commodity, an impoverished young Earth woman becomes the key to strategic maneuvers and internal strife within a powerful dynasty\u2026","director":"Lilly Wachowski","genres":"Science Fiction Fantasy Action Adventure","tagline":"Expand your universe."},{"title":"The Mask","overview":"When timid bank clerk Stanley Ipkiss discovers a magical mask containing the spirit of the Norse god Loki, his entire life changes. While wearing the mask, Ipkiss becomes a supernatural playboy exuding charm and confidence which allows him to catch the eye of local nightclub singer Tina Carlyle. Unfortunately, under the mask's influence, Ipkiss also robs a bank, which angers junior crime lord Dorian Tyrell, whose goons get blamed for the heist.","director":"Chuck Russell","genres":"Romance Comedy Crime Fantasy","tagline":"From zero to hero."},{"title":"Ice Age: The Meltdown","overview":"Diego, Manny and Sid return in this sequel to the hit animated movie Ice Age. This time around, the deep freeze is over, and the ice-covered earth is starting to melt, which will destroy the trio's cherished valley. The impending disaster prompts them to reunite and warn all the other beasts about the desperate situation.","director":"Carlos Saldanha","genres":"Animation Family Comedy Adventure","tagline":"The Ice age is melting away."},{"title":"Kung Fu Panda","overview":"When the Valley of Peace is threatened, lazy Po the panda discovers his destiny as the \"chosen one\" and trains to become a kung fu hero, but transforming the unsleek slacker into a brave warrior won't be easy. It's up to Master Shifu and the Furious Five -- Tigress, Crane, Mantis, Viper and Monkey -- to give it a try.","director":"Mark Osborne","genres":"Adventure Animation Family Comedy","tagline":"Prepare for awesomeness."},{"title":"V for Vendetta","overview":"In a world in which Great Britain has become a fascist state, a masked vigilante known only as 'V' conducts guerrilla warfare against the oppressive British government. When 'V' rescues a young woman from the secret police, he finds in her an ally with whom he can continue his fight to free the people of Britain.","director":"James McTeigue","genres":"Action Thriller Fantasy","tagline":"People should not be afraid of their governments. Governments should be afraid of their people."},{"title":"Penguins of Madagascar","overview":"Skipper, Kowalski, Rico and Private join forces with undercover organization The North Wind to stop the villainous Dr. Octavius Brine from destroying the world as we know it.","director":"Eric Darnell","genres":"Family Animation Adventure Comedy","tagline":"The Movie Event That Will Blow Their Cover"},{"title":"The Devil Wears Prada","overview":"The Devil Wears Prada is about a young journalist who moves to New York to work in the fashion industry. Her boss however is extremely demanding and cruel and won\u2019t let her succeed if she doesn\u2019t fit into the high class elegant look of their magazine when all she really wants to be a good journalist.","director":"David Frankel","genres":"Comedy Drama Romance","tagline":"Meet Andy Sachs. A million girls would kill to have her job. She's not one of them."},{"title":"Non-Stop","overview":"Bill Marks is a burned-out veteran of the Air Marshals service. He views the assignment not as a life-saving duty, but as a desk job in the sky. However, today's flight will be no routine trip. Shortly into the transatlantic journey from New York to London, he receives a series of mysterious text messages ordering him to have the government transfer $150 million into a secret account, or a passenger will die every 20 minutes.","director":"Jaume Collet-Serra","genres":"Action Thriller Mystery","tagline":"The hijacking was just the beginning."},{"title":"The Purge: Anarchy","overview":"Three groups of people are trying to survive Purge Night, when their stories intertwine and are left stranded in The Purge trying to survive the chaos and violence that occurs.","director":"James DeMonaco","genres":"Horror Thriller","tagline":"Welcome to America, where one night a year, all crime Is legal."},{"title":"Cars","overview":"Lightning McQueen, a hotshot rookie race car driven to succeed, discovers that life is about the journey, not the finish line, when he finds himself unexpectedly detoured in the sleepy Route 66 town of Radiator Springs. On route across the country to the big Piston Cup Championship in California to compete against two seasoned pros, McQueen gets to know the town's offbeat characters.","director":"John Lasseter","genres":"Animation Adventure Comedy Family","tagline":"Ahhh... it's got that new movie smell."},{"title":"Spider-Man","overview":"After being bitten by a genetically altered spider, nerdy high school student Peter Parker is endowed with amazing powers.","director":"Sam Raimi","genres":"Fantasy Action","tagline":"With great power comes great responsibility."},{"title":"The Hangover","overview":"When three friends finally come to after a raucous night of bachelor-party revelry, they find a baby in the closet and a tiger in the bathroom. But they can't seem to locate their best friend, Doug \u2013 who's supposed to be tying the knot. Launching a frantic search for Doug, the trio perseveres through a nasty hangover to try to make it to the church on time.","director":"Todd Phillips","genres":"Comedy","tagline":"Some guys just can't handle Vegas."},{"title":"Horrible Bosses 2","overview":"Dale, Kurt and Nick decide to start their own business but things don't go as planned because of a slick investor, prompting the trio to pull off a harebrained and misguided kidnapping scheme.","director":"Sean Anders","genres":"Comedy","tagline":"New Crime. Same Tools."},{"title":"Django Unchained","overview":"With the help of a German bounty hunter, a freed slave sets out to rescue his wife from a brutal Mississippi plantation owner.","director":"Quentin Tarantino","genres":"Drama Western","tagline":"Life, liberty and the pursuit of vengeance."},{"title":"The Age of Adaline","overview":"After 29-year-old Adaline recovers from a nearly lethal accident, she inexplicably stops growing older. As the years stretch on and on, Adaline keeps her secret to herself  until she meets a man who changes her life.","director":"Lee Toland Krieger","genres":"Fantasy Drama Romance","tagline":"Love is timeless."},{"title":"Shutter Island","overview":"World War II soldier-turned-U.S. Marshal Teddy Daniels investigates the disappearance of a patient from a hospital for the criminally insane, but his efforts are compromised by his troubling visions and also by a mysterious doctor.","director":"Martin Scorsese","genres":"Drama Thriller Mystery","tagline":"Someone is missing."},{"title":"World War Z","overview":"Life for former United Nations investigator Gerry Lane and his family seems content. Suddenly, the world is plagued by a mysterious infection turning whole human populations into rampaging mindless zombies. After barely escaping the chaos, Lane is persuaded to go on a mission to investigate this disease. What follows is a perilous trek around the world where Lane must brave horrific dangers and long odds to find answers before human civilization falls.","director":"Marc Forster","genres":"Action Drama Horror Science Fiction Thriller","tagline":"Remember Philly!"},{"title":"Underworld","overview":"Vampires and werewolves have waged a nocturnal war against each other for centuries. But all bets are off when a female vampire warrior named Selene, who's famous for her strength and werewolf-hunting prowess, becomes smitten with a peace-loving male werewolf, Michael, who wants to end the war.","director":"Len Wiseman","genres":"Fantasy Action Thriller","tagline":"Underworld"},{"title":"Night at the Museum: Battle of the Smithsonian","overview":"Hapless museum night watchman Larry Daley must help his living, breathing exhibit friends out of a pickle now that they've been transferred to the archives at the Smithsonian Institution. Larry's (mis)adventures this time include close encounters with Amelia Earhart, Abe Lincoln and Ivan the Terrible.","director":"Shawn Levy","genres":"Adventure Fantasy Action Comedy Family","tagline":"When the lights go off the battle is on."},{"title":"Sherlock Holmes: A Game of Shadows","overview":"There is a new criminal mastermind at large (Professor Moriarty) and not only is he Holmes\u2019 intellectual equal, but his capacity for evil and lack of conscience may give him an advantage over the  detective.","director":"Guy Ritchie","genres":"Adventure Action Crime Mystery","tagline":"The game is afoot."},{"title":"Home Alone 2: Lost in New York","overview":"Instead of flying to Florida with his folks, Kevin ends up alone in New York, where he gets a hotel room with his dad's credit card\u2014despite problems from a clerk and meddling bellboy. But when Kevin runs into his old nemeses, the Wet Bandits, he's determined to foil their plans to rob a toy store on Christmas eve.","director":"Chris Columbus","genres":"Comedy Family Adventure Crime","tagline":"He's up past his bedtime in the city that never sleeps."},{"title":"Indiana Jones and the Last Crusade","overview":"When Dr. Henry Jones Sr. suddenly goes missing while pursuing the Holy Grail, eminent archaeologist Indiana must team up with Marcus Brody, Sallah and Elsa Schneider to follow in his father's footsteps and stop the Nazis from recovering the power of eternal life.","director":"Steven Spielberg","genres":"Adventure Action","tagline":"The man with the hat is back. And this time, he's bringing his Dad."},{"title":"Taken","overview":"While vacationing with a friend in Paris, an American girl is kidnapped by a gang of human traffickers intent on selling her into forced prostitution. Working against the clock, her ex-spy father must pull out all the stops to save her. But with his best years possibly behind him, the job may be more than he can handle.","director":"Pierre Morel","genres":"Action Thriller","tagline":"They took his daughter.  He'll take their lives."},{"title":"American Beauty","overview":"Lester Burnham, a depressed suburban father in a mid-life crisis, decides to turn his hectic life around after developing an infatuation with his daughter's attractive friend.","director":"Sam Mendes","genres":"Drama","tagline":"Look closer."},{"title":"The Pursuit of Happyness","overview":"The true story of Christopher Gardner, who invests heavily in a device known as a 'Bone Density Scanner', only to find himself struggle to sell the product as it's just marginally better than the current technology, and much more expensive. His wife leaves him,  he loses his house, bank account and credit cards and, now forced to live out in the streets with his young son,  he's desperate to find a steady job. He takes on a job as a stockbroker but, before he can receive pay, he needs to go through 6 months of training, and must sell his devices.","director":"Gabriele Muccino","genres":"Drama","tagline":null},{"title":"Divergent","overview":"In a world divided into factions based on personality types, Tris learns that she's been classified as Divergent and won't fit in. When she discovers a plot to destroy Divergents, Tris and the mysterious Four must find out what makes Divergents dangerous before it's too late.","director":"Neil Burger","genres":"Adventure Action Science Fiction","tagline":"What makes you different makes you dangerous."},{"title":"Snow White and the Seven Dwarfs","overview":"A beautiful girl, Snow White, takes refuge in the forest in the house of seven dwarfs to hide from her stepmother, the wicked Queen. The Queen is jealous because she wants to be known as \"the fairest in the land,\" and Snow White's beauty surpasses her own.","director":"David Hand","genres":"Fantasy Animation Family","tagline":"The Happiest, Dopiest, Grumpiest, Sneeziest movie of the year."},{"title":"The Equalizer","overview":"In The Equalizer, Denzel Washington plays McCall, a man who believes he has put his mysterious past behind him and dedicated himself to beginning a new, quiet life. But when McCall meets Teri (Chlo\u00eb Grace Moretz), a young girl under the control of ultra-violent Russian gangsters, he can\u2019t stand idly by \u2013 he has to help her. Armed with hidden skills that allow him to serve vengeance against anyone who would brutalize the helpless, McCall comes out of his self-imposed retirement and finds his desire for justice reawakened. If someone has a problem, if the odds are stacked against them, if they have nowhere else to turn, McCall will help. He is The Equalizer.","director":"Antoine Fuqua","genres":"Thriller Action Crime","tagline":"What do you see when you look at me?"},{"title":"Kill Bill: Vol. 1","overview":"An assassin is shot at the altar by her ruthless employer, Bill and other members of their assassination circle \u2013 but 'The Bride' lives to plot her vengeance. Setting out for some payback, she makes a death list and hunts down those who wronged her, saving Bill for last.","director":"Quentin Tarantino","genres":"Action Crime","tagline":"Go for the kill."},{"title":"Harry Potter and the Prisoner of Azkaban","overview":"Harry, Ron and Hermione return to Hogwarts for another magic-filled year. Harry comes face to face with danger yet again, this time in the form of escaped convict, Sirius Black \u2013 and turns to sympathetic Professor Lupin for help.","director":"Alfonso Cuar\\u00f3n","genres":"Adventure Fantasy Family","tagline":"Something wicked this way comes."},{"title":"Se7en","overview":"Two homicide detectives are on a desperate hunt for a serial killer whose crimes are based on the \"seven deadly sins\" in this dark and haunting film that takes viewers from the tortured remains of one victim to the next. The seasoned Det. Sommerset researches each sin in an effort to get inside the killer's mind, while his novice partner, Mills, scoffs at his efforts to unravel the case.","director":"David Fincher","genres":"Crime Mystery Thriller","tagline":"Seven deadly sins. Seven ways to die."},{"title":"Edge of Tomorrow","overview":"Major Bill Cage is an officer who has never seen a day of combat when he is unceremoniously demoted and dropped into combat. Cage is killed within minutes, managing to take an alpha alien down with him. He awakens back at the beginning of the same day and is forced to fight and die again... and again - as physical contact with the alien has thrown him into a time loop.","director":"Doug Liman","genres":"Action Science Fiction","tagline":"Live, Die, Repeat"},{"title":"The Shining","overview":"Jack Torrance accepts a caretaker job at the Overlook Hotel, where he, along with his wife Wendy and their son Danny, must live isolated from the rest of the world for the winter. But they aren't prepared for the madness that lurks within.","director":"Stanley Kubrick","genres":"Horror Thriller","tagline":"A masterpiece of modern horror."},{"title":"Alice in Wonderland","overview":"Alice, an unpretentious and individual 19-year-old, is betrothed to a dunce of an English nobleman. At her engagement party, she escapes the crowd to consider whether to go through with the marriage and falls down a hole in the garden after spotting an unusual rabbit. Arriving in a strange and surreal place called 'Underland,' she finds herself in a world that resembles the nightmares she had as a child, filled with talking animals, villainous queens and knights, and frumious bandersnatches. Alice realizes that she is there for a reason \u2013 to conquer the horrific Jabberwocky and restore the rightful queen to her throne.","director":"Tim Burton","genres":"Family Fantasy Adventure","tagline":"You're invited to a very important date."},{"title":"The Empire Strikes Back","overview":"The epic saga continues as Luke Skywalker, in hopes of defeating the evil Galactic Empire, learns the ways of the Jedi from aging master Yoda. But Darth Vader is more determined than ever to capture Luke. Meanwhile, rebel leader Princess Leia, cocky Han Solo, Chewbacca, and droids C-3PO and R2-D2 are thrown into various stages of capture, betrayal and despair.","director":"Irvin Kershner","genres":"Adventure Action Science Fiction","tagline":"The Adventure Continues..."},{"title":"Star Trek Into Darkness","overview":"When the crew of the Enterprise is called back home, they find an unstoppable force of terror from within their own organization has detonated the fleet and everything it stands for, leaving our world in a state of crisis.  With a personal score to settle, Captain Kirk leads a manhunt to a war-zone world to capture a one man weapon of mass destruction. As our heroes are propelled into an epic chess game of life and death, love will be challenged, friendships will be torn apart, and sacrifices must be made for the only family Kirk has left: his crew.","director":"J.J. Abrams","genres":"Action Adventure Science Fiction","tagline":"Earth Will Fall"},{"title":"Harry Potter and the Order of the Phoenix","overview":"Returning for his fifth year of study at Hogwarts, Harry is stunned to find that his warnings about the return of Lord Voldemort have been ignored. Left with no choice, Harry takes matters into his own hands, training a small group of students \u2013 dubbed 'Dumbledore's Army' \u2013 to defend themselves against the dark arts.","director":"David Yates","genres":"Adventure Fantasy Family Mystery","tagline":"Evil Must Be Confronted."},{"title":"The Incredibles","overview":"Bob Parr has given up his superhero days to log in time as an insurance adjuster and raise his three children with his formerly heroic wife in suburbia. But when he receives a mysterious assignment, it's time to get back into costume.","director":"Brad Bird","genres":"Action Adventure Animation Family","tagline":"No gut, no glory"},{"title":"Mission: Impossible - Ghost Protocol","overview":"In the 4th installment of the Mission Impossible series, Ethan Hunt (Cruise) and his team are racing against time to track down a dangerous terrorist named Hendricks (Nyqvist), who has gained access to Russian nuclear launch codes and is planning a strike on the United States. An attempt to stop him ends in an explosion causing severe destruction to the Kremlin and the IMF to be implicated in the bombing, forcing the President to disavow them. No longer being aided by the government, Ethan and his team chase Hendricks around the globe, although they might still be too late to stop a disaster.","director":"Brad Bird","genres":"Action Thriller Adventure","tagline":"No Plan. No Backup. No Choice."},{"title":"Iron Man 3","overview":"When Tony Stark's world is torn apart by a formidable terrorist called the Mandarin, he starts an odyssey of rebuilding and retribution.","director":"Shane Black","genres":"Action Adventure Science Fiction","tagline":"Unleash the power behind the armor."},{"title":"The Expendables","overview":"Barney Ross leads a band of highly skilled mercenaries including knife enthusiast Lee Christmas, a martial arts expert, heavy weapons specialist, demolitionist, and a loose-cannon sniper. When the group is commissioned by the mysterious Mr. Church to assassinate the dictator of a small South American island, Barney and Lee visit the remote locale to scout out their opposition and discover the true nature of the conflict engulfing the city.","director":"Sylvester Stallone","genres":"Thriller Adventure Action","tagline":"Choose Your Weapon."},{"title":"Iron Man 2","overview":"With the world now aware of his dual life as the armored superhero Iron Man, billionaire inventor Tony Stark faces pressure from the government, the press and the public to share his technology with the military. Unwilling to let go of his invention, Stark, with Pepper Potts and James 'Rhodey' Rhodes at his side, must forge new alliances \u2013 and confront powerful enemies.","director":"Jon Favreau","genres":"Adventure Action Science Fiction","tagline":"It's not the armor that makes the hero, but the man inside."},{"title":"Snow White and the Huntsman","overview":"After the Evil Queen marries the King, she performs a violent coup in which the King is murdered and his daughter, Snow White, is taken captive. Almost a decade later, a grown Snow White is still in the clutches of the Queen. In order to obtain immortality, The Evil Queen needs the heart of Snow White. After Snow escapes the castle, the Queen sends the Huntsman to find her in the Dark Forest.","director":"Rupert Sanders","genres":"Adventure Fantasy Drama","tagline":"The Fairytale is Over"},{"title":"Hercules","overview":"Fourteen hundred years ago, a tormented soul walked the earth that was neither man nor god. Hercules was the powerful son of the god king Zeus, for this he received nothing but suffering his entire life. After twelve arduous labors and the loss of his family, this dark, world-weary soul turned his back on the gods finding his only solace in bloody battle. Over the years he warmed to the company of six similar souls, their only bond being their love of fighting and presence of death. These men and woman never question where they go to fight or why or whom, just how much they will be paid. Now the King of Thrace has hired these mercenaries to train his men to become the greatest army of all time. It is time for this bunch of lost souls to finally have their eyes opened to how far they have fallen when they must train an army to become as ruthless and blood thirsty as their reputation has become.","director":"Brett Ratner","genres":"Action Adventure","tagline":"Before he was a legend, he was a man."},{"title":"Ocean's Twelve","overview":"Danny Ocean reunites with his old flame and the rest of his merry band of thieves in carrying out three huge heists in Rome, Paris and Amsterdam \u2013 but a Europol agent is hot on their heels.","director":"Steven Soderbergh","genres":"Thriller Crime","tagline":"Twelve is the new eleven."},{"title":"Back to the Future","overview":"Eighties teenager Marty McFly is accidentally sent back in time to 1955, inadvertently disrupting his parents' first meeting and attracting his mother's romantic interest. Marty must repair the damage to history by rekindling his parents' romance and - with the help of his eccentric inventor friend Doc Brown - return to 1985.","director":"Robert Zemeckis","genres":"Adventure Comedy Science Fiction Family","tagline":"He's the only kid ever to get into trouble before he was born."},{"title":"The Hunger Games: Catching Fire","overview":"Katniss Everdeen has returned home safe after winning the 74th Annual Hunger Games along with fellow tribute Peeta Mellark. Winning means that they must turn around and leave their family and close friends, embarking on a \"Victor's Tour\" of the districts. Along the way Katniss senses that a rebellion is simmering, but the Capitol is still very much in control as President Snow prepares the 75th Annual Hunger Games (The Quarter Quell) - a competition that could change Panem forever.","director":"Francis Lawrence","genres":"Adventure Action Science Fiction","tagline":"Every revolution begins with a spark."},{"title":"Saving Private Ryan","overview":"As U.S. troops storm the beaches of Normandy, three brothers lie dead on the battlefield, with a fourth trapped behind enemy lines. Ranger captain John Miller and seven men are tasked with penetrating German-held territory and bringing the boy home.","director":"Steven Spielberg","genres":"Drama History War","tagline":"The mission is a man."},{"title":"Indiana Jones and the Kingdom of the Crystal Skull","overview":"Set during the Cold War, the Soviets \u2013 led by sword-wielding Irina Spalko \u2013 are in search of a crystal skull which has supernatural powers related to a mystical Lost City of Gold. After being captured and then escaping from them, Indy is coerced to head to Peru at the behest of a young man whose friend \u2013 and Indy's colleague \u2013 Professor Oxley has been captured for his knowledge of the skull's whereabouts.","director":"Steven Spielberg","genres":"Adventure Action","tagline":"The adventure continues . . ."},{"title":"Mission: Impossible","overview":"When Ethan Hunt, the leader of a crack espionage team whose perilous operation has gone awry with no explanation, discovers that a mole has penetrated the CIA, he's surprised to learn that he's the No. 1 suspect. To clear his name, Hunt now must ferret out the real double agent and, in the process, even the score.","director":"Brian De Palma","genres":"Adventure Action Thriller","tagline":"Expect the Impossible."},{"title":"About Time","overview":"The night after another unsatisfactory New Year party, Tim's father tells his son that the men in his family have always had the ability to travel through time. Tim can't change history, but he can change what happens and has happened in his own life \u2013 so he decides to make his world a better place... by getting a girlfriend. Sadly, that turns out not to be as easy as he thinks.","director":"Richard Curtis","genres":"Comedy Drama Science Fiction","tagline":"What if every moment in life came with a second chance?"},{"title":"Run All Night","overview":"Brooklyn mobster and prolific hit man Jimmy Conlon has seen better days. Longtime best friend of a mob boss, Jimmy is haunted by the sins of his past\u2014as well as a dogged police detective who\u2019s been one step behind Jimmy for 30 years. But when Jimmy\u2019s estranged son becomes a target, Jimmy must make a choice between the crime family he chose and the real family he abandoned long ago. Now, with nowhere safe to turn, Jimmy has just one night to figure out exactly where his loyalties lie and to see if he can finally make things right.","director":"Jaume Collet-Serra","genres":"Action Crime Drama Mystery Thriller","tagline":"No sin goes unpunished"},{"title":"Captain America: The First Avenger","overview":"Predominantly set during World War II, Steve Rogers is a sickly man from Brooklyn who's transformed into super-soldier Captain America to aid in the war effort. Rogers must stop the Red Skull \u2013 Adolf Hitler's ruthless head of weaponry, and the leader of an organization that intends to use a mysterious device of untold powers for world domination.","director":"Joe Johnston","genres":"Action Adventure Science Fiction","tagline":"When patriots become heroes"},{"title":"The Prestige","overview":"A mysterious story of two magicians whose intense rivalry leads them on a life-long battle for supremacy -- full of obsession, deceit and jealousy with dangerous and deadly consequences.","director":"Christopher Nolan","genres":"Drama Mystery Thriller","tagline":"Are You Watching Closely?"},{"title":"The Grand Budapest Hotel","overview":"The Grand Budapest Hotel tells of a legendary concierge at a famous European hotel between the wars and his friendship with a young employee who becomes his trusted prot\u00e9g\u00e9. The story involves the theft and recovery of a priceless Renaissance painting, the battle for an enormous family fortune and the slow and then sudden upheavals that transformed Europe during the first half of the 20th century.","director":"Wes Anderson","genres":"Comedy Drama","tagline":"A perfect holiday without leaving home."},{"title":"The Fault in Our Stars","overview":"Despite the tumor-shrinking medical miracle that has bought her a few years, Hazel has never been anything but terminal, her final chapter inscribed upon diagnosis. But when a patient named Augustus Waters suddenly appears at Cancer Kid Support Group, Hazel's story is about to be completely rewritten.","director":"Josh Boone","genres":"Romance Drama","tagline":"One Sick Love Story"},{"title":"The Terminator","overview":"In the post-apocalyptic future, reigning tyrannical supercomputers teleport a cyborg assassin known as the \"Terminator\" back to 1984 to kill Sarah Connor, whose unborn son is destined to lead insurgents against 21st century mechanical hegemony. Meanwhile, the human-resistance movement dispatches a lone warrior to safeguard Sarah. Can he stop the virtually indestructible killing machine?","director":"James Cameron","genres":"Action Thriller Science Fiction","tagline":"Your future is in his hands."},{"title":"The Interview","overview":"Dave Skylark and his producer Aaron Rapoport run the celebrity tabloid show \"Skylark Tonight\". When they land an interview with a surprise fan, North Korean dictator Kim Jong-un, they are recruited by the CIA to turn their trip to Pyongyang into an assassination mission.","director":"Seth Rogen","genres":"Action Comedy","tagline":"The Film Hackers Tried To Get Banned"},{"title":"The Cabin in the Woods","overview":"Five college friends spend the weekend at a remote cabin in the woods, where they get more than they bargained for. Together, they must discover the truth behind the cabin in the woods.","director":"Drew Goddard","genres":"Horror Thriller","tagline":"If you hear a strange sound outside... have sex"},{"title":"Catch Me If You Can","overview":"A true story about Frank Abagnale Jr. who, before his 19th birthday, successfully conned millions of dollars worth of checks as a Pan Am pilot, doctor, and legal prosecutor. An FBI agent makes it his mission to put him behind bars. But Frank not only eludes capture, he revels in the pursuit.","director":"Steven Spielberg","genres":"Drama Crime","tagline":"The true story of a real fake."},{"title":"Cloud Atlas","overview":"A set of six nested stories spanning time between the 19th century and a distant post-apocalyptic future. Cloud Atlas explores how the actions and consequences of individual lives impact one another throughout the past, the present and the future. Action, mystery and romance weave through the story as one soul is shaped from a killer into a hero and a single act of kindness ripples across centuries to inspire a revolution in the distant future.  Based on the award winning novel by David Mitchell. Directed by Tom Tykwer and the Wachowskis.","director":"Tom Tykwer","genres":"Drama Science Fiction","tagline":"Everything is Connected"},{"title":"Wanted","overview":"Doormat Wesley Gibson discovers that his recently murdered father \u2013 who Wesley never knew \u2013 belonged to a secret guild of assassins. After a leather-clad sexpot drafts Wesley into the society, he hones his innate killing skills and turns avenger.","director":"Timur Bekmambetov","genres":"Action Thriller Crime","tagline":"Choose your destiny."},{"title":"TRON: Legacy","overview":"Sam Flynn, the tech-savvy and daring son of Kevin Flynn, investigates his father's disappearance and is pulled into The Grid. With the help of a mysterious program named Quorra, Sam quests to stop evil dictator Clu from crossing into the real world.","director":"Joseph Kosinski","genres":"Adventure Action Science Fiction","tagline":"The Game Has Changed."},{"title":"Am\u00e9lie","overview":"At a tiny Parisian caf\u00e9, the adorable yet painfully shy Am\u00e9lie (Audrey Tautou) accidentally discovers a gift for helping others. Soon Amelie is spending her days as a matchmaker, guardian angel, and all-around do-gooder. But when she bumps into a handsome stranger, will she find the courage to become the star of her very own love story?","director":"Jean-Pierre Jeunet","genres":"Comedy Romance","tagline":"One person can change your life forever."},{"title":"Toy Story","overview":"Led by Woody, Andy's toys live happily in his room until Andy's birthday brings Buzz Lightyear onto the scene. Afraid of losing his place in Andy's heart, Woody plots against Buzz. But when circumstances separate Buzz and Woody from their owner, the duo eventually learns to put aside their differences.","director":"John Lasseter","genres":"Animation Comedy Family","tagline":null},{"title":"Star Trek","overview":"The fate of the galaxy rests in the hands of bitter rivals. One, James Kirk, is a delinquent, thrill-seeking Iowa farm boy. The other, Spock, a Vulcan, was raised in a logic-based society that rejects all emotion. As fiery instinct clashes with calm reason, their unlikely but powerful partnership is the only thing capable of leading their crew through unimaginable danger, boldly going where no one has gone before. The human adventure has begun again.","director":"J.J. Abrams","genres":"Science Fiction Action Adventure","tagline":"The future begins."},{"title":"Toy Story 2","overview":"Andy heads off to Cowboy Camp, leaving his toys to their own devices. Things shift into high gear when an obsessive toy collector named Al McWhiggen, owner of Al's Toy Barn kidnaps Woody. Andy's toys mount a daring rescue mission, Buzz Lightyear meets his match and Woody has to decide where he and his heart truly belong.","director":"John Lasseter","genres":"Animation Comedy Family","tagline":"The toys are back!"},{"title":"American History X","overview":"Derek Vineyard is paroled after serving 3 years in prison for killing two thugs who tried to break into\/steal his truck. Through his brother, Danny Vineyard's narration, we learn that before going to prison, Derek was a skinhead and the leader of a violent white supremacist gang that committed acts of racial crime throughout L.A. and his actions greatly influenced Danny. Reformed and fresh out of prison, Derek severs contact with the gang and becomes determined to keep Danny from going down the same violent path as he did.","director":"Tony Kaye","genres":"Drama","tagline":"Some Legacies Must End."},{"title":"The Matrix Revolutions","overview":"The human city of Zion defends itself against the massive invasion of the machines as Neo fights to end the war at another front while also opposing the rogue Agent Smith.","director":"Lilly Wachowski","genres":"Adventure Action Thriller Science Fiction","tagline":"Everything that has a beginning has an end."},{"title":"The Butterfly Effect","overview":"A young man struggles to access sublimated childhood memories. He finds a technique that allows him to travel back into the past, to occupy his childhood body and change history. However, he soon finds that every change he makes has unexpected consequences.","director":"Eric Bress","genres":"Science Fiction Thriller","tagline":"Such minor changes, such huge consequences."},{"title":"The Sixth Sense","overview":"A psychological thriller about an eight year old boy named Cole Sear who believes he can see into the world of the dead. A child psychologist named Malcolm Crowe comes to Cole to help him deal with his problem, learning that he really can see ghosts of dead people.","director":"M. Night Shyamalan","genres":"Mystery Thriller Drama","tagline":"Not every gift is a blessing."},{"title":"Trainwreck","overview":"Having thought that monogamy was never possible, a commitment-phobic career woman may have to face her fears when she meets a good guy.","director":"Judd Apatow","genres":"Comedy","tagline":"We All Know One."},{"title":"Sex Tape","overview":"When Jay and Annie first got together, their romantic connection was intense \u2013 but ten years and two kids later, the flame of their love needs a spark.  To kick things up a notch, they decide \u2013 why not? \u2013 to make a video of themselves trying out every position in The Joy of Sex in one marathon three-hour session.  It seems like a great idea \u2013 until they discover that their most private video is no longer private.  With their reputations on the line, they know they\u2019re just one click away from being laid bare to the world... but as their race to reclaim their video leads to a night they'll never forget, they'll find that their video will expose even more than they bargained for.","director":"Jake Kasdan","genres":"Comedy","tagline":"A movie about a movie they don't want you to see."},{"title":"Inglourious Basterds","overview":"In Nazi-occupied France during World War II, a group of Jewish-American soldiers known as \"The Basterds\" are chosen specifically to spread fear throughout the Third Reich by scalping and brutally killing Nazis. The Basterds, lead by Lt. Aldo Raine soon cross paths with a French-Jewish teenage girl who runs a movie theater in Paris which is targeted by the soldiers.","director":"Quentin Tarantino","genres":"Drama Action Thriller War","tagline":"Once upon a time in Nazi occupied France..."},{"title":"Captain America: The Winter Soldier","overview":"After the cataclysmic events in New York with The Avengers, Steve Rogers, aka Captain America is living quietly in Washington, D.C. and trying to adjust to the modern world. But when a S.H.I.E.L.D. colleague comes under attack, Steve becomes embroiled in a web of intrigue that threatens to put the world at risk. Joining forces with the Black Widow, Captain America struggles to expose the ever-widening conspiracy while fighting off professional assassins sent to silence him at every turn. When the full scope of the villainous plot is revealed, Captain America and the Black Widow enlist the help of a new ally, the Falcon. However, they soon find themselves up against an unexpected and formidable enemy\u2014the Winter Soldier.","director":"Anthony Russo","genres":"Action Adventure Science Fiction","tagline":"In heroes we trust."},{"title":"Rocky","overview":"When world heavyweight boxing champion, Apollo Creed wants to give an unknown fighter a shot at the title as a publicity stunt, his handlers choose palooka Rocky Balboa, an uneducated collector for a Philadelphia loan shark. Rocky teams up with trainer  Mickey Goldmill to make the most of this once in a lifetime break.","director":"John G. Avildsen","genres":"Drama","tagline":"His whole life was a million-to-one shot."},{"title":"Terminator Salvation","overview":"All grown up in post-apocalyptic 2018, John Connor must lead the resistance of humans against the increasingly dominating militaristic robots. But when Marcus Wright appears, his existence confuses the mission as Connor tries to determine whether Wright has come from the future or the past -- and whether he's friend or foe.","director":"McG","genres":"Action Science Fiction Thriller","tagline":"The End Begins."},{"title":"300: Rise of an Empire","overview":"Based on Frank Miller's latest graphic novel Xerxes and told in the breathtaking visual style of the blockbuster \"300,\" this new chapter of the epic saga takes the action to a fresh battlefield--on the sea--as Greek general Themistokles attempts to unite all of Greece by leading the charge that will change the course of the war. \"300: Rise of an Empire\" pits Themistokles against the massive invading Persian forces led by mortal-turned-god Xerxes and Artemesia, the vengeful commander of the Persian navy.","director":"Noam Murro","genres":"Action War","tagline":"Seize your glory!"},{"title":"Pitch Perfect 2","overview":"The Bellas are back, and they are better than ever. After being humiliated in front of none other than the President of the United States of America, the Bellas are taken out of the Aca-Circuit. In order to clear their name, and regain their status, the Bellas take on a seemingly impossible task: winning an international competition no American team has ever won. In order to accomplish this monumental task, they need to strengthen the bonds of friendship and sisterhood and blow away the competition with their amazing aca-magic! With all new friends and old rivals tagging along for the trip, the Bellas can hopefully accomplish their dreams.","director":"Elizabeth Banks","genres":"Comedy Music","tagline":"We're back pitches"},{"title":"Now You See Me","overview":"An FBI agent and an Interpol detective track a team of illusionists who pull off bank heists during their performances and reward their audiences with the money.","director":"Louis Leterrier","genres":"Thriller Crime","tagline":"4 amazing magicians. 3 impossible heists. 1 billion dollars. This is no illusion."},{"title":"I Am Legend","overview":"Robert Neville is a scientist who was unable to stop the spread of the terrible virus that was incurable and man-made. Immune, Neville is now the last human survivor in what is left of New York City and perhaps the world. For three years, Neville has faithfully sent out daily radio messages, desperate to find any other survivors who might be out there. But he is not alone.","director":"Francis Lawrence","genres":"Drama Horror Action Thriller Science Fiction","tagline":"The last man on Earth is not alone"},{"title":"The Matrix Reloaded","overview":"Six months after the events depicted in The Matrix, Neo has proved to be a good omen for the free humans, as more and more humans are being freed from the matrix and brought to Zion, the one and only stronghold of the Resistance.  Neo himself has discovered his superpowers including super speed, ability to see the codes of the things inside the matrix and a certain degree of pre-cognition. But a nasty piece of news hits the human resistance: 250,000 machine sentinels are digging to Zion and would reach them in 72 hours. As Zion prepares for the ultimate war, Neo, Morpheus and Trinity are advised by the Oracle to find the Keymaker who would help them reach the Source.  Meanwhile Neo's recurrent dreams depicting Trinity's death have got him worried and as if it was not enough, Agent Smith has somehow escaped deletion, has become more powerful than before and has fixed Neo as his next target.","director":"Lilly Wachowski","genres":"Adventure Action Thriller Science Fiction","tagline":"Free your mind."},{"title":"Let's Be Cops","overview":"It's the ultimate buddy cop movie except for one thing: they're not cops.  When two struggling pals dress as police officers for a costume party, they become neighborhood sensations.  But when these newly-minted \u201cheroes\u201d get tangled in a real life web of mobsters and dirty detectives, they must put their fake badges on the line.","director":"Luke Greenfield","genres":"Comedy","tagline":"Fake Cops. Real Trouble."},{"title":"Million Dollar Baby","overview":"Despondent over a painful estrangement from his daughter, trainer Frankie Dunn isn't prepared for boxer Maggie Fitzgerald to enter his life. But Maggie's determined to go pro and to convince Dunn and his cohort to help her.","director":"Clint Eastwood","genres":"Drama","tagline":"Beyond his silence, there is a past. Beyond her dreams, there is a feeling. Beyond hope, there is a memory. Beyond their journey, there is a love."},{"title":"Gattaca","overview":"Science fiction drama about a future society in the era of indefinite eugenics where humans are set on a life course depending on their DNA. The young Vincent Freeman is born with a condition that would prevent him from space travel, yet he is determined to infiltrate the GATTACA space program.","director":"Andrew Niccol","genres":"Thriller Science Fiction Mystery Romance","tagline":"There is no gene for the human spirit."},{"title":"Scarface","overview":"After getting a green card in exchange for assassinating a Cuban government official, Tony Montana stakes a claim on the drug trade in Miami. Viciously murdering anyone who stands in his way, Tony eventually becomes the biggest drug lord in the state, controlling nearly all the cocaine that comes through Miami. But increased pressure from the police, wars with Colombian drug cartels and his own drug-fueled paranoia serve to fuel the flames of his eventual downfall.","director":"Brian De Palma","genres":"Action Crime Drama Thriller","tagline":"The world is yours..."},{"title":"Ice Age: Dawn of the Dinosaurs","overview":"Times are changing for Manny the moody mammoth, Sid the motor mouthed sloth and Diego the crafty saber-toothed tiger. Life heats up for our heroes when they meet some new and none-too-friendly neighbors \u2013 the mighty dinosaurs.","director":"Carlos Saldanha","genres":"Animation Comedy Family Adventure","tagline":"You Won't Believe Your Ice!"},{"title":"Terminator 3: Rise of the Machines","overview":"It's been 10 years since John Connor saved Earth from Judgment Day, and he's now living under the radar, steering clear of using anything Skynet can trace. That is, until he encounters T-X, a robotic assassin ordered to finish what T-1000 started. Good thing Connor's former nemesis, the Terminator, is back to aid the now-adult Connor \u2026 just like he promised.","director":"Jonathan Mostow","genres":"Action Thriller Science Fiction","tagline":"The Machines Will Rise."},{"title":"The Social Network","overview":"On a fall night in 2003, Harvard undergrad and computer programming genius Mark Zuckerberg sits down at his computer and heatedly begins working on a new idea. In a fury of blogging and programming, what begins in his dorm room as a small site among friends soon becomes a global social network and a revolution in communication. A mere six years and 500 million friends later, Mark Zuckerberg is the youngest billionaire in history... but for this entrepreneur, success leads to both personal and legal complications.","director":"David Fincher","genres":"Drama","tagline":"You don't get to 500 million friends without making a few enemies."},{"title":"Prometheus","overview":"A team of explorers discover a clue to the origins of mankind on Earth, leading them on a journey to the darkest corners of the universe. There, they must fight a terrifying battle to save the future of the human race.","director":"Ridley Scott","genres":"Science Fiction Adventure Mystery","tagline":"The Search for Our Beginning Could Lead to Our End."},{"title":"Ted","overview":"John Bennett, a man whose childhood wish of bringing his teddy bear to life came true, now must decide between keeping the relationship with the bear or his girlfriend, Lori.","director":"Seth MacFarlane","genres":"Comedy Fantasy","tagline":"Ted is coming."},{"title":"The Conjuring 2","overview":"Lorraine and Ed Warren travel to north London to help a single mother raising four children alone in a house plagued by malicious spirits.","director":"James Wan","genres":"Horror","tagline":"The next true story from the case files of Ed and Lorraine Warren"},{"title":"Megamind","overview":"Bumbling supervillain Megamind finally defeats his nemesis, the superhero Metro Man. But without a hero, he loses all purpose and must find new meaning to his life.","director":"Tom McGrath","genres":"Animation Action Comedy Family Science Fiction","tagline":"His brain is off the chain."},{"title":"Ted 2","overview":"Newlywed couple Ted and Tami-Lynn want to have a baby, but in order to qualify to be a parent, Ted will have to prove he's a person in a court of law.","director":"Seth MacFarlane","genres":"Comedy","tagline":"Ted is Coming, Again."},{"title":"The Hateful Eight","overview":"Bounty hunters seek shelter from a raging blizzard and get caught up in a plot of betrayal and deception.","director":"Quentin Tarantino","genres":"Crime Drama Mystery Western","tagline":"No one comes up here without a damn good reason."},{"title":"The Hunger Games","overview":"Every year in the ruins of what was once North America, the nation of Panem forces each of its twelve districts to send a teenage boy and girl to compete in the Hunger Games.  Part twisted entertainment, part government intimidation tactic, the Hunger Games are a nationally televised event in which \u201cTributes\u201d must fight with one another until one survivor remains.  Pitted against highly-trained Tributes who have prepared for these Games their entire lives, Katniss is forced to rely upon her sharp instincts as well as the mentorship of drunken former victor Haymitch Abernathy.  If she\u2019s ever to return home to District 12, Katniss must make impossible choices in the arena that weigh survival against humanity and life against love. The world will be watching.","director":"Gary Ross","genres":"Science Fiction Adventure Fantasy","tagline":"May The Odds Be Ever In Your Favor."},{"title":"Raiders of the Lost Ark","overview":"When Dr. Indiana Jones \u2013 the tweed-suited professor who just happens to be a celebrated archaeologist \u2013 is hired by the government to locate the legendary Ark of the Covenant, he finds himself up against the entire Nazi regime.","director":"Steven Spielberg","genres":"Adventure Action","tagline":"Indiana Jones - the new hero from the creators of JAWS and STAR WARS."},{"title":"Apollo 13","overview":"The true story of technical troubles that scuttle the Apollo 13 lunar mission in 1971, risking the lives of astronaut Jim Lovell and his crew, with the failed journey turning into a thrilling saga of heroism. Drifting more than 200,000 miles from Earth, the astronauts work furiously with the ground crew to avert tragedy.","director":"Ron Howard","genres":"Drama","tagline":"Houston, we have a problem."},{"title":"Dumb and Dumber To","overview":"20 years after the dimwits set out on their first adventure, they head out in search of one of their long lost children in the hope of gaining a new kidney.","director":"Bobby Farrelly","genres":"Comedy","tagline":"The Second Parts Are More Fools"},{"title":"Oblivion","overview":"Jack Harper is one of the last few drone repairmen stationed on Earth.  Part of a massive operation to extract vital resources after decades of war with a terrifying threat known as the Scavs, Jack\u2019s mission is nearly complete.  His existence is brought crashing down when he rescues a beautiful  stranger from a downed spacecraft.  Her arrival triggers a chain of events that  forces him to question everything he knows and puts the fate of humanity in his hands.","director":"Joseph Kosinski","genres":"Action Science Fiction Adventure Mystery","tagline":"Earth is a memory worth fighting for"},{"title":"Aliens","overview":"When Ripley's lifepod is found by a salvage crew over 50 years later, she finds that terra-formers are on the very planet they found the alien species. When the company sends a family of colonists out to investigate her story, all contact is lost with the planet and colonists. They enlist Ripley and the colonial marines to return and search for answers.","director":"James Cameron","genres":"Horror Action Thriller Science Fiction","tagline":"This Time It's War"},{"title":"Grease","overview":"Australian good girl Sandy and greaser Danny fell in love over the summer. But when they unexpectedly discover they're now in the same high school, will they be able to rekindle their romance despite their eccentric friends?","director":"Randal Kleiser","genres":"Romance","tagline":"Grease is the word"},{"title":"Angels & Demons","overview":"Harvard symbologist Robert Langdon investigates a mysterious symbol seared into the chest of a murdered physicist. He discovers evidence of the unimaginable, the rebirth of an ancient secret brotherhood known as the Illuminati, the most powerful underground organization ever to walk the earth.","director":"Ron Howard","genres":"Thriller Mystery","tagline":null},{"title":"Mulan","overview":"A tomboyish girl disguises herself as a young man so she can fight with the Imperial Chinese Army against the invading Huns. With help from wise-cracking dragon Mushu, Mulan just might save her country -- and win the heart of handsome Captain Li Shang.","director":"Tony Bancroft","genres":"Animation Family Adventure","tagline":"This time, the princess saves the prince."},{"title":"The Wizard of Oz","overview":"Young Dorothy finds herself in a magical world where she makes friends with a lion, a scarecrow and a tin man as they make their way along the yellow brick road to talk with the Wizard and ask for the things they miss most in their lives. The Wicked Witch of the West is the only thing that could stop them.","director":"Victor Fleming","genres":"Adventure Family Fantasy","tagline":"We're off to see the Wizard, the wonderful Wizard of Oz!"},{"title":"The Chronicles of Narnia: The Lion, the Witch and the Wardrobe","overview":"Siblings Lucy, Edmund, Susan and Peter step through a magical wardrobe and find the land of Narnia. There, the they discover a charming, once peaceful kingdom that has been plunged into eternal winter by the evil White Witch, Jadis. Aided by the wise and magnificent lion, Aslan, the children lead Narnia into a spectacular, climactic battle to be free of the Witch's glacial powers forever.","director":"Andrew Adamson","genres":"Adventure Family Fantasy","tagline":"Evil Has Reigned For 100 Years..."},{"title":"Elysium","overview":"In the year 2159, two classes of people exist: the very wealthy who live on a pristine man-made space station called Elysium, and the rest, who live on an overpopulated, ruined Earth. Secretary Rhodes (Jodie Foster), a hard line government of\ufb01cial, will stop at nothing to enforce anti-immigration laws and preserve the luxurious lifestyle of the citizens of Elysium. That doesn\u2019t stop the people of Earth from trying to get in, by any means they can. When unlucky Max (Matt Damon) is backed into a corner, he agrees to take on a daunting mission that, if successful, will not only save his life, but could bring equality to these polarized worlds.","director":"Neill Blomkamp","genres":"Science Fiction Action Drama Thriller","tagline":"He can save us all."},{"title":"Shrek","overview":"It ain't easy bein' green -- especially if you're a likable (albeit smelly) ogre named Shrek. On a mission to retrieve a gorgeous princess from the clutches of a fire-breathing dragon, Shrek teams up with an unlikely compatriot -- a wisecracking donkey.","director":"Andrew Adamson","genres":"Adventure Animation Comedy Family Fantasy","tagline":"The greatest fairy tale never told."},{"title":"How to Train Your Dragon","overview":"As the son of a Viking leader on the cusp of manhood, shy Hiccup Horrendous Haddock III faces a rite of passage: he must kill a dragon to prove his warrior mettle. But after downing a feared dragon, he realizes that he no longer wants to destroy it, and instead befriends the beast \u2013 which he names Toothless \u2013 much to the chagrin of his warrior father","director":"Chris Sanders","genres":"Fantasy Adventure Animation Family","tagline":"One adventure will change two worlds"},{"title":"Blade II","overview":"A rare mutation has occurred within the vampire community - The Reaper. A vampire so consumed with an insatiable bloodlust that they prey on vampires as well as humans, transforming victims who are unlucky enough to survive into Reapers themselves. Blade is asked by the Vampire Nation for his help in preventing a nightmare plague that would wipe out both humans and vampires.","director":"Guillermo del Toro","genres":"Fantasy Horror Action Thriller","tagline":"Faster. Sharper. Deadlier."},{"title":"Indiana Jones and the Temple of Doom","overview":"After arriving in India, Indiana Jones is asked by a desperate village to find a mystical stone. He agrees \u2013 and stumbles upon a secret cult plotting a terrible plan in the catacombs of an ancient palace.","director":"Steven Spielberg","genres":"Adventure Action","tagline":"If adventure has a name... it must be Indiana Jones."},{"title":"Reservoir Dogs","overview":"A botched robbery indicates a police informant, and the pressure mounts in the aftermath at a warehouse. Crime begets violence as the survivors -- veteran Mr. White, newcomer Mr. Orange, psychopathic parolee Mr. Blonde, bickering weasel Mr. Pink and Nice Guy Eddie -- unravel.","director":"Quentin Tarantino","genres":"Crime Thriller","tagline":"Every dog has his day."},{"title":"Troy","overview":"In year 1250 B.C. during the late Bronze age, two emerging nations begin to clash. Paris, the Trojan prince, convinces Helen, Queen of Sparta, to leave her husband Menelaus, and sail with him back to Troy. After Menelaus finds out that his wife was taken by the Trojans, he asks his brother Agamemnom to help him get her back. Agamemnon sees this as an opportunity for power. So they set off with 1,000 ships holding 50,000 Greeks to Troy. With the help of Achilles, the Greeks are able to fight the never before defeated Trojans.","director":"Wolfgang Petersen","genres":"Adventure Drama War","tagline":"For passion. For honor. For destiny. For victory. For love."},{"title":"RoboCop","overview":"In RoboCop, the year is 2028 and multinational conglomerate OmniCorp is at the center of robot technology.  Overseas, their drones have been used by the military for years, but have been forbidden for law enforcement in America.  Now OmniCorp wants to bring their controversial technology to the home front, and they see a golden opportunity to do it.  When Alex Murphy \u2013 a loving husband, father and good cop doing his best to stem the tide of crime and corruption in Detroit \u2013 is critically injured, OmniCorp sees their chance to build a part-man, part-robot police officer.  OmniCorp envisions a RoboCop in every city and even more billions for their shareholders, but they never counted on one thing: there is still a man inside the machine.","director":"Jos\\u00e9 Padilha","genres":"Action Science Fiction","tagline":"We've got the future under control."},{"title":"WALL\u00b7E","overview":"WALL\u00b7E is the last robot left on an Earth that has been overrun with garbage and all humans have fled to outer space. For 700 years he has continued to try and clean up the mess, but has developed some rather interesting human-like qualities. When a ship arrives with a sleek new type of robot, WALL\u00b7E thinks he's finally found a friend and stows away on the ship when it leaves.","director":"Andrew Stanton","genres":"Animation Family","tagline":"An adventure beyond the ordinar-E."},{"title":"Sausage Party","overview":"Sausage Party, the first R-rated CG animated movie, is about one sausage leading a group of supermarket products on a quest to discover the truth about their existence and what really happens when they become chosen to leave the grocery store.","director":"Conrad Vernon","genres":"Adventure Animation Comedy Fantasy","tagline":"Always use condiments"},{"title":"Ghostbusters","overview":"Following a ghost invasion of Manhattan, paranormal enthusiasts Erin Gilbert and Abby Yates, nuclear engineer Jillian Holtzmann, and subway worker Patty Tolan band together to stop the otherworldly threat.","director":"Paul Feig","genres":"Action Fantasy Comedy","tagline":"Who You Gonna Call?"},{"title":"Die Hard","overview":"NYPD cop, John McClane's plan to reconcile with his estranged wife is thrown for a serious loop when minutes after he arrives at her office, the entire building is overtaken by a group of terrorists. With little help from the LAPD, wisecracking McClane sets out to single-handedly rescue the hostages and bring the bad guys down.","director":"John McTiernan","genres":"Action Thriller","tagline":"40 Stories. Twelve Terrorists. One Cop."},{"title":"Room","overview":"Jack is a young boy of 5 years old who has lived all his life in one room. He believes everything within it are the only real things in the world. But what will happen when his Ma suddenly tells him that there are other things outside of Room?","director":"Lenny Abrahamson","genres":"Drama Thriller","tagline":"Love knows no boundaries"},{"title":"Self\/less","overview":"An extremely wealthy elderly man dying from cancer undergoes a radical medical procedure that transfers his consciousness to the body of a healthy young man but everything may not be as good as it seems when he starts to uncover the mystery of the body's origins and the secret organization that will kill to keep its secrets.","director":"Tarsem Singh","genres":"Science Fiction Mystery Thriller","tagline":"God Created Man. Man Created Immortality."},{"title":"Sin City","overview":"Welcome to Sin City. This town beckons to the tough, the corrupt, the brokenhearted. Some call it dark\u2026 Hard-boiled. Then there are those who call it home \u2014 Crooked cops, sexy dames, desperate vigilantes. Some are seeking revenge, others lust after redemption, and then there are those hoping for a little of both. A universe of unlikely and reluctant heroes still trying to do the right thing in a city that refuses to care.","director":"Robert Rodriguez","genres":"Action Thriller Crime","tagline":"Walk down the right back alley in Sin City and you can find anything..."},{"title":"Minority Report","overview":"John Anderton is a top 'Precrime' cop in the late-21st century, when technology can predict crimes before they're committed. But Anderton becomes the quarry when another investigator targets him for a murder charge.","director":"Steven Spielberg","genres":"Action Thriller Science Fiction Mystery","tagline":"The system is perfect until it comes after you."},{"title":"Into the Woods","overview":"In a woods filled with magic and fairy tale characters, a baker and his wife set out to end the curse put on them by their neighbor, a spiteful witch.","director":"Rob Marshall","genres":"Fantasy Comedy Music","tagline":"Be careful what you wish for..."},{"title":"Ratatouille","overview":"A rat named Remy dreams of becoming a great French chef despite his family's wishes and the obvious problem of being a rat in a decidedly rodent-phobic profession. When fate places Remy in the sewers of Paris, he finds himself ideally situated beneath a restaurant made famous by his culinary hero, Auguste Gusteau. Despite the apparent dangers of being an unlikely - and certainly unwanted - visitor in the kitchen of a fine French restaurant, Remy's passion for cooking soon sets into motion a hilarious and exciting rat race that turns the culinary world of Paris upside down.","director":"Jan Pinkava","genres":"Animation Comedy Family Fantasy","tagline":"He's dying to become a chef."},{"title":"A Good Day to Die Hard","overview":"Iconoclastic, take-no-prisoners cop John McClane, finds himself for the first time on foreign soil after traveling to Moscow to help his wayward son Jack - unaware that Jack is really a highly-trained CIA operative out to stop a nuclear weapons heist. With the Russian underworld in pursuit, and battling a countdown to war, the two McClanes discover that their opposing methods make them unstoppable heroes.","director":"John Moore","genres":"Action Thriller","tagline":"Yippee Ki-Yay Mother Russia"},{"title":"Southpaw","overview":"Billy \"The Great\" Hope, the reigning junior middleweight boxing champion, has an impressive career, a loving wife and daughter, and a lavish lifestyle. However, when tragedy strikes, Billy hits rock bottom, losing his family, his house and his manager. He soon finds an unlikely savior in Tick Willis, a former fighter who trains the city's toughest amateur boxers. With his future on the line, Hope fights to reclaim the trust of those he loves the most.","director":"Antoine Fuqua","genres":"Action Drama","tagline":"Believe in Hope."},{"title":"Star Trek Beyond","overview":"The USS Enterprise crew explores the furthest reaches of uncharted space, where they encounter a mysterious new enemy who puts them and everything the Federation stands for to the test.","director":"Justin Lin","genres":"Action Adventure Science Fiction","tagline":null},{"title":"Ice Age: Continental Drift","overview":"Manny, Diego, and Sid embark upon another adventure after their continent is set adrift. Using an iceberg as a ship, they encounter sea creatures and battle pirates as they explore a new world.","director":"Steve Martino","genres":"Animation Comedy Adventure Family","tagline":"Manny, Diego, and Sid embark upon another adventure after their continent is set adrift."},{"title":"300","overview":"Based on Frank Miller's graphic novel, \"300\" is very loosely based the 480 B.C. Battle of Thermopylae, where the King of Sparta led his army against the advancing Persians; the battle is said to have inspired all of Greece to band together against the Persians, and helped usher in the world's first democracy.","director":"Zack Snyder","genres":"Action Adventure War","tagline":"Spartans, prepare for glory!"},{"title":"Battleship","overview":"When mankind beams a radio signal into space, a reply comes from \u2018Planet G\u2019, in the form of several alien crafts that splash down in the waters off Hawaii. Lieutenant Alex Hopper is a weapons officer assigned to the USS John Paul Jones, part of an international naval coalition which becomes the world's last hope for survival as they engage the hostile alien force of unimaginable strength. While taking on the invaders, Hopper must also try to live up to the potential his brother, and his fianc\u00e9e's father, Admiral Shane, expect of him.","director":"Peter Berg","genres":"Thriller Action Adventure Science Fiction","tagline":"The Battle for Earth Begins at Sea"},{"title":"Watchmen","overview":"In a gritty and alternate 1985 the glory days of costumed vigilantes have been brought to a close by a government crackdown, but after one of the masked veterans is brutally murdered an investigation into the killer is initiated. The reunited heroes set out to prevent their own destruction, but in doing so uncover a sinister plot that puts all of humanity in grave danger.","director":"Zack Snyder","genres":"Action Mystery Science Fiction","tagline":"Justice is coming to all of us.  No matter what we do."},{"title":"Monty Python and the Holy Grail","overview":"King Arthur, accompanied by his squire, recruits his Knights of the Round Table, including Sir Bedevere the Wise, Sir Lancelot the Brave, Sir Robin the Not-Quite-So-Brave-As-Sir-Lancelot and Sir Galahad the Pure. On the way, Arthur battles the Black Knight who, despite having had all his limbs chopped off, insists he can still fight. They reach Camelot, but Arthur decides not  to enter, as \"it is a silly place\".","director":"Terry Gilliam","genres":"Adventure Comedy Fantasy","tagline":"And now! At Last! Another film completely different from some of the other films which aren't quite the same as this one is."},{"title":"Paper Towns","overview":"Quentin Jacobsen has spent a lifetime loving the magnificently adventurous Margo Roth Spiegelman from afar. So when she cracks open a window and climbs back into his life-dressed like a ninja and summoning him for an ingenious campaign of revenge-he follows. After their all-nighter ends and a new day breaks, Q arrives at school to discover that Margo, always an enigma, has now become a mystery. But Q soon learns that there are clues-and they're for him. Urged down a disconnected path, the closer he gets, the less Q sees of the girl he thought he knew.","director":"Jake Schreier","genres":"Drama Mystery Romance","tagline":"Get Lost. Get Found."},{"title":"Chronicle","overview":"Three high school students make an incredible discovery, leading to their developing uncanny powers beyond their understanding. As they learn to control their abilities and use them to their advantage, their lives start to spin out of control, and their darker sides begin to take over.","director":"Josh Trank","genres":"Science Fiction Drama Thriller","tagline":"What are you capable of?"},{"title":"Dracula Untold","overview":"Vlad Tepes is a great hero, but when he learns the Sultan is preparing for battle and needs to form an army of 1,000 boys, including Vlad's son, he vows to find a way to protect his family. Vlad turns to dark forces in order to get the power to destroy his enemies and agrees to go from hero to monster as he's turned into the mythological vampire Dracula.","director":"Gary Shore","genres":"Horror Action Drama Fantasy War","tagline":"Every bloodline has a beginning"},{"title":"Snowpiercer","overview":"In a future where a failed global-warming experiment kills off most life on the planet, a class system evolves aboard the Snowpiercer, a train that travels around the globe via a perpetual-motion engine.","director":"Bong Joon-ho","genres":"Action Science Fiction Drama","tagline":"AD 2031, the passengers in the train are the only survivors on Earth."},{"title":"The Croods","overview":"The Croods is a prehistoric comedy adventure that follows the world's first family as they embark on a journey of a lifetime when the cave that has always shielded them from danger is destroyed. Traveling across a spectacular landscape, the Croods discover an incredible new world filled with fantastic creatures -- and their outlook is changed forever.","director":"Chris Sanders","genres":"Adventure Animation Comedy Family Fantasy","tagline":"Meet the first modern family."},{"title":"From Dusk Till Dawn","overview":"Seth Gecko and his younger brother Richard are on the run after a bloody bank robbery in Texas. They escape across the border into Mexico and will be home-free the next morning, when they pay off the local kingpin. They just have to survive 'from dusk till dawn' at the rendezvous point, which turns out to be a Hell of a strip joint.","director":"Robert Rodriguez","genres":"Horror Action Thriller Crime","tagline":"One night is all that stands between them and freedom. But it's going to be a hell of a night."},{"title":"The Usual Suspects","overview":"Held in an L.A. interrogation room, Verbal Kint attempts to convince the feds that a mythic crime lord, Keyser Soze, not only exists, but was also responsible for drawing him and his four partners into a multi-million dollar heist that ended with an explosion in San Pedro harbor \u2013 leaving few survivors. Verbal lures his interrogators with an incredible story of the crime lord's almost supernatural prowess.","director":"Bryan Singer","genres":"Drama Crime Thriller","tagline":"Five Criminals. One Line Up. No Coincidence."},{"title":"Carrie","overview":"A reimagining of the classic horror tale about Carrie White, a shy girl outcast by her peers and sheltered by her deeply religious mother, who unleashes telekinetic terror on her small town after being pushed too far at her senior prom.","director":"Kimberly Peirce","genres":"Drama Horror","tagline":"Know her name. Fear her power."},{"title":"Saw","overview":"Obsessed with teaching his victims the value of life, a deranged, sadistic serial killer abducts the morally wayward. Once captured, they must face impossible choices in a horrific game of survival. The victims must fight to win their lives back, or die trying...","director":"James Wan","genres":"Horror Mystery Crime","tagline":"Live or die. Make your choice."},{"title":"GoodFellas","overview":"The true story of Henry Hill, a half-Irish, half-Sicilian Brooklyn kid who is adopted by neighbourhood gangsters at an early age and climbs the ranks of a Mafia family under the guidance of Jimmy Conway.","director":"Martin Scorsese","genres":"Drama Crime","tagline":"Three Decades of Life in the Mafia."},{"title":"Seventh Son","overview":"John Gregory, who is a seventh son of a seventh son and also the local spook, has protected the country from witches, boggarts, ghouls and all manner of things that go bump in the night. However John is not young anymore, and has been seeking an apprentice to carry on his trade. Most have failed to survive. The last hope is a young farmer's son named Thomas Ward. Will he survive the training to become the spook that so many others couldn't?","director":"Sergei Bodrov","genres":"Adventure Fantasy","tagline":"When darkness falls, the son will rise. When the son falls, the dark knight will rise."},{"title":"Silver Linings Playbook","overview":"After spending eight months in a mental institution, a former teacher moves back in with his parents and tries to reconcile with his ex-wife.","director":"David O. Russell","genres":"Drama Comedy Romance","tagline":"Watch For The Signs"},{"title":"Trainspotting","overview":"Renton, deeply immersed in the Edinburgh drug scene, tries to clean up and get out, despite the allure of the drugs and influence of friends.","director":"Danny Boyle","genres":"Drama Crime","tagline":"Choose life."},{"title":"Home","overview":"When Earth is taken over by the overly-confident Boov, an alien race in search of a new place to call home, all humans are promptly relocated, while all Boov get busy reorganizing the planet. But when one resourceful girl, Tip, manages to avoid capture, she finds herself the accidental accomplice of a banished Boov named Oh. The two fugitives realize there\u2019s a lot more at stake than intergalactic relations as they embark on the road trip of a lifetime.","director":"Tim Johnson","genres":"Fantasy Comedy Animation Science Fiction Family","tagline":"Worlds Collide"},{"title":"The Departed","overview":"To take down South Boston's Irish Mafia, the police send in one of their own to infiltrate the underworld, not realizing the syndicate has done likewise. While an undercover cop curries favor with the mob kingpin, a career criminal rises through the police ranks. But both sides soon discover there's a mole among them.","director":"Martin Scorsese","genres":"Drama Thriller Crime","tagline":"Lies. Betrayal. Sacrifice. How far will you take it?"},{"title":"Warcraft","overview":"The peaceful realm of Azeroth stands on the brink of war as its civilization faces a fearsome race of invaders: orc warriors fleeing their dying home to colonize another. As a portal opens to connect the two worlds, one army faces destruction and the other faces extinction. From opposing sides, two heroes are set on a collision course that will decide the fate of their family, their people, and their home.","director":"Duncan Jones","genres":"Action Adventure Fantasy","tagline":"Two worlds. One home."},{"title":"District 9","overview":"Aliens land in South Africa and, with their ship totally disabled,  have no way home. Years later, after living in a slum and wearing out their welcome the 'Non-Humans' are being moved to a new tent city overseen by Multi-National United (MNU).","director":"Neill Blomkamp","genres":"Science Fiction","tagline":"You are not welcome here."},{"title":"Mission: Impossible III","overview":"Retired from active duty to train new IMF agents, Ethan Hunt is called back into action to confront sadistic arms dealer, Owen Davian. Hunt must try to protect his girlfriend while working with his new team to complete the mission.","director":"J.J. Abrams","genres":"Adventure Action Thriller","tagline":"The Mission Begins 05:05:06."},{"title":"First Blood","overview":"When former Green Beret John Rambo is harassed by local law enforcement and arrested for vagrancy, the Vietnam vet snaps, runs for the hills and rat-a-tat-tats his way into the action-movie hall of fame. Hounded by a relentless sheriff, Rambo employs heavy-handed guerilla tactics to shake the cops off his tail.","director":"Ted Kotcheff","genres":"Action Adventure Thriller War","tagline":"This time he's fighting for his life."},{"title":"Nerve","overview":"Industrious high school senior, Vee Delmonico, has had it with living life on the sidelines. When pressured by friends to join the popular online game Nerve, Vee decides to sign up for just one dare in what seems like harmless fun. But as she finds herself caught up in the thrill of the adrenaline-fueled competition partnered with a mysterious stranger, the game begins to take a sinister turn with increasingly dangerous acts, leading her into a high stakes finale that will determine her entire future.","director":"Henry Joost","genres":"Mystery Adventure Crime","tagline":"Are you a watcher or a player?"},{"title":"The Game","overview":"In honor of his birthday, San Francisco banker Nicholas Van Orton, a financial genius and a coldhearted loner, receives an unusual present from his younger brother, Conrad -- a gift certificate to play a unique kind of game. In nearly a nanosecond, Nicholas finds himself consumed by a dangerous set of ever-changing rules, unable to distinguish where the charade ends and reality begins.","director":"David Fincher","genres":"Drama Thriller Mystery","tagline":"What do you get for the man who has everything?"},{"title":"The Incredible Hulk","overview":"Scientist Bruce Banner scours the planet for an antidote to the unbridled force of rage within him: the Hulk. But when the military masterminds who dream of exploiting his powers force him back to civilization, he finds himself coming face to face with a new, deadly foe.","director":"Louis Leterrier","genres":"Science Fiction Action Adventure","tagline":"You'll like him when he's angry."},{"title":"The Italian Job","overview":"Charlie Croker pulled off the crime of a lifetime. The one thing that he didn't plan on was being double-crossed. Along with a drop-dead gorgeous safecracker, Croker and his team take off to re-steal the loot and end up in a pulse-pounding, pedal-to-the-metal chase that careens up, down, above and below the streets of Los Angeles.","director":"F. Gary Gray","genres":"Action Crime","tagline":"Get in. Get out. Get even."},{"title":"21 Jump Street","overview":"In high school, Schmidt was a dork and Jenko was the popular jock. After graduation, both of them joined the police force and ended up as partners riding bicycles in the city park. Since they are young and look like high school students, they are assigned to an undercover unit to infiltrate a drug ring that is supplying high school students synthetic drugs.","director":"Phil Lord","genres":"Action Comedy Crime","tagline":"They thought the streets were mean. Then they went back to high school."},{"title":"Jason Bourne","overview":"The most dangerous former operative of the CIA is drawn out of hiding to uncover hidden truths about his past.","director":"Paul Greengrass","genres":"Action Thriller","tagline":"You know his name"},{"title":"Spring Breakers","overview":"After four college girls rob a restaurant to fund their spring break in Florida, they get entangled with a weird dude with his own criminal agenda.","director":"Harmony Korine","genres":"Drama Crime","tagline":"A little sun can bring out your dark side."},{"title":"The Princess and the Frog","overview":"A waitress, desperate to fulfill her dreams as a restaurant owner, is set on a journey to turn a frog prince back into a human being, but she has to do face the same problem after she kisses him.","director":"Ron Clements","genres":"Romance Family Animation Music","tagline":"Every Love Story Begins With a Kiss..."},{"title":"Wreck-It Ralph","overview":"Wreck-It Ralph is the 9-foot-tall, 643-pound villain of an arcade video game named Fix-It Felix Jr., in which the game's titular hero fixes buildings that Ralph destroys. Wanting to prove he can be a good guy and not just a villain, Ralph escapes his game and lands in Hero's Duty, a first-person shooter where he helps the game's hero battle against alien invaders. He later enters Sugar Rush, a kart racing game set on tracks made of candies, cookies and other sweets. There, Ralph meets Vanellope von Schweetz who has learned that her game is faced with a dire threat that could affect the entire arcade, and one that Ralph may have inadvertently started.","director":"Rich Moore","genres":"Family Animation Comedy Adventure","tagline":"The story of a regular guy just looking for a little wreck-ognition."},{"title":"Prince of Persia: The Sands of Time","overview":"A rogue prince reluctantly joins forces with a mysterious princess and together, they race against dark forces to safeguard an ancient dagger capable of releasing the Sands of Time \u2013 gift from the gods that can reverse time and allow its possessor to rule the world.","director":"Mike Newell","genres":"Adventure Fantasy Action Romance","tagline":"Defy the Future"},{"title":"Argo","overview":"As the Iranian revolution reaches a boiling point, a CIA 'exfiltration' specialist concocts a risky plan to free six Americans who have found shelter at the home of the Canadian ambassador.","director":"Ben Affleck","genres":"Drama Thriller","tagline":"The movie was fake. The mission was real."},{"title":"London Has Fallen","overview":"In London for the Prime Minister's funeral, Mike Banning discovers a plot to assassinate all the attending world leaders.","director":"Babak Najafi","genres":"Action Crime Thriller","tagline":"The world's leaders have assembled. So have their enemies."},{"title":"Rise of the Guardians","overview":"When an evil spirit known as Pitch lays down the gauntlet to take over the world, the immortal Guardians must join forces for the first time to protect the hopes, beliefs and imagination of children all over the world.","director":"Peter Ramsey","genres":"Fantasy Animation Family","tagline":"You better believe."},{"title":"Straight Outta Compton","overview":"In 1987, five young men, using brutally honest rhymes and hardcore beats, put their frustration and anger about life in the most dangerous place in America into the most powerful weapon they had: their music.  Taking us back to where it all began, Straight Outta Compton tells the true story of how these cultural rebels\u2014armed only with their lyrics, swagger, bravado and raw talent\u2014stood up to the authorities that meant to keep them down and formed the world\u2019s most dangerous group, N.W.A.  And as they spoke the truth that no one had before and exposed life in the hood, their voice ignited a social revolution that is still reverberating today.","director":"F. Gary Gray","genres":"Drama Music","tagline":"The Story of N.W.A."},{"title":"Hotel Transylvania 2","overview":"When the old-old-old-fashioned vampire Vlad arrives at the hotel for an impromptu family get-together, Hotel Transylvania is in for a collision of supernatural old-school and modern day cool.","director":"Genndy Tartakovsky","genres":"Animation Comedy Family","tagline":"They're back to raise a little terror"},{"title":"50 First Dates","overview":"Henry is a player skilled at seducing women. But when this veterinarian meets Lucy, a girl with a quirky problem when it comes to total recall, he realizes it's possible to fall in love all over again\u2026and again, and again. That's because the delightful Lucy has no short-term memory, so Henry must woo her day after day until he finally sweeps her off her feet.","director":"Peter Segal","genres":"Comedy Romance","tagline":"Imagine having to win over the girl of your dreams... every friggin' day."},{"title":"A Walk Among the Tombstones","overview":"Private investigator Matthew Scudder is hired by a drug kingpin to find out who kidnapped and murdered his wife.","director":"Scott Frank","genres":"Crime Drama Mystery Thriller","tagline":"Some people are afraid of all the wrong things"},{"title":"The Iron Giant","overview":"In the small town of Rockwell, Maine in October 1957, a giant metal machine befriends a nine-year-old boy and ultimately finds its humanity by unselfishly saving people from their own fears and prejudices.","director":"Brad Bird","genres":"Adventure Animation Family Fantasy Science Fiction","tagline":"It came from outer space!"},{"title":"King Kong","overview":"In 1933 New York, an overly ambitious movie producer coerces his cast and hired ship crew to travel to mysterious Skull Island, where they encounter Kong, a giant ape who is immediately smitten with the leading lady.","director":"Peter Jackson","genres":"Adventure Drama Action","tagline":"The eighth wonder of the world."},{"title":"Donnie Darko","overview":"After narrowly escaping a bizarre accident, a troubled teenager is plagued by visions of a large bunny rabbit that manipulates him to commit a series of crimes.","director":"Richard Kelly","genres":"Fantasy Drama Mystery","tagline":"You can never go too far"},{"title":"The Great Gatsby","overview":"An adaptation of F. Scott Fitzgerald's Long Island-set novel, where Midwesterner Nick Carraway is lured into the lavish world of his neighbor, Jay Gatsby. Soon enough, however, Carraway will see through the cracks of Gatsby's nouveau riche existence, where obsession, madness, and tragedy await.","director":"Baz Luhrmann","genres":"Drama Romance","tagline":"Reserving judgments is a matter of infinite hope... I come to the admission that it has a limit."},{"title":"The Theory of Everything","overview":"The Theory of Everything is the extraordinary story of one of the world\u2019s greatest living minds, the renowned astrophysicist Stephen Hawking, who falls deeply in love with fellow Cambridge student Jane Wilde.","director":"James Marsh","genres":"Drama Romance","tagline":"His Mind Changed Our World. Her Love Changed His."},{"title":"Percy Jackson & the Olympians: The Lightning Thief","overview":"Accident prone teenager, Percy discovers he's actually a demi-God, the son of Poseidon, and he is needed when Zeus' lightning is stolen. Percy must master his new found skills in order to prevent a war between the Gods that could devastate the entire world.","director":"Chris Columbus","genres":"Adventure Fantasy Family","tagline":"Worlds Collide"},{"title":"The Expendables 3","overview":"Barney, Christmas and the rest of the team comes face-to-face with Conrad Stonebanks, who years ago co-founded The Expendables with Barney. Stonebanks subsequently became a ruthless arms trader and someone who Barney was forced to kill\u2026 or so he thought. Stonebanks, who eluded death once before, now is making it his mission to end The Expendables -- but Barney has other plans. Barney decides that he has to fight old blood with new blood, and brings in a new era of Expendables team members, recruiting individuals who are younger, faster and more tech-savvy. The latest mission becomes a clash of classic old-school style versus high-tech expertise in the Expendables\u2019 most personal battle yet.","director":"Patrick Hughes","genres":"Action Adventure Thriller","tagline":"New team. New attitude. New mission."},{"title":"Ocean's Eleven","overview":"Less than 24 hours into his parole, charismatic thief Danny Ocean is already rolling out his next plan: In one night, Danny's hand-picked crew of specialists will attempt to steal more than $150 million from three Las Vegas casinos. But to score the cash, Danny risks his chances of reconciling with ex-wife, Tess.","director":"Steven Soderbergh","genres":"Thriller Crime","tagline":"Are you in or out?"},{"title":"The Shallows","overview":"An injured surfer stranded on a buoy needs to get back to shore, but the great white shark stalking her might have other ideas.","director":"Jaume Collet-Serra","genres":"Horror Drama Thriller","tagline":"What was once in the deep is now in the shallows."},{"title":"Fantastic 4: Rise of the Silver Surfer","overview":"The Fantastic Four return to the big screen as a new and all powerful enemy threatens the Earth. The seemingly unstoppable 'Silver Surfer', but all is not what it seems and there are old and new enemies that pose a greater threat than the intrepid superheroes realize.","director":"Tim Story","genres":"Adventure Fantasy Action Thriller","tagline":"Discover the secret of the Surfer."},{"title":"American Pie","overview":"At a high-school party, four friends find that losing their collective virginity isn't as easy as they had thought. But they still believe that they need to do so before college. To motivate themselves, they enter a pact to all \"score.\" by their senior prom.","director":"Chris Weitz","genres":"Comedy Romance","tagline":"There's nothing like your first piece."},{"title":"Princess Mononoke","overview":"Ashitaka, a prince of the disappearing Ainu tribe, is cursed by a demonized boar god and must journey to the west to find a cure. Along the way, he encounters San, a young human woman fighting to protect the forest, and Lady Eboshi, who is trying to destroy it. Ashitaka must find a way to bring balance to this conflict.","director":"Hayao Miyazaki","genres":"Adventure Fantasy Animation","tagline":"The Fate Of The World Rests On The Courage Of One Warrior."},{"title":"Braveheart","overview":"Enraged at the slaughter of Murron, his new bride and childhood love, Scottish warrior William Wallace slays a platoon of the local English lord's soldiers. This leads the village to revolt and, eventually, the entire country to rise up against English rule.","director":"Mel Gibson","genres":"Action Drama History War","tagline":"Every man dies. Not every man truly lives."},{"title":"Memento","overview":"Suffering short-term memory loss after a head injury, Leonard Shelby embarks on a grim quest to find the lowlife who murdered his wife in this gritty, complex thriller that packs more knots than a hangman's noose. To carry out his plan, Shelby snaps Polaroids of people and places, jotting down contextual notes on the backs of photos to aid in his search and jog his memory. He even tattoos his own body in a desperate bid to remember.","director":"Christopher Nolan","genres":"Mystery Thriller","tagline":"Some memories are best forgotten."},{"title":"The Huntsman: Winter's War","overview":"As two evil sisters prepare to conquer the land, two renegades\u2014Eric the Huntsman, who aided Snow White in defeating Ravenna in Snowwhite and the Huntsman, and his forbidden lover, Sara\u2014set out to stop them.","director":"Cedric Nicolas-Troyan","genres":"Action Adventure Drama","tagline":"The story before Snow White"},{"title":"Independence Day","overview":"On July 2, a giant alien mothership enters orbit around Earth and deploys several dozen saucer-shaped 'destroyer' spacecraft that quickly lay waste to major cities around the planet. On July 3, the United States conducts a coordinated counterattack that fails. On July 4, a plan is devised to gain access to the interior of the alien mothership in space, in order to plant a nuclear missile.","director":"Roland Emmerich","genres":"Action Adventure Science Fiction","tagline":"Earth. Take a good look. It might be your last."},{"title":"The Curious Case of Benjamin Button","overview":"Tells the story of Benjamin Button, a man who starts aging backwards with bizarre consequences.","director":"David Fincher","genres":"Fantasy Drama Thriller Mystery Romance","tagline":"Life isn't measured in minutes, but in moments."},{"title":"Everest","overview":"Inspired by the incredible events surrounding a treacherous attempt to reach the summit of the world's highest mountain, \"Everest\" documents the awe-inspiring journey of two different expeditions challenged beyond their limits by one of the fiercest snowstorms ever encountered by mankind. Their mettle tested by the harshest of elements found on the planet, the climbers will face nearly impossible obstacles as a lifelong obsession becomes a breathtaking struggle for survival.","director":"Baltasar Korm\\u00e1kur","genres":"Adventure Drama","tagline":"The Storm Awaits."},{"title":"In Time","overview":"In the not-too-distant future the aging gene has been switched off. To avoid overpopulation, time has become the currency and the way people pay for luxuries and necessities. The rich can live forever, while the rest try to negotiate for their immortality. A poor young man who comes into a fortune of time, though too late to help his mother from dying. He ends up on the run from a corrupt police force known as 'time keepers'.","director":"Andrew Niccol","genres":"Action Thriller Science Fiction","tagline":"Time Is Power"},{"title":"Annabelle","overview":"John Form has found the perfect gift for his expectant wife, Mia - a beautiful, rare vintage doll in a pure white wedding dress. But Mia's delight with Annabelle doesn't last long. On one horrific night, their home is invaded by members of a satanic cult, who violently attack the couple. Spilled blood and terror are not all they leave behind. The cultists have conjured an entity so malevolent that nothing they did will compare to the sinister conduit to the damned that is now... Annabelle.","director":"John R. Leonetti","genres":"Horror","tagline":"Before the Conjuring, there was Annabelle."},{"title":"The Mummy: Tomb of the Dragon Emperor","overview":"Archaeologist Rick O'Connell travels to China, pitting him against an emperor from the 2,000-year-old Han dynasty who's returned from the dead to pursue a quest for world domination. This time, O'Connell enlists the help of his wife and son to quash the so-called 'Dragon Emperor' and his abuse of supernatural power.","director":"Rob Cohen","genres":"Adventure Action Fantasy","tagline":"A New Evil Awakens."},{"title":"Toy Story 3","overview":"Woody, Buzz, and the rest of Andy's toys haven't been played with in years. With Andy about to go to college, the gang find themselves accidentally left at a nefarious day care center. The toys must band together to escape and return home to Andy.","director":"Lee Unkrich","genres":"Animation Family Comedy","tagline":"No toy gets left behind."},{"title":"Mary Poppins","overview":"The movie combines a diverting story, songs, color and sequences of live action blended with the movements of animated figures. Mary Poppins is a kind of Super-nanny who flies in with her umbrella in response to the request of the Banks children and proceeds to put things right with the aid of her rather extraordinary magical powers before flying off again.","director":"Robert Stevenson","genres":"Comedy Family Fantasy","tagline":"It's supercalifragilisticexpialidocious!"},{"title":"GoldenEye","overview":"James Bond must unmask the mysterious head of the Janus Syndicate and prevent the leader from utilizing the GoldenEye weapons system to inflict devastating revenge on Britain.","director":"Martin Campbell","genres":"Adventure Action Thriller","tagline":"No limits. No fears. No substitutes."},{"title":"Focus","overview":"Nicky, a veteran con artist, takes a novice named Jess under his wing. While Nicky teaches Jess the tricks of the trade, the pair become romantically involved; but, when Jess gets uncomfortably close, Nicky ends their relationship. Three years later, Nicky is in Buenos Aires working a very dangerous scheme when Jess -- now an accomplished femme fatale -- unexpectedly shows up. Her appearance throws Nicky for a loop at a time when he cannot afford to be off his game.","director":"Glenn Ficarra","genres":"Romance Comedy Crime Drama","tagline":"Never Drop The Con."},{"title":"The Lego Movie","overview":"An ordinary Lego mini-figure, mistakenly thought to be the extraordinary MasterBuilder, is recruited to join a quest to stop an evil Lego tyrant from gluing the universe together.","director":"Phil Lord","genres":"Adventure Animation Comedy Family Fantasy","tagline":"The story of a nobody who saved everybody."},{"title":"Dallas Buyers Club","overview":"Loosely based on the true-life tale of Ron Woodroof, a drug-taking, women-loving, homophobic man who in 1986 was diagnosed with HIV\/AIDS and given thirty days to live.","director":"Jean-Marc Vall\\u00e9e","genres":"Drama History","tagline":"Sometimes it takes a hustler to change the world"},{"title":"Olympus Has Fallen","overview":"When the White House (Secret Service Code: \"Olympus\") is captured by a terrorist mastermind and the President is kidnapped, disgraced former Presidential guard Mike Banning finds himself trapped within the building. As the national security team scrambles to respond, they are forced to rely on Banning's inside knowledge to help retake the White House, save the President and avert an even bigger disaster.","director":"Antoine Fuqua","genres":"Action Thriller","tagline":"When our flag falls our nation will rise."},{"title":"G.I. Joe: Retaliation","overview":"Framed for crimes against the country, the G.I. Joe team is terminated by Presidential order. This forces the G.I. Joes into not only fighting their mortal enemy Cobra; they are forced to contend with threats from within the government that jeopardize their very existence.","director":"Jon M. Chu","genres":"Adventure Action Science Fiction Thriller","tagline":null},{"title":"12 Angry Men","overview":"The defense and the prosecution have rested and the jury is filing into the jury room to decide if a young Spanish-American is guilty or innocent of murdering his father. What begins as an open and shut case soon becomes a mini-drama of each of the jurors' prejudices and preconceptions about the trial, the accused, and each other.","director":"Sidney Lumet","genres":"Drama","tagline":"Life is in their hands. Death is on their minds."},{"title":"Slumdog Millionaire","overview":"Jamal Malik is an impoverished Indian teen who becomes a contestant on the Hindi version of \u2018Who Wants to Be a Millionaire?\u2019 but, after he wins, he is suspected of cheating.","director":"Danny Boyle","genres":"Drama Romance","tagline":"What does it take to find a lost love? A. Money, B. Luck, C. Smarts, D. Destiny"},{"title":"A Beautiful Mind","overview":"At Princeton University, John Nash struggles to make a worthwhile contribution to serve as his legacy to the world of mathematics. He finally makes a revolutionary breakthrough that will eventually earn him the Nobel Prize. After graduate school he turns to teaching, becoming romantically involved with his student Alicia. Meanwhile the government asks his help with breaking Soviet codes, which soon gets him involved in a terrifying conspiracy plot. Nash grows more and more paranoid until a discovery that turns his entire world upside down. Now it is only with Alicia's help that he will be able to recover his mental strength and regain his status as the great mathematician we know him as today..","director":"Ron Howard","genres":"Drama Romance","tagline":"I need to believe that something extra ordinary is possible..."},{"title":"Source Code","overview":"Decorated soldier Captain Colter Stevens wakes up in the body of an unknown man, discovering he's involved in a mission to find the bomber of a Chicago commuter train. He learns he's part of a top-secret experimental program that enables him to experience the final 8 minutes of another person's life. Colter re-lives the train incident over and over again, gathering more clues each time. But can he discover who is responsible for the attack before the next one happens?","director":"Duncan Jones","genres":"Thriller Science Fiction Mystery","tagline":"Make Every Second Count"},{"title":"The Godfather: Part III","overview":"In the midst of trying to legitimize his business dealings in 1979 New York and Italy, aging mafia don, Michael Corleone seeks forgiveness for his sins while taking a young protege under his wing.","director":"Francis Ford Coppola","genres":"Crime Drama Thriller","tagline":"All the power on earth can't change destiny."},{"title":"Batman Returns","overview":"Having defeated the Joker, Batman now faces the Penguin - a warped and deformed individual who is intent on being accepted into Gotham society. Crooked businessman Max Schreck is coerced into helping him become Mayor of Gotham and they both attempt to expose Batman in a different light. Selina Kyle, Max's secretary, is thrown from the top of a building and is transformed into Catwoman - a mysterious figure who has the same personality disorder as Batman. Batman must attempt to clear his name, all the time deciding just what must be done with the Catwoman.","director":"Tim Burton","genres":"Action Fantasy","tagline":"The Bat, the Cat, the Penguin."},{"title":"Transcendence","overview":"Two leading computer scientists work toward their goal of Technological Singularity,  as a radical anti-technology organization fights to prevent them from creating a world where computers can transcend the abilities of the human brain.","director":"Wally Pfister","genres":"Thriller Science Fiction Drama Mystery","tagline":"Yesterday, Dr. Will Caster was only human..."},{"title":"Top Gun","overview":"For Lieutenant Pete 'Maverick' Mitchell and his friend and Co-Pilot Nick 'Goose' Bradshaw being accepted into an elite training school for fighter pilots is a dream come true.  A tragedy, as well as personal demons, threaten Pete's dreams of becoming an Ace pilot.","director":"Tony Scott","genres":"Action Romance War","tagline":"Up there with the best of the best."},{"title":"National Treasure","overview":"Modern treasure hunters, led by archaeologist Ben Gates, search for a chest of riches rumored to have been stashed away by George Washington, Thomas Jefferson and Benjamin Franklin during the Revolutionary War. The chest's whereabouts may lie in secret clues embedded in the Constitution and the Declaration of Independence, and Gates is in a race to find the gold before his enemies do.","director":"Jon Turteltaub","genres":"Adventure Action Thriller Mystery","tagline":"The greatest adventure history has ever revealed."},{"title":"Taxi Driver","overview":"A mentally unstable Vietnam War veteran works as a night-time taxi driver in New York City where the perceived decadence and sleaze feeds his urge for violent action, attempting to save a preadolescent prostitute in the process.","director":"Martin Scorsese","genres":"Crime Drama","tagline":"On every street in every city, there's a nobody who dreams of being a somebody."},{"title":"Starship Troopers","overview":"Set in the future, the story follows a young soldier named Johnny Rico and his exploits in the Mobile Infantry. Rico's military career progresses from recruit to non-commissioned officer and finally to officer against the backdrop of an interstellar war between mankind and an arachnoid species known as \"the Bugs\".","director":"Paul Verhoeven","genres":"Adventure Action Thriller Science Fiction","tagline":"The only good bug is a dead bug."},{"title":"Insidious","overview":"A family discovers that dark spirits have invaded their home after their son inexplicably falls into an endless sleep. When they reach out to a professional for help, they learn things are a lot more personal than they thought.","director":"James Wan","genres":"Horror Thriller","tagline":"It's not the house that's haunted."},{"title":"Hellboy II: The Golden Army","overview":"In this continuation to the adventure of the demon superhero, an evil elf breaks an ancient pact between humans and creatures, as he declares war against humanity. He is on a mission to release The Golden Army, a deadly group of fighting machines that can destroy the human race. As Hell on Earth is ready to erupt, Hellboy and his crew set out to defeat the evil prince.","director":"Guillermo del Toro","genres":"Adventure Fantasy Science Fiction","tagline":"Saving the world is a hell of a job."},{"title":"Beetlejuice","overview":"Thanks to an untimely demise via drowning, a young couple end up as poltergeists in their New England farmhouse, where they fail to meet the challenge of scaring away the insufferable new owners, who want to make drastic changes. In desperation, the undead newlyweds turn to an expert frightmeister, but he's got a diabolical agenda of his own.","director":"Tim Burton","genres":"Fantasy Comedy","tagline":"He's guaranteed to put some life in your afterlife."},{"title":"Armageddon","overview":"When an asteroid threatens to collide with Earth, NASA honcho Dan Truman determines the only way to stop it is to drill into its surface and detonate a nuclear bomb. This leads him to renowned driller Harry Stamper, who agrees to helm the dangerous space mission provided he can bring along his own hotshot crew. Among them is the cocksure A.J. who Harry thinks isn't good enough for his daughter, until the mission proves otherwise.","director":"Michael Bay","genres":"Action Thriller Science Fiction Adventure","tagline":"The Earth's Darkest Day Will Be Man's Finest Hour"},{"title":"Underworld: Awakening","overview":"After being held in a coma-like state for fifteen years, vampire Selene learns that she has a fourteen-year-old vampire\/Lycan hybrid daughter named Nissa, and when she finds her, they must stop BioCom from creating super Lycans that will kill them all.","director":"M\\u00e5ns M\\u00e5rlind","genres":"Fantasy Action Horror","tagline":"Vengeance Returns"},{"title":"The Hangover Part II","overview":"The Hangover crew heads to Thailand for Stu's wedding. After the disaster of a bachelor party in Las Vegas last year, Stu is playing it safe with a mellow pre-wedding brunch. However, nothing goes as planned and Bangkok is the perfect setting for another adventure with the rowdy group.","director":"Todd Phillips","genres":"Comedy","tagline":"The Wolfpack Is Back"},{"title":"Superman Returns","overview":"Superman returns to discover his 5-year absence has allowed Lex Luthor to walk free, and that those he was closest too felt abandoned and have moved on. Luthor plots his ultimate revenge that could see millions killed and change the face of the planet forever, as well as ridding himself of the Man of Steel.","director":"Bryan Singer","genres":"Adventure Fantasy Action Science Fiction","tagline":null},{"title":"The 5th Wave","overview":"16-year-old Cassie Sullivan tries to survive in a world devastated by the waves of an alien invasion that has already decimated the population and knocked mankind back to the Stone Age.","director":"J Blakeson","genres":"Adventure Science Fiction","tagline":"Protect Your Own"},{"title":"The Book Thief","overview":"While subjected to the horrors of WWII Germany, young Liesel finds solace by stealing books and sharing them with others. Under the stairs in her home, a Jewish refuge is being sheltered by her adoptive parents.","director":"Brian Percival","genres":"Drama","tagline":"Courage beyond words."},{"title":"Sherlock Holmes","overview":"Eccentric consulting detective, Sherlock Holmes and Doctor John Watson battle to bring down a new nemesis and unravel a deadly plot that could destroy England.","director":"Guy Ritchie","genres":"Action Adventure Crime Mystery","tagline":"Nothing escapes him."},{"title":"Creed","overview":"The former World Heavyweight Champion Rocky Balboa serves as a trainer and mentor to Adonis Johnson, the son of his late friend and former rival Apollo Creed.","director":"Ryan Coogler","genres":"Drama","tagline":"Your legacy is more than a name"},{"title":"The Terminal","overview":"Viktor Navorski is a man without a country; his plane took off just as a coup d'etat exploded in his homeland, leaving it in shambles, and now he's stranded at Kennedy Airport, where he's holding a passport that nobody recognizes. While quarantined in the transit lounge until authorities can figure out what to do with him, Viktor simply goes on living \u2013 and courts romance with a beautiful flight attendant.","director":"Steven Spielberg","genres":"Comedy Drama","tagline":"Life is waiting."},{"title":"Cast Away","overview":"Chuck, a top international manager for FedEx, and Kelly, a Ph.D. student, are in love and heading towards marriage. Then Chuck's plane to Malaysia ditches at sea during a terrible storm. He's the only survivor, and he washes up on a tiny island with nothing but some flotsam and jetsam from the aircraft's cargo.","director":"Robert Zemeckis","genres":"Adventure Drama","tagline":"At the edge of the world, his journey begins."},{"title":"Die Hard 2","overview":"John McClane is an off-duty cop gripped with a feeling of d\u00e9j\u00e0 vu when on a snowy Christmas Eve in the nation's capital, terrorists seize a major international airport, holding thousands of holiday travelers hostage. Renegade military commandos led by a murderous rogue officer plot to rescue a drug lord from justice and are prepared for every contingency except one: McClane's smart-mouthed heroics.","director":"Renny Harlin","genres":"Action Thriller","tagline":"Die Harder"},{"title":"Dredd","overview":"In the future, America is a dystopian wasteland. The latest scourge is Ma-Ma, a prostitute-turned-drug pusher with a dangerous new drug and aims to take over the city. The only possibility of stopping her is an elite group of urban police called Judges, who combine the duties of judge, jury and executioner to deliver a brutal brand of swift justice. But even the top-ranking Judge, Dredd, discovers that taking down Ma-Ma isn\u2019t as easy as it seems in this explosive adaptation of the hugely popular comic series.","director":"Pete Travis","genres":"Action Science Fiction","tagline":"Judgement is coming"},{"title":"The Big Short","overview":"The men who made millions from a global economic meltdown.","director":"Adam McKay","genres":"Comedy Drama","tagline":"This is a true story."},{"title":"Moulin Rouge!","overview":"A celebration of love and creative inspiration takes place in the infamous, gaudy and glamorous Parisian nightclub, at the cusp of the 20th century. A young poet, who is plunged into the heady world of Moulin Rouge, begins a passionate affair with the club's most notorious and beautiful star.","director":"Baz Luhrmann","genres":"Drama Music Romance","tagline":"No Laws. No Limits. One Rule. Never Fall In Love."},{"title":"Zombieland","overview":"Columbus has made a habit of running from what scares him. Tallahassee doesn't have fears. If he did, he'd kick their ever-living ass. In a world overrun by zombies, these two are perfectly evolved survivors. But now, they're about to stare down the most terrifying prospect of all: each other.","director":"Ruben Fleischer","genres":"Comedy Horror","tagline":"This place is so dead"},{"title":"There's Something About Mary","overview":"Having never fully recovered from a prom date that became a total disaster, a man finally gets a chance to reunite with his old prom date, only to run up against other suitors including the sleazy detective he hired to find her.","director":"Bobby Farrelly","genres":"Romance Comedy","tagline":"Love Is In The Hair."},{"title":"Jack Reacher","overview":"In an innocent heartland city, five are shot dead by an expert sniper. The police quickly identify and arrest the culprit, and build a slam-dunk case. But the accused man claims he's innocent and says \"Get Jack Reacher.\" Reacher himself sees the news report and turns up in the city. The defense is immensely relieved, but Reacher has come to bury the guy. Shocked at the accused's request, Reacher sets out to confirm for himself the absolute certainty of the man's guilt, but comes up with more than he bargained for.","director":"Christopher McQuarrie","genres":"Crime Drama Thriller","tagline":"The Law Has Limits. He Does Not."},{"title":"Lara Croft Tomb Raider: The Cradle of Life","overview":"Lara Croft ventures to an underwater temple in search of the mythological Pandora's Box but, after securing it, it is promptly stolen by the villainous leader of a Chinese crime syndicate. Lara must recover the box before the syndicate's evil mastermind uses it to construct a weapon of catastrophic capabilities.","director":"Jan de Bont","genres":"Action Adventure Fantasy Thriller","tagline":"Adventuress Lara Croft goes on a quest to save the mythical Pandora's Box"},{"title":"Dirty Grandpa","overview":"Jason Kelly is one week away from marrying his boss's uber-controlling daughter, putting him on the fast track for a partnership at the law firm. However, when the straight-laced Jason is tricked into driving his foul-mouthed grandfather, Dick, to Daytona for spring break, his pending nuptials are suddenly in jeopardy. Between riotous frat parties, bar fights, and an epic night of karaoke, Dick is on a quest to live his life to the fullest and bring Jason along for the ride.","director":"Dan Mazer","genres":"Comedy","tagline":"This is Jason. He's a little worried about his grandpa."},{"title":"Oldboy","overview":"With no clue how he came to be imprisoned, drugged and tortured for 15 years, a desperate businessman seeks revenge on his captors.","director":"Park Chan-wook","genres":"Drama Thriller Mystery Action","tagline":"15 years of imprisonment, five days of vengeance"},{"title":"Hancock","overview":"Hancock is a down-and-out superhero who's forced to employ a PR expert to help repair his image when the public grows weary of all the damage he's inflicted during his lifesaving heroics. The agent's idea of imprisoning the antihero to make the world miss him proves successful, but will Hancock stick to his new sense of purpose or slip back into old habits?","director":"Peter Berg","genres":"Fantasy Action","tagline":"Bad Behavior. Bad Attitude. Real Hero."},{"title":"Kung Fu Panda 3","overview":"Continuing his \"legendary adventures of awesomeness\", Po must face two hugely epic, but different threats: one supernatural and the other a little closer to his home.","director":"Jennifer Yuh Nelson","genres":"Action Adventure Animation Comedy Family","tagline":"Grab destiny by the rice dumplings."},{"title":"Pacific Rim","overview":"When legions of monstrous creatures, known as Kaiju, started rising from the sea, a war began that would take millions of lives and consume humanity's resources for years on end. To combat the giant Kaiju, a special type of weapon was devised: massive robots, called Jaegers, which are controlled simultaneously by two pilots whose minds are locked in a neural bridge. But even the Jaegers are proving nearly defenseless in the face of the relentless Kaiju. On the verge of defeat, the forces defending mankind have no choice but to turn to two unlikely heroes\u2014a washed-up former pilot (Charlie Hunnam) and an untested trainee (Rinko Kikuchi)\u2014who are teamed to drive a legendary but seemingly obsolete Jaeger from the past. Together, they stand as mankind's last hope against the mounting apocalypse.","director":"Guillermo del Toro","genres":"Action Science Fiction Adventure","tagline":"To Fight Monsters, We Created Monsters"},{"title":"The Truman Show","overview":"Truman Burbank is the star of \"The Truman Show\", a 24-hour-a-day \"reality\" TV show that broadcasts every aspect of his life -- live and in color -- without his knowledge. His entire life has been an unending soap opera for consumption by the rest of the world. And everyone he knows -- including his wife and his best friend -- is really an actor, paid to be part of his life.","director":"Peter Weir","genres":"Comedy Drama","tagline":"On the air. Unaware."},{"title":"Eternal Sunshine of the Spotless Mind","overview":"Joel Barish, heartbroken that his girlfriend underwent a procedure to erase him from her memory, decides to do the same. However, as he watches his memories of her fade away, he realises that he still loves her, and may be too late to correct his mistake.","director":"Michel Gondry","genres":"Science Fiction Drama Romance","tagline":"You can erase someone from your mind. Getting them out of your heart is another story."},{"title":"Ouija","overview":"A group of friends must confront their most terrifying fears when they awaken the dark powers of an ancient spirit board.","director":"Stiles White","genres":"Horror","tagline":"Keep telling yourself it's just a game"},{"title":"Alice Through the Looking Glass","overview":"In the sequel to Tim Burton's \"Alice in Wonderland\", Alice Kingsleigh returns to Underland and faces a new adventure in saving the Mad Hatter.","director":"James Bobin","genres":"Fantasy","tagline":"It's time for a little madness."},{"title":"Hotel Transylvania","overview":"Dracula, who operates a high-end resort away from the human world, goes into overprotective mode when a boy discovers the resort and falls for the count's teen-aged daughter.","director":"Genndy Tartakovsky","genres":"Animation Comedy Family Fantasy","tagline":"Where monsters go to get away from it all"},{"title":"Gods of Egypt","overview":"A common thief joins a mythical god on a quest through Egypt.","director":"Alex Proyas","genres":"Fantasy","tagline":"The battle for eternity begins"},{"title":"E.T. the Extra-Terrestrial","overview":"After a gentle alien becomes stranded on Earth, the being is discovered and befriended by a young boy named Elliott. Bringing the extraterrestrial into his suburban California house, Elliott introduces E.T., as the alien is dubbed, to his brother and his little sister, Gertie, and the children decide to keep its existence a secret. Soon, however, E.T. falls ill, resulting in government intervention and a dire situation for both Elliott and the alien.","director":"Steven Spielberg","genres":"Science Fiction Adventure Family Fantasy","tagline":"He is afraid. He is alone. He is three million light years from home."},{"title":"The World's End","overview":"Five friends who reunite in an attempt to top their epic pub crawl from 20 years earlier unwittingly become humankind's only hope for survival.","director":"Edgar Wright","genres":"Comedy Action Science Fiction","tagline":"Good food. Fine ales. Total Annihilation."},{"title":"9","overview":"When 9 first comes to life, he finds himself in a post-apocalyptic world. All humans are gone, and it is only by chance that he discovers a small community of others like him taking refuge from fearsome machines that roam the earth intent on their extinction. Despite being the neophyte of the group, 9 convinces the others that hiding will do them no good.","director":"Shane Acker","genres":"Action Adventure Animation Science Fiction Thriller","tagline":"When our world ended their mission began."},{"title":"Lilo & Stitch","overview":"A lonely Hawaiian girl named Lilo is being raised by her older sister, Nani, after their parents die -- under the watch of social worker Cobra Bubbles. When Lilo adopts a funny-looking dog and names him \"Stitch,\" she doesn't realize her new best friend is a wacky alien created by mad scientist Dr. Jumba.","director":"Chris Sanders","genres":"Animation Family","tagline":"He's coming to our galaxy."},{"title":"Dead Poets Society","overview":"At an elite, old-fashioned boarding school in New England, a passionate English teacher inspires his students to rebel against convention and seize the potential of every day, courting the disdain of the stern headmaster.","director":"Peter Weir","genres":"Drama","tagline":"He was their inspiration. He made their lives extraordinary."},{"title":"Sicario","overview":"A young female FBI agent joins a secret CIA operation to take down a Mexican cartel boss, a job that ends up pushing her ethical and moral values to the limit.","director":"Denis Villeneuve","genres":"Action Crime Drama Mystery Thriller","tagline":"The border is just another line to cross."},{"title":"Contact","overview":"Contact is a science fiction film about an encounter with alien intelligence. Based on the novel by Carl Sagan the film starred Jodie Foster as the one chosen scientist who must make some difficult decisions between her beliefs, the truth, and reality.","director":"Robert Zemeckis","genres":"Drama Science Fiction Mystery","tagline":"If it's just us, it seems like an awful waste of space."},{"title":"The Notebook","overview":"An epic love story centered around an older man who reads aloud to a woman with Alzheimer's. From a faded notebook, the old man's words bring to life the story about a couple who is separated by World War II, and is then passionately reunited, seven years later, after they have taken different paths.","director":"Nick Cassavetes","genres":"Romance Drama","tagline":"Behind every great love is a great story."},{"title":"Mission: Impossible II","overview":"With computer genius Luther Stickell at his side and a beautiful thief on his mind, agent Ethan Hunt races across Australia and Spain to stop a former IMF agent from unleashing a genetically engineered biological weapon called Chimera. This mission, should Hunt choose to accept it, plunges him into the center of an international crisis of terrifying magnitude.","director":"John Woo","genres":"Adventure Action Thriller","tagline":"Expect the impossible again."},{"title":"The Fugitive","overview":"Wrongfully accused of murdering his wife, Richard Kimble escapes from the law in an attempt to find her killer and clear his name. Pursuing him is a team of U.S. marshals led by Deputy Samuel Gerard, a determined detective who will not rest until Richard is captured. As Richard leads the team through a series of intricate chases, he discovers the secrets behind his wife's death and struggles to expose the killer before it is too late.","director":"Andrew Davis","genres":"Adventure Action Thriller Crime Mystery","tagline":"A murdered wife. A one-armed man. An obsessed detective. The chase begins."},{"title":"Need for Speed","overview":"The film revolves around a local street-racer who partners with a rich and arrogant business associate, only to find himself framed by his colleague and sent to prison. After he gets out, he joins a New York-to-Los Angeles race to get revenge. But when the ex-partner learns of the scheme, he puts a massive bounty on the racer's head, forcing him to run a cross-country gauntlet of illegal racers in all manner of supercharged vehicles.","director":"Scott Waugh","genres":"Action Crime Drama Thriller","tagline":"For honor. For love. For redemption."},{"title":"10 Things I Hate About You","overview":"Bianca, a tenth grader, has never gone on a date, but she isn't allowed to go out with boys until her older sister Kat gets a boyfriend. The problem is, Kat rubs nearly everyone the wrong way. But Bianca and the guy she has her eye on, Joey, are eager, so Joey fixes Kat up with Patrick, a new kid in town just bitter enough for Kat.","director":"Gil Junger","genres":"Comedy Romance Drama","tagline":"How do I loathe thee? Let me count the ways."},{"title":"The Purge","overview":"Given the country's overcrowded prisons, the U.S. government begins to allow 12-hour periods of time in which all illegal activity is legal. During one of these free-for-alls, a family must protect themselves from a home invasion.","director":"James DeMonaco","genres":"Science Fiction Horror Thriller","tagline":"One night a year, all crime is legal."},{"title":"Die Another Day","overview":"Bond takes on a North Korean leader who undergoes DNA replacement procedures that allow him to assume different identities. American agent, Jinx Johnson assists Bond in his attempt to thwart the villain's plans to exploit a satellite that is powered by solar energy.","director":"Lee Tamahori","genres":"Adventure Action Thriller","tagline":"He\u2019s never been cooler."},{"title":"The King's Speech","overview":"The King's Speech tells the story of the man who became King George VI, the father of Queen Elizabeth II. After his brother abdicates, George ('Bertie') reluctantly assumes the throne. Plagued by a dreaded stutter and considered unfit to be king, Bertie engages the help of an unorthodox speech therapist named Lionel Logue. Through a set of unexpected techniques, and as a result of an unlikely friendship, Bertie is able to find his voice and boldly lead the country into war.","director":"Tom Hooper","genres":"Drama History","tagline":"Find your voice."},{"title":"Star Wars: Episode I - The Phantom Menace","overview":"Anakin Skywalker, a young slave strong with the Force, is discovered on Tatooine. Meanwhile, the evil Sith have returned, enacting their plot for revenge against the Jedi.","director":"George Lucas","genres":"Adventure Action Science Fiction","tagline":"Every generation has a legend. Every journey has a first step. Every saga has a beginning."},{"title":"The Chronicles of Narnia: Prince Caspian","overview":"One year after their incredible adventures in the Lion, the Witch and the Wardrobe, Peter, Edmund, Lucy and Susan Pevensie return to Narnia to aid a young prince whose life has been threatened by the evil King Miraz. Now, with the help of a colorful cast of new characters, including Trufflehunter the badger and Nikabrik the dwarf, the Pevensie clan embarks on an incredible quest to ensure that Narnia is returned to its rightful heir.","director":"Andrew Adamson","genres":"Adventure Family Fantasy","tagline":"Hope has a new face."},{"title":"Charlie and the Chocolate Factory","overview":"A young boy wins a tour through the most magnificent chocolate factory in the world, led by the world's most unusual candy maker.","director":"Tim Burton","genres":"Adventure Comedy Family Fantasy","tagline":"Willy Wonka is semi-sweet and nuts."},{"title":"The Giver","overview":"In a seemingly perfect community, without war, pain, suffering, differences or choice, a young boy is chosen to learn from an elderly man about the true pain and pleasure of the \"real\" world.","director":"Phillip Noyce","genres":"Drama Science Fiction","tagline":"Search for truth. Find freedom."},{"title":"The Expendables 2","overview":"Mr. Church reunites the Expendables for what should be an easy paycheck, but when one of their men is murdered on the job, their quest for revenge puts them deep in enemy territory and up against an unexpected threat.","director":"Simon West","genres":"Action Adventure Thriller","tagline":"Back for War."},{"title":"The Purge: Election Year","overview":"Two years after choosing not to kill the man who killed his son, former police sergeant Leo Barnes has become head of security for Senator Charlene Roan, the front runner in the next Presidential election due to her vow to eliminate the Purge. On the night of what should be the final Purge, a betrayal from within the government forces Barnes and Roan out onto the street where they must fight to survive the night.","director":"James DeMonaco","genres":"Action Horror Thriller","tagline":"Keep America great"},{"title":"10 Cloverfield Lane","overview":"After a car accident, Michelle awakens to find herself in a mysterious bunker with two men named Howard and Emmett. Howard offers her a pair of crutches to help her remain mobile with her leg injury sustained from the car crash and tells her to \"get good on those\" before leaving the bunker. She has been given the information that there has been an alien attack and the outside world is poisoned. However, Howard and Emmett's intentions soon become questionable and Michelle is faced with a question: Is it better in here or out there?","director":"Dan Trachtenberg","genres":"Thriller Science Fiction Drama","tagline":"Monsters come in many forms."},{"title":"Her","overview":"In the not so distant future, Theodore, a lonely writer purchases a newly developed operating system designed to meet the user's every needs. To Theordore's surprise, a romantic relationship develops between him and his operating system. This unconventional love story blends science fiction and romance in a sweet tale that explores the nature of love and the ways that technology isolates and connects us all.","director":"Spike Jonze","genres":"Romance Science Fiction Drama","tagline":"A Spike Jonze Love Story"},{"title":"Steve Jobs","overview":"Set backstage at three iconic product launches and ending in 1998 with the unveiling of the iMac, Steve Jobs takes us behind the scenes of the digital revolution to paint an intimate portrait of the brilliant man at its epicenter.","director":"Danny Boyle","genres":"Drama History","tagline":"Can a great man be a good man?"},{"title":"No Country for Old Men","overview":"Llewelyn Moss stumbles upon dead bodies, $2 million and a hoard of heroin in a Texas desert, but methodical killer Anton Chigurh comes looking for it, with local sheriff Ed Tom Bell hot on his trail. The roles of prey and predator blur as the violent pursuit of money and justice collide.","director":"Joel Coen","genres":"Crime Drama Thriller","tagline":"There are no clean getaways."},{"title":"Snatch","overview":"The second film from British director Guy Ritchie. Snatch tells an obscure story similar to his first fast-paced crazy character-colliding filled film \u201cLock, Stock and Two Smoking Barrels.\u201d There are two overlapping stories here \u2013 one is the search for a stolen diamond, and the other about a boxing promoter who\u2019s having trouble with a psychotic gangster.","director":"Guy Ritchie","genres":"Thriller Crime","tagline":"Stealin' Stones and Breakin' Bones."},{"title":"The Bourne Supremacy","overview":"When a CIA operation to purchase classified Russian documents is blown by a rival agent, who then shows up in the sleepy seaside village where Bourne and Marie have been living. The pair run for their lives and Bourne, who promised retaliation should anyone from his former life attempt contact, is forced to once again take up his life as a trained assassin to survive.","director":"Paul Greengrass","genres":"Action Drama Thriller","tagline":"They should have left him alone."},{"title":"Me Before You","overview":"A small town girl is caught between dead-end jobs. A high-profile, successful man becomes wheelchair bound following an accident. The man decides his life is not worth living until the girl is hired for six months to be his new caretaker. Worlds apart and trapped together by circumstance, the two get off to a rocky start. But the girl becomes determined to prove to the man that life is worth living and as they embark on a series of adventures together, each finds their world changing in ways neither of them could begin to imagine.","director":"Thea Sharrock","genres":"Drama Romance","tagline":"#LiveBoldly"},{"title":"The Intern","overview":"70-year-old widower Ben Whittaker has discovered that retirement isn't all it's cracked up to be. Seizing an opportunity to get back in the game, he becomes a senior intern at an online fashion site, founded and run by Jules Ostin.","director":"Nancy Meyers","genres":"Comedy","tagline":"Experience never gets old"},{"title":"Journey to the Center of the Earth","overview":"On a quest to find out what happened to his missing brother, a scientist, his nephew and their mountain guide discover a fantastic and dangerous lost world in the center of the earth.","director":"Eric Brevig","genres":"Action Science Fiction Adventure Comedy Family","tagline":"Same Planet. Different World."},{"title":"Panic Room","overview":"Trapped in their New York brownstone's panic room, a hidden chamber built as a sanctuary in the event of break-ins, newly divorced Meg Altman and her young daughter Sarah play a deadly game of cat-and-mouse with three intruders - Burnham, Raoul and Junior - during a brutal home invasion. But the room itself is the focal point because what the intruders really want is inside it.","director":"David Fincher","genres":"Crime Drama Thriller","tagline":null},{"title":"Hansel & Gretel: Witch Hunters","overview":"After getting a taste for blood as children, Hansel and Gretel have become the ultimate vigilantes, hell-bent on retribution. Now, unbeknownst to them, Hansel and Gretel have become the hunted, and must face an evil far greater than witches... their past.","director":"Tommy Wirkola","genres":"Fantasy Horror Action","tagline":"Classic tale. New twist."},{"title":"Gone in Sixty Seconds","overview":"Upon learning that he has to come out of retirement to steal 50 cars in one night to save his brother Kip's life, former car thief Randall \"Memphis\" Raines enlists help from a few \"boost happy\" pals to accomplish a seemingly impossible feat. From countless car chases to relentless cops, the high-octane excitement builds as Randall swerves around more than a few roadblocks to keep Kip alive.","director":"Dominic Sena","genres":"Action Crime Thriller","tagline":"Ice Cold, Hot Wired."},{"title":"Blood Diamond","overview":"An ex-mercenary turned smuggler. A Mende fisherman. Amid the explosive civil war overtaking 1999 Sierra Leone, these men join for two desperate missions: recovering a rare pink diamond of immense value and rescuing the fisherman's son conscripted as a child soldier into the brutal rebel forces ripping a swath of torture and bloodshed countrywide.","director":"Edward Zwick","genres":"Drama Thriller Action","tagline":"It will cost you everything."},{"title":"Captain Phillips","overview":"The true story of Captain Richard Phillips and the 2009 hijacking by Somali pirates of the US-flagged MV Maersk Alabama, the first American cargo ship to be hijacked in two hundred years.","director":"Paul Greengrass","genres":"Action Drama Thriller","tagline":"Out here survival is everything."},{"title":"Groundhog Day","overview":"A narcissistic TV weatherman, along with his attractive-but-distant producer and mawkish cameraman, is sent to report on Groundhog Day in the small town of Punxsutawney, where he finds himself repeating the same day over and over.","director":"Harold Ramis","genres":"Romance Fantasy Drama Comedy","tagline":"He's having the worst day of his life... over, and over..."},{"title":"The Thing","overview":"Scientists in the Antarctic are confronted by a shape-shifting alien that assumes the appearance of the people that it kills.","director":"John Carpenter","genres":"Horror Mystery Science Fiction","tagline":"Man is The Warmest Place to Hide."},{"title":"The Last Witch Hunter","overview":"The modern world holds many secrets, but by far the most astounding is that witches still live among us; vicious supernatural creatures intent on unleashing the Black Death upon the world and putting an end to the human race once and for all. Armies of witch hunters have battled this unnatural enemy for centuries, including Kaulder, a valiant warrior who many years ago slayed the all-powerful Witch Queen, decimating her followers in the process. In the moments right before her death, the Queen cursed Kaulder with immortality, forever separating him from his beloved wife and daughter. Today, Kaulder is the last living hunter who has spent his immortal life tracking down rogue witches, all the while yearning for his long-lost family.","director":"Breck Eisner","genres":"Fantasy Action Adventure","tagline":"Hunt forever."},{"title":"17 Again","overview":"On the brink of a midlife crisis, 30-something Mike O'Donnell wishes he could have a \"do-over.\" And that's exactly what he gets when he wakes up one morning to find he's 17 years old again. With his adult mind stuck inside the body of a teenager, Mike actually has the chance to reverse some decisions he wishes he'd never made. But maybe they weren't so bad after all.","director":"Burr Steers","genres":"Comedy","tagline":"Who says you're only young once?"},{"title":"127 Hours","overview":"The true story of mountain climber Aron Ralston's remarkable adventure to save himself after a fallen boulder crashes on his arm and traps him in an isolated canyon in Utah.","director":"Danny Boyle","genres":"Adventure Drama Thriller","tagline":"There is no force more powerful than the will to live."},{"title":"Close Encounters of the Third Kind","overview":"After an encounter with UFOs, a line worker feels undeniably drawn to an isolated area in the wilderness where something spectacular is about to happen.","director":"Steven Spielberg","genres":"Science Fiction Drama","tagline":"We are not alone."},{"title":"Mortdecai","overview":"Art dealer, Charles Mortdecai, searches for a stolen painting rumored to contain a secret code that gains access to hidden Nazi gold.","director":"David Koepp","genres":"Comedy Adventure","tagline":"Sophistication Has a Name."},{"title":"22 Jump Street","overview":"After making their way through high school (twice), big changes are in store for officers Schmidt and Jenko when they go deep undercover at a local college. But when Jenko meets a kindred spirit on the football team, and Schmidt infiltrates the bohemian art major scene, they begin to question their partnership. Now they don't have to just crack the case - they have to figure out if they can have a mature relationship. If these two overgrown adolescents can grow from freshmen into real men, college might be the best thing that ever happened to them.","director":"Phil Lord","genres":"Crime Comedy Action","tagline":"They're not 21 anymore"},{"title":"The Last Samurai","overview":"Nathan Algren is an American hired to instruct the Japanese army in the ways of modern warfare, which finds him learning to respect the samurai and the honorable principles that rule them. Pressed to destroy the samurai's way of life in the name of modernization and open trade, Algren decides to become an ultimate warrior himself and to fight for their right to exist.","director":"Edward Zwick","genres":"Drama Action War History","tagline":"In the face of an enemy, in the heart of one man, lies the soul of a warrior."},{"title":"Training Day","overview":"On his first day on the job as a narcotics officer, a rookie cop works with a rogue detective who isn't what he appears.","director":"Antoine Fuqua","genres":"Action Crime Drama Thriller","tagline":"The only thing more dangerous than the line being crossed, is the cop who will cross it."},{"title":"Men in Black 3","overview":"Agents J (Will Smith) and K (Tommy Lee Jones) are back...in time. J has seen some inexplicable things in his 15 years with the Men in Black, but nothing, not even aliens, perplexes him as much as his wry, reticent partner. But when K's life and the fate of the planet are put at stake, Agent J will have to travel back in time to put things right. J discovers that there are secrets to the universe that K never told him - secrets that will reveal themselves as he teams up with the young Agent K (Josh Brolin) to save his partner, the agency, and the future of humankind.","director":"Barry Sonnenfeld","genres":"Action Comedy Science Fiction","tagline":"They are back... in time."},{"title":"Zodiac","overview":"The true story of the investigation of 'The Zodiac Killer',  a serial killer who terrified the San Francisco Bay Area, taunting police with his ciphers and letters. The case becomes an obsession for four men as their lives and careers are built and destroyed by the endless trail of clues.","director":"David Fincher","genres":"Crime Drama Mystery Thriller","tagline":"There's more than one way to lose your life to a killer."},{"title":"Underworld: Rise of the Lycans","overview":"A prequel to the first two Underworld films, this fantasy explains the origins of the feud between the Vampires and the Lycans. Aided by his secret love, Sonja, courageous Lucian leads the Lycans in battle against brutal Vampire king Viktor. Determined to break the king's enslavement of his people, Lucian faces off against the Death Dealer army in a bid for Lycan independence.","director":"Patrick Tatopoulos","genres":"Fantasy Action Adventure Science Fiction Thriller","tagline":"Every war has a beginning."},{"title":"Warrior","overview":"The inspirational story of an estranged family that finds redemption in the unlikeliest of places\u2026the MMA ring. Tommy Riordan (Tom Hardy), an ex-marine with a tragic past, returns home and enlists his father (Nick Nolte), a recovering alcoholic and former wrestling coach, to train him for \u201cSparta\u201d, the biggest MMA tournament ever held. But when Tommy\u2019s underdog brother, Brendan (Joel Edgerton), fights his way into the tournament, the two brothers must finally confront each other and the forces that pulled them apart. What ensues is the most gut-wrenching, soul-stirring, and unforgettable battle of their lives.","director":"Gavin O'Connor","genres":"Action Drama","tagline":"Fight for Family"},{"title":"Die Hard: With a Vengeance","overview":"New York detective John McClane is back and kicking bad-guy butt in the third installment of this action-packed series, which finds him teaming with civilian Zeus Carver to prevent the loss of innocent lives. McClane thought he'd seen it all, until a genius named Simon engages McClane, his new \"partner\" -- and his beloved city -- in a deadly game that demands their concentration.","director":"John McTiernan","genres":"Action Thriller","tagline":"Think fast. Look alive. Die hard."},{"title":"Green Lantern","overview":"For centuries, a small but powerful force of warriors called the Green Lantern Corps has sworn to keep intergalactic order. Each Green Lantern wears a ring that grants him superpowers. But when a new enemy called Parallax threatens to destroy the balance of power in the Universe, their fate and the fate of Earth lie in the hands of the first human ever recruited.","director":"Martin Campbell","genres":"Adventure Action Thriller Science Fiction","tagline":"In our darkest hour, there will be light."},{"title":"The Hitchhiker's Guide to the Galaxy","overview":"Mere seconds before the Earth is to be demolished by an alien construction crew, Arthur Dent is swept off the planet by his friend Ford Prefect, a researcher penning a new edition of \"The Hitchhiker's Guide to the Galaxy.\"","director":"Garth Jennings","genres":"Adventure Comedy Family Science Fiction","tagline":"Don't leave Earth without it."},{"title":"The Good Dinosaur","overview":"An epic journey into the world of dinosaurs where an Apatosaurus named Arlo makes an unlikely human friend.","director":"Peter Sohn","genres":"Adventure Animation Family","tagline":"Little Arms With Big Attitude"},{"title":"Atlantis: The Lost Empire","overview":"The world's most highly qualified crew of archaeologists and explorers is led by historian Milo Thatch as they board the incredible 1,000-foot submarine Ulysses and head deep into the mysteries of the sea.","director":"Gary Trousdale","genres":"Animation Family Adventure Science Fiction","tagline":"Atlantis is waiting..."},{"title":"Now You See Me 2","overview":"One year after outwitting the FBI and winning the public\u2019s adulation with their mind-bending spectacles, the Four Horsemen resurface only to find themselves face to face with a new enemy who enlists them to pull off their most dangerous heist yet.","director":"Jon M. Chu","genres":"Action Adventure Comedy Crime Mystery","tagline":"You Haven't Seen Anything Yet"},{"title":"Sunshine","overview":"Fifty years into the future, the sun is dying, and Earth is threatened by arctic temperatures. A team of astronauts is sent to revive the Sun \u2014 but the mission fails. Seven years later, a new team is sent to finish the mission as mankind\u2019s last hope.","director":"Danny Boyle","genres":"Science Fiction Thriller","tagline":"If the sun dies, so do we."},{"title":"The Rock","overview":"A group of renegade marine commandos seizes a stockpile of chemical weapons and takes over Alcatraz, with 81 tourists as hostages. Their leader demands $100 million to be paid, as restitution to families of Marines who died in covert ops \u2013 or he will launch 15 rockets carrying deadly VX gas into the San Francisco Bay area.","director":"Michael Bay","genres":"Action Adventure Thriller","tagline":"Alcatraz.  Only one man has ever broken out.  Now five million lives depend on two men breaking in."},{"title":"Life of Pi","overview":"The story of an Indian boy named Pi, a zookeeper's son who finds himself in the company of a hyena, zebra, orangutan, and a Bengal tiger after a shipwreck sets them adrift in the Pacific Ocean.","director":"Ang Lee","genres":"Adventure Drama Action","tagline":"Believe The Unbelievable"},{"title":"Kung Fu Panda 2","overview":"Po is now living his dream as The Dragon Warrior, protecting the Valley of Peace alongside his friends and fellow kung fu masters, The Furious Five - Tigress, Crane, Mantis, Viper and Monkey. But Po\u2019s new life of awesomeness is threatened by the emergence of a formidable villain, who plans to use a secret, unstoppable weapon to conquer China and destroy kung fu. It is up to Po and The Furious Five to journey across China to face this threat and vanquish it. But how can Po stop a weapon that can stop kung fu? He must look to his past and uncover the secrets of his mysterious origins; only then will he be able to unlock the strength he needs to succeed.","director":"Jennifer Yuh Nelson","genres":"Animation Family","tagline":"Prepare for the Year of Awesomeness!"},{"title":"Planet of the Apes","overview":"After a spectacular crash-landing on an uncharted planet, brash astronaut Leo Davidson finds himself trapped in a savage world where talking apes dominate the human race. Desperate to find a way home, Leo must evade the invincible gorilla army led by Ruthless General Thade.","director":"Tim Burton","genres":"Thriller Science Fiction Action Adventure","tagline":"You'll be sorry you were ever born human"},{"title":"Coraline","overview":"When Coraline moves to an old house, she feels bored and neglected by her parents. She finds a hidden door with a bricked up passage. During the night, she crosses the passage and finds a parallel world where everybody has buttons instead of eyes, with caring parents and all her dreams coming true. When the Other Mother invites Coraline to stay in her world forever, the girl refuses and finds that the alternate reality where she is trapped is only a trick to lure her.","director":"Henry Selick","genres":"Animation Family","tagline":"Be careful what you wish for."},{"title":"The Emperor's New Groove","overview":"Kuzco is a self-centered emperor who summons Pacha from a village and to tell him that his home will be destroyed to make room for Kuzco's new summer home. Kuzco's advisor, Yzma, tries to poison Kuzco and accidentally turns him into a llama, who accidentally ends up in Pacha's village. Pacha offers to help Kuzco if he doesn't destroy his house, and so they form an unlikely partnership.","director":"Mark Dindal","genres":"Adventure Animation Comedy Family Fantasy","tagline":"It's All About.....ME!"},{"title":"Stand by Me","overview":"After the death of a friend, a writer recounts a boyhood journey to find the body of a missing boy.","director":"Rob Reiner","genres":"Crime Drama","tagline":"For some, it's the last real taste of innocence, and the first real taste of life. But for everyone, it's the time that memories are made of."},{"title":"In the Heart of the Sea","overview":"In the winter of 1820, the New England whaling ship Essex was assaulted by something no one could believe: a whale of mammoth size and will, and an almost human sense of vengeance.  The real-life maritime disaster would inspire Herman Melville\u2019s Moby Dick.\u00a0 But that told only half the story.\u00a0 \u201cHeart of the Sea\u201d reveals the encounter\u2019s harrowing aftermath, as the ship\u2019s surviving crew is pushed to their limits and forced to do the unthinkable to stay alive.\u00a0 Braving storms, starvation, panic and despair, the men will call into question their deepest beliefs, from the value of their lives to the morality of their trade, as their captain searches for direction on the open sea and his first mate still seeks to bring the great whale down.","director":"Ron Howard","genres":"Thriller Drama Adventure Action History","tagline":"Based on the incredible true story that inspired Moby Dick"},{"title":"Gran Torino","overview":"Walt Kowalski is a widower who holds onto his prejudices despite the changes in his Michigan neighborhood and the world around him. Kowalski is a grumpy, tough-minded, unhappy old man who can't get along with either his kids or his neighbors. He is a Korean War veteran whose prize possession is a 1972 Gran Torino he keeps in mint condition. When his neighbor Thao, a young Hmong teenager under pressure from his gang member cousin, tries to steal his Gran Torino, Kowalski sets out to reform the youth. Drawn against his will into the life of Thao's family, Kowalski is soon taking steps to protect them from the gangs that infest their neighborhood.","director":"Clint Eastwood","genres":"Drama","tagline":"Ever come across somebody you shouldn't have messed with?"},{"title":"Forgetting Sarah Marshall","overview":"When Sarah Marshall dumps aspiring musician Peter Bretter for rock star Aldous Snow, Peter's world comes crashing down. His best friend suggests that Peter should get away from everything and to fly off to Hawaii to escape all his problems. After arriving in Hawaii and meeting the beautiful Rachel Jansen, Peter is shocked to see not only Aldous Snow in Hawaii, but also Sarah Marshall.","director":"Nicholas Stoller","genres":"Comedy Romance Drama","tagline":"You lose some, you get some."},{"title":"Kill Bill: Vol. 2","overview":"The Bride unwaveringly continues on her roaring rampage of revenge against the band of assassins who had tried to kill her and her unborn child. She visits each of her former associates one-by-one, checking off the victims on her Death List Five until there's nothing left to do \u2026 but kill Bill.","director":"Quentin Tarantino","genres":"Action Crime Thriller","tagline":"The bride is back for the final cut."},{"title":"The Pianist","overview":"The Pianist is a film adapted from the biography of Wladyslaw Szpilman. A Jewish-Polish pianist who during the second world war lived and hid miraculously in Warsaw after having gone through a terrible tragedy. A film from Roman Polanski.","director":"Roman Polanski","genres":"Drama War","tagline":"Music was his passion. Survival was his masterpiece."},{"title":"Pompeii","overview":"Set in 79 A.D., POMPEII tells the epic story of Milo, a slave turned invincible gladiator who finds himself in a race against time to save his true love Cassia, the beautiful daughter of a wealthy merchant who has been unwillingly betrothed to a corrupt Roman Senator. As Mount Vesuvius erupts in a torrent of blazing lava, Milo must fight his way out of the arena in order to save his beloved as the once magnificent Pompeii crumbles around him.","director":"Paul W.S. Anderson","genres":"Action Adventure History Romance Drama","tagline":"No warning. No escape."},{"title":"The Witch","overview":"New England in the 1630s: William and Katherine lead a devout Christian life with five children, homesteading on the edge of an impassable wilderness. When their newborn son vanishes and crops fail, the family turns on one another. Beyond their worst fears, a supernatural evil lurks in the nearby wood.","director":"Robert Eggers","genres":"Mystery Horror","tagline":"Evil takes many forms."},{"title":"Horrible Bosses","overview":"For Nick, Kurt and Dale, the only thing that would make the daily grind more tolerable would be to grind their intolerable bosses into dust. Quitting is not an option, so, with the benefit of a few-too-many drinks and some dubious advice from a hustling ex-con, the three friends devise a convoluted and seemingly foolproof plan to rid themselves of their respective employers... permanently.","director":"Seth Gordon","genres":"Comedy Crime","tagline":"Ever wish your boss was dead?"},{"title":"Dark Shadows","overview":"Vampire Barnabas Collins is inadvertently freed from his tomb and emerges into the very changed world of 1972. He returns to Collinwood Manor to find that his once-grand estate and family have fallen into ruin.","director":"Tim Burton","genres":"Comedy Fantasy","tagline":"Every Family Has Its Demons"},{"title":"Neighbors 2: Sorority Rising","overview":"A sorority moves in next door to the home of Mac and Kelly Radner who have a young child. The Radner's enlist their former nemeses from the fraternity to help battle the raucous sisters.","director":"Nicholas Stoller","genres":"Comedy","tagline":"New neighbors."},{"title":"Interview with the Vampire","overview":"A vampire relates his epic life story of love, betrayal, loneliness, and dark hunger to an over-curious reporter.","director":"Neil Jordan","genres":"Horror Romance","tagline":"Drink from me and live forever"},{"title":"Jaws","overview":"An insatiable great white shark terrorizes the townspeople of Amity Island, The police chief, an oceanographer and a grizzled shark hunter seek to destroy the bloodthirsty beast.","director":"Steven Spielberg","genres":"Horror Thriller Adventure","tagline":"Don't go in the water."},{"title":"Batman & Robin","overview":"Along with crime-fighting partner Robin and new recruit Batgirl, Batman battles the dual threat of frosty genius Mr. Freeze and homicidal horticulturalist Poison Ivy. Freeze plans to put Gotham City on ice, while Ivy tries to drive a wedge between the dynamic duo.","director":"Joel Schumacher","genres":"Action Crime Fantasy","tagline":"Strength. Courage. Honor. And loyalty."},{"title":"Predator","overview":"Dutch and his group of commandos are hired by the CIA to rescue downed airmen from guerillas in a Central American jungle. The mission goes well but as they return they find that something is hunting them. Nearly invisible, it blends in with the forest, taking trophies from the bodies of its victims as it goes along. Occasionally seeing through its eyes, the audience sees it is an intelligent alien hunter, hunting them for sport, killing them off one at a time.","director":"John McTiernan","genres":"Science Fiction Action Adventure Thriller","tagline":"If it bleeds, we can kill it..."},{"title":"Cars 2","overview":"Star race car Lightning McQueen and his pal Mater head overseas to compete in the World Grand Prix race. But the road to the championship becomes rocky as Mater gets caught up in an intriguing adventure of his own: international espionage.","director":"John Lasseter","genres":"Animation Family Adventure Comedy","tagline":"Ka-ciao!"},{"title":"The Conjuring","overview":"Paranormal investigators Ed and Lorraine Warren work to help a family terrorized by a dark presence in their farmhouse. Forced to confront a powerful entity, the Warrens find themselves caught in the most terrifying case of their lives.","director":"James Wan","genres":"Horror Thriller","tagline":"Based on the true case files of the Warrens"},{"title":"Apocalypse Now","overview":"At the height of the Vietnam war, Captain Benjamin Willard is sent on a dangerous mission that, officially, \"does not exist, nor will it ever exist.\" His goal is to locate - and eliminate - a mysterious Green Beret Colonel named Walter Kurtz, who has been leading his personal army on illegal guerrilla missions into enemy territory.","director":"Francis Ford Coppola","genres":"Drama War","tagline":"This is the end..."},{"title":"Automata","overview":"Jacq Vaucan, an insurance agent of ROC robotics corporation, routinely investigates the case of manipulating a robot. What he discovers will have profound consequences for the future of humanity.","director":"Gabe Ib\\u00e1\\u00f1ez","genres":"Thriller Science Fiction","tagline":"Your time is coming to an end \u2013 Ours is now beginning"},{"title":"Platoon","overview":"As a young and naive recruit in Vietnam, Chris Taylor faces a moral crisis when confronted with the horrors of war and the duality of man.","director":"Oliver Stone","genres":"Drama War Action","tagline":"The first casualty of war is innocence."},{"title":"American Hustle","overview":"A con man, Irving Rosenfeld, along with his seductive partner Sydney Prosser, is forced to work for a wild FBI agent, Richie DiMaso, who pushes them into a world of Jersey powerbrokers and mafia.","director":"David O. Russell","genres":"Drama Crime","tagline":"Everyone Hustles To Survive"},{"title":"The Chronicles of Narnia: The Voyage of the Dawn Treader","overview":"This time around Edmund and Lucy Pevensie, along with their pesky cousin Eustace Scrubb find themselves swallowed into a painting and on to a fantastic Narnian ship headed for the very edges of the world.","director":"Michael Apted","genres":"Adventure Family Fantasy","tagline":"Return to magic. Return to hope. Return to Narnia."},{"title":"Blade: Trinity","overview":"For years, Blade has fought against the vampires in the cover of the night. But now, after falling into the crosshairs of the FBI, he is forced out into the daylight, where he is driven to join forces with a clan of human vampire hunters he never knew existed - The Nightstalkers. Together with Abigail and Hannibal, two deftly trained Nightstalkers, Blade follows a trail of blood to the ancient creature that is also hunting him, the original vampire, Dracula.","director":"David S. Goyer","genres":"Science Fiction Action Horror Thriller Adventure","tagline":"The final hunt begins."},{"title":"Law Abiding Citizen","overview":"A frustrated man decides to take justice into his own hands after a plea bargain sets one of his family's killers free. He targets not only the killer but also the district attorney and others involved in the deal.","director":"F. Gary Gray","genres":"Drama Crime Thriller","tagline":"The System Must Pay."},{"title":"Howl's Moving Castle","overview":"When Sophie, a shy young woman, is cursed with an old body by a spiteful witch, her only chance of breaking the spell lies with a self-indulgent yet insecure young wizard and his companions in his legged, walking home.","director":"Hayao Miyazaki","genres":"Fantasy Animation Adventure","tagline":"The two lived there"},{"title":"Speed","overview":"Los Angeles SWAT cop Jack Traven is up against bomb expert Howard Payne, who's after major ransom money. First it's a rigged elevator in a very tall building. Then it's a rigged bus--if it slows, it will blow, bad enough any day, but a nightmare in LA traffic. And that's still not the end.","director":"Jan de Bont","genres":"Action Adventure Crime","tagline":"Get ready for rush hour"},{"title":"End of Watch","overview":"Two young officers are marked for death after confiscating a small cache of money and firearms from the members of a notorious cartel during a routine traffic stop.","director":"David Ayer","genres":"Crime Drama Thriller","tagline":"Every moment of your life they stand watch"},{"title":"Rain Man","overview":"Selfish yuppie Charlie Babbitt's father left a fortune to his savant brother Raymond and a pittance to Charlie; they travel cross-country.","director":"Barry Levinson","genres":"Drama","tagline":"A journey through understanding and fellowship."},{"title":"Taken 2","overview":"In Istanbul, retired CIA operative Bryan Mills and his wife are taken hostage by the father of a kidnapper Mills killed while rescuing his daughter.","director":"Olivier Megaton","genres":"Action Crime Thriller","tagline":"First they took his daughter. Now they're coming for him."},{"title":"Once Upon a Time in America","overview":"A former Prohibition-era Jewish gangster returns to the Lower East Side of Manhattan over thirty years later, where he once again must confront the ghosts and regrets of his old life.","director":"Sergio Leone","genres":"Drama Crime","tagline":"Crime, passion and lust for power - Sergio Leone's explosive saga of gangland America."},{"title":"Once Upon a Time in the West","overview":"This classic western masterpiece is an epic film about a widow whose land and life are in danger as the railroad is getting closer and closer to taking them over. A mysterious harmonica player joins forces with a desperado to protect the woman and her land.","director":"Sergio Leone","genres":"Western","tagline":"There were three men in her life. One to take her... one to love her... and one to kill her."},{"title":"Drive","overview":"A Hollywood stunt performer who moonlights as a wheelman for criminals discovers that a contract has been put on him after a heist gone wrong.","director":"Nicolas Winding Refn","genres":"Drama Action Thriller Crime","tagline":"There are no clean getaways."},{"title":"True Grit","overview":"Following the murder of her father by hired hand Tom Chaney, 14-year-old farm girl Mattie Ross sets out to capture the killer. To aid her, she hires the toughest U.S. Marshal she can find, a man with \"true grit,\" Reuben J. \"Rooster\" Cogburn. Mattie insists on accompanying Cogburn, whose drinking, sloth, and generally reprobate character do not augment her faith in him. Against his wishes, she joins him in his trek into the Indian Nations in search of Chaney. They are joined by Texas Ranger LaBoeuf, who wants Chaney for his own purposes. The unlikely trio find danger and adventure on the journey, and each has his or her \"grit\" tested.","director":"Joel Coen","genres":"Drama Adventure Western","tagline":"Punishment Comes One Way or Another."},{"title":"The Big Lebowski","overview":"Jeffrey \"The Dude\" Lebowski, a Los Angeles slacker who only wants to bowl and drink white Russians, is mistaken for another Jeffrey Lebowski, a wheelchair-bound millionaire, and finds himself dragged into a strange series of events involving nihilists, adult film producers, ferrets, errant toes, and large sums of money.","director":"Joel Coen","genres":"Comedy Crime","tagline":"Times like these call for a Big Lebowski."},{"title":"Battle: Los Angeles","overview":"The Earth is attacked by unknown forces. As people everywhere watch the world's great cities fall, Los Angeles becomes the last stand for mankind in a battle no one expected. It's up to a Marine staff sergeant and his new platoon to draw a line in the sand as they take on an enemy unlike any they've ever encountered before.","director":"Jonathan Liebesman","genres":"Action Science Fiction","tagline":"It's not war. It's survival."},{"title":"Shaun of the Dead","overview":"Shaun lives a supremely uneventful life, which revolves around his girlfriend, his mother, and, above all, his local pub. This gentle routine is threatened when the dead return to life and make strenuous attempts to snack on ordinary Londoners.","director":"Edgar Wright","genres":"Horror Comedy","tagline":"A romantic comedy. With zombies."},{"title":"Road to Perdition","overview":"Mike Sullivan works as a hit man for crime boss John Rooney. Sullivan views Rooney as a father figure, however after his son is witness to a killing, Mike Sullivan finds himself on the run in attempt to save the life of his son and at the same time looking for revenge on those who wronged him.","director":"Sam Mendes","genres":"Thriller Crime Drama","tagline":"Pray for Michael Sullivan."},{"title":"Project X","overview":"Three high school seniors throw a party to make a name for themselves. As the night progresses, things spiral out of control as word of the party spreads.","director":"Nima Nourizadeh","genres":"Comedy Crime","tagline":"Witness it"},{"title":"The Lone Ranger","overview":"The Texas Rangers chase down a gang of outlaws led by Butch Cavendish, but the gang ambushes the Rangers, seemingly killing them all. One survivor is found, however, by an American Indian named Tonto, who nurses him back to health. The Ranger, donning a mask and riding a white stallion named Silver, teams up with Tonto to bring the unscrupulous gang and others of that ilk to justice.","director":"Gore Verbinski","genres":"Action Adventure Western","tagline":"Never Take Off the Mask"},{"title":"Underworld: Evolution","overview":"As the war between the vampires and the Lycans rages on, Selene, a former member of the Death Dealers (an elite vampire special forces unit that hunts werewolves), and Michael, the werewolf hybrid, work together in an effort to unlock the secrets of their respective bloodlines.","director":"Len Wiseman","genres":"Fantasy Action Science Fiction Thriller","tagline":"My God. Brother, what have you done?"},{"title":"Gone with the Wind","overview":"An American classic in which a manipulative woman and a roguish man carry on a turbulent love affair in the American south during the Civil War and Reconstruction.","director":"Victor Fleming","genres":"Drama Romance War","tagline":"The greatest romance of all time!"},{"title":"Live Free or Die Hard","overview":"John McClane is back and badder than ever, and this time he's working for Homeland Security. He calls on the services of a young hacker in his bid to stop a ring of Internet terrorists intent on taking control of America's computer infrastructure.","director":"Len Wiseman","genres":"Action Thriller","tagline":"The old school cop is back!"},{"title":"Dr. No","overview":"In the film that launched the James Bond saga, Agent 007 battles mysterious Dr. No, a scientific genius bent on destroying the U.S. space program. As the countdown to disaster begins, Bond must go to Jamaica, where he encounters beautiful Honey Ryder, to confront a megalomaniacal villain in his massive island headquarters.","director":"Terence Young","genres":"Adventure Action Thriller","tagline":"NOW meet the most extraordinary gentleman spy in all fiction!"},{"title":"Salt","overview":"As a CIA officer, Evelyn Salt swore an oath to duty, honor and country. Her loyalty will be tested when a defector accuses her of being a Russian spy. Salt goes on the run, using all her skills and years of experience as a covert operative to elude capture. Salt's efforts to prove her innocence only serve to cast doubt on her motives, as the hunt to uncover the truth behind her identity continues and the question remains: \"Who is Salt?\"","director":"Phillip Noyce","genres":"Action Mystery Thriller","tagline":"Who is Salt?"},{"title":"3:10 to Yuma","overview":"In Arizona in the late 1800's, infamous outlaw Ben Wade and his vicious gang of thieves and murderers have plagued the Southern Railroad. When Wade is captured, Civil War veteran Dan Evans, struggling to survive on his drought-plagued ranch, volunteers to deliver him alive to the \"3:10 to Yuma\", a train that will take the killer to trial.","director":"James Mangold","genres":"Western","tagline":"Time waits for one man."},{"title":"Before I Go to Sleep","overview":"A woman wakes up every day, remembering nothing as a result of a traumatic accident in her past. One day, new terrifying truths emerge that force her to question everyone around her.","director":"Rowan Joffe","genres":"Mystery Thriller","tagline":"Who do you trust?"},{"title":"Night at the Museum","overview":"Chaos reigns at the natural history museum when night watchman Larry Daley accidentally stirs up an ancient curse, awakening Attila the Hun, an army of gladiators, a Tyrannosaurus rex and other exhibits. Larry tries desperately to keep the museum under control, but he's fighting a losing battle until President Teddy Roosevelt comes to the rescue.","director":"Shawn Levy","genres":"Action Adventure Comedy Family Fantasy","tagline":"Where History Comes To Life"},{"title":"Independence Day: Resurgence","overview":"We always knew they were coming back. Using recovered alien technology, the nations of Earth have collaborated on an immense defense program to protect the planet. But nothing can prepare us for the aliens\u2019 advanced and unprecedented force. Only the ingenuity of a few brave men and women can bring our world back from the brink of extinction.","director":"Roland Emmerich","genres":"Action Adventure Science Fiction","tagline":"We had twenty years to prepare. So did they."},{"title":"The Man from U.N.C.L.E.","overview":"At the height of the Cold War, a mysterious criminal organization plans to use nuclear weapons and technology to upset the fragile balance of power between the United States and Soviet Union. CIA agent Napoleon Solo and KGB agent Illya Kuryakin are forced to put aside their hostilities and work together to stop the evildoers in their tracks. The duo's only lead is the daughter of a missing German scientist, whom they must find soon to prevent a global catastrophe.","director":"Guy Ritchie","genres":"Comedy Action Adventure","tagline":"Saving the world never goes out of style."},{"title":"Tangled","overview":"When the kingdom's most wanted-and most charming-bandit Flynn Rider hides out in a mysterious tower, he's taken hostage by Rapunzel, a beautiful and feisty tower-bound teen with 70 feet of magical, golden hair. Flynn's curious captor, who's looking for her ticket out of the tower where she's been locked away for years, strikes a deal with the handsome thief and the unlikely duo sets off on an action-packed escapade, complete with a super-cop horse, an over-protective chameleon and a gruff gang of pub thugs.","director":"Byron Howard","genres":"Animation Family","tagline":"They're taking adventure to new lengths."},{"title":"Ghost Rider: Spirit of Vengeance","overview":"When the devil resurfaces with aims to take over the world in human form, Johnny Blaze reluctantly comes out of hiding to transform into the flame-spewing supernatural hero Ghost Rider -- and rescue a 10-year-old boy from an unsavory end.","director":"Brian Taylor","genres":"Action Fantasy Thriller","tagline":"He Rides Again."},{"title":"War of the Worlds","overview":"Ray Ferrier is a divorced dockworker and less-than-perfect father. Soon after his ex-wife and her new husband drop of his teenage son and young daughter for a rare weekend visit, a strange and powerful lightning storm touches down.","director":"Steven Spielberg","genres":"Adventure Thriller Science Fiction","tagline":"They're already here."},{"title":"The Grey","overview":"An oil drilling team struggles to survive after a plane crash strands them in the wilds of Alaska. Hunting them is a pack of wolves that sees them as intruders.","director":"Joe Carnahan","genres":"Action Drama Thriller","tagline":"Live or Die on This Day"},{"title":"Superman","overview":"Mild-mannered Clark Kent works as a reporter at the Daily Planet alongside his crush, Lois Lane \u2212 who's in love with Superman. Clark must summon his superhero alter ego when the nefarious Lex Luthor launches a plan to take over the world.","director":"Richard Donner","genres":"Action Adventure Fantasy Science Fiction","tagline":"You'll Believe a Man Can Fly!"},{"title":"Bridge of Spies","overview":"During the Cold War, the Soviet Union captures U.S. pilot Francis Gary Powers after shooting down his U-2 spy plane. Sentenced to 10 years in prison, Powers' only hope is New York lawyer James Donovan, recruited by a CIA operative to negotiate his release. Donovan boards a plane to Berlin, hoping to win the young man's freedom through a prisoner exchange. If all goes well, the Russians would get Rudolf Abel, the convicted spy who Donovan defended in court.","director":"Steven Spielberg","genres":"Thriller Drama","tagline":"In the shadow of war, one man showed the world what we stood for."},{"title":"Insidious: Chapter 2","overview":"The haunted Lambert family seeks to uncover the mysterious childhood secret that has left them dangerously connected to the spirit world.","director":"James Wan","genres":"Horror Thriller","tagline":"It will take what you love most."},{"title":"Les Mis\u00e9rables","overview":"An adaptation of the successful stage musical based on Victor Hugo's classic novel set in 19th-century France, in which a paroled prisoner named Jean Valjean seeks redemption.","director":"Tom Hooper","genres":"Drama Music Romance","tagline":"Fight. Dream. Hope. Love."},{"title":"Side Effects","overview":"A woman turns to prescription medication as a way of handling her anxiety concerning her husband's upcoming release from prison.","director":"Steven Soderbergh","genres":"Thriller Crime Drama","tagline":"One pill can change your life."},{"title":"Batman Forever","overview":"The Dark Knight of Gotham City confronts a dastardly duo: Two-Face and the Riddler. Formerly District Attorney Harvey Dent, Two-Face believes Batman caused the courtroom accident which left him disfigured on one side. And Edward Nygma, computer-genius and former employee of millionaire Bruce Wayne, is out to get the philanthropist; as The Riddler. Former circus acrobat Dick Grayson, his family killed by Two-Face, becomes Wayne's ward and Batman's new partner Robin.","director":"Joel Schumacher","genres":"Action Crime Fantasy","tagline":"Courage now, truth always..."},{"title":"Lights Out","overview":"When Rebecca left home, she thought she left her childhood fears behind. Growing up, she was never really sure of what was and wasn\u2019t real when the lights went out\u2026and now her little brother, Martin, is experiencing the same unexplained and terrifying events that had once tested her sanity and threatened her safety. A frightening entity with a mysterious attachment to their mother, Sophie, has reemerged.","director":"David F. Sandberg","genres":"Horror Thriller","tagline":null},{"title":"Mirror Mirror","overview":"After she spends all her money, an evil enchantress queen schemes to marry a handsome, wealthy prince. There's just one problem - he's in love with a beautiful princess, Snow White. Now, joined by seven rebellious dwarves, Snow White launches an epic battle of good vs. evil...","director":"Tarsem Singh","genres":"Adventure Fantasy Drama Comedy Science Fiction","tagline":"The Snow White legend comes alive."},{"title":"Madagascar","overview":"Zoo animals leave the comforts of man-made habitats for exotic adventure in this animated family film. After escaping from the zoo, four friends -- a lion, a hippo, a zebra and a giraffe -- are sent back to Africa. When their ship capsizes, stranding them on Madagascar, an island populated by crazy critters, the pals must adapt to jungle life and their new roles as wild animals.","director":"Eric Darnell","genres":"Family Animation","tagline":"Someone's got a zoo loose."},{"title":"Pan","overview":"Living a bleak existence at a London orphanage, 12-year-old Peter finds himself whisked away to the fantastical world of Neverland. Adventure awaits as he meets new friend James Hook and the warrior Tiger Lily. They must band together to save Neverland from the ruthless pirate Blackbeard. Along the way, the rebellious and mischievous boy discovers his true destiny, becoming the hero forever known as Peter Pan.","director":"Joe Wright","genres":"Adventure Family Fantasy","tagline":"Every legend has a beginning."},{"title":"Wild Card","overview":"When a Las Vegas bodyguard with lethal skills and a gambling problem gets in trouble with the mob, he has one last play\u2026 and it's all or nothing.","director":"Simon West","genres":"Thriller Crime Drama","tagline":"Never bet against a man with a killer hand."},{"title":"Stardust","overview":"In a countryside town bordering on a magical land, a young man makes a promise to his beloved that he'll retrieve a fallen star by venturing into the magical realm. His journey takes him into a world beyond his wildest dreams and reveals his true identity.","director":"Matthew Vaughn","genres":"Adventure Fantasy Romance Family","tagline":"This Summer A Star Falls. The Chase Begins."},{"title":"Crank","overview":"Professional assassin Chev Chelios learns his rival has injected him with a poison that will kill him if his heart rate drops.","director":"Brian Taylor","genres":"Action Thriller Crime","tagline":"There are a thousand ways to raise your adrenaline. Today, Chev Chelios will need every single one."},{"title":"Chicken Little","overview":"When the sky really is falling and sanity has flown the coop, who will rise to save the day? Together with his hysterical band of misfit friends, Chicken Little must hatch a plan to save the planet from alien invasion and prove that the world's biggest hero is a little chicken.","director":"Mark Dindal","genres":"Animation Family Comedy","tagline":"When it comes to saving the world, it helps to be a little chicken."},{"title":"The NeverEnding Story","overview":"While hiding from bullies in his school's attic, a young boy discovers the extraordinary land of Fantasia, through a magical book called The Neverending Story. The book tells the tale of Atreyu, a young warrior who, with the help of a luck dragon named Falkor, must save Fantasia from the destruction of The Nothing.","director":"Wolfgang Petersen","genres":"Drama Family Fantasy Adventure","tagline":"A boy who needs a friend finds a world that needs a hero in a land beyond imagination!"},{"title":"Pocahontas","overview":"History comes gloriously to life in Disney's epic animated tale about love and adventure in the New World. Pocahontas is a Native American woman whose father has arranged for her to marry her village's best warrior. But a vision tells her change is coming, and soon she comes face to face with it in the form of Capt. John Smith.","director":"Mike Gabriel","genres":"Adventure Animation Drama Family","tagline":"An American legend comes to life."},{"title":"Goldfinger","overview":"Special agent 007 (Sean Connery) comes face to face with one of the most notorious villains of all time, and now he must outwit and outgun the powerful tycoon to prevent him from cashing in on a devious scheme to raid Fort Knox -- and obliterate the world's economy.","director":"Guy Hamilton","genres":"Adventure Action Thriller","tagline":"Everything he touches turns into excitement!"},{"title":"Vacation","overview":"Hoping to bring his family closer together and to recreate his childhood vacation for his own kids, a grown up Rusty Griswold takes his wife and their two sons on a cross-country road trip to the coolest theme park in America, Walley World. Needless to say, things don't go quite as planned.","director":"John Francis Daley","genres":"Comedy","tagline":"What could go wrong?"},{"title":"Clash of the Titans","overview":"Born of a god but raised as a man, Perseus is helpless to save his family from Hades, vengeful god of the underworld. With nothing to lose, Perseus volunteers to lead a dangerous mission to defeat Hades before he can seize power from Zeus and unleash hell on earth. Battling unholy demons and fearsome beasts, Perseus and his warriors will only survive if Perseus accepts his power as a god, defies fate and creates his own destiny.","director":"Louis Leterrier","genres":"Adventure Fantasy Action","tagline":"Titans will clash."},{"title":"Bambi","overview":"Bambi's tale unfolds from season to season as the young prince of the forest learns about life, love, and friends.","director":"David Hand","genres":"Animation Drama Family","tagline":"A great love story."},{"title":"The Girl with the Dragon Tattoo","overview":"This English-language adaptation of the Swedish novel by Stieg Larsson follows a disgraced journalist, Mikael Blomkvist, as he investigates the disappearance of a weary patriarch's niece from 40 years ago. He is aided by the pierced, tattooed, punk computer hacker named Lisbeth Salander. As they work together in the investigation, Blomkvist and Salander uncover immense corruption beyond anything they have ever imagined.","director":"David Fincher","genres":"Thriller Crime Mystery Drama","tagline":"Evil shall with evil be expelled."},{"title":"Predators","overview":"A mercenary reluctantly leads a motley crew of warriors who soon come to realize they've been captured and deposited on an alien planet by an unknown nemesis. With the exception of a peculiar physician, they are all cold-blooded killers, convicts, death squad members... hunters who have now become the hunted.","director":"Nimr\\u00f3d Antal","genres":"Action Science Fiction Adventure Thriller","tagline":"Fear is Reborn"},{"title":"The Exorcist","overview":"12-year-old Regan MacNeil begins to adapt an explicit new personality as strange events befall the local area of Georgetown. Her mother becomes torn between science and superstition in a desperate bid to save her daughter, and ultimately turns to her last hope: Father Damien Karras, a troubled priest who is struggling with his own faith.","director":"William Friedkin","genres":"Drama Horror Thriller","tagline":"Something almost beyond comprehension is happening to a girl on this street, in this house... and a man has been sent for as a last resort. This man is The Exorcist."},{"title":"Transporter 2","overview":"Professional driver Frank Martin is living in Miami, where he is temporarily filling in for a friend as the chauffeur for a government narcotics control policymaker and his family. The young boy in the family is targeted for kidnapping, and Frank immediately becomes involved in protecting the child and exposing the kidnappers.","director":"Louis Leterrier","genres":"Action Thriller Crime","tagline":"The Best In The Business Is Back In The Game."},{"title":"The Impossible","overview":"In December 2004, close-knit family Maria, Henry and their three sons begin their winter vacation in Thailand. But the day after Christmas, the idyllic holiday turns into an incomprehensible nightmare when a terrifying roar rises from the depths of the sea, followed by a wall of black water that devours everything in its path. Though Maria and her family face their darkest hour, unexpected displays of kindness and courage ameliorate their terror.","director":"Juan Antonio Bayona","genres":"Thriller Drama","tagline":"Nothing is more powerful than the human spirit."},{"title":"Edward Scissorhands","overview":"A small suburban town receives a visit from a castaway unfinished science experiment named Edward.","director":"Tim Burton","genres":"Fantasy Drama Romance","tagline":"His scars run deep."},{"title":"Hellboy","overview":"In the final days of World War II, the Nazis attempt to use black magic to aid their dying cause. The Allies raid the camp where the ceremony is taking place, but not before a demon - Hellboy - has already been conjured. Joining the Allied forces, Hellboy eventually grows to adulthood, serving the cause of good rather than evil.","director":"Guillermo del Toro","genres":"Fantasy Action Science Fiction","tagline":"From the Dark Side to Our Side."},{"title":"Paranormal Activity","overview":"After a young, middle class couple moves into a suburban 'starter' tract house, they become increasingly disturbed by a presence that may or may not be somehow demonic but is certainly most active in the middle of the night. Especially when they sleep. Or try to.","director":"Oren Peli","genres":"Horror Mystery","tagline":"What Happens When You Sleep?"},{"title":"Mama","overview":"Guillermo del Toro presents Mama, a supernatural thriller that tells the haunting tale of two little girls who disappeared into the woods the day that their parents were killed. When they are rescued years later and begin a new life, they find that someone or something still wants to come tuck them in at night.","director":"Andy Muschietti","genres":"Horror","tagline":"A Mother's Love is Forever"},{"title":"The League of Extraordinary Gentlemen","overview":"To prevent a world war from breaking out, famous characters from Victorian literature band together to do battle against a cunning villain.","director":"Stephen Norrington","genres":"Fantasy Action Thriller Science Fiction","tagline":"The power of seven become a league of one."},{"title":"Alvin and the Chipmunks","overview":"A struggling songwriter named Dave Seville finds success when he comes across a trio of singing chipmunks: mischievous leader Alvin, brainy Simon, and chubby, impressionable Theodore.","director":"Tim Hill","genres":"Comedy Music Family Fantasy Animation","tagline":"Get your squeak on!"},{"title":"The Polar Express","overview":"When a doubting young boy takes an extraordinary train ride to the North Pole, he embarks on a journey of self-discovery that shows him that the wonder of life never fades for those who believe.","director":"Robert Zemeckis","genres":"Adventure Animation Family Fantasy","tagline":"This holiday season... believe."},{"title":"Shrek 2","overview":"Shrek, Fiona and Donkey set off to Far, Far Away to meet Fiona's mother and father. But not everyone is happy. Shrek and the King find it hard to get along, and there's tension in the marriage. The fairy godmother discovers that Shrek has married Fiona instead of her Son Prince Charming and sets about destroying their marriage.","director":"Andrew Adamson","genres":"Adventure Animation Comedy Family Fantasy","tagline":"Once upon another time..."},{"title":"Shark Tale","overview":"Oscar is a small fish whose big aspirations often get him into trouble. Meanwhile, Lenny is a great white shark with a surprising secret that no sea creature would guess: He's a vegetarian. When a lie turns Oscar into an improbable hero and Lenny becomes an outcast, the two form an unlikely friendship.","director":"Vicky Jenson","genres":"Animation Action Comedy Family","tagline":"The story of what happens when one little fish tells a great white lie..."},{"title":"The Hurt Locker","overview":"Forced to play a dangerous game of cat-and-mouse in the chaos of war, an elite Army bomb squad unit must come together in a city where everyone is a potential enemy and every object could be a deadly bomb.","director":"Kathryn Bigelow","genres":"Drama Thriller War","tagline":"You'll know when you're in it."},{"title":"Oz: The Great and Powerful","overview":"Oscar Diggs, a small-time circus illusionist and con-artist, is whisked from Kansas to the Land of Oz where the inhabitants assume he's the great wizard of prophecy, there to save Oz from the clutches of evil.","director":"Sam Raimi","genres":"Fantasy Adventure Family","tagline":"In Oz, nothing is what it seems"},{"title":"Cloverfield","overview":"Five young New Yorkers throw their friend a going-away party the night that a monster the size of a skyscraper descends upon the city. Told from the point of view of their video camera, the film is a document of their attempt to survive the most surreal, horrifying event of their lives.","director":"Matt Reeves","genres":"Action Thriller Science Fiction","tagline":"Some Thing Has Found Us"},{"title":"Eagle Eye","overview":"Jerry Shaw and Rachel Holloman are two strangers whose lives are suddenly thrown into turmoil by a mysterious woman they have never met. Threatening their lives and family, the unseen caller uses everyday technology to control their actions and push them into increasing danger. As events escalate, Jerry and Rachel become the country's most-wanted fugitives and must figure out what is happening to them.","director":"D.J. Caruso","genres":"Mystery Thriller Action","tagline":"Don't walk. Run."},{"title":"The Simpsons Movie","overview":"After Homer accidentally pollutes the town's water supply, Springfield is encased in a gigantic dome by the EPA and the Simpsons are declared fugitives.","director":"David Silverman","genres":"Animation Comedy Family","tagline":"See our family. And feel better about yours."},{"title":"Ghost Rider","overview":"In order to save his dying father, young stunt cyclist, Johnny Blaze sells his soul to Mephistopheles and sadly parts from the pure-hearted, Roxanne Simpson, the love of his life. Years later, Johnny's path crosses again with Roxanne, now a go-getting reporter, and also with Mephistopheles, who offers to release Johnny's soul if Johnny becomes the fabled, fiery 'Ghost Rider'.","director":"Mark Steven Johnson","genres":"Thriller Action Fantasy Horror","tagline":"Hell Is About To Be Unleashed"},{"title":"Blackhat","overview":"A man is released from prison to help American and Chinese authorities pursue a mysterious cyber criminal. The dangerous search leads them from Chicago to Hong Kong.","director":"Michael Mann","genres":"Crime Drama Mystery","tagline":"We are no longer in control."},{"title":"Cloudy with a Chance of Meatballs","overview":"Inventor Flint Lockwood creates a machine that makes clouds rain food, enabling the down-and-out citizens of Chewandswallow to feed themselves. But when the falling food reaches gargantuan proportions, Flint must scramble to avert disaster. Can he regain control of the machine and put an end to the wild weather before the town is destroyed?","director":"Phil Lord","genres":"Animation Comedy Family","tagline":"Prepare to get served."},{"title":"The Hunchback of Notre Dame","overview":"When Quasi defies the evil Frollo and ventures out to the Festival of Fools, the cruel crowd jeers him. Rescued by fellow outcast the gypsy Esmeralda, Quasi soon finds himself battling to save the people and the city he loves.","director":"Gary Trousdale","genres":"Drama Animation Family","tagline":null},{"title":"Riddick","overview":"Betrayed by his own kind and left for dead on a desolate planet, Riddick fights for survival against alien predators and becomes more powerful and dangerous than ever before. Soon bounty hunters from throughout the galaxy descend on Riddick only to find themselves pawns in his greater scheme for revenge. With his enemies right where he wants them, Riddick unleashes a vicious attack of vengeance before returning to his home planet of Furya to save it from destruction.","director":"David Twohy","genres":"Science Fiction Action Thriller","tagline":"Survival Is His Revenge"},{"title":"Return of the Jedi","overview":"As Rebel leaders map their strategy for an all-out attack on the Emperor's newer, bigger Death Star. Han Solo remains frozen in the cavernous desert fortress of Jabba the Hutt, the most loathsome outlaw in the universe, who is also keeping Princess Leia as a slave girl. Now a master of the Force, Luke Skywalker rescues his friends, but he cannot become a true Jedi Knight until he wages his own crucial battle against Darth Vader, who has sworn to win Luke over to the dark side of the Force.","director":"Richard Marquand","genres":"Adventure Action Science Fiction","tagline":"The Empire Falls..."},{"title":"Looper","overview":"In the futuristic action thriller Looper, time travel will be invented but it will be illegal and only available on the black market. When the mob wants to get rid of someone, they will send their target 30 years into the past where a looper, a hired gun, like Joe is waiting to mop up. Joe is getting rich and life is good until the day the mob decides to close the loop, sending back Joe's future self for assassination.","director":"Rian Johnson","genres":"Action Thriller Science Fiction","tagline":"Hunted By Your Future, Haunted By Your Past"},{"title":"xXx","overview":"Xander Cage is your standard adrenaline junkie with no fear and a lousy attitude. When the US Government \"recruits\" him to go on a mission, he's not exactly thrilled. His mission: to gather information on an organization that may just be planning the destruction of the world, led by the nihilistic Yorgi.","director":"Rob Cohen","genres":"Action Adventure Thriller","tagline":"A New Breed Of Secret Agent."},{"title":"The Hunt for Red October","overview":"A new Soviet nuclear missile sub (a Boomer) heading out on her maiden voyage that is being tracked by a Los Angeles class American submarine suddenly goes silent and \"disappears\". This focuses the attention of both U.S. Intelligence and the U.S. Navy on the Russian Sub Commander .  When it is determined that the silent Soviet Boomer may be headed for American coastal waters panic ensues. A CIA analyst, Jack Ryan,  convinces the brass that the Boomer's commander may intend something other than a nuclear first strike in mind. A perilous and tense cat-and-mouse game ensues.","director":"John McTiernan","genres":"Action Adventure Thriller","tagline":"Invisible. Silent. Stolen."},{"title":"Rio","overview":"Captured by smugglers when he was just a hatchling, a macaw named Blu never learned to fly and lives a happily domesticated life in Minnesota with his human friend, Linda. Blu is thought to be the last of his kind, but when word comes that Jewel, a lone female, lives in Rio de Janeiro, Blu and Linda go to meet her. Animal smugglers kidnap Blu and Jewel, but the pair soon escape and begin a perilous adventure back to freedom -- and Linda.","director":"Carlos Saldanha","genres":"Animation Adventure Comedy Family","tagline":"1 out of every 8 Americans is afraid of flying. Most of them don't have feathers."},{"title":"Big Fish","overview":"Throughout his life Edward Bloom has always been a man of big appetites, enormous passions and tall tales. In his later years, he remains a huge mystery to his son, William. Now, to get to know the real man, Will begins piecing together a true picture of his father from flashbacks of his amazing adventures.","director":"Tim Burton","genres":"Adventure Fantasy Drama","tagline":"An adventure as big as life itself."},{"title":"Moneyball","overview":"The story of Oakland Athletics general manager Billy Beane's successful attempt to put together a baseball team on a budget, by employing computer-generated analysis to draft his players.","director":"Bennett Miller","genres":"Drama","tagline":"What are you really worth?"},{"title":"Gangs of New York","overview":"It's 1863. America was born in the streets. Amsterdam Vallon returns to the Five Points of America to seek vengeance against the psychotic gangland kingpin, Bill the Butcher, who murdered his father years earlier. With an eager pickpocket by his side and a whole new army, Vallon fights his way to seek vengeance on the Butcher and restore peace in the area.","director":"Martin Scorsese","genres":"Drama History Crime","tagline":"America was born in the streets."},{"title":"Airplane!","overview":"Alcoholic pilot, Ted Striker has developed a fear of flying due to wartime trauma, but nevertheless boards a passenger jet in an attempt to woo back his stewardess girlfriend. Food poisoning decimates the passengers and crew, leaving it up to Striker to land the plane with the help of a glue-sniffing air traffic controller and Striker's vengeful former Air Force captain, who must both talk him down.","director":"Jerry Zucker","genres":"Comedy","tagline":"What's slower than a speeding bullet, and able to hit tall buildings at a single bound?"},{"title":"Noah","overview":"A man who suffers visions of an apocalyptic deluge takes measures to protect his family from the coming flood.","director":"Darren Aronofsky","genres":"Drama Adventure","tagline":"The end of the world is just the beginning."},{"title":"Moon","overview":"With only three weeks left in his three year contract, Sam Bell is getting anxious to finally return to Earth. He is the only occupant of a Moon-based manufacturing facility along with his computer and assistant, GERTY. When he has an accident however, he wakens to find that he is not alone.","director":"Duncan Jones","genres":"Science Fiction Drama","tagline":"The last place you'd ever expect to find yourself."},{"title":"How to Be Single","overview":"New York City is full of lonely hearts seeking the right match, and what Alice, Robin, Lucy, Meg, Tom and David all have in common is the need to learn how to be single in a world filled with ever-evolving definitions of love.","director":"Christian Ditter","genres":"Comedy Romance","tagline":"Welcome to the party"},{"title":"Face\/Off","overview":"An antiterrorism agent goes under the knife to acquire the likeness of a terrorist and gather details about a bombing plot. When the terrorist escapes custody, he undergoes surgery to look like the agent so he can get close to the agent's family.","director":"John Woo","genres":"Action Crime Science Fiction Thriller","tagline":"In order to catch him, he must become him."},{"title":"Black Mass","overview":"The true story of Whitey Bulger, the brother of a state senator and the most infamous violent criminal in the history of South Boston, who became an FBI informant to take down a Mafia family invading his turf.","director":"Scott Cooper","genres":"Crime Drama","tagline":"Keep your enemies close."},{"title":"Pinocchio","overview":"Lonely toymaker Geppetto has his wishes answered when the Blue Fairy arrives to bring his wooden puppet Pinocchio to life. Before becoming a real boy, however, Pinocchio must prove he's worthy as he sets off on an adventure with his whistling sidekick and conscience, Jiminy Cricket. From Stromboli's circus to Pleasure Island, Pinocchio is tested by many temptations, but slowly learns how to navigate right from wrong. With a few mishaps along the way, Geppetto's \"little woodenhead\" finally gets it right, proving that when you wish upon a star dreams really can come true!","director":"Ben Sharpsteen","genres":"Animation Family","tagline":"For anyone who has ever wished upon a star."},{"title":"Scream","overview":"A killer known as Ghostface begins killing off teenagers, and as the body count begins rising, one girl and her friends find themselves contemplating the 'rules' of horror films as they find themselves living in a real-life one.","director":"Wes Craven","genres":"Crime Horror Mystery","tagline":"Someone has taken their love of scary movies one step too far."},{"title":"Ender's Game","overview":"Based on the classic novel by Orson Scott Card, Ender's Game is the story of the Earth's most gifted children training to defend their homeplanet in the space wars of the future.","director":"Gavin Hood","genres":"Science Fiction Action Adventure","tagline":"This is not a game."},{"title":"Insidious: Chapter 3","overview":"A twisted new tale of terror begins for a teenage girl and her family, predating the haunting of the Lambert family in the earlier movies and revealing more mysteries of the otherworldly realm The Further.","director":"Leigh Whannell","genres":"Drama Horror Thriller","tagline":"This is how you die"},{"title":"Identity","overview":"Complete strangers stranded at a remote desert motel during a raging storm soon find themselves the target of a deranged murderer. As their numbers thin out, the travelers begin to turn on each other, as each tries to figure out who the killer is.","director":"James Mangold","genres":"Mystery Thriller","tagline":"The secret lies within."},{"title":"Alien\u00b3","overview":"After escaping with Newt and Hicks from the alien planet, Ripley crash lands on Fiorina 161, a prison planet and host to a correctional facility. Unfortunately, although Newt and Hicks do not survive the crash, a more unwelcome visitor does. The prison does not allow weapons of any kind, and with aid being a long time away, the prisoners must simply survive in any way they can.","director":"David Fincher","genres":"Science Fiction Action Horror","tagline":"The bitch is back."},{"title":"Back to the Future Part III","overview":"The final installment of the Back to the Future trilogy finds Marty digging the trusty DeLorean out of a mineshaft and looking up Doc in the Wild West of 1885. But when their time machine breaks down, the travelers are stranded in a land of spurs. More problems arise when Doc falls for pretty schoolteacher Clara Clayton, and Marty tangles with Buford Tannen.","director":"Robert Zemeckis","genres":"Adventure Comedy Family Science Fiction","tagline":"They've saved the best trip for last... But this time they may have gone too far."},{"title":"Crouching Tiger, Hidden Dragon","overview":"Two warriors in pursuit of a stolen sword and a notorious fugitive are led to an impetuous, physically-skilled, teenage nobleman's daughter, who is at a crossroads in her life.","director":"Ang Lee","genres":"Adventure Drama Action Romance","tagline":"A timeless story of strength, secrets and two warriors who would never surrender."},{"title":"Inherent Vice","overview":"In Los Angeles at the turn of the 1970s, drug-fueled detective Larry \"Doc\" Sportello investigates the disappearance of an ex-girlfriend.","director":"Paul Thomas Anderson","genres":"Comedy Romance Crime Drama Mystery","tagline":"Under the paving stones, the beach!"},{"title":"The Angry Birds Movie","overview":"An island populated entirely by happy, flightless birds or almost entirely. In this paradise, Red, a bird with a temper problem, speedy Chuck, and the volatile Bomb have always been outsiders. But when the island is visited by mysterious green piggies, it\u2019s up to these unlikely outcasts to figure out what the pigs are up to.","director":"Fergal Reilly","genres":"Family Animation","tagline":"Why so angry?"},{"title":"Dances with Wolves","overview":"Wounded Civil War soldier, John Dunbar tries to commit suicide \u2013 and becomes a hero instead. As a reward, he's assigned to his dream post, a remote junction on the Western frontier, and soon makes unlikely friends with the local Sioux tribe.","director":"Kevin Costner","genres":"Adventure Drama Western","tagline":"Inside everyone is a frontier waiting to be discovered."},{"title":"Lost in Translation","overview":"Two lost souls visiting Tokyo -- the young, neglected wife of a photographer and a washed-up movie star shooting a TV commercial -- find an odd solace and pensive freedom to be real in each other's company, away from their lives in America.","director":"Sofia Coppola","genres":"Drama","tagline":"Everyone wants to be found."},{"title":"The Aviator","overview":"A biopic depicting the life of filmmaker and aviation pioneer Howard Hughes from 1927 to 1947, during which time he became a successful film producer and an aviation magnate, while simultaneously growing more unstable due to severe obsessive-compulsive disorder.","director":"Martin Scorsese","genres":"Drama","tagline":"For some men, the sky was the limit. For him, it was just the beginning."},{"title":"(500) Days of Summer","overview":"Tom (Joseph Gordon-Levitt), greeting-card writer and hopeless romantic, is caught completely off-guard when his girlfriend, Summer (Zooey Deschanel), suddenly dumps him. He reflects on their 500 days together to try to figure out where their love affair went sour, and in doing so, Tom rediscovers his true passions in life.","director":"Marc Webb","genres":"Comedy Drama Romance","tagline":"It was almost like falling in love."},{"title":"Grown Ups 2","overview":"The all-star comedy cast from Grown Ups returns (with some exciting new additions) for more summertime laughs. Lenny (Adam Sandler) has relocated his family back to the small town where he and his friends grew up. This time around, the grown ups are the ones learning lessons from their kids on a day notoriously full of surprises: the last day of school.","director":"Dennis Dugan","genres":"Comedy","tagline":"Just because they're a little older doesn't mean they've grown up."},{"title":"Anastasia","overview":"This animated adventure retells the story of the lost daughter of Russia's last czar. The evil Rasputin places a curse on the Romanov family, and Anastasia and her grandmother, Empress Maria, get separated. After growing up in an orphanage, Anastasia encounters two Russian men seeking a reward offered by Empress Maria for the return of her granddaughter. The trio travels to Paris, where they find that the empress has grown skeptical of imposters.","director":"Gary Goldman","genres":"Animation Family","tagline":"Discover the Adventure Behind the Greatest Mystery of Our Time."},{"title":"The Mortal Instruments: City of Bones","overview":"In New York City, Clary Fray, a seemingly ordinary teenager, learns that she is descended from a line of Shadowhunters \u2014 half-angel warriors who protect humanity from evil forces. After her mother disappears, Clary joins forces with a group of Shadowhunters and enters Downworld, an alternate realm filled with demons, vampires, and a host of other creatures. Clary and her companions must find and protect an ancient cup that holds the key to her mother's future.","director":"Harald Zwart","genres":"Action Adventure Drama Mystery Romance","tagline":"You have been chosen"},{"title":"28 Days Later","overview":"Twenty-eight days after a killer virus was accidentally unleashed from a British research facility, a small group of London survivors are caught in a desperate struggle to protect themselves from the infected. Carried by animals and humans, the virus turns those it infects into homicidal maniacs -- and it's absolutely impossible to contain.","director":"Danny Boyle","genres":"Horror Thriller Science Fiction","tagline":"His fear began when he woke up alone. His terror began when he realised he wasn't."},{"title":"Step Up","overview":"Everyone deserves a chance to follow their dreams, but some people only get one shot. Tyler Gage is a rebel from the wrong side of Baltimore's tracks and the only thing that stands between him and an unfulfilled life are his dreams of one day making it out of there. Nora is a privileged ballet dancer attending Baltimore's ultra-elite Maryland School of the Arts","director":"Anne Fletcher","genres":"Music Drama Romance Crime","tagline":"Every Second Chance Begins With a First Step"},{"title":"Pretty Woman","overview":"When millionaire wheeler-dealer Edward Lewis enters a business contract with Hollywood hooker Vivian Ward, he loses his heart in the bargain in this charming romantic comedy. After Edward hires Vivian as his date for a week and gives her a Cinderella makeover, she returns the favor by mellowing the hardnosed tycoon's outlook. Can the poor prostitute and the rich capitalist live happily ever after?","director":"Garry Marshall","genres":"Romance Comedy","tagline":"Who knew it was so much fun to be a hooker?"},{"title":"How the Grinch Stole Christmas","overview":"Inside a snowflake exists the magical land of Whoville. In Whoville, live the Whos, an almost mutated sort of Munchkin-like people. All the Whos love Christmas, yet just outside of their beloved Whoville lives the Grinch. The Grinch is a nasty creature that hates Christmas, and plots to steal it away from the Whos, whom he equally abhors. Yet a small child, Cindy Lou Who, decides to try befriending the Grinch.","director":"Ron Howard","genres":"Family Comedy Fantasy","tagline":"He puts the mean in green."},{"title":"Easy A","overview":"After a little white lie about losing her virginity gets out, a clean cut high school girl sees her life paralleling Hester Prynne's in \"The Scarlet Letter,\" which she is currently studying in school - until she decides to use the rumor mill to advance her social and financial standing.","director":"Will Gluck","genres":"Comedy","tagline":"The rumour-filled totally false account of how I ruined my flawless reputation."},{"title":"Serenity","overview":"When the renegade crew of Serenity agrees to hide a fugitive on their ship, they find themselves in an action-packed battle between the relentless military might of a totalitarian regime who will destroy anything \u2013 or anyone \u2013 to get the girl back and the bloodthirsty creatures who roam the uncharted areas of space. But... the greatest danger of all may be on their ship.","director":"Joss Whedon","genres":"Science Fiction Action Adventure Thriller","tagline":"Can't stop the signal."},{"title":"The Bourne Ultimatum","overview":"Bourne is brought out of hiding once again by reporter Simon Ross who is trying to unveil Operation Blackbriar, an upgrade to Project Treadstone, in a series of newspaper columns. Information from the reporter stirs a new set of memories, and Bourne must finally uncover his dark past while dodging The Company's best efforts to eradicate him.","director":"Paul Greengrass","genres":"Action Drama Mystery Thriller","tagline":"Remember everything. Forgive nothing."},{"title":"Goosebumps","overview":"A teenager teams up with the daughter of young adult horror author R.L. Stine after the writer's imaginary demons are set free on the town of Madison, Delaware.","director":"Rob Letterman","genres":"Adventure Horror Comedy","tagline":"The stories are alive."},{"title":"Central Intelligence","overview":"After he reunites with an old pal through Facebook, a mild-mannered accountant is lured into the world of international espionage.","director":"Rawson Marshall Thurber","genres":"Action Comedy","tagline":"Saving the world takes a little Hart and a big Johnson"},{"title":"The November Man","overview":"An ex- CIA operative is brought back in on a very personal mission and finds himself pitted against his former pupil in a deadly game involving high level CIA officials and the Russian president-elect.","director":"Roger Donaldson","genres":"Crime Action Thriller","tagline":"A spy is never out of the game."},{"title":"The Da Vinci Code","overview":"When the curator of the Louvre is found murdered in the famed museum's hallowed halls, Harvard professor, Robert Langdon and cryptographer, Sophie Neve must untangle a deadly web of deceit involving the works of Leonardo da Vinci.","director":"Ron Howard","genres":"Thriller Mystery","tagline":"Seek the truth."},{"title":"American Psycho","overview":"A wealthy New York investment banking executive hides his alternate psychopathic ego from his co-workers and friends as he escalates deeper into his illogical, gratuitous fantasies.","director":"Mary Harron","genres":"Thriller Drama Crime","tagline":"I think my mask of sanity is about to slip."},{"title":"Man on Fire","overview":"Jaded ex-CIA operative John Creasy reluctantly accepts a job as the bodyguard for a 10-year-old girl in Mexico City. They clash at first, but eventually bond, and when she's kidnapped he's consumed by fury and will stop at nothing to save her life.","director":"Tony Scott","genres":"Action Drama Thriller Crime","tagline":"Creasy's art is death, and he is about to paint his masterpiece."},{"title":"2012","overview":"Dr. Adrian Helmsley, part of a worldwide geophysical team investigating the effect on the earth of radiation from unprecedented solar storms, learns that the earth's core is heating up. He warns U.S. President Thomas Wilson that the crust of the earth is becoming unstable and that without proper preparations for saving a fraction of the world's population, the entire race is doomed. Meanwhile, writer Jackson Curtis stumbles on the same information. While the world's leaders race to build \"arks\" to escape the impending cataclysm, Curtis struggles to find a way to save his family. Meanwhile, volcanic eruptions and earthquakes of unprecedented strength wreak havoc around the world.","director":"Roland Emmerich","genres":"Action Adventure Science Fiction","tagline":"We Were Warned."},{"title":"Inside Man","overview":"Bank robber Dalton Russell enters a Manhattan bank, locks the doors and takes hostages, working methodically and without haste. Detective Frazier is assigned to negotiate, but his mind is occupied with the corruption charges he is facing. With an army of police surrounding the bank, the thief, the cop and a high-profile 'fixer' enter high-stakes negotiations.","director":"Spike Lee","genres":"Crime Drama Thriller","tagline":"It looked like the perfect bank robbery. But you can't judge a crime by its cover."},{"title":"Con Air","overview":"When the government puts all its rotten criminal eggs in one airborne basket, it's asking for trouble. Before you can say, \"Pass the barf bag,\" the crooks control the plane, led by creepy Cyrus \"The Virus\" Grissom. Watching his every move is the just-released Cameron Poe, who'd rather reunite with his family.","director":"Simon West","genres":"Action Thriller Crime","tagline":"They were deadly on the ground; Now they have wings"},{"title":"Red Riding Hood","overview":"Valerie is in love with a brooding outsider, Peter, but her parents have arranged for her to marry another man \u2013 who is wealthy. Unwilling to lose each other, Valerie and Peter plan to run away together when they learn that Valerie's older sister has been killed by a werewolf that prowls the dark forest surrounding their village. Hungry for revenge, the people call on famed werewolf hunter, Father Solomon, to help them kill the wolf. But Solomon's arrival brings unintended consequences as he warns that the wolf, who takes human form by day, could be any one of them.","director":"Catherine Hardwicke","genres":"Fantasy Thriller Horror","tagline":"Who's afraid?"},{"title":"21","overview":"Ben Campbell is a young, highly intelligent, student at M.I.T. in Boston who strives to succeed. Wanting a scholarship to transfer to Harvard School of Medicine with the desire to become a doctor, Ben learns that he cannot afford the $300,000 for the four to five years of schooling as he comes from a poor, working-class background. But one evening, Ben is introduced by his unorthodox math professor Micky Rosa into a small but secretive club of five. Students Jill, Choi, Kianna, and Fisher, who are being trained by Professor Rosa of the skill of card counting at blackjack.","director":"Robert Luketic","genres":"Drama Crime","tagline":"They proved the Vegas Blackjack System was beatable...by beating the hell out of it."},{"title":"Drag Me to Hell","overview":"After denying a woman the extension she needs to keep her home, loan officer Christine Brown sees her once-promising life take a startling turn for the worse. Christine is convinced she's been cursed by a Gypsy, but her boyfriend is skeptical. Her only hope seems to lie in a psychic who claims he can help her lift the curse and keep her soul from being dragged straight to hell.","director":"Sam Raimi","genres":"Horror Thriller","tagline":"Christine Brown has a good job, a great boyfriend, and a bright future. But in three days, she's going to hell."},{"title":"Gremlins","overview":"When Billy Peltzer is given a strange but adorable pet named Gizmo for Christmas, he inadvertently breaks the three important rules of caring for a Mogwai, and unleashes a horde of mischievous gremlins on a small town.","director":"Joe Dante","genres":"Fantasy Horror Comedy","tagline":"Don't get him wet, keep him out of bright light, and never feed him after midnight."},{"title":"Kick-Ass","overview":"Dave Lizewski is an unnoticed high school student and comic book fan who one day decides to become a super-hero, even though he has no powers, training or meaningful reason to do so.","director":"Matthew Vaughn","genres":"Action Crime","tagline":"Shut up. Kick ass."},{"title":"Dracula","overview":"When Dracula leaves the captive Jonathan Harker and Transylvania for London in search of Mina Harker -- the spitting image of Dracula's long-dead wife, Elisabeta -- obsessed vampire hunter Dr. Van Helsing sets out to end the madness.","director":"Francis Ford Coppola","genres":"Romance Horror","tagline":"Love never dies."},{"title":"Madagascar 3: Europe's Most Wanted","overview":"Alex, Marty, Gloria and Melman are still trying to get back to the Big Apple and their beloved Central Park zoo, but first they need to find the penguins. When they travel to Monte Carlo, they attract the attention of Animal Control after gate crashing a party and are joined by the penguins, King Julian and Co., and the monkeys. How do a lion, zebra, hippo, giraffe, four penguins, two monkeys, three lemurs travel through Europe without attracting attention and get back to New York? They join a traveling circus. Their attempts to get back to New York are consistently hampered by the Captain of Animal Control who wants to make Alex part of her collection. Once they make it back to New York Marty, Alex, Gloria and Melman realize that they want to be part of the traveling circus.","director":"Conrad Vernon","genres":"Animation Family","tagline":"Six years ago, they disappeared without a trace. Next summer, they finally resurface."},{"title":"The Holiday","overview":"Two women, one (Cameron Diaz) from America and one (Kate Winslet) from Britain, swap homes at Christmastime after bad breakups with their boyfriends. Each woman finds romance with a local man (Jude Law, Jack Black) but realizes that the imminent return home may end the relationship.","director":"Nancy Meyers","genres":"Comedy Romance","tagline":"It's Christmas Eve and we are going to go celebrate being young and being alive."},{"title":"Wrath of the Titans","overview":"A decade after his heroic defeat of the monstrous Kraken, Perseus-the demigod son of Zeus-is attempting to live a quieter life as a village fisherman and the sole parent to his 10-year old son, Helius. Meanwhile, a struggle for supremacy rages between the gods and the Titans. Dangerously weakened by humanity's lack of devotion, the gods are losing control of the imprisoned Titans and their ferocious leader, Kronos, father of the long-ruling brothers Zeus, Hades and Poseidon.","director":"Jonathan Liebesman","genres":"Adventure","tagline":"Feel the Wrath"},{"title":"Knight and Day","overview":"A fugitive couple goes on a glamorous and sometimes deadly adventure where nothing and no one \u2013 even themselves \u2013 are what they seem. Amid shifting alliances and unexpected betrayals, they race across the globe, with their survival ultimately hinging on the battle of truth vs. trust.","director":"James Mangold","genres":"Action Comedy","tagline":"Every Hit Man Deserves a Second Shot!"},{"title":"Collateral","overview":"Cab driver Max picks up a man who offers him $600 to drive him around. But the promise of easy money sours when Max realizes his fare is an assassin.","director":"Michael Mann","genres":"Drama Crime Thriller","tagline":"It started like any other night."},{"title":"Turbo","overview":"The tale of an ordinary garden snail who dreams of winning the Indy 500.","director":"David Soren","genres":"Animation Family","tagline":"SLO NO MO"},{"title":"The Blues Brothers","overview":"Jake Blues is just out of jail, and teams up with his brother, Elwood on a 'mission from God' to raise funds for the orphanage in which they grew up. The only thing they can do is do what they do best \u2013 play music \u2013 so they get their old band together and they're on their way, while getting in a bit of trouble here and there.","director":"John Landis","genres":"Music Comedy Action Crime","tagline":"They'll never get caught. They're on a mission from God."},{"title":"The Crow","overview":"Exactly one year after young rock guitarist Eric Draven and his fianc\u00e9e are brutally killed by a ruthless gang of criminals, Draven -- watched over by a hypnotic crow -- returns from the grave to exact revenge.","director":"Alex Proyas","genres":"Fantasy Action Thriller","tagline":"Real love is forever."},{"title":"Cube","overview":"Seven strangers are taken out of their daily lives and placed mysteriously in a deadly cube where they all agree they must find their way out.","director":"Vincenzo Natali","genres":"Thriller Science Fiction Mystery","tagline":"Don't look for a reason... Look for a way out."},{"title":"Waterworld","overview":"In a futuristic world where the polar ice caps have melted and made Earth a liquid planet, a beautiful barmaid rescues a mutant seafarer from a floating island prison. They escape, along with her young charge, Enola, and sail off aboard his ship. But the trio soon becomes the target of a menacing pirate who covets the map to 'Dryland' \u2013 which is tattooed on Enola's back.","director":"Kevin Reynolds","genres":"Adventure Action","tagline":"Beyond the horizon lies the secret to a new beginning."},{"title":"Mr. & Mrs. Smith","overview":"After five (or six) years of vanilla-wedded bliss, ordinary suburbanites John and Jane Smith are stuck in a huge rut. Unbeknownst to each other, they are both coolly lethal, highly-paid assassins working for rival organisations. When they discover they're each other's next target, their secret lives collide in a spicy, explosive mix of wicked comedy, pent-up passion, nonstop action and high-tech weaponry.","director":"Doug Liman","genres":"Action Comedy Drama Thriller","tagline":"Smart and sexy."},{"title":"Equilibrium","overview":"In a dystopian future, a totalitarian regime maintains peace by subduing the populace with a drug, and displays of emotion are punishable by death. A man in charge of enforcing the law rises to overthrow the system.","director":"Kurt Wimmer","genres":"Action Science Fiction Thriller","tagline":"In a future where freedom is outlawed, outlaws will become heroes."},{"title":"The Princess Bride","overview":"In this enchantingly cracked fairy tale, the beautiful Princess Buttercup and the dashing Westley must overcome staggering odds to find happiness amid six-fingered swordsmen, murderous princes, Sicilians and rodents of unusual size. But even death can't stop these true lovebirds from triumphing.","director":"Rob Reiner","genres":"Adventure Family Fantasy Comedy Romance","tagline":"It's as real as the feelings you feel."},{"title":"Dawn of the Dead","overview":"A group of surviving people take refuge in a shopping center after the world has been over taken over by aggressive, flesh-eating zombies. A remake of the 1978 zombie film of the same name.","director":"Zack Snyder","genres":"Fantasy Horror Action","tagline":"When the undead rise, civilization will fall."},{"title":"Fear and Loathing in Las Vegas","overview":"The hallucinogenic misadventures of sportswriter Raoul Duke and his Samoan lawyer, Dr. Gonzo, on a three-day romp from Los Angeles to Las Vegas. Motoring across the Mojave Desert on the way to Sin City, Duke and his purple haze passenger ingest a cornucopia of drugs ranging from acid to ether.","director":"Terry Gilliam","genres":"Adventure Drama Comedy","tagline":"Buy the ticket, take the ride."},{"title":"Kingdom of Heaven","overview":"After his wife dies, a blacksmith named Balian is thrust into royalty, political intrigue and bloody holy wars during the Crusades.","director":"Ridley Scott","genres":"Drama Action Adventure History War","tagline":"Be without fear in the face of your enemies. Safeguard the helpless, and do no wrong"},{"title":"Escape Plan","overview":"Ray Breslin is the world's foremost authority on structural security. After analyzing every high security prison and learning a vast array of survival skills so he can design escape-proof prisons, his skills are put to the test. He's framed and incarcerated in a master prison he designed himself. He needs to escape and find the person who put him behind bars.","director":"Mikael H\\u00e5fstr\\u00f6m","genres":"Action Thriller","tagline":"No one breaks out alone."},{"title":"Black Hawk Down","overview":"When U.S. Rangers and an elite Delta Force team attempt to kidnap two underlings of a Somali warlord, their Black Hawk helicopters are shot down, and the Americans suffer heavy casualties, facing intense fighting from the militia on the ground.","director":"Ridley Scott","genres":"Action History War","tagline":"Leave No Man Behind."},{"title":"City of God","overview":"Cidade de Deus is a shantytown that started during the 1960s and became one of Rio de Janeiro\u2019s most dangerous places in the beginning of the 1980s. To tell the story of this place, the movie describes the life of various characters, all seen by the point of view of the narrator, Buscap\u00e9. Buscap\u00e9 was raised in a very violent environment. Despite the feeling that all odds were against him, he finds out that life can be seen with other eyes: The eyes of an artist. By accident, he becomes a professional photographer, gaining his freedom.","director":"Fernando Meirelles","genres":"Drama Crime","tagline":"If you run you're dead... if you stay, you're dead again. Period."},{"title":"RED 2","overview":"Retired C.I.A. agent Frank Moses reunites his unlikely team of elite operatives for a global quest to track down a missing portable nuclear device.","director":"Dean Parisot","genres":"Action Comedy Crime Thriller","tagline":"The best never rest."},{"title":"Philadelphia","overview":"No one would take his case until one man was willing to take on the system. Two competing lawyers join forces to sue a prestigious law firm for AIDS discrimination. As their unlikely friendship develops their courage overcomes the prejudice and corruption of their powerful adversaries.","director":"Jonathan Demme","genres":"Drama","tagline":"No one would take on his case... until one man was willing to take on the system."},{"title":"The BFG","overview":"The BFG is no ordinary bone-crunching giant. He is far too nice and jumbly. It's lucky for Sophie that he is. Had she been carried off in the middle of the night by the Bloodbottler, or any of the other giants\u2014rather than the BFG\u2014she would have soon become breakfast. When Sophie hears that the giants are flush-bunking off to England to swollomp a few nice little chiddlers, she decides she must stop them once and for all. And the BFG is going to help her!","director":"Steven Spielberg","genres":"Adventure Family Fantasy","tagline":"The world is more giant than you can imagine."},{"title":"Madagascar: Escape 2 Africa","overview":"Alex, Marty, Melman, Gloria, King Julien, Maurice, the penguins and the chimps are back and still marooned on Madagascar. In the face of this obstacle, the New Yorkers have hatched a plan so crazy it just might work. With military precision, the penguins have repaired an old crashed plane... sort of.","director":"Eric Darnell","genres":"Family Animation","tagline":"Still together. Still lost!"},{"title":"Brokeback Mountain","overview":"Brokeback Mountain is an Ang Lee film about two modern day cowboys who meet on a shepherding job in the summer of \u201963. The two share a raw and powerful summer together that turns into a life long relationship conflicting with the lives they are supposed to live.","director":"Ang Lee","genres":"Drama Romance","tagline":"Love is a force of nature."},{"title":"Blended","overview":"After a bad blind date, a man and woman find themselves stuck together at a resort for families, where their attractions grows as their respective kids benefit from the burgeoning relationship.","director":"Frank Coraci","genres":"Comedy","tagline":"Single Dad, No Clue. Single Mum, Flying Solo."},{"title":"Star Wars: Episode III - Revenge of the Sith","overview":"Years after the onset of the Clone Wars, the noble Jedi Knights lead a massive clone army into a galaxy-wide battle against the Separatists. When the sinister Sith unveil a thousand-year-old plot to rule the galaxy, the Republic crumbles and from its ashes rises the evil Galactic Empire. Jedi hero Anakin Skywalker is seduced by the dark side of the Force to become the Emperor's new apprentice \u2013 Darth Vader. The Jedi are decimated, as Obi-Wan Kenobi and Jedi Master Yoda are forced into hiding. The only hope for the galaxy are Anakin's own offspring \u2013 the twin children born in secrecy who will grow up to become heroes.","director":"George Lucas","genres":"Science Fiction Adventure Action","tagline":"The saga is complete."},{"title":"Batman","overview":"The Dark Knight of Gotham City begins his war on crime with his first major enemy being the clownishly homicidal Joker, who has seized control of Gotham's underworld.","director":"Tim Burton","genres":"Fantasy Action","tagline":"Have you ever danced with the devil in the pale moonlight?"},{"title":"The Mechanic","overview":"Arthur Bishop is a 'mechanic' - an elite assassin with a strict code and unique talent for cleanly eliminating targets. It's a job that requires professional perfection and total detachment, and Bishop is the best in the business. But when he is ordered to take out his mentor and close friend Harry, Bishop is anything but detached.","director":"Simon West","genres":"Action Thriller Crime","tagline":"Someone has to fix the problems."},{"title":"Mars Attacks!","overview":"'We come in peace' is not what those green men from Mars mean when they invade our planet, armed with irresistible weapons and a cruel sense of humor.  This star studded cast must play victim to the alien\u2019s fun and games in this comedy homage to science fiction films of the '50s and '60s.","director":"Tim Burton","genres":"Comedy Fantasy Science Fiction","tagline":"Nice planet. We'll take it!"},{"title":"Shrek Forever After","overview":"A bored and domesticated Shrek pacts with deal-maker Rumpelstiltskin to get back to feeling like a real ogre again, but when he's duped and sent to a twisted version of Far Far Away\u2014where Rumpelstiltskin is king, ogres are hunted, and he and Fiona have never met\u2014he sets out to restore his world and reclaim his true love.","director":"Mike Mitchell","genres":"Comedy Adventure Fantasy Animation Family","tagline":"It ain't Ogre... Til it's Ogre"},{"title":"Star Wars: Episode II - Attack of the Clones","overview":"Ten years after the invasion of Naboo, the galaxy is on the brink of civil war. Under the leadership of a renegade Jedi named Count Dooku, thousands of solar systems threaten to break away from the Galactic Republic. When an assassination attempt is made on Senator Padm\u00e9 Amidala, the former Queen of Naboo, twenty-year-old Jedi apprentice Anakin Skywalker is assigned to protect her. In the course of his mission, Anakin discovers his love for Padm\u00e9 as well as his own darker side. Soon, Anakin, Padm\u00e9, and Obi-Wan Kenobi are drawn into the heart of the Separatist movement and the beginning of the Clone Wars.","director":"George Lucas","genres":"Adventure Action Science Fiction","tagline":"A Jedi Shall Not Know Anger. Nor Hatred. Nor Love."},{"title":"John Carter","overview":"John Carter is a war-weary, former military captain who's inexplicably transported to the mysterious and exotic planet of Barsoom (Mars) and reluctantly becomes embroiled in an epic conflict. It's a world on the brink of collapse, and Carter rediscovers his humanity when he realizes the survival of Barsoom and its people rests in his hands.","director":"Andrew Stanton","genres":"Action Adventure Science Fiction","tagline":"Lost in our world, found in another."},{"title":"The Last Stand","overview":"Ray Owens is sheriff of the quiet US border town of Sommerton Junction after leaving the LAPD following a bungled operation. Following his escape from the FBI, a notorious drug baron, his gang, and a hostage are heading toward Sommerton Junction where the police are preparing to make a last stand to intercept them before they cross the border. Owens is reluctant to become involved but ultimately joins in with the law enforcement efforts","director":"Kim Jee-woon","genres":"Action Crime Thriller","tagline":"Not in his town. Not on his watch."},{"title":"The Monuments Men","overview":"Based on the true story of the greatest treasure hunt in history, The Monuments Men is an action drama focusing on seven over-the-hill, out-of-shape museum directors, artists, architects, curators, and art historians who went to the front lines of WWII to rescue the world\u2019s artistic masterpieces from Nazi thieves and return them to their rightful owners.  With the art hidden behind enemy lines, how could these guys hope to succeed?","director":"George Clooney","genres":"War Drama History Action","tagline":"It was the greatest art heist in history"},{"title":"Due Date","overview":"Peter Highman must scramble across the US in five days to be present for the birth of his first child. He gets off to a bad start when his wallet and luggage are stolen, and put on the 'no-fly' list. Peter embarks on a terrifying journey when he accepts a ride from an actor.","director":"Todd Phillips","genres":"Comedy Drama","tagline":"Leave Your Comfort Zone"},{"title":"The Tree of Life","overview":"The impressionistic story of a Texas family in the 1950s. The film follows the life journey of the eldest son, Jack, through the innocence of childhood to his disillusioned adult years as he tries to reconcile a complicated relationship with his father. Jack finds himself a lost soul in the modern world, seeking answers to the origins and meaning of life while questioning the existence of faith.","director":"Terrence Malick","genres":"Drama Fantasy","tagline":"Nothing stands still."},{"title":"Yes Man","overview":"Carl Allen has stumbled across a way to shake free of post-divorce blues and a dead-end job: embrace life and say yes to everything.","director":"Peyton Reed","genres":"Comedy","tagline":"One Word Can Change Everything."},{"title":"Blade","overview":"When Blade's mother was bitten by a vampire during pregnancy, she did not know that she gave her son a special gift while dying: All the good vampire attributes in combination with the best human skills. Blade and his mentor Whistler battle an evil vampire rebel (Deacon Frost) who plans to take over the outdated vampire council, capture Blade and resurrect voracious blood god La Magra.","director":"Stephen Norrington","genres":"Horror Action","tagline":"Part Man. Part Vampire. All Hero."},{"title":"St. Vincent","overview":"A young boy whose parents just divorced finds an unlikely friend and mentor in the misanthropic, bawdy, hedonistic, war veteran who lives next door.","director":"Theodore Melfi","genres":"Comedy","tagline":"Love Thy Neighbor"},{"title":"Midnight in Paris","overview":"A romantic comedy about a family traveling to the French capital for business. The party includes a young engaged couple forced to confront the illusion that a life different from their own is better.","director":"Woody Allen","genres":"Fantasy Comedy Romance","tagline":null},{"title":"Warm Bodies","overview":"After a zombie becomes involved with the girlfriend of one of his victims, their romance sets in motion a sequence of events that might transform the entire lifeless world.","director":"Jonathan Levine","genres":"Horror Comedy Romance","tagline":"Cold body. Warm heart."},{"title":"Good Will Hunting","overview":"Will Hunting has a genius-level IQ but chooses to work as a janitor at MIT. When he solves a difficult graduate-level math problem, his talents are discovered by Professor Gerald Lambeau, who decides to help the misguided youth reach his potential. When Will is arrested for attacking a police officer, Professor Lambeau makes a deal to get leniency for him if he will get treatment from therapist Sean Maguire.","director":"Gus Van Sant","genres":"Drama","tagline":"Some people can never believe in themselves, until someone believes in them."},{"title":"Casablanca","overview":"In Casablanca, Morocco in December 1941, a cynical American expatriate meets a former lover, with unforeseen complications.","director":"Michael Curtiz","genres":"Drama Romance","tagline":"They had a date with fate in Casablanca!"},{"title":"The Woman in Black","overview":"The story follows a young lawyer, Arthur Kipps, who is ordered to travel to a remote village and sort out a recently deceased client\u2019s papers. As he works alone in the client\u2019s isolated house, Kipps begins to uncover tragic secrets, his unease growing when he glimpses a mysterious woman dressed only in black. Receiving only silence from the locals, Kipps is forced to uncover the true identity of the Woman in Black on his own, leading to a desperate race against time when he discovers her true identity.","director":"James Watkins","genres":"Drama Horror Thriller","tagline":"What did they see?"},{"title":"Into the Wild","overview":"The true story of top student and athlete, Christopher McCandless, who after graduating from Emory University in 1992, abandoned his possessions, gave his entire $24,000 savings account to charity and hitchhiked to Alaska to live in the wilderness.","director":"Sean Penn","genres":"Adventure Drama","tagline":"Into the heart. Into the soul."},{"title":"Corpse Bride","overview":"Set in a 19th-century european village, this stop-motion animation feature follows the story of Victor, a young man whisked away to the underworld and wed to a mysterious corpse bride, while his real bride Victoria waits bereft in the land of the living.","director":"Tim Burton","genres":"Romance Fantasy Animation Music","tagline":"There's been a grave misunderstanding."},{"title":"I Am Number Four","overview":"A teenage fugitive with an incredible secret races to stay one step ahead of the mysterious forces seeking destroy him in this sci-fi action thriller. With three dead and one on the run, the race to find the elusive Number Four begins. Outwardly normal teen John Smith never gets too comfortable in the same identity, and along with his guardian, Henri, he is constantly moving from town to town. With each passing day, John gains a stronger grasp on his extraordinary new powers, and his bond to the beings that share his fantastic fate grows stronger.","director":"D.J. Caruso","genres":"Action Thriller Science Fiction Adventure","tagline":"Three like him have already been killed\u2026he is Number Four."},{"title":"The Perks of Being a Wallflower","overview":"A coming-of-age story based on the best-selling novel by Stephen Chbosky, which follows 15-year-old freshman Charlie, an endearing and naive outsider who is taken under the wings of two seniors. A moving tale of love, loss, fear and hope - and the unforgettable friends that help us through life.","director":"Stephen Chbosky","genres":"Drama Romance","tagline":"We are infinite."},{"title":"Boyhood","overview":"The film tells a story of a divorced couple trying to raise their young son. The story follows the boy for twelve years, from first grade at age 6 through 12th grade at age 17-18, and examines his relationship with his parents as he grows.","director":"Richard Linklater","genres":"Drama","tagline":"12 years in the making."},{"title":"Jack the Giant Slayer","overview":"The story of an ancient war that is reignited when a young farmhand unwittingly opens a gateway between our world and a fearsome race of giants. Unleashed on the Earth for the first time in centuries, the giants strive to reclaim the land they once lost, forcing the young man, Jack into the battle of his life to stop them. Fighting for a kingdom, its people, and the love of a brave princess, he comes face to face with the unstoppable warriors he thought only existed in legend\u2013and gets the chance to become a legend himself.","director":"Bryan Singer","genres":"Action Family Fantasy","tagline":"Prepare for a giant adventure"},{"title":"The Secret Life of Walter Mitty","overview":"A timid magazine photo manager who lives life vicariously through daydreams embarks on a true-life adventure when a negative goes missing.","director":"Ben Stiller","genres":"Adventure Comedy Drama Fantasy","tagline":"Stop Dreaming, Start Living"},{"title":"Back to the Future Part II","overview":"Marty and Doc are at it again in this wacky sequel to the 1985 blockbuster as the time-traveling duo head to 2015 to nip some McFly family woes in the bud. But things go awry thanks to bully Biff Tannen and a pesky sports almanac. In a last-ditch attempt to set things straight, Marty finds himself bound for 1955 and face to face with his teenage parents -- again.","director":"Robert Zemeckis","genres":"Adventure Comedy Family Science Fiction","tagline":"Roads? Where we're going, we don't need roads!"},{"title":"Hachi: A Dog's Tale","overview":"A drama based on the true story of a college professor's bond with the abandoned dog he takes into his home.","director":"Lasse Hallstr\\u00f6m","genres":"Drama Family","tagline":"A true story of faith, devotion and undying love."},{"title":"Tropic Thunder","overview":"Vietnam veteran 'Four Leaf' Tayback's memoir, Tropic Thunder, is being made into a film, but Director Damien Cockburn can\u2019t control the cast of prima donnas. Behind schedule and over budget, Cockburn is ordered by a studio executive to get filming back on track, or risk its cancellation. On Tayback's advice, Cockburn drops the actors into the middle of the jungle to film the remaining scenes but, unbeknownst to the actors and production, the group have been dropped in the middle of the Golden Triangle, the home of heroin-producing gangs.","director":"Ben Stiller","genres":"Action Comedy","tagline":"The movie they think they're making... isn't a movie anymore."},{"title":"Paul","overview":"For the past 60 years, a space-traveling smart-ass named Paul has been locked up in a top-secret military base, advising world leaders about his kind. But when he worries he\u2019s outlived his usefulness and the dissection table is drawing uncomfortably close, Paul escapes on the first RV that passes by his compound in Area 51. Fortunately, it contains the two earthlings who are most likely to rescue and harbor an alien on the run.","director":"Greg Mottola","genres":"Adventure Comedy Science Fiction","tagline":"Who's up for a close encounter?"},{"title":"Total Recall","overview":"Construction worker Douglas Quaid discovers a memory chip in his brain during a virtual-reality trip. He also finds that his past has been invented to conceal a plot of planetary domination. Soon, he's off to Mars to find out who he is and who planted the chip.","director":"Paul Verhoeven","genres":"Action Adventure Science Fiction","tagline":"They stole his mind, now he wants it back."},{"title":"School of Rock","overview":"Fired from his band and hard up for cash, guitarist and vocalist Dewey Finn finagles his way into a job as a fourth-grade substitute teacher at a private school, where he secretly begins teaching his students the finer points of rock 'n' roll. The school's hard-nosed principal is rightly suspicious of Finn's activities. But Finn's roommate remains in the dark about what he's doing.","director":"Richard Linklater","genres":"Comedy Music","tagline":"He just landed the gig of his life: 5th grade."},{"title":"Unbroken","overview":"A chronicle of the life of Louis Zamperini, an Olympic runner who was taken prisoner by Japanese forces during World War II.","director":"Angelina Jolie","genres":"Drama War","tagline":"Survival. Resilience. Redemption."},{"title":"The Golden Compass","overview":"After overhearing a shocking secret, precocious orphan Lyra Belacqua trades her carefree existence roaming the halls of Jordan College for an otherworldly adventure in the far North, unaware that it's part of her destiny.","director":"Chris Weitz","genres":"Adventure Fantasy","tagline":"There are worlds beyond our own - the compass will show the way."},{"title":"Shrek the Third","overview":"The King of Far Far Away has died and Shrek and Fiona are to become King & Queen. However, Shrek wants to return to his cozy swamp and live in peace and quiet, so when he finds out there is another heir to the throne, they set off to bring him back to rule the kingdom.","director":"Chris Miller","genres":"Fantasy Adventure Animation Comedy Family","tagline":"Who's ready for Thirds?"},{"title":"AVP: Alien vs. Predator","overview":"When scientists discover something in the Arctic that appears to be a buried Pyramid, they send a research team out to investigate. Little do they know that they are about to step into a hunting ground where Aliens are grown as sport for the Predator race.","director":"Paul W.S. Anderson","genres":"Adventure Science Fiction Action","tagline":"Whoever wins... We lose"},{"title":"Wild","overview":"A woman with a tragic past decides to start her new life by hiking for one thousand miles on the Pacific Crest Trail.","director":"Jean-Marc Vall\\u00e9e","genres":"Drama","tagline":null},{"title":"The Host","overview":"A parasitic alien soul is injected into the body of Melanie Stryder. Instead of carrying out her race's mission of taking over the Earth, \"Wanda\" (as she comes to be called) forms a bond with her host and sets out to aid other free humans.","director":"Andrew Niccol","genres":"Action Adventure Romance Science Fiction Thriller","tagline":"You will be one of us"},{"title":"Tomorrow Never Dies","overview":"A deranged media mogul is staging international incidents to pit the world's superpowers against each other. Now 007 must take on this evil mastermind in an adrenaline-charged battle to end his reign of terror and prevent global pandemonium.","director":"Roger Spottiswoode","genres":"Adventure Action Thriller","tagline":"Yesterday is a memory. Today is history. Tomorrow is in the hands of one man."},{"title":"2 Guns","overview":"A DEA agent and an undercover Naval Intelligence officer who have been tasked with investigating one another find they have been set up by the mob -- the very organization the two men believe they have been stealing money from.","director":"Baltasar Korm\\u00e1kur","genres":"Action Comedy Crime","tagline":"2 Guns, 1 Bank."},{"title":"It's a Wonderful Life","overview":"George Bailey has spent his entire life giving of himself to the people of Bedford Falls. He has always longed to travel but never had the opportunity in order to prevent rich skinflint Mr. Potter from taking over the entire town. All that prevents him from doing so is George's modest building and loan company, which was founded by his generous father. But on Christmas Eve, George's Uncle Billy loses the business's $8,000 while intending to deposit it in the bank. Potter finds the misplaced money, hides it from Billy, and George's troubles begin.","director":"Frank Capra","genres":"Drama Family Fantasy","tagline":"It's a wonderful laugh! It's a wonderful love!"},{"title":"After Earth","overview":"One thousand years after cataclysmic events forced humanity's escape from Earth, Nova Prime has become mankind's new home. Legendary General Cypher Raige returns from an extended tour of duty to his estranged family, ready to be a father to his 13-year-old son, Kitai. When an asteroid storm damages Cypher and Kitai's craft, they crash-land on a now unfamiliar and dangerous Earth. As his father lies dying in the cockpit, Kitai must trek across the hostile terrain to recover their rescue beacon. His whole life, Kitai has wanted nothing more than to be a soldier like his father. Today, he gets his chance.","director":"M. Night Shyamalan","genres":"Science Fiction Action Adventure","tagline":"Danger is real, fear is a choice"},{"title":"The Legend of Tarzan","overview":"Tarzan, having acclimated to life in London, is called back to his former home in the jungle to investigate the activities at a mining encampment.","director":"David Yates","genres":"Action Adventure","tagline":"Human. Nature."},{"title":"Hitman","overview":"The best-selling videogame, Hitman, roars to life with both barrels blazing in this hardcore action-thriller starring Timothy Olyphant. A genetically engineered assassin with deadly aim, known only as \"Agent 47\" eliminates strategic targets for a top-secret organization. But when he's double-crossed, the hunter becomes the prey as 47 finds himself in a life-or-death game of international intrigue.","director":"Xavier Gens","genres":"Action Crime Drama Thriller","tagline":"Assassin 47"},{"title":"Death Race","overview":"Terminal Island, New York: 2020. Overcrowding in the US penal system has reached a breaking point. Prisons have been turned over to a monolithic Weyland Corporation, which sees jails full of thugs as an opportunity for televised sport. Adrenalized inmates, a global audience hungry for violence and a spectacular, enclosed arena come together to form the 'Death Race', the biggest, most brutal event.","director":"Paul W.S. Anderson","genres":"Action Thriller Science Fiction","tagline":"Get ready for a killer race."},{"title":"Perfume: The Story of a Murderer","overview":"Jean-Baptiste Grenouille, born in the stench of 18th century Paris, develops a superior olfactory sense, which he uses to create the world's finest perfumes. However, his work takes a dark turn as he tries to preserve scents in the search for the ultimate perfume.","director":"Tom Tykwer","genres":"Crime Fantasy Drama","tagline":"Based on the best-selling novel"},{"title":"Jack Ryan: Shadow Recruit","overview":"Jack Ryan, as a young covert CIA analyst, uncovers a Russian plot to crash the U.S. economy with a terrorist attack.","director":"Kenneth Branagh","genres":"Action Drama Thriller","tagline":"Trust no one."},{"title":"13 Hours: The Secret Soldiers of Benghazi","overview":"An American Ambassador is killed during an attack at a U.S. compound in Libya as a security team struggles to make sense out of the chaos.","director":"Michael Bay","genres":"Action Drama History Thriller War","tagline":"When everything went wrong, six men had the courage to do what was right."},{"title":"Bad Moms","overview":"When three overworked and under-appreciated moms are pushed beyond their limits, they ditch their conventional responsibilities for a jolt of long overdue freedom, fun, and comedic self-indulgence.","director":"Jon Lucas","genres":"Comedy","tagline":"Party like a mother."},{"title":"The Judge","overview":"A successful lawyer returns to his hometown for his mother's funeral only to discover that his estranged father, the town's judge, is suspected of murder.","director":"David Dobkin","genres":"Drama","tagline":"Defend your Honor."},{"title":"Rio 2","overview":"It's a jungle out there for Blu, Jewel and their three kids after they're hurtled from Rio de Janeiro to the wilds of the Amazon. As Blu tries to fit in, he goes beak-to-beak with the vengeful Nigel, and meets the most fearsome adversary of all: his father-in-law.","director":"Carlos Saldanha","genres":"Animation Adventure Comedy Family","tagline":"He's villainous, she's venomous."},{"title":"American Gangster","overview":"Following the death of his employer and mentor, Bumpy Johnson, Frank Lucas establishes himself as the number one importer of heroin in the Harlem district of Manhattan. He does so by buying heroin directly from the source in South East Asia and he comes up with a unique way of importing the drugs into the United States. Based on a true story.","director":"Ridley Scott","genres":"Drama Crime","tagline":"There are two sides to the American dream"},{"title":"Flight","overview":"Commercial airline pilot Whip Whitaker has a problem with drugs and alcohol, though so far he's managed to complete his flights safely. His luck runs out when a disastrous mechanical malfunction sends his plane hurtling toward the ground. Whip pulls off a miraculous crash-landing that results in only six lives lost. Shaken to the core, Whip vows to get sober -- but when the crash investigation exposes his addiction, he finds himself in an even worse situation.","director":"Robert Zemeckis","genres":"Drama","tagline":null},{"title":"The Help","overview":"Aibileen Clark is a middle-aged African-American maid who has spent her life raising white children and has recently lost her only son; Minny Jackson is an African-American maid who has often offended her employers despite her family's struggles with money and her desperate need for jobs; and Eugenia \"Skeeter\" Phelan is a young white woman who has recently moved back home after graduating college to find out her childhood maid has mysteriously disappeared. These three stories intertwine to explain how life in Jackson, Mississippi revolves around \"the help\"; yet they are always kept at a certain distance because of racial lines.","director":"Tate Taylor","genres":"Drama","tagline":"Change begins with a whisper."},{"title":"Saw II","overview":"When a new murder victim is discovered with all the signs of Jigsaw's hand, Detective Eric Matthews begins a full investigation and apprehends Jigsaw with little effort. But for Jigsaw, getting caught is just another part of his plan. Eight more of his victims are already fighting for their lives and now it's time for Matthews to join the game...","director":"Darren Lynn Bousman","genres":"Horror","tagline":"Oh Yes... There Will Be Blood."},{"title":"Ocean's Thirteen","overview":"Danny Ocean's team of criminals are back and composing a plan more personal than ever. When ruthless casino owner Willy Bank doublecrosses Reuben Tishkoff, causing a heart attack, Danny Ocean vows that he and his team will do anything to bring down Willy Bank along with everything he's got. Even if it means asking for help from an enemy.","director":"Steven Soderbergh","genres":"Crime Thriller","tagline":"What are the odds of getting even? 13 to one."},{"title":"Unbreakable","overview":"An ordinary man makes an extraordinary discovery when a train accident leaves his fellow passengers dead \u2013 and him unscathed. The answer to this mystery could lie with the mysterious Elijah Price, a man who suffers from a disease that renders his bones as fragile as glass.","director":"M. Night Shyamalan","genres":"Science Fiction Thriller Drama","tagline":"Some things are only revealed by accident."},{"title":"Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb","overview":"Insane General Jack D. Ripper initiates a nuclear strike on the Soviet Union. As soon as the actions of General \"Buck\" Turgidson are discovered, a war room full of politicians, generals and a Russian diplomat all frantically try to stop the nuclear strike. Near the end is a scene that is probably the most uniquely unforgettable performance of Slim Pickens in his movie career. Peter Sellers plays multiple roles in this film.","director":"Stanley Kubrick","genres":"Drama Comedy War","tagline":"The hot-line suspense comedy"},{"title":"Unfriended","overview":"While video chatting one night, six high school friends receive a Skype message from a classmate who killed herself exactly one year ago. A first they think it's a prank, but when the girl starts revealing the friends' darkest secrets, they realize they are dealing with something out of this world, something that wants them dead. Told entirely from a young girl's computer desktop, Unfriended redefines 'found footage' for a new generation of teens.","director":"Levan Gabriadze","genres":"Horror Thriller","tagline":"Online, your memories last forever. But so do your mistakes."},{"title":"Ghost","overview":"Sam Wheat is a banker, Molly Jensen is an artist, and the two are madly in love. However, when Sam is murdered by his friend and corrupt business partner Carl Bruner over a shady business deal, he is left to roam the earth as a powerless spirit. When he learns of Carl's betrayal, Sam must seek the help of psychic Oda Mae Brown to set things right and protect Molly from Carl and his goons.","director":"Jerry Zucker","genres":"Fantasy Drama Thriller Mystery Romance","tagline":"A love that will last forever."},{"title":"The Longest Ride","overview":"The lives of a young couple intertwine with a much older man as he reflects back on a lost love while he's trapped in an automobile crash.","director":"George Tillman, Jr.","genres":"Drama Romance","tagline":"Two couples. Two love stories. One epic tale."},{"title":"The Day the Earth Stood Still","overview":"A representative of an alien race that went through drastic evolution to survive its own climate change, Klaatu comes to Earth to assess whether humanity can prevent the environmental damage they have inflicted on their own planet. When barred from speaking to the United Nations, he decides humankind shall be exterminated so the planet can survive.","director":"Scott Derrickson","genres":"Drama Science Fiction Thriller","tagline":"12.12.08 is the Day the Earth Stood Still"},{"title":"The Mummy Returns","overview":"Rick and Evelyn O'Connell, along with their 8 year old son Alex, discover the key to the legendary Scorpion King's might, the fabled Bracelet of Anubis. Unfortunately, a newly resurrected Imhotep has designs on the bracelet as well, and isn't above kidnapping its new bearer, Alex, to gain control of Anubis' otherworldly army.","director":"Stephen Sommers","genres":"Adventure Action Fantasy","tagline":"The most powerful force on earth is about to be unleashed by the two people who should know better."},{"title":"Bolt","overview":"Bolt is the star of the biggest show in Hollywood. The only problem is, he thinks it's real. After he's accidentally shipped to New York City and separated from Penny, his beloved co-star and owner, Bolt must harness all his \"super powers\" to find a way home.","director":"Chris Williams","genres":"Animation Family Adventure Comedy","tagline":"Fully Awesome. Ridonculous. Let It Begin."},{"title":"Pineapple Express","overview":"A stoner and his dealer are forced to go on the run from the police after the pothead witnesses a cop commit a murder.","director":"David Gordon Green","genres":"Action Comedy","tagline":"Put this in your pipe and smoke it."},{"title":"47 Ronin","overview":"Based on the original 1941 movie from Japan, and from ancient Japan\u2019s most enduring tale, the epic 3D fantasy-adventure 47 Ronin is born.  Keanu Reeves leads the cast as Kai, an outcast who joins Oishi (Hiroyuki Sanada), the leader of the 47 outcast samurai.  Together they seek vengeance upon the treacherous overlord who killed their master and banished their kind.  To restore honor to their homeland, the warriors embark upon a quest that challenges them with a series of trials that would destroy ordinary warriors.","director":"Carl Rinsch","genres":"Drama Action Adventure Fantasy","tagline":"For courage. For loyalty. For honor."},{"title":"The Blair Witch Project","overview":"In October of 1994 three student filmmakers disappeared in the woods near Burkittsville, Maryland, while shooting a documentary. A year later their footage was found.","director":"Daniel Myrick","genres":"Horror Mystery","tagline":"The scariest movie of all time is a true story."},{"title":"Spirit: Stallion of the Cimarron","overview":"As a wild stallion travels across the frontiers of the Old West, he befriends a young human and finds true love with a mare.","director":"Kelly Asbury","genres":"Western Animation Adventure Comedy Family","tagline":"Leader. Hero. Legend."},{"title":"3 Days to Kill","overview":"A dangerous international spy is determined to give up his high stakes life to finally build a closer relationship with his estranged wife and daughter. But first, he must complete one last mission - even if it means juggling the two toughest assignments yet: hunting down the world's most ruthless terrorist and looking after his teenage daughter for the first time in ten years, while his wife is out of town.","director":"McG","genres":"Action Drama Thriller Crime","tagline":null},{"title":"Apocalypto","overview":"Set in the Mayan civilization, when a man's idyllic presence is brutally disrupted by a violent invading force, he is taken on a perilous journey to a world ruled by fear and oppression where a harrowing end awaits him. Through a twist of fate and spurred by the power of his love for his woman and his family he will make a desperate break to return home and to ultimately save his way of life.","director":"Mel Gibson","genres":"Action Adventure Drama Thriller","tagline":"No one can outrun their destiny."},{"title":"13 Going on 30","overview":"After total humiliation at her thirteenth birthday party, Jenna Rink wants to just hide until she's thirty. With a little magic, her wish is granted, but it turns out that being thirty isn't as always as awesome as she thought it would be!","director":"Gary Winick","genres":"Comedy Fantasy Romance","tagline":"For some, 13 feels like it was just yesterday. For Jenna, it was."},{"title":"Antz","overview":"In this animated hit, a neurotic worker ant in love with a rebellious princess rises to unlikely stardom when he switches places with a soldier. Signing up to march in a parade, he ends up under the command of a bloodthirsty general. But he's actually been enlisted to fight against a termite army.","director":"Eric Darnell","genres":"Adventure Animation Comedy Family","tagline":"Every ant has his day."},{"title":"Spotlight","overview":"The true story of how The Boston Globe uncovered the massive scandal of child abuse and the cover-up within the local Catholic Archdiocese, shaking the entire Catholic Church to its core.","director":"Tom McCarthy","genres":"Drama Thriller History","tagline":"Break the story. Break the silence."},{"title":"Lara Croft: Tomb Raider","overview":"English aristocrat Lara Croft is skilled in hand-to-hand combat and in the middle of a battle with a secret society. The shapely archaeologist moonlights as a tomb raider to recover lost antiquities and meets her match in the evil Powell, who's in search of a powerful relic.","director":"Simon West","genres":"Adventure Fantasy Action Thriller","tagline":"Born into Wealth. Groomed by the Elite. Trained for Combat."},{"title":"Romeo + Juliet","overview":"In director Baz Luhrmann's contemporary take on William Shakespeare's classic tragedy, the Montagues and Capulets have moved their ongoing feud to the sweltering suburb of Verona Beach, where Romeo and Juliet fall in love and secretly wed. Though the film is visually modern, the bard's dialogue remains.","director":"Baz Luhrmann","genres":"Drama Romance","tagline":"My only love sprung from my only hate."},{"title":"Seven Pounds","overview":"An IRS agent with a fateful secret embarks on an extraordinary journey of redemption by forever changing the lives of seven strangers.","director":"Gabriele Muccino","genres":"Drama","tagline":"Seven names. Seven strangers. One secret."},{"title":"RED","overview":"When his peaceful life is threatened by a high-tech assassin, former black-ops agent, Frank Moses reassembles his old team in a last ditch effort to survive and uncover his assailants.","director":"Robert Schwentke","genres":"Action Adventure Comedy Crime Thriller","tagline":"Still armed. Still dangerous. Still got it."},{"title":"The Tourist","overview":"American tourist Frank (Johnny Depp) meets mysterious British woman Elsie (Angelina Jolie) on the train to Venice. Romance seems to bud, but there's more to her than meets the eye. Remake of the 2005 French film \"Anthony Zimmer\", written and directed by J\u00e9r\u00f4me Salle.","director":"Florian Henckel von Donnersmarck","genres":"Action Thriller Romance","tagline":"It all started when he met a woman"},{"title":"The Day After Tomorrow","overview":"After years of increases in the greenhouse effect,  havoc is wreaked globally in the form of catastrophic hurricanes, tornadoes, tidal waves, floods and the beginning of a new Ice Age. Paleoclimatologist, Jack Hall tries to warn the world while also shepherding to safety his son, trapped in New York after the city is overwhelmed by the start of the new big freeze.","director":"Roland Emmerich","genres":"Action Adventure Science Fiction Thriller","tagline":"Where will you be?"},{"title":"The Beach","overview":"Twenty-something Richard travels to Thailand and finds himself in possession of a strange map. Rumours state that it leads to a solitary beach paradise, a tropical bliss - excited and intrigued, he sets out to find it.","director":"Danny Boyle","genres":"Drama Adventure Romance Thriller","tagline":"Somewhere on this planet it must exist."},{"title":"Insomnia","overview":"Two Los Angeles homicide detectives are dispatched to a northern town where the sun doesn't set to investigate the methodical murder of a local teen.","director":"Christopher Nolan","genres":"Crime Mystery Thriller","tagline":"A tough cop. A brilliant killer. An unspeakable crime."},{"title":"From Russia with Love","overview":"Agent 007 is back in the second installment of the James Bond series, this time battling a secret crime organization known as SPECTRE. Russians Rosa Klebb and Kronsteen are out to snatch a decoding device known as the Lektor, using the ravishing Tatiana to lure Bond into helping them. Bond willingly travels to meet Tatiana in Istanbul, where he must rely on his wits to escape with his life in a series of deadly encounters with the enemy","director":"Terence Young","genres":"Action Thriller Adventure","tagline":"The world's masters of murder pull out all the stops to destroy Agent 007!"},{"title":"Lawrence of Arabia","overview":"An epic about British officer T.E. Lawrence's mission to aid the Arab tribes in their revolt against the Ottoman Empire during the First World War. Lawrence becomes a flamboyant, messianic figure in the cause of Arab unity but his psychological instability threatens to undermine his achievements.","director":"David Lean","genres":"Adventure Drama History War","tagline":null},{"title":"Enemy at the Gates","overview":"Enemy at the Gates is a war film from Jean-Jacques Annaud from 2001 that takes place during the battle of Stalingard in World War II between the Russians and the Germans.","director":"Jean-Jacques Annaud","genres":"War","tagline":"Some Men Are Born To Be Heroes."},{"title":"Fantastic Mr. Fox","overview":"The Fantastic Mr. Fox bored with his current life, plans a heist against the three local farmers. The farmers, tired of sharing their chickens with the sly fox, seek revenge against him and his family.","director":"Wes Anderson","genres":"Adventure Animation Comedy Family","tagline":"Dig the life fantastic!"},{"title":"Paul Blart: Mall Cop 2","overview":"Security guard Paul Blart is headed to Las Vegas to attend a Security Guard Expo with his teenage daughter Maya before she departs for college. While at the convention, he inadvertently discovers a heist - and it's up to Blart to apprehend the criminals.","director":"Andy Fickman","genres":"Action Comedy Family","tagline":"Vegas has a new high roller."},{"title":"Ace Ventura: Pet Detective","overview":"He's Ace Ventura: Pet Detective. Jim Carrey is on the case to find the Miami Dolphins' missing mascot and quarterback Dan Marino. He goes eyeball to eyeball with a man-eating shark, stakes out the Miami Dolphins and woos and wows the ladies. Whether he's undercover, under fire or underwater, he always gets his man . . . or beast!","director":"Tom Shadyac","genres":"Comedy Mystery","tagline":"He's the best there is! (Actually, he's the only one there is.)"},{"title":"Cloudy with a Chance of Meatballs 2","overview":"After the disastrous food storm in the first film, Flint and his friends are forced to leave the town. Flint accepts the invitation from his idol Chester V to join The Live Corp Company, which has been tasked to clean the island, and where the best inventors in the world create technologies for the betterment of mankind. When Flint discovers that his machine still operates and now creates mutant food beasts like living pickles, hungry tacodiles, shrimpanzees and apple pie-thons, he and his friends must return to save the world.","director":"Cody Cameron","genres":"Animation Family Comedy","tagline":"Something big was leftover."},{"title":"Enemy of the State","overview":"Hotshot Washington lawyer, Robert Dean becomes a victim of high-tech identity theft when a hacker slips an incriminating video into his pocket. Soon, a rogue National Security agent sets out to recover the tape \u2013 and destroy Dean.","director":"Tony Scott","genres":"Action Drama Thriller","tagline":"It's not paranoia if they're really after you."},{"title":"Click","overview":"A workaholic architect finds a universal remote that allows him to fast-forward and rewind to different parts of his life. Complications arise when the remote starts to overrule his choices.","director":"Frank Coraci","genres":"Comedy Drama Fantasy Romance","tagline":"What If You Had A Remote... That Controlled Your Universe?"},{"title":"DodgeBall: A True Underdog Story","overview":"When megalomaniacal White Goodman, the owner of a trendy, high-end fitness center, makes a move to take over the struggling local gym run by happy-go-lucky Pete La Fleur, there's only one way for La Fleur to fight back: dodgeball. Aided by a dodgeball guru and Goodman's attorney, La Fleur and his rag-tag team of underdogs launch a knock-down, drag-out battle in which the winner takes all.","director":"Rawson Marshall Thurber","genres":"Comedy","tagline":"Grab Life By The Ball"},{"title":"Brazil","overview":"Low-level bureaucrat Sam Lowry escapes the monotony of his day-to-day life through a recurring daydream of himself as a virtuous hero saving a beautiful damsel. Investigating a case that led to the wrongful arrest and eventual death of an innocent man instead of wanted terrorist Harry Tuttle, he meets the woman from his daydream, and in trying to help her gets caught in a web of mistaken identities, mindless bureaucracy and lies.","director":"Terry Gilliam","genres":"Comedy Science Fiction","tagline":"It's only a state of mind."},{"title":"Moonrise Kingdom","overview":"Set on an island off the coast of New England in the summer of 1965, Moonrise Kingdom tells the story of two twelve-year-olds who fall in love, make a secret pact, and run away together into the wilderness. As various authorities try to hunt them down, a violent storm is brewing off-shore \u2013 and the peaceful island community is turned upside down in more ways than anyone can handle.","director":"Wes Anderson","genres":"Comedy Drama Romance","tagline":"A tormenting and surprising story of children and adults during the stormy days of the summer of 1965."},{"title":"The Road","overview":"A father and his son walk alone through burned America. Nothing moves in the ravaged landscape save the ash on the wind and water. It is cold enough to crack stones, and, when the snow falls it is gray. The sky is dark. Their destination is the warmer south, although they don't know what, if anything, awaits them there.","director":"John Hillcoat","genres":"Adventure Drama","tagline":"In a moment the world changed forever."},{"title":"Sinister","overview":"Found footage helps a true-crime novelist realize how and why a family was murdered in his new home, though his discoveries put his entire family in the path of a supernatural entity.","director":"Scott Derrickson","genres":"Horror Thriller Mystery","tagline":"Once you see him, nothing can save you."},{"title":"The Descendants","overview":"With his wife Elizabeth on life support after a boating accident, Hawaiian land baron, Matt King takes his daughters on a trip from Oahu to Kauai to confront the young real estate broker, who was having an affair with Elizabeth before her misfortune.","director":"Alexander Payne","genres":"Comedy Drama","tagline":"The South Pacific ain't that terrific."},{"title":"Wild Wild West","overview":"Legless Southern inventor Dr. Arliss Loveless plans to rekindle the Civil War by assassinating President U.S. Grant. Only two men can stop him: gunfighter James West and master-of-disguise and inventor Artemus Gordon. The two must team up to thwart Loveless' plans.","director":"Barry Sonnenfeld","genres":"Action Adventure Comedy Science Fiction Western","tagline":"It's a whole new west."},{"title":"Journey 2: The Mysterious Island","overview":"Sean Anderson partners with his mom's boyfriend on a mission to find his grandfather, who is thought to be missing on a mythical island.","director":"Brad Peyton","genres":"Adventure Action Science Fiction","tagline":"Believe the Impossible. Discover the Incredible."},{"title":"Beautiful Creatures","overview":"Ethan Wate just wants to get to know Lena Duchannes better, but unbeknownst to him, Lena has strange powers.  As Lena's 16th birthday approaches she might decide her fate, to be good or evil.  A choice which will impact her relationship forever.","director":"Richard LaGravenese","genres":"Fantasy Drama Romance","tagline":"Dark secrets will come to light."},{"title":"Resident Evil","overview":"When a virus leaks from a top-secret facility, turning all resident researchers into ravenous zombies and their lab animals into mutated hounds from hell, the government sends in an elite military task force to contain the outbreak. Alice and Rain are charged with leading the mission. But they only have three hours before the pathogen becomes airborne and infects the world.","director":"Paul W.S. Anderson","genres":"Horror Action Science Fiction","tagline":"A secret experiment. A deadly virus. A fatal mistake."},{"title":"Shame","overview":"Brandon is a New Yorker who shuns intimacy with women but feeds his desires with a compulsive addiction to sex. When his wayward younger sister moves into his apartment stirring memories of their shared painful past, Brandon's insular life spirals out of control.","director":"Steve McQueen","genres":"Drama","tagline":null},{"title":"Bridge to Terabithia","overview":"Jesse Aarons trained all summer to become the fastest runner in school, so he's very upset when newcomer Leslie Burke outruns him and everyone else. Despite this and other differences, including that she's rich, he's poor, and she's a city girl, he's a country boy, the two become fast friends. Together, they create Terabithia, a land of monsters, trolls, ogres, and giants and rule as king and queen.","director":"G\\u00e1bor Csup\\u00f3","genres":"Adventure Drama Family","tagline":"Close your eyes, but keep your mind wide open."},{"title":"Jackie Brown","overview":"Jackie Brown is a flight attendant who gets caught in the middle of smuggling cash into the country for her gunrunner boss. When the cops try to use Jackie to get to her boss, she hatches a plan\u2014with help from a bail bondsman\u2014to keep the money for herself. Based on Elmore Leonard's novel \u201cRum Punch\u201d.","director":"Quentin Tarantino","genres":"Comedy Crime Romance","tagline":"Six players on the trail of a half a million in Cash. There's only one question... Who's playing who?"},{"title":"The Taking of Pelham 1 2 3","overview":"Armed men hijack a New York City subway train, holding the passengers hostage in return for a ransom, and turning an ordinary day's work for dispatcher Walter Garber into a face-off with the mastermind behind the crime.","director":"Tony Scott","genres":"Thriller Drama Crime","tagline":"I can't get it out of my head. I'm gonna die today."},{"title":"You Don't Mess with the Zohan","overview":"An Israeli counterterrorism soldier with a secretly fabulous ambition to become a Manhattan hairstylist. Zohan's desire runs so deep that he'll do anything -- including faking his own death and going head-to-head with an Arab cab driver -- to make his dreams come true.","director":"Dennis Dugan","genres":"Comedy Action","tagline":"Lather. Rinse. Save the world."},{"title":"Friends with Benefits","overview":"Jamie is a New York-based executive recruiter who entices Dylan, an art director from Los Angeles, to take a job at the New York office of GQ magazine. Finding that they have much in common, the two become fast friends. Feeling jaded by a number of broken romances, Dylan and Jamie decide that they are ready to quit looking for true love and focus on having fun. However, complications unfold when the two best pals add sex to their relationship.","director":"Will Gluck","genres":"Romance Comedy","tagline":"Some friends come with a happy ending."},{"title":"Jurassic Park","overview":"A wealthy entrepreneur secretly creates a theme park featuring living dinosaurs drawn from prehistoric DNA. Before opening day, he invites a team of experts and his two eager grandchildren to experience the park and help calm anxious investors. However, the park is anything but amusing as the security systems go off-line and the dinosaurs escape.","director":"Steven Spielberg","genres":"Adventure Science Fiction","tagline":"An adventure 65 million years in the making."},{"title":"A Few Good Men","overview":"When cocky military lawyer Lt. Daniel Kaffee and his co-counsel, Lt. Cmdr. JoAnne Galloway, are assigned to a murder case, they uncover a hazing ritual that could implicate high-ranking officials such as shady Col. Nathan Jessep.","director":"Rob Reiner","genres":"Drama","tagline":null},{"title":"Child 44","overview":"Set in Stalin-era Soviet Union, a disgraced MGB agent is dispatched to investigate a series of child murders -- a case that begins to connect with the very top of party leadership.","director":"Daniel Espinosa","genres":"Crime Thriller","tagline":"How do you find a killer who doesn\u2019t exist?"},{"title":"Donnie Brasco","overview":"An FBI undercover agent infilitrates the mob and finds himself identifying more with the mafia life at the expense of his regular one.","director":"Mike Newell","genres":"Crime Drama Thriller","tagline":"Based on a true story."},{"title":"The DUFF","overview":"Bianca's universe turns upside down when she learns that her high school refers to her as a \u2018DUFF' (Designated Ugly Fat Friend). Hoping to erase that label, she enlists the help of a charming jock and her favorite teacher. Together they'll face the school's mean girl and remind everyone that we are all someone's DUFF\u2026 and that's totally fine.","director":"Ari Sandel","genres":"Romance Comedy","tagline":"You either know one, you have one, or you are one."},{"title":"Kick-Ass 2","overview":"After Kick-Ass\u2019 insane bravery inspires a new wave of self-made masked crusaders, he joins a patrol led by the Colonel Stars and Stripes. When these amateur superheroes are hunted down by Red Mist \u2014 reborn as The Mother Fucker \u2014 only the blade-wielding Hit-Girl can prevent their annihilation.","director":"Jeff Wadlow","genres":"Action Adventure Crime","tagline":"You Can't Fight Your Destiny."},{"title":"The Raid","overview":"Deep in the heart of Jakarta's slums lies an impenetrable safe house for the world's most dangerous killers and gangsters. Until now, the run-down apartment block has been considered untouchable to even the bravest of police. Cloaked under the cover of pre-dawn darkness and silence, an elite swat team is tasked with raiding the safe house in order to take down the notorious drug lord that runs it.  But when a chance encounter with a spotter blows their cover and news of their assault reaches the drug lord, the building's lights are cut and all the exits blocked. Stranded on the sixth floor with no way out, the unit must fight their way through the city's worst to survive their mission. Starring Indonesian martial arts sensation Iko Uwais.","director":"Gareth Evans","genres":"Action Thriller Crime","tagline":"1 Ruthless Crime Lord, 20 Elite Cops, 30 Floors of Hell"},{"title":"Percy Jackson: Sea of Monsters","overview":"In their quest to confront the ultimate evil, Percy and his friends battle swarms of mythical creatures to find the mythical Golden Fleece and to stop an ancient evil from rising.","director":"Thor Freudenthal","genres":"Adventure Family Fantasy","tagline":"Where There Are Gods, There Are Monsters."},{"title":"Charlie's Angels","overview":"Aspects of this take on the 1970s hit TV series are similar to the original show :Angels Dylan, Natalie and Alex still work for Charlie and interface with Bosley. They still flip their hair, stop traffic with a smile and kick butt. The differences are the unsubtle humor, the martial arts training and the high-tech premise: This time, they're hot on the trail of stolen software.","director":"McG","genres":"Action Adventure Comedy Crime Thriller","tagline":"Get Some Action"},{"title":"The Wrestler","overview":"Aging wrestler Randy \"The Ram\" Robinson is long past his prime but still ready and rarin' to go on the pro-wrestling circuit. After a particularly brutal beating, however, Randy hangs up his tights, pursues a serious relationship with a long-in-the-tooth stripper, and tries to reconnect with his estranged daughter. But he can't resist the lure of the ring and readies himself for a comeback.","director":"Darren Aronofsky","genres":"Drama Romance","tagline":"Love. Pain. Glory."},{"title":"The Princess Diaries","overview":"A socially awkward but very bright 15-year-old girl being raised by a single mom discovers that she is the princess of a small European country because of the recent death of her long-absent father, who, unknown to her, was the crown prince of Genovia. She must make a choice between continuing the life of a San Francisco teen or stepping up to the throne.","director":"Garry Marshall","genres":"Comedy Family Romance","tagline":"She rocks. She rules. She reigns."},{"title":"The Brothers Grimm","overview":"Folklore collectors and con artists, Jake and Will Grimm, travel from village to village pretending to protect townsfolk from enchanted creatures and performing exorcisms. However, they are put to the test  when they encounter a real magical curse in a haunted forest with real magical beings, requiring genuine courage.","director":"Terry Gilliam","genres":"Adventure Fantasy Action Comedy Thriller","tagline":"Eliminating Evil Since 1812."},{"title":"Austin Powers in Goldmember","overview":"The world's most shagadelic spy continues his fight against Dr. Evil. This time, the diabolical doctor and his clone, Mini-Me, team up with a new foe -- '70s kingpin Goldmember. While pursuing the team of villains to stop them from world domination, Austin gets help from his dad and an old girlfriend.","director":"Jay Roach","genres":"Comedy Crime Science Fiction","tagline":"He's still evil... He's still deadly... and he's still surrounded by frickin' idiots!"},{"title":"The Thin Red Line","overview":"Based on the graphic novel by James Jones, The Thin Red Line tells the story of a group of men, an Army Rifle company called C-for-Charlie, who change, suffer, and ultimately make essential discoveries about themselves during the fierce World War II battle of Guadalcanal. It follows their journey, from the surprise of an unopposed landing, through the bloody and exhausting battles that follow, to the ultimate departure of those who survived. A powerful frontline cast - including Sean Penn, Nick Nolte, Woody Harrelson and George Clooney - explodes into action in this hauntingly realistic view of military and moral chaos in the Pacific during World War II.","director":"Terrence Malick","genres":"Drama History War","tagline":"Every man fights his own war."},{"title":"Casino","overview":"The life of the gambling paradise \u2013 Las Vegas \u2013 and its dark mafia underbelly.","director":"Martin Scorsese","genres":"Drama Crime","tagline":"No one stays at the top forever."},{"title":"Maggie","overview":"There's a deadly zombie epidemic threatening humanity, but Wade, a small-town farmer and family man, refuses to accept defeat even when his daughter Maggie becomes infected. As Maggie's condition worsens and the authorities seek to eradicate those with the virus, Wade is pushed to the limits in an effort to protect her. Joely Richardson co-stars in this post-apocalyptic thriller.","director":"Henry Hobson","genres":"Horror","tagline":"Don't Get Bitten"},{"title":"American Reunion","overview":"The characters we met a little more than a decade ago are returning to East Great Falls for their high-school reunion. In one long-overdue weekend, they will discover what has changed, who hasn\u2019t and that time and distance can\u2019t break the bonds of friendship. It was summer 1999 when four small-town Michigan boys began a quest to lose their virginity. In the years that have passed, Jim and Michelle married while Kevin and Vicky said goodbye. Oz and Heather grew apart, but Finch still longs for Stifler\u2019s mom. Now these lifelong friends have come home as adults to reminisce about \u2013 and get inspired by \u2013 the hormonal teens who launched a comedy legend.","director":"Jon Hurwitz","genres":"Comedy","tagline":"Save the best piece for last."},{"title":"Spaceballs","overview":"When the nefarious Dark Helmet hatches a plan to snatch Princess Vespa and steal her planet's air, space-bum-for-hire Lone Starr and his clueless sidekick fly to the rescue. Along the way, they meet Yogurt, who puts Lone Starr wise to the power of \"The Schwartz.\" Can he master it in time to save the day?","director":"Mel Brooks","genres":"Comedy Science Fiction","tagline":"May the schwartz be with you"},{"title":"Paddington","overview":"A young Peruvian bear with a passion for all things British travels to London in search of a home. Finding himself lost and alone at Paddington Station, he begins to realize that city life is not all he had imagined - until he meets the kindly Brown family, who read the label around his neck ('Please look after this bear. Thank you.') and offer him a temporary haven. It looks as though his luck has changed until this rarest of bears catches the eye of a museum taxidermist...","director":"Paul King","genres":"Family Comedy","tagline":"The Adventure Begins"},{"title":"Teenage Mutant Ninja Turtles: Out of the Shadows","overview":"After supervillain Shredder escapes custody, he joins forces with mad scientist Baxter Stockman and two dimwitted henchmen, Bebop and Rocksteady, to unleash a diabolical plan to take over the world. As the Turtles prepare to take on Shredder and his new crew, they find themselves facing an even greater evil with similar intentions: the notorious Krang.","director":"Dave Green","genres":"Fantasy Action Adventure Comedy","tagline":"Raise some shell."},{"title":"The Girl Next Door","overview":"Exceptionally ambitious high schooler Matthew has aspirations for a career in politics when he falls in love with his gorgeous 19-year-old neighbor, Danielle. But Matthew's bright future is jeopardized when he finds Danielle was once a porn star. As Danielle's past catches up with her, Matthew's love for her forces him to re-evaluate his goals.","director":"Luke Greenfield","genres":"Comedy","tagline":"Matt never saw her coming... but all his friends had!"},{"title":"Seven Samurai","overview":"A samurai answers a village's request for protection after he falls on hard times. The town needs protection from bandits, so the samurai gathers six others to help him teach the people how to defend themselves, and the villagers provide the soldiers with food. A giant battle occurs when 40 bandits attack the village.","director":"Akira Kurosawa","genres":"Action Drama","tagline":"The Mighty Warriors Who Became the Seven National Heroes of a Small Town"},{"title":"A Christmas Carol","overview":"Miser Ebenezer Scrooge is awakened on Christmas Eve by spirits who reveal to him his own miserable existence, what opportunities he wasted in his youth, his current cruelties, and the dire fate that awaits him if he does not change his ways. Scrooge is faced with his own story of growing bitterness and meanness, and must decide what his own future will hold: death or redemption.","director":"Robert Zemeckis","genres":"Animation Drama","tagline":"Season's Greedings"},{"title":"O Brother, Where Art Thou?","overview":"In the deep south during the 1930s, three escaped convicts search for hidden treasure while a relentless lawman pursues them. On their journey they come across many comical characters and incredible situations. Based upon Homer's 'Odyssey'.","director":"Joel Coen","genres":"Action Adventure Comedy","tagline":"They have a plan...but not a clue."},{"title":"The World Is Not Enough","overview":"Greed, revenge, world dominance and high-tech terrorism \u2013 it's all in a day's work for Bond, who's on a mission to a protect beautiful oil heiress from a notorious terrorist. In a race against time that culminates in a dramatic submarine showdown, Bond works to defuse the international power struggle that has the world's oil supply hanging in the balance.","director":"Michael Apted","genres":"Adventure Action Thriller","tagline":"As the countdown begins for the new millennium there is still one number you can always count on."},{"title":"Ponyo","overview":"The son of a sailor, 5-year old Sosuke lives a quiet life on an oceanside cliff with his mother Lisa. One fateful day, he finds a beautiful goldfish trapped in a bottle on the beach and upon rescuing her, names her Ponyo. But she is no ordinary goldfish. The daughter of a masterful wizard and a sea goddess, Ponyo uses her father's magic to transform herself into a young girl and quickly falls in love with Sosuke, but the use of such powerful sorcery causes a dangerous imbalance in the world. As the moon steadily draws nearer to the earth and Ponyo's father sends the ocean's mighty waves to find his daughter, the two children embark on an adventure of a lifetime to save the world and fulfill Ponyo's dreams of becoming human.","director":"Hayao Miyazaki","genres":"Animation Family","tagline":"Welcome To A World Where Anything Is Possible."},{"title":"ParaNorman","overview":"In the town of Blithe Hollow, Norman Babcock is a boy who can speak to the dead, but no one besides his eccentric new friend, Neil, believes his ability is real. One day, Norman's estranged eccentric uncle tells him of an important annual ritual he must take up to protect the town from an curse cast by a witch it condemned centuries ago. Eventually, Norman decides to cooperate, but things don't go according to plan. Now, a magic storm of the witch threatens Blithe Hollow as the accursed dead rise. Together with unexpected new companions, Norman struggles to save his town, only to discover the horrific truth of the curse. With that insight, Norman must resolve the crisis for good as only he can.","director":"Sam Fell","genres":"Family Animation Adventure Comedy","tagline":"It's all fun and games until someone raises the dead."},{"title":"R.I.P.D.","overview":"A recently slain cop joins a team of undead police officers working for the Rest in Peace Department and tries to find the man who murdered him. Based on the comic by Peter M. Lenkov.","director":"Robert Schwentke","genres":"Fantasy Action Comedy Crime","tagline":"To protect and serve the living"},{"title":"The Watch","overview":"Four everyday suburban guys come together as an excuse to escape their humdrum lives one night a week. But when they accidentally discover that their town has become overrun with aliens posing as ordinary suburbanites, they have no choice but to save their neighborhood - and the world - from total extermination.","director":"Akiva Schaffer","genres":"Comedy","tagline":"Got Protection?"},{"title":"Aliens vs Predator: Requiem","overview":"A sequel to 2004's Alien vs. Predator, the iconic creatures from two of the scariest film franchises in movie history wage their most brutal battle ever - in our own backyard. The small town of Gunnison, Colorado becomes a war zone between two of the deadliest extra-terrestrial life forms - the Alien and the Predator. When a Predator scout ship crash-lands in the hills outside the town, Alien Facehuggers and a hybrid Alien\/Predator are released and begin to terrorize the town.","director":"Colin Strause","genres":"Fantasy Action Science Fiction Thriller Horror","tagline":"The Last Place On Earth We Want To Be Is In The Middle"},{"title":"Akira","overview":"Childhood friends Tetsuo and Kaneda are pulled into the post-apocalyptic underworld of Neo-Tokyo and forced to fight for their very survival. Kaneda is a bike gang leader, and Tetsuo is a member of a tough motorcycle crew who becomes involved in a covert government project called Akira. But a bloody battle ensues when Kaneda sets out to save his friend.","director":"Katsuhiro \\u014ctomo","genres":"Science Fiction Animation","tagline":"Neo-Tokyo is about to E.X.P.L.O.D.E."},{"title":"Brooklyn","overview":"In 1950s Ireland and New York, young Ellis Lacey has to choose between two men and two countries.","director":"John Crowley","genres":"Drama Romance","tagline":"Two countries, two loves, one heart"},{"title":"Dark City","overview":"A man struggles with memories of his past, including a wife he cannot remember, in a nightmarish world with no sun and run by beings with telekinetic powers who seek the souls of humans.","director":"Alex Proyas","genres":"Mystery Science Fiction","tagline":"A world where the night never ends."},{"title":"Some Like It Hot","overview":"Two musicians witness a mob hit and struggle to find a way out of the city before they are found by the gangsters. Their only opportunity is to join an all-girl band as they leave on a tour. To make their getaway they must first disguise themselves as women, then keep their identities secret and deal with the problems this brings - such as an attractive bandmate and a very determined suitor.","director":"Billy Wilder","genres":"Comedy Romance","tagline":"The movie too HOT for words!"},{"title":"Sucker Punch","overview":"A young girl is institutionalized by her abusive stepfather. Retreating to an alternative reality as a coping strategy, she envisions a plan which will help her escape from the mental facility.","director":"Zack Snyder","genres":"Action Fantasy Thriller","tagline":"You will be unprepared"},{"title":"Alexander","overview":"Alexander, the King of Macedonia, leads his legions against the giant Persian Empire. After defeating the Persians, he leads his army across the then known world, venturing farther than any westerner had ever gone, all the way to India.","director":"Oliver Stone","genres":"War History Action Adventure Drama","tagline":"The greatest legend of all was real."},{"title":"Hail, Caesar!","overview":"Tells the comedic tale of Eddie Mannix, a fixer who worked for the Hollywood studios in the 1950s. The story finds him at work when a star mysteriously disappears in the middle of filming.","director":"Joel Coen","genres":"Comedy Drama Mystery","tagline":"Lights. Camera. Abduction."},{"title":"White House Down","overview":"Capitol Policeman John Cale has just been denied his dream job with the Secret Service of protecting President James Sawyer. Not wanting to let down his little girl with the news, he takes her on a tour of the White House, when the complex is overtaken by a heavily armed paramilitary group. Now, with the nation's government falling into chaos and time running out, it's up to Cale to save the president, his daughter, and the country.","director":"Roland Emmerich","genres":"Action Drama Thriller","tagline":"It will start like any other day."},{"title":"Me, Myself & Irene","overview":"Rhode Island State Trooper Charlie Baileygates has a multiple personality disorder. One personality is crazy and aggressive, while the other is more friendly and laid back. Both of these personalities fall in love with the same woman named Irene after Charlie loses his medication.","director":"Bobby Farrelly","genres":"Comedy","tagline":"From gentle to mental."},{"title":"This Means War","overview":"Two top CIA operatives wage an epic battle against one another after they discover they are dating the same woman.","director":"McG","genres":"Action Comedy Romance","tagline":"It's SPY Against SPY"},{"title":"The Visit","overview":"The terrifying story of a brother and sister who are sent to their grandparents' remote Pennsylvania farm for a weeklong trip. Once the children discover that the elderly couple is involved in something deeply disturbing, they see their chances of getting back home are growing smaller every day.","director":"M. Night Shyamalan","genres":"Horror Thriller","tagline":"No one loves you like your grandparents."},{"title":"Treasure Planet","overview":"When space galleon cabin boy Jim Hawkins discovers a map to an intergalactic \"loot of a thousand worlds,\" a cyborg cook named John Silver teaches him to battle supernovas and space storms. But, soon, Jim realizes Silver is a pirate intent on mutiny!","director":"Ron Clements","genres":"Adventure Animation Family Fantasy Science Fiction","tagline":"Find your place in the universe."},{"title":"Scott Pilgrim vs. the World","overview":"Scott Pilgrim is a film adaptation of the critically acclaimed, award-winning series of graphic novels of the same name by Canadian cartoonist Bryan Lee O\u2019Malley. Scott Pilgrim is a 23 year old Canadian slacker and wannabe rockstar who falls in love with an American delivery girl, Ramona V. Flowers, and must defeat her seven \"evil exes\" to be able to date her.","director":"Edgar Wright","genres":"Action Adventure Comedy","tagline":"Get the hot girl. Defeat her evil exes. Hit love where it hurts."},{"title":"Grown Ups","overview":"After their high school basketball coach passes away, five good friends and former teammates reunite for a Fourth of July holiday weekend.","director":"Dennis Dugan","genres":"Comedy","tagline":"Boys will be boys. . . some longer than others."},{"title":"Valkyrie","overview":"Wounded in Africa during World War II, Nazi Col. Claus von Stauffenberg returns to his native Germany and joins the Resistance in a daring plan to create a shadow government and assassinate Adolf Hitler. When events unfold so that he becomes a central player, he finds himself tasked with both leading the coup and personally killing the F\u00fchrer.","director":"Bryan Singer","genres":"Drama Thriller History War","tagline":"Many saw evil. They dared to stop it."},{"title":"Hostel","overview":"Three backpackers head to a Slovakian city that promises to meet their hedonistic expectations, with no idea of the hell that awaits them.","director":"Eli Roth","genres":"Horror","tagline":"Welcome To Your Worst Nightmare"},{"title":"Contagion","overview":"As an epidemic of a lethal airborne virus - that kills within days - rapidly grows, the worldwide medical community races to find a cure and control the panic that spreads faster than the virus itself.","director":"Steven Soderbergh","genres":"Drama Thriller Science Fiction","tagline":"Nothing spreads like fear"},{"title":"Trance","overview":"A fine art auctioneer mixed up with a gang, joins forces with a hypnotherapist to recover a lost painting. As boundaries between desire, reality and hypnotic suggestion begin to blur, the stakes rise faster than anyone could have anticipated.","director":"Danny Boyle","genres":"Thriller Crime Drama Mystery","tagline":"Don't be a hero."},{"title":"Final Destination","overview":"After a teenager has a terrifying vision of him and his friends dying in a plane crash, he prevents the accident only to have Death hunt them down, one by one.","director":"James Wong","genres":"Horror","tagline":"No accidents. No coincidences. No escapes. You can't cheat death."},{"title":"A Fistful of Dollars","overview":"The Man With No Name enters the Mexican village of San Miguel in the midst of a power struggle among the three Rojo brothers and sheriff John Baxter. When a regiment of Mexican soldiers bearing gold intended to pay for new weapons is waylaid by the Rojo brothers, the stranger inserts himself into the middle of the long-simmering battle, selling false information to both sides for his own benefit.","director":"Sergio Leone","genres":"Western","tagline":"In his own way he is perhaps, the most dangerous man who ever lived!"},{"title":"Mr. Peabody & Sherman","overview":"A young boy and his dog, who happens to have a genius-level IQ, spring into action when their time-travel machine is stolen and moments in history begin to be changed.","director":"Rob Minkoff","genres":"Animation Adventure Family","tagline":"He's Leaving His Mark On History"},{"title":"True Lies","overview":"Harry Tasker is a secret agent for the United States Government. For years, he has kept his job from his wife, but is forced to reveal his identity and try to stop nuclear terrorists when he and his wife are kidnapped by them.","director":"James Cameron","genres":"Action Thriller","tagline":"When he said I do, he never said what he did."},{"title":"No Strings Attached","overview":"Emma is a busy doctor who sets up a seemingly perfect arrangement when she offers her best friend Adam a relationship with one rule: No strings attached. But when a fling becomes a thing, can sex friends stay best friends?","director":"Ivan Reitman","genres":"Comedy Romance","tagline":"Friendship has its benefits."},{"title":"Rambo: First Blood Part II","overview":"John Rambo is released from prison by the government for a top-secret covert mission to the last place on Earth he'd want to return - the jungles of Vietnam.","director":"George P. Cosmatos","genres":"Action Adventure Thriller War","tagline":"What most people call hell, he calls home."},{"title":"Unknown","overview":"An American biologist attending a conference in Berlin awakens from a coma after a car accident, only to discover that someone has taken his identity and that no one, not even his wife, believes him. With the help of an illegal immigrant and a former Stazi agent, he sets out to prove who he is and find out why people are trying to kill him.","director":"Jaume Collet-Serra","genres":"Action Mystery Thriller","tagline":"Take Back Your Life"},{"title":"Abraham Lincoln: Vampire Hunter","overview":"President Lincoln's mother is killed by a supernatural creature, which fuels his passion to crush vampires and their slave-owning helpers.","director":"Timur Bekmambetov","genres":"Action Fantasy Horror","tagline":"Are you a patriot or a vampire?"},{"title":"We Bought a Zoo","overview":"Benjamin has lost his wife and, in a bid to start his life over, purchases a large house that has a zoo \u2013 welcome news for his daughter, but his son is not happy about it. The zoo is need of renovation and Benjamin sets about the work with the head keeper and the rest of the staff, but, the zoo soon runs into financial trouble.","director":"Cameron Crowe","genres":"Drama Comedy Family","tagline":"A True Zoo Story"},{"title":"Hot Fuzz","overview":"Top London cop, PC Nicholas Angel is good. Too good.  To stop the rest of his team from looking bad, he is reassigned to the quiet town of Sandford, paired with simple country cop, and everything seems quiet until two actors are found decapitated. It is addressed as an accident, but Angel isn't going to accept that, especially when more and more people turn up dead.","director":"Edgar Wright","genres":"Crime Action Comedy","tagline":"Big cops. Small town. Moderate violence."},{"title":"Daddy's Home","overview":"The story of a mild-mannered radio executive (Ferrell) who strives to become the best stepdad ever to his wife's two children, but complications ensue when their freewheeling, freeloading real father arrives, forcing stepdad to compete for the affection of the kids.","director":"Sean Anders","genres":"Comedy","tagline":"Choose your Daddy"},{"title":"Final Destination 5","overview":"In this fifth installment, Death is just as omnipresent as ever, and is unleashed after one man\u2019s premonition saves a group of coworkers from a terrifying suspension bridge collapse. But this group of unsuspecting souls was never supposed to survive, and, in a terrifying race against time, the ill-fated group frantically tries to discover a way to escape Death\u2019s sinister agenda.","director":"Steven Quale","genres":"Horror Mystery","tagline":"We all share a common destination."},{"title":"The 40 Year Old Virgin","overview":"Andy Stitzer has a pleasant life with a nice apartment and a job stamping invoices at an electronics store. But at age 40, there's one thing Andy hasn't done, and it's really bothering his sex-obsessed male co-workers: Andy is still a virgin. Determined to help Andy get laid, the guys make it their mission to de-virginize him. But it all seems hopeless until Andy meets small business owner Trish, a single mom.","director":"Judd Apatow","genres":"Comedy Romance","tagline":"The longer you wait, the harder it gets"},{"title":"This Is 40","overview":"Pete and Debbie are both about to turn 40, their kids hate each other, both of their businesses are failing, they're on the verge of losing their house, and their relationship is threatening to fall apart.","director":"Judd Apatow","genres":"Comedy","tagline":"The sort-of sequel to 'Knocked Up'"},{"title":"Zero Dark Thirty","overview":"A chronicle of the decade-long hunt for al-Qaeda terrorist leader Osama bin Laden after the September 2001 attacks, and his death at the hands of the Navy S.E.A.L. Team 6 in May, 2011.","director":"Kathryn Bigelow","genres":"Thriller Drama History","tagline":"The Greatest Manhunt in History"},{"title":"Money Monster","overview":"Financial TV host Lee Gates and his producer Patty are put in an extreme situation when an irate investor takes over their studio.","director":"Jodie Foster","genres":"Thriller","tagline":"Not every conspiracy is a theory."},{"title":"The Untouchables","overview":"Young Treasury Agent Elliot Ness arrives in Chicago and is determined to take down Al Capone, but it's not going to be easy because Capone has the police in his pocket. Ness meets Jimmy Malone, a veteran patrolman and probably the most honorable one on the force. He asks Malone to help him get Capone, but Malone warns him that if he goes after Capone, he is going to war.","director":"Brian De Palma","genres":"Crime Drama History Thriller","tagline":"What are you prepared to do?"},{"title":"This Is the End","overview":"While attending a party at James Franco's house, Seth Rogen, Jay Baruchel and many other celebrities are faced with the apocalypse.","director":"Seth Rogen","genres":"Action Comedy","tagline":"Nothing ruins a party like the end of the world."},{"title":"A Nightmare on Elm Street","overview":"Teenagers in a small town are dropping like flies, apparently in the grip of mass hysteria causing their suicides. A cop's daughter, Nancy Thompson (Heather Langenkamp) traces the cause to child molester Fred Krueger (Robert Englund), who was burned alive by angry parents many years before. Krueger has now come back in the dreams of his killers' children, claiming their lives as his revenge. Nancy and her boyfriend, Glen (Johnny Depp), must devise a plan to lure the monster out of the realm of nightmares and into the real world...","director":"Wes Craven","genres":"Horror","tagline":"If Nancy Doesn't Wake Up Screaming, She Won't Wake Up At All!"},{"title":"The Boy","overview":"A nanny, working for a family whose son has just passed away, finds herself put in charge of caring for a lifelike doll that the couple treat as a real child.","director":"William Brent Bell","genres":"Horror Mystery Thriller","tagline":"Every child needs to feel loved."},{"title":"The Passion of the Christ","overview":"\"The Passion of the Christ\" is a film about the last 12 hours in the life of Jesus. Director Mel Gibson received much criticism from critics and audiences for his explicit depiction of and focus on violence and on christs suffering, especially on the part of the jewish community. The films languages are Arabic, Latin and Hebrew and its actors are laymen which was controversially received as well.","director":"Mel Gibson","genres":"Drama","tagline":"By his wounds, we were healed."},{"title":"The Neon Demon","overview":"When aspiring model Jesse moves to Los Angeles, her youth and vitality are devoured by a group of beauty-obsessed women who will take any means necessary to get what she has.","director":"Nicolas Winding Refn","genres":"Thriller Horror","tagline":"Beauty is vicious."},{"title":"Fantastic Four","overview":"Four young outsiders teleport to a dangerous universe, which alters their physical form in shocking ways. Their lives irrevocably upended, the team must learn to harness their daunting new abilities and work together to save Earth from a former friend turned enemy.","director":"Josh Trank","genres":"Action Adventure Science Fiction","tagline":"Change is coming."},{"title":"Anchorman 2: The Legend Continues","overview":"With the 70s behind him, San Diego's top rated newsman, Ron Burgundy, returns to take New York's first 24-hour news channel by storm.","director":"Adam McKay","genres":"Comedy","tagline":"It's kind of a big deal"},{"title":"What Happens in Vegas","overview":"During a wild vacation in Las Vegas, career woman Joy McNally and playboy Jack Fuller come to the sober realization that they have married each other after a night of drunken abandon. They are then compelled, for legal reasons, to live life as a couple for a limited period of time. At stake is a large amount of money.","director":"Tom Vaughan","genres":"Comedy Romance","tagline":"Get Lucky"},{"title":"Zoolander","overview":"Clear the runway for Derek Zoolander, VH1's three-time male model of the year. His face falls when hippie-chic \"he's so hot right now\" Hansel scooters in to steal this year's award. The evil fashion guru Mugatu seizes the opportunity to turn Derek into a killing machine. Its a well-designed conspiracy and only with the help of Hansel and a few well-chosen accessories can Derek make the world safe.","director":"Ben Stiller","genres":"Comedy","tagline":"3% Body Fat. 1% Brain Activity."},{"title":"Bad Boys II","overview":"Out-of-control, trash-talking buddy cops Marcus Burnett and Mike Lowrey of the Miami Narcotics Task Force reunite, and bullets fly, cars crash and laughs explode as they pursue a whacked-out drug lord from the streets of Miami to the barrios of Cuba. But the real fireworks result when Marcus discovers that playboy Mike is secretly romancing Marcus\u2019 sexy sister.","director":"Michael Bay","genres":"Adventure Action Comedy Thriller Crime","tagline":"If you can't stand the heat, get out of Miami."},{"title":"Date Night","overview":"Phil and Claire Foster fear that their mild-mannered relationship may be falling into a stale rut. During their weekly date night, their dinner reservation leads to their being mistaken for a couple of thieves \u2013 and now a number of unsavoury characters want Phil and Claire killed.","director":"Shawn Levy","genres":"Comedy","tagline":"One ordinary couple. One little white lie."},{"title":"Phone Booth","overview":"A slick New York publicist who picks up a ringing receiver in a phone booth is told that if he hangs up, he'll be killed... and the little red light from a laser rifle sight is proof that the caller isn't kidding.","director":"Joel Schumacher","genres":"Thriller Drama","tagline":"No options. No lies. No fear. No deals. Just keep talking."},{"title":"No Escape","overview":"In their new overseas home, an American family soon finds themselves caught in the middle of a coup, and they frantically look for a safe escape in an environment where foreigners are being immediately executed.","director":"John Erick Dowdle","genres":"Action Thriller","tagline":"No rescue. No refuge."},{"title":"Crazy, Stupid, Love.","overview":"Cal Weaver is living the American dream. He has a good job, a beautiful house, great children and a beautiful wife, named Emily. Cal's seemingly perfect life unravels, however, when he learns that Emily has been unfaithful and wants a divorce. Over 40 and suddenly single, Cal is adrift in the fickle world of dating. Enter, Jacob Palmer, a self-styled player who takes Cal under his wing and teaches him how to be a hit with the ladies.","director":"Glenn Ficarra","genres":"Comedy Drama Romance","tagline":"This Is Stupid"},{"title":"The Sound of Music","overview":"Film adaptation of a classic Rodgers and Hammerstein musical based on a nun who becomes a governess for an Austrian family.","director":"Robert Wise","genres":"Drama Family Music Romance","tagline":"The happiest sound in all the world!"},{"title":"Immortals","overview":"Theseus is a mortal man chosen by Zeus to lead the fight against the ruthless King Hyperion, who is on a rampage across Greece to obtain a weapon that can destroy humanity.","director":"Tarsem Singh","genres":"Fantasy Action Drama","tagline":"The Gods need a hero."},{"title":"As Good as It Gets","overview":"New York City. Melvin Udall, a cranky, bigoted, obsessive-compulsive writer, finds his life turned upside down when neighboring gay artist Simon is hospitalized and his dog is entrusted to Melvin. In addition, Carol, the only waitress who will tolerate him, must leave work to care for her sick son, making it impossible for Melvin to eat breakfast.","director":"James L. Brooks","genres":"Comedy Romance","tagline":"A comedy from the heart that goes for the throat."},{"title":"That Awkward Moment","overview":"Best pals Jason and Daniel indulge in casual flings and revel in their carefree, unattached lives. After learning that the marriage of their friend Mikey is over, they gladly welcome him back into their circle. The three young men make a pact to have fun and avoid commitment. However, when all three find themselves involved in serious relationships, they must keep their romances secret from one another.","director":"Tom Gormican","genres":"Comedy Romance","tagline":"When you realize getting some means wanting more."},{"title":"There Will Be Blood","overview":"When ruthless oil prospector, Daniel Plainview learns of oil-rich land in California that can be bought cheaply, he moves his operation there and begins manipulating and exploiting the local landowners into selling him their property. Using his young adopted son to project the image of a caring family man, Plainview gains the cooperation of almost all the locals with lofty promises to build schools and cultivate the land to make their community flourish. Over time, Plainview's gradual accumulation of wealth and power causes his true self to surface, and he begins to slowly alienate himself from everyone in his life.","director":"Paul Thomas Anderson","genres":"Drama","tagline":"There Will Be Greed. There Will Be Vengeance."},{"title":"The Last of the Mohicans","overview":"As the English and French soldiers battle for control of the American colonies in the 18th century, the settlers and native Americans are forced to take sides. Cora and her sister Alice unwittingly walk into trouble but are reluctantly saved by Hawkeye, an orphaned settler adopted by the last of the Mohicans.","director":"Michael Mann","genres":"Action Adventure Drama History Romance","tagline":"The first American hero."},{"title":"Safe Haven","overview":"A young woman with a mysterious past lands in Southport, North Carolina where her bond with a widower forces her to confront the dark secret that haunts her.","director":"Lasse Hallstr\\u00f6m","genres":"Romance","tagline":"You know it when you find it"},{"title":"Unstoppable","overview":"A runaway train, transporting deadly, toxic chemicals, is barreling down on Stanton, Pennsylvania, and only two men can stop it: a veteran engineer and a young conductor. Thousands of lives hang in the balance as these ordinary heroes attempt to chase down one million tons of hurtling steel and prevent an epic disaster.","director":"Tony Scott","genres":"Action Thriller","tagline":"1,000,000 Tons. 100,000 Lives. 100 Minutes."},{"title":"The Island","overview":"In 2019, Lincoln Six-Echo is a resident of a seemingly \"Utopian\" but contained facility. Like all of the inhabitants of this carefully-controlled environment, Lincoln hopes to be chosen to go to The Island \u2014 reportedly the last uncontaminated location on the planet. But Lincoln soon discovers that everything about his existence is a lie.","director":"Michael Bay","genres":"Action Thriller Science Fiction Adventure","tagline":"Your time will come..."},{"title":"Robin Hood","overview":"When soldier Robin happens upon the dying Robert of Loxley, he promises to return the man's sword to his family in Nottingham. There, he assumes Robert's identity; romances his widow, Marion; and draws the ire of the town's sheriff and King John's henchman, Godfrey.","director":"Ridley Scott","genres":"Action Adventure","tagline":"Rise and rise again, until lambs become lions."},{"title":"The Heat","overview":"Uptight and straight-laced, FBI Special Agent Sarah Ashburn is a methodical investigator with a reputation for excellence--and hyper-arrogance. Shannon Mullins, one of Boston P.D.'s \"finest,\" is foul-mouthed and has a very short fuse, and uses her gut instinct and street smarts to catch the most elusive criminals. Neither has ever had a partner, or a friend for that matter. When these two wildly incompatible law officers join forces to bring down a ruthless drug lord, they become the last thing anyone expected: Buddies.","director":"Paul Feig","genres":"Action Comedy Crime","tagline":"Action's never been so hot!"},{"title":"A Most Violent Year","overview":"A thriller set in New York City during the winter of 1981, statistically one of the most violent years in the city's history, and centered on a the lives of an immigrant and his family trying to expand their business and capitalize on opportunities as the rampant violence, decay, and corruption of the day drag them in and threaten to destroy all they have built.","director":"J.C. Chandor","genres":"Crime Drama Thriller","tagline":"The result is never in question. Just the path you take to get there."},{"title":"I Origins","overview":"I Origins follows a molecular biologist studying the evolution of the human eye.  He finds his work permeating his life after a brief encounter with an exotic young woman who slips away from him.  As his research continues years later with his lab partner, they make a stunning scientific discovery that has far reaching implications and complicates both his scientific and and spiritual beliefs.  Traveling half way around the world, he risks everything he has ever known to validate his theory.","director":"Mike Cahill","genres":"Science Fiction Drama","tagline":null},{"title":"The Scorpion King","overview":"In ancient Egypt, peasant Mathayus is hired to exact revenge on the powerful Memnon and the sorceress Cassandra, who are ready to overtake Balthazar's village. Amid betrayals, thieves, abductions and more, Mathayus strives to bring justice to his complicated world.","director":"Chuck Russell","genres":"Action Fantasy Adventure","tagline":"Warrior. Legend. King."},{"title":"Body of Lies","overview":"The CIA\u2019s hunt is on for the mastermind of a wave of terrorist attacks. Roger Ferris is the agency\u2019s man on the ground, moving from place to place, scrambling to stay ahead of ever-shifting events. An eye in the sky \u2013 a satellite link \u2013 watches Ferris.  At the other end of that real-time link is the CIA\u2019s Ed Hoffman, strategizing events from thousands of miles away. And as Ferris nears the target, he discovers trust can be just as dangerous as it is necessary for survival.","director":"Ridley Scott","genres":"Action Drama Thriller","tagline":"Trust no one. Deceive everyone."},{"title":"The Time Traveler's Wife","overview":"Due to a genetic disorder, handsome librarian Henry DeTamble involuntarily zips through time, appearing at various moments in the life of his true love, the beautiful artist Clare Abshire.","director":"Robert Schwentke","genres":"Drama Romance Fantasy","tagline":null},{"title":"Alien: Resurrection","overview":"Two hundred years after Lt. Ripley died, a group of scientists clone her, hoping to breed the ultimate weapon. But the new Ripley is full of surprises \u2026 as are the new aliens. Ripley must team with a band of smugglers to keep the creatures from reaching Earth.","director":"Jean-Pierre Jeunet","genres":"Science Fiction Horror Action","tagline":"It's already too late."},{"title":"Unforgiven","overview":"William Munny is a retired, once-ruthless killer turned gentle widower and hog farmer. To help support his two motherless children, he accepts one last bounty-hunter mission to find the men who brutalized a prostitute. Joined by his former partner and a cocky greenhorn, he takes on a corrupt sheriff.","director":"Clint Eastwood","genres":"Western","tagline":"Some legends will never be forgotten. Some wrongs can never be forgiven."},{"title":"Shooter","overview":"A marksman living in exile is coaxed back into action after learning of a plot to kill the president. Ultimately double-crossed and framed for the attempt, he goes on the run to track the real killer and find out who exactly set him up, and why.","director":"Antoine Fuqua","genres":"Action Drama Mystery Thriller Crime","tagline":"Yesterday was about honor. Today is about justice."},{"title":"Final Destination 2","overview":"When Kimberly has a violent premonition of a highway pileup she blocks the freeway, keeping a few others meant to die, safe...Or are they? The survivors mysteriously start dying and it's up to Kimberly to stop it before she's next.","director":"David R. Ellis","genres":"Horror Mystery","tagline":"Death is like a boomerang. it keeps coming back"},{"title":"The Walk","overview":"The story of French high-wire artist Philippe Petit's attempt to cross the Twin Towers of the World Trade Center in 1974.","director":"Robert Zemeckis","genres":"Adventure Drama Thriller","tagline":"Dream High."},{"title":"Legend of the Guardians: The Owls of Ga'Hoole","overview":"Soren, a young barn owl, is kidnapped by owls of St. Aggie's, ostensibly an orphanage, where owlets are brainwashed into becoming soldiers. He and his new friends escape to the island of Ga'Hoole, to assist its noble, wise owls who fight the army being created by the wicked rulers of St. Aggie's. The film is based on the first three books in the series.","director":"Zack Snyder","genres":"Animation Adventure Family Fantasy","tagline":"On his way to finding a legend...he will become one."},{"title":"Happy Feet","overview":"Into the world of the Emperor Penguins, who find their soul mates through song, a penguin is born who cannot sing. But he can tap dance something fierce!","director":"George Miller","genres":"Animation Comedy","tagline":"WARNING: May Cause Toe-Tapping."},{"title":"Zoolander 2","overview":"Derek and Hansel are modelling again when an opposing company attempts to take them out from the business.","director":"Ben Stiller","genres":"Comedy","tagline":"Long time no Z"},{"title":"Real Steel","overview":"In the near-future, Charlie Kenton is a washed-up fighter who retired from the ring when robots took over the sport. After Charlie's robot is trashed, he reluctantly teams up with his estranged son Max to rebuild and train an unlikely contender.","director":"Shawn Levy","genres":"Action Science Fiction Drama","tagline":"If you get one shot, make it real."},{"title":"The Imaginarium of Doctor Parnassus","overview":"A traveling theater company gives its audience much more than they were expecting.","director":"Terry Gilliam","genres":"Adventure Fantasy Mystery","tagline":null},{"title":"The Addams Family","overview":"Uncle Fester has been missing for 25 years. An evil doctor finds out and introduces a fake Fester in an attempt to get the Adams Family's money. The youngest daughter has some doubts about the new uncle Fester, but the fake uncle adapts very well to the strange family. Can the doctor carry out her evil plans and take over the Adams Family's fortune?","director":"Barry Sonnenfeld","genres":"Horror Comedy Fantasy","tagline":"Weird Is Relative"},{"title":"Mad Max 2: The Road Warrior","overview":"Max Rockatansky returns as the heroic loner who drives the dusty roads of a postapocalyptic Australian Outback in an unending search for gasoline. Arrayed against him and the other scraggly defendants of a fuel-depot encampment are the bizarre warriors commanded by the charismatic Lord Humungus, a violent leader whose scruples are as barren as the surrounding landscape.","director":"George Miller","genres":"Adventure Action Thriller Science Fiction","tagline":"When all that's left is one last chance, pray that he's still out there ... somewhere!"},{"title":"The Mist","overview":"After a violent storm, a dense cloud of mist envelops a small Maine town, trapping artist David Drayton and his five-year-old son in a local grocery store with other people. They soon discover that the mist conceals deadly horrors that threaten their lives, and worse, their sanity.","director":"Frank Darabont","genres":"Science Fiction Horror Thriller","tagline":"Belief divides them, mystery surrounds them, but fear changes everything."},{"title":"Lone Survivor","overview":"Based on the failed June 28, 2005 mission \"Operation Red Wing.\" Four members of SEAL Team 10, were tasked with the mission to capture or kill notorious Taliban leader, Ahmad Shah. Only one member of the team survived.","director":"Peter Berg","genres":"Action Drama Thriller War","tagline":"Based on True Acts of Courage"},{"title":"Love Actually","overview":"Follows seemingly unrelated people as their lives begin to intertwine while they fall in \u2013 and out \u2013 of love. Affections languish and develop as Christmas draws near.","director":"Richard Curtis","genres":"Comedy Romance Drama","tagline":"The ultimate romantic comedy."},{"title":"Super 8","overview":"In 1979 Ohio, several youngsters are making a zombie movie with a Super-8 camera. In the midst of filming, the friends witness a horrifying train derailment and are lucky to escape with their lives. They soon discover that the catastrophe was no accident, as a series of unexplained events and disappearances soon follows. Deputy Jackson Lamb, the father of one of the kids, searches for the terrifying truth behind the crash.","director":"J.J. Abrams","genres":"Thriller Science Fiction Mystery","tagline":"It Arrives."},{"title":"The Road to El Dorado","overview":"After a failed swindle, two con-men end up with a map to El Dorado, the fabled \"city of gold,\" and an unintended trip to the New World.  Much to their surprise, the map does lead the pair to the mythical city, where the startled inhabitants promptly begin to worship them as gods.  The only question is, do they take the worshipful natives for all they're worth, or is there a bit more to El Dorado than riches?","director":"Don Michael Paul","genres":"Adventure Animation Comedy Family","tagline":"They came for the gold... they stayed for the adventure."},{"title":"Just Go with It","overview":"A plastic surgeon, romancing a much younger schoolteacher, enlists his loyal assistant to pretend to be his soon to be ex-wife, in order to cover up a careless lie. When more lies backfire, the assistant's kids become involved, and everyone heads off for a weekend in Hawaii that will change all their lives.","director":"Dennis Dugan","genres":"Romance Comedy","tagline":"Sometimes a guy's best wingman... is a wingwoman"},{"title":"Master and Commander: The Far Side of the World","overview":"After an abrupt and violent encounter with a French warship inflicts severe damage upon his ship, a captain of the British Royal Navy begins a chase over two oceans to capture or destroy the enemy, though he must weigh his commitment to duty and ferocious pursuit of glory against the safety of his devoted crew, including the ship's thoughtful surgeon, his best friend.","director":"Peter Weir","genres":"Adventure","tagline":"The courage to do the impossible lies in the hearts of men."},{"title":"The Illusionist","overview":"With his eye on a lovely aristocrat, a gifted illusionist named Eisenheim uses his powers to win her away from her betrothed, a crowned prince. But Eisenheim's scheme creates tumult within the monarchy and ignites the suspicion of a dogged inspector.","director":"Neil Burger","genres":"Fantasy Drama Thriller Romance","tagline":"Nothing Is What It Seems."},{"title":"The SpongeBob Movie: Sponge Out of Water","overview":"Burger Beard is a pirate who is in search of the final page of a magical book that makes any evil plan he writes in it come true, which happens to be the Krabby Patty secret formula. When the entire city of Bikini Bottom is put in danger, SpongeBob, Patrick, Mr. Krabs, Squidward, Sandy, and Plankton need to go on a quest that takes them to the surface. In order to get back the recipe and save their city, the gang must retrieve the book and transform themselves into superheroes.","director":"Paul Tibbitt","genres":"Animation Adventure Comedy Family","tagline":"He's leaving his world behind."},{"title":"Lucky Number Slevin","overview":"Slevin is mistakenly put in the middle of a personal war between the city\u2019s biggest criminal bosses. Under constant watch, Slevin must try not to get killed by an infamous assassin and come up with an idea of how to get out of his current dilemma. A film with many twists and turns.","director":"Paul McGuigan","genres":"Drama Thriller Crime Mystery","tagline":"Wrong Time. Wrong Place. Wrong Number."},{"title":"Scary Movie 5","overview":"Home with their newly-formed family, happy parents Dan and Jody are haunted by sinister, paranormal activities. Determined to expel the insidious force, they install security cameras and discover their family is being stalked by an evil dead demon.","director":"Malcolm D. Lee","genres":"Comedy","tagline":"Evil is coming. Bring protection."},{"title":"Swordfish","overview":"Rogue agent Gabriel Shear is determined to get his mitts on $9 billion stashed in a secret Drug Enforcement Administration account. He wants the cash to fight terrorism, but lacks the computer skills necessary to hack into the government mainframe. Enter Stanley Jobson, a n'er-do-well encryption expert who can log into anything.","director":"Dominic Sena","genres":"Action Crime Thriller","tagline":"Log On. Hack In. Go Anywhere. Get Everything."},{"title":"Remember Me","overview":"Still reeling from a heartbreaking family event and his parents' subsequent divorce, Tyler Hawkins discovers a fresh lease on life when he meets Ally Craig, a gregarious beauty who witnessed her mother's death. But as the couple draws closer, the fallout from their separate tragedies jeopardizes their love.","director":"Allen Coulter","genres":"Drama Romance","tagline":"Live in the moments."},{"title":"Tower Heist","overview":"A luxury condo manager leads a staff of workers to seek payback on the Wall Street swindler who defrauded them. With only days until the billionaire gets away with the perfect crime, the unlikely crew of amateur thieves enlists the help of petty crook Slide to steal the $20 million they\u2019re sure is hidden in the penthouse.","director":"Brett Ratner","genres":"Action Comedy","tagline":"Ordinary guys. An extraordinary robbery."},{"title":"Epic","overview":"A teenager finds herself transported to a deep forest setting where a battle between the forces of good and the forces of evil is taking place. She bands together with a rag-tag group characters in order to save their world -- and ours.","director":"Chris Wedge","genres":"Animation Adventure Family Fantasy","tagline":"Discover a world beyond your imagination"},{"title":"xXx: State of the Union","overview":"Ice Cube stars as Darius Stone, a thrill-seeking troublemaker whose criminal record and extreme sports obsession make him the perfect candidate to be the newest XXX agent. He must save the U.S. government from a deadly conspiracy led by five-star general and Secretary of Defense George Deckert (played by Willem Dafoe).","director":"Lee Tamahori","genres":"Action Adventure Crime Drama Mystery","tagline":"Prepare for the next level"},{"title":"A Knight's Tale","overview":"William Thatcher, a peasant, is sent to apprentice with a Knight named Hector as a young boy. Urged by his father to \"change his Stars\", he assumes Sir Hector's place in a tournament when Hector dies in the middle of it. He wins. With the other apprentices, he trains and assumes the title of Sir Ulrich von Lichtenstein.","director":"Brian Helgeland","genres":"Adventure Drama Romance Action","tagline":"He Will Rock You"},{"title":"Surrogates","overview":"Set in a futuristic world where humans live in isolation and interact through surrogate robots, a cop is forced to leave his home for the first time in years in order to investigate the murders of others' surrogates.","director":"Jonathan Mostow","genres":"Action Science Fiction Thriller","tagline":"How do you save humanity when the only thing that's real is you?"},{"title":"The Smurfs","overview":"When the evil wizard Gargamel chases the tiny blue Smurfs out of their village, they tumble from their magical world and into ours -- in fact, smack dab in the middle of Central Park. Just three apples high and stuck in the Big Apple, the Smurfs must find a way to get back to their village before Gargamel tracks them down.","director":"Raja Gosnell","genres":"Animation Family Adventure Comedy Fantasy","tagline":"Smurf Happens."},{"title":"The Three Musketeers","overview":"The hot-headed young D'Artagnan along with three former legendary but now down on their luck Musketeers must unite and defeat a beautiful double agent and her villainous employer from seizing the French throne and engulfing Europe in war.","director":"Paul W.S. Anderson","genres":"Adventure Action Thriller","tagline":"Every legend has a new beginning."},{"title":"Scary Movie 3","overview":"In the third installment of the Scary Movie franchise, news anchorwoman Cindy Campbell has to investigate mysterious crop circles and killing video tapes, and help the President stop an alien invasion in the process.","director":"David Zucker","genres":"Comedy","tagline":"Great trilogies come in threes."},{"title":"Pride & Prejudice","overview":"Pride & Prejudice is a humorous story of love and life among English gentility during the Georgian era. Mr. Bennet is an English gentleman living in Hertfordshire with his overbearing wife and five daughters. If Mr. Bennet dies their house will be inherited by a distant cousin whom they have never met, so the family's future happiness and security is dependent on the daughters making good marriages.","director":"Joe Wright","genres":"Drama Romance","tagline":"A romance ahead of its time."},{"title":"Mad Max Beyond Thunderdome","overview":"Mad Max becomes a pawn in a decadent oasis of a technological society, and when exiled, becomes the deliverer of a colony of children.","director":"George Miller","genres":"Action Adventure Science Fiction","tagline":"Two men enter. One man leaves."},{"title":"Singin' in the Rain","overview":"In 1927 Hollywood, Don Lockwood and Lina Lamont are a famous on-screen romantic pair in silent movies, but Lina mistakes the on-screen romance for real love. When their latest film is transformed into a musical, Don has the perfect voice for the songs, but strident voice faces the studio to dub her voice. Aspiring actress, Kathy Selden is brought in and, while she is working on the movie, Don falls in love with her.","director":"Stanley Donen","genres":"Comedy Music Romance","tagline":"What a Glorious Feeling!"},{"title":"Neighbors","overview":"A couple with a newborn baby face unexpected difficulties after they are forced to live next to a fraternity house.","director":"Nicholas Stoller","genres":"Comedy","tagline":"Family vs. Frat"},{"title":"Young Frankenstein","overview":"A young neurosurgeon inherits the castle of his grandfather, the famous Dr. Victor von Frankenstein. In the castle he finds a funny hunchback, a pretty lab assistant and the elderly housekeeper. Young Frankenstein believes that the work of his grandfather was delusional, but when he discovers the book where the mad doctor described his reanimation experiment, he suddenly changes his mind.","director":"Mel Brooks","genres":"Comedy Science Fiction","tagline":"The scariest comedy of all time!"},{"title":"American Pie 2","overview":"The whole gang are back and as close as ever. They decide to get even closer by spending the summer together at a beach house. They decide to hold the biggest party ever to be seen, even if the preparation doesn't always go to plan. Especially when Stifler, Finch and Jim become more close to each other than they ever want to be and when Jim mistakes super glue for lubricant...","director":"J.B. Rogers","genres":"Comedy Romance","tagline":"This Summer It's All About Sticking Together."},{"title":"Mean Girls","overview":"Cady Heron is a hit with The Plastics, the A-list girl clique at her new school, until she makes the mistake of falling for Aaron Samuels, the ex-boyfriend of alpha Plastic Regina George.","director":"Mark Waters","genres":"Comedy","tagline":"Welcome to girl world."},{"title":"Air Force One","overview":"Russian terrorists conspire to hijack the aircraft with the president and his family on board. The commander in chief finds himself facing an impossible predicament: give in to the terrorists and sacrifice his family, or risk everything to uphold his principles - and the integrity of the nation.","director":"Wolfgang Petersen","genres":"Action Thriller","tagline":"The fate of a nation rests on the courage of one man."},{"title":"Monster House","overview":"Monsters under the bed are scary enough, but what happens when an entire house is out to get you? Three teens aim to find out when they go up against a decrepit neighboring home and unlock its frightening secrets.","director":"Gil Kenan","genres":"Animation Comedy Family Fantasy","tagline":"The House is . . . ALIVE!"},{"title":"Over the Hedge","overview":"A scheming raccoon fools a mismatched family of forest creatures into helping him repay a debt of food, by invading the new suburban sprawl that popped up while they were hibernating \u2013 and learns a lesson about family himself.","director":"Karey Kirkpatrick","genres":"Comedy Animation Family","tagline":"Taking back the neighborhood... One snack at a time."},{"title":"Inside Llewyn Davis","overview":"In Greenwich Village in the early 1960s, gifted but volatile folk musician Llewyn Davis struggles with money, relationships, and his uncertain future following the suicide of his singing partner.","director":"Joel Coen","genres":"Drama Music","tagline":null},{"title":"Lincoln","overview":"A revealing drama that focuses on the 16th President's tumultuous final months in office. In a nation divided by war and the strong winds of change, Lincoln pursues a course of action designed to end the war, unite the country and abolish slavery. With the moral courage and fierce determination to succeed, his choices during this critical moment will change the fate of generations to come.","director":"Steven Spielberg","genres":"History Drama","tagline":"With the moral courage and fierce determination to succeed, his choices will change the fate of generations to come."},{"title":"Get Hard","overview":"When obscenely rich hedge-fund manager James is convicted of fraud and sentenced to a stretch in San Quentin, the judge gives him one month to get his affairs in order. Knowing that he won't survive more than a few minutes in prison on his own, James desperately turns to Darnell-- a black businessman who's never even had a parking ticket -- for help. As Darnell puts James through the wringer, both learn that they were wrong about many things, including each other.","director":"Etan Cohen","genres":"Comedy","tagline":"An education in incarceration."},{"title":"The Proposal","overview":"When she learns she's in danger of losing her visa status and being deported, overbearing book editor Margaret Tate forces her put-upon assistant, Andrew Paxton, to marry her.","director":"Anne Fletcher","genres":"Comedy Romance Drama","tagline":"Here comes the bribe..."},{"title":"Poltergeist","overview":"Steve Freeling lives with his wife, Diane, and their three children, Dana, Robbie, and Carol Anne, in Southern California where he sells houses for the company that built the neighborhood. It starts with just a few odd occurrences, such as broken dishes and furniture moving around by itself. However, when he realizes that something truly evil haunts his home, Steve calls in a team of parapsychologists led by Dr. Lesh to help before it's too late.","director":"Tobe Hooper","genres":"Horror","tagline":"They're here."},{"title":"American Wedding","overview":"With high school a distant memory, Jim and Michelle are getting married -- and in a hurry, since Jim's grandmother is sick and wants to see him walk down the aisle -- prompting Stifler to throw the ultimate bachelor party. And Jim's dad is reliable as ever, doling out advice no one wants to hear.","director":"Jesse Dylan","genres":"Comedy Romance","tagline":"Forever hold your piece."},{"title":"Melancholia","overview":"Two sisters find their already strained relationship challenged as a mysterious new planet threatens to collide with Earth.","director":"Lars von Trier","genres":"Drama Science Fiction","tagline":"Enjoy it while it lasts"},{"title":"Lethal Weapon 3","overview":"Archetypal buddy cops Riggs and Murtaugh are back for another round of high-stakes action, this time setting their collective sights on bringing down a former Los Angeles police lieutenant turned black market weapons dealer. Lorna Cole joins as the beautiful yet hardnosed internal affairs sergeant who catches Riggs's eye.","director":"Richard Donner","genres":"Adventure Action Comedy Thriller Crime","tagline":"The magic is back again!"},{"title":"Monsters vs Aliens","overview":"When Susan Murphy is unwittingly clobbered by a meteor full of outer space gunk on her wedding day, she mysteriously grows to 49-feet-11-inches. The military jumps into action and captures Susan, secreting her away to a covert government compound. She is renamed Ginormica and placed in confinement with a ragtag group of Monsters...","director":"Conrad Vernon","genres":"Animation Family Adventure Science Fiction","tagline":"When aliens attack, monsters fight back."},{"title":"Austin Powers: International Man of Mystery","overview":"As a swingin' fashion photographer by day and a groovy British superagent by night, Austin Powers is the '60s' most shagadelic spy, baby! But can he stop megalomaniac Dr. Evil after the bald villain freezes himself and unthaws in the '90s? With the help of sexy sidekick Vanessa Kensington, he just might.","director":"Jay Roach","genres":"Science Fiction Comedy Crime","tagline":"If he were any cooler, he'd still be frozen, baby!"},{"title":"Saw: The Final Chapter","overview":"As a deadly battle rages over Jigsaw's brutal legacy, a group of Jigsaw survivors gathers to seek the support of self-help guru and fellow survivor Bobby Dagen, a man whose own dark secrets unleash a new wave of terror.","director":"Kevin Greutert","genres":"Horror Crime","tagline":"The Traps Come Alive"},{"title":"Space Jam","overview":"In a desperate attempt to win a basketball match and earn their freedom, the Looney Tunes seek the aid of retired basketball champion, Michael Jordan.","director":"Joe Pytka","genres":"Animation Comedy Drama Family Fantasy","tagline":"Get ready to jam."},{"title":"Meet Joe Black","overview":"When the grim reaper comes to collect the soul of megamogul Bill Parrish, he arrives with a proposition: Host him for a \"vacation\" among the living in trade for a few more days of existence. Parrish agrees, and using the pseudonym Joe Black, Death begins taking part in Parrish's daily agenda and falls in love with the man's daughter. Yet when Black's holiday is over, so is Parrish's life.","director":"Martin Brest","genres":"Fantasy Drama Mystery","tagline":"Sooner or later everyone does."},{"title":"Magic Mike","overview":"Mike, an experienced stripper, takes a younger performer called The Kid under his wing and schools him in the arts of partying, picking up women, and making easy money.","director":"Steven Soderbergh","genres":"Drama Comedy","tagline":"Work all day. Work it all night."},{"title":"Annie Hall","overview":"In the city of New York, comedian Alvy Singer falls in love with the ditsy Annie Hall.","director":"Woody Allen","genres":"Comedy Drama Romance","tagline":"A nervous romance."},{"title":"Oculus","overview":"A woman tries to exonerate her brother's murder conviction by proving that the crime was committed by a supernatural phenomenon.","director":"Mike Flanagan","genres":"Horror","tagline":"You see what it wants you to see"},{"title":"Rush Hour 2","overview":"It's vacation time for Carter as he finds himself alongside Lee in Hong Kong wishing for more excitement. While Carter wants to party and meet the ladies, Lee is out to track down a Triad gang lord who may be responsible for killing two men at the American Embassy. Things get complicated as the pair stumble onto a counterfeiting plot. The boys are soon up to their necks in fist fights and life-threatening situations. A trip back to the U.S. may provide the answers about the bombing, the counterfeiting, and the true allegiance of sexy customs agent Isabella.","director":"Brett Ratner","genres":"Action Comedy Crime Thriller","tagline":"Get ready for a second Rush!"},{"title":"Dumb and Dumber","overview":"Lloyd and Harry are two men whose stupidity is really indescribable. When Mary, a beautiful woman, loses an important suitcase with money before she leaves for Aspen, the two friends (who have found the suitcase) decide to return it to her. After some \"adventures\" they finally get to Aspen where, using the lost money they live it up and fight for Mary's heart.","director":"Bobby Farrelly","genres":"Comedy","tagline":"What the one doesn't have, the other is missing."},{"title":"Only God Forgives","overview":"Julian, who runs a Thai boxing club as a front organization for his family's drug smuggling operation, is forced by his mother Jenna to find and kill the individual responsible for his brother's recent death.","director":"Nicolas Winding Refn","genres":"Drama Thriller Crime","tagline":"Time to Meet The Devil"},{"title":"Homefront","overview":"Phil Broker is a former DEA agent who has gone through a crisis after his action against a biker gang went horribly wrong and it cost the life of his boss' son. He is recently widowed and is left with a 9-years-old daughter,Maddy. He decides to quit the turbulent and demanding life of thrill for Maddy's sake and retires to a small town. His daughter fights off a boy who was bullying her at school and this sets in motion a round of events that end in his direct confrontation with the local Meth drug lord. His past history with the biker gang also enters the arena, making matters more complex. But he has a mission in his mind to protect his daughter and he is ready to pay any cost that it demands.","director":"Gary Fleder","genres":"Action Thriller","tagline":"How far would you go to protect your home?"},{"title":"Begin Again","overview":"Gretta's celebrity boyfriend breaks up with her after a long-term relationship, leaving the singer to find success on her own. With the help of record producer, Dan and hip-hop celebrity, Trouble Gum, Gretta strives to fulfil her musical ambitions.","director":"John Carney","genres":"Comedy Music Romance Drama","tagline":"You're only as strong as your next move."},{"title":"The Grudge","overview":"American nurse, Karen Davis moves to Tokyo and encounters a vengeful supernatural spirit known as The Grudge that often possesses its victims. When a series of horrifying and mysterious deaths occur \u2013 with the spirit passing its curse onto each victim - Karen must find away to break the spell before she becomes the spirit's next victim.","director":"Takashi Shimizu","genres":"Horror Mystery Thriller","tagline":"It never forgives. It never forgets."},{"title":"Evil Dead II","overview":"Ash Williams and his girlfriend Linda find a log cabin in the woods with a voice recording from an archeologist who had recorded himself reciting ancient chants from \u201cThe Book of the Dead.\u201d As they play the recording an evil power is unleashed taking over Linda\u2019s body.","director":"Sam Raimi","genres":"Horror Comedy Fantasy","tagline":"The Sequel To The Ultimate Experience In Grueling Terror"},{"title":"Johnny English Reborn","overview":"The most prominent heads of state in the world begin gathering for a conference that could have a major impact on global politics. When MI-7 receives word that the Chinese premier has become the target of some high-powered killers, it falls on Johnny English to save the day. Armed with the latest high-tech weaponry and gadgets that would make even James Bond jealous, the once-disgraced agent uncovers evidence of a massive conspiracy involving some of the world's most powerful organisations, and vows to redeem his tarnished reputation by stopping the killers before they can strike.","director":"Oliver Parker","genres":"Crime Adventure Action Comedy Thriller","tagline":"One man. One mission. No chance."},{"title":"Beowulf","overview":"6th-century Scandinavian warrior, Beowulf embarks on a mission to slay the manlike ogre Grendel, a descendant of Cain.","director":"Robert Zemeckis","genres":"Adventure Action Animation","tagline":"Evil breeds pain."},{"title":"The Sorcerer's Apprentice","overview":"Balthazar Blake is a master sorcerer in modern-day Manhattan trying to defend the city from his arch-nemesis, Maxim Horvath. Balthazar can't do it alone, so he recruits Dave Stutler, a seemingly average guy who demonstrates hidden potential, as his reluctant prot\u00e9g\u00e9. The sorcerer gives his unwilling accomplice a crash course in the art and science of magic, and together, these unlikely partners work to stop the forces of darkness.","director":"Jon Turteltaub","genres":"Fantasy Adventure Action Comedy Drama","tagline":"It's The Coolest Job Ever."},{"title":"Walk the Line","overview":"A chronicle of country music legend Johnny Cash's life, from his early days on an Arkansas cotton farm to his rise to fame with Sun Records in Memphis, where he recorded alongside Elvis Presley, Jerry Lee Lewis and Carl Perkins.","director":"James Mangold","genres":"Drama Music Romance","tagline":"Love is a burning thing."},{"title":"Crank: High Voltage","overview":"Chelios faces a Chinese mobster who has stolen his nearly indestructible heart and replaced it with a battery-powered ticker that requires regular jolts of electricity to keep working.","director":"Brian Taylor","genres":"Action Thriller Crime","tagline":"Stay Charged, Stay Alive!"},{"title":"Patch Adams","overview":"Meet Patch Adams, a doctor who doesn't look, act or think like any doctor you've met before. For Patch, humor is the best medicine, and he's willing to do just anything to make his patients laugh - even if it means risking his own career.","director":"Tom Shadyac","genres":"Comedy Drama","tagline":"Laughter is contagious"},{"title":"The Assassination of Jesse James by the Coward Robert Ford","overview":"Outlaw Jesse James is rumored be the 'fastest gun in the West'. An eager recruit into James' notorious gang, Robert Ford eventually grows jealous of the famed outlaw and, when Robert and his brother sense an opportunity to kill James, their murderous action elevates their target to near mythical status.","director":"Andrew Dominik","genres":"Action Drama Western","tagline":"Beyond the myth lies America's greatest betrayal"},{"title":"Raging Bull","overview":"When Jake LaMotta steps into a boxing ring and obliterates his opponent, he's a prizefighter. But when he treats his family and friends the same way, he's a ticking time bomb, ready to go off at any moment. Though LaMotta wants his family's love, something always seems to come between them. Perhaps it's his violent bouts of paranoia and jealousy. This kind of rage helped make him a champ, but in real life, he winds up in the ring alone.","director":"Martin Scorsese","genres":"Drama","tagline":null},{"title":"21 & Over","overview":"Brilliant student Jeff Chang has the most important interview of his life tomorrow.  But today is still his birthday, what starts off as a casual celebration with friends evolves into a night of debauchery that risks to derail his life plan.","director":"Jon Lucas","genres":"Comedy","tagline":"Finally."},{"title":"Eastern Promises","overview":"A Russian teenager living in London who dies during childbirth leaves clues to a midwife in her journal that could tie her child to a rape involving a violent Russian mob family.","director":"David Cronenberg","genres":"Thriller Crime Mystery","tagline":"Every sin leaves a mark."},{"title":"The Pacifier","overview":"Disgraced Navy SEAL Shane Wolfe is handed a new assignment: Protect the five Plummer kids from enemies of their recently deceased father -- a government scientist whose top-secret experiment remains hidden in the kids' house.","director":"Adam Shankman","genres":"Action Comedy Drama Family Thriller","tagline":"Welcome to the infantry."},{"title":"The Place Beyond the Pines","overview":"A motorcycle stunt rider considers committing a crime in order to provide for his wife and child, an act that puts him on a collision course with a cop-turned-politician.","director":"Derek Cianfrance","genres":"Drama Crime","tagline":"If you ride like lightning you're gonna crash like thunder"},{"title":"Children of Men","overview":"In 2027, in a chaotic world in which humans can no longer procreate, a former activist agrees to help transport a miraculously pregnant woman to a sanctuary at sea, where her child's birth may help scientists save the future of humankind.","director":"Alfonso Cuar\\u00f3n","genres":"Drama Action Thriller Science Fiction","tagline":"The future's a thing of the past."},{"title":"The Little Prince","overview":"Based on the best-seller book 'The Little Prince', the movie tells the story of a little girl that lives with resignation in a world where efficiency and work are the only dogmas. Everything will change when accidentally she discovers her neighbor that will tell her about the story of the Little Prince that he once met.","director":"Mark Osborne","genres":"Adventure Animation Fantasy","tagline":"Growing up isn't the problem... forgetting is."},{"title":"Scary Movie 2","overview":"While the original parodied slasher flicks like Scream, Keenen Ivory Wayans's sequel to Scary Movie takes comedic aim at haunted house movies. A group of students visit a mansion called \"Hell House,\" and murderous high jinks ensue.","director":"Keenen Ivory Wayans","genres":"Comedy","tagline":"No More Mercy. No More Shame. No More Sequels - Honest! - We Lied."},{"title":"Movie 43","overview":"The film is composed of multiple comedy shorts presented through an overarching segment titled \"The Pitch\", in which Charlie Wessler, a mad screenwriter, is attempting to pitch a script to film executive Griffin Schraeder. After revealing several of the stories in his script, Wessler becomes agitated when Schraeder dismisses his outrageous ideas, and he pulls a gun on him and forces him to listen to multiple other stories before making Schraeder consult his manager, Bob Mone, to purchase the film.","director":"Griffin Dunne","genres":"Comedy","tagline":"The biggest cast ever assembled for the most outrageous comedy ever made."},{"title":"Bridget Jones's Diary","overview":"A chaotic Bridget Jones meets a snobbish lawyer, and he soon enters her world of imperfections.","director":"Sharon Maguire","genres":"Comedy Romance Drama","tagline":"Health Warning: Adopting Bridget's lifestyle could seriously damage your health."},{"title":"Still Alice","overview":"Alice Howland, happily married with three grown children, is a renowned linguistics professor who starts to forget words. When she receives a devastating diagnosis, Alice and her family find their bonds tested.","director":"Richard Glatzer","genres":"Drama","tagline":null},{"title":"True Romance","overview":"Clarence marries hooker Alabama, steals cocaine from her pimp, and tries to sell it in Hollywood, while the owners of the coke try to reclaim it.","director":"Tony Scott","genres":"Action Thriller Crime Romance","tagline":"Stealing, Cheating, Killing. Who said romance was dead?"},{"title":"The Machinist","overview":"The Machinist is the story of Trevor Reznik, a lathe-operator who is dying of insomnia. In a machine shop, occupational hazards are bad enough under normal circumstances; yet for Trevor the risks are compounded by fatigue. Trevor has lost the ability to sleep. This is no ordinary insomnia...","director":"Brad Anderson","genres":"Thriller Drama","tagline":"A little guilt goes a long way..."},{"title":"Scream 2","overview":"Two years after the terrifying events that occurred in Woodsboro, Sidney is now attending Windsor College in Cincinnati, and Gale Weathers' best selling book on Sidney's life has now been made into a major motion picture. When two college students are killed in a theatre while watching the new film 'Stab', Sidney knows deep down that history is repeating itself.","director":"Wes Craven","genres":"Horror Mystery","tagline":"Someone has taken their love of sequels one step too far."},{"title":"Lockout","overview":"Set in the near future, Lockout follows a falsely convicted ex-government agent , whose one chance at obtaining freedom lies in the dangerous mission of rescuing the President's daughter from rioting convicts at an outer space maximum security prison.","director":"Stephen St. Leger","genres":"Action Thriller Science Fiction","tagline":"Take no prisoners."},{"title":"Gandhi","overview":"In the early years of the 20th century, Mohandas K. Gandhi, a British-trained lawyer, forsakes all worldly possessions to take up the cause of Indian independence. Faced with armed resistance from the British government, Gandhi adopts a policy of 'passive resistance', endeavouring to win freedom for his people without resorting to bloodshed.","director":"Richard Attenborough","genres":"Drama History","tagline":"His triumph changed the world forever."},{"title":"Scream 4","overview":"Sidney Prescott, now the author of a self-help book, returns home to Woodsboro on the last stop of her book tour. There she reconnects with Sheriff Dewey and Gale, who are now married, as well as her cousin Jill and her Aunt Kate. Unfortunately, Sidney's appearance also brings about the return of Ghostface, putting Sidney, Gale, and Dewey, along with Jill, her friends, and the whole town of Woodsboro in danger.","director":"Wes Craven","genres":"Horror Mystery","tagline":"New Decade. New Rules."},{"title":"1408","overview":"A man who specializes in debunking paranormal occurrences checks into the fabled room 1408 in the Dolphin Hotel. Soon after settling in, he confronts genuine terror.","director":"Mikael H\\u00e5fstr\\u00f6m","genres":"Horror Thriller","tagline":"The only demons in room 1408 are those within you."},{"title":"Spider-Man 2","overview":"Peter Parker is going through a major identity crisis. Burned out from being Spider-Man, he decides to shelve his superhero alter ego, which leaves the city suffering in the wake of carnage left by the evil Doc Ock. In the meantime, Parker still can't act on his feelings for Mary Jane Watson, a girl he's loved since childhood.","director":"Sam Raimi","genres":"Action Adventure Fantasy","tagline":"There's a hero in all of us."},{"title":"Concussion","overview":"A dramatic thriller based on the incredible true David vs. Goliath story of American immigrant Dr. Bennet Omalu, the brilliant forensic neuropathologist who made the first discovery of CTE, a football-related brain trauma, in a pro player and fought for the truth to be known. Omalu's emotional quest puts him at dangerous odds with one of the most powerful institutions in the world.","director":"Peter Landesman","genres":"Drama","tagline":"Even Legends Need a Hero"},{"title":"National Lampoon\u2019s Van Wilder","overview":"Van Wilder has been attending college for far too many years and is scared to graduate, but Van\u2019s father eventually realizes what is going on. When he stops paying his son's tuition fees, Van must come up with the money if he wants to stay in college, so he and his friends come up with a great fund-raising idea \u2013 throwing parties. However, when the college magazine finds out and reporter, Gwen is sent to do a story on Van Wilder, things get a little complicated.","director":"Walt Becker","genres":"Comedy Romance","tagline":"Don't Graduate. Celebrate."},{"title":"The Hills Have Eyes","overview":"Based on Wes Craven's 1977 suspenseful cult classic, The Hills Have Eyes is the story of a family road trip that goes terrifyingly awry when the travelers become stranded in a government atomic zone. Miles from nowhere, the Carter family soon realizes the seemingly uninhabited wasteland is actually the breeding ground of a blood-thirsty mutant family...and they are the prey.","director":"Alexandre Aja","genres":"Horror Thriller","tagline":"The lucky ones die first."},{"title":"The Punisher","overview":"When undercover FBI agent Frank Castle's wife and son are slaughtered, he becomes 'the Punisher' -- a ruthless vigilante willing to go to any length to avenge his family.","director":"Jonathan Hensleigh","genres":"Action Crime Drama","tagline":"There is no justice, there is only revenge."},{"title":"The Great Escape","overview":"The Nazis, exasperated at the number of escapes from their prison camps by a relatively small number of Allied prisoners, relocates them to a high-security 'escape-proof' camp to sit out the remainder of the war. Undaunted, the prisoners plan one of the most ambitious escape attempts of World War II. Based on a true story.","director":"John Sturges","genres":"Adventure Drama History Thriller War","tagline":"Put a fence in front of these men... and they'll climb it!"},{"title":"The Evil Dead","overview":"When a group of college students finds a mysterious book and recording in the old wilderness cabin they've rented for the weekend, they unwittingly unleash a demonic force from the surrounding forest.","director":"Sam Raimi","genres":"Horror","tagline":"The Ultimate Experience In Grueling Terror"},{"title":"The Counselor","overview":"A rich and successful lawyer named Counselor is about to get married to his fianc\u00e9e but soon meets up with the middle-man known as Westray who tells him his drug trafficking plan has taken a horrible twist and now he must protect himself and his soon bride-to-be lover as the truth of the drug business uncovers and targets become chosen.","director":"Ridley Scott","genres":"Thriller Crime Drama","tagline":"Sin Is A Choice."},{"title":"Hulk","overview":"Bruce Banner, a genetics researcher with a tragic past, suffers massive radiation exposure in his laboratory that causes him to transform into a raging green monster when he gets angry.","director":"Ang Lee","genres":"Drama Action Science Fiction","tagline":"Unleash the hero within"},{"title":"Three Kings","overview":"A group of American soldiers stationed in Iraq at the end of the Gulf War find a map they believe will take them to a huge cache of stolen Kuwaiti gold hidden near their base, and they embark on a secret mission that's destined to change everything.","director":"David O. Russell","genres":"Action Adventure Comedy","tagline":"It's good to be King."},{"title":"The Lives of Others","overview":"A tragic love story set in East Berlin with the backdrop of an undercover Stasi controlled culture. Stasi captain Wieler is ordered to follow author Dreyman and plunges deeper and deeper into his life until he reaches the threshold of doubting the system.","director":"Florian Henckel von Donnersmarck","genres":"Drama Thriller","tagline":"Before the Fall of the Berlin Wall, East Germany's Secret Police Listened to Your Secrets."},{"title":"The Boondock Saints","overview":"With a God-inspired moral obligation to act against evil, twin brothers Conner and Murphy set out to rid Boston of criminals. However, rather than working within the system, these Irish Americans decide to take swift retribution into their own hands.","director":"Troy Duffy","genres":"Action Thriller Crime","tagline":"Thy Kingdom Come. Thy Will Be Done."},{"title":"The Book of Life","overview":"The journey of Manolo, a young man who is torn between fulfilling the expectations of his family and following his heart. Before choosing which path to follow, he embarks on an incredible adventure that spans three fantastical worlds where he must face his greatest fears.","director":"Jorge R. Gutierrez","genres":"Romance Animation Adventure Comedy Family","tagline":null},{"title":"Big Daddy","overview":"A lazy law school grad adopts a kid to impress his girlfriend, but everything doesn't go as planned and he becomes the unlikely foster father.","director":"Dennis Dugan","genres":"Comedy Drama","tagline":"Nature called. Look who answered."},{"title":"Lord of War","overview":"Yuri Orlov is a globetrotting arms dealer and, through some of the deadliest war zones, he struggles to stay one step ahead of a relentless Interpol agent, his business rivals and even some of his customers who include many of the world's most notorious dictators. Finally, he must also face his own conscience.","director":"Andrew Niccol","genres":"Crime Drama Thriller","tagline":"Where there's a will, there's a weapon"},{"title":"The Boy in the Striped Pyjamas","overview":"When his family moves from their home in Berlin to a strange new house in Poland, young Bruno befriends Shmuel, a boy who lives on the other side of the fence where everyone seems to be wearing striped pajamas. Unaware of Shmuel's fate as a Jewish prisoner or the role his own Nazi father plays in his imprisonment, Bruno embarks on a dangerous journey inside the camp's walls.","director":"Mark Herman","genres":"War Drama","tagline":"Lines may divide us, but hope will unite us."},{"title":"Safe House","overview":"A dangerous CIA renegade resurfaces after a decade on the run. When the safe house he's remanded to is attacked by mercenaries, a rookie operative escapes with him. Now, the unlikely allies must stay alive long enough to uncover who wants them dead.","director":"Daniel Espinosa","genres":"Action Thriller","tagline":"No one is safe"},{"title":"28 Weeks Later","overview":"In this chilling sequel to 28 Days Later, the inhabitants of the British Isles appear to have lost their battle against the onslaught of disease, as the deadly rage virus has killed every citizen there. Six months later, a group of Americans dare to set foot on the isles, convinced the danger has come and gone. But it soon becomes all too clear that the scourge continues to live, waiting to pounce on its next victims.","director":"Juan Carlos Fresnadillo","genres":"Horror Thriller Science Fiction","tagline":"When days turn to weeks... the horror returns."},{"title":"Blue Jasmine","overview":"Jasmine French used to be on the top of the heap as a New York socialite, but now is returning to her estranged sister in San Francisco utterly ruined. As Jasmine struggles with her haunting memories of a privileged past bearing dark realities she ignored, she tries to recover in her present. Unfortunately, it all proves a losing battle as Jasmine's narcissistic hangups and their consequences begin to overwhelm her. In doing so, her old pretensions and new deceits begin to foul up everyone's lives, especially her own.","director":"Woody Allen","genres":"Comedy Drama","tagline":"Blue Moon. I used to know the words. Now they're all a jumble."},{"title":"Diamonds Are Forever","overview":"Diamonds are stolen only to be sold again in the international market. James Bond infiltrates a smuggling mission to find out who\u2019s guilty. The mission takes him to Las Vegas where Bond meets his archenemy Blofeld.","director":"Guy Hamilton","genres":"Adventure Action Thriller","tagline":"The man who made 007 a household number"},{"title":"A History of Violence","overview":"An average family is thrust into the spotlight after the father commits a seemingly self-defense murder at his diner.","director":"David Cronenberg","genres":"Drama Thriller Crime","tagline":"Tom Stall had the perfect life... until he became a hero."},{"title":"Hitch","overview":"Dating coach Alex 'Hitch' Hitchens mentors a bumbling client, Albert, who hopes to win the heart of the glamorous Allegra Cole. While Albert makes progress, Hitch faces his own romantic setbacks when proven techniques fail to work on Sara Melas, a tabloid reporter digging for dirt on Allegra Cole's love life. When Sara discovers Hitch's connection to Albert \u2013 now Allegra's boyfriend \u2013 it threatens to destroy both relationships.","director":"Andy Tennant","genres":"Comedy Drama Romance","tagline":"The cure for the common man."},{"title":"The Call","overview":"Jordan Turner is an experienced 911 operator but when she makes an error in judgment and a call ends badly, Jordan is rattled and unsure if she can continue. But when teenager Casey Welson is abducted in the back of a man's car and calls 911, Jordan is the one called upon to use all of her experience, insights and quick thinking to help Casey escape, and not just to save her, but to make sure the man is brought to justice.","director":"Brad Anderson","genres":"Crime Thriller","tagline":"There are 188 million 911 calls a year. This one made it personal."},{"title":"The Other Woman","overview":"After discovering her boyfriend is married, Carly soon meets the wife he's been cheating on. And when yet another affair is discovered, all three women team up to plot mutual revenge on the three-timing SOB.","director":"Nick Cassavetes","genres":"Comedy Romance","tagline":"The oddest friends are about to get even"},{"title":"The Transporter","overview":"Former Special Forces officer, Frank Martin will deliver anything to anyone for the right price, and his no-questions-asked policy puts him in high demand. But when he realizes his latest cargo is alive, it sets in motion a dangerous chain of events. The bound and gagged Lai is being smuggled to France by a shady American businessman, and Frank works to save her as his own illegal activities are uncovered by a French detective.","director":"Louis Leterrier","genres":"Action Crime Thriller","tagline":"Rules are made to be broken."},{"title":"The Next Three Days","overview":"A married couple's life is turned upside down when the wife is accused of a murder. Lara Brennan is arrested for murdering her boss with whom she had an argument. It seems she was seen leaving the scene of the crime and her fingerprints were on the murder weapon. Her husband, John would spend the next few years trying to get her released, but there's no evidence that negates the evidence against her. And when the strain of being separated from her family, especially her son, gets to her, John decides to break her out. So he does a lot of research to find a way.","director":"Paul Haggis","genres":"Romance Drama Thriller Crime","tagline":"What if you had 72 hours to save everything you live for?"},{"title":"Ace Ventura: When Nature Calls","overview":"Summoned from an ashram in Tibet, Ace finds himself on a perilous journey into the jungles of Africa to find Shikaka, the missing sacred animal of the friendly Wachati tribe. He must accomplish this before the wedding of the Wachati's Princess to the prince of the warrior Wachootoos. If Ace fails, the result will be a vicious tribal war.","director":"Steve Oedekerk","genres":"Crime Comedy Adventure","tagline":"New animals. New adventures. Same hair."},{"title":"Babe","overview":"Babe is a little pig who doesn't quite know his place in the world. With a bunch of odd friends, like Ferdinand the duck who thinks he is a rooster and Fly the dog he calls mom, Babe realizes that he has the makings to become the greatest sheep pig of all time, and Farmer Hogget knows it. With the help of the sheep dogs Babe learns that a pig can be anything that he wants to be.","director":"Chris Noonan","genres":"Fantasy Drama Comedy Family","tagline":"A little pig goes a long way."},{"title":"The Peanuts Movie","overview":"Snoopy embarks upon his greatest mission as he and his team take to the skies to pursue their arch-nemesis, while his best pal Charlie Brown begins his own epic quest back home.","director":"Steve Martino","genres":"Animation","tagline":"The story of an underdog. And his dog."},{"title":"Commando","overview":"John Matrix, the former leader of a special commando strike force that always got the toughest jobs done, is forced back into action when his young daughter is kidnapped. To find her, Matrix has to fight his way through an array of punks, killers, one of his former commandos, and a fully equipped private army. With the help of a feisty stewardess and an old friend, Matrix has only a few hours to overcome his greatest challenge: finding his daughter before she's killed.","director":"Mark L. Lester","genres":"Action Adventure Thriller","tagline":"Somewhere... somehow... someone's going to pay."},{"title":"Pearl Harbor","overview":"The lifelong friendship between Rafe McCawley and Danny Walker is put to the ultimate test when the two ace fighter pilots become entangled in a love triangle with beautiful Naval nurse Evelyn Johnson. But the rivalry between the friends-turned-foes is immediately put on hold when they find themselves at the center of Japan's devastating attack on Pearl Harbor on Dec. 7, 1941.","director":"Michael Bay","genres":"History Romance War","tagline":"It takes a moment to change history. It takes love to change lives."},{"title":"Finding Neverland","overview":"Finding Neverland is an amusing drama about how the story of Peter Pan and Neverland came to be. During a writing slump play writer J.M. Barrie meets the widowed Sylvia and her three children who soon become an important part of Barrie\u2019s life and the inspiration that lead him to create his masterpiece \u201cPeter Pan.\u201d","director":"Marc Forster","genres":"Drama","tagline":"Where will your imagination take you?"},{"title":"Deep Impact","overview":"A seven-mile-wide space rock is hurtling toward Earth, threatening to obliterate the planet. Now, it's up to the president of the United States to save the world. He appoints a tough-as-nails veteran astronaut to lead a joint American-Russian crew into space to destroy the comet before impact. Meanwhile, an enterprising reporter uses her smarts to uncover the scoop of the century.","director":"Mimi Leder","genres":"Action Drama Romance","tagline":"Heaven and Earth are about to collide."},{"title":"S.W.A.T.","overview":"Hondo Harrelson recruits Jim Street to join an elite unit of the Los Angeles Police Department. Together they seek out more members, including tough Deke Kay and single mom Chris Sanchez. The team's first big assignment is to escort crime boss Alex Montel to prison. It seems routine, but when Montel offers a huge reward to anyone who can break him free, criminals of various stripes step up for the prize.","director":"Clark Johnson","genres":"Action Thriller Crime","tagline":"You're either S.W.A.T. or you're not."},{"title":"Man on a Ledge","overview":"An ex-cop turned con threatens to jump to his death from a Manhattan hotel rooftop. The NYPD dispatch a female police psychologist to talk him down. However, unbeknownst to the police on the scene, the suicide attempt is a cover for the biggest diamond heist ever pulled.","director":"Asger Leth","genres":"Action Thriller Crime","tagline":"You can only push an innocent man so far"},{"title":"A.I. Artificial Intelligence","overview":"A robotic boy, the first programmed to love, David is adopted as a test case by a Cybertronics employee and his wife. Though he gradually becomes their child, a series of unexpected circumstances make this life impossible for David. Without final acceptance by humans or machines, David embarks on a journey to discover where he truly belongs, uncovering a world in which the line between robot and machine is both vast and profoundly thin.","director":"Steven Spielberg","genres":"Drama Science Fiction Adventure","tagline":"David is 11 years old. He weighs 60 pounds. He is 4 feet, 6 inches tall. He has brown hair. His love is real. But he is not."},{"title":"Trading Places","overview":"A snobbish investor and a wily street con-artist find their positions reversed as part of a bet by two callous millionaires.","director":"John Landis","genres":"Comedy","tagline":"Some very funny business."},{"title":"Identity Thief","overview":"When a mild-mannered businessman learns his identity has been stolen, he hits the road in an attempt to foil the thief -- a trip that puts him in the path of a deceptively harmless-looking woman.","director":"Seth Gordon","genres":"Comedy Crime","tagline":"She's having the time of his life"},{"title":"Gremlins 2: The New Batch","overview":"Young sweethearts Billy and Kate move to the Big Apple, land jobs in a high-tech office park and soon reunite with the friendly and lovable Gizmo. But a series of accidents creates a whole new generation of Gremlins. The situation worsens when the devilish green creatures invade a top-secret laboratory and develop genetically altered powers, making them even harder to destroy!","director":"Joe Dante","genres":"Comedy Horror Fantasy","tagline":"Here they grow again."},{"title":"The Best of Me","overview":"A pair of former high school sweethearts reunite after many years when they return to visit their small hometown.","director":"Michael Hoffman","genres":"Drama Romance","tagline":"You never forget your first love."},{"title":"Hot Tub Time Machine","overview":"A malfunctioning time machine at a ski resort takes a man back to 1986 with his two friends and nephew, where they must relive a fateful night and not change anything to make sure the nephew is born.","director":"Steve Pink","genres":"Science Fiction Comedy Adventure","tagline":"Kick some past"},{"title":"The Reader","overview":"The story of Michael Berg, a German lawyer who, as a teenager in the late 1950s, had an affair with an older woman, Hanna, who then disappeared only to resurface years later as one of the defendants in a war crimes trial stemming from her actions as a concentration camp guard late in the war. He alone realizes that Hanna is illiterate and may be concealing that fact at the expense of her freedom.","director":"Stephen Daldry","genres":"Drama Romance","tagline":"Behind the mystery lies a truth that will make you question everything you know."},{"title":"Evil Dead","overview":"Evil Dead, the fourth installment of the Evil Dead franchise, serving as both a reboot and as a loose continuation of the series, features Mia, a young woman struggling with sobriety, heads to a remote cabin with a group of friends where the discovery of a Book of the Dead unwittingly summon up dormant demons which possess the youngsters one by one.","director":"Fede Alvarez","genres":"Horror","tagline":"The most terrifying film you will ever experience."},{"title":"The Bone Collector","overview":"Rookie cop, Amelia Donaghy reluctantly teams with Lincoln Rhyme \u2013 formerly the department's top homicide detective but now paralyzed as a result of a spinal injury \u2013 to catch a grisly serial killer dubbed 'The Bone Collector'. The murderer's special signature is to leave tantalizing clues based on the grim remains of his crimes.","director":"Phillip Noyce","genres":"Drama Mystery Thriller Crime","tagline":"Serial killer vs. forensic genius"},{"title":"Bad Boys","overview":"Marcus Burnett is a hen-pecked family man. Mike Lowry is a foot-loose and fancy free ladies' man. Both are Miami policemen, and both have 72 hours to reclaim a consignment of drugs stolen from under their station's nose. To complicate matters, in order to get the assistance of the sole witness to a murder, they have to pretend to be each other.","director":"Michael Bay","genres":"Action Comedy Crime Thriller","tagline":"Whatcha gonna do?"},{"title":"The Devil's Advocate","overview":"A hotshot lawyer gets more than he bargained for when he learns his new boss is Lucifer himself.","director":"Taylor Hackford","genres":"Drama Horror Mystery Thriller","tagline":"Evil has its winning ways."},{"title":"Colombiana","overview":"Zoe Saldana plays a young woman who, after witnessing her parents\u2019 murder as a child in Bogota, grows up to be a stone-cold assassin. She works for her uncle as a hitman by day, but her personal time is spent engaging in vigilante murders that she hopes will lead her to her ultimate target: the mobster responsible for her parents' death.","director":"Olivier Megaton","genres":"Action Thriller Crime Drama","tagline":"Revenge is beautiful."},{"title":"The Last Airbender","overview":"The story follows the adventures of Aang, a young successor to a long line of Avatars, who must put his childhood ways aside and stop the Fire Nation from enslaving the Water, Earth and Air nations.","director":"M. Night Shyamalan","genres":"Action Adventure Family Fantasy","tagline":"Four nations, one destiny"},{"title":"Army of Darkness","overview":"A man is accidentally transported to 1300 A.D., where he must battle an army of the dead and retrieve the Necronomicon so he can return home.","director":"Sam Raimi","genres":"Fantasy Horror Comedy","tagline":"Trapped in time. Surrounded by evil. Low on gas."},{"title":"The Bounty Hunter","overview":"Milo Boyd is a bounty hunter whose latest gig is rather satisfying, as he finds out that the bail-skipper he must chase down is his own ex-wife, Nicole -- but she has no intention of getting nabbed without a fight. Complicating matters, Nicole's wannabe-boyfriend, Stewart, joins the chase.","director":"Andy Tennant","genres":"Action","tagline":"It's a Job. It Isn't Personal. Well, Maybe a Little..."},{"title":"Up in the Air","overview":"George Clooney plays the dry cynical character of Ryan Bingham, an executive who specializes in \"downsizing\". Ryan lives out of his suitcase, traveling the country for the sole purpose terminating unwanted employees day after day. Just as Ryan is about to reach his life-long goal of the ten million mile frequent flyer mark some major changes come his way. Changes that threaten to crack the cold heartless exterior that is Ryan Bingham.","director":"Jason Reitman","genres":"Drama Romance","tagline":"The story of a man ready to make a connection."},{"title":"Public Enemies","overview":"Depression-era bank robber John Dillinger's charm and audacity endear him to much of America's downtrodden public, but he's also a thorn in the side of J. Edgar Hoover and the fledgling FBI. Desperate to capture the elusive outlaw, Hoover makes Dillinger his first Public Enemy Number One and assigns his top agent, Melvin Purvis, the task of bringing him in dead or alive.","director":"Michael Mann","genres":"History Crime Drama","tagline":"America's Most Wanted."},{"title":"Tinker Tailor Soldier Spy","overview":"Recently-retired MI6 agent, George Smiley is doing his best to adjust to a life outside the secret service until a disgraced agent reappears with information concerning a mole at the heart of the service. Smiley is drawn back into the murky field of espionage, tasked with investigating which of his trusted former colleagues has chosen to betray him and their country. Smiley narrows his search to four suspects \u2013 all experienced, skilled and successful agents \u2013 but past histories, rivalries and friendships make it far from easy to pinpoint the man who is eating away at the heart of the British establishment.","director":"Tomas Alfredson","genres":"Drama Thriller Mystery","tagline":"How do you find an enemy who is hidden right before your eyes?"},{"title":"Hook","overview":"The boy who wasn't supposed to grow up\u2014Peter Pan\u2014did just that, becoming a soulless corporate lawyer whose workaholism could cost him his wife and kids. But a trip to see Granny Wendy in London, where the vengeful Capt. Hook kidnaps Peter's kids and forces Peter to return to Neverland, could lead to a chance at redemption, in this family-oriented fantasy from director Steven Spielberg.","director":"Steven Spielberg","genres":"Adventure Fantasy Comedy Family","tagline":"What if Peter Pan grew up?"},{"title":"Survivor","overview":"A Foreign Service Officer in London tries to prevent a terrorist attack set to hit New York, but is forced to go on the run when she is framed for crimes she did not commit.","director":"James McTeigue","genres":"Thriller","tagline":"His Next Target is Now Hunting Him"},{"title":"Charlie's Angels: Full Throttle","overview":"The Angels are charged with finding a pair of missing rings that are encoded with the personal information of members of the Witness Protection Program. As informants are killed, the ladies target a rogue agent who might be responsible.","director":"McG","genres":"Action Adventure Comedy","tagline":"This summer the Angels are back."},{"title":"Wrong Turn","overview":"Chris crashes into a carload of other young people, and the group of stranded motorists is soon lost in the woods of West Virginia, where they're hunted by three cannibalistic mountain men who are grossly disfigured by generations of inbreeding.","director":"Rob Schmidt","genres":"Horror Thriller","tagline":"It's the last one you'll ever take."},{"title":"Point Break","overview":"A young undercover FBI agent infiltrates a gang of thieves who share a common interest in extreme sports. A remake of the 1991 film, \"Point Break\".","director":"Ericson Core","genres":"Action Crime Thriller","tagline":"The only law that matters is gravity"},{"title":"Left Behind","overview":"A small group of survivors are left behind after millions of people suddenly vanish during the rapture and the world is plunged into chaos and destruction.","director":"Vic Armstrong","genres":"Thriller Action Science Fiction","tagline":"The End Begins"},{"title":"Annie","overview":"Ever since her parents left her as a baby, little Annie has led a hard-knock life with her calculating foster mother, Miss Hannigan. However, all that changes when hard-nosed billionaire and mayoral candidate Will Stacks takes her in on the recommendation of his advisers. Stacks believes that he's Annie's guardian angel, but the plucky youngster's confidence and sunny outlook may mean that Annie will save Will instead.","director":"Will Gluck","genres":"Comedy Drama Family","tagline":"It's a Hard Knock Life"},{"title":"Superbad","overview":"High school best buddies are facing separation anxiety as they prepare to go off to college. While attempting to score alcohol for a party with help from a fake ID-toting friend, the guys' evening takes a turn into chaotic territory.","director":"Greg Mottola","genres":"Comedy","tagline":"Come and Get Some!"},{"title":"30 Days of Night","overview":"This is the story of an isolated Alaskan town that is plunged into darkness for a month each year when the sun sinks below the horizon. As the last rays of light fade, the town is attacked by a bloodthirsty gang of vampires bent on an uninterrupted orgy of destruction. Only the small town's husband-and-wife Sheriff team stand between the survivors and certain destruction.","director":"David Slade","genres":"Horror Thriller","tagline":"They're Coming!"},{"title":"Bride Wars","overview":"Two best friends become rivals when their respective weddings are accidentally booked for the same day.","director":"Gary Winick","genres":"Comedy","tagline":"May the best bride win"},{"title":"50\/50","overview":"Inspired by a true story, a comedy centered on a 27-year-old guy who learns of his cancer diagnosis, and his subsequent struggle to beat the disease.","director":"Jonathan Levine","genres":"Comedy Drama","tagline":"It takes a pair to beat the odds."},{"title":"Atonement","overview":"As a 13-year-old, fledgling writer Briony Tallis irrevocably changes the course of several lives when she accuses her older sister's lover of a crime he did not commit.","director":"Joe Wright","genres":"Drama Romance","tagline":"Torn apart by betrayal. Separated by war. Bound by love."},{"title":"Don Jon","overview":"A New Jersey guy dedicated to his family, friends, and church, develops unrealistic expectations from watching porn and works to find happiness and intimacy with his potential true love.","director":"Joseph Gordon-Levitt","genres":"Romance Comedy Drama","tagline":"Everyone loves a happy ending."},{"title":"A Walk to Remember","overview":"When the popular, restless Landon Carter is forced to participate in the school drama production he falls in love with Jamie Sullivan, the daughter of the town's minister. Jamie has a \"to-do\" list for her life and also a very big secret she must keep from Landon.","director":"Adam Shankman","genres":"Drama Romance","tagline":"She didn't belong. She was misunderstood. And she would change him forever."},{"title":"What's Eating Gilbert Grape","overview":"Gilbert has to care for his brother Arnie and his obese mother, which gets in the way when love walks into his life.","director":"Lasse Hallstr\\u00f6m","genres":"Romance Drama","tagline":"A film about the love you find...In the last place you look."},{"title":"Along Came Polly","overview":"Reuben Feffer is a guy who's spent his entire life playing it safe. Polly Prince is irresistible as a free-spirit who lives for the thrill of the moment. When these two comically mismatched souls collide, Reuben's world is turned upside down, as he makes an uproarious attempt to change his life from middle-of-the-road to totally-out-there.","director":"John Hamburg","genres":"Comedy Romance","tagline":"For the most cautious man on Earth, life is about to get interesting."},{"title":"Mad Max","overview":"In a dystopian future Australia, a vicious biker gang murders a cop's family, and makes his fight with them personal.","director":"George Miller","genres":"Adventure Action Thriller Science Fiction","tagline":"The Maximum Force Of The Future"},{"title":"Saw III","overview":"Jigsaw has disappeared. Along with his new apprentice Amanda, the puppet-master behind the cruel, intricate games that have terrified a community and baffled police has once again eluded capture and vanished. While city detective scramble to locate him, Doctor Lynn Denlon and Jeff Reinhart are unaware that they are about to become the latest pawns on his vicious chessboard.","director":"Darren Lynn Bousman","genres":"Horror Thriller Crime","tagline":"Suffering? You Haven't Seen Anything Yet..."},{"title":"Rush","overview":"A biographical drama centered on the rivalry between Formula 1 drivers James Hunt and Niki Lauda during the 1976 Formula One motor-racing season.","director":"Ron Howard","genres":"Drama Action","tagline":"Everyone's driven by something."},{"title":"Saw V","overview":"Detective Hoffman is seemingly the last person alive to carry on the Jigsaw legacy. But when his secret is threatened, he must go on the hunt to eliminate all the loose ends.","director":"David Hackl","genres":"Horror Thriller Crime","tagline":"You Won't Believe How It Ends"},{"title":"Project Almanac","overview":"A group of teens discover secret plans of a time machine, and construct one. However, things start to get out of control.","director":"Dean Israelite","genres":"Science Fiction Thriller","tagline":"Today is better the second time around"},{"title":"Silent Hill","overview":"The eerie and deserted ghost town of Silent Hill draws a young mother desperate to find a cure for her only child's illness. Unable to accept the doctor's diagnosis that her daughter should be permanently institutionalized for psychiatric care, Rose flees with her child, heading for the abandoned town in search of answers \u2013 and ignoring the protests of her husband. It's soon clear this place is unlike anywhere she's ever been. It's smothered by fog, inhabited by a variety of strange beings and periodically overcome by a living 'darkness' that literally transforms everything it touches. As Rose searches for her little girl, she begins to learn the history of the strange town and realizes that her daughter is just a pawn in a larger game.","director":"Christophe Gans","genres":"Horror Mystery","tagline":"We've been expecting you."},{"title":"Secret Window","overview":"Mort Rainey, a writer just emerging from a painful divorce with his ex-wife, is stalked at his remote lake house by a psychotic stranger and would-be scribe who claims Rainey swiped his best story idea. But as Rainey endeavors to prove his innocence, he begins to question his own sanity.","director":"David Koepp","genres":"Thriller Mystery","tagline":"The most important part of a story is the ending."},{"title":"Fantasia","overview":"Walt Disney's timeless masterpiece is an extravaganza of sight and sound! See the music come to life, hear the pictures burst into song and experience the excitement that is Fantasia over and over again.","director":"David Hand","genres":"Animation Family Music","tagline":"The most sensational sound you'll ever see!"},{"title":"Legend","overview":"Suave, charming and volatile, Reggie Kray and his unstable twin brother Ronnie start to leave their mark on the London underworld in the 1960s. Using violence to get what they want, the siblings orchestrate robberies and murders while running nightclubs and protection rackets. With police Detective Leonard \"Nipper\" Read hot on their heels, the brothers continue their rapid rise to power and achieve tabloid notoriety.","director":"Brian Helgeland","genres":"Crime Thriller","tagline":"Love, fight, live, rule like a legend."},{"title":"G.I. Joe: The Rise of Cobra","overview":"From the Egyptian desert to deep below the polar ice caps, the elite G.I. JOE team uses the latest in next-generation spy and military equipment to fight the corrupt arms dealer Destro and the growing threat of the mysterious Cobra organization to prevent them from plunging the world into chaos.","director":"Stephen Sommers","genres":"Adventure Action Thriller Science Fiction","tagline":"When all else fails, they don't."},{"title":"Buried","overview":"Paul is a U.S. truck driver working in Iraq. After an attack by a group of Iraqis he wakes to find he is buried alive inside a coffin. With only a lighter and a cell phone it's a race against time to escape this claustrophobic death trap.","director":"Rodrigo Cort\\u00e9s","genres":"Drama Thriller Mystery","tagline":"170,000 sq miles of desert. 90 minutes of oxygen. No way out."},{"title":"Mr. Popper's Penguins","overview":"Jim Carrey stars as Tom Popper, a successful businessman who\u2019s clueless when it comes to the really important things in life...until he inherits six \u201cadorable\u201d penguins, each with its own unique personality. Soon Tom\u2019s rambunctious roommates turn his swank New York apartment into a snowy winter wonderland \u2014 and the rest of his world upside-down.","director":"Mark Waters","genres":"Comedy Family","tagline":null},{"title":"Meet the Fockers","overview":"Hard-to-crack ex-CIA man, Jack Byrnes and his wife, Dina head for the warmer climes of Florida to meet son-in-law-to-be, Greg Focker's parents. Unlike their happily matched offspring, the future in-laws find themselves in a situation of opposites that definitely do not attract.","director":"Jay Roach","genres":"Comedy Romance","tagline":"Misery loves family."},{"title":"A Million Ways to Die in the West","overview":"As a cowardly farmer begins to fall for the mysterious new woman in town, he must put his new-found courage to the test when her husband, a notorious gun-slinger, announces his arrival.","director":"Seth MacFarlane","genres":"Comedy Western","tagline":"Bring protection."},{"title":"8 Mile","overview":"The setting is Detroit in 1995. The city is divided by 8 Mile, a road that splits the town in half along racial lines. A young white rapper, Jimmy \"B-Rabbit\" Smith Jr. summons strength within himself to cross over these arbitrary boundaries to fulfill his dream of success in hip hop. With his pal Future and the three one third in place, all he has to do is not choke.","director":"Curtis Hanson","genres":"Drama","tagline":"Every moment is another chance."},{"title":"Vicky Cristina Barcelona","overview":"Two girlfriends on a summer holiday in Spain become enamored with the same painter, unaware that his ex-wife, with whom he has a tempestuous relationship, is about to re-enter the picture.","director":"Woody Allen","genres":"Drama Romance","tagline":"Life is the ultimate work of art"},{"title":"Pitch Perfect","overview":"College student Beca knows she does not want to be part of a clique, but that's exactly where she finds herself after arriving at her new school. Thrust in among mean gals, nice gals and just plain weird gals, Beca finds that the only thing they have in common is how well they sing together. She takes the women of the group out of their comfort zone of traditional arrangements and into a world of amazing harmonic combinations in a fight to the top of college music competitions.","director":"Jason Moore","genres":"Comedy Music Romance","tagline":"Get pitch slapped."},{"title":"Midnight Special","overview":"A father and son go on the run after the dad learns his child possesses special powers.","director":"Jeff Nichols","genres":"Adventure Drama Science Fiction","tagline":"He's not like us."},{"title":"Knowing","overview":"A teacher opens a time capsule that has been dug up at his son's elementary school; in it are some chilling predictions -- some that have already occurred and others that are about to -- that lead him to believe his family plays a role in the events that are about to unfold.","director":"Alex Proyas","genres":"Action Adventure Drama Mystery Science Fiction","tagline":"Knowing is everything..."},{"title":"Kiss Kiss Bang Bang","overview":"A petty thief posing as an actor is brought to Los Angeles for an unlikely audition and finds himself in the middle of a murder investigation along with his high school dream girl and a detective who's been training him for his upcoming role...","director":"Shane Black","genres":"Action Comedy Crime Mystery","tagline":"SeX. MurdEr. MyStery. Welcome to the party."},{"title":"Ronin","overview":"A briefcase with undisclosed contents \u2013 sought by Irish terrorists and the Russian mob \u2013 makes its way into criminals' hands. An Irish liaison assembles a squad of mercenaries, or 'ronin', and gives them the thorny task of recovering the case.","director":"John Frankenheimer","genres":"Action Thriller Crime Adventure","tagline":"Your ally could become your enemy."},{"title":"Miss Congeniality","overview":"When the local FBI office receives a letter from a terrorist known only as 'The Citizen', it's quickly determined that he's planning his next act at the Miss America beauty pageant. Because tough-as-nails Gracie Hart is the only female Agent at the office, she's chosen to go undercover as the contestant from New Jersey.","director":"Donald Petrie","genres":"Comedy Crime Action","tagline":"Never Mess With An Agent In A Dress."},{"title":"The Exorcism of Emily Rose","overview":"When a younger girl called Emily Rose (Carpenter) dies, everyone puts blame on the exorcism which was performed on her by Father Moore (Wilkinson) prior to her death. The priest is arrested on suspicion of murder. The trail begins with lawyer Erin Bruner (Linney) representing Moore, but it is not going to be easy, as no one wants to believe what Father Moore says is true.","director":"Scott Derrickson","genres":"Crime Drama Horror Thriller","tagline":"What happened to Emily?"},{"title":"Tremors","overview":"Hick handymen Val McKee and Earl Bassett can barely eke out a living in the Nevada hamlet of Perfection, so they decide to leave town -- despite an admonition from a shapely seismology coed who's picking up odd readings on her equipment. Before long, Val and Earl discover what's responsible for those readings: 30-foot-long carnivorous worms with a proclivity for sucking their prey underground.","director":"Ron Underwood","genres":"Action Horror","tagline":"The monster movie that breaks new ground."},{"title":"Scary Movie 4","overview":"Cindy finds out the house she lives in is haunted by a little boy and goes on a quest to find out who killed him and why. Also, Alien \"Tr-iPods\" are invading the world and she has to uncover the secret in order to stop them.","director":"David Zucker","genres":"Comedy","tagline":"Bury the grudge. Burn the village.  See the saw."},{"title":"The Great Beauty","overview":"Jep Gambardella has seduced his way through the lavish nightlife of Rome for decades, but after his 65th birthday and a shock from the past, Jep looks past the nightclubs and parties to find a timeless landscape of absurd, exquisite beauty.","director":"Paolo Sorrentino","genres":"Comedy Drama","tagline":null},{"title":"The Final Destination","overview":"After a young man's premonition of a deadly race-car crash helps saves the lives of his peers, Death sets out to collect those who evaded their end.","director":"David R. Ellis","genres":"Horror Mystery","tagline":"Rest In Pieces"}]
\ No newline at end of file
diff --git a/recipes/3p_integrations/togetherai/images/BERTScore.png b/recipes/3p_integrations/togetherai/images/BERTScore.png
new file mode 100644
index 0000000000000000000000000000000000000000..59b4d9e5575c2253dd4c6495b09c220b1b56ba91
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/BERTScore.png differ
diff --git a/recipes/3p_integrations/togetherai/images/CoQA.png b/recipes/3p_integrations/togetherai/images/CoQA.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7dd1c6568fa18e9e2e49d98a2133f17ba078b49
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/CoQA.png differ
diff --git a/recipes/3p_integrations/togetherai/images/ColPaliMaxSim-1.png b/recipes/3p_integrations/togetherai/images/ColPaliMaxSim-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e71e29dab12e023dc2c72bf38d5657e2971f7a8
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/ColPaliMaxSim-1.png differ
diff --git a/recipes/3p_integrations/togetherai/images/Nvidia_collage.png b/recipes/3p_integrations/togetherai/images/Nvidia_collage.png
new file mode 100644
index 0000000000000000000000000000000000000000..0aa2d059bc2da8562dc191e74630e9a5fc26e2d0
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/Nvidia_collage.png differ
diff --git a/recipes/3p_integrations/togetherai/images/UMAP.png b/recipes/3p_integrations/togetherai/images/UMAP.png
new file mode 100644
index 0000000000000000000000000000000000000000..32fa3edcbed9df03e81adeab7896c66a02aa4f50
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/UMAP.png differ
diff --git a/recipes/3p_integrations/togetherai/images/cRAG.png b/recipes/3p_integrations/togetherai/images/cRAG.png
new file mode 100644
index 0000000000000000000000000000000000000000..48c1d84400d9b629eab5cf530d94c2a7ed0ef9c0
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/cRAG.png differ
diff --git a/recipes/3p_integrations/togetherai/images/cRAG_indexing.png b/recipes/3p_integrations/togetherai/images/cRAG_indexing.png
new file mode 100644
index 0000000000000000000000000000000000000000..124c49778090bd5718cf0b3c43d1cb7f33185f33
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/cRAG_indexing.png differ
diff --git a/recipes/3p_integrations/togetherai/images/cRAG_querytime.png b/recipes/3p_integrations/togetherai/images/cRAG_querytime.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b266c69f5b0c3532f7158e1efad55740907e849
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/cRAG_querytime.png differ
diff --git a/recipes/3p_integrations/togetherai/images/cluster.png b/recipes/3p_integrations/togetherai/images/cluster.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a13d07eb7d3409808d20440fb8775cde166c20d
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/cluster.png differ
diff --git a/recipes/3p_integrations/togetherai/images/colpali_arch.png b/recipes/3p_integrations/togetherai/images/colpali_arch.png
new file mode 100644
index 0000000000000000000000000000000000000000..57d836d62fd82761bc1fae4a845afe10c5a9cb32
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/colpali_arch.png differ
diff --git a/recipes/3p_integrations/togetherai/images/conversation.png b/recipes/3p_integrations/togetherai/images/conversation.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ee1b047f857056366185cc86ef19e2c2ee89f1e
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/conversation.png differ
diff --git a/recipes/3p_integrations/togetherai/images/deploy_CFT.png b/recipes/3p_integrations/togetherai/images/deploy_CFT.png
new file mode 100644
index 0000000000000000000000000000000000000000..57da20f546da5d149ec7b59b341f11cee1642449
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/deploy_CFT.png differ
diff --git a/recipes/3p_integrations/togetherai/images/ft_model.png b/recipes/3p_integrations/togetherai/images/ft_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff8b21310152dfaa42b1544f40c0945484f5a116
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/ft_model.png differ
diff --git a/recipes/3p_integrations/togetherai/images/mmrag_only.png b/recipes/3p_integrations/togetherai/images/mmrag_only.png
new file mode 100644
index 0000000000000000000000000000000000000000..47f1bd1689b591ae093ddcae23cf864250f57ef3
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/mmrag_only.png differ
diff --git a/recipes/3p_integrations/togetherai/images/page_25.png b/recipes/3p_integrations/togetherai/images/page_25.png
new file mode 100644
index 0000000000000000000000000000000000000000..440f7ab52dbf72cb31aed04db0678dab865117fd
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/page_25.png differ
diff --git a/recipes/3p_integrations/togetherai/images/repetition_task.png b/recipes/3p_integrations/togetherai/images/repetition_task.png
new file mode 100644
index 0000000000000000000000000000000000000000..026efa11384f6d3240a7a593575efb6f54a7d94e
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/repetition_task.png differ
diff --git a/recipes/3p_integrations/togetherai/images/reranking.png b/recipes/3p_integrations/togetherai/images/reranking.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ca8931a46106048fc5684cadb7f0d247211553c
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/reranking.png differ
diff --git a/recipes/3p_integrations/togetherai/images/semantic_search.png b/recipes/3p_integrations/togetherai/images/semantic_search.png
new file mode 100644
index 0000000000000000000000000000000000000000..cbeb4a4b878b5663b97f10b6c4bd677dcdc609e5
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/semantic_search.png differ
diff --git a/recipes/3p_integrations/togetherai/images/simple_RAG.png b/recipes/3p_integrations/togetherai/images/simple_RAG.png
new file mode 100644
index 0000000000000000000000000000000000000000..f93769fcff6ab1a92daa7727393e3ed32de54ff7
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/simple_RAG.png differ
diff --git a/recipes/3p_integrations/togetherai/images/structured_text_image.png b/recipes/3p_integrations/togetherai/images/structured_text_image.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b55f529d16c1af2d9a11c77b66c1ad020df8279
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/structured_text_image.png differ
diff --git a/recipes/3p_integrations/togetherai/images/summarization.png b/recipes/3p_integrations/togetherai/images/summarization.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d23dcb597158f24421ed5e9ba0ac8c22fcbb597
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/summarization.png differ
diff --git a/recipes/3p_integrations/togetherai/images/summary_task.png b/recipes/3p_integrations/togetherai/images/summary_task.png
new file mode 100644
index 0000000000000000000000000000000000000000..985d58c4c3c9b09baac6664efe659428fad1f361
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/summary_task.png differ
diff --git a/recipes/3p_integrations/togetherai/images/text_RAG.png b/recipes/3p_integrations/togetherai/images/text_RAG.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2db9f1bd08f403553d8751d2bf4bde7a219b065
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/text_RAG.png differ
diff --git a/recipes/3p_integrations/togetherai/images/together-color.jpg b/recipes/3p_integrations/togetherai/images/together-color.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c9890027de7c99011204803ba1ab8ff073644f99
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/together-color.jpg differ
diff --git a/recipes/3p_integrations/togetherai/images/together.gif b/recipes/3p_integrations/togetherai/images/together.gif
new file mode 100644
index 0000000000000000000000000000000000000000..49ec6d8172e2817076717f278f0b006e27269c5a
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/together.gif differ
diff --git a/recipes/3p_integrations/togetherai/images/wandb_model.png b/recipes/3p_integrations/togetherai/images/wandb_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..627c828e71e31f20aa786824b81afc007436933a
Binary files /dev/null and b/recipes/3p_integrations/togetherai/images/wandb_model.png differ
diff --git a/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb b/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..fb153fab6fbba645ad3cf2002a533d8b864d2587
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb
@@ -0,0 +1,406 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Generating Knowledge Graphs with LLMs and Structured Outputs\n",
+    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-llama/llama-recipes/blob/main/recipes/3p_integrations/togetherai/knowledge_graphs_with_structured_outputs.ipynb)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Introduction\n",
+    "\n",
+    "In this notebook we show how to generate and visualize knowledge graphs using Large Language Models (LLMs), and how to use JSON mode for structured output generation. We will use [Together AI JSON mode](https://docs.together.ai/docs/json-mode) to access models that will generate JSON structures that represent a knowledge graph (including nodes, edges, labels) for us. \n",
+    "\n",
+    "We will then pass these knowledge graph components to [GraphViz](https://graphviz.org/) that will help us generate and visualize these graphs.\n",
+    "\n",
+    "<img src=\"images/cluster.png\" height=\"500\">"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Install relevant libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "DFAjay1FZVrn",
+    "outputId": "d4b17b31-c125-4de5-ad54-6d4d08d81eaa"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Requirement already satisfied: together in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (1.3.3)\n",
+      "Requirement already satisfied: aiohttp<4.0.0,>=3.9.3 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (3.10.10)\n",
+      "Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (8.1.7)\n",
+      "Requirement already satisfied: eval-type-backport<0.3.0,>=0.1.3 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (0.2.0)\n",
+      "Requirement already satisfied: filelock<4.0.0,>=3.13.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (3.16.1)\n",
+      "Requirement already satisfied: numpy>=1.23.5 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (1.26.4)\n",
+      "Requirement already satisfied: pillow<11.0.0,>=10.3.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (10.4.0)\n",
+      "Requirement already satisfied: pyarrow>=10.0.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (18.0.0)\n",
+      "Requirement already satisfied: pydantic<3.0.0,>=2.6.3 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (2.9.2)\n",
+      "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (2.32.3)\n",
+      "Requirement already satisfied: rich<14.0.0,>=13.8.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (13.9.3)\n",
+      "Requirement already satisfied: tabulate<0.10.0,>=0.9.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (0.9.0)\n",
+      "Requirement already satisfied: tqdm<5.0.0,>=4.66.2 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (4.66.6)\n",
+      "Requirement already satisfied: typer<0.13,>=0.9 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from together) (0.12.5)\n",
+      "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (2.4.3)\n",
+      "Requirement already satisfied: aiosignal>=1.1.2 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.3.1)\n",
+      "Requirement already satisfied: attrs>=17.3.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (24.2.0)\n",
+      "Requirement already satisfied: frozenlist>=1.1.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.5.0)\n",
+      "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (6.1.0)\n",
+      "Requirement already satisfied: yarl<2.0,>=1.12.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.17.1)\n",
+      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.9.3->together) (4.0.3)\n",
+      "Requirement already satisfied: annotated-types>=0.6.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from pydantic<3.0.0,>=2.6.3->together) (0.7.0)\n",
+      "Requirement already satisfied: pydantic-core==2.23.4 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from pydantic<3.0.0,>=2.6.3->together) (2.23.4)\n",
+      "Requirement already satisfied: typing-extensions>=4.6.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from pydantic<3.0.0,>=2.6.3->together) (4.12.2)\n",
+      "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->together) (3.4.0)\n",
+      "Requirement already satisfied: idna<4,>=2.5 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->together) (3.10)\n",
+      "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->together) (2.2.3)\n",
+      "Requirement already satisfied: certifi>=2017.4.17 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from requests<3.0.0,>=2.31.0->together) (2024.8.30)\n",
+      "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from rich<14.0.0,>=13.8.1->together) (3.0.0)\n",
+      "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from rich<14.0.0,>=13.8.1->together) (2.18.0)\n",
+      "Requirement already satisfied: shellingham>=1.3.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from typer<0.13,>=0.9->together) (1.5.4)\n",
+      "Requirement already satisfied: mdurl~=0.1 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.8.1->together) (0.1.2)\n",
+      "Requirement already satisfied: propcache>=0.2.0 in /Users/jeffxtang/anaconda3/envs/llama-recipes/lib/python3.10/site-packages (from yarl<2.0,>=1.12.0->aiohttp<4.0.0,>=3.9.3->together) (0.2.0)\n",
+      "Collecting graphviz\n",
+      "  Using cached graphviz-0.20.3-py3-none-any.whl.metadata (12 kB)\n",
+      "Using cached graphviz-0.20.3-py3-none-any.whl (47 kB)\n",
+      "Installing collected packages: graphviz\n",
+      "Successfully installed graphviz-0.20.3\n"
+     ]
+    }
+   ],
+   "source": [
+    "!pip install together\n",
+    "!pip install graphviz"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "id": "5L-bdWL8Zz2B"
+   },
+   "outputs": [],
+   "source": [
+    "from together import Together\n",
+    "import together\n",
+    "import json\n",
+    "\n",
+    "# Paste in your Together AI API Key\n",
+    "TOGETHER_API_KEY = \"YOUR_TOGETHER_API_KEY\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Define Knowledge Graph Schema in Pydantic\n",
+    "\n",
+    "We need a way of telling the LLM what structure a knowledge graph has - including what information the nodes, edges must have and how they come together to create the overall graph structure. We will do this using `pydantic` models.\n",
+    "\n",
+    "Below we define the required classes. \n",
+    "\n",
+    "- Each node in our graph needs to have an `id` and a `label`. The `Node` class specifies this.\n",
+    "- Each edge in our graph needs to have a `label` and must also connect two nodes from the `source` to `destination` direction. The `Edge` class specified this.\n",
+    "- Each Knowledge graph is a combination of multiple `Node` and `Edge` elements. The `KnowledgeGraph` class specifies this. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "id": "ycvtkJdhZ5Zo"
+   },
+   "outputs": [],
+   "source": [
+    "from pydantic import BaseModel, Field\n",
+    "from typing import List\n",
+    "\n",
+    "class Node(BaseModel, frozen=True):\n",
+    "    id: int\n",
+    "    label: str\n",
+    "\n",
+    "class Edge(BaseModel, frozen=True):\n",
+    "    source: int\n",
+    "    target: int\n",
+    "    label: str\n",
+    "\n",
+    "class KnowledgeGraph(BaseModel):\n",
+    "    nodes: List[Node] = Field(..., default_factory=list)\n",
+    "    edges: List[Edge] = Field(..., default_factory=list)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "5auwyteuadki",
+    "outputId": "38fecb4a-5c11-4755-e311-a376bc308bee"
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{'$defs': {'Edge': {'properties': {'source': {'title': 'Source',\n",
+       "     'type': 'integer'},\n",
+       "    'target': {'title': 'Target', 'type': 'integer'},\n",
+       "    'label': {'title': 'Label', 'type': 'string'}},\n",
+       "   'required': ['source', 'target', 'label'],\n",
+       "   'title': 'Edge',\n",
+       "   'type': 'object'},\n",
+       "  'Node': {'properties': {'id': {'title': 'Id', 'type': 'integer'},\n",
+       "    'label': {'title': 'Label', 'type': 'string'}},\n",
+       "   'required': ['id', 'label'],\n",
+       "   'title': 'Node',\n",
+       "   'type': 'object'}},\n",
+       " 'properties': {'nodes': {'items': {'$ref': '#/$defs/Node'},\n",
+       "   'title': 'Nodes',\n",
+       "   'type': 'array'},\n",
+       "  'edges': {'items': {'$ref': '#/$defs/Edge'},\n",
+       "   'title': 'Edges',\n",
+       "   'type': 'array'}},\n",
+       " 'title': 'KnowledgeGraph',\n",
+       " 'type': 'object'}"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Print out the JSON Schema for our knowledge graph\n",
+    "KnowledgeGraph.model_json_schema()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Function to Generate a Knowledge Graph using LLMs\n",
+    "\n",
+    "Here we use Together AI to access `Meta-Llama-3.1-70B` in strict JSON mode. We pass in instructions to get the LLM to generate a knowledge that captures the information about a passed in `input` string. \n",
+    "\n",
+    "We pass in the above `KnowledgeGraph` JSON schema to guide the structured output generation."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "id": "GHwlq8vuZ9QM"
+   },
+   "outputs": [],
+   "source": [
+    "# Call the LLM with the JSON schema\n",
+    "def generate_graph(input) -> KnowledgeGraph:\n",
+    "    together = Together(api_key = TOGETHER_API_KEY)\n",
+    "\n",
+    "    extract = together.chat.completions.create(\n",
+    "        messages=[\n",
+    "            {\n",
+    "                \"role\": \"user\",\n",
+    "                \"content\": f\"Build a knowledge graph to explain: {input}. Only answer in JSON.\",\n",
+    "            }\n",
+    "        ],\n",
+    "        model=\"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo\",\n",
+    "        response_format={\n",
+    "            \"type\": \"json_object\",\n",
+    "            \"schema\": KnowledgeGraph.model_json_schema(),\n",
+    "        },\n",
+    "    )\n",
+    "\n",
+    "    output = json.loads(extract.choices[0].message.content)\n",
+    "    return output"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Let's use the function above to generate a knowledge graph about the paper Attention Is All You Need,\n",
+    "# a landmark in AI which introduced the Transformer architecture, enabling breakthroughs in LLMs.\n",
+    "\n",
+    "graph = generate_graph(\"The paper Attention Is All You Need\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{'nodes': [{'id': 1, 'label': 'Transformer'},\n",
+       "  {'id': 2, 'label': 'Attention Mechanism'},\n",
+       "  {'id': 3, 'label': 'Encoder-Decoder Architecture'},\n",
+       "  {'id': 4, 'label': 'Self-Attention'},\n",
+       "  {'id': 5, 'label': 'Vaswani et al.'},\n",
+       "  {'id': 6, 'label': 'Sequence-to-Sequence Models'},\n",
+       "  {'id': 7, 'label': 'Recurrent Neural Networks (RNNs)'},\n",
+       "  {'id': 8, 'label': 'Convolutional Neural Networks (CNNs)'},\n",
+       "  {'id': 9, 'label': 'Parallelization'}],\n",
+       " 'edges': [{'source': 1, 'target': 2, 'label': 'utilizes'},\n",
+       "  {'source': 1, 'target': 3, 'label': 'employs'},\n",
+       "  {'source': 2, 'target': 4, 'label': 'includes'},\n",
+       "  {'source': 3, 'target': 6, 'label': 'enhances'},\n",
+       "  {'source': 5, 'target': 1, 'label': 'proposes'},\n",
+       "  {'source': 6, 'target': 7, 'label': 'replaces'},\n",
+       "  {'source': 6, 'target': 8, 'label': 'outperforms'},\n",
+       "  {'source': 1, 'target': 9, 'label': 'enables'}]}"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Lets see the knowlege graph components generated!\n",
+    "graph"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Use GraphViz to Create and Visualize the Graph\n",
+    "\n",
+    "Below we write a function that takes the knowledge graph JSON structure above and creates a GraphViz Directed Graph(`Digraph`) and generates a picture of the graph."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {
+    "id": "dso_caYbapzO"
+   },
+   "outputs": [],
+   "source": [
+    "from graphviz import Digraph\n",
+    "\n",
+    "def visualize_knowledge_graph(kg):\n",
+    "    dot = Digraph(comment=\"Knowledge Graph\", format='png')\n",
+    "\n",
+    "    # Add nodes\n",
+    "    for node in kg['nodes']:\n",
+    "        dot.node(str(node['id']), node['label'])\n",
+    "\n",
+    "    # Add edges\n",
+    "    for edge in kg['edges']:\n",
+    "        dot.edge(str(edge['source']), str(edge['target']), label=edge['label'])\n",
+    "\n",
+    "    # Render the graph to a file and open it\n",
+    "    output_path = dot.render(\"knowledge_graph\", view=True)\n",
+    "    print(f\"Graph rendered and saved to {output_path}\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "q9v0fnk9dgLY",
+    "outputId": "668c6e7a-4460-4248-e7af-ed6c5eb54d2b"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Graph rendered and saved to knowledge_graph.png\n"
+     ]
+    }
+   ],
+   "source": [
+    "visualize_knowledge_graph(graph)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 540
+    },
+    "id": "w8JnsjGaifAx",
+    "outputId": "d08dabeb-5777-4aa0-a5a3-9f32917b1dc1"
+   },
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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xZeJiQl0dHQk/FTNu3//PkpLS1FUVITS0lKUlJSguLgY+fn5yM/PR15eHgoKCiCTyVBVVSXuZ2Ji8lipfVhsraysJPxERETUQrC0ERHRy1dQUIC8vDzk5+cjNzdXLDMP19+7dw/FxcWP7aetrQ0TExOYmppCR0cHenp60NfXR7t27WBgYABdXV1oaWmJE6VoaGhAT0+vyRh6enrQ0NAQlxUKhXhm66Hy8nIIgoDGxkZUVFRALpejtrYWZWVl4vbl5eWQy+ViQaurq2syhrq6ulhIra2tYWVlBSsrK7Gc2trawsbGBsbGxi/rayUioraJpY2IiKQhCAJKSkrEUvTo76WlpZDL5aiqqkJlZSUUCgUqKytRVVUFhUKB+/fvAwBqamqgUCiajFtRUYHGxkZxublip6KiAiMjI2hra0NLSwvGxsbQ0tKCtrY2jIyMoKOjI5bIhz9NTU1hZmbGe8yIiOh1YWkjIqLWJzY2Fj4+PigrK4ORkZHUcYiIiF5EIZ+mSkREREREpMRY2oiIiIiIiJQYSxsREREREZESY2kjIiIiIiJSYixtRERERERESoyljYiIiIiISImxtBERERERESkxljYiIiIiIiIlxtJGRERERESkxFjaiIiIiIiIlBhLGxERERERkRJjaSMiIiIiIlJiLG1ERERERERKjKWNiIiIiIhIibG0ERERERERKTGWNiIiIiIiIiXG0kZERERERKTEWNqIiIiIiIiUGEsbERERERGREmNpIyIiIiIiUmIsbUREREREREqMpY2IiIiIiEiJsbQREREREREpMZY2IiIiIiIiJcbSRkREREREpMRY2oiIiIiIiJQYSxsREREREZESY2kjIiIiIiJSYixtRERERERESoyljYiIiIiISImxtBERERERESkxdakDEBERvSrZ2dk4deoU5s+fj4SEBMTExMDR0RGBgYFQVf3t/1tmZWUhLCwMy5YtQ0xMDNLS0vDXv/4VGhoaqK2txalTp3Dq1ClYWVlh+PDhcHBwEMfPyspCdHR0s+MDeOY4AMT9bW1toaqqilmzZonv3b9/H3v37sX169dhb2+P999/H3p6es+1LxERtQICERFRK3P06FEBgKCrqyt06NBB2Llzp9CzZ09BW1tbACCMHz9eEARB2LZtm2BpaSkAEMLCwoQ+ffoIAITExEShpqZGGDp0qLBnzx6h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",
+      "text/plain": [
+       "<IPython.core.display.Image object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "from IPython.display import Image, display\n",
+    "\n",
+    "# Display the image of the knowledge graph\n",
+    "display(Image(filename='knowledge_graph.png'))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We were able to get a LLM to generate a knowledge graph by telling is the structure that a knowledge graph library, GraphViz, expects the output to be in. We then used GraphViz to create and visualize the knowledge graph above!\n",
+    "\n",
+    "Learn more about how to use JSON mode in the [docs](https://docs.together.ai/docs/json-mode) here!"
+   ]
+  }
+ ],
+ "metadata": {
+  "colab": {
+   "provenance": []
+  },
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.15"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/recipes/3p_integrations/togetherai/llama_contextual_RAG.ipynb b/recipes/3p_integrations/togetherai/llama_contextual_RAG.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..4926bda66647fa262a0261fd8dd00783a8cfe73b
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/llama_contextual_RAG.ipynb
@@ -0,0 +1,5411 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "FOs91Ure71js"
+      },
+      "source": [
+        "# Open Contextual RAG\n",
+        "\n",
+        "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/togethercomputer/together-cookbook/blob/main/Open_Contextual_RAG.ipynb)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "uvlBTGL58Cd3"
+      },
+      "source": [
+        "## Introduction\n",
+        "\n",
+        "[Contextual Retrieval](https://www.anthropic.com/news/contextual-retrieval) is a chunk augmentation technique that uses a LLM to ehance each chunk.\n",
+        "\n",
+        "<img src=\"images/cRAG.png\" width=\"1000\">\n",
+        "\n",
+        "Here's an overview of how it works. 👇\n",
+        "\n",
+        "Contextual RAG:\n",
+        "\n",
+        "1. For every chunk - prepend an explanatory context snippet that situates the chunk within the rest\n",
+        " of the document. -> Get a small cost effective LLM to do this.\n",
+        "\n",
+        "2. Hybrid Search: Embed the chunk using both sparse (keyword) and dense(semantic) embeddings.\n",
+        "\n",
+        "3. Perform rank fusion using an algorithm like Reciprocal Rank Fusion(RRF).\n",
+        "\n",
+        "4. Retrieve top 150 chunks and pass those to a Reranker to obtain top 20 chunks.\n",
+        "\n",
+        "5. Pass top 20 chunks to LLM to generate an answer.\n",
+        "\n",
+        "Below we implement each step in this process using Open Source models."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "To breakdown the concept further we break down the process into a one-time indexing step and a query time step.\n",
+        "\n",
+        "Data Ingestion Phase:\n",
+        "\n",
+        "<img src=\"images/cRAG_indexing.png\" width=\"500\">\n",
+        "\n",
+        "1. Data processing and chunking\n",
+        "2. Context generation using a quantized Llama 3B Model\n",
+        "3. Vector Embedding and Index Generation\n",
+        "4. BM25 Keyword Index Generation\n",
+        "\n",
+        "\n",
+        "At Query Time:\n",
+        "\n",
+        "<img src=\"images/cRAG_querytime.png\" width=\"750\">\n",
+        "\n",
+        "1. Perform retreival using both indices and combine them using RRF\n",
+        "2. Reranker to improve retreival quality\n",
+        "3. Generation with Llama 405b"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Install Libraries"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 2,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "1LkLFXDet80v",
+        "outputId": "f9caad45-918f-4c64-ac72-0465df381848"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Requirement already satisfied: pypdf in /usr/local/lib/python3.10/dist-packages (5.0.1)\n",
+            "Requirement already satisfied: typing_extensions>=4.0 in /usr/local/lib/python3.10/dist-packages (from pypdf) (4.12.2)\n",
+            "Requirement already satisfied: together in /usr/local/lib/python3.10/dist-packages (1.3.3)\n",
+            "Requirement already satisfied: aiohttp<4.0.0,>=3.9.3 in /usr/local/lib/python3.10/dist-packages (from together) (3.10.10)\n",
+            "Requirement already satisfied: click<9.0.0,>=8.1.7 in /usr/local/lib/python3.10/dist-packages (from together) (8.1.7)\n",
+            "Requirement already satisfied: eval-type-backport<0.3.0,>=0.1.3 in /usr/local/lib/python3.10/dist-packages (from together) (0.2.0)\n",
+            "Requirement already satisfied: filelock<4.0.0,>=3.13.1 in /usr/local/lib/python3.10/dist-packages (from together) (3.16.1)\n",
+            "Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from together) (1.26.4)\n",
+            "Requirement already satisfied: pillow<11.0.0,>=10.3.0 in /usr/local/lib/python3.10/dist-packages (from together) (10.4.0)\n",
+            "Requirement already satisfied: pyarrow>=10.0.1 in /usr/local/lib/python3.10/dist-packages (from together) (16.1.0)\n",
+            "Requirement already satisfied: pydantic<3.0.0,>=2.6.3 in /usr/local/lib/python3.10/dist-packages (from together) (2.9.2)\n",
+            "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from together) (2.32.3)\n",
+            "Requirement already satisfied: rich<14.0.0,>=13.8.1 in /usr/local/lib/python3.10/dist-packages (from together) (13.9.3)\n",
+            "Requirement already satisfied: tabulate<0.10.0,>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from together) (0.9.0)\n",
+            "Requirement already satisfied: tqdm<5.0.0,>=4.66.2 in /usr/local/lib/python3.10/dist-packages (from together) (4.66.5)\n",
+            "Requirement already satisfied: typer<0.13,>=0.9 in /usr/local/lib/python3.10/dist-packages (from together) (0.12.5)\n",
+            "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (2.4.3)\n",
+            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.3.1)\n",
+            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (24.2.0)\n",
+            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.4.1)\n",
+            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (6.1.0)\n",
+            "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.16.0)\n",
+            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (4.0.3)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (2.23.4)\n",
+            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (4.12.2)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2024.8.30)\n",
+            "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (3.0.0)\n",
+            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (2.18.0)\n",
+            "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<0.13,>=0.9->together) (1.5.4)\n",
+            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.8.1->together) (0.1.2)\n",
+            "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp<4.0.0,>=3.9.3->together) (0.2.0)\n",
+            "Requirement already satisfied: Wikipedia-API in /usr/local/lib/python3.10/dist-packages (0.7.1)\n",
+            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from Wikipedia-API) (2.32.3)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->Wikipedia-API) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->Wikipedia-API) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->Wikipedia-API) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->Wikipedia-API) (2024.8.30)\n",
+            "Requirement already satisfied: tiktoken in /usr/local/lib/python3.10/dist-packages (0.8.0)\n",
+            "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken) (2024.9.11)\n",
+            "Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/python3.10/dist-packages (from tiktoken) (2.32.3)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken) (2024.8.30)\n",
+            "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (4.12.3)\n",
+            "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4) (2.6)\n"
+          ]
+        }
+      ],
+      "source": [
+        "!pip install together # To access open source LLMs\n",
+        "!pip install --upgrade tiktoken # To count total token counts\n",
+        "!pip install beautifulsoup4 # To scrape documents to RAG over\n",
+        "!pip install bm25s # To implement out key-word BM25 search"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "H2kyKpp037zU"
+      },
+      "source": [
+        "### 1. Data Processing and Chunking\n",
+        "\n",
+        "We will RAG over Paul Grahams latest essay titled [**Founder Mode**](https://paulgraham.com/foundermode.html)."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 3,
+      "metadata": {
+        "id": "FA6zEEIFEOaT"
+      },
+      "outputs": [],
+      "source": [
+        "# Let's download the essay from Paul Graham's website\n",
+        "\n",
+        "import requests\n",
+        "from bs4 import BeautifulSoup\n",
+        "\n",
+        "def scrape_pg_essay():\n",
+        "\n",
+        "    url = 'https://paulgraham.com/foundermode.html'\n",
+        "\n",
+        "    try:\n",
+        "        # Send GET request to the URL\n",
+        "        response = requests.get(url)\n",
+        "        response.raise_for_status()  # Raise an error for bad status codes\n",
+        "\n",
+        "        # Parse the HTML content\n",
+        "        soup = BeautifulSoup(response.text, 'html.parser')\n",
+        "\n",
+        "        # Paul Graham's essays typically have the main content in a font tag\n",
+        "        # You might need to adjust this selector based on the actual HTML structure\n",
+        "        content = soup.find('font')\n",
+        "\n",
+        "        if content:\n",
+        "            # Extract and clean the text\n",
+        "            text = content.get_text()\n",
+        "            # Remove extra whitespace and normalize line breaks\n",
+        "            text = ' '.join(text.split())\n",
+        "            return text\n",
+        "        else:\n",
+        "            return \"Could not find the main content of the essay.\"\n",
+        "\n",
+        "    except requests.RequestException as e:\n",
+        "        return f\"Error fetching the webpage: {e}\"\n",
+        "\n",
+        "# Scrape the essay\n",
+        "pg_essay = scrape_pg_essay()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 6,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "vSHFejIIEUC0",
+        "outputId": "f9a87bda-4237-410c-ff4a-0f5e42c1864b"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "September 2024At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'm not going to try to reproduce it here. Instead I want to talk about a question it raised.The theme of Brian's talk was that the conventional wisdom about how to run larger companies is mistaken. As Airbnb grew, well-meaning people advised him that he had to run the company in a certain way for it to scale. Their advice could be optimistically summarized as \"hire good people and give them room to do their jobs.\" He followed this advice and the results were disastrous. So he had to figure out a better way on his own, which he did partly by studying how Steve Jobs ran Apple. So far it seems to be working. Airbnb's free cash flow margin is now among the best in Silicon Valley.The audience at this event included a lot of the most successful fo\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(pg_essay[:1000])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 7,
+      "metadata": {
+        "id": "thecu6QAzt_d"
+      },
+      "outputs": [],
+      "source": [
+        "# We can get away with naive fixed sized chunking as the context generation will add meaning to these chunks\n",
+        "\n",
+        "def create_chunks(document, chunk_size=300, overlap=50):\n",
+        "    return [document[i : i + chunk_size] for i in range(0, len(document), chunk_size - overlap)]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 8,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "KzWDTf-SGAMv",
+        "outputId": "8e114fe2-e2b4-492b-cd10-7101474e6d5d"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Chunk 1: September 2024At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'\n",
+            "Chunk 2: life, forgot to take notes. I'm not going to try to reproduce it here. Instead I want to talk about a question it raised.The theme of Brian's talk was that the conventional wisdom about how to run larger companies is mistaken. As Airbnb grew, well-me\n",
+            "Chunk 3: taken. As Airbnb grew, well-meaning people advised him that he had to run the company in a certain way for it to scale. Their advice could be optimistically summarized as \"hire good people and give them room to do their jobs.\" He followed this advice\n",
+            "Chunk 4: jobs.\" He followed this advice and the results were disastrous. So he had to figure out a better way on his own, which he did partly by studying how Steve Jobs ran Apple. So far it seems to be working. Airbnb's free cash flow margin is now among the \n",
+            "Chunk 5:  flow margin is now among the best in Silicon Valley.The audience at this event included a lot of the most successful founders we've funded, and one after another said that the same thing had happened to them. They'd been given the same advice about \n",
+            "Chunk 6: n given the same advice about how to run their companies as they grew, but instead of helping their companies, it had damaged them.Why was everyone telling these founders the wrong thing? That was the big mystery to me. And after mulling it over for \n",
+            "Chunk 7: And after mulling it over for a bit I figured out the answer: what they were being told was how to run a company you hadn't founded — how to run a company if you're merely a professional manager. But this m.o. is so much less effective that to founde\n",
+            "Chunk 8:  less effective that to founders it feels broken. There are things founders can do that managers can't, and not doing them feels wrong to founders, because it is.In effect there are two different ways to run a company: founder mode and manager mode. \n",
+            "Chunk 9: ounder mode and manager mode. Till now most people even in Silicon Valley have implicitly assumed that scaling a startup meant switching to manager mode. But we can infer the existence of another mode from the dismay of founders who've tried it, and \n",
+            "Chunk 10: founders who've tried it, and the success of their attempts to escape from it.There are as far as I know no books specifically about founder mode. Business schools don't know it exists. All we have so far are the experiments of individual founders wh\n",
+            "Chunk 11: ents of individual founders who've been figuring it out for themselves. But now that we know what we're looking for, we can search for it. I hope in a few years founder mode will be as well understood as manager mode. We can already guess at some of \n",
+            "Chunk 12:  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's\n",
+            "Chunk 13: t reports what to do, and it's up to them to figure out how. But you don't get involved in the details of what they do. That would be micromanaging them, which is bad.Hire good people and give them room to do their jobs. Sounds great when it's descri\n",
+            "Chunk 14:  Sounds great when it's described that way, doesn't it? Except in practice, judging from the report of founder after founder, what this often turns out to mean is: hire professional fakers and let them drive the company into the ground.One theme I no\n",
+            "Chunk 15: into the ground.One theme I noticed both in Brian's talk and when talking to founders afterward was the idea of being gaslit. Founders feel like they're being gaslit from both sides — by the people telling them they have to run their companies like m\n",
+            "Chunk 16:  to run their companies like managers, and by the people working for them when they do. Usually when everyone around you disagrees with you, your default assumption should be that you're mistaken. But this is one of the rare exceptions. VCs who haven\n",
+            "Chunk 17: rare exceptions. VCs who haven't been founders themselves don't know how founders should run companies, and C-level execs, as a class, include some of the most skillful liars in the world. [1]Whatever founder mode consists of, it's pretty clear that \n",
+            "Chunk 18: ts of, it's pretty clear that it's going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there's a name for it. An\n",
+            "Chunk 19: that there's a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer\n",
+            "Chunk 20: people at Apple, and these were not the 100 people highest on the org chart. Can you imagine the force of will it would take to do this at the average company? And yet imagine how useful such a thing could be. It could make a big company feel like a \n",
+            "Chunk 21: ake a big company feel like a startup. Steve presumably wouldn't have kept having these retreats if they didn't work. But I've never heard of another company doing this. So is it a good idea, or a bad one? We still don't know. That's how little we kn\n",
+            "Chunk 22:  know. That's how little we know about founder mode. [2]Obviously founders can't keep running a 2000 person company the way they ran it when it had 20. There's going to have to be some amount of delegation. Where the borders of autonomy end up, and h\n",
+            "Chunk 23: ders of autonomy end up, and how sharp they are, will probably vary from company to company. They'll even vary from time to time within the same company, as managers earn trust. So founder mode will be more complicated than manager mode. But it will \n",
+            "Chunk 24: han manager mode. But it will also work better. We already know that from the examples of individual founders groping their way toward it.Indeed, another prediction I'll make about founder mode is that once we figure out what it is, we'll find that a\n",
+            "Chunk 25:  what it is, we'll find that a number of individual founders were already most of the way there — except that in doing what they did they were regarded by many as eccentric or worse. [3]Curiously enough it's an encouraging thought that we still know \n",
+            "Chunk 26: ng thought that we still know so little about founder mode. Look at what founders have achieved already, and yet they've achieved this against a headwind of bad advice. Imagine what they'll do once we can tell them how to run their companies like Ste\n",
+            "Chunk 27: o run their companies like Steve Jobs instead of John Sculley.Notes[1] The more diplomatic way of phrasing this statement would be to say that experienced C-level execs are often very skilled at managing up. And I don't think anyone with knowledge of\n",
+            "Chunk 28: think anyone with knowledge of this world would dispute that.[2] If the practice of having such retreats became so widespread that even mature companies dominated by politics started to do it, we could quantify the senescence of companies by the aver\n",
+            "Chunk 29: cence of companies by the average depth on the org chart of those invited.[3] I also have another less optimistic prediction: as soon as the concept of founder mode becomes established, people will start misusing it. Founders who are unable to delega\n",
+            "Chunk 30: nders who are unable to delegate even things they should will use founder mode as the excuse. Or managers who aren't founders will decide they should try to act like founders. That may even work, to some extent, but the results will be messy when it \n",
+            "Chunk 31: results will be messy when it doesn't; the modular approach does at least limit the damage a bad CEO can do.Thanks to Brian Chesky, Patrick Collison, Ron Conway, Jessica Livingston, Elon Musk, Ryan Petersen, Harj Taggar, and Garry Tan for reading dra\n",
+            "Chunk 32:  and Garry Tan for reading drafts of this.\n"
+          ]
+        }
+      ],
+      "source": [
+        "chunks = create_chunks(pg_essay, chunk_size=250, overlap=30)\n",
+        "\n",
+        "for i, chunk in enumerate(chunks):\n",
+        "    print(f\"Chunk {i + 1}: {chunk}\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "yafrkIP-4I3p"
+      },
+      "source": [
+        "### 2. Generating Contextual Chunks\n",
+        "\n",
+        "This part contains the main intuition behind `Contextual Retrieval`. We will make an LLM call for each chunk to add much needed relevant context to the chunk. In order to do this we pass in the ENTIRE document per LLM call.\n",
+        "\n",
+        "It may seem that passing in the entire document per chunk and making an LLM call per chunk is quite inefficient, this is true and there very well might be more efficient techniques to accomplish the same end goal. But in keeping with implementing the current technique at hand lets do it.\n",
+        "\n",
+        "Additionally using quantized small 1-3b models (here we will use Llama 3b) along with prompt caching does make this more feasible.\n",
+        "\n",
+        "Prompt caching allows key and value matrices corresponding to the document to be cached for future LLM calls."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 10,
+      "metadata": {
+        "id": "vNN7oQg_Ppoc"
+      },
+      "outputs": [],
+      "source": [
+        "import together, os\n",
+        "from together import Together\n",
+        "\n",
+        "# Paste in your Together AI API Key or load it\n",
+        "TOGETHER_API_KEY = os.environ.get(\"TOGETHER_API_KEY\")\n",
+        "client = Together(api_key = TOGETHER_API_KEY)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 11,
+      "metadata": {
+        "id": "_9TXZMBQM5i5"
+      },
+      "outputs": [],
+      "source": [
+        "# We want to generate a snippet explaining the relevance/importance of the chunk with\n",
+        "# full document in mind.\n",
+        "\n",
+        "CONTEXTUAL_RAG_PROMPT = \"\"\"\n",
+        "Given the document below, we want to explain what the chunk captures in the document.\n",
+        "\n",
+        "{WHOLE_DOCUMENT}\n",
+        "\n",
+        "Here is the chunk we want to explain:\n",
+        "\n",
+        "{CHUNK_CONTENT}\n",
+        "\n",
+        "Answer ONLY with a succinct explaination of the meaning of the chunk in the context of the whole document above.\n",
+        "\"\"\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 12,
+      "metadata": {
+        "id": "pqPzVWDFQM4R"
+      },
+      "outputs": [],
+      "source": [
+        "from typing import List\n",
+        "\n",
+        "# First we will just generate the prompts and examine them\n",
+        "\n",
+        "def generate_prompts(document : str, chunks : List[str]) -> List[str]:\n",
+        "  prompts = []\n",
+        "  for chunk in chunks:\n",
+        "    prompt = CONTEXTUAL_RAG_PROMPT.format(WHOLE_DOCUMENT=document, CHUNK_CONTENT=chunk)\n",
+        "    prompts.append(prompt)\n",
+        "  return prompts"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 13,
+      "metadata": {
+        "id": "ZiPQsasRQhmj"
+      },
+      "outputs": [],
+      "source": [
+        "prompts = generate_prompts(pg_essay, chunks)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 15,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "zuX07sLaGw8k",
+        "outputId": "81f70662-1f9d-4408-eba0-8a1c2bad4e94"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            " even things they should will use founder mode as the excuse. Or managers who aren't founders will decide they should try to act like founders. That may even work, to some extent, but the results will be messy when it doesn't; the modular approach does at least limit the damage a bad CEO can do.Thanks to Brian Chesky, Patrick Collison, Ron Conway, Jessica Livingston, Elon Musk, Ryan Petersen, Harj Taggar, and Garry Tan for reading drafts of this.\n",
+            "\n",
+            "Here is the chunk we want to explain:\n",
+            "\n",
+            "September 2024At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'\n",
+            "\n",
+            "Answer ONLY with a succinct explaination of the meaning of the chunk in the context of the whole document above.\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(prompts[0][6500:])"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "I7PoEhPpeiuQ"
+      },
+      "source": [
+        "#### How much does generating one Contextual chunk cost?\n",
+        "\n",
+        "Below we'll look at total tokens per prompt and estimate the cost of generating one/many contextual chunks."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 16,
+      "metadata": {
+        "id": "kfgROm3zRGmC"
+      },
+      "outputs": [],
+      "source": [
+        "# token counter function\n",
+        "import tiktoken\n",
+        "\n",
+        "def num_tokens_from_string(string: str, encoding_name: str) -> int:\n",
+        "    \"\"\"Returns the number of tokens in a text string.\"\"\"\n",
+        "    encoding = tiktoken.get_encoding(encoding_name)\n",
+        "    num_tokens = len(encoding.encode(string))\n",
+        "    return num_tokens"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 17,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "yq3h1FJQSBtc",
+        "outputId": "72209e79-f94d-4896-a2ec-ca5b1433f109"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "1457"
+            ]
+          },
+          "execution_count": 17,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# We'll assume we're using the \"cl100k_base\" encoding\n",
+        "\n",
+        "num_tokens_from_string(pg_essay, \"cl100k_base\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 18,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "4tuiVk_mRK5m",
+        "outputId": "d9af0101-5971-4655-9570-f2a423f659a5"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "1565"
+            ]
+          },
+          "execution_count": 18,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "num_tokens_from_string(prompts[0], \"cl100k_base\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 96,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "YcvmEoKde2Ug",
+        "outputId": "53bca5da-c52b-4490-8b6b-32ecf7d44426"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "1559.21875"
+            ]
+          },
+          "execution_count": 96,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "#import python mean function\n",
+        "from statistics import mean\n",
+        "\n",
+        "mean([num_tokens_from_string(prompt, \"cl100k_base\") for prompt in prompts])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 120,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "dDIPvz7_jfJi",
+        "outputId": "1c46bc06-0cc1-40cc-f518-af44bc4705b2"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Cost to generate contextual chunks = $0.0031872\n",
+            "Number of Chunks Processed with $1.00 = 10040.160642570281 chunks\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(f\"Cost to generate contextual chunks = ${32*0.06*(1660/1000000)}\")\n",
+        "print(f\"Number of Chunks Processed with $1.00 = {1000000/(0.06*1660)} chunks\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "PbL2i6LEiy0j"
+      },
+      "source": [
+        "`$0.06` per 1 million tokens for Llama 3b.\n",
+        "\n",
+        "Assuming input lenght of ~ 1560 tokens and output length of 100 tokens.\n",
+        "\n",
+        "Given an approximate token count of ~ 1660 per context generation we can generate 10,000 contexts for a $1.00.\n",
+        "\n",
+        "Even if we were using the full context length of the model(~130,000) for each context generation we could generate ~128 contexts for $1.00."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 20,
+      "metadata": {
+        "id": "rjMxrvZWSPOe"
+      },
+      "outputs": [],
+      "source": [
+        "def generate_context(prompt: str):\n",
+        "    \"\"\"\n",
+        "    Generates a contextual response based on the given prompt using the specified language model.\n",
+        "    Args:\n",
+        "        prompt (str): The input prompt to generate a response for.\n",
+        "    Returns:\n",
+        "        str: The generated response content from the language model.\n",
+        "    \"\"\"\n",
+        "    response = client.chat.completions.create(\n",
+        "        model=\"meta-llama/Llama-3.2-3B-Instruct-Turbo\",\n",
+        "        messages=[{\"role\": \"user\", \"content\": prompt}],\n",
+        "        temperature=1\n",
+        "    )\n",
+        "    return response.choices[0].message.content"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 21,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "ryCIVaY9OO-0",
+        "outputId": "77b58705-f196-486b-aa6a-453eda8d8da8"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "This chunk introduces the topic of the article, discussing a recent talk by Brian Chesky at a Y Combinator (YC) event and the impressions and reactions of founders attending the event, setting the stage for exploring differing wisdom on how to run larger companies. \n",
+            "\n",
+            "September 2024At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Lets generate one context and concatenate it with its chunk to see what the output looks like\n",
+        "context_0 = generate_context(prompts[0])\n",
+        "print(context_0 + \" \\n\\n\" + chunks[0])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 24,
+      "metadata": {
+        "id": "rLtmJ384SdiS"
+      },
+      "outputs": [],
+      "source": [
+        "# Let's generate the entire list of contextual chunks\n",
+        "\n",
+        "contextual_chunks = [generate_context(prompts[i])+' '+chunks[i] for i in range(len(chunks))]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 28,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "eOBw3ySwR49c",
+        "outputId": "d9309f5c-b193-4247-dcab-81cf87ff8d8f"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "(32, True)"
+            ]
+          },
+          "execution_count": 28,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# We should have one contextual chunk for each original chunk\n",
+        "len(contextual_chunks), len(contextual_chunks) == len(chunks)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "j-DInBMf4QlM"
+      },
+      "source": [
+        "### 3. Embedding Generation\n",
+        "\n",
+        "We will now use `bge-large-en-v1.5` to embed the augmented chunks above into a vector index."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 29,
+      "metadata": {
+        "id": "vwhX_mkv4QZA"
+      },
+      "outputs": [],
+      "source": [
+        "from typing import List\n",
+        "import together\n",
+        "import numpy as np\n",
+        "\n",
+        "def generate_embeddings(input_texts: List[str], model_api_string: str) -> List[List[float]]:\n",
+        "    \"\"\"Generate embeddings from Together python library.\n",
+        "\n",
+        "    Args:\n",
+        "        input_texts: a list of string input texts.\n",
+        "        model_api_string: str. An API string for a specific embedding model of your choice.\n",
+        "\n",
+        "    Returns:\n",
+        "        embeddings_list: a list of embeddings. Each element corresponds to the each input text.\n",
+        "    \"\"\"\n",
+        "    outputs = client.embeddings.create(\n",
+        "        input=input_texts,\n",
+        "        model=model_api_string,\n",
+        "    )\n",
+        "    return [x.embedding for x in outputs.data]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 30,
+      "metadata": {
+        "id": "cmUOrm1pH1qV"
+      },
+      "outputs": [],
+      "source": [
+        "contextual_embeddings = generate_embeddings(contextual_chunks, \"BAAI/bge-large-en-v1.5\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 31,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "FvfRtzT8PDgK",
+        "outputId": "20e04621-885e-4117-f1df-f66201db9e5e"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "1024"
+            ]
+          },
+          "execution_count": 31,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# Each vector is 1024 dimensional\n",
+        "\n",
+        "len(contextual_embeddings[0])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 34,
+      "metadata": {
+        "id": "k01ylAlhPqDM"
+      },
+      "outputs": [],
+      "source": [
+        "# Generate the vector embeddings for the query\n",
+        "query = \"What are 'skip-level' meetings?\"\n",
+        "\n",
+        "query_embedding = generate_embeddings([query], 'BAAI/bge-large-en-v1.5')[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 35,
+      "metadata": {
+        "id": "qbDSgwiRSKVt"
+      },
+      "outputs": [],
+      "source": [
+        "from sklearn.metrics.pairwise import cosine_similarity\n",
+        "\n",
+        "# Calculate cosine similarity between the query embedding and each movie embedding\n",
+        "similarity_scores = cosine_similarity([query_embedding], contextual_embeddings)\n",
+        "indices = np.argsort(-similarity_scores)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 50,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "4w43cUWkUBHs",
+        "outputId": "01d4f47c-4aea-44a9-9186-25eb11d065e9"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "array([17, 18, 11, 26, 27])"
+            ]
+          },
+          "execution_count": 50,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "top_5_indices = indices[0][:5]\n",
+        "top_5_indices"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 38,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "aCqPl68QSkB1",
+        "outputId": "34ab4155-a724-4d7c-fd48-a843d390ff5a"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "['This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it\\'s pretty clear that it\\'s going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there\\'s a name for it. An',\n",
+              " 'This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there\\'s a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer',\n",
+              " 'This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it\\'s',\n",
+              " 'This chunk refers to having the CEO engage directly with non-direct reports, particularly in informal, high-level meetings, in order to foster a sense of community and innovation, as exemplified by Steve Jobs, rather than following the conventional hierarchical structure of \"manager mode\" where only the CEO communicates with direct reports through their representatives. o run their companies like Steve Jobs instead of John Sculley.Notes[1] The more diplomatic way of phrasing this statement would be to say that experienced C-level execs are often very skilled at managing up. And I don\\'t think anyone with knowledge of',\n",
+              " 'This chunk discusses how even experienced C-level executives (managers) are skilled at managing up and hiding their true intentions, which is why founding CEOs like Steve Jobs were able to get away with unconventional leadership strategies without facing immediate pushback from their management teams. think anyone with knowledge of this world would dispute that.[2] If the practice of having such retreats became so widespread that even mature companies dominated by politics started to do it, we could quantify the senescence of companies by the aver']"
+            ]
+          },
+          "execution_count": 38,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "top_5_chunks = [contextual_chunks[index] for index in indices[0]][:5]\n",
+        "\n",
+        "top_5_chunks"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 70,
+      "metadata": {
+        "id": "CMCJ1PlvUxiy"
+      },
+      "outputs": [],
+      "source": [
+        "def vector_retreival(query: str, top_k: int = 5, vector_index: np.ndarray = None) -> List[int]:\n",
+        "    \"\"\"\n",
+        "    Retrieve the top-k most similar items from an index based on a query.\n",
+        "    Args:\n",
+        "        query (str): The query string to search for.\n",
+        "        top_k (int, optional): The number of top similar items to retrieve. Defaults to 5.\n",
+        "        index (np.ndarray, optional): The index array containing embeddings to search against. Defaults to None.\n",
+        "    Returns:\n",
+        "        List[int]: A list of indices corresponding to the top-k most similar items in the index.\n",
+        "    \"\"\"\n",
+        "\n",
+        "    query_embedding = generate_embeddings([query], 'BAAI/bge-large-en-v1.5')[0]\n",
+        "    similarity_scores = cosine_similarity([query_embedding], vector_index)\n",
+        "\n",
+        "    return list(np.argsort(-similarity_scores)[0][:top_k])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 71,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "wvjGlof0VViw",
+        "outputId": "f6d2ed8e-2313-4710-862a-8577fe4036c9"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "[17, 18, 11, 26, 27]"
+            ]
+          },
+          "execution_count": 71,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "vector_retreival(query = \"What are 'skip-level' meetings?\", top_k = 5, vector_index = contextual_embeddings)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "We now have a way to retrieve from the vector index given a query."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "8k9w5eKU0yqq"
+      },
+      "source": [
+        "### 4. BM25 Search Using `bm25s` library\n",
+        "\n",
+        "Lets build a keyword index that allows us to use BM25 to perform lexical search based on the words present in the query and the contextual chunks."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 43,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 35,
+          "referenced_widgets": [
+            "c370b066ae6c4cc2bea8a791eb52af11",
+            "7f5e14cf3f444a2c8e94885397260155",
+            "8815c8b281d04e59bad3e06b712a33fe",
+            "fedd86db037240f392b9ed5abda461b7",
+            "3d00c22145464e4f8fd5ef6c20e3d254",
+            "141fb9a69bf94afd9d5692409cc261cd",
+            "a6a389812ad94b0a80c222f87de469e4",
+            "ce1c2052b9a04a5da2f0cc74c8375e89",
+            "c60c9131c66e44a7aa6c24c0c360eb7b",
+            "6115e78fd8264fb780e11ae6f4f25607",
+            "336d9786a90c4047a8432f41a42a98f0",
+            "2bd23397ca2848e6a929a0a32dc933cd",
+            "cabb323ba91341e1aacbce512dcf97a5",
+            "debb8cfdcbd24079b8194870bbccf2cb",
+            "5464f14e25c447ff8f09aaa8a7ddc955",
+            "1aafb0176c6c479eadf8e6fc283ca834",
+            "0a9c1bed9d1641c9863d3f85ff054ec5",
+            "9f0c9c565e314c70a28bf2e2b3314a95",
+            "b53ab7e4d96743be8977d93c042edff6",
+            "6a4272eeb39b4081abe5aa7c2a611fd8",
+            "54863c8068fb4946a37b0779fc335b3a",
+            "f65e6142aab147e793e950861d854e01",
+            "15ddc7e756df46b3a41bfd8c50d773dc",
+            "f60ecbd3d1514c3cb27899e4b87be6c8",
+            "2952f1a3419f4aa3bd8792543585351f",
+            "0cc37d373e27436193803ef01d75905f",
+            "446c1fa9a7bc4da6983be0f2b70dbbec",
+            "b171e23da4b44f2c8e52078fc8d0ef53",
+            "af07ea5e6bb244d0b7c5d7ee56559611",
+            "cd50fa0b17624d339d919b4276f7d1f3",
+            "2d4e2f8050bf41f483f4d80fcadec960",
+            "a5105d61c2134e6ead3aa4253ace31a0",
+            "df53dbababa54400bcba9b203f321d75",
+            "85e7863a23164d639ec6a38003a044e5",
+            "0772b86a83c14dbebd6566684f6c36f1",
+            "99890e053fea47469bc84bb393de1ca8",
+            "c217c97aa1c94cd8890306170fbe4874",
+            "38685066cc574dc195b3f9f7f064dee0",
+            "a5a8a3aded9449899e2482845f561051",
+            "132a2818b5424dafbdaea1b04ba4d806",
+            "ae19ddd1cd8b44b5bc9f37c3f8d9b91e",
+            "415a1ed4d08c4571b6012d21e173eeee",
+            "57a7fcf88bdc4db18a3603629c312c28",
+            "79e0d5162ae849d69eff07666cf20680",
+            "e2a6cddbde7c4e4e804b5b48ea4e5316",
+            "3fd88818ca054dee8e3f4c72ecfe4e71",
+            "e00c0c02d7a14e5ca499c0477416f076",
+            "86c3997f6fcc4a70955d6dc4356f7c27",
+            "43fa4548b44947f5bc03e3d43d5e3282",
+            "d41b16c91107498fb3c54f6132acd5d7",
+            "8a4a44516e00451aa495e11ffdc90160",
+            "e843393f43c84d9c81098252320b1c21",
+            "83f1936e6e8648fda4e3b8b28a3f61b1",
+            "dc7df640ed074abb8430b2d3d3eb58c0",
+            "bb3f80525ddf40eba5120bd606b53993"
+          ]
+        },
+        "id": "4xsEnsJb0zCA",
+        "outputId": "bffbdff3-2359-4b44-bda2-ec48f555b706"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c370b066ae6c4cc2bea8a791eb52af11",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Split strings:   0%|          | 0/32 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "DEBUG:bm25s:Building index from IDs objects\n"
+          ]
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2bd23397ca2848e6a929a0a32dc933cd",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Count Tokens:   0%|          | 0/32 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "15ddc7e756df46b3a41bfd8c50d773dc",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Compute Scores:   0%|          | 0/32 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "85e7863a23164d639ec6a38003a044e5",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Split strings:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e2a6cddbde7c4e4e804b5b48ea4e5316",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Retrieve:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "import bm25s\n",
+        "\n",
+        "# Create the BM25 model and index the corpus\n",
+        "retriever = bm25s.BM25(corpus=contextual_chunks)\n",
+        "retriever.index(bm25s.tokenize(contextual_chunks))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 44,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 17,
+          "referenced_widgets": [
+            "344749d784ff4cf8a9c929f206ae1249",
+            "c3de966c5b9648c99e5f652a1140cc82",
+            "f8ca0df6f3a0439ebfed1e642b7818c8",
+            "9c3868d36a4745729f6de8e9b563703b",
+            "b98c7c272a3d4f5794422c370f286db1",
+            "d48ba6521ff64e69b74b3bb40bb2a32a",
+            "f955613cc59f4eebb8de687e4f72c40a",
+            "ad5828456e374885a8443ea1dad9504f",
+            "db407f74b8b648e4b2e5a662523507ac",
+            "ba8da6ed1f454f1a9030f003e6be06fe",
+            "f5966f595beb4315838f1dcc95cb5d01",
+            "d2c3f18a9441402a8d2d6ac52c5dd1b4",
+            "bf0b0fb9a21a43cbb58dd03665fec536",
+            "f0cb682cf38b4c72abd0791552ba79b2",
+            "3e113b2ec48a4544a54374c67bd22240",
+            "f592324af3f84996ad9a52e0d4dc9fad",
+            "ba9092da679847bf9a7a4a418ca27e02",
+            "7fa721889d89487c8eb99b3a3ac6fa02",
+            "e743a461aeb4442d9b4307dc5e4e0c02",
+            "b62caf52196d4cddbada7b51d68cf66b",
+            "16e72e4301d240dfa944b47f3b6ccb4c",
+            "e7e405e3f7c24525991dbdef759f2c55"
+          ]
+        },
+        "id": "3Ri1zmJSTlo0",
+        "outputId": "95834015-ec0a-4763-e96a-67511065d3a3"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "344749d784ff4cf8a9c929f206ae1249",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Split strings:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d2c3f18a9441402a8d2d6ac52c5dd1b4",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Retrieve:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "# Query the corpus and get top-k results\n",
+        "query = \"What are 'skip-level' meetings?\"\n",
+        "results, scores = retriever.retrieve(bm25s.tokenize(query), k=5,)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 53,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "cJFmjPa110nd",
+        "outputId": "f7162ddc-a012-48ca-8009-3b381e90e18b"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Chunk Index 17 : This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it's pretty clear that it's going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there's a name for it. An\n",
+            "Chunk Index 18 : This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there's a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer\n",
+            "Chunk Index 11 : This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's\n",
+            "Chunk Index 22 : This chunk is discussing how founder mode differs from manager mode, specifically in terms of delegation. While manager mode relies on treating direct reports as black boxes and overseeing from afar, founder mode requires more direct involvement from the CEO, often allowing for \"skip-level\" meetings and collaboration with key team members directly. The level of delegation and autonomy will vary between companies and change over time as managers earn trust, making founder mode more intricate but potentially more effective. ders of autonomy end up, and how sharp they are, will probably vary from company to company. They'll even vary from time to time within the same company, as managers earn trust. So founder mode will be more complicated than manager mode. But it will \n",
+            "Chunk Index 26 : This chunk refers to having the CEO engage directly with non-direct reports, particularly in informal, high-level meetings, in order to foster a sense of community and innovation, as exemplified by Steve Jobs, rather than following the conventional hierarchical structure of \"manager mode\" where only the CEO communicates with direct reports through their representatives. o run their companies like Steve Jobs instead of John Sculley.Notes[1] The more diplomatic way of phrasing this statement would be to say that experienced C-level execs are often very skilled at managing up. And I don't think anyone with knowledge of\n"
+          ]
+        }
+      ],
+      "source": [
+        "for doc in results[0]:\n",
+        "  print(f\"Chunk Index {contextual_chunks.index(doc)} : {doc}\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 60,
+      "metadata": {
+        "id": "r3IOOfnyUNU8"
+      },
+      "outputs": [],
+      "source": [
+        "def bm25_retreival(query: str, k : int, bm25_index) -> List[int]:\n",
+        "    \"\"\"\n",
+        "    Retrieve the top-k document indices based on the BM25 algorithm for a given query.\n",
+        "    Args:\n",
+        "        query (str): The search query string.\n",
+        "        k (int): The number of top documents to retrieve.\n",
+        "        bm25_index: The BM25 index object used for retrieval.\n",
+        "    Returns:\n",
+        "        List[int]: A list of indices of the top-k documents that match the query.\n",
+        "    \"\"\"\n",
+        "\n",
+        "    results, scores = bm25_index.retrieve(bm25s.tokenize(query), k=k)\n",
+        "\n",
+        "    return [contextual_chunks.index(doc) for doc in results[0]]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 61,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 35,
+          "referenced_widgets": [
+            "bf839df28f95418f92fc92d2fefc2248",
+            "281ff14051a443c8a349a0f5f2c412d8",
+            "2f80d24e869e402c95514e2726b61b05",
+            "3172c68925bd49a0aec33783729d626c",
+            "2311447a6805488ab80a3a0413c6cab0",
+            "71044f08dd6f48ee892d34f8f6d4d135",
+            "625a7f1925154627912798b3ab300327",
+            "df4f2adef0c5431082b339d83b363bbf",
+            "803de8a39fee4556abb0ced7b0289ed9",
+            "03e8f44093ea444bb80f6d631e05a1cb",
+            "873f0b1d4edd4ebeb2c2212be8d52cbc",
+            "813f8b741bdb4ef892baabe182190216",
+            "f028e928a4ed43cb91bc0f1d712fad6a",
+            "5e9c3cfe3f0f495b98420641df5a0fc5",
+            "656fe8187fe94efdabbc295f0f54824e",
+            "7421906cd3434707a73afb547b12225b",
+            "65650f003a1648ca8f2fb1d2d3fa7fc4",
+            "7dbcae1bf34644b4a5a094f9be87d57a",
+            "aa1f92a769ef46f79ee55b17e78c3a4c",
+            "6174f54ffd704bfdbbfac9f5ee884ced",
+            "1c87dc879ca346c7a696d58f1ec9c66a",
+            "01adcc48928641caa7a23cc05bd32345"
+          ]
+        },
+        "id": "h2TctI7qUjDC",
+        "outputId": "1d009443-d358-4331-ffae-e2b8e6299f94"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "bf839df28f95418f92fc92d2fefc2248",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Split strings:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "813f8b741bdb4ef892baabe182190216",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Retrieve:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "text/plain": [
+              "[17, 18, 11, 22, 26]"
+            ]
+          },
+          "execution_count": 61,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "bm25_retreival(query = \"What are 'skip-level' meetings?\", k = 5, bm25_index = retriever)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "tcWI0fwR4Yep"
+      },
+      "source": [
+        "## Everything below this point will happen at query time!\n",
+        "\n",
+        "<img src=\"images/cRAG_querytime.png\" width=\"750\">\n",
+        "\n",
+        "### 1. Perform Vector and BM25 retrieval and then fuse the ranks using the RRF algorithm implemented below."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 73,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 17,
+          "referenced_widgets": [
+            "bc0a6f88c7ce40ef9d6ccb3162575af2",
+            "9ae8ea72b2d54e67a693ab2bb6a96092",
+            "e76759bb6a3842c999c017874f19de7e",
+            "83ff20d9055d4ee1930db2034382513a",
+            "7bb1843212384c4080aff1a576c0c4f5",
+            "c2a7375e2bd94ce9b3a633edca9306fb",
+            "cf4a9e1756394c6ea3b912596d696957",
+            "08dd65de948f48aeb27a01f124af488b",
+            "50022d07420740d9bed8ced8f4cb577a",
+            "b0d30b32a2584b23b1c5f7afbcb7a129",
+            "8fba140e939d4212a4e8b3deb546810b",
+            "f65099e43dff41c3850e1ad10cd123ef",
+            "8cd50ff5cb6d451ba6572da5784eae77",
+            "1797a97ee421429f8052b722aa765f9a",
+            "23855ae0124947d38b649624a6bc8921",
+            "c159ca88113e458d9122b9f619c8065f",
+            "fd307d0ecc1e47c1b4cd3585d47e2426",
+            "15280906567245a490e16adaec4d9517",
+            "fefbbe36d4724ac48e39dcddc1ff7ca4",
+            "28df2123d97d4cf5a935193167b3ea49",
+            "fee520af1e7e41468f7016850f4c0aa0",
+            "6f971460f8644f2c887da93edcaf1053"
+          ]
+        },
+        "id": "JQOpIyuc4Yyj",
+        "outputId": "ff8f0f24-a53c-4a48-94db-2c3d163470ad"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "bc0a6f88c7ce40ef9d6ccb3162575af2",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Split strings:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f65099e43dff41c3850e1ad10cd123ef",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "BM25S Retrieve:   0%|          | 0/1 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "from collections import defaultdict\n",
+        "\n",
+        "def reciprocal_rank_fusion(*list_of_list_ranks_system, K=60):\n",
+        "    \"\"\"\n",
+        "    Fuse rank from multiple IR systems using Reciprocal Rank Fusion.\n",
+        "\n",
+        "    Args:\n",
+        "    * list_of_list_ranks_system: Ranked results from different IR system.\n",
+        "    K (int): A constant used in the RRF formula (default is 60).\n",
+        "\n",
+        "    Returns:\n",
+        "    Tuple of list of sorted documents by score and sorted documents\n",
+        "    \"\"\"\n",
+        "    # Dictionary to store RRF mapping\n",
+        "    rrf_map = defaultdict(float)\n",
+        "\n",
+        "    # Calculate RRF score for each result in each list\n",
+        "    for rank_list in list_of_list_ranks_system:\n",
+        "        for rank, item in enumerate(rank_list, 1):\n",
+        "            rrf_map[item] += 1 / (rank + K)\n",
+        "\n",
+        "    # Sort items based on their RRF scores in descending order\n",
+        "    sorted_items = sorted(rrf_map.items(), key=lambda x: x[1], reverse=True)\n",
+        "\n",
+        "    # Return tuple of list of sorted documents by score and sorted documents\n",
+        "    return sorted_items, [item for item, score in sorted_items]\n",
+        "\n",
+        "# Example ranked lists from different sources\n",
+        "vector_top_k = vector_retreival(query = \"What are 'skip-level' meetings?\", top_k = 5, vector_index = contextual_embeddings)\n",
+        "bm25_top_k = bm25_retreival(query = \"What are 'skip-level' meetings?\", k = 5, bm25_index = retriever)\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 79,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "aiAE3xu_WIsw",
+        "outputId": "c746459c-9a6f-4516-c2f1-19cf1369955a"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "[17, 18, 11, 26, 22, 27]"
+            ]
+          },
+          "execution_count": 79,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# Combine the lists using RRF\n",
+        "hybrid_top_k = reciprocal_rank_fusion(vector_top_k, bm25_top_k)\n",
+        "hybrid_top_k[1]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 80,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "odyRoJJCWigy",
+        "outputId": "83960a8c-c65d-4245-e3b3-69d90b4c533a"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Chunk Index 17 : This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it's pretty clear that it's going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there's a name for it. An\n",
+            "Chunk Index 18 : This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there's a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer\n",
+            "Chunk Index 11 : This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's\n",
+            "Chunk Index 26 : This chunk refers to having the CEO engage directly with non-direct reports, particularly in informal, high-level meetings, in order to foster a sense of community and innovation, as exemplified by Steve Jobs, rather than following the conventional hierarchical structure of \"manager mode\" where only the CEO communicates with direct reports through their representatives. o run their companies like Steve Jobs instead of John Sculley.Notes[1] The more diplomatic way of phrasing this statement would be to say that experienced C-level execs are often very skilled at managing up. And I don't think anyone with knowledge of\n",
+            "Chunk Index 22 : This chunk is discussing how founder mode differs from manager mode, specifically in terms of delegation. While manager mode relies on treating direct reports as black boxes and overseeing from afar, founder mode requires more direct involvement from the CEO, often allowing for \"skip-level\" meetings and collaboration with key team members directly. The level of delegation and autonomy will vary between companies and change over time as managers earn trust, making founder mode more intricate but potentially more effective. ders of autonomy end up, and how sharp they are, will probably vary from company to company. They'll even vary from time to time within the same company, as managers earn trust. So founder mode will be more complicated than manager mode. But it will \n",
+            "Chunk Index 27 : This chunk discusses how even experienced C-level executives (managers) are skilled at managing up and hiding their true intentions, which is why founding CEOs like Steve Jobs were able to get away with unconventional leadership strategies without facing immediate pushback from their management teams. think anyone with knowledge of this world would dispute that.[2] If the practice of having such retreats became so widespread that even mature companies dominated by politics started to do it, we could quantify the senescence of companies by the aver\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Notice the reordering of the chunks based on the RRF score\n",
+        "\n",
+        "for index in hybrid_top_k[1]:\n",
+        "  print(f\"Chunk Index {index} : {contextual_chunks[index]}\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 81,
+      "metadata": {
+        "id": "mqDI0IrxWXto"
+      },
+      "outputs": [],
+      "source": [
+        "hybrid_top_k_docs = [contextual_chunks[index] for index in hybrid_top_k[1]]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 82,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "EpviVjxPXiGP",
+        "outputId": "57ea6e3c-3cc0-4292-f3a6-da0993240b25"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "['This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it\\'s pretty clear that it\\'s going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there\\'s a name for it. An',\n",
+              " 'This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there\\'s a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer',\n",
+              " 'This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it\\'s',\n",
+              " 'This chunk refers to having the CEO engage directly with non-direct reports, particularly in informal, high-level meetings, in order to foster a sense of community and innovation, as exemplified by Steve Jobs, rather than following the conventional hierarchical structure of \"manager mode\" where only the CEO communicates with direct reports through their representatives. o run their companies like Steve Jobs instead of John Sculley.Notes[1] The more diplomatic way of phrasing this statement would be to say that experienced C-level execs are often very skilled at managing up. And I don\\'t think anyone with knowledge of',\n",
+              " 'This chunk is discussing how founder mode differs from manager mode, specifically in terms of delegation. While manager mode relies on treating direct reports as black boxes and overseeing from afar, founder mode requires more direct involvement from the CEO, often allowing for \"skip-level\" meetings and collaboration with key team members directly. The level of delegation and autonomy will vary between companies and change over time as managers earn trust, making founder mode more intricate but potentially more effective. ders of autonomy end up, and how sharp they are, will probably vary from company to company. They\\'ll even vary from time to time within the same company, as managers earn trust. So founder mode will be more complicated than manager mode. But it will ',\n",
+              " 'This chunk discusses how even experienced C-level executives (managers) are skilled at managing up and hiding their true intentions, which is why founding CEOs like Steve Jobs were able to get away with unconventional leadership strategies without facing immediate pushback from their management teams. think anyone with knowledge of this world would dispute that.[2] If the practice of having such retreats became so widespread that even mature companies dominated by politics started to do it, we could quantify the senescence of companies by the aver']"
+            ]
+          },
+          "execution_count": 82,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "[contextual_chunks[index] for index in hybrid_top_k[1]]"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "37mYguCe4qF3"
+      },
+      "source": [
+        "### 2. Reranker To improve Quality\n",
+        "\n",
+        "We will pass in the top 6 documents output from Hybrid search into a reranker to sort based on relevance to the query."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 86,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "b_McZuyF4p1E",
+        "outputId": "e6d12a9f-1765-4daa-ba33-24cd52fcfece"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Document: This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there's a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer\n",
+            "Relevance Score: 0.9733742140554578\n",
+            "\n",
+            "\n",
+            "Document: This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it's pretty clear that it's going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there's a name for it. An\n",
+            "Relevance Score: 0.7481956787777269\n",
+            "\n",
+            "\n",
+            "Document: This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's\n",
+            "Relevance Score: 0.7035533028052896\n",
+            "\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "from together import Together\n",
+        "\n",
+        "query = \"What are 'skip-level' meetings?\" # we keep the same query - can change if we want\n",
+        "\n",
+        "response = client.rerank.create(\n",
+        "  model=\"Salesforce/Llama-Rank-V1\",\n",
+        "  query=query,\n",
+        "  documents=hybrid_top_k_docs,\n",
+        "  top_n=3 # we only want the top 3 results\n",
+        ")\n",
+        "\n",
+        "for result in response.results:\n",
+        "    print(f\"Document: {hybrid_top_k_docs[result.index]}\")\n",
+        "    print(f\"Relevance Score: {result.relevance_score}\\n\\n\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 90,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "dUo7n16jYFbo",
+        "outputId": "c4a3a1e3-450e-46c4-c804-8919515eaac4"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "This chunk refers to \"skip-level\" meetings, which are a key characteristic of founder mode, where the CEO engages directly with the company beyond their direct reports. This contrasts with the \"manager mode\" of addressing company issues, where decisions are made perfunctorily via a hierarchical system, to which founders instinctively rebel. that there's a name for it. And once you abandon that constraint there are a huge number of permutations to choose from.For example, Steve Jobs used to run an annual retreat for what he considered the 100 most important people at Apple, and these wer\n",
+            "\n",
+            "This chunk discusses the shift in company management away from the \"manager mode\" that most companies follow, where CEOs engage with the company only through their direct reports, to \"founder mode\", where CEOs engage more directly with even higher-level employees and potentially skip over direct reports, potentially leading to \"skip-level\" meetings. ts of, it's pretty clear that it's going to break the principle that the CEO should engage with the company only via his or her direct reports. \"Skip-level\" meetings will become the norm instead of a practice so unusual that there's a name for it. An\n",
+            "\n",
+            "This chunk explains that founder mode, a hypothetical approach to running a company by its founders, will differ from manager mode in that founders will engage directly with the company, rather than just their direct reports, through \"skip-level\" meetings, disregarding the traditional principle that CEOs should only interact with their direct reports, as managers do.  can already guess at some of the ways it will differ.The way managers are taught to run companies seems to be like modular design in the sense that you treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's\n",
+            "\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Lets add the top 3 documents to a string\n",
+        "\n",
+        "retreived_chunks = ''\n",
+        "\n",
+        "for result in response.results:\n",
+        "    retreived_chunks += hybrid_top_k_docs[result.index] + '\\n\\n'\n",
+        "\n",
+        "print(retreived_chunks)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "ohwAaAmF48HY"
+      },
+      "source": [
+        "### 3. Call Generative Model - Llama 405b\n",
+        "\n",
+        "We will pass the finalized 3 chunks into an LLM to get our final answer."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "# Generate a story based on the top 10 most similar movies\n",
+        "\n",
+        "query = \"What are 'skip-level' meetings?\"\n",
+        "\n",
+        "response = client.chat.completions.create(\n",
+        "    model=\"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo\",\n",
+        "    messages=[\n",
+        "      {\"role\": \"system\", \"content\": \"You are a helpful chatbot.\"},\n",
+        "      {\"role\": \"user\", \"content\": f\"Answer the question: {query}. Here is relevant information: {retreived_chunks}\"},\n",
+        "    ],\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 93,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 89
+        },
+        "id": "m9BvT2VLaYrQ",
+        "outputId": "da715d36-56e6-4a75-bf73-9f35961e2609"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "string"
+            },
+            "text/plain": [
+              "'\"Skip-level\" meetings refer to a management practice where a CEO or high-level executive engages directly with employees who are not their direct reports, bypassing the traditional hierarchical structure of the organization. This approach is characteristic of \"founder mode,\" where the CEO seeks to have a more direct connection with the company beyond their immediate team. In contrast to the traditional \"manager mode,\" where decisions are made through a hierarchical system, skip-level meetings allow for more open communication and collaboration between the CEO and various levels of employees. This approach is often used by founders who want to stay connected to the company\\'s operations and culture, and to foster a more flat and collaborative organizational structure.'"
+            ]
+          },
+          "execution_count": 93,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "response.choices[0].message.content"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "Above we implemented Contextual Retrieval as discussed in [Anthropic's blog](https://www.anthropic.com/news/contextual-retrieval) using fully open source models! \n",
+        "\n",
+        "If you want to learn more about how to best use open models refer to our [docs](https://docs.together.ai/docs) here!"
+      ]
+    }
+  ],
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "01adcc48928641caa7a23cc05bd32345": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "03e8f44093ea444bb80f6d631e05a1cb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0772b86a83c14dbebd6566684f6c36f1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_a5a8a3aded9449899e2482845f561051",
+            "placeholder": "​",
+            "style": "IPY_MODEL_132a2818b5424dafbdaea1b04ba4d806",
+            "value": "Split strings:   0%"
+          }
+        },
+        "08dd65de948f48aeb27a01f124af488b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0a9c1bed9d1641c9863d3f85ff054ec5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0cc37d373e27436193803ef01d75905f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_a5105d61c2134e6ead3aa4253ace31a0",
+            "placeholder": "​",
+            "style": "IPY_MODEL_df53dbababa54400bcba9b203f321d75",
+            "value": " 0/32 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "132a2818b5424dafbdaea1b04ba4d806": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "141fb9a69bf94afd9d5692409cc261cd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "15280906567245a490e16adaec4d9517": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "15ddc7e756df46b3a41bfd8c50d773dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_f60ecbd3d1514c3cb27899e4b87be6c8",
+              "IPY_MODEL_2952f1a3419f4aa3bd8792543585351f",
+              "IPY_MODEL_0cc37d373e27436193803ef01d75905f"
+            ],
+            "layout": "IPY_MODEL_446c1fa9a7bc4da6983be0f2b70dbbec"
+          }
+        },
+        "16e72e4301d240dfa944b47f3b6ccb4c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "1797a97ee421429f8052b722aa765f9a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_fefbbe36d4724ac48e39dcddc1ff7ca4",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_28df2123d97d4cf5a935193167b3ea49",
+            "value": 1
+          }
+        },
+        "1aafb0176c6c479eadf8e6fc283ca834": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "1c87dc879ca346c7a696d58f1ec9c66a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2311447a6805488ab80a3a0413c6cab0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "23855ae0124947d38b649624a6bc8921": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_fee520af1e7e41468f7016850f4c0aa0",
+            "placeholder": "​",
+            "style": "IPY_MODEL_6f971460f8644f2c887da93edcaf1053",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "281ff14051a443c8a349a0f5f2c412d8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_71044f08dd6f48ee892d34f8f6d4d135",
+            "placeholder": "​",
+            "style": "IPY_MODEL_625a7f1925154627912798b3ab300327",
+            "value": "Split strings:   0%"
+          }
+        },
+        "28df2123d97d4cf5a935193167b3ea49": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "2952f1a3419f4aa3bd8792543585351f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_cd50fa0b17624d339d919b4276f7d1f3",
+            "max": 32,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2d4e2f8050bf41f483f4d80fcadec960",
+            "value": 32
+          }
+        },
+        "2bd23397ca2848e6a929a0a32dc933cd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_cabb323ba91341e1aacbce512dcf97a5",
+              "IPY_MODEL_debb8cfdcbd24079b8194870bbccf2cb",
+              "IPY_MODEL_5464f14e25c447ff8f09aaa8a7ddc955"
+            ],
+            "layout": "IPY_MODEL_1aafb0176c6c479eadf8e6fc283ca834"
+          }
+        },
+        "2d4e2f8050bf41f483f4d80fcadec960": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "2f80d24e869e402c95514e2726b61b05": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_df4f2adef0c5431082b339d83b363bbf",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_803de8a39fee4556abb0ced7b0289ed9",
+            "value": 1
+          }
+        },
+        "3172c68925bd49a0aec33783729d626c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_03e8f44093ea444bb80f6d631e05a1cb",
+            "placeholder": "​",
+            "style": "IPY_MODEL_873f0b1d4edd4ebeb2c2212be8d52cbc",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "336d9786a90c4047a8432f41a42a98f0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "344749d784ff4cf8a9c929f206ae1249": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_c3de966c5b9648c99e5f652a1140cc82",
+              "IPY_MODEL_f8ca0df6f3a0439ebfed1e642b7818c8",
+              "IPY_MODEL_9c3868d36a4745729f6de8e9b563703b"
+            ],
+            "layout": "IPY_MODEL_b98c7c272a3d4f5794422c370f286db1"
+          }
+        },
+        "38685066cc574dc195b3f9f7f064dee0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "3d00c22145464e4f8fd5ef6c20e3d254": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "3e113b2ec48a4544a54374c67bd22240": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_16e72e4301d240dfa944b47f3b6ccb4c",
+            "placeholder": "​",
+            "style": "IPY_MODEL_e7e405e3f7c24525991dbdef759f2c55",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "3fd88818ca054dee8e3f4c72ecfe4e71": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d41b16c91107498fb3c54f6132acd5d7",
+            "placeholder": "​",
+            "style": "IPY_MODEL_8a4a44516e00451aa495e11ffdc90160",
+            "value": "BM25S Retrieve: 100%"
+          }
+        },
+        "415a1ed4d08c4571b6012d21e173eeee": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "43fa4548b44947f5bc03e3d43d5e3282": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "446c1fa9a7bc4da6983be0f2b70dbbec": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "50022d07420740d9bed8ced8f4cb577a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "5464f14e25c447ff8f09aaa8a7ddc955": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_54863c8068fb4946a37b0779fc335b3a",
+            "placeholder": "​",
+            "style": "IPY_MODEL_f65e6142aab147e793e950861d854e01",
+            "value": " 0/32 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "54863c8068fb4946a37b0779fc335b3a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "57a7fcf88bdc4db18a3603629c312c28": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "5e9c3cfe3f0f495b98420641df5a0fc5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_aa1f92a769ef46f79ee55b17e78c3a4c",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_6174f54ffd704bfdbbfac9f5ee884ced",
+            "value": 1
+          }
+        },
+        "6115e78fd8264fb780e11ae6f4f25607": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "6174f54ffd704bfdbbfac9f5ee884ced": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "625a7f1925154627912798b3ab300327": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "65650f003a1648ca8f2fb1d2d3fa7fc4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "656fe8187fe94efdabbc295f0f54824e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_1c87dc879ca346c7a696d58f1ec9c66a",
+            "placeholder": "​",
+            "style": "IPY_MODEL_01adcc48928641caa7a23cc05bd32345",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "6a4272eeb39b4081abe5aa7c2a611fd8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "6f971460f8644f2c887da93edcaf1053": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "71044f08dd6f48ee892d34f8f6d4d135": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "7421906cd3434707a73afb547b12225b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "79e0d5162ae849d69eff07666cf20680": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "7bb1843212384c4080aff1a576c0c4f5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "7dbcae1bf34644b4a5a094f9be87d57a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "7f5e14cf3f444a2c8e94885397260155": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_141fb9a69bf94afd9d5692409cc261cd",
+            "placeholder": "​",
+            "style": "IPY_MODEL_a6a389812ad94b0a80c222f87de469e4",
+            "value": "Split strings:   0%"
+          }
+        },
+        "7fa721889d89487c8eb99b3a3ac6fa02": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "803de8a39fee4556abb0ced7b0289ed9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "813f8b741bdb4ef892baabe182190216": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_f028e928a4ed43cb91bc0f1d712fad6a",
+              "IPY_MODEL_5e9c3cfe3f0f495b98420641df5a0fc5",
+              "IPY_MODEL_656fe8187fe94efdabbc295f0f54824e"
+            ],
+            "layout": "IPY_MODEL_7421906cd3434707a73afb547b12225b"
+          }
+        },
+        "83f1936e6e8648fda4e3b8b28a3f61b1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "83ff20d9055d4ee1930db2034382513a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_b0d30b32a2584b23b1c5f7afbcb7a129",
+            "placeholder": "​",
+            "style": "IPY_MODEL_8fba140e939d4212a4e8b3deb546810b",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "85e7863a23164d639ec6a38003a044e5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_0772b86a83c14dbebd6566684f6c36f1",
+              "IPY_MODEL_99890e053fea47469bc84bb393de1ca8",
+              "IPY_MODEL_c217c97aa1c94cd8890306170fbe4874"
+            ],
+            "layout": "IPY_MODEL_38685066cc574dc195b3f9f7f064dee0"
+          }
+        },
+        "86c3997f6fcc4a70955d6dc4356f7c27": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_dc7df640ed074abb8430b2d3d3eb58c0",
+            "placeholder": "​",
+            "style": "IPY_MODEL_bb3f80525ddf40eba5120bd606b53993",
+            "value": " 1/1 [00:00&lt;00:00,  8.81it/s]"
+          }
+        },
+        "873f0b1d4edd4ebeb2c2212be8d52cbc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "8815c8b281d04e59bad3e06b712a33fe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_ce1c2052b9a04a5da2f0cc74c8375e89",
+            "max": 32,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_c60c9131c66e44a7aa6c24c0c360eb7b",
+            "value": 32
+          }
+        },
+        "8a4a44516e00451aa495e11ffdc90160": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "8cd50ff5cb6d451ba6572da5784eae77": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_fd307d0ecc1e47c1b4cd3585d47e2426",
+            "placeholder": "​",
+            "style": "IPY_MODEL_15280906567245a490e16adaec4d9517",
+            "value": "BM25S Retrieve:   0%"
+          }
+        },
+        "8fba140e939d4212a4e8b3deb546810b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "99890e053fea47469bc84bb393de1ca8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_ae19ddd1cd8b44b5bc9f37c3f8d9b91e",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_415a1ed4d08c4571b6012d21e173eeee",
+            "value": 1
+          }
+        },
+        "9ae8ea72b2d54e67a693ab2bb6a96092": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_c2a7375e2bd94ce9b3a633edca9306fb",
+            "placeholder": "​",
+            "style": "IPY_MODEL_cf4a9e1756394c6ea3b912596d696957",
+            "value": "Split strings:   0%"
+          }
+        },
+        "9c3868d36a4745729f6de8e9b563703b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_ba8da6ed1f454f1a9030f003e6be06fe",
+            "placeholder": "​",
+            "style": "IPY_MODEL_f5966f595beb4315838f1dcc95cb5d01",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "9f0c9c565e314c70a28bf2e2b3314a95": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "a5105d61c2134e6ead3aa4253ace31a0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "a5a8a3aded9449899e2482845f561051": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "a6a389812ad94b0a80c222f87de469e4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "aa1f92a769ef46f79ee55b17e78c3a4c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ad5828456e374885a8443ea1dad9504f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ae19ddd1cd8b44b5bc9f37c3f8d9b91e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "af07ea5e6bb244d0b7c5d7ee56559611": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "b0d30b32a2584b23b1c5f7afbcb7a129": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b171e23da4b44f2c8e52078fc8d0ef53": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b53ab7e4d96743be8977d93c042edff6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b62caf52196d4cddbada7b51d68cf66b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "b98c7c272a3d4f5794422c370f286db1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "ba8da6ed1f454f1a9030f003e6be06fe": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ba9092da679847bf9a7a4a418ca27e02": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "bb3f80525ddf40eba5120bd606b53993": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "bc0a6f88c7ce40ef9d6ccb3162575af2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_9ae8ea72b2d54e67a693ab2bb6a96092",
+              "IPY_MODEL_e76759bb6a3842c999c017874f19de7e",
+              "IPY_MODEL_83ff20d9055d4ee1930db2034382513a"
+            ],
+            "layout": "IPY_MODEL_7bb1843212384c4080aff1a576c0c4f5"
+          }
+        },
+        "bf0b0fb9a21a43cbb58dd03665fec536": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_ba9092da679847bf9a7a4a418ca27e02",
+            "placeholder": "​",
+            "style": "IPY_MODEL_7fa721889d89487c8eb99b3a3ac6fa02",
+            "value": "BM25S Retrieve:   0%"
+          }
+        },
+        "bf839df28f95418f92fc92d2fefc2248": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_281ff14051a443c8a349a0f5f2c412d8",
+              "IPY_MODEL_2f80d24e869e402c95514e2726b61b05",
+              "IPY_MODEL_3172c68925bd49a0aec33783729d626c"
+            ],
+            "layout": "IPY_MODEL_2311447a6805488ab80a3a0413c6cab0"
+          }
+        },
+        "c159ca88113e458d9122b9f619c8065f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "c217c97aa1c94cd8890306170fbe4874": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_57a7fcf88bdc4db18a3603629c312c28",
+            "placeholder": "​",
+            "style": "IPY_MODEL_79e0d5162ae849d69eff07666cf20680",
+            "value": " 0/1 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "c2a7375e2bd94ce9b3a633edca9306fb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "c370b066ae6c4cc2bea8a791eb52af11": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_7f5e14cf3f444a2c8e94885397260155",
+              "IPY_MODEL_8815c8b281d04e59bad3e06b712a33fe",
+              "IPY_MODEL_fedd86db037240f392b9ed5abda461b7"
+            ],
+            "layout": "IPY_MODEL_3d00c22145464e4f8fd5ef6c20e3d254"
+          }
+        },
+        "c3de966c5b9648c99e5f652a1140cc82": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d48ba6521ff64e69b74b3bb40bb2a32a",
+            "placeholder": "​",
+            "style": "IPY_MODEL_f955613cc59f4eebb8de687e4f72c40a",
+            "value": "Split strings:   0%"
+          }
+        },
+        "c60c9131c66e44a7aa6c24c0c360eb7b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "cabb323ba91341e1aacbce512dcf97a5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_0a9c1bed9d1641c9863d3f85ff054ec5",
+            "placeholder": "​",
+            "style": "IPY_MODEL_9f0c9c565e314c70a28bf2e2b3314a95",
+            "value": "BM25S Count Tokens:   0%"
+          }
+        },
+        "cd50fa0b17624d339d919b4276f7d1f3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ce1c2052b9a04a5da2f0cc74c8375e89": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "cf4a9e1756394c6ea3b912596d696957": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "d2c3f18a9441402a8d2d6ac52c5dd1b4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_bf0b0fb9a21a43cbb58dd03665fec536",
+              "IPY_MODEL_f0cb682cf38b4c72abd0791552ba79b2",
+              "IPY_MODEL_3e113b2ec48a4544a54374c67bd22240"
+            ],
+            "layout": "IPY_MODEL_f592324af3f84996ad9a52e0d4dc9fad"
+          }
+        },
+        "d41b16c91107498fb3c54f6132acd5d7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "d48ba6521ff64e69b74b3bb40bb2a32a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "db407f74b8b648e4b2e5a662523507ac": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "dc7df640ed074abb8430b2d3d3eb58c0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "debb8cfdcbd24079b8194870bbccf2cb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_b53ab7e4d96743be8977d93c042edff6",
+            "max": 32,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_6a4272eeb39b4081abe5aa7c2a611fd8",
+            "value": 32
+          }
+        },
+        "df4f2adef0c5431082b339d83b363bbf": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "df53dbababa54400bcba9b203f321d75": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "e00c0c02d7a14e5ca499c0477416f076": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_e843393f43c84d9c81098252320b1c21",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_83f1936e6e8648fda4e3b8b28a3f61b1",
+            "value": 1
+          }
+        },
+        "e2a6cddbde7c4e4e804b5b48ea4e5316": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_3fd88818ca054dee8e3f4c72ecfe4e71",
+              "IPY_MODEL_e00c0c02d7a14e5ca499c0477416f076",
+              "IPY_MODEL_86c3997f6fcc4a70955d6dc4356f7c27"
+            ],
+            "layout": "IPY_MODEL_43fa4548b44947f5bc03e3d43d5e3282"
+          }
+        },
+        "e743a461aeb4442d9b4307dc5e4e0c02": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "e76759bb6a3842c999c017874f19de7e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_08dd65de948f48aeb27a01f124af488b",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_50022d07420740d9bed8ced8f4cb577a",
+            "value": 1
+          }
+        },
+        "e7e405e3f7c24525991dbdef759f2c55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "e843393f43c84d9c81098252320b1c21": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "f028e928a4ed43cb91bc0f1d712fad6a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_65650f003a1648ca8f2fb1d2d3fa7fc4",
+            "placeholder": "​",
+            "style": "IPY_MODEL_7dbcae1bf34644b4a5a094f9be87d57a",
+            "value": "BM25S Retrieve:   0%"
+          }
+        },
+        "f0cb682cf38b4c72abd0791552ba79b2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_e743a461aeb4442d9b4307dc5e4e0c02",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b62caf52196d4cddbada7b51d68cf66b",
+            "value": 1
+          }
+        },
+        "f592324af3f84996ad9a52e0d4dc9fad": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": null
+          }
+        },
+        "f5966f595beb4315838f1dcc95cb5d01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "f60ecbd3d1514c3cb27899e4b87be6c8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_b171e23da4b44f2c8e52078fc8d0ef53",
+            "placeholder": "​",
+            "style": "IPY_MODEL_af07ea5e6bb244d0b7c5d7ee56559611",
+            "value": "BM25S Compute Scores:   0%"
+          }
+        },
+        "f65099e43dff41c3850e1ad10cd123ef": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_8cd50ff5cb6d451ba6572da5784eae77",
+              "IPY_MODEL_1797a97ee421429f8052b722aa765f9a",
+              "IPY_MODEL_23855ae0124947d38b649624a6bc8921"
+            ],
+            "layout": "IPY_MODEL_c159ca88113e458d9122b9f619c8065f"
+          }
+        },
+        "f65e6142aab147e793e950861d854e01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "f8ca0df6f3a0439ebfed1e642b7818c8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_ad5828456e374885a8443ea1dad9504f",
+            "max": 1,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_db407f74b8b648e4b2e5a662523507ac",
+            "value": 1
+          }
+        },
+        "f955613cc59f4eebb8de687e4f72c40a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "fd307d0ecc1e47c1b4cd3585d47e2426": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "fedd86db037240f392b9ed5abda461b7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_6115e78fd8264fb780e11ae6f4f25607",
+            "placeholder": "​",
+            "style": "IPY_MODEL_336d9786a90c4047a8432f41a42a98f0",
+            "value": " 0/32 [00:00&lt;?, ?it/s]"
+          }
+        },
+        "fee520af1e7e41468f7016850f4c0aa0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "fefbbe36d4724ac48e39dcddc1ff7ca4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/recipes/3p_integrations/togetherai/multimodal_RAG_with_nvidia_investor_slide_deck.ipynb b/recipes/3p_integrations/togetherai/multimodal_RAG_with_nvidia_investor_slide_deck.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..20dd8215280c39656b18eed91f503b522ea17e7d
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/multimodal_RAG_with_nvidia_investor_slide_deck.ipynb
@@ -0,0 +1,6803 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "XoUWmYGIzey3"
+      },
+      "source": [
+        "# MultiModal Document RAG with ColQwen2 and Llama 3.2 90B Vision\n",
+        "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/togethercomputer/together-cookbook/blob/main/MultiModal_RAG_with_Nvidia_Investor_Slide_Deck.ipynb)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "sr9HH3q1wTOX"
+      },
+      "source": [
+        "## Hardware Requirements\n",
+        "*To ensure the notebook runs faster please change the runtime type to T4 GPU:\n",
+        "`Runtime` -> `Change runtime type` -> `T4 GPU`*"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Introduction\n",
+        "\n",
+        "In this notebook we will see how to use Multimodal RAG to chat with Nvidia's invester slide deck from last year. The [slide deck](https://s201.q4cdn.com/141608511/files/doc_presentations/2023/Oct/01/ndr_presentation_oct_2023_final.pdf) is 39 pages with a combination of text, visuals, tables, charts and annotations. The document structure and templates vary from page to page and is quite difficult to RAG over using traditional methods.\n",
+        "\n",
+        "We will be using a new multimodal approach!\n",
+        "\n",
+        "<img src=\"images/Nvidia_collage.png\" width=\"500\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "L2PpNYOhxM26"
+      },
+      "source": [
+        "## MultiModal RAG Workflow\n",
+        "\n",
+        "[ColPali](https://arxiv.org/abs/2407.01449) is a new multimodal retrieval system that seamlessly enables image retrieval.\n",
+        "\n",
+        "By directly encoding image patches, it eliminates the need for optical character recognition (OCR), or image captioning to extract text from PDFs.\n",
+        "\n",
+        "We will use `byaldi`, a library from [AnswerAI](https://www.answer.ai/), that makes it easier to work with an upgraded version of ColPali, called ColQwen2, to embed and retrieve images of our PDF documents.\n",
+        "\n",
+        "Retrieved pages will then be passed into the Llama-3.2 90B Vision model served via a [Together AI](https://www.together.ai/) inference endpoint for it to answer questions.\n",
+        "\n",
+        "To get a better explanation of how ColPali and the new Llama 3.2 Vision models work checkout the [blog post](https://www.together.ai/blog/multimodal-document-rag-with-llama-3-2-vision-and-colqwen2) connected to this notebook."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "<img src=\"images/mmrag_only.png\" width=\"600\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "1cvv_A5-1ehW"
+      },
+      "source": [
+        "### Install relevant libraries"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "J_Kn_x4Kf-ch",
+        "outputId": "86007dda-46c7-4fe9-ab8d-9a25f682b42f"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install byaldi together pdf2image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "!sudo apt-get install -y poppler-utils"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "IhxzLDwNz20T"
+      },
+      "outputs": [],
+      "source": [
+        "# Paste in your Together AI API Key or load it\n",
+        "api_key = os.environ.get(\"TOGETHER_API_KEY\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "u11gFQk11juN"
+      },
+      "source": [
+        "### Initialize the ColPali Model"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 722,
+          "referenced_widgets": [
+            "1eeab996a4d449e4adc5e9edcffe4ac0",
+            "25fc23ecebdd45b6938f0c13526b66d0",
+            "fe121a4f539044bcbbb1a45420c27105",
+            "326cb5ce2a494eb6851690e1bc6ddcf9",
+            "3753cb89258d42e68c2d0f825ff3e807",
+            "550980b972714fcdaed229c2c62b0fc4",
+            "4dd78e2132884d77ad49a8eb5f991739",
+            "3c5e60595b2d42c7a5b289240ad07e50",
+            "ea3f8b73c5c84e8d84d33a33e1ced66b",
+            "9c6dd40d86364761bf335d6366e027f5",
+            "98272e5c5fce4f6da269ebf299beefa7",
+            "2e617a8fd47d4ff3b901b365551e3a49",
+            "6fa8581f43084b4a9b5d2685a10e3574",
+            "fd4c355975fc4f329e9bd7c647cf2e00",
+            "2512fd4997794485af09ce9c8d6b293d",
+            "99e741f5385d461083d0ce7d282619ae",
+            "753f31a4098a436bb02363495d1a93e4",
+            "ec59f9ba355047cd9f9ec896ec30a761",
+            "53074fb2ca874405bfa1e90aecb4afc0",
+            "403525053b1a455585aadb8773c20f6b",
+            "e0c912ca78ec458a98d02dca6a7f1d98",
+            "2c4b0fe308fe4d689a7791fbc426b8ea",
+            "97112738ae46435190099f038f45d767",
+            "072de7b41797471b96fb95fec499943f",
+            "639f669792034db79e5eb5126c257f0d",
+            "15d418af01734c32aa72d8ba19c5315a",
+            "ddb23b7bbccd48769d5be43445738d99",
+            "f812fb414c84404f8b0c849f8b05ee42",
+            "e1bdc507ca004f809fbeed8de91f9f2f",
+            "c8996c361697463a9470902444d96489",
+            "c4e5708d34964965b80f3b14e28d4bfa",
+            "28cfb901d6d245aeb852e32cc3cca8ec",
+            "323af3bfe1ec465c98ba7ad7c6761b41",
+            "92ec4edc655f4f2aa274a8f223fd82c5",
+            "e37ba457db354399919a1aba01f484c2",
+            "ae9af202450d47ac9e722aab455d1052",
+            "53b8ede9fc574d9cac2931123845dd22",
+            "15a223c3c4484352aeab8d77ac3f27a1",
+            "fd934e8f547e42c58e2b85d26be899a5",
+            "68392d6a0dd145c59ede3350df3ab360",
+            "4b1963f1564144b2bb36904814561343",
+            "bf1cb7e392ef449490fa4d4b4fc2e80a",
+            "a94c444e03ad4a1eac29430160cdc2e8",
+            "0799e7e4aca8439198b5586f41c1a033",
+            "7bbf1f79103a41bca5f16f40db13574d",
+            "060980e7324840ce9b0cc0ba24cc249e",
+            "79d93418301e414b8e8e9bba7c5c5d1f",
+            "60b88d878c5f4a82b4ec7486baddbf02",
+            "3d15f13961bc41b9853a4efa955fd1dd",
+            "b983ea3a8b474a29abf07786014db80d",
+            "6b62830a87514300ae7453dcf225ce22",
+            "d7e640c3ef7d4f2da433528e7d09c135",
+            "6806862b60d741b88555659106dd3db5",
+            "0cf706457c074e5b94650136a46e90a6",
+            "83c1c8a916ec4a89996a73959bef8349",
+            "f78d462a6fdb428e8a9256d90ac50ffe",
+            "0333d1ca85b04f89a49f8385fe3deed8",
+            "952e447c0a38435380a2f3db0231608d",
+            "3d65c6df9eaa4bea81834d9809da7f50",
+            "a9be8e741ccd49caa683de1c44b3055d",
+            "16fe6b04c3c645ab9a52fafd8866f3e3",
+            "a2ed5fc46fd34dee93007f13401de790",
+            "2af9fff43ce94f06b14de34eccdd368d",
+            "7739490fc5354922b7cfe3f754b4e58d",
+            "68eedcdde83f44c198da50c69f88006a",
+            "abcd537eaecb42c9b81614bfc7a77b58",
+            "cc99435e919a4a45ae8535b661acec01",
+            "113e18919e8042cd8ad580105fc99fd8",
+            "62bb11de59514afabef7a81370df2a6b",
+            "7fb04dad18aa4581816094d15306c095",
+            "0767c90641c24598bb7db4c71482bf15",
+            "22914ed9a55f4d208dff770818a75ceb",
+            "ba5fb7ba6f314614a2f205ed887a90ad",
+            "2a2c705fec7e404696509372382c2eb3",
+            "bd9a348279c44c0ebff8608b4e0a42f3",
+            "db7db7acd26f44518f29e6ba0836f0e4",
+            "b105faa138944cf98cbe0b4414c6184c",
+            "bad20ce48f3d4647890f466d834c1d99",
+            "51bf5b1ed931461f91756487a31af859",
+            "f324b9bd8cb54273993077430135a70b",
+            "bb36ff78295749f38569a18cb32d7a9c",
+            "f682e4ef377b4a93b417e8af7e23e21f",
+            "d54b9916789949a4accdd865d4419e94",
+            "b2eb6cde58104143b64c2fdb48fce2da",
+            "9b981698f6f345268038c6d56fd78b9d",
+            "c803efd339d94088a2bf2d81ae2d29e0",
+            "17094c24f5b24e22854528b54af01caf",
+            "bd9aa1e491064b1698eab8932c73e682",
+            "f73babc4d54a4a1aaa17d8be848d6169",
+            "3d5ef21c9d0b4468aac41dcd2d7f4d37",
+            "f39511fc089c4306bd2da745fd48ae0e",
+            "dde15fb26de04596b3674711f410e411",
+            "f7f599e0e8cf4168acd6b44517a69eac",
+            "e9cba18e42fb45398e591b1c909780e6",
+            "d177f2460c004ff5a36e2fe1011043e7",
+            "2de1b464e0ad4d5f833399c722d9d814",
+            "3b7578f07a2b47f69c0d63467aacafef",
+            "07e85463971049d78ea76aca99441422",
+            "5453d32bd6614352b79e1baa238287c5",
+            "20c9280fbc764b9493d02cfa1ef090f7",
+            "eb3109d3e2944745b1a85646e29ba074",
+            "753ba45c427b4d7693101eb04a77855b",
+            "d2401f3f8a5a49ba901c85a4dbe091bb",
+            "6800359f6d3848fbaeb42f605d4d392a",
+            "08d9eb8f7c584361ab78ab47162e0d00",
+            "5cfe51bd3b7a4ffc8361bb25cc29a428",
+            "39e3059f17ce40e7b095cc536e3d8da3",
+            "64983e035d9c42bcb9fea2bf690ef887",
+            "4eb7de9649c744f883af5e2a6dd813e4",
+            "861632cba5c546ddbbf575c4d818aeaa",
+            "a4ce58b973b9430aac9e0972fb5f1c20",
+            "caa9809661104ab498d3c9d338daa109",
+            "1a246e8a8d5c46f5ade25ae187c0f3ad",
+            "5e7965dbe85e422286fb4612f7e3aa0c",
+            "d7acdde3e0634772a1f807895e1de79b",
+            "023996231f924ad78fa555d37a2a8809",
+            "8730a6d0e92d466a87ce5f66045a7b2c",
+            "8c75f6941d884d4282e35743dda9d9ae",
+            "39b651e21aa149a8b2bfcf6fb7b97462",
+            "2a6ca2cea4484614bf0f3926766a564f",
+            "577d952c3e8047f9b4114fa3a3962627",
+            "958c0b33a67f4910b56939497a1f92c6",
+            "1ac8cd2852e14b218774faf1e7b963fb",
+            "05eedac73db5420baf0c2f4529884dcf",
+            "1c39588d87e24a72be6c31d97e983c18",
+            "8ab0c2be5fee48388ac3fa95a3f078d1",
+            "982c022a0891499da5360693c29dd199",
+            "dc004bb8e71c440ab81b3c8ad5694012",
+            "7cd5738a5dc24d4591968d09c8e97c19",
+            "1fff38e9b8c44f75babdf53c066db4d2",
+            "49ae55ec2a7940ff83c1cc1c97108e22",
+            "930659e5198d47bfb672901de1e8c69f",
+            "8cf576df1bb94c57ad8646de236aa439",
+            "d95c0a7ad50f48cbbdab4e2bde2272a9",
+            "76984e9c434b498ebd6bf5f757d5980f",
+            "72b83657228b4fcebfae881a9e60bef6",
+            "567ff21e1dbe4a5fae613014cb5072da",
+            "2aee4bc4a90b4fbfa2c8216b5464676f",
+            "73605cee60f84beeb10b575b2b3622f0",
+            "0b9d44a675b2410b81bcd73c9183ec62",
+            "657fcb674c8642a78b3d9817cc846d3b",
+            "29d474f471ca4ee7821d5b30fa1b6a2d",
+            "10c5ba678ecc4522898ad28a6f93a6dc",
+            "c111feb6a9d84896b5034abcc577a528",
+            "ce09862e28214bf9985be35b145ae1d4",
+            "b21faaaa99884e3f8c9d5b57f4626da1",
+            "bc4794628435423daf26afbbc1a16181",
+            "70d5c4c9be79407e818d3ad371058358",
+            "9fb328767cd54cef9691c45884e81b11",
+            "9868c83e8e3f4b9693d5d88fdf49ba28",
+            "4844feb30e6d42edb9da011e42a6e98d",
+            "169774efbf4b4bc897754c50ca47663c",
+            "532ffae27f7543158baadebe6b256061",
+            "c48baa9c0f4340bea7949154afa99db6",
+            "ae5c8d15a4d446d5980f754b083b35eb",
+            "60e397c397184af795d156cb9599b3a5",
+            "a5e7ebf472c34b5f9e038d07356a9896",
+            "8299b91fc3c4454cb27477758ac36634",
+            "764a3de7b6b44c1ea840c023b3e5ae8b",
+            "7300e9789dc84bdc9f366b7feea017aa",
+            "efc8db441f4447d0b8c6ed3cac146a86",
+            "b960cb7697d643fdb5d4dc5b4ba53eb1",
+            "1097756b1cea43a9bc01a521db92f4d7",
+            "2b1922a715a046ab8530d714a526a090",
+            "fbb6524f63404d25abe6465494a06e68",
+            "b41c7ed7e422432c854b6cbf3cd13655",
+            "8c719750197c4670baae8f5c5419622d",
+            "0335b59efd4144ba86e836c2234ab83d",
+            "c3c08edb68ba4c1ebae0938cb4b4cbc8",
+            "bf5fbb4b558a41928a8e2002efc489e3",
+            "c9c2407179d4416aada53aa02477f733",
+            "e255eeebae5042a9a3f97d8d1dba5c37",
+            "3e05e4acd10d468587c23ce702a5eb4b",
+            "b4d9bb07131f4686bbd61dea74e27570",
+            "6148e434f012498591c081ea1277fadd",
+            "dc3ca9e7eafa4ef5bc847a9392bfe65b",
+            "d67015a870db4fc1b005fe738f8aa0e5",
+            "02890b91b49947a587f3a774a89d295c",
+            "a762b5137e2641069ee44796203a50d7",
+            "5b9b68ae14384f5a9f7970e8210bec0e",
+            "a0f5527e64b740e6972c04b639f6b3ae",
+            "fd8416b27c3e4d3f9a935d953365faa1",
+            "4ddcec3c3b6d462a9e41ac655f70449e",
+            "9b5484d50d434f7288840023814990ca",
+            "e8eec657b7f44453a169cc734cab3e08",
+            "2e1537521c2e44b1afa4231e88bf1012",
+            "3e2fc46786e0421196b04a9a9a4befd2"
+          ]
+        },
+        "id": "T36U991Dfrkn",
+        "outputId": "e894f741-fc81-4e7b-c09c-30105eff52e3"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Verbosity is set to 1 (active). Pass verbose=0 to make quieter.\n"
+          ]
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n",
+            "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
+            "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
+            "You will be able to reuse this secret in all of your notebooks.\n",
+            "Please note that authentication is recommended but still optional to access public models or datasets.\n",
+            "  warnings.warn(\n"
+          ]
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "1eeab996a4d449e4adc5e9edcffe4ac0",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "adapter_config.json:   0%|          | 0.00/728 [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2e617a8fd47d4ff3b901b365551e3a49",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "config.json:   0%|          | 0.00/1.17k [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "Unrecognized keys in `rope_scaling` for 'rope_type'='default': {'mrope_section'}\n"
+          ]
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "97112738ae46435190099f038f45d767",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "model.safetensors.index.json:   0%|          | 0.00/56.5k [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "92ec4edc655f4f2aa274a8f223fd82c5",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Downloading shards:   0%|          | 0/2 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "7bbf1f79103a41bca5f16f40db13574d",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "model-00001-of-00002.safetensors:   0%|          | 0.00/4.98G [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f78d462a6fdb428e8a9256d90ac50ffe",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "model-00002-of-00002.safetensors:   0%|          | 0.00/3.85G [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "`Qwen2VLRotaryEmbedding` can now be fully parameterized by passing the model config through the `config` argument. All other arguments will be removed in v4.46\n"
+          ]
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "cc99435e919a4a45ae8535b661acec01",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Loading checkpoint shards:   0%|          | 0/2 [00:00<?, ?it/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "bad20ce48f3d4647890f466d834c1d99",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "generation_config.json:   0%|          | 0.00/220 [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "f73babc4d54a4a1aaa17d8be848d6169",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "adapter_model.safetensors:   0%|          | 0.00/74.0M [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "20c9280fbc764b9493d02cfa1ef090f7",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "preprocessor_config.json:   0%|          | 0.00/568 [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a4ce58b973b9430aac9e0972fb5f1c20",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "tokenizer_config.json:   0%|          | 0.00/4.30k [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "958c0b33a67f4910b56939497a1f92c6",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "vocab.json:   0%|          | 0.00/2.78M [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "8cf576df1bb94c57ad8646de236aa439",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "merges.txt:   0%|          | 0.00/1.67M [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c111feb6a9d84896b5034abcc577a528",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "tokenizer.json:   0%|          | 0.00/7.03M [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "ae5c8d15a4d446d5980f754b083b35eb",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "added_tokens.json:   0%|          | 0.00/392 [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "b41c7ed7e422432c854b6cbf3cd13655",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "special_tokens_map.json:   0%|          | 0.00/613 [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d67015a870db4fc1b005fe738f8aa0e5",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "chat_template.json:   0%|          | 0.00/1.05k [00:00<?, ?B/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "import os\n",
+        "from pathlib import Path\n",
+        "from byaldi import RAGMultiModalModel\n",
+        "\n",
+        "# Initialize RAGMultiModalModel\n",
+        "model = RAGMultiModalModel.from_pretrained(\"vidore/colqwen2-v0.1\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "6madujxn1pEP"
+      },
+      "source": [
+        "### The document we will be retrieving from is a 39 page Nvidia investor presentation from 2023: [Investor Presentation October 2023](https://s201.q4cdn.com/141608511/files/doc_presentations/2023/Oct/01/ndr_presentation_oct_2023_final.pdf)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "SX-TsmXbfrkp",
+        "outputId": "ab61fc26-8b94-4f4d-82cb-f43835525e28"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "--2024-10-04 14:34:23--  https://s201.q4cdn.com/141608511/files/doc_presentations/2023/Oct/01/ndr_presentation_oct_2023_final.pdf\n",
+            "Resolving s201.q4cdn.com (s201.q4cdn.com)... 68.70.205.3, 68.70.205.4, 68.70.205.1, ...\n",
+            "Connecting to s201.q4cdn.com (s201.q4cdn.com)|68.70.205.3|:443... connected.\n",
+            "HTTP request sent, awaiting response... 200 OK\n",
+            "Length: 8609256 (8.2M) [application/pdf]\n",
+            "Saving to: ‘ndr_presentation_oct_2023_final.pdf’\n",
+            "\n",
+            "ndr_presentation_oc 100%[===================>]   8.21M  24.4MB/s    in 0.3s    \n",
+            "\n",
+            "2024-10-04 14:34:24 (24.4 MB/s) - ‘ndr_presentation_oct_2023_final.pdf’ saved [8609256/8609256]\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Dowload and rename the last presentation from Nvidia to investors\n",
+        "!wget https://s201.q4cdn.com/141608511/files/doc_presentations/2023/Oct/01/ndr_presentation_oct_2023_final.pdf\n",
+        "!mv ndr_presentation_oct_2023_final.pdf nvidia_presentation.pdf"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "BgLlnqkO2O4p"
+      },
+      "source": [
+        "### Lets create our index that will store the embeddings for the page images.\n",
+        "\n",
+        "Caution: This cell below takes ~5 mins to index the whole PDF!"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "OaoUvbgufrkq",
+        "outputId": "82320a49-89c3-4156-809e-408a530d4659"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Added page 1 of document 0 to index.\n",
+            "Added page 2 of document 0 to index.\n",
+            "Added page 3 of document 0 to index.\n",
+            "Added page 4 of document 0 to index.\n",
+            "Added page 5 of document 0 to index.\n",
+            "Added page 6 of document 0 to index.\n",
+            "Added page 7 of document 0 to index.\n",
+            "Added page 8 of document 0 to index.\n",
+            "Added page 9 of document 0 to index.\n",
+            "Added page 10 of document 0 to index.\n",
+            "Added page 11 of document 0 to index.\n",
+            "Added page 12 of document 0 to index.\n",
+            "Added page 13 of document 0 to index.\n",
+            "Added page 14 of document 0 to index.\n",
+            "Added page 15 of document 0 to index.\n",
+            "Added page 16 of document 0 to index.\n",
+            "Added page 17 of document 0 to index.\n",
+            "Added page 18 of document 0 to index.\n",
+            "Added page 19 of document 0 to index.\n",
+            "Added page 20 of document 0 to index.\n",
+            "Added page 21 of document 0 to index.\n",
+            "Added page 22 of document 0 to index.\n",
+            "Added page 23 of document 0 to index.\n",
+            "Added page 24 of document 0 to index.\n",
+            "Added page 25 of document 0 to index.\n",
+            "Added page 26 of document 0 to index.\n",
+            "Added page 27 of document 0 to index.\n",
+            "Added page 28 of document 0 to index.\n",
+            "Added page 29 of document 0 to index.\n",
+            "Added page 30 of document 0 to index.\n",
+            "Added page 31 of document 0 to index.\n",
+            "Added page 32 of document 0 to index.\n",
+            "Added page 33 of document 0 to index.\n",
+            "Added page 34 of document 0 to index.\n",
+            "Added page 35 of document 0 to index.\n",
+            "Added page 36 of document 0 to index.\n",
+            "Added page 37 of document 0 to index.\n",
+            "Added page 38 of document 0 to index.\n",
+            "Added page 39 of document 0 to index.\n",
+            "Index exported to .byaldi/nvidia_index\n",
+            "Index exported to .byaldi/nvidia_index\n"
+          ]
+        },
+        {
+          "data": {
+            "text/plain": [
+              "{0: '/content/nvidia_presentation.pdf'}"
+            ]
+          },
+          "execution_count": 6,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# Use ColQwen2 to index and store the presentation\n",
+        "index_name = \"nvidia_index\"\n",
+        "model.index(input_path=Path(\"nvidia_presentation.pdf\"),\n",
+        "    index_name=index_name,\n",
+        "    store_collection_with_index=True, # Stores base64 images along with the vectors\n",
+        "    overwrite=True\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### This concludes the indexing of the PDF phase - everything below happens at query time.\n",
+        "\n",
+        "<img src=\"images/colpali_arch.png\" width=\"700\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "COhZkQ1p2UAA"
+      },
+      "source": [
+        "### Let's query our indexed document.\n",
+        "\n",
+        "Here the important thing to note is that the query is asking for details that are found on page 25 of the PDF!"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "q5xJfZwepcny",
+        "outputId": "f6468300-20d1-4c6f-8dbb-8ea00488974c"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Search results for 'What are the half year data centre renevue results and the 5 year CAGR for Nvidia data centre revenue?':\n",
+            "Doc ID: 0, Page: 25, Score: 25.875\n",
+            "Doc ID: 0, Page: 24, Score: 25.0\n",
+            "Doc ID: 0, Page: 28, Score: 23.75\n",
+            "Doc ID: 0, Page: 32, Score: 23.75\n",
+            "Doc ID: 0, Page: 31, Score: 23.75\n",
+            "Test completed successfully!\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Lets query our index and retrieve the page that has content with the highest similarity to the query\n",
+        "\n",
+        "# The Data Centre revenue results are on page 25 - for context!\n",
+        "query = \"What are the half year data centre renevue results and the 5 year CAGR for Nvidia data centre revenue?\"\n",
+        "results = model.search(query, k=5)\n",
+        "\n",
+        "print(f\"Search results for '{query}':\")\n",
+        "for result in results:\n",
+        "    print(f\"Doc ID: {result.doc_id}, Page: {result.page_num}, Score: {result.score}\")\n",
+        "\n",
+        "print(\"Test completed successfully!\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "u4C0ZIZZ2rX5"
+      },
+      "source": [
+        "### Notice that ColQwen2 is able to retrieve that correct page with the highest similarity!"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "<img src=\"images/page_25.png\" width=\"700\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### How does this work? What happens under the hood between the different pages and query token?\n",
+        "\n",
+        "The interaction operation between page image patch and query text token representations to score each page of the document is what allows this great retreival performance.\n",
+        "\n",
+        "Typically each image is resized and cut into patch sizes of 16x16 pixels. These patches are then embedded into 128 dimensional vectors which are stored and used to perform the MaxSim and late interaction operations between the image and text tokens. ColPali is a multi-vector approach because it produces multiple vectors for each image/query; one vector for each token instead of just one vector for all tokens. \n",
+        "\n",
+        "<img src=\"images/ColPaliMaxSim-1.png\" width=\"700\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "_log2fq0ACBi"
+      },
+      "source": [
+        "The retrieval step takes about 185 ms."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "ONF3AD3w_yFC",
+        "outputId": "eed43a29-e90e-4cc0-e8cb-59a7fdc6c399"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "182 ms ± 4.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
+          ]
+        }
+      ],
+      "source": [
+        "%%timeit\n",
+        "model.search(query, k=5)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "dohWS-dJ23ch"
+      },
+      "source": [
+        "## Lets now pass in the retrieved page to the Llama-3.2 90B Vision Model.\n",
+        "\n",
+        "This model will read the question: `\"What are the half year data centre renevue results and the 5 year CAGR for Nivida data centre revenue?\"`\n",
+        "\n",
+        "And take in the retrieved page and produce an answer!\n",
+        "\n",
+        "You can pass in a URL to the image of the retrieved page or a base64 encoded version of the image."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "N2EsJuwKAOME",
+        "outputId": "dd33b66b-19da-4a4a-98fd-7da8fc1744e9"
+      },
+      "outputs": [],
+      "source": [
+        "# Since we stored the collection along with the index we have the base64 images of all PDF pages aswell!\n",
+        "model.search(query, k=1)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "Xb7u0tIjEmJW"
+      },
+      "outputs": [],
+      "source": [
+        "returned_page = model.search(query, k=1)[0].base64"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## We'll use a [Together AI](together.ai) inference endpoint to access the Llama-3.2 90B Vision model"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "The half-year data center revenue results for Nvidia are $14,607 million. The 5-year CAGR for Nvidia's data center revenue is 51%.\n"
+          ]
+        }
+      ],
+      "source": [
+        "import os\n",
+        "from together import Together\n",
+        "\n",
+        "client = Together(api_key = api_key)\n",
+        "\n",
+        "response = client.chat.completions.create(\n",
+        "  model=\"meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo\",\n",
+        "  messages=[\n",
+        "    {\n",
+        "      \"role\": \"user\",\n",
+        "      \"content\": [\n",
+        "        {\"type\": \"text\", \"text\": query}, #query\n",
+        "        {\n",
+        "          \"type\": \"image_url\",\n",
+        "          \"image_url\": {\n",
+        "            \"url\": f\"data:image/jpeg;base64,{returned_page}\", #retrieved page image\n",
+        "          },\n",
+        "        },\n",
+        "      ],\n",
+        "    }\n",
+        "  ],\n",
+        "  max_tokens=300,\n",
+        ")\n",
+        "\n",
+        "print(response.choices[0].message.content)\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "ADhM4ljj4E8w"
+      },
+      "source": [
+        "Here we can see that the combination of ColQwen2 as a image retriever and Llama-3.2 90B Vision is a powerful duo for multimodal RAG applications specially with PDFs.\n",
+        "\n",
+        "Not only was ColQwen2 able to retrieve the correct page that had the right answer on it but then Llama-3.2 90B Vision was also able to find exactly where on the page this answer was, ignoring all the irrelvant details!\n",
+        "\n",
+        "Voila!🎉🎉\n",
+        "\n",
+        "Learn more about Llama 3.2 Vision in the [docs](https://docs.together.ai/docs/vision-overview) here!"
+      ]
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "gpuType": "T4",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "codemirror_mode": {
+        "name": "ipython",
+        "version": 3
+      },
+      "file_extension": ".py",
+      "mimetype": "text/x-python",
+      "name": "python",
+      "nbconvert_exporter": "python",
+      "pygments_lexer": "ipython3",
+      "version": "3.10.14"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "023996231f924ad78fa555d37a2a8809": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "02890b91b49947a587f3a774a89d295c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_fd8416b27c3e4d3f9a935d953365faa1",
+            "placeholder": "​",
+            "style": "IPY_MODEL_4ddcec3c3b6d462a9e41ac655f70449e",
+            "value": "chat_template.json: 100%"
+          }
+        },
+        "0333d1ca85b04f89a49f8385fe3deed8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_16fe6b04c3c645ab9a52fafd8866f3e3",
+            "placeholder": "​",
+            "style": "IPY_MODEL_a2ed5fc46fd34dee93007f13401de790",
+            "value": "model-00002-of-00002.safetensors: 100%"
+          }
+        },
+        "0335b59efd4144ba86e836c2234ab83d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_3e05e4acd10d468587c23ce702a5eb4b",
+            "max": 613,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b4d9bb07131f4686bbd61dea74e27570",
+            "value": 613
+          }
+        },
+        "05eedac73db5420baf0c2f4529884dcf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_7cd5738a5dc24d4591968d09c8e97c19",
+            "max": 2776833,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1fff38e9b8c44f75babdf53c066db4d2",
+            "value": 2776833
+          }
+        },
+        "060980e7324840ce9b0cc0ba24cc249e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_b983ea3a8b474a29abf07786014db80d",
+            "placeholder": "​",
+            "style": "IPY_MODEL_6b62830a87514300ae7453dcf225ce22",
+            "value": "model-00001-of-00002.safetensors: 100%"
+          }
+        },
+        "072de7b41797471b96fb95fec499943f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_f812fb414c84404f8b0c849f8b05ee42",
+            "placeholder": "​",
+            "style": "IPY_MODEL_e1bdc507ca004f809fbeed8de91f9f2f",
+            "value": "model.safetensors.index.json: 100%"
+          }
+        },
+        "0767c90641c24598bb7db4c71482bf15": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0799e7e4aca8439198b5586f41c1a033": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "07e85463971049d78ea76aca99441422": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "08d9eb8f7c584361ab78ab47162e0d00": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0b9d44a675b2410b81bcd73c9183ec62": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0cf706457c074e5b94650136a46e90a6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "1097756b1cea43a9bc01a521db92f4d7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "10c5ba678ecc4522898ad28a6f93a6dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "113e18919e8042cd8ad580105fc99fd8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_22914ed9a55f4d208dff770818a75ceb",
+            "placeholder": "​",
+            "style": "IPY_MODEL_ba5fb7ba6f314614a2f205ed887a90ad",
+            "value": "Loading checkpoint shards: 100%"
+          }
+        },
+        "15a223c3c4484352aeab8d77ac3f27a1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "15d418af01734c32aa72d8ba19c5315a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_28cfb901d6d245aeb852e32cc3cca8ec",
+            "placeholder": "​",
+            "style": "IPY_MODEL_323af3bfe1ec465c98ba7ad7c6761b41",
+            "value": " 56.5k/56.5k [00:00&lt;00:00, 3.18MB/s]"
+          }
+        },
+        "169774efbf4b4bc897754c50ca47663c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "16fe6b04c3c645ab9a52fafd8866f3e3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "17094c24f5b24e22854528b54af01caf": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "1a246e8a8d5c46f5ade25ae187c0f3ad": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_8c75f6941d884d4282e35743dda9d9ae",
+            "max": 4298,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_39b651e21aa149a8b2bfcf6fb7b97462",
+            "value": 4298
+          }
+        },
+        "1ac8cd2852e14b218774faf1e7b963fb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_982c022a0891499da5360693c29dd199",
+            "placeholder": "​",
+            "style": "IPY_MODEL_dc004bb8e71c440ab81b3c8ad5694012",
+            "value": "vocab.json: 100%"
+          }
+        },
+        "1c39588d87e24a72be6c31d97e983c18": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_49ae55ec2a7940ff83c1cc1c97108e22",
+            "placeholder": "​",
+            "style": "IPY_MODEL_930659e5198d47bfb672901de1e8c69f",
+            "value": " 2.78M/2.78M [00:00&lt;00:00, 20.8MB/s]"
+          }
+        },
+        "1eeab996a4d449e4adc5e9edcffe4ac0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_25fc23ecebdd45b6938f0c13526b66d0",
+              "IPY_MODEL_fe121a4f539044bcbbb1a45420c27105",
+              "IPY_MODEL_326cb5ce2a494eb6851690e1bc6ddcf9"
+            ],
+            "layout": "IPY_MODEL_3753cb89258d42e68c2d0f825ff3e807"
+          }
+        },
+        "1fff38e9b8c44f75babdf53c066db4d2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "20c9280fbc764b9493d02cfa1ef090f7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_eb3109d3e2944745b1a85646e29ba074",
+              "IPY_MODEL_753ba45c427b4d7693101eb04a77855b",
+              "IPY_MODEL_d2401f3f8a5a49ba901c85a4dbe091bb"
+            ],
+            "layout": "IPY_MODEL_6800359f6d3848fbaeb42f605d4d392a"
+          }
+        },
+        "22914ed9a55f4d208dff770818a75ceb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2512fd4997794485af09ce9c8d6b293d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_e0c912ca78ec458a98d02dca6a7f1d98",
+            "placeholder": "​",
+            "style": "IPY_MODEL_2c4b0fe308fe4d689a7791fbc426b8ea",
+            "value": " 1.17k/1.17k [00:00&lt;00:00, 88.7kB/s]"
+          }
+        },
+        "25fc23ecebdd45b6938f0c13526b66d0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_550980b972714fcdaed229c2c62b0fc4",
+            "placeholder": "​",
+            "style": "IPY_MODEL_4dd78e2132884d77ad49a8eb5f991739",
+            "value": "adapter_config.json: 100%"
+          }
+        },
+        "28cfb901d6d245aeb852e32cc3cca8ec": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "29d474f471ca4ee7821d5b30fa1b6a2d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2a2c705fec7e404696509372382c2eb3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2a6ca2cea4484614bf0f3926766a564f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2aee4bc4a90b4fbfa2c8216b5464676f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2af9fff43ce94f06b14de34eccdd368d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2b1922a715a046ab8530d714a526a090": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2c4b0fe308fe4d689a7791fbc426b8ea": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "2de1b464e0ad4d5f833399c722d9d814": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2e1537521c2e44b1afa4231e88bf1012": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2e617a8fd47d4ff3b901b365551e3a49": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_6fa8581f43084b4a9b5d2685a10e3574",
+              "IPY_MODEL_fd4c355975fc4f329e9bd7c647cf2e00",
+              "IPY_MODEL_2512fd4997794485af09ce9c8d6b293d"
+            ],
+            "layout": "IPY_MODEL_99e741f5385d461083d0ce7d282619ae"
+          }
+        },
+        "323af3bfe1ec465c98ba7ad7c6761b41": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "326cb5ce2a494eb6851690e1bc6ddcf9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_9c6dd40d86364761bf335d6366e027f5",
+            "placeholder": "​",
+            "style": "IPY_MODEL_98272e5c5fce4f6da269ebf299beefa7",
+            "value": " 728/728 [00:00&lt;00:00, 47.8kB/s]"
+          }
+        },
+        "3753cb89258d42e68c2d0f825ff3e807": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "39b651e21aa149a8b2bfcf6fb7b97462": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "39e3059f17ce40e7b095cc536e3d8da3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "3b7578f07a2b47f69c0d63467aacafef": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "3c5e60595b2d42c7a5b289240ad07e50": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "3d15f13961bc41b9853a4efa955fd1dd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "3d5ef21c9d0b4468aac41dcd2d7f4d37": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_e9cba18e42fb45398e591b1c909780e6",
+            "placeholder": "​",
+            "style": "IPY_MODEL_d177f2460c004ff5a36e2fe1011043e7",
+            "value": "adapter_model.safetensors: 100%"
+          }
+        },
+        "3d65c6df9eaa4bea81834d9809da7f50": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_68eedcdde83f44c198da50c69f88006a",
+            "placeholder": "​",
+            "style": "IPY_MODEL_abcd537eaecb42c9b81614bfc7a77b58",
+            "value": " 3.85G/3.85G [00:28&lt;00:00, 186MB/s]"
+          }
+        },
+        "3e05e4acd10d468587c23ce702a5eb4b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "3e2fc46786e0421196b04a9a9a4befd2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "403525053b1a455585aadb8773c20f6b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "4844feb30e6d42edb9da011e42a6e98d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "49ae55ec2a7940ff83c1cc1c97108e22": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "4b1963f1564144b2bb36904814561343": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "4dd78e2132884d77ad49a8eb5f991739": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "4ddcec3c3b6d462a9e41ac655f70449e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "4eb7de9649c744f883af5e2a6dd813e4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "51bf5b1ed931461f91756487a31af859": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d54b9916789949a4accdd865d4419e94",
+            "placeholder": "​",
+            "style": "IPY_MODEL_b2eb6cde58104143b64c2fdb48fce2da",
+            "value": "generation_config.json: 100%"
+          }
+        },
+        "53074fb2ca874405bfa1e90aecb4afc0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "532ffae27f7543158baadebe6b256061": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "53b8ede9fc574d9cac2931123845dd22": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_a94c444e03ad4a1eac29430160cdc2e8",
+            "placeholder": "​",
+            "style": "IPY_MODEL_0799e7e4aca8439198b5586f41c1a033",
+            "value": " 2/2 [01:14&lt;00:00, 35.78s/it]"
+          }
+        },
+        "5453d32bd6614352b79e1baa238287c5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "550980b972714fcdaed229c2c62b0fc4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "567ff21e1dbe4a5fae613014cb5072da": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "577d952c3e8047f9b4114fa3a3962627": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "5b9b68ae14384f5a9f7970e8210bec0e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2e1537521c2e44b1afa4231e88bf1012",
+            "placeholder": "​",
+            "style": "IPY_MODEL_3e2fc46786e0421196b04a9a9a4befd2",
+            "value": " 1.05k/1.05k [00:00&lt;00:00, 74.4kB/s]"
+          }
+        },
+        "5cfe51bd3b7a4ffc8361bb25cc29a428": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "5e7965dbe85e422286fb4612f7e3aa0c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2a6ca2cea4484614bf0f3926766a564f",
+            "placeholder": "​",
+            "style": "IPY_MODEL_577d952c3e8047f9b4114fa3a3962627",
+            "value": " 4.30k/4.30k [00:00&lt;00:00, 248kB/s]"
+          }
+        },
+        "60b88d878c5f4a82b4ec7486baddbf02": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_0cf706457c074e5b94650136a46e90a6",
+            "placeholder": "​",
+            "style": "IPY_MODEL_83c1c8a916ec4a89996a73959bef8349",
+            "value": " 4.98G/4.98G [00:45&lt;00:00, 186MB/s]"
+          }
+        },
+        "60e397c397184af795d156cb9599b3a5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_7300e9789dc84bdc9f366b7feea017aa",
+            "placeholder": "​",
+            "style": "IPY_MODEL_efc8db441f4447d0b8c6ed3cac146a86",
+            "value": "added_tokens.json: 100%"
+          }
+        },
+        "6148e434f012498591c081ea1277fadd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "62bb11de59514afabef7a81370df2a6b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2a2c705fec7e404696509372382c2eb3",
+            "max": 2,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_bd9a348279c44c0ebff8608b4e0a42f3",
+            "value": 2
+          }
+        },
+        "639f669792034db79e5eb5126c257f0d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_c8996c361697463a9470902444d96489",
+            "max": 56543,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_c4e5708d34964965b80f3b14e28d4bfa",
+            "value": 56543
+          }
+        },
+        "64983e035d9c42bcb9fea2bf690ef887": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "657fcb674c8642a78b3d9817cc846d3b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "6800359f6d3848fbaeb42f605d4d392a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "6806862b60d741b88555659106dd3db5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "68392d6a0dd145c59ede3350df3ab360": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "68eedcdde83f44c198da50c69f88006a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "6b62830a87514300ae7453dcf225ce22": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "6fa8581f43084b4a9b5d2685a10e3574": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_753f31a4098a436bb02363495d1a93e4",
+            "placeholder": "​",
+            "style": "IPY_MODEL_ec59f9ba355047cd9f9ec896ec30a761",
+            "value": "config.json: 100%"
+          }
+        },
+        "70d5c4c9be79407e818d3ad371058358": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "72b83657228b4fcebfae881a9e60bef6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_29d474f471ca4ee7821d5b30fa1b6a2d",
+            "placeholder": "​",
+            "style": "IPY_MODEL_10c5ba678ecc4522898ad28a6f93a6dc",
+            "value": " 1.67M/1.67M [00:00&lt;00:00, 8.58MB/s]"
+          }
+        },
+        "7300e9789dc84bdc9f366b7feea017aa": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "73605cee60f84beeb10b575b2b3622f0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "753ba45c427b4d7693101eb04a77855b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_39e3059f17ce40e7b095cc536e3d8da3",
+            "max": 568,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_64983e035d9c42bcb9fea2bf690ef887",
+            "value": 568
+          }
+        },
+        "753f31a4098a436bb02363495d1a93e4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "764a3de7b6b44c1ea840c023b3e5ae8b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "76984e9c434b498ebd6bf5f757d5980f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_0b9d44a675b2410b81bcd73c9183ec62",
+            "max": 1671853,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_657fcb674c8642a78b3d9817cc846d3b",
+            "value": 1671853
+          }
+        },
+        "7739490fc5354922b7cfe3f754b4e58d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "79d93418301e414b8e8e9bba7c5c5d1f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d7e640c3ef7d4f2da433528e7d09c135",
+            "max": 4982048792,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_6806862b60d741b88555659106dd3db5",
+            "value": 4982048792
+          }
+        },
+        "7bbf1f79103a41bca5f16f40db13574d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_060980e7324840ce9b0cc0ba24cc249e",
+              "IPY_MODEL_79d93418301e414b8e8e9bba7c5c5d1f",
+              "IPY_MODEL_60b88d878c5f4a82b4ec7486baddbf02"
+            ],
+            "layout": "IPY_MODEL_3d15f13961bc41b9853a4efa955fd1dd"
+          }
+        },
+        "7cd5738a5dc24d4591968d09c8e97c19": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "7fb04dad18aa4581816094d15306c095": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_db7db7acd26f44518f29e6ba0836f0e4",
+            "placeholder": "​",
+            "style": "IPY_MODEL_b105faa138944cf98cbe0b4414c6184c",
+            "value": " 2/2 [00:42&lt;00:00, 20.89s/it]"
+          }
+        },
+        "8299b91fc3c4454cb27477758ac36634": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2b1922a715a046ab8530d714a526a090",
+            "placeholder": "​",
+            "style": "IPY_MODEL_fbb6524f63404d25abe6465494a06e68",
+            "value": " 392/392 [00:00&lt;00:00, 25.6kB/s]"
+          }
+        },
+        "83c1c8a916ec4a89996a73959bef8349": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "861632cba5c546ddbbf575c4d818aeaa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "8730a6d0e92d466a87ce5f66045a7b2c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "8ab0c2be5fee48388ac3fa95a3f078d1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "8c719750197c4670baae8f5c5419622d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_c9c2407179d4416aada53aa02477f733",
+            "placeholder": "​",
+            "style": "IPY_MODEL_e255eeebae5042a9a3f97d8d1dba5c37",
+            "value": "special_tokens_map.json: 100%"
+          }
+        },
+        "8c75f6941d884d4282e35743dda9d9ae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "8cf576df1bb94c57ad8646de236aa439": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_d95c0a7ad50f48cbbdab4e2bde2272a9",
+              "IPY_MODEL_76984e9c434b498ebd6bf5f757d5980f",
+              "IPY_MODEL_72b83657228b4fcebfae881a9e60bef6"
+            ],
+            "layout": "IPY_MODEL_567ff21e1dbe4a5fae613014cb5072da"
+          }
+        },
+        "92ec4edc655f4f2aa274a8f223fd82c5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_e37ba457db354399919a1aba01f484c2",
+              "IPY_MODEL_ae9af202450d47ac9e722aab455d1052",
+              "IPY_MODEL_53b8ede9fc574d9cac2931123845dd22"
+            ],
+            "layout": "IPY_MODEL_15a223c3c4484352aeab8d77ac3f27a1"
+          }
+        },
+        "930659e5198d47bfb672901de1e8c69f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "952e447c0a38435380a2f3db0231608d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2af9fff43ce94f06b14de34eccdd368d",
+            "max": 3854759672,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_7739490fc5354922b7cfe3f754b4e58d",
+            "value": 3854759672
+          }
+        },
+        "958c0b33a67f4910b56939497a1f92c6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_1ac8cd2852e14b218774faf1e7b963fb",
+              "IPY_MODEL_05eedac73db5420baf0c2f4529884dcf",
+              "IPY_MODEL_1c39588d87e24a72be6c31d97e983c18"
+            ],
+            "layout": "IPY_MODEL_8ab0c2be5fee48388ac3fa95a3f078d1"
+          }
+        },
+        "97112738ae46435190099f038f45d767": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_072de7b41797471b96fb95fec499943f",
+              "IPY_MODEL_639f669792034db79e5eb5126c257f0d",
+              "IPY_MODEL_15d418af01734c32aa72d8ba19c5315a"
+            ],
+            "layout": "IPY_MODEL_ddb23b7bbccd48769d5be43445738d99"
+          }
+        },
+        "98272e5c5fce4f6da269ebf299beefa7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "982c022a0891499da5360693c29dd199": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9868c83e8e3f4b9693d5d88fdf49ba28": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "99e741f5385d461083d0ce7d282619ae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9b5484d50d434f7288840023814990ca": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9b981698f6f345268038c6d56fd78b9d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9c6dd40d86364761bf335d6366e027f5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9fb328767cd54cef9691c45884e81b11": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "a0f5527e64b740e6972c04b639f6b3ae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "a2ed5fc46fd34dee93007f13401de790": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "a4ce58b973b9430aac9e0972fb5f1c20": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_caa9809661104ab498d3c9d338daa109",
+              "IPY_MODEL_1a246e8a8d5c46f5ade25ae187c0f3ad",
+              "IPY_MODEL_5e7965dbe85e422286fb4612f7e3aa0c"
+            ],
+            "layout": "IPY_MODEL_d7acdde3e0634772a1f807895e1de79b"
+          }
+        },
+        "a5e7ebf472c34b5f9e038d07356a9896": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_b960cb7697d643fdb5d4dc5b4ba53eb1",
+            "max": 392,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1097756b1cea43a9bc01a521db92f4d7",
+            "value": 392
+          }
+        },
+        "a762b5137e2641069ee44796203a50d7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_9b5484d50d434f7288840023814990ca",
+            "max": 1049,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e8eec657b7f44453a169cc734cab3e08",
+            "value": 1049
+          }
+        },
+        "a94c444e03ad4a1eac29430160cdc2e8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "a9be8e741ccd49caa683de1c44b3055d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "abcd537eaecb42c9b81614bfc7a77b58": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "ae5c8d15a4d446d5980f754b083b35eb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_60e397c397184af795d156cb9599b3a5",
+              "IPY_MODEL_a5e7ebf472c34b5f9e038d07356a9896",
+              "IPY_MODEL_8299b91fc3c4454cb27477758ac36634"
+            ],
+            "layout": "IPY_MODEL_764a3de7b6b44c1ea840c023b3e5ae8b"
+          }
+        },
+        "ae9af202450d47ac9e722aab455d1052": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_4b1963f1564144b2bb36904814561343",
+            "max": 2,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_bf1cb7e392ef449490fa4d4b4fc2e80a",
+            "value": 2
+          }
+        },
+        "b105faa138944cf98cbe0b4414c6184c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "b21faaaa99884e3f8c9d5b57f4626da1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_4844feb30e6d42edb9da011e42a6e98d",
+            "max": 7030315,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_169774efbf4b4bc897754c50ca47663c",
+            "value": 7030315
+          }
+        },
+        "b2eb6cde58104143b64c2fdb48fce2da": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "b41c7ed7e422432c854b6cbf3cd13655": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_8c719750197c4670baae8f5c5419622d",
+              "IPY_MODEL_0335b59efd4144ba86e836c2234ab83d",
+              "IPY_MODEL_c3c08edb68ba4c1ebae0938cb4b4cbc8"
+            ],
+            "layout": "IPY_MODEL_bf5fbb4b558a41928a8e2002efc489e3"
+          }
+        },
+        "b4d9bb07131f4686bbd61dea74e27570": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "b960cb7697d643fdb5d4dc5b4ba53eb1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b983ea3a8b474a29abf07786014db80d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ba5fb7ba6f314614a2f205ed887a90ad": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "bad20ce48f3d4647890f466d834c1d99": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_51bf5b1ed931461f91756487a31af859",
+              "IPY_MODEL_f324b9bd8cb54273993077430135a70b",
+              "IPY_MODEL_bb36ff78295749f38569a18cb32d7a9c"
+            ],
+            "layout": "IPY_MODEL_f682e4ef377b4a93b417e8af7e23e21f"
+          }
+        },
+        "bb36ff78295749f38569a18cb32d7a9c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_17094c24f5b24e22854528b54af01caf",
+            "placeholder": "​",
+            "style": "IPY_MODEL_bd9aa1e491064b1698eab8932c73e682",
+            "value": " 220/220 [00:00&lt;00:00, 15.1kB/s]"
+          }
+        },
+        "bc4794628435423daf26afbbc1a16181": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_532ffae27f7543158baadebe6b256061",
+            "placeholder": "​",
+            "style": "IPY_MODEL_c48baa9c0f4340bea7949154afa99db6",
+            "value": " 7.03M/7.03M [00:00&lt;00:00, 16.2MB/s]"
+          }
+        },
+        "bd9a348279c44c0ebff8608b4e0a42f3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "bd9aa1e491064b1698eab8932c73e682": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "bf1cb7e392ef449490fa4d4b4fc2e80a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "bf5fbb4b558a41928a8e2002efc489e3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "c111feb6a9d84896b5034abcc577a528": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_ce09862e28214bf9985be35b145ae1d4",
+              "IPY_MODEL_b21faaaa99884e3f8c9d5b57f4626da1",
+              "IPY_MODEL_bc4794628435423daf26afbbc1a16181"
+            ],
+            "layout": "IPY_MODEL_70d5c4c9be79407e818d3ad371058358"
+          }
+        },
+        "c3c08edb68ba4c1ebae0938cb4b4cbc8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_6148e434f012498591c081ea1277fadd",
+            "placeholder": "​",
+            "style": "IPY_MODEL_dc3ca9e7eafa4ef5bc847a9392bfe65b",
+            "value": " 613/613 [00:00&lt;00:00, 48.9kB/s]"
+          }
+        },
+        "c48baa9c0f4340bea7949154afa99db6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "c4e5708d34964965b80f3b14e28d4bfa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "c803efd339d94088a2bf2d81ae2d29e0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "c8996c361697463a9470902444d96489": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "c9c2407179d4416aada53aa02477f733": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "caa9809661104ab498d3c9d338daa109": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_023996231f924ad78fa555d37a2a8809",
+            "placeholder": "​",
+            "style": "IPY_MODEL_8730a6d0e92d466a87ce5f66045a7b2c",
+            "value": "tokenizer_config.json: 100%"
+          }
+        },
+        "cc99435e919a4a45ae8535b661acec01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_113e18919e8042cd8ad580105fc99fd8",
+              "IPY_MODEL_62bb11de59514afabef7a81370df2a6b",
+              "IPY_MODEL_7fb04dad18aa4581816094d15306c095"
+            ],
+            "layout": "IPY_MODEL_0767c90641c24598bb7db4c71482bf15"
+          }
+        },
+        "ce09862e28214bf9985be35b145ae1d4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_9fb328767cd54cef9691c45884e81b11",
+            "placeholder": "​",
+            "style": "IPY_MODEL_9868c83e8e3f4b9693d5d88fdf49ba28",
+            "value": "tokenizer.json: 100%"
+          }
+        },
+        "d177f2460c004ff5a36e2fe1011043e7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "d2401f3f8a5a49ba901c85a4dbe091bb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_4eb7de9649c744f883af5e2a6dd813e4",
+            "placeholder": "​",
+            "style": "IPY_MODEL_861632cba5c546ddbbf575c4d818aeaa",
+            "value": " 568/568 [00:00&lt;00:00, 35.5kB/s]"
+          }
+        },
+        "d54b9916789949a4accdd865d4419e94": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "d67015a870db4fc1b005fe738f8aa0e5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_02890b91b49947a587f3a774a89d295c",
+              "IPY_MODEL_a762b5137e2641069ee44796203a50d7",
+              "IPY_MODEL_5b9b68ae14384f5a9f7970e8210bec0e"
+            ],
+            "layout": "IPY_MODEL_a0f5527e64b740e6972c04b639f6b3ae"
+          }
+        },
+        "d7acdde3e0634772a1f807895e1de79b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "d7e640c3ef7d4f2da433528e7d09c135": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "d95c0a7ad50f48cbbdab4e2bde2272a9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2aee4bc4a90b4fbfa2c8216b5464676f",
+            "placeholder": "​",
+            "style": "IPY_MODEL_73605cee60f84beeb10b575b2b3622f0",
+            "value": "merges.txt: 100%"
+          }
+        },
+        "db7db7acd26f44518f29e6ba0836f0e4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "dc004bb8e71c440ab81b3c8ad5694012": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "dc3ca9e7eafa4ef5bc847a9392bfe65b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "ddb23b7bbccd48769d5be43445738d99": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "dde15fb26de04596b3674711f410e411": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_07e85463971049d78ea76aca99441422",
+            "placeholder": "​",
+            "style": "IPY_MODEL_5453d32bd6614352b79e1baa238287c5",
+            "value": " 74.0M/74.0M [00:00&lt;00:00, 126MB/s]"
+          }
+        },
+        "e0c912ca78ec458a98d02dca6a7f1d98": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "e1bdc507ca004f809fbeed8de91f9f2f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "e255eeebae5042a9a3f97d8d1dba5c37": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "e37ba457db354399919a1aba01f484c2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_fd934e8f547e42c58e2b85d26be899a5",
+            "placeholder": "​",
+            "style": "IPY_MODEL_68392d6a0dd145c59ede3350df3ab360",
+            "value": "Downloading shards: 100%"
+          }
+        },
+        "e8eec657b7f44453a169cc734cab3e08": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "e9cba18e42fb45398e591b1c909780e6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ea3f8b73c5c84e8d84d33a33e1ced66b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "eb3109d3e2944745b1a85646e29ba074": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_08d9eb8f7c584361ab78ab47162e0d00",
+            "placeholder": "​",
+            "style": "IPY_MODEL_5cfe51bd3b7a4ffc8361bb25cc29a428",
+            "value": "preprocessor_config.json: 100%"
+          }
+        },
+        "ec59f9ba355047cd9f9ec896ec30a761": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "efc8db441f4447d0b8c6ed3cac146a86": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "f324b9bd8cb54273993077430135a70b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_9b981698f6f345268038c6d56fd78b9d",
+            "max": 220,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_c803efd339d94088a2bf2d81ae2d29e0",
+            "value": 220
+          }
+        },
+        "f39511fc089c4306bd2da745fd48ae0e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2de1b464e0ad4d5f833399c722d9d814",
+            "max": 74018232,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3b7578f07a2b47f69c0d63467aacafef",
+            "value": 74018232
+          }
+        },
+        "f682e4ef377b4a93b417e8af7e23e21f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "f73babc4d54a4a1aaa17d8be848d6169": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_3d5ef21c9d0b4468aac41dcd2d7f4d37",
+              "IPY_MODEL_f39511fc089c4306bd2da745fd48ae0e",
+              "IPY_MODEL_dde15fb26de04596b3674711f410e411"
+            ],
+            "layout": "IPY_MODEL_f7f599e0e8cf4168acd6b44517a69eac"
+          }
+        },
+        "f78d462a6fdb428e8a9256d90ac50ffe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_0333d1ca85b04f89a49f8385fe3deed8",
+              "IPY_MODEL_952e447c0a38435380a2f3db0231608d",
+              "IPY_MODEL_3d65c6df9eaa4bea81834d9809da7f50"
+            ],
+            "layout": "IPY_MODEL_a9be8e741ccd49caa683de1c44b3055d"
+          }
+        },
+        "f7f599e0e8cf4168acd6b44517a69eac": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "f812fb414c84404f8b0c849f8b05ee42": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "fbb6524f63404d25abe6465494a06e68": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "fd4c355975fc4f329e9bd7c647cf2e00": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_53074fb2ca874405bfa1e90aecb4afc0",
+            "max": 1165,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_403525053b1a455585aadb8773c20f6b",
+            "value": 1165
+          }
+        },
+        "fd8416b27c3e4d3f9a935d953365faa1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "fd934e8f547e42c58e2b85d26be899a5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "fe121a4f539044bcbbb1a45420c27105": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_3c5e60595b2d42c7a5b289240ad07e50",
+            "max": 728,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ea3f8b73c5c84e8d84d33a33e1ced66b",
+            "value": 728
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/recipes/3p_integrations/togetherai/structured_text_extraction_from_images.ipynb b/recipes/3p_integrations/togetherai/structured_text_extraction_from_images.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..a4e2071e7191eb272d61d192d2c37c47c4c0ca9f
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/structured_text_extraction_from_images.ipynb
@@ -0,0 +1,424 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "# Extracting Structured Data from Images\n",
+        "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/togethercomputer/together-cookbook/blob/main/Structured_Text_Extraction_from_Images.ipynb)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Introduction\n",
+        "\n",
+        "In this notebook we will demonstrate how you can use a language vision model(Llama 3.2 90B Vision) along with an LLM that has JSON mode enabled(Llama 3.1 70B) to extract structured text from images.\n",
+        "\n",
+        "In our case we will extract line items from an invoice in the form of a JSON.\n",
+        "\n",
+        "<img src=\"images\\structured_text_image.png\" width=\"750\">\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Install relevant libraries"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 1,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "BdXwZoEej4cy",
+        "outputId": "83495aba-13dd-4bf9-8e65-54d44137d4ad"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Collecting together\n",
+            "  Downloading together-1.3.3-py3-none-any.whl.metadata (11 kB)\n",
+            "Requirement already satisfied: aiohttp<4.0.0,>=3.9.3 in /usr/local/lib/python3.10/dist-packages (from together) (3.10.10)\n",
+            "Requirement already satisfied: click<9.0.0,>=8.1.7 in /usr/local/lib/python3.10/dist-packages (from together) (8.1.7)\n",
+            "Requirement already satisfied: eval-type-backport<0.3.0,>=0.1.3 in /usr/local/lib/python3.10/dist-packages (from together) (0.2.0)\n",
+            "Requirement already satisfied: filelock<4.0.0,>=3.13.1 in /usr/local/lib/python3.10/dist-packages (from together) (3.16.1)\n",
+            "Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from together) (1.26.4)\n",
+            "Requirement already satisfied: pillow<11.0.0,>=10.3.0 in /usr/local/lib/python3.10/dist-packages (from together) (10.4.0)\n",
+            "Requirement already satisfied: pyarrow>=10.0.1 in /usr/local/lib/python3.10/dist-packages (from together) (16.1.0)\n",
+            "Requirement already satisfied: pydantic<3.0.0,>=2.6.3 in /usr/local/lib/python3.10/dist-packages (from together) (2.9.2)\n",
+            "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from together) (2.32.3)\n",
+            "Requirement already satisfied: rich<14.0.0,>=13.8.1 in /usr/local/lib/python3.10/dist-packages (from together) (13.9.2)\n",
+            "Requirement already satisfied: tabulate<0.10.0,>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from together) (0.9.0)\n",
+            "Requirement already satisfied: tqdm<5.0.0,>=4.66.2 in /usr/local/lib/python3.10/dist-packages (from together) (4.66.5)\n",
+            "Requirement already satisfied: typer<0.13,>=0.9 in /usr/local/lib/python3.10/dist-packages (from together) (0.12.5)\n",
+            "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (2.4.3)\n",
+            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.3.1)\n",
+            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (24.2.0)\n",
+            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.4.1)\n",
+            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (6.1.0)\n",
+            "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.15.2)\n",
+            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (4.0.3)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (2.23.4)\n",
+            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (4.12.2)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2024.8.30)\n",
+            "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (3.0.0)\n",
+            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (2.18.0)\n",
+            "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<0.13,>=0.9->together) (1.5.4)\n",
+            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.8.1->together) (0.1.2)\n",
+            "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp<4.0.0,>=3.9.3->together) (0.2.0)\n",
+            "Downloading together-1.3.3-py3-none-any.whl (68 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m68.1/68.1 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hInstalling collected packages: together\n",
+            "Successfully installed together-1.3.3\n"
+          ]
+        }
+      ],
+      "source": [
+        "!pip install together"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 4,
+      "metadata": {
+        "id": "HVTULp3InIOW"
+      },
+      "outputs": [],
+      "source": [
+        "import together, os\n",
+        "\n",
+        "# Paste in your Together AI API Key or load it\n",
+        "TOGETHER_API_KEY = os.environ.get(\"TOGETHER_API_KEY\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Create Invoice Structure using Pydantic\n",
+        "\n",
+        "We need a way of telling the LLM what structure to organize information into - including what information to expect in the receipt. We will do this using `pydantic` models.\n",
+        "\n",
+        "Below we define the required classes.\n",
+        "\n",
+        "- Each line item on the receipt will have a `name`, `price` and `quantity`. The `Item` class specifies this.\n",
+        "- Each receipt/invoice is a combination of multiple line `Item` elements along with a `total` price. The `Receipt` class specifies this."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 12,
+      "metadata": {
+        "id": "iY7Xe0Bjk_Zc"
+      },
+      "outputs": [],
+      "source": [
+        "import json\n",
+        "from pydantic import BaseModel, Field\n",
+        "\n",
+        "class Item(BaseModel):\n",
+        "    name: str\n",
+        "    price: float\n",
+        "    quantity: int = Field(default=1)\n",
+        "\n",
+        "class Receipt(BaseModel):\n",
+        "    items: list[Item]\n",
+        "    total: float"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "8aPkxE7MnbkX"
+      },
+      "source": [
+        "## Lets bring in the reciept that we want to extract information from\n",
+        "\n",
+        "Notice that this is a real receipt with multiple portions that are not relevant to the line item extraction structure we've outlined above.\n",
+        "\n",
+        "<img src=\"https://ocr.space/Content/Images/receipt-ocr-original.webp\" height=\"500\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## 1. Extract Information Receipt\n",
+        "\n",
+        "We will use the Llama 3.2 90B Vision model to extract out information in normal text format."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 16,
+      "metadata": {
+        "id": "Z8MegIo-lG5s"
+      },
+      "outputs": [],
+      "source": [
+        "from together import Together\n",
+        "\n",
+        "getDescriptionPrompt = \"Extract out the details from each line item on the receipt image. Identify the name, price and quantity of each item. Also specify the total.\"\n",
+        "\n",
+        "imageUrl = \"https://ocr.space/Content/Images/receipt-ocr-original.webp\"\n",
+        "\n",
+        "client = Together(api_key=TOGETHER_API_KEY)\n",
+        "\n",
+        "response = client.chat.completions.create(\n",
+        "    model=\"meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo\",\n",
+        "    messages=[\n",
+        "        {\n",
+        "            \"role\": \"user\",\n",
+        "            \"content\": [\n",
+        "                {\"type\": \"text\", \"text\": getDescriptionPrompt},\n",
+        "                {\n",
+        "                    \"type\": \"image_url\",\n",
+        "                    \"image_url\": {\n",
+        "                        \"url\": imageUrl,\n",
+        "                    },\n",
+        "                },\n",
+        "            ],\n",
+        "        }\n",
+        "    ],\n",
+        ")\n",
+        "\n",
+        "info = response.choices[0].message.content"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 17,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "mcpfNLWaoGWX",
+        "outputId": "f07bcaa0-5521-43e9-d614-4d3405c6e20e"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "The receipt shows a total of 17 line items. The details for each item are as follows:\n",
+            "\n",
+            "1. Pet Toy: $1.97, quantity - 1\n",
+            "2. Floppy Puppy: $1.97, quantity - 1\n",
+            "3. Sssupreme S: $4.97, quantity - 1\n",
+            "4. 2.5 Squeak: $5.92, quantity - 1\n",
+            "5. Munchy Dmbel: $3.77, quantity - 1\n",
+            "6. Dog Treat: $2.92, quantity - 1\n",
+            "7. Ped Pch 1: $0.50, quantity - 1 (x2)\n",
+            "8. Coupon: $1.00, quantity - 1\n",
+            "9. Hnymd Smores: $3.98, quantity - 1\n",
+            "10. French Drsng: $1.98, quantity - 1\n",
+            "11. 3 Oranges: $5.47, quantity - 1\n",
+            "12. Baby Carrots: $1.48, quantity - 1\n",
+            "13. Collards: $1.24, quantity - 1\n",
+            "14. Calzone: $2.50, quantity - 1\n",
+            "15. Mm Rvw Mnt: $19.77, quantity - 1\n",
+            "16. Stkobrlplabl: $1.97, quantity - 1 (x6)\n",
+            "17. Dry Dog: $12.44, quantity - 1\n",
+            "\n",
+            "The total is $98.21.\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(info)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "Notice that the model is not perfect and wasn't able to extract out some line items. It's hard for most models to perform this zero-shot extraction of data from images. A way to improve this is to finetune the model using [Visual Intruction Tuning](https://arxiv.org/abs/2304.08485)."
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## 2. Organize Information as JSON\n",
+        "\n",
+        "We will use Llama 3.1 70B with structured generation in JSON mode to organize the information extracted by the vision model into an acceptable JSON format that can be parsed.\n",
+        "\n",
+        "`Meta-Llama-3.1-70B-Instruct-Turbo` will strcitly respect the JSON schema passed to it."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 18,
+      "metadata": {
+        "id": "kdGlyO8hnD7v"
+      },
+      "outputs": [],
+      "source": [
+        "extract = client.chat.completions.create(\n",
+        "        messages=[\n",
+        "            {\n",
+        "                \"role\": \"system\",\n",
+        "                \"content\": \"The following is a detailed description of all the items, prices and quantities on a receipt. Extract out information. Only answer in JSON.\",\n",
+        "            },\n",
+        "            {\n",
+        "                \"role\": \"user\",\n",
+        "                \"content\": info,\n",
+        "            },\n",
+        "        ],\n",
+        "        model=\"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo\",\n",
+        "        response_format={\n",
+        "            \"type\": \"json_object\",\n",
+        "            \"schema\": Receipt.model_json_schema(),\n",
+        "        },\n",
+        "    )"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 19,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "037sAvDRoaB4",
+        "outputId": "fb058f0f-5a6a-4dd0-a332-7441b98e862f"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "{\n",
+            "  \"items\": [\n",
+            "    {\n",
+            "      \"name\": \"Pet Toy\",\n",
+            "      \"price\": 1.97,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Floppy Puppy\",\n",
+            "      \"price\": 1.97,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Sssupreme S\",\n",
+            "      \"price\": 4.97,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"2.5 Squeak\",\n",
+            "      \"price\": 5.92,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Munchy Dmbel\",\n",
+            "      \"price\": 3.77,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Dog Treat\",\n",
+            "      \"price\": 2.92,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Ped Pch 1\",\n",
+            "      \"price\": 0.5,\n",
+            "      \"quantity\": 2\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Coupon\",\n",
+            "      \"price\": -1.0,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Hnymd Smores\",\n",
+            "      \"price\": 3.98,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"French Drsng\",\n",
+            "      \"price\": 1.98,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"3 Oranges\",\n",
+            "      \"price\": 5.47,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Baby Carrots\",\n",
+            "      \"price\": 1.48,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Collards\",\n",
+            "      \"price\": 1.24,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Calzone\",\n",
+            "      \"price\": 2.5,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Mm Rvw Mnt\",\n",
+            "      \"price\": 19.77,\n",
+            "      \"quantity\": 1\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Stkobrlplabl\",\n",
+            "      \"price\": 1.97,\n",
+            "      \"quantity\": 6\n",
+            "    },\n",
+            "    {\n",
+            "      \"name\": \"Dry Dog\",\n",
+            "      \"price\": 12.44,\n",
+            "      \"quantity\": 1\n",
+            "    }\n",
+            "  ],\n",
+            "  \"total\": 98.21\n",
+            "}\n"
+          ]
+        }
+      ],
+      "source": [
+        "output = json.loads(extract.choices[0].message.content)\n",
+        "print(json.dumps(output, indent=2))"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "Althought with some missed line items we were able to extract out structured JSON from an image in a zero shot manner! To improve the results for your pipeline and make them production ready I recommend you [finetune](https://docs.together.ai/docs/fine-tuning-overview) the vision model on your own dataset!\n",
+        "\n",
+        "Learn more about how to use JSON mode in the [docs](https://docs.together.ai/docs/json-mode) here!"
+      ]
+    }
+  ],
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/recipes/3p_integrations/togetherai/text_RAG_using_llama_on_together.ipynb b/recipes/3p_integrations/togetherai/text_RAG_using_llama_on_together.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..35767434b49288a8c5a3ae948b2380325e81ced4
--- /dev/null
+++ b/recipes/3p_integrations/togetherai/text_RAG_using_llama_on_together.ipynb
@@ -0,0 +1,558 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "# Retrieval-Augmented Generation (RAG) with Llama3 8B\n",
+        "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/togethercomputer/together-cookbook/blob/main/Text_RAG.ipynb)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Introduction\n",
+        "\n",
+        "For AI models to be effective in specialized tasks, they often require domain-specific knowledge. For instance, a financial advisory chatbot needs to understand market trends and products offered by a specific bank, while an AI legal assistant must be equipped with knowledge of statutes, regulations, and past case law.\n",
+        "\n",
+        "A common solution is Retrieval-Augmented Generation (RAG), which retrieves relevant data from a knowledge base and combines it with the user’s prompt, thereby improving and customizing the model's output to the provided data.\n",
+        "\n",
+        "<img src=\"images/simple_RAG.png\" width=\"500\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## RAG Explanation\n",
+        "\n",
+        "RAG operates by preprocessing a large knowledge base and dynamically retrieving relevant information at runtime.\n",
+        "\n",
+        "Here's a breakdown of the process:\n",
+        "\n",
+        "1. Indexing the Knowledge Base:\n",
+        "The corpus (collection of documents) is divided into smaller, manageable chunks of text. Each chunk is converted into a vector embedding using an embedding model. These embeddings are stored in a vector database optimized for similarity searches.\n",
+        "\n",
+        "2. Query Processing and Retrieval:\n",
+        "When a user submits a prompt that would initially go directly to a LLM we process that and extract a query, the system searches the vector database for chunks semantically similar to the query. The most relevant chunks are retrieved and injected into the prompt sent to the generative AI model.\n",
+        "\n",
+        "3. Response Generation:\n",
+        "The AI model then uses the retrieved information along with its pre-trained knowledge to generate a response. Not only does this reduce the likelihood of hallucination since relevant context is provided directly in the prompt but it also allows us to cite to source material as well.\n",
+        "\n",
+        "<img src=\"images/text_RAG.png\" width=\"750\">"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Install libraries"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 1,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "ubSQgZNalImb",
+        "outputId": "536b046c-306e-490c-97d8-40a7dfdaba24"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Collecting together\n",
+            "  Downloading together-1.3.3-py3-none-any.whl.metadata (11 kB)\n",
+            "Requirement already satisfied: aiohttp<4.0.0,>=3.9.3 in /usr/local/lib/python3.10/dist-packages (from together) (3.10.10)\n",
+            "Requirement already satisfied: click<9.0.0,>=8.1.7 in /usr/local/lib/python3.10/dist-packages (from together) (8.1.7)\n",
+            "Requirement already satisfied: eval-type-backport<0.3.0,>=0.1.3 in /usr/local/lib/python3.10/dist-packages (from together) (0.2.0)\n",
+            "Requirement already satisfied: filelock<4.0.0,>=3.13.1 in /usr/local/lib/python3.10/dist-packages (from together) (3.16.1)\n",
+            "Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from together) (1.26.4)\n",
+            "Requirement already satisfied: pillow<11.0.0,>=10.3.0 in /usr/local/lib/python3.10/dist-packages (from together) (10.4.0)\n",
+            "Requirement already satisfied: pyarrow>=10.0.1 in /usr/local/lib/python3.10/dist-packages (from together) (16.1.0)\n",
+            "Requirement already satisfied: pydantic<3.0.0,>=2.6.3 in /usr/local/lib/python3.10/dist-packages (from together) (2.9.2)\n",
+            "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from together) (2.32.3)\n",
+            "Requirement already satisfied: rich<14.0.0,>=13.8.1 in /usr/local/lib/python3.10/dist-packages (from together) (13.9.2)\n",
+            "Requirement already satisfied: tabulate<0.10.0,>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from together) (0.9.0)\n",
+            "Requirement already satisfied: tqdm<5.0.0,>=4.66.2 in /usr/local/lib/python3.10/dist-packages (from together) (4.66.5)\n",
+            "Requirement already satisfied: typer<0.13,>=0.9 in /usr/local/lib/python3.10/dist-packages (from together) (0.12.5)\n",
+            "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (2.4.3)\n",
+            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.3.1)\n",
+            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (24.2.0)\n",
+            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.4.1)\n",
+            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (6.1.0)\n",
+            "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (1.15.2)\n",
+            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.3->together) (4.0.3)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (2.23.4)\n",
+            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.6.3->together) (4.12.2)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.31.0->together) (2024.8.30)\n",
+            "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (3.0.0)\n",
+            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.8.1->together) (2.18.0)\n",
+            "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<0.13,>=0.9->together) (1.5.4)\n",
+            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.8.1->together) (0.1.2)\n",
+            "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp<4.0.0,>=3.9.3->together) (0.2.0)\n",
+            "Downloading together-1.3.3-py3-none-any.whl (68 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m68.1/68.1 kB\u001b[0m \u001b[31m2.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hInstalling collected packages: together\n",
+            "Successfully installed together-1.3.3\n"
+          ]
+        }
+      ],
+      "source": [
+        "!pip install together"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 2,
+      "metadata": {
+        "id": "YO3t0PAHlpaE"
+      },
+      "outputs": [],
+      "source": [
+        "import together, os\n",
+        "from together import Together\n",
+        "\n",
+        "# Paste in your Together AI API Key or load it\n",
+        "TOGETHER_API_KEY = os.environ.get(\"TOGETHER_API_KEY\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Download and View the Dataset"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "# Let's get the movies dataset\n",
+        "!wget https://raw.githubusercontent.com/togethercomputer/together-cookbook/refs/heads/main/datasets/movies.json\n",
+        "!mkdir datasets\n",
+        "!mv movies.json datasets/movies.json"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 5,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "2croRfETmD0s",
+        "outputId": "a6e88271-b4e0-4ead-ced7-4905ae4ea442"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "[{'title': 'Minions',\n",
+              "  'overview': 'Minions Stuart, Kevin and Bob are recruited by Scarlet Overkill, a super-villain who, alongside her inventor husband Herb, hatches a plot to take over the world.',\n",
+              "  'director': 'Kyle Balda',\n",
+              "  'genres': 'Family Animation Adventure Comedy',\n",
+              "  'tagline': 'Before Gru, they had a history of bad bosses'},\n",
+              " {'title': 'Interstellar',\n",
+              "  'overview': 'Interstellar chronicles the adventures of a group of explorers who make use of a newly discovered wormhole to surpass the limitations on human space travel and conquer the vast distances involved in an interstellar voyage.',\n",
+              "  'director': 'Christopher Nolan',\n",
+              "  'genres': 'Adventure Drama Science Fiction',\n",
+              "  'tagline': 'Mankind was born on Earth. It was never meant to die here.'},\n",
+              " {'title': 'Deadpool',\n",
+              "  'overview': 'Deadpool tells the origin story of former Special Forces operative turned mercenary Wade Wilson, who after being subjected to a rogue experiment that leaves him with accelerated healing powers, adopts the alter ego Deadpool. Armed with his new abilities and a dark, twisted sense of humor, Deadpool hunts down the man who nearly destroyed his life.',\n",
+              "  'director': 'Tim Miller',\n",
+              "  'genres': 'Action Adventure Comedy',\n",
+              "  'tagline': 'Witness the beginning of a happy ending'}]"
+            ]
+          },
+          "execution_count": 5,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "import json\n",
+        "\n",
+        "with open('./datasets/movies.json', 'r') as file:\n",
+        "    movies_data = json.load(file)\n",
+        "\n",
+        "movies_data[:3]"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Implement Retreival Pipeline - \"R\" part of RAG\n",
+        "\n",
+        "Below we implement a simple retreival pipeline:\n",
+        "1. Embed movie documents + query\n",
+        "2. Obtain top k movies ranked based on cosine similarities between the query and movie vectors."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 8,
+      "metadata": {
+        "id": "I0o-ZpaDlsgZ"
+      },
+      "outputs": [],
+      "source": [
+        "# This function will be used to access the Together API to generate embeddings for the movie plots\n",
+        "\n",
+        "from typing import List\n",
+        "import numpy as np\n",
+        "\n",
+        "def generate_embeddings(input_texts: List[str], model_api_string: str) -> List[List[float]]:\n",
+        "    \"\"\"Generate embeddings from Together python library.\n",
+        "\n",
+        "    Args:\n",
+        "        input_texts: a list of string input texts.\n",
+        "        model_api_string: str. An API string for a specific embedding model of your choice.\n",
+        "\n",
+        "    Returns:\n",
+        "        embeddings_list: a list of embeddings. Each element corresponds to the each input text.\n",
+        "    \"\"\"\n",
+        "    together_client = together.Together(api_key = TOGETHER_API_KEY)\n",
+        "    outputs = together_client.embeddings.create(\n",
+        "        input=input_texts,\n",
+        "        model=model_api_string,\n",
+        "    )\n",
+        "    return np.array([x.embedding for x in outputs.data])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 6,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "uwk2bwNGl84p",
+        "outputId": "46797774-5d73-412a-db76-ee5e0d94ac85"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "['Minions Minions Stuart, Kevin and Bob are recruited by Scarlet Overkill, a super-villain who, alongside her inventor husband Herb, hatches a plot to take over the world. Before Gru, they had a history of bad bosses',\n",
+              " 'Interstellar Interstellar chronicles the adventures of a group of explorers who make use of a newly discovered wormhole to surpass the limitations on human space travel and conquer the vast distances involved in an interstellar voyage. Mankind was born on Earth. It was never meant to die here.',\n",
+              " 'Deadpool Deadpool tells the origin story of former Special Forces operative turned mercenary Wade Wilson, who after being subjected to a rogue experiment that leaves him with accelerated healing powers, adopts the alter ego Deadpool. Armed with his new abilities and a dark, twisted sense of humor, Deadpool hunts down the man who nearly destroyed his life. Witness the beginning of a happy ending',\n",
+              " 'Guardians of the Galaxy Light years from Earth, 26 years after being abducted, Peter Quill finds himself the prime target of a manhunt after discovering an orb wanted by Ronan the Accuser. All heroes start somewhere.',\n",
+              " \"Mad Max: Fury Road An apocalyptic story set in the furthest reaches of our planet, in a stark desert landscape where humanity is broken, and most everyone is crazed fighting for the necessities of life. Within this world exist two rebels on the run who just might be able to restore order. There's Max, a man of action and a man of few words, who seeks peace of mind following the loss of his wife and child in the aftermath of the chaos. And Furiosa, a woman of action and a woman who believes her path to survival may be achieved if she can make it across the desert back to her childhood homeland. What a Lovely Day.\",\n",
+              " 'Jurassic World Twenty-two years after the events of Jurassic Park, Isla Nublar now features a fully functioning dinosaur theme park, Jurassic World, as originally envisioned by John Hammond. The park is open.',\n",
+              " \"Pirates of the Caribbean: The Curse of the Black Pearl Jack Sparrow, a freewheeling 17th-century pirate who roams the Caribbean Sea, butts heads with a rival pirate bent on pillaging the village of Port Royal. When the governor's daughter is kidnapped, Sparrow decides to help the girl's love save her. But their seafaring mission is hardly simple. Prepare to be blown out of the water.\",\n",
+              " 'Dawn of the Planet of the Apes A group of scientists in San Francisco struggle to stay alive in the aftermath of a plague that is wiping out humanity, while Caesar tries to maintain dominance over his community of intelligent apes. One last chance for peace.',\n",
+              " 'The Hunger Games: Mockingjay - Part 1 Katniss Everdeen reluctantly becomes the symbol of a mass rebellion against the autocratic Capitol. Fire burns brighter in the darkness',\n",
+              " 'Big Hero 6 The special bond that develops between plus-sized inflatable robot Baymax, and prodigy Hiro Hamada, who team up with a group of friends to form a band of high-tech heroes. From the creators of Wreck-it Ralph and Frozen']"
+            ]
+          },
+          "execution_count": 6,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# Concatenate the title, overview, and tagline of each movie\n",
+        "# this makes the text that will be embedded for each movie more informative\n",
+        "# as a result the embeddings will be richer and capture this information.\n",
+        "\n",
+        "to_embed = []\n",
+        "for movie in movies_data[:1000]:\n",
+        "    text = ''\n",
+        "    for field in ['title', 'overview', 'tagline']:\n",
+        "        value = movie.get(field, '')\n",
+        "        text += str(value) + ' '\n",
+        "    to_embed.append(text.strip())\n",
+        "\n",
+        "to_embed[:10]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 9,
+      "metadata": {
+        "id": "QMqmezr8mCUG"
+      },
+      "outputs": [],
+      "source": [
+        "# Use bge-base-en-v1.5 model to generate embeddings\n",
+        "embeddings = generate_embeddings(to_embed, 'BAAI/bge-base-en-v1.5')"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 10,
+      "metadata": {
+        "id": "g1HTX3bGmYCk"
+      },
+      "outputs": [],
+      "source": [
+        "# Generate the vector embeddings for the query\n",
+        "query = \"super hero action movie with a timeline twist\"\n",
+        "\n",
+        "query_embedding = generate_embeddings([query], 'BAAI/bge-base-en-v1.5')[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 11,
+      "metadata": {
+        "id": "eqQe4VsBmp7w"
+      },
+      "outputs": [],
+      "source": [
+        "from sklearn.metrics.pairwise import cosine_similarity\n",
+        "\n",
+        "# Calculate cosine similarity between the query embedding and each movie embedding\n",
+        "similarity_scores = cosine_similarity([query_embedding], embeddings)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 12,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "coKcFNlzmsrh",
+        "outputId": "2ee108a4-e98d-4c6f-b09e-4eb009ed6e2f"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "(1, 1000)"
+            ]
+          },
+          "execution_count": 12,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# We get a similarity score for each of our 1000 movies - the higher the score, the more similar the movie is to the query\n",
+        "similarity_scores.shape"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 14,
+      "metadata": {
+        "id": "0rvxmdvKmuhY"
+      },
+      "outputs": [],
+      "source": [
+        "# Get the indices of the highest to lowest values\n",
+        "indices = np.argsort(-similarity_scores)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 15,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "3m0zGxlLm1Zp",
+        "outputId": "0c2c5d55-ed80-4b8e-ce56-f2750d308dea"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "['The Incredibles',\n",
+              " 'Watchmen',\n",
+              " 'Mr. Peabody & Sherman',\n",
+              " 'Due Date',\n",
+              " 'The Next Three Days',\n",
+              " 'Super 8',\n",
+              " 'Iron Man',\n",
+              " 'After Earth',\n",
+              " 'Men in Black 3',\n",
+              " 'Despicable Me 2']"
+            ]
+          },
+          "execution_count": 15,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "top_10_sorted_titles = [movies_data[index]['title'] for index in indices[0]][:10]\n",
+        "\n",
+        "top_10_sorted_titles"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Retreiver Function\n",
+        "\n",
+        "Once we understand the steps in the retriever pipeline above we can simplify it into the function below."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 19,
+      "metadata": {
+        "id": "R6GLqD9_m2WN"
+      },
+      "outputs": [],
+      "source": [
+        "def retreive(query: str, top_k: int = 5, index: np.ndarray = None) -> List[int]:\n",
+        "    \"\"\"\n",
+        "    Retrieve the top-k most similar items from an index based on a query.\n",
+        "    Args:\n",
+        "        query (str): The query string to search for.\n",
+        "        top_k (int, optional): The number of top similar items to retrieve. Defaults to 5.\n",
+        "        index (np.ndarray, optional): The index array containing embeddings to search against. Defaults to None.\n",
+        "    Returns:\n",
+        "        List[int]: A list of indices corresponding to the top-k most similar items in the index.\n",
+        "    \"\"\"\n",
+        "    \n",
+        "    query_embedding = generate_embeddings([query], 'BAAI/bge-base-en-v1.5')[0]\n",
+        "    similarity_scores = cosine_similarity([query_embedding], index)\n",
+        "\n",
+        "    return np.argsort(-similarity_scores)[0][:top_k]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 20,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "gJ989oVqnrW-",
+        "outputId": "9b63fd61-fd3a-4c97-b1c7-faddc54b7d47"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "array([172, 265, 768, 621, 929])"
+            ]
+          },
+          "execution_count": 20,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "retreive(\"super hero action movie with a timeline twist\", top_k=5, index = embeddings)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "## Generation Step - \"G\" part of RAG\n",
+        "\n",
+        "Below we will inject/augment the information the retreival pipeline extracts into the prompt to the Llama3 8b Model. \n",
+        "\n",
+        "This will help guide the generation by grounding it from facts in our knowledge base!"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 22,
+      "metadata": {
+        "id": "YLoZYcx9nvAZ"
+      },
+      "outputs": [],
+      "source": [
+        "# Extract out the titles and overviews of the top 10 most similar movies\n",
+        "titles = [movies_data[index]['title'] for index in indices[0]][:10]\n",
+        "overviews = [movies_data[index]['overview'] for index in indices[0]][:10]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 24,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "gTuUW3HOn_AA",
+        "outputId": "65909533-a0f4-45f2-bfe2-021c94d75aac"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "What a delightful mix of plots! Here's a story that weaves them together:\n",
+            "\n",
+            "In a world where superheroes are a thing of the past, Bob Parr, aka Mr. Incredible, has given up his life of saving the world to become an insurance adjuster in the suburbs. His wife, Helen, aka Elastigirl, has also hung up her superhero suit to raise their three children. However, when Bob receives a mysterious assignment from a secret organization, he's forced to don his old costume once again.\n",
+            "\n",
+            "As Bob delves deeper into the assignment, he discovers that it's connected to a sinister plot to destroy the world. The plot is masterminded by a group of rogue superheroes, who were once part of the Watchmen, a group of vigilantes that were disbanded by the government in the 1980s.\n",
+            "\n",
+            "The Watchmen, led by the enigmatic Rorschach, have been secretly rebuilding their team and are now determined to take revenge on the world that wronged them. Bob must team up with his old friends, including the brilliant scientist, Dr. Manhattan, to stop the Watchmen and prevent their destruction.\n",
+            "\n",
+            "Meanwhile, in a different part of the world, a young boy named Sherman, who has a genius-level IQ, has built a time-travel machine with his dog, Penny. When the machine is stolen, Sherman and Penny must travel through time to prevent a series of catastrophic events from occurring.\n",
+            "\n",
+            "As they travel through time, they encounter a group of friends who are making a zombie movie with a Super-8 camera. The friends, including a young boy named Charles, witness a train derailment and soon discover that it was no accident. They team up with Sherman and Penny to uncover the truth behind the crash and prevent a series of unexplained events and disappearances.\n",
+            "\n",
+            "As the story unfolds, Bob and his friends must navigate a complex web of time travel and alternate realities to stop the Watchmen and prevent the destruction of the world. Along the way, they encounter a group of agents from the Men in Black, who are trying to prevent a catastrophic event from occurring.\n",
+            "\n",
+            "The agents, led by Agents J and K, are on a mission to stop a powerful new super criminal, who is threatening to destroy the world. They team up with Bob and his friends to prevent the destruction and save the world.\n",
+            "\n",
+            "In the end, Bob and his friends succeed in stopping the Watchmen and preventing the destruction of the world. However, the journey is not without its challenges, and Bob must confront his own demons and learn to balance his life as a superhero with his life as a husband and father.\n",
+            "\n",
+            "The story concludes with Bob and his family returning to their normal lives, but with a newfound appreciation for the importance of family and the power of teamwork. The movie ends with a shot of the Parr family, including their three children, who are all wearing superhero costumes, ready to take on the next adventure that comes their way.\n"
+          ]
+        }
+      ],
+      "source": [
+        "client = Together(api_key = TOGETHER_API_KEY)\n",
+        "\n",
+        "# Generate a story based on the top 10 most similar movies\n",
+        "\n",
+        "response = client.chat.completions.create(\n",
+        "    model=\"meta-llama/Llama-3-8b-chat-hf\",\n",
+        "    messages=[\n",
+        "      {\"role\": \"system\", \"content\": \"You are a pulitzer award winning craftful story teller. Given only the overview of different plots you can weave together an interesting storyline.\"},\n",
+        "      {\"role\": \"user\", \"content\": f\"Tell me a story about {titles}. Here is some information about them {overviews}\"},\n",
+        "    ],\n",
+        ")\n",
+        "\n",
+        "print(response.choices[0].message.content)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "Here we can see a simple RAG pipeline where we use semantic search to perform retreival and pass relevant information into the prompt of a LLM to condition its generation.\n",
+        "\n",
+        "To learn more about the Together AI API please refer to the [docs here](https://docs.together.ai/docs/introduction)!"
+      ]
+    }
+  ],
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}