Ë
    ÚÍ:j)  ã                   ó¸   — d dl mZ d dlmZ d dlmZ d dlmZ d dl	Z	d„ Z
d„ Zdd„Ze	j                  fd	„Zdd
„Zedk(  rd dl	Z	 e	j"                   e«       «       yy)é    )ÚVariationModel)ÚVarStoreInstancer)ÚfixedToFloat)ÚproductNc                 ó°   — | dk\  r)|j                   | |j                  |j                   z
  z  z   S |j                   | |j                   |j                  z
  z  z   S )Nr   )ÚdefaultValueÚmaxValueÚminValue)ÚvÚaxiss     úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/varLib/avar/unbuild.pyÚ_denormalizer      sS   € ØˆA‚vØ× Ñ  1¨¯©¸×8IÑ8IÑ(IÑ#JÑJÐJà× Ñ  1¨×(9Ñ(9¸D¿M¹MÑ(IÑ#JÑJÐJó    c                 ó˜  — t        | |«      }|j                  }|j                  }|D �ci c]  }t        |j	                  «       «      d “Œ }}|D �]B  }| j                  |«      }	||	   }	||	   }
t        |
j                  «       «      }|
j	                  «       D ]ø  \  }\  }}}||fD ]è  }|dv rŒ|j                  «       D ];  }t        |«      }t        |j                  «       «      }||k7  rŒ-||vrŒ2||   |k(  sŒ; ŒU t        |	dz
  dd«      D ]z  }||   }t        |j                  «       «      }||k7  rŒ'||vrŒ,|j	                  «       D ���ci c]  \  }\  }}}||“Œ }}}}||   |k(  sŒ^d |t        |j	                  «       «      <    Œâ J d«       ‚ Œú �ŒE |j                  «       D �cg c]  }t        |«      ‘Œ c}S c c}w c c}}}w c c}w )N©éÿÿÿÿr   é   r   r   zNo pin found)
r   ÚmappingÚsupportsÚtupleÚitemsÚindexÚsetÚkeysÚdictÚrange)Ú	locationsÚpolesÚaxisTagsÚmodelÚmodelMappingÚmodelSupportsÚkÚpinsÚlocationÚiÚsupportÚsupportAxesÚaxisTagÚminVÚ_ÚmaxVr   ÚpinÚpinLocationÚpinAxesÚcandidateIdxÚ	candidateÚcandidateAxesÚdefaultVÚts                            r   Ú_pruneLocationsr5      s  € ô" ˜9 hÓ/€EØ—=‘=€LØ—N‘N€MØ,1Ö2 qŒE�!—'‘'“)Ó˜dÑ"Ð2€DÐ2Øó &5ˆØ�O‰O˜HÓ%ˆØ˜‰OˆØ Ñ"ˆÜ˜'Ÿ,™,›.Ó)ˆØ(/¯©«ò !	5Ñ$ˆG‘_�d˜A˜tØ˜D�\ò  5�Ø˜
‘?ØØŸ9™9›;ò 5�CÜ"& s£)�KÜ! +×"2Ñ"2Ó"4Ó5�GØ +Ò-Ø Ø gÑ-Ø Ø" 7Ñ+¨qÓ0Ùð5ô ).¨a°!©e°R¸Ó(<ò 5˜Ø$1°,Ñ$?˜	Ü(+¨I¯N©NÓ,<Ó(=˜Ø(¨KÒ7Ø$Ø"¨-Ñ7Ø$àCLÇ?Á?ÓCT÷%ð %Ù,?¨AÑ/?°°8¸Q˜A˜x™Kð%˜	ò %ð % WÑ-°Ó2Ø=A˜D¤ y§¡Ó'8Ó!9Ñ:Ù!ð5ð 5 nÓ4˜uñA 5ò!	5ð&5ðN "ŸY™Y›[Ö)˜ŒD��GÒ)Ð)ùòQ 3ùô@%ùò *s   ©!F;Å
G Æ&Gc                 óâ  ‡‡&‡'— | d   j                   }|D �ci c]  }|j                  |“Œ c}Š'|D �cg c]  }|j                  ‘Œ }}t        |«      D ��ci c]  \  }}|j                  |“Œ c}}Š&d| vri g fS | d   }|j                  j	                  «       D ��ci c]  \  }}|r|ddddœk7  r||“Œ }	}}g }
t        |dd«      dk(  �r‘|j                  j                  }|j                  j                  }d	d i}t        d	h«      }|j                  D �]  }|j                  }|D �]	  }g }g }||   }t        |j                  «      D ]¢  \  }}|j                  dk(  rŒ||   }|j                  ||j                  f«       g }|j                   dk7  r|j                  ||j                   f«       |j"                  dk7  r|j                  ||j"                  f«       |j                  |«       Œ¤ t        t%        |Ž «      }t'        |«      }d ||<   |j)                  |«       |j+                  |«       �Œ �Œ! t-        |ˆ&fd
„¬«      D �cg c]  }t/        |«      ‘Œ }}|j1                  «       D �cg c]  }t/        |«      ‘Œ }}t3        |t5        |«      |«      }|j                  j6                  }t9        ||«      }|D ]u  }|j;                  |«       i }t        |«      D ]?  \  }}|}|�||   }||   }|dk7  sŒ|j=                  |d«      } | t?        |d«      z   } | ||<   ŒA |
j                  ||f«       Œw |
d   d   i k(  sJ ‚|
d   d   i k(  r|
jA                  d«       |rà|	j	                  «       D ]P  \  Š}‰‰'vrtC        d‰› �«      ‚ˆ'ˆfd„}!|j	                  «       D �"� ci c]  \  }"}  |!|"«       |!| «      “Œ c} }"|	‰<   ŒR t        |
«      D ]o  \  }\  }#}$|#j	                  «       D ��%ci c]  \  }}%|tE        |%‰'|   «      “Œ }#}}%|$j	                  «       D ��%ci c]  \  }}%|tE        |%‰'|   «      “Œ }$}}%|#|$f|
|<   Œq |	|
fS c c}w c c}w c c}}w c c}}w c c}w c c}w c c} }"w c c}%}w c c}%}w )NÚfvarÚavarr   r   r   r   ÚmajorVersioné   © c                 óB   •— t        | «      t        ˆfd„| D «       «      fS )Nc              3   ó.   •K  — | ]  \  }}‰|   –— Œ y ­w©Nr;   )Ú.0Útagr+   ÚaxisIndexess      €r   ú	<genexpr>z7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>„   s   øè ø€ Ò,NÁ&À#Àq¨[¸Õ-=Ñ,Nùs   ƒ)Úlenr   )r4   rA   s    €r   ú<lambda>z$mappings_from_avar.<locals>.<lambda>„   s   ø€ œs 1›v¤uÓ,NÈAÔ,NÓ'NÐO€ r   )Úkeyé   zUnknown axis tag c                 ó"   •— t        | ‰‰   «      S r>   )r   )r   ÚaxisMapr@   s    €€r   rD   z$mappings_from_avar.<locals>.<lambda>¦   s   ø€ œ|¨A¨w°s©|Ó<€ r   )#Úaxesr)   Ú	enumerateÚsegmentsr   ÚgetattrÚtableÚVarStoreÚVarRegionListÚRegionr   ÚVarDataÚVarRegionIndexÚVarRegionAxisÚ	PeakCoordÚappendÚ
StartCoordÚEndCoordr   r   ÚaddÚupdateÚsortedr   r   r5   ÚlistÚ	VarIdxMapr   ÚsetLocationÚgetÚfi2flÚpopÚ
ValueErrorr   )(ÚfontÚdenormalizeÚfvarAxesÚar   r&   r8   r@   ÚsegÚaxisMapsÚmappingsÚvarStoreÚregionsr   ÚinputLocationsÚvarDataÚregionIndicesÚregionIndexÚpeakLocationÚcornersÚregionÚ	axisIndexr   r)   Úcornerr4   Ú	varIdxMapÚ	instancerr%   ÚoutputLocationÚvarIdxÚdeltar   Údenormr#   ÚinputLocÚ	outputLocÚvalrA   rH   s(          `                              @@r   Úmappings_from_avarr}   N   sÆ  ú€ Ø�F‰|× Ñ €HØ%-Ö. ˆq�y‰y˜!‰|Ò.€GØ#+Ö,˜a�—	“	Ð,€HÐ,Ü,5°hÓ,?×@¡D A q�1—9‘9˜a‘<Ó@€KØ�TÑØ�2ˆvˆØ�‰<€Dð Ÿ™×+Ñ+Ó-÷áˆC�Ù�3˜r a¨AÑ.Ò.ð 	ˆS‰ð€Hñ ð
 €Häˆt�^ QÓ'¨1Ó,Ø—:‘:×&Ñ&ˆØ×(Ñ(×/Ñ/ˆð �T�
ˆÜ˜b˜T›ˆØ×'Ñ'ó 	/ˆGØ#×2Ñ2ˆMØ,ó /�Ø!�Ø�Ø  Ñ-�Ü'0°×1EÑ1EÓ'Fò 
+‘O�I˜tØ—~‘~¨Ò*Ø Ø& yÑ1�GØ ×'Ñ'¨°$·.±.Ð(AÔBØ�FØ—‘¨!Ò+ØŸ™ w°·±Ð&@ÔAØ—}‘}¨Ò)ØŸ™ w°·±Ð&>Ô?Ø—N‘N 6Õ*ð
+ô œg wÐ/Ó0�Ü$ \Ó2�Ø&*��lÑ#Ø×"Ñ" <Ô0Ø×%Ñ% gÖ.ò'/ð	/ô4 ØÛOôö
àô ��Gð
ˆð 
ð #(§*¡*£,Ö/˜Q”�a•Ð/ˆÐ/Ü(¨¼¸e»ÀhÓOˆð —J‘J×(Ñ(ˆ	Ü% h°Ó9ˆ	Ø&ò 	8ˆHØ×!Ñ! (Ô+ØˆNÜ&/°Ó&9ò 
0Ñ"�	˜7Ø"�ØÐ(Ø& vÑ.�FØ! &Ñ)�Ø˜A“:Ø Ÿ™ W¨aÓ0�AØœE %¨Ó,Ñ,�Að /0�N 7Ò+ð
0ð �O‰O˜X ~Ð6Õ7ð	8ð" ˜‰{˜1‰~ Ò#Ð#Ð#Ø�A‰;�q‰>˜RÒØ�L‰L˜ŒOáØ Ÿ™Ó(ò 	K‰HˆC�Ø˜'Ñ!Ü Ð#4°S°EÐ!:Ó;Ð;Ü<ˆFØ>A¿i¹i»k×J±d°a¸™V A›Y©¨q«	Ñ1ÓJˆH�SŠMð		Kô )2°(Ó(;ò 	0Ñ$ˆAÑ$�˜)àEMÇ^Á^ÓEU÷Ù9A¸¸c�”\ # w¨s¡|Ó4Ñ4ðˆHñ ð FOÇ_Á_ÓEV÷Ù9A¸¸c�”\ # w¨s¡|Ó4Ñ4ðˆIñ ð $ YÐ/ˆH�QŠKð	0ð �XÐÐùòE /ùÚ,ùÛ@ùóùòT
ùò 0ùó@ Kùóùós4   —P?²QÁQ	ÂQÉQÉ*QÎQÏ%Q%ÐQ+c                 ód  — | d   }|j                   }t        | «      \  }}d| v rG| d   }|D �ci c]6  }|j                  |j                  |j                  «      xs |j                  “Œ8 }}n$|D �	ci c]  }	|	j                  |	j                  “Œ }}	t        d|¬«       t        d|¬«       t        d|¬«       |D �]-  }||j                     }
|j                  |j                  |j                  f}|D �cg c]  }|t        |«      k(  rt        |«      n|‘Œ }}|j                  |j                  «      }|€dnd}t        d	|j                  › d
|
› d|d   › d|d   › d|d   › d|› �|¬«       |€Œ´t        |j                  «       «      D ]Q  }||   }|t        |«      k(  rt        |«      n|}|t        |«      k(  rt        |«      n|}t        d|› d|› d�|¬«       ŒS t        d|¬«       �Œ0 |�rt        d|¬«       |D ]ý  \  }}t        d|¬«       t        d|¬«       t        |j                  «       «      D ]9  }||   }|t        |«      k(  rt        |«      n|}t        d||   › d|› d�|¬«       Œ; t        d|¬«       t        d|¬«       t        |j                  «       «      D ]9  }||   }|t        |«      k(  rt        |«      n|}t        d||   › d|› d�|¬«       Œ; t        d|¬«       t        d|¬«       Œÿ t        d|¬«       t        d |¬«       t        d!|¬«       y c c}w c c}	w c c}w )"Nr7   Únamez&<?xml version='1.0' encoding='UTF-8'?>©Úfilez<designspace format="5.1">z  <axes>z/>ú>z    <axis tag="z" name="z" minimum="r   z" maximum="r:   z" default="r   ú"z      <map input="z
" output="z"/>z    </axis>z    <mappings>z      <mapping>z        <input>z          <dimension name="z
" xvalue="z        </input>z        <output>z        </output>z      </mapping>z    </mappings>z	  </axes>z</designspace>)rI   r}   r)   ÚgetDebugNameÚ
axisNameIDÚprintr
   r   r	   Úintr^   rZ   r   )rb   Úfr7   rI   rK   rh   r   r   Ú	axisNamesre   ÚaxisNameÚtripletr   rH   Úclosingr#   rz   r{   r@   s                      r   Úunbuildr�   µ   sj  € Ø�‰<€DØ�9‰9€DÜ+¨DÓ1Ñ€Hˆhà��~Ø�F‰|ˆð ö
àð �L‰L˜$×+Ñ+¨D¯O©OÓ<ÒLÀÇÁÑLð
ˆ	ñ 
ð
 48Ö8¨a�Q—Y‘Y §	¡	Ñ)Ð8ˆ	Ð8ä	Ð
2¸Õ;Ü	Ð
&¨QÕ/Ü	ˆ*˜1ÕØó )ˆà˜TŸ\™\Ñ*ˆà—=‘= $×"3Ñ"3°T·]±]ÐCˆØ9@ÖA°A˜Q¤# a£&š[”3�q”6¨aÑ/ÐAˆÐAà—,‘,˜tŸ|™|Ó,ˆØ!˜/‘$¨sˆäØ˜dŸl™l˜^¨8°H°:¸[ÈÐQRÉÈÐT_Ð`gÐhiÑ`jÐ_kÐkvÐw~ð  @Añ  xBð  wCð  CDð  ELð  DMð  NØõ	
ð ÑÜ˜GŸL™L›NÓ+ò H�Ø˜A‘J�Ø¤3 q£6šk”C˜”F¨q�Ø¤3 q£6šk”C˜”F¨q�ÜÐ*¨1¨#¨Z¸°s¸#Ð>ÀQÖGð	Hô
 �- a×(ð))ò* ÜÐ QÕ'Ø#+ò 	.ÑˆH�iÜÐ#¨!Õ,ÜÐ#¨!Õ,Ü˜hŸm™m›oÓ.ò �Ø˜S‘M�Ø¤3 q£6šk”C˜”F¨q�ÜØ1°)¸C±.Ð1AÀÈAÈ3ÈcÐRØöðô Ð$¨1Õ-ÜÐ$¨1Õ-Ü˜iŸn™nÓ.Ó/ò �Ø˜c‘N�Ø¤3 q£6šk”C˜”F¨q�ÜØ1°)¸C±.Ð1AÀÈAÈ3ÈcÐRØöðô Ð%¨AÕ.ÜÐ$¨1Ö-ð)	.ô* 	Ð aÕ(Ü	ˆ+˜AÕÜ	Ð
 Ö#ùòq
ùò
 9ùò Bs   ­;L#Á/L(Ã2"L-c                 ó,  — | €t         j                  dd } ddlm} ddl}|j                  dd ¬«      }|j                  ddd	¬
«       |j                  | «      } ||j                  «      }d|vrt        dt         j                  ¬«       yt        |«       y)z,Print `avar` table as a designspace snippet.Nr   r   )ÚTTFontzfonttools varLib.avar.unbuild)Údescriptionrb   zvarfont.ttfzVariable-font file.)ÚmetavarÚhelpr7   zNot a variable font.r€   )ÚsysÚargvÚfontTools.ttLibr�   ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsrb   r†   Ústderrr�   )Úargsr�   r–   ÚparserÚoptionsrb   s         r   Úmainrž   ÷   s�   € ð €|Ü�x‰x˜˜ˆ|ˆå&Ûà×$Ñ$Ø'ØBð %ó €Fð ×Ñ˜¨Ð<QÐÔRØ×Ñ Ó%€Gá�'—,‘,Ó€DØ�TÑÜÐ$¬3¯:©:Õ6ØäˆD…Mr   Ú__main__)Tr>   )ÚfontTools.varLib.modelsr   ÚfontTools.varLib.varStorer   ÚfontTools.misc.fixedToolsr   r_   Ú	itertoolsr   r“   r   r5   r}   Ústdoutr�   rž   Ú__name__Úexitr;   r   r   ú<module>r§      s]   ðÝ 2Ý 7Ý ;Ý Û 
òKò<*ó~dðN —J‘Jó ?$óDð0 ˆzÒÛà€C‡H�H‰T‹VÕð r   