Ë
    :É„jü  ã                   ó¤   — 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	m
Z
 ddlmZ ded	ed
edefd„Zde	dededededefd„Zdedededede	f
d„Zy)é    )Úsha256)ÚBytesIO)Úurandom)ÚSecurityCheckMismatch)ÚMessageÚLongé   )ÚaesÚauth_keyÚmsg_keyÚoutgoingÚreturnc                 óè   — |rdnd}t        || ||dz    z   «      j                  «       }t        | |dz   |dz    |z   «      j                  «       }|d d |dd z   |dd z   }|d d |dd z   |dd z   }||fS )Nr   é   é$   é(   éL   é   é    )r   Údigest)r   r   r   ÚxÚsha256_aÚsha256_bÚaes_keyÚaes_ivs           úN/var/www/html/GAP/venv/lib/python3.12/site-packages/pyrogram/crypto/mtproto.pyÚkdfr      s¡   € á‰˜1€Aä�g ¨¨A°©FÐ 3Ñ3Ó4×;Ñ;Ó=€HÜ�h˜q 2™v a¨"¡fÐ-°Ñ7Ó8×?Ñ?ÓA€Hà�r˜ˆl˜X a¨˜^Ñ+¨h°r¸"¨oÑ=€GØ�b�qˆ\˜H Q r˜NÑ*¨X°b¸¨_Ñ<€Fà�Fˆ?Ðó    ÚmessageÚsaltÚ
session_idÚauth_key_idc                 ó*  — t        |«      |z   | j                  «       z   }t        t        |«      dz    dz  dz   «      }t	        |dd |z   |z   «      j                  «       }|dd }t        ||d«      \  }	}
||z   t        j                  ||z   |	|
«      z   S )Né   é   éX   éx   r   r   T)	r   Úwriter   Úlenr   r   r   r
   Úige256_encrypt)r   r    r!   r   r"   ÚdataÚpaddingÚmsg_key_larger   r   r   s              r   Úpackr.   *   s¡   € Ü�‹:˜
Ñ" W§]¡]£_Ñ4€DÜœ˜D›	 B™Ð'¨"Ñ,¨rÑ1Ó2€Gô ˜8 B¨Ð0°4Ñ7¸'ÑAÓB×IÑIÓK€MØ˜A˜bÐ!€GÜ˜( G¨TÓ2�O€GˆVà˜Ñ ¤3×#5Ñ#5°d¸W±nÀgÈvÓ#VÑVÐVr   Úbc                 ór  — t        j                  | j                  d«      |k(  d«       | j                  d«      }t        ||d«      \  }}t	        t        j                  | j                  «       ||«      «      }|j                  d«       t        j                  |j                  d«      |k(  d«       	 t        j                  |«      }t        j                  |t!        |dd |j#                  «       z   «      j%                  «       dd k(  d«       |j'                  d«       |j                  «       }||j(                  d  }t        j                  dt        |«      cxk  xr dk  nc d«       t        j                  t        |«      dz  dk(  d«       t        j                  |j*                  dz  dk7  d«       |S # t        $ rõ}	|	j                  d   dk(  rt        d«      ‚|j                  «       j                  «       }
t        dt        |
«      d«      D �cg c]
  }|
||dz    ‘Œ nc c}w }
}|
D �
�cg c]2  }
t        dt        |
«      d«      D �cg c]
  }|
||dz    ‘Œ nc c}w c}‘Œ4 nc c}}
w c}}
}
d	j                  d
„ |
D «       «      }
t        dt        |	j                  d   «      › d	|
› �«      ‚d }	~	ww xY w)Nr   zb.read(8) == auth_key_idr%   Fzdata.read(8) == session_idr   z4Received empty data. Check your internet connection.é@   ú
c              3   óL   K  — | ]  }d j                  d„ |D «       «      –— Œ y­w)ú c              3   ó    K  — | ]  }|–— Œ y ­w)N© )Ú.0r   s     r   ú	<genexpr>z#unpack.<locals>.<genexpr>.<genexpr>P   s   è ø€ Ò!2¨¤!Ñ!2ùs   ‚N)Újoin)r7   Úlefts     r   r8   zunpack.<locals>.<genexpr>P   s   è ø€ ÒD°t˜Ÿ™Ñ!2¨TÔ!2×2ÑDùs   ‚"$z(The server sent an unknown constructor: é`   é€   r   zHmsg_key == sha256(auth_key[96:96 + 32] + data.getvalue()).digest()[8:24]r   r$   i   z12 <= len(padding) <= 1024é   zlen(payload) % 4 == 0é   zmessage.msg_id % 2 != 0)r   ÚcheckÚreadr   r   r
   Úige256_decryptr   ÚKeyErrorÚargsÚConnectionErrorÚhexÚranger)   r9   Ú
ValueErrorr   Úgetvaluer   ÚseekÚlengthÚmsg_id)r/   r!   r   r"   r   r   r   r+   r   Úer:   ÚiÚpayloadr,   s                 r   ÚunpackrO   6   sP  € ô ×Ñ §¡ q£	¨[Ñ 8Ð:TÔUà�f‰f�R‹j€GÜ˜( G¨UÓ3�O€GˆVÜ”3×%Ñ% a§f¡f£h°¸Ó@ÓA€DØ‡I�Iˆa„Lô ×Ñ §	¡	¨!£°
Ñ :Ð<XÔYð^Ü—,‘,˜tÓ$ˆô ×ÑØ”6˜( 2 gÐ.°·±³Ñ@ÓA×HÑHÓJÈ1ÈRÐPÑPØRôð 	‡I�Iˆb„MØ�i‰i‹k€GØ�g—n‘n�oÐ&€GÜ×Ñ ¤c¨'£lÖ :°dÔ :Ð<XÔYÜ×Ñ¤ G£¨qÑ 0°AÑ 5Ð7NÔOô ×Ñ §¡°Ñ 2°aÑ 7Ð9RÔSà€Nøô; ò 
^Ø�6‰6�!‰9˜Š>Ü!Ð"XÓYÐYà�y‰y‹{�‰Ó ˆä(-¨a´°T³¸BÓ(?Ö@ 1��Q�q˜2‘v’Ñ@ùÒ@ˆÐ@ØLP×QÀD¬¨a´°T³¸AÓ(>Ö? 1��a˜˜A™’Ñ?ùÖ?ÑQùÖQˆØ�y‰yÑD¸tÔDÓDˆäÐCÄCÈÏÉÈqÉ	ÃNÐCSÐSUÐVZÐU[Ð\Ó]Ð]ûð
^ús>   Â2F8 Æ8	J6ÇAJ1ÈH$È#J1È0I(ÉIÉI(É'A
J1Ê1J6N)Úhashlibr   Úior   Úosr   Úpyrogram.errorsr   Úpyrogram.raw.corer   r   Ú r
   ÚbytesÚboolÚtupler   Úintr.   rO   r6   r   r   ú<module>rZ      s¥   ðõ( Ý Ý å 1ß +Ý ð
�%ð 
 %ð 
°4ð 
¸Eó 
ð	W�'ð 	W ð 	W°%ð 	WÀ5ð 	WÐW\ð 	WÐafó 	Wð/Øð/àð/ð ð/ð ð	/ð
 ô/r   