ó
    EñiZ¨  ã                   óÈ  • % S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
JrJr  S SKrS SKJrJr  S SKJr  SS	KJrJr  SS
KJrJr  SSKJr  SSKJrJrJr  SSKJr  SSK J!r!J"r"J#r#  / SQr$\ " S S5      5       r% " S S\%5      r& " S S\%5      r' " S S\RP                  5      r) " S S\RP                  5      r* " S S\RP                  5      r+S\\\&\'4      S\,S\\-   S \\   S!\.S"\	S#\+4S$ jr/S%\0S"\	S#\1\\\&\'4      \\-   4   4S& jr2S'\0r3\4\0\	4   \5S('   0 \3ES)S*S+.Er60 \3ES,S-S+.Er7 " S. S/\5      r8 " S0 S1\5      r9 " S2 S3\5      r: " S4 S5\5      r; " S6 S7\5      r< " S8 S9\5      r= " S: S;\5      r> " S< S=\5      r? " S> S?\5      r@ " S@ SA\5      rA " SB SC\5      rB\" 5       \#" SD\8R†                  4SE9SSFSG.S \\8   S!\.S"\	S#\+4SH jj5       5       rD\" 5       \#" SD\9R†                  4SE9SSFSG.S \\9   S!\.S"\	S#\+4SI jj5       5       rE\" 5       \#" SD\:R†                  4SE9SSFSG.S \\:   S!\.S"\	S#\+4SJ jj5       5       rF\" 5       \#" SD\;R†                  4SE9SSFSG.S \\;   S!\.S"\	S#\+4SK jj5       5       rG\" 5       \#" SD\<R†                  4SE9SSFSG.S \\<   S!\.S"\	S#\+4SL jj5       5       rH\" 5       \#" SD\=R†                  4SE9SSFSG.S \\=   S!\.S"\	S#\+4SM jj5       5       rI\" 5       \#" SD\>R†                  4SE9SSFSG.S \\>   S!\.S"\	S#\+4SN jj5       5       rJ\" 5       \#" SD\?R†                  4SE9SSFSG.S \\?   S!\.S"\	S#\+4SO jj5       5       rK\" 5       \#" SD\@R†                  4SE9SSFSG.S \\@   S!\.S"\	S#\+4SP jj5       5       rL\" 5       \#" SD\AR†                  4SE9SSFSG.S \\A   S!\.S"\	S#\+4SQ jj5       5       rM\" 5       \#" SD\BR†                  4SE9SSFSG.S \\B   S!\.S"\	S#\+4SR jj5       5       rNg)Sé    N)ÚSequence)Ú	dataclass)Úpartial)ÚAnyÚCallableÚOptionalÚUnion)ÚnnÚTensor)ÚStochasticDepthé   )ÚConv2dNormActivationÚSqueezeExcitation)ÚImageClassificationÚInterpolationMode)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_make_divisibleÚ_ovewrite_named_paramÚhandle_legacy_interface)ÚEfficientNetÚEfficientNet_B0_WeightsÚEfficientNet_B1_WeightsÚEfficientNet_B2_WeightsÚEfficientNet_B3_WeightsÚEfficientNet_B4_WeightsÚEfficientNet_B5_WeightsÚEfficientNet_B6_WeightsÚEfficientNet_B7_WeightsÚEfficientNet_V2_S_WeightsÚEfficientNet_V2_M_WeightsÚEfficientNet_V2_L_WeightsÚefficientnet_b0Úefficientnet_b1Úefficientnet_b2Úefficientnet_b3Úefficientnet_b4Úefficientnet_b5Úefficientnet_b6Úefficientnet_b7Úefficientnet_v2_sÚefficientnet_v2_mÚefficientnet_v2_lc            
       ó¨   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \S\R                  4   \S	'   \
SS\S\S\\   S\4S jj5       rSrg
)Ú_MBConvConfigé/   Úexpand_ratioÚkernelÚstrideÚinput_channelsÚout_channelsÚ
num_layers.ÚblockNÚchannelsÚ
width_multÚ	min_valueÚreturnc                 ó    • [        X-  SU5      $ )Né   )r   )r<   r=   r>   s      Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torchvision/models/efficientnet.pyÚadjust_channelsÚ_MBConvConfig.adjust_channels9   s   € ä˜xÑ4°a¸ÓCÐCó    © ©N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚfloatÚ__annotations__Úintr   r
   ÚModuleÚstaticmethodr   rC   Ú__static_attributes__rF   rE   rB   r3   r3   /   so   ‡ àÓØƒKØƒKØÓØÓØƒOØ�C˜Ÿ™�NÑ#Ó#àñD #ð D°5ð DÀXÈcÁ]ð DÐ^aô Dó óDrE   r3   c                   óž   ^ • \ rS rSr   SS\S\S\S\S\S\S	\S
\S\\S\R                  4      SS4U 4S jjjr
\S\S
\4S j5       rSrU =r$ )ÚMBConvConfigé>   Nr5   r6   r7   r8   r9   r:   r=   Ú
depth_multr;   .r?   c
           	      ó¢   >• U R                  XG5      nU R                  XW5      nU R                  Xh5      nU	c  [        n	[        T
U ]  XX4XVU	5        g rG   )rC   Úadjust_depthÚMBConvÚsuperÚ__init__)Úselfr5   r6   r7   r8   r9   r:   r=   rU   r;   Ú	__class__s             €rB   rZ   ÚMBConvConfig.__init__@   sS   ø€ ð ×-Ñ-¨nÓIˆØ×+Ñ+¨LÓEˆØ×&Ñ& zÓ>ˆ
Ø‰=ÜˆEÜ‰Ñ˜¨vÀ|ÐafÕgrE   c                 óD   • [        [        R                  " X-  5      5      $ rG   )rN   ÚmathÚceil)r:   rU   s     rB   rW   ÚMBConvConfig.adjust_depthS   s   € ä”4—9’9˜ZÑ4Ó5Ó6Ð6rE   rF   )ç      ð?rb   N)rH   rI   rJ   rK   rL   rN   r   r   r
   rO   rZ   rP   rW   rQ   Ú__classcell__©r\   s   @rB   rS   rS   >   sº   ø† ð  ØØ48ñhàðhð ðhð ð	hð
 ðhð ðhð ðhð ðhð ðhð ˜  b§i¡i Ñ0Ñ1ðhð 
÷hð hð& ð7 ð 7°%ó 7ó ö7rE   rS   c                   óv   ^ • \ rS rSr SS\S\S\S\S\S\S	\\S
\R                  4      SS4U 4S jjjr
SrU =r$ )ÚFusedMBConvConfigéX   Nr5   r6   r7   r8   r9   r:   r;   .r?   c           	      ó<   >• Uc  [         n[        TU ]	  XX4XVU5        g rG   )ÚFusedMBConvrY   rZ   )	r[   r5   r6   r7   r8   r9   r:   r;   r\   s	           €rB   rZ   ÚFusedMBConvConfig.__init__Z   s#   ø€ ð ‰=ÜˆEÜ‰Ñ˜¨vÀ|ÐafÕgrE   rF   rG   )rH   rI   rJ   rK   rL   rN   r   r   r
   rO   rZ   rQ   rc   rd   s   @rB   rf   rf   X   s|   ø† ð 59ñhàðhð ðhð ð	hð
 ðhð ðhð ðhð ˜  b§i¡i Ñ0Ñ1ðhð 
÷hö hrE   rf   c                   ó”   ^ • \ rS rSr\4S\S\S\S\R                  4   S\S\R                  4   SS4
U 4S	 jjjr
S
\S\4S jrSrU =r$ )rX   éi   ÚcnfÚstochastic_depth_probÚ
norm_layer.Úse_layerr?   Nc                 óX  >• [         T	U ]  5         SUR                  s=::  a  S::  d  O  [        S5      eUR                  S:H  =(       a    UR                  UR
                  :H  U l        / n[        R                  nUR                  UR                  UR                  5      nXqR                  :w  a&  UR                  [        UR                  USUUS95        UR                  [        UUUR                  UR                  UUUS95        [        SUR                  S-  5      nUR                  U" Xx[        [        R                  SS9S	95        UR                  [        XqR
                  SUS S95        [        R                   " U6 U l        [%        US
5      U l        UR
                  U l        g )Nr   r   úillegal stride value©Úkernel_sizero   Úactivation_layer)rt   r7   Úgroupsro   ru   é   T)Úinplace)Ú
activationÚrow)rY   rZ   r7   Ú
ValueErrorr8   r9   Úuse_res_connectr
   ÚSiLUrC   r5   Úappendr   r6   Úmaxr   Ú
Sequentialr;   r   Ústochastic_depth)
r[   rm   rn   ro   rp   Úlayersru   Úexpanded_channelsÚsqueeze_channelsr\   s
            €rB   rZ   ÚMBConv.__init__j   s~  ø€ ô 	‰ÑÔà�S—Z‘ZÕ$ 1Õ$ÜÐ3Ó4Ð4à"Ÿz™z¨Q™×Y°3×3EÑ3EÈ×IYÑIYÑ3YˆÔà"$ˆÜŸ7™7Ðð  ×/Ñ/°×0BÑ0BÀC×DTÑDTÓUÐØ× 2Ñ 2Ó2Ø�M‰MÜ$Ø×&Ñ&Ø%Ø !Ø)Ø%5ñôð 	�‰Ü Ø!Ø!ØŸJ™JØ—z‘zØ(Ø%Ø!1ñô
	
ô ˜q #×"4Ñ"4¸Ñ"9Ó:ÐØ�‰‘hÐ0ÌwÔWY×W^ÑW^ÐhlÑOmÑnÔoð 	�‰Ü Ø!×#3Ñ#3ÀÈzÐlpñô	
ô —]’] FÐ+ˆŒ
Ü /Ð0EÀuÓ MˆÔØ×,Ñ,ˆÕrE   Úinputc                 ót   • U R                  U5      nU R                  (       a  U R                  U5      nX!-  nU$ rG   ©r;   r|   r�   ©r[   r†   Úresults      rB   ÚforwardÚMBConv.forward¤   ó5   € Ø—‘˜EÓ"ˆØ××Ø×*Ñ*¨6Ó2ˆFØ‰OˆFØˆrE   ©r;   r9   r�   r|   )rH   rI   rJ   rK   r   rS   rL   r   r
   rO   rZ   r   r‹   rQ   rc   rd   s   @rB   rX   rX   i   su   ø† ð .?ñ8-àð8-ð  %ð8-ð ˜S "§)¡)˜^Ñ,ð	8-ð
 ˜3 §	¡	˜>Ñ*ð8-ð 
÷8-ð 8-ðt˜Vð ¨÷ ò rE   rX   c                   ól   ^ • \ rS rSrS\S\S\S\R                  4   SS4U 4S jjr	S	\
S\
4S
 jrSrU =r$ )ri   é¬   rm   rn   ro   .r?   Nc                 ó   >• [         TU ]  5         SUR                  s=::  a  S::  d  O  [        S5      eUR                  S:H  =(       a    UR                  UR
                  :H  U l        / n[        R                  nUR                  UR                  UR                  5      nXaR                  :w  aa  UR                  [        UR                  UUR                  UR                  UUS95        UR                  [        XaR
                  SUS S95        OEUR                  [        UR                  UR
                  UR                  UR                  UUS95        [        R                  " U6 U l        [!        US5      U l        UR
                  U l        g )Nr   r   rr   ©rt   r7   ro   ru   rs   rz   )rY   rZ   r7   r{   r8   r9   r|   r
   r}   rC   r5   r~   r   r6   r€   r;   r   r�   )r[   rm   rn   ro   r‚   ru   rƒ   r\   s          €rB   rZ   ÚFusedMBConv.__init__­   sT  ø€ ô 	‰ÑÔà�S—Z‘ZÕ$ 1Õ$ÜÐ3Ó4Ð4à"Ÿz™z¨Q™×Y°3×3EÑ3EÈ×IYÑIYÑ3YˆÔà"$ˆÜŸ7™7Ðà×/Ñ/°×0BÑ0BÀC×DTÑDTÓUÐØ× 2Ñ 2Ó2à�M‰MÜ$Ø×&Ñ&Ø%Ø #§
¡
ØŸ:™:Ø)Ø%5ñô	ð �M‰MÜ$Ø%×'7Ñ'7ÀQÐS]Ðptñõð �M‰MÜ$Ø×&Ñ&Ø×$Ñ$Ø #§
¡
ØŸ:™:Ø)Ø%5ñô	ô —]’] FÐ+ˆŒ
Ü /Ð0EÀuÓ MˆÔØ×,Ñ,ˆÕrE   r†   c                 ót   • U R                  U5      nU R                  (       a  U R                  U5      nX!-  nU$ rG   rˆ   r‰   s      rB   r‹   ÚFusedMBConv.forwardá   r�   rE   rŽ   )rH   rI   rJ   rK   rf   rL   r   r
   rO   rZ   r   r‹   rQ   rc   rd   s   @rB   ri   ri   ¬   sT   ø† ð2-àð2-ð  %ð2-ð ˜S "§)¡)˜^Ñ,ð	2-ð
 
÷2-ðh˜Vð ¨÷ ò rE   ri   c                   ó²   ^ • \ rS rSr    SS\\\\4      S\S\S\	S\
\S\R                  4      S	\
\	   S
S4U 4S jjjrS\S
\4S jrS\S
\4S jrSrU =r$ )r   éé   NÚinverted_residual_settingÚdropoutrn   Únum_classesro   .Úlast_channelr?   c                 ó  >• [         TU ]  5         [        U 5        U(       d  [        S5      e[	        U[
        5      (       a/  [        U Vs/ s H  n[	        U[        5      PM     sn5      (       d  [        S5      eUc  [        R                  n/ nUS   R                  n	UR                  [        SU	SSU[        R                  S95        [        S U 5       5      n
SnU H°  n/ n[!        UR"                  5       Hp  n[$        R$                  " U5      nU(       a  UR&                  Ul        S	Ul        U[+        U5      -  U
-  nUR                  UR-                  UUU5      5        US	-  nMr     UR                  [        R.                  " U6 5        M²     US
   R&                  nUb  UOSU-  nUR                  [        UUS	U[        R                  S95        [        R.                  " U6 U l        [        R2                  " S	5      U l        [        R.                  " [        R6                  " USS9[        R8                  " UU5      5      U l        U R=                  5        GH£  n[	        U[        R>                  5      (       ab  [        R@                  RC                  URD                  SS9  URF                  b+  [        R@                  RI                  URF                  5        Mƒ  M…  [	        U[        R                  [        RJ                  45      (       aU  [        R@                  RM                  URD                  5        [        R@                  RI                  URF                  5        GM	  [	        U[        R8                  5      (       d  GM+  S[N        RP                  " URR                  5      -  n[        R@                  RU                  URD                  U* U5        [        R@                  RI                  URF                  5        GM¦     gs  snf )a×  
EfficientNet V1 and V2 main class

Args:
    inverted_residual_setting (Sequence[Union[MBConvConfig, FusedMBConvConfig]]): Network structure
    dropout (float): The droupout probability
    stochastic_depth_prob (float): The stochastic depth probability
    num_classes (int): Number of classes
    norm_layer (Optional[Callable[..., nn.Module]]): Module specifying the normalization layer to use
    last_channel (int): The number of channels on the penultimate layer
z1The inverted_residual_setting should not be emptyz:The inverted_residual_setting should be List[MBConvConfig]Nr   é   r   r’   c              3   ó8   #   • U  H  oR                   v •  M     g 7frG   )r:   )Ú.0rm   s     rB   Ú	<genexpr>Ú(EfficientNet.__init__.<locals>.<genexpr>  s   é € Ð UÒ;T°C§¦Ò;Tùs   ‚r   éÿÿÿÿrw   rs   T)Úprx   Úfan_out)Úmoderb   )+rY   rZ   r   r{   Ú
isinstancer   Úallr3   Ú	TypeErrorr
   ÚBatchNorm2dr8   r~   r   r}   ÚsumÚranger:   Úcopyr9   r7   rL   r;   r€   ÚfeaturesÚAdaptiveAvgPool2dÚavgpoolÚDropoutÚLinearÚ
classifierÚmodulesÚConv2dÚinitÚkaiming_normal_ÚweightÚbiasÚzeros_Ú	GroupNormÚones_r_   ÚsqrtÚout_featuresÚuniform_)r[   r˜   r™   rn   rš   ro   r›   Úsr‚   Úfirstconv_output_channelsÚtotal_stage_blocksÚstage_block_idrm   ÚstageÚ_Ú	block_cnfÚsd_probÚlastconv_input_channelsÚlastconv_output_channelsÚmÚ
init_ranger\   s                        €rB   rZ   ÚEfficientNet.__init__ê   s  ø€ ô( 	‰ÑÔÜ˜DÔ!æ(ÜÐPÓQÐQäÐ0´(×;Ñ;ÜÑ;TÓUÒ;T°a”Z ¤=Ö1Ñ;TÑU×VÑVäÐXÓYÐYàÑÜŸ™ˆJà"$ˆð %>¸aÑ$@×$OÑ$OÐ!Ø�‰Ü ØÐ,¸!ÀAÐR\Ôoq×ovÑovñô	
ô !Ñ UÑ;TÓ UÓUÐØˆÛ,ˆCØ%'ˆEÜ˜3Ÿ>™>Ö*�ä ŸIšI c›N�	ö Ø/8×/EÑ/E�IÔ,Ø'(�IÔ$ð 0´%¸Ó2GÑGÐJ\Ñ\�à—‘˜YŸ_™_¨Y¸ÀÓLÔMØ !Ñ#’ñ +ð �M‰Mœ"Ÿ-š-¨Ð/Ö0ñ# -ð( #<¸BÑ"?×"LÑ"LÐØ3?Ñ3K¡<ÐQRÐUlÑQlÐ Ø�‰Ü Ø'Ø(ØØ%Ü!#§¡ñô	
ô Ÿš vÐ.ˆŒÜ×+Ò+¨AÓ.ˆŒÜŸ-š-Ü�JŠJ˜¨$Ñ/Ü�IŠIÐ.°Ó<ó
ˆŒð
 —‘—ˆAÜ˜!œRŸY™Y×'Ñ'Ü—‘×'Ñ'¨¯©°yÐ'ÑAØ—6‘6Ñ%Ü—G‘G—N‘N 1§6¡6Ö*ñ &ä˜A¤§¡´·±Ð=×>Ñ>Ü—‘—‘˜aŸh™hÔ'Ü—‘—‘˜qŸv™v×&Ü˜AœrŸy™y×)Ô)Ø ¤4§9¢9¨Q¯^©^Ó#<Ñ<�
Ü—‘× Ñ  §¡¨J¨;¸
ÔCÜ—‘—‘˜qŸv™v×&ò  ùòw Vs   ÁPÚxc                 óš   • U R                  U5      nU R                  U5      n[        R                  " US5      nU R	                  U5      nU$ )Nr   )r­   r¯   ÚtorchÚflattenr²   ©r[   rÌ   s     rB   Ú_forward_implÚEfficientNet._forward_implM  s@   € Ø�M‰M˜!Óˆà�L‰L˜‹OˆÜ�MŠM˜!˜QÓˆà�O‰O˜AÓˆàˆrE   c                 ó$   • U R                  U5      $ rG   )rÑ   rÐ   s     rB   r‹   ÚEfficientNet.forwardW  s   € Ø×!Ñ! !Ó$Ð$rE   )r¯   r²   r­   )çš™™™™™É?iè  NN)rH   rI   rJ   rK   r   r	   rS   rf   rL   rN   r   r   r
   rO   rZ   r   rÑ   r‹   rQ   rc   rd   s   @rB   r   r   é   sº   ø† ð
 (+ØØ9=Ø&*ña'à#+¨E°,Ð@QÐ2QÑ,RÑ#Sða'ð ða'ð  %ð	a'ð
 ða'ð ˜X c¨2¯9©9 nÑ5Ñ6ða'ð ˜s‘mða'ð 
÷a'ð a'ðF˜vð ¨&ô ð%˜ð % F÷ %ò %rE   r   r˜   r™   r›   ÚweightsÚprogressÚkwargsr?   c                 ó²   • Ub#  [        US[        UR                  S   5      5        [        X4SU0UD6nUb  UR	                  UR                  USS95        U$ )Nrš   Ú
categoriesr›   T)r×   Ú
check_hash)r   ÚlenÚmetar   Úload_state_dictÚget_state_dict)r˜   r™   r›   rÖ   r×   rØ   Úmodels          rB   Ú_efficientnetrá   [  sd   € ð ÑÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUäÐ2ÑaÈ,ÐaÐZ`Ña€EàÑØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÐXÔYà€LrE   Úarchc                 ó`  • U R                  S5      (       aˆ  [        [        UR                  S5      UR                  S5      S9nU" SSSSSS5      U" S	SS
SSS
5      U" S	SS
SSS
5      U" S	SS
SSS5      U" S	SSSSS5      U" S	SS
SSS5      U" S	SSSSS5      /nS nX44$ U R                  S5      (       aa  [	        SSSSSS
5      [	        SSS
SSS5      [	        SSS
SSS5      [        SSS
SSS	5      [        S	SSSSS5      [        S	SS
SSS5      /nSnX44$ U R                  S5      (       ap  [	        SSSSSS5      [	        SSS
SSS5      [	        SSS
SSS5      [        SSS
SSS5      [        S	SSSSS5      [        S	SS
SS S!5      [        S	SSS S"S5      /nSnX44$ U R                  S#5      (       ap  [	        SSSSSS5      [	        SSS
SSS5      [	        SSS
SS$S5      [        SSS
S$SS%5      [        S	SSSS&S'5      [        S	SS
S&S(S)5      [        S	SSS(S*S5      /nSnX44$ [        S+U  35      e),NÚefficientnet_br=   rU   ©r=   rU   r   r�   é    é   é   r   é   é   é(   éP   ép   éÀ   rw   é@  r/   é0   é@   é€   é    é	   é   é   i   r0   é   é°   é   i0  é   é   r1   é`   é
   éà   é   é€  é   i€  zUnsupported model type )Ú
startswithr   rS   Úpoprf   r{   )râ   rØ   Ú
bneck_confr˜   r›   s        rB   Ú_efficientnet_confr  n  sÓ  € ð
 ‡�Ð'×(Ñ(Üœ\°f·j±jÀÓ6NÐ[a×[eÑ[eÐfrÓ[sÑtˆ
á�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  C¨Ó+Ù�q˜!˜Q  S¨!Ó,Ù�q˜!˜Q  S¨!Ó,ð%
Ð!ð ˆðH %Ð2Ð2ðG 
�‰Ð,×	-Ñ	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨1Ó-Ü˜˜A˜q # s¨AÓ.Ü˜˜A˜q # s¨BÓ/ð%
Ð!ð ˆð4 %Ð2Ð2ð3 
�‰Ð,×	-Ñ	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨1Ó-Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨AÓ.ð%
Ð!ð ˆð %Ð2Ð2ð 
�‰Ð,×	-Ñ	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨2Ó.Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨AÓ.ð%
Ð!ð ˆð %Ð2Ð2ô Ð2°4°&Ð9Ó:Ð:rE   rÚ   Ú_COMMON_META)r   r   zUhttps://github.com/pytorch/vision/tree/main/references/classification#efficientnet-v1)Úmin_sizeÚrecipe)é!   r	  zUhttps://github.com/pytorch/vision/tree/main/references/classification#efficientnet-v2c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSS	S
.0SSSS.ES9r
\
rSrg)r   i¸  zJhttps://download.pytorch.org/models/efficientnet_b0_rwightman-7f5810bc.pthrþ   rõ   ©Ú	crop_sizeÚresize_sizeÚinterpolationid²P úImageNet-1Kg?5^ºIlS@g5^ºIbW@©zacc@1zacc@5gNbX9´Ø?gú~j¼ts4@ú1These weights are ported from the original paper.©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_sizeÚ_docs©ÚurlÚ
transformsrÝ   rF   N©rH   rI   rJ   rK   r   r   r   r   ÚBICUBICÚ_COMMON_META_V1ÚIMAGENET1K_V1ÚDEFAULTrQ   rF   rE   rB   r   r   ¸  óa   † ÙàXÙØ¨3¸CÐO`×OhÑOhñ
ð
Øð
à!àØ#Ø#ñ ðð Ø ØLò
ñ€Mð( ƒGrE   r   c                   óº   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSS	S
.0SSSS.ES9r
\" S\" \SS\R                  S90 \	ESSSSSS
.0SSSS.ES9r\rSrg)r   iÐ  zJhttps://download.pytorch.org/models/efficientnet_b1_rwightman-bac287d4.pthéð   rõ   r  iîv r  g+‡©S@g–C‹lç‹W@r  g–C‹lçûå?gü©ñÒM">@r  r  r  z@https://download.pytorch.org/models/efficientnet_b1-c27df63c.pthéÿ   zOhttps://github.com/pytorch/vision/issues/3995#new-recipe-with-lr-wd-crop-tuninggƒÀÊ¡õS@g²�ï§Æ»W@g‰A`åÐ">@á$  
                These weights improve upon the results of the original paper by using a modified version of TorchVision's
                `new training recipe
                <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
            )r  r  r  r  r  r  rF   N)rH   rI   rJ   rK   r   r   r   r   r  r  r  ÚBILINEARÚIMAGENET1K_V2r  rQ   rF   rE   rB   r   r   Ð  sÀ   † ÙàXÙØ¨3¸CÐO`×OhÑOhñ
ð
Øð
à!àØ#Ø#ñ ðð Ø ØLò
ñ€Mñ( ØNÙØ¨3¸CÐO`×OiÑOiñ
ð
Øð
à!ØgàØ#Ø#ñ ðð Ø ðò
ñ€Mð0 ƒGrE   r   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r   rû   zJhttps://download.pytorch.org/models/efficientnet_b2_rwightman-c35c1473.pthi   r  iê‹ r  gôýÔxé&T@g¤p=
×ÓW@r  gœÄ °rhñ?gƒÀÊ¡E–A@r  r  r  rF   Nr  rF   rE   rB   r   r      r   rE   r   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSS	S
.0SSSS.ES9r
\
rSrg)r   i  zJhttps://download.pytorch.org/models/efficientnet_b3_rwightman-b3899882.pthi,  rï   r  iªº r  g�—nƒ€T@gú~j¼tX@r  g¬Zd;ý?gd;ßO�—G@r  r  r  rF   Nr  rF   rE   rB   r   r     óa   † ÙàXÙØ¨3¸CÐO`×OhÑOhñ
ð
Øð
à"àØ#Ø#ñ ðð Ø ØLò
ñ€Mð( ƒGrE   r   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSS	S
.0SSSS.ES9r
\
rSrg)r    i0  zJhttps://download.pytorch.org/models/efficientnet_b4_rwightman-23ab8bcd.pthi|  r   r  i0!'r  gj¼t“ØT@g¼t“&X@r  gú~j¼t“@gžï§ÆKŸR@r  r  r  rF   Nr  rF   rE   rB   r    r    0  r)  rE   r    c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r!   iH  zJhttps://download.pytorch.org/models/efficientnet_b5_lukemelas-1a07897c.pthiÈ  r  i¶Ïr  g#Ûù~jÜT@gÕxé&1(X@r  gÕxé&1ˆ$@gžï§ÆK7]@r  r  r  rF   Nr  rF   rE   rB   r!   r!   H  óa   † ÙàXÙØ¨3¸CÐO`×OhÑOhñ
ð
Øð
à"àØ#Ø#ñ ðð Ø!ØLò
ñ€Mð( ƒGrE   r!   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r"   i`  zJhttps://download.pytorch.org/models/efficientnet_b6_lukemelas-24a108a5.pthi  r  iÀ¿�r  g�—nƒ U@g´Èv¾Ÿ:X@r  gÅ °rh3@gÝ$�•«d@r  r  r  rF   Nr  rF   rE   rB   r"   r"   `  r,  rE   r"   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r#   ix  zJhttps://download.pytorch.org/models/efficientnet_b7_lukemelas-c5b4e57e.pthiX  r  i¸côr  g+‡ÙÎU@g'1¬:X@r  gsh‘í|ßB@gš™™™™Õo@r  r  r  rF   Nr  rF   rE   rB   r#   r#   x  r,  rE   r#   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r$   i�  zBhttps://download.pytorch.org/models/efficientnet_v2_s-dd5fe13b.pthr   r  i8nGr  g;ßO�—U@gÕxé&18X@r  g¬Zd» @g“V­T@r$  r  r  rF   N©rH   rI   rJ   rK   r   r   r   r   r%  Ú_COMMON_META_V2r  r  rQ   rF   rE   rB   r$   r$   �  se   † ÙØPÙØØØØ+×4Ñ4ñ	
ð
Øð
à"àØ#Ø#ñ ðð Ø ðò
ñ€Mð4 ƒGrE   r$   c                   óh   • \ rS rSr\" S\" \SS\R                  S90 \	ESSSSS	.0S
SSS.ES9r
\
rSrg)r%   i®  zBhttps://download.pytorch.org/models/efficientnet_v2_m-dc08266a.pthéà  r  iÜ:r  gºI+GU@gD‹lçûIX@r  g¢E¶óý”8@g¸…ëQ j@r$  r  r  rF   Nr0  rF   rE   rB   r%   r%   ®  se   † ÙØPÙØØØØ+×4Ñ4ñ	
ð
Øð
à"àØ#Ø#ñ ðð Ø ðò
ñ€Mð4 ƒGrE   r%   c                   ól   • \ rS rSr\" S\" \SS\R                  SSS90 \	ESSSS	S
.0SSSS.ES9r
\
rSrg)r&   iÌ  zBhttps://download.pytorch.org/models/efficientnet_v2_l-59c71312.pthr3  )ç      à?r5  r5  )r  r  r  ÚmeanÚstdiHfr  gÁÊ¡E¶sU@gßO�—nrX@r  g
×£p=
L@gºI+i|@r  r  r  rF   N)rH   rI   rJ   rK   r   r   r   r   r  r1  r  r  rQ   rF   rE   rB   r&   r&   Ì  si   † áØPÙØØØØ+×3Ñ3Ø Øñ
ð
Øð
à#àØ#Ø#ñ ðð Ø!ØLò
ñ€Mð0 ƒGrE   r&   Ú
pretrained)rÖ   T)rÖ   r×   c                 ó‚   • [         R                  U 5      n [        SSSS9u  p4[        X2R	                  SS5      X@U40 UD6$ )a˜  EfficientNet B0 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B0_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B0_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B0_Weights
    :members:
r'   rb   rå   r™   rÕ   )r   Úverifyr  rá   r  ©rÖ   r×   rØ   r˜   r›   s        rB   r'   r'   é  óQ   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÑ.sÑ+ÐÜØ!§:¡:¨i¸Ó#=¸|ÐV^ñØbhñð rE   c                 ó‚   • [         R                  U 5      n [        SSSS9u  p4[        X2R	                  SS5      X@U40 UD6$ )a˜  EfficientNet B1 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B1_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B1_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B1_Weights
    :members:
r(   rb   çš™™™™™ñ?rå   r™   rÕ   )r   r:  r  rá   r  r;  s        rB   r(   r(     r<  rE   c                 ó‚   • [         R                  U 5      n [        SSSS9u  p4[        X2R	                  SS5      X@U40 UD6$ )a˜  EfficientNet B2 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B2_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B2_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B2_Weights
    :members:
r)   r>  ç333333ó?rå   r™   ç333333Ó?)r   r:  r  rá   r  r;  s        rB   r)   r)   '  r<  rE   c                 ó†   • [         R                  U 5      n [        SSSS9u  p4[        UUR	                  SS5      UU U40 UD6$ )a˜  EfficientNet B3 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B3_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B3_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B3_Weights
    :members:
r*   r@  çffffffö?rå   r™   rA  )r   r:  r  rá   r  r;  s        rB   r*   r*   F  óZ   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÑ.sÑ+ÐÜØ!Ø�
‰
�9˜cÓ"ØØØñð ñð rE   c                 ó†   • [         R                  U 5      n [        SSSS9u  p4[        UUR	                  SS5      UU U40 UD6$ )a˜  EfficientNet B4 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B4_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B4_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B4_Weights
    :members:
r+   rC  çÍÌÌÌÌÌü?rå   r™   çš™™™™™Ù?)r    r:  r  rá   r  r;  s        rB   r+   r+   j  rD  rE   c           
      ó¸   • [         R                  U 5      n [        SSSS9u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS	S
90UD6$ )a˜  EfficientNet B5 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B5_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B5_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B5_Weights
    :members:
r,   gš™™™™™ù?gš™™™™™@rå   r™   rG  ro   çü©ñÒMbP?ç{®Gáz„?©ÚepsÚmomentum)r!   r:  r  rá   r  r   r
   r©   r;  s        rB   r,   r,   Ž  óq   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÑ.sÑ+ÐÜØ!Ø�
‰
�9˜cÓ"ØØØñô œ2Ÿ>™>¨u¸tÑDðð ñð rE   c           
      ó¸   • [         R                  U 5      n [        SSSS9u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS	S
90UD6$ )a˜  EfficientNet B6 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B6_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B6_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B6_Weights
    :members:
r-   rF  gÍÌÌÌÌÌ@rå   r™   r5  ro   rI  rJ  rK  )r"   r:  r  rá   r  r   r
   r©   r;  s        rB   r-   r-   ³  rN  rE   c           
      ó¸   • [         R                  U 5      n [        SSSS9u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS	S
90UD6$ )a˜  EfficientNet B7 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

Args:
    weights (:class:`~torchvision.models.EfficientNet_B7_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_B7_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_B7_Weights
    :members:
r.   g       @gÍÌÌÌÌÌ@rå   r™   r5  ro   rI  rJ  rK  )r#   r:  r  rá   r  r   r
   r©   r;  s        rB   r.   r.   Ø  rN  rE   c           	      ó¶   • [         R                  U 5      n [        S5      u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS90UD6$ )aˆ  
Constructs an EfficientNetV2-S architecture from
`EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

Args:
    weights (:class:`~torchvision.models.EfficientNet_V2_S_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_V2_S_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_V2_S_Weights
    :members:
r/   r™   rÕ   ro   rI  ©rL  )r$   r:  r  rá   r  r   r
   r©   r;  s        rB   r/   r/   ý  ói   € ô0 (×.Ñ.¨wÓ7€Gä.@ÐATÓ.UÑ+ÐÜØ!Ø�
‰
�9˜cÓ"ØØØñô œ2Ÿ>™>¨uÑ5ðð ñð rE   c           	      ó¶   • [         R                  U 5      n [        S5      u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS90UD6$ )aˆ  
Constructs an EfficientNetV2-M architecture from
`EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

Args:
    weights (:class:`~torchvision.models.EfficientNet_V2_M_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_V2_M_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_V2_M_Weights
    :members:
r0   r™   rA  ro   rI  rR  )r%   r:  r  rá   r  r   r
   r©   r;  s        rB   r0   r0   #  rS  rE   c           	      ó¶   • [         R                  U 5      n [        S5      u  p4[        UUR	                  SS5      UU U4S[        [        R                  SS90UD6$ )aˆ  
Constructs an EfficientNetV2-L architecture from
`EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

Args:
    weights (:class:`~torchvision.models.EfficientNet_V2_L_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.EfficientNet_V2_L_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
        for more details about this class.
.. autoclass:: torchvision.models.EfficientNet_V2_L_Weights
    :members:
r1   r™   rG  ro   rI  rR  )r&   r:  r  rá   r  r   r
   r©   r;  s        rB   r1   r1   I  rS  rE   )Or¬   r_   Úcollections.abcr   Údataclassesr   Ú	functoolsr   Útypingr   r   r   r	   rÎ   r
   r   Útorchvision.opsr   Úops.miscr   r   Útransforms._presetsr   r   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   r   Ú__all__r3   rS   rf   rO   rX   ri   r   rL   rN   Úboolrá   ÚstrÚtupler  r  ÚdictrM   r  r1  r   r   r   r   r    r!   r"   r#   r$   r%   r&   r  r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   rF   rE   rB   Ú<module>rf     s  ðÜ Û Ý $Ý !Ý ß 1Ó 1ã ß Ý +ç >ß HÝ 'ß 6Ñ 6Ý 'ß SÑ Sò€ð6 ÷Dð Dó ðDô7�=ô 7ô4h˜ô hô"@ˆR�Y‰Yô @ôF:�"—)‘)ô :ôzo%�2—9‘9ô o%ðdØ'¨¨lÐ<MÐ.MÑ(NÑOðàðð ˜3‘-ðð �kÑ"ð	ð
 ðð ðð ôð&43Ø
ð43àð43ð ˆ8�E˜,Ð(9Ð9Ñ:Ñ;¸XÀc¹]ÐJÑKô43ðp Ð&ð €ˆd�3˜�8‰nó ð
ØðàØeò€ðØðàØeò€ô˜kô ô0-˜kô -ô`˜kô ô0˜kô ô0˜kô ô0˜kô ô0˜kô ô0˜kô ô0 ô ô< ô ô< ô ñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4òØÐ0Ñ1ðØDHðØ[^ðàôó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4òØÐ0Ñ1ðØDHðØ[^ðàôó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4òØÐ0Ñ1ðØDHðØ[^ðàôó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4òØÐ0Ñ1ðØDHðØ[^ðàôó Xó ðñD ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4òØÐ0Ñ1ðØDHðØ[^ðàôó Xó ðñD ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àô ó Xó ð ñF ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àô ó Xó ð ñF ÓÙ ,Ð0G×0UÑ0UÐ!VÑWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àô ó Xó ð ñF ÓÙ ,Ð0I×0WÑ0WÐ!XÑYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àô!ó Zó ð!ñH ÓÙ ,Ð0I×0WÑ0WÐ!XÑYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àô!ó Zó ð!ñH ÓÙ ,Ð0I×0WÑ0WÐ!XÑYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àô!ó Zó ñ!rE   