§
    nF§j}é  ã                  óˆ  — U d Z ddlmZ ddlmZ ddlZddlZddlZddl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 ej                             dej        e         ¦  «         dZdZdZdZeefZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(de'fde(fgZ)dZ*dZ+g d¢Z,g Z-de.d<    e/¦   «         Z0d e.d!<   da1d"e.d#<   da2d$e.d%<   e G d&„ d'¦  «        ¦   «         Z3dÖd,„Z4dÖd-„Z5d×d/„Z6dØd2„Z7dÙd4„Z8dÚd5„Z9dÛd7„Z:dÜd9„Z;dÝd=„Z<dÞdßd@„Z=dÞdàdA„Z>dádâdG„Z?dãdH„Z@dädI„ZAdÛdJ„ZBdÛdK„ZCdádådM„ZDdædO„ZEdçdQ„ZFdèdS„ZGdädT„ZHdädU„ZIdédädW„ZJddXœdêdZ„ZKdëd\„ZLdìd]„ZMdíd^„ZNdîd_„ZOdïd`„ZPdðda„ZQdñdb„ZRdñdc„ZSdädd„ZTdñde„ZUdãdf„ZVdddgœdh„ZWdòdk„ZXdódl„ZYdôdm„ZZdõdo„Z[dödp„Z\d÷dq„Z]dødr„Z^ds„ Z_dãdt„Z`du„ ZadÛdv„Zbdñdw„Zcdùdy„Zddúd{„Zedûd}„Zfdüd~„Zgdýd„Zhdýd€„Zidþd‚„Zjd÷dƒ„Zkdäd„„Zldäd…„Zmdÿd‡„Zn�d d‰„Zo�dd�„Zp�d�dd�„ZqdBdBdddd‘œ�dd–„Zrdd—œ�dd˜„Zs�dd™„Zt�dd›„Zu�ddœ„ZvdÞ�d	d�„Zwddžœ�d
d „Zxddžœ�dd¡„Zy�d
d¢„ZzdBdBdddddBdddd£œ
�dd¦„Z{�d�ddª„Z|däd«„Z}däd¬„Z~�dd®„Z�dd¯„Z€dÞ�dd°„Z�dÞ�dd±„Z‚�dd²„Zƒdìd³„Z„�dd´„Z…�dd¶„Z†�dd¸„Z‡dBd¹œ�dd»„Zˆ�dd½„Z‰�dd¾„ZŠdBdBd¿œ�ddÁ„Z‹dÞ�ddÂ„ZŒdBdÃœ�ddÆ„Z��ddÈ„ZŽ�ddÊ„Z��ddÍ„Z��ddÎ„Z‘�d dÑ„Z’ G dÒ„ dÓ¦  «        Z“ G dÔ„ dÕe“¦  «        Z”dS (!  aí  Spatial upsampler plugin API.

Every spatial upsampler (built-in or extension) class is listed in
``spatial_upsampler_handlers`` and declares its capabilities through
``query_upsampler_def()``:

```python
{
    "name": "FlashVSR",                      # display name
    "upsampler_types": ("postprocessing",),  # "postprocessing" and/or "vae"
    "media": ("video", "image"),             # media kinds the upsampler can process
    "profile": "video",                      # memory profile kind: video, image, or audio
    "config_key": "flashvsr",                # optional subkey under wgp_config["spatial_upsamplers"]
    "pos": 20,                               # default dropdown order for this handler's methods
    "method_pos": {"flashvsr": 20},          # optional per-method order; independent of multiplier
    "methods": [("FlashVSR", "flashvsr")],   # interchangeable post-processing methods (label, method key)
    "vae_methods": [],                       # VAE methods (label, method key); model-pipeline integration
    "multipliers": {"flashvsr": (2.0, 4.0)}, # optional; omit when a refiner has no scale
    "default_spatial_upsampling": "flashvsr*2",
    "postprocessing_category": "upsampler",   # "upsampler" or "refiner"
    "source_audio_conditioning": False,        # request a decoded source-audio input without changing final remux audio
    "description": "Restore detail while spatially upscaling media.", # processor-owned help/discovery description
    "method_descriptions": {"flashvsr": "..."}, # optional descriptions per method
    "method_parameters": {"flashvsr": [{      # optional runtime/UI/assistant descriptors
        "name": "spatial_upsampler_strength", # shared prefix required for UI controls
        "setting": "strength",                # upscale() keyword; defaults to name
        "type": "number",
        "component": "slider",
        "ui": ("postprocessing", "late_postprocessing"),
        "required": False,
        "default": 0.5,
        "minimum": 0.0,
        "maximum": 1.0,
        "description": "Restoration strength.",
    }]},
}
```

Decoded-media handlers declare category ``upsampler`` or ``refiner``. Methods
without declared multipliers serialize as their bare method key and do not show
a Scale dropdown. Handler descriptions power both the selector's dynamic help
and postprocessing discovery. UI parameters may use textbox, number, slider,
dropdown, checkbox, or images components; images are rendered by the shared
``AdvancedMediaGallery`` and support ``multiple=True``. Assistant discovery
keeps only call-relevant parameter fields and omits UI/runtime presentation
metadata.

Handlers must also implement:
- ``is_upsampling(value)``: does this handler own this ``spatial_upsampling`` value?
- ``split_value(value)`` -> ``(method, scale)`` or ``None``
- ``build_value(method, scale)`` -> ``spatial_upsampling`` value or ``None``
- ``validate_upsampling(value, image_mode)`` -> error text ("" when valid)

``wgp.py`` calls ``register_spatial_upsamplers(...)`` once and then accesses
handlers through this API instead of keeping per-upsampler globals.

Post-processing ("postprocessing" type) handlers are interchangeable and must
additionally implement ``upscale(sample, value, **kwargs)`` and may implement
``load_upsampler(value, **kwargs)``, ``download(...)``, ``enabled()`` and
``release_vram()``. They are automatically offered for late post-processing of
existing media. VAE ("vae") handlers are plugged into model pipelines through
the generic VAE upsampler hooks below; model defs declare support.

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 also expose Config-tab controls with ``create_config_ui(...)`` and
normalize their own nested section under ``wgp_config["spatial_upsamplers"]``.
Model persistence is shared by all handlers through
``wgp_config["spatial_upsamplers"]["persistence"]``. At most one spatial
upsampler handler is retained: dispatching another handler releases the previous
one before loading the new selection. Handlers still own incompatible variant
switches within one handler (for example PiD version/backbone changes).

Upsamplers that allocate their own mmgp offload object must register it in
``shared.utils.offload_registry`` so its resources can be tracked and released
centrally (WanGP unload tool).
é    )Úannotations)Ú	dataclassN)ÚAny)Úattention_shared_state)Úoffload_registryé   )Úcompatible_loaded_model)ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDÚPROCESSOR_STATUS_UNKNOWNÚhandler_reason_disabledÚhandler_statuszpostprocessing.upsamplersÚpostprocessingÚvaeÚ	upsamplerÚrefinerÚspatial_upsampler_Úlate_postprocessingÚ
media_flowÚvideoÚimageÚaudioÚspatial_upsamplersÚpersistenceé   zUnload after usezPersistent in RAMÚ__shared_persistence__Ú*)	z2postprocessing.lanczos.wgp_bridge.LanczosUpsamplerz<postprocessing.dlss5.spatial_upsampler.DLSS5SpatialUpsamplerz1postprocessing.flashvsr.wgp_bridge.FlashVSRBridgez/postprocessing.seedvr2.wgp_bridge.SeedVR2Bridgez'postprocessing.pid.wgp_bridge.PiDBridgez=postprocessing.h3_face_refiner.wgp_bridge.H3FaceRefinerBridgez9postprocessing.chain_of_zoom.wgp_bridge.ChainOfZoomBridgez@postprocessing.ltx2_upsampler.wgp_bridge.LTXVideoUpsamplerBridgez1postprocessing.spatial_upsamplers.WanVaeUpsamplerú	list[Any]Ú_upsampler_handlerszset[str]Ú#_registered_upsampler_handler_pathsú
Any | NoneÚ_active_upsampler_handlerúdict[str, Any] | NoneÚ_upsampler_server_configc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚUpsamplerConfigBindingr!   ÚhandlerÚstrÚ
config_keyzlist[tuple[str, Any]]ÚcontrolsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú:C:\Users\johnn\Wan2GP\postprocessing\spatial_upsamplers.pyr&   r&   ‡   s3   € € € € € € àÐÐÑØ€O€O�OØ#Ð#Ð#Ñ#Ð#Ð#r0   r&   ÚscaleÚfloatÚreturnr(   c                óˆ   — t          | ¦  «        } |                      ¦   «         rt          t          | ¦  «        ¦  «        n| d›S )NÚg)r3   Ú
is_integerr(   Úint©r2   s    r1   Úformat_multiplierr:   Ž   s8   € Ý�%‰LŒL€EØ#×.Ò.Ñ0Ô0ÐB�3�s�5‰zŒz‰?Œ?ˆ?¸°l°lÐBr0   c                ó&   — dt          | ¦  «        › �S )NÚx)r:   r9   s    r1   Úformat_multiplier_labelr=   “   s   € Ø)Õ  Ñ'Ô'Ð)Ð)Ð)r0   Úmethodc                óœ   — t          | pd¦  «                             ¦   «                              ¦   «         › t          › t	          |¦  «        › �S ©NÚ )r(   ÚstripÚlowerÚMULTIPLIER_SEPARATORr:   )r>   r2   s     r1   Úformat_multiplier_valuerE   —   sG   € Ý�&�,˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ÐaÕ1EÐaÕGXÐY^ÑG_ÔG_ÐaÐaÐar0   Ú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r@   )r(   rB   rC   Ú
startswithÚlenrD   r3   Ú
ValueError)Úvaluer>   rF   ÚtextÚsuffixs        r1   Úparse_multiplier_suffixrO   ›   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                óJ   — t          | pd¦  «                             d¦  «        S )NrA   z
 Upsampler)r(   Úremovesuffix)rP   s    r1   Úformat_method_labelrS   ­   s"   € Ýˆuˆ{˜ÑÔ×(Ò(¨Ñ6Ô6Ð6r0   c                óD   — t          | ¦  «        › dt          |¦  «        › �S )NÚ )rS   r=   )rP   r2   s     r1   Úformat_method_scale_labelrV   ±   s'   € Ý! %Ñ(Ô(ÐKÐKÕ+BÀ5Ñ+IÔ+IÐKÐKÐKr0   ÚNonec                óP   — | t           vrt                                | ¦  «         d S d S ©N)r   Úappend©r'   s    r1   Úregister_upsamplerr\   µ   s0   € ØÕ)Ð)Ð)Ý×"Ò" 7Ñ+Ô+Ð+Ð+Ð+ð *Ð)r0   Úpathc                óx   — |                       dd¦  «        \  }}t          t          j        |¦  «        |¦  «        S )Nú.r   )ÚrsplitÚgetattrÚ	importlibÚimport_module)r]   Úmodule_pathÚ
class_names      r1   Ú_load_upsampler_classrf   º   s5   € Ø"Ÿkšk¨#¨qÑ1Ô1Ñ€K�Ý•9Ô*¨;Ñ7Ô7¸ÑDÔDÐDr0   Úhandler_defúdict[str, Any]Úfallback_namec                óÞ   — t          |                      dd¦  «        pd¦  «                             ¦   «         }|r|S t          | ¦  «        }|r|d         d         S |                     ¦   «         S ©Nr)   rA   r   r   )r(   ÚgetrB   Ú_method_choicesrC   )rg   ri   r)   Úmethod_choicess       r1   Ú_config_key_from_handler_defro   ¿   ss   € Ý�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#Ø×ÒÑ Ô Ð r0   Úhandler_modulesúlist[str] | Nonec                ó–  — t           t          i}| €t          n| D ]®}t          t	          |pd¦  «                             ¦   «         ¦  «        }t          |d¦  «        sŒCt          |                     ¦   «         ¦  «        }| 	                    t           d ¦  «         |sŒ‚| 
                    ¦   «         }||t          ||j        ¦  «        <   Œ¯|S )NrA   Údefault_config)ÚPERSISTENCE_CONFIG_KEYÚPERSIST_UNLOADÚspatial_upsampler_handlersrf   r(   rB   ÚhasattrÚdictrs   ÚpopÚquery_upsampler_defro   r+   )rp   Úsectionsr]   Úhandler_clsÚconfigrg   s         r1   Údefault_config_sectionsr~   É   sË   € Ý&­Ð7€HØ.=Ð.EÕ*Ð*È?ð 	[ð 	[ˆÝ+­C°°
¸©O¬O×,AÒ,AÑ,CÔ,CÑDÔDˆÝ�{Ð$4Ñ5Ô5ð 	ØÝ�k×0Ò0Ñ2Ô2Ñ3Ô3ˆØ�
Š
Õ)¨4Ñ0Ô0Ð0Øð 	ØØ!×5Ò5Ñ7Ô7ˆØTZˆÕ-¨k¸;Ô;OÑPÔPÑQÐQØ€Or0   c                ó  — | a |€t          n|}|D ]q}t          |pd¦  «                             ¦   «         }|r	|t          v rŒ1t           t          |¦  «        | |¦  «        ¦  «         t                               |¦  «         Œrd S r@   )r$   rv   r(   rB   r    r\   rf   Úadd)Úserver_configÚfiles_locatorrp   Úmodulesr]   s        r1   Úregister_spatial_upsamplersr„   Ø   sŸ   € ð  -ÐØ,;Ð,CÕ(Ð(È€GØð 6ð 6ˆÝ�4�:˜2‰Œ×$Ò$Ñ&Ô&ˆØð 	�tÕBÐBÐBØÝÐ6Õ0°Ñ6Ô6°}ÀmÑTÔTÑUÔUÐUÝ+×/Ò/°Ñ5Ô5Ð5Ð5ð6ð 6r0   FÚupsampler_typeú
str | NoneÚenabled_onlyÚboolc                óÆ   — g }t           D ]V}| �+| |                     ¦   «                              dd¦  «        vrŒ/|rt          |¦  «        sŒA|                     |¦  «         ŒW|S )NÚupsampler_typesr/   )r   rz   rl   Úhandler_enabledrZ   )r…   r‡   Úhandlersr'   s       r1   Úupsampler_handlersr�   å   s{   € Ø€HÝ&ð !ð !ˆØÐ%¨.À×@[Ò@[Ñ@]Ô@]×@aÒ@aÐbsÐuwÑ@xÔ@xÐ*xÐ*xØØð 	¥°Ñ 8Ô 8ð 	ØØ�Š˜Ñ Ô Ð Ð Ø€Or0   c                óL   — t          | d¦  «         p|                      ¦   «         S )NÚenabled)rw   r�   r[   s    r1   r‹   r‹   ð   s$   € Ý�w 	Ñ*Ô*Ð*Ð?¨g¯oªoÑ.?Ô.?Ð?r0   c                óP   — t          |                      ¦   «         d         ¦  «        S )NÚname)r(   rz   r[   s    r1   Ú_handler_namer’   ô   s!   € Ýˆw×*Ò*Ñ,Ô,¨VÔ4Ñ5Ô5Ð5r0   c                ó°   — t          j        t          | ¦  «        g¦  «        }|s$t          | d¦  «        r|                      ¦   «          t
          | u rd ad S d S )NÚrelease_vram)r   Úrelease_allr’   rw   r”   r"   )r'   Úreleaseds     r1   Ú_release_upsampler_handlerr—   ø   si   € õ  Ô+­]¸7Ñ-CÔ-CÐ,DÑEÔE€HØð � ¨Ñ8Ô8ð Ø×ÒÑÔÐÝ  GÐ+Ð+Ø$(Ð!Ð!Ð!ð ,Ð+r0   c                óV   — t           | u rd S t           �t          t           ¦  «         | a d S rY   )r"   r—   r[   s    r1   Ú_activate_upsamplerr™     s5   € õ ! GÐ+Ð+ØˆÝ Ð,Ý"Õ#<Ñ=Ô=Ð=Ø 'ÐÐÐr0   úlist[dict[str, Any]]c                ó6   — d„ t          | |¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r/   )rz   )Ú.0r'   s     r1   ú
<listcomp>z(query_upsampler_defs.<locals>.<listcomp>  s$   € ÐjÐjÐj¨gˆG×'Ò'Ñ)Ô)ÐjÐjÐjr0   )r�   )r…   r‡   s     r1   Úquery_upsampler_defsrŸ     s"   € ØjÐjÕ9KÈNÐ\hÑ9iÔ9iÐjÑjÔjÐjr0   úlist[tuple[str, str]]c                ó\   — |                       dg ¦  «        |                       dg ¦  «        z   S )NÚmethodsÚvae_methods©rl   ©rg   s    r1   rm   rm     s)   € Ø�?Š?˜9 bÑ)Ô)¨K¯OªO¸MÈ2Ñ,NÔ,NÑNÐNr0   údict[str, str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó   — i | ]\  }}||“Œ	S r/   r/   )r�   rP   Úkeys      r1   ú
<dictcomp>z"_method_labels.<locals>.<dictcomp>  s   € ÐFÐFÐF™:˜5 #ˆC�ÐFÐFÐFr0   )rm   r¥   s    r1   Ú_method_labelsr«     s   € ØFÐF­¸Ñ)EÔ)EÐFÑFÔFÐFr0   ú&tuple[Any | None, dict[str, Any], str]c                óà   — t          | ¦  «        }|€&d i t          | pd¦  «                             ¦   «         fS ||                     ¦   «         t          | pd¦  «                             ¦   «         fS r@   )Úfind_upsampler_by_methodr(   rB   rz   ©r>   r'   s     r1   Úmethod_definitionr°     sj   € Ý& vÑ.Ô.€GØ€Ø�R�˜V˜\ rÑ*Ô*×0Ò0Ñ2Ô2Ð2Ð2Ø�G×/Ò/Ñ1Ô1µ3°v°|ÀÑ3DÔ3D×3JÒ3JÑ3LÔ3LÐLÐLr0   c                óV  — t          | ¦  «        \  }}} |€dS |                     di ¦  «        }t          |t          ¦  «        r1| |v r-t	          ||          pd¦  «                             ¦   «         }|r|S t	          |                     dd¦  «        pd¦  «                             ¦   «         S )NrA   Úmethod_descriptionsÚdescription)r°   rl   Ú
isinstancerx   r(   rB   )r>   r'   rg   Údescriptionsr³   s        r1   Úmethod_descriptionr¶     s®   € Ý#4°VÑ#<Ô#<Ñ €Gˆ[˜&Ø€ØˆrØ—?’?Ð#8¸"Ñ=Ô=€LÝ�,¥Ñ%Ô%ð ¨&°LÐ*@Ð*@Ý˜, vÔ.Ð4°"Ñ5Ô5×;Ò;Ñ=Ô=ˆØð 	ØÐÝˆ{�Š˜}¨bÑ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@Ð@r0   c                óè   — t          | ¦  «        \  }}}t          |                     dt          ¦  «        pd¦  «                             ¦   «                              ¦   «         }|t          v r|nt          S )NÚpostprocessing_categoryrA   )r°   r(   rl   Ú!POSTPROCESSING_CATEGORY_UPSAMPLERrB   rC   ÚPOSTPROCESSING_CATEGORIES)r>   Ú_handlerrg   Ú_methodÚcategorys        r1   Úmethod_categoryr¾   +  sg   € Ý%6°vÑ%>Ô%>Ñ"€Hˆk˜7Ý�;—?’?Ð#<Õ>_Ñ`Ô`ÐfÐdfÑgÔg×mÒmÑoÔo×uÒuÑwÔw€HØÕ#<Ð<Ð<ˆ8ˆ8ÕBcÐcr0   úUpsampling - Startingc                ór   — t          | ¦  «        \  }}}t          |                     d|¦  «        p|¦  «        S )NÚprogress_label)r°   r(   rl   )r>   Údefaultr»   rg   r¼   s        r1   Úmethod_progress_labelrÃ   1  s8   € Ý%6°vÑ%>Ô%>Ñ"€Hˆk˜7Ýˆ{�ŠÐ/°Ñ9Ô9ÐD¸WÑEÔEÐEr0   ©Ú
ui_contextrÅ   c               ób  — t          | ¦  «        \  }}} |                     di ¦  «        }t          |t          ¦  «        r|                     | d¦  «        nd}t          |t          t
          f¦  «        sg S g }|D ]µ}t          |t          ¦  «        r7t          |                     dd¦  «        pd¦  «                             ¦   «         sŒO|                     dd¦  «        }t          |t          ¦  «        r|fnt          |¦  «        }|�||vrŒ“|                     t          |¦  «        ¦  «         Œ¶|S )NÚmethod_parametersr/   r‘   rA   Úui)	r°   rl   r´   rx   ÚlistÚtupler(   rB   rZ   )	r>   rÅ   r»   rg   Ú
parametersÚvaluesÚoutputÚ	parameterÚcontextss	            r1   rÇ   rÇ   6  s*  € Ý$5°fÑ$=Ô$=Ñ!€Hˆk˜6Ø—’Ð!4°bÑ9Ô9€JÝ+5°jÅ$Ñ+GÔ+GÐOˆZ�^Š^˜F BÑ'Ô'Ð'ÈR€FÝ�f�t¥U˜mÑ,Ô,ð Øˆ	Ø€FØð 'ð 'ˆ	Ý˜)¥TÑ*Ô*ð 	µ#°i·m²mÀFÈBÑ6OÔ6OÐ6UÐSUÑ2VÔ2V×2\Ò2\Ñ2^Ô2^ð 	ØØ—=’=  rÑ*Ô*ˆÝ",¨XµsÑ";Ô";ÐP�H�;�;ÅÀxÁÄˆØÐ! j¸Ð&@Ð&@ØØ�Š•d˜9‘o”oÑ&Ô&Ð&Ð&Ø€Mr0   Úsettingc                óT   ‡— t          ˆfd„t          | ¦  «        D ¦   «         ¦  «        S )Nc              3  ór   •K  — | ]1}t          |                     d |d         ¦  «        ¦  «        ‰k    V — Œ2dS )rÐ   r‘   N)r(   rl   )r�   rÎ   rÐ   s     €r1   ú	<genexpr>z&method_uses_setting.<locals>.<genexpr>I  sC   øè è € ÐvÐvÈy�s�9—=’= ¨I°fÔ,=Ñ>Ô>Ñ?Ô?À7ÒJÐvÐvÐvÐvÐvÐvr0   )ÚanyrÇ   )r>   rÐ   s    `r1   Úmethod_uses_settingrÕ   H  s0   ø€ ÝÐvÐvÐvÐvÕ\mÐntÑ\uÔ\uÐvÑvÔvÑvÔvÐvr0   c           	     ó<  — t          |t          ¦  «        si S t          | ¦  «        }|€i S i }t          |d         ¦  «        D ]Y}t	          |d         ¦  «        }||vrŒ||         }|�|dk    s|g k    rŒ3||t	          |                     d|¦  «        ¦  «        <   ŒZ|S )Nr   r‘   rA   rÐ   )r´   rx   Úsplit_upsampling_valuerÇ   r(   rl   )Úspatial_upsamplingÚparameter_valuesÚsplitrÍ   rÎ   r‘   rL   s          r1   Úruntime_parameter_kwargsrÛ   L  s½   € ÝÐ&­Ñ-Ô-ð Øˆ	Ý"Ð#5Ñ6Ô6€EØ€}Øˆ	Ø€FÝ& u¨Q¤xÑ0Ô0ð <ð <ˆ	Ý�9˜VÔ$Ñ%Ô%ˆØÐ'Ð'Ð'ØØ  Ô&ˆØˆ=˜E RšK˜K¨5°Bª;¨;ØØ6;ˆ�s�9—=’= ¨DÑ1Ô1Ñ2Ô2Ñ3Ð3Ø€Mr0   c                óR   — t          | d¦  «        r|                      ||¦  «        n|S )NrS   )rw   rS   )r'   rP   r>   s      r1   Ú_handler_method_labelrÝ   ^  s.   € Ý9@ÀÐJ_Ñ9`Ô9`Ðkˆ7×&Ò& u¨fÑ5Ô5Ð5ÐfkÐkr0   c                óN   — t          | d¦  «         p|                      |¦  «        S )NÚmethod_available)rw   rß   )r'   r>   s     r1   Ú_handler_method_availablerà   b  s*   € Ý�wÐ 2Ñ3Ô3Ð3ÐW°w×7OÒ7OÐPVÑ7WÔ7WÐWr0   c                óz   — 	 t          |                      dd¦  «        ¦  «        S # t          t          f$ r Y dS w xY w)NÚposéè  )r3   rl   Ú	TypeErrorrK   r¥   s    r1   Ú_handler_posrå   f  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)rl   r´   rx   r3   rä   rK   rå   )rg   r>   rç   s      r1   Ú_method_posrè   m  s|   € Ø—’ ¨rÑ2Ô2€JÝ�*�dÑ#Ô#ð ¨°*Ð(<Ð(<ð	Ý˜ FÔ+Ñ,Ô,Ð,øÝ�:Ð&ð 	ð 	ð 	ØˆDð	øøøå˜Ñ$Ô$Ð$s   ±A ÁAÁAc                ó�   ‡ — t          ‰ pd¦  «                             ¦   «         sd S t          ˆ fd„t          D ¦   «         d ¦  «        S )NrA   c              3  óF   •K  — | ]}|                      ‰¦  «        ¯|V — Œd S rY   )Úis_upsampling)r�   r'   rØ   s     €r1   rÓ   z!find_upsampler.<locals>.<genexpr>z  s7   øè è € ÐiÐi˜W¸w×?TÒ?TÐUgÑ?hÔ?hÐi�ÐiÐiÐiÐiÐiÐir0   )r(   rB   Únextr   ©rØ   s   `r1   Úfind_upsamplerrî   w  sQ   ø€ ÝÐ!Ð' RÑ(Ô(×.Ò.Ñ0Ô0ð ØˆtÝÐiÐiÐiÐiÕ(;ÐiÑiÔiÐkoÑpÔpÐpr0   c                óÎ   — t          | ¦  «        }|€d S |                     | ¦  «        d         }|d„ |                     ¦   «                              dg ¦  «        D ¦   «         v r|nd S )Nr   c                ó   — g | ]\  }}|‘ŒS r/   r/   ©r�   Ú_r©   s      r1   rž   z1find_postprocessing_upsampler.<locals>.<listcomp>‚  s   € Ð dÐ dÐ d©¨¨C Ð dÐ dÐ dr0   r¢   ©rî   Úsplit_valuerz   rl   ©rØ   r'   r>   s      r1   Úfind_postprocessing_upsamplerrö   }  su   € ÝÐ/Ñ0Ô0€GØ€ØˆtØ× Ò Ð!3Ñ4Ô4°QÔ7€FØÐ dÐ d°7×3NÒ3NÑ3PÔ3P×3TÒ3TÐU^Ð`bÑ3cÔ3cÐ dÑ dÔ dÐdÐdˆ7ˆ7ÐjnÐnr0   c                ó  — t          |pd¦  «                             ¦   «         }|r|S t          | ¦  «        }|€dnFt          |                     ¦   «                              dd¦  «        ¦  «                             ¦   «         S )NrA   Údefault_prompt)r(   rB   rö   rz   rl   )rØ   Úpromptr'   s      r1   Ú"resolve_late_postprocessing_promptrú   …  sz   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð ØˆÝ+Ð,>Ñ?Ô?€GØ�ˆ2ˆ2¥c¨'×*EÒ*EÑ*GÔ*G×*KÒ*KÐL\Ð^`Ñ*aÔ*aÑ&bÔ&b×&hÒ&hÑ&jÔ&jÐjr0   c                óÎ   — t          | ¦  «        }|€d S |                     | ¦  «        d         }|d„ |                     ¦   «                              dg ¦  «        D ¦   «         v r|nd S )Nr   c                ó   — g | ]\  }}|‘ŒS r/   r/   rñ   s      r1   rž   z&find_vae_upsampler.<locals>.<listcomp>’  s   € Ð hÐ hÐ h©¨¨C Ð hÐ hÐ hr0   r£   ró   rõ   s      r1   Úfind_vae_upsamplerrý   �  su   € ÝÐ/Ñ0Ô0€GØ€ØˆtØ× Ò Ð!3Ñ4Ô4°QÔ7€FØÐ hÐ h°7×3NÒ3NÑ3PÔ3P×3TÒ3TÐUbÐdfÑ3gÔ3gÐ hÑ hÔ hÐhÐhˆ7ˆ7ÐnrÐrr0   c                ó$   — t          | ¦  «        d uS rY   )rý   rí   s    r1   Úis_vae_upsamplingrÿ   •  s   € ÝÐ0Ñ1Ô1¸Ð=Ð=r0   )Úmain_offloadobjÚloaded_model_contextc               ó¢  ‡— t          | ¦  «         t          ¦   «         }|                      ¦   «         d         }ˆfd„t          ‰¦  «        D ¦   «         }‰                     t          ||¦  «        ¦  «         t          | ||fi ‰¤Ž}	t          ¦   «         5  	 |�|j        n|}
|
�|
 	                    ¦   «          |	�%t          | d¦  «        r|                      ¦   «          n |	€t          | d¦  «        r | j        |fi ‰¤Ž  | j        ||fd|	i‰¤Ž|	�)|	j         	                    ¦   «          t          | ¦  «         n'|rt          j        |g¦  «         nt          | ¦  «         cd d d ¦  «         S # |	�)|	j         	                    ¦   «          t          | ¦  «         w |rt          j        |g¦  «         w t          | ¦  «         w xY w# 1 swxY w Y   d S )Nr‘   c                óŠ   •— i | ]?}t          |¦  «                             t          ¦  «        ¯)|‰                     |¦  «        “Œ@S r/   )r(   rI   ÚPARAMETER_PREFIXry   )r�   r‘   Úkwargss     €r1   rª   z*upscale_postprocessing.<locals>.<dictcomp>�  sB   ø€ ÐsÐsÐs°4ÍCÐPTÉIÌI×L`ÒL`ÕaqÑLrÔLrÐs˜˜fŸjšj¨Ñ.Ô.ÐsÐsÐsr0   Úrelease_private_runtimeÚload_upsamplerr  )r™   Úpersistent_modelsrz   rÊ   ÚupdaterÛ   r	   r   Ú
offloadobjÚ
unload_allrw   r  r  Úupscaler—   r   Úunload_vram)r'   ÚsamplerØ   r   r  r  Ú
persistentr‘   rÙ   Úborrowed_contextÚcore_offloadobjs        `     r1   Úupscale_postprocessingr  ™  sf  ø€ Ý˜Ñ Ô Ð Ý"Ñ$Ô$€JØ×&Ò&Ñ(Ô(¨Ô0€DØsÐsÐsÐs½5À¹=¼=ÐsÑsÔsÐØ
‡M‚MÕ*Ð+=Ð?OÑPÔPÑQÔQÐQÝ.¨wÐ8JÐL`ÐkÐkÐdjÐkÐkÐÝ	Ñ	!Ô	!ð 4ð 4ð	4ØAUÐAaÐ2Ô=Ð=ÐgvˆOØÐ*Ø×*Ò*Ñ,Ô,Ð,ØÐ+µ¸ÐAZÑ0[Ô0[Ð+Ø×/Ò/Ñ1Ô1Ð1Ð1Ø!Ð)­g°gÐ?OÑ.PÔ.PÐ)Ø&�Ô&Ð'9ÐDÐD¸VÐDÐDÐDØ"�7”? 6Ð+=ÐoÐoÐTdÐoÐhnÐoÐoàÐ+Ø Ô+×6Ò6Ñ8Ô8Ð8Ý*¨7Ñ3Ô3Ð3Ð3Øð 4Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å*¨7Ñ3Ô3Ð3ð#4ð 4ð 4ð 4ñ 4ô 4ð 4ð 4øð  Ð+Ø Ô+×6Ò6Ñ8Ô8Ð8Ý*¨7Ñ3Ô3Ð3Ð3Øð 4Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å*¨7Ñ3Ô3Ð3Ð3øøøð#4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s-   ÂGÂA8E-ÄAGÅ-AGÇGÇGÇGÚ
image_moder8   c                ó´   — t          | ¦  «        rdS t          | ¦  «        }t          | ¦  «        dk    r|€d| › d�S |�|                     | |¦  «        }|r|S dS )Nz:VAE Spatial Upsampling is only available during generationr   z%No spatial upsampler registered for 'ú'rA   )rÿ   rö   rJ   Úvalidate_upsampling)rØ   r  Úedit_upsamplerÚerrors       r1   Ú*validate_postprocessing_spatial_upsamplingr  ´  s�   € ÝÐ+Ñ,Ô,ð LØKÐKÝ2Ð3EÑFÔF€NÝ
ÐÑÔ Ò"Ð" ~Ð'=ØLÐ7IÐLÐLÐLÐLØÐ!Ø×2Ò2Ð3EÀzÑRÔRˆØð 	ØˆLØˆ2r0   c                óR   — t          | d¦  «        o|                      ||||¦  «        S )NÚsupports_model_vae_method)rw   r  )r'   r>   Ú
model_typeÚ	model_defr  s        r1   Ú"_handler_supports_model_vae_methodr  Á  s@   € Ý�7Ð7Ñ8Ô8ð  J¸W×=^Ò=^Ð_eÐgqÐs|ð  Iñ  >Jô  >Jð  Jr0   c                óº  — g }t          t          ¦  «        D ]¬}|                     ¦   «         }|                     dg ¦  «        D ]\  }}t	          ||| ||¦  «        rg|                     t          ||¦  «        t          |pd¦  «                             ¦   «         t          |pd¦  «        t          |||¦  «        |f¦  «         Œ€Œ­d„ t          |¦  «        D ¦   «         S )Nr£   rA   c                ó"   — g | ]\  }}}}}||f‘ŒS r/   r/   ©r�   rò   rP   r>   s       r1   rž   z2query_model_vae_method_choices.<locals>.<listcomp>Ì  s'   € ÐJÐJÐJÑ 6  1 a¨°ˆU�FˆOÐJÐJÐJr0   )r�   ÚUPSAMPLER_TYPE_VAErz   rl   r  rZ   rè   r(   ÚcasefoldrÝ   Úsorted)r  r  r  Úchoicesr'   rg   rP   r>   s           r1   Úquery_model_vae_method_choicesr&  Å  s  € Ø€GÝ%Õ&8Ñ9Ô9ð jð jˆØ×1Ò1Ñ3Ô3ˆØ(Ÿ_š_¨]¸BÑ?Ô?ð 	jð 	j‰MˆE�6Ý1°'¸6À:ÈyÐZdÑeÔeð jØ—’¥¨K¸Ñ @Ô @Å#ÀeÀkÈrÑBRÔBR×B[ÒB[ÑB]ÔB]Õ_bÐciÐcoÐmoÑ_pÔ_põ  sHð  IPð  RWð  Y_ñ  s`ô  s`ð  bhð   iñ  jô  jð  jøð	jð KÐJ½&À¹/¼/ÐJÑJÔJÐJr0   Úmediumc                ó  — t          | ¦  «        }|€dS t          |d¦  «        r|                     | ||||¦  «        S |                     | ¦  «        d         }t	          |||||¦  «        rdnt          | ¦  «        › d|› �S )NrA   Úvalidate_model_vae_upsamplingr   z is not available for )rý   rw   r)  rô   r  Úformat_upsampling_label)rØ   r  r  r  r'  r'   r>   s          r1   r)  r)  Ï  sË   € Ý Ð!3Ñ4Ô4€GØ€ØˆrÝˆwÐ7Ñ8Ô8ð tØ×4Ò4Ð5GÈÐU_ÐajÐlrÑsÔsÐsØ× Ò Ð!3Ñ4Ô4°QÔ7€FÝ3°G¸VÀZÐQZÐ\fÑgÔgð  |ˆ2ˆ2õ  qHð  I[ñ  q\ô  q\ð  n|ð  n|ð  tzð  n|ð  n|ð  |r0   c                óx   — t          | ¦  «        }|�t          |d¦  «        sd S |                     | |||¦  «        S )NÚmodel_load_upsampling_value)rý   rw   r,  ©rØ   r  r  r  r'   s        r1   Úmodel_load_vae_upsampling_valuer.  Ù  sE   € Ý Ð!3Ñ4Ô4€GØ€�g gÐ/LÑMÔM€ØˆtØ×.Ò.Ð/AÀ:ÈyÐZdÑeÔeÐer0   c                óŠ   — t          t          ¦  «        D ]-}t          |d¦  «        r|                     | ¦  «        }|�|c S Œ.d S )NÚ!loaded_model_vae_upsampling_value)r�   r"  rw   r0  )Úmodelr'   rL   s      r1   r0  r0  à  sU   € Ý%Õ&8Ñ9Ô9ð ð ˆÝ�7Ð?Ñ@Ô@ð 	Ø×=Ò=¸eÑDÔDˆEØÐ Ø���øØˆ4r0   c                óš   — t          | ¦  «        }|�t          |¦  «         |�t          |d¦  «        si S |                     | |||¦  «        S )NÚ$model_load_kwargs_for_vae_upsampling)rý   r™   rw   r3  r-  s        r1   r3  r3  é  sZ   € Ý Ð!3Ñ4Ô4€GØÐÝ˜GÑ$Ô$Ð$Ø€�g gÐ/UÑVÔV€Øˆ	Ø×7Ò7Ð8JÈJÐXaÐcmÑnÔnÐnr0   c                ót   — t          |¦  «        }|�t          |d¦  «        s| S |                     | |¦  «        S ©NÚ!post_model_process_vae_upsampling)rý   rw   r6  )r  rØ   r'   s      r1   r6  r6  ò  s@   € Ý Ð!3Ñ4Ô4€GØ€�g gÐ/RÑSÔS€ØˆØ×4Ò4°VÐ=OÑPÔPÐPr0   c                óH   — t          | ¦  «        }|d uot          |d¦  «        S r5  )rý   rw   )rØ   r'   s     r1   Ú%has_post_model_process_vae_upsamplingr8  ù  s+   € Ý Ð!3Ñ4Ô4€GØ˜$ÐÐX¥7¨7Ð4WÑ#XÔ#XÐXr0   c                ód   — | �t          | d¦  «        sd S t          | ¦  «          | j        |fi |¤ŽS )NÚprepare_vae_upsampler)rw   r™   r:  )r'   rØ   r  s      r1   r:  r:  þ  sE   € Ø€�g gÐ/FÑGÔG€ØˆtÝ˜Ñ Ô Ð Ø(ˆ7Ô(Ð);ÐFÐF¸vÐFÐFÐFr0   c                óT   — | �!|�!t          ¦   «         st          | ¦  «         d S d S d S d S rY   )r  r—   )r'   Úsessions     r1   Úrelease_vae_upsamplerr=    sA   € ØÐ˜wÐ2Õ;LÑ;NÔ;NÐ2Ý" 7Ñ+Ô+Ð+Ð+Ð+ð ÐÐ2Ð2Ð2Ð2r0   c                óÎ   — t          | pd¦  «                             ¦   «         } | sd S t          D ]5}|                     ¦   «         }| d„ t	          |¦  «        D ¦   «         v r|c S Œ6d S )NrA   c                ó   — g | ]\  }}|‘ŒS r/   r/   rñ   s      r1   rž   z,find_upsampler_by_method.<locals>.<listcomp>  s   € ÐEÐEÐE™f˜a �cÐEÐEÐEr0   )r(   rB   r   rz   rm   ©r>   r'   rg   s      r1   r®   r®   
  s‚   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð ØˆtÝ&ð ð ˆØ×1Ò1Ñ3Ô3ˆØÐEÐE­¸Ñ(DÔ(DÐEÑEÔEÐEÐEØˆNˆNˆNð Fàˆ4r0   r   c                óN   — t          | ¦  «        }|€t          d| › d�¦  «        ‚|S )Nz,No spatial upsampler registered for method 'r  )r®   ÚRuntimeErrorr¯   s     r1   Úrequire_upsampler_by_methodrC    s3   € Ý& vÑ.Ô.€GØ€ÝÐSÈ&ÐSÐSÐSÑTÔTÐTØ€Nr0   útuple[float, ...]c                óÔ   — t          | ¦  «        }|€dS t          |                     ¦   «                              di ¦  «                             t	          | ¦  «        d¦  «        ¦  «        S )Nr/   Úmultipliers)r®   rÊ   rz   rl   r(   r¯   s     r1   Úmethod_multipliersrG    sZ   € Ý& vÑ.Ô.€GØ€ØˆrÝ�×,Ò,Ñ.Ô.×2Ò2°=À"ÑEÔE×IÒIÍ#ÈfÉ+Ì+ÐWYÑZÔZÑ[Ô[Ð[r0   úlist[tuple[str, float]]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó0   — g | ]}t          |¦  «        |f‘ŒS r/   )r=   )r�   r2   s     r1   rž   z,ratio_choices_for_method.<locals>.<listcomp>$  s&   € Ð\Ð\Ð\¸Õ$ UÑ+Ô+¨UÐ3Ð\Ð\Ð\r0   )rG  ©r>   s    r1   Úratio_choices_for_methodrL  #  s    € Ø\Ð\ÕASÐTZÑA[ÔA[Ð\Ñ\Ô\Ð\r0   c                ó@  — t          |                      di ¦  «                             |d¦  «        ¦  «        }|sd S |                      dd¦  «        }t          |¦  «        }|�5|                     |¦  «        }|�|d         |k    r|d         |v r|d         S |d         S )NrF  r/   Údefault_spatial_upsamplingrA   r   r   )rÊ   rl   rî   rô   )rg   r>   rF  Údefault_valuer'   rÚ   s         r1   Ú_default_multiplier_from_defrP  '  s©   € Ý˜Ÿš¨°rÑ:Ô:×>Ò>¸vÀrÑJÔJÑKÔK€KØð ØˆtØ—O’OÐ$@À"ÑEÔE€MÝ˜]Ñ+Ô+€GØÐØ×#Ò# MÑ2Ô2ˆØÐ  q¤¨VÒ!3Ð!3¸¸a¼ÀKÐ8OÐ8OØ˜”8ˆOØ�qŒ>Ðr0   c                ój  — t          | ¦  «        }|€dS |                     ¦   «         }t          |                     di ¦  «                             t	          | pd¦  «                             ¦   «         d¦  «        ¦  «        sdS t          |t	          | pd¦  «                             ¦   «         ¦  «        pdS )Nç       @rF  rA   r/   ç      ð?)r®   rz   rÊ   rl   r(   rB   rP  r@  s      r1   Údefault_multiplier_for_methodrT  4  s¤   € Ý& vÑ.Ô.€GØ€ØˆsØ×-Ò-Ñ/Ô/€KÝ�—’ °Ñ3Ô3×7Ò7½¸F¸LÀbÑ8IÔ8I×8OÒ8OÑ8QÔ8QÐSUÑVÔVÑWÔWð ØˆsÝ'¨µS¸¸À2Ñ5FÔ5F×5LÒ5LÑ5NÔ5NÑOÔOÐVÐSVÐVr0   c                óÚ   — t          | ¦  «        }|st          | ¦  «        S 	 t          |¦  «        }n&# t          t          f$ r t          | ¦  «        }Y nw xY w||v r|nt          | ¦  «        S rY   )rG  rT  r3   rä   rK   )r>   r2   rF  s      r1   Únormalize_multiplier_for_methodrV  >  s…   € Ý$ VÑ,Ô,€KØð 5Ý,¨VÑ4Ô4Ð4ð6Ý�e‘”ˆˆøÝ•zÐ"ð 6ð 6ð 6Ý-¨fÑ5Ô5ˆˆˆð6øøøà˜[Ð(Ð(ˆ5ˆ5Õ.KÈFÑ.SÔ.SÐSs   ¢2 ² AÁAútuple[str, float] | Nonec                óR   — t          | ¦  «        }|€d n|                     | ¦  «        S rY   )rî   rô   )rL   r'   s     r1   r×   r×   I  s+   € Ý˜UÑ#Ô#€GØ�?ˆ4ˆ4¨×(;Ò(;¸EÑ(BÔ(BÐBr0   c                óT   — t          | ¦  «        }|€d n|                     | |¦  «        S rY   )r®   Úbuild_value)r>   r2   r'   s      r1   Úbuild_upsampling_valuer[  N  s-   € Ý& vÑ.Ô.€GØ�?ˆ4ˆ4¨×(;Ò(;¸FÀEÑ(JÔ(JÐJr0   c                óÄ   — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S t          |d         ¦  «        }|€d n	 |j        |Ž }|p|S )NrA   r   )r(   rB   r×   r®   rZ  )rL   rM   rÚ   r'   Ú
normalizeds        r1   Únormalize_upsampling_valuer^  S  sw   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ" 4Ñ(Ô(€EØ€}ØˆÝ& u¨Q¤xÑ0Ô0€GØ ˜��Ð.A¨gÔ.AÀ5Ð.I€JØÐ˜Ðr0   c                óŠ  — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S |                     |¦  «        }|€|S |\  }}t	          |                     ¦   «         ¦  «                             |¦  «        }|rt          |||¦  «        }|r!t          |¦  «        rt          ||¦  «        n|n|S r@   )
r(   rB   rî   rô   r«   rz   rl   rÝ   rG  rV   )rL   rM   r'   rÚ   r>   r2   rP   s          r1   r*  r*  _  sÙ   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ˜TÑ"Ô"€GØ€ØˆØ×Ò Ñ%Ô%€EØ€}ØˆØ�M€FˆEÝ˜7×6Ò6Ñ8Ô8Ñ9Ô9×=Ò=¸fÑEÔE€EØð >Ý% g¨u°fÑ=Ô=ˆØafÐpÕ7IÈ&Ñ7QÔ7QÐ\Õ% e¨UÑ3Ô3Ð3ÐW\ÐW\ÐlpÐpr0   ú1tuple[list[tuple[str, float]], float | None, str]c                óæ   — t          | pd¦  «                             ¦   «         } t          | ¦  «        }| st          d¦  «        }|rt          | pd|¦  «        nd }||| sdnt	          | |¦  «        pdfS )NrA   Úlanczos)r(   rB   rL  rV  r[  )r>   r2   Úratio_choicess      r1   Únormalize_upsampling_staterd  p  s‰   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FÝ,¨VÑ4Ô4€MØð <Ý0°Ñ;Ô;ˆØKXÐbÕ+¨FÐ,?°iÀÑGÔGÐGÐ^b€EØ˜%¨6Ð!b  Õ7MÈfÐV[Ñ7\Ô7\Ð7bÐ`bÐbÐbr0   ú*tuple[list[tuple[str, float]], float, str]c                óT   — t          |¦  «        }t          | |€dn|d         ¦  «        S )NrR  r   )r×   rd  )r>   Úcurrent_valuerÚ   s      r1   Ú%normalize_upsampling_value_for_methodrh  y  s+   € Ý" =Ñ1Ô1€EÝ% f°U°]¨c¨cÈÈaÌÑQÔQÐQr0   Úchoiceútuple[str, str]útuple[float, str, str]c                óà   — | \  }}t          |¦  «        }|€dn!t          |                     ¦   «         |¦  «        }|t          |pd¦  «                             ¦   «         t          |pd¦  «        fS )Nrã   rA   )r®   rè   rz   r(   r#  )ri  rP   r>   r'   Úpositions        r1   Ú_method_choice_sort_keyrn  ~  sm   € Ø�M€Eˆ6Ý& vÑ.Ô.€GØ�ˆtˆt­K¸×8SÒ8SÑ8UÔ8UÐW]Ñ,^Ô,^€HØ•S˜˜ "Ñ%Ô%×.Ò.Ñ0Ô0µ#°f°lÀÑ2CÔ2CÐCÐCr0   Úimage_outputsú3tuple[list[tuple[str, str]], list[tuple[str, str]]]c                ó  ‡‡— g g }}t          t          ¦  «        D ]¸Š‰                     ¦   «         Šd„ ‰                     dg ¦  «        D ¦   «         }d|vr|st	          ‰¦  «        sŒL‰                     dt
          t          f¦  «        }| rt          nt
          |vrŒ�ˆˆfd„‰                     dg ¦  «        D ¦   «         }t
          |v r||z  }Œ³||z  }Œ¹d„ t          |¦  «        D ¦   «         d„ t          |¦  «        D ¦   «         fS )Nc                ó   — g | ]\  }}|‘ŒS r/   r/   rñ   s      r1   rž   z7query_postprocessing_method_choices.<locals>.<listcomp>‰  s   € ÐHÐHÐH™v˜q #�sÐHÐHÐHr0   r¢   rb  Úmediac           
     óÞ   •— g | ]i\  }}t          ‰|¦  «        ¯t          ‰|¦  «        t          |pd ¦  «                             ¦   «         t          |pd ¦  «        t	          ‰||¦  «        |f‘ŒjS ©rA   )rà   rè   r(   r#  rÝ   )r�   rP   r>   r'   rg   s      €€r1   rž   z7query_postprocessing_method_choices.<locals>.<listcomp>�  sÐ   ø€ ð  @ð  @ð  @ñ  boð  bgð  ioõ  Unð  ovð  x~ñ  Uô  Uð  @•K ¨VÑ4Ô4µc¸%¸+À2Ñ6FÔ6F×6OÒ6OÑ6QÔ6QÕSVÐW]ÐWcÐacÑSdÔSdÕf{ð  }Dð  FKð  MSñ  gTô  gTð  V\ð  ]ð  @ð  @ð  @r0   c                ó"   — g | ]\  }}}}}||f‘ŒS r/   r/   r!  s       r1   rž   z7query_postprocessing_method_choices.<locals>.<listcomp>”  s'   € ÐUÐUÐUÑ 6  1 a¨°ˆU�FˆOÐUÐUÐUr0   c                ó"   — g | ]\  }}}}}||f‘ŒS r/   r/   r!  s       r1   rž   z7query_postprocessing_method_choices.<locals>.<listcomp>”  sO   € ð  Xbð  Xbð  Xbñ  mCÐlmÐopÐrsÐuzð  }CÐY^Ð`fÐXgð  Xbð  Xbð  Xbr0   )r�   ÚUPSAMPLER_TYPE_POSTPROCESSINGrz   rl   r‹   ÚUPSAMPLER_PROFILE_VIDEOÚUPSAMPLER_PROFILE_IMAGEr$  )	ro  r   Úvideo_post_choicesÚimage_post_choicesÚmethod_keysrs  r%  r'   rg   s	          @@r1   Ú#query_postprocessing_method_choicesr~  …  sŸ  øø€ Ø-/°Ð*ÐÝ%Õ&CÑDÔDð *ð *ˆØ×1Ò1Ñ3Ô3ˆØHÐH¨¯ª¸ÀBÑ)GÔ)GÐHÑHÔHˆØ˜KÐ'Ð'Ð1DÐ'ÍÐX_ÑH`ÔH`Ð'ØØ—’ Õ*AÕCZÐ)[Ñ\Ô\ˆØ'4ÐQÕ#Ð#Õ:QÐZ_Ð_Ð_Øð @ð  @ð  @ð  @ð  @ð  s~÷  sBò  sBð  CLð  NPñ  sQô  sQð  @ñ  @ô  @ˆÝ" eÐ+Ð+Ø 'Ñ)ÐÐà 'Ñ)ÐÐØUÐU½&ÐASÑ:TÔ:TÐUÑUÔUð  Xbð  Xbõ  GMð  N`ñ  Gaô  Gað  Xbñ  Xbô  Xbð  bð  br0   ©ro  r   Úvae_choicesÚexcluded_methodsÚexclude_method_fnr€  úlist[tuple[str, str]] | Noner�  úset[str] | Nonec               óh  ‡‡— t          | ¦  «        pd\  }}t          ||¬¦  «        \  }}	‰pt          ¦   «         Šˆˆfd„|D ¦   «         }ˆˆfd„|	D ¦   «         }	dgt          ||	z   t	          |pg ¦  «        z   t
          ¬¦  «        z   }
|d„ |
D ¦   «         vrd}t          ||¦  «        \  }}}||||
|d	œS )
N©rA   rR  ©ro  r   c                óN   •— g | ]!}|d          ‰v¯‰r ‰|d          ¦  «        °|‘Œ"S ©r   r/   ©r�   ri  r‚  r�  s     €€r1   rž   z"dropdown_state.<locals>.<listcomp>›  óo   ø€ ð  eð  eð  e VÀVÈAÄYÐVfÐEfÐEfð  qBÐEfð  GXð  GXð  Y_ð  `aô  Ybñ  Gcô  GcÐEf˜&ÐEfÐEfÐEfr0   c                óN   •— g | ]!}|d          ‰v¯‰r ‰|d          ¦  «        °|‘Œ"S r‰  r/   rŠ  s     €€r1   rž   z"dropdown_state.<locals>.<listcomp>œ  r‹  r0   )rW   rA   )r©   c                ó   — h | ]\  }}|’ŒS r/   r/   )r�   rò   rL   s      r1   ú	<setcomp>z!dropdown_state.<locals>.<setcomp>ž  s   € Ð;Ð;Ð;¡  5�eÐ;Ð;Ð;r0   rA   )r>   r2   rL   rn   rc  )r×   r~  Úsetr$  rÉ   rn  rd  )rØ   ro  r   r€  r�  r‚  r>   r2   r{  r|  rn   rc  rL   s       ``       r1   Údropdown_stater�  —  sO  øø€ Ý*Ð+=Ñ>Ô>ÐKÀ)�M€FˆEÝ-PÐ_lð  CVð  .Wñ  .Wô  .WÑ*ÐÐ*Ø'Ð0­3©5¬5Ðð eð  eð  eð  eð  eÐ/Að  eñ  eô  eÐð eð  eð  eð  eð  eÐ/Að  eñ  eô  eÐØ"�^¥fÐ-?ÐBTÑ-TÕW[Ð\gÐ\mÐkmÑWnÔWnÑ-nõ  uLð  'Mñ  'Mô  'Mñ  M€NØÐ;Ð;¨NÐ;Ñ;Ô;Ð;Ð;ØˆÝ"<¸VÀUÑ"KÔ"KÑ€M�5˜%Ø u°uÐP^Ðq~ÐÐÐr0   )rÙ   c               óh   — t          | |d¬¦  «        }t          |d         t          |¦  «        |d<   |S )NTr‡  r>   rË   )r�  Úparameter_ui_stateÚ PARAMETER_UI_LATE_POSTPROCESSING)rØ   ro  rÙ   Ústates       r1   Úlate_postprocessing_ui_stater•  ¤  s9   € ÝÐ-¸]Ð`dÐeÑeÔe€EÝ,¨U°8¬_Õ>^Ð`pÑqÔq€Eˆ,ÑØ€Lr0   c                ó  — i }t          ¦   «         D ]Î}t          |                     ¦   «         ¦  «        D ]ª\  }}t          || ¬¦  «        D ]“}t	          |d         ¦  «        }|                     t          ¦  «        st          d|› dt          › d�¦  «        ‚||v r>||         }dD ]2}||v r,||v r(||         ||         k    rt          d|› d|› d�¦  «        ‚Œ3ŒŽ|||<   Œ”Œ«ŒÏt          | 	                    ¦   «         ¦  «        S )	NrÄ   r‘   z$Spatial postprocessor UI parameter 'z' must start with 'r  )ÚtypeÚ	componentÚmultiplez' has incompatible 'z' declarations)
r�   rm   rz   rÇ   r(   rI   r  rK   rÉ   rÌ   )	rÅ   Údefinitionsr'   Ú_labelr>   rÎ   r‘   Úpreviousr©   s	            r1   Úui_parameter_definitionsr�  ª  sn  € Ø€KÝ%Ñ'Ô'ð .ð .ˆÝ-¨g×.IÒ.IÑ.KÔ.KÑLÔLð 	.ð 	.‰NˆF�FÝ.¨vÀ*ÐMÑMÔMð 
.ð 
.�	Ý˜9 VÔ,Ñ-Ô-�Ø—’Õ'7Ñ8Ô8ð zÝ$Ð%xÈDÐ%xÐ%xÕeuÐ%xÐ%xÐ%xÑyÔyÐyØ˜;Ð&Ð&Ø*¨4Ô0�HØ@ð Cð C˜Ø (˜?˜?¨s°iÐ/?Ð/?ÀHÈSÄMÐU^Ð_bÔUcÒDcÐDcÝ",ð  .BÐTXð  .Bð  .BÐnqð  .Bð  .Bð  .Bñ  #Cô  #Cð  CøØØ$-�˜DÑ!Ð!ð
.ð	.õ �×"Ò"Ñ$Ô$Ñ%Ô%Ð%r0   rÎ   c                ó  — t          |                      dd¦  «        pd¦  «                             ¦   «                              ¦   «         }|p;dddddœ                     t          |                      dd¦  «        ¦  «        d	¦  «        S )
Nr˜  rA   ÚcheckboxÚnumberÚimages)ÚbooleanÚintegerr   Úarrayr—  ÚstringÚtextbox)r(   rl   rB   rC   )rÎ   Úcomponent_types     r1   Úparameter_component_typer¨  ¼  s´   € Ý˜Ÿš {°BÑ7Ô7Ð=¸2Ñ>Ô>×DÒDÑFÔF×LÒLÑNÔN€NØð  f¨ÀÐT\ÐgoÐpÐp×tÒtÕuxð  zC÷  zGò  zGð  HNð  PXñ  zYô  zYñ  vZô  vZð  \eñ  fô  fð  fr0   c                ó¤   — |                       dt          | ¦  «        dk    rg nd ¦  «        }t          |t          ¦  «        rt          |¦  «        n|S )NrÂ   r¡  )rl   r¨  r´   rÉ   )rÎ   rL   s     r1   Úparameter_defaultrª  Á  sM   € Ø�MŠM˜)Õ+CÀIÑ+NÔ+NÐRZÒ+ZÐ+Z R RÐ`dÑeÔe€EÝ$ U­DÑ1Ô1Ð<�4�‰;Œ;ˆ;°uÐ<r0   c                ój  ‡
— t          |¦  «        }d„ t          | |¬¦  «        D ¦   «         Š
ˆ
fd„|D ¦   «         }t          ‰
¦  «        }t          |t          ¦  «        r|ni }i }|D ]H}t          |d         ¦  «        }||v r|                     |¦  «        nd }	|	€t          |¦  «        n|	||<   ŒI|||dœS )Nc                ó:   — i | ]}t          |d          ¦  «        |“ŒS ©r‘   ©r(   ©r�   rÎ   s     r1   rª   z&parameter_ui_state.<locals>.<dictcomp>È  s'   € ÐtÐtÐt°i•�I˜fÔ%Ñ&Ô&¨	ÐtÐtÐtr0   rÄ   c                óH   •— g | ]}‰                      |d          |¦  «        ‘ŒS r­  r¤   )r�   rÎ   Úselecteds     €r1   rž   z&parameter_ui_state.<locals>.<listcomp>É  s,   ø€ Ð[Ð[Ð[À)�8—<’< 	¨&Ô 1°9Ñ=Ô=Ð[Ð[Ð[r0   r‘   )rš  ÚactiverÌ   )r�  rÇ   r�  r´   rx   r(   rl   rª  )r>   rÅ   rÙ   rš  r²  ÚcurrentrÌ   rÎ   r‘   rL   r±  s             @r1   r’  r’  Æ  så   ø€ Ý*¨:Ñ6Ô6€KØtÐtÕCTÐU[ÐhrÐCsÑCsÔCsÐtÑtÔt€HØ[Ð[Ð[Ð[È{Ð[Ñ[Ô[€KÝ�‰]Œ]€FÝ",Ð-=½tÑ"DÔ"DÐLÐÐÈ"€GØ€FØ ð Pð Pˆ	Ý�9˜VÔ$Ñ%Ô%ˆØ%)¨V ^ ^�—’˜DÑ!Ô!Ð!¸ˆØ7<°}Õ(¨Ñ3Ô3Ð3È%ˆˆt‰ˆØ&°&ÀFÐKÐKÐKr0   )Ú
field_helpÚmedia_profilec               óà  ‡‡‡— t          |dd¦  «        }|g}i }| D ]A\  }}t          |¦  «        }|�+|                     |g ¦  «                             ||f¦  «         ŒB|                     ¦   «         D �]ç\  }}	|                     ¦   «         }
t          |
                     d|	d         d         ¦  «        ¦  «        }t          |
                     dt          ¦  «        ¦  «         	                    ¦   «         t          k    rdnd}t          |
                     dd	¦  «        pd	¦  «                             ¦   «         Š|
                     d
i ¦  «        }t          |t          ¦  «        r7t          |                     |d	¦  «        pd	¦  «                             ¦   «         nd	Šd|› d|› �g}‰r|                     ‰¦  «         ‰r‰‰k    r|                     ‰¦  «         |
                     di ¦  «        Št          ‰t          ¦  «        r,ˆfd„|	D ¦   «         }ˆˆfd„|D ¦   «         }|d„ |D ¦   «         z  }|                     d                     |¦  «        ¦  «         �Œéd                     |¦  «        S )NÚSPATIAL_UPSAMPLER_HELP_INTROz…Spatial upsamplers increase resolution. Visual refiners improve targeted decoded content without necessarily changing its dimensions.r‘   r   r¸   zVisual RefinerzSpatial Upsamplerr³   rA   Úmedia_descriptionsz### u    â€” r²   c           	     ó¢   •— g | ]K\  }}t          |¦  «        t          ‰                     |d ¦  «        pd ¦  «                             ¦   «         f‘ŒLS ru  )r(   rl   rB   )r�   rP   r>   r²   s      €r1   rž   z)spatial_help_markdown.<locals>.<listcomp>ê  sU   ø€ ÐyÐyÐyÑ`mÐ`eÐgm�˜E™
œ
¥CÐ(;×(?Ò(?ÀÈÑ(KÔ(KÐ(QÈrÑ$RÔ$R×$XÒ$XÑ$ZÔ$ZÐ[ÐyÐyÐyr0   c                ó.   •— g | ]\  }}|¯|‰‰fv¯||f‘ŒS r/   r/   )r�   rP   Údetailr³   Úmedia_descriptions      €€r1   rž   z)spatial_help_markdown.<locals>.<listcomp>ë  s\   ø€ ð  Bð  Bð  B©=¨5°&Àvð  BÐRXÐalÐnð  aAð  SAð  SA˜˜v�ð  SAð  SAð  SAr0   c                ó$   — g | ]\  }}d |› d|› �‘ŒS )z- **z:** r/   )r�   rP   r»  s      r1   rž   z)spatial_help_markdown.<locals>.<listcomp>ì  s-   € ÐNÐNÐN±]°U¸FÐ0˜UÐ0Ð0¨Ð0Ð0ÐNÐNÐNr0   z

)ra   r®   Ú
setdefaultrZ   Úitemsrz   r(   rl   r¹   rC   ÚPOSTPROCESSING_CATEGORY_REFINERrB   r´   rx   Újoin)rn   rµ  r´  Úintror{   Úhandler_choicesrP   r>   r'   r%  rg   r‘   r½   r¸  ÚlinesÚdetailsr³   r¼  r²   s                   @@@r1   Úspatial_help_markdownrÆ  Ô  sÔ  øøø€ Ý�JÐ >ð  AHñ  Iô  I€EØˆw€HØ€OØ'ð Lð L‰ˆˆvÝ*¨6Ñ2Ô2ˆØÐØ×&Ò& w°Ñ3Ô3×:Ò:¸EÀ6¸?ÑKÔKÐKøØ+×1Ò1Ñ3Ô3ð ,ñ ,Ñˆ�Ø×1Ò1Ñ3Ô3ˆÝ�;—?’? 6¨7°1¬:°a¬=Ñ9Ô9Ñ:Ô:ˆÝ'*¨;¯?ª?Ð;TÕVwÑ+xÔ+xÑ'yÔ'y×'Ò'ñ  (Bô  (Bõ  Feò  (eð  (eÐ#Ð#ð  k~ˆÝ˜+Ÿ/š/¨-¸Ñ<Ô<ÐBÀÑCÔC×IÒIÑKÔKˆØ(Ÿ_š_Ð-AÀ2ÑFÔFÐÝ\fÐgyÕ{ñ  ]Aô  ]Að  I�CÐ 2× 6Ò 6°}ÀbÑ IÔ IÐ OÈRÑPÔP×VÒVÑXÔXÐXð  GIÐØ-˜Ð-Ð- 8Ð-Ð-Ð.ˆØð 	&Ø�LŠL˜Ñ%Ô%Ð%Øð 	,Ð!2°kÒ!AÐ!AØ�LŠLÐ*Ñ+Ô+Ð+Ø)ŸošoÐ.CÀRÑHÔHÐÝÐ)­4Ñ0Ô0ð 	OØyÐyÐyÐyÐqxÐyÑyÔyˆGð Bð  Bð  Bð  Bð  B¸Gð  Bñ  Bô  BˆGØÐNÐNÀgÐNÑNÔNÑNˆEØ�Š˜Ÿš EÑ*Ô*Ñ+Ô+Ð+Ñ+Ø�;Š;�xÑ Ô Ð r0   c               ó*   — dt          | ||¬¦  «        fS )Nú"Spatial Upsampler / Visual Refiner©rµ  r´  )rÆ  )rn   rµ  r´  s      r1   Úspatial_help_popuprÊ  ñ  s2   € Ø/Õ1FÀ~Ðerð  @Jð  2Kñ  2Kô  2Kð  Kð  Kr0   c               óÔ   — |› d�d                      d„ | D ¦   «         ¦  «        z   }dt          j        |                     d¦  «        ¦  «                             ¦   «         d d…         › �S )NÚ|c              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S rY   r®  )r�   r›  r>   s      r1   rÓ   z"spatial_help_id.<locals>.<genexpr>ö  s,   è è € Ð.`Ð.`¹~¸vÀv­s°6©{¬{Ð.`Ð.`Ð.`Ð.`Ð.`Ð.`r0   Úspatial_upsampling_zutf-8é   )rÁ  ÚhashlibÚsha1ÚencodeÚ	hexdigest)rn   rµ  Ú	signatures      r1   Úspatial_help_idrÕ  õ  so   € Ø Ð#Ð#Ð# c§h¢hÐ.`Ð.`ÐQ_Ð.`Ñ.`Ô.`Ñ&`Ô&`Ñ`€IØ[¥¤¨i×.>Ò.>¸wÑ.GÔ.GÑ!HÔ!H×!RÒ!RÑ!TÔ!TÐUXÐVXÐUXÔ!YÐ[Ð[Ð[r0   )
ro  r   r€  r�  r‚  Úelem_classesÚupdate_formr´  Úhelp_target_idrÙ   r×  rØ  c       
        óü  ‡ ‡‡+‡,— t          |¦  «        pd\  }}t          t          ||¦  «        pd|‰|||¬¦  «        }|rt          nt          }‰                      ¦   «         5  ‰                      |d         |d         ddd|
|¬	¦  «        }|	�zt          |d         ||	¬
¦  «        \  }}t          |d         |¬¦  «        }|r-‰  	                    |	 
                    |
|||¬¦  «        ¬¦  «        n|	                     ||||¬¦  «        }‰                      |d         |d         r|d         nd t          |d         o|d         ¦  «        dd|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰                      |d         d|¬¦  «        }|	€-‰                      t          |d         |¬¦  «        d|¬¦  «        }‰rt           nt"          Š,t%          |pi ¦  «        }t'          |d         ‰,|¦  «        }|d         }i i g cŠ+}}|D �]9}t)          |d         ¦  «        }t+          |¦  «        }||d         v }|d         |         }t)          |                     d|                     t0          ¦  «                             dd¦  «                             ¦   «         ¦  «        ¦  «        } ‰s|                     d| ¦  «        } t)          |                     dd¦  «        pd¦  «        pd }!|dk    rãd d!lm}" ‰                      |¬"¦  «        5 }# |"d#t;          |                     d$d%¦  «        ¦  «        t;          |                     d&d'¦  «        ¦  «        | |t          |                     d(d¦  «        ¦  «         ¬)¦  «        }$|$                     |¬*¦  «         d d d ¦  «         n# 1 swxY w Y   |$j        }%||#g|$                      ¦   «         z   z  }�ng‰                      |¬"¦  «        5 }#|d+k    rY‰  !                    |                     d,d ¦  «        |                     d-d¦  «        ||                     d.d¦  «        | |!|¬/¦  «        }%nÓ|d0k    rC‰                      |                     d1|                     d2d3¦  «        ¦  «        || |!|¬4¦  «        }%nŠ|d5k    r'‰  "                    t          |¦  «        | |!|¬6¦  «        }%n]|d7k    r‰  #                    || |!|¬6¦  «        }%n=‰                      |pd| |!t;          |                     d8d¦  «        ¦  «        |¬9¦  «        }%d d d ¦  «         n# 1 swxY w Y   ||#|%gz  }|%‰+|<   |#||<   �Œ;|d         }&|r|&n‰  $                    |&¦  «        }'ˆ ˆˆ+ˆ,fd:„}(ˆ fd;„})ˆ+fd<„}*|sÊ‰  %                    |j&        g|(|||'g||g| '                    ¦   «         ¢‰+ '                    ¦   «         ¢|'‘d=¬>¦  «         ‰  %                    |j&        g|)||g||gd=¬>¦  «         ‰+rU‰  %                    d?„ ‰+ '                    ¦   «         D ¦   «         |*tQ          ‰+ '                    ¦   «         ¦  «        |'d=¬>¦  «         ||||'||
p|j)        ‰+||g|¢|'‘|g| '                    ¦   «         ¢‰+ '                    ¦   «         ¢|'‘d@œ
S )ANr†  rA   r  rn   r>   Té   rÈ  )r%  rL   Úvisibler2   rP   Úelem_idrÖ  rÉ  )rµ  )ÚtitleÚmarkdown©rL   rc  r2   r   ÚScale)r%  rL   rÛ  r2   rP   rÖ  rL   F)rL   rÛ  rÖ  rš  r‘   r²  rÌ   rP   rò   rU   Ú
label_longr³   r¡  r   )ÚAdvancedMediaGallery©rÛ  r   Úheightéð   Úcolumnsé   r™  )Ú
media_moderä  ræ  rP   ÚinitialÚsingle_image_mode)r×  ÚsliderÚminimumÚmaximumÚstep)rL   rî  rP   ÚinforÖ  Údropdownr%  Úenumr/   )r%  rL   rP   rï  rÖ  rŸ  )rL   rP   rï  rÖ  r   rÄ  )rL   rP   rï  rÄ  rÖ  c                ó‚  •‡‡‡— t          | |¦  «        \  }}}t          |¦  «        }dD ]}|                     |d ¦  «         Œt          | ‰|¦  «        Šd„ ‰d         D ¦   «         Šˆ	ˆ
ˆˆfd„Š‰	                     ||r|nd t          | o|¦  «        ¬¦  «        |gˆ	ˆfd„‰D ¦   «         ¢ˆfd„‰D ¦   «         ¢‰d         ‘R S )	N)Úspatial_upsampler_paramÚspatial_upsampler_param2c                ó    — i | ]}|d          |“ŒS r­  r/   r¯  s     r1   rª   zHcreate_generation_spatial_ui.<locals>.refresh_method.<locals>.<dictcomp>8  s   € ÐmÐmÐm¸)˜ 6Ô*¨IÐmÐmÐmr0   rš  c           
     óÂ  •— ‰|          }d‰d         |          i}t          |¦  «        dk    r§|                     ‰r|                     d¦  «        n(|                     d|                     d¦  «        ¦  «        |                     d¦  «        |                     dd¦  «        |                     d	d
¦  «        |                     dd
¦  «        ¬¦  «          ‰j        di |¤ŽS )NrL   rÌ   rë  rP   rá  r³   rì  r   rí  r   rî  )rP   rï  rì  rí  rî  r/   )r¨  r	  rl   )r‘   rÎ   ÚchangesÚgrr   Úmethod_parameter_stateÚselected_defss      €€€€r1   Úupdate_parameterzNcreate_generation_spatial_ui.<locals>.refresh_method.<locals>.update_parameter:  s  ø€ Ø% dÔ+ˆIØÐ 6°xÔ @ÀÔ FÐGˆGÝ'¨	Ñ2Ô2°hÒ>Ð>Ø—’Ð?Rð  &L Y§]¢]°7Ñ%;Ô%;Ð%;ÐXa×XeÒXeÐfrÐt}÷  uBò  uBð  CJñ  uKô  uKñ  YLô  YLð  S\÷  S`ò  S`ð  anñ  Soô  Soð  yB÷  yFò  yFð  GPð  RSñ  yTô  yTð  ^g÷  ^kò  ^kð  luð  wxñ  ^yô  ^yð  @I÷  @Mò  @Mð  NTð  VWñ  @Xô  @X�ñ  Yô  Yð  YØ�2”9Ð'Ð'˜wÐ'Ð'Ð'r0   )r%  rL   rÛ  c              3  óT   •K  — | ]"}‰                      |‰d          v ¬¦  «        V — Œ#dS )r²  rã  N)r	  )r�   r‘   rø  rù  s     €€r1   rÓ   zGcreate_generation_spatial_ui.<locals>.refresh_method.<locals>.<genexpr>A  s=   øè è € ÐoÐoÐRV�"—)’) DÐ,BÀ8Ô,LÐ$L�)ÑMÔMÐoÐoÐoÐoÐoÐor0   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rY   r/   )r�   r‘   rû  s     €r1   rÓ   zGcreate_generation_spatial_ui.<locals>.refresh_method.<locals>.<genexpr>B  s/   øè è € ÐJÐJ¨TÐ"Ð" 4Ñ(Ô(ÐJÐJÐJÐJÐJÐJr0   rÌ   )rh  rx   ry   r’  r	  rˆ   )r>   rL   Úcurrent_parametersrc  r2   r‘   rù  rú  rû  rø  r   Úparameter_componentsrÅ   s         @@@€€€€r1   Úrefresh_methodz4create_generation_spatial_ui.<locals>.refresh_method2  sG  øøøø€ Ý&KÈFÐTYÑ&ZÔ&ZÑ#ˆ�u˜eÝ!Ð"4Ñ5Ô5ÐØKð 	/ð 	/ˆDØ×"Ò" 4¨Ñ.Ô.Ð.Ð.Ý!3°F¸JÐHZÑ![Ô![ÐØmÐmÐG]Ð^kÔGlÐmÑmÔmˆð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð —	’	 -ÀÐ7W°u°uÐSWÕaeÐflÐf~Ðq~ÑaÔa�	ñ  Aô  Að  CHð nØoÐoÐoÐoÐoÐZnÐoÑoÔoðnàJÐJÐJÐJÐ5IÐJÑJÔJðnàLbÐckÔLlðnð nð 	nr0   c                ó–   •— t          | |¦  «        \  }}}‰                     |t          | ot          | ¦  «        ¦  «        ¬¦  «        |fS )N)rL   rÛ  )rd  r	  rˆ   rG  )r>   r2   rò   rL   rø  s       €r1   Úrefresh_ratioz3create_generation_spatial_ui.<locals>.refresh_ratioD  sK   ø€ Ý4°V¸UÑCÔC‰ˆˆ5�%Ø�yŠy˜u­d°6Ð3XÕ>PÐQWÑ>XÔ>XÑ.YÔ.YˆyÑZÔZÐ\aÐaÐar0   c                 ó>   •— t          t          ‰| ¦  «        ¦  «        S rY   )rx   Úzip)rÌ   rÿ  s    €r1   Úcollect_parametersz8create_generation_spatial_ui.<locals>.collect_parametersH  s   ø€ Ý•CÐ,¨fÑ5Ô5Ñ6Ô6Ð6r0   Úhidden)ÚtriggersÚfnÚinputsÚoutputsÚshow_progressc                ó   — g | ]	}|j         ‘Œ
S r/   )Úchange)r�   r˜  s     r1   rž   z0create_generation_spatial_ui.<locals>.<listcomp>O  s   € Ð\Ð\Ð\°˜IÔ,Ð\Ð\Ð\r0   )
rL   r>   ÚratiorË   ÚhelprØ  rÿ  Úparameter_rowsÚextra_componentsÚmedia_outputs)*r×   r�  r[  rz  ry  ÚRowÚDropdownrÊ  rÕ  r	  Úrender_markerÚbindrˆ   ÚTextboxÚMarkdownrÆ  r“  ÚPARAMETER_UI_POSTPROCESSINGrx   r’  r(   r¨  rl   Úremoveprefixr  ÚreplacerÝ  Úshared.gradio.galleryrâ  r8   ÚmountÚgalleryÚget_toggable_elementsÚSliderÚCheckboxÚNumberÚStateÚonÚinputrÌ   rÉ   rÜ  )-rø  rØ   ro  r   r€  r�  r‚  rÖ  r×  r´  rØ  rÙ   r>   r2   r”  rµ  Úmethod_componentÚ
help_titleÚhelp_markdownÚhelp_idÚhelp_componentÚratio_componentÚvalue_componentÚparameter_stateÚparameter_defsr  Úparameter_extrasrÎ   r‘   r§  rÛ  ré  rP   rï  râ  Úrowr  r˜  Úinitial_parametersÚparameters_componentr   r  r  rÿ  rÅ   s-   `  `                                       @@r1   Úcreate_generation_spatial_uir3  ú  s¦
  øøøø€ Ý*Ð+=Ñ>Ô>ÐKÀ)�M€FˆEÝÕ1°&¸%Ñ@Ô@ÐFÀBÐVcð  zMð  [fð  yIð  ]nð  oñ  oô  o€EØ/<ÐYÕ+Ð+ÕBY€MØ	�Š‰Œð mð mØŸ;š;¨uÐ5EÔ/FÈeÐT\ÌoÐgkÐstð  }að  kyð  HT˜;ñ  Uô  UÐØÐ!Ý(:¸5ÐAQÔ;RÐboð  }Gð  )Hñ  )Hô  )HÑ%ˆJ˜Ý% eÐ,<Ô&=È]Ð[Ñ[Ô[ˆGð NYð  s˜RŸYšY¨Z×-EÒ-EÀnÐV]Ðeoð  {HÐ-Eñ  .Iô  .I˜Yñ  Jô  Jð  Jð  _i÷  _nò  _nð  oð  AHð  PZð  erð  _nñ  _sô  _sˆNØŸ+š+¨e°OÔ.DÐ^cÐdsÔ^tÐL~ÈEÐRYÌNÈNÐz~õ  IMð  NSð  T\ô  N]ð  Nxð  bgð  hwô  bxñ  Iyô  Iyð  ABð  JQð  `l˜+ñ  mô  mˆðmð mð mñ mô mð mð mð mð mð mð møøøð mð mð mð mð —j’j u¨W¤~¸uÐS_�jÑ`Ô`€OØÐØŸšÕ+@ÀÐGWÔAXÐhuÐ+vÑ+vÔ+vð  AEð  T`˜ñ  aô  aˆà5HÐiÕ1Ð1ÕNi€JÝÐ,Ð2°Ñ3Ô3ÐÝ(¨¨x¬¸*ÐFVÑWÔW€OØ$ ]Ô3€NØ=?ÀÀRÐ:Ð˜.Ð*:Ø#ð #ñ #ˆ	Ý�9˜VÔ$Ñ%Ô%ˆÝ1°)Ñ<Ô<ˆØ˜/¨(Ô3Ð3ˆØ! (Ô+¨DÔ1ˆÝ�I—M’M '¨4×+<Ò+<Õ=MÑ+NÔ+N×+VÒ+VÐWZÐ\_Ñ+`Ô+`×+fÒ+fÑ+hÔ+hÑiÔiÑjÔjˆØ"ð 	7Ø—M’M ,°Ñ6Ô6ˆEÝ�9—=’= °Ñ3Ô3Ð9°rÑ:Ô:ÐB¸dˆØ˜XÒ%Ð%ØBÐBÐBÐBÐBÐBà—’ �Ñ(Ô(ð 7¨CØ.Ð.¸'Í#ÈiÏmÊmÐ\dÐfiÑNjÔNjÑJkÔJkÕuxð  zC÷  zGò  zGð  HQð  STñ  zUô  zUñ  vVô  vVð  ^cð  mtõ  LPð  QZ÷  Q^ò  Q^ð  _ið  koñ  Qpô  Qpñ  Lqô  Lqð  Hqð  rñ  rô  r�Ø—’¨+�Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð  œˆIØ  ¨×(EÒ(EÑ(GÔ(GÑ GÑGÐÑà—’ �Ñ(Ô(ð 
Y¨CØ! XÒ-Ð-Ø "§	¢	¨)¯-ª-¸	À1Ñ*EÔ*EÀyÇ}Â}ÐU^Ð`aÑGbÔGbÐjqð  yB÷  yFò  yFð  GMð  OPñ  yQô  yQð  Y^ð  eið  xD 	ñ  !Eô  !E�I�IØ# zÒ1Ð1Ø "§¢°I·M²MÀ)ÈYÏ]Ê]Ð[aÐceÑMfÔMfÑ4gÔ4gÐovð  Dð  KOð  ^j ñ  !kô  !k�I�IØ# zÒ1Ð1Ø "§¢µ$°w±-´-ÀuÐSWÐfr Ñ sÔ s�I�IØ# xÒ/Ð/Ø "§	¢	°¸uÈ4Ð^j 	Ñ kÔ k�I�Ià "§
¢
°°¸BÀeÐRVÕ^aÐbk×boÒboÐpwÐyzÑb{Ôb{Ñ^|Ô^|ð  LX 
ñ  !Yô  !Y�Ið
Yð 
Yð 
Yñ 
Yô 
Yð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yøøøð 
Yð 
Yð 
Yð 
Yð   iÐ 0Ñ0ÐØ%.Ð˜TÑ"Ø"ˆ�tÑÑà(¨Ô2ÐØ1<Ð^Ð-Ð-À"Ç(Â(ÐK]ÑB^ÔB^Ððnð nð nð nð nð nð nð nð$bð bð bð bð bð7ð 7ð 7ð 7ð 7ð ð WØ
�ŠÐ(Ô.Ð/°NÐL\Ð^mð  pDð  LEð  P_ð  apð  OAð  sA÷  sHò  sHñ  sJô  sJð  OAð  Ma÷  Mhò  Mhñ  Mjô  Mjð  OAð  l@ð  OAð  QYˆñ  	Zô  	Zð  	ZØ
�Š˜Ô-Ð.°=ÐJZÐ\kÐIlð  xGð  IXð  wYð  iqˆñ  	rô  	rð  	rØð 	WØ�EŠEÐ\Ð\Ð>R×>YÒ>YÑ>[Ô>[Ð\Ñ\Ô\Ðasõ  }Að  BV÷  B]ò  B]ñ  B_ô  B_ñ  }`ô  }`ð  j~ð  NVˆEñ  Wô  Wð  WØ$Ð0@È?Ðj~ð  IWð  kyð  kUð  }Mô  }UØ$8ÈNÐqð  qjð  CSð  qjð  Uið  qjØ,Ð}¨~×/DÒ/DÑ/FÔ/FÐ}ÐI]×IdÒIdÑIfÔIfÐ}Ðh|Ð}ðð ð s9   Á"C1EÅE#Å&E#ÌBNÎN	Î N	ÏD3TÔT!	Ô$T!	TÚinclude_nameúbool | Nonec                ó6  — g }t          t          |¦  «        D �]h}|                     ¦   «         }|�|                     dd¦  «        }|rdnd|vrŒ8|                     di ¦  «        }|                     dg ¦  «        D �]\  }}	t	          ||	¦  «        sŒt          |                     |	d¦  «        ¦  «        }
|
pd	D ]Ã}|                     |	|¦  «        }|�©|
rt          ||¦  «        nt          |¦  «        }| 	                    t          ||	¦  «        t          |pd
¦  «                             ¦   «         t          |¦  «        t          |pd
¦  «        | r|n|
rt          |¦  «        nt          |¦  «        |f¦  «         ŒÄ�Œ�Œjd„ t          |¦  «        D ¦   «         S )zaFlat (label, value) choices covering every method x multiplier of the post-processing upsamplers.Nrs  ©r   r   r   r   rF  r¢   r/   )rS  rA   c                ó$   — g | ]\  }}}}}}||f‘ŒS r/   r/   )r�   rò   rP   rL   s       r1   rž   z;query_postprocessing_upsampling_choices.<locals>.<listcomp>h  s)   € ÐKÐKÐKÑ7˜q ! Q¨¨5°%ˆU�EˆNÐKÐKÐKr0   )r�   rx  rz   rl   rà   rÊ   rZ  rV   r(   rZ   rè   r#  r3   r=   r$  )r4  r‡   ro  r%  r'   rg   rs  rF  rP   r>   Údeclared_multipliersr2   rL   Údisplay_labels                 r1   Ú'query_postprocessing_upsampling_choicesr;  U  s/  € à€GÝ%Õ&CÀ\ÑRÔRð xñ xˆØ×1Ò1Ñ3Ô3ˆØÐ$Ø—O’O GÐ-?Ñ@Ô@ˆEØ(Ð5��¨g¸eÐCÐCØØ!—o’o m°RÑ8Ô8ˆØ(Ÿ_š_¨Y¸Ñ;Ô;ð 	xñ 	x‰MˆE�6Ý,¨W°fÑ=Ô=ð ØÝ#(¨¯ª¸ÀÑ)DÔ)DÑ#EÔ#EÐ Ø-Ð7°ð xð x�Ø×+Ò+¨F°EÑ:Ô:�ØÐ$ØOcÐ$sÕ$=¸eÀUÑ$KÔ$KÐ$KÕilÐmrÑisÔis�MØ—N’N¥K°¸VÑ$DÔ$DÅcÈ%È+ÐSUÑFVÔFV×F_ÒF_ÑFaÔFaÕchÐinÑcoÔcoÕqtÐuzð  vAð  Añ  rBô  rBð  Uað  Doð  DQð  DQð  J^ð  hnõ  hð  @Eñ  hFô  hFð  hFõ  dgð  hmñ  dnô  dnð  qvð  $wñ  xô  xð  xøñ	xñ		xð LÐK½6À'¹?¼?ÐKÑKÔKÐKr0   c                ó¢  — |                       ¦   «         }t          |                     dd¦  «        pd¦  «                             ¦   «                              ¦   «         }|t
          t          t          fv r|S t          | dd¦  «        rt          S |                     dd¦  «        }|t          fk    rt          S |t          fk    rt          S t
          S )NÚprofilerA   Úuses_image_profileFrs  r/   )	rz   r(   rl   rB   rC   ry  rz  ÚUPSAMPLER_PROFILE_AUDIOra   )r'   rg   r=  rs  s       r1   Úprofile_type_for_handlerr@  k  sÃ   € Ø×-Ò-Ñ/Ô/€KÝ�+—/’/ )¨RÑ0Ô0Ð6°BÑ7Ô7×=Ò=Ñ?Ô?×EÒEÑGÔG€GØÕ*Õ,CÕE\Ð]Ð]Ð]ØˆÝˆwÐ,¨eÑ4Ô4ð 'Ý&Ð&Ø�OŠO˜G RÑ(Ô(€EØÕ(Ð*Ò*Ð*Ý&Ð&ØÕ(Ð*Ò*Ð*Ý&Ð&Ý"Ð"r0   c                ó  — |                       ¦   «         }t          |                     dd¦  «        pd¦  «                             ¦   «         }|r|S t	          |¦  «        }|r|d         d         S | j        j                             ¦   «         S rk   )rz   r(   rl   rB   rm   Ú	__class__r+   rC   )r'   rg   r)   rn   s       r1   Úconfig_key_for_handlerrC  z  sŠ   € Ø×-Ò-Ñ/Ô/€KÝ�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#ØÔÔ%×+Ò+Ñ-Ô-Ð-r0   r�   c                ó¶   — |                       t          i ¦  «        }t          |t          ¦  «        si }|| t          <   n|                      t          |¦  «         |S rY   )rl   ÚUPSAMPLER_CONFIG_KEYr´   rx   r¾  )r�   Úconfigss     r1   Ú_nested_configsrG  …  sZ   € Ø×ÒÕ 4°bÑ9Ô9€GÝ�g�tÑ$Ô$ð @ØˆØ.5ˆÕ*Ñ+Ð+à× Ò Õ!5°wÑ?Ô?Ð?Ø€Nr0   c                ó’   — 	 t          | ¦  «        } n# t          t          f$ r
 t          } Y nw xY w| t          t          fv r| nt          S rY   )r8   rä   rK   ru   ÚPERSIST_RAMrß  s    r1   Únormalize_persistencerJ  �  sV   € ðÝ�E‘
”
ˆˆøÝ•zÐ"ð ð ð Ýˆˆˆðøøøà�n­kÐ:Ð:Ð:ˆ5ˆ5ÅÐNs   ‚ ’-¬-c                ó®   — | €t           n| }|€t          d¦  «        ‚t          t          |¦  «                             t
          t          ¦  «        ¦  «        S )Nz%Spatial upsamplers are not registered)r$   rB  rJ  rG  rl   rt   ru   )r�   r}   s     r1   r   r   —  sN   € Ø)6Ð)>Õ%Ð%ÀM€FØ€~ÝÐBÑCÔCÐCÝ ¥°Ñ!8Ô!8×!<Ò!<Õ=SÕUcÑ!dÔ!dÑeÔeÐer0   c                ó2   — t          | ¦  «        t          k    S rY   )r   rI  )r�   s    r1   r  r  ž  s   € Ý�}Ñ%Ô%­Ò4Ð4r0   c                óR   — t          |¦  «        }|t          | ¦  «        t          <   |S rY   )rJ  rG  rt   )r�   rL   s     r1   Úwrite_persistencerN  ¢  s'   € Ý! %Ñ(Ô(€EØ=B…O�MÑ"Ô"Õ#9Ñ:Ø€Lr0   c                ó¢   — t          | d¦  «        r!t          |                      ¦   «         ¦  «        ni }|                     t          d ¦  «         |S )Nrs   )rw   rx   rs   ry   rt   ©r'   r}   s     r1   Ú_default_configrQ  ¨  sK   € Ý/6°wÐ@PÑ/QÔ/QÐY�T�'×(Ò(Ñ*Ô*Ñ+Ô+Ð+ÐWY€FØ
‡J‚JÕ% tÑ,Ô,Ð,Ø€Mr0   c                ój   — t          | d¦  «        r"t          |                      |¦  «        ¦  «        ni S )NÚlegacy_config)rw   rx   rS  )r'   r�   s     r1   Ú_legacy_configrT  ®  s3   € Ý9@ÀÈ/Ñ9ZÔ9ZÐb�4�×%Ò% mÑ4Ô4Ñ5Ô5Ð5Ð`bÐbr0   útuple[str, ...]c                óh   — t          | d¦  «        r!t          |                      ¦   «         ¦  «        ndS )NÚlegacy_config_keysr/   )rw   rÊ   rW  r[   s    r1   Ú_legacy_config_keysrX  ²  s2   € Ý29¸'ÐCWÑ2XÔ2XÐ`�5�×+Ò+Ñ-Ô-Ñ.Ô.Ð.Ð^`Ð`r0   r}   c                ó¾   — t          | d¦  «        r"t          |                      |¦  «        ¦  «        nt          |¦  «        }|                     t          d ¦  «         |S )NÚnormalize_config_section)rw   rx   rZ  ry   rt   rP  s     r1   Ú_normalize_config_sectionr[  ¶  sV   € Ý?FÀwÐPjÑ?kÔ?kÐ}�T�'×2Ò2°6Ñ:Ô:Ñ;Ô;Ð;ÕquÐv|Ñq}Ôq}€FØ
‡J‚JÕ% tÑ,Ô,Ð,Ø€Mr0   ©Úprefer_legacyr]  c               ó¨  — |                       t          i ¦  «        }t          |¦  «        }t          |t          ¦  «        r|                      |i ¦  «        ni }t          |t          ¦  «        r|ni }t          |t          ¦  «        o||v }|s|st          || ¦  «        ni }i t          |¦  «        ¥t	          |pi ¦  «        ¥|¥}t          ||¦  «        S rY   )rl   rE  rC  r´   rx   rT  rQ  r[  )	r�   r'   r]  rF  r)   ÚnestedÚnested_existsÚlegacyrÌ   s	            r1   Úread_config_sectionrb  ¼  sÔ   € Ø×ÒÕ 4°bÑ9Ô9€GÝ'¨Ñ0Ô0€JÝ,6°wÅÑ,EÔ,EÐMˆW�[Š[˜ RÑ(Ô(Ð(È2€FÝ! &­$Ñ/Ô/Ð7ˆVˆV°R€FÝ˜w­Ñ-Ô-ÐG°*ÀÐ2G€MØ7DÐaÈMÐa�^˜G ]Ñ3Ô3Ð3Ð_a€FØI• Ñ(Ô(ÐI­D°°¸2Ñ,>Ô,>ÐIÀ&ÐI€FÝ$ W¨fÑ5Ô5Ð5r0   r)   c                ó  ‡— t          ˆfd„t          D ¦   «         d ¦  «        }|€U|                      t          i ¦  «        }t	          |t
          ¦  «        r#t          |                     ‰i ¦  «        ¦  «        ni S t          | |¦  «        S )Nc              3  óB   •K  — | ]}t          |¦  «        ‰k    ¯|V — Œd S rY   )rC  )r�   Ú	candidater)   s     €r1   rÓ   z-read_config_section_by_key.<locals>.<genexpr>È  s8   øè è € ÐvÐv )ÕF\Ð]fÑFgÔFgÐkuÒFuÐFu�IÐFuÐFuÐFuÐFuÐvÐvr0   )rì   r   rl   rE  r´   rx   rb  )r�   r)   r'   rF  s    `  r1   Úread_config_section_by_keyrf  Ç  s…   ø€ ÝÐvÐvÐvÐvÕ/BÐvÑvÔvÐx|Ñ}Ô}€GØ€Ø×#Ò#Õ$8¸"Ñ=Ô=ˆÝ4>¸wÍÑ4MÔ4MÐU�t�G—K’K 
¨BÑ/Ô/Ñ0Ô0Ð0ÐSUÐUÝ˜}¨gÑ6Ô6Ð6r0   c                ó¤   — t          |i t          |¦  «        ¥t          |pi ¦  «        ¥¦  «        }|t          | ¦  «        t	          |¦  «        <   |S rY   )r[  rQ  rx   rG  rC  )r�   r'   r}   s      r1   Úwrite_config_sectionrh  Ï  sS   € Ý& wÐ0bµ?À7Ñ3KÔ3KÐ0bÍtÐTZÐT`Ð^`ÑOaÔOaÐ0bÑcÔc€FØFL…O�MÑ"Ô"Õ#9¸'Ñ#BÔ#BÑCØ€Mr0   )r]  Úapply_pre_1_1_defaultsri  c          
     óÈ  ‡ — t          t                               d„ t          D ¦   «         ¦  «        ¦  «        }t	          ‰                      t          d ¦  «        ˆ fd„|D ¦   «         f¦  «        }t          ‰ t          ‰ ¦  «        ¦  «         t          D ]z}t          |¦  «        st          |d¦  «        rYt          ‰ |t          ‰ ||¬¦  «        ¦  «        }|r6t          |d¦  «        r&|                     |¦  «        rt          ‰ ||¦  «         Œ{|D ]}‰                      |d ¦  «         Œt	          ‰                      t          d ¦  «        ˆ fd„|D ¦   «         f¦  «        }||k    S )Nc              3  ó>   K  — | ]}t          |¦  «        D ]}|V — ŒŒd S rY   )rX  )r�   r'   r©   s      r1   rÓ   z+migrate_upsampler_config.<locals>.<genexpr>Ö  s:   è è € Ð%uÐ%u¨gÕXkÐlsÑXtÔXtÐ%uÐ%uÐQT cÐ%uÐ%uÐ%uÐ%uÐ%uÐ%uÐ%ur0   c                óD   •— i | ]}|‰v ¯|‰                      |¦  «        “ŒS r/   r¤   ©r�   r©   r�   s     €r1   rª   z,migrate_upsampler_config.<locals>.<dictcomp>×  s[   ø€ ð  COð  COð  COÐcfÐy|ð  ANð  zNð  zNÀ3È×HYÒHYÐZ]ÑH^ÔH^ð  zNð  zNð  zNr0   rS  r\  ri  c                óD   •— i | ]}|‰v ¯|‰                      |¦  «        “ŒS r/   r¤   rm  s     €r1   rª   z,migrate_upsampler_config.<locals>.<dictcomp>à  s[   ø€ ð  BNð  BNð  BNÐbeÐx{ð  @Mð  yMð  yMÀ#À}×GXÒGXÐY\ÑG]ÔG]ð  yMð  yMð  yMr0   )rÊ   rx   Úfromkeysr   Úreprrl   rE  rN  r   rQ  rw   rh  rb  ri  ry   )	r�   r]  ri  Úlegacy_keysÚbeforer'   r}   r©   Úafters	   `        r1   Úmigrate_upsampler_configrt  Õ  sç  ø€ Ý�ŸšÐ%uÐ%uÕ9LÐ%uÑ%uÔ%uÑuÔuÑvÔv€KÝ�=×$Ò$Õ%9¸4Ñ@Ô@ð  COð  COð  COð  COÐjuð  COñ  COô  COð  Pñ  Qô  Q€FÝ�m¥[°Ñ%?Ô%?Ñ@Ô@Ð@Ý&ð Eð EˆÝ˜7Ñ#Ô#ð 	E¥w¨w¸Ñ'HÔ'Hð 	EÝ)¨-¸ÕBUÐVcÐelð  }Jð  CKñ  CKô  CKñ  Lô  LˆFØ%ð E­'°'Ð;SÑ*TÔ*Tð EÐY`×YwÒYwÐx~ÑYÔYð EÝ$ ]°G¸VÑDÔDÐDøØð %ð %ˆØ×Ò˜#˜tÑ$Ô$Ð$Ð$Ý�-×#Ò#Õ$8¸$Ñ?Ô?ð  BNð  BNð  BNð  BNÐitð  BNñ  BNô  BNð  Oñ  Pô  P€EØ�UŠ?Ðr0   c                óR   — t          | ¦  «        }t          |€|j        n||¦  «        S rY   )rC  rb  r�   )r>   r�   r'   s      r1   Úconfig_for_methodrv  ä  s.   € Ý)¨&Ñ1Ô1€GÝ¸Ð8M˜wÔ4Ð4ÐS`ÐbiÑjÔjÐjr0   ©Úlock_configrx  úlist[UpsamplerConfigBinding]c          
     óÜ  — |                       t          t          |t          |¦  «        ¦  «        d| ¬¦  «        }t	          d t
          t          |fg¦  «        g}t          D ]Š}t          |d¦  «        sŒt          ||t          ||¦  «        ¦  «        }|                     | ||¬¦  «        }|r>|                     t	          |t          |¦  «        t          |¦  «        ¦  «        ¦  «         Œ‹|S )Nz4Spatial Upsampler / Visual Refiner Model Persistence)r%  rL   rP   ÚinteractiveÚcreate_config_uirw  )r  ÚPERSISTENCE_CHOICESrN  r   r&   Ú_SHARED_PERSISTENCE_BINDING_KEYrt   r   rw   rh  rb  r|  rZ   rC  rÉ   )rø  r�   rx  Úshared_persistenceÚbindingsr'   r}   r*   s           r1   r|  r|  é  s  € ØŸšÕ-@ÕHYÐZgÕitð  vCñ  jDô  jDñ  IEô  IEð  MCð  U`ð  Q`˜ñ  aô  aÐÝ& tÕ-LÕPfÐhzÐO{ÐN|Ñ}Ô}Ð~€HÝ&ð nð nˆÝ�wÐ 2Ñ3Ô3ð 	ØÝ% m°WÕ>QÐR_ÐahÑ>iÔ>iÑjÔjˆØ×+Ò+¨B°ÀKÐ+ÑPÔPˆØð 	nØ�OŠOÕ2°7Õ<RÐSZÑ<[Ô<[Õ]aÐbjÑ]kÔ]kÑlÔlÑmÔmÐmøØ€Or0   r€  c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r/   )r*   )r�   Úbindingrò   r˜  s       r1   rž   z%config_components.<locals>.<listcomp>÷  s,   € ÐSÐSÐS˜'À'ÔBRÐSÐS±,°!°YˆIÐSÐSÐSÐSr0   r/   )r€  s    r1   Úconfig_componentsr„  ö  s   € ØSÐS XÐSÑSÔSÐSr0   údict[str, dict[str, Any]]c                ó¶  — t          |pg ¦  «        }i d}}| D ]ž}i }|j        D ]7\  }}|t          |¦  «        k    rt          d¦  «        ‚||         ||<   |dz  }Œ8|j        €!t
          t          |t
                   ¦  «        in*t          |j        i t          |j        ¦  «        ¥|¥¦  «        ||j	        <   ŒŸ|t          |¦  «        k    rt          d¦  «        ‚|S )Nr   zCSpatial upsampler config UI values do not match registered controlsr   )
rÉ   r*   rJ   rK   r'   rt   rJ  r[  rQ  r)   )r€  rÌ   ÚupdatesÚindexrƒ  r}   Úfieldrò   s           r1   Úcollect_config_updaterŠ  ú  sD  € Ý�&�,˜BÑÔ€FØ˜ˆU€GØð qð qˆØˆØÔ(ð 	ð 	‰HˆE�1Ø�˜F™œÒ#Ð#Ý Ð!fÑgÔgÐgØ" 5œMˆF�5‰MØ�Q‰JˆEˆEð zAô  zIð  zQÕ'=Õ?TÐU[Õ\rÔUsÑ?tÔ?tÐ&uÐ&uõ  Wpð  qxô  q@ð  Bpõ  ETð  U\ô  Udñ  Eeô  Eeð  Bpð  ioð  Bpñ  Wqô  Wqˆ�Ô"Ñ#Ð#Ø•�F‘”ÒÐÝÐ^Ñ_Ô_Ð_Ø€Nr0   r‡  ú	list[str]c                óL  — g }| D ]ž}|j         €Œ
|j        |v r‹t          |j         d¦  «        rv|j                              ||j                 ¦  «        }t	          |t
          ¦  «        r|r|                     |¦  «         Œzt	          |t          ¦  «        r|d„ |D ¦   «         z  }ŒŸ|S )NÚvalidate_config_sectionc                ó   — g | ]}|¯|‘ŒS r/   r/   )r�   rM   s     r1   rž   z3validate_config_update_messages.<locals>.<listcomp>  s   € Ð>Ð>Ð> d¸Ð>˜TÐ>Ð>Ð>r0   )r'   r)   rw   r�  r´   r(   rZ   rÉ   )r€  r‡  Úmessagesrƒ  Úmessages        r1   Úvalidate_config_update_messagesr‘  
  s½   € Ø€HØð ?ð ?ˆØŒ?Ð"ØØÔ Ð(Ð(­W°W´_ÐF_Ñ-`Ô-`Ð(Ø”o×=Ò=¸gÀgÔFXÔ>YÑZÔZˆGÝ˜'¥3Ñ'Ô'ð ?¨Gð ?Ø—’ Ñ(Ô(Ð(Ð(Ý˜G¥TÑ*Ô*ð ?ØÐ>Ð>¨gÐ>Ñ>Ô>Ñ>�øØ€Or0   c                óÀ   — |D ]Z}|j         |v rO|j        €'t          | ||j                  t                   ¦  «         Œ9t	          | |j        ||j                  ¦  «         Œ[d S rY   )r)   r'   rN  rt   rh  )r�   r€  r‡  rƒ  s       r1   Úapply_config_updater“    ss   € Øð bð bˆØÔ Ð(Ð(ØŒÐ&Ý! -°¸Ô9KÔ1LÕMcÔ1dÑeÔeÐeÐeå$ ]°G´OÀWÈWÔM_ÔE`ÑaÔaÐaøðbð br0   Ú
old_configÚ
new_configc                ó”  — t          |¦  «        }t          | ¦  «        t          |¦  «        k    rt          nd }|�t          |¦  «         t          D ]v}t          |d¦  «        sŒt          | |¦  «        }t          ||¦  «        }t          |d¦  «        r|                     |||¦  «        }n||k    }|r||urt          |¦  «         Œwd S )Nr”   Úconfig_requires_release)r�  r   r"   r—   r   rw   rb  r—  )r”  r•  Úchanged_keysÚreleased_handlerr'   Úold_sectionÚnew_sectionÚshould_releases           r1   Ú!release_changed_config_upsamplersr�  !  sñ   € Ý�|Ñ$Ô$€LÝ4?À
Ñ4KÔ4KÍ{Ð[eÑOfÔOfÒ4fÐ4fÕ0Ð0ÐlpÐØÐ#Ý"Ð#3Ñ4Ô4Ð4Ý&ð 
0ð 
0ˆÝ�w Ñ/Ô/ð 	ØÝ)¨*°gÑ>Ô>ˆÝ)¨*°gÑ>Ô>ˆÝ�7Ð5Ñ6Ô6ð 	8Ø$×<Ò<¸[È+ÐWcÑdÔdˆNˆNà(¨KÒ7ˆNØð 	0˜gÐ-=Ð=Ð=Ý& wÑ/Ô/Ð/øð
0ð 
0r0   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                ó\   — |                       ¦   «         }d„ t          |¦  «        D ¦   «         S )Nc                ó   — g | ]\  }}|‘ŒS r/   r/   rñ   s      r1   rž   z7SimpleScaleSuffixMixin._method_keys.<locals>.<listcomp>8  s   € Ð?Ð?Ð?™˜˜3�Ð?Ð?Ð?r0   )rz   rm   )Úselfrg   s     r1   Ú_method_keysz#SimpleScaleSuffixMixin._method_keys6  s/   € Ø×.Ò.Ñ0Ô0ˆØ?Ð?¥/°+Ñ">Ô">Ð?Ñ?Ô?Ð?r0   c                ó   — t          |pd¦  «                             ¦   «                              ¦   «         }t          |                      ¦   «         t
          d¬¦  «        D ]ž}|                     |¦  «        r‡|t          |¦  «        d …         }t          |                      ¦   «          	                    di ¦  «         	                    |d¦  «        ¦  «        }|s
|s|dfnd c S t          ||d¦  «        }|€d n||fc S ŒŸd S )NrA   T)r©   ÚreverserF  r/   rS  rR  )r(   rB   rC   r$  r£  rJ   rI   rÊ   rz   rl   rO   )r¢  rL   rM   r>   rN   rF  r2   s          r1   rô   z"SimpleScaleSuffixMixin.split_value:  s  € Ý�5�;˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ˆÝ˜T×.Ò.Ñ0Ô0µcÀ4ÐHÑHÔHð 	Bð 	BˆFØ�Š˜vÑ&Ô&ð BØ�c &™kœk˜l˜lÔ+�Ý# D×$<Ò$<Ñ$>Ô$>×$BÒ$BÀ=ÐRTÑ$UÔ$U×$YÒ$YÐZ`ÐbdÑ$eÔ$eÑfÔf�Ø"ð AØ06Ð@˜F C˜=˜=¸DÐ@Ð@Ð@Ý/°°f¸cÑBÔB�Ø$˜}�t�t°6¸5°/ÐAÐAÐAðBð ˆtr0   c                ó®  — t          |pd¦  «                             ¦   «                              ¦   «         }||                      ¦   «         vrd S |                      ¦   «                              di ¦  «                             |d¦  «        }|s|S t          |pd¦  «        }||vr$t          |                      ¦   «         |¦  «        pd}t          ||¦  «        S )NrA   rF  r/   r   )	r(   rB   rC   r£  rz   rl   r3   rP  rE   )r¢  r>   r2   rF  s       r1   rZ  z"SimpleScaleSuffixMixin.build_valueF  sÓ   € Ý�V�\˜rÑ"Ô"×(Ò(Ñ*Ô*×0Ò0Ñ2Ô2ˆØ˜×*Ò*Ñ,Ô,Ð,Ð,Ø�4Ø×.Ò.Ñ0Ô0×4Ò4°]ÀBÑGÔG×KÒKÈFÐTVÑWÔWˆØð 	ØˆMÝ�e�j˜qÑ!Ô!ˆØ˜Ð#Ð#Ý0°×1IÒ1IÑ1KÔ1KÈVÑTÔTÐYÐXYˆEÝ& v¨uÑ5Ô5Ð5r0   r4   rˆ   c                ó0   — |                       |¦  «        d uS rY   )rô   )r¢  rL   s     r1   rë   z$SimpleScaleSuffixMixin.is_upsamplingR  s   € Ø×Ò Ñ&Ô&¨dÐ2Ð2r0   N©r4   rˆ   )r+   r,   r-   Ú__doc__r£  rô   rZ  rë   r/   r0   r1   rŸ  rŸ  3  s^   € € € € € ØeÐeð@ð @ð @ð
ð 
ð 
ð
6ð 
6ð 
6ð3ð 3ð 3ð 3ð 3ð 3r0   rŸ  c                  óX   — e Zd Z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„ ZdS )ÚWanVaeUpsamplera!  Capability declaration for the Wan VAE 2x upscaling decoder.

    VAE upsamplers are plugged directly into model pipelines: models declare
    support through their model def and the upsampler API decides whether a main
    model reload or an external VAE upsampler runtime is needed.
    Nc                ó   — d S rY   r/   )r¢  r�   r‚   s      r1   Ú__init__zWanVaeUpsampler.__init__^  s   € Øˆr0   r4   rh   c                óL   — dt           fdt          ddddig dgddidt          dd	œS )
NúVAE Upscalingr7  r   é   )r¯  r   )rS  rR  zvae*2zµRuns through the compatible generation model's existing VAE path, so it adds no separate decoded-media pass and has little extra VRAM impact. It can create more detail than Lanczos.)r‘   rŠ   rs  r=  r)   râ   rç   r¢   r£   rF  rN  r¸   r³   )r"  ry  r¹   )r¢  s    r1   rz   z#WanVaeUpsampler.query_upsampler_defa  sJ   € à#Ý 2Ð4Ø'Ý.ØØØ  "˜+ØØ4Ð5Ø! :Ð.Ø*1Ý'Hð Sð
ð 
ð 	
r0   r  r8   r(   c                óˆ   — |                       |¦  «        }|�*|d         |                      ¦   «         d         d         v rdndS )Nr   rF  r   rA   z2VAE Spatial Upsampling only supports x1.0 and x2.0)rô   rz   )r¢  rØ   r  rÚ   s       r1   r  z#WanVaeUpsampler.validate_upsamplingr  sS   € Ø× Ò Ð!3Ñ4Ô4ˆØÐ&¨5°¬8°t×7OÒ7OÑ7QÔ7QÐR_Ô7`ÐafÔ7gÐ+gÐ+gˆrˆrð  nbð  	br0   rˆ   c                ó>   — |dk    o||                      dg ¦  «        v S )Nr   Úvae_upsamplerr¤   )r¢  r>   r  r  r  s        r1   r  z)WanVaeUpsampler.supports_model_vae_methodv  s%   € Ø˜ŠÐS :°·²¸ÐPRÑ1SÔ1SÐ#SÐSr0   r'  c                ót   — |                       ||¦  «        }|r|S |                      d|||¦  «        rdnd|› �S )Nr   rA   z,VAE Spatial Upsampling is not available for )r  r  )r¢  rØ   r  r  r  r'  r  s          r1   r)  z-WanVaeUpsampler.validate_model_vae_upsamplingy  si   € Ø×(Ò(Ð);¸ZÑHÔHˆØð 	ØˆLØ×3Ò3°E¸:ÀyÐR\Ñ]Ô]ð  [ˆrˆrð  d[ð  SYð  d[ð  d[ð  	[r0   r†   c                ó:   — |                       d|||¦  «        r|nd S )Nr   )r  ©r¢  rØ   r  r  r  s        r1   r,  z+WanVaeUpsampler.model_load_upsampling_value  s*   € Ø%)×%CÒ%CÀEÈ:ÐW`ÐblÑ%mÔ%mÐwÐ!Ð!ÐswÐwr0   c                ól   — |�%t          |d¦  «        rt          |j        d¦  «        sd n|j        j        S )Nr   Úupsampling_set)rw   r   r¸  )r¢  r1  s     r1   r0  z1WanVaeUpsampler.loaded_model_vae_upsampling_value‚  s?   € Ø�}­G°E¸5Ñ,AÔ,A�}ÍÐQVÔQZÐ\lÑImÔIm�}ˆtˆtÐsxÔs|ô  tLð  	Lr0   c                ó
   — d|iS )NÚVAE_upsamplingr/   r¶  s        r1   r3  z4WanVaeUpsampler.model_load_kwargs_for_vae_upsampling…  s   € Ø Ð"4Ð5Ð5r0   c                ó”   — |                       |¦  «        }|�0|d         dk    r$ddlm} ddlm}  ||d|j        j        ¬¦  «        S |S )Nr   rS  r   )ÚImage)Úresize_lanczos_spatialg      à?rK  )rô   ÚPILr¼  Úpostprocessing.lanczosr½  Ú
ResamplingÚBICUBIC)r¢  r  rØ   rÚ   r¼  r½  s         r1   r6  z1WanVaeUpsampler.post_model_process_vae_upsamplingˆ  so   € Ø× Ò Ð!3Ñ4Ô4ˆØÐ  q¤¨S¢ Ø!Ð!Ð!Ð!Ð!Ð!ØEÐEÐEÐEÐEÐEà)Ð)¨&°#¸eÔ>NÔ>VÐWÑWÔWÐWØˆr0   )NN©r4   rh   ©r  r8   r4   r(   )r  r8   r4   rˆ   ©r  r8   r'  r(   r4   r(   ©r  r8   r4   r†   ©r4   r†   ©r  r8   r4   rh   )r+   r,   r-   r©  r­  rz   r  r  r)  r,  r0  r3  r6  r/   r0   r1   r«  r«  V  sá   € € € € € ðð ðð ð ð ð
ð 
ð 
ð 
ð"bð bð bð bðTð Tð Tð Tð[ð [ð [ð [ðxð xð xð xðLð Lð Lð Lð6ð 6ð 6ð 6ðð ð ð ð r0   r«  )r2   r3   r4   r(   )r>   r(   r2   r3   r4   r(   )r>   r(   rF   r3   r4   rG   )rP   r(   r4   r(   )rP   r(   r2   r3   r4   r(   )r4   rW   )r]   r(   )rg   rh   ri   r(   r4   r(   rY   )rp   rq   r4   rh   )rp   rq   r4   rW   )NF)r…   r†   r‡   rˆ   r4   r   r¨  )r4   r(   )r…   r†   r‡   rˆ   r4   rš   )rg   rh   r4   r    )rg   rh   r4   r¦   )r4   r¬   )r¿   )rÅ   r†   r4   rš   )rÐ   r(   r4   rˆ   rÂ  )rP   r(   r>   r(   r4   r(   )r>   r(   r4   rˆ   )rg   rh   r4   r3   )rg   rh   r>   r(   r4   r3   )r4   r!   rÃ  )r>   r(   r  r8   r4   rˆ   )r  r8   r4   r    rÄ  rÅ  rÆ  rÇ  )r4   r   )r4   rD  )r4   rH  )rg   rh   r>   r(   r4   rG   )r4   r3   )r4   rW  )r4   r`  )r4   re  )ri  rj  r4   rk  )FF)ro  rˆ   r   rˆ   r4   rp  )
ro  rˆ   r   rˆ   r€  rƒ  r�  r„  r4   rh   )ro  rˆ   r4   rh   )rÅ   r(   r4   rš   )rÎ   rh   r4   r(   )rÎ   rh   )rÅ   r(   r4   rh   )rµ  r(   r4   r(   )rµ  r(   r4   rj  )ro  rˆ   r   rˆ   r€  rƒ  r�  r„  r×  rˆ   rØ  r†   r4   rh   )TFN)r4  rˆ   r‡   rˆ   ro  r5  r4   r    )r�   rh   r4   rh   )r4   r8   )r�   r#   r4   r8   )r�   r#   r4   rˆ   )r�   rh   r4   r8   )r4   rU  )r}   rh   r4   rh   )r�   rh   r]  rˆ   r4   rh   )r�   rh   r)   r(   r4   rh   )r�   rh   r}   rh   r4   rh   )r�   rh   r]  rˆ   ri  rˆ   r4   rˆ   )r�   r#   r4   rh   )r�   rh   rx  rˆ   r4   ry  )r€  ry  r4   r   )r€  ry  r4   r…  )r€  ry  r‡  r…  r4   r‹  )r�   rh   r€  ry  r‡  r…  r4   rW   )r”  rh   r•  rh   r4   rW   )•r©  Ú
__future__r   Údataclassesr   rÐ  rb   ÚsysÚtypingr   Úshared.attentionr   Úshared.utilsr   Úmodel_contextr	   Úprocessor_statusr
   r   r   r   r   rƒ   r¾  r+   rx  r"  r¹   rÀ  rº   r  r  r“  ÚPARAMETER_UI_MEDIA_FLOWry  rz  r?  rE  rt   ru   rI  r}  r~  rD   rv   r   r.   r�  r    r"   r$   r&   r:   r=   rE   rO   rS   rV   r\   rf   ro   r~   r„   r�   r‹   r’   r—   r™   rŸ   rm   r«   r°   r¶   r¾   rÃ   rÇ   rÕ   rÛ   rÝ   rà   rå   rè   rî   rö   rú   rý   rÿ   r  r  r  r&  r)  r.  r0  r3  r6  r8  r:  r=  r®   rC  rG  rL  rP  rT  rV  r×   r[  r^  r*  rd  rh  rn  r~  r�  r•  r�  r¨  rª  r’  rÆ  rÊ  rÕ  r3  r;  r@  rC  rG  rJ  r   r  rN  rQ  rT  rX  r[  rb  rf  rh  rt  rv  r|  r„  rŠ  r‘  r“  r�  rŸ  r«  r/   r0   r1   ú<module>rÑ     s  ððOð Oð Oðb #Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø )Ð )Ð )Ð )Ð )Ð )Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð „× Ò Ð2°C´KÀÔ4IÑ JÔ JÐ Jà 0Ð ØÐ Ø$/Ð !Ø"+Ð Ø>Ð@_Ð`Ð Ø'Ð Ø.Ð Ø#8Ð  Ø&Ð Ø!Ð Ø!Ð Ø!Ð Ø+Ð Ø&Ð Ø€Ø€Ø*¨NÐ;Ð>QÐS^Ð=_Ð`Ð Ø":Ð ØÐ ð
ð 
ð 
Ð ð "$Ð Ð #Ð #Ð #Ñ #Ø03°±´Ð #Ð 5Ð 5Ð 5Ñ 5Ø(,Ð Ð ,Ð ,Ð ,Ñ ,Ø26Ð Ð 6Ð 6Ð 6Ñ 6ð ð$ð $ð $ð $ð $ñ $ô $ñ „ð$ðCð Cð Cð Cð
*ð *ð *ð *ðbð bð bð bðð ð ð ð$7ð 7ð 7ð 7ðLð Lð Lð Lð,ð ,ð ,ð ,ð
Eð Eð Eð Eð
!ð !ð !ð !ðð ð ð ð ð
6ð 
6ð 
6ð 
6ð 
6ðð ð ð ð ð@ð @ð @ð @ð6ð 6ð 6ð 6ð)ð )ð )ð )ð(ð (ð (ð (ðkð kð kð kð kðOð Oð Oð OðGð Gð Gð GðMð Mð Mð Mð	Að 	Að 	Að 	Aðdð dð dð dðFð Fð Fð Fð Fð
 ;?ð ð ð ð ð ð ð$wð wð wð wðð ð ð ð$lð lð lð lðXð Xð Xð Xðð ð ð ð%ð %ð %ð %ðqð qð qð qðoð oð oð oðkð kð kð kðsð sð sð sð>ð >ð >ð >ð TXÐnrð 4ð 4ð 4ð 4ð 4ð6
ð 
ð 
ð 
ðJð Jð Jð JðKð Kð Kð Kð|ð |ð |ð |ðfð fð fð fðð ð ð ðoð oð oð oðQð Qð QðYð Yð Yð Yð
Gð Gð Gð,ð ,ð ,ð ,ð
ð ð ð ðð ð ð ð\ð \ð \ð \ð]ð ]ð ]ð ]ð
ð 
ð 
ð 
ðWð Wð Wð WðTð Tð Tð TðCð Cð Cð Cð
Kð Kð Kð Kð
	ð 	ð 	ð 	ðqð qð qð qð"cð cð cð cñRð Rð Rð Rñ
Dð Dð Dð Dñbñ bð bð bð bð$ AFÐchð  W[ð  AEð  Y]ð 
@ð 
@ñ 
@ð 
@ð 
@ð 
@ð _cð ð ñ ð ð ð ñ&ð &ð &ð &ñ$fð fð fð fñ
=ð =ð =ð =ð
Lñ Lð Lð Lð Lð MQð !ð !ñ !ð !ð !ð !ð: JNð Kð Kñ Kð Kð Kð Kñ\ð \ð \ð \ð
 SXÐuzð  imð  SWð  koð  ~Bð  X]ð  jnð  MQð  dhð Xð Xñ Xð Xð Xð XñvLñ Lð Lð Lð Lð,#ð #ð #ð #ð.ð .ð .ð .ñð ð ð ñOð Oð Oð Oðfñ fð fð fð fð5ñ 5ð 5ð 5ð 5ñð ð ð ðð ð ð ñcð cð cð cñað að að añð ð ð ð Z_ð 6ð 6ñ 6ð 6ð 6ð 6ñ7ð 7ð 7ð 7ñð ð ð ð V[ð  |Að ð ñ ð ð ð ðkñ kð kð kð kð
 PUð 
ð 
ñ 
ð 
ð 
ð 
ñTð Tð Tð Tñð ð ð ñ ð ð ð ñbð bð bð bñ0ð 0ð 0ð 0ð$ 3ð  3ð  3ð  3ð  3ñ  3ô  3ð  3ðF9ð 9ð 9ð 9ð 9Ð,ñ 9ô 9ð 9ð 9ð 9r0   