Ë
    ÛÓ^jsR  ã                   ó8  — U d 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	Z	ddl
mZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZmZmZmZmZmZ ddlmZmZ ddlm Z m!Z! eZ"eZ#g d¢Z$g d¢Z%dZ&e'e(d<    G d„ ded¬«      Z) G d„ d«      Z*e! G d„ de«      «       Z+dgZ,y)z Image processor class for Flava.é    N)ÚIterable)Ú	lru_cache)ÚAny)Ú
functionalé   )ÚTorchvisionBackend)ÚBatchFeatureÚget_size_dict)Úgroup_images_by_shapeÚreorder_images)ÚOPENAI_CLIP_MEANÚOPENAI_CLIP_STDÚChannelDimensionÚ
ImageInputÚPILImageResamplingÚSizeDict)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstring)ç        r   r   )ç      ð?r   r   gš™™™™™¹?ÚLOGIT_LAPLACE_EPSc                   ó  — e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   ee	ef   ed<   eed<   eed<   ee	ef   ed<   eed<   eez  ed<   eed<   eed<   ee
e   z  ed<   ee
e   z  ed<   y)ÚFlavaImageProcessorKwargsaÍ  
    return_image_mask (`bool`, *optional*, defaults to `False`):
        Whether to return the image mask. Can be overridden by the `return_image_mask` parameter in `preprocess`.
    input_size_patches (`int`, *optional*, defaults to `14`):
        Number of patches in the image in height and width direction. 14x14 = 196 total patches. Can be overridden
        by the `input_size_patches` parameter in `preprocess`.
    total_mask_patches (`int`, *optional*, defaults to `75`):
        Total number of patches that should be masked. Can be overridden by the `total_mask_patches` parameter in
        `preprocess`.
    mask_group_min_patches (`int`, *optional*, defaults to `16`):
        Minimum number of patches that should be masked. Can be overridden by the `mask_group_min_patches`
        parameter in `preprocess`.
    mask_group_max_patches (`int`, *optional*):
        Maximum number of patches that should be masked. Can be overridden by the `mask_group_max_patches`
        parameter in `preprocess`.
    mask_group_min_aspect_ratio (`float`, *optional*, defaults to `0.3`):
        Minimum aspect ratio of the mask window. Can be overridden by the `mask_group_min_aspect_ratio` parameter
        in `preprocess`.
    mask_group_max_aspect_ratio (`float`, *optional*):
        Maximum aspect ratio of the mask window. Can be overridden by the `mask_group_max_aspect_ratio` parameter
        in `preprocess`.
    return_codebook_pixels (`bool`, *optional*, defaults to `False`):
        Whether to return the codebook pixel values.
    codebook_do_resize (`bool`, *optional*, defaults to `True`):
        Whether to resize the input for codebook to a certain. Can be overridden by the `codebook_do_resize`
        parameter in `preprocess`. `codebook_size`.
    codebook_size (`dict[str, int]`, *optional*, defaults to `{"height": 224, "width": 224}`):
        Resize the input for codebook to the given size. Can be overridden by the `codebook_size` parameter in
        `preprocess`.
    codebook_resample (`PILImageResampling`, *optional*, defaults to `PILImageResampling.LANCZOS`):
        Resampling filter to use if resizing the codebook image. With torchvision < 0.27, LANCZOS is not
        supported for torch Tensors and BICUBIC is used as the closest alternative. Can be overridden by the
        `codebook_resample` parameter in `preprocess`.
    codebook_do_center_crop (`bool`, *optional*, defaults to `True`):
        Whether to crop the input for codebook at the center. If the input size is smaller than
        `codebook_crop_size` along any edge, the image is padded with 0's and then center cropped. Can be
        overridden by the `codebook_do_center_crop` parameter in `preprocess`.
    codebook_crop_size (`dict[str, int]`, *optional*, defaults to `{"height": 224, "width": 224}`):
        Desired output size for codebook input when applying center-cropping. Can be overridden by the
        `codebook_crop_size` parameter in `preprocess`.
    codebook_do_rescale (`bool`, *optional*, defaults to `True`):
        Whether to rescale the input for codebook by the specified scale `codebook_rescale_factor`. Can be
        overridden by the `codebook_do_rescale` parameter in `preprocess`.
    codebook_rescale_factor (`int` or `float`, *optional*, defaults to `1/255`):
        Defines the scale factor to use if rescaling the codebook image. Can be overridden by the
        `codebook_rescale_factor` parameter in `preprocess`.
    codebook_do_map_pixels (`bool`, *optional*, defaults to `True`):
        Whether to map the pixel values of the codebook input to (1 - 2e)x + e. Can be overridden by the
        `codebook_do_map_pixels` parameter in `preprocess`.
    codebook_do_normalize (`bool`, *optional*, defaults to `True`):
        Whether or not to normalize the input for codebook with `codebook_image_mean` and `codebook_image_std`. Can
        be overridden by the `codebook_do_normalize` parameter in `preprocess`.
    codebook_image_mean (`Optional[Union[float, Iterable[float]]]`, *optional*, defaults to `[0, 0, 0]`):
        The sequence of means for each channel, to be used when normalizing images for codebook. Can be overridden
        by the `codebook_image_mean` parameter in `preprocess`.
    codebook_image_std (`Optional[Union[float, Iterable[float]]]`, *optional*, defaults to `[0.5, 0.5, 0.5]`):
        The sequence of standard deviations for each channel, to be used when normalizing images for codebook. Can
        be overridden by the `codebook_image_std` parameter in `preprocess`.
    Úreturn_image_maskÚinput_size_patchesÚtotal_mask_patchesÚmask_group_min_patchesÚmask_group_max_patchesÚmask_group_min_aspect_ratioÚmask_group_max_aspect_ratioÚreturn_codebook_pixelsÚcodebook_do_resizeÚcodebook_sizeÚcodebook_resampleÚcodebook_do_center_cropÚcodebook_crop_sizeÚcodebook_do_rescaleÚcodebook_rescale_factorÚcodebook_do_map_pixelsÚcodebook_do_normalizeÚcodebook_image_meanÚcodebook_image_stdN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚboolÚ__annotations__ÚintÚfloatÚdictÚstrr   © ó    ú{/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/flava/image_processing_flava.pyr   r   3   s¢   … ñ:ðz ÓØÓØÓØÓØÓØ!&Ó&Ø!&Ó&à Ó ØÓØ˜˜S˜‘>Ó!ØÓØ!Ó!Ø˜S #˜X™Ó&ØÓØ  5™[Ó(Ø Ó ØÓØ ¨%¡Ñ0Ó0Ø ¨¡Ñ/Ô/r:   r   F)Útotalc                   ót   — e Zd Z	 	 	 	 	 	 ddeeeef   z  dededz  dededz  dedz  fd„Zd	„ Zd
„ Zd„ Z	d„ Z
y)ÚFlavaMaskingGeneratorNÚ
input_sizer   r    r   r!   r"   c                 ó,  — t        |t        «      s|fdz  }|\  | _        | _        | j                  | j                  z  | _        || _        || _        |€|n|| _        |xs d|z  }t        j                  |«      t        j                  |«      f| _
        y )Né   é   )Ú
isinstanceÚtupleÚheightÚwidthÚnum_patchesr   r   r    ÚmathÚlogÚlog_aspect_ratio)Úselfr?   r   r    r   r!   r"   s          r;   Ú__init__zFlavaMaskingGenerator.__init__‰   s�   € ô ˜*¤eÔ,Ø$˜¨Ñ*ˆJØ",ÑˆŒ�T”ZàŸ;™;¨¯©Ñ3ˆÔØ"4ˆÔà&<ˆÔ#Ø<RÐ<ZÑ&8Ð`vˆÔ#à&AÒ&dÀQÐIdÑEdÐ#Ü!%§¡Ð*EÓ!FÌÏÉÐQlÓHmÐ nˆÕr:   c           	      ó¶   — d| j                   | j                  | j                  | j                  | j                  | j
                  d   | j
                  d   fz  }|S )Nz<MaskingGenerator(%d, %d -> [%d ~ %d], max = %d, %.3f ~ %.3f)r   rB   )rE   rF   r   r    r   rJ   )rK   Úrepr_strs     r;   Ú__repr__zFlavaMaskingGenerator.__repr__Ÿ   s^   € ØQØ�K‰KØ�J‰JØ×'Ñ'Ø×'Ñ'Ø×#Ñ#Ø×!Ñ! !Ñ$Ø×!Ñ! !Ñ$ðU
ñ 
ˆð ˆr:   c                 ó2   — | j                   | j                  fS ©N©rE   rF   )rK   s    r;   Ú	get_shapezFlavaMaskingGenerator.get_shape«   s   € Ø�{‰{˜DŸJ™JÐ&Ð&r:   c           	      ó,  — d}t        d«      D �]‚  }t        j                  | j                  |«      }t	        j
                  t        j                  | j                  Ž «      }t        t        t	        j                  ||z  «      «      «      }t        t        t	        j                  ||z  «      «      «      }|| j                  k  sŒ·|| j                  k  sŒÇt        j                  d| j                  |z
  «      }	t        j                  d| j                  |z
  «      }
||	|	|z   …|
|
|z   …f   j                  «       }d||z  |z
  cxk  r|k  r>n n;||	|	|z   …|
|
|z   …f   dk(  }d||	|	|z   …|
|
|z   …f   |<   ||j                  «       z  }|dkD  s�Œ‚ |S  |S )Nr   é
   rB   )ÚrangeÚrandomÚuniformr   rH   ÚexprJ   r5   ÚroundÚsqrtrF   rE   ÚrandintÚsum)rK   ÚmaskÚmax_mask_patchesÚdeltaÚ_attemptÚtarget_areaÚaspect_ratiorE   rF   ÚtopÚleftÚ
num_maskedÚ	zeros_poss                r;   Ú_maskzFlavaMaskingGenerator._mask®   s…  € ØˆÜ˜b›	ó 	ˆHÜ Ÿ.™.¨×)DÑ)DÐFVÓWˆKÜŸ8™8¤F§N¡N°D×4IÑ4IÐ$JÓKˆLÜœœtŸy™y¨°|Ñ)CÓDÓEÓFˆFÜœœdŸi™i¨°lÑ(BÓCÓDÓEˆEØ�t—z‘zÓ! f¨t¯{©{Ó&:Ü—n‘n Q¨¯©°fÑ(<Ó=�Ü—~‘~ a¨¯©°eÑ);Ó<�à! #¨¨f©Ð"4°d¸TÀE¹\Ð6IÐ"IÑJ×NÑNÓP�
à�v ‘~¨
Ñ2ÔFÐ6FÕFØ $ S¨3°©<Ð%7¸ÀÀuÁÐ9LÐ%LÑ MÐQRÑ R�IØOP�D˜˜s V™|Ð+¨T°D¸5±LÐ-@Ð@ÑAÀ)ÑLØ˜YŸ]™]›_Ñ,�Eà˜1”9ØØˆð%	ð$ ˆr:   c                 ó6  — t        j                  | j                  «       t         j                  ¬«      }d}|| j                  k  rT| j                  |z
  }t        || j                  «      }| j                  ||«      }|dk(  r	 |S ||z  }|| j                  k  rŒT|S )N)Údtyper   )ÚtorchÚzerosrS   r5   r   Úminr    rh   )rK   r^   Ú
mask_countr_   r`   s        r;   Ú__call__zFlavaMaskingGenerator.__call__Ä   sš   € Ü�{‰{˜4Ÿ>™>Ó+´5·9±9Ô=ˆØˆ
Ø˜4×2Ñ2Ò2Ø#×6Ñ6¸ÑCÐÜ"Ð#3°T×5PÑ5PÓQÐà—J‘J˜tÐ%5Ó6ˆEØ˜ŠzØð ˆð ˜eÑ#�
ð ˜4×2Ñ2Ó2ð ˆr:   )é   éK   Né   ç333333Ó?N)r/   r0   r1   r5   rD   r6   rL   rO   rS   rh   ro   r9   r:   r;   r>   r>   ˆ   s‰   „ ð -/Ø"$Ø-1Ø&(Ø47Ø48ñoà˜%  S ™/Ñ)ðoð  ðoð !$ d¡
ð	oð
 !$ðoð &+¨T¡\ðoð &+¨T¡\óoò,
ò'òó,r:   r>   c            B       ó\  ‡ — e Zd ZeZej                  ZeZ	e
ZdddœZdddœZdZdZdZdZdZdZdZdZdZd	ZdZdZdZd
d
dœZej8                  ZdZd
d
dœZdZ dZ!dZ"dZ#e$Z%e&Z'de(e   fˆ fd„Z)e*de+de(e   de,fˆ fd„«       Z-e.de/e0e1f   fˆ fd„«       Z2e3de4fd„«       Z5d<d„Z6	 	 	 	 	 	 	 	 	 	 	 d=de7e8e7   z  e/e0e7f   z  e9z  dz  de7e8e7   z  e/e0e7f   z  e9z  dz  de:dz  de;e<e;   z  dz  de;e<e;   z  dz  de7e8e7   z  e/e0e7f   z  e9z  dz  de7e8e7   z  e/e0e7f   z  e9z  dz  de;e<e;   z  dz  de;e<e;   z  dz  dd d!e=dz  de/fˆ fd"„Z>de<d   d#e:de9d$d d%e:de9d&e:d'e;d(e:d)e:de;e<e;   z  dz  de;e<e;   z  dz  d*e:dz  d+e0e?z  dz  ddfd,„Z@de<d   d#e:de9d$d d%e:de9d&e:d'e;d(e:de;e<e;   z  dz  de;e<e;   z  dz  d-e:dz  d.e7dz  d/e7dz  d0e7dz  d1e7dz  d2e;dz  d3e;dz  d4e:dz  d5e:dz  de9dz  dd d6e:dz  de9dz  d7e:dz  d8e;dz  d9e:dz  d:e:dz  de;e<e;   z  dz  de;e<e;   z  dz  d*e:dz  d+e0e?z  dz  de,fBd;„ZAˆ xZBS )>ÚFlavaImageProcessoréà   rR   TFrp   rq   rr   Nrs   ép   gp?Úkwargsc                 ó$   •— t        ‰| �  di |¤Ž y )Nr9   )ÚsuperrL   )rK   rx   Ú	__class__s     €r;   rL   zFlavaImageProcessor.__init__÷   s   ø€ Ü‰ÑÑ"˜6Ó"r:   ÚimagesÚreturnc                 ó$   •— t        ‰| �  |fi |¤ŽS rQ   )rz   Ú
preprocess)rK   r|   rx   r{   s      €r;   r   zFlavaImageProcessor.preprocessú   s   ø€ ä‰wÑ! &Ñ3¨FÑ3Ð3r:   Úimage_processor_dictc                 ó¤   •— |j                  «       }d|v r|j                  d«      |d<   d|v r|j                  d«      |d<   t        ‰| �  |fi |¤ŽS )zõ
        Overrides the `from_dict` method from the base class to make sure parameters are updated if image processor is
        created using from_dict and kwargs e.g. `FlavaImageProcessor.from_pretrained(checkpoint, codebook_size=600)`
        r%   r(   )ÚcopyÚpoprz   Ú	from_dict)Úclsr€   rx   r{   s      €r;   r„   zFlavaImageProcessor.from_dictþ   sd   ø€ ð  4×8Ñ8Ó:ÐØ˜fÑ$Ø4:·J±J¸Ó4OÐ  Ñ1Ø 6Ñ)Ø9?¿¹ÐDXÓ9YÐ Ð!5Ñ6Ü‰wÑ Ð!5Ñ@¸Ñ@Ð@r:   c                 ó$   — t        ||||||¬«      S )N)r?   r   r   r    r!   r"   )r>   )rK   r   r   r   r    r!   r"   s          r;   Úmasking_generatorz%FlavaImageProcessor.masking_generator  s#   € ô %Ø)Ø1Ø#9Ø#9Ø(CØ(Cô
ð 	
r:   útorch.Tensorc                 ó.   — ddt         z  z
  |z  t         z   S )NrB   rA   )r   )rK   Úimages     r;   Ú
map_pixelszFlavaImageProcessor.map_pixels  s   € Ø�AÔ)Ñ)Ñ)¨UÑ2Ô5FÑFÐFr:   ÚsizeÚ	crop_sizeÚdefault_to_squareÚ
image_meanÚ	image_stdr%   r(   r-   r.   r&   z7PILImageResampling | tvF.InterpolationMode | int | NoneÚdata_formatc           
      ór  •— t        ‰| �  d	||||||dœ|¤Ž}|�&t        |t        «      st        d	i t	        ||¬«      ¤Ž}|�&t        |t        «      st        d	i t	        |d¬«      ¤Ž}t        |t
        «      rt        |«      }t        |	t
        «      rt        |	«      }	||d<   ||d<   ||d<   |	|d<   |
|d<   |S )
z¢
        Update kwargs that need further processing before being validated
        Can be overridden by subclasses to customize the processing of kwargs.
        )rŒ   r�   rŽ   r�   r�   r‘   )rŒ   rŽ   r(   )Ú
param_namer%   r-   r.   r&   r9   )rz   Ú_standardize_kwargsrC   r   r
   ÚlistrD   )rK   rŒ   r�   rŽ   r�   r�   r%   r(   r-   r.   r&   r‘   rx   r{   s                €r;   r”   z'FlavaImageProcessor._standardize_kwargs!  sì   ø€ ô& ‘Ñ,ð 
ØØØ/Ø!ØØ#ñ
ð ñ
ˆð Ð$¬Z¸ÄxÔ-PÜ$Ñn¤}¸-Ð[lÔ'mÑnˆMØÐ)´*Ð=OÔQYÔ2ZÜ!)Ñ!o¬MÐ:LÐYmÔ,nÑ!oÐÜÐ)¬4Ô0Ü"'Ð(;Ó"<ÐÜÐ(¬$Ô/Ü!&Ð'9Ó!:Ðà"/ˆˆÑØ'9ˆÐ#Ñ$Ø(;ˆÐ$Ñ%Ø'9ˆÐ#Ñ$à&7ˆÐ"Ñ#àˆr:   Ú	do_resizeÚresampleÚdo_center_cropÚ
do_rescaleÚrescale_factorÚdo_normalizeÚdo_map_pixelsÚdisable_groupingÚreturn_tensorsc           	      óš  — t        ||¬«      \  }}i }|j                  «       D ]   \  }}|r| j                  |||¬«      }|||<   Œ" t        ||«      }t        ||¬«      \  }}i }|j                  «       D ]H  \  }}|r| j	                  ||«      }| j                  ||||	||«      }|
r| j                  |¬«      }|||<   ŒJ t        ||«      }|S )N)r�   )rŠ   rŒ   r—   )rŠ   )r   ÚitemsÚresizer   Úcenter_cropÚrescale_and_normalizer‹   )rK   r|   r–   rŒ   r—   r˜   r�   r™   rš   r›   rœ   r�   r�   r�   rž   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedÚshapeÚstacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_imagess                          r;   Ú_preprocess_imagez%FlavaImageProcessor._preprocess_imageO  s  € ô$ 0EÀVÐ^nÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ó%;ò 	;Ñ!ˆE�>ÙØ!%§¡°>ÈÐW_ Ó!`�Ø,:Ð" 5Ò)ð	;ô (Ð(>Ð@TÓUˆô 0EÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ó%;ò 		=Ñ!ˆE�>ÙØ!%×!1Ñ!1°.À)Ó!L�à!×7Ñ7Ø 
¨N¸LÈ*ÐV_óˆNñ Ø!%§¡°~ Ó!F�Ø.<Ð$ UÒ+ð		=ô *Ð*BÐDXÓYÐàÐr:   r   r   r   r   r    r!   r"   r#   r$   r'   r)   r*   r+   r,   c!                 ó@  — | j                  |||||||||	d|
||| ¬«      }"d|"i}#|r$| j                  |||||||||||||| ¬«      }$|$|#d<   |rB| j                  ||||||¬«      }%t        t        |«      «      D �&cg c]	  }& |%«       ‘Œ }'}&|'|#d<   t	        |#| ¬«      S c c}&w )NF)r|   r–   rŒ   r—   r˜   r�   r™   rš   r›   rœ   r�   r�   r�   rž   Úpixel_valuesÚcodebook_pixel_values)r   r   r   r    r!   r"   Úbool_masked_pos)ÚdataÚtensor_type)r¬   r‡   rV   Úlenr	   )(rK   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ž   rx   r«   r±   Úcodebook_processed_imagesÚmask_generatorÚ_Úmaskss(                                           r;   Ú_preprocesszFlavaImageProcessor._preprocess|  s  € ðL  ×1Ñ1ØØØØØ)ØØ!Ø)Ø%ØØ!ØØ-Ø)ð 2ó 
Ðð" Ð,ð
ˆñ "Ø(,×(>Ñ(>ØØ,Ø"Ø*Ø6Ø,Ø.Ø6Ø2Ø4Ø.Ø,Ø!1Ø-ð )?ó )Ð%ð  -FˆDÐ(Ñ)áØ!×3Ñ3Ø#5Ø#5Ø'=Ø'=Ø,GØ,Gð 4ó ˆNô 05´S¸³[Ó/AÖB¨!‘^Õ%ÐBˆEÐBØ&+ˆDÐ"Ñ#ä °>ÔBÐBùò Cs   Á9B)rŠ   rˆ   r}   rˆ   )NNNNNNNNNNN)Cr/   r0   r1   r   Úvalid_kwargsr   ÚBICUBICr—   ÚFLAVA_IMAGE_MEANr�   ÚFLAVA_IMAGE_STDr�   rŒ   r�   r–   r˜   r™   r›   r   r   r   r   r    r!   r"   r#   r$   r%   ÚLANCZOSr&   r'   r(   r)   r*   r+   r,   ÚFLAVA_CODEBOOK_MEANr-   ÚFLAVA_CODEBOOK_STDr.   r   rL   r   r   r	   r   Úclassmethodr7   r8   r   r„   r   r>   r‡   r‹   r5   r   r   r3   r6   r•   r   r”   r   r¬   r¸   Ú__classcell__)r{   s   @r;   ru   ru   Ô   s©  ø„ à,€LØ!×)Ñ)€HØ!€JØ€IØ CÑ(€DØ¨Ñ-€IØ€IØ€NØ€JØ€Lð ÐØÐØÐØÐØ!ÐØ"%ÐØ"&Ðà"ÐØÐØ"¨SÑ1€MØ*×2Ñ2ÐØ"ÐØ$'°#Ñ6ÐØÐØ%ÐØ!ÐØ ÐØ-ÐØ+Ðð# Ð(AÑ!Bõ #ð ð4 ð 4°vÐ>WÑ7Xð 4Ð]iô 4ó ð4ð ð
A¨T°#°s°(©^ô 
Aó ð
Að ð
ð 
ò
ó ð
ó$Gð
 HLØLPØ)-Ø15Ø04ØPTØUYØ:>Ø9=ØW[Ø/3ñ,à�H˜S‘MÑ! D¨¨c¨¡NÑ2°XÑ=ÀÑDð,ð ˜ #™Ñ&¨¨c°3¨h©Ñ7¸(ÑBÀTÑIð,ð   $™;ð	,ð
 ˜D ™KÑ'¨$Ñ.ð,ð ˜4 ™;Ñ&¨Ñ-ð,ð ˜X c™]Ñ*¨T°#°s°(©^Ñ;¸hÑFÈÑMð,ð   (¨3¡-Ñ/°$°s¸C°x±.Ñ@À8ÑKÈdÑRð,ð # T¨%¡[Ñ0°4Ñ7ð,ð " D¨¡KÑ/°$Ñ6ð,ð Uð,ð &¨Ñ,ð,ð 
õ,ð\+ à�^Ñ$ð+ ð ð+ ð ð	+ ð
 Lð+ ð ð+ ð ð+ ð ð+ ð ð+ ð ð+ ð ð+ ð ˜D ™KÑ'¨$Ñ.ð+ ð ˜4 ™;Ñ&¨Ñ-ð+ ð  ™+ð+ ð ˜jÑ(¨4Ñ/ð+ ð  
ó!+ ðZYCà�^Ñ$ðYCð ðYCð ð	YCð
 LðYCð ðYCð ðYCð ðYCð ðYCð ðYCð ˜D ™KÑ'¨$Ñ.ðYCð ˜4 ™;Ñ&¨Ñ-ðYCð   $™;ðYCð   $™JðYCð    $™Jð!YCð" !$ d¡
ð#YCð$ !$ d¡
ð%YCð& &+¨T¡\ð'YCð( &+¨T¡\ð)YCð, !% t¡ð-YCð. ! 4™Kð/YCð0   $‘ð1YCð2 Uð3YCð4 "&¨¡ð5YCð6 % t™Oð7YCð8 " D™[ð9YCð: "'¨¡ð;YCð< !% t¡ð=YCð>  $ d™{ð?YCð@ # T¨%¡[Ñ0°4Ñ7ðAYCðB " D¨¡KÑ/°$Ñ6ðCYCðD  ™+ðEYCðF ˜jÑ(¨4Ñ/ðGYCðJ 
÷KYCr:   ru   )-r2   rH   rW   Úcollections.abcr   Ú	functoolsr   Útypingr   rk   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_backendsr   Úimage_processing_utilsr	   r
   Úimage_transformsr   r   Úimage_utilsr   r   r   r   r   r   Úprocessing_utilsr   r   Úutilsr   r   r»   r¼   r¾   r¿   r   r6   r4   r   r>   ru   Ú__all__r9   r:   r;   ú<module>rÎ      s«   ðò 'ã Û Ý $Ý Ý ã Ý 7å ;ß Aß E÷÷ ÷ 5÷ð $Ð Ø!€Ú%Ð Ú$Ð ØÐ �5Ó ôQ0 °Eõ Q0÷jIñ IðX ô@CÐ,ó @Có ð@CðF !Ð
!�r:   