§
     ’ÞjaŸ  ã                   óÌ  — d dl Z d dlZd dlmZ d dlmZ d dlZd ZdZ	dZ
ede
de	diZd	Zd
ZdZdZdZdZdZdZeeeeeehZdZdZd ad„ Ze G d„ d¦  «        ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d@d„Z#dAd „Z$d!„ Z%d"„ Z&dAd#„Z'd$„ Z(d%„ Z)d@d&„Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d@d,„Z0dAd-„Z1d.„ Z2d/„ Z3dAd0„Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:dAd7„Z;dAd8„Z<d9„ Z=dAd:„Z>dBd<„Z?dAd=„Z@d>„ ZAd?„ ZBdS )Cé    N)Údefaultdict)Ú	dataclassé   é   u   â¬›u   ðŸŸ¦u   ðŸŸ¨Úmodel_output_filterÚshow_all_model_filterÚallÚvideoÚimageÚaudioÚ3dÚworldÚlast_model_per_output_filterFc                 ó®  — t           sd S t          dz  ag }|                     ¦   «         D ]b\  }}t          |¦  «                             dd¦  «        }t          |¦  «        dk    r|d d…         dz   }|                     |› d|› �¦  «         Œct          dt          d	›d
t          j        ¦   «         d›d| › dd
 	                    |¦  «        › �d¬¦  «         d S )Nr   ú
z\né    é�   z...ú=z[model-selector-debug #Ú04dú z.3fz] z: T)Úflush)
ÚMODEL_SELECTOR_DEBUGÚ_model_selector_debug_seqÚitemsÚstrÚreplaceÚlenÚappendÚprintÚtimeÚjoin)ÚeventÚvaluesÚfieldsÚkeyÚvalueÚtexts         ú>C:\Users\johnn\OneDrive\Documents\AI\shared\model_dropdowns.pyÚdebug_model_selector_eventr)       sî   € Ýð Øˆå Ñ"ÐØ€FØ—l’l‘n”nð 'ð '‰
ˆˆUÝ�5‰zŒz×!Ò! $¨Ñ.Ô.ˆÝˆt‰9Œ9�sŠ?ˆ?Ø˜˜˜”: Ñ%ˆDØ�Š˜�o�o˜t�o�oÑ&Ô&Ð&Ð&Ý	Ð
rÕ$=Ð
rÐ
rÐ
rÅDÄIÁKÄKÐ
rÐ
rÐ
rÐW\Ð
rÐ
rÐ`c×`hÒ`hÐioÑ`pÔ`pÐ
rÐ
rÐz~ÐÑÔÐÐÐó    c                   óæ   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   dZ	eed<   dS )ÚDropdownDepsÚtransformer_typesÚdisplayed_model_typesÚtransformer_typeÚthree_levels_hierarchyÚfamilies_infosÚserver_configÚtransformer_quantizationÚtransformer_dtype_policyÚtext_encoder_quantizationÚget_model_defÚget_model_recursive_propÚget_model_filenameÚget_local_model_filenameÚget_lora_dirÚget_lora_local_pathÚget_parent_model_typeÚget_base_model_typeÚget_model_familyÚget_model_nameÚget_transformer_dtypeNÚlist_model_defs)
Ú__name__Ú
__module__Ú__qualname__ÚlistÚ__annotations__r   ÚboolÚdictÚcallablerA   © r*   r(   r,   r,   .   s  € € € € € € àÐÐÑØÐÐÑØÐÐÑØ Ð Ð Ñ ØÐÐÑØÐÐÑØ!Ð!Ð!Ñ!Ø!Ð!Ð!Ñ!Ø"Ð"Ð"Ñ"ØÐÐÑØ&Ð&Ð&Ñ&Ø Ð Ð Ñ Ø&Ð&Ð&Ñ&ØÐÐÑØ!Ð!Ð!Ñ!Ø#Ð#Ð#Ñ#Ø!Ð!Ð!Ñ!ØÐÐÑØÐÐÑØ#Ð#Ð#Ñ#Ø $€O�XÐ$Ð$Ñ$Ð$Ð$r*   r,   c                 ó  — |                      | ¦  «        ru|t          | ¦  «        d …         }|                      dd¦  «        d         }|                      d¦  «        r|                     ¦   «         r||z   S |                     ¦   «         S |S )Nr   r   éÿÿÿÿú.)Ú
startswithr   ÚrsplitÚisdigitÚstrip)Úfamily_nameÚ
model_nameÚsuffixÚversions       r(   Úcompact_namerV   G   s�   € Ø×Ò˜[Ñ)Ô)ð Ø�C Ñ,Ô,Ð-Ð-Ô.ˆØ×$Ò$ S¨!Ñ,Ô,¨RÔ0ˆØ×Ò˜SÑ!Ô!ð 	$ g§o¢oÑ&7Ô&7ð 	$Ø˜VÑ#Ð#Ø�|Š|‰~Œ~ÐØÐr*   c                 óž   — t          | t          ¦  «        s| S t                               |d¦  «        }t	          |¦  «        dk    r|› d| › �n| S )NÚ r   r   )Ú
isinstancer   ÚMODEL_STATUS_PREFIXESÚgetr   )ÚlabelÚstatusÚprefixs      r(   Údecorate_model_dropdown_labelr_   Q   sU   € Ý�e�SÑ!Ô!ð ØˆÝ"×&Ò& v¨rÑ2Ô2€FÝ"% f¡+¤+°¢/ /ˆfÐÐ�uÐÐÐ°uÐ<r*   c                 óF  — g }| D ]›}t          |t          ¦  «        rt          |¦  «        dk     r|                     |¦  «         Œ@|d         |d         }}|                     |t
          ¦  «        }|                     t          ||¦  «        |g|dd …         ¢R ¦  «         Œœ|S )Nr   r   r   )rY   Útupler   r   r[   ÚMODEL_FILE_STATUS_MISSINGr_   )ÚchoicesÚ
status_mapÚ	decoratedÚchoicer\   r&   r]   s          r(   Ú%decorate_dropdown_choices_with_statusrg   X   s¶   € Ø€IØð ]ð ]ˆÝ˜&¥%Ñ(Ô(ð 	­C°©K¬K¸!ªO¨OØ×Ò˜VÑ$Ô$Ð$ØØ˜a”y &¨¤)ˆuˆØ—’ Õ'@ÑAÔAˆØ×ÒÕ7¸¸vÑFÔFÈÐ[ÐPVÐWXÐWYÐWYÔPZÐ[Ð[Ñ\Ô\Ð\Ð\ØÐr*   c           
      ó  — |                       |¦  «        pi }t          j                             t          j                             t          |                     dd¦  «        pd¦  «        ¦  «        ¦  «                             ¦   «         dk    S )NÚpathrX   Ú	finetunes)r6   Úosri   ÚbasenameÚdirnamer   r[   Úcasefold)ÚdepsÚ
model_typeÚ	model_defs      r(   Úis_finetune_modelrr   d   sk   € Ø×"Ò" :Ñ.Ô.Ð4°"€IÝŒ7×Ò�BœGŸOšO­C°	·²¸fÀbÑ0IÔ0IÐ0OÈRÑ,PÔ,PÑQÔQÑRÔR×[Ò[Ñ]Ô]ÐalÒlÐlr*   c                 óº  — g }|D ]Õ}t          |t          ¦  «        rt          |¦  «        dk     r|                     |¦  «         Œ@|d         |d         }}t	          | |¦  «        rSt          |t
          ¦  «        r>|                     ¦   «                              d¦  «        s|                     ¦   «         dz   }|                     ||g|dd …         ¢R ¦  «         ŒÖ|S )Nr   r   r   Ú*ú *)rY   ra   r   r   rr   r   ÚrstripÚendswith)ro   rc   re   rf   r\   r&   s         r(   Ú"decorate_finetune_dropdown_choicesrx   i   sã   € Ø€IØð 6ð 6ˆÝ˜&¥%Ñ(Ô(ð 	­C°©K¬K¸!ªO¨OØ×Ò˜VÑ$Ô$Ð$ØØ˜a”y &¨¤)ˆuˆÝ˜T 5Ñ)Ô)ð 	*­j¸ÅÑ.DÔ.Dð 	*ÈUÏ\Ê\É^Ì^×MdÒMdÐehÑMiÔMið 	*Ø—L’L‘N”N TÑ)ˆEØ×Ò˜% Ð4¨°°°¬Ð4Ð4Ñ5Ô5Ð5Ð5ØÐr*   c                 ój   — |                       d¦  «        \  }}}|r|dv rt          |¦  «        |fnd| fS )Nú:)Ú1Ú2é   )Ú	partitionÚint)ÚentryÚlevelÚsepr%   s       r(   Úparse_model_selectionrƒ   x   sB   € Ø—o’o cÑ*Ô*�O€Eˆ3�Ø #ÐK¨°Ð(;Ð(;�C�‰JŒJ˜ÐÐÀ!ÀUÀÐKr*   c                 óê   ‡‡‡‡— g }| D ]D}t          |¦  «        \  ŠŠ‰dk    r|                     ‰¦  «         Œ0|ˆˆˆˆfd„|D ¦   «         z  }ŒEt          t                               |¦  «        ¦  «        S )Nr}   c                 óX   •— g | ]&}‰d k    r ‰|d¬¦  «        n
 ‰|¦  «        ‰k    ¯$|‘Œ'S )r   T©Úfor_uirJ   )Ú.0rp   r>   r<   r%   r�   s     €€€€r(   ú
<listcomp>z*expand_model_selection.<locals>.<listcomp>„   sŠ   ø€ ð  nð  nð  n¨
ÐsxÐ|}Òs}Ðs}ÐFVÐFVÐWaÐjnÐFoÑFoÔFoÐFoð  DYð  DYð  Zdñ  Deô  Deð  jmò  Fmð  Fm˜ð  Fmð  Fmð  Fmr*   )rƒ   r   rE   rH   Úfromkeys)Ú	selectionÚmodel_typesr<   r>   Úexpandedr€   r%   r�   s     ``  @@r(   Úexpand_model_selectionrŽ   }   s°   øøøø€ Ø€HØð nð nˆÝ*¨5Ñ1Ô1‰
ˆˆsØ�AŠ:ˆ:Ø�OŠO˜CÑ Ô Ð Ð àð  nð  nð  nð  nð  nð  nð  n°kð  nñ  nô  nñ  nˆHˆHÝ•—’˜hÑ'Ô'Ñ(Ô(Ð(r*   c                 ó:  — t          | j        ¦  «        dk    r&t          | j        | j        | j        | j        ¦  «        nt          | j        ¦  «        }| j        |vr|                     | j        ¦  «         t          t           
                    |¦  «        ¦  «        S ©Nr   )r   r-   rŽ   r.   r<   r>   rE   r/   r   rH   rŠ   ©ro   Údropdown_typess     r(   Úget_dropdown_model_typesr“   ˆ   sÑ   € õ WZð  [_ô  [qñ  Wrô  Wrð  uvò  Wvð  WvÕ+¨DÔ,BÀDÔD^Ð`dÔ`zð  }Aô  }Rñ  Sô  Sð  Sõ  |@ð  AEô  A[ñ  |\ô  |\€NØÔ NÐ2Ð2Ø×Ò˜dÔ3Ñ4Ô4Ð4Ý•—’˜nÑ-Ô-Ñ.Ô.Ð.r*   c                 óš   — t          | pt          ¦  «                             ¦   «                              ¦   «         } | t          v r| nt          S ©N)r   ÚMODEL_OUTPUT_FILTER_VIDEOrQ   rn   ÚMODEL_OUTPUT_FILTERS)Úmodel_filters    r(   Únormalize_model_output_filterr™   �   sC   € Ý�|Ð@Õ'@ÑAÔA×GÒGÑIÔI×RÒRÑTÔT€LØ'Õ+?Ð?Ð?ˆ<ˆ<ÕE^Ð^r*   c                 ó@  — t          |t          ¦  «        r$t          |v rt          |t                   ¦  «        }n0t          | �| j                             t          ¦  «        nd ¦  «        }|t          k    r)| �'| j                             t          d¦  «        st          S |S )NF)	rY   rH   ÚMODEL_OUTPUT_FILTER_CONFIG_KEYr™   r2   r[   ÚMODEL_OUTPUT_FILTER_ALLÚ SHOW_ALL_MODEL_FILTER_CONFIG_KEYr–   )ro   ÚstateÚselected_filters      r(   Úget_model_output_filterr    ”   sµ   € Ý�%�ÑÔð NÕ#AÀUÐ#JÐ#JÝ7¸Õ>\Ô8]Ñ^Ô^ˆˆå7Ðrvð  sC¸Ô8J×8NÒ8NÕOmÑ8nÔ8nÐ8nð  IMñ  Nô  NˆØÕ1Ò1Ð1°dÐ6FÈtÔOa×OeÒOeõ  gGð  INñ  POô  POÐ6FÝ(Ð(ØÐr*   c                 óî   — t          |¬¦  «        }|| t          <   |�|t          k    rd S |                      t          i ¦  «        }|||<   || t          <   t          |t          ¦  «        r||t          <   d S d S )N)rž   )r    r›   rœ   r[   Ú'LAST_MODEL_PER_OUTPUT_FILTER_CONFIG_KEYrY   rH   )r2   rž   rp   rŸ   r   s        r(   Ústore_model_output_filterr£   ž   s‘   € Ý-°EÐ:Ñ:Ô:€OØ4C€MÕ0Ñ1ØÐ˜_Õ0GÒGÐGØˆØ#0×#4Ò#4Õ5\Ð^`Ñ#aÔ#aÐ Ø4>Ð  Ñ1Ø=Y€MÕ9Ñ:Ý�%�ÑÔð VØ9UˆÕ5Ñ6Ð6Ð6ðVð Vr*   c                 ó¨   — |                       di ¦  «                              dg ¦  «        }t          |t          ¦  «        r|gS t          |pg ¦  «        S )NÚmetadataÚmain_output)r[   rY   r   rE   )ÚrecordÚoutputss     r(   Ú_record_main_outputsr©   ª   sQ   € Ø�jŠj˜ RÑ(Ô(×,Ò,¨]¸BÑ?Ô?€GÝ�'�3ÑÔð ØˆyÐÝ��˜2ÑÔÐr*   c                 óL   — i }|D ]}|                       |¦  «        }|�|||<   Œ|S r•   )r6   )ro   r’   Úrecordsrp   rq   s        r(   Ú_get_model_defs_by_typer¬   ±   sA   € ð €GØ$ð ,ð ,ˆ
Ø×&Ò& zÑ2Ô2ˆ	ØÐ Ø"+ˆG�JÑøØ€Nr*   c                 óô  ‡ ‡‡‡	— t          ‰¦  «        Š‰t          k    rd S |€t          ‰ ¦  «        n|}t          ‰ |¦  «        Š	t	          t
          ¦  «        }|D ]6}|‰	v r0|‰                      |d¬¦  «                                      |¦  «         Œ7t          ¦   «         Š| 	                    ¦   «         D ]·\  }}ˆ	fd„|D ¦   «         }‰t          k    r/t          d„ |D ¦   «         ¦  «        r‰                     |¦  «         ŒM‰t          k    r/t          d„ |D ¦   «         ¦  «        r‰                     |¦  «         Œ‡t          ˆfd„|D ¦   «         ¦  «        r‰                     |¦  «         Œ¸ˆˆ fd„|D ¦   «         S )NTr†   c                 ó:   •— g | ]}t          ‰|         ¦  «        ‘ŒS rJ   ©r©   )rˆ   rp   Úrecords_by_types     €r(   r‰   z6_get_model_types_for_output_filter.<locals>.<listcomp>È   s(   ø€ ÐjÐjÐjÐPZÕ.¨¸zÔ/JÑKÔKÐjÐjÐjr*   c              3   ó:   K  — | ]}t           |v ot          |vV — Œd S r•   )r–   ÚMODEL_OUTPUT_FILTER_WORLD©rˆ   r¨   s     r(   ú	<genexpr>z5_get_model_types_for_output_filter.<locals>.<genexpr>Ê   sM   è è € ð  Dð  DÐipÕ,°Ð7ÐdÕ<UÐ]dÐ<dð  Dð  Dð  Dð  Dð  Dð  Dr*   c              3   ó(   K  — | ]}t           |v V — Œd S r•   ©r²   r³   s     r(   r´   z5_get_model_types_for_output_filter.<locals>.<genexpr>Í   s(   è è € ÐVÐV¸GÕ,°Ð7ÐVÐVÐVÐVÐVÐVr*   c              3   ó&   •K  — | ]}|‰gk    V — Œd S r•   rJ   )rˆ   r¨   r˜   s     €r(   r´   z5_get_model_types_for_output_filter.<locals>.<genexpr>Ï   s*   øè è € ÐIÐI¨w�˜\˜NÒ*ÐIÐIÐIÐIÐIÐIr*   c                 óF   •— h | ]}‰                      |d ¬¦  «        ‰v ¯|’ŒS ©Tr†   ©r>   )rˆ   rp   Úallowed_familiesro   s     €€r(   ú	<setcomp>z5_get_model_types_for_output_filter.<locals>.<setcomp>Ñ   s9   ø€ Ð~Ð~Ð~˜:¸4×;PÒ;PÐQ[ÐdhÐ;PÑ;iÔ;iÐm}Ð;}Ð;}ˆJÐ;}Ð;}Ð;}r*   )r™   rœ   r“   r¬   r   rE   r>   r   Úsetr   r–   ÚanyÚaddr²   r	   )
ro   r˜   r’   Úfamily_model_typesrp   ÚfamilyrŒ   Úfamily_outputsr»   r°   s
   ``      @@r(   Ú"_get_model_types_for_output_filterrÃ   ¼   sÙ  øøøø€ Ý0°Ñ>Ô>€LØÕ.Ò.Ð.ØˆtØ7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NÝ-¨d°NÑCÔC€OÝ$¥TÑ*Ô*ÐØ$ð bð bˆ
Ø˜Ð(Ð(Ø˜t×4Ò4°ZÈÐ4ÑMÔMÔN×UÒUÐV`ÑaÔaÐaøÝ‘u”uÐØ1×7Ò7Ñ9Ô9ð 	)ð 	)Ñˆ�ØjÐjÐjÐjÐ^iÐjÑjÔjˆØÕ4Ò4Ð4Ýð  Dð  Dð  uCð  Dñ  Dô  Dñ  Dô  Dð -Ø ×$Ò$ VÑ,Ô,Ð,øØÕ6Ò6Ð6ÝÐVÐVÀ~ÐVÑVÔVÑVÔVð -Ø ×$Ò$ VÑ,Ô,Ð,øÝÐIÐIÐIÐI¸.ÐIÑIÔIÑIÔIð 	)Ø× Ò  Ñ(Ô(Ð(øØ~Ð~Ð~Ð~Ð~¨Ð~Ñ~Ô~Ð~r*   c                 óâ  — t           t          t          g}| j                             t
          d¦  «        r|                     dt          ¦  «         d„ t          | t          | ¦  «        ¦  «         
                    ¦   «         D ¦   «         }t          d„ |D ¦   «         ¦  «        r|                     t          ¦  «         t          d„ |D ¦   «         ¦  «        r|                     t          ¦  «         |S )zkOutput filters offered in the model selector: the 3D and World filters only once such a model is available.Fr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rJ   r¯   )rˆ   r§   s     r(   r‰   z,available_output_filters.<locals>.<listcomp>Ù   s3   € ð  Bð  Bð  B°Õ# FÑ+Ô+ð  Bð  Bð  Br*   c              3   ó.   K  — | ]}|t           gk    V — Œd S r•   )ÚMODEL_OUTPUT_FILTER_3D©rˆ   Úoutputs     r(   r´   z+available_output_filters.<locals>.<genexpr>Ú   s+   è è € Ð
DÐ
D°&ˆ6Õ,Ð-Ò-Ð
DÐ
DÐ
DÐ
DÐ
DÐ
Dr*   c              3   ó(   K  — | ]}t           |v V — Œd S r•   r¶   rÈ   s     r(   r´   z+available_output_filters.<locals>.<genexpr>Ü   s(   è è € Ð
EÐ
E°6Õ$¨Ð.Ð
EÐ
EÐ
EÐ
EÐ
EÐ
Er*   )r–   ÚMODEL_OUTPUT_FILTER_IMAGEÚMODEL_OUTPUT_FILTER_AUDIOr2   r[   r�   Úinsertrœ   r¬   r“   r#   r¾   r   rÇ   r²   )ro   Úfiltersr¨   s      r(   Úavailable_output_filtersrÏ   Ô   sô   € å(Õ*CÕE^Ð_€GØÔ×ÒÕ>ÀÑFÔFð 3Ø�Š�qÕ1Ñ2Ô2Ð2ð Bð  BÕ:QÐRVÕXpÐquÑXvÔXvÑ:wÔ:w×:~Ò:~ñ  ;Aô  ;Að  Bñ  Bô  B€GÝ
Ð
DÐ
D¸GÐ
DÑ
DÔ
DÑDÔDð /Ø�ŠÕ-Ñ.Ô.Ð.Ý
Ð
EÐ
E¸WÐ
EÑ
EÔ
EÑEÔEð 2Ø�ŠÕ0Ñ1Ô1Ð1Ø€Nr*   c                 ó2   — t          | |¦  «        }|d u p||v S r•   )rÃ   )ro   rp   r˜   Úallowed_model_typess       r(   Ú model_type_matches_output_filterrÒ   á   s(   € Ý<¸TÀ<ÑPÔPÐØ $Ð&ÐK¨*Ð8KÐ*KÐKr*   c                 óÜ   ‡— |€t          | ¦  «        n&t          t                               |¦  «        ¦  «        }t	          | |€t          | ¦  «        n||¦  «        Š‰€|S ˆfd„|D ¦   «         S )Nc                 ó   •— g | ]}|‰v ¯|‘Œ	S rJ   rJ   )rˆ   rp   rÑ   s     €r(   r‰   z5get_filtered_dropdown_model_types.<locals>.<listcomp>ë   s$   ø€ Ð]Ð]Ð]˜:¸:ÐI\Ð;\Ð;\ˆJÐ;\Ð;\Ð;\r*   )r“   rE   rH   rŠ   rÃ   r    )ro   r˜   r’   rÑ   s      @r(   Ú!get_filtered_dropdown_model_typesrÕ   æ   s‘   ø€ Ø7EÐ7MÕ-¨dÑ3Ô3Ð3ÕSWÕX\×XeÒXeÐftÑXuÔXuÑSvÔSv€NÝ<¸TÐdpÐdxÕCZÐ[_ÑC`ÔC`ÐC`ð  Kð  M[ñ  \ô  \ÐØÐ"ØÐØ]Ð]Ð]Ð]¨Ð]Ñ]Ô]Ð]r*   c                 ój   — t          | |g¦  «                             |i ¦  «        }t          |¦  «        S r•   )r¬   r[   r©   )ro   rp   r§   s      r(   Ú_main_outputs_for_model_typer×   î   s1   € Ý$ T¨J¨<Ñ8Ô8×<Ò<¸ZÈÑLÔL€FÝ Ñ'Ô'Ð'r*   c                 óÜ   — t           | v rt           S t          | v rt          S | t          gk    rt          S | t          gk    rt          S t          | v rt          S t          | v rt          S t          S r•   )r²   r–   rÌ   rÇ   rË   )r¨   s    r(   Ú!_model_output_filter_from_outputsrÙ   ó   sv   € Ý  GÐ+Ð+Ý(Ð(Ý  GÐ+Ð+Ý(Ð(ØÕ,Ð-Ò-Ð-Ý(Ð(ØÕ)Ð*Ò*Ð*Ý%Ð%Ý  GÐ+Ð+Ý(Ð(Ý  GÐ+Ð+Ý(Ð(Ý$Ð$r*   c                 ó<   — t          t          | |¦  «        ¦  «        S r•   )rÙ   r×   )ro   rp   s     r(   Ú&get_model_output_filter_for_model_typerÛ     s   € Ý,Õ-IÈ$ÐPZÑ-[Ô-[Ñ\Ô\Ð\r*   c                 óJ  — t          | |¦  «        }|t          k    st          | ||¦  «        r|nt          | |¦  «        }t	          |t
          ¦  «        r(t          |                     t          |¦  «        ¦  «        n|}t	          |t
          ¦  «        r
||t          <   |||k    fS r•   )	r    rœ   rÒ   rÛ   rY   rH   r™   r[   r›   )ro   rž   rp   Úcurrent_filterrŸ   Úprevious_filters         r(   Ú,reconcile_model_output_filter_for_model_typerß     så   € Ý,¨T°5Ñ9Ô9€NØ(6Õ:QÒ(QÐ(QÕUuÐvzð  }Gð  IWñ  VXô  VXÐ(Q�n�nõ  ^Dð  EIð  KUñ  ^Vô  ^V€OÝr|ð  ~Cõ  EIñ  sJô  sJð  ^Õ3°E·I²IÕ>\Ð^lÑ4mÔ4mÑnÔnÐnð  P^€OÝ�%�ÑÔð @Ø0?ˆÕ,Ñ-Ø˜O¨Ò>Ð>Ð>r*   c                 óÒ  ‡ ‡‡	— |pi                       t          i ¦  «                              |d¦  «        }||v r|S t          ˆ fd„|D ¦   «         ˆ fd„¬¦  «        }t          |¦  «        dk    rdS |d         Š‰ j        ‰         d         Š	t          ˆ ˆfd„|D ¦   «         ˆ ˆ	fd„¬¦  «        }|pi                       d	i ¦  «        }|                      ‰d¦  «        }||v r|n|d         S )
NrX   c                 óz   •— h | ]7}‰                      |d ¬¦  «        ‰j        v ¯ ‰                      |d ¬¦  «        ’Œ8S r¹   )r>   r1   )rˆ   rp   ro   s     €r(   r¼   z/_first_model_type_for_filter.<locals>.<setcomp>  s�   ø€ ð  	cð  	cð  	c¸JÐ\`×\qÒ\qÐr|ð  FJÐ\qñ  ]Kô  ]Kð  OSô  Obð  ]bð  ]bˆ×	Ò	˜z°$Ð	Ñ	7Ô	7ð  ]bð  ]bð  ]br*   c                 ó*   •— ‰j         |          d         S r�   ©r1   ©rÁ   ro   s    €r(   ú<lambda>z._first_model_type_for_filter.<locals>.<lambda>  s   ø€ ˜4Ô.¨vÔ6°qÔ9€ r*   ©r%   r   r   c                 óJ   •— g | ]}‰                      |d ¬¦  «        ‰k    ¯|‘Œ S r¹   rº   )rˆ   rp   ro   rÁ   s     €€r(   r‰   z0_first_model_type_for_filter.<locals>.<listcomp>  s8   ø€ ÐqÐqÐq˜
¸×8MÒ8MÈjÐaeÐ8MÑ8fÔ8fÐjpÒ8pÐ8pˆÐ8pÐ8pÐ8pr*   c                 ón   •— t          ‰‰                     | ¦  «        ¦  «                             ¦   «         S r•   )rV   r?   rn   )rp   ro   rR   s    €€r(   rå   z._first_model_type_for_filter.<locals>.<lambda>  s+   ø€ �|¨K¸×9LÒ9LÈZÑ9XÔ9XÑYÔY×bÒbÑdÔd€ r*   Úlast_model_per_family)r[   r¢   Úsortedr   r1   )
ro   rž   r˜   r’   Úprevious_model_typeÚ
family_idsrÀ   ré   rÁ   rR   s
   `       @@r(   Ú_first_model_type_for_filterrí     sR  øøø€ Ø ˜; B×+Ò+Õ,SÐUWÑXÔX×\Ò\Ð]iÐkmÑnÔnÐØ˜nÐ,Ð,Ø"Ð"Ýð 	cð  	cð  	cð  	cÈ.ð  	cñ  	cô  	cØ9Ð9Ð9Ð9ðñ ô €Jõ ˆ:�„˜!ÒÐØˆrØ˜Œ]€FØÔ% fÔ-¨aÔ0€KÝØqÐqÐqÐqÐq nÐqÑqÔqØdÐdÐdÐdÐdðñ ô Ðð #˜[ b×-Ò-Ð.EÀrÑJÔJÐØ/×3Ò3°F¸BÑ?Ô?ÐØ"5Ð9KÐ"KÐ"KÐÐÐQcÐdeÔQfÐfr*   c                 óÀ   — |€t          | |¦  «        nt          |¦  «        }t          | ||¦  «        }||v r|S t          |¦  «        dk    r|S t	          | |||¦  «        S r�   )r    r™   rÕ   r   rí   )ro   rž   Úcurrent_model_typer˜   r’   s        r(   Úselect_model_for_output_filterrð   %  s}   € Ø;GÐ;OÕ*¨4°Ñ7Ô7Ð7ÕUrÐsñ  VAô  VA€LÝ6°t¸\È>ÑZÔZ€NØ˜^Ð+Ð+Ø!Ð!Ý
ˆ>ÑÔ˜aÒÐØ!Ð!Ý'¨¨e°\À>ÑRÔRÐRr*   c                 óR   ‡ ‡— |€t          ‰ ¦  «        n|}‰€|S ˆˆ fd„|D ¦   «         S )Nc                 óJ   •— g | ]}‰                      |d ¬¦  «        ‰k    ¯|‘Œ S r¹   rº   )rˆ   rp   Úcurrent_model_familyro   s     €€r(   r‰   z3get_family_dropdown_model_types.<locals>.<listcomp>3  sU   ø€ ð  Cð  Cð  C˜:¸4×;PÒ;PÐQ[ÐdhÐ;PÑ;iÔ;ið  nBò  <Bð  <BˆJð  <Bð  <Bð  <Br*   )r“   )ro   ró   r’   s   `` r(   Úget_family_dropdown_model_typesrô   /  sa   øø€ Ø7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NØÐ#ØÐð Cð  Cð  Cð  Cð  C¨ð  Cñ  Cô  Cð  Cr*   c           	      ó.  ‡ — ‰                       ||¦  «        }‰                      |dd¬¦  «        }ˆ fd„|D ¦   «         }g }|D ]Ò}t          |t          ¦  «        r�|                     dd ¦  «        }|€ d S |                     ‰                      ||||¬¦  «        ¦  «         |                     dd ¦  «        }	|	€ d S |                     ‰                      ||||	¬¦  «        ¦  «         Œ¦|                     ‰                      ||||¬¦  «        ¦  «         ŒÓ|S )	NÚmodulesT©Úreturn_listc                 óp   •— g | ]2}t          |t          ¦  «        r‰                     |d dd¬¦  «        n|‘Œ3S )rö   Ú_listT)Úsub_prop_namerø   )rY   r   r7   )rˆ   Úmodulero   s     €r(   r‰   z0_get_module_files_for_status.<locals>.<listcomp>9  ss   ø€ ð  gð  gð  gð  U[ÕlvÐw}õ  @Cñ  mDô  mDð  Pˆt×,Ò,¨V°YÈgÐcgÐ,ÑhÔhÐhð  JPð  gð  gð  gr*   ÚURLs)rý   ÚURLs2)Úmodule_type)r@   r7   rY   rH   r[   r   r8   )
ro   rp   ÚquantizationÚdtype_policyÚtransformer_dtyperö   Úmodule_filesrÿ   ÚURLs1rþ   s
   `         r(   Ú_get_module_files_for_statusr  6  s`  ø€ Ø×2Ò2°:¸|ÑLÔLÐØ×+Ò+¨J¸	ÈtÐ+ÑTÔT€Gð gð  gð  gð  gð  _fð  gñ  gô  g€GØ€LØð ð ˆÝ�k¥4Ñ(Ô(ð 
	Ø—O’O F¨DÑ1Ô1ˆEØˆ}Ø�t�tØ×Ò × 7Ò 7¸
ÀLÐRcÐjoÐ 7Ñ pÔ pÑqÔqÐqØ—O’O G¨TÑ2Ô2ˆEØˆ}Ø�t�tØ×Ò × 7Ò 7¸
ÀLÐRcÐjoÐ 7Ñ pÔ pÑqÔqÐqÐqà×Ò × 7Ò 7¸
ÀLÐRcÐq|Ð 7Ñ }Ô }Ñ~Ô~Ð~Ð~ØÐr*   c                 óŠ   — | j                              d| j        ¦  «        }| j                              d| j        ¦  «        }||fS )Nr3   r4   )r2   r[   r3   r4   )ro   r   r  s      r(   Ú"_get_status_quantization_and_dtyper  J  sE   € ØÔ%×)Ò)Ð*DÀdÔFcÑdÔd€LØÔ%×)Ò)Ð*DÀdÔFcÑdÔd€LØ˜Ð%Ð%r*   c                 óì  — t          |t          ¦  «        rt          |¦  «        dk    rd S |€g }nOt          |t          ¦  «        rd„ |D ¦   «         }n-t          |t          ¦  «        rt          |¦  «        dk    r|gng }|                     ¦   «         t          d„ |D ¦   «         ¦  «        f}||v rd S |                     |¦  «         |                      |t          |¦  «        dk    r|nd dœ¦  «         d S )Nr   c                 ób   — g | ],}t          |t          ¦  «        ¯t          |¦  «        d k    ¯*|‘Œ-S ©r   )rY   r   r   ©rˆ   ri   s     r(   r‰   z/_append_expected_file_entry.<locals>.<listcomp>V  s<   € Ð^Ð^Ð^˜tµjÀÅsÑ6KÔ6KÐ^ÕPSÐTXÑPYÔPYÐ\]ÒP]ÐP]�dÐP]ÐP]ÐP]r*   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r•   ©rn   r  s     r(   r´   z._append_expected_file_entry.<locals>.<genexpr>Y  s*   è è € Ð%MÐ%M¸$ d§m¢m¡o¤oÐ%MÐ%MÐ%MÐ%MÐ%MÐ%Mr*   )ÚfilenameÚextra_paths)rY   r   r   rE   rn   ra   r¿   r   )ÚentriesÚseenr  r  Ú
extra_listr%   s         r(   Ú_append_expected_file_entryr  P  s  € Ý�h¥Ñ$Ô$ð ­¨H©¬¸Ò(:Ð(:ØˆØÐØˆ
ˆ
Ý	�K¥Ñ	&Ô	&ð dØ^Ð^ {Ð^Ñ^Ô^ˆ
ˆ
å&0°½cÑ&BÔ&BÐcÅsÈ;ÑGWÔGWÐZ[ÒG[ÐG[�k�]�]Ðacˆ
Ø×ÒÑÔ¥Ð%MÐ%MÀ*Ð%MÑ%MÔ%MÑ MÔ MÐ
N€CØ
ˆd€{€{ØˆØ‡H‚HˆS�M„M€MØ‡N‚N ÅsÈ:ÁÄÐYZÒGZÐGZ¸¸Ð`dÐeÐeÑfÔfÐfÐfÐfr*   c                 óæ   — t          |t          ¦  «        rt          |¦  «        dk    rd S |                     ¦   «         }||v rd S |                     |¦  «         |                      d|i¦  «         d S )Nr   ri   )rY   r   r   rn   r¿   r   )r  r  Ú
local_pathÚpath_keys       r(   Ú!_append_expected_local_path_entryr  `  sy   € Ý�j¥#Ñ&Ô&ð ­#¨j©/¬/¸QÒ*>Ð*>ØˆØ×"Ò"Ñ$Ô$€HØ�4ÐÐØˆØ‡H‚HˆXÑÔÐØ‡N‚N�F˜JÐ'Ñ(Ô(Ð(Ð(Ð(r*   c                 ó�  — |                       |¦  «        }|€g S t          | ¦  «        \  }}g }t          ¦   «         }|                      |||¬¦  «        }t	          |||¦  «         t          |t          ¦  «        r.d|v r*|                      |||d¬¦  «        }t	          |||¦  «         t          | |||¦  «        }	t          |	t          ¦  «        r|	D ]}
t	          |||
¦  «         Œ|  	                    |dd¬¦  «        }|�G|                      || j
        ||¬¦  «        }|                     d	d ¦  «        }t	          ||||¬
¦  «         |S )N©r   r  rþ   r   ©r   r  Úsubmodel_noÚtext_encoder_URLsTr÷   ©rp   r   r  rý   Útext_encoder_folder©r  )r6   r  r½   r8   r  rY   rH   r  rE   r7   r5   r[   )ro   rp   rq   r   r  r  r  Úexpected_filenameÚexpected_filename2r  r  r  Útext_encoder_filenamer  s                 r(   Ú)get_expected_core_file_entries_for_statusr#  j  sœ  € Ø×"Ò" :Ñ.Ô.€IØÐØˆ	Ý!CÀDÑ!IÔ!IÑ€L�,Ø€GÝ‰5Œ5€Dà×/Ò/°
ÈÐdpÐ/ÑqÔqÐÝ ¨Ð/@ÑAÔAÐAÝ�)�TÑ"Ô"ð G w°)Ð';Ð';Ø!×4Ò4°ZÈlÐiuð  DEÐ4ñ  Fô  FÐÝ# G¨TÐ3EÑFÔFÐFå/°°jÀ,ÐP\Ñ]Ô]€LÝ�,¥Ñ%Ô%ð AØ$ð 	Að 	AˆHÝ'¨°°xÑ@Ô@Ð@Ð@à×5Ò5°jÐBUÐcgÐ5ÑhÔhÐØÐ$Ø $× 7Ò 7À:Ð\`Ô\zð  JVð  ]nÐ 7ñ  !oô  !oÐØ'ŸmšmÐ,AÀ4ÑHÔHÐÝ# G¨TÐ3HÐViÐjÑjÔjÐjØ€Nr*   c                 óà   — g }t          | |¦  «        D ]Z}|                     dd¦  «        }|                     dd ¦  «        }|                      ||¬¦  «        €|                     |¦  «         Œ[|S )Nr  rX   r  r  )r#  r[   r9   r   )ro   rp   Úmissing_entriesr€   r  r  s         r(   Ú(get_missing_core_file_entries_for_statusr&  …  sz   € Ø€OÝ:¸4ÀÑLÔLð *ð *ˆØ—9’9˜Z¨Ñ,Ô,ˆØ—i’i ¨tÑ4Ô4ˆØ×(Ò(¨¸{Ð(ÑKÔKÐSØ×"Ò" 5Ñ)Ô)Ð)øØÐr*   c           	      óT  — |                       |¦  «        }|€g S g }t          ¦   «         }|                      |dd¬¦  «        }|€g }t          |t          ¦  «        s|g}|D ];}t          |t
          ¦  «        r$t          |¦  «        dk    rt          |||¦  «         Œ<|                     dg ¦  «        }|€g }t          |t          ¦  «        s|g}|D ];}t          |t
          ¦  «        r$t          |¦  «        dk    rt          |||¦  «         Œ<|                      |dd¬¦  «        }|€g }t          |t          ¦  «        s|g}|  	                    |¦  «        }	|D ]P}t          |t
          ¦  «        rt          |¦  «        dk    rŒ+t          |||                      |	|¦  «        ¦  «         ŒQ|S )NÚpreload_URLsTr÷   r   ÚVAE_URLsÚloras)r6   r½   r7   rY   rE   r   r   r  r[   r:   r  r;   )
ro   rp   rq   r  r  Úpreload_urlsÚurlÚvae_urlsÚmodel_lorasÚlora_dirs
             r(   Ú.get_expected_secondary_file_entries_for_statusr0  �  sÚ  € Ø×"Ò" :Ñ.Ô.€IØÐØˆ	Ø€GÝ‰5Œ5€Dà×0Ò0°¸^ÐY]Ð0Ñ^Ô^€LØÐØˆÝ�l¥DÑ)Ô)ð &Ø$�~ˆØð <ð <ˆÝ�c�3ÑÔð 	<¥C¨¡H¤H¨q¢L LÝ'¨°°sÑ;Ô;Ð;øà�}Š}˜Z¨Ñ,Ô,€HØÐØˆÝ�h¥Ñ%Ô%ð Ø�:ˆØð <ð <ˆÝ�c�3ÑÔð 	<¥C¨¡H¤H¨q¢L LÝ'¨°°sÑ;Ô;Ð;øà×/Ò/°
¸GÐQUÐ/ÑVÔV€KØÐØˆÝ�k¥4Ñ(Ô(ð $Ø"�mˆØ× Ò  Ñ,Ô,€HØð bð bˆÝ˜#�sÑ#Ô#ð 	¥s¨3¡x¤x°1¢} }ØÝ)¨'°4¸×9QÒ9QÐRZÐ\_Ñ9`Ô9`ÑaÔaÐaÐaà€Nr*   c                 óÌ  — |                       |¦  «        }|€dS |                      |dd¬¦  «        }|�u|                      || j        ||¬¦  «        }t	          |t
          ¦  «        rBt          |¦  «        dk    r/|                     dd ¦  «        }|                      ||¬¦  «        €dS |  	                    |¦  «        }d	D ]š\  }	}
|
r|                      ||	d¬¦  «        }n|                     |	g ¦  «        }|€Œ9t	          |t          ¦  «        s|g}|D ]F}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+|                      ||¬
¦  «        €  dS ŒGŒ›|                      |dd¬¦  «        }|€g }t	          |t          ¦  «        s|g}|  	                    |¦  «        }|D ]a}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+t          j                             |                      ||¦  «        ¦  «        s dS Œbt          | |||¦  «        }|€dS |D ]C}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+|                      |¦  «        € dS ŒDdS )NTr  r÷   r  r   r  r  F))r(  T)r)  F)r/  r*  )r6   r7   r8   r5   rY   r   r   r[   r9   r:   rE   rk   ri   Úisfiler;   r  )ro   rp   r   r  rq   r  r"  r  r/  ÚpropÚ	recursiveÚurlsr,  r.  r  r  s                   r(   Ú$has_secondary_model_files_for_statusr6  ¶  sß  € Ø×"Ò" :Ñ.Ô.€IØÐØˆtà×5Ò5°jÐBUÐcgÐ5ÑhÔhÐØÐ$Ø $× 7Ò 7À:Ð\`Ô\zð  JVð  ]nÐ 7ñ  !oô  !oÐÝÐ+­SÑ1Ô1ð 	µcÐ:OÑ6PÔ6PÐSTÒ6TÐ6TØ"+§-¢-Ð0EÀtÑ"LÔ"LÐØ×,Ò,Ð-BÐPcÐ,ÑdÔdÐlØ�uØ× Ò  Ñ,Ô,€HØHð ð ‰ˆˆiØð 	+Ø×0Ò0°¸TÈtÐ0ÑTÔTˆDˆDà—=’=  rÑ*Ô*ˆDØˆ<ØÝ˜$¥Ñ%Ô%ð 	Ø�6ˆDØð 	ð 	ˆCÝ˜c¥3Ñ'Ô'ð ­3¨s©8¬8°qª=¨=ØØ×,Ò,¨S¸8Ð,ÑDÔDÐLØ�u�u�uð Mð	ð ×/Ò/°
¸GÐQUÐ/ÑVÔV€KØÐØˆÝ�k¥4Ñ(Ô(ð $Ø"�mˆØ× Ò  Ñ,Ô,€HØð ð ˆÝ˜#�sÑ#Ô#ð 	¥s¨3¡x¤x°1¢} }ØÝŒw�~Š~˜d×6Ò6°xÀÑEÔEÑFÔFð 	Ø�5�5ð	õ 0°°jÀ,ÐP\Ñ]Ô]€LØÐØˆuØ ð ð ˆÝ˜(¥CÑ(Ô(ð 	­C°©M¬M¸QÒ,>Ð,>ØØ×(Ò(¨Ñ2Ô2Ð:Ø�5�5ð ;àˆ4r*   c                 ó®  — t          | ¦  «        \  }}|                      |¦  «        }g }|                      |||¬¦  «        }t          |t          ¦  «        r(t          |¦  «        dk    r|                     |¦  «         t          |t          ¦  «        rZd|v rV|                      |||d¬¦  «        }t          |t          ¦  «        r(t          |¦  «        dk    r|                     |¦  «         g }|D ],}	|                     |                      |	¦  «        d u¦  «         Œ-t          |¦  «        dk    r/t          |¦  «        r t          | |||¦  «        st          S t          S t          |¦  «        rt          S g }
dD ];}|                      ||d¬¦  «        }t          |t          ¦  «        s|r|gng }|
|z  }
Œ<t!          ¦   «         }d	„ |D ¦   «         }|
D ]|}t          |t          ¦  «        rt          |¦  «        dk    rŒ+|                     ¦   «         }||v rŒD|                     |¦  «         ||v rŒ^|                      |¦  «        �	t          c S Œ}t&          S )
Nr  r   rþ   r   r  )rý   rþ   Tr÷   c                 ó†   — h | ]>}t          |t          ¦  «        ¯t          |¦  «        d k    ¯*|                     ¦   «         ’Œ?S r
  )rY   r   r   rn   )rˆ   Únames     r(   r¼   z,get_model_download_status.<locals>.<setcomp>	  sF   € ÐnÐnÐn¨ÅjÐQUÕWZÑF[ÔF[ÐnÕ`cÐdhÑ`iÔ`iÐlmÒ`mÐ`m�D—M’M‘O”OÐ`mÐ`mÐ`mr*   )r  r6   r8   rY   r   r   r   rH   r9   r	   r6  ÚMODEL_FILE_STATUS_PARTIALÚMODEL_FILE_STATUS_EXPECTEDr¾   r7   rE   r½   rn   r¿   rb   )ro   rp   r   r  rq   Úexpected_filenamesr   r!  Úexpected_existsr  Úcandidate_urlsr3  r5  Úchecked_candidatesÚexpected_setÚ	candidateÚcandidate_keys                    r(   Úget_model_download_statusrC  é  s¹  € Ý!CÀDÑ!IÔ!IÑ€L�,Ø×"Ò" :Ñ.Ô.€IØÐØ×/Ò/°
ÈÐdpÐ/ÑqÔqÐÝÐ#¥SÑ)Ô)ð 5­cÐ2CÑ.DÔ.DÀqÒ.HÐ.HØ×!Ò!Ð"3Ñ4Ô4Ð4Ý�)�TÑ"Ô"ð : w°)Ð';Ð';Ø!×4Ò4°ZÈlÐiuð  DEÐ4ñ  Fô  FÐÝÐ(­#Ñ.Ô.ð 	:µ3Ð7IÑ3JÔ3JÈQÒ3NÐ3NØ×%Ò%Ð&8Ñ9Ô9Ð9à€OØ&ð Tð TˆØ×Ò˜t×<Ò<¸XÑFÔFÈdÐRÑSÔSÐSÐSå
ˆ?ÑÔ˜aÒÐ¥C¨Ñ$8Ô$8ÐÝ3°D¸*ÀlÐT`ÑaÔað 	-Ý,Ð,Ý)Ð)å
ˆ?ÑÔð )Ý(Ð(à€NØ!ð ð ˆØ×,Ò,¨Z¸È4Ð,ÑPÔPˆÝ˜$¥Ñ%Ô%ð 	*Ø!Ð)�D�6�6 rˆDØ˜$Ñˆˆå™œÐØnÐnÐ0BÐnÑnÔn€LØ#ð 
-ð 
-ˆ	Ý˜)¥SÑ)Ô)ð 	­S°©^¬^¸qÒ-@Ð-@ØØ!×*Ò*Ñ,Ô,ˆØÐ.Ð.Ð.ØØ×Ò˜}Ñ-Ô-Ð-Ø˜LÐ(Ð(ØØ×(Ò(¨Ñ3Ô3Ð?Ý,Ð,Ð,Ð,ð @å$Ð$r*   c                 ó   ‡
— i Š
|€t          | ¦  «        n|}t          t          ¦  «        }|D ]_}|                      |¦  «        €Œt	          | |¦  «        }|‰
|<   |                      |¦  «        }|�||                              |¦  «         Œ`t          ‰
¦  «        }|                     ¦   «         D ]›\  }}ˆ
fd„|D ¦   «         }t          |¦  «        dk    rŒ't          }	t          d„ |D ¦   «         ¦  «        rt          }	n t          d„ |D ¦   «         ¦  «        rt          }	t          |                     |t          ¦  «        |	¦  «        ||<   Œœ‰
|fS )Nc                 óF   •— g | ]}‰                      |t          ¦  «        ‘ŒS rJ   )r[   rb   )rˆ   ÚchildÚdirect_status_maps     €r(   r‰   z2get_model_download_status_maps.<locals>.<listcomp>(  s,   ø€ ÐhÐhÐhÐV[Ð+×/Ò/°Õ7PÑQÔQÐhÐhÐhr*   r   c              3   ó,   K  — | ]}|t           k    V — Œd S r•   )r;  ©rˆ   r]   s     r(   r´   z1get_model_download_status_maps.<locals>.<genexpr>,  s(   è è € ÐQÐQ¸ˆvÕ3Ò3ÐQÐQÐQÐQÐQÐQr*   c              3   ó,   K  — | ]}|t           k    V — Œd S r•   )r:  rI  s     r(   r´   z1get_model_download_status_maps.<locals>.<genexpr>.  s(   è è € ÐRÐR¸�Õ4Ò4ÐRÐRÐRÐRÐRÐRr*   )r“   r   rE   r6   rC  r<   r   rH   r   r   rb   r¾   r;  r:  Úmaxr[   )ro   r’   Úparent_to_childrenrp   r]   Úparent_model_typeÚaggregated_parent_status_mapÚchildrenÚchild_statusesÚparent_statusrG  s             @r(   Úget_model_download_status_mapsrR    s¥  ø€ ØÐØ7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NÝ$¥TÑ*Ô*Ðà$ð Eð Eˆ
Ø×Ò˜jÑ)Ô)Ð1ØÝ*¨4°Ñ<Ô<ˆØ(.Ð˜*Ñ%Ø ×6Ò6°zÑBÔBÐØÐ(ØÐ0Ô1×8Ò8¸ÑDÔDÐDøå#'Ð(9Ñ#:Ô#:Ð Ø'9×'?Ò'?Ñ'AÔ'Að 	]ð 	]Ñ#Ð˜8ØhÐhÐhÐhÐ_gÐhÑhÔhˆÝˆ~ÑÔ !Ò#Ð#ØÝ1ˆÝÐQÐQÀ.ÐQÑQÔQÑQÔQð 	6Ý6ˆMˆMÝÐRÐRÀ>ÐRÑRÔRÑRÔRð 	6Ý5ˆMÝ:=Ð>Z×>^Ò>^Ð_põ  sLñ  ?Mô  ?Mð  O\ñ  ;]ô  ;]Ð$Ð%6Ñ7Ð7ØÐ:Ð:Ð:r*   c                 ó.   — t          | |¦  «        d         S )Nr   )rR  r‘   s     r(   Úget_model_download_status_maprT  4  s   € Ý)¨$°Ñ?Ô?ÀÔBÐBr*   c                 óÆ  ‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.— d„ }d„ }t          t          ¦  «        i g }}}| D ]G\  }}}||                              ||f¦  «         ||k    r||vr|||<   |                     |¦  «         ŒHg i }
}	|D �]vŠ,|‰,         } ||¦  «        }d„ |D ¦   «         Š*t          ‰*¦  «        }‰*d         Š)t	          ‰*¦  «        Š+g }|                     ‰,g ¦  «        D ]E\  }} ||¦  «        }d„ |D ¦   «         }t	          |¦  «        }|                     |||||f¦  «         ŒFˆ+ˆ,fd„|D ¦   «         Š(g }|D ]=\  }}}}}|‰,k    s|‰(vr+|r)|d         ‰*d         k    r|                     ||f¦  «         Œ>d„ Š't          |¦  «        d	k    r|nt          ˆ'ˆ*fd
„|D ¦   «         ¦  «        Š%‰%dk    rt          |¦  «        d	k    r|Š%t          ˆ(ˆ)ˆ,fd„|D ¦   «         ¦  «        }|d‰%…         |r‰%|k     r	|d         gng z   }d                     |¦  «        }‰%|k    p|o‰%|k     Š&‰*d‰%…         Š-ˆ%ˆ-fd„Š.ˆ%ˆ.fd„}ˆ&ˆ)fd„}g }|D ]«\  }}}}}|‰(vr |||¦  «        n	|dd…         }|                     |||||‰(v ||‰(vr |||¦  «        n	|dd…         |‰(vrd„ |D ¦   «         nt	          ¦   «         |‰(vr$d„ |‰(vr |||¦  «        n	|dd…         D ¦   «         nt	          ¦   «         dœ	¦  «         Œ¬t          ˆ,fd„|D ¦   «         ¦  «        }ˆ,fd„} ||¦  «        ‰,fg}|D ]5}|d         ‰,k    rŒ|                      ||¦  «        |d         f¦  «         Œ6 ||¦  «        }d„ |D ¦   «         } d}!|d         g}"|d	d…         D ]W\  }#}|#dk    r5 || |         ¦  «        |k    r |"                     d|!› �|f¦  «         |!d	z  }!Œ@|"                     |#|f¦  «         ŒX|	                     |‰,f¦  «         |"|
‰,<   �Œx| 
                    ¦   «         D ]GŠ,‰,|v rŒ|‰,         d         d         }$|	                     |$‰,f¦  «         d„ |‰,         D ¦   «         |
‰,<   ŒHt          |	d„ ¬¦  «        }	|	|
fS )zÎ
    rows: list of (model_name, model_id, parent_model_id)
    returns:
      parents_list: list[(parent_header, parent_id)]
      children_dict: dict[parent_id] -> list[(child_display_name, child_id)]
    c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]}|¯|‘ŒS rJ   rJ   )rˆ   Úts     r(   r‰   z=create_models_hierarchy.<locals>.<lambda>.<locals>.<listcomp>?  s   € Ð0Ð0Ð0˜A¨aÐ0�aÐ0Ð0Ð0r*   )Úsplit©Úss    r(   rå   z)create_models_hierarchy.<locals>.<lambda>?  s   € Ð0Ð0 §¢¡¤Ð0Ñ0Ô0€ r*   c                 ót   — d                      |                      ¦   «         ¦  «                             ¦   «         S )Nr   )r!   rY  rn   rZ  s    r(   rå   z)create_models_hierarchy.<locals>.<lambda>@  s&   € �S—X’X˜aŸgšg™iœiÑ(Ô(×1Ò1Ñ3Ô3€ r*   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rJ   r  ©rˆ   Úws     r(   r‰   z+create_models_hierarchy.<locals>.<listcomp>N  s    € Ð-Ð-Ð- !�—’‘”Ð-Ð-Ð-r*   rL   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rJ   r  r^  s     r(   r‰   z+create_models_hierarchy.<locals>.<listcomp>V  s    € Ð+Ð+Ð+ 1�!—*’*‘,”,Ð+Ð+Ð+r*   c                 óV   •— h | ]%\  }}}}}|‰k    ¯‰                      |¦  «        ¯#|’Œ&S rJ   )Ú
isdisjoint)rˆ   Ú_ÚmidÚstÚp_setÚpids       €€r(   r¼   z*create_models_hierarchy.<locals>.<setcomp>Z  s<   ø€ Ð\Ð\Ð\Ñ,˜A˜s A q¨"¸¸sº
¸
Àu×GWÒGWÐXZÑG[ÔG[¸
�C¸
¸
¸
r*   r   c                 óÈ   — d}t          t          | ¦  «        t          |¦  «        ¦  «        }||k     r/| |         ||         k    r|dz  }||k     r| |         ||         k    °|S ©Nr   r   )Úminr   )ÚaÚbÚiÚms       r(   Úlcp_lenz(create_models_hierarchy.<locals>.lcp_lena  sd   € ØˆAÝ•C˜‘F”F�C ™FœFÑ#Ô#ˆAØ�a’%�%˜A˜aœD A a¤DšL˜LØ�Q‘�ð �a’%�%˜A˜aœD A a¤DšL˜LàˆHr*   r   c              3   ó6   •K  — | ]\  }} ‰|‰¦  «        V — Œd S r•   rJ   )rˆ   rc  Últro  Úp_lows      €€r(   r´   z*create_models_hierarchy.<locals>.<genexpr>h  s3   øè è € Ð.ZÐ.ZÁeÀaÈ¨w¨w°r¸5Ñ/AÔ/AÐ.ZÐ.ZÐ.ZÐ.ZÐ.ZÐ.Zr*   c              3   óT   •K  — | ]"\  }}}}}|‰k    o|‰vo|o|d          ‰k    V — Œ#dS )rL   NrJ   )rˆ   rc  rd  rq  ÚoutliersÚp_lastrg  s       €€€r(   r´   z*create_models_hierarchy.<locals>.<genexpr>l  sU   øè è € ÐvÐvÑ]mÐ]^Ð`cÐefÐhjÐlm˜# š*ÐX¨°HÐ)<ÐXÀÐXÈÈ2ÌÐRXÒHXÐvÐvÐvÐvÐvÐvr*   Nr   c                 óŒ   •— ‰dk    st          | ¦  «        ‰k     rdS t          ‰¦  «        D ]}| |         ‰|         k    r dS ŒdS )Nr   FT)r   Úrange)rq  rm  ÚLÚ
prefix_lows     €€r(   Ústartswith_prefixz2create_models_hierarchy.<locals>.startswith_prefixs  sX   ø€ Ø�AŠvˆv�˜R™œ 1š˜Ø�uÝ˜1‘X”Xð !ð !�Ø�a”5˜J qœMÒ)Ð)Ø ˜5˜5ð *à�4r*   c                 óB   •—  ‰|¦  «        r
| ‰d …         n	| d d …         S r•   rJ   )Úotrq  rx  rz  s     €€r(   Úbase_remz)create_models_hierarchy.<locals>.base_rem{  s-   ø€ Ø.Ð.¨rÑ2Ô2Ð=�2�a�b�b”6�6¸¸1¸1¸1¼Ð=r*   c                 ó�   •— | d d …         }‰r8|r6|d         ‰k    r*|r(|d                               ¦   «         ‰k    r
|d d…         }|S )NrL   r  )Úremrq  ÚoutÚheader_has_lastru  s      €€r(   Útrim_remz)create_models_hierarchy.<locals>.trim_rem~  s_   ø€ Ø�a�a�a”&ˆCØð  2ð ¨"¨R¬&°FÒ*:Ð*:¸sÐ*:ÀsÈ2Äw×GWÒGWÑGYÔGYÐ]cÒGcÐGcØ˜#˜2˜#”h�ØˆJr*   c                 ó6   — h | ]}|                      ¦   «         ’ŒS rJ   r  r^  s     r(   r¼   z*create_models_hierarchy.<locals>.<setcomp>�  s    € Ð;Ð;Ð;¨Q˜AŸJšJ™LœLÐ;Ð;Ð;r*   c                 ó6   — h | ]}|                      ¦   «         ’ŒS rJ   r  r^  s     r(   r¼   z*create_models_hierarchy.<locals>.<setcomp>�  s    € Ð rÐ rÐ r°! §¢¡¤Ð rÐ rÐ rr*   )	r9  rd  r|  rq  ÚoutlierÚrem_coreÚrem_trimÚrem_setÚrem_trim_setc              3   ó4   •K  — | ]}|d          ‰k    ¯|V — ŒdS )rd  NrJ   )rˆ   Úinforg  s     €r(   r´   z*create_models_hierarchy.<locals>.<genexpr>“  s1   øè è € ÐMÐM T¸$¸u¼+ÈÒ:LÐ:L˜DÐ:LÐ:LÐ:LÐ:LÐMÐMr*   c                 ó¸   •— | d         r| d         S | d         ‰k    r	| d         }n| d         }d                      |¦  «                             ¦   «         }|r|ndS )Nr…  r9  rd  r‡  r   ÚDefault)r!   rQ   )r‹  r  r[  rg  s      €r(   Údispz%create_models_hierarchy.<locals>.disp•  sh   ø€ Ø�IŒð $Ø˜F”|Ð#Ø�EŒ{˜cÒ!Ð!Ø˜:Ô&��à˜:Ô&�Ø—’˜‘”×#Ò#Ñ%Ô%ˆAØÐ(�1�1˜yÐ(r*   rd  c                 ó   — i | ]^}}}||“Œ	S rJ   rJ   )rˆ   r9  rd  rc  s       r(   ú
<dictcomp>z+create_models_hierarchy.<locals>.<dictcomp>¦  s    € Ð;Ð;Ð; ] T¨3°�s˜DÐ;Ð;Ð;r*   r   r�  z	Default #c                 ó   — g | ]	\  }}||f‘Œ
S rJ   rJ   )rˆ   r9  rd  s      r(   r‰   z+create_models_hierarchy.<locals>.<listcomp>¸  s    € ÐGÐGÐG©i¨d°C˜t S˜kÐGÐGÐGr*   c                 ó   — | d         S r�   rJ   ©Úcs    r(   rå   z)create_models_hierarchy.<locals>.<lambda>º  s
   € °a¸´d€ r*   ræ   )r   rE   r   r   r½   r[   rj  r¾   r!   ÚnextÚkeysrê   )/ÚrowsÚtoksÚnormÚgroupsÚparentsÚorderr9  rd  ÚpmidÚparents_listÚchildren_dictÚp_nameÚp_tokÚnÚkidsr|  rq  re  Ú
prefix_nonÚshares_lastÚheader_tokens_dispÚheaderr}  r‚  Ú	kid_infosrc  r†  Údefault_inforŽ  r  r‹  Úp_fullÚfull_by_midÚnumÚnumberedÚdnameÚ
first_namerx  r�  ro  rt  ru  rr  rf  rg  ry  rz  s/                                        @@@@@@@@@@r(   Úcreate_models_hierarchyr°  8  su  øøøøøøøøøø€ ð 1Ð0€DØ3Ð3€Då(­Ñ.Ô.°°B�UˆG€FØð ð ‰ˆˆc�4ØˆtŒ×Ò˜T 3˜KÑ(Ô(Ð(Ø�$Š;ˆ;˜4 wÐ.Ð.Ø ˆG�D‰MØ�LŠL˜ÑÔÐøà"$ b�-€Làð f&ñ f&ˆØ˜”ˆØ��V‘”ˆØ-Ð- uÐ-Ñ-Ô-ˆÝ�‰JŒJˆØ�r”ˆÝ�E‘
”
ˆàˆØŸš C¨Ñ,Ô,ð 	1ð 	1‰IˆD�#Ø��d‘”ˆBØ+Ð+¨Ð+Ñ+Ô+ˆBÝ�R‘”ˆBØ�KŠK˜˜s B¨¨BÐ/Ñ0Ô0Ð0Ð0à\Ð\Ð\Ð\Ð\°Ð\Ñ\Ô\ˆàˆ
Ø%)ð 	,ð 	,Ñ!ˆD�#�r˜2˜rØ�cŠzˆz˜c¨Ð1Ð1°bÐ1¸RÀ¼UÀeÈAÄhÒ=NÐ=NØ×!Ò! 2 r (Ñ+Ô+Ð+øð	ð 	ð 	õ �Z‘” AÒ%Ð%ˆAˆA­3Ð.ZÐ.ZÐ.ZÐ.ZÐ.ZÈzÐ.ZÑ.ZÔ.ZÑ+ZÔ+ZˆØ�Š6ˆ6•c˜*‘o”o¨Ò)Ð)ØˆAåÐvÐvÐvÐvÐvÐvÐquÐvÑvÔvÑvÔvˆØ" 2 A 2œY¸Ð*VÈÈQÊÈ¨5°¬9¨+¨+ÐTVÑWÐØ—’Ð,Ñ-Ô-ˆØ š6Ð= {Ð'<°q¸1²uˆà˜2˜A˜2”Yˆ
ð	ð 	ð 	ð 	ð 	ð 	ð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð	ð 	ð 	ð 	ð 	ð 	ð ˆ	Ø$(ð 	ð 	Ñ ˆD�#�r˜2˜qØ+.°hÐ+>Ð+>�x�x  BÑ'Ô'Ð'ÀBÀqÀqÀqÄEˆHØ×ÒØØØØØ (˜?Ø$Ø69ÀÐ6IÐ6I˜H˜H X¨rÑ2Ô2Ð2ÈrÐRSÐRSÐRSÌuØ?BÈ(Ð?RÐ?RÐ;Ð;°(Ð;Ñ;Ô;Ð;ÕX[ÑX]ÔX]Øvyð  BJð  wJð  wJÐ rÐ rÐRUÐ]eÐReÐRe¸¸ÀÈ2Ñ8NÔ8NÐ8NÐkmÐnoÐnoÐnoÔkpÐ rÑ rÔ rÐ rõ  PSñ  PUô  PUð
ð 
ñ 
ô 
ð 
ð 
õ ÐMÐMÐMÐM¨YÐMÑMÔMÑMÔMˆð	)ð 	)ð 	)ð 	)ð 	)ð �D˜Ñ&Ô&¨Ð,Ð-ˆØð 	6ð 	6ˆDØ�EŒ{˜cÒ!Ð!ØØ�NŠN˜D˜D ™JœJ¨¨U¬Ð4Ñ5Ô5Ð5Ð5à��f‘”ˆØ;Ð;°dÐ;Ñ;Ô;ˆØˆØ˜A”J�<ˆØ! ! " "œ+ð 	.ð 	.‰JˆE�3Ø˜	Ò!Ð! d d¨;°sÔ+;Ñ&<Ô&<ÀÒ&FÐ&FØ—’Ð!2¨SÐ!2Ð!2°CÐ 8Ñ9Ô9Ð9Ø�q‘��à—’ ¨ Ñ-Ô-Ð-Ð-à×Ò˜V S˜MÑ*Ô*Ð*Ø%ˆ�cÑÑà�{Š{‰}Œ}ð Hð HˆØ�'ˆ>ˆ>ØØ˜C”[ ”^ AÔ&ˆ
Ø×Ò˜Z¨Ð-Ñ.Ô.Ð.ØGÐG¸6À#¼;ÐGÑGÔGˆ�cÑÐå˜,¨N¨NÐ;Ñ;Ô;€LØ˜Ð&Ð&r*   c                 óÊ  ‡ ‡— |€t          ‰ ¦  «        n&t          t                               |¦  «        ¦  «        }t	          t          ¦  «        }|D ]=}‰                      |d¬¦  «        }|‰ j        v r||                              |¦  «         Œ>g g dœ}t          |ˆ fd„¬¦  «        }|D �]7}‰ j        |         d         Šˆ ˆfd„||         D ¦   «         }| 	                    d„ ¬¦  «         t          |¦  «        \  }}	‰‰d	|› �g g d
œ}
|D ]º\  }}‰› d|› �}||d|› �g g d
œ}|	                     |g ¦  «        D ]q\  }}t          ‰ |¦  «        r>|                     ¦   «                              d¦  «        s|                     ¦   «         dz   }|d                              ||dœ¦  «         Œr|
d                              |¦  «         Œ»|d                              |
¦  «         �Œ9|S )NTr†   )Úfoldersr   c                 ó*   •— ‰j         |          d         S r�   rã   rä   s    €r(   rå   z2create_models_selector_hierarchy.<locals>.<lambda>Ç  s   ø€ ÀDÔDWÐX^ÔD_Ð`aÔDb€ r*   ræ   r   c                 ó‚   •— g | ];}t          ‰‰                     |¦  «        ¦  «        |‰                     |¦  «        f‘Œ<S rJ   )rV   r?   r<   )rˆ   rp   ro   rR   s     €€r(   r‰   z4create_models_selector_hierarchy.<locals>.<listcomp>Ê  sX   ø€ ð 
ð 
ð 
àõ ˜+ t×':Ò':¸:Ñ'FÔ'FÑGÔGÈÐUY×UoÒUoÐpzÑU{ÔU{Ð|ð
ð 
ð 
r*   c                 ó6   — | d                               ¦   «         S r�   r  )Úrows    r(   rå   z2create_models_selector_hierarchy.<locals>.<lambda>Î  s   €  # a¤&§/¢/Ñ"3Ô"3€ r*   z1:)r9  ri   r&   r²  r   ú/z2:rt   ru   r   )r9  r&   r²  )rÕ   rE   rH   rŠ   r   r>   r1   r   rê   Úsortr°  r[   rr   rv   rw   )ro   r’   rÀ   rp   rÁ   ÚtreeÚsorted_familiesr—  Úparent_choicesÚchildren_by_parentÚfamily_folderÚparent_namerM  Úparent_pathÚparent_folderÚ
child_nameÚchild_model_typerR   s   `                @r(   Ú create_models_selector_hierarchyrÃ  ¾  s~  øø€ Ø@NÐ@VÕ6°tÑ<Ô<Ð<Õ\`Õae×anÒanÐo}Ña~Ôa~Ñ\Ô\€NÝ$¥TÑ*Ô*ÐØ$ð :ð :ˆ
Ø×&Ò& z¸$Ð&Ñ?Ô?ˆØ�TÔ(Ð(Ð(Ø˜vÔ&×-Ò-¨jÑ9Ô9Ð9øà BÐ'Ð'€DÝÐ/Ð5bÐ5bÐ5bÐ5bÐcÑcÔc€OØ!ð .ñ .ˆØÔ)¨&Ô1°!Ô4ˆð
ð 
ð 
ð 
ð 
à0°Ô8ð
ñ 
ô 
ˆð 	�	Š	Ð3Ð3ˆ	Ñ4Ô4Ð4Ý-DÀTÑ-JÔ-JÑ*ˆÐ*Ø!,°kÈMÐQWÈMÈMÐfhÐsuÐvÐvˆØ.<ð 	;ð 	;Ñ*ˆKÐ*Ø(Ð8Ð8¨;Ð8Ð8ˆKØ%0¸+ÐPhÐUfÐPhÐPhÐuwð  CEð  Fð  FˆMØ0B×0FÒ0FÐGXÐZ\Ñ0]Ô0]ð _ð _Ñ,�
Ð,Ý$ TÐ+;Ñ<Ô<ð <ÀZ×EVÒEVÑEXÔEX×EaÒEaÐbeÑEfÔEfð <Ø!+×!2Ò!2Ñ!4Ô!4°tÑ!;�JØ˜gÔ&×-Ò-°zÐL\Ð.]Ð.]Ñ^Ô^Ð^Ð^Ø˜)Ô$×+Ò+¨MÑ:Ô:Ð:Ð:ØˆYŒ×Ò˜}Ñ-Ô-Ð-Ñ-Ø€Kr*   Tc                 óD  ‡ ‡— ˆ fd„|D ¦   «         }i }|D ]}||vrd||<   Œˆ fd„|D ¦   «         }ˆ fd„|D ¦   «         }	d„ t          t          ||	|¦  «        d„ ¬¦  «        D ¦   «         }
‰€ˆ fd„t          ||¦  «        D ¦   «         }nˆˆ fd	„t          ||¦  «        D ¦   «         }t          |d
„ ¬¦  «        }|r>ˆ fd„|D ¦   «         }t          |¦  «        \  }}|
||‰                      |¦  «                 fS t	          ˆ fd„|D ¦   «         ¦  «        }d„ |D ¦   «         }|
||fS )Nc                 ó>   •— g | ]}‰                      |d ¬¦  «        ‘ŒS r¹   rº   ©rˆ   rX  ro   s     €r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>Þ  ó,   ø€ ÐUÐUÐUÀ�t×,Ò,¨Q°tÐ,Ñ<Ô<ÐUÐUÐUr*   r   c                 ó6   •— g | ]}‰j         |         d          ‘ŒS r
  rã   ©rˆ   rÁ   ro   s     €r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>ä  ó&   ø€ ÐMÐMÐM¸&�tÔ*¨6Ô2°1Ô5ÐMÐMÐMr*   c                 ó6   •— g | ]}‰j         |         d          ‘ŒS ©r   rã   rÉ  s     €r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>å  rÊ  r*   c                 ó"   — g | ]}|d d…         ‘ŒS ©r   NrJ   )rˆ   r‹  s     r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>æ  s    € ÐwÐwÐw 4�d˜1˜2˜2”hÐwÐwÐwr*   c                 ó   — | d         S r�   rJ   r“  s    r(   rå   z%get_sorted_dropdown.<locals>.<lambda>æ  s   € ÐqrÐstÔqu€ r*   ræ   c                 óh   •— g | ].\  }}‰j         |         d          ‰                     |¦  «        |f‘Œ/S r
  )r1   r?   )rˆ   rp   rÁ   ro   s      €r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>è  s^   ø€ ð  jð  jð  jñ  oAÐnxð  {A˜TÔ0°Ô8¸Ô;¸T×=PÒ=PÐQ[Ñ=\Ô=\Ð^hÐið  jð  jð  jr*   c           	      ó²   •— g | ]S\  }}|‰k    ¯‰j         |         d          t          ‰j         |         d         ‰                     |¦  «        ¦  «        |f‘ŒTS )r   r   )r1   rV   r?   )rˆ   rp   rÁ   ró   ro   s      €€r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>ê  s´   ø€ ð  zð  zð  zñ  ]oð  ]gð  ioð  [að  eyò  [yð  [y˜TÔ0°Ô8¸Ô;½\È$ÔJ]Ð^dÔJeÐfgÔJhÐjn×j}Òj}ð  Iñ  kJô  kJñ  >Kô  >Kð  MWð  Xð  [yð  [yð  [yr*   c                 ó"   — | d         | d         fS ri  rJ   r“  s    r(   rå   z%get_sorted_dropdown.<locals>.<lambda>ë  s   € ¸qÀ¼tÀQÀqÄT¸l€ r*   c                 ó`   •— g | ]*}g |d d…         ¢‰                      |d         ¦  «        ‘R ‘Œ+S )r   Nr   ©r<   ©rˆ   Úmodelro   s     €r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>í  sB   ø€ ÐmÐmÐmÐSXÐN˜e A B BœiÐN¨×)CÒ)CÀEÈ!ÄHÑ)MÔ)MÐNÐNÐmÐmÐmr*   c                 óF   •— h | ]}‰                      |d          ¦  «        ’ŒS )r   ©r=   rÕ  s     €r(   r¼   z&get_sorted_dropdown.<locals>.<setcomp>ð  s+   ø€ ÐaÐaÐaÀu × 8Ò 8¸¸q¼Ñ BÔ BÐaÐaÐar*   c                 ó"   — g | ]}|d d…         ‘ŒS rÎ  rJ   )rˆ   rÖ  s     r(   r‰   z'get_sorted_dropdown.<locals>.<listcomp>ñ  s    € Ð@Ð@Ð@ e˜˜a˜b˜bœ	Ð@Ð@Ð@r*   )rê   Úzipr°  r<   rE   )ro   r’   ró   rï   Úthree_levelsÚmodels_familiesÚfamiliesrÁ   Úfamilies_ordersÚfamilies_labelsÚsorted_familesÚdropdown_choicesÚsorted_choicesÚfinetunes_dictÚdropdown_types_lists   ` `            r(   Úget_sorted_dropdownrå  Ý  s  øø€ ØUÐUÐUÐUÀnÐUÑUÔU€OØ€HØ!ð !ð !ˆØ˜Ð!Ð!Ø ˆH�VÑøàMÐMÐMÐMÀHÐMÑMÔM€OØMÐMÐMÐMÀHÐMÑMÔM€OØwÐw­6µ#°oÀÐX`Ñ2aÔ2aÐguÐguÐ+vÑ+vÔ+vÐwÑwÔw€NØÐ#ð jð  jð  jð  jõ  EHð  IWð  Yhñ  Eiô  Eið  jñ  jô  jÐÐð zð  zð  zð  zð  zõ  svð  wEð  GVñ  sWô  sWð  zñ  zô  zÐÝÐ.Ð4JÐ4JÐKÑKÔKÐØð nØmÐmÐmÐmÐ\lÐmÑmÔmÐÝ)@ÐAQÑ)RÔ)RÑ&ˆ˜Ø˜~¨~¸d×>XÒ>XÐYkÑ>lÔ>lÔ/mÐmÐmÝÐaÐaÐaÐaÐP`ÐaÑaÔaÑbÔbÐØ@Ð@Ð/?Ð@Ñ@Ô@ÐØÐ.Ð0@Ð@Ð@r*   c           	      óf  — t          | |¦  «        }t          | ¦  «        }t          | ||¦  «        }||vr|                     |¦  «         |                      |d¬¦  «        }t          | |||| j        ¬¦  «        \  }}}t          | ||¦  «        }	||	vr|	                     |¦  «         t          | |	¦  «        \  }
}t          ||¦  «        }| j        rt          | |¦  «        }t          ||
¦  «        }t          j        ||d| j        rdndddd¬	¦  «        }t          j        || j        r|                      |¦  «        n|                      |¦  «        dt          |¦  «        dk    rd
ndd| j        d¬¦  «        }t          j        ||dd
t          |¦  «        dk    p| j         dd¬¦  «        }|||fS )NTr†   )rÛ  Fr   r   Úfamily_listé2   )rc   r&   Ú
show_labelÚscaleÚelem_idÚ	min_widthÚinteractiver}   é   Úmodel_base_types_list)rc   r&   ré  rê  rë  Úvisiblerí  Ú
model_list)rc   r&   ré  rê  rð  rë  rí  )r    r“   rÕ   r   r>   rå  r0   rô   rR  rg   rx   ÚgrÚDropdownr<   r=   r   )ro   rï   rž   r˜   r’   ró   rà  Úsorted_modelsÚsorted_finetunesÚstatus_model_typesrG  rN  Údropdown_familiesÚdropdown_modelsÚdropdown_finetuness                  r(   Úgenerate_dropdown_model_listrú  õ  sÝ  € Ý*¨4°Ñ7Ô7€LÝ-¨dÑ3Ô3€NÝ6°t¸\È>ÑZÔZ€NØ Ð/Ð/Ø×ÒÐ0Ñ1Ô1Ð1Ø×0Ò0Ð1CÈDÐ0ÑQÔQÐÝ6IÈ$ÐP^Ð`tð  wIð  X\ô  Xsð  7tñ  7tô  7tÑ3€N�MÐ#3Ý8¸Ð?SÐUcÑdÔdÐØÐ!3Ð3Ð3Ø×!Ò!Ð"4Ñ5Ô5Ð5Ý6TÐUYÐ[mÑ6nÔ6nÑ3ÐÐ3Ý9¸-ÐIeÑfÔf€MØÔ"ð VÝ=¸dÐDTÑUÔUÐÝ<Ð=MÐO`ÑaÔaÐåœ¨NÐBVÐchÐuyô  vQð  qXÐpqÐpqð  WXð  boð  {}ð  KOð  Pñ  Pô  PÐÝ”k¨-Ðquô  rMð  @¸t×?YÒ?YÐZlÑ?mÔ?mÐ?mð  SW÷  Skò  Skð  l~ñ  Sô  Sð  LQõ  ^að  brñ  ^sô  ^sð  vwò  ^wð  ^wð  YZð  YZð  }~ð  H_ð  imô  iDð  RVð  Wñ  Wô  W€OÝœÐ-=ÐEWÐdiÐqrÕ|ð  AQñ  }Rô  }Rð  UVò  }Vð  }yð  ^bô  ^yð  Zyð  COð  ]að  bñ  bô  bÐØ˜oÐ/AÐAÐAr*   c                 óà  ‡ ‡‡— t          ‰ t          ‰ |¦  «        ¦  «        }‰ j        ‰         d         Šˆ fd„|D ¦   «         }ˆˆˆ fd„t          ||¦  «        D ¦   «         }t	          |d„ ¬¦  «        }d„ |D ¦   «         }t          ‰ |¦  «        \  }}|                     di ¦  «        }	|	                     ‰d¦  «        }
t          |
¦  «        dk    s|
d	„ |D ¦   «         vr|d
         d         }
‰ j        rˆ‰  	                    |
¦  «        }ˆ fd„|D ¦   «         }t          |¦  «        \  }}t          ‰ ||         ¦  «        ||<   t          ||         |¦  «        }t          ||¦  «        }t          |¦  «        dk    }nB‰                      |
¦  «        }d}t          ˆ fd„|D ¦   «         ¦  «        }t          ||¦  «        }t          j        |||rdnd¬¦  «        t          j        ||
|¬¦  «        fS )Nr   c                 ó>   •— g | ]}‰                      |d ¬¦  «        ‘ŒS r¹   rº   rÆ  s     €r(   r‰   z'change_model_family.<locals>.<listcomp>  rÇ  r*   c                 ól   •— g | ]0\  }}|‰k    ¯t          ‰‰                     |¦  «        ¦  «        |f‘Œ1S rJ   )rV   r?   )rˆ   rp   rÁ   Úcurrent_family_nameró   ro   s      €€€r(   r‰   z'change_model_family.<locals>.<listcomp>  sp   ø€ ð  Kð  Kð  KÑmÐmwÐyð  lrð  vJò  lJð  lJ�Ð&9¸4×;NÒ;NÈzÑ;ZÔ;ZÑ[Ô[Ð]gÐhð  lJð  lJð  lJr*   c                 ó   — | d         S r�   rJ   r“  s    r(   rå   z%change_model_family.<locals>.<lambda>  ó
   € ¸aÀ¼d€ r*   ræ   c                 ó   — g | ]
}|d          ‘ŒS rÌ  rJ   ©rˆ   rf   s     r(   r‰   z'change_model_family.<locals>.<listcomp>  s   € ÐFÐFÐF¨6˜V AœYÐFÐFÐFr*   ré   rX   c                 ó   — g | ]
}|d          ‘ŒS rÌ  rJ   r  s     r(   r‰   z'change_model_family.<locals>.<listcomp>  ó   € Ð2\Ð2\Ð2\À°6¸!´9Ð2\Ð2\Ð2\r*   r   c                 óP   •— g | ]"}g |¢‰                      |d          ¦  «        ‘R ‘Œ#S rÌ  rÔ  )rˆ   Útupro   s     €r(   r‰   z'change_model_family.<locals>.<listcomp>  s9   ø€ ÐcÐcÐcÈ3ÐF˜cÐF 4×#=Ò#=¸cÀ!¼fÑ#EÔ#EÐFÐFÐcÐcÐcr*   Tc                 óF   •— h | ]}‰                      |d          ¦  «        ’ŒS rÌ  rØ  rÕ  s     €r(   r¼   z&change_model_family.<locals>.<setcomp>$  s,   ø€ Ð+mÐ+mÐ+mÐSX¨D×,DÒ,DÀUÈ1ÄXÑ,NÔ,NÐ+mÐ+mÐ+mr*   r}   rî  )rc   r&   rê  ©rc   r&   rð  )rÕ   r    r1   rÚ  rê   rR  r[   r   r0   r<   r°  rx   rg   r=   rE   rò  ró  )ro   rž   ró   r’   rÜ  rá  Úfamily_dropdown_typesrG  rN  ré   rp   rM  Údropdown_base_types_choicesrã  Úmodel_finetunes_visiblerþ  s   ` `            @r(   Úchange_model_familyr    s¾  øøø€ Ý6°tÕ=TÐUYÐ[`Ñ=aÔ=aÑbÔb€NØÔ-Ð.BÔCÀAÔFÐØUÐUÐUÐUÀnÐUÑUÔU€Oð Kð  Kð  Kð  Kð  Kð  Kõ  DGð  HVð  Xgñ  Dhô  Dhð  Kñ  Kô  KÐÝÐ.°N°NÐCÑCÔCÐØFÐFÐ5EÐFÑFÔFÐÝ6TÐUYÐ[pÑ6qÔ6qÑ3ÐÐ3Ø!ŸIšIÐ&=¸rÑBÔBÐØ&×*Ò*Ð+?ÀÑDÔD€JÝ
ˆ:�„˜"ÒÐ 
Ð2\Ð2\ÐK[Ð2\Ñ2\Ô2\Ð \Ð \Ø% aÔ(¨Ô+ˆ
àÔ"ð fØ ×6Ò6°zÑBÔBÐØcÐcÐcÐcÐRbÐcÑcÔcÐÝ6MÐN^Ñ6_Ô6_Ñ3Ð# ^Ý,NÈtÐUcÐduÔUvÑ,wÔ,wˆÐ(Ñ)Ý@ÀÐPaÔAbÐduÑvÔvÐÝ&KÐLgð  jFñ  'Gô  'GÐ#Ý"%Ð&6Ñ"7Ô"7¸!Ò";ÐÐà ×4Ò4°ZÑ@Ô@ÐØ"&ÐÝ&*Ð+mÐ+mÐ+mÐ+mÐ\lÐ+mÑ+mÔ+mÑ&nÔ&nÐ#Ý@ÐAQÐSdÑeÔeÐåŒ;Ð:ÐBSÐ`wÐ[~Ð[\Ð[\Ð}~ÐÑÔõ  BDô  BMð  Vfð  nxð  BYð  BZñ  BZô  BZð  Zð  Zr*   c                 óâ  ‡ ‡‡‡— ‰ j         st          j        ¦   «         S t          ‰ t	          ‰ |¦  «        ¦  «        }‰ j        ‰         d         Šˆˆˆ ˆfd„|D ¦   «         }t          |d„ ¬¦  «        }t          |¦  «        \  }}d„ |D ¦   «         }t          ‰ |¦  «        \  }	}t          ‰ |‰         ¦  «        |‰<   t          |‰         |	¦  «        }t          |¦  «        dk    }
|                     di ¦  «        }|                     ‰d¦  «        }t          |¦  «        dk    s|d„ |D ¦   «         vr|d	         d         }t          j        |
rd
nd¬¦  «        t          j        |||
¬¦  «        fS )Nr   c                 óÄ   •— g | ]\}‰                      |¦  «        ‰k    ¯‰                     |d ¬¦  «        ‰k    ¯6t          ‰‰                     |¦  «        ¦  «        |‰f‘Œ]S r¹   )r<   r>   rV   r?   )rˆ   rp   rþ  ró   ro   Úmodel_base_type_choices     €€€€r(   r‰   z+change_model_base_types.<locals>.<listcomp>/  sä   ø€ ð  rð  rð  rð  FPð  fj÷  f@ò  f@ð  AKñ  fLô  fLð  Pfò  ffð  ffð  ko÷  k@ò  k@ð  AKð  TXð  k@ñ  kYô  kYð  ]qò  kqð  kq�Ð&9¸4×;NÒ;NÈzÑ;ZÔ;ZÑ[Ô[Ð]gÐið  Að  kqð  kqð  kqr*   c                 ó   — | d         S r�   rJ   r“  s    r(   rå   z)change_model_base_types.<locals>.<lambda>0  r   r*   ræ   c                 ó   — g | ]
}|d          ‘ŒS rÌ  rJ   r  s     r(   r‰   z+change_model_base_types.<locals>.<listcomp>2  s   € ÐDÐDÐD¨˜6 !œ9ÐDÐDÐDr*   Úlast_model_per_typerX   c                 ó   — g | ]
}|d          ‘ŒS rÌ  rJ   r  s     r(   r‰   z+change_model_base_types.<locals>.<listcomp>9  r  r*   r   r}   rî  )rê  r  )r0   rò  ÚupdaterÕ   r    r1   rê   r°  rR  rx   rg   r   r[   ró  )ro   rž   ró   r  r’   rá  rc  rã  Úbase_dropdown_typesrG  r  r  rp   rþ  s   ` ``         @r(   Úchange_model_base_typesr  *  sà  øøøø€ ØÔ&ð ÝŒy‰{Œ{ÐÝ6°tÕ=TÐUYÐ[`Ñ=aÔ=aÑbÔb€NØÔ-Ð.BÔCÀAÔFÐð rð  rð  rð  rð  rð  rð  rð  Tbð  rñ  rô  rÐÝÐ.°N°NÐCÑCÔCÐÝ/Ð0@ÑAÔAÑ€A€~ØDÐDÐ3CÐDÑDÔDÐÝ9¸$Ð@SÑTÔTÑÐ�qÝ-OÐPTÐVdÐe{ÔV|Ñ-}Ô-}€NÐ)Ñ*Ý<¸^ÐLbÔ=cÐevÑwÔwÐÝ!Ð"2Ñ3Ô3°aÒ7ÐØŸ)š)Ð$9¸2Ñ>Ô>ÐØ$×(Ò(Ð)?ÀÑDÔD€JÝ
ˆ:�„˜"ÒÐ 
Ð2\Ð2\ÐK[Ð2\Ñ2\Ô2\Ð \Ð \Ø% aÔ(¨Ô+ˆ
ÝŒ9Ð 7Ð>˜1˜1¸QÐ?Ñ?Ô?ÅÄÐUeÐmwð  BYð  BZñ  BZô  BZð  Zð  Zr*   )NNr•   )T)Crk   r    Úcollectionsr   Údataclassesr   Úgradiorò  rb   r:  r;  rZ   r›   r�   rœ   r–   rË   rÌ   rÇ   r²   r—   r¢   r   r   r)   r,   rV   r_   rg   rr   rx   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&  r0  r6  rC  rR  rT  r°  rÃ  rå  rú  r  r  rJ   r*   r(   ú<module>r     s  ðà 	€	€	€	Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð ð Ð ØÐ ØÐ à˜xØ Ø˜|ðÐ ð
 "7Ð Ø#:Ð  ØÐ Ø#Ð Ø#Ð Ø#Ð ØÐ Ø#Ð Ø/Ð1JÐLeð  hAð  CYð  [tð  uÐ Ø*HÐ 'ØÐ ØÐ ð@ð @ð @ð ð%ð %ð %ð %ð %ñ %ô %ñ „ð%ð0ð ð ð=ð =ð =ð	ð 	ð 	ðmð mð mð

ð 
ð 
ðLð Lð Lð
)ð )ð )ð/ð /ð /ð_ð _ð _ð
ð ð ð ð	Vð 	Vð 	Vð 	Vðð ð ðð ð ðð ð ð ð0
ð 
ð 
ðLð Lð Lð
^ð ^ð ^ð ^ð(ð (ð (ð
%ð %ð %ð ]ð ]ð ]ð?ð ?ð ?ðgð gð gð*Sð Sð Sð SðCð Cð Cð Cðð ð ð(&ð &ð &ðgð gð gð gð )ð )ð )ðð ð ð6ð ð ð$ð $ð $ðN0ð 0ð 0ðf,%ð ,%ð ,%ð^;ð ;ð ;ð ;ð8Cð Cð Cð CðC'ð C'ð C'ðLð ð ð ð>Að Að Að Að0Bð Bð Bð Bð.Zð Zð Zð<Zð Zð Zð Zð Zr*   