ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
Yf>+                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z e  j d k rc d d   Z d d   Z d d   Z e  j d	 k r~ d
 d   Z e  j d k r e j d k r d  d l	 m
 Z d d   Z n e  j d k rd  d l Z d  d l Z d d   Z e j d k rd d   Z n d d   Z e j j d%  rEd d   Z d d   Z nE e j d k rrd d   Z d d d  Z n d d    Z d! d   Z d" d#   Z e d$ k re   d S)&    Nntc              C   s   d }  t  j j |   } | d k r( d S| t |   } t  j | d  j d d  \ } } t | d d   d } | d k r | d 7} t | d d   d	 } | d k r d
 } | d k r | | Sd S)zReturn the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.      N          g      $@r   )sysversionfindlensplitint)prefixisrestZmajorVersionZminorVersion r   0/opt/alt/python35/lib64/python3.5/ctypes/util.py_get_build_version	   s    %
r   c              C   s   t    }  |  d k r d S|  d k r. d } n! |  d k rK d |  d } n d Sd d l } d | j j k rw | d	 7} | d
 S)z%Return the name of the VC runtime dllNr   msvcrtr   zmsvcr%d
   r   z_d.pyddz.dll)r   importlib.machinery	machineryEXTENSION_SUFFIXES)r   Zclibname	importlibr   r   r   find_msvcrt"   s    		
r   c             C   s   |  d k r t    Sx t j d j t j  D]i } t j j | |   } t j j |  r^ | S| j   j	 d  rv q- | d } t j j |  r- | Sq- Wd  S)NcmPATHz.dll)r    r!   )
r   osenvironr   pathseppathjoinisfilelowerendswith)nameZ	directoryZfnamer   r   r   find_library7   s     
r,   Zcec             C   s   |  S)Nr   )r+   r   r   r   r,   M   s    posixdarwin)	dyld_findc             C   s\   d |  d |  d |  |  f g } x4 | D], }  y t  |   SWq( t k
 rS w( Yq( Xq( Wd  S)Nzlib%s.dylibz%s.dylibz%s.framework/%s)
_dyld_find
ValueError)r+   Zpossibler   r   r   r,   R   s    c       	   !   C   sS  t  j d t j |    } t j d  } | s@ t j d  } | sJ d  St j   } z | d d | j d |  g } t	 t  j
  } d | d <d | d	 <y+ t j | d
 t j d t j d | } Wn t k
 r d  SYn X|  | j j   } Wd  QRXWd  y | j   Wn t k
 rYn XXt j | |  } | s=d  St  j | j d   S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*gccZccz-Wl,-tz-oz-lCLC_ALLLANGstdoutstderrenvr   )r#   fsencodereescapeshutilwhichtempfileZNamedTemporaryFiler+   dictr$   
subprocessPopenPIPEZSTDOUTOSErrorr6   readcloseFileNotFoundErrorsearchfsdecodegroup)	r+   exprZ
c_compilerZtempargsr8   procZtraceresr   r   r   _findLib_gcca   s:    

			rN   Zsunos5c             C   s   |  s
 d  Sy. t  j d d |  f d t  j d t  j } Wn t k
 rP d  SYn X|  | j j   } Wd  QRXt j d |  } | s d  St	 j
 | j d   S)Nz/usr/ccs/bin/dumpz-Lpvr6   r7   s   \[.*\]\sSONAME\s+([^\s]+)r   )r@   rA   rB   DEVNULLrC   r6   rD   r:   rG   r#   rH   rI   )frL   datarM   r   r   r   _get_soname   s    		rR   c             C   s   |  s
 d  St  j d  } | s# d  Sy4 t j | d d d |  f d t j d t j } Wn t k
 ro d  SYn X|  | j j   } Wd  QRXt	 j
 d |  } | s d  St j | j d   S)	Nobjdumpz-pz-jz.dynamicr6   r7   s   \sSONAME\s+([^\s]+)r   )r<   r=   r@   rA   rB   rO   rC   r6   rD   r:   rG   r#   rH   rI   )rP   rS   rL   dumprM   r   r   r   rR      s"    		freebsdopenbsd	dragonflyc             C   sg   |  j  d  } g  } y- x& | r@ | j d t | j     q WWn t k
 rV Yn X| pf t j g S)N   .r   )r   insertr   popr1   r   maxsize)ZlibnamepartsZnumsr   r   r   _num_version   s    	$r]   c             C   s   t  j |   } d | | f } t j |  } y% t j d	 d t j d t j } Wn t k
 rm d } Yn X|  | j	 j
   } Wd  QRXt  j | |  } | s t t |    S| j d t  t j | d
  S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+)/sbin/ldconfig-rr6   r7       keyr   )r^   r_   r	   )r:   r;   r#   r9   r@   rA   rB   rO   rC   r6   rD   findallrR   rN   sortr]   rH   )r+   ZenamerJ   rL   rQ   rM   r   r   r   r,      s     	c       	      C   s;  t  j j d  s d  St t  j  } d | d <| r> d } n d } d  } y+ t j | d t j d t j d | } Wn t	 k
 r d  SYn X| M xE | j
 D]: } | j   } | j d  r t  j |  j   d	 } q WWd  QRX| s d  SxF | j d
  D]5 } t  j j | d |   } t  j j |  r | Sq Wd  S)N/usr/bin/crler3   r4   -64r6   r7   r8   s   Default Library Path (ELF):   :zlib%s.so)rd   re   )rd   )r#   r&   existsr?   r$   r@   rA   rB   rO   rC   r6   strip
startswithrH   r   r'   )	r+   is64r8   rK   pathsrL   linedirZlibfiler   r   r   _findLib_crle   s6    
				$ro   Fc             C   s   t  t |  |  p t |    S)N)rR   ro   rN   )r+   rk   r   r   r   r,      s    c             C   sB  d d  l  } | j d  d k r7 t j   j d } n t j   j d } d d d d	 d
 d	 d d	 d d i } | j | d  } t j d t j |   | f  } y t	 j
 d d g d t	 j d t	 j d t	 j d d d d d i > } t j | | j j    } | r!t j | j d   SWd  QRXWn t k
 r=Yn Xd  S)Nr   lrf   z-32z-64z	x86_64-64zlibc6,x86-64zppc64-64zlibc6,64bitz
sparc64-64zs390x-64zia64-64zlibc6,IA-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-pstdinr7   r6   r8   r4   r3   r5   r   )structZcalcsizer#   unamemachinegetr9   r:   r;   r@   rA   rO   rB   rG   r6   rD   rH   rI   rC   )r+   rr   rt   Zmach_mapZabi_typeZregexprM   r   r   r   _findSoname_ldconfig  s.    			!rw   c             C   s   t  |   p t t |    S)N)rw   rR   rN   )r+   r   r   r   r,      s    c              C   s&  d d l  m }  t j d k rO t |  j  t |  j d   t t d   t j d k r"t t d   t t d   t t d   t j	 d	 k r t |  j
 d
   t |  j
 d   t |  j
 d   t |  j
 d   n6 t |  j
 d   t |  j
 d   t t d   d  S)Nr   )cdllr   r   r-   r!   r    bz2r.   z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemzlibm.sozlibcrypt.soZcrypt)Zctypesrx   r#   r+   printr   loadr,   r   platformZLoadLibrary)rx   r   r   r   test&  s"    r}   __main__)rU   rV   rW   )r#   r<   r@   r   r+   r   r   r,   r|   Zctypes.macholib.dyldr/   r0   r:   r>   rN   rR   rj   r]   ro   rw   r}   __name__r   r   r   r   <module>   s:   +$