§
    ¢”jkG  ã                   ó¨  — 	 d dl Z n# eef$ r	 d dlm Z  Y nw xY we j        Zd dlZddlmZ	m
Z
 ddgZdZ ed¦  «        Ze j        e j         e j        e j        ¦  «         e j        e j        e j        e j        ¬	¦  «        d
„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j         e j        e j        e j        ¬¦  «         e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         Z e j        e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        ¦  «         e j        e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        ¬¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Ze j        e j         e j        e j        ¦  «         e j        e j        e j        e j        e j        ¬¦  «         e j        e j        e j        e j        e j        ¬¦  «        d „ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Ze j         e j        e j        ¦  «         e j        e j        e j        e j        e j        e j        ¬!¦  «         e j        e j        e j        ¬¦  «        d"„ ¦   «         ¦   «         ¦   «         ¦   «         Z e j        e j         e j        e j        ¬#¦  «         e j        e j        e j        e j        e j        e j        ¬$¦  «        d%„ ¦   «         ¦   «         ¦   «         ¦   «         Z!e j         e j        e j        e j        ¬&¦  «         e j        e j        ¬'¦  «         e j        e j        ¬(¦  «         e j        e j        e j        e j        e j        ¬)¦  «         e j        e j        e j        e j        e j        e j        ¬*¦  «        d+„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z" e j        e j        ¬,¦  «         e j        e j        ¬-¦  «         e j        e j        ¬(¦  «        d2d/„¦   «         ¦   «         ¦   «         Z# e j        e j        e j        e j        ¬0¦  «         e j        e j        ¬(¦  «        d2d1„¦   «         ¦   «         Z$dS )3é    N)Úcythoné   )ÚErrorÚApproxNotFoundErrorÚcurve_to_quadraticÚcurves_to_quadraticéd   ÚNaN©Úv1Úv2Úresultc                 óh   — | |                      ¦   «         z  j        }t          |¦  «        dk     rd}|S )zªReturn the dot product of two vectors.

    Args:
        v1 (complex): First vector.
        v2 (complex): Second vector.

    Returns:
        double: Dot product.
    gVçž¯Ò<g        )Ú	conjugateÚrealÚabsr   s      úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/cu2qu/cu2qu.pyÚdotr   %   s6   € ð �2—<’<‘>”>Ñ!Ô'€Fõ ˆ6�{„{�UÒÐØˆØ€Mó    )ÚzÚden)ÚzrÚzic                 óJ   — | j         }| j        }t          ||z  ||z  ¦  «        S )a`  Divide complex by real using Python's method (two separate divisions).

    This ensures bit-exact compatibility with Python's complex division,
    avoiding C's multiply-by-reciprocal optimization that can cause 1 ULP differences
    on some platforms/compilers (e.g. clang on macOS arm64).

    https://github.com/fonttools/fonttools/issues/3928
    )r   ÚimagÚcomplex)r   r   r   r   s       r   Ú_complex_div_by_realr   ?   s*   € ð 
Œ€BØ	
Œ€BÝ�2˜‘8˜R #™XÑ&Ô&Ð&r   )ÚaÚbÚcÚd)Ú_1Ú_2Ú_3Ú_4c                 óz   — |}t          |d¦  «        |z   }t          ||z   d¦  «        |z   }| |z   |z   |z   }||||fS ©Nç      @©r   )r   r   r    r!   r"   r#   r$   r%   s           r   Úcalc_cubic_pointsr*   P   sT   € ð 
€BÝ	˜a Ñ	%Ô	%¨Ñ	)€BÝ	˜a !™e SÑ	)Ô	)¨BÑ	.€BØ	
ˆQ‰�‰�Q‰€BØˆr�2�rˆ>Ðr   )Úp0Úp1Úp2Úp3c                 óN   — || z
  dz  }||z
  dz  |z
  }| }||z
  |z
  |z
  }||||fS r'   © )r+   r,   r-   r.   r    r   r!   r   s           r   Úcalc_cubic_parametersr1   ^   sG   € ð 
ˆb‰�C‰€AØ	ˆb‰�C‰˜!Ñ€AØ
€AØ
ˆQ‰�‰
�Q‰€AØˆa��Aˆ:Ðr   c           
      ó°  — |dk    rt          t          | |||¦  «        ¦  «        S |dk    rt          t          | |||¦  «        ¦  «        S |dk    rwt          | |||¦  «        \  }}t          t          |d         |d         |d         |d         ¦  «        t          |d         |d         |d         |d         ¦  «        z   ¦  «        S |dk    rwt          | |||¦  «        \  }}t          t          |d         |d         |d         |d         ¦  «        t          |d         |d         |d         |d         ¦  «        z   ¦  «        S t          | ||||¦  «        S )a±  Split a cubic Bezier into n equal parts.

    Splits the curve into `n` equal parts by curve time.
    (t=0..1/n, t=1/n..2/n, ...)

    Args:
        p0 (complex): Start point of curve.
        p1 (complex): First handle of curve.
        p2 (complex): Second handle of curve.
        p3 (complex): End point of curve.

    Returns:
        An iterator yielding the control points (four complex values) of the
        subcurves.
    é   é   é   r   r   é   )ÚiterÚsplit_cubic_into_twoÚsplit_cubic_into_threeÚ_split_cubic_into_n_gen)r+   r,   r-   r.   Únr   r   s          r   Úsplit_cubic_into_n_iterr<   l   s\  € ð, 	ˆA‚v€vÝÕ(¨¨R°°RÑ8Ô8Ñ9Ô9Ð9ØˆA‚v€vÝÕ*¨2¨r°2°rÑ:Ô:Ñ;Ô;Ð;ØˆA‚v€vÝ# B¨¨B°Ñ3Ô3‰ˆˆ1ÝÝ   1¤ q¨¤t¨Q¨q¬T°1°Q´4Ñ8Ô8Ý" 1 Q¤4¨¨1¬¨q°¬t°Q°q´TÑ:Ô:ñ;ñ
ô 
ð 	
ð 	ˆA‚v€vÝ# B¨¨B°Ñ3Ô3‰ˆˆ1ÝÝ" 1 Q¤4¨¨1¬¨q°¬t°Q°q´TÑ:Ô:Ý$ Q q¤T¨1¨Q¬4°°1´°q¸´tÑ<Ô<ñ=ñ
ô 
ð 	
õ
 # 2 r¨2¨r°1Ñ5Ô5Ð5r   )r+   r,   r-   r.   r;   )ÚdtÚdelta_2Údelta_3Úi)Úa1Úb1Úc1Úd1c              #   ó8  K  — t          | |||¦  «        \  }}}}d|z  }	|	|	z  }
|	|
z  }t          |¦  «        D ]a}||	z  }||z  }||z  }d|z  |z  |z   |
z  }d|z  |z  |z   d|z  |z  z   |	z  }||z  |z  ||z  z   ||z  z   |z   }t          ||||¦  «        V — Œbd S )Nr   r4   r3   )r1   Úranger*   )r+   r,   r-   r.   r;   r   r   r    r!   r=   r>   r?   r@   Út1Út1_2rA   rB   rC   rD   s                      r   r:   r:   –   sò   è è € õ ' r¨2¨r°2Ñ6Ô6�J€A€qˆ!ˆQØ	
ˆQ‰€BØ�2‰g€GØ�7‰l€GÝ�1‰XŒXð 0ð 0ˆØ�‰VˆØ�B‰wˆà�‰[ˆØ�!‰e�b‰j˜1‰n Ñ'ˆØ�!‰e�b‰j˜1‰n˜q 1™u t™|Ñ+¨rÑ1ˆØ�‰V�d‰]˜Q ™XÑ%¨¨B©Ñ.°Ñ2ˆÝ  B¨¨BÑ/Ô/Ð/Ð/Ð/Ð/ð0ð 0r   )ÚmidÚderiv3c                 ó|   — | d||z   z  z   |z   dz  }||z   |z
  | z
  dz  }| | |z   dz  ||z
  |f|||z   ||z   dz  |ffS )aŒ  Split a cubic Bezier into two equal parts.

    Splits the curve into two equal parts at t = 0.5

    Args:
        p0 (complex): Start point of curve.
        p1 (complex): First handle of curve.
        p2 (complex): Second handle of curve.
        p3 (complex): End point of curve.

    Returns:
        tuple: Two cubic Beziers (each expressed as a tuple of four complex
        values).
    r4   ç      À?ç      à?r0   )r+   r,   r-   r.   rI   rJ   s         r   r8   r8   ´   sq   € ð* ��R˜"‘W‘Ñ Ñ" eÑ
+€CØ�2‰g˜‰l˜RÑ 5Ñ(€Fà	ˆb�2‰g˜‰_˜c F™l¨CÐ0Ø	ˆc�F‰l˜R "™W¨™O¨RÐ0ðð r   )Úmid1Úderiv1Úmid2Úderiv2c           	      ó,  — d| z  d|z  z   d|z  z   |z   dz  }|d|z  z   d| z  z
  dz  }| d|z  z   d|z  z   d|z  z   dz  }d|z  d|z  z
  | z
  dz  }| t          d| z  |z   d¦  «        ||z
  |f|||z   ||z
  |f|||z   t          |d|z  z   d¦  «        |ffS )	až  Split a cubic Bezier into three equal parts.

    Splits the curve into three equal parts at t = 1/3 and t = 2/3

    Args:
        p0 (complex): Start point of curve.
        p1 (complex): First handle of curve.
        p2 (complex): Second handle of curve.
        p3 (complex): End point of curve.

    Returns:
        tuple: Three cubic Beziers (each expressed as a tuple of four complex
        values).
    é   é   r6   gh/¡½„ö¢?r4   r5   r3   r(   r)   )r+   r,   r-   r.   rN   rO   rP   rQ   s           r   r9   r9   Ñ   sç   € ð: �‰F�R˜"‘WÑ˜q 2™vÑ%¨Ñ*¨vÑ6€DØ�1�r‘6‰k˜A ™FÑ" vÑ.€FØ��R‘‰K˜"˜r™'Ñ! A¨¡FÑ*¨vÑ6€DØ�"‰f�q˜2‘v‰o Ñ" vÑ.€Fà	Õ! ! b¡&¨2¡+¨sÑ3Ô3°T¸F±]ÀDÐIØ	ˆt�f‰}˜d V™m¨TÐ2Ø	ˆt�f‰}Õ2°2¸¸B¹±;ÀÑDÔDÀbÐIðð r   )Útr+   r,   r-   r.   )Ú_p1Ú_p2c                 óD   — |||z
  dz  z   }|||z
  dz  z   }|||z
  | z  z   S )ax  Approximate a cubic Bezier using a quadratic one.

    Args:
        t (double): Position of control point.
        p0 (complex): Start point of curve.
        p1 (complex): First handle of curve.
        p2 (complex): Second handle of curve.
        p3 (complex): End point of curve.

    Returns:
        complex: Location of candidate control point on quadratic curve.
    g      ø?r0   )rU   r+   r,   r-   r.   rV   rW   s          r   Úcubic_approx_controlrY   ù   s;   € ð0 ��R‘˜3‰Ñ
€CØ
��R‘˜3‰Ñ
€CØ�#˜‘)˜q‘Ñ Ð r   )ÚabÚcdÚpÚhc                 óü   — || z
  }||z
  }|dz  }	 t          || |z
  ¦  «        t          ||¦  «        z  }n@# t          $ r3 ||k    r| |k    s||k    r|cY S t          t          t          ¦  «        cY S w xY w|||z  z   S )ay  Calculate the intersection of two lines.

    Args:
        a (complex): Start point of first line.
        b (complex): End point of first line.
        c (complex): Start point of second line.
        d (complex): End point of second line.

    Returns:
        complex: Location of intersection if one present, ``complex(NaN,NaN)``
        if no intersection was found.
    y              ð?)r   ÚZeroDivisionErrorr   ÚNAN)r   r   r    r!   rZ   r[   r\   r]   s           r   Úcalc_intersectra     s©   € ð$ 
ˆQ‰€BØ	
ˆQ‰€BØ
ˆR‰€Að	!Ý��1�q‘5‰MŒM�C  2™JœJÑ&ˆˆøÝð !ð !ð !ð
 �Š6ˆ6�q˜A’v�v  a¢ ØˆHˆHˆHÝ•s�CÑ Ô Ð Ð Ð ð!øøøð ˆr�A‰v‰:Ðs   ‘$6 ¶A3ÁA3Á2A3)Ú	tolerancer+   r,   r-   r.   c                 ó*  — t          |¦  «        |k    rt          |¦  «        |k    rdS | d||z   z  z   |z   dz  }t          |¦  «        |k    rdS ||z   |z
  | z
  dz  }t          | | |z   dz  ||z
  ||¦  «        ot          |||z   ||z   dz  ||¦  «        S )a�  Check if a cubic Bezier lies within a given distance of the origin.

    "Origin" means *the* origin (0,0), not the start of the curve. Note that no
    checks are made on the start and end positions of the curve; this function
    only checks the inside of the curve.

    Args:
        p0 (complex): Start point of curve.
        p1 (complex): First handle of curve.
        p2 (complex): Second handle of curve.
        p3 (complex): End point of curve.
        tolerance (double): Distance from origin.

    Returns:
        bool: True if the cubic Bezier ``p`` entirely lies within a distance
        ``tolerance`` of the origin, False otherwise.
    Tr4   rL   FrM   )r   Úcubic_farthest_fit_inside)r+   r,   r-   r.   rb   rI   rJ   s          r   rd   rd   8  sÄ   € õ: ˆ2�w„w�)ÒÐ¥ B¡¤¨9Ò 4Ð 4Øˆtð ��R˜"‘W‘Ñ Ñ" eÑ
+€CÝ
ˆ3�x„x�)ÒÐØˆuØ�2‰g˜‰l˜RÑ 5Ñ(€FÝ$Ø
ˆR�"‰W˜‰O˜S 6™\¨3°	ñô ð Wå
# C¨¨v©¸¸R¹À3±ÈÈIÑ
VÔ
VðWr   )rb   )Úq1Úc0rC   Úc2Úc3c                 ó0  — t          | d         | d         | d         | d         ¦  «        }t          j        |j        ¦  «        rdS | d         }| d         }|||z
  dz  z   }|||z
  dz  z   }t	          d|| d         z
  || d         z
  d|¦  «        sdS |||fS )aã  Approximate a cubic Bezier with a single quadratic within a given tolerance.

    Args:
        cubic (sequence): Four complex numbers representing control points of
            the cubic Bezier curve.
        tolerance (double): Permitted deviation from the original curve.

    Returns:
        Three complex numbers representing control points of the quadratic
        curve if it fits within the given tolerance, or ``None`` if no suitable
        curve could be calculated.
    r   r   r3   r4   NçUUUUUUå?)ra   ÚmathÚisnanr   rd   )Úcubicrb   re   rf   rh   rC   rg   s          r   Úcubic_approx_quadraticrn   b  s±   € õ0 
˜˜aœ %¨¤(¨E°!¬H°e¸A´hÑ	?Ô	?€BÝ„z�"”'ÑÔð ØˆtØ	ˆqŒ€BØ	ˆqŒ€BØ	ˆr�B‰w˜5Ñ!Ñ	!€BØ	ˆr�B‰w˜5Ñ!Ñ	!€BÝ$ Q¨¨U°1¬X©°r¸EÀ!¼H±}ÀaÈÑSÔSð ØˆtØˆr�2ˆ:Ðr   )r;   rb   )r@   )Úall_quadratic)rf   rC   rg   rh   )Úq0re   Únext_q1Úq2rD   c           	      ó  — |dk    rt          | |¦  «        S |dk    r|dk    r| S t          | d         | d         | d         | d         |¦  «        }t          |¦  «        }t          d|d         |d         |d         |d         ¦  «        }| d         }d}| d         |g}	t	          d|dz   ¦  «        D ]»}
|\  }}}}|}|}|
|k     r^t          |¦  «        }t          |
|dz
  z  |d         |d         |d         |d         ¦  «        }|	                     |¦  «         ||z   dz  }n|}|}||z
  }t          |¦  «        |k    s+t          ||||z
  dz  z   |z
  |||z
  dz  z   |z
  ||¦  «        s d	S Œ¼|	                     | d         ¦  «         |	S )
a'  Approximate a cubic Bezier curve with a spline of n quadratics.

    Args:
        cubic (sequence): Four complex numbers representing control points of
            the cubic Bezier curve.
        n (int): Number of quadratic Bezier curves in the spline.
        tolerance (double): Permitted deviation from the original curve.

    Returns:
        A list of ``n+2`` complex numbers, representing control points of the
        quadratic spline if it fits within the given tolerance, or ``None`` if
        no suitable spline could be calculated.
    r   r3   Fr   r4   y                rM   rj   N)rn   r<   ÚnextrY   rF   Úappendr   rd   )rm   r;   rb   ro   ÚcubicsÚ
next_cubicrq   rr   rD   Úspliner@   rf   rC   rg   rh   rp   re   Úd0s                     r   Úcubic_approx_splinerz   †  sä  € ð: 	ˆA‚v€vÝ% e¨YÑ7Ô7Ð7ØˆA‚v€v�- 5Ò(Ð(Øˆå$ U¨1¤X¨u°Q¬x¸¸q¼À5ÈÄ8ÈQÑOÔO€Fõ �f‘”€JÝ"Ø	ˆ:�aŒ=˜* Qœ-¨°A¬¸
À1¼ñô €Gð 
ˆqŒ€BØ	€BØ�AŒh˜Ð €FÝ�1�a˜!‘e‰_Œ_ð ð ˆà#‰ˆˆB��Bð ˆØˆØˆqŠ5ˆ5Ý˜f™œˆJÝ*Ø�Q˜‘U‘˜Z¨œ]¨J°q¬M¸:Àa¼=È*ÐUVÌ-ñô ˆGð �MŠM˜'Ñ"Ô"Ð"Ø�w‘, #Ñ%ˆBˆBàˆBð ˆØ�"‰Wˆåˆr‰7Œ7�YÒÐÕ&?ØØ�"�r‘'˜eÑ$Ñ$ rÑ)Ø�"�r‘'˜eÑ$Ñ$ rÑ)ØØñ'
ô '
Ðð �4�4ð ð ‡M‚M�%˜”(ÑÔÐà€Mr   )Úmax_err)r;   Tc                 ó²   — d„ | D ¦   «         } t          dt          dz   ¦  «        D ]$}t          | |||¦  «        }|�d„ |D ¦   «         c S Œ%t          | ¦  «        ‚)aU  Approximate a cubic Bezier curve with a spline of n quadratics.

    Args:
        cubic (sequence): Four 2D tuples representing control points of
            the cubic Bezier curve.
        max_err (double): Permitted deviation from the original curve.
        all_quadratic (bool): If True (default) returned value is a
            quadratic spline. If False, it's either a single quadratic
            curve or a single cubic curve.

    Returns:
        If all_quadratic is True: A list of 2D tuples representing
        control points of the quadratic spline.

        If all_quadratic is False: Either a quadratic curve (if length
        of output is 3), or a cubic curve (if length of output is 4).

    Raises:
        fontTools.cu2qu.errors.ApproxNotFoundError: if no suitable
        approximation can be found with the given parameters.
    c                 ó    — g | ]}t          |Ž ‘ŒS r0   ©r   ©Ú.0r\   s     r   ú
<listcomp>z&curve_to_quadratic.<locals>.<listcomp>î  s   € Ð(Ð(Ð(˜Q�W�aˆ[Ð(Ð(Ð(r   r   Nc                 ó*   — g | ]}|j         |j        f‘ŒS r0   ©r   r   ©r€   Úss     r   r�   z&curve_to_quadratic.<locals>.<listcomp>ô  s!   € Ð5Ð5Ð5¨�Q”V˜QœVÐ$Ð5Ð5Ð5r   )rF   ÚMAX_Nrz   r   )Úcurver{   ro   r;   rx   s        r   r   r   Ô  s|   € ð4 )Ð( %Ð(Ñ(Ô(€Eå�1•e˜a‘iÑ Ô ð 6ð 6ˆÝ$ U¨A¨w¸ÑFÔFˆØÐà5Ð5¨fÐ5Ñ5Ô5Ð5Ð5Ð5ð õ ˜eÑ
$Ô
$Ð$r   )ÚlÚlast_ir@   c                 ó~  — d„ | D ¦   «         } t          |¦  «        t          | ¦  «        k    rt          d¦  «        ‚| sg S t          | ¦  «        }dg|z  }dx}}d}	 t          | |         |||         |¦  «        }|€|t          k    rn(|dz  }|}Œ5|||<   |dz   |z  }||k    rd„ |D ¦   «         S ŒTt	          | ¦  «        ‚)a˜  Return quadratic Bezier splines approximating the input cubic Beziers.

    Args:
        curves: A sequence of *n* curves, each curve being a sequence of four
            2D tuples.
        max_errors: A sequence of *n* floats representing the maximum permissible
            deviation from each of the cubic Bezier curves.
        all_quadratic (bool): If True (default) returned values are a
            quadratic spline. If False, they are either a single quadratic
            curve or a single cubic curve.

    Example::

        >>> curves_to_quadratic( [
        ...   [ (50,50), (100,100), (150,100), (200,50) ],
        ...   [ (75,50), (120,100), (150,75),  (200,60) ]
        ... ], [1,1] )
        [[(50.0, 50.0), (75.0, 75.0), (125.0, 91.66666666666666), (175.0, 75.0), (200.0, 50.0)], [(75.0, 50.0), (97.5, 75.0), (135.41666666666666, 82.08333333333333), (175.0, 67.5), (200.0, 60.0)]]

    The returned splines have "implied oncurve points" suitable for use in
    TrueType ``glif`` outlines - i.e. in the first spline returned above,
    the first quadratic segment runs from (50,50) to
    ( (75 + 125)/2 , (120 + 91.666..)/2 ) = (100, 83.333...).

    Returns:
        If all_quadratic is True, a list of splines, each spline being a list
        of 2D tuples. If ``curves`` is empty, returns an empty list.

        If all_quadratic is False, a list of curves, each curve being a quadratic
        (length 3), or cubic (length 4).

    Raises:
        ValueError: if ``max_errors`` does not match the number of curves.
        fontTools.cu2qu.errors.ApproxNotFoundError: if no suitable approximation
        can be found for all curves with the given parameters.
    c                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó    — g | ]}t          |Ž ‘ŒS r0   r~   r   s     r   r�   z2curves_to_quadratic.<locals>.<listcomp>.<listcomp>!  s   € Ð*Ð*Ð*˜q�w˜ˆ{Ð*Ð*Ð*r   r0   )r€   r‡   s     r   r�   z'curves_to_quadratic.<locals>.<listcomp>!  s'   € Ð?Ð?Ð?¨uÐ*Ð* EÐ*Ñ*Ô*Ð?Ð?Ð?r   z*max_errors must match the number of curvesNr   r   Tc                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó*   — g | ]}|j         |j        f‘ŒS r0   rƒ   r„   s     r   r�   z2curves_to_quadratic.<locals>.<listcomp>.<listcomp>7  s!   € Ð6Ð6Ð6¨!�a”f˜aœfÐ%Ð6Ð6Ð6r   r0   )r€   rx   s     r   r�   z'curves_to_quadratic.<locals>.<listcomp>7  s'   € ÐMÐMÐM¸6Ð6Ð6¨vÐ6Ñ6Ô6ÐMÐMÐMr   )ÚlenÚ
ValueErrorrz   r†   r   )	ÚcurvesÚ
max_errorsro   rˆ   Úsplinesr‰   r@   r;   rx   s	            r   r   r   ù  sü   € ðP @Ð?¸Ð?Ñ?Ô?€FÝ
ˆ:�„�#˜f™+œ+Ò%Ð%ÝÐEÑFÔFÐFØð Øˆ	åˆF‰Œ€AØˆf�q‰j€GØ€N€FˆQØ	€AðNÝ$ V¨A¤Y°°:¸a´=À-ÑPÔPˆØˆ>Ø•EŠzˆzØØ�‰FˆAØˆFØØˆ�‰
Ø�‰U�a‰KˆØ�Š;ˆ;àMÐMÀWÐMÑMÔMÐMðNõ ˜fÑ
%Ô
%Ð%r   )T)%r   ÚAttributeErrorÚImportErrorÚfontTools.miscÚcompiledÚCOMPILEDrk   Úerrorsr   Ú
Cu2QuErrorr   Ú__all__r†   Úfloatr`   ÚcfuncÚinlineÚreturnsÚdoubleÚlocalsr   r   r   r*   r1   r<   Úintr:   r8   r9   rY   ra   rd   rn   rz   r   r   r0   r   r   ú<module>r£      s–  ðð$&Ø€M€M€M€MøØ˜Ð$ð &ð &ð &à%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ð&øøøð Œ?€à €€€à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð  Ð!6Ð
7€à€à€eˆE�l„l€ð „Ø„Ø€„�”ÑÔØ€„�&”. V¤^¸F¼MÐJÑJÔJðð ñ KÔJñ Ôñ „ñ „ðð, „Ø€„�” V¤]Ð3Ñ3Ô3Ø€„�&”- F¤MÐ2Ñ2Ô2ð'ð 'ñ 3Ô2ñ 4Ô3ñ „ð'ð „Ø„Ø€„�” 6¤>°V´^ÀvÄ~ÐVÑVÔVØ€„Ø„~˜&œ.¨V¬^ÀÄðñ ô ðð ñô ñ WÔVñ „ñ „ðð „Ø„Ø€„Ø„~˜&œ.¨V¬^ÀÄðñ ô ð €„�” 6¤>°V´^ÀvÄ~ÐVÑVÔVðð ñ WÔVñô ñ „ñ „ðð „Ø„Ø€„Ø„~˜&œ.¨V¬^ÀÄðñ ô ð"6ð "6ñô ñ „ñ „ð
"6ðJ €„Ø„~Ø„~Ø„~Ø„~Ø„jðñ ô ð €„�” 6¤>°V´^ÀvÄ~ÐVÑVÔVØ€„Ø„}˜fœm°V´]ÀfÄjðñ ô ð €„Ø„~˜&œ.¨V¬^ÀÄðñ ô ð0ð 0ñô ñô ñ WÔVñô ð0ð  „Ø„Ø€„Ø„~˜&œ.¨V¬^ÀÄðñ ô ð €„�6”>¨&¬.Ð9Ñ9Ô9ðð ñ :Ô9ñô ñ „ñ „ðð. „Ø„Ø€„Ø„~Ø„~Ø„~Ø„~ð	ñ ô ð €„Ø	ŒØŒ>Ø	ŒØŒ>ð	ñ ô ðð ñô ñô ñ „ñ „ðð4 „Ø„Ø€„�”ÑÔØ€„Ø„mØ„~Ø„~Ø„~Ø„~ðñ ô ð €„�6”> v¤~Ð6Ñ6Ô6ð!ð !ñ 7Ô6ñô ñ  Ôñ „ñ „ð!ð$ „Ø„Ø€„�”ÑÔØ€„�” 6¤>°V´^ÀvÄ~ÐVÑVÔVØ€„�&”. V¤^°v´~ÈÌÐWÑWÔWðð ñ XÔWñ WÔVñ  Ôñ „ñ „ð
ð: „Ø€„�”
ÑÔØ€„ØŒmØ„~Ø„~Ø„~Ø„~ðñ ô ð €„�6”>¨&¬.Ð9Ñ9Ô9ðWð Wñ :Ô9ñô ñ Ôñ „ðWð@ „Ø„Ø€„˜œÐ'Ñ'Ô'Ø€„Ø„~Ø„~Ø„~Ø„~Ø„~ðñ ô ðð ñô ñ (Ô'ñ „ñ „ðð4 „Ø€„�” v¤}Ð5Ñ5Ô5Ø€„�”ÐÑÔØ€„˜VœZÐ(Ñ(Ô(Ø€„Ø„~˜&œ.¨V¬^ÀÄðñ ô ð €„Ø„~Ø„~ØŒNØ„~Ø„~ðñ ô ð=ð =ñô ñô ñ )Ô(ñ Ôñ 6Ô5ñ „ð=ð@ €„�v”}Ð%Ñ%Ô%Ø€„�”ÐÑÔØ€„˜VœZÐ(Ñ(Ô(ð%ð %ð %ñ )Ô(ñ Ôñ &Ô%ð%ðD €„�” F¤J°&´*Ð=Ñ=Ô=Ø€„˜VœZÐ(Ñ(Ô(ð>&ð >&ð >&ñ )Ô(ñ >Ô=ð>&ð >&ð >&s   ‚ ‡–