§
    ¢”jð¬  ã                   ód  — d dl T ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlZddlZddlZddlZ ej        d¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z!dS )é   )Ú*é    )ÚTTFont)ÚLerpGlyphSet)ÚRecordingPenÚDecomposingRecordingPenÚRecordingPointPen)ÚControlBoundsPen)ÚCairoPen)ÚSegmentToPointPenÚPointToSegmentPenÚReverseContourPointPen)Úcycle)ÚBytesIONzfontTools.varLib.interpolatablec                   ó   — e Zd Zd„ Zd„ ZdS )ÚOverridingDictc                 ó   — || _         d S ©N©Úparent_dict)Úselfr   s     úr/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/varLib/interpolatablePlot.pyÚ__init__zOverridingDict.__init__   s   € Ø&ˆÔÐÐó    c                 ó   — | j         |         S r   r   )r   Úkeys     r   Ú__missing__zOverridingDict.__missing__   s   € ØÔ Ô$Ð$r   N)Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      s2   € € € € € ð'ð 'ð 'ð%ð %ð %ð %ð %r   r   c            	       ó¢  — e 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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Z#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+dEd$„Z,d%„ Z-d&„ Z.d'„ Z/d(d#d#d)œd*„Z0d(d#d#d)œd+„Z1d,„ Z2d-„ Z3d.„ Z4d/„ Z5d(d(d0œd1„Z6d(d(d0œd2„Z7d3d3d4d3d5d#d#d#d6œd7„Z8d3d3d#d8œd9„Z9d3d3d4d:d;œd<„Z:d3d3d4d:dd=œd>„Z;d3d3d4d?œd@„Z<d3d3d4d#d#dAœdB„Z=dC„ Z>dFdD„Z?d#S )GÚInterpolatablePlotg      ƒ@i  gÍÌÌÌÌÌ@é   é   r   )ç333333Ó?r&   r&   )çš™™™™™É?r'   r'   )çÍÌÌÌÌÌì?r(   r(   ç      à?)çš™™™™™é?r*   r*   )çš™™™™™¹?r+   r+   )r   r*   r   çffffffæ?é   )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   r   )r   r   r   )r   r   r   çš™™™™™Ù?z#Your font's good! Have a cupcake...)r   r)   r   )r&   r   r&   a  
                          ,@.
                        ,@.@@,.
                  ,@@,.@@@.  @.@@@,.
                ,@@. @@@.     @@. @@,.
        ,@@@.@,.@.              @.  @@@@,.@.@@,.
   ,@@.@.     @@.@@.            @,.    .@' @'  @@,
 ,@@. @.          .@@.@@@.  @@'                  @,
,@.  @@.                                          @,
@.     @,@@,.     ,                             .@@,
@,.       .@,@@,.         .@@,.  ,       .@@,  @, @,
@.                             .@. @ @@,.    ,      @
 @,.@@.     @,.      @@,.      @.           @,.    @'
  @@||@,.  @'@,.       @@,.  @@ @,.        @'@@,  @'
     \\@@@@'  @,.      @'@@@@'   @@,.   @@@' //@@@'
      |||||||| @@,.  @@' |||||||  |@@@|@||  ||
       \\\\\\\  ||@@@||  |||||||  |||||||  //
        |||||||  ||||||  ||||||   ||||||  ||
         \\\\\\  ||||||  ||||||  ||||||  //
          ||||||  |||||  |||||   |||||  ||
           \\\\\  |||||  |||||  |||||  //
            |||||  ||||  |||||  ||||  ||
             \\\\  ||||  ||||  ||||  //
              ||||||||||||||||||||||||
)r   r&   r&   z\_(")_/z
 o
/|\
/ \
z
 o
/O\
/ \
z \o/ Nc                 ó~  — || _         || _        |pd„ |D ¦   «         | _        i | _        |                     ¦   «         D ]8\  }}t          | |¦  «        st          d|z  ¦  «        ‚t          | ||¦  «         Œ9| j        dz  | j	        dz  z
  | _
        | j        dz  | j	        dz  z
  | j        dz  z
  | j        z
  | _        d S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS r!   )Úrepr)Ú.0Úgs     r   ú
<listcomp>z/InterpolatablePlot.__init__.<locals>.<listcomp>p   s   € Ð:Ð:Ð:¨1�t A™wœwÐ:Ð:Ð:r   zUnknown keyword argument: %sé   é   r-   )ÚoutÚ	glyphsetsÚnamesÚtocÚitemsÚhasattrÚ	TypeErrorÚsetattrÚwidthÚpadÚpanel_widthÚheightÚ	font_sizeÚtitle_font_sizeÚpanel_height)r   r;   r<   r=   ÚkwargsÚkÚvs          r   r   zInterpolatablePlot.__init__m   sØ   € ØˆŒØ"ˆŒØÐ:Ð:Ð:°	Ð:Ñ:Ô:ˆŒ
ØˆŒà—L’L‘N”Nð 	 ð 	 ‰DˆAˆqÝ˜4 Ñ#Ô#ð DÝÐ >ÀÑ BÑCÔCÐCÝ�D˜!˜QÑÔÐÐàœ:¨™>¨D¬H°q©LÑ8ˆÔàŒK˜!‰O˜dœh¨™lÑ*¨T¬^¸aÑ-?Ñ?À$ÔBVÑVð 	ÔÐÐr   c                 ó   — | S r   r!   ©r   s    r   Ú	__enter__zInterpolatablePlot.__enter__}   s   € Øˆr   c                 ó   — d S r   r!   ©r   ÚtypeÚvalueÚ	tracebacks       r   Ú__exit__zInterpolatablePlot.__exit__€   s   € Øˆr   c                 ó&   — | xj         dz  c_         d S )Nr   )Úpage_numberrN   s    r   Ú	show_pagezInterpolatablePlot.show_pageƒ   s   € ØÐÔ˜AÑÐÔÐÐr   T©Úshow_toleranceÚ	toleranceÚ	kinkinessc          
      óä  — | j         }| j        d| j         z  z
  }|x}}|                      d||d|| j        ¬¦  «         || j        z  }dd l}	|D �]ô}
t
          j                             |
¦  «        }|| j        | j         z   z  }|                      |||d|¬¦  «         || j        | j         z   z  }	 t          |
d¦  «        5 }|	 
                    |                     ¦   «         ¦  «                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      d|z  ||z   ||¬	¦  «         || j        z  }n# t          $ r Y nw xY w|
                     d
¦  «        rtt          |
¦  «        }d|v r|d         nd }|rSdD ]P\  }}|                     |¦  «        }|€Œ|                      |›d|›�||z   ||¬	¦  «         || j        | j         z   z  }ŒQ�Œ…|
                     d¦  «        rZddlm}  ||
¦  «        }dD ]F\  }}|                      |›dt'          ||¦  «        ›�||z   ||¬	¦  «         || j        | j         z   z  }ŒG�Œö|                      |||¬¦  «         |                      ¦   «          d S )Nr:   zProblem report for:T©ÚxÚyÚboldrC   rG   r   )r_   r`   ra   rC   Úrbzsha1: %s©r_   r`   rC   z.ttfÚname))úFamily name)é   r%   r   )ÚVersion)é   z: )z.glyphsz.glyphspackage)ÚGSFont))re   Ú
familyName)ÚVersionMajorÚversionMajor)ÚVersionMinorÚ_versionMinorrY   )rD   rC   Ú
draw_labelrH   ÚhashlibÚosÚpathÚbasenamerG   ÚopenÚsha1ÚreadÚ	hexdigestÚIsADirectoryErrorÚendswithr   ÚgetFirstDebugNameÚ	glyphsLibri   ÚgetattrÚdraw_legendrX   )r   ÚfilesrZ   r[   r\   rD   rC   r_   r`   rp   ÚfileÚ	base_fileÚfÚhÚttFontrd   ÚwhatÚnameIDsÚnri   Úfields                        r   Úadd_title_pagez!InterpolatablePlot.add_title_page†   sM  € ð ŒhˆØ”
˜Q ¤™\Ñ)ˆØˆˆˆAà�ŠØ!ØØØØØÔ*ð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ!Ñ!ˆàˆˆˆàð ,	3ñ ,	3ˆDÝœ×(Ò(¨Ñ.Ô.ˆIØ�” $¤(Ñ*Ñ*ˆAØ�OŠO˜I¨¨a°dÀ%ˆOÑHÔHÐHØ�” $¤(Ñ*Ñ*ˆAðÝ˜$ Ñ%Ô%ð ;¨ØŸš Q§V¢V¡X¤XÑ.Ô.×8Ò8Ñ:Ô:�Að;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;à—’ 
¨Q¡°!°c±'¸QÀe�ÑLÔLÐLØ�T”^Ñ#��øÝ$ð ð ð Ø�ðøøøð �}Š}˜VÑ$Ô$ð 3Ý ™œ�Ø)/°6Ð)9Ð)9�v˜f”~�~¸t�Øð 7ð*ð 
7ð 
7™˜˜gð !×2Ò2°7Ñ;Ô;˜Ø˜9Ø$ØŸšØ(,¨¨¨a¨aÐ0°A¸±G¸qÈð (ñ ô ð ð ˜Tœ^¨d¬hÑ6Ñ6˜˜ùØ—’Ð<Ñ=Ô=ð 3Ø,Ð,Ð,Ð,Ð,Ð,à�F˜4‘L”L�ð$ð 3ð 3‘K�D˜%ð
 —O’OØ$( D D­'°!°UÑ*;Ô*;Ð*;Ð<Ø˜c™'ØØ#ð	 $ñ ô ð ð ˜œ¨$¬(Ñ2Ñ2�A�Aùà×ÒØ)°YÈ)ð 	ñ 	
ô 	
ð 	
ð 	�ŠÑÔÐÐÐs6   Â/D:Â?:DÃ9D:ÄD		Ä	D:ÄD		Ä,D:Ä:
EÅEc                ó¶
  — t          j        | j        ¦  «        }| j        }| j        | j        z
  | j        dz  z
  }| j        d| j        z  z
  }|| j        dz  z   }|| j        dz  z   }	|r+|                      d|	||¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                     || j        dz  z
  |d| j        z  | j        ¦  «          |j	        | j
        Ž  |                     ¦   «          | j        r= |j	        | j        Ž  |                     | j        ¦  «         |                     ¦   «           |j        | j        Ž  |                     ¦   «          || j        | j        z   z  }|                      d|	||¬¦  «         |                     || j        dz  z
  |d| j        z  | j        ¦  «         | j
        r# |j	        | j
        Ž  |                     ¦   «          | j        r= |j	        | j        Ž  |                     | j        ¦  «         |                     ¦   «           |j        g | j        d	         ¢| j        ‘R Ž  |                     ¦   «          || j        | j        z   z  }|                      d
|	||¬¦  «         |                      |||| j        dz  z   | j        | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      ||| j        dz  z
  || j        dz  z   | j         ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      |||| j        dz  z   | j        | j!        ¬¦  «         || j        | j        z   z  }|                      d|	||¬¦  «         |                      ||| j        dz  z
  || j        dz  z   | j!        ¬¦  «         || j        | j        z   z  }|                      d|||d¬¦  «         || j        | j        z   z  }|�.|                      d|z  |	||¬¦  «         || j        | j        z   z  }|�.|                      d|z  |	||¬¦  «         || j        | j        z   z  }|                      d|||d¬¦  «         || j        | j        z   z  }d S )Nr9   r.   z,Tolerance: badness; closer to zero the worserc   zUnderweight contoursr,   g      ø?z/Colored contours: contours with the wrong orderr   zKink artifactr)   )r_   r`   ÚdiameterÚstroke_widthÚcolorz!Point causing kink in the contour)r_   r`   rŠ   rŒ   z!Suggested new contour start pointz4Contour start point in contours with wrong directionr&   ©r_   r`   rŒ   z5Contour start point when the first two points overlapz!Contour start point and directionzLegend:T©r_   r`   rC   ra   z!Kink-reporting aggressiveness: %gzError tolerance: %gzParameters:)"ÚcairoÚContextÚsurfacerD   rF   rG   rC   ro   Ú	rectangleÚset_source_rgbÚ
fill_colorÚfill_preserveÚstroke_colorÚset_line_widthr‹   Ústroke_preserveÚset_source_rgbaÚweight_issue_contour_colorÚfillÚcontour_colorsÚcontour_alphaÚdraw_circleÚkink_circle_sizeÚkink_circle_stroke_widthÚkink_circle_colorÚdraw_dotÚkink_point_sizeÚkink_point_colorÚcorrected_start_point_sizeÚcorrected_start_point_colorÚ
draw_arrowÚstart_arrow_lengthÚwrong_start_point_colorÚstart_point_color)
r   rZ   r[   r\   Úcrr_   r`   rC   ÚxxÚxxxs
             r   r}   zInterpolatablePlot.draw_legendÌ   sE  € ÝŒ]˜4œ<Ñ(Ô(ˆàŒHˆØŒK˜$œ(Ñ" T¤^°aÑ%7Ñ7ˆØ”
˜Q ¤™\Ñ)ˆà�”˜A‘ÑˆØ�$”(˜Q‘,Ñˆàð 	+Ø�OŠOØ>À#ÈÐRWð ñ ô ð ð �”˜DœNÑ*Ñ*ˆAà�ŠÐ.°#¸À%ˆÑHÔHÐHØ
�Š�R˜$œ( S™.Ñ(¨!¨S°4´8©^¸T¼^ÑLÔLÐLØˆÔ˜4œ?Ð+Ð+Ø
×ÒÑÔÐØÔð 	!ØˆBÔ˜tÔ0Ð1Ð1Ø×Ò˜dÔ/Ñ0Ô0Ð0Ø×ÒÑ Ô Ð ØˆÔ˜DÔ;Ð<Ð<Ø
�Š‰	Œ	ˆ	Ø	ˆTŒX˜œÑ&Ñ&ˆà�ŠØ=ÀÈÐQVð 	ñ 	
ô 	
ð 	
ð 	�Š�R˜$œ( S™.Ñ(¨!¨S°4´8©^¸T¼^ÑLÔLÐLØŒ?ð 	ØˆBÔ˜tœÐ/Ð/Ø×ÒÑÔÐØÔð 	!ØˆBÔ˜tÔ0Ð1Ð1Ø×Ò˜dÔ/Ñ0Ô0Ð0Ø×ÒÑ Ô Ð ØˆÔÐG˜DÔ/°Ô2ÐG°DÔ4FÐGÐGÐGÐGØ
�Š‰	Œ	ˆ	Ø	ˆTŒX˜œÑ&Ñ&ˆà�Š˜¨3°!¸5ˆÑAÔAÐAØ×ÒØØØ�$”. 3Ñ&Ñ&ØÔ*ØÔ6ØÔ(ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØØ�$”. 3Ñ&Ñ&ØÔ)ØÔ'ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØØ�$”. 3Ñ&Ñ&ØÔ4ØÔ2ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠØBØØØð	 	ñ 	
ô 	
ð 	
ð 	�ŠØØ�4Ô*¨SÑ0Ñ0Ø�$”. 3Ñ&Ñ&ØÔ.ð	 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠØCØØØð	 	ñ 	
ô 	
ð 	
ð 	�ŠØØØ�$”. 3Ñ&Ñ&ØÔ4ØÔ(ð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�ŠÐ;¸sÀaÈuˆÑUÔUÐUØ�ŠØØ�4Ô*¨SÑ0Ñ0Ø�$”. 3Ñ&Ñ&ØÔ(ð	 	ñ 	
ô 	
ð 	
ð 	
ˆTŒX˜œÑ&Ñ&ˆà�Š˜	 Q¨!°5¸tˆÑDÔDÐDØ	ˆTŒX˜œÑ&Ñ&ˆàÐ Ø�OŠOØ3°iÑ?ØØØð	 ñ ô ð ð �”˜DœNÑ*Ñ*ˆAàÐ Ø�OŠOØ%¨	Ñ1ØØØð	 ñ ô ð ð �”˜DœNÑ*Ñ*ˆAà�Š˜¨¨a°uÀ4ˆÑHÔHÐHØ	ˆTŒX˜œÑ&Ñ&ˆˆˆr   c           
      ót  — | j         }| j        d| j         z  z
  }| j        d| j         z  z
  }|x}}|                      d||d|| j        ¬¦  «         || j        z  }t          t          ¦  «        }t          |                     ¦   «         ¦  «        D ]+\  }}	|	D ]#}
||
d                   	                    |¦  «         Œ$Œ,t          j        |v r|t          j        = t          |d„ ¬¦  «        D ]»}|| j        z  }|                      d	|t          ||         ¦  «        fz  |||d¬
¦  «         || j        z  }t          ||         ¦  «        D ]]}|| j        z   |k    r|                      ¦   «          | j        |z   }|                      ||d|z  z   ||d|z  z
  ¬¦  «         || j        z  }Œ^Œ¼|                      ¦   «          d S )Nr:   r9   zSummary of problemsTr^   rR   c                 ó&   — t           j        |          S r   )ÚInterpolatableProblemÚseverity©r_   s    r   ú<lambda>z0InterpolatablePlot.add_summary.<locals>.<lambda>m  s   € Õ.CÔ.LÈQÔ.O€ r   ©r   z%s: %drŽ   rc   )rD   rC   rF   ro   rH   ÚdefaultdictÚsetÚsortedr?   Úaddr°   ÚNOTHINGrG   ÚlenrX   )r   ÚproblemsrD   rC   rF   r_   r`   Úglyphs_per_problemÚ	glyphnameÚglyph_problemsÚproblemÚproblem_types               r   Úadd_summaryzInterpolatablePlot.add_summaryT  s%  € ØŒhˆØ”
˜Q ¤™\Ñ)ˆØ”˜q 4¤8™|Ñ+ˆØˆˆˆAà�ŠØ!ØØØØØÔ*ð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ!Ñ!ˆå(­Ñ-Ô-ÐÝ)/°·²Ñ0@Ô0@Ñ)AÔ)Að 	Cð 	CÑ%ˆI�~Ø)ð Cð C�Ø" 7¨6¤?Ô3×7Ò7¸	ÑBÔBÐBÐBðCõ !Ô(Ð,>Ð>Ð>Ø"Õ#8Ô#@ÐAå"ØÐ$OÐ$Oð
ñ 
ô 
ð 	$ð 	$ˆLð �”ÑˆAØ�OŠOØ˜L­#Ð.@ÀÔ.NÑ*OÔ*OÐPÑPØØØØð ñ ô ð ð �”ÑˆAå#Ð$6°|Ô$DÑEÔEð $ð $�	Ø�t”~Ñ%¨Ò.Ð.Ø—N’NÑ$Ô$Ð$Øœ¨Ñ,�AØ—’ 	¨Q°°S±©[¸AÀUÈQÐQTÉWÁ_�ÑUÔUÐUØ�T”^Ñ#��ð$ð 	�ŠÑÔÐÐÐr   c           	      ó&  — | j         }| j        d| j         z  z
  }| j        d| j         z  z
  }|x}}|                      |||d|| j        ¬¦  «         || j        | j         z   z  }d }|D ]–\  }	\  }
}|
|k    rŒ|
}|| j        z   |k    r|                      ¦   «          | j        |z   }|                      |
|d|z  z   ||d|z  z
  ¬¦  «         |                      t          |	¦  «        ||d|z  d¬¦  «         || j        z  }Œ—|                      ¦   «          d S )	Nr9   Tr^   rh   rc   r.   r   )r_   r`   rC   Úalign)rD   rC   rF   ro   rH   rG   rX   Ústr)r   Útitler?   rD   rC   rF   r_   r`   Úlast_glyphnameÚpage_nor½   r»   s               r   Ú_add_listingzInterpolatablePlot._add_listing‚  sJ  € ØŒhˆØ”
˜Q ¤™\Ñ)ˆØ”˜q 4¤8™|Ñ+ˆØˆˆˆAà�ŠØ�Q˜! $¨e¸tÔ?Sð 	ñ 	
ô 	
ð 	
ð 	
ˆTÔ! D¤HÑ,Ñ,ˆàˆØ.3ð 		 ð 		 Ñ*ˆGÑ*�i Ø˜NÒ*Ð*ØØ&ˆNØ�4”>Ñ! FÒ*Ð*Ø—’Ñ Ô Ð Ø”N SÑ(�Ø�OŠO˜I¨¨Q°©W©¸ÀÈÈSÉÁˆOÑQÔQÐQØ�OŠO�C ™LœL¨A°¸!¸c¹'ÈˆOÑKÔKÐKØ�”ÑˆAˆAà�ŠÑÔÐÐÐr   c                 óz   — |                       dt          | j                             ¦   «         ¦  «        ¦  «         d S )NzTable of contents©rÈ   r·   r>   r?   rN   s    r   Úadd_table_of_contentsz(InterpolatablePlot.add_table_of_contents›  s3   € Ø×ÒÐ-­v°d´h·n²nÑ6FÔ6FÑ/GÔ/GÑHÔHÐHÐHÐHr   c                 ó€   — |                       dt          | j                             ¦   «         d„ ¬¦  «        ¦  «         d S )NÚIndexc                 ó   — | d         d         S )Nr   r   r!   r²   s    r   r³   z.InterpolatablePlot.add_index.<locals>.<lambda>Ÿ  s   € È!ÈAÌ$ÈqÌ'€ r   r´   rÊ   rN   s    r   Ú	add_indexzInterpolatablePlot.add_indexž  s;   € Ø×Ò˜'¥6¨$¬(¯.ª.Ñ*:Ô*:Ð@QÐ@QÐ#RÑ#RÔ#RÑSÔSÐSÐSÐSr   ©rZ   Úshow_page_numberc                óª  — |                      ¦   «         D ]½\  }}d }g }|D ]‚}d|v r|d         n|d         |d         f}	|	|k    r|                     |¦  «         Œ:|r/|                      ||||¬¦  «         |                      ¦   «          g }|	}|                     |¦  «         Œƒ|r-|                      ||||¬¦  «         |                      ¦   «          Œ¾d S )NÚ
master_idxÚmaster_1_idxÚmaster_2_idxrÐ   )r?   ÚappendÚadd_problemrX   )
r   r»   rZ   rÑ   Úglyphr¾   Úlast_mastersÚcurrent_glyph_problemsÚpÚmasterss
             r   Úadd_problemszInterpolatablePlot.add_problems¡  s@  € Ø%-§^¢^Ñ%5Ô%5ð 	!ð 	!Ñ!ˆE�>ØˆLØ%'Ð"Ø#ð 1ð 1�ð $ qÐ(Ð(ð �l”O�Oà˜NÔ+¨Q¨~Ô->Ð?ð ð
 ˜lÒ*Ð*Ø*×1Ò1°!Ñ4Ô4Ð4Øà)ð 0Ø×$Ò$ØØ.Ø'5Ø)9ð	 %ñ ô ð ð —N’NÑ$Ô$Ð$Ø-/Ð*Ø&�Ø&×-Ò-¨aÑ0Ô0Ð0Ð0Ø%ð !Ø× Ò ØØ*Ø#1Ø%5ð	 !ñ ô ð ð —’Ñ Ô Ð øð?	!ð 	!r   c                ó<  ‡‡‡7‡8— t          ‰¦  «        t          t          fvr‰gŠ‰‰f| j        | j        <   ‰d         d         Š8t          d„ ‰D ¦   «         ¦  «        }t          ˆ8fd„|D ¦   «         ¦  «        s,d                     t          d„ ‰D ¦   «         ¦  «        ¦  «        Š8t           
                    d‰‰8¦  «         d‰d         v rd	nd
}ˆfd„|D ¦   «         }‰8t          j        k    rCt          ˆfd„t          | j        ¦  «        D ¦   «         ¦  «        }|                     d|¦  «         | j        }	| j        }
|                      d‰z   |	|
| j        dd| j        ¬¦  «         t+          d„ ‰D ¦   «         ¦  «        }|dk     r0|r.|                      d|z  |	|
| j        d| j        z  z
  dd¬¦  «         |
| j        | j        z   z  }
|                      d‰8z   |	|
| j        d| j        z  z
  | j        d¬¦  «         |
| j        | j        dz  z   z  }
g }t          |¦  «        D ]Ä\  }}| j        |         }| j        |         }|                      ||	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
|‰         �/|                     |                      |‰‰||	|
¬¦  «        ¦  «         n|                      | j        |	|
¬¦  «         |
| j        | j        z   | j        z   z  }
ŒÅtA          d„ |D ¦   «         ¦  «        �r| j        | j        z   | j        z   }	| j        }
|
| j        | j        dz  z   z  }
|
| j        | j        z   z  }
| j        |d                  }| j        |d                  }|                      d|	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
tC          ||¦  «        }|                      |‰ddigd„ ‰D ¦   «         z   d |	|
t+          |¦  «        ¬¦  «         |
| j        | j        z   | j        z   z  }
tA          d„ |D ¦   «         ¦  «        �rN|                      d |	|
| j        | j        d¬¦  «         |
| j        | j        z   z  }
tE          |¦  «        }tE          |¦  «        }tG          tH          |¬!¦  «        }tG          tH          |¬!¦  «        Š7|‰          %                    |¦  «         |‰          %                    ‰7¦  «         ‰D ]9}|d         t          j&        k    r!ˆ7fd"„‰d         d#         D ¦   «         }|‰7_'        Œ:‰D �]ñ}|d         t          j(        k    �r×|j'        |d$                  }‰7j'        |d$                  }tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         |d#         }|d&         rNtS          ¦   «         }tY          |¦  «        } | +                    | ¦  «         |}t[          |j'        ¦  «        dz
  |z
  }|j'        d d…         }!|j'        d'd …         }"|j'        dd'…         }#|#|d …         |#d |…         z   }#|!|#z   |"z   |_'        tI          ¦   «         }$t]          |$d¦  «        }| +                    |¦  «         tI          ¦   «         }%t]          |%d¦  «        }| +                    |¦  «         |$j'        |_'        |%j'        |_'        ||j'        |d$         <   |‰7j'        |d$         <   �Œó‰D �]U}|d         t          j/        k    �r;|j'        |d$                  }‰7j'        |d$                  }tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         tS          ¦   «         }tU          |d%¦  «        }| +                    |¦  «         |d(         }&|&dz   }'|j'        |'         d         d         }(|j'        |'         d         d         })|&dz
  t[          |j'        ¦  «        dz
  z  dz   }*|j'        |*         d         d         }+|j'        |*         d         d         },|&dz   t[          |j'        ¦  «        dz
  z  dz   }-|j'        |-         d         d         }.|j'        |-         d         d         }/ta          |(Ž }(ta          |)Ž })ta          |+Ž }+ta          |,Ž },ta          |.Ž }.ta          |/Ž }/tc          |(|+z
  ¦  «        tc          |.|+z
  ¦  «        z  }0tc          |)|,z
  ¦  «        tc          |/|,z
  ¦  «        z  }1|0|1z   dz  }2|+|2|.|+z
  z  z   }(|,|2|/|,z
  z  z   })|j'        |'         d         |(j2        |(j3        ff|j'        |'         d         dd …         z   |j'        |'         d         f|j'        |'<   |j'        |'         d         |)j2        |)j3        ff|j'        |'         d         dd …         z   |j'        |'         d         f|j'        |'<   tI          ¦   «         }$t]          |$d¦  «        }| +                    |¦  «         tI          ¦   «         }%t]          |%d¦  «        }| +                    |¦  «         |$j'        |_'        |%j'        |_'        �ŒWtI          ¦   «         }3tI          ¦   «         }4|j'        D ]!}5|3j'         4                    |5j'        ¦  «         Œ"‰7j'        D ]!}5|4j'         4                    |5j'        ¦  «         Œ"|3j+        |3_%        |4j+        |4_%        |3|‰<   |4|‰<   	 tC          ||¦  «        }|                      |‰dd)id |	|
t+          |¦  «        ¬¦  «         n-# tj          $ r  |                      | j        |	|
¬¦  «         Y nw xY w|
| j        | j        z   z  }
n`| j        }6t          j6        |v r| j7        }6n+t          j8        |v r| j9        }6nt          j:        |v r| j;        }6|                      |6|	|
¬¦  «         |rN|                      ty          | j        ¦  «        d| j=        | j        z
  | j        z
  | j        | j        d¬*¦  «         d S d S )+Nr   rR   c              3   ó&   K  — | ]}|d          V — ŒdS ©rR   Nr!   ©r6   r¿   s     r   ú	<genexpr>z1InterpolatablePlot.add_problem.<locals>.<genexpr>Ì  ó&   è è € ÐDÐD°˜G FœOÐDÐDÐDÐDÐDÐDr   c              3   ó$   •K  — | ]
}|‰k    V — Œd S r   r!   ©r6   ÚptrÀ   s     €r   râ   z1InterpolatablePlot.add_problem.<locals>.<genexpr>Í  ó(   øè è € Ð>Ð>¨"�2˜Ò%Ð>Ð>Ð>Ð>Ð>Ð>r   z, c                 ó   — h | ]
}|d          ’ŒS ©rR   r!   rá   s     r   ú	<setcomp>z1InterpolatablePlot.add_problem.<locals>.<setcomp>Î  s   € Ð,UÐ,UÐ,UÀ¨W°V¬_Ð,UÐ,UÐ,Ur   zDrawing %s: %srÓ   )rÓ   )rÔ   rÕ   c                 ó,   •— g | ]}‰d          |         ‘ŒS )r   r!   )r6   rK   r»   s     €r   r8   z2InterpolatablePlot.add_problem.<locals>.<listcomp>×  s!   ø€ Ð>Ð>Ð>¨Q˜( 1œ+ aœ.Ð>Ð>Ð>r   c              3   ó2   •K  — | ]\  }}|‰         ®|V — Œd S r   r!   )r6   ÚiÚmr½   s      €r   râ   z1InterpolatablePlot.add_problem.<locals>.<genexpr>Ú  s9   øè è € ð  ð  Ù�a˜¸1¸Y¼<Ð;S�Ð;SÐ;SÐ;SÐ;Sð ð  r   zGlyph name: T)r_   r`   rŒ   rÃ   ra   rG   c              3   óB   K  — | ]}|                      d d¦  «        V — ŒdS )r[   r   N)Úget©r6   rÛ   s     r   râ   z1InterpolatablePlot.add_problem.<locals>.<genexpr>ë  s0   è è € Ð@Ð@°!˜Ÿš˜k¨1Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r   r   ztolerance: %.2fr9   )r_   r`   rC   rÃ   ra   z
Problems: )r_   r`   rC   rŒ   ra   r)   )r_   r`   rŒ   rC   rÃ   )r_   r`   c              3   ó¢   K  — | ]J}|t           j        t           j        t           j        t           j        t           j        t           j        fv V — ŒKd S r   )r°   r¹   ÚWRONG_START_POINTÚCONTOUR_ORDERÚKINKÚUNDERWEIGHTÚ
OVERWEIGHT©r6   ræ   s     r   râ   z1InterpolatablePlot.add_problem.<locals>.<genexpr>  sf   è è € ð 
ð 
ð ð å%Ô-Ý%Ô7Ý%Ô3Ý%Ô*Ý%Ô1Ý%Ô0ððð
ð 
ð 
ð 
ð 
ð 
r   zmidway interpolationÚmidwayc                 óh   — g | ]/}|d          t           j        t           j        t           j        fv ¯-|‘Œ0S ré   )r°   rõ   rö   r÷   rñ   s     r   r8   z2InterpolatablePlot.add_problem.<locals>.<listcomp><  sP   € ð 	ð 	ð 	àØ˜”yå-Ô2Ý-Ô9Ý-Ô8ððð ð ðð ð r   ©r_   r`   Úscalec              3   ó`   K  — | ])}|t           j        t           j        t           j        fv V — Œ*d S r   )r°   ró   rô   rõ   rø   s     r   râ   z1InterpolatablePlot.add_problem.<locals>.<genexpr>N  sT   è è € ð 
ð 
ð ð å%Ô7Ý%Ô3Ý%Ô*ððð
ð 
ð 
ð 
ð 
ð 
r   zproposed fix©Úglyphsetc                 ó*   •— g | ]}‰j         |         ‘ŒS r!   )rS   )r6   rí   ÚperContourPen2s     €r   r8   z2InterpolatablePlot.add_problem.<locals>.<listcomp>p  s.   ø€ ð &ð &ð &Ø45˜Ô,¨QÔ/ð&ð &ð &r   Úvalue_2ÚcontourFÚreversedéÿÿÿÿrS   Úfixed)r_   r`   rC   rŒ   rÃ   )>rR   ÚlistÚtupler>   rW   r¶   ÚallÚjoinr·   ÚlogÚinfor°   ÚMISSINGÚnextÚ	enumerater<   ÚinsertrD   ro   Ú
head_colorrH   ÚminrC   rG   r=   Úlabel_colorrE   rÖ   Ú
draw_glyphÚdraw_emoticonÚshrugrI   Úanyr   r   ÚPerContourOrComponentPenr   Údrawrô   rS   ró   r	   r   Úreplayr   rº   r   rõ   ÚcomplexÚabsÚrealÚimagÚextendÚ
ValueErrorrö   Úunderweightr÷   Ú
overweightr¹   ÚyayrÄ   rF   )9r   r½   r»   rZ   rÑ   Úproblem_typesÚmaster_keysÚmaster_indicesÚsample_glyphr_   r`   r[   ÚscalesÚwhichrÓ   rÿ   rd   Ú	glyphset1Ú	glyphset2Úmidway_glyphsetÚoverriding1Úoverriding2ÚperContourPen1r¿   Úfixed_contoursÚwrongContour1ÚwrongContour2Úpoints1Ú	converterÚpoints2Úproposed_startÚnew_points2ÚreversedPenÚ	beginPathÚendPathÚptsÚsegment1Úsegment2rí   ÚjÚpt0Úpt1Új_prevÚpt0_prevÚpt1_prevÚj_nextÚpt0_nextÚpt1_nextÚr0Úr1Úr_midÚfixed1Úfixed2r  Úemoticonr  rÀ   s9    ``                                                    @@r   r×   zInterpolatablePlot.add_problemÃ  s¯  øøøø€ õ �‰>Œ>¥$­ Ð.Ð.Ø �zˆHà&/°Ð%:ˆŒ�Ô!Ñ"à ”{ 6Ô*ˆÝÐDÐD¸8ÐDÑDÔDÑDÔDˆÝÐ>Ð>Ð>Ð>°Ð>Ñ>Ô>Ñ>Ô>ð 	XØŸ9š9¥VÐ,UÐ,UÈHÐ,UÑ,UÔ,UÑ%VÔ%VÑWÔWˆLå�ŠÐ! 9¨lÑ;Ô;Ð;ð ˜x¨œ{Ð*Ð*ð ˆOà1ð 	ð
 ?Ð>Ð>Ð>°+Ð>Ñ>Ô>ˆàÕ0Ô8Ò8Ð8Ýð  ð  ð  ð  Ý'¨¬Ñ7Ô7ð ñ  ô  ñ ô ˆLð ×!Ò! ! \Ñ2Ô2Ð2àŒHˆØŒHˆà�ŠØ˜YÑ&ØØØ”/ØØØÔ*ð 	ñ 	
ô 	
ð 	
õ Ð@Ð@°xÐ@Ñ@Ô@Ñ@Ô@ˆ	Ø�qŠ=ˆ=˜^ˆ=Ø�OŠOØ! IÑ-ØØØ”j 1 t¤x¡<Ñ/ØØð ñ ô ð ð 	
ˆTÔ! D¤HÑ,Ñ,ˆØ�ŠØ˜<Ñ'ØØØ”*˜q 4¤8™|Ñ+Ø”/Øð 	ñ 	
ô 	
ð 	
ð 	
ˆTŒ^˜dœh¨™lÑ*Ñ*ˆàˆÝ!*¨>Ñ!:Ô!:ð 	?ð 	?ÑˆE�:Ø”~ jÔ1ˆHØ”:˜jÔ)ˆDà�OŠOØØØØÔ&ØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAà˜	Ô"Ð.Ø—’Ø—O’O H¨i¸À5ÈAÐQR�OÑSÔSñô ð ð ð ×"Ò" 4¤:°°aÐ"Ñ8Ô8Ð8Ø�Ô" T¤^Ñ3°d´hÑ>Ñ>ˆAˆAåð 
ð 
ð $ð
ñ 
ô 
ñ 
ô 
ñ 5	?ð ”˜4Ô+Ñ+¨d¬hÑ6ˆAØ”ˆAØ�Ô%¨¬°1©Ñ4Ñ4ˆAØ�” $¤(Ñ*Ñ*ˆAàœ ~°aÔ'8Ô9ˆIØœ ~°aÔ'8Ô9ˆIð �OŠOØ&ØØØ”oØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAå*¨9°iÑ@Ô@ˆOØ�OŠOØØØ˜(Ð#Ð$ð	ð 	à%ð	ñ 	ô 	ñ
ð ØØÝ˜&‘k”kð# ñ ô ð ð( �Ô" T¤^Ñ3°d´hÑ>Ñ>ˆAåð 
ð 
ð $ð
ñ 
ô 
ñ 
ô 
ñ {	3ð �OŠOØØØØ”oØÔ&Øð ñ ô ð ð �” $¤(Ñ*Ñ*ˆAå(¨Ñ3Ô3ˆKÝ(¨Ñ3Ô3ˆKÝ5Ý {ðñ ô ˆNõ 6Ý {ðñ ô ˆNð �iÔ ×%Ò% nÑ5Ô5Ð5Ø�iÔ ×%Ò% nÑ5Ô5Ð5à#ð :ð :�Ø˜6”?Õ&;Ô&IÒIÐIð&ð &ð &ð &Ø9AÀ!¼ÀYÔ9Oð&ñ &ô &�Nð ,:�NÔ(øà#ð +Mñ +M�Ø˜6”?Õ&;Ô&MÒMÑMà$2Ô$8¸ÀÔ9KÔ$L�MØ$2Ô$8¸ÀÔ9KÔ$L�Mõ 0Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3Ý/Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3à%,¨YÔ%7�Nð ˜zÔ*ð QÝ&7Ñ&9Ô&9˜Ý&<¸[Ñ&IÔ&I˜ØŸš {Ñ3Ô3Ð3Ø"-˜Ý),¨W¬]Ñ);Ô);¸aÑ)?À.Ñ)P˜ð !(¤¨b¨q¨bÔ 1�IØ%œm¨B¨C¨CÔ0�GØ!œ-¨¨"¨Ô-�CØ˜n˜o˜oÔ.°°_°n°_Ô1EÑE�CØ$-°¡O°gÑ$=�G”Mõ  ,™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-Ý+™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-ð +3¬.�MÔ'Ø*2¬.�MÔ'Ø?L�NÔ(¨°Ô);Ñ<Ø?L�NÔ(¨°Ô);Ñ<ùà#ð A9ñ A9�à˜6”?Õ&;Ô&@Ò@Ñ@à$2Ô$8¸ÀÔ9KÔ$L�MØ$2Ô$8¸ÀÔ9KÔ$L�Mõ 0Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3Ý/Ñ1Ô1�GÝ 1°'¸5Ñ AÔ A�IØ!×(Ò(¨Ñ3Ô3Ð3à Ô(�Að ˜A™�AØ!œ-¨Ô*¨1Ô-¨aÔ0�CØ!œ-¨Ô*¨1Ô-¨aÔ0�CØ !™e­¨G¬MÑ(:Ô(:¸QÑ(>Ñ?À!ÑC�FØ&œ}¨VÔ4°QÔ7¸Ô:�HØ&œ}¨VÔ4°QÔ7¸Ô:�HØ !™e­¨G¬MÑ(:Ô(:¸QÑ(>Ñ?À!ÑC�FØ&œ}¨VÔ4°QÔ7¸Ô:�HØ&œ}¨VÔ4°QÔ7¸Ô:�Hå! 3˜-�CÝ! 3˜-�CÝ&¨Ð1�HÝ&¨Ð1�HÝ&¨Ð1�HÝ&¨Ð1�Hõ ˜S 8™^Ñ,Ô,­s°8¸hÑ3FÑ/GÔ/GÑG�BÝ˜S 8™^Ñ,Ô,­s°8¸hÑ3FÑ/GÔ/GÑG�BØ "™W¨™M�Eà" U¨h¸Ñ.AÑ%BÑB�CØ" U¨h¸Ñ.AÑ%BÑB�Cð  œ aÔ(¨Ô+Øœ8 S¤XÐ.Ð0°7´=ÀÔ3CÀAÔ3FÀqÀrÀrÔ3JÑJØœ aÔ(¨Ô+ð(�G”M !Ñ$ð  œ aÔ(¨Ô+Øœ8 S¤XÐ.Ð0°7´=ÀÔ3CÀAÔ3FÀqÀrÀrÔ3JÑJØœ aÔ(¨Ô+ð(�G”M !Ñ$õ  ,™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-Ý+™~œ~�HÝ 1°(¸DÑ AÔ A�IØ—N’N 9Ñ-Ô-Ð-ð +3¬.�MÔ'Ø*2¬.�MÔ'ùõ "‘^”^ˆFÝ!‘^”^ˆFØ)Ô/ð 3ð 3�Ø”×#Ò# G¤MÑ2Ô2Ð2Ð2Ø)Ô/ð 3ð 3�Ø”×#Ò# G¤MÑ2Ô2Ð2Ð2Ø œ-ˆFŒKØ œ-ˆFŒKà%+ˆK˜	Ñ"Ø%+ˆK˜	Ñ"ð9Ý".¨{¸KÑ"HÔ"H�Ø—’Ø#ØØ˜WÐ%ØØØÝ˜f™+œ+ð  ñ ô ð ð øõ ð 9ð 9ð 9Ø×"Ò" 4¤:°°aÐ"Ñ8Ô8Ð8Ð8Ð8ð9øøøà�Ô" T¤XÑ-Ñ-ˆAˆAð ”zˆHÝ$Ô0°MÐAÐAØÔ+��Ý&Ô1°]ÐBÐBØœ?��Ý&Ô.°-Ð?Ð?Øœ8�Ø×Ò˜x¨1°ÐÑ2Ô2Ð2àð 	Ø�OŠOÝ�DÔ$Ñ%Ô%ØØ”+ ¤Ñ.°´Ñ9Ø”jØ”oØð ñ ô ð ð ð ð	ð 	s   ë0;l, ì,'mímr   )r   r   r   F)r_   r`   rŒ   rÃ   ra   rC   rF   rG   c                ó  — |€| j         }|€| j        }|	€| j        }	t          j        | j        ¦  «        }
|
                     dt          j        |rt          j        nt          j	        ¦  «         |
 
                    |	¦  «         |
                     ¦   «         }|	|	z  |d         z  }	|
 
                    |	¦  «         |
                     ¦   «         } |
j        |Ž  |
                     |¦  «        }|j         |k    rK|	||j         z  z  }	|
 
                    |	¦  «         |
                     ¦   «         }|
                     |¦  «        }|||j         z
  |z  z   }||d         z   }|
                     ||¦  «         |
                     |¦  «         d S )Nz@cairo:r9   r   )rC   rF   rG   r�   r�   r‘   Úselect_font_faceÚFONT_SLANT_NORMALÚFONT_WEIGHT_BOLDÚFONT_WEIGHT_NORMALÚset_font_sizeÚfont_extentsr“   Útext_extentsÚmove_toÚ	show_text)r   Úlabelr_   r`   rŒ   rÃ   ra   rC   rF   rG   r«   rS  ÚextentsÚlabel_xÚlabel_ys                  r   ro   zInterpolatablePlot.draw_label  sŽ  € ð ˆ=Ø”JˆEØˆ>Ø”[ˆFØÐØœˆIÝŒ]˜4œ<Ñ(Ô(ˆØ
×ÒØÝÔ#Ø&*ÐH�EÔ"Ð"µÔ0Hñ	
ô 	
ð 	
ð
 	×Ò˜Ñ#Ô#Ð#Ø—’Ñ(Ô(ˆØ 	Ñ)¨L¸¬OÑ;ˆ	Ø
×Ò˜Ñ#Ô#Ð#Ø—’Ñ(Ô(ˆàˆÔ˜5Ð!Ð!à—/’/ %Ñ(Ô(ˆØŒ=˜5Ò Ð à˜ ¤Ñ.Ñ.ˆIØ×Ò˜YÑ'Ô'Ð'ØŸ?š?Ñ,Ô,ˆLØ—o’o eÑ,Ô,ˆGð �u˜wœ}Ñ,°Ñ5Ñ5ˆØ�l 1”oÑ%ˆØ
�
Š
�7˜GÑ$Ô$Ð$Ø
�Š�UÑÔÐÐÐr   rû   c          	      ó˜  ‡"‡#— t          |¦  «        t          t          fvr|g}t          d„ |D ¦   «         ¦  «        }|d         d         Š"t	          d„ |D ¦   «         ¦  «        Š#t          ˆ"fd„‰#D ¦   «         ¦  «        sdŠ"||         }	t          ¦   «         }
|	                     |
¦  «         t          |¦  «        }|	                     |¦  «         t          |¦  «        }| 
                    |¦  «         |j        }|€d}|d         |d         z
  }|d	         |d
         z
  }|r%|€| j        |z  }nt          || j        |z  ¦  «        }|r%|€| j        |z  }nt          || j        |z  ¦  «        }|€d
}t          j        | j        ¦  «        }|                     ||¦  «         |                     | j        ||z  z
  dz  | j        ||z  z
  dz  ¦  «         |                     || ¦  «         |                     |d          |d	          ¦  «         | j        rd |j        | j        Ž  |                     |d         |d
         ||¦  «         |                     | j        |z  ¦  «         |                     ¦   «          | j        s| j        rºt9          ||¦  «        }| 
                    |¦  «         | j        r3‰"t:          j        k    r# |j        | j        Ž  |                     ¦   «          | j        r@ |j        | j        Ž  |                     | j         |z  ¦  «         | !                    ¦   «          | "                    ¦   «          t:          j#        ‰#v st:          j$        ‰#v r©tK          t          |¬¦  «        }|
 
                    |¦  «         |D ]{}|d         t:          j#        t:          j$        fv rY|j&        |d                  }| 
                    t9          ||¦  «        ¦  «          |j'        | j(        Ž  | )                    ¦   «          Œ|t          ˆ#fd„t:          j*        t:          j+        t:          j,        hD ¦   «         ¦  «        �rO| -                    t          j.        ¦  «         |j&        D ]?\  }}|sŒ|d         \  }}| /                    ||¦  «         | 0                    ||¦  «         Œ@ |j'        | j1        Ž  |                     | j2        |z  ¦  «         |                     ¦   «          |j&        D ]D\  }}|sŒ|d d…         D ]1\  }}| /                    ||¦  «         | 0                    ||¦  «         Œ2ŒE |j'        | j3        Ž  |                     | j4        |z  ¦  «         |                     ¦   «          |j&        D ]Õ\  }}|sŒ|dv r |j/        |d         Ž  Œ|dk    rC|D ]\  }}| 0                    ||¦  «         Œ| 5                    ¦   «           |j/        |d         Ž  Œf|dk    ri |j0        |d         Ž  | 5                    ¦   «           |j/        |d
         Ž   |j0        |d         Ž  | 5                    ¦   «           |j/        |d         Ž  ŒÕŒÖ |j'        | j6        Ž  |                     | j7        |z  ¦  «         |                     ¦   «          d }|D ]à}|d         t:          j8        k    rÈ|d         }ts          | j:        ¦  «        }tK          t          |¬¦  «        }|
 
                    |¦  «         tw          |j&        ¦  «        D ]l\  }}||         |k    rŒty          |¦  «        }| 
                    t9          ||¦  «        ¦  «          |j'        g |¢| j=        ‘R Ž  | )                    ¦   «          ŒmŒá|D �]O}|d         t:          j*        t:          j>        fv �rØ| ?                    d¦  «        }|��|d
k    �r d|v rütK          t          |¬¦  «        }| 
                    |¦  «         t�          ¦   «         }tƒ          |d¦  «        }|j&        |€|n||                   
                    |¦  «         |j&        |d                  d         }| B                    ¦   «           |j        |Ž  |                     d
|z  d
|z  ¦  «         |  C                    || jD        | jE        ¬¦  «         | F                    ¦   «          |dk    s| ?                    d¦  «        s| jG        }n| jH        }d }d}| B                    ¦   «          |j&        D �]Z\  }}|dk    r	|d         }Œ|€Œ|dk    r|} n|d         } |�||k    �r!| B                    ¦   «          t“          |Ž }t“          | Ž } t•          | |z
  ¦  «        }!|                     |jK        |jL        ¦  «         |!rv| M                    t�          jO        | jL        |jL        z
  | jK        |jK        z
  ¦  «        ¦  «         |                     d
|z  d
|z  ¦  «         |  P                    ||¬¦  «         n9|                     d
|z  d
|z  ¦  «         |  C                    || jD        |¬¦  «         | F                    ¦   «          |� n	d }|d
z  }�Œ\| F                    ¦   «          |d         t:          jQ        k    �r<| ?                    d¦  «        }tK          t          |¬¦  «        }| 
                    |¦  «         t�          ¦   «         }tƒ          |d¦  «        }|j&        |€|n||                   
                    |¦  «         |j&        |d                  d         }| B                    ¦   «           |j        |Ž  |                     d
|z  d
|z  ¦  «         |r)|  R                    || jS        | jT        | jU        ¬¦  «         n"|  C                    || jV        | jW        ¬¦  «         | F                    ¦   «          �ŒQ|S )Nc              3   ó.   K  — | ]}|d          dk    V — ŒdS )rR   rù   Nr!   rá   s     r   râ   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>H  s+   è è € ÐIÐI°W�W˜V”_¨Ò0ÐIÐIÐIÐIÐIÐIr   r   rR   c              3   ó&   K  — | ]}|d          V — ŒdS rà   r!   rá   s     r   râ   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>J  rã   r   c              3   ó$   •K  — | ]
}|‰k    V — Œd S r   r!   rå   s     €r   râ   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>K  rç   r   Úmixed)r   r   r   r   r9   r:   r   rþ   r  c              3   ó    •K  — | ]}|‰v V — Œ	d S r   r!   )r6   Útr$  s     €r   râ   z0InterpolatablePlot.draw_glyph.<locals>.<genexpr>™  s<   øè è € ð 
ð 
àð �Ðð
ð 
ð 
ð 
ð 
ð 
r   r  )ÚmoveToÚlineToÚqCurveToÚcurveTor  F)rŠ   rŒ   r  rb  Ú	closePath)rŒ   rS   )rŠ   r‹   rŒ   )XrR   r  r  r  r¶   r	  r   r  r   r
   r  ÚboundsrE   r  rI   r�   r�   r‘   Ú	translaterü   Úborder_colorr“   r’   r—   Úborder_widthÚstroker”   r–   r   r°   Ú	OPEN_PATHr•   r‹   r˜   Únew_pathrö   r÷   r  rS   r™   rš   r›   r¹   Ú
NODE_COUNTÚNODE_INCOMPATIBILITYÚset_line_capÚLINE_CAP_ROUNDrU  Úline_toÚoncurve_node_colorÚoncurve_node_diameterÚoffcurve_node_colorÚoffcurve_node_diameterÚnew_sub_pathÚhandle_colorÚhandle_widthrô   r   rœ   r  r  r�   ró   rð   ÚSimpleRecordingPointPenr   Úsaver¢   r¥   r¦   Úrestorerª   r©   r  r  r  r  ÚrotateÚmathÚatan2r§   rõ   rž   rŸ   r    r¡   r£   r¤   )$r   rÿ   r½   r»   r)  r_   r`   rü   rù   rØ   Ú	recordingÚdecomposedRecordingÚ	boundsPenrg  Úglyph_widthÚglyph_heightr«   ÚpenÚperContourPenr¿   r  ÚsegmentÚargsÚmatchingÚcolorsrí   rŒ   ÚidxÚpointsr4  ÚtargetPointÚfirst_ptÚ	second_ptÚlengthrÀ   r$  s$                                     @@r   r  zInterpolatablePlot.draw_glyphD  sÙ  øø€ Ý�‰>Œ>¥$­ Ð.Ð.Ø �zˆHåÐIÐIÀÐIÑIÔIÑIÔIˆØ ”{ 6Ô*ˆÝÐDÐD¸8ÐDÑDÔDÑDÔDˆÝÐ>Ð>Ð>Ð>°Ð>Ñ>Ô>Ñ>Ô>ð 	#Ø"ˆLØ˜Ô#ˆå ‘N”Nˆ	Ø�
Š
�9ÑÔÐÝ5°hÑ?Ô?ÐØ�
Š
Ð&Ñ'Ô'Ð'å$ XÑ.Ô.ˆ	Ø×"Ò" 9Ñ-Ô-Ð-ØÔ!ˆØˆ>Ø!ˆFà˜Q”i &¨¤)Ñ+ˆØ˜a”y 6¨!¤9Ñ,ˆàð 	CØˆ}ØÔ(¨;Ñ6��å˜E 4Ô#3°kÑ#AÑBÔB�Øð 	EØˆ}ØÔ)¨LÑ8��å˜E 4Ô#4°|Ñ#CÑDÔD�Øˆ=ØˆEåŒ]˜4œ<Ñ(Ô(ˆØ
�Š�Q˜ÑÔÐà
�ŠØÔ ¨eÑ 3Ñ3°qÑ8ØÔ °Ñ!5Ñ5¸Ñ:ñ	
ô 	
ð 	
ð 	�Š�˜˜ÑÔÐØ
�Š�f˜Q”i�Z &¨¤) Ñ,Ô,Ð,àÔð 	ØˆBÔ˜tÔ0Ð1Ð1Ø�LŠL˜ œ F¨1¤I¨{¸LÑIÔIÐIØ×Ò˜dÔ/°%Ñ7Ñ8Ô8Ð8Ø�IŠI‰KŒKˆKàŒ?ð 	˜dÔ/ð 	Ý˜8 RÑ(Ô(ˆCØ×&Ò& sÑ+Ô+Ð+àŒð # <Õ3HÔ3RÒ#RÐ#RØ!�Ô! 4¤?Ð3Ð3Ø× Ò Ñ"Ô"Ð"àÔ ð %Ø!�Ô! 4Ô#4Ð5Ð5Ø×!Ò! $Ô"3°eÑ";Ñ<Ô<Ð<Ø×"Ò"Ñ$Ô$Ð$à�KŠK‰MŒMˆMõ "Ô-°Ð>Ð>Ý$Ô/°=Ð@Ð@å4µ\ÈHÐUÑUÔUˆMØ×Ò˜]Ñ+Ô+Ð+Ø#ð ð �Ø˜6”?Ý)Ô5Ý)Ô4ð'ð ð ð ,Ô1°'¸)Ô2DÔE�GØ—N’N¥8¨H°bÑ#9Ô#9Ñ:Ô:Ð:Ø&�BÔ&¨Ô(GÐHÐHØ—G’G‘I”I�Iøåð 
ð 
ð 
ð 
õ &Ô-Ý%Ô0Ý%Ô:ðð
ñ 
ô 
ñ 
ô 
ñ 7	ð �OŠO�EÔ0Ñ1Ô1Ð1ð "5Ô!:ð !ð !‘�˜Øð ØØ˜B”x‘��1Ø—
’
˜1˜aÑ Ô Ð Ø—
’
˜1˜aÑ Ô Ð Ð ØˆBÔ Ô 7Ð8Ð8Ø×Ò˜dÔ8¸5Ñ@ÑAÔAÐAØ�IŠI‰KŒKˆKð "5Ô!:ð %ð %‘�˜Øð ØØ   " œIð %ð %‘D�A�qØ—J’J˜q !Ñ$Ô$Ð$Ø—J’J˜q !Ñ$Ô$Ð$Ð$ð%ð ˆBÔ Ô 8Ð9Ð9Ø×Ò˜dÔ9¸EÑAÑBÔBÐBØ�IŠI‰KŒKˆKð "5Ô!:ð ð ‘�˜Øð ØØÐ 4Ð4Ð4Ø�B”J  Q¤Ð(Ð(Ð(Ø 
Ò*Ð*Ø $ð )ð )™˜˜1ØŸ
š
 1 aÑ(Ô(Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  R¤Ð)Ð)Ð)Ø 	Ò)Ð)Ø�B”J  Q¤Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  Q¤Ð(Ð(Ø�B”J  Q¤Ð(Ð(Ø—O’OÑ%Ô%Ð%Ø�B”J  R¤Ð)Ð)Ð)ààˆBÔ Ô 1Ð2Ð2Ø×Ò˜dÔ/°%Ñ7Ñ8Ô8Ð8Ø�IŠI‰KŒKˆKàˆØð 	ð 	ˆGØ�vŒÕ"7Ô"EÒEÐEØ" 9Ô-�Ý˜tÔ2Ñ3Ô3�Ý 8Ý ¨8ð!ñ !ô !�ð × Ò  Ñ/Ô/Ð/Ý"+¨MÔ,?Ñ"@Ô"@ð ð ‘J�A�wØ ”{ aÒ'Ð'Ø Ý  ™LœL�EØ—N’N¥8¨H°bÑ#9Ô#9Ñ:Ô:Ð:Ø&�BÔ&ÐB¨ÐB¨tÔ/AÐBÐBÐBÐBØ—G’G‘I”I�I�Iøàð o	ñ o	ˆGØ�vŒÝ%Ô-Ý%Ô7ð#ð ñ ð —k’k )Ñ,Ô,�ð ‘? u°¢z¡z°iÀ7Ð6JÐ6JÝ$<Ý$¨xð%ñ %ô %�Mð (×.Ò.¨}Ñ=Ô=Ð=Ý4Ñ6Ô6�FÝ 1°&¸%Ñ @Ô @�IØ!Ô'Ø'Ð/˜˜°X¸c´]ôç’f˜YÑ'Ô'Ð'Ø"(¤,¨w°yÔ/AÔ"BÀ1Ô"E�KØ—G’G‘I”I�IØ �B”L +Ð.Ð.Ø—H’H˜Q ™Y¨¨E©	Ñ2Ô2Ð2Ø—M’MØØ!%Ô!@Ø"Ô>ð "ñ ô ð ð
 —J’J‘L”L�Lð ˜A’:�: W§[¢[°Ñ%<Ô%<�:Ø Ô2�E�Eà Ô8�EØ�Ø�Ø—’‘	”	�	Ø%8Ô%>ð )ñ )‘M�G˜TØ (Ò*Ð*Ø#'¨¤7˜Ø ØÐ'Ø Ø +Ò-Ð-Ø$,˜	˜	à$(¨¤G˜	à�{ a¨3¢h¡hØŸš™	œ	˜	Ý#*¨HÐ#5˜Ý$+¨YÐ$7˜	Ý!$ Y°Ñ%9Ñ!:Ô!:˜ØŸš X¤]°H´MÑBÔBÐBØ!ð àŸIšIÝ $¤
Ø$-¤N°X´]Ñ$BØ$-¤N°X´]Ñ$Bñ!"ô !"ñô ð ð ŸHšH Q¨¡Y°°E±	Ñ:Ô:Ð:Ø ŸOšO¨B°e˜OÑ<Ô<Ð<Ð<ð ŸHšH Q¨¡Y°°E±	Ñ:Ô:Ð:Ø ŸMšMØ "Ø)-Ô)HØ&+ð *ñ ô ð ð
 Ÿ
š
™œ˜à˜?Ø!˜Eà#�HØ˜‘F�A‘Aà—
’
‘”�à�vŒÕ"7Ô"<Ò<Ñ<Ø—k’k )Ñ,Ô,�Ý 8Ý ¨8ð!ñ !ô !�ð $×*Ò*¨=Ñ9Ô9Ð9Ý0Ñ2Ô2�Ý-¨f°eÑ<Ô<�	ØÔ#¨8Ð+; C CÀÈ#ÄÔO×VÒVØñô ð ð %œl¨7°7Ô+;Ô<¸QÔ?�Ø—’‘	”	�	Ø�”˜kÐ*Ð*Ø—’˜˜U™ A¨¡IÑ.Ô.Ð.Øð Ø×$Ò$ØØ!%Ô!6Ø%)Ô%BØ"Ô4ð	 %ñ ô ð ð ð —M’MØØ!%Ô!5Ø"Ô3ð "ñ ô ð ð
 —
’
‘”�ùàˆr   é
   )r_   r`   rŒ   rŠ   c                ó‚  — |                      ¦   «          |                     |¦  «         |                     t          j        ¦  «         |                     ||¦  «         |                     ||¦  «         t          |¦  «        dk    r|dz   } |j        |Ž  | 	                    ¦   «          | 
                    ¦   «          d S )Nr:   ©r   )r{  r—   rp  r�   rq  rU  rr  rº   r™   rk  r|  )r   r«   r_   r`   rŒ   rŠ   s         r   r¢   zInterpolatablePlot.draw_dotV  s¦   € Ø
�Š‰	Œ	ˆ	Ø
×Ò˜(Ñ#Ô#Ð#Ø
�Š�Ô,Ñ-Ô-Ð-Ø
�
Š
�1�aÑÔÐØ
�
Š
�1�aÑÔÐÝˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�	Š	‰ŒˆØ
�
Š
‰Œˆˆˆr   )r_   r`   rŒ   rŠ   r‹   c                ó|  — |                      ¦   «          |                     |¦  «         |                     t          j        ¦  «         |                     |||dz  ddt          j        z  ¦  «         t          |¦  «        dk    r|dz   } |j	        |Ž  | 
                    ¦   «          |                     ¦   «          d S )Nr9   r   r:   r“  )r{  r—   rp  r�   ÚLINE_CAP_SQUAREÚarcr~  Úpirº   r™   rk  r|  )r   r«   r_   r`   rŒ   rŠ   r‹   s          r   rž   zInterpolatablePlot.draw_circleb  s¤   € ð 	�Š‰	Œ	ˆ	Ø
×Ò˜,Ñ'Ô'Ð'Ø
�Š�Ô-Ñ.Ô.Ð.Ø
�Šˆq�!�X ‘\ 1 a­$¬'¡kÑ2Ô2Ð2Ýˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�	Š	‰ŒˆØ
�
Š
‰Œˆˆˆr   r�   c                óä  — |                      ¦   «          t          |¦  «        dk    r|dz   } |j        |Ž  |                     | j        |z   |¦  «         |                     dd¦  «         |                     | j         | j         dz  ¦  «         |                     | j         | j        dz  ¦  «         |                     ¦   «          |                     ¦   «          | 	                    ¦   «          d S )Nr:   r“  r   r2   )
r{  rº   r™   rh  r¨   rU  rr  Ú
close_pathr›   r|  )r   r«   r_   r`   rŒ   s        r   r§   zInterpolatablePlot.draw_arrowo  sí   € Ø
�Š‰	Œ	ˆ	Ýˆu‰:Œ:˜Š?ˆ?Ø˜D‘LˆEØˆÔ˜EÐ"Ð"Ø
�Š�TÔ,¨qÑ0°!Ñ4Ô4Ð4Ø
�
Š
�1�aÑÔÐØ
�
Š
ØÔ$Ð$ØÔ$Ð$ sÑ*ñ	
ô 	
ð 	
ð 	�
Š
ØÔ$Ð$ØÔ# cÑ)ñ	
ô 	
ð 	
ð 	�Š‰ŒˆØ
�Š‰	Œ	ˆ	Ø
�
Š
‰Œˆˆˆr   ©r_   r`   rŒ   rC   rF   c                ón  — |€| j         }|€| j        }|                     ¦   «         }t          j        | j        ¦  «        } |j        |Ž  |                     | j        ¦  «         | 	                    dt          j
        t          j        ¦  «         d}d}	|                     ¦   «         }
|
d         }|
d         }|D ]1}|                     |¦  «        }t          ||j        ¦  «        }|	|z  }	Œ2|sd S |                     ||¦  «         t#          ||z  ||	z  ¦  «        }|                     |||z  z
  dz  ||	|z  z
  dz  ¦  «         |                     ||¦  «         |                     d|¦  «         |D ]C}|                     dd¦  «         |                     |¦  «         |                     d|¦  «         ŒDd S )Nz@cairo:monospacer   r9   )rC   rF   Ú
splitlinesr�   r�   r‘   r“   rR  rG   rN  rO  rQ  rS  rT  ÚmaxÚ	x_advancerh  r  rü   rU  rV  )r   Útextr_   r`   rŒ   rC   rF   r«   Ú
text_widthÚtext_heightrS  Úfont_font_sizeÚfont_ascentÚlinerX  rü   s                   r   Ú	draw_textzInterpolatablePlot.draw_text‚  sã  € Øˆ=Ø”JˆEØˆ>Ø”[ˆFà�ŠÑ Ô ˆÝŒ]˜4œ<Ñ(Ô(ˆØˆÔ˜5Ð!Ð!Ø
×Ò˜œÑ(Ô(Ð(Ø
×ÒØ¥Ô 7½Ô9Qñ	
ô 	
ð 	
ð ˆ
ØˆØ—’Ñ(Ô(ˆØ% aœˆØ" 1”oˆØð 	*ð 	*ˆDØ—o’o dÑ+Ô+ˆGÝ˜Z¨Ô):Ñ;Ô;ˆJØ˜>Ñ)ˆKˆKØð 	ØˆFØ
�Š�Q˜ÑÔÐÝ�E˜JÑ&¨°Ñ(<Ñ=Ô=ˆà
�ŠØ�Z %Ñ'Ñ'¨1Ñ,¨v¸ÀeÑ8KÑ/KÈqÑ.Pñ	
ô 	
ð 	
ð 	�Š�˜ÑÔÐà
�Š�Q˜Ñ$Ô$Ð$Øð 	,ð 	,ˆDØ�JŠJ�q˜!ÑÔÐØ�LŠL˜ÑÔÐØ�LŠL˜˜NÑ+Ô+Ð+Ð+ð	,ð 	,r   c           
      óP  — |                       | j        | j        | j        | j        | j        d| j        z  z
  dd| j        ¬¦  «         |                      | j        | j        | j        | j        z   | j        d| j        z  z
  | j	        d| j        z  z
  | j        z
  | j
        ¬¦  «         d S )Nr9   r)   T)r_   r`   rŒ   rC   rÃ   ra   rG   )r_   r`   rC   rF   rŒ   )ro   Úno_issues_labelrD   Úno_issues_label_colorrC   rH   r¥  ÚcupcakerG   rF   Úcupcake_colorrN   s    r   Údraw_cupcakezInterpolatablePlot.draw_cupcake¨  s¹   € Ø�ŠØÔ ØŒhØŒhØÔ,Ø”*˜q 4¤8™|Ñ+ØØØÔ*ð 	ñ 		
ô 		
ð 		
ð 	�ŠØŒLØŒhØŒh˜œÑ'Ø”*˜q 4¤8™|Ñ+Ø”;  T¤X¡Ñ-°´Ñ>ØÔ$ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 óZ   — |                       |||| j        | j        | j        ¬¦  «         d S )Nrš  )r¥  Úemoticon_colorrE   rI   )r   rL  r_   r`   s       r   r  z InterpolatablePlot.draw_emoticon½  sB   € Ø�ŠØØØØÔ%ØÔ"ØÔ$ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   r   )r   r   )@r   r   r    rC   rF   rD   rH   rG   rW   r  r  ri  rj  r”   r–   r‹   rs  rt  ru  rv  rx  ry  r¦   r¥   r©   rª   r¨   r£   r¤   rŸ   r    r¡   rœ   r�   rš   r§  r¨  rª  r©  r­  r  r!  r"  r#  r   rO   rU   rX   rˆ   r}   rÁ   rÈ   rË   rÏ   rÝ   r×   ro   r  r¢   rž   r§   r¥  r«  r  r!   r   r   r#   r#   "   s*  € € € € € Ø€EØ€FØ
€CØ€OØ€IØ€KØ €JØ!€KØ"€LØ€LØ €JØ"€LØ€LØ)ÐØÐØ*ÐØÐØ#€LØ€LØ"2ÐØ!"ÐØ,ÐØ&ÐØÐØ€OØ%ÐØÐØ ÐØ&ÐØW€NØ€MØ!/ÐØ;€OØ'ÐØ!€Mð€Gð2 #€NØ€Eð€Kð
€Jð
 €Cð
ð 
ð 
ð 
ð ð ð ðð ð ðð ð ð (,°tÀtðDð Dð Dð Dð DðL -1¸DÈDð F'ð F'ð F'ð F'ð F'ðP,ð ,ð ,ð\ð ð ð2Ið Ið IðTð Tð Tð 8<Èdð  !ð  !ð  !ð  !ð  !ðF 6:ÈDðPð Pð Pð Pð Pðl
 Ø
ØØØØØØð-ð -ð -ð -ð -ð^ EFÈÐRVð Pð Pð Pð Pð Pðd !" Q¨iÀ"ð 
ð 
ð 
ð 
ð 
ð ˜A Y¸È!ðð ð ð ð ð #$ q°	ð ð ð ð ð ð& $%¨°À$Ètð $,ð $,ð $,ð $,ð $,ðL
ð 
ð 
ð*
ð 
ð 
ð 
ð 
ð 
r   r#   c                   ó$   ‡ — e Zd Zd„ Zˆ fd„Zˆ xZS )ÚInterpolatablePostscriptLikec                 ó8   — | j                              ¦   «          d S r   )r‘   ÚfinishrQ   s       r   rU   z%InterpolatablePostscriptLike.__exit__É  s   € ØŒ×ÒÑÔÐÐÐr   c                 óz   •— t          ¦   «                              ¦   «          | j                             ¦   «          d S r   )ÚsuperrX   r‘   ©r   Ú	__class__s    €r   rX   z&InterpolatablePostscriptLike.show_pageÌ  s3   ø€ Ý‰Œ×ÒÑÔÐØŒ×ÒÑ Ô Ð Ð Ð r   )r   r   r    rU   rX   Ú__classcell__©rµ  s   @r   r¯  r¯  È  sG   ø€ € € € € ðð ð ð!ð !ð !ð !ð !ð !ð !ð !ð !r   r¯  c                   ó   — e Zd Zd„ ZdS )ÚInterpolatablePSc                 óZ   — t          j        | j        | j        | j        ¦  «        | _        | S r   )r�   Ú	PSSurfacer;   rC   rF   r‘   rN   s    r   rO   zInterpolatablePS.__enter__Ò  s"   € Ý” t¤x°´¸T¼[ÑIÔIˆŒØˆr   N©r   r   r    rO   r!   r   r   r¹  r¹  Ñ  s#   € € € € € ðð ð ð ð r   r¹  c                   ó   — e Zd Zd„ ZdS )ÚInterpolatablePDFc                 óî   — t          j        | j        | j        | j        ¦  «        | _        | j                             t           j        d¦  «         | j                             t           j        d¦  «         | S )Nzfonttools varLib.interpolatableÚ )	r�   Ú
PDFSurfacer;   rC   rF   r‘   Úset_metadataÚPDF_METADATA_CREATORÚPDF_METADATA_CREATE_DATErN   s    r   rO   zInterpolatablePDF.__enter__Ø  sc   € ÝÔ'¨¬°$´*¸d¼kÑJÔJˆŒØŒ×!Ò!ÝÔ&Ð(Iñ	
ô 	
ð 	
ð 	Œ×!Ò!¥%Ô"@À"ÑEÔEÐEØˆr   Nr¼  r!   r   r   r¾  r¾  ×  s#   € € € € € ðð ð ð ð r   r¾  c                   ó*   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚInterpolatableSVGc                 ó€   — t          ¦   «         | _        t          j        | j        | j        | j        ¦  «        | _        | S r   )r   Úsinkr�   Ú
SVGSurfacerC   rF   r‘   rN   s    r   rO   zInterpolatableSVG.__enter__â  s.   € Ý‘I”IˆŒ	ÝÔ'¨¬	°4´:¸t¼{ÑKÔKˆŒØˆr   c                 ó@   — | j         �|                      ¦   «          d S d S r   )r‘   rX   rQ   s       r   rU   zInterpolatableSVG.__exit__ç  s(   € ØŒ<Ð#Ø�NŠNÑÔÐÐÐð $Ð#r   c                 óV  •— t          ¦   «                              ¦   «          | j                             ¦   «          | j                             | j                             ¦   «         ¦  «         t          ¦   «         | _        t          j
        | j        | j        | j        ¦  «        | _        d S r   )r³  rX   r‘   r±  r;   rÖ   rÈ  Úgetvaluer   r�   rÉ  rC   rF   r´  s    €r   rX   zInterpolatableSVG.show_pageë  sz   ø€ Ý‰Œ×ÒÑÔÐØŒ×ÒÑÔÐØŒ�Š˜œ	×*Ò*Ñ,Ô,Ñ-Ô-Ð-Ý‘I”IˆŒ	ÝÔ'¨¬	°4´:¸t¼{ÑKÔKˆŒˆˆr   )r   r   r    rO   rU   rX   r¶  r·  s   @r   rÆ  rÆ  á  s_   ø€ € € € € ðð ð ð
ð ð ðLð Lð Lð Lð Lð Lð Lð Lð Lr   rÆ  )"ÚinterpolatableHelpersÚfontTools.ttLibr   ÚfontTools.ttLib.ttGlyphSetr   ÚfontTools.pens.recordingPenr   r   r	   ÚfontTools.pens.boundsPenr
   ÚfontTools.pens.cairoPenr   ÚfontTools.pens.pointPenr   r   r   Ú	itertoolsr   Úior   r�   r~  rq   ÚloggingÚ	getLoggerr  Údictr   r#   r¯  r¹  r¾  rÆ  r!   r   r   ú<module>rÙ     s7  ðØ $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€à€gÔÐ9Ñ:Ô:€ð%ð %ð %ð %ð %�Tñ %ô %ð %ðc
ð c
ð c
ð c
ð c
ñ c
ô c
ð c
ðL%!ð !ð !ð !ð !Ð#5ñ !ô !ð !ðð ð ð ð Ð3ñ ô ð ðð ð ð ð Ð4ñ ô ð ðLð Lð Lð Lð LÐ*ñ Lô Lð Lð Lð Lr   