§
     ’Þj†i  ã                  ó"  — U d Z ddlmZ ddlmZ ddlmZ ddlZddlZddl	m
Z
 ddlmZ ddlmZ d	d
lmZ d	dlmZmZmZmZmZmZmZ d	dlmZ dZdZddgZg Zde d<   da!de d<    e"¦   «         Z#de d<   e G d„ d¦  «        ¦   «         Z$d‡d„Z%d‡d„Z&dˆd „Z'd‰d#„Z(dŠd%„Z)d‹d'„Z*dŒd)„Z+d�d-„Z,dŽd/„Z-d�d1„Z.d�d‘d5„Z/d�d’d6„Z0d“d”d:„Z1d•d;„Z2d“d–d=„Z3d—d>„Z4d˜d?„Z5d™dA„Z6d™dB„Z7dšdD„Z8d›dF„Z9dœdH„Z:d�dI„Z;dždJ„Z<dždK„Z=dŸdM„Z>d dO„Z?d¡dP„Z@d¡dQ„ZAd¢dS„ZBd¢dT„ZCd“dUd7dVœd£dY„ZDddZœd¡d[„ZEddZœd¤d]„ZFd¡d^„ZGd7d_œd¥da„ZHdbd7dd7ddcœd¦df„ZId7dgœd§di„ZJdddjœdk„ZKdl„ ZLd¨d–dm„ZMd¡dn„ZNd©dp„ZOdªdq„ZPd«ds„ZQd©dt„ZRd¬du„ZSd­dv„ZTd7dwœd®dz„ZUd¯d|„ZVd°d}„ZWd±d€„ZXd²d�„ZYd³d„„ZZ G d…„ d†¦  «        Z[dS )´a½  Temporal upsampler plugin API.

Temporal upsamplers are interchangeable handlers for frame interpolation.
Handlers expose methods and supported multipliers through
``query_temporal_upsampler_def()`` and may expose config controls under
``wgp_config["temporal_upsamplers"][config_key]``.
Definitions may also expose an optional ``description`` plus optional
``method_descriptions`` and ``method_parameters`` mappings for reusable
discovery interfaces. Existing handlers without these fields remain valid.
Discovery tests the existing optional ``enabled()`` method first. When it is
absent, handlers may expose a ``status`` property containing ``"enabled"`` or
``"disabled"``. Discovery reports ``"unknown"`` only when neither contract
provides a valid status. Disabled handlers may expose ``reason_disabled``.
Handlers may implement ``method_available(method)`` and ``method_visible(method)``.
Both default to True: hidden methods remain usable and are added to menus only
when restoring their selection; unavailable methods are excluded even then.

Plugin authors can register processors from ``plugin_info.json`` with:

```json
{
  "temporal_upsampler_handlers": ["my_plugin.temporal.MyTemporalUpsampler"]
}
```
é    )Úannotations)Ú	dataclass)ÚpartialN)ÚAny)Úattention_shared_state)Úoffload_registryé   )Úmemory)ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDÚPROCESSOR_STATUS_UNKNOWNÚhandler_reason_disabledÚhandler_statusÚhandler_method_availableÚhandler_method_in_choices)Úcompatible_loaded_modelÚtemporal_upsamplersÚ*z<postprocessing.rife.temporal_upsampler.RifeTemporalUpsamplerz>postprocessing.dlss5.temporal_upsampler.DLSSGTemporalUpsamplerú	list[Any]Ú_temporal_upsampler_handlerszdict[str, Any] | NoneÚ!_temporal_upsampler_server_configzset[str]Ú,_registered_temporal_upsampler_handler_pathsc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚTemporalUpsamplerConfigBindingr   ÚhandlerÚstrÚ
config_keyzlist[tuple[str, Any]]ÚcontrolsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úJC:\Users\johnn\OneDrive\Documents\AI\postprocessing\temporal_upsamplers.pyr   r   7   s0   € € € € € € à€L€L�LØ€O€O�OØ#Ð#Ð#Ñ#Ð#Ð#r$   r   ÚscaleÚfloatÚreturnr   c                óˆ   — t          | ¦  «        } |                      ¦   «         rt          t          | ¦  «        ¦  «        n| d›S )NÚg)r'   Ú
is_integerr   Úint©r&   s    r%   Úformat_multiplierr.   >   s8   € Ý�%‰LŒL€EØ#×.Ò.Ñ0Ô0ÐB�3�s�5‰zŒz‰?Œ?ˆ?¸°l°lÐBr$   c                ó&   — dt          | ¦  «        › �S )NÚx)r.   r-   s    r%   Úformat_multiplier_labelr1   C   s   € Ø)Õ  Ñ'Ô'Ð)Ð)Ð)r$   Úmethodc                óœ   — t          | pd¦  «                             ¦   «                              ¦   «         › t          › t	          |¦  «        › �S ©NÚ )r   ÚstripÚlowerÚMULTIPLIER_SEPARATORr.   )r2   r&   s     r%   Úformat_multiplier_valuer9   G   sG   € Ý�&�,˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ÐaÕ1EÐaÕGXÐY^ÑG_ÔG_ÐaÐaÐar$   Údefault_scaleúfloat | Nonec                ó  — t          | pd¦  «                             ¦   «                              ¦   «         }t          |pd¦  «                             ¦   «                              ¦   «         }|                     |¦  «        sd S |t	          |¦  «        d …         }|                     t
          ¦  «        r!|t	          t
          ¦  «        d …         }|sd S nt
          |v rd S 	 t          |p|¦  «        S # t          $ r Y d S w xY wr4   )r   r6   r7   Ú
startswithÚlenr8   r'   Ú
ValueError)Úvaluer2   r:   ÚtextÚsuffixs        r%   Úparse_multiplier_suffixrC   K   s  € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#×)Ò)Ñ+Ô+€DÝ��˜2ÑÔ×$Ò$Ñ&Ô&×,Ò,Ñ.Ô.€FØ�?Š?˜6Ñ"Ô"ð ØˆtØ•#�f‘+”+�,�,Ô€FØ×ÒÕ-Ñ.Ô.ð Ø�Õ0Ñ1Ô1Ð2Ð2Ô3ˆØð 	Ø�4ð	å	 Ð	'Ð	'ØˆtðÝ�VÐ,˜}Ñ-Ô-Ð-øÝð ð ð Øˆtˆtðøøøs   Ã C1 Ã1
C?Ã>C?Úlabelc                ón   — t          | pd¦  «                             d¦  «        › dt          |¦  «        › �S )Nr5   z
 Upsamplerú )r   Úremovesuffixr1   )rD   r&   s     r%   Úformat_method_scale_labelrH   ]   s:   € Ý�%�+˜2ÑÔ×+Ò+¨LÑ9Ô9Ð\Ð\Õ<SÐTYÑ<ZÔ<ZÐ\Ð\Ð\r$   ÚNonec                óP   — | t           vrt                                | ¦  «         d S d S ©N)r   Úappend©r   s    r%   Úregister_temporal_upsamplerrN   a   s0   € ØÕ2Ð2Ð2Ý$×+Ò+¨GÑ4Ô4Ð4Ð4Ð4ð 3Ð2r$   Úpathc                óx   — |                       dd¦  «        \  }}t          t          j        |¦  «        |¦  «        S )Nú.r	   )ÚrsplitÚgetattrÚ	importlibÚimport_module)rO   Úmodule_pathÚ
class_names      r%   Ú_load_upsampler_classrX   f   s5   € Ø"Ÿkšk¨#¨qÑ1Ô1Ñ€K�Ý•9Ô*¨;Ñ7Ô7¸ÑDÔDÐDr$   Úhandler_defúdict[str, Any]úlist[tuple[str, str]]c                óB   — d„ |                       dg ¦  «        D ¦   «         S )Nc                ó   — g | ]	\  }}||f‘Œ
S r#   r#   ©Ú.0rD   r2   s      r%   ú
<listcomp>z#_method_choices.<locals>.<listcomp>l   s    € ÐPÐPÐP¡  vˆU�FˆOÐPÐPÐPr$   Úmethods)Úget©rY   s    r%   Ú_method_choicesrd   k   s$   € ØPÐP°·²ÀÈBÑ1OÔ1OÐPÑPÔPÐPr$   údict[str, str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó   — i | ]\  }}||“Œ	S r#   r#   r^   s      r%   ú
<dictcomp>z"_method_labels.<locals>.<dictcomp>p   s   € ÐLÐLÐL™m˜e VˆF�EÐLÐLÐLr$   )rd   rc   s    r%   Ú_method_labelsri   o   s   € ØLÐL­¸{Ñ/KÔ/KÐLÑLÔLÐLr$   Úfallback_namec                óÞ   — t          |                      dd¦  «        pd¦  «                             ¦   «         }|r|S t          | ¦  «        }|r|d         d         S |                     ¦   «         S )Nr   r5   r   r	   )r   rb   r6   rd   r7   )rY   rj   r   Úmethod_choicess       r%   Ú_config_key_from_handler_defrm   s   ss   € Ý�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#Ø×ÒÑ Ô Ð r$   Úhandler_modulesúlist[str] | Noneúdict[str, dict[str, Any]]c                óH  — i }| €t           n| D ]“}t          t          |pd¦  «                             ¦   «         ¦  «        }t	          |d¦  «        sŒCt          |                     ¦   «         ¦  «        }|sŒg|                     ¦   «         }||t          ||j	        ¦  «        <   Œ”|S )Nr5   Údefault_config)
Útemporal_upsampler_handlersrX   r   r6   ÚhasattrÚdictrr   Úquery_temporal_upsampler_defrm   r   )rn   ÚsectionsrO   Úhandler_clsÚconfigrY   s         r%   Údefault_config_sectionsrz   }   s±   € Ø€HØ/>Ð/FÕ+Ð+ÈOð [ð [ˆÝ+­C°°
¸©O¬O×,AÒ,AÑ,CÔ,CÑDÔDˆÝ�{Ð$4Ñ5Ô5ð 	ØÝ�k×0Ò0Ñ2Ô2Ñ3Ô3ˆØð 	ØØ!×>Ò>Ñ@Ô@ˆØTZˆÕ-¨k¸;Ô;OÑPÔPÑQÐQØ€Or$   c                ó  — | a |€t          n|}|D ]q}t          |pd¦  «                             ¦   «         }|r	|t          v rŒ1t           t          |¦  «        | |¦  «        ¦  «         t                               |¦  «         Œrd S r4   )r   rs   r   r6   r   rN   rX   Úadd)Úserver_configÚfiles_locatorrn   ÚmodulesrO   s        r%   Úregister_temporal_upsamplersr€   ‹   s�   € à(5Ð%Ø-<Ð-DÕ)Ð)È/€GØð ?ð ?ˆÝ�4�:˜2‰Œ×$Ò$Ñ&Ô&ˆØð 	�tÕKÐKÐKØÝ#Ð$?Õ$9¸$Ñ$?Ô$?ÀÈ}Ñ$]Ô$]Ñ^Ô^Ð^Ý4×8Ò8¸Ñ>Ô>Ð>Ð>ð?ð ?r$   FÚenabled_onlyÚboolc                ó*   ‡ — ˆ fd„t           D ¦   «         S )Nc                ó6   •— g | ]}‰rt          |¦  «        ¯|‘ŒS r#   )Úhandler_enabled)r_   r   r�   s     €r%   r`   z2registered_temporal_upsamplers.<locals>.<listcomp>˜   s-   ø€ ÐpÐpÐp˜À|ÐpÕWfÐgnÑWoÔWoÐpˆGÐpÐpÐpr$   )r   ©r�   s   `r%   Úregistered_temporal_upsamplersr‡   —   s   ø€ ØpÐpÐpÐpÕ#?ÐpÑpÔpÐpr$   c                óL   — t          | d¦  «         p|                      ¦   «         S )NÚenabled)rt   r‰   rM   s    r%   r…   r…   ›   s$   € Ý�w 	Ñ*Ô*Ð*Ð?¨g¯oªoÑ.?Ô.?Ð?r$   úlist[dict[str, Any]]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r#   )rv   ©r_   r   s     r%   r`   z1query_temporal_upsampler_defs.<locals>.<listcomp>    s$   € ÐoÐoÐo°wˆG×0Ò0Ñ2Ô2ÐoÐoÐor$   )r‡   r†   s    r%   Úquery_temporal_upsampler_defsrŽ   Ÿ   s    € ØoÐoÕB`ÐamÑBnÔBnÐoÑoÔoÐor$   c                óz   — 	 t          |                      dd¦  «        ¦  «        S # t          t          f$ r Y dS w xY w)NÚposiè  )r'   rb   Ú	TypeErrorr?   rc   s    r%   Ú_handler_posr’   £   sJ   € ðÝ�[—_’_ U¨DÑ1Ô1Ñ2Ô2Ð2øÝ•zÐ"ð ð ð Øˆtˆtðøøøs   ‚"% ¥:¹:c                óØ   — |                       di ¦  «        }t          |t          ¦  «        r1||v r-	 t          ||         ¦  «        S # t          t
          f$ r Y nw xY wt          | ¦  «        S )NÚ
method_pos)rb   Ú
isinstanceru   r'   r‘   r?   r’   )rY   r2   r”   s      r%   Ú_method_posr–   ª   s|   € Ø—’ ¨rÑ2Ô2€JÝ�*�dÑ#Ô#ð ¨°*Ð(<Ð(<ð	Ý˜ FÔ+Ñ,Ô,Ð,øÝ�:Ð&ð 	ð 	ð 	ØˆDð	øøøå˜Ñ$Ô$Ð$s   ±A ÁAÁAú
Any | Nonec                ó�   ‡ — t          ‰ pd¦  «                             ¦   «         sd S t          ˆ fd„t          D ¦   «         d ¦  «        S )Nr5   c              3  óF   •K  — | ]}|                      ‰¦  «        ¯|V — Œd S rK   )Úis_upsampling)r_   r   Útemporal_upsamplings     €r%   ú	<genexpr>z*find_temporal_upsampler.<locals>.<genexpr>·   s7   øè è € ÐsÐs˜WÈ×H]ÒH]Ð^qÑHrÔHrÐs�ÐsÐsÐsÐsÐsÐsr$   )r   r6   Únextr   ©r›   s   `r%   Úfind_temporal_upsamplerrŸ   ´   sQ   ø€ ÝÐ"Ð( bÑ)Ô)×/Ò/Ñ1Ô1ð ØˆtÝÐsÐsÐsÐsÕ(DÐsÑsÔsÐuyÑzÔzÐzr$   c                óÊ   — t          | pd¦  «                             ¦   «         } | sd S t          D ]3}| d„ t          |                     ¦   «         ¦  «        D ¦   «         v r|c S Œ4d S )Nr5   c                ó   — g | ]\  }}|‘ŒS r#   r#   ©r_   Ú_Úkeys      r%   r`   z5find_temporal_upsampler_by_method.<locals>.<listcomp>¿   s   € Ð`Ð`Ð`™f˜a �cÐ`Ð`Ð`r$   )r   r6   r   rd   rv   ©r2   r   s     r%   Ú!find_temporal_upsampler_by_methodr¦   º   s}   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð ØˆtÝ/ð ð ˆØÐ`Ð`­¸×8\Ò8\Ñ8^Ô8^Ñ(_Ô(_Ð`Ñ`Ô`Ð`Ð`ØˆNˆNˆNð aàˆ4r$   r   c                óN   — t          | ¦  «        }|€t          d| › d�¦  «        ‚|S )Nz-No temporal upsampler registered for method 'ú')r¦   ÚRuntimeErrorr¥   s     r%   Ú$require_temporal_upsampler_by_methodrª   Ä   s3   € Ý/°Ñ7Ô7€GØ€ÝÐTÈ6ÐTÐTÐTÑUÔUÐUØ€Nr$   útuple[float, ...]c                óÔ   — t          | ¦  «        }|€dS t          |                     ¦   «                              di ¦  «                             t	          | ¦  «        d¦  «        ¦  «        S )Nr#   Úmultipliers)r¦   Útuplerv   rb   r   r¥   s     r%   Úmethod_multipliersr¯   Ë   s^   € Ý/°Ñ7Ô7€GØ€ØˆrÝ�×5Ò5Ñ7Ô7×;Ò;¸MÈ2ÑNÔN×RÒRÕSVÐW]ÑS^ÔS^Ð`bÑcÔcÑdÔdÐdr$   úlist[tuple[str, float]]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó0   — g | ]}t          |¦  «        |f‘ŒS r#   )r1   )r_   r&   s     r%   r`   z1multiplier_choices_for_method.<locals>.<listcomp>Ó   s&   € Ð\Ð\Ð\¸Õ$ UÑ+Ô+¨UÐ3Ð\Ð\Ð\r$   )r¯   )r2   s    r%   Úmultiplier_choices_for_methodr³   Ò   s    € Ø\Ð\ÕASÐTZÑA[ÔA[Ð\Ñ\Ô\Ð\r$   c                ó@  — t          |                      di ¦  «                             |d¦  «        ¦  «        }|sd S |                      dd¦  «        }t          |¦  «        }|�5|                     |¦  «        }|�|d         |k    r|d         |v r|d         S |d         S )Nr­   r#   Údefault_temporal_upsamplingr5   r   r	   )r®   rb   rŸ   Úsplit_value)rY   r2   r­   Údefault_valuer   Úsplits         r%   Ú_default_multiplier_from_defr¹   Ö   s©   € Ý˜Ÿš¨°rÑ:Ô:×>Ò>¸vÀrÑJÔJÑKÔK€KØð ØˆtØ—O’OÐ$AÀ2ÑFÔF€MÝ% mÑ4Ô4€GØÐØ×#Ò# MÑ2Ô2ˆØÐ  q¤¨VÒ!3Ð!3¸¸a¼ÀKÐ8OÐ8OØ˜”8ˆOØ�qŒ>Ðr$   c                ó²   — t          | ¦  «        }|€dS t          |                     ¦   «         t          | pd¦  «                             ¦   «         ¦  «        pdS )Nç       @r5   )r¦   r¹   rv   r   r6   r¥   s     r%   Údefault_multiplier_for_methodr¼   ã   sW   € Ý/°Ñ7Ô7€GØ€ØˆsÝ'¨×(LÒ(LÑ(NÔ(NÕPSÐTZÐT`Ð^`ÑPaÔPa×PgÒPgÑPiÔPiÑjÔjÐqÐnqÐqr$   c                óÀ   — t          | ¦  «        }|sdS 	 t          |¦  «        }n&# t          t          f$ r t	          | ¦  «        }Y nw xY w||v r|nt	          | ¦  «        S )Nr»   )r¯   r'   r‘   r?   r¼   )r2   r&   r­   s      r%   Únormalize_multiplier_for_methodr¾   ê   s|   € Ý$ VÑ,Ô,€KØð Øˆsð6Ý�e‘”ˆˆøÝ•zÐ"ð 6ð 6ð 6Ý-¨fÑ5Ô5ˆˆˆð6øøøà˜[Ð(Ð(ˆ5ˆ5Õ.KÈFÑ.SÔ.SÐSs   •% ¥ AÁAútuple[str, float] | Nonec                óR   — t          | ¦  «        }|€d n|                     | ¦  «        S rK   )rŸ   r¶   )r@   r   s     r%   Úsplit_temporal_upsampling_valuerÁ   õ   s+   € Ý% eÑ,Ô,€GØ�?ˆ4ˆ4¨×(;Ò(;¸EÑ(BÔ(BÐBr$   ú
str | Nonec                óT   — t          | ¦  «        }|€d n|                     | |¦  «        S rK   )r¦   Úbuild_value)r2   r&   r   s      r%   Úbuild_temporal_upsampling_valuerÅ   ú   s-   € Ý/°Ñ7Ô7€GØ�?ˆ4ˆ4¨×(;Ò(;¸FÀEÑ(JÔ(JÐJr$   c                óÄ   — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S t          |d         ¦  «        }|€d n	 |j        |Ž }|p|S )Nr5   r   )r   r6   rÁ   r¦   rÄ   )r@   rA   r¸   r   Ú
normalizeds        r%   Ú#normalize_temporal_upsampling_valuerÈ   ÿ   sw   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ+¨DÑ1Ô1€EØ€}ØˆÝ/°°a´Ñ9Ô9€GØ ˜��Ð.A¨gÔ.AÀ5Ð.I€JØÐ˜Ðr$   c                óB  — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S |                     |¦  «        }|€|S |\  }}t	          |                     ¦   «         ¦  «                             |¦  «        }|rt          ||¦  «        n|S r4   )r   r6   rŸ   r¶   ri   rv   rb   rH   )r@   rA   r   r¸   r2   r&   rD   s          r%   Ú format_temporal_upsampling_labelrÊ     s«   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ% dÑ+Ô+€GØ€ØˆØ×Ò Ñ%Ô%€EØ€}ØˆØ�M€FˆEÝ˜7×?Ò?ÑAÔAÑBÔB×FÒFÀvÑNÔN€EØ6;ÐEÕ$ U¨EÑ2Ô2Ð2ÀÐEr$   ú1tuple[list[tuple[str, float]], float | None, str]c                ó¾   — t          | pd¦  «                             ¦   «         } | sg d dfS t          | ¦  «        }t          | |¦  «        }||t	          | |¦  «        pdfS r4   )r   r6   r³   r¾   rÅ   )r2   r&   Úmultiplier_choicess      r%   Ú#normalize_temporal_upsampling_staterÎ     sn   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð Ø�4˜ˆ|ÐÝ6°vÑ>Ô>ÐÝ+¨F°EÑ:Ô:€EØ˜uÕ&EÀfÈeÑ&TÔ&TÐ&ZÐXZÐZÐZr$   c                óT   — t          |¦  «        }t          | |€dn|d         ¦  «        S )Nr»   r	   )rÁ   rÎ   )r2   Úcurrent_valuer¸   s      r%   Ú.normalize_temporal_upsampling_value_for_methodrÑ   #  s.   € Ý+¨MÑ:Ô:€EÝ.¨v¸e¸m°s°sÐQVÐWXÔQYÑZÔZÐZr$   r5   ©Úselected_methodÚinclude_hiddenrÓ   rÔ   c               óÎ   ‡‡‡‡— g }t          | ¦  «        D ]7Š‰                     ¦   «         Š|ˆˆˆˆfd„t          ‰¦  «        D ¦   «         z  }Œ8d„ t          |¦  «        D ¦   «         S )Nc                óÆ   •— g | ]]\  }}t          ‰|‰‰¬ ¦  «        ¯t          ‰|¦  «        t          |pd¦  «                             ¦   «         t          |pd¦  «        ||f‘Œ^S )rÒ   r5   )r   r–   r   Úcasefold)r_   rD   r2   r   rY   rÔ   rÓ   s      €€€€r%   r`   z(query_method_choices.<locals>.<listcomp>,  s·   ø€ ð  Wð  Wð  Wñ  {HÐzð  BHõ  lEð  FMð  OUð  gvð  GUð  lVñ  lVô  lVð  W•[ ¨fÑ5Ô5µs¸5¸;ÀBÑ7GÔ7G×7PÒ7PÑ7RÔ7RÕTWÐX^ÐXdÐbdÑTeÔTeÐglÐntÐuð  Wð  Wð  Wr$   c                ó"   — g | ]\  }}}}}||f‘ŒS r#   r#   )r_   r£   rD   r2   s       r%   r`   z(query_method_choices.<locals>.<listcomp>-  s'   € ÐJÐJÐJÑ 6  1 a¨°ˆU�FˆOÐJÐJÐJr$   )r‡   rv   rd   Úsorted)r�   rÓ   rÔ   Úchoicesr   rY   s    `` @@r%   Úquery_method_choicesrÛ   (  s´   øøøø€ Ø€GÝ1°,Ñ?Ô?ð Wð WˆØ×:Ò:Ñ<Ô<ˆØð  Wð  Wð  Wð  Wð  Wð  Wð  Wõ  L[ð  \gñ  Lhô  Lhð  Wñ  Wô  Wñ  	WˆˆØJÐJ½&À¹/¼/ÐJÑJÔJÐJr$   ©Ú
field_helpc               ó.  ‡‡— t          |dd¦  «        }|g}i }| D ]A\  }}t          |¦  «        }|�+|                     |g ¦  «                             ||f¦  «         ŒB|                     ¦   «         D �]\  }}|                     ¦   «         }	t          |	                     d|d         d         ¦  «        ¦  «        }
t          |	                     dd¦  «        pd¦  «                             ¦   «         Šd|
› �g}‰r|                     ‰¦  «         |	                     di ¦  «        Št          ‰t          ¦  «        rˆfd	„|D ¦   «         }|ˆfd
„|D ¦   «         z  }|                     d                     |¦  «        ¦  «         �Œd                     |¦  «        S )NÚTEMPORAL_UPSAMPLER_HELP_INTROzJTemporal upsamplers increase frame rate by generating intermediate frames.Únamer   Údescriptionr5   z### Úmethod_descriptionsc           	     ó¢   •— g | ]K\  }}t          |¦  «        t          ‰                     |d ¦  «        pd ¦  «                             ¦   «         f‘ŒLS )r5   )r   rb   r6   )r_   rD   r2   râ   s      €r%   r`   z*temporal_help_markdown.<locals>.<listcomp>A  sU   ø€ ÐyÐyÐyÑ`mÐ`eÐgm�˜E™
œ
¥CÐ(;×(?Ò(?ÀÈÑ(KÔ(KÐ(QÈrÑ$RÔ$R×$XÒ$XÑ$ZÔ$ZÐ[ÐyÐyÐyr$   c                ó6   •— g | ]\  }}|¯|‰k    ¯d |› d|› �‘ŒS )z- **z:** r#   )r_   rD   Údetailrá   s      €r%   r`   z*temporal_help_markdown.<locals>.<listcomp>B  s@   ø€ ÐrÐrÐr±]°U¸FÐQWÐrÐ\bÐfqÒ\qÐ\qÐ0˜UÐ0Ð0¨Ð0Ð0Ð\qÐ\qÐ\qr$   z

)rS   r¦   Ú
setdefaultrL   Úitemsrv   r   rb   r6   r•   ru   Újoin)rl   rÝ   Úintrorw   Úhandler_choicesrD   r2   r   rÚ   rY   rà   ÚlinesÚdetailsrá   râ   s                @@r%   Útemporal_help_markdownrí   0  sº  øø€ Ý�JÐ ?ð  BNñ  Oô  O€EØˆw€HØ€OØ'ð Lð L‰ˆˆvÝ3°FÑ;Ô;ˆØÐØ×&Ò& w°Ñ3Ô3×:Ò:¸EÀ6¸?ÑKÔKÐKøØ+×1Ò1Ñ3Ô3ð ,ñ ,Ñˆ�Ø×:Ò:Ñ<Ô<ˆÝ�;—?’? 6¨7°1¬:°a¬=Ñ9Ô9Ñ:Ô:ˆÝ˜+Ÿ/š/¨-¸Ñ<Ô<ÐBÀÑCÔC×IÒIÑKÔKˆØ˜���ˆØð 	&Ø�LŠL˜Ñ%Ô%Ð%Ø)ŸošoÐ.CÀRÑHÔHÐÝÐ)­4Ñ0Ô0ð 	sØyÐyÐyÐyÐqxÐyÑyÔyˆGØÐrÐrÐrÐrÀgÐrÑrÔrÑrˆEØ�Š˜Ÿš EÑ*Ô*Ñ+Ô+Ð+Ñ+Ø�;Š;�xÑ Ô Ð r$   útuple[str, str]c               ó(   — dt          | |¬¦  «        fS )NzTemporal UpsamplerrÜ   )rí   )rl   rÝ   s     r%   Útemporal_help_popuprð   G  s   € ØÕ!7¸ÐS]Ð!^Ñ!^Ô!^Ð^Ð^r$   c                óÈ   — d                      d„ | D ¦   «         ¦  «        }dt          j        |                     d¦  «        ¦  «                             ¦   «         d d…         › �S )Nú|c              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S rK   )r   )r_   Ú_labelr2   s      r%   rœ   z#temporal_help_id.<locals>.<genexpr>L  s,   è è € ÐJÐJ©¨°�˜V™œÐJÐJÐJÐJÐJÐJr$   Útemporal_upsampling_zutf-8é   )rè   ÚhashlibÚsha1ÚencodeÚ	hexdigest)rl   Ú	signatures     r%   Útemporal_help_idrü   K  s`   € Ø—’ÐJÐJ¸>ÐJÑJÔJÑJÔJ€IØ\¥'¤,¨y×/?Ò/?ÀÑ/HÔ/HÑ"IÔ"I×"SÒ"SÑ"UÔ"UÐVYÐWYÐVYÔ"ZÐ\Ð\Ð\r$   ©Úlate_postprocessingrþ   c               ó®   — t          | ¦  «        pd\  }}dgt          | |¬¦  «        z   }|d„ |D ¦   «         vrd}t          ||¦  «        \  }}}|||||dœS )N)r5   r»   )rI   r5   )r�   rÓ   c                ó   — h | ]\  }}|’ŒS r#   r#   )r_   r£   r@   s      r%   ú	<setcomp>z!dropdown_state.<locals>.<setcomp>S  s   € Ð;Ð;Ð;¡  5�eÐ;Ð;Ð;r$   r5   )r2   r&   r@   rl   rÍ   )rÁ   rÛ   rÎ   )r›   rþ   r2   r&   rl   rÍ   r@   s          r%   Údropdown_stater  P  s’   € Ý3Ð4GÑHÔHÐUÈI�M€FˆEØ"�^Õ&:ÐL_ÐH_ÐqwÐ&xÑ&xÔ&xÑx€NØÐ;Ð;¨NÐ;Ñ;Ô;Ð;Ð;ØˆÝ'JÈ6ÐSXÑ'YÔ'YÑ$Ð˜˜uØ u°uÐP^ð  wIð  Jð  Jð  Jr$   T)Úvisiblerþ   Úelem_classesÚupdate_formrÝ   r  r  c          	     óÄ  ‡ ‡— t          |r|nd‰¬¦  «        }‰                      ¦   «         5  ‰                      |d         |d         |dd|¬¦  «        }|�Ft          |d         |¬¦  «        \  }	}
|                     |t          |d         ¦  «        |	|
¬	¦  «         ‰                      |d
         |d         |o|d         dk    dd|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰                      |d         d|¬¦  «        }ˆ ˆfd„}ˆ fd„}|sK||g}‰                      |j        g|||g|g|¢d¬¦  «         ‰                      |j        g|||g|d¬¦  «         |||dœS )Nr5   rý   rl   r2   é   zTemporal Upsampling)rÚ   r@   r  r&   rD   r  rÜ   )ÚtitleÚmarkdownrÍ   r&   r	   Ú
Multiplierr@   F)r@   r  r  c           	     ó  •— t          | |¦  «        \  }}}t          |‰¬¦  «        }‰                     |d         |d         ¬¦  «        ‰                     |d         |d         t          |d         ¦  «        ¬¦  «        |d         fS )	Nrý   rl   r2   )rÚ   r@   rÍ   r&   )rÚ   r@   r  r@   )rÑ   r  Úupdater‚   )r2   r@   r£   ÚstateÚgrrþ   s       €€r%   Úrefresh_methodz5create_generation_temporal_ui.<locals>.refresh_methodc  sË   ø€ ÝDÀVÈUÑSÔS‰ˆˆ1ˆeÝ˜uÐ:MÐNÑNÔNˆØ�yŠy Ð'7Ô!8ÀÀhÄˆyÑPÔPÐRT×R[ÒR[ÐdiÐj~Ôdð  HMð  NUô  HVõ  `dð  ejð  ksô  etñ  `uô  `uÐR[ñ  Svô  Svð  x}ð  ~Eô  xFð  Fð  	Fr$   c                óx   •— t          | |¦  «        \  }}}‰                     |t          | ¦  «        ¬¦  «        |fS )N)r@   r  )rÎ   r  r‚   )r2   r&   r£   r@   r  s       €r%   Úrefresh_multiplierz9create_generation_temporal_ui.<locals>.refresh_multiplierh  s9   ø€ Ý=¸fÀeÑLÔL‰ˆˆ5�%Ø�yŠy˜u­d°6©l¬lˆyÑ;Ô;¸UÐBÐBr$   Úhidden)ÚtriggersÚfnÚinputsÚoutputsÚshow_progress)r@   r2   Ú
multiplier)	r  ÚRowÚDropdownrð   Úbindrü   ÚTextboxÚonÚinput)r  r›   r  rþ   r  r  rÝ   r  r2   Ú
help_titleÚhelp_markdownr  r@   r  r  r  s   `  `            r%   Úcreate_generation_temporal_uir!  Y  sr  øø€ Ý°'ÐAÐ.Ð.¸rÐWjÐkÑkÔk€EØ	�Š‰Œð ð Ø—’ UÐ+;Ô%<ÀEÈ(ÄOÐ]dÐlmð  vKð  Zf�ñ  gô  gˆØÐ!Ý(;¸EÐBRÔ<SÐ`jÐ(kÑ(kÔ(kÑ%ˆJ˜Ø�OŠO˜FÕ$4°UÐ;KÔ5LÑ$MÔ$MÐU_ÐjwˆOÑxÔxÐxØ—[’[¨Ð/CÔ)DÈEÐRYÌNÐdkð  eFÐpuÐv~Ôpð  DFò  qFð  NOð  Wcð  r~�[ñ  ô  ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �JŠJ˜U 7œ^°UÈˆJÑVÔV€EðFð Fð Fð Fð Fð Fð
Cð Cð Cð Cð Cð ð HØ˜uÐ%ˆØ
�Š˜œ�~¨.À&È%ÀÐ[aÐZlÐdkÐZlð  }Eˆñ  	Fô  	Fð  	FØ
�Š˜
Ô(Ð)Ð.@È&ÐR\ÐI]Ðgnð  Gˆñ  	Hô  	Hð  	HØ f¸JÐGÐGÐGs   ¬B#CÃCÃ"C©Úsource_is_imager#  c               ó4  — t          | pd¦  «                             ¦   «         } | sdS t          | ¦  «        }|€d| › d�S |                     | ¦  «        \  }}t	          ||¦  «        sd|› d�S t          |d¦  «        r|                     | |¬¦  «        S |rdndS )	Nr5   ú&No temporal upsampler registered for 'r¨   zTemporal upsampler 'z' is not availableÚvalidate_upsamplingr"  z1Temporal Upsampling can not be used with an Image)r   r6   rŸ   r¶   r   rt   r&  )r›   r#  r   r2   r£   s        r%   Úvalidate_temporal_upsamplingr'  s  sÑ   € ÝÐ1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ÐØð ØˆrÝ%Ð&9Ñ:Ô:€GØ€ØNÐ8KÐNÐNÐNÐNØ×#Ò#Ð$7Ñ8Ô8�I€FˆAÝ# G¨VÑ4Ô4ð AØ@ fÐ@Ð@Ð@Ð@ÝˆwÐ-Ñ.Ô.ð aØ×*Ò*Ð+>ÐP_Ð*Ñ`Ô`Ð`ØBQÐYÐ>Ð>ÐWYÐYr$   )Úmain_offloadobjÚloaded_model_contextc               ó´  — t          | ¦  «        }|€;t          | pd¦  «                             ¦   «         rt          d| › d�¦  «        ‚|||fS d|d<   |                     d¦  «        €#t          t          j        t          ¬¦  «        |d<   | 	                    ¦   «         d         }t          |d	¦  «        r|                     ¦   «         nd
}	t          || |¦  «        }
|
€Bt          |d¦  «        r2ddlm} |                     |                     d¦  «        p|| ¬¦  «         t!          ¦   «         5  	 |�|j        n|}|�|                     ¦   «          |
�%t          |d¦  «        r|                     ¦   «          n |
€t          |d¦  «        r |j        | fi |¤Ž  |j        | |||fd|
i|¤Ž|
�|
j                             ¦   «          n-|	rt-          j        |g¦  «         nt-          j        |g¦  «         cd d d ¦  «         S # |
�|
j                             ¦   «          w |	rt-          j        |g¦  «         w t-          j        |g¦  «         w xY w# 1 swxY w Y   d S )Nr5   r%  r¨   r   ÚprofileÚ	init_pipe)r}   rà   Úpersistent_modelsFÚdownload)Úprocess_files_defÚprocess_filesrž   Úrelease_private_runtimeÚload_upsamplerr)  )rŸ   r   r6   r?   rb   r   Úprocessor_memoryr,  r   rv   rt   r-  r   Úshared.utils.downloadr/  r.  r   Ú
offloadobjÚ
unload_allr1  r2  Útemporal_upsampler   Úunload_vramÚrelease_all)r›   ÚsampleÚprevious_last_frameÚfpsr(  r)  Úkwargsr   rà   Ú
persistentÚborrowed_contextr/  Úcore_offloadobjs                r%   r7  r7  ‚  s!  € Ý%Ð&9Ñ:Ô:€GØ€ÝÐ"Ð( bÑ)Ô)×/Ò/Ñ1Ô1ð 	^ÝÐ\ÐFYÐ\Ð\Ð\Ñ]Ô]Ð]ØÐ*¨CÐ/Ð/Ø€Fˆ9ÑØ‡z‚z�+ÑÔÐ&Ý%Õ&6Ô&@ÕPqÐrÑrÔrˆˆ{ÑØ×/Ò/Ñ1Ô1°&Ô9€DÝ07¸ÐATÑ0UÔ0UÐ`�×*Ò*Ñ,Ô,Ð,Ð[`€JÝ.¨wÐ8KÐMaÑbÔbÐØÐ¥G¨G°ZÑ$@Ô$@ÐØ;Ð;Ð;Ð;Ð;Ð;Ø×Ò˜Ÿš OÑ4Ô4ÐIÐ8IÐ_rÐÑsÔsÐsÝ	Ñ	!Ô	!ð 5ð 5ð	5ØAUÐAaÐ2Ô=Ð=ÐgvˆOØÐ*Ø×*Ò*Ñ,Ô,Ð,ØÐ+µ¸ÐAZÑ0[Ô0[Ð+Ø×/Ò/Ñ1Ô1Ð1Ð1Ø!Ð)­g°gÐ?OÑ.PÔ.PÐ)Ø&�Ô&Ð':ÐEÐE¸fÐEÐEÐEØ,�7Ô,Ð-@À&ÐJ]Ð_bð  Uð  Uð  zJð  Uð  NTð  Uð  UàÐ+Ø Ô+×6Ò6Ñ8Ô8Ð8Ð8Øð 5Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å Ô,¨d¨VÑ4Ô4Ð4ð!5ð 5ð 5ð 5ñ 5ô 5ð 5ð 5øð  Ð+Ø Ô+×6Ò6Ñ8Ô8Ð8Ð8Øð 5Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å Ô,¨d¨VÑ4Ô4Ð4Ð4øøøð!5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s-   Ä-IÄ/A:G?Æ)A	IÇ?AI
É
IÉIÉIc                óh   — t          | ¦  «        }|�t          |d¦  «        sdS  |j        |fd| i|¤ŽS )Nr.  Fr›   )rŸ   rt   r.  )r›   r0  r=  r   s       r%   Údownload_for_valuerB  ¤  sJ   € Ý%Ð&9Ñ:Ô:€GØ€�g g¨zÑ:Ô:€ØˆuØˆ7Ô˜MÐ]Ð]Ð?RÐ]ÐV\Ð]Ð]Ð]r$   c                ó  — g }t          | ¦  «        D ]y}t          |d¦  «        r*|                     |                     | ¬¦  «        ¦  «         Œ<t          |d¦  «        r-|                     | ¬¦  «        }|�|                     |¦  «         Œz|S )NÚquery_download_defsr†   Úquery_download_def)r‡   rt   ÚextendrD  rE  rL   )r�   Údefsr   Údownload_defs       r%   rD  rD  «  sž   € Ø€DÝ1°,Ñ?Ô?ð *ð *ˆÝ�7Ð1Ñ2Ô2ð 	*Ø�KŠK˜×3Ò3ÀÐ3ÑNÔNÑOÔOÐOÐOÝ�WÐ2Ñ3Ô3ð 	*Ø"×5Ò5À<Ð5ÑPÔPˆLØÐ'Ø—’˜LÑ)Ô)Ð)øØ€Kr$   c                ó^   — |                       ¦   «         }t          || j        j        ¦  «        S rK   )rv   rm   Ú	__class__r   )r   rY   s     r%   Úconfig_key_for_handlerrK  ·  s)   € Ø×6Ò6Ñ8Ô8€KÝ'¨°WÔ5FÔ5OÑPÔPÐPr$   r}   c                ó¶   — |                       t          i ¦  «        }t          |t          ¦  «        si }|| t          <   n|                      t          |¦  «         |S rK   )rb   ÚTEMPORAL_UPSAMPLER_CONFIG_KEYr•   ru   ræ   )r}   Úconfigss     r%   Ú_nested_configsrO  ¼  sZ   € Ø×ÒÕ =¸rÑBÔB€GÝ�g�tÑ$Ô$ð IØˆØ7>ˆÕ3Ñ4Ð4à× Ò Õ!>ÀÑHÔHÐHØ€Nr$   c                óh   — t          | d¦  «        r!t          |                      ¦   «         ¦  «        ni S )Nrr   )rt   ru   rr   rM   s    r%   Ú_default_configrQ  Æ  s2   € Ý-4°WÐ>NÑ-OÔ-OÐW�4�×&Ò&Ñ(Ô(Ñ)Ô)Ð)ÐUWÐWr$   ry   c                ó„   — t          | d¦  «        r"t          |                      |¦  «        ¦  «        nt          |¦  «        S )NÚnormalize_config_section)rt   ru   rS  )r   ry   s     r%   Ú_normalize_config_sectionrT  Ê  s=   € Ý=DÀWÐNhÑ=iÔ=iÐ{�4�×0Ò0°Ñ8Ô8Ñ9Ô9Ð9ÕosÐtzÑo{Ôo{Ð{r$   c                ó   — |                       t          i ¦  «        }t          |t          ¦  «        r#|                      t	          |¦  «        i ¦  «        ni }i t          |¦  «        ¥t          |t          ¦  «        r|ni ¥}t          ||¦  «        S rK   )rb   rM  r•   ru   rK  rQ  rT  )r}   r   rN  ÚnestedÚvaluess        r%   Úread_config_sectionrX  Î  s…   € Ø×ÒÕ =¸rÑBÔB€GÝAKÈGÕUYÑAZÔAZÐbˆW�[Š[Õ/°Ñ8Ô8¸"Ñ=Ô=Ð=Ð`b€FØY• Ñ(Ô(ÐYµzÀ&Í$Ñ7OÔ7OÐ-W¨V¨VÐUWÐY€FÝ$ W¨fÑ5Ô5Ð5r$   c                ó¤   — t          |i t          |¦  «        ¥t          |pi ¦  «        ¥¦  «        }|t          | ¦  «        t	          |¦  «        <   |S rK   )rT  rQ  ru   rO  rK  )r}   r   ry   s      r%   Úwrite_config_sectionrZ  Õ  sS   € Ý& wÐ0bµ?À7Ñ3KÔ3KÐ0bÍtÐTZÐT`Ð^`ÑOaÔOaÐ0bÑcÔc€FØFL…O�MÑ"Ô"Õ#9¸'Ñ#BÔ#BÑCØ€Mr$   c           	     ó  — t          |                      t          d ¦  «        ¦  «        }t          D ]0}t	          |¦  «        rt          | |t          | |¦  «        ¦  «         Œ1|t          |                      t          d ¦  «        ¦  «        k    S rK   )Úreprrb   rM  r   rQ  rZ  rX  )r}   Úbeforer   s      r%   Ú!migrate_temporal_upsampler_configr^  Û  s…   € Ý�-×#Ò#Õ$AÀ4ÑHÔHÑIÔI€FÝ/ð fð fˆÝ˜7Ñ#Ô#ð 	fÝ  °Õ9LÈ]Ð\cÑ9dÔ9dÑeÔeÐeøØ•T˜-×+Ò+Õ,IÈ4ÑPÔPÑQÔQÒQÐQr$   ©Úlock_configr`  ú$list[TemporalUpsamplerConfigBinding]c               ó8  — g }d„ t           D ¦   «         }|s|S |                      ¦   «         5  |D ]Ò}t          ||t          ||¦  «        ¦  «        }|                      |                     ¦   «         d         ¦  «        5 }|                     | ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        |_        |r>| 	                    t          |t          |¦  «        t          |¦  «        ¦  «        ¦  «         ŒÓ	 d d d ¦  «         n# 1 swxY w Y   |S )Nc                ó2   — g | ]}t          |d ¦  «        ¯|‘ŒS )Úcreate_config_ui)rt   r�   s     r%   r`   z$create_config_ui.<locals>.<listcomp>å  s(   € ÐlÐlÐl˜GÅwÈwÐXjÑGkÔGkÐl�ÐlÐlÐlr$   rà   r_  )r   ÚTabsrZ  rX  ÚTabrv   rd  r‚   r  rL   r   rK  Úlist)	r  r}   r`  ÚbindingsÚhandlersr   ry   Útabr   s	            r%   rd  rd  ã  sÁ  € Ø€HØlÐlÕ'CÐlÑlÔl€HØð ØˆØ	�Š‰Œð zð zØð 	zð 	zˆGÝ)¨-¸ÕBUÐVcÐelÑBmÔBmÑnÔnˆFØ—’˜×<Ò<Ñ>Ô>¸vÔFÑGÔGð YÈ3Ø"×3Ò3°B¸ÈKÐ3ÑXÔX�ðYð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð Yå˜x™.œ.ˆCŒKØð zØ—’Õ >¸wÕH^Ð_fÑHgÔHgÕimÐnvÑiwÔiwÑ xÔ xÑyÔyÐyøð	zðzð zð zñ zô zð zð zð zð zð zð zøøøð zð zð zð zð €Os7   ¬ADÁ=B"ÂDÂ"B&Â&DÂ)B&Â*ADÄDÄDrh  c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r#   )r   )r_   Úbindingr£   Ú	components       r%   r`   z%config_components.<locals>.<listcomp>ô  s,   € ÐSÐSÐS˜'À'ÔBRÐSÐS±,°!°YˆIÐSÐSÐSÐSr$   r#   )rh  s    r%   Úconfig_componentsro  ó  s   € ØSÐS XÐSÑSÔSÐSr$   c                óf  — t          |pg ¦  «        }i d}}| D ]v}i }|j        D ]7\  }}|t          |¦  «        k    rt          d¦  «        ‚||         ||<   |dz  }Œ8t	          |j        i t          |j        ¦  «        ¥|¥¦  «        ||j        <   Œw|t          |¦  «        k    rt          d¦  «        ‚|S )Nr   zDTemporal upsampler config UI values do not match registered controlsr	   )rg  r   r>   r?   rT  r   rQ  r   )rh  rW  ÚupdatesÚindexrm  ry   Úfieldr£   s           r%   Úcollect_config_updatert  ÷  sà   € Ý�&�,˜BÑÔ€FØ˜ˆU€GØð Að AˆØˆØÔ(ð 	ð 	‰HˆE�1Ø�˜F™œÒ#Ð#Ý Ð!gÑhÔhÐhØ" 5œMˆF�5‰MØ�Q‰JˆEˆEÝ&?ÀÄÐQÕTcÐdkÔdsÑTtÔTtÐQÐx~ÐQñ  'Aô  'Aˆ�Ô"Ñ#Ð#Ø•�F‘”ÒÐÝÐ_Ñ`Ô`Ð`Ø€Nr$   rq  ú	list[str]c                ó<  — g }| D ]–}|j         |v r‹t          |j        d¦  «        rv|j                             ||j                  ¦  «        }t	          |t
          ¦  «        r|r|                     |¦  «         Œrt	          |t          ¦  «        r|d„ |D ¦   «         z  }Œ—|S )NÚvalidate_config_sectionc                ó   — g | ]}|¯|‘ŒS r#   r#   )r_   rA   s     r%   r`   z3validate_config_update_messages.<locals>.<listcomp>  s   € Ð>Ð>Ð> d¸Ð>˜TÐ>Ð>Ð>r$   )r   rt   r   rw  r•   r   rL   rg  )rh  rq  Úmessagesrm  Úmessages        r%   Úvalidate_config_update_messagesr{    s²   € Ø€HØð ?ð ?ˆØÔ Ð(Ð(­W°W´_ÐF_Ñ-`Ô-`Ð(Ø”o×=Ò=¸gÀgÔFXÔ>YÑZÔZˆGÝ˜'¥3Ñ'Ô'ð ?¨Gð ?Ø—’ Ñ(Ô(Ð(Ð(Ý˜G¥TÑ*Ô*ð ?ØÐ>Ð>¨gÐ>Ñ>Ô>Ñ>�øØ€Or$   c                ód   — |D ],}|j         |v r!t          | |j        ||j                  ¦  «         Œ-d S rK   )r   rZ  r   )r}   rh  rq  rm  s       r%   Úapply_config_updater}    sJ   € Øð ^ð ^ˆØÔ Ð(Ð(Ý  °´ÀÈÔI[ÔA\Ñ]Ô]Ð]øð^ð ^r$   Ú
old_configÚ
new_configc                óz  — t          |¦  «        }t          j        | ¦  «        t          j        |¦  «        k    }t          D ]y}t	          |d¦  «        sŒt          | |¦  «        }t          ||¦  «        }t	          |d¦  «        r|                     |||¦  «        }n||k    }|s|r|                     ¦   «          Œzd S )NÚrelease_vramÚconfig_requires_release)Úsetr3  Úconfig_valuesr   rt   rX  r‚  r�  )r~  r  Úchanged_keysÚmemory_changedr   Úold_sectionÚnew_sectionÚshould_releases           r%   Ú*release_changed_config_temporal_upsamplersrŠ    sÖ   € Ý�|Ñ$Ô$€LÝ%Ô3°JÑ?Ô?ÕCSÔCaÐblÑCmÔCmÒm€NÝ/ð 
#ð 
#ˆÝ�w Ñ/Ô/ð 	ØÝ)¨*°gÑ>Ô>ˆÝ)¨*°gÑ>Ô>ˆÝ�7Ð5Ñ6Ô6ð 	8Ø$×<Ò<¸[È+ÐWcÑdÔdˆNˆNà(¨KÒ7ˆNØð 	#˜^ð 	#Ø× Ò Ñ"Ô"Ð"øð
#ð 
#r$   c                  ó,   — e Zd ZdZd„ Zd„ Zd„ Zd	d„ZdS )
ÚSimpleScaleSuffixMixinz[Value helpers writing '<method>*<multiplier>' while accepting the legacy concatenated form.c                óX   — d„ t          |                      ¦   «         ¦  «        D ¦   «         S )Nc                ó   — g | ]\  }}|‘ŒS r#   r#   r¢   s      r%   r`   z7SimpleScaleSuffixMixin._method_keys.<locals>.<listcomp>-  s   € ÐWÐWÐW™˜˜3�ÐWÐWÐWr$   )rd   rv   )Úselfs    r%   Ú_method_keysz#SimpleScaleSuffixMixin._method_keys,  s*   € ØWÐW¥/°$×2SÒ2SÑ2UÔ2UÑ"VÔ"VÐWÑWÔWÐWr$   c                ó(  — t          |pd¦  «                             ¦   «                              ¦   «         }t          |                      ¦   «         t
          d¬¦  «        D ]2}|                     |¦  «        rt          ||d¦  «        }|€d n||fc S Œ3d S )Nr5   T)r¤   Úreverser»   )r   r6   r7   rÙ   r�  r>   r=   rC   )r�  r@   rA   r2   r&   s        r%   r¶   z"SimpleScaleSuffixMixin.split_value/  s¢   € Ý�5�;˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ˆÝ˜T×.Ò.Ñ0Ô0µcÀ4ÐHÑHÔHð 	Bð 	BˆFØ�Š˜vÑ&Ô&ð BÝ/°°f¸cÑBÔB�Ø$˜}�t�t°6¸5°/ÐAÐAÐAðBð ˆtr$   c                ó¦  — t          |pd¦  «                             ¦   «                              ¦   «         }||                      ¦   «         vrd S |                      ¦   «                              di ¦  «                             |d¦  «        }t          |pd¦  «        }||vr$t          |                      ¦   «         |¦  «        pd}t          ||¦  «        S )Nr5   r­   r#   r   )	r   r6   r7   r�  rv   rb   r'   r¹   r9   )r�  r2   r&   r­   s       r%   rÄ   z"SimpleScaleSuffixMixin.build_value7  sÈ   € Ý�V�\˜rÑ"Ô"×(Ò(Ñ*Ô*×0Ò0Ñ2Ô2ˆØ˜×*Ò*Ñ,Ô,Ð,Ð,Ø�4Ø×7Ò7Ñ9Ô9×=Ò=¸mÈRÑPÔP×TÒTÐU[Ð]_Ñ`Ô`ˆÝ�e�j˜qÑ!Ô!ˆØ˜Ð#Ð#Ý0°×1RÒ1RÑ1TÔ1TÐV\Ñ]Ô]ÐbÐabˆEÝ& v¨uÑ5Ô5Ð5r$   r(   r‚   c                ó0   — |                       |¦  «        d uS rK   )r¶   )r�  r@   s     r%   rš   z$SimpleScaleSuffixMixin.is_upsamplingA  s   € Ø×Ò Ñ&Ô&¨dÐ2Ð2r$   N©r(   r‚   )r   r    r!   Ú__doc__r�  r¶   rÄ   rš   r#   r$   r%   rŒ  rŒ  )  s^   € € € € € ØeÐeðXð Xð Xðð ð ð6ð 6ð 6ð3ð 3ð 3ð 3ð 3ð 3r$   rŒ  )r&   r'   r(   r   )r2   r   r&   r'   r(   r   )r2   r   r:   r'   r(   r;   )rD   r   r&   r'   r(   r   )r(   rI   )rO   r   )rY   rZ   r(   r[   )rY   rZ   r(   re   )rY   rZ   rj   r   r(   r   rK   )rn   ro   r(   rp   )rn   ro   r(   rI   )F)r�   r‚   r(   r   r•  )r�   r‚   r(   rŠ   )rY   rZ   r(   r'   )rY   rZ   r2   r   r(   r'   )r(   r—   )r(   r   )r(   r«   )r(   r°   )rY   rZ   r2   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(   rZ   )r  r‚   rþ   r‚   r  r‚   r(   rZ   )r#  r‚   r(   r   )T)r}   rZ   r(   rZ   )r(   rZ   )ry   rZ   r(   rZ   )r}   rZ   ry   rZ   r(   rZ   )r}   rZ   r(   r‚   )r}   rZ   r`  r‚   r(   ra  )rh  ra  r(   r   )rh  ra  r(   rp   )rh  ra  rq  rp   r(   ru  )r}   rZ   rh  ra  rq  rp   r(   rI   )r~  rZ   r  rZ   r(   rI   )\r–  Ú
__future__r   Údataclassesr   Ú	functoolsr   r÷   rT   Útypingr   Úshared.attentionr   Úshared.utilsr   r5   r
   r3  Úprocessor_statusr   r   r   r   r   r   r   Úmodel_contextr   rM  r8   rs   r   r"   r   rƒ  r   r   r.   r1   r9   rC   rH   rN   rX   rd   ri   rm   rz   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'  r7  rB  rD  rK  rO  rQ  rT  rX  rZ  r^  rd  ro  rt  r{  r}  rŠ  rŒ  r#   r$   r%   ú<module>rŸ     s`  ððð ð ð4 #Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (ð Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  Jð  JØ 2Ð 2Ð 2Ð 2Ð 2Ð 2ð !6Ð ØÐ ð CØDðÐ ð +-Ð Ð ,Ð ,Ð ,Ñ ,Ø;?Ð !Ð ?Ð ?Ð ?Ñ ?Ø9<¸¹¼Ð ,Ð >Ð >Ð >Ñ >ð ð$ð $ð $ð $ð $ñ $ô $ñ „ð$ðCð Cð Cð Cð
*ð *ð *ð *ðbð bð bð bðð ð ð ð$]ð ]ð ]ð ]ð5ð 5ð 5ð 5ð
Eð Eð Eð Eð
Qð Qð Qð QðMð Mð Mð Mð!ð !ð !ð !ðð ð ð ð ð	?ð 	?ð 	?ð 	?ð 	?ðqð qð qð qð qð@ð @ð @ð @ðpð pð pð pð pðð ð ð ð%ð %ð %ð %ð{ð {ð {ð {ðð ð ð ðð ð ð ðeð eð eð eð]ð ]ð ]ð ]ð
ð 
ð 
ð 
ðrð rð rð rðTð Tð Tð TðCð Cð Cð Cð
Kð Kð Kð Kð
	ð 	ð 	ð 	ðFð Fð Fð Fð[ð [ð [ð [ð[ð [ð [ð [ð
KÈrÐjoð Kð Kð Kð Kð Kð Kð :>ð !ð !ð !ð !ð !ð !ð. 7;ð _ð _ð _ð _ð _ð _ð]ð ]ð ]ð ]ð
 HMð Jð Jð Jð Jð Jð Jð OSÐpuð  EIð  _dð  quð Hð Hð Hð Hð Hð Hð4 RWð Zð Zð Zð Zð Zð Zð aeÐ{ð 5ð 5ð 5ð 5ð 5ðD^ð ^ð ^ð	ð 	ð 	ð 	ð 	ðQð Qð Qð Qð
ð ð ð ðXð Xð Xð Xð|ð |ð |ð |ð6ð 6ð 6ð 6ðð ð ð ðRð Rð Rð Rð PUð ð ð ð ð ð ð Tð Tð Tð Tðð ð ð ð 	ð 	ð 	ð 	ð^ð ^ð ^ð ^ð#ð #ð #ð #ð 3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3r$   