ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 3Xc@s*ddlmZmZmZddlmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZmZmZdefdYZdefd YZd efd YZd efd YZdefdYZdefdYZdefdYZdS(i(tEUCTW_CHAR_TO_FREQ_ORDERtEUCTW_TABLE_SIZEt EUCTW_TYPICAL_DISTRIBUTION_RATIO(tEUCKR_CHAR_TO_FREQ_ORDERtEUCKR_TABLE_SIZEt EUCKR_TYPICAL_DISTRIBUTION_RATIO(tGB2312_CHAR_TO_FREQ_ORDERtGB2312_TABLE_SIZEt!GB2312_TYPICAL_DISTRIBUTION_RATIO(tBIG5_CHAR_TO_FREQ_ORDERtBIG5_TABLE_SIZEtBIG5_TYPICAL_DISTRIBUTION_RATIO(tJIS_CHAR_TO_FREQ_ORDERtJIS_TABLE_SIZEtJIS_TYPICAL_DISTRIBUTION_RATIOtCharDistributionAnalysiscBsVeZdZdZdZdZdZdZdZdZ dZ d Z RS( igGz?g{Gz?icCsDd|_d|_d|_d|_d|_d|_|jdS(N(tNonet_char_to_freq_ordert _table_sizettypical_distribution_ratiot_donet _total_charst _freq_charstreset(tself((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyt__init__.s      cCst|_d|_d|_dS(sreset analyser, clear any stateiN(tFalseRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR=s  cCs}|dkr|j|}nd}|dkry|jd7_||jkryd|j|krv|jd7_qvqyndS(s"feed a character with known lengthiiiiiN(t get_orderRRRR(Rtchartchar_lentorder((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytfeedFs  cCsu|jdks!|j|jkr(|jS|j|jkrn|j|j|j|j}||jkrn|Sn|jS(s(return confidence based on existing datai(RRtMINIMUM_DATA_THRESHOLDtSURE_NORtSURE_YES(Rtr((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytget_confidenceTs! cCs|j|jkS(N(RtENOUGH_DATA_THRESHOLD(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytgot_enough_datadscCsdS(Ni((Rtbyte_str((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRis( t__name__t __module__R%R"R!R RRRR$R&R(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR(s    tEUCTWDistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( tsuperR*RRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRrs  cCs6|d}|dkr.d|d|ddSdSdS(Niii^iii((RR't first_char((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRxs  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR*qs tEUCKRDistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( R+R-RRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  cCs6|d}|dkr.d|d|ddSdSdS(Niii^iii((RR'R,((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR-s tGB2312DistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( R+R.RRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  cCsI|d|d}}|dkrA|dkrAd|d|dSdSdS(Niiiii^i((RR'R,t second_char((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs(R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR.s tBig5DistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( R+R0RR RR RR R(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  cCsd|d|d}}|dkr\|dkrEd|d|ddSd|d|dSndSdS( Niiiiii?i@i((RR'R,R/((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR0s tSJISDistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( R+R1RR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  cCs|d|d}}|dkr>|dkr>d|d}n1|dkrk|dkrkd|dd}nd S||d }|d krd }n|S( Niiiiiiiiii@i((RR'R,R/R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR1s tEUCJPDistributionAnalysiscBseZdZdZRS(cCs2tt|jt|_t|_t|_dS(N( R+R2RR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  cCs6|d}|dkr.d|d|ddSdSdS(Niii^iii((RR'R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR2s N(t euctwfreqRRRt euckrfreqRRRt gb2312freqRRRtbig5freqR R R tjisfreqR R RtobjectRR*R-R.R0R1R2(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytsI