B °-_zWã@sxdZddlZddlZddlZddlZddddddd d d d d ddddddgZej ejdd¡Z e  dej ej B¡Z dd„Zdd„ZdZdd„eedƒDƒZdd d!d"œZd>d$d%„Zd&d'„Zd(d)„Zd*d+„ZGd,d„dƒZGd-d„deƒZd?d/d„ZiZd@d0d„ZdAd1d„Ziaiad2adBd3d „Z dCd4d „Z!dDd5d „Z"d6d „Z#d7d„Z$d8d „Z%d9d„Z&d:d„Z'd;d„Z(d[ \t]+) | # spaces and horizontal tabs (?P[0-9]+\b) | # decimal integer (?Pn\b) | # only n is allowed (?P[()]) | (?P[-*/%+?:]|[>, # <=, >=, ==, !=, &&, ||, # ? : # unary and bitwise ops # not allowed (?P\w+|.) # invalid token ccsTxHt t|¡D]8}|j}|dkr"q| |¡}|dkr@td|ƒ‚|VqWdVdS)NZ WHITESPACESZINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralZmoZkindÚvalue©rú/usr/lib/python3.7/gettext.pyÚ _tokenizeVs   rcCs|rtd|ƒStdƒSdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)rrrrÚ_erroras r ))z||)z&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%cCs i|]\}}|D] }||“qqSrr)Ú.0ÚiZopsÚoprrrú osr+éÚorÚandz//)z||z&&r&éÿÿÿÿc Cs®d}t|ƒ}x|dkr(|d7}t|ƒ}qW|dkr\t|ƒ\}}d||f}|dkr¬tdƒ‚nP|dkrrd ||f}n:yt|d ƒ}Wntk ržt|ƒd‚YnXd ||f}t|ƒ}d }xh|tkr t|}||krÖP|d krî|d krîd|}t ||¡}t||dƒ\} }d||| f}|}qºW||kr:dkrFnnd|}|dkr¦|dkr¦t|dƒ\} }|dkrzt|ƒ‚t|ƒ\} }d| || f}|dkr¦d|}||fS)Nrú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé z%s%déd)ééz(%s)r,z%s %s %sr7ú?rú:z%s if %s else %s)ÚnextÚ_parserÚintr Ú _binary_opsÚ _c2py_opsÚget) ÚtokensZpriorityÚresultÚnexttokÚsubrÚjr)r*ÚrightZif_trueZif_falserrrr;rsP           r;cCsZy t|ƒ}Wn(tk r4td|jjfƒd‚YnXddl}| d|jjftd¡|S)Nz'Plural value must be an integer, got %srr7)ÚroundÚ TypeErrorÚ __class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r3r)rJrrrÚ_as_int£s  rMcCs´t|ƒdkrtdƒ‚y~tt|ƒƒ\}}|r2t|ƒ‚d}x>|D]6}|dkrb|d7}|dkrrtdƒ‚q<|dkr<|d8}qt|ƒD]\}}!t |!|ƒ|||f<qšWnt ||ƒ|t ||ƒ<| d7} | d7} qìWdS)z8Override this method to support alternative .mo formats.r)ÚunpackÚnamercSs t|dkƒS)Nr,)r<)r3rrrÚ]óz(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number ézFile is corruptó r9r,Ú z content-typezcharset=z plural-formsú;zplural=Úasciió)ZstructrÚgetattrÚ_catalogrÚreadrPÚLE_MAGICÚBE_MAGICÚOSErrorr~ÚVERSIONSÚstrrZÚsplitÚdecodeÚstripÚlowerrbrcrUÚ enumerate)"rfrgrÚfilenameZcatalogZbufZbuflenÚmagicr}ZmsgcountZ masteridxZtransidxZiiZ major_versionZ minor_versionr)ZmlenZmoffZmendZtlenZtoffZtendÚmsgrpZlastkZb_itemÚitemÚkÚvrrrrnroÚxrrrr;Tsr                      zGNUTranslations._parsecCsRtƒ}|j ||¡}||kr2|jr.|j |¡S|}|jrD| |j¡S| t ¡¡S)N) ÚobjectrŠr?rerrdrlrrm)rfrkÚmissingrprrrrªs  zGNUTranslations.lgettextcCsvy|j|| |¡f}Wn<tk rT|jr>|j |||¡S|dkrL|}n|}YnX|jrh| |j¡S| t ¡¡S)Nr,) rŠrÚKeyErrorrerrdrlrrm)rfrnror3rprrrrµs  zGNUTranslations.lngettextcCs6tƒ}|j ||¡}||kr2|jr.|j |¡S|S|S)N)rrŠr?rer )rfrkržrprrrr Ãs zGNUTranslations.gettextcCsZy|j|| |¡f}Wn<tk rT|jr>|j |||¡S|dkrL|}n|}YnX|S)Nr,)rŠrrŸrer)rfrnror3rprrrrÌs zGNUTranslations.ngettextN) rIrzr{rŒrrr~r;rrr rrrrrrHsV  Fc Cs"|dkr t}|dkrTg}x(dD] }tj |¡}|r| d¡}PqWd|krT| d¡g}x0|D](}x"t|ƒD]}||krl| |¡qlWq^W|r”g} nd} x„|D]|}|dkr¬Ptj ||dd|¡} tj d|dd|¡} tj  | ¡rø|rô|  | ¡n| Stj  | ¡rž|r|  | ¡qž| SqžW| S)N)ZLANGUAGEÚLC_ALLÚ LC_MESSAGESZLANGr9ÚCr¡z%s.moz/usr/share/locale-langpack) Ú_default_localedirÚosÚenvironr?r‘r[raÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallZenvarr`ZnelangsZlangZnelangrAÚmofileZ mofile_lprrrrÚsD            c CsØ|dkr t}t|||dd}|sB|r*tƒSddlm}t|d|ƒ‚d}xŒ|D]„} |tj | ¡f} t   | ¡} | dkr˜t | dƒ} t   | || ƒ¡} WdQRXddl } |   | ¡} |r¸|  |¡|dkrÆ| }qL| | ¡qLW|S)NT)r¬r)ÚENOENTz$No translation file found for domainÚrb)rrrÚerrnor®ÚFileNotFoundErrorr¤r¦ÚabspathÚ _translationsr?ÚopenÚ setdefaultÚcopyrtri)r©rªr«Zclass_rjr_Zmofilesr®rAr­ÚkeyÚtrgr¶rrrrs0      cCst||d|d}| |¡dS)NT)rjr_)rr)r©rªr_ryr¸rrrr5sZmessagescCs|dk r |atS)N)Ú_current_domain)r©rrrrCscCs|dk r|t|<t |t¡S)N)Ú _localedirsr?r£)r©rªrrrr JscCs|dk r|t|<t |¡S)N)Ú_localecodesetsr?)r©r_rrrr QscCs@y t|t |d¡t |¡d}Wntk r4|SX| |¡S)N)r_)rrºr?r»rŽr )r©rkr¸rrrr Xs cCsRt |¡}yt|t |d¡|d}Wn"tk rF| |pBt ¡¡SX| |¡S)N)r_) r»r?rrºrŽrlrrmr)r©rkr_r¸rrrr`s  cCsTy t|t |d¡t |¡d}Wn$tk rD|dkr<|S|SYnX| |||¡S)N)r_r,)rrºr?r»rŽr)r©rnror3r¸rrrr hs cCsht |¡}yt|t |d¡|d}Wn4tk rX|dkrB|}n|}| |pTt ¡¡SX| |||¡S)N)r_r,) r»r?rrºrŽrlrrmr)r©rnror3r_r¸rprrrrss cCs tt|ƒS)N)r r¹)rkrrrr scCs tt|ƒS)N)rr¹)rkrrrr‚scCstt|||ƒS)N)r r¹)rnror3rrrr…scCstt|||ƒS)N)rr¹)rnror3rrrrˆs)r/)NNF)NNNFN)NNN)N)N)N),Ú__doc__rr¤rÚsysÚ__all__r¦r§Ú base_prefixr£ÚcompileÚVERBOSEÚDOTALLrrr r=r•r>r;rMrUrarrrr³rrrºr»r¹rr r r rr rr rrrrrrrrÚ sX&        1 $*K 5 #