;ò
¢)?Bc           @   so   d  Z  d k Z d k l Z d k l Z e i d e i ƒ Z e i d e i ƒ Z	 e i d ƒ Z
 d „  Z d S(   s  Yale's mail server is pretty dumb.

Its reports include the end user's name, but not the full domain.  I think we
can usually guess it right anyway.  This is completely based on examination of
the corpse, and is subject to failure whenever Yale even slightly changes
their MTA. :(

N(   s   StringIO(   s   getaddressess&   Message not delivered to the followings   Error Details   \s+(?P<addr>\S+)\s+c         C   s  |  i ƒ  o t Sn yO t |  i d d ƒ g ƒ d d } | o t Sn | i d d ƒ \ } } Wn t	 t
 f j
 o t Sn X| i ƒ  d j o t Sn | i d ƒ } | i ƒ  x8 t | d d	 f ƒ D]! \ } } | | j o t SqÎ qÎ Wh  } t |  i ƒ  ƒ } d } x¬ n o¤ | i ƒ  }	 |	 o Pn | d j o t i |	 ƒ o
 d } q| d j o t i |	 ƒ o Pq| d j o1 t i |	 ƒ } | o d | | i d
 ƒ <q»qqWg  } x6 | i ƒ  D]( }
 | i! |
 d ƒ | i! |
 d ƒ qÓW| Sd  S(   Ns   froms    i    i   s   @s   mailer-daemons   .s   edus   yales   addrs	   @yale.edus   @cs.yale.edu("   s   msgs   is_multiparts   Nones   getaddressess   gets   whofroms   splits   usernames   domains
   IndexErrors
   ValueErrors   lowers   partss   reverses   zips   part1s   part2s   namess   StringIOs   get_payloads   bodys   states   readlines   lines   scres   searchs   ecres   acres   mos   groups   addrss   keyss   names   append(   s   msgs   bodys   domains   whofroms   namess   states   partss   usernames   addrss   lines   names   mos   part1s   part2(    (    s%   /var/mailman/Mailman/Bouncers/Yale.pys   process$   sN    #	
  
  (   s   __doc__s   res	   cStringIOs   StringIOs   email.Utilss   getaddressess   compiles
   IGNORECASEs   scres   ecres   acres   process(   s   ecres   getaddressess   StringIOs   processs   res   scres   acre(    (    s%   /var/mailman/Mailman/Bouncers/Yale.pys   ?   s   	