# -*- Mode: Python -*-

import sys
import hashlib
import struct

PASSPHRASE = "put your own passphrase here, and make it nice and long"
# for sha256, must be 4 or less
NWORDS = 3

dict = [
    'AIDS', 'African', 'African-American', 'American',
    'American', 'Arab', 'Arab', 'Asian', 'Bible', 'British', 'Canadian',
    'Catholic', 'Catholic', 'Chinese', 'Christian', 'Christian',
    'Christianity', 'Christmas', 'Congress', 'Cuban', 'Democrat', 'Dutch',
    'English', 'English', 'European', 'European', 'French', 'French',
    'German', 'German', 'Greek', 'Hispanic', 'Indian', 'Indian',
    'Internet', 'Iraqi', 'Irish', 'Islam', 'Islamic', 'Israeli',
    'Israeli', 'Italian', 'Japanese', 'Japanese', 'Jewish', 'Korean',
    'Latin', 'Mexican', 'Muslim', 'Muslim', 'Olympic', 'Olympics',
    'Palestinian', 'Palestinian', 'Persian', 'Republican', 'Roman',
    'Russian', 'Russian', 'Senate', 'Soviet', 'Spanish', 'Supreme',
    'T-shirt', 'Thanksgiving', 'United', 'abandon', 'ability', 'able',
    'abortion', 'about', 'about', 'above', 'above', 'abroad', 'absence',
    'absolute', 'absolutely', 'absorb', 'abstract', 'abuse', 'abuse',
    'academic', 'accelerate', 'accent', 'accept', 'acceptable',
    'acceptance', 'access', 'access', 'accessible', 'accident',
    'accommodate', 'accompany', 'accomplish', 'accomplishment',
    'according', 'account', 'account', 'accountability', 'accounting',
    'accuracy', 'accurate', 'accurately', 'accusation', 'accuse',
    'achieve', 'achievement', 'acid', 'acknowledge', 'acquire',
    'acquisition', 'across', 'across', 'action', 'active', 'actively',
    'activist', 'activity', 'actor', 'actress', 'actual', 'actually',
    'adapt', 'added', 'addition', 'addition', 'additional', 'address',
    'address', 'adequate', 'adjust', 'adjustment', 'administer',
    'administration', 'administrative', 'administrator', 'admire',
    'admission', 'admit', 'adolescent', 'adopt', 'adoption', 'adult',
    'advance', 'advance', 'advanced', 'advantage', 'adventure',
    'advertising', 'advice', 'advise', 'adviser', 'advocate', 'advocate',
    'aesthetic', 'affair', 'affect', 'afford', 'afraid', 'after', 'after',
    'afternoon', 'afterward', 'again', 'against', 'agency', 'agenda',
    'agent', 'aggression', 'aggressive', 'agree', 'agreement',
    'agricultural', 'agriculture', 'ahead', 'ahead', 'aide', 'aircraft',
    'airline', 'airplane', 'airport', 'aisle', 'alarm', 'album',
    'alcohol', 'alien', 'alike', 'alive', 'allegation', 'alleged',
    'allegedly', 'alley', 'alliance', 'allow', 'ally', 'almost', 'alone',
    'alone', 'along', 'along', 'alongside', 'already', 'also', 'alter',
    'alternative', 'alternative', 'although', 'altogether', 'aluminum',
    'always', 'amazing', 'ambassador', 'ambition', 'ambitious',
    'amendment', 'amid', 'among', 'amount', 'analysis', 'analyst',
    'analyze', 'ancestor', 'ancient', 'and/or', 'angel', 'anger', 'angle',
    'angry', 'animal', 'ankle', 'anniversary', 'announce', 'announcement',
    'annual', 'annually', 'anonymous', 'another', 'another', 'answer',
    'answer', 'anticipate', 'anxiety', 'anxious', 'anybody', 'anymore',
    'anyone', 'anything', 'anyway', 'anywhere', 'apart', 'apart',
    'apartment', 'apologize', 'apology', 'apparent', 'apparently',
    'appeal', 'appeal', 'appear', 'appearance', 'apple', 'application',
    'apply', 'appoint', 'appointment', 'appreciate', 'appreciation',
    'approach', 'approach', 'appropriate', 'approval', 'approve',
    'approximately', 'architect', 'architecture', 'area', 'arena',
    'argue', 'argument', 'arise', 'armed', 'army', 'around', 'around',
    'arrange', 'arrangement', 'array', 'arrest', 'arrest', 'arrival',
    'arrive', 'arrow', 'article', 'articulate', 'artifact', 'artificial',
    'artist', 'artistic', 'aside', 'asleep', 'aspect', 'assault',
    'assemble', 'assembly', 'assert', 'assess', 'assessment', 'asset',
    'assign', 'assignment', 'assist', 'assistance', 'assistant',
    'assistant', 'associate', 'associate', 'associate', 'associated',
    'association', 'assume', 'assumption', 'assure', 'astronomer',
    'athlete', 'athletic', 'atmosphere', 'atop', 'attach', 'attack',
    'attack', 'attempt', 'attempt', 'attend', 'attendance', 'attention',
    'attitude', 'attorney', 'attract', 'attraction', 'attractive',
    'attribute', 'auction', 'audience', 'aunt', 'author', 'authority',
    'authorize', 'auto', 'automatic', 'automatically', 'automobile',
    'autonomy', 'availability', 'available', 'average', 'average',
    'average', 'avoid', 'await', 'awake', 'award', 'award', 'aware',
    'awareness', 'away', 'away', 'awful', 'baby', 'back', 'back', 'back',
    'background', 'backyard', 'bacteria', 'badly', 'bake', 'balance',
    'balance', 'balanced', 'ball', 'balloon', 'ballot', 'banana', 'band',
    'bank', 'banker', 'banking', 'bare', 'barely', 'barn', 'barrel',
    'barrier', 'base', 'base', 'baseball', 'basement', 'basic',
    'basically', 'basis', 'basket', 'basketball', 'bath', 'bathroom',
    'battery', 'battle', 'battle', 'beach', 'beam', 'bean', 'bear',
    'bear', 'beard', 'beast', 'beat', 'beat', 'beautiful', 'beauty',
    'because', 'because', 'become', 'bedroom', 'beef', 'beer', 'before',
    'before', 'before', 'begin', 'beginning', 'behalf', 'behave',
    'behavior', 'behavioral', 'behind', 'behind', 'being', 'belief',
    'believe', 'bell', 'belly', 'belong', 'below', 'below', 'belt',
    'bench', 'bend', 'beneath', 'benefit', 'benefit', 'beside', 'besides',
    'besides', 'best', 'best', 'better', 'better', 'between', 'beyond',
    'beyond', 'bias', 'bicycle', 'bike', 'bill', 'billion', 'bind',
    'biography', 'biological', 'biology', 'bird', 'birth', 'birthday',
    'bishop', 'bite', 'bite', 'bitter', 'black', 'black', 'blade',
    'blame', 'blank', 'blanket', 'blast', 'blend', 'bless', 'blessing',
    'blind', 'blink', 'block', 'block', 'blond', 'blood', 'bloody',
    'blow', 'blow', 'blue', 'blue', 'board', 'boast', 'boat', 'body',
    'boil', 'bold', 'bolt', 'bomb', 'bomb', 'bombing', 'bond', 'bone',
    'bonus', 'book', 'boom', 'boost', 'boot', 'booth', 'border', 'boring',
    'born', 'borrow', 'boss', 'both', 'both', 'bother', 'bottle',
    'bottom', 'bottom', 'bounce', 'boundary', 'bowl', 'boyfriend',
    'brain', 'brake', 'branch', 'brand', 'brave', 'bread', 'break',
    'break', 'breakfast', 'breast', 'breath', 'breathe', 'breathing',
    'breeze', 'brick', 'bride', 'bridge', 'brief', 'briefly', 'bright',
    'brilliant', 'bring', 'broad', 'broadcast', 'broadcast', 'broken',
    'broker', 'bronze', 'brother', 'brown', 'brush', 'brush', 'brutal',
    'bubble', 'buck', 'bucket', 'buddy', 'budget', 'build', 'builder',
    'building', 'bulb', 'bulk', 'bull', 'bullet', 'bunch', 'burden',
    'bureau', 'burn', 'burning', 'burst', 'bury', 'bush', 'business',
    'businessman', 'busy', 'butt', 'butter', 'butterfly', 'button',
    'buyer', 'cabin', 'cabinet', 'cable', 'cage', 'cake', 'calculate',
    'calculation', 'calendar', 'call', 'call', 'calm', 'calm', 'camera',
    'camp', 'campaign', 'campus', 'cancel', 'cancer', 'candidate',
    'candle', 'candy', 'canvas', 'capability', 'capable', 'capacity',
    'capital', 'captain', 'capture', 'carbohydrate', 'carbon', 'card',
    'care', 'care', 'career', 'careful', 'carefully', 'cargo', 'carpet',
    'carrier', 'carrot', 'carry', 'cart', 'cartoon', 'carve', 'case',
    'case', 'cash', 'casino', 'cast', 'cast', 'casual', 'casualty',
    'catalog', 'catch', 'catch', 'category', 'cattle', 'cause', 'cause',
    'cave', 'cease', 'ceiling', 'celebrate', 'celebration', 'celebrity',
    'cell', 'cemetery', 'center', 'central', 'century', 'ceremony',
    'certain', 'certainly', 'chain', 'chair', 'chairman', 'challenge',
    'challenge', 'chamber', 'champion', 'championship', 'chance',
    'change', 'change', 'changing', 'channel', 'chaos', 'chapter',
    'character', 'characteristic', 'characterize', 'charge', 'charge',
    'charge', 'charity', 'charm', 'chart', 'charter', 'chase', 'cheap',
    'cheat', 'check', 'check', 'cheek', 'cheer', 'cheese', 'chef',
    'chemical', 'chemical', 'chemistry', 'chest', 'chew', 'chicken',
    'chief', 'chief', 'child', 'childhood', 'chill', 'chin', 'chip',
    'chocolate', 'choice', 'cholesterol', 'choose', 'chop', 'chronic',
    'chunk', 'church', 'cigarette', 'circle', 'circle', 'circuit',
    'circumstance', 'cite', 'citizen', 'citizenship', 'city', 'civic',
    'civil', 'civilian', 'civilian', 'civilization', 'claim', 'claim',
    'class', 'classic', 'classical', 'classify', 'classroom', 'clay',
    'clean', 'clean', 'clear', 'clear', 'clearly', 'clerk', 'click',
    'client', 'cliff', 'climate', 'climb', 'cling', 'clinic', 'clinical',
    'clip', 'clock', 'close', 'close', 'close', 'closed', 'closely',
    'closer', 'closest', 'closet', 'cloth', 'clothes', 'clothing',
    'cloud', 'club', 'clue', 'cluster', 'coach', 'coach', 'coal',
    'coalition', 'coast', 'coastal', 'coat', 'cocaine', 'code', 'coffee',
    'cognitive', 'coin', 'cold', 'cold', 'collaboration', 'collapse',
    'collapse', 'collar', 'colleague', 'collect', 'collection',
    'collective', 'collector', 'college', 'colonial', 'colony', 'color',
    'color', 'colorful', 'column', 'columnist', 'combat', 'combination',
    'combine', 'combined', 'come', 'comedy', 'comfort', 'comfortable',
    'coming', 'command', 'command', 'commander', 'comment', 'comment',
    'commercial', 'commission', 'commissioner', 'commit', 'commitment',
    'committee', 'commodity', 'common', 'commonly', 'communicate',
    'communication', 'community', 'companion', 'company', 'comparable',
    'compare', 'comparison', 'compel', 'compelling', 'compensation',
    'compete', 'competition', 'competitive', 'competitor', 'complain',
    'complaint', 'complete', 'complete', 'completely', 'complex',
    'complex', 'complexity', 'compliance', 'complicated', 'comply',
    'component', 'compose', 'composition', 'compound', 'comprehensive',
    'comprise', 'compromise', 'compromise', 'computer', 'concede',
    'conceive', 'concentrate', 'concentration', 'concept', 'conception',
    'concern', 'concern', 'concerned', 'concerning', 'concert',
    'conclude', 'conclusion', 'concrete', 'condemn', 'condition',
    'conduct', 'conduct', 'conference', 'confess', 'confession',
    'confidence', 'confident', 'confirm', 'conflict', 'confront',
    'confrontation', 'confuse', 'confusion', 'congressional', 'connect',
    'connection', 'conscience', 'conscious', 'consciousness',
    'consecutive', 'consensus', 'consent', 'consequence', 'consequently',
    'conservation', 'conservative', 'conservative', 'consider',
    'considerable', 'considerably', 'consideration', 'consist',
    'consistent', 'consistently', 'conspiracy', 'constant', 'constantly',
    'constitute', 'constitution', 'constitutional', 'constraint',
    'construct', 'construction', 'consult', 'consultant', 'consume',
    'consumer', 'consumption', 'contact', 'contact', 'contain',
    'container', 'contemplate', 'contemporary', 'contend', 'content',
    'content', 'contest', 'context', 'continent', 'continue', 'continued',
    'continuing', 'continuous', 'contract', 'contractor', 'contrast',
    'contribute', 'contribution', 'contributor', 'control', 'control',
    'controversial', 'controversy', 'convenience', 'convention',
    'conventional', 'conversation', 'conversion', 'convert', 'convey',
    'convict', 'conviction', 'convince', 'convinced', 'cook', 'cook',
    'cookie', 'cooking', 'cool', 'cool', 'cooperate', 'cooperation',
    'cooperative', 'coordinate', 'coordinator', 'cope', 'copy', 'copy',
    'cord', 'core', 'corn', 'corner', 'corporate', 'corporation',
    'correct', 'correct', 'correctly', 'correlation', 'correspondent',
    'corridor', 'corruption', 'cost', 'cost', 'costly', 'costume',
    'cottage', 'cotton', 'couch', 'could', 'council', 'counsel',
    'counseling', 'counselor', 'count', 'count', 'counter', 'counter',
    'counterpart', 'country', 'county', 'coup', 'couple', 'courage',
    'course', 'course', 'court', 'courtroom', 'cousin', 'cover', 'cover',
    'coverage', 'crack', 'crack', 'craft', 'crash', 'crash', 'crawl',
    'crazy', 'cream', 'create', 'creation', 'creative', 'creativity',
    'creature', 'credibility', 'credit', 'credit', 'crew', 'crime',
    'criminal', 'criminal', 'crisis', 'criteria', 'critic', 'critical',
    'criticism', 'criticize', 'crop', 'cross', 'cross', 'crowd', 'crowd',
    'crowded', 'crucial', 'cruel', 'cruise', 'crush', 'crystal',
    'cultural', 'culture', 'cure', 'cure', 'curiosity', 'curious',
    'currency', 'current', 'currently', 'curriculum', 'curtain', 'curve',
    'custody', 'custom', 'customer', 'cute', 'cycle', 'daily', 'daily',
    'damage', 'damage', 'damn', 'dance', 'dance', 'dancer', 'dancing',
    'danger', 'dangerous', 'dare', 'dark', 'dark', 'darkness', 'data',
    'database', 'date', 'date', 'daughter', 'dawn', 'dead', 'deadline',
    'deadly', 'deal', 'deal', 'dealer', 'dear', 'death', 'debate',
    'debate', 'debris', 'debt', 'debut', 'decade', 'decent', 'decide',
    'decision', 'deck', 'declare', 'decline', 'decline', 'decorate',
    'decrease', 'dedicate', 'deem', 'deep', 'deep', 'deeply', 'deer',
    'defeat', 'defeat', 'defend', 'defendant', 'defender', 'defense',
    'defensive', 'deficit', 'define', 'definitely', 'definition',
    'degree', 'delay', 'delay', 'deliberately', 'delicate', 'delight',
    'deliver', 'delivery', 'demand', 'demand', 'democracy', 'democratic',
    'demographic', 'demonstrate', 'demonstration', 'denial', 'dense',
    'density', 'deny', 'depart', 'department', 'departure', 'depend',
    'dependent', 'depending', 'depict', 'deploy', 'deposit', 'depressed',
    'depression', 'depth', 'deputy', 'derive', 'descend', 'describe',
    'description', 'desert', 'deserve', 'design', 'design', 'designer',
    'desire', 'desire', 'desk', 'desperate', 'desperately', 'despite',
    'dessert', 'destination', 'destroy', 'destruction', 'detail',
    'detailed', 'detect', 'detective', 'determination', 'determine',
    'devastating', 'develop', 'developer', 'developing', 'development',
    'developmental', 'device', 'devil', 'devote', 'diabetes', 'diagnose',
    'diagnosis', 'dialogue', 'diamond', 'diary', 'dictate', 'diet',
    'differ', 'difference', 'different', 'differently', 'difficult',
    'difficulty', 'digital', 'dignity', 'dilemma', 'dimension',
    'diminish', 'dining', 'dinner', 'diplomat', 'diplomatic', 'direct',
    'direct', 'direction', 'directly', 'director', 'dirt', 'dirty',
    'disability', 'disabled', 'disagree', 'disappear', 'disappointed',
    'disappointment', 'disaster', 'disc', 'discipline', 'disclose',
    'discount', 'discourage', 'discourse', 'discover', 'discovery',
    'discrimination', 'discuss', 'discussion', 'disease', 'dish', 'disk',
    'dismiss', 'disorder', 'display', 'display', 'dispute', 'dissolve',
    'distance', 'distant', 'distinct', 'distinction', 'distinctive',
    'distinguish', 'distract', 'distribute', 'distribution', 'district',
    'disturb', 'disturbing', 'diverse', 'diversity', 'divide', 'divine',
    'division', 'divorce', 'divorce', 'dock', 'doctor', 'doctrine',
    'document', 'document', 'documentary', 'doll', 'domain', 'domestic',
    'dominant', 'dominate', 'donate', 'donation', 'donor', 'door',
    'doorway', 'dose', 'double', 'double', 'doubt', 'doubt', 'dough',
    'down', 'down', 'downtown', 'downtown', 'dozen', 'draft', 'draft',
    'drag', 'drain', 'drama', 'dramatic', 'dramatically', 'draw',
    'drawer', 'drawing', 'dream', 'dream', 'dress', 'dress', 'dried',
    'drift', 'drill', 'drink', 'drink', 'drinking', 'drive', 'drive',
    'driver', 'driveway', 'driving', 'drop', 'drop', 'drown', 'drug',
    'drum', 'drunk', 'duck', 'dumb', 'dump', 'during', 'dust', 'duty',
    'dying', 'dynamic', 'dynamics', 'e-mail', 'each', 'each', 'eager',
    'early', 'early', 'earn', 'earnings', 'earth', 'earthquake', 'ease',
    'ease', 'easily', 'east', 'eastern', 'easy', 'easy', 'eating', 'echo',
    'ecological', 'economic', 'economically', 'economics', 'economist',
    'economy', 'ecosystem', 'edge', 'edit', 'edition', 'editor',
    'educate', 'education', 'educational', 'educator', 'effect',
    'effective', 'effectively', 'effectiveness', 'efficiency',
    'efficient', 'effort', 'eight', 'eighth', 'either', 'either',
    'elaborate', 'elbow', 'elder', 'elderly', 'elect', 'election',
    'electric', 'electrical', 'electricity', 'electronic', 'electronics',
    'elegant', 'element', 'elementary', 'elephant', 'elevator', 'eleven',
    'eligible', 'eliminate', 'elite', 'else', 'elsewhere', 'embarrassed',
    'embrace', 'emerge', 'emergency', 'emerging', 'emission', 'emotion',
    'emotional', 'emotionally', 'emphasis', 'emphasize', 'empire',
    'employ', 'employee', 'employer', 'employment', 'empty', 'enable',
    'enact', 'encounter', 'encounter', 'encourage', 'encouraging',
    'endless', 'endorse', 'endure', 'enemy', 'energy', 'enforce',
    'enforcement', 'engage', 'engagement', 'engine', 'engineer',
    'engineering', 'enhance', 'enjoy', 'enormous', 'enough', 'enough',
    'enroll', 'ensure', 'enter', 'enterprise', 'entertainment',
    'enthusiasm', 'entire', 'entirely', 'entitle', 'entity', 'entrance',
    'entrepreneur', 'entry', 'envelope', 'environment', 'environmental',
    'envision', 'epidemic', 'episode', 'equal', 'equality', 'equally',
    'equation', 'equip', 'equipment', 'equity', 'equivalent', 'error',
    'escape', 'escape', 'especially', 'essay', 'essence', 'essential',
    'essentially', 'establish', 'establishment', 'estate', 'estimate',
    'estimate', 'estimated', 'ethical', 'ethics', 'ethnic', 'evaluate',
    'evaluation', 'even', 'even', 'evening', 'event', 'eventually',
    'ever', 'every', 'everybody', 'everyday', 'everyone', 'everything',
    'everywhere', 'evidence', 'evident', 'evil', 'evil', 'evolution',
    'evolve', 'exact', 'exactly', 'exam', 'examination', 'examine',
    'example', 'exceed', 'excellent', 'except', 'except', 'exception',
    'excessive', 'exchange', 'exchange', 'excited', 'excitement',
    'exciting', 'exclude', 'exclusive', 'exclusively', 'excuse', 'excuse',
    'execute', 'execution', 'executive', 'exercise', 'exercise',
    'exhaust', 'exhibit', 'exhibit', 'exhibition', 'exist', 'existence',
    'existing', 'exit', 'exotic', 'expand', 'expansion', 'expect',
    'expectation', 'expected', 'expedition', 'expense', 'expensive',
    'experience', 'experience', 'experienced', 'experiment',
    'experimental', 'expert', 'expertise', 'explain', 'explanation',
    'explicit', 'explode', 'exploit', 'exploration', 'explore',
    'explosion', 'export', 'expose', 'exposure', 'express', 'expression',
    'extend', 'extended', 'extension', 'extensive', 'extent', 'external',
    'extra', 'extraordinary', 'extreme', 'extremely', 'eyebrow', 'fabric',
    'face', 'face', 'facilitate', 'facility', 'fact', 'factor', 'factory',
    'faculty', 'fade', 'fail', 'failure', 'faint', 'fair', 'fairly',
    'faith', 'fall', 'fall', 'false', 'fame', 'familiar', 'family',
    'famous', 'fantastic', 'fantasy', 'fare', 'farm', 'farmer',
    'fascinating', 'fashion', 'fast', 'fast', 'faster', 'fatal', 'fate',
    'father', 'fatigue', 'fault', 'favor', 'favor', 'favor', 'favorable',
    'favorite', 'favorite', 'fear', 'fear', 'feather', 'feature',
    'feature', 'federal', 'feed', 'feedback', 'feel', 'feel', 'feeling',
    'fellow', 'fellow', 'female', 'female', 'feminist', 'fence',
    'festival', 'fever', 'fewer', 'fiber', 'fiction', 'field', 'fierce',
    'fifteen', 'fifth', 'fifty', 'fight', 'fight', 'fighter', 'fighting',
    'figure', 'figure', 'file', 'file', 'fill', 'film', 'filter', 'final',
    'final', 'finally', 'finance', 'finance', 'financial', 'find',
    'finding', 'fine', 'finger', 'finish', 'finish', 'fire', 'fire',
    'firm', 'firm', 'firmly', 'first', 'first', 'fiscal', 'fish', 'fish',
    'fisherman', 'fishing', 'fist', 'fitness', 'five', 'fixed', 'flag',
    'flame', 'flash', 'flash', 'flat', 'flavor', 'flee', 'fleet', 'flesh',
    'flexibility', 'flexible', 'flight', 'flip', 'float', 'flood',
    'flood', 'floor', 'flour', 'flow', 'flow', 'flower', 'fluid',
    'flying', 'focus', 'focus', 'fold', 'folk', 'follow', 'following',
    'food', 'fool', 'foot', 'football', 'forbid', 'force', 'force',
    'forehead', 'foreign', 'foreigner', 'forest', 'forever', 'forget',
    'forgive', 'fork', 'form', 'form', 'formal', 'format', 'formation',
    'former', 'formerly', 'formula', 'forth', 'fortunately', 'fortune',
    'forty', 'forum', 'forward', 'foster', 'found', 'foundation',
    'founder', 'four', 'fourth', 'fraction', 'fragile', 'fragment',
    'frame', 'frame', 'framework', 'franchise', 'frankly', 'fraud',
    'free', 'free', 'freedom', 'freely', 'freeze', 'frequency',
    'frequent', 'frequently', 'fresh', 'freshman', 'friend', 'friendly',
    'friendship', 'from', 'front', 'front', 'front', 'frontier', 'frown',
    'frozen', 'fruit', 'frustrate', 'frustration', 'fucking', 'fuel',
    'full', 'full-time', 'fully', 'function', 'function', 'functional',
    'fund', 'fund', 'fundamental', 'funding', 'funeral', 'funny',
    'furniture', 'furthermore', 'future', 'future', 'gain', 'gain',
    'galaxy', 'gallery', 'game', 'gang', 'garage', 'garbage', 'garden',
    'garlic', 'gasoline', 'gate', 'gather', 'gathering', 'gaze', 'gaze',
    'gear', 'gender', 'gene', 'general', 'general', 'general',
    'generally', 'generate', 'generation', 'generous', 'genetic',
    'genius', 'genre', 'gentle', 'gentleman', 'gently', 'genuine',
    'gesture', 'ghost', 'giant', 'giant', 'gift', 'gifted', 'girl',
    'girlfriend', 'give', 'given', 'glad', 'glance', 'glance', 'glass',
    'glimpse', 'global', 'globe', 'glory', 'glove', 'goal', 'goat',
    'gold', 'golden', 'golf', 'good', 'good', 'govern', 'government',
    'governor', 'grab', 'grace', 'grade', 'gradually', 'graduate',
    'graduate', 'graduation', 'grain', 'grand', 'grandchild',
    'grandfather', 'grandmother', 'grandparent', 'grant', 'grant',
    'grape', 'grasp', 'grass', 'grateful', 'grave', 'gravity', 'gray',
    'great', 'greatest', 'greatly', 'green', 'green', 'greet', 'grief',
    'grin', 'grin', 'grip', 'grocery', 'gross', 'ground', 'group', 'grow',
    'growing', 'growth', 'guarantee', 'guarantee', 'guard', 'guard',
    'guess', 'guest', 'guidance', 'guide', 'guide', 'guideline', 'guilt',
    'guilty', 'guitar', 'habit', 'habitat', 'hair', 'half', 'half',
    'halfway', 'hall', 'hallway', 'hand', 'hand', 'handful', 'handle',
    'handle', 'handsome', 'hang', 'happen', 'happily', 'happiness',
    'happy', 'harassment', 'hard', 'hard', 'hardly', 'hardware', 'harm',
    'harm', 'harmony', 'harsh', 'harvest', 'harvest', 'hate', 'haul',
    'have', 'hazard', 'head', 'head', 'headache', 'headline',
    'headquarters', 'heal', 'health', 'health-care', 'health-care',
    'health-care', 'health-care', 'healthy', 'hear', 'hearing', 'heart',
    'heat', 'heat', 'heaven', 'heavily', 'heavy', 'heel', 'height',
    'helicopter', 'hell', 'hello', 'helmet', 'help', 'help', 'helpful',
    'hence', 'herb', 'here', 'heritage', 'hero', 'hers', 'herself',
    'hesitate', 'hidden', 'hide', 'high', 'high', 'high-tech',
    'highlight', 'highly', 'highway', 'hike', 'hill', 'himself', 'hint',
    'hire', 'historian', 'historic', 'historical', 'historically',
    'history', 'hockey', 'hold', 'hold', 'hole', 'holiday', 'holy',
    'home', 'home', 'homeland', 'homeless', 'homework', 'honest',
    'honestly', 'honey', 'honor', 'honor', 'hook', 'hook', 'hope', 'hope',
    'hopefully', 'horizon', 'hormone', 'horn', 'horrible', 'horror',
    'horse', 'hospital', 'host', 'host', 'hostage', 'hostile', 'hotel',
    'hour', 'house', 'house', 'household', 'housing', 'however', 'huge',
    'human', 'human', 'humanity', 'humor', 'hundred', 'hunger', 'hungry',
    'hunt', 'hunter', 'hunting', 'hurricane', 'hurry', 'hurt', 'husband',
    'hypothesis', 'icon', 'idea', 'ideal', 'ideal', 'identical',
    'identification', 'identify', 'identity', 'ideological', 'ideology',
    'ignore', 'illegal', 'illness', 'illusion', 'illustrate', 'image',
    'imagination', 'imagine', 'immediate', 'immediately', 'immigrant',
    'immigrant', 'immigration', 'immune', 'impact', 'implement',
    'implementation', 'implication', 'imply', 'import', 'importance',
    'important', 'importantly', 'impose', 'impossible', 'impress',
    'impression', 'impressive', 'improve', 'improved', 'improvement',
    'impulse', 'incentive', 'incident', 'include', 'including', 'income',
    'incorporate', 'increase', 'increase', 'increased', 'increasing',
    'increasingly', 'incredible', 'incredibly', 'indeed', 'independence',
    'independent', 'index', 'indicate', 'indication', 'indicator',
    'indigenous', 'individual', 'individual', 'industrial', 'industry',
    'inevitable', 'inevitably', 'infant', 'infection', 'inflation',
    'influence', 'influence', 'influential', 'inform', 'informal',
    'information', 'infrastructure', 'ingredient', 'inherent', 'inherit',
    'initial', 'initially', 'initiate', 'initiative', 'injure', 'injury',
    'inmate', 'inner', 'innocent', 'innovation', 'innovative', 'input',
    'inquiry', 'insect', 'insert', 'inside', 'inside', 'inside',
    'insight', 'insist', 'inspection', 'inspector', 'inspiration',
    'inspire', 'install', 'installation', 'instance', 'instant',
    'instant', 'instantly', 'instead', 'instead', 'instinct',
    'institution', 'institutional', 'instruct', 'instruction',
    'instructional', 'instructor', 'instrument', 'insurance', 'intact',
    'integrate', 'integrated', 'integration', 'integrity', 'intellectual',
    'intellectual', 'intelligence', 'intelligent', 'intend', 'intense',
    'intensity', 'intent', 'intention', 'interact', 'interaction',
    'interest', 'interested', 'interesting', 'interfere', 'interior',
    'interior', 'internal', 'international', 'interpret',
    'interpretation', 'interrupt', 'interval', 'intervention',
    'interview', 'interview', 'intimate', 'into', 'introduce',
    'introduction', 'invade', 'invasion', 'invent', 'invention',
    'inventory', 'invest', 'investigate', 'investigation', 'investigator',
    'investment', 'investor', 'invisible', 'invitation', 'invite',
    'involve', 'involved', 'involvement', 'iron', 'ironically', 'irony',
    'island', 'isolate', 'isolated', 'isolation', 'issue', 'issue',
    'item', 'itself', 'jacket', 'jail', 'jazz', 'jeans', 'jewelry',
    'join', 'joint', 'joke', 'joke', 'journal', 'journalism',
    'journalist', 'journey', 'judge', 'judge', 'judgment', 'judicial',
    'juice', 'jump', 'jump', 'jungle', 'junior', 'jurisdiction', 'juror',
    'jury', 'just', 'just', 'justice', 'justify', 'keep', 'kick', 'kill',
    'killer', 'killing', 'kind', 'kind', 'king', 'kingdom', 'kiss',
    'kiss', 'kitchen', 'knee', 'kneel', 'knife', 'knock', 'know',
    'knowledge', 'known', 'label', 'label', 'labor', 'laboratory', 'lack',
    'lack', 'ladder', 'lady', 'lake', 'lamp', 'land', 'land', 'landing',
    'landmark', 'landscape', 'lane', 'language', 'large', 'largely',
    'laser', 'last', 'last', 'last', 'late', 'late', 'lately', 'later',
    'later', 'latter', 'laugh', 'laugh', 'laughter', 'launch', 'launch',
    'laundry', 'lawmaker', 'lawn', 'lawsuit', 'lawyer', 'layer', 'lead',
    'lead', 'leader', 'leadership', 'leading', 'leaf', 'league', 'lean',
    'leap', 'learn', 'learning', 'least', 'leather', 'leave', 'leave',
    'lecture', 'left', 'legacy', 'legal', 'legally', 'legend',
    'legislation', 'legislative', 'legislator', 'legislature',
    'legitimate', 'lemon', 'lend', 'length', 'lens', 'less', 'less',
    'lesson', 'letter', 'level', 'level', 'liability', 'liberal',
    'liberal', 'liberty', 'library', 'license', 'life', 'lifestyle',
    'lifetime', 'lift', 'light', 'light', 'light', 'light', 'lighting',
    'lightly', 'lightning', 'like', 'like', 'like', 'like', 'like',
    'likelihood', 'likely', 'likely', 'likewise', 'limb', 'limit',
    'limit', 'limitation', 'limited', 'line', 'line', 'link', 'link',
    'lion', 'liquid', 'liquid', 'list', 'list', 'listen', 'listener',
    'literally', 'literary', 'literature', 'little', 'little', 'little',
    'live', 'live', 'liver', 'living', 'living', 'load', 'load', 'loan',
    'lobby', 'local', 'locate', 'location', 'lock', 'lock', 'logic',
    'logical', 'lonely', 'long', 'long', 'long', 'long-term', 'longtime',
    'look', 'look', 'loop', 'loose', 'lose', 'loss', 'lost', 'lots',
    'loud', 'loud', 'love', 'love', 'lovely', 'lover', 'lower', 'loyal',
    'loyalty', 'luck', 'lucky', 'lunch', 'lung', 'machine', 'magazine',
    'magic', 'magic', 'magnetic', 'magnitude', 'mail', 'main', 'mainly',
    'mainstream', 'maintain', 'maintenance', 'major', 'major', 'majority',
    'make', 'maker', 'makeup', 'male', 'male', 'mall', 'manage',
    'management', 'manager', 'managing', 'mandate', 'manipulate',
    'manner', 'mansion', 'manual', 'manufacturer', 'manufacturing',
    'many', 'marble', 'march', 'margin', 'marine', 'mark', 'mark',
    'marker', 'market', 'market', 'marketing', 'marketplace', 'marriage',
    'married', 'marry', 'mask', 'mass', 'mass', 'massive', 'master',
    'match', 'match', 'mate', 'material', 'math', 'mathematics', 'matter',
    'matter', 'matter', 'maximum', 'maybe', 'mayor', 'meal', 'mean',
    'mean', 'mean', 'meaning', 'meaningful', 'meantime', 'meanwhile',
    'measure', 'measure', 'measurement', 'meat', 'mechanic', 'mechanical',
    'mechanism', 'medal', 'media', 'medical', 'medication', 'medicine',
    'medium', 'medium', 'meet', 'meeting', 'melt', 'member', 'membership',
    'memory', 'mental', 'mentally', 'mention', 'mention', 'mentor',
    'menu', 'merchant', 'mere', 'merely', 'merit', 'mess', 'message',
    'metal', 'metaphor', 'meter', 'method', 'metropolitan', 'middle',
    'middle', 'middle-class', 'midnight', 'midst', 'might', 'migration',
    'mild', 'military', 'military', 'milk', 'mill', 'million', 'mind',
    'mind', 'mine', 'mine', 'mineral', 'minimal', 'minimize', 'minimum',
    'minimum', 'minister', 'ministry', 'minor', 'minority', 'minute',
    'miracle', 'mirror', 'miss', 'missile', 'missing', 'mission',
    'missionary', 'mistake', 'mixed', 'mixture', 'mm-hmm', 'mobile',
    'mode', 'model', 'model', 'moderate', 'modern', 'modest', 'modify',
    'molecule', 'moment', 'momentum', 'money', 'monitor', 'monitor',
    'monkey', 'monster', 'month', 'monthly', 'monument', 'mood', 'moon',
    'moral', 'more', 'more', 'moreover', 'morning', 'mortality',
    'mortgage', 'most', 'most', 'mostly', 'mother', 'motion', 'motivate',
    'motivation', 'motive', 'motor', 'mount', 'mountain', 'mouse',
    'mouth', 'move', 'move', 'movement', 'movie', 'much', 'much',
    'multiple', 'municipal', 'murder', 'murder', 'muscle', 'museum',
    'mushroom', 'music', 'musical', 'musician', 'must', 'mutter',
    'mutual', 'myself', 'mysterious', 'mystery', 'myth', 'nail', 'naked',
    'name', 'name', 'narrative', 'narrow', 'nasty', 'nation', 'national',
    'nationwide', 'native', 'natural', 'naturally', 'nature', 'naval',
    'near', 'near', 'near', 'nearby', 'nearby', 'nearly', 'neat',
    'necessarily', 'necessary', 'necessity', 'neck', 'need', 'need',
    'needle', 'negative', 'negotiate', 'negotiation', 'neighbor',
    'neighborhood', 'neighboring', 'neither', 'neither', 'nerve',
    'nervous', 'nest', 'network', 'neutral', 'never', 'nevertheless',
    'newly', 'news', 'newspaper', 'next', 'next', 'nice', 'night',
    'nightmare', 'nine', 'nobody', 'noise', 'nomination', 'nominee',
    'none', 'nonetheless', 'nonprofit', 'noon', 'norm', 'normal',
    'normally', 'north', 'northeast', 'northern', 'northwest', 'nose',
    'note', 'note', 'notebook', 'nothing', 'notice', 'notice', 'notion',
    'novel', 'nowhere', 'nuclear', 'number', 'numerous', 'nurse',
    'nutrient', "o'clock", "o'clock", "o'clock", "o'clock", "o'clock",
    'object', 'object', 'objection', 'objective', 'obligation',
    'observation', 'observe', 'observer', 'obstacle', 'obtain', 'obvious',
    'obviously', 'occasion', 'occasional', 'occasionally', 'occupation',
    'occupy', 'occur', 'ocean', 'odds', 'offender', 'offense',
    'offensive', 'offer', 'offer', 'offering', 'office', 'officer',
    'official', 'official', 'officially', 'often', 'okay', 'okay',
    'old-fashioned', 'once', 'once', 'one-third', 'ongoing', 'onion',
    'online', 'online', 'only', 'only', 'onto', 'open', 'open', 'opening',
    'openly', 'opera', 'operate', 'operating', 'operation', 'operator',
    'opinion', 'opponent', 'opportunity', 'oppose', 'opposed', 'opposite',
    'opposition', 'optimistic', 'option', 'oral', 'orange', 'orange',
    'orbit', 'order', 'order', 'ordinary', 'organ', 'organic', 'organism',
    'organization', 'organizational', 'organize', 'organized',
    'orientation', 'origin', 'original', 'originally', 'other', 'other',
    'other', 'others', 'otherwise', 'ought', 'ours', 'ourselves',
    'outcome', 'outdoor', 'outer', 'outfit', 'outlet', 'outline',
    'output', 'outside', 'outside', 'outside', 'outsider', 'outstanding',
    'oven', 'over', 'over', 'overall', 'overall', 'overcome', 'overlook',
    'overnight', 'oversee', 'overwhelm', 'overwhelming', 'owner',
    'ownership', 'oxygen', 'pace', 'pack', 'pack', 'package', 'page',
    'pain', 'painful', 'paint', 'paint', 'painter', 'painting', 'pair',
    'palace', 'pale', 'palm', 'panel', 'panic', 'pant', 'paper', 'parade',
    'parent', 'parental', 'parish', 'park', 'park', 'parking', 'part',
    'part', 'part', 'partial', 'partially', 'participant', 'participate',
    'participation', 'particle', 'particular', 'particular',
    'particularly', 'partly', 'partner', 'partnership', 'party', 'pass',
    'pass', 'passage', 'passenger', 'passing', 'passion', 'past', 'past',
    'past', 'past', 'pasta', 'pastor', 'patch', 'patent', 'path',
    'patience', 'patient', 'patient', 'patrol', 'patron', 'pattern',
    'pause', 'pause', 'payment', 'peace', 'peaceful', 'peak', 'peanut',
    'peasant', 'peel', 'peer', 'peer', 'penalty', 'pencil', 'pension',
    'people', 'pepper', 'perceive', 'perceived', 'percentage',
    'perception', 'perfect', 'perfectly', 'perform', 'performance',
    'performer', 'perhaps', 'period', 'permanent', 'permission', 'permit',
    'permit', 'persist', 'person', 'personal', 'personality',
    'personally', 'personnel', 'perspective', 'persuade', 'phase',
    'phenomenon', 'philosophical', 'philosophy', 'phone', 'photo',
    'photograph', 'photograph', 'photographer', 'photography', 'phrase',
    'physical', 'physically', 'physician', 'physics', 'piano', 'pick',
    'pickup', 'picture', 'picture', 'piece', 'pile', 'pile', 'pill',
    'pillow', 'pilot', 'pine', 'pink', 'pioneer', 'pipe', 'pistol',
    'pitch', 'pitch', 'pitcher', 'pizza', 'place', 'place', 'placement',
    'plain', 'plain', 'plaintiff', 'plan', 'plan', 'plane', 'planet',
    'planner', 'planning', 'plant', 'plant', 'plastic', 'plate',
    'platform', 'play', 'play', 'player', 'playoff', 'plea', 'plead',
    'pleasant', 'please', 'please', 'pleased', 'pleasure', 'plenty',
    'plot', 'plunge', 'plus', 'pocket', 'poem', 'poet', 'poetry', 'point',
    'point', 'poke', 'pole', 'police', 'policeman', 'policy', 'political',
    'politically', 'politician', 'politics', 'poll', 'pollution', 'pond',
    'pool', 'poor', 'popular', 'popularity', 'population', 'porch',
    'pork', 'port', 'portfolio', 'portion', 'portrait', 'portray', 'pose',
    'position', 'position', 'positive', 'possess', 'possession',
    'possibility', 'possible', 'possibly', 'post', 'post', 'poster',
    'potato', 'potential', 'potential', 'potentially', 'pound', 'pound',
    'pour', 'poverty', 'powder', 'power', 'powerful', 'practical',
    'practically', 'practice', 'practice', 'practitioner', 'praise',
    'praise', 'pray', 'prayer', 'preach', 'precious', 'precise',
    'precisely', 'predator', 'predict', 'prediction', 'prefer',
    'preference', 'pregnancy', 'pregnant', 'preliminary', 'premise',
    'premium', 'preparation', 'prepare', 'prescription', 'presence',
    'present', 'present', 'present', 'presentation', 'preserve',
    'presidency', 'president', 'presidential', 'press', 'press',
    'pressure', 'presumably', 'pretend', 'pretty', 'pretty', 'prevail',
    'prevent', 'prevention', 'previous', 'previously', 'price', 'pride',
    'priest', 'primarily', 'primary', 'primary', 'prime', 'principal',
    'principal', 'principle', 'print', 'print', 'prior', 'prior',
    'priority', 'prison', 'prisoner', 'privacy', 'private', 'privately',
    'privilege', 'prize', 'probably', 'problem', 'procedure', 'proceed',
    'process', 'process', 'processing', 'processor', 'proclaim',
    'produce', 'producer', 'product', 'production', 'productive',
    'productivity', 'profession', 'professional', 'professional',
    'professor', 'profile', 'profit', 'profound', 'program', 'program',
    'programming', 'progress', 'progressive', 'prohibit', 'project',
    'project', 'projection', 'prominent', 'promise', 'promise',
    'promising', 'promote', 'promotion', 'prompt', 'proof', 'proper',
    'properly', 'property', 'proportion', 'proposal', 'propose',
    'proposed', 'prosecution', 'prosecutor', 'prospect', 'protect',
    'protection', 'protective', 'protein', 'protest', 'protest',
    'protocol', 'proud', 'prove', 'provid', 'provide', 'provider',
    'province', 'provision', 'provoke', 'psychological', 'psychologist',
    'psychology', 'public', 'public', 'public', 'publication',
    'publicity', 'publicly', 'publish', 'publisher', 'pull', 'pulse',
    'pump', 'pump', 'punch', 'punish', 'punishment', 'purchase',
    'purchase', 'pure', 'purple', 'purpose', 'purse', 'pursue', 'pursuit',
    'push', 'puzzle', 'qualify', 'quality', 'quantity', 'quarter',
    'quarterback', 'queen', 'quest', 'question', 'question',
    'questionnaire', 'quick', 'quickly', 'quiet', 'quietly', 'quit',
    'quite', 'quote', 'quote', 'rabbit', 'race', 'race', 'racial',
    'racism', 'rack', 'radar', 'radiation', 'radical', 'radio', 'rage',
    'rail', 'railroad', 'rain', 'rain', 'raise', 'rally', 'ranch',
    'random', 'range', 'range', 'rank', 'rank', 'rape', 'rapid',
    'rapidly', 'rare', 'rarely', 'rate', 'rate', 'rather', 'rather',
    'rather', 'rating', 'ratio', 'rational', 'reach', 'reach', 'react',
    'reaction', 'read', 'reader', 'readily', 'reading', 'ready', 'real',
    'realistic', 'reality', 'realize', 'really', 'realm', 'rear',
    'reason', 'reasonable', 'rebel', 'rebuild', 'recall', 'receive',
    'receiver', 'recent', 'recently', 'reception', 'recession', 'recipe',
    'recipient', 'recognition', 'recognize', 'recommend',
    'recommendation', 'record', 'record', 'recording', 'recover',
    'recovery', 'recruit', 'reduce', 'reduction', 'refer', 'reference',
    'reflect', 'reflection', 'reform', 'refrigerator', 'refuge',
    'refugee', 'refuse', 'regain', 'regard', 'regard', 'regard',
    'regarding', 'regardless', 'regime', 'region', 'regional', 'register',
    'regret', 'regular', 'regularly', 'regulate', 'regulation',
    'regulator', 'regulatory', 'rehabilitation', 'reinforce', 'reject',
    'relate', 'related', 'relation', 'relationship', 'relative',
    'relative', 'relatively', 'relax', 'release', 'release', 'relevant',
    'reliability', 'reliable', 'relief', 'relieve', 'religion',
    'religious', 'reluctant', 'rely', 'remain', 'remaining', 'remark',
    'remark', 'remarkable', 'remember', 'remind', 'reminder', 'remote',
    'removal', 'remove', 'render', 'rent', 'rent', 'rental', 'repair',
    'repair', 'repeat', 'repeatedly', 'replace', 'replacement', 'reply',
    'report', 'report', 'reportedly', 'reporter', 'reporting',
    'represent', 'representation', 'representative', 'representative',
    'republic', 'republican', 'reputation', 'request', 'request',
    'require', 'required', 'requirement', 'rescue', 'rescue', 'research',
    'research', 'researcher', 'resemble', 'reservation', 'reserve',
    'reserve', 'residence', 'resident', 'residential', 'resign', 'resist',
    'resistance', 'resolution', 'resolve', 'resort', 'resource',
    'respect', 'respect', 'respect', 'respectively', 'respond',
    'respondent', 'response', 'response', 'responsibility', 'responsible',
    'rest', 'rest', 'restaurant', 'restore', 'restrict', 'restriction',
    'result', 'result', 'resume', 'retail', 'retailer', 'retain',
    'retire', 'retired', 'retirement', 'retreat', 'return', 'return',
    'reveal', 'revelation', 'revenue', 'reverse', 'review', 'review',
    'revolution', 'revolutionary', 'reward', 'reward', 'rhetoric',
    'rhythm', 'ribbon', 'rice', 'rich', 'ride', 'ride', 'rider', 'ridge',
    'ridiculous', 'rifle', 'right', 'right', 'right', 'ring', 'ring',
    'riot', 'rise', 'rise', 'risk', 'risk', 'risky', 'ritual', 'rival',
    'river', 'road', 'robot', 'rock', 'rock', 'rocket', 'role', 'roll',
    'roll', 'rolling', 'romance', 'romantic', 'roof', 'room', 'root',
    'root', 'rope', 'rose', 'rough', 'roughly', 'round', 'round', 'round',
    'route', 'routine', 'routinely', 'royal', 'rubber', 'ruin', 'rule',
    'rule', 'ruling', 'rumor', 'runner', 'running', 'running', 'rural',
    'rush', 'rush', 'sack', 'sacred', 'sacrifice', 'sacrifice', 'safe',
    'safely', 'safety', 'sail', 'sake', 'salad', 'salary', 'sale',
    'sales', 'salmon', 'salt', 'same', 'sample', 'sanction', 'sand',
    'sandwich', 'satellite', 'satisfaction', 'satisfy', 'sauce', 'save',
    'saving', 'scale', 'scan', 'scandal', 'scare', 'scared', 'scary',
    'scatter', 'scenario', 'scene', 'scent', 'schedule', 'schedule',
    'scheme', 'scholar', 'scholarship', 'school', 'science', 'scientific',
    'scientist', 'scope', 'score', 'score', 'scramble', 'scratch',
    'scream', 'screen', 'screen', 'screening', 'screw', 'script',
    'sculpture', 'seal', 'seal', 'search', 'search', 'season', 'seat',
    'seat', 'second', 'second', 'secondary', 'secret', 'secret',
    'secretary', 'section', 'sector', 'secular', 'secure', 'secure',
    'security', 'seed', 'seek', 'seem', 'seemingly', 'segment', 'seize',
    'seldom', 'select', 'selected', 'selection', 'self', 'self-esteem',
    'sell', 'seller', 'seminar', 'senator', 'send', 'senior', 'senior',
    'sensation', 'sense', 'sense', 'sensitive', 'sensitivity', 'sensor',
    'sentence', 'sentiment', 'separate', 'separate', 'separation',
    'sequence', 'series', 'serious', 'seriously', 'servant', 'serve',
    'service', 'serving', 'session', 'setting', 'settle', 'settlement',
    'seven', 'seventh', 'several', 'severe', 'severely', 'sexual',
    'sexuality', 'sexually', 'sexy', 'shade', 'shadow', 'shake', 'shall',
    'shallow', 'shame', 'shape', 'shape', 'share', 'share', 'shared',
    'shareholder', 'shark', 'sharp', 'sharply', 'shed', 'sheep', 'sheer',
    'sheet', 'shelf', 'shell', 'shelter', 'shift', 'shift', 'shine',
    'ship', 'ship', 'shirt', 'shit', 'shock', 'shock', 'shoe', 'shoot',
    'shooting', 'shop', 'shop', 'shopping', 'shore', 'short', 'short',
    'short-term', 'shortage', 'shortly', 'shorts', 'shot', 'should',
    'shoulder', 'shout', 'shove', 'show', 'show', 'shower', 'shrimp',
    'shrink', 'shrug', 'shut', 'shuttle', 'sibling', 'sick', 'side',
    'sidewalk', 'sigh', 'sight', 'sign', 'sign', 'signal', 'signal',
    'signature', 'significance', 'significant', 'significantly',
    'silence', 'silent', 'silk', 'silly', 'silver', 'similar',
    'similarity', 'similarly', 'simple', 'simply', 'simultaneously',
    'since', 'since', 'since', 'sing', 'singer', 'single', 'sink', 'sink',
    'sister', 'site', 'situation', 'sixth', 'size', 'skill', 'skilled',
    'skin', 'skip', 'skirt', 'skull', 'slam', 'slap', 'slave', 'slavery',
    'sleep', 'sleep', 'sleeve', 'slice', 'slice', 'slide', 'slide',
    'slight', 'slightly', 'slip', 'slope', 'slot', 'slow', 'slow',
    'slowly', 'small', 'smart', 'smell', 'smell', 'smile', 'smile',
    'smoke', 'smoke', 'smooth', 'snake', 'snap', 'sneak', 'snow',
    'so-called', 'soak', 'soap', 'soar', 'soccer', 'social', 'socially',
    'society', 'sock', 'sodium', 'sofa', 'soft', 'soften', 'softly',
    'software', 'soil', 'solar', 'soldier', 'sole', 'solely', 'solid',
    'solution', 'solve', 'some', 'somebody', 'someday', 'somehow',
    'someone', 'something', 'sometime', 'sometimes', 'somewhat',
    'somewhere', 'song', 'soon', 'soon', 'sophisticated', 'sorry', 'sort',
    'sort', 'soul', 'sound', 'sound', 'soup', 'source', 'south',
    'southeast', 'southern', 'southwest', 'sovereignty', 'space', 'spare',
    'spark', 'speak', 'speaker', 'special', 'specialist', 'specialize',
    'specialty', 'species', 'specific', 'specifically', 'specify',
    'spectacular', 'spectrum', 'speculate', 'speculation', 'speech',
    'speed', 'speed', 'spell', 'spend', 'spending', 'sphere', 'spill',
    'spin', 'spine', 'spirit', 'spiritual', 'spit', 'spite', 'split',
    'spokesman', 'sponsor', 'sponsor', 'spoon', 'sport', 'spot', 'spot',
    'spouse', 'spray', 'spread', 'spread', 'spring', 'spring', 'sprinkle',
    'squad', 'square', 'square', 'squeeze', 'stability', 'stable',
    'stack', 'stadium', 'staff', 'stage', 'stair', 'stake', 'stance',
    'stand', 'stand', 'standard', 'standard', 'standing', 'star', 'star',
    'stare', 'start', 'start', 'starter', 'starting', 'state', 'state',
    'statement', 'station', 'statistical', 'statistics', 'statue',
    'status', 'statute', 'stay', 'stay', 'steadily', 'steady', 'steak',
    'steal', 'steam', 'steel', 'steep', 'steer', 'stem', 'stem', 'step',
    'step', 'stereotype', 'stick', 'stick', 'stiff', 'still', 'still',
    'stimulate', 'stimulus', 'stir', 'stock', 'stomach', 'stone', 'stop',
    'stop', 'storage', 'store', 'store', 'storm', 'story', 'stove',
    'straight', 'straight', 'straighten', 'strain', 'strain', 'strange',
    'stranger', 'strategic', 'strategy', 'straw', 'streak', 'stream',
    'street', 'strength', 'strengthen', 'stress', 'stress', 'stretch',
    'stretch', 'strict', 'strictly', 'strike', 'strike', 'striking',
    'string', 'strip', 'strip', 'stroke', 'strong', 'strongly',
    'structural', 'structure', 'struggle', 'struggle', 'student',
    'studio', 'study', 'study', 'stuff', 'stuff', 'stumble', 'stupid',
    'style', 'subject', 'subject', 'submit', 'subsequent', 'subsidy',
    'substance', 'substantial', 'substantially', 'subtle', 'suburb',
    'suburban', 'succeed', 'success', 'successful', 'successfully',
    'such', 'such', 'suck', 'sudden', 'sudden', 'suddenly', 'suffer',
    'suffering', 'sufficient', 'sugar', 'suggest', 'suggestion',
    'suicide', 'suit', 'suit', 'suitable', 'suite', 'summary', 'summer',
    'summit', 'sunlight', 'sunny', 'super', 'superior', 'supermarket',
    'supervisor', 'supplier', 'supply', 'supply', 'support', 'support',
    'supporter', 'supportive', 'suppose', 'supposed', 'supposedly',
    'sure', 'sure', 'surely', 'surface', 'surgeon', 'surgery', 'surprise',
    'surprise', 'surprised', 'surprising', 'surprisingly', 'surround',
    'surrounding', 'surveillance', 'survey', 'survey', 'survival',
    'survive', 'survivor', 'suspect', 'suspect', 'suspend', 'suspicion',
    'suspicious', 'sustain', 'sustainable', 'swallow', 'swear', 'sweat',
    'sweater', 'sweep', 'sweet', 'swell', 'swim', 'swimming', 'swing',
    'swing', 'switch', 'switch', 'sword', 'symbol', 'symbolic',
    'sympathy', 'symptom', 'syndrome', 'system', 'table', 'tablespoon',
    'tackle', 'tactic', 'tail', 'take', 'tale', 'talent', 'talented',
    'talk', 'talk', 'tall', 'tank', 'tape', 'target', 'target', 'task',
    'taste', 'taste', 'taxpayer', 'teach', 'teacher', 'teaching', 'team',
    'teammate', 'tear', 'tear', 'teaspoon', 'technical', 'technician',
    'technique', 'technological', 'technology', 'teen', 'teenage',
    'teenager', 'telephone', 'telescope', 'television', 'tell',
    'temperature', 'temple', 'temporary', 'tend', 'tendency', 'tender',
    'tennis', 'tension', 'tent', 'term', 'terms', 'terrain', 'terrible',
    'terribly', 'terrific', 'territory', 'terror', 'terrorism',
    'terrorist', 'terrorist', 'test', 'test', 'testify', 'testimony',
    'testing', 'text', 'textbook', 'texture', 'than', 'than', 'thank',
    'thanks', 'that', 'that', 'that', 'theater', 'their', 'them', 'theme',
    'themselves', 'then', 'theological', 'theology', 'theoretical',
    'theory', 'therapist', 'therapy', 'there', 'there', 'thereby',
    'therefore', 'these', 'they', 'thick', 'thigh', 'thin', 'thing',
    'think', 'thinking', 'third', 'thirty', 'this', 'this', 'thoroughly',
    'those', 'though', 'though', 'thought', 'thousand', 'thread',
    'threat', 'threaten', 'three', 'threshold', 'thrive', 'throat',
    'through', 'through', 'throughout', 'throw', 'thumb', 'thus',
    'ticket', 'tide', 'tight', 'tight', 'tighten', 'tightly', 'tile',
    'till', 'till', 'timber', 'time', 'timing', 'tiny', 'tire', 'tired',
    'tissue', 'title', 'tobacco', 'today', 'together', 'toilet',
    'tolerance', 'tolerate', 'toll', 'tomato', 'tomorrow', 'tone',
    'tongue', 'tonight', 'tool', 'tooth', 'topic', 'toss', 'total',
    'total', 'totally', 'touch', 'touch', 'touchdown', 'tough', 'tour',
    'tourism', 'tourist', 'tournament', 'toward', 'towards', 'towel',
    'tower', 'town', 'toxic', 'trace', 'trace', 'track', 'track', 'trade',
    'trade', 'trading', 'tradition', 'traditional', 'traditionally',
    'traffic', 'tragedy', 'tragic', 'trail', 'trail', 'trailer', 'train',
    'train', 'trainer', 'training', 'trait', 'transaction', 'transfer',
    'transfer', 'transform', 'transformation', 'transit', 'transition',
    'translate', 'translation', 'transmission', 'transmit', 'transport',
    'transport', 'transportation', 'trap', 'trap', 'trash', 'trauma',
    'travel', 'travel', 'traveler', 'tray', 'treasure', 'treat',
    'treatment', 'treaty', 'tree', 'tremendous', 'trend', 'trial',
    'tribal', 'tribe', 'trick', 'trigger', 'trim', 'trip', 'triumph',
    'troop', 'tropical', 'trouble', 'trouble', 'troubled', 'truck',
    'true', 'truly', 'trunk', 'trust', 'trust', 'truth', 'tube', 'tuck',
    'tumor', 'tune', 'tune', 'tunnel', 'turkey', 'turn', 'turn', 'twelve',
    'twentieth', 'twenty', 'twice', 'twin', 'twist', 'twist',
    'two-thirds', 'type', 'typical', 'typically', 'ugly', 'ultimate',
    'ultimately', 'unable', 'uncertain', 'uncertainty', 'uncle',
    'uncomfortable', 'uncover', 'under', 'under', 'undergo',
    'undergraduate', 'underlying', 'undermine', 'understand',
    'understanding', 'undertake', 'unemployment', 'unexpected', 'unfair',
    'unfold', 'unfortunately', 'unhappy', 'uniform', 'union', 'unique',
    'unit', 'unite', 'unity', 'universal', 'universe', 'university',
    'unknown', 'unless', 'unlike', 'unlike', 'unlikely', 'unprecedented',
    'until', 'until', 'unusual', 'update', 'upon', 'upper', 'upset',
    'upset', 'upstairs', 'urban', 'urge', 'used', 'useful', 'user',
    'usual', 'usually', 'utility', 'utilize', 'vacation', 'vaccine',
    'vacuum', 'valid', 'validity', 'valley', 'valuable', 'value', 'value',
    'vanish', 'variable', 'variation', 'variety', 'various', 'vary',
    'vast', 'vegetable', 'vehicle', 'vendor', 'venture', 'verbal',
    'verdict', 'version', 'versus', 'vertical', 'very', 'very', 'vessel',
    'veteran', 'veteran', 'victim', 'victory', 'video', 'view', 'view',
    'viewer', 'village', 'violate', 'violation', 'violence', 'violent',
    'virtual', 'virtually', 'virtue', 'virus', 'visible', 'vision',
    'visit', 'visit', 'visitor', 'visual', 'vital', 'vitamin', 'vocal',
    'voice', 'volume', 'voluntary', 'volunteer', 'volunteer', 'vote',
    'vote', 'voter', 'voting', 'vulnerable', 'wage', 'wagon', 'waist',
    'wait', 'wake', 'wake', 'walk', 'walk', 'walking', 'wall', 'wander',
    'want', 'warehouse', 'warm', 'warm', 'warmth', 'warn', 'warning',
    'warrior', 'wash', 'waste', 'waste', 'watch', 'watch', 'water',
    'wave', 'wave', 'weak', 'weaken', 'weakness', 'wealth', 'wealthy',
    'weapon', 'wear', 'weather', 'weave', 'wedding', 'weed', 'week',
    'weekend', 'weekly', 'weigh', 'weight', 'weird', 'welcome', 'welcome',
    'welfare', 'well', 'well', 'well-being', 'well-known', 'west',
    'western', 'whale', 'what', 'whatever', 'wheat', 'wheel',
    'wheelchair', 'when', 'when', 'whenever', 'where', 'where', 'whereas',
    'wherever', 'whether', 'which', 'while', 'while', 'whip', 'whisper',
    'white', 'white', 'whoever', 'whole', 'whole', 'whom', 'whose',
    'wide', 'widely', 'widespread', 'widow', 'wife', 'wild', 'wilderness',
    'wildlife', 'will', 'will', 'willing', 'willingness', 'wind', 'wind',
    'window', 'wine', 'wing', 'winner', 'winter', 'wipe', 'wire',
    'wisdom', 'wise', 'wish', 'wish', 'with', 'withdraw', 'withdrawal',
    'within', 'within', 'without', 'witness', 'witness', 'wolf', 'woman',
    'wonder', 'wonder', 'wonderful', 'wood', 'wooden', 'word', 'work',
    'work', 'worker', 'working', 'workout', 'workplace', 'works',
    'workshop', 'world', 'worldwide', 'worldwide', 'worried', 'worry',
    'worry', 'worth', 'worth', 'would', 'wound', 'wound', 'wrap', 'wrist',
    'write', 'writer', 'writing', 'written', 'wrong', 'wrong', 'yard',
    'yeah', 'year', 'yell', 'yellow', 'yesterday', 'yield', 'yield',
    'young', 'youngster', 'your', 'yours', 'yourself', 'youth', 'zone'
    ]

# See http://xkcd.com/936/
# This is a password generator.  You can use it to generate passwords
#   for several services all based upon a single passphrase.

if len(sys.argv) < 2:
    sys.stderr.write ("Usage: %s <key>\n" % sys.argv[0],)
    sys.stderr.write (" e.g.: %s twitter\n" % sys.argv[0],)
    sys.stderr.write (" e.g.: %s reddit\n" % sys.argv[0],)
    exit(-1)

n_dict = len(dict)

key = sys.argv[1]
h = hashlib.sha256()
h.update (PASSPHRASE)
h.update (key)
d = h.digest()

format = '>' + ('L' * NWORDS)
size = struct.calcsize (format)
nums = struct.unpack (format, d[:size])

words = [dict[n % n_dict] for n in nums]

def frob (word):
    return word[0].upper() + word[1:].lower()

print ''.join ([frob(x) for x in words])
