
Mc           @   s  e  Z d  d k Z d  d k l Z d  d k l Z l Z l Z d  d k	 l
 Z
 d  d k l Z d  d k l Z l Z d  d k l Z d  d k l Z l Z l Z d  d	 k l Z l Z l Z l Z l Z l Z l Z d  d
 k l Z  d  d k l! Z" d  d k# l$ Z$ d  d k% l& Z& l' Z' l( Z( d  d k i) i* Z* d  d k+ i) i, Z, d  d k- Z- d   Z. [. d  d k/ Z/ h  Z0 d   Z1 d   Z2 d e4 d  Z5 d   Z6 d   Z7 d  d  Z8 d   Z9 d   Z: d   Z; d d  Z< g  d d d d g  d d  Z= d d  Z> d d  Z? d d  Z@ d  d d! d d d"  ZA d#   ZB d$   ZC d%   ZD d& eE d d'  ZF d( eG f d)     YZH eH   ZI d*   ZJ eE d+  ZK d e4 d, d, d d-  ZL d d d e4 d.  ZM d d eE d/  ZN d e4 eE d0  ZO eO eP   d1 <d2   ZQ d3   ZR d4   ZS d5   ZT d6   ZU d d7  ZV e4 d8 d9 d:  ZW d;   ZX d<   ZY d=   ZZ d>   Z[ d?   Z\ d@   Z] dA   Z^ dB   Z_ d e4 e4 dC  Z` d dD  Za dE   Zb dF   Zc dG   Zd dH   Ze dI   Zf dJ   Zg dK   Zh eE d d dL  Zi d dM  Zj dN   Zk dO   Zl dP   Zm dQ d dR  Zn d ao dS   Zp dT   Zq e4 dU  Zr e er  Zs dV   Zt dW   Zu dX   Zv dY   Zw dZ   Zx d[   Zy d\   Zz d]   Z{ d^   Z| d_   Z  d`   Z} d da  Z~ d db  Z dc   Z e4 dd  Z de   Z df   Z e i i Z e i i e i i  Z e i i Z e i i e i i  Z dg   Z e g Z dh   Z di   Z dj   Z dk   Z dl   Z dm   Z e   Z dn   Z do   Z d dp  Z dq   Z dr e i i f ds     YZ dt   Z e i i i Z e i i i Z e i i i Z e i i i Z du e i i i e i i f dv     YZ dw e i i i e i i f dx     YZ dy   Z dz   Z d{   Z e/ i e  Z d S(|   iN(   t   ParameterizedText(   t   register_sfontt   register_mudgefontt   register_bmfont(   t   Keymap(   t   Minigame(   t   curryt   partial(   t   play(   t   movie_start_fullscreent   movie_start_displayablet
   movie_stop(   t   loadt   savet   list_saved_gamest   can_loadt   rename_savet   unlink_savet   scan_saved_game(   t   py_eval(   t   rng(   t
   atl_warper(   t   show_display_sayt   predict_show_display_sayt   display_sayc           C   sv   t  t t t f t t t t f t t	 t
 t f t t t t t t t f t t t t t t f t t t d S(   sc   
    This does nothing, except to make the pyflakes warnings about
    unused imports go away.
    N(   R    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   t   evalt   randomR   R   R   R   t   soundt   musict   time(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   public_api4   s    
c           C   s   t  i i i   S(   N(   t   renpyt   gamet   logt   forward_info(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   roll_forward_infoR   s    c           C   s   t  i i i   S(   N(   R   R    R!   t   in_rollback(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR$   U   s    c         C   s.   t  i i o t  i i i |  d | n d S(   s$  
    This creates a checkpoint that the user can rollback to. The
    checkpoint is placed at the statement after the last statement
    that interacted with the user. Once this function has been called,
    there should be no more interaction with the user in the current
    statement.
    t   keep_rollbackN(   R   t   storet	   _rollbackR    R!   t
   checkpoint(   t   dataR%   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR(   X   s    	c           C   s   t  i i i   d S(   sR   
    Prevents the game from rolling back to before the current
    statement.
    N(   R   R    R!   t   block(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   block_rollbackd   s    c         C   s,   t  i i |   }  t  i i i i |   d S(   s   
    Predicts the supplied image or displayable. This will cause it to be
    loaded during the next (and only the next) interaction, if there's any
    free time.
    N(   R   t   easyt   displayableR    t	   interfacet   preloadst   append(   t   img(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   predictl   s    c         C   s   t  i i |   i S(   sj   
    Returns either the current scenelists object, or the one for the
    context at the given index.
    (   R   R    t   contextt   scene_lists(   t   index(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR4   v   s    c         C   s   t    } t | i |   S(   sB   
    Returns how many displayables are in the supplied layer.
    (   R4   t   lent   layers(   t   layert   sls(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   count_displayables_in_layer~   s    	c         C   s   | d j o t d   n t i i p t d   n t |  t  p t |  i    }  n t i i	 |  } | t
 |  <d S(   s  
    This is used to execute the image statment. It takes as arguments
    an image name and an image object, and associates the image name
    with the image object.

    Like the image statment, this function should only be executed
    in init blocks.

    @param name: The image name, a tuple of strings.
    
    @param img: The displayable that is associated with that name. If this
    is a string or tuple, it is interpreted as an argument to Image.
    s&   Images may not be declared to be None.s/   Images may only be declared inside init blocks.N(   t   Nonet	   ExceptionR   R    t
   init_phaset
   isinstancet   tuplet   splitR,   R-   t   images(   t   nameR1   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   image   s    c         C   s   t  |  t  p t |  i    }  n t  | t  p t | i    } n t |   } x_ t t i    D]K } t |  | j  o qk n | |  |  j o t | t | | | <qk qk Wd  S(   N(   R>   R?   R@   R6   t   listRA   t   keys(   t   oldt   newt   lenoldt   k(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   copy_images   s     t   masterc         C   sE   t  |  t  p t |  i    }  n t i i   i i i | |   S(   sp  
    This returns true if an image with the same tag as that found in
    the suppled image name is present on the given layer.

    @param name may be a tuple of strings, or a single string. In the latter
    case, it is split on whitespace to make a tuple. The first element
    of the tuple is used as the image tag.

    @param layer is the name of the layer.
    (	   R>   R?   R@   R   R    R3   t   predict_infoRA   t   showing(   RB   R8   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyRM      s    i    c         C   s  t  i i o t d   n t |  t  p t |  i    }  n t   } | p |  d }	 t  i i	 o5 | o) |	 | i
 | j o | i
 | |	 } q n | d j o
 |  } n' t | t  o t | i    } n t  i i i | d d }
 } xF | D]> } t | t  i i i  o | d |  } q| |  } qWt t  i i i |  <| o | f |  d }  n |
 i   o2 t  i i o% t  i i |  | |  o d Sqn t  i i o t  i i |  |  n | i | | |	 | | d | d	 |  d
 | d t  i i d S(   s!   Documented in wiki as renpy.show.s%   Show may not run while in init phase.i    t   stylet   image_placementt   childi   Nt   at_listRB   t   atlt   default_transform(   R   R    R=   R<   R>   R?   R@   R4   t   configt   sticky_positionsRQ   R;   t
   basestringt   displayRC   t   ImageReferencet   motiont	   Transformt   Truet
   persistentt   _seen_imagest   find_targett   missing_showt   missing_hidet   addRS   (   RB   RQ   R8   t   whatt   zordert   tagt   behindRR   R9   t   keyt   baseR1   t   i(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   show   s8    	
 c         C   s   t  i i o t d   n t |  t  p t |  i    }  n t   } |  d } | i | |  t  i	 i
 o t  i	 i
 |  |  n d S(   s  
    This finds items in the master layer that have the same name
    as the first component of the given name, and removes them
    from the master layer. This is used to execute the hide
    statement.
    
    @param name: The name of the image to hide from the screen. This
    may be a tuple of strings, or a single string. In the latter case,
    it is split on whitespace to make a tuple. Only the first element
    of the tuple is used.

    @param layer: The layer this operates on.
    s%   Hide may not run while in init phase.i    N(   R   R    R=   R<   R>   R?   R@   R4   t   removeRT   R`   (   RB   R8   R9   Rf   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   hide   s    	
c         C   sX   t  i i o t d   n t   } | i |   t  i i o t  i i |   n d S(   s   
    This clears out the master layer. This is used in the execution of
    the scene statment, but only to clear out the layer. If you want
    to then add something new, call renpy.show after this.
    s&   Scene may not run while in init phase.N(   R   R    R=   R<   R4   t   clearRT   t   missing_scene(   R8   R9   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   scene  s    	t   defaultc            s,       f d   } t  i i i |  d S(   s&  
    This watches the given python expression, by displaying it in the
    upper-left corner of the screen (although position properties
    can change that). The expression should always be
    defined, never throwing an exception.

    A watch will not persist through a save or restart.
    c              s/   t  i i t t  i i    d    d  S(   NRN   (   R   t   uit   textt   unicodet   pythonR   (    (   RN   t
   expressiont
   properties(    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   overlay_func(  s    !N(   R   RT   t   overlay_functionsR0   (   Rt   RN   Ru   Rv   (    (   RN   Rt   Ru   s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   watch  s    
t    s   {}c      
   C   s  t  i i d d  t  i i   t  i i |  d d t  i i | d | d d d | d | t  i i   t  i i   t  i i	   } t
 | t  p
 d } n t  i i d d	 d
 d d |  } t  i i |  | d j o t  i i } n | o t  i i i d d  n | S(   s  
    This pops up a window requesting that the user enter in some text.
    It returns the entered text.

    @param prompt: A prompt that is used to ask the user for the text.

    @param default: A default for the text that this input can return.

    @param length: If given, a limit to the amount of text that this
    function will return.

    @param allow: If not None, then if an input character is not in this
    string, it is ignored.

    @param exclude: If not None, then if an input character is in this
    set, it is ignored.

    @param with_none: If True, performs a with None after the input. If None,
    takes the value from config.implicit_with_none.
    RN   t   input_windowt   input_promptt   lengtht
   input_textt   allowt   excludet   mouset   promptt   typet   inputt   roll_forwardN(   R   Rp   t   windowt   vboxRq   R   t   closet   exportst   shown_windowR#   R>   RV   R;   t   interactR(   RT   t   implicit_with_noneR    R.   t   do_with(   R   Ro   R~   R   R|   t	   with_noneR   t   rv(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR   .  s     (
!c         C   s  g  } |  D]7 \ } } } t  i i |  o | | t | f q q ~ }  | oT t  i i |  } g  } |  D]* \ } } | | j o | | | f qo qo ~ }  n d } g  } |  D]$ \ } } | d j	 o | | q q ~ }	 |	 p d Sn t  i i |   }
 | d j	 om |
 d j	 o` x] |  D]Q \ } } | |
 j o8 y | i |  Wqwt j
 o | i	 |  qwXq&q&Wn |
 S(   s   
    Displays a menu, and returns to the user the value of the selected
    choice. Also handles conditions and the menuset.
    N(
   R   Rs   R   t   tag_quoting_dictR;   R&   t   menuR0   t   AttributeErrorRa   (   t   itemst   set_exprt   _[1]t   labelt	   conditiont   valuet   sett   _[2]t   _[3]t   choicesR   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR   ]  s,    1+8 c           C   s2   t  i i o! t  i i i o d t  i _ n d S(   s   
    This is called to indicate to the skipping code that we have
    reached a choice. If we're skipping, and if the skip after
    choices preference is not True, then this disables skipping.
    N(   R   RT   t   skippingR    t   preferencest   skip_after_choicesR;   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   choice_for_skipping  s    c           C   s"   t  i i i i t  i i i i g S(   s5   
    Predicts widgets that are used by the menu.
    (   R   R    RN   t   menu_windowt
   backgroundt   menu_choice_button(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   predict_menu  s    R   c         K   s  t    g  } |  D] \ } } | | q ~ } x d | j o | i d  q1 Wt i i   }	 |	 | j o
 d }	 n t i i o& t i i	 t i i t
 i |   n t i i d |  t i i |  d t i i   i d d d t | t i i   x7 |  D]/ \ } } | o t d |  qt |  qWt d  | o t i i d d	 d
 d	 d |	  }
 x> |  D], \ } } |
 | j o t d |  PqmqmWt d  t d  t |
  | d j o t i i } n | o t i i i d d  n |
 Sn d S(   s  
    Displays a menu containing the given items, returning the value of
    the item the user selects.

    @param items: A list of tuples that are the items to be added to
    this menu. The first element of a tuple is a string that is used
    for this menuitem. The second element is the value to be returned
    if this item is selected, or None if this item is a non-selectable
    caption.

    @param interact: If True, then an interaction occurs. If False, no suc
    interaction occurs, and the user should call ui.interact() manually.

    @param with_none: If True, performs a with None after the input. If None,
    takes the value from config.implicit_with_none.
    RN   t   locationt   focusR   Ro   s   Choice: Ry   R   R   R   R   s   User chose: s   No choice chosen.N(   R   R;   Rj   R   R   R#   RT   t   auto_choice_delayRp   t   pausebehaviorR   t   choiceR   R   R    R3   t   currentR[   R   R!   R   R(   R   R.   R   (   R   t   window_styleR   R   t   kwargsR   R   t   valR   R   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   display_menu  sF    '
1 
! 	


t   TagQuotingDictc           B   s   e  Z d    Z RS(   c         C   s   t  t i  } | | j o> | | } t | t t f  o | i d d  } n | Sn. t i i o t	 d |   n d | d Sd  S(   Nt   {s   {{s:   During an interpolation, '%s' was not found as a variable.t   <s	    unbound>(
   t   varsR   R&   R>   t   strRr   t   replaceRT   t   debugR<   (   t   selfRf   R&   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   __getitem__  s    
(   t   __name__t
   __module__R   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s   c         C   sy   |  d j o t i i }  n t |  t t f  o t i i |  |  Sn t |  d d  } | o | |  Sn g  Sd S(   sA   
    This is called to predict the results of a say command.
    R2   N(	   R;   R   R&   t   narratorR>   R   Rr   t   predict_sayt   getattr(   t   whoRb   R2   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    c         C   sn   | t  } |  d j o t i i }  n t |  t t f  o t i i |  | d | n |  | d | d S(   s   
    This is the core of the say command. If the who parameter is None
    or a string, it is passed directly to display_say. Otherwise, the
    say method is called on the who object with what as a parameter.
    R   N(	   R   R;   R   R&   R   R>   R   Rr   t   say(   R   Rb   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    
t   imagemapc         K   s   t  i i |  | | d | d | | t  i i   }	 |	 g  }
 | D] \ } } } } } |
 | qB ~
 j o
 d }	 n t  i i d | d d d | d |	  } t  i i |  | d j o t  i i	 } n | o t  i
 i i d d  n | S(	   sU  
    Displays an imagemap. An image map consists of two images and a
    list of hotspots that are defined on that image. When the user
    clicks on a hotspot, the value associated with that hotspot is
    returned.

    @param ground: The name of the file containing the ground
    image. The ground image is displayed for areas that are not part
    of any hotspots.

    @param selected: The name of the file containing the selected
    image. This image is displayed in hotspots when the mouse is over
    them.

    @param hotspots: A list of tuples defining the hotspots in this
    image map. Each tuple has the format (x0, y0, x1, y1, result).
    (x0, y0) gives the coordinates of the upper-left corner of the
    hotspot, (x1, y1) gives the lower-right corner, and result gives
    the value returned from this function if the mouse is clicked in
    the hotspot.

    @param unselected: If provided, then it is the name of a file
    containing the image that's used to fill in hotspots that are not
    selected as part of any image. If not provided, the ground image
    is used instead.
 
    @param overlays: If True, overlays are displayed when this imagemap
    is active. If False, the overlays are suppressed.

    @param with_none: If True, performs a with None after the input. If None,
    takes the value from config.implicit_with_none.
    t
   unselectedRN   t   suppress_overlayR   R   R   R   N(   R   Rp   R   R   R#   R;   R   R(   RT   R   R    R.   R   (   t   groundt   selectedt   hotspotsR   t   overlaysRN   R   R   Ru   R   R   t   x0t   y0t   x1t   y1t   resultR   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    #
7
	c         C   sL  t  i i d j o t Sn | d  j	 o0 t  i i i |  } | d  j	 o
 | }  qX n | o t  i i	 d d  n t  i i	   |  d  j	 o t  i i
 |  t  n t  i i   } | t t g j o
 d  } n t  i i d d d d d |  } t  i i | d t | d  j o t  i i } n | o t  i i i d  d   n | S(	   Nt   fastt   dismisst   dismiss_hard_pauseR   t   pauseR   R   R%   (   R   RT   R   R[   R;   t   audioR   t	   get_delayRp   t   saybehaviorR   t   FalseR   R#   R   R(   R   R    R.   R   (   t   delayR   R   t   hardt   newdelayR   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR   Y  s*    
!c      	   C   s   | o t  i i i d t  n t |  d | t  i i   | d	 j p | d j  o t  i i d  n t  i i	 | t
  t  i i i o
 t } n d	 } t  i i d t d t d t
 d |  } t   | o t  i i i d t
  n | S(
   s  
    This displays an MPEG-1 cutscene for the specified number of
    seconds. The user can click to interrupt the cutscene.
    Overlays and Underlays are disabled for the duration of the cutscene.

    @param filename: The name of a file containing an MPEG-1 movie.

    @param delay: The number of seconds to wait before ending the cutscene.
    Normally the length of the movie, in seconds. If None, then the
    delay is computed from the number of loops (that is, loops + 1) *
    the length of the movie. If -1, we wait until the user clicks.
    
    @param loops: The number of extra loops to show, -1 to loop forever.

    Returns True if the movie was terminated by the user, or False if the
    given delay elapsed uninterrupted.
    R   t   loopsi    t   movieR   t   suppress_underlayt
   show_mouseR   N(   R   R   t   set_force_stopR[   R	   Rp   R   R;   t   soundstopbehaviorR   R   R    R!   t   forwardR   R   (   t   filenameR   R   t
   stop_musicR   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   movie_cutscene}  s$    
	c         C   sq   t  i i o t d   n t  i i o
 d }  n t  i i i p | p
 d }  n t  i i	 i
 |  | d | S(   s[  
    Implements the with statement. One reason to use this over a
    Ren'Py with statement is to get at the return code, which is True
    if the transition was interrupted, or False otherwise.

    @param trans: The transition.

    @param paired: The transition paired with this with one.

    @param always: Always perform the transition.
    s0   With statements may not run while in init phase.Rl   N(   R   R    R=   R<   RT   R   R;   R   t   transitionsR.   R   (   t   transt   pairedt   alwaysRl   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   with_statement  s    

t   withc           C   st   t  i i p d Sn t  i i   i p d Sn t  i i o3 d t  i _	 t  i i
 i   t  i i
 i d  n d S(   sB   
    Rolls the state of the game back to the last checkpoint.
    Ni   (   R   R&   R'   R    R3   t   rollbackRT   t   rollback_enabledR;   R   R!   t   complete(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    c           C   s   t  i i i t  i i _ d S(   s&   
    Toggles the fullscreen mode.
    N(   R   R    R   t
   fullscreen(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   toggle_fullscreen  s    c           C   s   t  i i i t  i i _ d S(   s'   
    Toggles the playing of music.
    N(   R   R    R   R   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   toggle_music  s    c         C   s   t  i i i |   S(   sW   
    Returns true if name is a valid label in the program, or false
    otherwise.
    (   R   R    t   scriptt	   has_label(   RB   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    c          C   sW   g  }  x> t  i i i i   D]' } t | t  o |  i |  q q Wt  i i	 |   S(   N(
   R   R    R   t   namemapt   iterkeysR>   RV   R0   Rs   t   RevertableSet(   R   Rh   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_all_labels  s     c         C   s@   |  d j o t i i t i i f }  n t i i i |   d S(   sy   
    This causes a screenshot to be taken. This screenshot will be
    saved with a savegame when the game is saved.
    N(   R;   R   RT   t   thumbnail_widtht   thumbnail_heightR    R.   t   take_screenshot(   t   scale(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    t   _invoke_main_menut
   _main_menuc         C   s<   |  t  j o t i i }  n t i i |  | | f   d S(   s0   
    This causes a full restart of Ren'Py. 
    N(   R   R   RT   t   end_game_transitionR    t   FullRestartException(   t
   transitionR   t   target(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   full_restart  s    c           C   s   t  i i    d S(   si   
    This causes an utter restart of Ren'Py. This reloads the script and
    re-runs initialization.
    N(   R   R    t   UtterRestartException(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   utter_restart  s    c           C   s   t  i i    d S(   s.   
    This causes Ren'Py to exit entirely.
    N(   R   R    t   QuitException(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   quit  s    c         C   s   t  i i |    d S(   sZ   
    Causes the current statement to end, and control to jump to the given
    label.
    N(   R   R    t   JumpException(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   jump  s    c         C   s   t  i i |    d S(   s   
    Causes control to leave the current context, and then to be
    transferred in the parent context to the given label.
    N(   R   R    t   JumpOutException(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   jump_out_of_context'  s    c         C   s   t  i i i i |   d S(   s3   
    Saves a screenshot in the named filename.
    N(   R   R    R.   RW   t   save_screenshot(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   screenshot/  s    c          C   s   d d k  }  t |  d  S(   sm   
    Returns true if we're running on Windows. This is generally used as a
    test when setting styles.
    iNt   winver(   t   syst   hasattr(   R  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   windows6  s    c           C   s   t  i S(   sl   
    Returns a string containing the current version of Ren'Py, prefixed with the
    string "Ren'Py ".
    (   R   t   version(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR
  ?  s    c           C   s   t  i i i S(   s{   
    Returns a number corresponding to the current version of the Ren'Py module,
    or 0 if the module wasn't loaded.
    (   R   RW   t   moduleR
  (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   module_versionG  s    c         C   sd   | o t  i i i o
 d }  n |  d j o t  i i i   n t  i i i |  | d | d S(   s  
    Sets the transition that will be used for the next
    interaction. This is useful when the next interaction doesn't take
    a with clause, as is the case with pause, input, and imagemap.

    @param layer: If the layer setting is not None, then the transition
    will be applied only to the layer named. Please note that only some
    transitions can be applied to specific layers.
    t   forceN(   R   R    R   R   R;   R.   R   t   set_transition(   R   R8   R   R  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR   O  s
    
c         C   s   t  i i i i |  d   S(   N(   R   R    R.   R   t   getR;   (   R8   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_transitionb  s    c           C   s   d t  i i   _ d S(   s   
    Resets the game runtime timer down to 0.

    The game runtime counter counts the number of seconds that have
    elapsed while waiting for user input in the current context. (So
    it doesn't count time spent in the game menu.)
    i    N(   R   R    R3   t   runtime(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   clear_game_runtimee  s    	c           C   s   t  i i   i S(   s;  
    Returns the number of seconds that have elapsed in gameplay since
    the last call to clear_game_timer, as a float.

    The game runtime counter counts the number of seconds that have
    elapsed while waiting for user input in the current context. (So
    it doesn't count time spent in the game menu.)
    (   R   R    R3   R  (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_game_runtimep  s    
c         C   s   t  i i |   S(   s   
    Returns True if the given filename is loadable, meaning that it
    can be loaded from the disk or from inside an archive. Returns
    False if this is not the case.
    (   R   t   loadert   loadable(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR  |  s    c         C   s*   y t  i i |   t SWn t Sn Xd S(   s   
    Returns true if the given filename can be found in the
    searchpath. This only works if a physical file exists on disk. It
    won't find the file if it's inside of an archive.
    N(   R   R  t   transfnR[   R   (   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   exists  s
    c           C   s   t  t i i _ d S(   sK  
    Calling this restarts the current interaction. This will immediately end
    any ongoing transition, and will call all of the overlay functions again.

    This should be called whenever widgets are added or removed over the course
    of an interaction, or when the information used to construct the overlay
    changes.
    N(   R[   R   R    R.   t   restart_interaction(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s    
c           C   s   t  i i   i S(   sr   
    Returns an object that is unique to the current context, that
    participates in rollback and the like.
    (   R   R    R3   t   info(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR3     s    c           C   s   t  t i i  d S(   s   
    Returns the nesting level of the current context. This is 0 for the
    outermost context (the context that is saved, and in which most of
    the game runs), and greater than zero when in a menu or other nested
    context.
    i   (   R6   R   R    t   contexts(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   context_nesting_level  s    c         C   s)   t  i i i |  d | d | d | d S(   sv   
    Deprecated music start function, retained for compatibility. Use
    renpy.music.play() or .queue() instead.
    t   loopt   fadeoutt   fadeinN(   R   R   R   R   (   R   R   R  R  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   music_start  s    c         C   s   t  i i i d |   d S(   sv   
    Deprecated music start function, retained for compatibility. Use
    renpy.music.play() or .queue() instead.
    R  N(   R   R   R   t   stop(   R  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   music_stop  s    c          C   s/   t  i i i t  i i   i }  |  i |  i f S(   sZ   
    Returns a pair giving the filename and line number of the current
    statement.
    (   R   R    R   R   R3   R   R   t
   linenumber(   t   n(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_filename_line  s    c         C   s(   |  i  d d  }  |  i  d d  }  |  S(   Ns   \s   \\s   "s   \"(   R   (   t   s(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   shell_escape  s    c         C   s   g  } d } t  } d } x | t |   j  o |  | } | d 7} | o9 | d j o, | o% | o | i |  d } q q n | d j o | } q n | d j o |  | } | d 7} n | | 7} q W| o | i |  n | S(   NRy   i    i   t    t   "s   \(   R   R6   R0   (   R%  R   t   wordt   quotedRh   t   c(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   split_args  s,    



i   c         C   sb  d d k  i } d d k } t i i p d Sn t |   p d Sn g  } |  D] } | t | i i	 |   qP ~ }  |  d } t i i
 i |   } t i i
 i |  d  }	 t d | d | d | d |	  }
 | o' t i i d j	 o t i i |
 } n t i i |
 } | i d	 d
  } y | i t |   t SWn t i i o   n t Sn Xd S(   s\   
    This causes an editor to be launched at the location of the current
    statement.
    iNi    i   R   t   linet   allfilest
   otherfiless   ""Ry   (   t   renpy.subprocesst
   subprocesst   os.pathR   RT   t   editorR6   R&  t   patht   normpatht   editor_file_separatort   joint   dictt   editor_transientR;   R   t   PopenR,  R[   R   R   (   t	   filenamesR-  t	   transientR1  t   osR   Rh   R   R.  R/  t   subst   cmd(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   launch_editor  s,    3
!c         C   s   t  i i p d Sn |  d j o d Sn t pF d d k } t t  i i d  a t i   p t i | i	  qw n d d k
 } t | i |   i d  IJt i   d S(   s   
    If config.log is not set, this does nothing. Otherwise, it opens
    the logfile (if not already open), formats the message to 70
    columns, and prints it to the logfile.
    Nit   as   utf-8(   R   RT   R!   R;   t   logfilet   codecst   _filet   tellt   writet   BOM_UTF8t   textwrapt   fillt   encodet   flush(   t   msgRC  RH  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR!     s    	c           C   s   t  t i i i _ d S(   sr   
    Forces the screen to be redrawn in full. Call this after using pygame
    to redraw the screen directly.
    N(   R[   R   R    R.   RW   t   full_redraw(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   force_full_redraw1  s    c         C   s:   |  d  j	 o t i i |   }  n t |  | d | d  S(   NR   (   R;   R   Rs   R   R   (   R   Rb   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   do_reshow_say9  s    c          K   s   t  t i i t i i |   S(   N(   t   curried_do_reshow_sayR   R&   t   _last_say_whot   _last_say_what(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_reshow_sayB  s    		c          K   s   t    |    d  S(   N(   RS  (   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   reshow_sayH  s    c           C   s   t  t i i   i d d   S(   Nt   _current_interact_type(   R   R   R    R3   R  R;   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   current_interact_typeK  s    c           C   s   t  t i i   i d d   S(   Nt   _last_interact_type(   R   R   R    R3   R  R;   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   last_interact_typeN  s    c          G   s   t  i i   i |   d  S(   N(   R   R    R3   t   make_dynamic(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   dynamicQ  s    c          G   s    t  i i   i |  d t d  S(   NR3   (   R   R    R3   RY  R[   (   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   context_dynamicT  s    c         C   s   |  t  i i j S(   N(   R   R    t	   seen_ever(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   seen_labelW  s    c         C   s   |  t  i i i j S(   N(   R   R    R\   t   _seen_audio(   R   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   seen_audioZ  s    c         C   s9   t  |  t  p t |  i    }  n |  t i i i j S(   N(   R>   R?   R@   R   R    R\   R]   (   RB   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   seen_image]  s    c         C   s   t  i i |   S(   N(   R   R  R   (   t   fn(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   filec  s    c         C   s^   t  i i   t  i i |   }  t |  t  i i i  p t	 d   n |  i
   } | i   S(   Ns6   renpy.image_size expects it's argument to be an image.(   R   R  t   index_archivesR,   R-   R>   RW   t   imt   ImageR<   R   t   get_size(   Rd  t   surf(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   image_sizef  s    c         C   sS   t  |  t  o t |  i    }  n |  d } t i i   i i | i	 | d   S(   Ni    (   R>   RV   R?   R@   R   R    R3   R4   RQ   R  R;   (   RB   R8   Rd   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_at_listr  s    
c         C   s    t  i i   i i | |   d  S(   N(   R   R    R3   R4   t   set_layer_at_list(   RQ   R8   (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   layer_at_listz  s    c           C   s;   t    t i i i   t i i i   t i i i   d  S(   N(   RN  R   RW   Rd  t   free_memoryt   fontt   render(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyRl  }  s    c         C   s/   | o t  i i |   Sn t  i i |   Sd  S(   N(   R   R,   R-   t   displayable_or_none(   t   dt   none(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   easy_displayable  s    c           C   s   t  i i i   d  S(   N(   R   R    R.   t
   quit_event(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyRs    s    c           C   s   t  i i i i   d  S(   N(   R   R    R.   RW   t   iconify(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyRt    s    c         C   s   t  |    d  S(   N(   R<   (   RL  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   _error  s    c         C   s   t  i |   d  S(   N(   t   _error_handlersR0   (   t   eh(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   push_error_handler  s    c           C   s   t  i   d  S(   N(   Rv  t   pop(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   pop_error_handler  s    c         C   s   t  d |   d  S(   Ni(   Rv  (   RL  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   error  s    c         C   s   t  i i i |   d  S(   N(   R   R    R.   t   timeout(   t   seconds(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR|    s    c          C   s1   t  i i   i }  t  i i i |   } | i   S(   N(   R   R    R3   R   R   t   lookupt   scry(   RB   t   node(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s    c           C   s   t  i i t   d  S(   Ni    (   R   t   parsert   munge_filenameR$  (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   munged_filename  s    c         K   s  t  i i p t d   n |  t j o d  Sn t i |   t  i i } t t  i _ t  i i	 i
 |   } t  i i t  } t  i i i |  | i |  t  i i i |  x* | D]" \ } } t  i i   i |  q W| i   t  i i i   | t  i _ d  S(   Ns,   Module loading is only allowed in init code.(   R   R    R=   R<   t   loaded_modulesRa   RT   t   lockedR   R   t   load_modulet	   executiont   ContextR  R0   RY  R&   t   __dict__t   updateR3   t   runt   pop_all_dynamicRy  (   RB   R   t
   old_lockedt   initcodeR3   t   prioR  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s$     
c           C   s0   t  i i   i   t  i i   i d t  d  S(   NRy  (   R   R    R3   t   pop_dynamict   lookup_returnR[   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt
   pop_return  s    c         C   s,   |  d  j o t d  n t d |   d  S(   Nt
   _game_menu(   R;   t   call_in_new_context(   t   screen(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt	   game_menu  s    c           C   s   t  t i i   i _ d  S(   N(   R[   R   R    R3   R4   R   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR     s    t	   placementc           B   s   e  Z d    Z RS(   c         C   sr   t  t |   i   | d |  _ | d |  _ | d |  _ | d |  _ | d |  _ | d |  _ | d |  _	 d  S(   Ni    i   i   i   i   i   i   (
   t   superR  t   __init__t   xpost   ypost   xanchort   yanchort   xoffsett   yoffsett   subpixel(   R   t   p(    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s    (   R   R   R  (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s   c         C   s   |  i    } t |  S(   N(   t   get_placementR  (   Rp  R  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s    t   Displayablec           B   s   e  Z RS(    (   R   R   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s   t	   Containerc           B   s   e  Z e i i Z RS(    (   R   R   R   Rs   t   RevertableListt
   _list_type(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyR    s   c           C   s   t  i i i S(   N(   R   R    R.   R   (    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   get_roll_forward  s    c          G   s   t  i i   } xZ |  D]R } t  i i |  } t | t  i i i  p t	 d |   n | i
 |  q W| t  i i Bt  i _ d  S(   Ns#   Cannot pin non-image-manipulator %r(   R   Rs   R   R,   R-   R>   RW   Rd  t	   ImageBaseR<   Ra   R&   t   _cache_pin_set(   t   argst   new_pinsRh   Rd  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt	   cache_pin   s     c          G   s   t  i i   } xZ |  D]R } t  i i |  } t | t  i i i  p t	 d |   n | i
 |  q Wt  i i | t  i _ d  S(   Ns%   Cannot unpin non-image-manipulator %r(   R   Rs   R   R,   R-   R>   RW   Rd  R  R<   Ra   R&   R  (   R  R  Rh   Rd  (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pyt   cache_unpin  s     (   Rb  RD  R   t   renpy.display.textR    t   renpy.display.fontR   R   R   t   renpy.display.behaviorR   t   renpy.display.minigameR   t   renpy.curryR   R   t   renpy.audio.soundR   t   renpy.display.videoR	   R
   R   t   renpy.loadsaveR   R   R   R   R   R   R   t   renpy.pythonR   R   R   R   t	   renpy.atlR   t   renpy.characterR   R   R   R   R   t   renpy.audio.musicR   R   R   t   collectionsRA   R#   R$   R;   R   R(   R+   R2   R4   R:   RC   RJ   RM   Ri   Rk   Rn   Rx   R   R   R   R   R[   R   t   objectR   R   R   R   R   R   R   R   t   globalsR   R   R   R   R   R   R   R   R   R  R  R  R	  R
  R  R   R  R  R  R  R  R  R3   R  R  R!  R$  R&  R,  R@  RB  R!   RN  RO  RP  RS  RT  RV  RX  RZ  R[  R]  R_  R`  Rh  Ri  Rk  Rl  Rr  Rs  Rt  R    R  t   curried_call_in_new_contextt   invoke_in_new_contextt   curried_invoke_in_new_contextRu  Rv  Rx  Rz  R{  R|  R  R  R   R  R  R  R  R   Rs   t   RevertableObjectR  R  RW   Rn  t   Rendert   coret   IgnoreEventt   redrawR  R  R  R  R  t   defaultdictRD   t   definitions(    (    (    s5   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\exports.pys   <module>   s  4					
				-/	)		M		9$4					

																	
				 &																													((			