Ë
    ÷†”jª
  ã                  ód   — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddœdd„Z	dd	œdd
„Z
dd„Zy)u,   ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° initData Telegram Mini App.é    )ÚannotationsN)Ú	parse_qsli€Q )Úmax_agec               ón  — t        | xs d«      j                  «       }|st        d«      ‚t        t	        |d¬«      «      }|j                  dd«      }|st        d«      ‚dj                  d„ t        |j                  «       «      D «       «      }t        j                  d	|j                  d
«      t        j                  «      j                  «       }t        j                  ||j                  d
«      t        j                  «      j                  «       }t        j                   ||«      st        d«      ‚	 t#        |j%                  d«      xs d«      }	|	dk  s#t)        t+        j*                  «       |	z
  «      |kD  rt        d«      ‚	 t-        j.                  |j%                  d«      xs d«      }
t3        |
t        «      r|
j%                  d«      st        d«      ‚t#        |
d   «      |
d<   |
S # t&        t        f$ r d}	Y Œ®w xY w# t&        t        t,        j0                  f$ r}t        d«      |‚d }~ww xY w)NÚ u<   ÐžÑ‚ÐºÑ€Ð¾Ð¹Ñ‚Ðµ Ð¼Ð¸Ð½Ð¸-Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð· Ð±Ð¾Ñ‚Ð°T)Úkeep_blank_valuesÚhashu   Ð�ÐµÑ‚ Ð¿Ð¾Ð´Ð¿Ð¸Ñ�Ð¸ Telegramú
c              3  ó0   K  — | ]  \  }}|› d |› �–— Œ y­w)ú=N© )Ú.0ÚkeyÚvalues      ú+/var/www/api.ozpay.ru/ozpay/catcher/auth.pyú	<genexpr>z%validate_init_data.<locals>.<genexpr>   s   è ø€ ÒU±
°°U˜c˜U ! E 7Ô+ÑUùs   ‚s
   WebAppDataúutf-8u(   Ð�ÐµÐ²ÐµÑ€Ð½Ð°Ñ� Ð¿Ð¾Ð´Ð¿Ð¸Ñ�ÑŒ TelegramÚ	auth_dater   ua   Ð¡ÐµÑ�Ñ�Ð¸Ñ� Ð¼Ð¸Ð½Ð¸-Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ� ÑƒÑ�Ñ‚Ð°Ñ€ÐµÐ»Ð°, Ð¾Ñ‚ÐºÑ€Ð¾Ð¹Ñ‚Ðµ ÐµÐ³Ð¾ Ð·Ð°Ð½Ð¾Ð²Ð¾Úuseru,   Ð�ÐµÑ‚ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ�Úid)ÚstrÚstripÚ
ValueErrorÚdictr   ÚpopÚjoinÚsortedÚitemsÚhmacÚnewÚencodeÚhashlibÚsha256ÚdigestÚ	hexdigestÚcompare_digestÚintÚgetÚ	TypeErrorÚabsÚtimeÚjsonÚloadsÚJSONDecodeErrorÚ
isinstance)Ú	init_dataÚ	bot_tokenr   ÚrawÚparsedÚreceived_hashÚ
data_checkÚsecretÚ
calculatedr   r   Úexcs               r   Úvalidate_init_datar9      sÓ  € Ü
ˆiŠo˜2Ó
×
$Ñ
$Ó
&€CÙÜÐWÓXÐXÜ”)˜C°4Ô8Ó9€FØ—J‘J˜v rÓ*€MÙÜÐ9Ó:Ð:Ø—‘ÑU¼fÀVÇ\Á\Ã^Ó>TÔUÓU€JÜ�X‰X�m Y×%5Ñ%5°gÓ%>ÄÇÁÓO×VÑVÓX€FÜ—‘˜& *×"3Ñ"3°GÓ"<¼g¿n¹nÓM×WÑWÓY€JÜ×Ñ˜z¨=Ô9ÜÐCÓDÐDðÜ˜Ÿ
™
 ;Ó/Ò4°1Ó5ˆ	ð �A‚~œœTŸY™Y›[¨9Ñ4Ó5¸Ò?ÜÐ|Ó}Ð}ðRÜ�z‰z˜&Ÿ*™* VÓ,Ò2°Ó3ˆô �dœDÔ!¨¯©°$¬ÜÐGÓHÐHÜ�T˜$‘Z“€Dˆ�JØ€Køô ”zÐ"ò ØŠ	ðûô ”z¤4×#7Ñ#7Ð8ò RÜÐGÓHÈcÐQûðRús*   Ä5G. Æ(H Ç.HÈHÈH4È#H/È/H4i€:	 )Úttlc               ó*  — t        t        j                  «       «      t        |«      z   }t        | «      › d|› �}t        j                  |j	                  d«      |j	                  d«      t
        j                  «      j                  «       d d }|› d|› �S )Nú.r   é   )r'   r+   r   r    r!   r"   r#   r%   )Úuser_idr1   r:   ÚexpÚpayloadÚsigs         r   Úmake_media_tokenrB   )   s|   € Ü
Œd�i‰i‹kÓ
œS ›XÑ
%€CÜ�W“�˜a ˜uÐ%€GÜ
�(‰(�9×#Ñ# GÓ,¨g¯n©n¸WÓ.EÄwÇ~Á~Ó
V×
`Ñ
`Ó
bÐcfÐdfÐ
g€CØˆY�a˜�uÐÐó    c                ó(  — t        | xs d«      j                  d«      }t        |«      dk7  rt        d«      ‚|\  }}}|› d|› �}t	        j
                  |j                  d«      |j                  d«      t        j                  «      j                  «       d d }t	        j                  ||«      st        d«      ‚	 t        |«      t        j                  «       k  rt        d«      ‚t        |«      S # t        t        f$ r}t        d«      |‚d }~ww xY w)Nr   r<   é   u-   Ð�ÐµÐ´ÐµÐ¹Ñ�Ñ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿r   r=   u   Ð¡ÐµÑ�Ñ�Ð¸Ñ� ÑƒÑ�Ñ‚Ð°Ñ€ÐµÐ»Ð°)r   ÚsplitÚlenr   r   r    r!   r"   r#   r%   r&   r'   r+   r)   )	Útokenr1   Úpartsr>   r?   rA   r@   Úexpectr8   s	            r   Úparse_media_tokenrK   0   sù   € Ü�’˜Ó×"Ñ" 3Ó'€EÜ
ˆ5ƒz�Q‚ÜÐHÓIÐIØÑ€GˆS�#Ø�	˜˜3˜%Ð €GÜ�X‰X�i×&Ñ& wÓ/°·±ÀÓ1HÌ'Ï.É.ÓY×cÑcÓeÐfiÐgiÐj€FÜ×Ñ˜v sÔ+ÜÐHÓIÐIðSÜˆs‹8”d—i‘i“kÒ!ÜÐ<Ó=Ð=Ü�7‹|ÐøÜ”zÐ"ò SÜÐHÓIÈsÐRûðSús   Â;5C1 Ã1DÄ DÄD)r0   r   r1   r   r   r'   Úreturnr   )r>   r'   r1   r   r:   r'   rL   r   )rH   r   r1   r   rL   r'   )Ú__doc__Ú
__future__r   r"   r   r,   r+   Úurllib.parser   r9   rB   rK   r   rC   r   ú<module>rP      s8   ðÙ 2å "ã Û Û Û Ý "ð JOõ ð: BKõ ôSrC   