B
    ?[R                 @   sJ  d Z ddlZddlT ddlmZ ddddd	d
dddddddddddZdd Zdd Zdd Zdd Z	ddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddg Z
edkrFdd d!gZxeD ]x\ZZed"e eeZeeZeekred#eed$ee e	eZeekred%eed$ee qW dS (&  z$Id$    N)*)reduceZ0000Z0001Z0010Z0011Z0100Z0101Z0110Z0111Z1000Z1001Z1010Z1011Z1100Z1101Z1110Z1111)r                           	   
                  c             C   s&   dd | D }dd |D }d |S )z,Convert a key into a string of binary digitsc             S   s   g | ]}t |qS  )Zbord).0xr   r   2lib/python3.7/site-packages/Crypto/Util/RFC1751.py
<listcomp>(   s    z_key2bin.<locals>.<listcomp>c             S   s$   g | ]}t |d ?  t |d@   qS )r   r   )binary)r   r   r   r   r   r   )   s     )join)sZklr   r   r   _key2bin&   s    r   c             C   s    | |||  }t dd |dS )zjExtract a bitstring(2.x)/bytestring(2.x) from a string of binary digits, and return its
    numeric value.c             S   s   | d t | d S )Nr   0   )ord)r   yr   r   r   <lambda>0   s    z_extract.<locals>.<lambda>r   )r   )keystartlengthkr   r   r   _extract,   s    r%   c             C   s   d}xt dt| dD ]}| ||d  }t|}d}x$t dddD ]}|t||d }qDW t|t|d> d@  }x,t dddD ]}|tt||d  d	 }qW qW |d
d S )zkey_to_english(key:string(2.x)/bytes(3.x)) : string
    Transform an arbitrary key into a string containing English words.
    The key length must be a multiple of 8.
    r   r   r   @   r   r	      r    N)rangelenr   r%   bchrwordlist)r!   Zenglishindexsubkeyskbinpir   r   r   key_to_english2   s       r3   c             C   s  |    }td}xtdt|dD ]}|||d  }ddg }d}x|D ]}t|}d|d d  d }||> }	|	d? |	d? d@ |	d@   }
}}|d	kr||d
?  |
B ||d
? < ||d
? d  |B ||d
? d < ||d
? d  |B ||d
? d < n\|dkrH||d
?  |B ||d
? < ||d
? d  |B ||d
? d < n||d
?  |B ||d
? < |d }qTW tdd |td}t|}d}x&tdddD ]}|t	||d }qW |d
@ t	|ddkrt
d||dd  }q(W |S )zenglish_to_key(string):string(2.x)/bytes(2.x)
    Transform a string into a corresponding key.
    The string must contain words separated by whitespace; the number
    of words must be a multiple of 6.
    r   r   r	   r   r   r      r'   r   r   r   r   c             S   s   | t | S )N)r,   )r   r   r   r   r   r    \   s    z english_to_key.<locals>.<lambda>r&   zParity error in resulting key)uppersplitbr*   r+   r-   r.   r   r   r%   
ValueError)r   Lr!   r.   Zsublistcharbitsr2   shiftr   ZclZccZcrr/   r0   r1   r   r   r   english_to_keyD   s:      
 
 
 "
" r>   AZABEZACEZACTZADZADAZADDZAGOZAIDZAIMZAIRZALLZALPZAMZAMYZANZANAZANDZANNZANTANYZAPEZAPSZAPTZARCZAREZARKZARMZARTZASZASHZASKATZATEZAUGZAUKZAVEZAWEZAWKZAWLZAWNZAXZAYEZBADZBAGZBAHZBAMZBANZBARZBATZBAYZBEZBEDZBEEZBEGZBENZBETZBEYZBIBZBIDZBIGZBINZBITZBOBZBOGZBONZBOOZBOPZBOWZBOYZBUBZBUDZBUGZBUMZBUNZBUSZBUTZBUYZBYZBYEZCABZCALZCAMZCANZCAPZCARZCATZCAWZCODZCOGZCOLZCONZCOOZCOPZCOTZCOWZCOYZCRYZCUBZCUEZCUPZCURZCUTZDABZDADZDAMZDANZDARZDAYZDEEZDELZDENZDESZDEWZDIDZDIEZDIGZDINZDIPZDOZDOEZDOGZDONDOTZDOWZDRYZDUBZDUDZDUEZDUGZDUNZEARZEATZEDZEELZEGGZEGOZELIZELKZELMZELYZEMZENDZESTZETCZEVAZEVEZEWEZEYEZFADZFANZFARZFATZFAYZFEDZFEEZFEWZFIBZFIGZFINZFIRZFITZFLOZFLYZFOEZFOGZFORZFRYZFUMZFUNZFURZGABZGADZGAGZGALZGAMZGAPZGASZGAYZGEEZGELZGEMZGETZGIGZGILZGINZGOZGOTZGUMZGUNZGUSZGUTZGUYZGYMZGYPZHAZHADZHALZHAMZHANZHAPZHASZHATZHAWZHAYZHEZHEMZHENZHERZHEWZHEYZHIZHIDZHIMZHIPZHISZHITZHOZHOBZHOCZHOEZHOGZHOPZHOTZHOWZHUBZHUEZHUGZHUHZHUMZHUTIZICYZIDAZIFZIKEZILLZINKZINNZIOZIONZIQZIRAZIREZIRKZISZITZITSZIVYZJABZJAGZJAMZJANZJARZJAWZJAYZJETZJIGZJIMZJOZJOBZJOEZJOGZJOTZJOYZJUGZJUTZKAYZKEGZKENZKEYZKIDZKIMZKINZKITZLAZLABZLACZLADZLAGZLAMZLAPZLAWZLAYZLEAZLEDZLEEZLEGZLENZLEOZLETZLEWZLIDZLIEZLINZLIPZLITZLOZLOBZLOGZLOPZLOSZLOTZLOUZLOWZLOYZLUGZLYEZMAZMACZMADZMAEZMANZMAOZMAPZMATZMAWZMAYZMEZMEGZMELZMENZMETZMEWZMIDZMINZMITZMOBZMODZMOEZMOOZMOPZMOSZMOTZMOWZMUDZMUGZMUMZMYZNABZNAGZNANZNAPZNATZNAYZNEZNEDZNEEZNETZNEWZNIBZNILZNIPZNITZNOZNOBZNODZNONZNORZNOTZNOVZNOWZNUZNUNZNUTOZOAFZOAKZOARZOATZODDZODEZOFZOFFZOFTZOHZOILZOKZOLDZONZONEORZORBZOREZORRZOSZOTTZOURZOUTZOVAZOWZOWEZOWLZOWNZOXZPAZPADZPALZPAMZPANZPAPZPARZPATZPAWZPAYZPEAZPEGZPENZPEPZPERZPETZPEWZPHIZPIZPIEZPINZPITZPLYZPOZPODZPOEZPOPZPOTZPOWZPROZPRYZPUBZPUGZPUNZPUPZPUTZQUOZRAGZRAMZRANZRAPZRATZRAWZRAYZREBZREDZREPZRETZRIBZRIDZRIGZRIMZRIOZRIPZROBZRODZROEZRONZROTZROWZROYZRUBZRUEZRUGZRUMZRUNZRYEZSACZSADZSAGZSALZSAMZSANZSAPZSATZSAWZSAYZSEAZSECZSEEZSENZSETZSEWZSHEZSHYZSINZSIPZSIRZSISZSITZSKIZSKYZSLYZSOZSOBZSODZSONZSOPZSOWZSOYZSPAZSPYZSUBZSUDZSUEZSUMZSUNZSUPZTABZTADZTAGZTANZTAPZTARZTEAZTEDZTEEZTENZTHEZTHYZTICZTIEZTIMZTINZTIPZTOZTOEZTOGZTOMZTONZTOOZTOPZTOWZTOYZTRYZTUBZTUGZTUMZTUNZTWOZUNZUPZUSZUSEZVANZVATZVETZVIEZWADZWAGZWARZWASZWAYZWEZWEBZWEDZWEEZWETZWHOZWHYZWINZWITZWOKZWONZWOOZWOWZWRYZWUZYAMZYAPZYAWZYEZYEAZYESZYETZYOUZABEDZABELZABETZABLEZABUTZACHEZACIDZACMEZACREZACTAZACTSZADAMZADDSZADENZAFARZAFROZAGEEZAHEMZAHOYZAIDAZAIDEZAIDSZAIRYZAJARZAKINZALANZALECZALGAZALIAZALLYZALMAZALOEZALSOZALTOZALUMZALVAZAMENZAMESZAMIDZAMMOZAMOKZAMOSZAMRAZANDYZANEWZANNAZANNEZANTEZANTIZAQUAZARABZARCHZAREAZARGOZARIDZARMYZARTSZARTYZASIAZASKSZATOMZAUNTZAURAZAUTOZAVERZAVIDZAVISZAVONZAVOWZAWAYZAWRYZBABEZBABYZBACHZBACKZBADEZBAILZBAITZBAKEZBALDZBALEZBALIZBALKZBALLZBALMZBANDZBANEZBANGZBANKZBARBZBARDZBAREZBARKZBARNZBARRZBASEZBASHZBASKZBASSZBATEZBATHZBAWDZBAWLZBEADZBEAKZBEAMZBEANZBEARZBEATZBEAUZBECKZBEEFZBEENZBEERZBEETZBELAZBELLZBELTZBENDZBENTZBERGZBERNZBERTZBESSZBESTZBETAZBETHZBHOYZBIASZBIDEZBIENZBILEZBILKZBILLZBINDZBINGZBIRDZBITEZBITSZBLABZBLATZBLEDZBLEWZBLOBZBLOCZBLOTZBLOWZBLUEZBLUMZBLURZBOARZBOATZBOCAZBOCKZBODEZBODYZBOGYZBOHRZBOILZBOLDZBOLOZBOLTZBOMBZBONAZBONDZBONEZBONGZBONNZBONYZBOOKZBOOMZBOONZBOOTZBOREZBORGZBORNZBOSEZBOSSZBOTHZBOUTZBOWLZBOYDZBRADZBRAEZBRAGZBRANZBRAYZBREDZBREWZBRIGZBRIMZBROWZBUCKZBUDDZBUFFZBULBZBULKZBULLZBUNKZBUNTZBUOYZBURGZBURLZBURNZBURRZBURTZBURYZBUSHZBUSSZBUSTZBUSYZBYTEZCADYZCAFEZCAGEZCAINZCAKEZCALFCALLZCALMZCAMEZCANEZCANTZCARDZCAREZCARLZCARRZCARTZCASEZCASHZCASKZCASTZCAVEZCEILZCELLZCENTZCERNZCHADZCHARZCHATZCHAWZCHEFZCHENZCHEWZCHICZCHINZCHOUZCHOWZCHUBZCHUGZCHUMZCITEZCITYZCLADZCLAMZCLANZCLAWZCLAYZCLODZCLOGZCLOTZCLUBZCLUEZCOALZCOATZCOCAZCOCKZCOCOZCODAZCODEZCODYZCOEDZCOILZCOINZCOKEZCOLAZCOLDZCOLTZCOMAZCOMBZCOMEZCOOKZCOOLZCOONZCOOTZCORDZCOREZCORKZCORNZCOSTZCOVEZCOWLZCRABZCRAGZCRAMZCRAYZCREWZCRIBZCROWZCRUDZCUBAZCUBEZCUFFZCULLZCULTZCUNYZCURBZCURDZCUREZCURLZCURTZCUTSZDADEZDALEZDAMEZDANAZDANEZDANGZDANKZDAREZDARKZDARNZDARTZDASHZDATAZDATEZDAVEZDAVYZDAWNZDAYSZDEADZDEAFZDEALZDEANZDEARZDEBTZDECKZDEEDZDEEMZDEERZDEFTZDEFYZDELLZDENTZDENYZDESKZDIALZDICEZDIEDZDIETZDIMEZDINEZDINGZDINTZDIREZDIRTZDISCZDISHZDISKZDIVEZDOCKZDOESZDOLEZDOLLZDOLTZDOMEZDONEZDOOMZDOORZDORAZDOSEZDOTEZDOUGZDOURZDOVEZDOWNZDRABZDRAGZDRAMZDRAWZDREWZDRUBZDRUGZDRUMZDUALZDUCKZDUCTZDUELZDUETZDUKEZDULLZDUMBZDUNEZDUNKZDUSKZDUSTZDUTYZEACHZEARLZEARNZEASEZEASTZEASYZEBENZECHOZEDDYZEDENZEDGEZEDGYZEDITZEDNAZEGANZELANZELBAZELLAELSEZEMILZEMITZEMMAZENDSZERICZEROSZEVENZEVERZEVILZEYEDZFACEZFACTZFADEZFAILZFAINZFAIRZFAKEZFALLZFAMEZFANGZFARMZFASTZFATEZFAWNZFEARZFEATZFEEDZFEELZFEETZFELLZFELTZFENDZFERNZFESTZFEUDZFIEFZFIGSZFILEZFILLZFILMZFINDZFINEZFINKZFIREZFIRMZFISHZFISKZFISTZFITSZFIVEZFLAGZFLAKZFLAMZFLATZFLAWZFLEAZFLEDZFLEWZFLITZFLOCZFLOGZFLOWZFLUBZFLUEZFOALZFOAMZFOGYZFOILZFOLDZFOLKZFONDZFONTZFOODZFOOLZFOOTZFORDZFOREZFORKZFORMZFORTZFOSSZFOULZFOURZFOWLZFRAUZFRAYZFREDZFREEZFRETZFREYZFROGZFROMZFUELZFULLZFUMEZFUNDZFUNKZFURYZFUSEZFUSSZGAFFZGAGEZGAILZGAINZGAITZGALAZGALEZGALLZGALTZGAMEZGANGZGARBZGARYZGASHZGATEZGAULZGAURZGAVEZGAWKZGEARZGELDZGENEZGENTZGERMZGETSZGIBEZGIFTZGILDZGILLZGILTZGINAZGIRDZGIRLZGISTZGIVEZGLADZGLEEZGLENZGLIBZGLOBZGLOMZGLOWZGLUEZGLUMZGLUTZGOADZGOALZGOATZGOERZGOESZGOLDZGOLFZGONEZGONGZGOODZGOOFZGOREZGORYZGOSHZGOUTZGOWNZGRABZGRADZGRAYZGREGZGREWZGREYZGRIDZGRIMZGRINZGRITZGROWZGRUBZGULFZGULLZGUNKZGURUZGUSHZGUSTZGWENZGWYNZHAAGZHAASZHACKZHAILZHAIRZHALEZHALFZHALLZHALOZHALTZHANDZHANGZHANKZHANSZHARDZHARKZHARMZHARTZHASHZHASTZHATEZHATHZHAULZHAVEZHAWKZHAYSZHEADZHEALZHEARZHEATZHEBEZHECKZHEEDZHEELZHEFTZHELDZHELLZHELMZHERBZHERDZHEREZHEROZHERSZHESSZHEWNZHICKZHIDEZHIGHZHIKEZHILLZHILTZHINDZHINTZHIREZHISSZHIVEZHOBOZHOCKZHOFFZHOLDZHOLEZHOLMZHOLTHOMEZHONEZHONKZHOODZHOOFZHOOKZHOOTZHORNZHOSEZHOSTZHOURZHOVEZHOWEZHOWLZHOYTZHUCKZHUEDZHUFFZHUGEZHUGHZHUGOZHULKZHULLZHUNKZHUNTZHURDZHURLZHURTZHUSHZHYDEZHYMNZIBISZICONZIDEAZIDLEZIFFYZINCAZINCHZINTOZIONSZIOTAZIOWAZIRISZIRMAZIRONZISLEZITCHZITEMZIVANZJACKZJADEZJAILZJAKEZJANEZJAVAZJEANZJEFFZJERKZJESSZJESTZJIBEZJILLZJILTZJIVEZJOANZJOBSZJOCKZJOELZJOEYZJOHNZJOINZJOKEZJOLTZJOVEZJUDDZJUDEZJUDOZJUDYZJUJUZJUKEZJULYZJUNEZJUNKZJUNOZJURYZJUSTZJUTEZKAHNZKALEZKANEZKANTZKARLZKATEZKEELZKEENZKENOZKENTZKERNZKERRZKEYSZKICKZKILLZKINDZKINGZKIRKZKISSZKITEZKLANZKNEEZKNEWZKNITZKNOBZKNOTZKNOWZKOCHZKONGZKUDOZKURDZKURTZKYLEZLACEZLACKZLACYZLADYZLAIDZLAINZLAIRZLAKEZLAMBZLAMEZLANDZLANEZLANGZLARDZLARKZLASSZLASTZLATEZLAUDZLAVAZLAWNZLAWSZLAYSZLEADZLEAFZLEAKZLEANZLEARZLEEKZLEERZLEFTZLENDZLENSZLENTZLEONZLESKLESSZLESTZLETSZLIARZLICEZLICKZLIEDZLIENZLIESZLIEUZLIFEZLIFTZLIKEZLILAZLILTZLILYZLIMAZLIMBZLIMEZLINDZLINEZLINKZLINTZLIONZLISAZLISTZLIVEZLOADZLOAFZLOAMZLOANZLOCKZLOFTZLOGEZLOISZLOLAZLONEZLONGZLOOKZLOONZLOOTZLORDZLOREZLOSEZLOSSZLOSTZLOUDZLOVEZLOWEZLUCKZLUCYZLUGEZLUKEZLULUZLUNDZLUNGZLURAZLUREZLURKZLUSHZLUSTZLYLEZLYNNZLYONZLYRAZMACEZMADEZMAGIZMAIDZMAILZMAINZMAKEZMALEZMALIZMALLZMALTZMANAZMANNZMANYZMARCZMAREMARKZMARSZMARTZMARYZMASHMASKZMASSZMASTZMATEZMATHZMAULZMAYOZMEADZMEALZMEANZMEATZMEEKZMEETZMELDZMELTZMEMOZMENDZMENUZMERTZMESHZMESSZMICEZMIKEZMILDZMILEZMILKZMILLZMILTZMIMIZMINDZMINEZMINIZMINKZMINTZMIREZMISSZMISTZMITEZMITTZMOANZMOATZMOCKZMODEZMOLDZMOLEZMOLLZMOLTZMONAZMONKZMONTZMOODZMOONZMOORZMOOTZMOREZMORNZMORTZMOSSZMOSTZMOTHZMOVEZMUCHZMUCKZMUDDZMUFFZMULEZMULLZMURKZMUSHZMUSTZMUTEZMUTTZMYRAZMYTHZNAGYZNAILZNAIRNAMEZNARYZNASHZNAVEZNAVYZNEALZNEARZNEATZNECKZNEEDZNEILZNELLZNEONZNEROZNESSZNESTZNEWSZNEWTZNIBSZNICEZNICKZNILEZNINAZNINEZNOAHZNODEZNOELZNOLLZNONEZNOOKZNOONZNORMZNOSEZNOTEZNOUNZNOVAZNUDEZNULLZNUMBZOATHZOBEYZOBOEZODINZOHIOZOILYZOINTZOKAYZOLAFZOLDYZOLGAZOLINZOMANZOMENZOMITZONCEZONESZONLYZONTOZONUSZORALZORGYZOSLOZOTISZOTTOZOUCHZOUSTZOUTSZOVALZOVENZOVERZOWLYZOWNSZQUADZQUITZQUODZRACEZRACKZRACYZRAFTZRAGEZRAIDZRAILZRAINZRAKEZRANKZRANTZRAREZRASHZRATEZRAVEZRAYSZREADZREALZREAMZREARZRECKZREEDZREEFZREEKZREELZREIDZREINZRENAZRENDZRENTZRESTZRICEZRICHZRICKZRIDEZRIFTZRILLZRIMEZRINGZRINKZRISEZRISKZRITEZROADZROAMZROARZROBEZROCKZRODEZROILZROLLZROMEZROODZROOFZROOKZROOMZROOTZROSAZROSEZROSSZROSYZROTHZROUTZROVEZROWEZROWSZRUBEZRUBYZRUDEZRUDYZRUINZRULEZRUNGZRUNSZRUNTZRUSEZRUSHZRUSKZRUSSZRUSTZRUTHZSACKZSAFEZSAGEZSAIDZSAILZSALEZSALKZSALTZSAMEZSANDZSANEZSANGZSANKZSARAZSAULZSAVEZSAYSZSCANZSCARZSCATZSCOTZSEALZSEAMZSEARZSEATZSEEDZSEEKZSEEMZSEENZSEESZSELFZSELLZSENDZSENTZSETSZSEWNZSHAGZSHAMZSHAWZSHAYZSHEDZSHIMZSHINZSHODZSHOEZSHOTZSHOWZSHUNZSHUTZSICKZSIDEZSIFTZSIGHZSIGNZSILKZSILLZSILOZSILTZSINEZSINGZSINKZSIREZSITEZSITSZSITUZSKATZSKEWZSKIDZSKIMZSKINZSKITZSLABZSLAMZSLATZSLAYZSLEDZSLEWZSLIDZSLIMZSLITZSLOBZSLOGZSLOTZSLOWZSLUGZSLUMZSLURZSMOGZSMUGZSNAGZSNOBZSNOWZSNUBZSNUGZSOAKZSOARZSOCKZSODAZSOFAZSOFTZSOILZSOLDZSOMEZSONGZSOONZSOOTZSOREZSORTZSOULZSOURZSOWNZSTABZSTAGZSTANSTARZSTAYZSTEMZSTEWZSTIRZSTOWZSTUBZSTUNZSUCHZSUDSZSUITZSULKZSUMSZSUNGZSUNKZSUREZSURFZSWABZSWAGZSWAMZSWANZSWATZSWAYZSWIMZSWUMZTACKZTACTZTAILZTAKEZTALEZTALKZTALLZTANKZTASKZTATEZTAUTZTEALZTEAMZTEARZTECHZTEEMZTEENZTEETZTELLZTENDZTENTZTERMZTERNZTESSZTESTZTHANZTHATZTHEEZTHEMZTHENZTHEYZTHINZTHISZTHUDZTHUGZTICKZTIDEZTIDYZTIEDZTIERZTILEZTILLZTILTZTIMEZTINAZTINEZTINTZTINYZTIREZTOADZTOGOZTOILZTOLDZTOLLZTONEZTONGZTONYZTOOKZTOOLZTOOTZTOREZTORNZTOTEZTOURZTOUTZTOWNZTRAGZTRAMZTRAYZTREEZTREKZTRIGZTRIMZTRIOZTRODZTROTZTROYZTRUEZTUBAZTUBEZTUCKZTUFTZTUNAZTUNEZTUNGZTURFZTURNZTUSKZTWIGZTWINZTWITZULANZUNITZURGEZUSEDZUSERZUSESZUTAHZVAILZVAINZVALEZVARYZVASEZVASTZVEALZVEDAZVEILZVEINZVENDZVENTZVERBZVERYZVETOZVICEZVIEWZVINEZVISEZVOIDZVOLTZVOTEZWACKZWADEZWAGEZWAILZWAITZWAKEZWALEZWALKZWALLZWALTZWANDZWANEZWANGZWANTZWARDZWARMZWARNZWARTZWASHZWASTZWATSZWATTZWAVEZWAVYZWAYSZWEAKZWEALZWEANZWEARZWEEDZWEEKZWEIRZWELDZWELLZWELTZWENTZWEREZWERTZWESTZWHAMZWHATZWHEEZWHENZWHETZWHOAZWHOMZWICKZWIFEZWILDZWILLZWINDZWINEZWINGZWINKZWINOZWIREZWISEZWISHZWITHZWOLFZWONTZWOODZWOOLZWORDZWOREZWORKZWORMZWORNZWOVEZWRITZWYNNZYALEZYANGZYANKZYARDZYARNZYAWLZYAWNZYEAHZYEARZYELLZYOGAZYOKE__main__)ZEB33F77EE73D4053zTIDE ITCH SLOW REIN RULE MOT)Z CCAC2AED591056BE4F90FD441C534766z8RASH BUSH MILK LOOK BAD BRIM AVID GAFF BAIT ROT POD LOVE)Z EFF81F9BFBC65350920CDD7416DE8009z7TROD MUTE TAIL WARM CHAR KONG HAAG CITY BORE O TEAL AWLz
Trying keyzkey_to_english fails on keyz, producingzenglish_to_key fails on key)Z__revision__ZbinasciiZCrypto.Util.py3compat	functoolsr   r   r   r%   r3   r>   r-   __name__datar!   ZwordsprintZa2b_hexZw2reprstrZk2r   r   r   r   <module>   s  #(((((((((((((((((((((((((((((((((($                                                                                                                                                                                       


