§
    nF§jã;  ã                  ó  — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZmZmZ dZdZd	Zd
ZdZdZdAd„ZdBd„ZdCd„ZdDd„ZdDd„ZdEd„ZdFdGd'„ZdHd+„ZdHd,„ZdId.„ZdHd/„ZdJd1„Z d2d3œdHd4„Z!d2d3œdKd5„Z"dLd7„Z#dMd:„Z$dNd@„Z%dS )OzAReusable discovery metadata for registered WanGP post-processors.é    )ÚannotationsN)ÚAny)Úaudio_processorsÚspatial_upsamplersÚtemporal_upsamplers)ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDÚPROCESSOR_STATUS_UNKNOWNÚspatial_upsamplingÚtemporal_upsamplingÚ
soundtrackÚvoice_replacementÚ
audio_edit)	ÚnameÚtypeÚdescriptionÚrequiredÚdefaultÚenumÚminimumÚmaximumÚ
media_typeÚhandler_defúdict[str, Any]ÚmethodÚstrÚfallbackÚreturnc                ó(  — |                       di ¦  «        }t          |t          ¦  «        r/||v r+t          ||         pd¦  «                             ¦   «         p|S t          |                       dd¦  «        pd¦  «                             ¦   «         p|S )NÚmethod_descriptionsÚ r   )ÚgetÚ
isinstanceÚdictr   Ústrip)r   r   r   Údescriptionss       ú/C:\Users\johnn\Wan2GP\postprocessing\catalog.pyÚ_method_descriptionr(      sŽ   € Ø—?’?Ð#8¸"Ñ=Ô=€LÝ�,¥Ñ%Ô%ð C¨&°LÐ*@Ð*@Ý�< Ô'Ð-¨2Ñ.Ô.×4Ò4Ñ6Ô6ÐB¸(ÐBÝˆ{�Š˜}¨bÑ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ÐLÀHÐLó    úlist[dict[str, Any]]c                ó¾  — |                       di ¦  «        }t          |t          ¦  «        sg S |                      |d¦  «        }t          |t          t          f¦  «        sg S g }|D ]ö}t          |t          ¦  «        r7t          |                      dd¦  «        pd¦  «                             ¦   «         sŒOt          j        |¦  «        }| 	                    dd¦  «         | 	                    dd¦  «         | 	                    d	t          |d         ¦  «         
                    d
d¦  «                             ¦   «         dz   ¦  «         |                     |¦  «         Œ÷|S )NÚmethod_parameters© r   r!   r   Ústringr   Tr   Ú_Ú ú.)r"   r#   r$   ÚlistÚtupler   r%   ÚcopyÚdeepcopyÚ
setdefaultÚreplaceÚ
capitalizeÚappend)r   r   Ú
parametersr,   Ú
normalizedÚ	parameters         r'   Ú_method_parametersr=      sS  € Ø—’Ð!4°bÑ9Ô9€JÝ�j¥$Ñ'Ô'ð Øˆ	Ø"Ÿš v¨rÑ2Ô2ÐÝÐ'­$µ¨Ñ7Ô7ð Øˆ	Ø€JØ&ð %ð %ˆ	Ý˜)¥TÑ*Ô*ð 	µ#°i·m²mÀFÈBÑ6OÔ6OÐ6UÐSUÑ2VÔ2V×2\Ò2\Ñ2^Ô2^ð 	ØÝ”M )Ñ,Ô,ˆ	Ø×Ò˜V XÑ.Ô.Ð.Ø×Ò˜Z¨Ñ.Ô.Ð.Ø×Ò˜]­C°	¸&Ô0AÑ,BÔ,B×,JÒ,JÈ3ÐPSÑ,TÔ,T×,_Ò,_Ñ,aÔ,aÐdgÑ,gÑhÔhÐhØ×Ò˜)Ñ$Ô$Ð$Ð$ØÐr)   ÚinferredÚdeclaredc                óü   ‡— d„ | D ¦   «         Št          ‰¦  «        }|D ]P}t          |d         ¦  «        }|‰vr|                     |¦  «         i ‰|<   ‰|                              |¦  «         ŒQˆfd„|D ¦   «         S )Nc                ó^   — i | ]*}t          |d          ¦  «        t          j        |¦  «        “Œ+S ©r   )r   r4   r5   ©Ú.0r<   s     r'   ú
<dictcomp>z%_merge_parameters.<locals>.<dictcomp>1   s1   € ÐYÐYÐYÀ9�c�)˜FÔ#Ñ$Ô$¥d¤m°IÑ&>Ô&>ÐYÐYÐYr)   r   c                ó    •— g | ]
}‰|         ‘ŒS r-   r-   )rD   r   Úmergeds     €r'   ú
<listcomp>z%_merge_parameters.<locals>.<listcomp>9   s   ø€ Ð+Ð+Ð+˜TˆF�4ŒLÐ+Ð+Ð+r)   )r2   r   r9   Úupdate)r>   r?   Úorderr<   r   rG   s        @r'   Ú_merge_parametersrK   0   sž   ø€ ØYÐYÐPXÐYÑYÔY€FÝ�‰LŒL€EØð 'ð 'ˆ	Ý�9˜VÔ$Ñ%Ô%ˆØ�vÐÐØ�LŠL˜ÑÔÐØˆF�4‰LØˆtŒ×Ò˜IÑ&Ô&Ð&Ð&Ø+Ð+Ð+Ð+ UÐ+Ñ+Ô+Ð+r)   c                ó   — d„ | D ¦   «         S )zCReturn only parameter metadata an assistant needs to make the call.c                ó6   ‡— g | ]Šˆfd „t           D ¦   «         ‘ŒS )c                óN   •— i | ]!}|‰v ¯|t          j        ‰|         ¦  «        “Œ"S r-   )r4   r5   )rD   Úkeyr<   s     €r'   rE   z.call_parameters.<locals>.<listcomp>.<dictcomp>?   s5   ø€ ÐfÐfÐf°CÐUXÐ\eÐUeÐUeˆS•$”- 	¨#¤Ñ/Ô/ÐUeÐUeÐUer)   )Ú_CALL_PARAMETER_FIELDSrC   s    @r'   rH   z#call_parameters.<locals>.<listcomp>?   sB   ø€ ð  Dð  Dð  DÐktÐfÐfÐfÐfÕ;QÐfÑfÔfð  Dð  Dð  Dr)   r-   )r:   s    r'   Úcall_parametersrQ   <   s-   € ð Dð  Dð  yCð  Dñ  Dô  Dð  Dr)   c                ó„   — t          j        | ¦  «        }|D ](}t          |                     dd¦  «        ¦  «        |d<   Œ)|S )zHRemove handler runtime and UI metadata from assistant discovery results.r:   r-   )r4   r5   rQ   r"   )Ú	processesÚoutputÚprocesss      r'   Úcall_processesrV   B   sL   € õ Œ]˜9Ñ%Ô%€FØð Oð OˆÝ /°·²¸LÈ"Ñ0MÔ0MÑ NÔ Nˆ�ÑÐØ€Mr)   c                ó,   — ddddt          | ¦  «        dœS )NÚ
multiplierÚnumberzOutput scale multiplier.T)r   r   r   r   r   )r2   )Úmultiplierss    r'   Ú_multiplier_parameterr[   K   s(   € àØØ1ØÝ�[Ñ!Ô!ðð ð r)   Ú
process_idÚlabelr   Úprocess_typeÚmediaútuple[str, ...]r:   Úcategoryú
str | NoneÚstatusÚreason_disabledc               óÒ   — t          | ¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        ||dœ}	|rt          |¦  «        |	d<   |r||	d<   |	S )N)Úidr]   r   r   r_   r:   rc   ra   rd   )r   r2   )
r\   r]   r   r^   r_   r:   ra   rc   rd   rU   s
             r'   Ú_processrg   U   sw   € å�*‰oŒoÝ�U‘”Ý˜;Ñ'Ô'Ý�LÑ!Ô!Ý�e‘”Ø Øðð €Gð ð ,Ý! (™mœmˆ�
ÑØð 5Ø%4ˆÐ!Ñ"Ø€Nr)   r   Úenabled_onlyÚboolc                óÐ  — g }t          j        t           j        |¦  «        D �]¨}|                     ¦   «         }t          j        |¦  «        }t          j        |¦  «        }t          |                     dd¦  «        ¦  «        }| |vrŒg|                     di ¦  «        }|                     dd¦  «        D �]\  }	}
t          |d¦  «        r| 	                    |
¦  «        sŒ,t          |d¦  «        r| 
                    |	|
¦  «        n|	}t          |                     |
d¦  «        ¦  «        }|rt          |¦  «        gng }t          ||
d| › d	|› d
�¦  «        }t          j        |
¦  «        }|                     t          ||
¦  «        t!          |
||t"          |t%          |t'          ||
¦  «        ¦  «        |||¬¦	  «	        f¦  «         �Œ�Œªd„ t)          |d„ ¬¦  «        D ¦   «         S )Nr_   )ÚvideoÚimagerZ   Úmethodsr-   Úmethod_availableÚformat_method_labelzSpatially upscale the z with r1   ©rc   rd   c                ó   — g | ]\  }}|‘ŒS r-   r-   ©rD   r/   rU   s      r'   rH   z&_spatial_processes.<locals>.<listcomp>y   ó.   € ð  Að  Að  A™
˜˜7ˆGð  Að  Að  Ar)   c                ól   — | d         | d         d                               ¦   «         | d         d         fS ©Nr   é   r]   rf   ©Úcasefold©Úitems    r'   ú<lambda>z$_spatial_processes.<locals>.<lambda>y   ó7   € È$ÈqÌ'ÐSWÐXYÔSZÐ[bÔSc×SlÒSlÑSnÔSnÐptÐuvÔpwÐx|Ôp}ÐI~€ r)   ©rO   )r   Úupsampler_handlersÚUPSAMPLER_TYPE_POSTPROCESSINGÚquery_upsampler_defÚhandler_statusÚhandler_reason_disabledr3   r"   Úhasattrrn   ro   r[   r(   Úmethod_categoryr9   Ú_method_positionrg   ÚPROCESS_TYPE_SPATIAL_UPSAMPLINGrK   r=   Úsorted)r   rh   rS   Úhandlerr   rc   rd   r_   Úmultipliers_by_methodr]   r   Údisplay_labelrZ   r>   r   ra   s                   r'   Ú_spatial_processesr‹   f   sw  € Ø€IÝ%Ô8Õ9KÔ9iÐkwÑxÔxð \ñ \ˆØ×1Ò1Ñ3Ô3ˆÝ#Ô2°7Ñ;Ô;ˆÝ,ÔDÀWÑMÔMˆÝ�k—o’o gÐ/AÑBÔBÑCÔCˆØ˜UÐ"Ð"ØØ +§¢°¸rÑ BÔ BÐØ(Ÿ_š_¨Y¸Ñ;Ô;ð 	\ñ 	\‰MˆE�6Ý�wÐ 2Ñ3Ô3ð ¸G×<TÒ<TÐU[Ñ<\Ô<\ð ØÝJQÐRYÐ[pÑJqÔJqÐ|˜G×7Ò7¸¸vÑFÔFÐFÐw|ˆMÝÐ 5× 9Ò 9¸&À"Ñ EÔ EÑFÔFˆKØ?JÐRÕ-¨kÑ:Ô:Ð;Ð;ÐPRˆHÝ-¨k¸6ÐC~Ð\fÐC~ÐC~Ðn{ÐC~ÐC~ÐC~ÑÔˆKÝ)Ô9¸&ÑAÔAˆHØ×ÒÕ.¨{¸FÑCÔCÅXÈfÐVcÐepõ  sRð  TYõ  [lð  muõ  wIð  JUð  W]ñ  w^ô  w^ñ  [_ô  [_ð  aið  rxð  JYð  FZñ  FZô  FZð  [ñ  \ô  \ð  \ñ  \ñ	\ð Að  A¥f¨YÐ<~Ð<~Ð&Ñ&Ô&ð  Añ  Aô  Að  Ar)   c                óª  — | dk    rg S g }t          j        |¦  «        D �]}|                     ¦   «         }t          j        |¦  «        }t          j        |¦  «        }|                     di ¦  «        }|                     dd¦  «        D ]¬\  }}	t          |                     |	d¦  «        ¦  «        }
|
rt          |
¦  «        gng }t          ||	d|› d�¦  «        }| 	                    t          ||	¦  «        t          |	||t          dt          |t          ||	¦  «        ¦  «        ||¬¦  «        f¦  «         Œ­�Œd	„ t          |d
„ ¬¦  «        D ¦   «         S )Nrk   rZ   rm   r-   z#Increase the video frame rate with z frame interpolation.)rk   rp   c                ó   — g | ]\  }}|‘ŒS r-   r-   rr   s      r'   rH   z'_temporal_processes.<locals>.<listcomp>Š   rs   r)   c                ól   — | d         | d         d                               ¦   «         | d         d         fS ru   rw   ry   s    r'   r{   z%_temporal_processes.<locals>.<lambda>Š   r|   r)   r}   )r   Úregistered_temporal_upsamplersÚquery_temporal_upsampler_defr�   r‚   r"   r3   r[   r(   r9   r…   rg   Ú PROCESS_TYPE_TEMPORAL_UPSAMPLINGrK   r=   r‡   )r   rh   rS   rˆ   r   rc   rd   r‰   r]   r   rZ   r>   r   s                r'   Ú_temporal_processesr’   |   sô  € Ø�WÒÐØˆ	Ø€IÝ&ÔEÀlÑSÔSð 	Pñ 	PˆØ×:Ò:Ñ<Ô<ˆÝ$Ô3°GÑ<Ô<ˆÝ-ÔEÀgÑNÔNˆØ +§¢°¸rÑ BÔ BÐØ(Ÿ_š_¨Y¸Ñ;Ô;ð 	Pð 	P‰MˆE�6ÝÐ 5× 9Ò 9¸&À"Ñ EÔ EÑFÔFˆKØ?JÐRÕ-¨kÑ:Ô:Ð;Ð;ÐPRˆHÝ-¨k¸6ð  DFÐinð  DFð  DFð  DFñ  Gô  GˆKØ×ÒÕ.¨{¸FÑCÔCÅXÈfÐV[Ð]hõ  kKð  MWõ  Yjð  ksõ  uGð  HSð  U[ñ  u\ô  u\ñ  Y]ô  Y]ð  flð  ~Mð  FNñ  FNô  FNð  Oñ  Pô  Pð  Pð  Pñ		Pð
 Að  A¥f¨YÐ<~Ð<~Ð&Ñ&Ô&ð  Añ  Aô  Að  Ar)   Úmetadatac                óº  — g }| d         r|                      dddddœ¦  «         | d         r|                      ddd	ddœ¦  «         | d
         r|                      dddddœ¦  «         | d         r|                      dddddœ¦  «         | d         r|                      dddddœ¦  «         |t          k    r#| d
         s|                      ddddddœ¦  «         |S )NÚneeds_promptÚpromptr.   z1Optional prompt guiding the generated soundtrack.F)r   r   r   r   Úneeds_negative_promptÚnegative_promptz6Optional negative prompt for the generated soundtrack.Úneeds_audio_sourceÚaudio_media_idz4Media id of the audio file to use as the soundtrack.TÚneeds_voice_sampleÚvoice_sample_media_idz$Media id of the target voice sample.Úneeds_voice_sample2Úvoice_sample2_media_idz+Media id of the second target voice sample.ÚseedÚintegerz>Optional soundtrack generation seed; -1 selects a random seed.éÿÿÿÿ)r   r   r   r   r   )r9   ÚPROCESS_TYPE_SOUNDTRACK)r“   r^   r:   s      r'   Ú_audio_parametersr£   �   sÏ  € Ø€JØ�Ôð WØ×Ò 8°Xð  OBð  PUð  Vð  Vñ  	Wô  	Wð  	WØÐ'Ô(ð eØ×ÒÐ#4¸hð  XPð  ^cð  dð  dñ  	eô  	eð  	eØÐ$Ô%ð aØ×ÒÐ#3¸Xð  WMð  [_ð  `ð  `ñ  	aô  	að  	aØÐ$Ô%ð XØ×ÒÐ#:ÀHð  ^Dð  RVð  Wð  Wñ  	Xô  	Xð  	XØÐ%Ô&ð `Ø×ÒÐ#;ÀXð  _Lð  Z^ð  _ð  _ñ  	`ô  	`ð  	`ØÕ.Ò.Ð.°xÐ@TÔ7UÐ.Ø×Ò 6°9ð  NNð  \að  npð  qð  qñ  	rô  	rð  	rØÐr)   c                óØ  — | dk    rt           j        f}n!| dk    rt           j        t           j        f}ng S t           j        t          t           j        t
          t           j        t          i}g }t          ¦   «         }|D �]Q}t          j        ||¦  «        D �]7}| 	                    ¦   «         }t          j
        |¦  «        }	t          j        |¦  «        }
|                     dd¦  «        D ]á\  }}t          j        |¦  «        }||d         vs||v rŒ(|                     |¦  «         ||         }t          ||d|› d| › d�¦  «        }t!          t#          ||¦  «        t%          ||¦  «        ¦  «        }|                     t)          ||¦  «        t+          |t          j        |t           j        ¦  «        ||| f||	|
¬	¦  «        f¦  «         Œâ�Œ9�ŒSd
„ t1          |d„ ¬¦  «        D ¦   «         S )NÚaudiork   rm   r-   ÚtypeszApply z to the r1   rp   c                ó   — g | ]\  }}|‘ŒS r-   r-   rr   s      r'   rH   z$_audio_processes.<locals>.<listcomp>º   rs   r)   c                ól   — | d         | d         d                               ¦   «         | d         d         fS ru   rw   ry   s    r'   r{   z"_audio_processes.<locals>.<lambda>º   r|   r)   r}   )r   ÚAUDIO_PROCESSOR_TYPE_AUDIO_EDITÚAUDIO_PROCESSOR_TYPE_SOUNDTRACKÚ&AUDIO_PROCESSOR_TYPE_VOICE_REPLACEMENTr¢   ÚPROCESS_TYPE_VOICE_REPLACEMENTÚPROCESS_TYPE_AUDIO_EDITÚsetÚprocessor_handlersÚquery_audio_processor_defr�   r‚   r"   Úmethod_metadataÚaddr(   rK   r£   r=   r9   r…   rg   ro   Ú1AUDIO_PROCESSOR_LABEL_CONTEXT_LATE_POSTPROCESSINGr‡   )r   rh   Úrequested_typesÚprocess_typesrS   ÚseenÚprocessor_typerˆ   r   rc   rd   r]   r   r“   r^   r   r:   s                    r'   Ú_audio_processesr¸   ž   s‹  € Ø�WÒÐÝ+ÔKÐMˆˆØ	�wÒ	Ð	Ý+ÔKÕM]ô  NEð  Fˆˆàˆ	åÔ8Õ:QÝÔ?ÕA_ÝÔ8Õ:Qð€Mð
 €IÝ‰5Œ5€DØ)ð tñ tˆÝ'Ô:¸>È<ÑXÔXð 	tñ 	tˆGØ!×;Ò;Ñ=Ô=ˆKÝ%Ô4°WÑ=Ô=ˆFÝ.ÔFÀwÑOÔOˆOØ!,§¢°¸BÑ!?Ô!?ð tð t‘��vÝ+Ô;¸FÑCÔC�Ø!¨°'Ô):Ð:Ð:¸fÈ¸n¸nØØ—’˜Ñ Ô Ð Ø,¨^Ô<�Ý1°+¸vÐGlÐPUÐGlÐGlÐ_iÐGlÐGlÐGlÑmÔm�Ý.Õ/@ÀÈ<Ñ/XÔ/XÕZlÐmxð  {Añ  [Bô  [Bñ  Cô  C�
Ø× Ò Õ"2°;ÀÑ"GÔ"GÍÐRXÕZjÔZ~ð  @Fõ  HXô  HJñ  [Kô  [Kð  MXð  Zfð  isð  huð  wAð  JPð  bqð  Jrñ  Jrô  Jrð  "sñ  tô  tð  tð  tñtñ		tð Að  A¥f¨YÐ<~Ð<~Ð&Ñ&Ô&ð  Añ  Aô  Að  Ar)   Úfloatc                ó(  — |                       di ¦  «        }t          |t          ¦  «        r*|                      ||                       dd¦  «        ¦  «        n|                       dd¦  «        }	 t          |¦  «        S # t          t
          f$ r Y dS w xY w)NÚ
method_posÚposiè  )r"   r#   r$   r¹   Ú	TypeErrorÚ
ValueError)r   r   Ú	positionsÚvalues       r'   r…   r…   ½   s¡   € Ø—’ ¨bÑ1Ô1€IÝCMÈiÕY]ÑC^ÔC^ð  AˆI�MŠM˜& +§/¢/°%¸Ñ">Ô">Ñ?Ô?Ð?Ðdo×dsÒdsÐtyÐ{ñ  eAô  eA€EðÝ�U‰|Œ|ÐøÝ•zÐ"ð ð ð Øˆtˆtðøøøs   Á-A< Á<BÂBT©rh   c               óÜ   — t          | pd¦  «                             ¦   «                              ¦   «         } | dvrg S t          | |¦  «        t	          | |¦  «        z   t          | |¦  «        z   S )zEReturn JSON-serializable post-processing operations for a media kind.r!   >   r¥   rl   rk   )r   r%   Úlowerr‹   r’   r¸   )r   rh   s     r'   Úquery_processesrÄ   Æ   sˆ   € õ �ZÐ% 2Ñ&Ô&×,Ò,Ñ.Ô.×4Ò4Ñ6Ô6€JØÐ4Ð4Ð4Øˆ	Ý˜j¨,Ñ7Ô7Õ:MÈjÐZfÑ:gÔ:gÑgÕjzð  |Fð  HTñ  kUô  kUñ  Uð  Ur)   c               ó„   ‡— t          ‰pd¦  «                             ¦   «         Šˆfd„t          | |¬¦  «        D ¦   «         S )Nr!   c                ó,   •— g | ]}|d          ‰k    ¯|‘ŒS )rf   r-   )rD   rU   r\   s     €r'   rH   z"find_processes.<locals>.<listcomp>Ñ   s+   ø€ ÐyÐyÐy˜Ð]dÐeiÔ]jÐnxÒ]xÐ]xˆGÐ]xÐ]xÐ]xr)   rÁ   )r   r%   rÄ   )r   r\   rh   s    ` r'   Úfind_processesrÇ   Ï   sH   ø€ Ý�ZÐ% 2Ñ&Ô&×,Ò,Ñ.Ô.€JØyÐyÐyÐy¥?°:ÈLÐ#YÑ#YÔ#YÐyÑyÔyÐyr)   rU   c                óf  — t          |                      dd¦  «        pd¦  «        }t          |                      dd¦  «        pd¦  «        }|t          k    r(t          j        ||                     d¦  «        ¦  «        S |t
          k    r(t          j        ||                     d¦  «        ¦  «        S |S )Nr   r!   rf   rX   )r   r"   r†   r   Úbuild_upsampling_valuer‘   r   Úbuild_temporal_upsampling_value)rU   r:   r^   r\   s       r'   Úbuild_process_valuerË   Ô   s    € Ý�w—{’{ 6¨2Ñ.Ô.Ð4°"Ñ5Ô5€LÝ�W—[’[  rÑ*Ô*Ð0¨bÑ1Ô1€JØÕ6Ò6Ð6Ý!Ô8¸ÀZÇ^Â^ÐT`ÑEaÔEaÑbÔbÐbØÕ7Ò7Ð7Ý"ÔBÀ:ÈzÏ~Ê~Ð^jÑOkÔOkÑlÔlÐlØÐr)   údict[str, Any] | Noneú!tuple[dict[str, Any] | None, str]c                óR  — |€i }t          |t          ¦  «        sdS d„ |                      dd¦  «        D ¦   «         }t          t	          |¦  «        t	          |¦  «        z
  ¦  «        }|r3ddt          |¦  «        dk    rdnd	› d
d                     |¦  «        › d�fS i }|                     ¦   «         D ]q\  }}||vrA|                     dd¦  «        r	d|› d�fc S d|v rt          j	        |d         ¦  «        ||<   ŒJt          |||         |¦  «        \  }}|rd|fc S |||<   Œr|d	fS )zMValidate and normalize a process parameter object against discovery metadata.N)Nzparameters must be an object.c                ó:   — i | ]}t          |d          ¦  «        |“ŒS rB   ©r   rC   s     r'   rE   z(normalize_parameters.<locals>.<dictcomp>å   s'   € ÐgÐgÐg¸I•c˜) FÔ+Ñ,Ô,¨iÐgÐgÐgr)   r:   r-   zUnsupported parameterrv   Úsr!   z: ú, r1   r   Tz is required.r   )r#   r$   r"   r‡   r®   ÚlenÚjoinÚitemsr4   r5   Ú_normalize_parameter)	rU   r:   Úparameter_defsÚunknownr;   r   Úparameter_defrÀ   Úerrors	            r'   Únormalize_parametersrÛ   Þ   sˆ  € ð ÐØˆ
Ý�j¥$Ñ'Ô'ð 5Ø4Ð4ØgÐgÈÏÊÐUaÐceÑIfÔIfÐgÑgÔg€NÝ•S˜‘_”_¥s¨>Ñ':Ô':Ñ:Ñ;Ô;€GØð gØÐfµC¸±L´LÀAÒ4EÐ4E¨S¨SÈ2ÐfÐfÐQU×QZÒQZÐ[bÑQcÔQcÐfÐfÐfÐfÐfØ€JØ-×3Ò3Ñ5Ô5ð 
!ð 
!ÑˆˆmØ�zÐ!Ð!Ø× Ò  ¨TÑ2Ô2ð 4Ø Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø˜MÐ)Ð)Ý#'¤=°¸yÔ1IÑ#JÔ#J�
˜4Ñ ØÝ+¨D°*¸TÔ2BÀMÑRÔR‰ˆˆuØð 	Ø˜�;ÐÐÐØ ˆ
�4ÑÐØ�rˆ>Ðr)   r   rÀ   r   rÙ   útuple[Any, str]c                óú  — t          |                     dd¦  «        pd¦  «        }	 |dk    rHt          |t          ¦  «        rt          ‚t          |¦  «        }t          j        |¦  «        st          ‚�n1|dk    rbt          |¦  «        }t          |t          ¦  «        s't          j        |¦  «        r|t          |¦  «        k    rt          ‚t          |¦  «        }nÉ|dk    rt          |t          ¦  «        st          ‚n¦|dk    rPt          |t           ¦  «        st          ‚| 	                    ¦   «         }|                     dd¦  «        r	|sd | › d�fS nP|d	k    rt          |t          ¦  «        st          ‚n-|d
k    rt          |t          ¦  «        st          ‚n
d | › d|› d�fS n'# t          t          t          f$ r d | › d|› d�fcY S w xY w|                     dd ¦  «        }t          |t          t          f¦  «        r+||vr'd | › dd                     d„ |D ¦   «         ¦  «        › d�fS |                     d¦  «        |                     d¦  «        }}|�||k     r
d | › d|› d�fS |�||k    r
d | › d|› d�fS |dfS )Nr   r.   rY   r    Úbooleanr   Tz
 is empty.ÚobjectÚarrayz! uses unsupported parameter type r1   z must be a r   z must be one of: rÒ   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©NrÐ   )rD   rz   s     r'   ú	<genexpr>z'_normalize_parameter.<locals>.<genexpr>  s(   è è € Ð8WÐ8WÀt½¸T¹¼Ð8WÐ8WÐ8WÐ8WÐ8WÐ8Wr)   r   r   z must be at least z must be at most r!   )r   r"   r#   ri   r¾   r¹   ÚmathÚisfiniteÚintr%   r$   r2   r½   ÚOverflowErrorr3   rÔ   )r   rÀ   rÙ   Úparameter_typeÚnumeric_valueÚallowedr   r   s           r'   rÖ   rÖ   ø   s  € Ý˜×*Ò*¨6°8Ñ<Ô<ÐHÀÑIÔI€Nð;Ø˜XÒ%Ð%Ý˜%¥Ñ&Ô&ð !Ý Ð Ý˜%‘L”LˆEÝ”= Ñ'Ô'ð !Ý Ð ñ!à˜yÒ(Ð(Ý! %™LœLˆMÝ˜%¥Ñ&Ô&ð !­d¬m¸MÑ.JÔ.Jð !ÈmÕ_bÐcpÑ_qÔ_qÒNqÐNqÝ Ð Ý˜Ñ&Ô&ˆEˆEØ˜yÒ(Ð(Ý˜e¥TÑ*Ô*ð !Ý Ð ð!à˜xÒ'Ð'Ý˜e¥SÑ)Ô)ð !Ý Ð Ø—K’K‘M”MˆEØ× Ò  ¨TÑ2Ô2ð 1¸5ð 1Ø Ð0Ð0Ð0Ð0Ð0øØ˜xÒ'Ð'Ý˜e¥TÑ*Ô*ð !Ý Ð ð!à˜wÒ&Ð&Ý˜e¥TÑ*Ô*ð !Ý Ð ð!ð ˜DÐTÐTÀ>ÐTÐTÐTÐTÐTøøÝ•z¥=Ð1ð ;ð ;ð ;Ø˜Ð:Ð:¨Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð;øøøà×Ò ¨Ñ-Ô-€GÝ�'�D¥%˜=Ñ)Ô)ð [¨e¸7Ð.BÐ.BØ˜ÐZÐZ¨t¯yªyÐ8WÐ8WÈwÐ8WÑ8WÔ8WÑ/WÔ/WÐZÐZÐZÐZÐZØ$×(Ò(¨Ñ3Ô3°]×5FÒ5FÀyÑ5QÔ5QˆW€GØÐ˜u wš˜Ø˜Ð:Ð:°Ð:Ð:Ð:Ð:Ð:ØÐ˜u wš˜Ø˜Ð9Ð9¨wÐ9Ð9Ð9Ð9Ð9Ø�"ˆ9Ðs   §D-F' ÅAF' Æ'!GÇ
G)r   r   r   r   r   r   r   r   )r   r   r   r   r   r*   )r>   r*   r?   r*   r   r*   )r   r*   )r   r   râ   )r\   r   r]   r   r   r   r^   r   r_   r`   r:   r*   ra   rb   rc   r   rd   r   r   r   )r   r   rh   ri   r   r*   )r“   r   r^   r   r   r*   )r   r   r   r   r   r¹   )r   r   r\   r   rh   ri   r   r*   )rU   r   r:   r   r   rb   )rU   r   r:   rÌ   r   rÍ   )r   r   rÀ   r   rÙ   r   r   rÜ   )&Ú__doc__Ú
__future__r   r4   rä   Útypingr   Úpostprocessingr   r   r   Úpostprocessing.processor_statusr   r	   r
   r†   r‘   r¢   r¬   r­   rP   r(   r=   rK   rQ   rV   r[   rg   r‹   r’   r£   r¸   r…   rÄ   rÇ   rË   rÛ   rÖ   r-   r)   r'   ú<module>rð      sG  ðØ GÐ Gà "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð à TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ yÐ yÐ yÐ yÐ yÐ yÐ yÐ yÐ yÐ yð #7Ð Ø#8Ð  Ø&Ð Ø!4Ð Ø&Ð à{Ð ðMð Mð Mð Mðð ð ð ð&	,ð 	,ð 	,ð 	,ðDð Dð Dð Dðð ð ð ðð ð ð ðð ð ð ð ð"Að Að Að Að,Að Að Að Að"ð ð ð ð"Að Að Að Að>ð ð ð ð >Bð Uð Uð Uð Uð Uð Uð NRð zð zð zð zð zð zð
ð ð ð ðð ð ð ð4)ð )ð )ð )ð )ð )r)   