N
zØ+:c       s$     k  Z   h  d  d f d <d d f d <d d f d <d	 d
 f d <d d f d <d d f d <d d f d <d d f d <d d f d <Z  d Z  e d  Z  x0 e d  d   r Z  e e e e e  <qĘ W d   Z  d   Z 2 d  Z	 3 d! Z
 5 d"   Z d# S($   i    s   Match words exactlys   exacti   s   Match prefixess   prefixi   s*   Match substring occurring anywhere in words	   substringi   s   Match suffixess   suffixi   s   Match using SOUNDEX algorithms   soundexi   s+   Match words within Levenshtein distance ones   levi   s    POSIX 1003.2 regular expressionss   rei   s   fnmatch-like (* ? as wildcards)s   fnmatchi   s   metaphone algorithms	   metaphones@   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/i   i@   c    sw     t  d   |   }  | i    d }  x8 t t |   d  r }  | d | | | } qF W | Sd  S(   Nc    s    t  t |   S(   N(   s   b64ds   ords   c(   s   cs   utils.pys   <lambda> s    i    i@   (   s   maps   strs   numss   reverses   sums   ranges   lens   i(   s   strs   numss   sums   is   utils.pys   b64dec s   	 	c    s+    d d g }   t |  d @d ?| d <! t |  d @d ?| d <" t |  d @d	 ?| d
 <# t |  d @d ?| d <$ t |  d @d ?| d <% t |  d @| d <& d | d <( d } ) xB t d  d ) r/ } * | | t d j o + | } , Pn qĶ W. t i | | d !d  } / | Sd  S(   Ni   i    i   Ąi   i   ?i   i   i  ü i   i   i š i   i   iĄ  i   i   i?   i   s    (   s   results   b64ls   vals   rs   ranges   is   strings   join(   s   vals   results   rs   is   utils.pys   decb64 s    	 		s   
s   	c    s>   5 6 t  i |  d d  }  7 t  i |  d t  }  8 |  Sd  S(   Ns   
.s   
..s   
(   s   strings   replaces   ss   CRLF(   s   ss   utils.pys   quote_reply5 s   N(   s   strings
   strategiess   b64ls   ranges   b64ds   xs   ords   b64decs   decb64s   CRLFs   TABs   quote_reply(    s   utils.pys   ? s   	 				