§
    ‚ŠtjG7  ã                   ó˜  — d 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
 dd	lmZ d
dlmZ  G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Ze G d„ de
¦  «        ¦   «         Z ed¬¦  «         G d„ de¦  «        ¦   «         ZddgZdS )zrPyTorch UperNet model. Based on OpenMMLab's implementation, found in https://github.com/open-mmlab/mmsegmentation.é    N)Únn)ÚCrossEntropyLossé   )Úload_backbone)ÚSemanticSegmenterOutput)ÚPreTrainedModel)Úauto_docstringé   )ÚUperNetConfigc                   ó´   ‡ — e Zd ZdZ	 	 	 ddededeeeef         z  deeeef         z  ez  d	ed
eeeef         z  ddfˆ fd„Zde	j
        de	j
        fd„Zˆ xZS )ÚUperNetConvModulezã
    A convolutional block that bundles conv/norm/activation layers. This block simplifies the usage of convolution
    layers, which are commonly used with a norm layer (e.g., BatchNorm) and activation layer (e.g., ReLU).
    r   Fr
   Úin_channelsÚout_channelsÚkernel_sizeÚpaddingÚbiasÚdilationÚreturnNc                 óè   •— t          ¦   «                              ¦   «          t          j        ||||||¬¦  «        | _        t          j        |¦  «        | _        t          j        ¦   «         | _        d S )N)r   r   r   r   r   r   )	ÚsuperÚ__init__r   ÚConv2dÚconvÚBatchNorm2dÚ
batch_normÚReLUÚ
activation)Úselfr   r   r   r   r   r   Ú	__class__s          €új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/upernet/modeling_upernet.pyr   zUperNetConvModule.__init__!   si   ø€ õ 	‰Œ×ÒÑÔÐÝ”IØ#Ø%Ø#ØØØð
ñ 
ô 
ˆŒ	õ œ.¨Ñ6Ô6ˆŒÝœ'™)œ)ˆŒˆˆó    Úinputc                 ó„   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }|S ©N)r   r   r   )r   r"   Úoutputs      r    ÚforwardzUperNetConvModule.forward6   s:   € Ø—’˜5Ñ!Ô!ˆØ—’ Ñ(Ô(ˆØ—’ Ñ(Ô(ˆàˆr!   )r   Fr
   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚintÚtupleÚstrÚboolr   ÚtorchÚTensorr&   Ú__classcell__©r   s   @r    r   r      sí   ø€ € € € € ðð ð 01ØØ*+ð$ð $àð$ð ð$ð ˜5  c œ?Ñ*ð	$ð
 �u˜S #˜X”Ñ&¨Ñ,ð$ð ð$ð ˜˜c 3˜hœÑ'ð$ð 
ð$ð $ð $ð $ð $ð $ð*˜Uœ\ð ¨e¬lð ð ð ð ð ð ð ð r!   r   c                   óT   ‡ — e Zd Zdedededdfˆ fd„Zdej        dej        fd„Zˆ xZS )	ÚUperNetPyramidPoolingBlockÚ
pool_scaler   Úchannelsr   Nc                 ó  •— t          ¦   «                              ¦   «          t          j        |¦  «        t	          ||d¬¦  «        g| _        t          | j        ¦  «        D ](\  }}|                      t          |¦  «        |¦  «         Œ)d S )Nr
   ©r   )	r   r   r   ÚAdaptiveAvgPool2dr   ÚlayersÚ	enumerateÚ
add_moduler-   )r   r5   r   r6   ÚiÚlayerr   s         €r    r   z#UperNetPyramidPoolingBlock.__init__?   sˆ   ø€ Ý‰Œ×ÒÑÔÐåÔ  Ñ,Ô,Ý˜k¨8ÀÐCÑCÔCð
ˆŒõ " $¤+Ñ.Ô.ð 	+ð 	+‰HˆAˆuØ�OŠO�C ™FœF EÑ*Ô*Ð*Ð*ð	+ð 	+r!   r"   c                 ó4   — |}| j         D ]} ||¦  «        }Œ|S r$   )r:   )r   r"   Úhidden_stater>   s       r    r&   z"UperNetPyramidPoolingBlock.forwardH   s/   € ØˆØ”[ð 	/ð 	/ˆEØ ˜5 Ñ.Ô.ˆLˆLØÐr!   )	r'   r(   r)   r+   r   r/   r0   r&   r1   r2   s   @r    r4   r4   >   s   ø€ € € € € ð+ 3ð +°Sð +ÀCð +ÈDð +ð +ð +ð +ð +ð +ð˜Uœ\ð ¨e¬lð ð ð ð ð ð ð ð r!   r4   c            
       óx   ‡ — e Zd ZdZdeedf         dedededdf
ˆ fd	„Zd
ej	        de
ej	                 fd„Zˆ xZS )ÚUperNetPyramidPoolingModulea}  
    Pyramid Pooling Module (PPM) used in PSPNet.

    Args:
        pool_scales (`tuple[int]`):
            Pooling scales used in Pooling Pyramid Module.
        in_channels (`int`):
            Input channels.
        channels (`int`):
            Channels after modules, before conv_seg.
        align_corners (`bool`):
            align_corners argument of F.interpolate.
    Úpool_scales.r   r6   Úalign_cornersr   Nc                 óV  •— t          ¦   «                              ¦   «          || _        || _        || _        || _        g | _        t          |¦  «        D ]T\  }}t          |||¬¦  «        }| j         	                    |¦  «         |  
                    t          |¦  «        |¦  «         ŒUd S )N)r5   r   r6   )r   r   rC   rD   r   r6   Úblocksr;   r4   Úappendr<   r-   )	r   rC   r   r6   rD   r=   r5   Úblockr   s	           €r    r   z$UperNetPyramidPoolingModule.__init__^   s­   ø€ Ý‰Œ×ÒÑÔÐØ&ˆÔØ*ˆÔØ&ˆÔØ ˆŒØˆŒÝ& {Ñ3Ô3ð 	+ð 	+‰MˆAˆzÝ.¸*ÐR]ÐhpÐqÑqÔqˆEØŒK×Ò˜uÑ%Ô%Ð%Ø�OŠO�C ™FœF EÑ*Ô*Ð*Ð*ð	+ð 	+r!   Úxc                 óâ   — g }| j         D ]d} ||¦  «        }t          j                             ||                     ¦   «         dd …         d| j        ¬¦  «        }|                     |¦  «         Œe|S )Né   Úbilinear©ÚsizeÚmoderD   )rF   r   Ú
functionalÚinterpolaterN   rD   rG   )r   rI   Úppm_outsÚppmÚppm_outÚupsampled_ppm_outs         r    r&   z#UperNetPyramidPoolingModule.forwardj   s{   € ØˆØ”;ð 	/ð 	/ˆCØ�c˜!‘f”fˆGÝ "¤× 9Ò 9Ø˜aŸfšf™hœh q r rœl°È4ÔK]ð !:ñ !ô !Ðð �OŠOÐ-Ñ.Ô.Ð.Ð.Øˆr!   )r'   r(   r)   r*   r,   r+   r.   r   r/   r0   Úlistr&   r1   r2   s   @r    rB   rB   O   s    ø€ € € € € ðð ð
+ E¨#¨s¨(¤Oð 
+À#ð 
+ÐQTð 
+Ðeið 
+Ðnrð 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð˜œð ¨$¨u¬|Ô*<ð ð ð ð ð ð ð ð r!   rB   c                   óL   ‡ — e Zd ZdZˆ fd„Zd„ Zdej        dej        fd„Zˆ xZ	S )ÚUperNetHeadz™
    Unified Perceptual Parsing for Scene Understanding. This head is the implementation of
    [UPerNet](https://huggingface.co/papers/1807.10221).
    c                 óž  •— t          ¦   «                              ¦   «          || _        |j        | _        || _        |j        | _        d| _        t          j	        | j        |j
        d¬¦  «        | _        t          | j        | j        d         | j        | j        ¬¦  «        | _        t          | j        d         t          | j        ¦  «        | j        z  z   | j        dd¬¦  «        | _        t          j        ¦   «         | _        t          j        ¦   «         | _        | j        d d…         D ]j}t          || j        d¬¦  «        }t          | j        | j        dd¬¦  «        }| j                             |¦  «         | j                             |¦  «         Œkt          t          | j        ¦  «        | j        z  | j        dd¬¦  «        | _        d S )NFr
   r8   éÿÿÿÿ)rD   r   ©r   r   )r   r   ÚconfigrC   r   Úhidden_sizer6   rD   r   r   Ú
num_labelsÚ
classifierrB   Úpsp_modulesr   ÚlenÚ
bottleneckÚ
ModuleListÚlateral_convsÚ	fpn_convsrG   Úfpn_bottleneck)r   r\   r   Úl_convÚfpn_convr   s        €r    r   zUperNetHead.__init__{   s´  ø€ Ý‰Œ×ÒÑÔÐàˆŒØ!Ô-ˆÔØ&ˆÔØÔ*ˆŒØ"ˆÔÝœ) D¤M°6Ô3DÐRSÐTÑTÔTˆŒõ 7ØÔØÔ˜RÔ ØŒMØÔ,ð	
ñ 
ô 
ˆÔõ ,ØÔ˜RÔ ¥3 tÔ'7Ñ#8Ô#8¸4¼=Ñ#HÑHØŒMØØð	
ñ 
ô 
ˆŒõ  œ]™_œ_ˆÔÝœ™œˆŒØÔ+¨C¨R¨CÔ0ð 	,ð 	,ˆKÝ& {°D´MÈqÐQÑQÔQˆFÝ(¨¬¸¼ÐSTÐ^_Ð`Ñ`Ô`ˆHØÔ×%Ò% fÑ-Ô-Ð-ØŒN×!Ò! (Ñ+Ô+Ð+Ð+å/Ý�Ô Ñ!Ô! D¤MÑ1ØŒMØØð	
ñ 
ô 
ˆÔÐÐr!   c                 óÂ   — |d         }|g}|                      |                      |¦  «        ¦  «         t          j        |d¬¦  «        }|                      |¦  «        }|S )NrZ   r
   ©Údim)Úextendr`   r/   Úcatrb   )r   ÚinputsrI   Úpsp_outsr%   s        r    Úpsp_forwardzUperNetHead.psp_forward¢   s\   € Ø�2ŒJˆØ�3ˆØ�Š˜×(Ò(¨Ñ+Ô+Ñ,Ô,Ð,Ý”9˜X¨1Ð-Ñ-Ô-ˆØ—’ Ñ*Ô*ˆàˆr!   Úencoder_hidden_statesr   c                 óB  ‡ ‡‡— ˆfd„t          ‰ j        ¦  «        D ¦   «         Š‰                     ‰                      ‰¦  «        ¦  «         t	          ‰¦  «        }t          |dz
  dd¦  «        D ]Z}‰|dz
           j        dd …         }‰|dz
           t          j         	                    ‰|         |d‰ j
        ¬¦  «        z   ‰|dz
  <   Œ[ˆˆ fd„t          |dz
  ¦  «        D ¦   «         }|                     ‰d         ¦  «         t          |dz
  dd¦  «        D ]F}t          j         	                    ||         |d         j        dd …         d‰ j
        ¬¦  «        ||<   ŒGt          j        |d¬	¦  «        }‰                      |¦  «        }‰                      |¦  «        }|S )
Nc                 ó8   •— g | ]\  }} |‰|         ¦  «        ‘ŒS © rt   )Ú.0r=   Úlateral_convrq   s      €r    ú
<listcomp>z'UperNetHead.forward.<locals>.<listcomp>­   s-   ø€ ÐpÐpÐp¹¸qÀ,�L�LÐ!6°qÔ!9Ñ:Ô:ÐpÐpÐpr!   r
   r   rZ   rK   rL   rM   c                 óH   •— g | ]} ‰j         |         ‰|         ¦  «        ‘ŒS rt   )re   )ru   r=   Úlateralsr   s     €€r    rw   z'UperNetHead.forward.<locals>.<listcomp>º   s/   ø€ Ð\Ð\Ð\°qÐ%�D”N 1Ô% h¨q¤kÑ2Ô2Ð\Ð\Ð\r!   rj   )r;   rd   rG   rp   ra   ÚrangeÚshaper   rP   rQ   rD   r/   rm   rf   r_   )r   rq   Úused_backbone_levelsr=   Ú
prev_shapeÚfpn_outsr%   ry   s   ``     @r    r&   zUperNetHead.forward«   sÁ  øøø€ àpÐpÐpÐpÕR[Ð\`Ô\nÑRoÔRoÐpÑpÔpˆà�Š˜×(Ò(Ð)>Ñ?Ô?Ñ@Ô@Ð@õ  # 8™}œ}ÐÝÐ+¨aÑ/°°BÑ7Ô7ð 	ð 	ˆAØ! ! a¡%œÔ.¨q¨r¨rÔ2ˆJØ& q¨1¡uœoµ´×0IÒ0IØ˜” *°:ÈTÔM_ð 1Jñ 1ô 1ñ ˆH�Q˜‘U‰OˆOð
 ]Ð\Ð\Ð\Ð\½EÐBVÐYZÑBZÑ<[Ô<[Ð\Ñ\Ô\ˆà�Š˜ œÑ%Ô%Ð%åÐ+¨aÑ/°°BÑ7Ô7ð 	ð 	ˆAÝœ-×3Ò3Ø˜” (¨1¤+Ô"3°A°B°BÔ"7¸jÐX\ÔXjð 4ñ ô ˆH�Q‰KˆKõ ”9˜X¨1Ð-Ñ-Ô-ˆØ×$Ò$ XÑ.Ô.ˆØ—’ Ñ(Ô(ˆàˆr!   )
r'   r(   r)   r*   r   rp   r/   r0   r&   r1   r2   s   @r    rX   rX   u   sx   ø€ € € € € ðð ð
%
ð %
ð %
ð %
ð %
ðNð ð ð¨U¬\ð ¸e¼lð ð ð ð ð ð ð ð r!   rX   c            
       ór   ‡ — e Zd ZdZ	 ddededeeeef         z  dd	fˆ fd
„Zdej        dej        fd„Z	ˆ xZ
S )ÚUperNetFCNHeadaÄ  
    Fully Convolution Networks for Semantic Segmentation. This head is the implementation of
    [FCNNet](https://huggingface.co/papers/1411.4038>).

    Args:
        config:
            Configuration.
        in_channels (int):
            Number of input channels.
        kernel_size (int):
            The kernel size for convs in the head. Default: 3.
        dilation (int):
            The dilation rate for convs in the head. Default: 1.
    rK   r   r
   Úin_indexr   r   r   Nc           
      ó  •— t          ¦   «                              ¦   «          || _        |j        €||         n|j        | _        |j        | _        |j        | _        |j	        | _
        || _        |dz  |z  }g }|                     t          | j        | j        |||¬¦  «        ¦  «         t          | j        dz
  ¦  «        D ]3}|                     t          | j        | j        |||¬¦  «        ¦  «         Œ4| j        dk    rt          j        ¦   «         | _        nt          j        |Ž | _        | j
        r-t          | j        | j        z   | j        ||dz  ¬¦  «        | _        t          j        | j        |j        d¬¦  «        | _        d S )NrK   )r   r   r   r
   r   r[   r8   )r   r   r\   Úauxiliary_in_channelsr   Úauxiliary_channelsr6   Úauxiliary_num_convsÚ	num_convsÚauxiliary_concat_inputÚconcat_inputr�   rG   r   rz   r   ÚIdentityÚconvsÚ
SequentialÚconv_catr   r^   r_   )
r   r\   r   r�   r   r   Úconv_paddingrŠ   r=   r   s
            €r    r   zUperNetFCNHead.__init__Ù   s£  ø€ õ 	‰Œ×ÒÑÔÐàˆŒà%+Ô%AÐ%IˆK˜Ô!Ð!ÈvÔOkð 	Ôð Ô1ˆŒØÔ3ˆŒØ"Ô9ˆÔØ ˆŒà# qÑ(¨HÑ4ˆØˆØ�ŠÝØÔ  $¤-¸[ÐR^Ðiqðñ ô ñ	
ô 	
ð 	
õ
 �t”~¨Ñ)Ñ*Ô*ð 	ð 	ˆAØ�LŠLÝ!Ø”M 4¤=¸kÐS_Ðjrðñ ô ñô ð ð ð
 Œ>˜QÒÐÝœ™œˆDŒJˆJåœ¨Ð.ˆDŒJØÔð 	Ý-ØÔ  4¤=Ñ0°$´-È[ÐbmÐqrÑbrðñ ô ˆDŒMõ œ) D¤M°6Ô3DÐRSÐTÑTÔTˆŒˆˆr!   rq   c                 óØ   — || j                  }|                      |¦  «        }| j        r+|                      t	          j        ||gd¬¦  «        ¦  «        }|                      |¦  «        }|S )Nr
   rj   )r�   rŠ   rˆ   rŒ   r/   rm   r_   )r   rq   Úhidden_statesr%   s       r    r&   zUperNetFCNHead.forwardÿ   sf   € à-¨d¬mÔ<ˆØ—’˜MÑ*Ô*ˆØÔð 	NØ—]’]¥5¤9¨m¸VÐ-DÈ!Ð#LÑ#LÔ#LÑMÔMˆFØ—’ Ñ(Ô(ˆØˆr!   )rK   r   r
   )r'   r(   r)   r*   r+   r,   r   r/   r0   r&   r1   r2   s   @r    r€   r€   É   s·   ø€ € € € € ðð ð  opð$Uð $UØ-0ð$UØCFð$UØVYÐ\aÐbeÐgjÐbjÔ\kÑVkð$Uà	ð$Uð $Uð $Uð $Uð $Uð $UðL¨U¬\ð ¸e¼lð ð ð ð ð ð ð ð r!   r€   c                   ó&   — e Zd ZU eed<   dZdZg ZdS )ÚUperNetPreTrainedModelr\   Úpixel_values)ÚimageN)r'   r(   r)   r   Ú__annotations__Úmain_input_nameÚinput_modalitiesÚ_no_split_modulesrt   r!   r    r‘   r‘   	  s/   € € € € € € àÐÐÑØ$€OØ!ÐØÐÐÐr!   r‘   zW
    UperNet framework leveraging any vision backbone e.g. for ADE20k, CityScapes.
    )Úcustom_introc                   ó’   ‡ — e Zd Zˆ fd„Ze	 	 	 	 	 d
dej        dz  dedz  dedz  dej        dz  dedz  dee	z  fd	„¦   «         Z
ˆ xZS )ÚUperNetForSemanticSegmentationc                 ó,  •— t          ¦   «                              |¦  «         t          |¦  «        | _        t	          || j        j        ¬¦  «        | _        |j        rt          || j        j        ¬¦  «        nd | _	        |  
                    ¦   «          d S )N)r   )r   r   r   ÚbackbonerX   r6   Údecode_headÚuse_auxiliary_headr€   Úauxiliary_headÚ	post_init)r   r\   r   s     €r    r   z'UperNetForSemanticSegmentation.__init__  s‰   ø€ Ý‰Œ×Ò˜Ñ Ô Ð å% fÑ-Ô-ˆŒõ ' v¸4¼=Ô;QÐRÑRÔRˆÔàJPÔJcÐm�N˜6¨t¬}Ô/EÐFÑFÔFÐFÐimð 	Ôð
 	�ŠÑÔÐÐÐr!   Nr’   Úoutput_attentionsÚoutput_hidden_statesÚlabelsÚreturn_dictr   c                 ó6  — |�| j         j        dk    rt          d¦  «        ‚|�|n| j         j        }|�|n| j         j        }|�|n| j         j        }| j                             |||¬¦  «        }|j        }|  	                    |¦  «        }	t          j                             |	|j        dd…         dd¬¦  «        }	d}
| j        �E|                      |¦  «        }
t          j                             |
|j        dd…         dd¬¦  «        }
d}|�Ft          | j         j        ¬	¦  «        } ||	|¦  «        }|
� ||
|¦  «        }|| j         j        |z  z  }|s)|r|	f|dd…         z   }n|	f|dd…         z   }|�|f|z   n|S t%          ||	|j        |j        ¬
¦  «        S )aÈ  
        labels (`torch.LongTensor` of shape `(batch_size, height, width)`, *optional*):
            Ground truth semantic segmentation maps for computing the loss. Indices should be in `[0, ...,
            config.num_labels - 1]`. If `config.num_labels > 1`, a classification loss is computed (Cross-Entropy).

        Examples:
        ```python
        >>> from transformers import AutoImageProcessor, UperNetForSemanticSegmentation
        >>> from PIL import Image
        >>> from huggingface_hub import hf_hub_download

        >>> image_processor = AutoImageProcessor.from_pretrained("openmmlab/upernet-convnext-tiny")
        >>> model = UperNetForSemanticSegmentation.from_pretrained("openmmlab/upernet-convnext-tiny")

        >>> filepath = hf_hub_download(
        ...     repo_id="hf-internal-testing/fixtures_ade20k", filename="ADE_val_00000001.jpg", repo_type="dataset"
        ... )
        >>> image = Image.open(filepath).convert("RGB")

        >>> inputs = image_processor(images=image, return_tensors="pt")

        >>> outputs = model(**inputs)

        >>> logits = outputs.logits  # shape (batch_size, num_labels, height, width)
        >>> list(logits.shape)
        [1, 150, 512, 512]
        ```Nr
   z/The number of labels should be greater than one)r¢   r¡   rK   rL   FrM   )Úignore_index)ÚlossÚlogitsr�   Ú
attentions)r\   r^   Ú
ValueErrorr¤   r¢   r¡   rœ   Úforward_with_filtered_kwargsÚfeature_mapsr�   r   rP   rQ   r{   rŸ   r   Úloss_ignore_indexÚauxiliary_loss_weightr   r�   r©   )r   r’   r¡   r¢   r£   r¤   ÚkwargsÚoutputsÚfeaturesr¨   Úauxiliary_logitsr§   Úloss_fctÚauxiliary_lossr%   s                  r    r&   z&UperNetForSemanticSegmentation.forward%  s  € ðJ Ð $¤+Ô"8¸AÒ"=Ð"=ÝÐNÑOÔOÐOà%0Ð%<�k�kÀ$Ä+ÔBYˆà$8Ð$DÐ Ð È$Ì+ÔJjð 	ð 2CÐ1NÐ-Ð-ÐTXÔT_ÔTqÐà”-×<Ò<ØÐ/CÐWhð =ñ 
ô 
ˆð Ô'ˆà×!Ò! (Ñ+Ô+ˆÝ”×*Ò*¨6¸Ô8JÈ1È2È2Ô8NÐU_ÐotÐ*ÑuÔuˆàÐØÔÐ*Ø#×2Ò2°8Ñ<Ô<ÐÝ!œ}×8Ò8Ø  |Ô'9¸!¸"¸"Ô'=ÀJÐ^cð  9ñ  ô  Ðð ˆØÐå'°T´[Ô5RÐSÑSÔSˆHØ�8˜F FÑ+Ô+ˆDØÐ+Ø!) Ð*:¸FÑ!CÔ!C�Ø˜œÔ9¸NÑJÑJ�àð 	FØ#ð 1Ø ˜ W¨Q¨R¨R¤[Ñ0��à ˜ W¨Q¨R¨R¤[Ñ0�Ø)-Ð)9�T�G˜fÑ$Ð$¸vÐEå&ØØØ!Ô/ØÔ)ð	
ñ 
ô 
ð 	
r!   )NNNNN)r'   r(   r)   r   r	   r/   r0   r.   r,   r   r&   r1   r2   s   @r    rš   rš     s×   ø€ € € € € ðð ð ð ð ð ð -1Ø)-Ø,0Ø&*Ø#'ðQ
ð Q
à”l TÑ)ðQ
ð   $™;ðQ
ð # T™kð	Q
ð
 ”˜tÑ#ðQ
ð ˜D‘[ðQ
ð 
Ð(Ñ	(ðQ
ð Q
ð Q
ñ „^ðQ
ð Q
ð Q
ð Q
ð Q
r!   rš   )r*   r/   r   Útorch.nnr   Úbackbone_utilsr   Úmodeling_outputsr   Úmodeling_utilsr   Úutilsr	   Úconfiguration_upernetr   ÚModuler   r4   rB   rX   r€   r‘   rš   Ú__all__rt   r!   r    ú<module>r½      s  ðð yÐ xà €€€Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %à +Ð +Ð +Ð +Ð +Ð +Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -Ø #Ð #Ð #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð ð  ð  ð  ð  ˜œ	ñ  ô  ð  ðFð ð ð ð  ¤ñ ô ð ð"#ð #ð #ð #ð # "¤)ñ #ô #ð #ðLQð Qð Qð Qð Q�"”)ñ Qô Qð Qðh=ð =ð =ð =ð =�R”Yñ =ô =ð =ð@ ðð ð ð ð ˜_ñ ô ñ „ðð €ððñ ô ð
a
ð a
ð a
ð a
ð a
Ð%;ñ a
ô a
ñô ð
a
ðH ,Ð-EÐ
F€€€r!   