ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3

  \.                 @   s   d ddddddddd	d
dgZ ddlZdZdZdZee ZdZed d ZdZdZ	ee e	 e Z
dddZddlZddlmZ G dd deZG dd dedZG dd
 d
ZdS )ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits	hexdigits	octdigits	printablepunctuation
whitespace	FormatterTemplate    Nz 	
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c             C   s   |pdj dd | j|D S )N c             s   s   | ]}|j  V  qd S )N)
capitalize).0x r   /usr/lib64/python3.6/string.py	<genexpr>0   s    zcapwords.<locals>.<genexpr>)joinsplit)ssepr   r   r   r   %   s    )ChainMapc                   s    e Zd ZdZ fddZ  ZS )_TemplateMetaclassa/  
    %(delim)s(?:
      (?P<escaped>%(delim)s) |   # Escape sequence of two delimiters
      (?P<named>%(id)s)      |   # delimiter and a Python identifier
      {(?P<braced>%(id)s)}   |   # delimiter and a braced identifier
      (?P<invalid>)              # Other ill-formed delimiter exprs
    )
    c                sX   t t| j||| d|kr$| j}ntjtj| j| jd }tj|| j	tj
B | _d S )Npattern)Zdelimid)superr   __init__r   _reescape	delimiter	idpatterncompileflagsVERBOSE)clsnamebasesZdctr   )	__class__r   r   r   A   s    
z_TemplateMetaclass.__init__)__name__
__module____qualname__r   r   __classcell__r   r   )r*   r   r   7   s   r   c               @   s:   e Zd ZdZdZejZdd Zdd Z	dd Z
d	d
 ZdS )r   $z(?-i:[_a-zA-Z][_a-zA-Z0-9]*)c             C   s
   || _ d S )N)template)selfr0   r   r   r   r   X   s    zTemplate.__init__c             C   sd   |j d}| jd | jdd}|s.d}d}n"|tdj|d d  }t|}td||f d S )NinvalidT)keepends    z.Invalid placeholder in string: line %d, col %d)startr0   
splitlineslenr   
ValueError)r1   moilinescolnolinenor   r   r   _invalid]   s    
zTemplate._invalidc                 sl   | st d| ^} t| dkr(t d| s2| n|rFt|| d  n| d   fdd}jj|jS )Nz>descriptor 'substitute' of 'Template' object needs an argumentr4   zToo many positional argumentsr   c                sd   | j dp| j d}|d k	r(t | S | j dd k	r<jS | j dd k	rTj|  tdjd S )Nnamedbracedescapedr2   z#Unrecognized named group in pattern)groupstrr"   r@   r:   r   )r;   rA   )mappingr1   r   r   convertw   s    
z$Template.substitute.<locals>.convert)	TypeErrorr9   	_ChainMapr   subr0   )argskwsrG   r   )rF   r1   r   
substitutei   s    zTemplate.substitutec                 sl   | st d| ^} t| dkr(t d| s2| n|rFt|| d  n| d   fdd}jj|jS )NzCdescriptor 'safe_substitute' of 'Template' object needs an argumentr4   zToo many positional argumentsr   c                s|   | j dp| j d}|d k	rByt | S  tk
r@   | j  S X | j dd k	rVjS | j dd k	rl| j  S tdjd S )NrA   rB   rC   r2   z#Unrecognized named group in pattern)rD   rE   KeyErrorr"   r:   r   )r;   rA   )rF   r1   r   r   rG      s    
z)Template.safe_substitute.<locals>.convert)rH   r9   rI   r   rJ   r0   )rK   rL   rG   r   )rF   r1   r   safe_substitute   s    zTemplate.safe_substituteN)r+   r,   r-   r"   r#   r    
IGNORECASEr%   r   r@   rM   rO   r   r   r   r   r   M   s   )	metaclassc               @   sV   e Zd Zdd Zdd ZdddZdd	 Zd
d Zdd Zdd Z	dd Z
dd ZdS )r   c              O   sz   | st d| ^}} y| ^}} W nJ tk
rj   d|kr\|jd}dd l}|jdtdd n
t dd Y nX |j|| |S )Nz;descriptor 'format' of 'Formatter' object needs an argumentformat_stringr   z9Passing 'format_string' as keyword argument is deprecated   )
stacklevelz@format() missing 1 required positional argument: 'format_string')rH   r:   popwarningswarnDeprecationWarningvformat)rK   kwargsr1   rR   rV   r   r   r   format   s    

zFormatter.formatc             C   s.   t  }| j||||d\}}| j||| |S )NrS   )set_vformatcheck_unused_args)r1   rR   rK   rZ   	used_argsresult_r   r   r   rY      s    zFormatter.vformatr   c          	   C   s   |dk rt dg }x| j|D ]\}}	}
}|r:|j| |	d k	r |	dkrl|dkrZt dt|}	|d7 }n|	j r|rt dd}| j|	||\}}|j| | j||}| j|
||||d |d\}
}|j| j	||
 q W dj
||fS )Nr   zMax string recursion exceededr5   FzJcannot switch from manual field specification to automatic field numberingr4   )auto_arg_index)r:   parseappendrE   isdigit	get_fieldaddconvert_fieldr]   format_fieldr   )r1   rR   rK   rZ   r_   Zrecursion_depthrb   r`   Zliteral_text
field_nameformat_spec
conversionobjZarg_usedr   r   r   r]      s4    


zFormatter._vformatc             C   s   t |tr|| S || S d S )N)
isinstanceint)r1   keyrK   rZ   r   r   r   	get_value   s    
zFormatter.get_valuec             C   s   d S )Nr   )r1   r_   rK   rZ   r   r   r   r^     s    zFormatter.check_unused_argsc             C   s
   t ||S )N)r[   )r1   valuerk   r   r   r   ri     s    zFormatter.format_fieldc             C   sN   |d kr|S |dkrt |S |dkr,t|S |dkr<t|S tdj|d S )Nr   raz"Unknown conversion specifier {0!s})rE   reprasciir:   r[   )r1   rr   rl   r   r   r   rh     s    zFormatter.convert_fieldc             C   s
   t j|S )N)_stringZformatter_parser)r1   rR   r   r   r   rc     s    zFormatter.parsec       	      C   sN   t j|\}}| j|||}x(|D ] \}}|r:t||}q"|| }q"W ||fS )N)rw   Zformatter_field_name_splitrq   getattr)	r1   rj   rK   rZ   firstrestrm   Zis_attrr<   r   r   r   rf   (  s    zFormatter.get_fieldN)r   )r+   r,   r-   r[   rY   r]   rq   r^   ri   rh   rc   rf   r   r   r   r   r      s   
5	)N)__all__rw   r
   r   r   r   r   r   r   r	   r   r   rer    collectionsr   rI   typer   r   r   r   r   r   r   <module>   s$   


`