
    ]Mh                     B    d dl Z d Zd Zd Zd Z G d de          ZdS )    Nc                  $    | D ]}|dk    r|c S dS )Nr   g         )argsargs     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/svgLib/path/shapes.py_prefer_non_zeror      s-      !88JJJ 3    c                 X    d| z                       d                               d          S )Nz%.3f0.)rstrip)ns    r   _ntosr      s(    QJs##**3///r	   c                 F    d| v r|                      dd          d         n| S )N}   )split)tags    r   _strip_xml_nsr      s*     $'#::399S!Q36r	   c           	      
   t          j        d|           }|st          t          d t          j        d|                    d                    D                       }t          |          dk    rt          d| z            |S )Nzmatrix\((.*)\)c              3   4   K   | ]}t          |          V  d S N)float).0ps     r   	<genexpr>z_transform.<locals>.<genexpr>   s(      HH588HHHHHHr	   z\s+|,r      zwrong # of terms in %s)rematchNotImplementedErrortupler   grouplen
ValueError)	raw_valuer   matrixs      r   
_transformr'      s    
 H&	22E "!!HHRXhA%G%GHHHHHF
6{{a1I=>>>Mr	   c                       e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
ddZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS ) PathBuilderc                 "    g | _         g | _        d S r   )paths
transformsselfs    r   __init__zPathBuilder.__init__%   s    
r	    c                 n    | j                             |           | j                            d            d S r   )r+   appendr,   )r.   initial_paths     r   _start_pathzPathBuilder._start_path)   s4    
,'''t$$$$$r	   c                 0    |                      d           d S )Nz)_addr-   s    r   	_end_pathzPathBuilder._end_path-   s    		#r	   c                 N    | j         d         }|r	|d|z   z  }n|}|| j         d<   d S )N )r+   )r.   path_snippetpaths      r   r7   zPathBuilder._add0   s:    z"~ 	 C,&&DDD
2r	   c                 r    |                      |t          |          dt          |                     d S N,r7   r   r.   cxys       r   _movezPathBuilder._move8   5    		qq%((((E!HHH566666r	   c                 4    |                      d||           d S )NMrF   r.   rD   rE   s      r   rI   zPathBuilder.M;       

31r	   c                 4    |                      d||           d S )NmrJ   rK   s      r   rN   zPathBuilder.m>   rL   r	   c                     |                      d|t          |          t          |          |t          |          t          |          fz             d S )Nz%s%s,%s 0 %d 1 %s,%srA   )r.   rC   rxryrD   rE   	large_arcs          r   _arczPathBuilder._arcA   sS    		"%))U2YY	588U1XXFG	
 	
 	
 	
 	
r	   r   c                 :    |                      d|||||           d S )NArS   r.   rP   rQ   rD   rE   rR   s         r   rU   zPathBuilder.AG   $    		#r2q!Y/////r	   c                 :    |                      d|||||           d S )NarV   rW   s         r   rZ   zPathBuilder.aJ   rX   r	   c                 R    |                      |t          |                     d S r   rA   )r.   rC   rD   s      r   _vhlinezPathBuilder._vhlineM   s)    		AAuQxxx()))))r	   c                 2    |                      d|           d S )NHr\   r.   rD   s     r   r^   zPathBuilder.HP       S!r	   c                 2    |                      d|           d S )Nhr_   r`   s     r   rc   zPathBuilder.hS   ra   r	   c                 2    |                      d|           d S )NVr_   r.   rE   s     r   re   zPathBuilder.VV   ra   r	   c                 2    |                      d|           d S )Nvr_   rf   s     r   rh   zPathBuilder.vY   ra   r	   c                 r    |                      |t          |          dt          |                     d S r?   rA   rB   s       r   _linezPathBuilder._line\   rG   r	   c                 4    |                      d||           d S )NLrj   rK   s      r   rl   zPathBuilder.L_   rL   r	   c                 4    |                      d||           d S )Nlrm   rK   s      r   ro   zPathBuilder.lb   rL   r	   c                    t          |j                            dd                    }t          |j                            dd                    }t          |j                            dd                    }t          |j                            dd                    }|                                  |                     ||           |                     ||           d S )Nx1r   y1x2y2)r   attribgetr4   rI   rl   )r.   linerq   rr   rs   rt   s         r   _parse_linezPathBuilder._parse_linee   s    4;??4++,,4;??4++,,4;??4++,,4;??4++,,r2r2r	   c                    t          |j                            dd                    }t          |j                            dd                    }t          |j                            d                    }t          |j                            d                    }t          |j                            dd                    }t          |j                            dd                    }t          ||          }t          ||          }|                                  |                     ||z   |           |                     ||z   |z
             |dk    r|                     ||||z   ||z              |                     ||z   |z
             |dk    r!|                     ||||z   |z
  ||z              |                     ||z              |dk    r|                     |||||z   |z
             |                     ||z              |dk    r|                     ||||z   |           | 	                                 d S )NrD   r   rE   widthheightrP   rQ   )
r   ru   rv   r   r4   rI   r^   rU   re   r8   )r.   rectrD   rE   wrc   rP   rQ   s           r   _parse_rectzPathBuilder._parse_recto   s
   $+//#q))**$+//#q))**$+//'**++$+//(++,,4;??4++,,4;??4++,,b"%%b"%% 	q2vqq1urz66FF2r1q5!b&)))q1urz66FF2r1q52:q1u---q2v66FF2r1a!ebj)))q2v66FF2r1r61%%%r	   c                 ^    d|j         v r#|                     |j         d                    d S d S )Nd)r3   ru   r4   )r.   r=   s     r   _parse_pathzPathBuilder._parse_path   s;    $+$+c*:;;;;; r	   c                     d|j         v r9|                     d|j         d         z              |                                  d S d S NpointsrI   )ru   r4   r8   r.   polys     r   _parse_polygonzPathBuilder._parse_polygon   sM    t{""S4;x#88999NN #"r	   c                 b    d|j         v r%|                     d|j         d         z              d S d S r   r   r   s     r   _parse_polylinezPathBuilder._parse_polyline   s=    t{""S4;x#8899999 #"r	   c                    t          |j                            dd                    }t          |j                            dd                    }t          |j                            d                    }|                                  |                     ||z
  |           |                     ||||z   |d           |                     ||||z
  |d           d S )Ncxr   cyrr   rR   r   ru   rv   r4   rI   rU   )r.   circler   r   r   s        r   _parse_circlezPathBuilder._parse_circle   s    6=$$T1--..6=$$T1--..&-##C(()) 	rAvrq!R!VR1---q!R!VR1-----r	   c                    t          |j                            dd                    }t          |j                            dd                    }t          |j                            d                    }t          |j                            d                    }|                                  |                     ||z
  |           |                     ||||z   |d           |                     ||||z
  |d           d S )Nr   r   r   rP   rQ   r   r   r   )r.   ellipser   r   rP   rQ   s         r   _parse_ellipsezPathBuilder._parse_ellipse   s    7>%%dA..//7>%%dA..//7>%%d++,,7>%%d++,, 	rBwr2rBwa000r2rBwa00000r	   c                    t          |j                  }t          | d|                                z  d           }t	          |          sdS  ||           d|j        v r"t          |j        d                   | j        d<   dS )Nz	_parse_%sF	transformr:   T)r   r   getattrlowercallableru   r'   r,   )r.   elr   parse_fns       r   add_path_from_elementz!PathBuilder.add_path_from_element   s~    BF##4syy{{!:DAA!! 	5")##",RY{-C"D"DDOBtr	   N)r0   )r   )__name__
__module____qualname__r/   r4   r8   r7   rF   rI   rN   rS   rU   rZ   r\   r^   rc   re   rh   rj   rl   ro   rx   r~   r   r   r   r   r   r   r   r	   r   r)   r)   $   s         % % % %    7 7 7    
 
 
0 0 0 00 0 0 0* * *        7 7 7        8< < <  
: : :	. 	. 	.
1 
1 
1    r	   r)   )r   r   r   r   r'   objectr)   r   r	   r   <module>r      s    				  0 0 0
7 7 7  S S S S S& S S S S Sr	   