^Rc@s dZddlZddlZddlZddlZddlZddlZy eZWn'e k rde fdYZnXddddd d d d d ddddddddddddddgZ yddl TWnne k rKdZdZdZd Zd!Zd"Zd#Zd$ZeZd%Zdd&Zd'Zd(ZnXeZiZejed)Zd*Z e!d+Z"d,Z#ej$d-Z%e!e!d.Z&e!e!d/Z'e!d0Z(e)e!e!d1Z*d2Z+e,d3Z-d4Z.d5Z/eZ0d6j1d7e2d8DZ3d9Z4d:Z5d;Z6dd>Z7ed?Z8dd@ZedAZ9ej:j;dBre)dCZ<n4ye=Wne k re)dDZ<n Xe)dEZ<idFdG6dFdH6dIdJ6dKdL6dKdM6dNdO6dIdP6dIdQ6dIdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dKdo6dpdq6drds6dNdt6dudv6dwdx6dydz6d{d|6Z>iKd}d~6d}d6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dFdH6dd6dd6dFd6dd6dFd6dFd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d 6dd 6d d 6d d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d'd)6d*d+6d'd,6d'd-6d.d/6d.d06d.d16d2d36d4d56d4d66d'd76d'd86d'd96d:d;6d<d=6d:d>6d:d?6d<d@6d:dA6d<dB6d<dC6d:dD6d:dE6d:dF6dGdH6dIdJ6dKdL6dKdM6dNdO6dNdP6dQdR6dNdS6dTdU6dTdV6dWdX6dWdY6dZd[6dWd\6d]d^6d]d_6d`da6d`db6dGdc6dGdd6dIde6dIdf6dGdg6dIdh6dIdi6djdk6dIdl6dmdn6dmdo6dpdq6dpdr6dsdt6dpdu6dGdv6dwdx6dydz6d{d|6d{d}6d{d~6dd6dd6dd6dd6dd6ddJ6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dFd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d 6d d 6d d 6d d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d!d#6d$d%6d$d&6d'd(6d'd)6d*d+6d*d,6d-d.6d-d/6dd06d1d26d1d36dd46d5d66d1d76d8d96d1d:6d;d<6d;d=6d;d>6d?d@6d?dA6dBdC6d?dD6dEdF6dEdG6dHdI6dJdK6dJdL6dJdM6dNdO6dNdP6dJdQ6dJdR6dSdT6dJdU6dNdV6dNdW6dXdY6dXdZ6dXd[6d\d]6d\d^6d_d`6dadb6dcdd6dcde6dcdf6dgdh6dgdi6djdk6dgdl6ddm6ddn6ddo6dpdq6dpdr6dsdt6dsdu6dsdv6dwdx6dwdy6d_dz6d_d{6d_d|6dad}6dad~6dd6dad6dd6dd6dd6dd6dd6dd6dd6d_d6d_d6d_d6d_d6dsd6d_d6d_d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dGd6dGd6dGd6d]d6dGd6dGd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d%d6d%d6d%d6d%d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6dd 6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd!6dd"6dd#6dd$6dd%6dd&6d'd(6d'd)6d'd*6d+d,6d'd-6d.d/6d.d06d.d16d2d36d2d46d5d66d7d86d7d96d:d;6d:d<6d:d=6d:d>6d:d?6d:d@6dAdB6dCdD6dEdF6dEdG6dEdH6dIdJ6dKdL6dKdM6dNdO6dNdP6dQdR6dSdT6dSdU6dVdW6dVdX6dSdY6dQdZ6dQd[6dQd\6d]d^6d_d`6d_da6d_db6dcdd6dedf6dgdh6dgdi6dgdj6dkdl6dkdm6dndo6dkdp6dndq6drds6dtdu6dtdv6dwdx6dwdy6dwdz6d{d|6d{d}6d{d~6dd6dd6dd6dd6dd6dd6dwd6dd6dyd6dyd6dyd6dd6dd6dd6dd6dwd6dwd6dwd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dFd6dFd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d 6d d 6dd 6d d6dd6dd6dd6dd6dd6d d6dd6dd6dd6dd6dd6dd 6dd!6d"d#6d$d%6d%d&6d"d'6dd(6d)d*6d)d+6d)d,6d-d.6d-d/6d-d06d1d26d3d46d1d56d1d66d-d76d1d86d1d96d:d;6d:d<6dd=6dd>6dd?6dd@6dAdB6dAdC6dAdD6dEdF6dEdG6ddH6ddI6dEdJ6d"dK6d"dL6d:dM6ddN6ddO6dPdQ6dEdR6ddS6ddT6ddU6d"dV6ddW6dXdY6d"dZ6d:d[6d:d\6dXd]6dEd^6dEd_6d`da6d`db6d`dc6ddde6dddf6dddg6dhdi6djdk6dldm6dldn6dodp6dodq6drds6dodt6dhdu6dhdv6dhdw6djdx6djdy6dhdz6dhd{6d|d}6d|d~6d|d6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d!d6dd6dd6d!d6dd6dd6dd6dd6dd6dd6dd6dd6dd6d#d6d#d6dd6dd6dd6Z?idd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d d 6d d 6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d"d$6d%d&6d'd(6d)d*6d+d,6d-d.6d-d/6d0d16d2d36d4d56d6d"6d7d86d9d:6d;d<6d=d>6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dqdr6dods6dtdu6dvdw6dxdy6dzd{6d|d}6d~d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d 6d d 6d d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d+d,6d-d.6d+d/6d0d16d2d36d4d56d6d76d8d96d:d;6d<d=6d>d?6d@dA6dBdC6dDdE6dFdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6d\d]6d^d_6d`da6dbdc6ddde6dfdg6dhdi6djdk6dldm6dndo6dpdq6drds6dtdu6dvdw6dxdy6dzd{6dzd|6d}d~6dd6dd6dd6dd6dd6dd6dd6Z@dZAyeWne k r nXe jBdeCdkr dGHHeAHdGHHe/ndS(s Locale support. The module provides low-level access to the C lib's locale APIs and adds high level number formatting APIs as well as a locale aliasing engine to complement these. The aliasing engine includes support for many commonly used locale names and maps them to values suitable for passing to the C lib's setlocale() function. It also includes default encodings for all supported locale names. iNt_unicodecBseZRS((t__name__t __module__(((s/usr/lib/python2.7/locale.pyRst getlocaletgetdefaultlocaletgetpreferredencodingtErrort setlocalet resetlocalet localeconvtstrcolltstrxfrmtstrtatoftatoitformatt format_stringtcurrencyt normalizetLC_CTYPEt LC_COLLATEtLC_TIMEt LC_MONETARYt LC_NUMERICtLC_ALLtCHAR_MAX(t*iiiiiiiicCsidgd6dd6dd6dd6dd6gd6dd 6d d 6dd 6dd 6dd6dd6dd6dd6dd6dd6dd6dd6S(sd localeconv() -> dict. Returns numeric and monetary locale-specific parameters. itgroupingttcurrency_symbolt n_sign_posnt p_cs_precedest n_cs_precedest mon_groupingtn_sep_by_spacet.t decimal_pointt negative_signt positive_signtp_sep_by_spacetint_curr_symbolt p_sign_posnt thousands_septmon_thousands_sept frac_digitstmon_decimal_pointtint_frac_digits((((s/usr/lib/python2.7/locale.pyR ;s$ cCs|dkrtdndS(sd setlocale(integer,string=None) -> string. Activates/queries locale processing. RtCs*_locale emulation only supports "C" localeN(NRR/(tNoneR(tcategorytvalue((s/usr/lib/python2.7/locale.pyRSs  cCs t||S(sb strcoll(string,string) -> int. Compares two strings according to the locale. (tcmp(tatb((s/usr/lib/python2.7/locale.pyR [scCs|S(sd strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. ((ts((s/usr/lib/python2.7/locale.pyR ascCs#t}tr|jtn|S(N(t _localeconvt_override_localeconvtupdate(td((s/usr/lib/python2.7/locale.pyR ns ccsrd}xe|D]]}|tkr#dS|dkr_|dkrJtdnxtr[|VqMWn|V|}q WdS(Nisinvalid grouping(R0Rt ValueErrortTrue(Rt last_intervaltinterval((s/usr/lib/python2.7/locale.pyt_grouping_intervals|s      c Cs6t}||rdpd}||r.dp1d}|sE|dfS|ddkrz|j}|t|}|}nd}d}g}xXt|D]J} | s|dd kr|}d}Pn|j|| || }qW|r|j|n|j||j||t|t|d fS( NR+R*R!Riit Rt 0123456789i(R trstriptlenR?tappendtreversetjoin( R6tmonetarytconvR*Rtstrippedt right_spacest left_spacestgroupsR>((s/usr/lib/python2.7/locale.pyt_groups0     cCsd}x.|r6||dkr6|d7}|d8}q Wt|d}x.|rw||dkrw|d8}|d8}qJW|||d!S(NiR@i(RC(R6tamounttlpostrpos((s/usr/lib/python2.7/locale.pyt_strip_paddings  sG%(?:\((?P.*?)\))?(?P[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]cGsctj|}| s4t|jt|krMtdt|nt|||||S(sReturns the locale-aware substitution of a %? specifier (percent). additional is for format strings which contain one or more '*' modifiers.sHformat() must be given exactly one %%char format specifier, %s not valid(t _percent_retmatchRCtgroupR;treprt_format(tpercentR2RRGt additionalRS((s/usr/lib/python2.7/locale.pyRs %c Gs |r||f|}n ||}|ddkrd}|jd}|rrt|dd|\|d<}nt|rdpd}|j|}|rt||}qnR|ddkrd}|rt|d|\}}n|rt||}qn|S( NiteEfFgGiR#RGR-R$tdiu(tsplitRMR RFRQ( RWR2RRGRXt formattedtsepstpartsR$((s/usr/lib/python2.7/locale.pyRVs( #c Csittj|}tjd|}tj|rg}x|D]K}|jddkro|jdqC|jt|j||qCWnt |t s|f}ng}d}x|D]}|jddkr|jdq|jdj d}|jt |j|||t ||d|d|!|d|7}qWt |}||S(sFormats a string in the same way that the % formatting would use, but takes the current locale into account. Grouping is applied if the third parameter is true.s%sit%it modifiersRi(tlistRRtfinditertsubtoperatort isMappingTypeRTRDRt isinstancettupletcountRVtFalse( tftvalRtpercentstnew_ftnew_valtperctit starcount((s/usr/lib/python2.7/locale.pyRs0 &   c Cst}||rdpd}|dkr:tdntd|t||dt}d|d}|r||rd pd }||d krd pd }||d krdpd} |r|| rdpd|}q|| rdpd|}n||d krdpd} ||d kr/dp2d} | d krSd|d}n~| dkrl| |}ne| dkr|| }nL| dkr|jd| }n+| dkr|jd| }n | |}|jddjddS(sIFormats val according to the currency settings in the current locale.R.R,is9Currency formatting is not possible using the 'C' locale.s%%.%ifRGtR(RiR RR"R'R@RRR)R%R&t(t)iiii(R R;RtabsR<treplace( RktsymbolRt internationalRHtdigitsR6tsmbtprecedest separatedtsign_postsign((s/usr/lib/python2.7/locale.pyRs6  "        cCs td|S(s9Convert float to integer, taking the locale into account.s%.12g(R(Rk((s/usr/lib/python2.7/locale.pyR -scCsZtd}|r(|j|d}ntd}|rP|j|d}n||S(s<Parses a string as a float according to the locale settings.R*RR$R#(R Rw(tstringtfuncttstdd((s/usr/lib/python2.7/locale.pyR 1s  cCs t|tS(sAConverts a string to an integer according to the locale settings.(R tint(R ((s/usr/lib/python2.7/locale.pyR>scCsUttdtddd}|GdGt|GHtd}|GdGt|GHdS(NRs%di[itisgQ @(RRRRR R (ts1((s/usr/lib/python2.7/locale.pyt_testBs   RccsI|]?}t|tdkr:|tdkr:|dn|VqdS(tAtZi N(tchrtord(t.0tx((s/usr/lib/python2.7/locale.pys WsicCst|tr!|jd}n|jt}d|krQ|jdd}nd|kr|jdd \}}|d|}n |}d}|jdd}|jdd}|d|}tj|d}|dk r|Stj|d}|dk rd|kr)|jd\}}n |}d}|rwt j |}t j j j||}t j||}n|}|r|d|S|Sn|SdS( s Returns a normalized locale code for the given locale name. The returned locale code is formatted for use with setlocale(). If normalization fails, the original name is returned unchanged. If the given encoding is not known, the function defaults to the default encoding for the locale code just like setlocale() does. tasciit:R#iRt-t_N(RfRtencodet translatet_ascii_lower_mapRwR[t locale_aliastgetR0t encodingstnormalize_encodingtaliasestlocale_encoding_alias(t localenametfullnametlangnametencodingt norm_encodingt lookup_nametcodetdefenc((s/usr/lib/python2.7/locale.pyR[sB         cCst|}d|krR|jd\}}|dkrRd|krR|dfSnd|krut|jdd S|dkrd Std|dS( s Parses the locale code for localename and returns the result as tuple (language code, encoding). The localename is normalized and passed through the locale alias engine. A ValueError is raised in case the locale name cannot be parsed. The language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined or are unknown to this implementation. t@teuroR#s iso-8859-15iR/sunknown locale: %sN(NN(RR[RgR0R;(RRtmodifier((s/usr/lib/python2.7/locale.pyt_parse_localenames     cCsA|\}}|dkr!d}n|dkr1|S|d|SdS(s Builds a locale code from the given tuple (language code, encoding). No aliasing or normalizing takes place. R/R#N(R0(t localetupletlanguageR((s/usr/lib/python2.7/locale.pyt_build_localenames     tLANGtLANGUAGEcCsy"ddl}|j\}}Wnttfk r;nKXtjdkr||r||d dkr|tjt|d}n||fSddl }|j j}xO|D]A}||d}|r|dkr|j dd}nPqqWd }t |S( s Tries to determine the default locale settings and returns them as tuple (language code, encoding). According to POSIX, a program which has not called setlocale(LC_ALL, "") runs using the portable 'C' locale. Calling setlocale(LC_ALL, "") lets it use the default locale as defined by the LANG variable. Since we don't want to interfere with the current locale setting we thus emulate the behavior in the way described above. To maintain compatibility with other platforms, not only the LANG variable is tested, but a list of variables given as envvars parameter. The first found to be defined will be used. envvars defaults to the search path used in GNU gettext; it must always contain the variable name 'LANG'. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. iNtwin32it0xiRRR/(t_localet_getdefaultlocalet ImportErrortAttributeErrortsystplatformtwindows_localeRRtostenvironR0R[R(tenvvarsRRRRtlookuptvariableR((s/usr/lib/python2.7/locale.pyRs$ %     cCs:t|}|tkr0d|kr0tdnt|S(sp Returns the current setting for the given locale category as tuple (language code, encoding). category may be one of the LC_* value except LC_ALL. It defaults to LC_CTYPE. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. t;s category LC_ALL is not supported(t _setlocaleRt TypeErrorR(R1R((s/usr/lib/python2.7/locale.pyRs  cCs@|r3t|tdk r3tt|}nt||S(s^ Set the locale for the given category. The locale can be a string, an iterable of two strings (language code and encoding), or None. Iterables are converted to strings using the locale aliasing engine. Locale strings are passed directly to the C lib. category may be given as one of the LC_* values. R(ttypeRRR(R1tlocale((s/usr/lib/python2.7/locale.pyRs cCst|ttdS(s Sets the locale for category to the default setting. The default setting is determined by calling getdefaultlocale(). category defaults to LC_ALL. N(RRR(R1((s/usr/lib/python2.7/locale.pyR%stwincCsddl}|jdS(s1Return the charset that the user is likely using.iNi(RR(t do_setlocaleR((s/usr/lib/python2.7/locale.pyR1s cCs tdS(sbReturn the charset that the user is likely using, by looking at environment variables.i(R(R((s/usr/lib/python2.7/locale.pyR;scCsb|rTtt}yttdWntk r6nXtt}tt||SttSdS(sdReturn the charset that the user is likely using, according to the system configuration.RN(RRRt nl_langinfotCODESET(Rtoldloctresult((s/usr/lib/python2.7/locale.pyR@s    R/t437tcs ISO8859-1tentJIS7tjistjis7teucJPtajecRtlatin_1t iso8859_1s ISO8859-10t iso8859_10s ISO8859-11t iso8859_11s ISO8859-13t iso8859_13s ISO8859-14t iso8859_14s ISO8859-15t iso8859_15s ISO8859-16t iso8859_16s ISO8859-2t iso8859_2s ISO8859-3t iso8859_3s ISO8859-4t iso8859_4s ISO8859-5t iso8859_5s ISO8859-6t iso8859_6s ISO8859-7t iso8859_7s ISO8859-8t iso8859_8s ISO8859-9t iso8859_9t iso2022_jptSJISt shift_jistTACTISttactisteuc_jpteucKRteuc_krsUTF-8tutf_8sKOI8-Rtkoi8_rsKOI8-Utkoi8_us a3_AZ.KOI8-Cta3ta3_azs a3_az.koi8csaf_ZA.ISO8859-1taftaf_zasaf_za.iso88591s am_ET.UTF-8tamtam_etsen_US.ISO8859-1tamericansamerican.iso88591sar_AA.ISO8859-6tartar_aasar_aa.iso88596sar_AE.ISO8859-6tar_aesar_ae.iso88596sar_BH.ISO8859-6tar_bhsar_bh.iso88596sar_DZ.ISO8859-6tar_dzsar_dz.iso88596sar_EG.ISO8859-6tar_egsar_eg.iso88596sar_IQ.ISO8859-6tar_iqsar_iq.iso88596sar_JO.ISO8859-6tar_josar_jo.iso88596sar_KW.ISO8859-6tar_kwsar_kw.iso88596sar_LB.ISO8859-6tar_lbsar_lb.iso88596sar_LY.ISO8859-6tar_lysar_ly.iso88596sar_MA.ISO8859-6tar_masar_ma.iso88596sar_OM.ISO8859-6tar_omsar_om.iso88596sar_QA.ISO8859-6tar_qasar_qa.iso88596sar_SA.ISO8859-6tar_sasar_sa.iso88596sar_SD.ISO8859-6tar_sdsar_sd.iso88596sar_SY.ISO8859-6tar_sysar_sy.iso88596sar_TN.ISO8859-6tar_tnsar_tn.iso88596sar_YE.ISO8859-6tar_yesar_ye.iso88596tarabicsarabic.iso88596s as_IN.UTF-8tassaz_AZ.ISO8859-9Etaztaz_azsaz_az.iso88599es be_BY.CP1251tbesbe_BY.UTF-8@latinsbe@latintbe_bys be_by.cp1251sbe_by.microsoftcp1251sbe_by.utf8@latins be_by@latins bg_BG.CP1251tbgtbg_bgs bg_bg.cp1251sbg_BG.ISO8859-5sbg_bg.iso88595s bg_BG.KOI8-Rs bg_bg.koi8rsbg_bg.microsoftcp1251s bn_IN.UTF-8tbn_insnb_NO.ISO8859-1tbokmalsbokmlsbr_FR.ISO8859-1tbrtbr_frsbr_fr.iso88591sbr_FR.ISO8859-14sbr_fr.iso885914sbr_FR.ISO8859-15sbr_fr.iso885915sbr_fr.iso885915@euros br_FR.UTF-8sbr_fr.utf8@euros br_fr@eurosbs_BA.ISO8859-2tbstbs_basbs_ba.iso88592t bulgariansfr_CA.ISO8859-1sc-frenchsc-french.iso88591sc.ens c.iso88591tc_csc_c.csca_ES.ISO8859-1tcasca_AD.ISO8859-1tca_adsca_ad.iso88591sca_AD.ISO8859-15sca_ad.iso885915sca_ad.iso885915@euros ca_AD.UTF-8sca_ad.utf8@euros ca_ad@eurotca_essca_es.iso88591sca_ES.ISO8859-15sca_es.iso885915sca_es.iso885915@euros ca_ES.UTF-8sca_es.utf8@euros ca_es@eurosca_FR.ISO8859-1tca_frsca_fr.iso88591sca_FR.ISO8859-15sca_fr.iso885915sca_fr.iso885915@euros ca_FR.UTF-8sca_fr.utf8@euros ca_fr@eurosca_IT.ISO8859-1tca_itsca_it.iso88591sca_IT.ISO8859-15sca_it.iso885915sca_it.iso885915@euros ca_IT.UTF-8sca_it.utf8@euros ca_it@eurotcatalantcextends cextend.ens zh_CN.eucCNs chinese-ss zh_TW.eucTWs chinese-tshr_HR.ISO8859-2tcroatianscs_CZ.ISO8859-2tcstcs_csscs_CS.ISO8859-2scs_cs.iso88592tcs_czscs_cz.iso88592scy_GB.ISO8859-1tcytcy_gbscy_gb.iso88591scy_GB.ISO8859-14scy_gb.iso885914scy_GB.ISO8859-15scy_gb.iso885915s cy_gb@eurotcztcz_cztczechsda_DK.ISO8859-1tdasda_DK.ISO8859-15s da.iso885915tda_dks da_dk.88591s da_dk.885915sda_dk.iso88591sda_dk.iso885915s da_dk@eurotdanishsdanish.iso88591tdansksde_DE.ISO8859-1tdesde_DE.ISO8859-15s de.iso885915sde_AT.ISO8859-1tde_atsde_at.iso88591sde_AT.ISO8859-15sde_at.iso885915sde_at.iso885915@euros de_AT.UTF-8sde_at.utf8@euros de_at@eurosde_BE.ISO8859-1tde_besde_be.iso88591sde_BE.ISO8859-15sde_be.iso885915sde_be.iso885915@euros de_BE.UTF-8sde_be.utf8@euros de_be@eurosde_CH.ISO8859-1tde_chsde_ch.iso88591sde_CH.ISO8859-15sde_ch.iso885915s de_ch@eurotde_des de_de.88591s de_de.885915sde_de.885915@eurosde_de.iso88591sde_de.iso885915sde_de.iso885915@euros de_DE.UTF-8sde_de.utf8@euros de_de@eurosde_LU.ISO8859-1tde_lusde_lu.iso88591sde_LU.ISO8859-15sde_lu.iso885915sde_lu.iso885915@euros de_LU.UTF-8sde_lu.utf8@euros de_lu@eurotdeutschsnl_NL.ISO8859-1tdutchsnl_BE.ISO8859-1sdutch.iso88591see_EE.ISO8859-4teetee_eesee_ee.iso88594set_EE.ISO8859-1teestisel_GR.ISO8859-7teltel_grsel_gr.iso88597sel_GR.ISO8859-15s el_gr@euros en.iso88591sen_AU.ISO8859-1ten_ausen_au.iso88591sen_BE.ISO8859-1ten_besen_BE.ISO8859-15s en_be@eurosen_BW.ISO8859-1ten_bwsen_bw.iso88591sen_CA.ISO8859-1ten_casen_ca.iso88591sen_GB.ISO8859-1ten_gbs en_gb.88591sen_gb.iso88591sen_GB.ISO8859-15sen_gb.iso885915s en_gb@eurosen_HK.ISO8859-1ten_hksen_hk.iso88591sen_IE.ISO8859-1ten_iesen_ie.iso88591sen_IE.ISO8859-15sen_ie.iso885915sen_ie.iso885915@euros en_IE.UTF-8sen_ie.utf8@euros en_ie@eurosen_IN.ISO8859-1ten_insen_NZ.ISO8859-1ten_nzsen_nz.iso88591sen_PH.ISO8859-1ten_phsen_ph.iso88591sen_SG.ISO8859-1ten_sgsen_sg.iso88591ten_ukten_uss en_us.88591sen_US.ISO8859-15s en_us.885915sen_us.iso88591sen_us.iso885915sen_us.iso885915@euros en_us@eurosen_us@euro@eurosen_ZA.ISO8859-1ten_zas en_za.88591sen_za.iso88591sen_ZA.ISO8859-15sen_za.iso885915s en_za@eurosen_ZW.ISO8859-1ten_zwsen_zw.iso88591teng_gbs eng_gb.8859sen_EN.ISO8859-1tenglishsenglish.iso88591t english_uksenglish_uk.8859senglish_united-statessenglish_united-states.437t english_ussenglish_us.8859senglish_us.asciiseo_XX.ISO8859-3teoseo_EO.ISO8859-3teo_eoseo_eo.iso88593teo_xxseo_xx.iso88593ses_ES.ISO8859-1tesses_AR.ISO8859-1tes_arses_ar.iso88591ses_BO.ISO8859-1tes_boses_bo.iso88591ses_CL.ISO8859-1tes_clses_cl.iso88591ses_CO.ISO8859-1tes_coses_co.iso88591ses_CR.ISO8859-1tes_crses_cr.iso88591ses_DO.ISO8859-1tes_doses_do.iso88591ses_EC.ISO8859-1tes_ecses_ec.iso88591tes_ess es_es.88591ses_es.iso88591ses_ES.ISO8859-15ses_es.iso885915ses_es.iso885915@euros es_ES.UTF-8ses_es.utf8@euros es_es@euroses_GT.ISO8859-1tes_gtses_gt.iso88591ses_HN.ISO8859-1tes_hnses_hn.iso88591ses_MX.ISO8859-1tes_mxses_mx.iso88591ses_NI.ISO8859-1tes_nises_ni.iso88591ses_PA.ISO8859-1tes_pases_pa.iso88591ses_PA.ISO8859-15ses_pa.iso885915s es_pa@euroses_PE.ISO8859-1tes_peses_pe.iso88591ses_PE.ISO8859-15ses_pe.iso885915s es_pe@euroses_PR.ISO8859-1tes_prses_pr.iso88591ses_PY.ISO8859-1tes_pyses_py.iso88591ses_PY.ISO8859-15ses_py.iso885915s es_py@euroses_SV.ISO8859-1tes_svses_sv.iso88591ses_SV.ISO8859-15ses_sv.iso885915s es_sv@euroses_US.ISO8859-1tes_usses_us.iso88591ses_UY.ISO8859-1tes_uyses_uy.iso88591ses_UY.ISO8859-15ses_uy.iso885915s es_uy@euroses_VE.ISO8859-1tes_veses_ve.iso88591ses_VE.ISO8859-15ses_ve.iso885915s es_ve@eurotestonianset_EE.ISO8859-15tettet_eeset_ee.iso88591set_EE.ISO8859-13set_ee.iso885913set_ee.iso885915set_EE.ISO8859-4set_ee.iso88594s et_ee@euroseu_ES.ISO8859-1teuteu_esseu_es.iso88591seu_ES.ISO8859-15seu_es.iso885915seu_es.iso885915@euros eu_ES.UTF-8seu_es.utf8@euros eu_es@euros fa_IR.UTF-8tfatfa_irsfa_IR.ISIRI-3342sfa_ir.isiri3342sfi_FI.ISO8859-15tfis fi.iso885915tfi_fisfi_FI.ISO8859-1s fi_fi.88591sfi_fi.iso88591sfi_fi.iso885915sfi_fi.iso885915@euros fi_FI.UTF-8sfi_fi.utf8@euros fi_fi@eurotfinnishsfinnish.iso88591sfo_FO.ISO8859-1tfotfo_fosfo_fo.iso88591sfo_FO.ISO8859-15sfo_fo.iso885915s fo_fo@eurosfr_FR.ISO8859-1tfrsfr_FR.ISO8859-15s fr.iso885915sfr_BE.ISO8859-1tfr_bes fr_be.88591sfr_be.iso88591sfr_BE.ISO8859-15sfr_be.iso885915sfr_be.iso885915@euros fr_BE.UTF-8sfr_be.utf8@euros fr_be@eurotfr_cas fr_ca.88591sfr_ca.iso88591sfr_CA.ISO8859-15sfr_ca.iso885915s fr_ca@eurosfr_CH.ISO8859-1tfr_chs fr_ch.88591sfr_ch.iso88591sfr_CH.ISO8859-15sfr_ch.iso885915s fr_ch@eurotfr_frs fr_fr.88591sfr_fr.iso88591sfr_fr.iso885915sfr_fr.iso885915@euros fr_FR.UTF-8sfr_fr.utf8@euros fr_fr@eurosfr_LU.ISO8859-1tfr_lus fr_lu.88591sfr_lu.iso88591sfr_LU.ISO8859-15sfr_lu.iso885915sfr_lu.iso885915@euros fr_LU.UTF-8sfr_lu.utf8@euros fr_lu@eurosfranaistfre_frs fre_fr.8859tfrenchsfrench.iso88591t french_francesfrench_france.8859sga_IE.ISO8859-1tgatga_iesga_ie.iso88591sga_IE.ISO8859-14sga_ie.iso885914sga_IE.ISO8859-15sga_ie.iso885915sga_ie.iso885915@euros ga_IE.UTF-8sga_ie.utf8@euros ga_ie@eurosgl_ES.ISO8859-1tgalegotgaliciansgd_GB.ISO8859-1tgdtgd_gbsgd_gb.iso88591sgd_GB.ISO8859-14sgd_gb.iso885914sgd_GB.ISO8859-15sgd_gb.iso885915s gd_gb@eurotger_des ger_de.8859tgermansgerman.iso88591tgerman_germanysgerman_germany.8859tgltgl_essgl_es.iso88591sgl_ES.ISO8859-15sgl_es.iso885915sgl_es.iso885915@euros gl_ES.UTF-8sgl_es.utf8@euros gl_es@eurotgreeksgreek.iso88597s gu_IN.UTF-8tgu_insgv_GB.ISO8859-1tgvtgv_gbsgv_gb.iso88591sgv_GB.ISO8859-14sgv_gb.iso885914sgv_GB.ISO8859-15sgv_gb.iso885915s gv_gb@euroshe_IL.ISO8859-8thethe_ils he_IL.CP1255s he_il.cp1255she_il.iso88598she_il.microsoftcp1255siw_IL.ISO8859-8thebrewshebrew.iso88598shi_IN.ISCII-DEVthithi_inshi_in.isciidevs hne_IN.UTF-8thnethrthr_hrshr_hr.iso88592thrvatskishu_HU.ISO8859-2thuthu_hushu_hu.iso88592t hungariansis_IS.ISO8859-1t icelandicsicelandic.iso88591sid_ID.ISO8859-1tidtid_idtintin_idRtis_issis_is.iso88591sis_IS.ISO8859-15sis_is.iso885915s is_is@euros iso-8859-1s iso-8859-15s iso8859-1s iso8859-15t iso_8859_1t iso_8859_15sit_IT.ISO8859-1titsit_IT.ISO8859-15s it.iso885915sit_CH.ISO8859-1tit_chsit_ch.iso88591sit_CH.ISO8859-15sit_ch.iso885915s it_ch@eurotit_its it_it.88591sit_it.iso88591sit_it.iso885915sit_it.iso885915@euros it_IT.UTF-8sit_it.utf8@euros it_it@eurotitaliansitalian.iso88591siu_CA.NUNACOM-8tiutiu_casiu_ca.nunacom8tiwtiw_ilsiw_il.iso88598s ja_JP.eucJPtjas ja_JP.JIS7sja.jiss ja_JP.SJISsja.sjistja_jps ja_jp.ajecs ja_jp.eucs ja_jp.eucjpsja_jp.iso-2022-jpsja_jp.iso2022jps ja_jp.jiss ja_jp.jis7s ja_jp.mscodes ja_jp.pcks ja_jp.sjiss ja_jp.ujistjapantjapaneses japanese-eucs japanese.eucs japanese.sjistjp_jpska_GE.GEORGIAN-ACADEMYtkatka_geska_ge.georgianacademyska_GE.GEORGIAN-PSska_ge.georgianpsska_ge.georgianrsskl_GL.ISO8859-1tkltkl_glskl_gl.iso88591skl_GL.ISO8859-15skl_gl.iso885915s kl_gl@euros km_KH.UTF-8tkm_khs kn_IN.UTF-8tkntkn_ins ko_KR.eucKRtkotko_krs ko_kr.eucs ko_kr.euckrtkoreans korean.eucs ks_IN.UTF-8tkssks_IN@devanagari.UTF-8sks_in@devanagariskw_GB.ISO8859-1tkwtkw_gbskw_gb.iso88591skw_GB.ISO8859-14skw_gb.iso885914skw_GB.ISO8859-15skw_gb.iso885915s kw_gb@euros ky_KG.UTF-8tkytky_kgslt_LT.ISO8859-13t lithuanianslo_LA.MULELAO-1tlotlo_laslo_LA.IBM-CP1133s lo_la.cp1133slo_la.ibmcp1133slo_la.mulelao1tlttlt_ltslt_lt.iso885913slt_LT.ISO8859-4slt_lt.iso88594slv_LV.ISO8859-13tlvtlv_lvslv_lv.iso885913slv_LV.ISO8859-4slv_lv.iso88594s mai_IN.UTF-8tmaismi_NZ.ISO8859-1tmitmi_nzsmi_nz.iso88591smk_MK.ISO8859-5tmktmk_mks mk_MK.CP1251s mk_mk.cp1251smk_mk.iso88595smk_mk.microsoftcp1251s ml_IN.UTF-8tmls mr_IN.UTF-8tmrtmr_insms_MY.ISO8859-1tmstms_mysms_my.iso88591smt_MT.ISO8859-3tmttmt_mtsmt_mt.iso88593tnbtnb_nos nb_no.88591snb_no.iso88591snb_NO.ISO8859-15snb_no.iso885915s nb_no@eurotnlsnl_NL.ISO8859-15s nl.iso885915tnl_bes nl_be.88591snl_be.iso88591snl_BE.ISO8859-15snl_be.iso885915snl_be.iso885915@euros nl_BE.UTF-8snl_be.utf8@euros nl_be@eurotnl_nls nl_nl.88591snl_nl.iso88591snl_nl.iso885915snl_nl.iso885915@euros nl_NL.UTF-8snl_nl.utf8@euros nl_nl@eurosnn_NO.ISO8859-1tnntnn_nos nn_no.88591snn_no.iso88591snn_NO.ISO8859-15snn_no.iso885915s nn_no@eurosno_NO.ISO8859-1tnosny_NO.ISO8859-1s no@nynorsktno_nos no_no.88591sno_no.iso88591sno_NO.ISO8859-15sno_no.iso885915sno_no.iso88591@bokmalsno_no.iso88591@nynorsks no_no@eurot norwegiansnorwegian.iso88591snr_ZA.ISO8859-1tnrtnr_zasnr_za.iso88591snso_ZA.ISO8859-15tnsotnso_zasnso_za.iso885915tnytny_nos ny_no.88591sny_no.iso88591sny_NO.ISO8859-15sny_no.iso885915s ny_no@eurotnynorsksoc_FR.ISO8859-1toctoc_frsoc_fr.iso88591soc_FR.ISO8859-15soc_fr.iso885915s oc_fr@euros or_IN.UTF-8tors pa_IN.UTF-8tpatpa_inspd_US.ISO8859-1tpdspd_DE.ISO8859-1tpd_despd_de.iso88591spd_DE.ISO8859-15spd_de.iso885915s pd_de@eurotpd_usspd_us.iso88591spd_US.ISO8859-15spd_us.iso885915s pd_us@eurosph_PH.ISO8859-1tphtph_phsph_ph.iso88591spl_PL.ISO8859-2tpltpl_plspl_pl.iso88592tpolishspt_PT.ISO8859-1t portuguesesportuguese.iso88591spt_BR.ISO8859-1tportuguese_brazilsportuguese_brazil.8859tposixs posix-utf2spp_AN.ISO8859-1tpptpp_anspp_an.iso88591tptspt_PT.ISO8859-15s pt.iso885915tpt_brs pt_br.88591spt_br.iso88591spt_BR.ISO8859-15spt_br.iso885915s pt_br@eurotpt_pts pt_pt.88591spt_pt.iso88591spt_pt.iso885915spt_pt.iso885915@euros pt_PT.UTF-8spt_pt.utf8@euros pt_pt@eurosro_RO.ISO8859-2trotro_rosro_ro.iso88592tromanians ru_RU.UTF-8trus ru_RU.KOI8-Rsru.koi8rtru_rus ru_RU.CP1251s ru_ru.cp1251sru_RU.ISO8859-5sru_ru.iso88595s ru_ru.koi8rsru_ru.microsoftcp1251s ru_UA.KOI8-Utru_uas ru_UA.CP1251s ru_ua.cp1251s ru_ua.koi8usru_ua.microsoftcp1251trumaniantrussiansrw_RW.ISO8859-1trwtrw_rwsrw_rw.iso88591ssd_IN@devanagari.UTF-8tsds se_NO.UTF-8tse_nossr_RS.UTF-8@latint serbocroatiantshssr_CS.ISO8859-2ssh_ba.iso88592@bosniassh_HR.ISO8859-2tsh_hrssh_hr.iso88592tsh_sptsh_yus si_LK.UTF-8tsitsi_lktsinhalassk_SK.ISO8859-2tsktsk_skssk_sk.iso88592ssl_SI.ISO8859-2tslssl_CS.ISO8859-2tsl_cstsl_sissl_si.iso88592tslovaktslovenet slovenianssr_CS.ISO8859-5tsptsp_yutspanishsspanish.iso88591t spanish_spainsspanish_spain.8859ssq_AL.ISO8859-2tsqtsq_alssq_al.iso88592s sr_RS.UTF-8tsrs sr@cyrillicssr@latinssr@latntsr_csssr_cs.iso88592ssr_cs.iso88592@latnssr_cs.iso88595ssr_cs.utf8@latns sr_cs@latns sr_ME.UTF-8tsr_metsr_rsssr_rs.utf8@latns sr_rs@latins sr_rs@latntsr_sptsr_yus sr_CS.CP1251ssr_yu.cp1251@cyrillicssr_yu.iso88592ssr_yu.iso88595ssr_yu.iso88595@cyrillicssr_yu.microsoftcp1251@cyrillicssr_yu.utf8@cyrillicssr_yu@cyrillicsss_ZA.ISO8859-1tsstss_zasss_za.iso88591sst_ZA.ISO8859-1tsttst_zasst_za.iso88591ssv_SE.ISO8859-1tsvssv_SE.ISO8859-15s sv.iso885915ssv_FI.ISO8859-1tsv_fissv_fi.iso88591ssv_FI.ISO8859-15ssv_fi.iso885915ssv_fi.iso885915@euros sv_FI.UTF-8ssv_fi.utf8@euros sv_fi@eurotsv_ses sv_se.88591ssv_se.iso88591ssv_se.iso885915s sv_se@eurotswedishsswedish.iso88591s ta_IN.TSCII-0ttatta_ins ta_in.tsciis ta_in.tscii0s te_IN.UTF-8ttes tg_TJ.KOI8-Cttgttg_tjs tg_tj.koi8csth_TH.ISO8859-11tthtth_thsth_th.iso885911s th_TH.TIS620s th_th.tactiss th_th.tis620tthaistl_PH.ISO8859-1ttlttl_phstl_ph.iso88591stn_ZA.ISO8859-15ttnttn_zastn_za.iso885915str_TR.ISO8859-9ttrttr_trstr_tr.iso88599sts_ZA.ISO8859-1Rtts_zasts_za.iso88591stt_RU.TATAR-CYRtttttt_rus tt_RU.KOI8-Cs tt_ru.koi8cstt_ru.tatarcyrtturkishsturkish.iso88599s uk_UA.KOI8-Utuktuk_uas uk_UA.CP1251s uk_ua.cp1251suk_UA.ISO8859-5suk_ua.iso88595s uk_ua.koi8usuk_ua.microsoftcp1251s en_US.utftunivt universals en_US.UTF-8suniversal.utf8@ucs4s ur_PK.CP1256turtur_pks ur_pk.cp1256sur_pk.microsoftcp1256s uz_UZ.UTF-8tuztuz_uzsuz_UZ.ISO8859-1suz_uz.iso88591suz_uz.utf8@cyrillicsuz_uz@cyrillics ve_ZA.UTF-8tvetve_zas vi_VN.TCVNtvitvi_vns vi_vn.tcvnsvi_vn.tcvn5712s vi_VN.VISCIIs vi_vn.visciisvi_vn.viscii111swa_BE.ISO8859-1twatwa_beswa_be.iso88591swa_BE.ISO8859-15swa_be.iso885915swa_be.iso885915@euros wa_be@eurosxh_ZA.ISO8859-1txhtxh_zasxh_za.iso88591s yi_US.CP1255tyityi_uss yi_us.cp1255syi_us.microsoftcp1255tzhs zh_CN.gb2312tzh_cns zh_TW.big5s zh_cn.big5s zh_cn.eucs zh_CN.gb18030s zh_cn.gb18030s zh_cn.gb2312s zh_CN.gbks zh_cn.gbkszh_HK.big5hkscstzh_hks zh_HK.big5s zh_hk.big5s zh_hk.big5hkszh_hk.big5hkscstzh_tws zh_tw.big5s zh_tw.eucs zh_tw.euctwszu_ZA.ISO8859-1tzutzu_zaszu_za.iso88591taf_ZAi6tsq_ALitgsw_FRitam_ETi^tar_SAitar_IQitar_EGi tar_LYitar_DZitar_MAitar_TNitar_OMi tar_YEi$tar_SYi(tar_JOi,tar_LBi0tar_KWi4tar_AEi8tar_BHi<tar_QAi@thy_AMi+tas_INiMtaz_AZi,i,tba_RUimteu_ESi-tbe_BYi#tbn_INiEtbs_BAi itbr_FRi~tbg_BGitca_ESitzh_CHStzh_TWitzh_CNitzh_HKi tzh_SGitzh_MOitzh_CHTi|tco_FRithr_HRithr_BAitcs_CZitda_DKitgbz_AFitdiv_MVietnl_NLitnl_BEiten_USi ten_GBi ten_AUi ten_CAi ten_NZi ten_IEi ten_ZAi ten_JAi ten_CBi $ten_BZi (ten_TTi ,ten_ZWi 0ten_PHi 4ten_INi @ten_MYi Di Htet_EEi%tfo_FOi8tfil_PHidtfi_FIi tfr_FRi tfr_BEi tfr_CAi tfr_CHi tfr_LUi tfr_MCi tfy_NLibtgl_ESiVtka_GEi7tde_DEitde_CHitde_ATi tde_LUitde_LIitel_GRitkl_GLiotgu_INiGtha_NGihthe_ILi thi_INi9thu_HUitis_ISitid_IDi!tiu_CAi]i]tga_IEi<tit_ITitit_CHitja_JPitkn_INiKtkk_KZi?tkh_KHiStqut_GTitrw_RWitkok_INiWtko_KRitky_KGi@tlo_LAiTtlv_LVi&tlt_LTi'tdsb_DEi.tlb_LUintmk_MKi/tms_MYi>tms_BNi>tml_INiLtmt_MTi:tmi_NZitarn_CLiztmr_INiNtmoh_CAi|tmn_MNiPtmn_CNiPtne_NPiatnb_NOitnn_NOitoc_FRitor_INiHtps_AFictfa_IRi)tpl_PLitpt_BRitpt_PTitpa_INiFtquz_BOiktquz_ECiktquz_PEik tro_ROitrm_CHitru_RUitsmn_FIi;$tsmj_NOi;tsmj_SEi;tse_NOi;tse_SEi;tse_FIi; tsms_FIi; tsma_NOi;tsma_SEi;tsa_INiOtsr_SPi tsr_BAiiitsi_LKi[tns_ZAilttn_ZAi2tsk_SKitsl_SIi$tes_ESi tes_MXi i tes_GTi tes_CRi tes_PAi tes_DOi tes_VEi tes_COi $tes_PEi (tes_ARi ,tes_ECi 0tes_CLi 4tes_URi 8tes_PYi <tes_BOi @tes_SVi Dtes_HNi Htes_NIi Ltes_PRi Ptes_USi Ttsw_KEiAtsv_SEitsv_FIitsyr_SYiZttg_TJi(ttmz_DZi_tta_INiIttt_RUiDtte_INiJtth_THitbo_BTiQtbo_CNiQttr_TRittk_TMiBtug_CNituk_UAi"twen_DEi.tur_PKi tur_INi tuz_UZiCiCtvi_VNi*tcy_GBiRtwo_SNitxh_ZAi4tsah_RUitii_CNixtyo_NGijtzu_ZAi5cCsi}|d}||d=dGHddGHt\}}dG|pJdGHdG|pYdGHHd GHddGHxT|jD]F\}}|Gd GHt|\}}d G|pdGHd G|pdGHHqwWHd GHddGHtxT|jD]F\}}|Gd GHt|\}}d G|pdGHd G|p'dGHHqWyttdWndGHdGHdGHngXHdGHddGHxT|jD]F\}}|Gd GHt|\}}d G|pdGHd G|pdGHHqtWdS(s Test function. cSsAx:tjD])\}}|d dkr||| s                    "-    D   5      `   :