add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

Jz`f��cs��SSKrSSKrSSKJr /SQrSrSrSr"SS\5r"S	S
\5r	"SS\5r
"S
S\5r"SS\5r\\
\4rSrSr"SS5rSSKr\R(r"SS\5r\R/S5 \\
\\R04rSqSrSqSrSrSrSr SSjr!Sr"\#S:Xa\""5 gg!\a SrN4f=f) �N)�_GLOBAL_DEFAULT_TIMEOUT)�FTP�error_reply�
error_temp�
error_perm�error_proto�
all_errors�i� c��\rSrSrSrg)�Errori9�N��__name__�
__module__�__qualname__�__firstlineno__�__static_attributes__r��/usr/lib64/python3.13/ftplib.pyrr9s��rrcr
)ri:rNr
rrrrr:���$rrcr
)ri;rNr
rrrrr;���rrcr
)ri<rNr
rrrrr<rrrcr
)ri=rNr
rrrrr=rrr�
s
csr�\rSrSrSrSr\r\r	Sr
SrSrSr
SrSSSS\S4SS.S	jjrS
rSrS3SjrS
rSr\rSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%S4Sjr&S4Sjr'S5S jr(S6S!jr)S4S"jr*S7S#jr+S4S$jr,S%r-S&r.S'r/S/4S(jr0S)r1S*r2S+r3S,r4S-r5S.r6S/r7S0r8S1r9S2r:g)8riJr�NTF�utf-8��encodingcs��XplX`lXPlU(a,URU5 U(aUR	X#U5 ggg�N)r�source_address�timeout�connect�login)�self�host�user�passwd�acctrrr�        r�__init__ZFTP.__init__ms>��!�
�,������L�L�����
�
�4��.��rcs�U$rr�r!� r�	__enter__Z
FTP.__enter__}s���rcs��URb0UR5 URbUR	5 ggg![[4a N2f=f!URbUR	5 ff=fr)�sock�quit�OSError�EOFError�close)r!�args�  r�__exit__ZFTP.__exit__�sm���9�9� �
!��	�	���9�9�(��J�J�L�)�
!���X�&�
��
���9�9�(��J�J�L�)�s!�?�A�A�A�A� A5csZ�US:waXlUS:�aX lUS:waX0lURbUR(d[S5eUbX@l[
R"SXRUR5 [R"URUR4URURS9Ul	URRUlURRSURS9UlUR5UlUR $)	Nrr����z0Non-blocking socket (timeout=0) is not supportedzftplib.connect�r�rr)r"�portr�
ValueErrorr�sys�audit�socket�create_connectionr+�family�af�makefiler�file�getresp�welcome)r!r"r6rr�     rrZFTP.connect�s����2�:��I��!�8��I��d�?�"�L��<�<�#�D�L�L��O�P�P��%�"0���	�	�"�D�)�)�T�Y�Y�?��,�,�d�i�i����-C�T�\�\�<@�<O�<O�Q��	��)�)�"�"����I�I�&�&�s�T�]�]�&�C��	��|�|�~����|�|�rcs��UR(a%[SURUR55 UR$)Nz	*welcome*)�	debugging�print�sanitizerAr(r)r�
getwelcomeZFTP.getwelcome�s,���>�>��+�t�}�}�T�\�\�:�;��|�|�rc��Xlgr)rC)r!Zlevelr1r�set_debuglevelZFTP.set_debuglevel�s	���rcrGr)�
passiveserver)r!Zvalr1r�set_pasvZFTP.set_pasv�s
��!�rcs��USSS;a-[URS55nUSSSUS-
--XS-n[U5$)N�>�PASS zpass rZ*)�len�rstrip�repr)r!�s�i�   rrEZFTP.sanitize�sN���R�a�5�&�&��A�H�H�V�$�%�A��"�1���Q�q�S�	�!�A�b�E�)�A��A�w�rcs0�SU;dSU;a[S5e[R"SX5 U[-nURS:�a[SUR
U55 URRURUR55 g)NZ
�
z4an illegal newline character should not be containedzftplib.sendcmdrz*put*)r7r8r9�CRLFrCrDrEr+�sendallZencoder�r!�liner1r�putlineZFTP.putline�sq���4�<�4�4�<��S�T�T��	�	�"�D�/��d�{���>�>�A���'�4�=�=��.�/��	�	���$�+�+�d�m�m�4�5rcs~�UR(a[SURU55 URU5 g)Nz*cmd*)rCrDrErXrVr1r�putcmdZ
FTP.putcmd�s'���>�>�5��$�-�-��*=�>����T�rcst�URRURS-5n[U5UR:�a[	SUR-5eUR
S:�a[
SURU55 U(d[eUSS[:XaUSSnU$USS[;aUSSnU$)Nr�got more than %d bytesz*get*����������)
r?�readline�maxlinerMrrCrDrEr.rTrVr1r�getlineZFTP.getline�s����y�y�!�!�$�,�,��"2�3���t�9�t�|�|�#��0�4�<�<�?�@�@��>�>�A���'�4�=�=��.�/���N����9������9�D����"�#�Y�$�
����9�D��rcs��UR5nUSSS:Xa5USSnUR5nUSU--nUSSU:XaUSSS:waU$M/U$)N���-rS)r_)r!rWZcodeZnextline�    r�getmultilineZFTP.getmultiline�sr���|�|�~����!�9������8�D���<�<�>���t�h��/���B�Q�<�4�'� ��1�
��,����
��rcs�UR5nUR(a[SURU55 USSUlUSSnUS;aU$US:Xa[U5eUS:Xa[
U5e[U5e)Nz*resp*r`r>�1�2�3Z4Z5)rdrCrDrE�lastresprrr)r!�resp�crRrr@ZFTP.getresp�s~��� � �"���>�>��(�D�M�M�$�/�0��R�a���
���!�H������K���8��T�"�"���8��T�"�"��$��rcsN�UR5nUSSS:wa[U5eU$)Nrrf)r@r�r!rir1r�voidrespZFTP.voidresps*���|�|�~�����8�s�?��d�#�#��rcs��S[-nURS:�a[SURU55 URRU[5 UR5nUSSS;a[U5eU$)N�ABORrz*put urgent*r`�Z225Z226Z426)	�B_CRLFrCrDrEr+rU�MSG_OOBrdr�r!rWrirRr�abortZ	FTP.abortsn��
�����>�>�A���.�$�-�-��"5�6��	�	���$��(�� � �"�����8�0�0��d�#�#��rc�D�URU5 UR5$r)rYr@�r!�cmdr1r�sendcmdZFTP.sendcmds�����C���|�|�~�rcrsr)rYrlrtr1r�voidcmdZFTP.voidcmds�����C���}�}��rcs��URS5n[US-5[US-5/nX4-nSSRU5-nURU5$)N�.izPORT Z,)�splitrO�joinrw)r!r"r6ZhbytesZpbytesZbytesru�       r�sendportZFTP.sendport sS�����C����t�S�y�/�4��S��>�2�����������'���|�|�C� � rcs$�SnUR[R:XaSnUR[R:XaSnUS:Xa[	S5eS[U5U[U5S/nSSR
U5-nURU5$)Nrr�zunsupported address familyrzEPRT Z|)r=r:�AF_INETZAF_INET6rrOrzrw)r!r"r6r=Zfieldsru�      r�sendeprtZFTP.sendeprt*s~��
���7�7�f�n�n�$��B��7�7�f�o�o�%��B�
��7��:�;�;��d�2�h��d�4�j�"�5�������(�(���|�|�C� � rcs��[R"SURSS9nUR5SnURR5SnUR[R
:XaUR
X25nOURX25nUR[LaURUR5 U$)N)rrr)r<Zbacklogr)r:Z
create_serverr=Zgetsocknamer+r~r|r�rr�
settimeout)r!r+r6r"rirBr�makeportZFTP.makeport7s����#�#�G�D�G�G�Q�G�����!�!�$���y�y�$�$�&�q�)���7�7�f�n�n�$��=�=��,�D��=�=��,�D��<�<�6�6��O�O�D�L�L�)��rcsT�UR[R:XaS[UR	S55upUR
(aUnX24$URR5SnX24$[UR	S5URR55up2X24$)N�PASVrZEPSV)	r=r:r~�parse227rv�trust_server_pasv_ipv4_addressr+Zgetpeername�parse229)r!Zuntrusted_hostr6r"rcr�makepasvZFTP.makepasvDs����7�7�f�n�n�$�#+�D�L�L��,@�#A� �N��2�2�%��
�z���y�y�,�,�.�q�1���z��"�$�,�,�v�"6��	�	�8M�8M�8O�P�J�D��z�rcs*�SnUR(a�UR5upE[R"XE4URUR
S9nUbUR
SU-5 UR
U5nUSS:XaUR5nUSS:wa[U5eO�UR5nUbUR
SU-5 UR
U5nUSS:XaUR5nUSS:wa[U5eUR5upiUR[LaURUR5 SSS5 WSSS:Xa[U5nWU4$! UR5 e=f!,(df   N<=f)Nr4zREST %srrfrer`�150)rIr�r:r;rrrvr@rr/r�Zacceptrr��parse150)
r!ru�rest�sizer"r6�connrir+Zsockaddrs
          r�ntransfercmdZFTP.ntransfercmdPss�����������J�D��+�+�T�L�$�,�,�;?�;N�;N�P�D�
��#��L�L��T�!1�2��|�|�C�(����7�c�>��<�<�>�D���7�c�>�%�d�+�+�"�����
2�D��#��L�L��T�!1�2��|�|�C�(����7�c�>��<�<�>�D���7�c�>�%�d�+�+�!%�������<�<�'>�>��O�O�D�L�L�1�
2����8�u���D�>�D��T�z���'
��
�
����
2�
2�s�AE.�8BF�.F�
Fcs*�URX5S$)Nr)r�)r!rur�rRr�transfercmdZFTP.transfercmd�s��� � ��+�A�.�.rcs"�U(dSnU(dSnU(dSnUS:XaUS;aUS-nURSU-5nUSS:XaURSU-5nUSS:XaURS	U-5nUSS
:wa[U5eU$)NZ	anonymousr>rrbz
anonymous@zUSER rrgrL�ACCT rf�rvr)r!r#r$r%rirBrr Z	FTP.login�s�����D���F���D��;��6�Y�#6��l�*�F��|�|�G�d�N�+����7�c�>��<�<��&� 0�1�D���7�c�>��<�<��$��/�D���7�c�>��d�#�#��rcs��URS5 URX5nURU5=n(a"U"U5 URU5=n(aM"[b%[	U[5(aUR5 SSS5 UR
5$!,(df   UR
5$=f�NzTYPE I)rwr�Zrecv�
_SSLSocket�
isinstance�unwraprl)r!ru�callback�	blocksizer�r�Zdatar{r�
retrbinaryZFTP.retrbinary�s���	
���X��
�
�
�c�
(�	�D��)�)�I�.�.�$�.�����)�)�I�.�.�$�.��%�*�T�:�*F�*F����
�	��}�}���
	�	��}�}���s�9B"�,B"�"
B?cs��Uc[nURS5nURU5nURSURS9nURURS-5n[U5UR:�a[SUR-5eURS:�a[S[U55 U(dO+USS[:XaUSSnOUS	SS
:XaUSS	nU"U5 M�[b%[U[5(aUR5 SSS5 SSS5 UR!5$!,(df   N&=f!,(df   UR!5$=f)N�TYPE Ar5rrrZr}z*retr*r[r\rS)�
print_linervr�r>rr]r^rMrrCrDrOrTr�r�r�rl)r!rur�rir��fprWr{r�	retrlinesZ
FTP.retrlines�sD����!�H��|�|�H�%��
�
�
�c�
"�	�d����s�T�]�]��;�	�?A���{�{�4�<�<�!�#3�4���t�9�t�|�|�+�� 8�4�<�<� G�H�H��>�>�A�%��(�D��J�/������9��$����9�D��"�#�Y�$�&����9�D������%�*�T�:�*F�*F����
�#	�	�$�}�}���%	�	��	�	�$�}�}���s$�E
�CD<�E
�<
E
	�E
�
E*cs��URS5 URX5nURU5=n(a:URU5 U(aU"U5 URU5=n(aM:[b%[U[5(aUR
5 SSS5 UR5$!,(df   UR5$=fr�)rwr�ZreadrUr�r�r�rl)r!rur�r�r�r�r��bufr&r�
storbinaryZFTP.storbinary�s���	
���X��
�
�
�c�
(�	�D�����+�+�#�+����S�!���S�M�����+�+�#�+�
�%�*�T�:�*F�*F����
�	��}�}���	�	��}�}���s�AB:�6,B:�:
CcsT�URS5 URU5nURURS-5n[	U5UR:�a[SUR-5eU(dOJUSS[:waUS[;aUSSnU[-nURU5 U(aU"U5 M�[b%[U[5(aUR5 SSS5 UR5$!,(df   UR5$=f)Nr�rrZr[r\)rwr�r]r^rMrrorUr�r�r�rl)r!rur�r�r�r�rr�	storlinesZ
FTP.storlines�s���	
���X��
�
�
�c�
"�	�d���k�k�$�,�,��"2�3���s�8�d�l�l�*�� 8�4�<�<� G�H�H����r�s�8�v�%��2�w�&�(��C�R��#���,�C����S�!���S�M���%�*�T�:�*F�*F����
�	� �}�}���!	�	� �}�}���s�CD
�

D'cs.�SU-nURU5$)Nr��rw)r!ZpasswordrurRrr%ZFTP.accts���� ���|�|�C� � rcsf�SnUHnUSU--nM
 /nURX$R5 U$)NZNLST� )r��append)r!r0ru�argZfilesrBr�nlstZFTP.nlsts>�����	$�C���s��#�C�	$������s�L�L�)��rcs��SnSnUSS(a![US[5(d	USSUSp1UHnU(dMUSU--nM URX#5 g)NZLISTr\r�)r�Zstrr�)r!r0ruZfuncr�rBr�dirZFTP.dir&sh���������9�Z��R��#�6�6��c�r��D��H�$��	(�C��s��S�3�Y�'��	(�	
���s�!rc#s�# �U(a&URSSRU5-S-5 U(aSU-nOSn/nURX4R5 UHrnUR	[
5R
S5upgn0n	USSRS5H)n
U
R
S5up�nX�UR5'M+ X�4v� Mt g7f)Nz
OPTS MLST Z;zMLSD %sZMLSDr�r\Z=)	rvrzr�r�rNrTZ	partitionryZlower)
r!ZpathZfactsruZlinesrWZfacts_foundZ_ZnameZentryZfactZkeyZvalues
             r�mlsdZFTP.mlsd5s������L�L�������7�#�=�>���d�"�C��C������s�L�L�)��	 �D�#'�;�;�t�#4�#>�#>�s�#C� �K�D��E�#�C�R�(�.�.�s�3�
+�� $���s� 3�
���%*�c�i�i�k�"�
+��-��
	 �s�CCcsz�URSU-5nUSS:wa[U5eURSU-5$)NzRNFR rrgzRNTO )rvrrw)r!ZfromnameZtonamerircr�renameZ
FTP.renameQs?���|�|�G�h�.�/����7�c�>��d�#�#��|�|�G�f�,�-�-rcsV�URSU-5nUSSS;aU$[U5e)NzDELE r`>Z200Z250r�)r!�filenamerirRr�deleteZ
FTP.deleteXs3���|�|�G�h�.�/�����8�~�%��K��d�#�#rcs��US:XaURS5$US:XaSnSU-nURU5$![a!nURSSSS:waeSnAN<SnAff=f)	Nz..ZCDUPrr`Z500rrxzCWD )rwrr0)r!�dirnameZmsgrurcr�cwdZFTP.cwd`st���d�?�
��|�|�F�+�+���]��G��w����|�|�C� � ��
�
��8�8�A�;�r��?�e�+��,��
�s�7�
A"�A�A"csz�URSU-5nUSSS:XaUSSR5n[U5$g)NzSIZE r`Z213)rvZstrip�int)r!r�rirPrcrr�ZFTP.sizemsE���|�|�G�h�.�/�����8�u���Q�R���� �A��q�6�M�rcsn�URSU-5nURS5(dg[U5$)NzMKD �257r�rwZ
startswith�parse257)r!r�rirRr�mkdZFTP.mkdus3���|�|�F�W�,�-�����u�%�%����~�rcs*�URSU-5$)NzRMD r�)r!r�r1r�rmdZFTP.rmd~s���|�|�F�W�,�-�-rcsh�URS5nURS5(dg[U5$)NZPWDr�rr�rkr1r�pwdZFTP.pwd�s.���|�|�E�"�����u�%�%����~�rcsH�URS5nUR5 U$)NZQUIT)rwr/rkr1rr,ZFTP.quit�s���|�|�F�#���
�
���rcs��URnSUlUbUR5 URnSUlUbUR5 gg!URnSUlUbUR5 ff=fr)r?r/r+)r!r?r+rRrr/Z	FTP.close�sr��		��9�9�D��D�I����
�
���9�9�D��D�I����
�
�� ���9�9�D��D�I����
�
�� �s�&A�)A9)r�rhr?r=r^r6r+rCr"rrrrIrA)rrr3Nr)rrr)r	N)r	NN);rrrrrCr"�FTP_PORTr6�MAXLINEr^r+r?rArIr�rr'r*r2rrFrHZdebugrJrErXrYr_rdr@rlrrrvrwr|r�r�r�r�r�r r�r�r�r�r%r�r�r�r�r�r�r�r�r�r�r,r/rrrrrrJs%��0�I�
�D��D��G��D��D��G��M�%*�"��R���0��/�!�/� �!��4��
�E�!��6���$
� ����
�
!�!��
�5�n/��4�.!�F�4�>!�
�
"��"� �8.�$�!���.���rrcsx^�\rSrSrSS\SSS.U4SjjjrSU4SjjrSrSrS	r	S
r
SU4SjjrSrS
r
U=r$)�FTP_TLSi�Nr)�contextrrrc
sp>�Uc[R"5nXPlSUl[T	U]XX4XgUS9 g)NFr)�sslZ_create_stdlib_contextr��_prot_p�superr')
r!r"r#r$r%r�rrr�	__class__s
         �rr'ZFTP_TLS.__init__�s@������4�4�6��"�L� �D�L��G��T��$�x�
�
Ircs�>�U(a9[UR[R5(dUR	5 [
TU]XU5$r)r�r+r��	SSLSocket�authr�r )r!r#r$r%Zsecurer��     �rr Z
FTP_TLS.login�s4����j����C�M�M�B�B��	�	���7�=��t�4�4rcs��[UR[R5(a[	S5eUR
R[R:�aURS5nOURS5nUR
RURURS9UlURRSURS9Ul
U$)NzAlready using TLSzAUTH TLSzAUTH SSL�Zserver_hostnamer5)Zmoder)r�r+r�r�r7r�ZprotocolZPROTOCOL_TLSrw�wrap_socketr"r>rr?rkr1rr�ZFTP_TLS.auth�s����$�)�)�S�]�]�3�3� �!4�5�5��|�|�$�$��(8�(8�8��|�|�J�/���|�|�J�/�����0�0����D�I�I�0�V�D�I��	�	�*�*��d�m�m�*�L�D�I��Krcs��[UR[R5(d[	S5eURS5nURR
5UlU$)Nz
not using TLSZCCC)r�r+r�r�r7rwr�rkr1r�cccZFTP_TLS.ccc�sI���d�i�i����7�7� ��1�1��<�<��&�D��	�	�(�(�*�D�I��KrcsX�URS5 URS5nSUlU$)NzPBSZ 0zPROT PT�rwr�rkr1r�prot_pZFTP_TLS.prot_p�s*��
�L�L��"��<�<��)�D��D�L��Krcs6�URS5nSUlU$)NzPROT CFr�rkr1r�prot_cZFTP_TLS.prot_c�s���<�<��)�D� �D�L��Krcs�>�[TU]X5up4UR(a$URR	UUR
S9nX44$)Nr�)r�r�r�r�r�r")r!rur�r�r�r�r�rr�ZFTP_TLS.ntransfercmdsF�����-�c�8�J�D��|�|��|�|�/�/��@D�	�	�0�K���:�rcs��S[-nURRU5 UR5nUSSS;a[	U5eU$)Nrmr`rn)ror+rUrdrrqrRrrrZ
FTP_TLS.abort	sK���V�#�D��I�I���d�#��$�$�&�D��B�Q�x�4�4�!�$�'�'��Kr)r?r+r�r"rr�)rrrr)rrrTr)rrrrrr'r r�r�r�r�r�rrrZ
__classcell__)r�s@rr�r��sI���D	I� $�.E�$(�7�	I�	I�	5�

	�	�	� 	�	�	�	rr�cs�USSS:wa[U5e[c-SSKnURSURUR
-5q[R
U5nU(dg[URS55$)Nr`r�rz150 .* \((\d+) bytes\)r)	r�_150_re�re�compileZ
IGNORECASE�ASCIIZmatchr�Zgroup)rir��mrRrr�r�sl��
�B�Q�x�5���$�������*�*�%�r�}�}�r�x�x�'?�A���
�
�d��A����q�w�w�q�z�?�rcsT�USSS:wa[U5e[c SSKnURSUR5q[RU5nU(d[
U5eUR5nSRUSS5n[US5S-[US5-nXE4$)	Nr`Z227rz#(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)rxrairK)
r�_227_rer�r�r�ZsearchrZgroupsrzr�)rir�r�Znumbersr"r6rrr�r�,s����B�Q�x�5���$�������*�*�C�R�X�X�N�����t��A���$����h�h�j�G��8�8�G�B�Q�K� �D����
�O�q� �C���
�O�3�D��:�rcs��USSS:wa[U5eURS5nUS:a[U5eURSUS-5nUS:a[U5eXS-XS-
:wa[U5eXS-URXS-5n[	U5S:wa[U5eUSn[US5nXV4$)Nr`Z229Z(rZ)rrK)rZfindrryrMr�)riZpeerZleftZrightZpartsr"r6r{rr�r�?s����B�Q�x�5���$����9�9�S�>�D��a�x�{�4�(�(��I�I�c�4�!�8�$�E��q�y��$����1�H�~��a�i��(��$������%� �&�&�t��F�|�4�E�
�5�z�Q���$�����7�D��u�Q�x�=�D��:�rcs��USSS:wa[U5eUSSS:wagSnSn[U5nX#:a/XnUS-nUS:XaX#:�dXS:waU$US-nX-nX#:aM/U$)Nr`r�rKz "rrZ")rrM)rir�rQZnrjrBrr�r�Ts����B�Q�x�5���$����A�a�y�D����G�	�A��D�	�A�
�%��G��
�a�C����8��v���C����N��!��A��+���%��Nrcs�[U5 gr)rD)rWr)rr�r�js	��	�$�Krcs��U(dUnSU-nURU5 URU5 [URS55upVURXV5 URSU-5nUSSS;a[eURSU-5nUSSS;a[eUR5 UR5 g)NzTYPE r�zSTOR r`>Z125r��RETR )rwr�rvr|rrl)	ZsourceZ
sourcenameZtargetZ
targetnameZtypeZ
sourcehostZ
sourceportZtreplyZsreplys	         r�ftpcpr�os�����
��T�>�D�
�N�N�4��
�N�N�4��%�f�n�n�V�&<�=��J�
�O�O�J�+��^�^�G�j�0�
1�F�
�b�q�z��'���
�^�^�G�j�0�
1�F�
�b�q�z��'���
�O�O��
�O�O�rcs��[[R5S:a/[[R
5 [R"S5 SSKnSnSn[RSS:Xa/US-n[RS	[RSS:XaM/[RSSSS:Xa'[RSSSn[RS	[RSn[U5nURU5 S=n=pgURU5nURU5upWnURXVU5 [RSSH�n	U	SSS
:XaUR!U	SS5 O�U	SSS:Xa)Sn
U	SS(aU
S-U	SS-n
UR#U
5nO�U	S
:Xa!UR%UR&(+5 O`UR)SU	-[R*R,R.S5 [R*R,R15 [R*R15 M� UR35 g![[4a [S[RS9 GN]f=f![a Ub[S	[RS9 GN�f=f)Nr}rrz-dz-rrz$No account -- using anonymous login.)r?z5Could not open account file -- using anonymous login.z-lZCWDr�z-pr�i)rMr8ZargvrD�testZ__doc__Zexit�netrcrrHZauthenticatorsZKeyErrorZ	TypeErrorZstderrr-r r�rvrJrIr�ZstdoutZbufferZwriteZflushr,)r�rCZrcfiler"ZftpZuseridr$r%Znetrcobjr?ruris            rr�r��sN���3�8�8�}�q��
�d�l�l���������I�
�F�

�(�(�1�+��
��a�K�	��H�H�Q�K��(�(�1�+��
��x�x��{�2�A��$�����!��Q�R����H�H�Q�K��8�8�A�;�D�

�d�)�C����y�!���F��V�K��;�;�v�&��	K�#+�#:�#:�4�#@� �F�&��I�I�f�d�#�������
�����8�t���G�G�D���H��
�"�1�X��
��C��A�B�x�s�S�y�4���8�3���;�;�s�#�D�
�T�\��L�L�S�.�.�.�/��N�N�7�T�>��:�:�,�,�2�2�D�
:��J�J���#�#�%��
�
����
��H�H�J��%�)�$�	K��8�s�z�z�J�	K���#����I��z�z�
#��#�s$�J�#I)�)(J�J�%K�KZ__main__)rZI)$r8r:rZ__all__rpr�r�Z	Exceptionrrrrrr-r.rrTrorr�r�r�r�r�ZSSLErrorZImportErrorr�r�r�r�r�r�r�r�r�rrrr�<module>r�s��N�
�*�������
���I���%���������%��
�W�h�
'�
���	��R	�R	�hu:�����J�k�#�k�Z�N�N�9����(�C�L�L�9�J����$���&�*�,�
�,=�@�z���F���K	���J��s�$C
�
C�C