‡Æ
ÃMö9c       sØ   d  Z  g  Z d „  Z d „  Z d k Z y e i Z Wn e j
 o e e _ n Xe e j o e e ƒ n [ e d j oV d „  Z	 d „  Z
 e d „ Z e e	 ƒ e e
 d ƒ e e d	 d
 ƒ e e d ƒ n d S(   sž   
atexit.py - allow programmer to define multiple exit functions to be executed
upon normal program termination.

One public function, register, is defined.  
c     sI   xB t  o: t  d \ }  } } t |  | | ƒ t  i t  d ƒ q Wd S(   s‰   run any registered exit functions

    _exithandlers is traversed in reverse order so functions are executed
    last in, first out.
    i   N(   s   _exithandlerss   funcs   targss   kargss   applys   remove(   s   funcs   targss   kargss#   /mit/python/lib/python2.0/atexit.pys   _run_exitfuncs	 s      c    s   t  i |  | | f ƒ d S(   s×   register a function to be executed upon normal program termination

    func - function to be called at exit
    targs - optional arguments to pass to func
    kargs - optional keyword arguments to pass to func
    N(   s   _exithandlerss   appends   funcs   targss   kargs(   s   funcs   targss   kargss#   /mit/python/lib/python2.0/atexit.pys   register s     Ns   __main__c      s	   d GHd  S(   Ns
   running x1(    (    s#   /mit/python/lib/python2.0/atexit.pys   x1+ s    c    s   d |  GHd  S(   Ns   running x2(%s)(   s   n(   s   ns#   /mit/python/lib/python2.0/atexit.pys   x2- s    c    s   d |  | f GHd  S(   Ns   running x3(%s, kwd=%s)(   s   ns   kwd(   s   ns   kwds#   /mit/python/lib/python2.0/atexit.pys   x3/ s    i   i   s   bars   no kwd args(   s   __doc__s   _exithandlerss   _run_exitfuncss   registers   syss   exitfuncs   xs   AttributeErrors   __name__s   x1s   x2s   Nones   x3(    s#   /mit/python/lib/python2.0/atexit.pys   ? s&   						
