Ë
    ÄÓ^jÄI  ã                   óÀ  — d dl Z d dlZd dlZd dlmc mc mZ d dlmc mc m	c m
Z d dlmZ d dlmc mZ d dlmZ d dlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddl m!Z!m"Z"m#Z#m$Z$  e#ejJ                  ejJ                  ejL                  ejN                  ¬«      Z( e#ejJ                  ejJ                  ¬«      Z) e#ejJ                  ejN                  ejL                  ejN                  d	¬
«      Z* e#ejN                  ejN                  ejL                  ¬«      Z+ e#ejJ                  ejJ                  ejN                  ejN                  ¬«      Z,d„ Z-e$j\                  Z/e(gZ0 ee0«      Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7 e jp                  d	dgejr                  ejr                  g«      Z:e:D �]A  \  Z;Z<e;r£e1j{                   e"«       j}                  e<ej~                  ej€                  fef«      jƒ                  e/«      j…                  e0«      j‡                  e5«      j‰                  e6«      j‹                  e7«      j�                  ejŽ                  «      «       Œ¬e1j{                   e"«       j}                  e<ej€                  ef«      jƒ                  e/«      j…                  e0«      j‡                  e2«      j‰                  e3«      j‹                  e4«      j�                  ejŽ                  «      «       �ŒD d„ ZHd„ ZId„ ZJd„ ZKd„ ZLd„ ZM e jp                  d	dgejr                  ejr                  g«      ZNeND �]A  \  Z;Z<e;r£e1j{                   e"«       j}                  e<eej~                  ej€                  ff«      jƒ                  e/«      j…                  e0«      j‡                  eK«      j‰                  eL«      j‹                  eM«      j�                  ejŽ                  «      «       Œ¬e1j{                   e"«       j}                  e<eej€                  f«      jƒ                  e/«      j…                  e0«      j‡                  eH«      j‰                  eI«      j‹                  eJ«      j�                  ejŽ                  «      «       �ŒD e1j{                   e"ejŽ                  «      jƒ                  e/«      j…                  e0«      jŸ                  ej€                  «      j¡                  ej€                  «      «       d„ ZQd„ ZRd„ ZSd„ ZTd„ ZUd„ ZV e jp                  d	dgejr                  ejr                  g«      ZWeWD �]Y  \  Z;Z<e;r¯e1j{                   e"«       j}                  ej°                  e<ej~                  ej€                  feff«      jƒ                  e/«      j…                  e0«      j‡                  eT«      j‰                  eU«      j‹                  eV«      j�                  ej²                  «      «       Œ¸e1j{                   e"«       j}                  ej°                  e<ej€                  eff«      jƒ                  e/«      j…                  e0«      j‡                  eQ«      j‰                  eR«      j‹                  eS«      j�                  ej²                  «      «       �Œ\ d „ ZZd!„ Z[d"„ Z\d#„ Z]d$„ Z^d%„ Z_ e jp                  d	dgejr                  ejr                  g«      ZWeWD �]Y  \  Z;Z<e;r¯e1j{                   e"«       j}                  ej°                  e<eej~                  ej€                  fff«      jƒ                  e/«      j…                  e0«      j‡                  e]«      j‰                  e^«      j‹                  e_«      j�                  ej²                  «      «       Œ¸e1j{                   e"«       j}                  ej°                  e<eej€                  ff«      jƒ                  e/«      j…                  e0«      j‡                  eZ«      j‰                  e[«      j‹                  e\«      j�                  ej²                  «      «       �Œ\ e1j{                   e"ej²                  «      jƒ                  e/«      j…                  e0«      jŸ                  ej€                  «      j¡                  ej€                  «      «       e(e*gZ` ee`«      Zad&„ Zb ebeaejÆ                  ejÈ                  ejÊ                  ejÌ                  e` eejÎ                  «      ejÎ                  e/ejÆ                  «
       eaj{                   e"ejÆ                  ejÐ                  ejÊ                  f«      j…                  e`«      j‡                  e-«      j�                  ejÎ                  «      «        ebeaejÆ                  ejÈ                  ejÒ                  ejÔ                  e` eejÖ                  «      ejÖ                  e/ejÆ                  «
       e)gZle)gZme)gZne)gZoe*gZpe+gZqe,gZrd'e!fd(„Zsd)gZty)*é    N)Ú_sequential_wrapper2)ÚMatchAllNodeé   )Ú_get_binary_op_configsÚ_get_bn_configsÚ_get_cat_configÚ_get_conv_configsÚ_get_default_op_configsÚ_get_embedding_op_configsÚ_get_fixed_qparams_op_configsÚ_get_linear_configsÚ_get_ln_configsÚ_get_rnn_op_configsÚ_get_share_qparams_op_configs)ÚBackendConfigÚBackendPatternConfigÚDTypeConfigÚObservationType)Úinput_dtypeÚoutput_dtypeÚweight_dtypeÚ
bias_dtype)r   r   T)r   r   r   r   Ú
is_dynamic)r   r   r   c                 ó¦  — |j                   |j                   k7  s|j                   |j                   k7  rt        d«      ‚| rt        d|||f› �«      ‚t        j                  t
        j                  i}|j                  t        |«      «      }|�5t        j                  j                  j                  ||«      } |||«      }|S t        d|||f› �«      ‚)a•  Given the linear, bn and leaky_relu modules, fuses them and returns the fused module
    Args:
        is_qat: a flag for whether we are using quantization aware training fusion
                or post training quantization fusion
        linear: Module instance of type Linear
        bn: BatchNorm1d instance that needs to be fused with the linear layer
        leaky_relu: LeakyReLU instance that needs to be fused with the linear layer
    Examples::
        >>> # xdoctest: +SKIP(failing)
        >>> m1 = nn.Linear(20, 10)
        >>> b1 = nn.BatchNorm1d(10)
        >>> lr = nn.LeakyReLU(0.01)
        >>> m2 = _fuse_linear_bn_leaky_relu(m1, b1, lr)
    zFLinear, BN and LeakyReLU all must be in the same mode (train or eval).úCannot fuse train modules: zCannot fuse eval modules: )ÚtrainingÚAssertionErrorÚNotImplementedErrorÚnnÚLinearÚnniÚLinearLeakyReLUÚgetÚtypeÚutilsÚfusionÚfuse_linear_bn_eval)Úis_qatÚlinearÚbnÚ
leaky_reluÚmap_to_fused_module_evalÚfused_moduleÚfused_linearÚfms           úv/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/ao/quantization/backend_config/onednn.pyÚ_fuse_linear_bn_leaky_relur1   L   sØ   € ð ‡�˜"Ÿ+™+Ò%¨¯©¸
×8KÑ8KÒ)KÜØTó
ð 	
ñ Ü!Ø)¨6°2°zÐ*BÐ)CÐDó
ð 	
ô
 �I‰I”s×*Ñ*ð$
Ð ð 0×3Ñ3´D¸³LÓAˆØÐ#ÜŸ8™8Ÿ?™?×>Ñ>¸vÀrÓJˆLÙ˜l¨JÓ7ˆBØˆIä%Ø,¨f°b¸*Ð-EÐ,FÐGóð ó    c                 ó.   — t        j                  ||«      S ©N©r!   Ú	ConvAdd2d)r(   ÚaddÚconvÚ_s       r0   Ú_fuse_conv_add_leftr:   ‡   ó   € Ü�=‰=˜˜sÓ#Ð#r2   c                 ó   — | \  }}}|S r4   © )Úpatternr9   r8   s      r0   Ú_conv_add_root_node_getter_leftr?   ‹   s   € Ø�J€A€tˆQØ€Kr2   c                 ó   — | \  }}}|gS ©z�get inputs pattern for extra inputs, inputs for root node
    are assumed to be copied over from root node to the fused node
    r=   )r>   r9   Ú_convÚextra_inputs       r0   Ú"_conv_add_extra_inputs_getter_leftrD   �   s   € ð $Ñ€A€uˆkØˆ=Ðr2   c                 ó²   — |\  }}| rt        d|||f› �«      ‚t        j                  j                  j	                  ||«      }t        j                  ||«      S ©Nr   ©r   r   r%   r&   Úfuse_conv_bn_evalr!   r6   )r(   r7   Úbn_convr9   r*   r8   Ú
fused_convs          r0   Ú_fuse_conv_bn_add_leftrK   Ÿ   óS   € Ø�H€BˆÙÜ!Ð$?ÀÀrÈ3ÀÐ?PÐ"QÓRÐRä—X‘X—_‘_×6Ñ6°t¸RÓ@ˆ
Ü�}‰}˜Z¨Ó-Ð-r2   c                 ó   — | \  }}}|\  }}|S r4   r=   )Úadd_patternr9   rI   Ú_bnr8   s        r0   Ú"_conv_bn_add_root_node_getter_leftrP   ¨   s   € Ø�M€A€w�Ø�I€CˆØ€Kr2   c                 ó   — | \  }}}|gS rA   r=   )rN   r9   Ú_bn_convrC   s       r0   Ú%_conv_bn_add_extra_inputs_getter_leftrS   ®   s   € ð  +Ñ€A€x�Øˆ=Ðr2   Fc                 ó.   — t        j                  ||«      S r4   r5   )r(   r7   r9   r8   s       r0   Ú_fuse_conv_add_rightrU   Ú   r;   r2   c                 ó   — | \  }}}|S r4   r=   )r>   Ú_addr9   r8   s       r0   Ú _conv_add_root_node_getter_rightrX   Þ   s   € Ø�M€Dˆ!ˆTØ€Kr2   c                 ó   — | \  }}}|gS rA   r=   )r>   r9   rC   rB   s       r0   Ú#_conv_add_extra_inputs_getter_rightrZ   ã   s   € ð $Ñ€A€{�EØˆ=Ðr2   c                 ó²   — |\  }}| rt        d|||f› �«      ‚t        j                  j                  j	                  ||«      }t        j                  ||«      S rF   rG   )r(   r7   r9   rI   r*   r8   rJ   s          r0   Ú_fuse_conv_bn_add_rightr\   ò   rL   r2   c                 ó   — | \  }}}|\  }}|S r4   r=   )r>   rW   r9   rI   rO   r8   s         r0   Ú#_conv_bn_add_root_node_getter_rightr^   û   s   € ØÑ€Dˆ!ˆWØ�I€CˆØ€Kr2   c                 ó   — | \  }}}|gS rA   r=   )r>   r9   rC   rR   s       r0   Ú&_conv_bn_add_extra_inputs_getter_rightr`     s   € ð  'Ñ€A€{�HØˆ=Ðr2   c                 ó<   — |\  }}}t        j                  |||«      S r4   ©r!   ÚConvAddReLU2d)r(   ÚrelurN   r7   r8   r9   s         r0   Ú_fuse_conv_add_relu_leftre   9  s"   € Ø�L€CˆˆqÜ×Ñ˜T 3¨Ó-Ð-r2   c                 ó   — | \  }}|\  }}}|S r4   r=   )r>   Ú_relurN   r9   r8   s        r0   Ú$_conv_add_relu_root_node_getter_leftrh   >  s   € Ø Ñ€Eˆ;Ø�J€A€tˆQØ€Kr2   c                 ó   — | \  }}|\  }}}|gS rA   r=   )r>   rg   rN   r9   rB   rC   s         r0   Ú'_conv_add_relu_extra_inputs_getter_leftrj   D  s"   € ð !Ñ€Eˆ;Ø'Ñ€A€uˆkØˆ=Ðr2   c                 óÂ   — |\  }}}|\  }}| rt        d||||f› �«      ‚t        j                  j                  j	                  ||«      }t        j                  |||«      S rF   ©r   r   r%   r&   rH   r!   rc   )	r(   rd   rN   r7   rI   r9   r*   r8   rJ   s	            r0   Ú_fuse_conv_bn_add_relu_leftrm   V  sf   € Ø!�O€Cˆ�!Ø�H€BˆÙÜ!Ð$?ÀÀrÈ3ÐPTÐ@UÐ?VÐ"WÓXÐXä—X‘X—_‘_×6Ñ6°t¸RÓ@ˆ
Ü× Ñ  ¨S°$Ó7Ð7r2   c                 ó&   — | \  }}|\  }}}|\  }}|S r4   r=   ©r>   rg   rN   r9   rI   rO   r8   s          r0   Ú'_conv_bn_add_relu_root_node_getter_leftrp   `  s%   € Ø Ñ€Eˆ;Ø�M€A€w�Ø�I€CˆØ€Kr2   c                 ó   — | \  }}|\  }}}|gS rA   r=   )r>   rg   rN   r9   rR   rC   s         r0   Ú*_conv_bn_add_relu_extra_inputs_getter_leftrr   g  s"   € ð !Ñ€Eˆ;Ø*Ñ€A€x�Øˆ=Ðr2   c                 ó<   — |\  }}}t        j                  |||«      S r4   rb   )r(   rd   rN   r7   r9   r8   s         r0   Ú_fuse_conv_add_relu_rightrt   –  s"   € Ø�L€CˆˆDÜ×Ñ˜T 3¨Ó-Ð-r2   c                 ó   — | \  }}|\  }}}|S r4   r=   )r>   rg   rN   r9   Ú_extra_inputr8   s         r0   Ú%_conv_add_relu_root_node_getter_rightrw   ›  s   € Ø Ñ€Eˆ;Ø'Ñ€A€|�TØ€Kr2   c                 ó   — | \  }}|\  }}}|gS rA   r=   )r>   rg   rN   r9   rC   rB   s         r0   Ú(_conv_add_relu_extra_inputs_getter_rightry   ¡  s"   € ð !Ñ€Eˆ;Ø'Ñ€A€{�EØˆ=Ðr2   c                 óÂ   — |\  }}}|\  }}| rt        d||||f› �«      ‚t        j                  j                  j	                  ||«      }t        j                  |||«      S rF   rl   )	r(   rd   rN   r7   r9   rI   r*   r8   rJ   s	            r0   Ú_fuse_conv_bn_add_relu_rightr{   ³  sf   € Ø!�O€CˆˆGØ�H€BˆÙÜ!Ð$?ÀÀrÈ3ÐPTÐ@UÐ?VÐ"WÓXÐXä—X‘X—_‘_×6Ñ6°t¸RÓ@ˆ
Ü× Ñ  ¨S°$Ó7Ð7r2   c                 ó&   — | \  }}|\  }}}|\  }}|S r4   r=   ro   s          r0   Ú(_conv_bn_add_relu_root_node_getter_rightr}   ½  s%   € Ø Ñ€Eˆ;Ø�M€A€qˆ'Ø�I€CˆØ€Kr2   c                 ó   — | \  }}|\  }}}|gS rA   r=   )r>   rg   rN   r9   rC   rR   s         r0   Ú+_conv_bn_add_relu_extra_inputs_getter_rightr   Ä  s"   € ð !Ñ€Eˆ;Ø*Ñ€A€{�HØˆ=Ðr2   c
                 ó¼  — | j                  t        ||f«      j                  |«      j                  |«      j	                  |«      «       | j                  t        ||f«      j                  |«      j                  |«      j	                  |«      «       | j                  t        |«      j                  |«      j                  |«      j                  |«      j                  |	«      «       | j                  t        ||f«      j                  |«      j                  |«      «       | j                  t        ||f«      j                  |«      j                  |«      «       y r4   )Úappendr   Úset_dtype_configsÚset_fuser_methodÚset_fused_moduleÚset_observation_typeÚset_root_moduleÚset_reference_quantized_module)
ÚconfigsÚroot_moduleÚroot_opÚpost_moduleÚpost_opÚdtype_configsÚfuser_methodr-   Úobservation_typeÚref_quant_modules
             r0   Ú_add_eltwise_fusion_configsr‘   ÿ  s!  € ð ‡N�NÜ˜k¨;Ð7Ó8ß	Ñ	˜=Ó	)ß	Ñ	˜,Ó	'ß	Ñ	˜,Ó	'ô	ð ‡N�NÜ˜k¨7Ð3Ó4ß	Ñ	˜=Ó	)ß	Ñ	˜,Ó	'ß	Ñ	˜,Ó	'ô	ð ‡N�NÜ˜\Ó*ß	Ñ	Ð.Ó	/ß	Ñ	˜=Ó	)ß	‰˜Ó	%ß	'Ñ	'Ð(8Ó	9ôð ‡N�NÜ˜g {Ð3Ó4ß	Ñ	Ð.Ó	/ß	Ñ	˜=Ó	)ôð
 ‡N�NÜ˜g wÐ/Ó0ß	Ñ	Ð.Ó	/ß	Ñ	˜=Ó	)õr2   Úreturnc                  ó\  — t        d«      j                  t        «      j                  t        «      j                  t	        t
        «      «      j                  t        t        «      «      j                  t        t        «      «      j                  t        t        «      «      j                  t        t        «      «      j                  t        t        «      «      j                  t        t         «      «      j                  t#        t$        «      «      j                  t'        t(        «      «      S )zI
    Return the `BackendConfig` for PyTorch's native ONEDNN backend.
    Úonednn)r   Úset_backend_pattern_configsÚconv_configsÚlinear_configsr   Úbinary_op_dtype_configsÚset_backend_pattern_configr   Údefault_op_dtype_configsr
   r   Úfixed_qparams_op_dtype_configsr   Úshare_qparams_op_dtype_configsr   r   Úlayer_norm_op_dtype_configsr   Úrnn_op_dtype_configsr   Úembedding_op_dtype_configsr=   r2   r0   Úget_onednn_backend_configr    e  sÐ   € ô
 	�hÓß	$Ñ	$¤\Ó	2ß	$Ñ	$¤^Ó	4ß	$Ñ	$Ô%;Ô<SÓ%TÓ	Uß	#Ñ	#¤OÔ4LÓ$MÓ	Nß	$Ñ	$Ô%<Ô=UÓ%VÓ	Wß	$Ñ	$Ü)Ô*HÓIó

÷ 
%Ñ	$Ü)Ô*HÓIó

÷ 
%Ñ	$¤_Ô5MÓ%NÓ	Oß	$Ñ	$¤_Ô5PÓ%QÓ	Rß	$Ñ	$Ô%8Ô9MÓ%NÓ	Oß	$Ñ	$Ü%Ô&@ÓAó

ð!r2   r    )uÚ	itertoolsÚoperatorÚtorchÚtorch.ao.nn.intrinsicÚaor   Ú	intrinsicr!   Útorch.ao.nn.quantized.referenceÚ	quantizedÚ	referenceÚnnqrÚtorch.nnÚtorch.nn.functionalÚ
functionalÚFÚ+torch.ao.quantization.fuser_method_mappingsr   Útorch.ao.quantization.utilsr   Ú_common_operator_config_utilsr   r   r   r	   r
   r   r   r   r   r   r   Úbackend_configr   r   r   r   Úquint8Úqint8ÚfloatÚ$onednn_weighted_op_int8_dtype_configÚonednn_op_quint8_dtype_configÚ onednn_dynamic_int8_dtype_configÚ%onednn_weight_only_qint8_dtype_configÚ,onednn_input_output_only_quint8_dtype_configr1   Ú&OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUTr�   Úconv_dtype_configsr–   r:   r?   rD   rK   rP   rS   Úproductr7   Úconv_add_left_optioinsÚwith_bnÚadd_opr�   Ú_set_pattern_complex_formatÚBatchNorm2dÚConv2dr…   r‚   rƒ   Ú_set_root_node_getterÚ_set_extra_inputs_getterr„   r6   rU   rX   rZ   r\   r^   r`   Úconv_add_optioinsr†   r‡   re   rh   rj   rm   rp   rr   Úconv_add_relu_left_optioinsÚReLUrc   rt   rw   ry   r{   r}   r   Úlinear_dtype_configsr—   r‘   r    r)   Ú	LeakyReLUr+   r"   ÚBatchNorm1dÚTanhÚtanhÚ
LinearTanhr˜   rš   r›   rœ   rž   rŸ   r�   r    Ú__all__r=   r2   r0   ú<module>rÐ      sÑ  ðã Û ã ß #Ó #ß .Ö .Ý ß Ð Ý LÝ 4÷÷ ÷ ñ ÷ó ñ (3Ø—‘Ø—‘Ø—‘Ø�{‰{ô	(Ð $ñ !,Ø—‘Ø—‘ô!Ð ñ
 $/Ø—‘Ø—‘Ø—‘Ø�{‰{Øô$Ð  ñ )4Ø—‘Ø—‘Ø—‘ô)Ð %ñ 0;Ø—‘Ø—‘Ø—‘Ø�{‰{ô	0Ð ,ò$ðT #×IÑIÐ à:Ð;Ð Ù Ð!3Ó4€ò$òò
ò.òòð +˜×*Ñ*Ø	ˆ5€MØ
‡Y�Y�—‘ÐóÐ ð
 .ó 
�O€GˆVÙØ×ÑÙ Ó"ß(Ñ(Ø˜"Ÿ.™.¨"¯)©)Ð4°lÐCó÷ "Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ4Ó5ß"Ñ"Ð#EÓFß%Ñ%Ð&KÓLßÑ˜cŸm™mÓ,õ	
ð 	×ÑÙ Ó"ß(Ñ(¨&°"·)±)¸\Ð)JÓKß!Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ1Ó2ß"Ñ"Ð#BÓCß%Ñ%Ð&HÓIßÑ˜cŸm™mÓ,ö		
ð
ò>$òò
ò.òòð &�I×%Ñ%Ø	ˆ5€MØ
‡Y�Y�—‘ÐóÐ ð
 )ó 
�O€GˆVÙØ×ÑÙ Ó"ß(Ñ(Ø˜¨¯©¸¿	¹	Ð'BÐCó÷ "Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ5Ó6ß"Ñ"Ð#FÓGß%Ñ%Ð&LÓMßÑ˜cŸm™mÓ,õ	
ð 	×ÑÙ Ó"ß(Ñ(¨&°,ÀÇ	Á	Ð)JÓKß!Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ2Ó3ß"Ñ"Ð#CÓDß%Ñ%Ð&IÓJßÑ˜cŸm™mÓ,ö		
ð
ð4 × Ñ Ù˜Ÿ™Ó'ßÑÐ*Ó+ßÑÐ)Ó*ß�_�R—Y‘YÓß#Ñ# D§K¡KÓ0ôò".ò
òò$8òòð 0˜i×/Ñ/Ø	ˆ5€MØ
‡Y�Y�—‘ÐóÐ ð
 3ó 
�O€GˆVÙØ×ÑÙ Ó"ß(Ñ(Ø—‘˜6 B§N¡N°B·I±IÐ#>ÀÐMÐNó÷ "Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ9Ó:ß"Ñ"Ð#JÓKß%Ñ%Ð&PÓQßÑ˜c×/Ñ/Ó0õ	
ð 	×ÑÙ Ó"ß(Ñ(¨"¯'©'°F¸B¿I¹IÀ|Ð3TÐ)UÓVß!Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ6Ó7ß"Ñ"Ð#GÓHß%Ñ%Ð&MÓNßÑ˜c×/Ñ/Ó0ö		
ð
òB.ò
òò$8òòð 0˜i×/Ñ/Ø	ˆ5€MØ
‡Y�Y�—‘ÐóÐ ð
 3ó 
�O€GˆVÙØ×ÑÙ Ó"ß(Ñ(Ø—‘˜6 <°"·.±.À"Ç)Á)Ð1LÐMÐNó÷ "Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ:Ó;ß"Ñ"Ð#KÓLß%Ñ%Ð&QÓRßÑ˜c×/Ñ/Ó0õ	
ð 	×ÑÙ Ó"ß(Ñ(¨"¯'©'°F¸LÈ"Ï)É)Ð3TÐ)UÓVß!Ñ!Ð"2Ó3ßÑÐ1Ó2ßÑÐ7Ó8ß"Ñ"Ð#HÓIß%Ñ%Ð&NÓOßÑ˜c×/Ñ/Ó0ö		
ð
ð4 × Ñ Ù˜×*Ñ*Ó+ßÑÐ*Ó+ßÑÐ)Ó*ß�_�R—Y‘YÓß#Ñ# D§K¡KÓ0ôð )Ø$ðÐ ñ %Ð%9Ó:€ò.ñd ØØ‡I�IØ‡H�HØ‡L�LØ‡L�LØÙ˜×,Ñ,Ó-Ø×ÑØØ‡K�Kôð × Ñ Ù˜"Ÿ)™) R§^¡^°R·\±\ÐBÓCßÑÐ+Ó,ßÑÐ0Ó1ßÑ�c×)Ñ)Ó*ô	ñ ØØ‡I�IØ‡H�HØ‡G�GØ	‡J�JØÙ˜Ÿ™Ó(Ø‡N�NØØ‡K�Kôð" 9Ð9Ð Ø9Ð:Ð Ø"?Ð!@Ð Ø"?Ð!@Ð Ø8Ð9Ð ØCÐDÐ ØKÐLÐ ð =ó ð6  ð�r2   