
    \i                         S SK rS SKrS SKrS SKJrJrJrJrJrJ	r	J
r
JrJrJrJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJr  \S S S:H  r\S S S:H  r \S S S	:H  r!\RD                  \RF                  \RH                  \RJ                  " \RL                  \RN                  RQ                  \R                  S
:  SS9S9\RR                  \RT                  \RV                  \RX                  \RZ                  \R\                  \RJ                  " \R^                  \RN                  RQ                  \R                  S:  SS9S94r0\Rb                  \Rd                  \Rf                  \Rh                  \Rj                  4r6\RN                  Ro                  S\5      \RN                  Ro                  S\05      S 5       5       r8\RN                  Ro                  S\5      \RN                  Ro                  S\65      S 5       5       r9\RN                  Ro                  S\5      \RN                  Ro                  S\5      S 5       5       r:\RN                  Ro                  S\05      S 5       r;\RN                  Ro                  S\65      S 5       r<\RN                  Ro                  S\5      \RN                  Ro                  S\65      S 5       5       r=S r>S r?S r@\RN                  Ro                  S\5      S 5       rAS rB\RN                  Ro                  S\\4\\4\" \" / SQ5      \" / S Q5      /5      \" / SQ/ S Q/S!94\\4\/\/4/5      S" 5       rCS# rD\RN                  Ro                  S\\4\" / S$Q5      \	" S%S&/5      4\" / S'Q5      \" \" / S(Q5      \" / S)Q5      /5      4\\4\/\/4/5      S* 5       rE\RN                  Ro                  S\\4\" / S+Q5      \" / S'Q5      /\" / S+Q5      \" \" / S,Q5      \" / S(Q5      /5      /4\S\/\S\/4/5      S- 5       rF\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\\4\" / S$Q5      \" / S$Q5      4\" / S'Q5      \" \" / S(Q5      \" / S)Q5      /5      4\\4\/\/4/5      S. 5       5       rG\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\\4\" / S$Q5      \" 5       4\" / S'Q5      \" \" / S(Q5      \" / S)Q5      /5      4\\4\/\/4/5      S/ 5       5       rH\RN                  RQ                  \R                  S:  S0S9S1 5       rI\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S2\R                  " S3S4/5      S5\KS64S3S5S7/\KS84S9S5\LS:4S3S7\LS;4/5      S< 5       5       rM\RN                  Ro                  S\\4\	" S=S%/5      \	" S%S&/5      4/5      S> 5       rNS? rOS@ rPSA rQSB rRSC rS\RN                  RQ                  \R                  S
:  SS9\RN                  Ro                  S\" / SDQ5      \" SESF/5      4\" / SGQ5      \" / SHQ5      4\" / SIQ5      \" / SJQ5      4\" / SKQ/ SLQ/S!9\" / SKQ/ SMQ/S!94\" \" / SNQ5      \" / SOQ5      /5      \" \" / SPQ5      \" / SQQ5      /5      4\\4\\4\\4\\4\\4\\4\\4/5      SR 5       5       rT\RN                  RQ                  \R                  SS:  STS9\RN                  Ro                  SU\" / SPQ5      S//5      SV 5       5       rU\RN                  RQ                  \R                  S
:  SS9SW 5       rV\RN                  RQ                  \R                  S
:  SS9\RN                  Ro                  SUSXSY/5      SZ 5       5       rW\RN                  Ro                  S\" SES[/5      \" S[SE/5      4\" / SHQ5      \" / S\Q5      4\" / SPQ5      \" / S]Q5      4\" / SKQ/ SMQ/S!9\" / S^Q/ S_Q/S!94\	" SES[/S`Sa//5      \	" S[SE/SaS`//5      4\" \" / SPQ5      \" / SQQ5      /5      \" \" / S]Q5      \" / SbQ5      /5      4\\4\\4\\4\\4\\4\\4\\4/5      Sc 5       rXSd rY\RN                  Ro                  SeSfSg/5      Sh 5       rZ\RN                  Ro                  S\" S S 5      \" 5       4\" SiSi5      \" SiSi5      4\" SiSj5      \" 5       4\" SESk/5      \" 5       4\" SlSm/5      \" SlSm/5      4\" / SnQ5      \" 5       4\" SoSp/5      \" SqSr/5      4/5      Ss 5       r[\RN                  Ro                  St\" SuSv/S!9Sw\" 5       4\" SuSx/S!9Sw\" 5       4\" SySv/S!9Sz\" SySv/S!94\" / SuQ/ SvQ/S!9S{\" / S|Q5      4/5      S} 5       r\\RN                  Ro                  S\5      S~ 5       r]S r^\RN                  Ro                  Se\\\/5      S 5       r_S r`S raS rbS rcS rdS reS rfS rgS rh\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\5      \RN                  Ro                  SSS /5      S 5       5       5       ri\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\5      S 5       5       rj\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\\\\/5      S 5       5       rk\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\\\/5      S 5       5       rl\RN                  RQ                  \R                  S:  SS9S 5       rm\RN                  RQ                  \R                  S:  SS9\RN                  Ro                  S\" SES/5      S\" SES/5      4\" / SKQ5      S\" / SKQ5      4\" SES/5      S\" / SQ5      4\" / SKQ5      S\" / SQ5      4\" SES/5      \" SES/5      /S\" / SQ5      \" SES/5      /4\" SES/5      \" SES/5      /S/\" / SQ5      \" SES/5      /4\" SES/5      \" SES/5      /SS/\" / SQ5      \" / SQ5      /4/5      S 5       5       rn\RN                  Ro                  S\5      S 5       ro\RN                  Ro                  S\" / SQ5      \Rb                  " \" SS5      S5      4\" SFS/5      \Rb                  " \" SgS5      S5      4\
" SS/5      \Rb                  " \" SS5      Sg5      4\" SS5      \" SS5      4\" 5       \" 5       4/5      S 5       rp\RN                  Ro                  S\5      S 5       rq\RN                  Ro                  S\R                  \R                  /5      \RN                  Ro                  S\
" / SQ5      \" / SQ5      4\" / SQ5      \" / SQ5      4\" / SQ5      \" / SQ5      4\" SYS/5      \" SYS/5      4\" SS5      \" SS5      4\" 5       \" 5       4/5      S 5       5       rt\RN                  RQ                  \R                  SS:  SS9\RN                  Ro                  S\
" / SQ5      \" / SQ5      4\" / SQ5      \" / SQ5      4\" / SQ5      \" / SQ5      4\" SYS/5      \" SYS/5      4\" SS5      \" SS5      4\" 5       \" 5       4/5      S 5       5       ruS rv\RN                  RQ                  \R                  S
:  SS9S 5       rw\RN                  RQ                  \R                  S:  SS9 " S S5      5       rx\RN                  RQ                  \R                  SS:  STS9S 5       ry\RN                  RQ                  \R                  SS:  SS9S 5       rz\RN                  Ro                  S\5      S 5       r{\RN                  Ro                  SS/5      S 5       r|S r}S r~\RN                  Ro                  S\5      S 5       rS rS rS rS rS rS rS rS rg)    N)GeometryGeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygongeos_version)UnsupportedGEOSVersionErrorassert_geometries_equal)	ArrayLike	all_typesemptyempty_line_stringempty_pointempty_polygonignore_invalidline_stringmulti_pointpointpoint_z   )   	   )r   
   )r      r   r    r   zGEOS < 3.11)reason)marks)r   r   r   zGEOS < 3.10geometryfuncc                 x   U R                   (       am  [        R                  " U 5      S:  aS  U[        R                  L a@  [        (       a
  [
        S:  d  [        (       a   [
        S:  a  [        R                  " S5        U" X /5      nUR                  S:X  d   eUS   b  [        US   [        5      (       d   eg g )Nr   )r   r   r   )r   r   r   z;GEOS < 3.9.3 or GEOS < 3.10.3 crashes with empty geometriesr   )is_emptyshapelyget_num_geometriesnodegeos39r   geos310pytestxfailshape
isinstancer   r$   r%   actuals      b/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_constructive.pytest_no_args_arrayr5   G   s     	&&x014GLL Vy0L:5 	RS8&'F<<4!9
6!9h ? ??? ?    c                 L   U[         R                  L a[  [         R                  " U 5      S;  aA  [         R                  S:  a-  [        R
                  " [        SS9   U" X /S5        S S S 5        g [        U[         R                  L =(       a3    [         R                  " U 5      S:H  =(       a    [         R                  S:  5         U" X /S5      nS S S 5        WR                  S:X  d   e[        US   [        5      (       d   eg ! , (       d  f       g = f! , (       d  f       NL= f)	N   r   r!   zonly accept linestringsmatch        r   r      r   r'   )r)   offset_curveget_type_idr   r.   raisesr   r   voronoi_polygonsr0   r1   r   r2   s      r4   test_float_arg_arrayrC   Y   s     	$$$)7  :-]]=0IJ(%s+ K 
((( 	.)Q.	.  :-

 x*C0
 <<4fQi**** KJ
 
s   DD
D
D#	referencec                     [         R                  " X /X/SS9nUR                  S:X  d   e[        US   [        5      (       d   eg )N      ?	tolerancer'   r   )r)   snapr0   r1   r   )r$   rD   r3   s      r4   test_snap_arrayrJ   p   sF     \\8.0FRUVF<<4fQi****r6   c                     U " S 5      nUb   eg N r%   r3   s     r4   test_no_args_missingrO   x   s    $ZF>>r6   c                      U " S S5      nUb   eg )NrF   rM   rN   s     r4   test_float_arg_missingrQ   ~   s    $_F>>r6   c                 2    U" U [        S5      5      nUb   eg )Nnan)floatr2   s      r4   test_float_arg_nanrU      s     (E%L)F>>r6   c                      [         R                  " [        SS9   [        R                  " [
        SSS9  S S S 5        g ! , (       d  f       g = f)N'invalid' is not a valid optionr:   r9   invalid)	cap_styler.   rA   
ValueErrorr)   bufferr   rM   r6   r4   test_buffer_cap_style_invalidr]      s.    	z)J	Kua95 
L	K	K	   >
Ac                      [         R                  " [        SS9   [        R                  " [
        SSS9  S S S 5        g ! , (       d  f       g = f)NrW   r:   r9   rX   
join_stylerZ   rM   r6   r4   test_buffer_join_style_invalidrb      s.    	z)J	KuaI6 
L	K	Kr^   c                  B    [         R                  " S [        SS9n U b   eg )NrF   rG   )r)   rI   r   r3   s    r4   test_snap_nonere      s    \\$5F>>r6   c                 ^    [         R                  " U [        [        R                  S9nUb   eg )NrG   )r)   rI   r   nprS   r$   r3   s     r4   test_snap_nan_floatri      s"    \\(ERVV<F>>r6   c                  :    [         R                  " S 5      n U b   eg rL   r)   
build_areard   s    r4   test_build_area_nonerm          %F>>r6   zgeom,expected)r   r   )r   r   r   r   )r   r   ro   )r9   r9   r   r   r8   rq   holesc                 J    [         R                  " U 5      nX!Ld   eX!:X  d   eg rL   rk   geomexpectedr3   s      r4   test_build_areary      s,    . %F!!!r6   c                  :    [         R                  " S 5      n U b   eg rL   )r)   
make_validrd   s    r4   test_make_valid_noner|      rn   r6   )ro   rq   r8   rq   ro   )rq   r8   )ro   rq   )ro   rr   r   r   r   r   ro   )rq   rr   r}   rq   )ro   r~   rq   ro   c                 t    [         R                  " U 5      nX!Ld   e[         R                  " U5      U:X  d   eg rL   r)   r{   	normalizerv   s      r4   test_make_validr      s9    0 %F!!!V$000r6   )ro   rr   r~   ro   )rq   ro   r~   rq   c                     [         R                  " U 5      n[        R                  " [         R                  " U5      [         R                  " U5      :H  5      (       d   eg rL   )r)   r{   rg   allr   rv   s      r4   test_make_valid_1dr      sD    0 %F66'##F+w/@/@/JJKKKKr6   c                 r    [         R                  " U SS9nX!Ld   e[         R                  " U5      U:X  d   eg )N	structuremethodr   rv   s      r4   test_make_valid_structurer     s;    2 [9F!!!V$000r6   c                 t    [         R                  " U SSS9nX!Ld   e[         R                  " U5      U:X  d   eg )Nr   Fr   keep_collapsedr   rv   s      r4   .test_make_valid_structure_keep_collapsed_falser      s=    2 [OF!!!V$000r6   zGEOS >= 3.10c                      [         R                  " [        SS9   [        R                  " [        5       SS9n S S S 5        g ! , (       d  f       g = f)Nz:The 'structure' method is only available in GEOS >= 3.10.0r:   r   r   )r.   rA   r[   r)   r{   r   )_s    r4   *test_make_valid_structure_unsupported_geosr   ?  s:    	V
 uw{;
 
 
s   A
Az)method, keep_collapsed, error_type, errorlineworkr   Tz!method only accepts scalar valuesFz)keep_collapsed only accepts scalar valuesunknownzUnknown method: unknownz=The 'linework' method does not support 'keep_collapsed=False'c                     [         R                  " X#S9   [        R                  " [	        5       XS9nS S S 5        g ! , (       d  f       g = f)Nr:   r   )r.   rA   r)   r{   r   )r   r   
error_typeerrorr   s        r4   test_make_valid_invalid_paramsr   G  s0    4 
z	/uwvU 
0	/	/s	   <
A
)rq   ro   c                 >    [         R                  " U 5      nX!:X  d   eg rL   )r)   r   rv   s      r4   test_normalizer   e  s      t$Fr6   c                      [        [        R                  S:  5         [        R                  " [        S5      n S S S 5        [        R
                  " W 5      (       d   eg ! , (       d  f       N,= f)Nr=          @)r   r)   r   r?   r   r(   rd   s    r4   test_offset_curve_emptyr   u  sQ    	,,z9	: %%&7= 
; F####	 
;	:s   A
A-c                      [         R                  " [        [        /SS/5      n U S   [         R                  " [        S5      :X  d   eU S   [         R                  " [        S5      :X  d   eg )N       g      r   r9   r)   r?   r   results    r4    test_offset_curve_distance_arrayr   }  s[    !!;"<tTlKF!9,,[$????!9,,[$????r6   c                      [         R                  " [        SSSSS9n [         R                  " [        S5      nX:w  d   eg )Nr   r   mitrer   )	quad_segsra   mitre_limitr   )result1result2s     r4   test_offset_curve_kwargsr     s=    ""TQ7G "";5Gr6   c            	      .   Sn [         R                  " [        U S9   [        R                  " [
        [
        /S[        R                  " SS/5      S9  S S S 5        [         R                  " [        U S9   [        R                  " [
        [
        /SSS/S	9  S S S 5        [         R                  " [        U S9   [        R                  " [
        [
        /SS
S/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nonly accepts scalar valuesr:   r9      r   )r   roundbevelr`         @      @)r   )r.   rA   	TypeErrorr)   r?   r   rg   arraymsgs    r4   #test_offset_curve_non_scalar_kwargsr     s    
&C	y	,k;7bhhPQSTvFVW 
- 
y	,+&w6H	
 
-
 
y	,k;7c
S 
-	, 
-	, 
-	,
 
-	,s#   7C$4#C58#D$
C25
D
Dc                      [         R                  " [        SS9   [        R                  " [
        SSS9  S S S 5        g ! , (       d  f       g = f)NrW   r:   rF   rX   r`   )r.   rA   r[   r)   r?   r   rM   r6   r4   $test_offset_curve_join_style_invalidr     s0    	z)J	K[#)D 
L	K	Kr^   )ro   ro   r9   r   ro   r   )ro   r8   r8   r9   r   ro   )ro   r8   r   ro   )ro   ro   r   rq   r   ro   )ro   r   rq   r   ro   )ro   r   r   r   r   r   r   ro   )rr   rr   r      r   r   r   r   rr   rr   r   r   r   rr   )ro   ro   r   rq   r   r9   ro   )rr   rr   r   r   rp   r   r   rr   ro   r   rq   r   ro   )rr   r   rp   r   rr   c                 F    [        [        R                  " U S5      U5        g Nr   )r   r)   remove_repeated_pointsrw   rx   s     r4   test_remove_repeated_pointsr     s    b G::4CXNr6   r=   zGEOS < 3.12zgeom, tolerancec                     [         R                  " [        R                  SS9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)NzInvalid number of pointsr:   )r.   rA   r)   r   r   rw   rH   s     r4   *test_remove_repeated_points_invalid_resultr     s4     
w,,4N	O&&t7 
P	O	Os   A
Ac                  &   [         R                  " S S5      b   e[         R                  " S /S5      R                  5       S /:X  d   e[        / SQ5      n [        SS/5      n[         R                  " S U /S5      nUS   b   e[	        US   U5        g )Nr9   )ro   ro   rq   ro   rq   r   )r)   r   tolistr   r   r$   rx   r   s      r4    test_remove_repeated_points_noner     s    ))$2:::))4&!4;;=$GGG23H66*+H++T8,<a@F!9F1Ix0r6   )Not a geometryr9   rq   c                     [         R                  " [        SS9   [        R                  " X5        S S S 5        g ! , (       d  f       g = fNz)One of the arguments is of incorrect typer:   )r.   rA   r   r)   r   r   s     r4   (test_remove_repeated_points_invalid_typer     s.     
y(S	T&&t7 
U	T	T	   :
Ar8   )ro   r   r8   ro   ro   r   rq   r   ro   ro   r   r   r   ro   )rr   r   r   r   rr   rp   r   )rr   r   rp   r   rr   c                 D    [        [        R                  " U 5      U5        g rL   )r   r)   reverser   s     r4   test_reverser     s    h GOOD18<r6   c                      [         R                  " S 5      b   e[         R                  " S /5      R                  5       S /:X  d   e[        / SQ5      n [        / SQ5      n[         R                  " S U /5      nUS   b   e[	        US   U5        g )Nr   r   r   r9   )r)   r   r   r   r   r   s      r4   test_reverse_noner   )  s    ??4 (((??D6"))+v555?@H?@H__dH-.F!9F1Ix0r6   rw   r   r9   c                     [         R                  " [        SS9   [        R                  " U 5        S S S 5        g ! , (       d  f       g = fr   )r.   rA   r   r)   r   )rw   s    r4   test_reverse_invalid_typer   4  s*    	y(S	T 
U	T	Tr      r   )   )r   r   )   r   )r   r   r   r   r   r   r   )      r   )r   r   c                 N    [         R                  " U SSSS5      n[        X!5        g )Nr   r   r)   clip_by_rectr   rv   s      r4   test_clip_by_rectr   :  s$    ( !!$BB7FF-r6   zgeom, rect, expected)ro   )r      r   r   )r   r   ro   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )rq   )r9   r   r   )r   r9   rq   )r   r   (   r   )r   r   r   r   )r   r   )r   r   r   r   r   )r   r   r   c                 H    [         R                  " U /UQ76 n[        X25        g rL   r   )rw   rectrx   r3   s       r4   test_clip_by_rect_polygonr   R  s"    Z !!$..FF-r6   c                 D   U R                   (       a  [        R                  " U 5      [        R                  R                  :X  a~  [
        (       a
  [        S:  d*  [        (       a
  [        S:  d  [        (       aI  [        S:  a?  [        R                  " [        5         [        R                  " X /SSSS5        S S S 5        g [        R                  " X /SSSS5      nUR                  S:X  d   eUS   b  [        US   [        5      (       d   eg g ! , (       d  f       g = f)N)r   r   r   )r   r      )r   r    r   r<   rF   r'   r   )r(   r)   r@   GeometryTypePOINTr,   r   r-   geos311r.   rA   r   r   r0   r1   r   rh   s     r4   test_clip_by_rect_arrayr     s     	)W-A-A-G-GGVy0L:5L:5 ]]=)  (!5sCcJ *!!8"6S#sKF<<4!9
6!9h ? ??? ? *)s   D
Dc                  B    [         R                  " S SSSS5      n U b   eg Nr   r9   )r)   r   rd   s    r4   test_clip_by_rect_missingr     s$    !!$1a3F>>r6   c                 X    [         R                  " U SSSS5      nU[        5       :X  d   eg r   )r)   r   r   )rw   r3   s     r4   test_clip_by_rect_emptyr    s.     !!$1a3F'))))r6   c                      Sn [         R                  " [        U S9   [        R                  " [
        [
        /SSS[        R                  " SS/5      5        S S S 5        g ! , (       d  f       g = f)Nr   r:   r   r9   )r.   rA   r   r)   r   r   rg   r   r   s    r4   #test_clip_by_rect_non_scalar_kwargsr    sI    
&C	y	,k;7Aq"((Aq6BRS 
-	,	,s   ;A  
A.c            
      h   [        SS/5      [        SS/5      [        SS/5      [        SS/5      [        SS/5      [        SS/5      [        SS5      S /n [        R                  " U 5      n[        R                  " U5      S:X  d   e[        [        / S	Q5      [        / S
Q5      /5      nX:X  d   eg )Nro   rq   r   r   r   r   r   r      ro   rq   r   ro   rq   ro   r   rq   )r   r   r)   
polygonizer@   r   r   )linesr   rx   s      r4   test_polygonizer    s    FF#$FF#$FF#$FF#$FF#$FF#$a	E &Fv&!+++!4545	
H r6   c                  .   [        SS/5      [        SS/5      [        SS/5      /n [        [        / SQ5      /5      n[        R                  " [
        R                  " U 5      5      n[        U[        R                  5      (       d   eX!:X  d   e[        R                  " [
        R                  " U /5      5      n[        U[
        R                  5      (       d   eUR                  S:X  d   eUS   U:X  d   e[
        R                  " X /5      nUR                  S:X  d   e[        R                  " U5      n[        U[
        R                  5      (       d   eUR                  S:X  d   eUS   U:X  d   eUS	   U:X  d   e[
        R                  " X /X /X //5      nUR                  S
:X  d   e[        R                  " U5      n[        U[
        R                  5      (       d   eUR                  S:X  d   eUR                  5        H
  nXA:X  a  M
   e   g )Nro   rq   r   r  r9   r   r   r'   r9   r   r   r   r   )r   r   r   r)   r	  rg   r   r1   r   ndarrayr0   flattenr
  rx   r   arrress        r4   test_polygonize_arrayr    s   FF#$FF#$FF#$E
 "7+K#L"MNH0Ffg..////% 12Ffbjj))))<<4!9   
((E>
"C99$Ffbjj))))<<4!9   !9   
((UNUNUNC
DC99	!!!$Ffbjj))))<<6!!!~~  r6   c                     [        SS/5      [        SS/5      [        SS/5      /n [        R                  " X /5      n[        R                  " USS9nUR
                  S:X  d   e[        R                  " USS9nUR
                  S:X  d   eg )	Nro   rq   r   r9   axisr'   r   r   )r   rg   r   r)   r	  r0   r
  r  r   s      r4   test_polygonize_array_axisr    s    FF#$FF#$FF#$E
 ((E>
"C!,F<<4!,F<<4r6   c                  T    [         R                  " S S /5      n U [        5       :X  d   eg rL   )r)   r	  r   r   s    r4   test_polygonize_missingr    s(    t-F'))))r6   c                  >   S [        SS/5      [        SS/5      [        SS/5      [        SS/5      S [        SS/5      [        SS/5      [        SS/5      [        SS5      S /n [        R                  " U 5      n[	        U5      S	:X  d   e[        S
 U 5       5      (       d   eUu  p#pE[        [        / SQ5      [        / SQ5      /5      nX&:X  d   eU[        5       :X  d   e[        [        SS/5      [        SS/5      /5      nXG:X  d   eU[        5       :X  d   eg )Nro   rq   r   r   r   r  d   r  r   r   c              3   T   #    U  H  n[         R                  " U5      S :H  v   M      g7f)r  N)r)   r@   .0rw   s     r4   	<genexpr>'test_polygonize_full.<locals>.<genexpr>  s      A&$w""4(A-&s   &(r  r  )r   r   r)   polygonize_fulllenr   r   r   )r
  r   polygonscutsdanglesrX   expected_polygonsexpected_dangless           r4   test_polygonize_fullr,    sD   FF#$FF#$FF#$FF#$FF#$FF#$FJ'(aE $$U+Fv;!A&AAAAA'-$HG*4545	
 (((%'''')	VZ(	):vv6F+GH &&&(****r6   c                     [        SS/5      [        SS/5      [        SS/5      /n [        [        / SQ5      /5      n[        R                  " [
        R                  " U 5      5      n[        U5      S:X  d   e[        S U 5       5      (       d   eUS   U:X  d   e[        S US	S   5       5      (       d   e[        R                  " [
        R                  " U /5      5      n[        U5      S:X  d   e[        S
 U 5       5      (       d   e[        S U 5       5      (       d   eUS   S   U:X  d   e[        S US	S   5       5      (       d   e[
        R                  " X /5      nUR                  S:X  d   e[        R                  " U5      n[        U5      S:X  d   e[        S U 5       5      (       d   e[        S U 5       5      (       d   eUS   S   U:X  d   eUS   S	   U:X  d   e[        S US	S   5       5      (       d   e[
        R                  " X /X /X //5      nUR                  S:X  d   e[        R                  " U5      n[        U5      S:X  d   e[        S U 5       5      (       d   e[        S U 5       5      (       d   eUS   R                  5        H
  nXA:X  a  M
   e   US	S   H*  nUR                  5        H  nU[        5       :X  a  M   e   M,     g )Nro   rq   r   r  r   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frL   )r1   r)   r   r!  s     r4   r#  -test_polygonize_full_array.<locals>.<genexpr>  s      Efdz$ 0 011f   ')r   c              3   :   #    U  H  o[        5       :H  v   M     g 7frL   r   r!  s     r4   r#  r/    s     C
)++
   r9   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frL   r1   rg   r  r!  s     r4   r#  r/  #  s     ?z$

++r0  c              3   >   #    U  H  oR                   S :H  v   M     g7f)r  Nr0   r!  s     r4   r#  r/  $  s     5fdzzT!f   c              3   @   #    U  H  oS    [        5       :H  v   M     g7f)r   Nr2  r!  s     r4   r#  r/  &  s     F:4Aw,..:s   r   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frL   r5  r"  r  s     r4   r#  r/  ,       =fsz#rzz**fr0  c              3   >   #    U  H  oR                   S :H  v   M     g7fr'   Nr7  r;  s     r4   r#  r/  -       3FSyyD Fr8  c              3   L   #    U  H  o  H  o"[        5       :H  v   M     M     g 7frL   r2  )r"  rw   gs      r4   r#  r/  0  s      NZTA&(((Zs   "$r  c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frL   r5  r;  s     r4   r#  r/  6  r<  r0  c              3   >   #    U  H  oR                   S :H  v   M     g7f)r   Nr7  r;  s     r4   r#  r/  7  s     5fsyyF"fr8  )r   r   r   r)   r%  rg   r   r&  r   r0   r  r  s        r4   test_polygonize_full_arrayrD    s   FF#$FF#$FF#$E
 "7+K#L"MNH$$RXXe_5Fv;!EfEEEEE!9   Cqr
CCCCC$$RXXug%67Fv;!??????5f55555!9Q<8###F6!":FFFFF
((E>
"C99$$S)Fv;!=f=====3F33333!9Q<8###!9Q<8###NVABZNNNNN
((UNUNUNC
DC99	!!!$$S)Fv;!=f=====5f55555ay  " #abz;;=C,.... ! r6   c                  z   [        SS/5      [        SS/5      [        SS/5      /n [        R                  " X /5      n[        R                  " USS9n[        U5      S:X  d   e[        S U 5       5      (       d   e[        R                  " USS9n[        U5      S:X  d   e[        S	 U 5       5      (       d   eg )
Nro   rq   r   r9   r  r   c              3   >   #    U  H  oR                   S :H  v   M     g7fr>  r7  r;  s     r4   r#  2test_polygonize_full_array_axis.<locals>.<genexpr>H  r?  r8  r   c              3   >   #    U  H  oR                   S :H  v   M     g7f)r  Nr7  r;  s     r4   r#  rG  K  r?  r8  )r   rg   r   r)   r%  r&  r   r  s      r4   test_polygonize_full_array_axisrI  ?  s    FF#$FF#$FF#$E
 ((E>
"C$$Sq1Fv;!3F33333$$Sq1Fv;!3F33333r6   c                      [         R                  " S S /5      n [        U 5      S:X  d   e[        S U  5       5      (       d   eg )Nr   c              3   :   #    U  H  o[        5       :H  v   M     g 7frL   r2  r!  s     r4   r#  /test_polygonize_full_missing.<locals>.<genexpr>R  s     ?)++r3  )r)   r%  r&  r   r   s    r4   test_polygonize_full_missingrM  N  s?    $$dD\2Fv;!??????r6   max_segment_lengthc                     [         R                  " [        SS9   [        R                  " XS9  S S S 5        g ! , (       d  f       g = f)NIllegalArgumentExceptionr:   rN  )r.   rA   r   r)   
segmentize)r$   rN  s     r4   *test_segmentize_invalid_max_segment_lengthrT  U  s.     
},F	G8K 
H	G	Gs	   8
Ac                 T    [         R                  " U [        R                  S9nUb   eg )NrR  )r)   rS  rg   rS   rh   s     r4   &test_segmentize_max_segment_length_nanrV  ]  s$     RVVDF>>r6   c                 D    [         R                  " U SS9n[        X5        g Nr   rR  r)   rS  r   rh   s     r4   test_segmentize_emptyrZ  d  s    
 Q?FF-r6   c                 D    [         R                  " U SS9n[        X5        g rX  rY  rh   s     r4   test_segmentize_no_changer\  m  s     Q?FF-r6   c                  4    [         R                  " S SS9b   eg rX  )r)   rS  rM   r6   r4   test_segmentize_noner^  t  s    dq9AAAr6   zgeometry,tolerance, expectedr   r   r   )ro   r   r   r   )	ro   r   r   r   r   r   r   r   r   r_  ro   r~         ?)ro   r   r~   c                 F    [         R                  " X5      n[        X25        g rL   rY  )r$   rH   rx   r3   s       r4   test_segmentizerd  y  s    V 4FF-r6   c                     [         R                  " X /5      nUR                  S:X  d   eUS   b  [        US   [        5      (       d   e[         R                  " S 5      nUb   eg Nr'   r   )r)   minimum_bounding_circler0   r1   r   rh   s     r4   &test_minimum_bounding_circle_all_typesrh    sa    ,,h-ABF<<4!9
6!9h ? ???,,T2F>>r6   zgeometry, expected)r_  ra  r   r`  r_  )r9   r   rr   r   r   c                 F    [         R                  " U 5      n[        X!5        g rL   )r)   rg  r   r$   rx   r3   s      r4   test_minimum_bounding_circlerk    s    4 ,,X6FF-r6   c                     [         R                  " X /5      nUR                  S:X  d   eUS   b  [        US   [        5      (       d   e[         R                  " S 5      nUb   eg rf  )r)   oriented_enveloper0   r1   r   rh   s     r4    test_oriented_envelope_all_typesrn    sa    &&';<F<<4!9
6!9h ? ???&&t,F>>r6   )rF   rF   )rF   r   )      @r   )g      @r   )r   r   )ro  )rF   r   )r   r   )r   rF   ro  )rq   )r   r9   r   )rq   )r   rO  )r>   r   r   rq   )rq   )r   r9   )r   r   rq   )ro  )r         "@)g3333330@333333@)gffffff(@gffffffro  )r   r9   c                 *    U" U 5      n[        X1SSS9  g NTgMbP?)r   rH   r   )r$   rx   r%   r3   s       r4   test_oriented_enveloperu    s    B (^FFMr6   zGEOS >= 3.12)gɿgffffff?)rb  g      @)gffffff@g333333@)rr  g?rv  )ro  )rF   rq  )      .@rq  )rw  rF   ro  c                 X    [         R                  R                  U 5      n[        X!SSS9  g rt  )r)   constructive_oriented_envelope_geosr   rj  s      r4   #test_oriented_envelope_pre_geos_312r{    s'    B !!99(CFFMr6   c                  H   [        SS5      R                  S5      [        SS5      R                  S5      /n [        R                  " [	        U 5      5      n[        U[        5      (       d   e[        R                  " U 5      n[        [        R                  " U5      U5        g )Nr9   r   )	r   r\   r)   rm  r   r1   r   rg   asarray)
geometriesr3   rx   s      r4    test_oriented_evelope_array_liker  D  s{     1+$$Q'q!););A)>?J&&y'<=Ffi((((((4HBJJv.9r6   c                  F   [        SS5      n [        U R                  S5      R                  R                  S S  U R                  S5      R                  R                  S S  -   5      n[
        R                  " USS9n[        UR                  5      S:X  d   e[
        R                  " USSS9n[        UR                  5      S	:X  d   e[
        R                  " USS9n[
        R                  " US	S9n[
        R                  " U5      [
        R                  " U5      :  d   eg )
Nr   r   r   g      ?)ratior   T)r  allow_holesr9   )
r   r	   r\   exteriorcoordsr)   concave_hullr&  	interiorsget_num_coordinates)pmpr   r   result3result4s         r4   test_concave_hull_kwargsr  O  s    b"A	AHHQK((//2QXXa[5I5I5P5PQR5SS	TB""2S1Gw  !Q&&&""2SdCGw  !Q&&&""2Q/G""2Q/G&&w/'2M2Mg2VVVVr6   c                   0    \ rS rSrSrS rS rS rS rSr	g)	$TestConstrainedDelaunayTriangulationi^  z
Only testing the number of triangles and their type here.
This doesn't actually test the points in the resulting geometries.

c                     [         R                  " [        / SQ5      5      n[        UR                  5      S:X  d   eUR                   H  n[        U[        5      (       a  M   e   g )Nr   )r   r   )Z   r  )r  r   r   r   )r)   constrained_delaunay_trianglesr   r&  geomsr1   )selfpolysr  s      r4   	test_poly.TestConstrainedDelaunayTriangulation.test_polyf  sU    66FG
 5;;1$$$Aa)))) r6   c                     [        [        S5      [        S5      /5      n[        R                  " U5      n[	        UR
                  5      S:X  d   eUR
                   H  n[        U[        5      (       a  M   e   g )N)2   r   )<   r   r  r  r  r   )r
   r   r)   r  r&  r  r1   )r  	multipolyr  r  s       r4   test_multi_polygon7TestConstrainedDelaunayTriangulation.test_multi_polygonn  sm     BCJK
	 66yA5;;1$$$Aa)))) r6   c                 ~    [        SS5      n[        R                  " U5      n[        UR                  5      S:X  d   eg )Nr9   r   )r   r)   r  r&  r  )r  r  r  s      r4   
test_point/TestConstrainedDelaunayTriangulation.test_pointz  s4    !QK66q95;;1$$$r6   c                 v    [         R                  " [        5       5      n[        UR                  5      S:X  d   eg r   )r)   r  r   r&  r  )r  r  s     r4   test_empty_poly4TestConstrainedDelaunayTriangulation.test_empty_poly  s+    66wyA5;;1$$$r6   rM   N)
__name__
__module____qualname____firstlineno____doc__r  r  r  r  __static_attributes__rM   r6   r4   r  r  ^  s    *
*%
%r6   r  c                  2   [        / SQ5      n [        R                  " U SS9nUR                  S   R	                  [        / SQ5      5      (       d   e[        R                  " U SS9nUR                  S   R	                  [        / SQ5      5      (       d   eg )N)rp  rF   )rp  r   )rF   r   ro  Forderedr   )rO  rO  )rO  rb  r   rb  r   rO  r  T)r   rO  r  r  )r   rb  r  )r	   r)   rB   r  equalsr   )r  r   result_ordereds      r4   test_voronoi_polygons_orderedr    s    	D	EB%%b%8F<<?!!BC    --b$?N"))?@   r6   c                      [        / SQ5      n [        R                  " [        SS9   [        R
                  " U SS9  S S S 5        g ! , (       d  f       g = f)Nr  z%Ordered Voronoi polygons require GEOSr:   Tr  )r	   r.   rA   r   r)   rB   )r  s    r4   #test_voronoi_polygons_ordered_raiser    sA    	D	EB	#+R
 	  T2
 
 
s   A
Ac                 J   [         R                  " U 5      S;  a9  [        R                  " [        SS9   [         R
                  " U 5        S S S 5        g U R                  (       a9  [        R                  " [        SS9   [         R
                  " U 5        S S S 5        g [         R
                  " X /5      nUR                  S:X  d   eUS   b  [        US   [        5      (       d   e[         R
                  " S 5      nUb   eg ! , (       d  f       g = f! , (       d  f       g = f)N)r   r   zxArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygon|Operation not supported by GeometryCollectionr:   *Empty input(?: geometry)? is not supportedr'   r   )
r)   r@   r.   rA   r   maximum_inscribed_circler(   r0   r1   r   rh   s     r4   'test_maximum_inscribed_circle_all_typesr    s    8$F2]]@
 ,,X6
 	]]!M
 ,,X6
 	--x.BCF<<4!9
6!9h ? ???--d3F>>/
 
 	
 
 	s   D>D
D
D")%POLYGON ((0 5, 5 10, 10 5, 5 0, 0 5))zLINESTRING (5 5, 2.5 7.5)c                     [         R                  " U 5      [         R                  " U5      p[         R                  " U 5      n[        X!5        g rL   )r)   from_wktr  r   rj  s      r4   test_maximum_inscribed_circler    s9     !))(3W5E5Eh5Oh--h7FF-r6   c                     [         R                  " S5      n [        R                  " [        SS9   [         R
                  " U 5        S S S 5        [         R                  " S5      n [        R                  " [        SS9   [         R
                  " U 5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       g = f)NzPOINT EMPTYzJArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygonr:   zPOLYGON EMPTYr  )r)   r  r.   rA   r   r  r$   s    r4   #test_maximum_inscribed_circle_emptyr    s    .H	0
 	((2
 0H	I
 	((2
 

 

 
s   B>B/
B,/
B=c                      [         R                  " S5      n [        R                  " [        SS9   [         R
                  " U SS9  S S S 5        g ! , (       d  f       g = f)Nr  z'tolerance' should be positiver:   rO  rG   )r)   r  r.   rA   r[   r  r  s    r4   /test_maximum_inscribed_circle_invalid_tolerancer    s?     GHH	z)I	J((R@ 
K	J	Js   A
Ac                     [         R                  " X /5      nUR                  S:X  d   e[        US   [        5      (       d   e[         R                  " S 5      nUb   eg rf  )r)   orient_polygonsr0   r1   r   rh   s     r4   test_orient_polygons_all_typesr    sX    $$h%9:F<<4fQi****$$T*F>>r6   c                      [        / SQ/ SQ/S9n [        R                  " U 5      nUR                  R                  (       d   eUR
                  S   R                  (       a   e[        R                  " U SS9nUR                  R                  (       a   eUR
                  S   R                  (       d   e[        X /5      n[        R                  " U5      n[        UR                  5      S:X  d   eUR                   H@  nUR                  R                  (       d   eUR
                  S   R                  (       d  M@   e   [        R                  " U/SS9S   n[        UR                  5      S:X  d   eUR                   H@  nUR                  R                  (       a   eUR
                  S   R                  (       a  M@   e   [        [        SS5      X/5      n[        R                  " U5      n[        UR                  5      S	:X  d   eUR                  S   [        SS5      :X  d   eUR                  S   [        R                  " U 5      :X  d   eUR                  S   [        R                  " U5      :X  d   eg )
Nr   r   rs   r   T)exterior_cwr   r9   r   )r   r)   r  r  is_ccwr  r
   r&  r  r   r   )polygonr   r  rw   gcs        r4   test_orient_polygonsr    s   478G
 $$W-F??!!!!"))))$$W$?F%%%%A%%%% 
w(	)B$$R(Fv||!!!}}####>>!$+++++  $$bTt<Q?Fv||!!!==''''~~a ''''' 
 
U1a['6	7B$$R(Fv||!!!<<?eAqk)))<<?g55g>>>><<?g55b9999r6   c                      [         R                  " [        SS5      [        SS/5      S /5      n [        R
                  " U 5      n[        X5        g )Nr   ro   rq   )rg   r   r   r   r)   r  r   )r  r   s     r4   (test_orient_polygons_non_polygonal_inputr    s?    
((E!QKVV,<!=tD
EC$$S)FF(r6   c                  N   [        / SQ/ SQ/S9n [        R                  " U /S-  /S-  5      n[        R                  " U5      n[        U[        R                  5      (       d   eUR                  S:X  d   e[        R                  " U 5      nX#:H  R                  5       (       d   eg )Nr   r   rs   r   r   r   )	r   rg   r   r)   r  r1   r  r0   r   r  r~  r3   rx   s       r4   test_orient_polygons_arrayr    s     478G G9q=/A-.J$$Z0Ffbjj))))<<6!!!&&w/H##%%%%r6   c                  4   [        / SQ/ SQ/S9n U [        SS5      R                  S5      /n[        R                  " [        U5      5      n[        U[
        5      (       d   e[        R                  " U5      n[        [        R                  " U5      U5        g )Nr   r   rs   r   r9   )
r   r   r\   r)   r  r   r1   r   rg   r}  r  s       r4   test_orient_polygons_array_liker  %  s     478G 5A;--a01J$$Yz%:;Ffi((((&&z2HBJJv.9r6   c            
          [         R                  " SS9   [        R                  " [        SS5        S S S 5        [         R                  " SS9   [        R                  " [        SSS5        S S S 5        [         R                  " SS9   [        R                  " [        SSSS5        S S S 5        [         R                  " 5          [        R                  " [        SSSSS5        S S S 5        [         R                  " 5          [        R                  " [        SSSSSS	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
Nz:positional argument `quad_segs` for `buffer` is deprecatedr:   rF   r   zLpositional arguments `quad_segs` and `cap_style` for `buffer` are deprecatedr   z[positional arguments `quad_segs`, `cap_style`, and `join_style` for `buffer` are deprecatedr   F)r.   deprecated_callr)   r\   r   rM   r6   r4    test_buffer_deprecate_positionalr  3  s   			J
 	uc1%
 
		&
 	uc1g.	

 
		&
 	uc1gw7	

 
			!uc1gw< 
"				!uc1gwUC 
"	!!
 

 


 

 
"	!	!	!s;   D+D<E E!E/+
D9<
E

E
E,/
E=c                     [         R                  " SS9   [        R                  " [        SS5        S S S 5        [         R                  " SS9   [        R                  " [        SSS5        S S S 5        [         R                  " SS9   [        R                  " [        SSSS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)	Nz@positional argument `quad_segs` for `offset_curve` is deprecatedr:   rF   r   zSpositional arguments `quad_segs` and `join_style` for `offset_curve` are deprecatedr   zcpositional arguments `quad_segs`, `join_style`, and `mitre_limit` for `offset_curve` are deprecatedr   )r.   r  r)   r?   r   rM   r6   r4   &test_offset_curve_deprecate_positionalr  H  s    			P
 	[#q1
 
		,
 	[#q':	

 
		,
 	[#q'3?	
 

 

 


 
#   B0CC0
B>
C
C c                      [         R                  " SS9   [        R                  " [        SS5        S S S 5        g ! , (       d  f       g = f)NzDpositional argument `preserve_topology` for `simplify` is deprecatedr:   rF   T)r.   r  r)   simplifyr   rM   r6   r4   "test_simplify_deprecate_positionalr  Y  s7    			T
 	c40
 
 
s	   ;
A	c                     [         R                  " SS9   [        R                  " [        SS 5        S S S 5        [         R                  " SS9   [        R                  " [        SS S5        S S S 5        [         R                  " SS9   [        R                  " [        SS SS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)NzDpositional argument `extend_to` for `voronoi_polygons` is deprecatedr:   r<   zWpositional arguments `extend_to` and `only_edges` for `voronoi_polygons` are deprecatedFzcpositional arguments `extend_to`, `only_edges`, and `ordered` for `voronoi_polygons` are deprecated)r.   r  r)   rB   r   rM   r6   r4   *test_voronoi_polygons_deprecate_positionalr  `  s    			T
 	  c48
 
		0
 	  c4?	

 
		0
 	  c4F	
 

 

 


 
r  )numpyrg   r.   r)   r   r   r   r   r   r   r	   r
   r   r   r   shapely.errorsr   shapely.testingr   shapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   r,   r-   r   boundarycentroidconvex_hullparamr  markskipifenvelopeextract_unique_pointsminimum_clearance_liner+   r   point_on_surfacer  CONSTRUCTIVE_NO_ARGSr\   r?   delaunay_trianglesr  rB   CONSTRUCTIVE_FLOAT_ARGparametrizer5   rC   rJ   rO   rQ   rU   r]   rb   re   ri   rm   ry   r|   r   r   r   r   r   r   r   r[   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r,  rD  rI  rM  rT  rV  rZ  r\  r^  rd  rh  rk  rn  rm  minimum_rotated_rectangleru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM   r6   r4   <module>r     s         7 3    
a	f	$
q
w
&
q
w
& 
LLkk    :-m ! 
 !!""LL
LL..kk    :-m ! 
! 2 NN  Y/!56@ 7 0@  Y/!78+ 9 0+* Y/i0+ 1 0+ !56 7
 !78 9
 Y/!78 9 0
6
7

 Y/ 0

 		e DE<= 878	
 

5'#,-,
 	 <=-/?@A	
 <=<=<=	
 

5'%.1/.1 	I 89@A
 89 @A @A	
 u	tU34%.L/.L G((:5mL	 <=?@	
 <=<=<=	
 

5'%.1/ M01 G((:5mL	 <=I	
 <=<=<=	
 

5'%.1/ M01 G((J6~N< O< G((:5mL/ HHj+.//		
 5M7		
 
D*&?@K		
0V1 M2V
 	 -/?@A-/?@A	



$@TE
 G((:5mL	,	-z66:J/KL?@78	

 DE<=	

 <GH <?@		
 LMLM DEDE	
 
	'	k"	k"	-.		&U+.^O_. M`O G((:5mL!IJANO8 M8 G((:5mL1 M1 G((:5mL*-BF,KL8 M M8
 	VV$	%z662B'CD7878	

 <=<=	

 <?@ <?@		
 ff-/?@Aff-/?@A	

 DEDE DEDE	
 
	'	k"	k"	-.		&]/2f=g2f=1 "2A!67 8
  
q!(*+	r2b"&	r2*,-	VW%	&(:(<=	Xx(	):x6J+KL	2	35G5IJ	Wh'	(*h5I*JK&.'&.
  <IJ  	
 <IJ  	
 <IJ <IJ
	
 <IJ TU	
A(+X.Y+X.
 Y/@ 0@&
 %):M!JK* L*T,B
 *+B(/V4@ G((:5mLY/-Aw7L 8 0 ML
 G((:5mLY/ 0 M
 G((:5mL%6F. M.
 G((:5mLeWk%BC. D M.
 G((:5mLB MB G((:5mL" ()()	
 @A@A	
 ()01	
 @A
	
( FG,-FF+, 45FF+,
	
 FG,-FF+, C45FF+,
	
 FG,-FF+, H4534
	
uEHR.SH MT.
 Y/ 0  >?NN5A;*	

 ()NN5A;*	

 '(NN5A;*	

 !QK!QK	

  I	
#2.32.
 Y/ 0 
W&&(I(IJ  STPQ	

 12@A	

 56ST	

 ()()	

 !QK!QK	

  I	
+:N;@N
 G((J6~N STRS	

 12@A	

 56RS	

 ()()	

 !QK!QK	

  I	
+:N; O<N: G((:5mLW MW G((:5mL"% "% M"%J G((:5mL
 M
 G((J6~N3 O3 Y/ 0: 	
..3$A Y/ 0#:L)&:D*@"1Gr6   