403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/test_urlparse.cpython-315.pyc
R
>lqjӳc���]PHs]PHs]PHs]PHs]PHs]PHs]QHGsGsG	s	G
s
Gs]QH0G
s
QsQsQsQs,P,1MQ,1MQ,1MQQV,1MQ	QW,1MQ
QX,1MQQX,1MQQY,1MQQZ,1MQQ[Q\,1MQQ],1MQQ[,1MQQ^Q_,1MQQ`Qa,1MQ,1MQ,1MQ,1MQ Qb,1MQ!Qc,1MQ"Qd,1MQ#Qd,1MQ$Qe,1MQ&Qf,1MQ)QgQh,1MQ,Qi,1MQ.Qg,1MQ/QjQk,1MQ2QlQm,1MQ5Qn,1MQ7Qo,1MQ9Qp,1MQ;Qq,1MQ=Qr,1MQ@Qr,1MQAQs,1MQCQt,1MQFQt,1MQGQu,1MQJQu,1Ms,P-1MQ-1MQ-1MQPP,-1MQ	PQ
,-1MQ
Q
P,-1MQQ
P,-1MQQ
Q
,-1MQQQ,-1MQQ
Q,QQ,-1MQQ
Q,-1MQQ
Q,-1MQQ
Q,QQ,-1MQQ
QQ,-1MQ-1MQ-1MQ-1MQ QQ,-1MQ!QQ",-1MQ"Q"Q,-1MQ#Q"Q,-1MQ$Q"Q%,-1MQ&Q'Q(,-1MQ)Q"Q*,Q(Q+,-1MQ,Q"Q-,-1MQ.Q"Q*,-1MQ/Q"Q0,Q*Q1,-1MQ2Q"Q3Q4,-1MQ5Q6Q,-1MQ7Q
Q8,-1MQ9Q:Q*,-1MQ;Q"Q<,-1MQKQ"QL,-1MQ=Q>Q?,-1MQ@Q>Q?,-1MQAQBQB,-1MQCQDQE,-1MQFQDQE,-1MQGQHQI,-1MQJQHQI,-1MsQMQN\O(2sQOQP\O(2sQQQR\O(2sQSsQTs\QU6Xc\O62P!P!)v�)�	urldefrag�urlparse�urlsplit�
urlunparse�
urlunsplit)�support�http://a/b/c/d;p?q#f�http://a/b/c/d;p?qzhttp://a/b/c/d�&z&&�=z=a�aza=za=b=c�b=cza%3Db=c�a=b�cza=b&c=d�b�dz	a=b%26c=d�b&c=dz&a=bza=a+b&b=b+c�a b�b cza=1&a=2�1�2��&s&&�=s=a�asa=sa=b=c�b=csa%3Db=c�a=b�csa=b&c=d�b�ds	a=b%26c=d�b&c=ds&a=bsa=a+b&b=b+c�a b�b csa=1&a=2�1�2�;a=b�;a�a=a+b;b=b+c�	a b;b=b c�;a=b�;a�a=a+b;b=b+c�	a b;b=b cuŁ=é�Ł�éz
%C5%81=%C3%A9z%81=%A9��sŁ=é�Ł�és
%C5%81=%C3%A9s�=�����s%81=%A9s
a=a%E2%80%99bsa’bc�	`�\sQs]lsnQgQksQgQks\OQ\2Q2s	\OQ\
2Q2s\OQQh2\OQ,QiN2Q	22s\OQQh2\OQ
,QjN2Q22s
\OQQh2\OQQk2\OQ,QlN2Q222sQP	-Qks\OQQh2\OQ,QmN2Q22sQsQsQsQsQsQs\OQQh2\OQ,QnN2Q22s\OQQh2\OQ,QoN2Q22s\OQQh2\OQQpQqQrQsQtQuQvQw\QQ
1\QP1QxQyQzQ{Q|Q}Q~QQ�Q�Q�Q�Q�,2\OQQh2Q 222sQ!sQ"sQ#sQ$s\OQQh2\OQ%\ OBOD\ OBOF12\OQ&Q�2Q'222s$\OQQh2\OQ%\ OBOD\ OBOF12\OQQ�2Q(222s%\OQQh2Q)2s&Q*s'\OQQh2Q+2s(\OQQh2Q,2s)Q-s*\OQQh2Q.2s+\OQ/\ OBOF\ OBOD12Q02s,\OQ1Q�2\OQ/\ OBOF\ OBOD12Q222s-Q3s.Q4s/Q5s0Q6s1Q7s2Q8s3Q9s4Q:s5Q;s6Q<s7\OQQ=-1Q>-1Q?QQ@,-1QAQQB,Q@QC,-1QDQQEQF,-1QG-1QH-1QIQJQK,-1QLQJQM,QKQN,-1QOQJQPQQ,-1,
2QR2s8\OQQ=,1Q>,1Q?Q�,1QAQ�Q�,1QDQ�Q�,1QG,1QH,1QIQ�,1QLQ�Q�,1QOQ�Q�,1,
2QS2s9QTs:QUs;QVs<QWs=QXs>QYs?QZs@Q[sAQ\sBQ]sCQ^sDQ_sEQ`sFQasGQbsHQcsIQdsJQesKQfsLUsMP!)��UrlParseTestCasec� `�UeSoUOVUP	Q5UQ*n[9PIc,U1QkU2DMJ	3LU1QkU22o[9PIc,U1QkU2DMJ	3LU1QkU22oUOVV4P
Q5[UP	Q5oUO[	UP
Q5U2UO[	[U2P
Q5U2[UP
Q5oUO[29^tt^2[	UP	Q5PPP2[	[U2P	Q5[UP	Q5oUO[UP
Q5U2UO[[U2P
Q5U2[UP
Q5oUO[29^tt^2[UP	Q5PPP2[[U2P	Q5P!)%fhK�9h)%fhK;9h)N��missing_as_none�NrNc3�F:�SF �Dp9%fRw�	J	P!3h�N���.0�x�emptys& ��'C:\Python315\\Lib\test\test_urlparse.py�	<genexpr>�3UrlParseTestCase.checkRoundtrips.<locals>.<genexpr>ss��6���6�a�z�z�E�z�6���!�!c3�F:�SF �Dp9%fRw�	J	P!3hr;r<r=s& �rArBrCts��%���%�Q�j�j�5�j�%�rD��
keep_empty)	�checkRoundtrips1�tupler�assertEqualr�assertRaises�
ValueErrorrr)�self�url�parsed�split�url2�resultr@s&&&&& @rA�checkRoundtrips� UrlParseTestCase.checkRoundtripsns~����<��D����c�5�$��G��B�����2�6�2���2�6�2�2����0�%�0���0�%�0�0�����c�5���N��#�t�4������F�u�=�t�D�����E�&�M�e�D�d�K��#�u�5��
�
�
�z�
*�
*��v�$�/�+��5��=�T�2��#�t�4������F�u�=�t�D�����E�&�M�e�D�d�K��#�u�5��
�
�
�z�
*�
*��v�$�/�+��5��=�T�2�+�
*��+�
*�s$�G*�<G=�*G:	�3G:	�=H
	�H
	c�
�UeSo[VQ5oUOVb2UOUOUOUO
UOUO1oUOVr2[U2oUOV�2UOV�O22UO[VeQ5U2UO[[U2UQ5U2[UO2UQ5o	UOU	O2UO22UOV�2UOU	OUO2UOU	OUO2UOU	OUO2UOU	O
UO
2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2[!VQ5oUOVc2UOUOUOUOUO1oUOVs2[#U2oUOV�2UOV�O22UO[#[U2UQ5U2[!UO2UQ5o	UOU	O2UO22UOV�2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2UOU	OUO2P!)Nr7rF)r�assertSequenceEqual�scheme�netloc�path�params�query�fragmentrrJ�geturlrI�username�password�hostname�portrr)
rMrNrOrPrQr8rR�t�result2�result3s
&&&&&$    rArH�!UrlParseTestCase.checkRoundtrips1�s����<��D��#�?��� � ��0�
�]�]�F�M�M�6�;�;�
�]�]�F�L�L�&�/�/�
;��� � ��+��V�$������'�����-�-�/�2�����F�G��N�����E�&�M�o�N�PW�X��6�=�=�?�O�L��������)�6�=�=�?�;�� � ��1�������6�=�=�9�������6�=�=�9�������6�;�;�7�������6�=�=�9�������6�<�<�8�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�������6�;�;�7��#�?��� � ��/�
�]�]�F�M�M�6�;�;��L�L�&�/�/�
+��� � ��*��V�$������'�����-�-�/�2�����E�&�M�o�N�PW�X��6�=�=�?�O�L��������)�6�=�=�?�;�� � ��1�������6�=�=�9�������6�=�=�9�������6�;�;�7�������6�<�<�8�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�������6�;�;�7rzorig,expectc�2�[OOUP	Q5oUOV22STt,tFDo[	U]*2%fJUMJ!	oo[OOUP
Q5oUOV52P!ttoh�T)�keep_blank_values)�urllib�parse�	parse_qslrJ�len�rM�orig�expectrR�v�expect_without_blankss&&&   rA�test_qsl�UrlParseTestCase.test_qsl�sw�����'�'���'�E������(�,2� @�F�q�c�!�A�$�i���F�� @����'�'���'�F������7��!As�B�Bc�L�[OOUP	Q5oUOV22STt-tFD,o[	V$*]*2%fJ#VBU*aJ.	oo[OOUP
Q5oUOV52P!ttohrg)rirj�parse_qsrJrlrms&&&   rA�test_qs�UrlParseTestCase.test_qs�s������&�&�t�t�&�D������(�*0�!G�*0�Q�C��	�!��4E�".��1�I��*0�	�!G����&�&�t�u�&�E������7��!Gs�"B!�
B!�byteszurl,parsed,splitrWc���U%cIUO2%fUOQ2[U2o[U2o[U2oUO	V#U2P!)�non-ASCII bytes)�isascii�skipTest�
str_encode�tuple_encoderS)rMrxrNrOrPs&&&&&rA�test_roundtrips� UrlParseTestCase.test_roundtrips�sM��z��;�;�=�=��
�
�/�0��S�/�C�!�&�)�F� ��'�E����S�%�0rzurl,url2,parsed,splitc��U%c-[U2o[U2o[U2o[U2oUOV$VS2P!r;�r}r~rS)rMrxrNrQrOrPs&&&&&&rA�test_roundtrips_normalization�.UrlParseTestCase.test_roundtrips_normalization5s>��0��S�/�C��d�#�D�!�&�)�F� ��'�E����S�%�6rr�fc���U%c-[U2o[U2o[U2o[U2oV#*oU1U*oU1U*oUOV4U2P!r;r�)rMrxrWrNrOrPs&&&&&&rA�test_http_roundtrips�%UrlParseTestCase.test_http_roundtripsTs]��.���'�F��S�/�C�!�&�)�F� ��'�E��l����V�#���	�E�!�����S�%�0r�relroundtripc	��UOVQ59^tt^2UO[OO	V2U2[U2o[U2o[U2oUO[OO	VV2U2U%c�[
[U22oUO[OO	V2U2[
[U22o	UO[OO	VY2U2[
[UP	Q52o
UO[OO	V2U2[
[UP	Q52oUO[OO	V[2U2PPP2P!)%fhP!9h))�base�relurlr7)�subTestrJrirj�urljoinr}rr)rMr�r��expectedr��baseb�relurlb�	expectedb�relurl2�relurlb2�relurl3�relurlb3s&&&&$       rA�	checkJoin�UrlParseTestCase.checkJoinus=��
�\�\�t�\�
3�
3����V�\�\�1�1�$�?��J��t�$�E� ��(�G�"�8�,�I����V�\�\�1�1�%�A�9�M��$�X�f�%5�6��� � ����!5�!5�d�!D�h�O�%�h�w�&7�8��� � ����!5�!5�e�!F�	�R� ��&�$�!G�H�G����V�\�\�1�1�$�@�(�K�!�(�7�D�"I�J�H����V�\�\�1�1�%�B�I�N�!4�
3�
3�
3�s�BF>�$DF>�>G	�G	�uc�^�U%c[U2oUO[OO	[OOU22U2UO[OO
[OOU22U2P!r;)r}rJrirjrrrr)rMrxr�s&&&rA�test_unparse_parse�#UrlParseTestCase.test_unparse_parse�sl����1�
�A�������0�0����1F�1F�q�1I�J�A�N�������0�0����1F�1F�q�1I�J�A�Nrc��UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ	2UO[Q
Q2UO[QQ
2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[Q Q!2UO[Q"Q#2UO[Q$Q#2UO[Q%Q2UO[PQ&2UO[Q'Q(2UO[Q)Q*2UO[Q+Q,2UO[Q-Q.2UO[Q/Q!2UO[Q0Q2UO[Q1Q22UO[Q3Q42P!)5�g:h�g�http://a/b/c/g�./g�g/�http://a/b/c/g/�/g�
http://a/g�//g�http://g�g?y�http://a/b/c/g?y�g?y/./x�http://a/b/c/g?y/./x�#s�http://a/b/c/d;p?q#s�g#s�http://a/b/c/g#s�g#s/./x�http://a/b/c/g#s/./x�g?y#s�http://a/b/c/g?y#s�g;x�http://a/b/c/g;x�g;x?y#s�http://a/b/c/g;x?y#s�.�
http://a/b/c/�./�..�http://a/b/�../�../g�http://a/b/g�../..�	http://a/�../../�../../gr�g.�http://a/b/c/g.�.g�http://a/b/c/.g�g..�http://a/b/c/g..�..g�http://a/b/c/..g�./../g�./g/.�g/./h�http://a/b/c/g/h�g/../h�http://a/b/c/h)r��RFC1808_BASE�rMs&rA�test_RFC1808�UrlParseTestCase.test_RFC1808�s�����|�U�E�2����|�S�*:�;����|�U�,<�=����|�T�+<�=����|�T�<�8����|�U�J�7����|�U�,>�?����|�Y�0F�G����|�T�+A�B����|�U�,>�?����|�Y�0F�G����|�W�.B�C����|�U�,>�?����|�Y�0F�G����|�S�/�:����|�T�?�;����|�T�=�9����|�U�M�:����|�V�^�<����|�W�k�:����|�X�{�;����|�Y��=�	
���|�T�+A�B����|�T�+<�=����|�T�+<�=����|�U�,>�?����|�U�,>�?����|�X�~�>����|�W�.?�@����|�W�.@�A����|�X�/?�@rc�x�UO[Q2Q2UO[QP	Q5Q2P!)zmailto:1337@example.orgr7)�mailto��1337@example.orgr�r�r�)r�Nr�NNN�rJrr�s&rA�test_RFC2368�UrlParseTestCase.test_RFC2368�s8������";�<�>�	@�����";�T�R�F�	Hrc�Z�UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ	2UO[Q
Q2UO[QQ
2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[Q Q2UO[Q!Q2UO[P[2UO[Q"Q#2UO[Q$Q%2UO[Q&Q'2UO[Q(Q)2UO[Q*Q2UO[Q+Q2UO[Q,Q-2UO[Q.Q/2UO[Q0Q12UO[Q2Q32UO[Q4Q52UO[Q6Q72UO[Q8Q92UO[Q:Q;2P!)<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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��	g;x=1/./y�http://a/b/c/g;x=1/y�
g;x=1/../y�http://a/b/c/yr�r��g?y/../x�http://a/b/c/g?y/../xr�r��g#s/../x�http://a/b/c/g#s/../x)r��RFC2396_BASEr�s&rA�test_RFC2396�UrlParseTestCase.test_RFC2396�sJ��	
���|�U�E�2����|�S�*:�;����|�U�,<�=����|�T�+<�=����|�T�<�8����|�U�J�7����|�U�,>�?����|�T�+A�B����|�U�,>�?����|�W�.B�C����|�U�,>�?����|�Y�0F�G����|�S�/�:����|�T�?�;����|�T�=�9����|�U�M�:����|�V�^�<����|�W�k�:����|�X�{�;����|�Y��=����|�R��6����|�T�+<�=����|�T�+<�=����|�U�,>�?����|�U�,>�?����|�X�~�>����|�W�.?�@����|�W�.@�A����|�X�/?�@����|�[�2H�I����|�\�3C�D����|�Y�0F�G����|�Z�1H�I����|�Y�0F�G����|�Z�1H�Irc�D�UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ	2UO[Q
Q2UO[QQ
2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[PQ2UO[QQ2UO[QQ2UO[QQ2UO[Q Q2UO[Q!Q"2UO[Q#Q$2UO[Q%Q$2UO[Q&Q2UO[Q'Q2UO[Q'Q2UO[Q(Q2UO[Q)Q2UO[Q*Q2UO[Q+Q,2UO[Q-Q.2UO[Q/Q02UO[Q1Q22UO[Q3Q"2UO[Q4Q	2UO[Q5Q62UO[Q7Q82UO[Q9Q:2UO[Q;Q<2UO[Q=Q>2UO[Q?Q@2UO[QAQB2UO[QCQD2UO[QEQ2UOQFQQ2P!)G�?y�http://a/b/c/d;p?y�;x�http://a/b/c/;xr�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�r�r�z
../../../gz
../../../../gz/./gz/../gr�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��http:gzhttp://a/b/c/de)r��RFC3986_BASEr�s&rA�test_RFC3986�UrlParseTestCase.test_RFC3986�s�����|�T�*>�?����|�T�+<�=����|�U�5�1����|�S�)9�:����|�U�+;�<����|�T�*;�<����|�T�,�7����|�U�:�6����|�T�*>�?����|�U�+=�>����|�T�*@�A����|�U�+=�>����|�W�-A�B����|�T�*;�<����|�U�+=�>����|�Y�/E�F����|�R�(<�=����|�S��9����|�T�/�:����|�T�-�8����|�U�=�9����|�V�N�;����|�W�[�9����|�X�k�:����|�Y�|�<����|�\�<�@�	
���|�\�,�?����|�_�\�B����|�V�L�9����|�W�\�:����|�T�*;�<����|�T�*;�<����|�U�+=�>����|�U�+=�>����|�X�n�=����|�W�->�?����|�W�-?�@����|�X�.>�?����|�[�1G�H����|�\�2B�C����|�Y�/E�F����|�Z�0G�H����|�Y�/E�F����|�Z�0G�H����|�X�.>�?�	
���(�$�/@�Arc��UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ	2UO[Q
Q2UO[QQ
2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ2UO[QQ 2UO[Q!Q2UO[Q"Q
2UO[Q#Q2UOQ$QQ$2UOPQQ2UOPQ%Q%2UOQ&Q'Q(2UOQ)Q'Q*2UOQ+QQ,2UOQ-QQ.2UO[Q/*Q0[Q1*2UOQ2Q3Q42UOQ5Q3Q62UOQ2Q7Q82UOQ5Q7Q82UOQ2Q9Q:2UOQQ3Q82UOQ;Q<Q<2UO[PQ=2UO[Q>Q?P
Q@5UO[QAQB2UO[QCQDP
Q@5UO[QEQFP
Q@5UO[Q
QG2UO[QHQI2UO[QJQK2UO[QLQM2UO[QNQO2UO[QPQQ2UO[QRQ=2UO[QSQB2UO[QTQG2UO[QUQV2UO[QWQQ2UO[QXQY2UO[QZQ=2UO[Q[Q?P
Q@5UO[Q\QB2UO[Q]QDP
Q@5UO[Q^QFP
Q@5UO[Q_QG2UO[Q`QI2UO[QaQK2UO[QbQM2UO[QcQO2UO[QdQQ2UO[QeQ=2UO[QfQB2UO[QgQG2UO[QVQV2UO[QhQQ2UO[QYQY2UO[QiQiP
Q@5UO[QjQjP
Q@5UO[QkQkP
Q@5UO[QlQlP
Q@5UO[QmQmP
Q@5UO[QnQn2UO[QoQo2P!)pr�r�r�r�r�r�r�r�r�r�r�zhttp://a/b/c/d?yr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�zhttp:g?yzhttp:g?y/./xzhttp:///zhttp://a/./gzsvn://pathtorepo/dir1�dir2zsvn://pathtorepo/dir2zsvn+ssh://pathtorepo/dir1zsvn+ssh://pathtorepo/dir2zws://a/bzws://a/gz	wss://a/bz	wss://a/g�/�fooz/foozhttp://a/b/c/d/e/z
../../f/g/zhttp://a/b/c/f/g/zhttp://a/b/c/d/ezhttp://a/b/f/g/z/../../f/g/z
http://a/f/g/z	../../f/gzhttp://a/b/c/f/grrr�#zhttp://a/b/c/d;p?q#�r�z#zzhttp://a/b/c/d;p?q#z�?zhttp://a/b/c/d;p?z?#zzhttp://a/b/c/d;p?#zr��;zhttp://a/b/c/;z;?yzhttp://a/b/c/;?yz;#zzhttp://a/b/c/;#zr�r��/w�
http://a/w�//z//#zz//?yz//;xz	http://;x�///w�//v�http://v�http:zhttp:#zhttp:#zzhttp:?zhttp:?#zzhttp:?yzhttp:;zhttp:;?yzhttp:;#zzhttp:;x�http:/w�http://z	http://#zz	http://?y�	http:///w�https:zhttps:#zhttps:#zzhttps:?zhttps:?yzhttps:;zhttps:;x)r��SIMPLE_BASEr�r�s&rA�
test_urljoins�UrlParseTestCase.test_urljoins-sj�����{�E�%�0����{�C�(8�9����{�E�*:�;����{�D�):�;����{�D��6����{�E�*�5����{�D�);�<����{�E�*<�=����{�I�.D�E����{�C��8����{�D��9����{�D��7����{�E�-�8����{�F�>�:����{�G�K�8����{�I�l�;����{�H�^�<����{�G�,=�>����{�G�,>�?����{�H�-=�>����{�H�-=�>����{�J�/A�B����{�N�3I�J����z�4�
�3����r�1�2H�I����r�>�>�:����.��8O�P����2�F�<W�X����z�#�j�1����{�3�{�3�	
���{�S�(�%��v�1E�F�	
���*�L�:M�N����)�<�9J�K����*�M�?�K����)�=�/�J����*�K�9K�L����}�l�O�D�	
���s�C��%�	
���|�R�)?�@����|�S�*?�e��T����|�T�+A�B����|�S�*=�E��R����|�U�,A�PU��V����|�T�+?�@����|�S�*:�;����|�U�,>�?����|�U�,>�?����|�T�+<�=����|�T�<�8����|�T�+A�B����|�V�-C�D����|�V�-A�B����|�V�[�9����|�V�\�:����|�U�J�7�	
���|�W�.D�E����|�X�/D�SX��Y����|�Y�0F�G����|�X�/B�QV��W����|�Z�1F�UZ��[����|�Y�0D�E����|�X�/?�@����|�Z�1C�D����|�Z�1C�D����|�Y�0A�B����|�Y��=����|�Y�0F�G����|�[�2H�I����|�[�2F�G����|�[�+�>����|�[�,�?����|�Z��<����|�X�x�e��L����|�Y�	���N����|�Z��%��P����|�Y�	���N����|�Z��%��P����|�Y�	�:����|�Z��<rc�	�UOPPP2UOPQQP
Q5UOPQQ2UOPQQ2UOPQQ2UOPQQP
Q5UOPQQ2UOQPQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQPQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ	2UOQQQ	2UOQQQ	2QFCD&oUOQ
UP*Q
2UOQ
UQ*Q
2UOQ
UQ*Q2UOQ
UQ*Q2UOQ
UQ*Q
2UOQ
UQ*Q
2UOQ
UQ*Q
2UOQUP*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUP*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2UOQUQ*Q2CJ)	UOQPQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQPQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2UOQQQ2P!)r�r�r�r�z//v/wr�r��wz//az//a/wrr�z
http://v/wrrrzhttp://ar�z/b/cz/b/wz///b/cz///b/w)r�r)r�)rMrWs& rA�test_urljoins_relative_base�,UrlParseTestCase.test_urljoins_relative_base�s���	
���r�2�r�"����r�4��E��:����r�5�%�(����r�7�G�,����r�4��&����r�6�6���>����r�3��$����t�R��&����t�T�4�(����t�U�E�*����t�W�g�.����t�T�6�*����t�V�V�,����t�S�&�)����u�b�%�(����u�d�E�*����u�e�U�+����u�g�w�/����u�d�G�,����u�f�g�.����u�c�7�+�!�F��N�N�7�F�R�K��9��N�N�7�F�T�M�7�;��N�N�7�F�U�N�J�?��N�N�7�F�W�$4�l�C��N�N�7�F�T�M�9�=��N�N�7�F�V�O�Y�?��N�N�7�F�S�L�)�<��N�N�9�f�r�k�9�=��N�N�9�f�t�m�Y�?��N�N�9�f�u�n�j�A��N�N�9�f�w�&6��E��N�N�9�f�t�m�[�A��N�N�9�f�v�o�{�C��N�N�9�f�s�l�K�@��N�N�:�v��{�J�?��N�N�:�v��}�j�A��N�N�:�v��~�z�B��N�N�:�v��'7��F��N�N�:�v��}�l�C��N�N�:�v����E��N�N�:�v��|�\�B�/"�2	
���v�r�6�*����v�t�V�,����v�u�e�,����v�w��0����v�t�T�*����v�v�t�,����v�s�F�+����x��X�.����x��x�0����x���.����x��'�2����x��v�.����x���0����x��h�/rzurl,hostname,portc���U%c[U2o[U2o[OOU2oUO	UO
UO1V412P!r;)r}rirjrrJr`ra)rMrxrNr`ra�	urlparseds&&&&& rA�test_RFC2732�UrlParseTestCase.test_RFC2732�sQ��D��S�/�C�!�(�+�H��L�L�)�)�#�.�	����)�,�,�i�n�n�=��?O�Pr�invalid_urlc��U%c[U2oUO[[OO
U2P!r;)r}rKrLrirjr)rMrxrs&&&rA�test_RFC2732_invalid�%UrlParseTestCase.test_RFC2732_invalid�s-���$�[�1�K����*�f�l�l�&;�&;�[�Irzurl,defrag,fragr	r8c���U%c"[U2o[U2o[U2o[OOV%Q5oU%f9[	U[
2%cQLQoUO
U2oUe
UQ*oUOUO2U2UOVcU12UOUOU2UOUOU2P!)r7r��#r9)r}rirjr�
isinstance�str�rstriprJr]rNr\)rMrxrN�defrag�fragr8rR�hashs&&&&&&  rA�test_urldefrag�UrlParseTestCase.test_urldefrags���8��S�/�C���'�F��d�#�D����'�'��'�M���$�S�#�.�.�3�D�D��*�*�T�"�C��|��2�w���������#�.�����$��0�������V�,�������$�/rc�d�[OOQ2oUOUOQ2UOUO
Q2[OOQ2oUOUOQ2UOUO
Q2P!)z,http://[FE80::822a:a8ff:fe49:470c%tESt]:1234zfe80::822a:a8ff:fe49:470c%tEStz%[FE80::822a:a8ff:fe49:470c%tESt]:1234s,http://[FE80::822a:a8ff:fe49:470c%tESt]:1234sfe80::822a:a8ff:fe49:470c%tESts%[FE80::822a:a8ff:fe49:470c%tESt]:1234)rirjrrJr`rX)rM�ps& rA�test_urlsplit_scoped_IPv6�*UrlParseTestCase.test_urlsplit_scoped_IPv66s����L�L�!�!�"P�Q��������%E�F�������#J�K��L�L�!�!�"Q�R��������%F�G�������#K�Lrc���Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOP2UOUOQ2UOUOP2UOUOP2UOUOQ2UOUOP2UOUO2Q*UQ*2Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ	2UOUOQ2UOUOQ
2UOUOQ2UOUOQ2UOUO]P2UOUO2U2Qo[OOU2oUOUOQ2UOUO
Q
2UOUOQ2UOUOQ	2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUO]P2UOUO2U2Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2UOUOQ2UOUOP2UOUOP2UOUOQ2UOUOP2UOUO2Q*UQ*2Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUO]P2UOUO2U2Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUOQ2UOUO]P2UOUO2U2Qo[OOU2oUO[Q29^tt^2UOPPP2P!)%fhP!9h) zHTTP://WWW.PYTHON.ORG/doc/#frag�httpzWWW.PYTHON.ORG�/doc/r�www.python.org:�NN�7http://User:Pass@www.python.org:080/doc/?query=yes#frag�User:Pass@www.python.org:080�	query=yes�User�PasszChttp://User@example.com:Pass@www.python.org:080/doc/?query=yes#frag�(User@example.com:Pass@www.python.org:080zUser@example.comsHTTP://WWW.PYTHON.ORG/doc/#frag�httpsWWW.PYTHON.ORG�/doc/r�frag�www.python.orgs7http://User:Pass@www.python.org:080/doc/?query=yes#frag�User:Pass@www.python.org:080�	query=yes�User�PasssChttp://User@example.com:Pass@www.python.org:080/doc/?query=yes#frags(User@example.com:Pass@www.python.org:080sUser@example.coms%HTTP://WWW.PYTHON.ORG:65536/doc/#fragzout of range)rirjrrJrWrXrYr[r\r^r_r`rar]�assertRaisesRegexrL)rMrNrs&  rA�test_urlsplit_attributes�)UrlParseTestCase.test_urlsplit_attributes?s���/���L�L�!�!�#�&��������6�*�������#3�4��������)�������"�%�������V�,�������T�*�������T�*�������%5�6��������&�	
�������B���R��1�G���L�L�!�!�#�&��������6�*�������#A�B��������)�������+�.�������V�,�������V�,�������V�,�������%5�6��������$��������S�)�T���L�L�!�!�#�&��������6�*�������#M�N��������)�������+�.�������V�,�������%7�8�������V�,�������%5�6��������$��������S�)�1���L�L�!�!�#�&��������7�+�������#4�5��������*�������#�&�������W�-�������T�*�������T�*�������%6�7��������&��������B���R��1�H���L�L�!�!�#�&��������7�+�������#B�C��������*�������,�/�������W�-�������W�-�������W�-�������%6�7��������$��������S�)�T���L�L�!�!�#�&��������7�+�������#N�O��������*�������,�/�������W�-�������%8�9�������W�-�������%6�7��������$��������S�)�7���L�L�!�!�#�&��
�
#�
#�J��
?�
?�
�F�F�@�
?�
?�
?�s�
_"�"_3	�+_3	c���Qo[OOU2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2UOUOQ2UOUOP2UOUOP2UOUOQ2UOUOP2UOUO2Q2Qo[OOU2oUOUOQ2UOUO
Q	2UOUOQ
2UOUOQ2UOUOQ2UOUOP2UOUOP2UOUOQ	2UOUOP2UOUO2Q
2QoQo[]2FD_o[OOVQ5oUOUOQ2UOUO2Q2Ja	P!)zQhttp	://www.python
.org	/java
script:	alert('msg
')/?query
=	something#frag
mentr#r%z/javascript:alert('msg')/zquery=somethingr\zGhttp://www.python.org/javascript:alert('msg')/?query=something#fragmentsQhttp	://www.python
.org	/java
script:	alert('msg
')/?query
=	something#frag
mentr-r0s/javascript:alert('msg')/squery=something�fragmentsGhttp://www.python.org/javascript:alert('msg')/?query=something#fragmentzNhttp://www.python.org/java
script:	alert('msg
')/?query
=	something#frag
mentzht
tp�rW)rirjrrJrWrXrYr[r\r^r_r`rar]�range)rMrNrrW�_s&    rA�!test_urlsplit_remove_unsafe_bytes�2UrlParseTestCase.test_urlsplit_remove_unsafe_bytes�s2��k���L�L�!�!�#�&��������6�*�������#3�4�������!<�=�������"3�4�������Z�0�������T�*�������T�*�������%5�6��������&��������%n�o�m���L�L�!�!�#�&��������7�+�������#4�5�������!=�>�������"4�5�������[�1�������T�*�������T�*�������%6�7��������&��������%o�p�f�����q��A����%�%�c�%�9�A����Q�X�X�v�.����Q�X�X�Z�)r�s�rc�>	�[[]]!22oQoUOQ2U*o[OOU2oUO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ	2UO
UOQ
2UO
UO]P2UO
UO!2U2VO#Q2*o[OOU2oUO
UOQ2UO
UOQ2UO
UOQ
2UO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UO]P2UO
UO!2UO#Q22Qo[OOUOQ2U*2oUO
UOQ2UO
UOQ2UO
UOQ2UO
UOQ2UO
UO]X2UO
UO!2U2[OOQ2oUO
[OO%U2Q2QoUOQ2Q*UOQ2*o[]2FD_o[OOV6Q5oUO
UOQ2UO
UO!2Q2Ja	P!)rr'�utf-8r#r(r$r)rr*r+r%r-r1r.r2r/r3r4r0z)https://www.python.org:88/doc/?query=    �httpszwww.python.org:88z
query=    z
www.pypi.org z//www.python.org/r:zhttps://www.python.org/)rxr;�decoderirjrrJrWrXrYr[r\r^r_r`rar]�encoder)rM�noise�base_urlrNr�query_spaces_urlrWr<s&       rA�test_urlsplit_strip_url�(UrlParseTestCase.test_urlsplit_strip_url�sZ���e�A�x�(�)��L���l�l�7�#�h�.���L�L�!�!�#�&��������6�*�������#A�B��������)�������+�.�������V�,�������V�,�������V�,�������%5�6��������$��������X�.��o�o�g�.�.���L�L�!�!�#�&��������7�+�������#B�C��������*�������,�/�������W�-�������W�-�������W�-�������%6�7��������$��������X�_�_�W�%=�>�G���L�L�!�!�%�,�,�w�"7�:J�"J�K��������7�+�������#6�7��������)�������,�/��������$��������%5�6��L�L�!�!�/�2��	
������0�0��3�_�E�"�����g�&��0�5�<�<��3H�H���q��A����%�%�c�%�9�A����Q�X�X�w�/����Q�X�X�Z�)B�C�rrjrac���QU*oQU*Q*oU%cTUO2%cUO2%fUOQ2[U2o[U2oUU2oUOUOU2UO[29^tt^2UOPPP2P!)%fhP!9h)z Check handling of invalid ports.zwww.example.net:rr�rz)r{r|r}rJrXrKrLra)rMrxrjrarXrNrs&&&&   rA�test_attributes_bad_port�)UrlParseTestCase.test_attributes_bad_port�s���
$�d�*���&� �3�&����N�N�$�$�������
�
�/�0���'�F��S�/�C��#�J��������6�*�
�
�
�z�
*�
*�
�F�F�+�
*�
*�
*�s�7
C�C	�C	c���UQ*oU%c9UO2%fUOQ2UOQ2oUUP	Q5oUOUO2P!)z"Check handling of invalid schemes.z://www.example.netrz�asciir7)r{r|rC�assertIsNonerW)rMrxrjrWrNrs&&&&  rA�test_attributes_bad_scheme�+UrlParseTestCase.test_attributes_bad_scheme
sV��
�+�+����;�;�=�=��
�
�/�0��*�*�W�%�C��#�t�,�����!�(�(�#rc��Qo[OOV!Q5oSOUOU%cPLP2UOUO
P2UOUOP2UOUOP2UOUOP2UOUO2U2[OOV!Q5oSOUOU%cPLP2UOUO
P2UOUOP2UOUOP2UOUOP2UOUO2U2Qo[OOV!Q5oSOUOU%cPLQ2UOUO
P2UOUOP2UOUOP2UOUOP2UOUO2U2[OOV!Q5oSOUOU%cPLQ2UOUO
P2UOUOP2UOUOP2UOUOP2UOUO2U2P!)z0sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15r7s0sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15r)rirjrrJrXr^r_r`rar]r)rMr8�urirs&&  rA�test_attributes_without_netloc�/UrlParseTestCase.test_attributes_without_netlocsf��A���L�L�!�!�#�!�G��������?�4��C�������T�*�������T�*�������T�*��������&��������S�)��L�L�!�!�#�!�G��������?�4��C�������T�*�������T�*�������T�*��������&��������S�)�B���L�L�!�!�#�!�G��������?�4��D�������T�*�������T�*�������T�*��������&��������S�)��L�L�!�!�#�!�G��������?�4��D�������T�*�������T�*�������T�*��������&��������S�)rc���UO[OOQ2Q2UO[OOQ2Q2P!)z http://example.com?blahblah=/foos http://example.com?blahblah=/foo)r#�example.comr�r�z
blahblah=/foor�)r-sexample.comrrs
blahblah=/foor)rJrirjrr�s&rA�test_noslash�UrlParseTestCase.test_noslashDsJ��������.�.�/Q�R�M�	O�������.�.�/R�S�S�	Urc	���U%cPLPoUO[QUQ5V"QV"U12UO[QUQ5UQPV"U12UO[QUQ5QQPV"U12U%cPLQoUO[QUQ5V"QV"U12UO[Q	UQ5UQ
QV"U12UO[QUQ5QQ
QV"U12P!)
NrYr7z//www.python.org:80�www.python.org:80�http://www.python.org:80r#r�paths//www.python.org:80�www.python.org:80�http://www.python.org:80r-r��rMr8�nones&& rA�test_withoutscheme�#UrlParseTestCase.test_withoutschemeKs���'�t�B������&�/�J��V�T��6�	8�����"7��Y��*�B��D�A�	C�����"<�o�^��,�b�$�d�C�	E�'�t�C������'�?�K��W�d�$�7�	9�����"8�/�Z��+�S�$�d�C�	E�����"=��_��.��T��F�	Hrc	�h�U%cPLPoUO[QUQ5QUQV"U12UO[QUQ5QUQV"U12UO[QUQ5QUQV"U12UO[Q	UQ5QUPV"U12UO[Q
UQ5QUPV"U12UO[QUQ5QQPV"U12U%cPLQ
oUO[QUQ5QUQV"U12UO[QUQ5QUQV"U12UO[QUQ5QUQV"U12UO[QUQ5QUQ
V"U12UO[QUQ5QUQ
V"U12UO[QUQ5QQQ
V"U12P!)Nzhttp:80r7r#�80zhttps:80rAzpath:80rYrrr[rZrshttp:80r-s80shttps:80shttpsspath:80r\shttp:shttps:r^r]r�r_s&& rA�test_portseparator�#UrlParseTestCase.test_portseparatoras���'�t�B������)�_�M���t�T��6�	8�����*�o�N��$��d�$�7�	9�����)�_�M���t�T��6�	8�����'�?�K���r�4�t�4�	6�����(�O�L��$��D��5�	7�����"<�o�^��,�b�$�d�C�	E�'�t�C������*�o�N��$��t�4�8�	:�����+��O��4���D�9�	;�����*�o�N��$��t�4�8�	:�����(�O�L��$��T��6�	8�����)�_�M��4��d�$�7�	9�����"=��_��.��T��F�	Hrc�f�UO[[OOQ2P!)r�)rK�	TypeErrorrirj�	urlencoder�s&rA�
test_usingsys�UrlParseTestCase.test_usingsys�s�����)�V�\�\�%;�%;�U�Crc	�`�U%cPLPoUO[QUQ5QQQV"U12UO[QUQ5QQQV"U12UO[QUQ5QQQUQ	Q
12UO[QUQ5QQQUQ	U12U%cPLQoUO[Q
UQ5QQQV"U12UO[QUQ5QQQV"U12UO[QUQ5QQQUQQ12UO[QUQ5QQQUQU12P!)Nzs3://foo.com/stuffr7�s3zfoo.comz/stuff�x-newscheme://foo.com/stuffzx-newschemez*x-newscheme://foo.com/stuff?query#fragmentr[r\z!x-newscheme://foo.com/stuff?queryrss3://foo.com/stuffss3sfoo.coms/stuffsx-newscheme://foo.com/stuffsx-newschemes*x-newscheme://foo.com/stuff?query#fragmentsqueryr9s!x-newscheme://foo.com/stuff?queryr�r_s&& rA�test_anyscheme�UrlParseTestCase.test_anyscheme�s`��'�t�B������"6��X��	�8�T��F�	H�����"?�Q`�a�'��H�d�$�O�	Q�����"N�`o�p�'��H�d�G�Z�X�	Z�����"E�Wf�g�'��H�d�G�T�R�	T�'�t�C������"7��Y���Y��D�I�	K�����"@�Ra�b�(�*�i��T�R�	T�����"O�ap�q�(�*�i��x�Q\�]�	_�����"F�Xg�h�(�*�i��x�QU�V�	Xr�funcc��UQQ2oUOUOQ2UQQ2oUOUOQ2UOUQQ2OQ2UOUQQQ5OQ2UOUQQQ5OQ2UOUQ2OP2UOUQP	Q	5OP2UOUQ2OQ
2UOUQP	Q	5OP2UOUQP2OQ
2UOUQPP	Q	5OQ
2P!)zhttp://example.net/�ftpr#shttp://example.net/sftpr-rYr:r\r7r)rJrW)rMrqrRs&& rA�test_default_scheme�$UrlParseTestCase.test_default_scheme�sG���+�U�3���������/��,�f�5���������0�����f�e�,�3�3�U�;�����f�U�3�:�:�E�B�����g�f�5�<�<�f�E�����f��,�,�b�1�����f�d�;�B�B�D�I�����g��-�-�s�3�����g�t�<�C�C�T�J�����g�r�*�1�1�3�7�����g�r�4�@�G�G��Mrzurl,attr,expected_fragc	�N�UQ6Xc!U[OOIcQoUUP
Q5oUOUOP2UO[
VR2QU*2UOUUPP
2OP2UUP
P	Q5oUOUO2UO[
VR2OQU*22UOUUPP
P	Q5O2UUP	Q5oUOUOU2UO[
VR2OU22UOUUPP	2OU2UOUU2OU2P!)rZrY)�allow_fragmentsr�)rwr8r7)rirjrrJr\�assertEndsWith�getattrrN�
assertTrue�endswith�assertFalse)rMrN�attr�
expected_fragrqrRs&&&&& rA�test_parse_fragments�%UrlParseTestCase.test_parse_fragments�s_���8������(=�(=� =��D��c�5�1��������"�-����G�F�1��-�/�	1�����c�2�u�-�6�6��;��c�5�$�G�����&�/�/�*������%�.�.�s�]�/B�C�	E����$�s�B��t�D�M�M�N��c�4�0��������-�8������%�.�.�}�=�	?�����c�2�t�,�5�5�)�	+�����c��+�+�]�;rc��UO[Q29^tt^2[OO	QQ2PPP2UO[Q29^tt^2[OO	QQ2PPP2UO[Q29^tt^2[OOQQ2PPP2UO[Q29^tt^2[OOQQ2PPP2UO[Q29^tt^2[OO
Q2PPP2UO[Q29^tt^2[OO
Q2PPP2UO[Q29^tt^2[OOQ	2PPP2UO[Q29^tt^2[OOQ
2PPP2UO[Q29^tt^2[OOQQ2PPP2UO[Q29^tt^2[OOQQ2PPP2P!)%fhCK�9h)%fhCK[9h)%fhCK(9h)%fhCK�9h)%fhCK�9h)%fhCK�9h)%fhCK_9h)%fhCK-9h)%fhK�9h)%fhP!9h)zCannot mix strr%r-r0r#�http://python.orgshttp://python.org)r-r%r�r�r�r�)r#r0r�r�r�r�)r-r%r�r�r�)r#r0r�r�r�)	r5rhrirjrrrrr�r�s&rA�test_mixed_types_rejected�*UrlParseTestCase.test_mixed_types_rejected�s;���
#�
#�I�/?�
@�
@��L�L�!�!�"2�G�<�A�
�
#�
#�I�/?�
@�
@��L�L�!�!�"3�V�<�A�
�
#�
#�I�/?�
@�
@��L�L�!�!�"2�G�<�A�
�
#�
#�I�/?�
@�
@��L�L�!�!�"3�V�<�A�
�
#�
#�I�/?�
@�
@��L�L�#�#�$L�M�A�
�
#�
#�I�/?�
@�
@��L�L�#�#�$K�L�A�
�
#�
#�I�/?�
@�
@��L�L�#�#�$H�I�A�
�
#�
#�I�/?�
@�
@��L�L�#�#�$H�I�A�
�
#�
#�I�/?�
@�
@��L�L� � �!4�6J�K�A�
�
#�
#�I�/?�
@�
@��L�L� � �!5�7J�K�A�
@�%A�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@�
@��
@�
@��
@�
@�
@�s��!K�'!K�.!K.�5!L�< L� L*� L>� M�!M&�!M9�K	�K	�K+	�#K+	�.K?	�7K?	�L	�L	�L'	�L'	�*L;	�3L;	�>M	�M	�M#	�M#	�&M6	�/M6	�9N
	�N
	c� �UOoUOUOU2[U2oUUoUUoQoQoUO	VR2UO	UO2U2UO	UO2U2UO	UOU2U2UO	UOU2U2UO	UOVx2U2UO	UOVx2U2UO	Vd2UO	UO
2U2UO	UO
2U2UO	UO
U2U2UO	UO
U2U2UO	UO
Vx2U2UO	UO
Vx2U2VV1FD�o	UO	[OU	2U	2UO	[OU	2U	2UO	[OU	2U	2UO	U	O2U	2J�	P!)rM�strict)�_encoded_counterpart�assertIs�_decoded_counterpartr~rJrBrC�copy�deepcopy�replace�_replace)
rM�str_type�str_args�
bytes_type�
bytes_args�
str_result�bytes_result�encoding�errorsrRs
&&&       rA�_check_result_type�#UrlParseTestCase._check_result_type�s���2�2�
��
�
�j�5�5�x�@�!�(�+�
��x�(�
�!�:�.����������.�����,�,�.��9�����,�,�.�
�;�����,�,�X�6��A�����,�,�X�6�
�C�����,�,�X�>��I�����,�,�X�>�
�K�����2�����*�*�,�j�9�����*�*�,�l�;�����*�*�8�4�j�A�����*�*�8�4�l�C�����*�*�8�<�j�I�����*�*�8�<�l�K� �.�F����T�Y�Y�v�.��7����T�]�]�6�2�F�;����T�\�\�&�1�6�:����V�_�_�.��7�	/rc��UO[OOQ2UO[OOQ2UO[OOQ2UO[OOQ2UO[OO
Q2UO[OO
Q2P!)r��r�r�)r�N)r�r�r�r�r�)NNr�NN)r�r�r�r�r�r�)NNr�NNN)r�rirj�DefragResult�SplitResult�ParseResultr�s&rA�test_result_pairs__�$UrlParseTestCase.test_result_pairs__s��������� 9� 9�8�D������� 9� 9�:�F������� 8� 8�:N�O������� 8� 8�:V�W������� 8� 8�:R�S������� 8� 8�:\�]rc
��`�U1QkoQoUO2o[[[1FD1oUUUP	Q5UUP	Q52UUU2UU22J3	P!)c�z:�ROUO2U2ROUO2O2UO22ROUO2U2ROUO2O2UO22P!r;)rJrCr]rB)r�r�rMs&&�rA�check�=UrlParseTestCase.test_result_encoding_decoding.<locals>.checks�������Z�.�.�0�,�?����Z�.�.�0�7�7�9�<�;N�;N�;P�Q����\�0�0�2�J�?����\�0�0�2�9�9�;�Z�=N�=N�=P�Qr�http://example.com/?#r7�rCrrr�rMr�rN�burlrqsf    rA�test_result_encoding_decoding�.UrlParseTestCase.test_result_encoding_decodingsV���	R�&���z�z�|���x��1�D��$�s�D�1�4��d�3S�T��$�s�)�T�$�Z�(�2rc	��`�U1QkoQoUO2o[[[1FD?oUUU22UUUP	Q52UUU22UUUP	Q52JA	P!)c�:�[OU2oROV2ROUO2UO22[OU2oROV2ROUO2UO22[OU2oROV2ROUO2UO22UO2oROV2ROUO2UO22P!r;)r�rJr]r�r�r�)rRrcrMs& �rAr��3UrlParseTestCase.test_result_copying.<locals>.checks�����i�i��'�G����W�-����W�^�^�-�v�}�}��?��m�m�F�+�G����W�-����W�^�^�-�v�}�}��?��l�l�6�*�G����W�-����W�^�^�-�v�}�}��?��o�o�'�G����W�-����W�^�^�-�v�}�}��?rr�r7r�r�sf    rA�test_result_copying�$UrlParseTestCase.test_result_copyingsb���	@�&���z�z�|���x��1�D��$�s�)���$�s�D�1�2��$�t�*���$�t�T�2�3�	2rc	��`�U1QkoQoUO2o[[[1FD?oUUU22UUUP	Q52UUU22UUUP	Q52JA	P!)c�0:�[[O]*2FDno[OV2o[OU2oROV02ROUO
2UO
22Jp	P!)�)r;�pickle�HIGHEST_PROTOCOL�dumps�loadsrJr])rR�proto�pickledrcrMs&   �rAr��4UrlParseTestCase.test_result_pickling.<locals>.check4sd����v�6�6��:�;�� �,�,�v�5�� �,�,�w�/��� � ��1�� � ����!1�6�=�=�?�C�	<rr�r7r�r�sf    rA�test_result_pickling�%UrlParseTestCase.test_result_pickling3sb���	D�&���z�z�|���x��1�D��$�s�)���$�s�D�1�2��$�t�*���$�t�T�2�3�	2rc�`�U1QkoQoUO2oU[U2Q2U[U2Q2U[U2Q2U[U2Q2U[U2Q2U[U2Q2U[UP	Q5Q	2U[UP	Q5Q
2U[UP	Q5Q2U[UP	Q5Q2U[UP	Q5Q
2U[UP	Q5Q2P!)c��:�SFDXo[OU2oROV02ROUO2UO22JZ	P!r;)r�r�rJr])rR�picklesr�rcrMs&&  �rAr��=UrlParseTestCase.test_result_compat_unpickling.<locals>.checkDsF���"�� �,�,�w�/��� � ��1�� � ����!1�6�=�=�?�C�#rr�r7)saccopy_reg
_reconstructor
(curlparse
DefragResult
c__builtin__
tuple
(Vhttp://example.com/?
V
ttR.sgccopy_reg
_reconstructor
(curlparse
DefragResult
c__builtin__
tuple
(Xhttp://example.com/?XttR.s:�curlparse
DefragResult
Xhttp://example.com/?X��.s>�curllib.parse
DefragResult
Xhttp://example.com/?X��.sC��8�urllib.parse�DefragResult��http://example.com/?���.)s�ccopy_reg
_reconstructor
(curlparse
DefragResultBytes
c__builtin__
tuple
(c_codecs
encode
(Vhttp://example.com/?
Vlatin1
tRc__builtin__
bytes
(tRttR.s�ccopy_reg
_reconstructor
(curlparse
DefragResultBytes
c__builtin__
tuple
(c_codecs
encode
(Xhttp://example.com/?Xlatin1tRc__builtin__
bytes
)RttR.sl�curlparse
DefragResultBytes
c_codecs
encode
Xhttp://example.com/?Xlatin1�Rc__builtin__
bytes
)R��.s=�curllib.parse
DefragResultBytes
Chttp://example.com/?C��.sH��=�urllib.parse�DefragResultBytes�Chttp://example.com/?C��.)sfccopy_reg
_reconstructor
(curlparse
SplitResult
c__builtin__
tuple
(Vhttp
Vexample.com
V/
V
p0
g0
ttR.spccopy_reg
_reconstructor
(curlparse
SplitResult
c__builtin__
tuple
(XhttpXexample.comX/XqhttR.sD�curlparse
SplitResult
(XhttpXexample.comX/Xqht�.sH�curllib.parse
SplitResult
(XhttpXexample.comX/Xqht�.sF��;�urllib.parse�SplitResult�(�http�example.com�/��ht�.)s�ccopy_reg
_reconstructor
(curlparse
SplitResultBytes
c__builtin__
tuple
(c_codecs
encode
p0
(Vhttp
Vlatin1
p1
tRg0
(Vexample.com
g1
tRg0
(V/
g1
tRc__builtin__
bytes
(tRp2
g2
ttR.s�ccopy_reg
_reconstructor
(curlparse
SplitResultBytes
c__builtin__
tuple
(c_codecs
encode
q(XhttpXlatin1qtRh(Xexample.comhtRh(X/htRc__builtin__
bytes
)RqhttR.s��curlparse
SplitResultBytes
(c_codecs
encode
qXhttpXlatin1q�RhXexample.comh�RhX/h�Rc__builtin__
bytes
)Rqht�.sA�curllib.parse
SplitResultBytes
(ChttpCexample.comC/Cqht�.sK��@�urllib.parse�SplitResultBytes�(ChttpCexample.comC/C�ht�.)siccopy_reg
_reconstructor
(curlparse
ParseResult
c__builtin__
tuple
(Vhttp
Vexample.com
V/
V
p0
g0
g0
ttR.srccopy_reg
_reconstructor
(curlparse
ParseResult
c__builtin__
tuple
(XhttpXexample.comX/XqhhttR.sF�curlparse
ParseResult
(XhttpXexample.comX/Xqhht�.sJ�curllib.parse
ParseResult
(XhttpXexample.comX/Xqhht�.sH��=�urllib.parse�ParseResult�(�http�example.com�/��hht�.)s�ccopy_reg
_reconstructor
(curlparse
ParseResultBytes
c__builtin__
tuple
(c_codecs
encode
p0
(Vhttp
Vlatin1
p1
tRg0
(Vexample.com
g1
tRg0
(V/
g1
tRc__builtin__
bytes
(tRp2
g2
g2
ttR.s�ccopy_reg
_reconstructor
(curlparse
ParseResultBytes
c__builtin__
tuple
(c_codecs
encode
q(XhttpXlatin1qtRh(Xexample.comhtRh(X/htRc__builtin__
bytes
)RqhhttR.s��curlparse
ParseResultBytes
(c_codecs
encode
qXhttpXlatin1q�RhXexample.comh�RhX/h�Rc__builtin__
bytes
)Rqhht�.sC�curllib.parse
ParseResultBytes
(ChttpCexample.comC/Cqhht�.sM��B�urllib.parse�ParseResultBytes�(ChttpCexample.comC/C�hht�.)syccopy_reg
_reconstructor
(curlparse
DefragResult
c__builtin__
tuple
(Vhttp://example.com/?
V
ttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
DefragResult
c__builtin__
tuple
(Xhttp://example.com/?XttR(N}X_keep_emptyI01
stb.sP�curlparse
DefragResult
Xhttp://example.com/?X��N}X_keep_empty�s�b.sT�curllib.parse
DefragResult
Xhttp://example.com/?X��N}X_keep_empty�s�b.sV��K�urllib.parse�DefragResult��http://example.com/?���N}�_keep_empty�s�b.)s�ccopy_reg
_reconstructor
(curlparse
DefragResultBytes
c__builtin__
tuple
(c_codecs
encode
(Vhttp://example.com/?
Vlatin1
tRc__builtin__
bytes
(tRttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
DefragResultBytes
c__builtin__
tuple
(c_codecs
encode
(Xhttp://example.com/?Xlatin1tRc__builtin__
bytes
)RttR(N}X_keep_emptyI01
stb.s��curlparse
DefragResultBytes
c_codecs
encode
Xhttp://example.com/?Xlatin1�Rc__builtin__
bytes
)R��N}X_keep_empty�s�b.sS�curllib.parse
DefragResultBytes
Chttp://example.com/?C��N}X_keep_empty�s�b.s[��P�urllib.parse�DefragResultBytes�Chttp://example.com/?C��N}�_keep_empty�s�b.)s~ccopy_reg
_reconstructor
(curlparse
SplitResult
c__builtin__
tuple
(Vhttp
Vexample.com
V/
V
p0
g0
ttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
SplitResult
c__builtin__
tuple
(XhttpXexample.comX/XqhttR(N}X_keep_emptyI01
stb.sZ�curlparse
SplitResult
(XhttpXexample.comX/Xqht�N}X_keep_empty�s�b.s^�curllib.parse
SplitResult
(XhttpXexample.comX/Xqht�N}X_keep_empty�s�b.sY��N�urllib.parse�SplitResult�(�http�example.com�/��ht�N}�_keep_empty�s�b.)s�ccopy_reg
_reconstructor
(curlparse
SplitResultBytes
c__builtin__
tuple
(c_codecs
encode
p0
(Vhttp
Vlatin1
p1
tRg0
(Vexample.com
g1
tRg0
(V/
g1
tRc__builtin__
bytes
(tRp2
g2
ttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
SplitResultBytes
c__builtin__
tuple
(c_codecs
encode
q(XhttpXlatin1qtRh(Xexample.comhtRh(X/htRc__builtin__
bytes
)RqhttR(N}X_keep_emptyI01
stb.s��curlparse
SplitResultBytes
(c_codecs
encode
qXhttpXlatin1q�RhXexample.comh�RhX/h�Rc__builtin__
bytes
)Rqht�N}X_keep_empty�s�b.sW�curllib.parse
SplitResultBytes
(ChttpCexample.comC/Cqht�N}X_keep_empty�s�b.s^��S�urllib.parse�SplitResultBytes�(ChttpCexample.comC/C�ht�N}�_keep_empty�s�b.)sccopy_reg
_reconstructor
(curlparse
ParseResult
c__builtin__
tuple
(Vhttp
Vexample.com
V/
NV
p0
g0
ttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
ParseResult
c__builtin__
tuple
(XhttpXexample.comX/NXqhttR(N}X_keep_emptyI01
stb.s[�curlparse
ParseResult
(XhttpXexample.comX/NXqht�N}X_keep_empty�s�b.s_�curllib.parse
ParseResult
(XhttpXexample.comX/NXqht�N}X_keep_empty�s�b.sZ��O�urllib.parse�ParseResult�(�http�example.com�/N��ht�N}�_keep_empty�s�b.)s�ccopy_reg
_reconstructor
(curlparse
ParseResultBytes
c__builtin__
tuple
(c_codecs
encode
p0
(Vhttp
Vlatin1
p1
tRg0
(Vexample.com
g1
tRg0
(V/
g1
tRNc__builtin__
bytes
(tRp2
g2
ttR(N(dV_keep_empty
I01
stb.s�ccopy_reg
_reconstructor
(curlparse
ParseResultBytes
c__builtin__
tuple
(c_codecs
encode
q(XhttpXlatin1qtRh(Xexample.comhtRh(X/htRNc__builtin__
bytes
)RqhttR(N}X_keep_emptyI01
stb.s��curlparse
ParseResultBytes
(c_codecs
encode
qXhttpXlatin1q�RhXexample.comh�RhX/h�RNc__builtin__
bytes
)Rqht�N}X_keep_empty�s�b.sX�curllib.parse
ParseResultBytes
(ChttpCexample.comC/NCqht�N}X_keep_empty�s�b.s_��T�urllib.parse�ParseResultBytes�(ChttpCexample.comC/NC�ht�N}�_keep_empty�s�b.r�)rMr�rNr�sf   rA�test_result_compat_unpickling�.UrlParseTestCase.test_result_compat_unpicklingCs'���	D�&���z�z�|��
�i��n�
�	�	�i��o� 
�	�	�h�s�m�
�	�	�h�t�n�
�	�	�h�s�m�
�	�	�h�t�n�
�	�	�i��T�2�5
�	�	�i��d�3�6
�	�	�h�s�D�1�4
�	�	�h�t�T�2�5
�	�	�h�s�D�1�4
�	�	�h�t�T�2�5
�	rc�&�[OOQQQ5oUOUQQ,-2[OOQQQ5oUOUQQ,-2[OOQQQ5oUOUQQ,-2[OOQ	QQ5oUOUQQ
,-2[OOQ	QQQ5oUOUQQ
,-2P!)�	key=Ł%E9�latin-1�r��key�Łé�key=Ł%C3%A9r@rM�Ł���
key=Ł%E9-�Ł�-�ignore�r�r��Ł-�rirjrurJ�rMrRs& rA�test_parse_qs_encoding�'UrlParseTestCase.test_parse_qs_encoding�s�����&�&���&�K������%�,��!8�9����&�&�'9�G�&�L������%�,��!8�9����&�&�'9�G�&�L������%�*>�)?�!@�A����&�&�'7�'�&�J������%�/�):�!;�<����&�&�'7�'�AI�'�K������%�)��!5�6rc��[OOQQQ5oUOUQ	,2[OOQQQ5oUOUQ	,2[OOQQQ5oUOUQ
,2[OOQQQ5oUOUQ,2[OOQQQQ5oUOUQ,2P!)
r�r�r�r�r@rMr�r�r�)r�r�)r�r�)r�r�)r�r��rirjrkrJr�s& rA�test_parse_qsl_encoding�(UrlParseTestCase.test_parse_qsl_encoding�s������'�'��)�'�L������"7�!8�9����'�'�(:�W�'�M������"7�!8�9����'�'�(:�W�'�M������"?�!@�A����'�'�(8�7�'�K������":�!;�<����'�'�(8�7�AI�(�K������"4�!5�6rc�Z�UO[29^tt^2[OO	QOQ,]*2]
Q5PPP2[OO	QOQ,]
*2]
Q5P!)%fhKJ9h)r
za=a)�max_num_fields)rKrLrirjrk�joinr�s&rA�test_parse_qsl_max_num_fields�.UrlParseTestCase.test_parse_qsl_max_num_fields�sm��
�
�
�z�
*�
*��L�L�"�"�3�8�8�U�G�B�J�#7��"�K�+������s�x�x����
�3�B��G�+�
*�s�9B�B*	�#B*	r�z;;r%rr'rrza=1;a=2rr�;s;;r)rrr+r!r"sa=1;a=2r#r$c���[OOUQQ5oUOV22[OOUQQ5oUOVB2P!�r���	separatorr�r��rMrnrorR�result_bytess&&&  rA�test_parse_qs_separator�(UrlParseTestCase.test_parse_qs_separator�sR�����&�&�t�s�&�;������(��|�|�,�,�T�T�,�B������.rc���[OOUQQ5oUOV22[OOUQQ5oUOVB2P!r�r�r�s&&&  rA�test_parse_qsl_separator�)UrlParseTestCase.test_parse_qsl_separator�sR�����'�'���'�<������(��|�|�-�-�d�d�-�C������.rc�L�UO[OOQ2Q,2UO[OO[	Q22Q,2UO[OO[Q22Q,2P!)r�rr)rJrirjrk�	bytearray�
memoryviewr�s&rA�test_parse_qsl_bytes�%UrlParseTestCase.test_parse_qsl_bytes�so��������/�/��7�,��H�������/�/�	�&�0A�B�\�N�S�������/�/�
�6�0B�C�l�^�Trc���[P	P	Q5oPQP[Q21FDfoUO[OO
U1-U@,2UO
[[OO
U]Q5Jh	]Q,-1FCD%oUO[29^tt^2oUO[OO
U1-U@,2PPP2UOWO[2UO[29^tt^2oUO[OOU1-U@-2PPP2UOUO[2UO
[[OO
U]Q5CJ(	P!)%fhK�9h)%fhK{9h)T)rh�strict_parsingrr��)
�dictr�rJrirjrkrKrL�assertWarns�DeprecationWarning�filename�__file__ru)rM�kwargsr?�cms&   rA�test_parse_qsl_false_value�+UrlParseTestCase.test_parse_qsl_false_value�sQ����T�B���S�$�
�3��/�A����V�\�\�3�3�A�@��@�"�E����j�&�,�,�*@�*@�!�q��Q�0��C��R��A��!�!�"4�5�5��� � ����!7�!7��!D�V�!D�b�I�6����R�[�[�(�3��!�!�"4�5�5��� � ����!6�!6�q�!C�F�!C�R�H�6����R�[�[�(�3����j�&�,�,�*@�*@�!�q��Q� �5�5��6�5�s$�13F<	�)3G	�<G
�G
�G
�G
c	���UO[[OO[Q22UO[[OO[
Q22UO[[OO]2UO[[OO[22QFDJoUO[29^tt^2[OO	QUQ5PPP2JL	UO[29^tt^2[OO	QQQ5PPP2UO[29^tt^2[OO	QQQ5PPP2P!)%fhJ�9h)%fhKm9h)%fhP!9h)rrr��¦��)r�rNrr�r�g�?)rKrhrirjrk�list�iter�objectrL�UnicodeEncodeError�UnicodeDecodeError)rMr�s& rA�test_parse_qsl_errors�&UrlParseTestCase.test_parse_qsl_errors�s4�����)�V�\�\�%;�%;�T�&�\�J����)�V�\�\�%;�%;�T�&�\�J����)�V�\�\�%;�%;�Q�?����)�V�\�\�%;�%;�V�X�F�6�I��"�"�:�.�.����&�&�u�	�&�B�/�.�7��
�
�1�
2�
2��L�L�"�"�6�V�"�<�3�
�
�
�1�
2�
2��L�L�"�"�5�G�"�<�3�
2�	/�.�.��
2�
2��
2�
2�
2�s6�;"F9	�"G
�
"G �9G

�G

�
G	�G	� G1	�)G1	c� �[OOQ]],QQ-P	2o[UO	Q22.Ql6XfPgQQ2o[OOQU2-P	2oUOUQ2P!)rrr
c�(`�\sQsQsnQsQsUsP!)�:UrlParseTestCase.test_urlencode_sequences.<locals>.Trivialic��Q!)�trivialr<r�s&rA�__str__�BUrlParseTestCase.test_urlencode_sequences.<locals>.Trivial.__str__s�� rr<)�__name__�
__module__�__qualname__�__firstlineno__r�__static_attributes__�__classdictcell__��
__classdict__s@rA�Trivialrs����
!�
!rrz	a=trivial)�r&�>�a=1�a=2�b=3�b=4�b=5)rirjri�setrPrJ)rMrRrs&  rA�test_urlencode_sequences�)UrlParseTestCase.test_urlencode_sequencess}�����'�'��q�!�f�c�9�(E�t�L���6�<�<��$�%�)L�L�L�L�	!�	!����'�'��g�i�(8�$�?�������-rc��[OOQQ-2oUOUQ2[OOQQ-[OOQ5oUOUQ2[OOQQ-Q[OOQ5oUOUQ2P!)	rz
some valueza=some+valuezsome value/another)�	quote_viaza=some%20value%2Fanotherr�)�saferza=some%20value/another)rirjrirJ�quoter�s& rA�test_urlencode_quote_via�)UrlParseTestCase.test_urlencode_quote_vias������'�'��l�(;�<�������0����'�'��.B�(C�28�,�,�2D�2D�(�F������!;�<����'�'��.B�(C�-0�F�L�L�<N�<N�(�P������!9�:rc�&�UO[[OOQ2[OO	Q2oUOUQ2[OO	Q2oUOUP2[OO	QQ*2oUOUQQ*2[OO	QQ*2oUOUQ	Q*2P!)
r�sarchaeological arcanazarchaeological%20arcanar�Ai'�Asz/ i��zz%01/%20)rKrhrirj�quote_from_bytesrJr�s& rA�test_quote_from_bytes�&UrlParseTestCase.test_quote_from_bytes s������)�V�\�\�%B�%B�E�J����.�.�/G�H������!:�;����.�.�s�3�������$����.�.�t�F�{�;�������V��,����.�.�z�'�/A�B�������G�!3�4rc���[OOQ2oUOUQ2[OOP2oUOUQ2P!)z	abc%20defsabc defr)rirj�unquote_to_bytesrJr�s& rA�test_unquote_to_bytes�&UrlParseTestCase.test_unquote_to_bytes+sJ�����.�.�{�;�������,����.�.�r�2�������%rc���UO[[OOQQQ5UO[[OOQQQ5P!)sfoor@r�r�)r�)rKrhrirjrr�s&rA�test_quote_errors�"UrlParseTestCase.test_quote_errors1sI�����)�V�\�\�%7�%7��#*�	�	,����)�V�\�\�%7�%7����Qrc��[OOQ2oUOUOQ2UOUO
Q2[OOQ2oUOUOQ2UOUO
Q2[OO
Q2oUOUOQ2UOUO
Q2[OO
Q2oUOUOQ2UOUO
Q2P!)ztel:+31-641044153�telz
+31-641044153ztel:+31641044153z+31641044153)rirjrrJrWrYr)rM�p1�p2s&  rA�test_issue14072� UrlParseTestCase.test_issue140726s���
�\�\�
"�
"�#6�
7��������E�*�������/�2�
�\�\�
"�
"�#5�
6��������E�*�������.�1�
�\�\�
"�
"�#6�
7��������E�*�������/�2�
�\�\�
"�
"�#5�
6��������E�*�������.�1rc���UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ	2UO[[OOQ
2UO[[OOQ2UO[[OOQ2UO[[OOQ
2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ2UO[[OOQ 2UO[[OOQ!2UO[[OOQ"2UO[[OOQ#2UO[[OOQ$2UO[[OOQ%2UO[[OOQ&2UO[[OOQ'2UO[[OOQ(2UO[[OOQ)2UO[[OOQ*2P!)+z&Scheme://user@[192.0.2.146]/Path?Queryz-Scheme://user@[important.com:8000]/Path?Queryz#Scheme://user@[v123r.IP]/Path?Queryz Scheme://user@[v12ae]/Path?QueryzScheme://user@[v.IP]/Path?Queryz Scheme://user@[v123.]/Path?QueryzScheme://user@[v]/Path?Queryz5Scheme://user@[0439:23af::2309::fae7:1234]/Path?QueryzJScheme://user@[0439:23af:2309::fae7:1234:2342:438e:192.0.2.146]/Path?QueryzScheme://user@]v6a.ip[/Pathzscheme://prefix.[v6a.ip]zscheme://[v6a.ip].suffixzscheme://prefix.[v6a.ip]/zscheme://[v6a.ip].suffix/zscheme://prefix.[v6a.ip]?zscheme://[v6a.ip].suffix?zscheme://prefix.[::1]zscheme://[::1].suffixzscheme://prefix.[::1]/zscheme://[::1].suffix/zscheme://prefix.[::1]?zscheme://[::1].suffix?zscheme://prefix.[::1]:azscheme://[::1].suffix:azscheme://prefix.[::1]:a1zscheme://[::1].suffix:a1zscheme://prefix.[::1]:1azscheme://[::1].suffix:1azscheme://prefix.[::1]:zscheme://[::1].suffix:/zscheme://prefix.[::1]:?zscheme://user@prefix.[v6a.ip]zscheme://user@[v6a.ip].suffixzscheme://[v6a.ipzscheme://v6a.ip]zscheme://]v6a.ip[zscheme://]v6a.ipzscheme://v6a.ip[zscheme://prefix.[v6a.ipzscheme://v6a.ip].suffixzscheme://prefix]v6a.ip[suffixzscheme://prefix]v6a.ipzscheme://v6a.ip[suffix)rKrLrirjrr�s&rA�test_invalid_bracketed_hosts�-UrlParseTestCase.test_invalid_bracketed_hostsEs������*�f�l�l�&;�&;�=e�f����*�f�l�l�&;�&;�=l�m����*�f�l�l�&;�&;�=b�c����*�f�l�l�&;�&;�=_�`����*�f�l�l�&;�&;�=^�_����*�f�l�l�&;�&;�=_�`����*�f�l�l�&;�&;�=[�\����*�f�l�l�&;�&;�=t�u����*�f�l�l�&;�&;�>J�	K����*�f�l�l�&;�&;�=Z�[����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=T�U����*�f�l�l�&;�&;�=T�U����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=P�Q����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�Vrc�H�[OOQ2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2[OOQ2oUOUOQ2UOUO
Q2UOUOQ2UOUOQ2[OOQ2oUOUOQ2UOUO
Q2UOUOQ2UOUOP2[OOQ2oUOUOQ	2UOUO
Q2UOUOQ2P!)
z&scheme://user@[v6a.ip]:1234/path?queryzv6a.ip�user�/pathi�z&scheme://user@[V6a.ip]:1234/path?queryz4scheme://user@[0439:23af:2309::fae7%test]/path?queryz0439:23af:2309::fae7%testzEscheme://user@[0439:23af:2309::fae7:1234:192.0.2.146%test]/path?queryz*0439:23af:2309::fae7:1234:192.0.2.146%test)	rirjrrJr`r^rYrar�)rMr1r2�p3�p4s&    rA�test_splitting_bracketed_hosts�/UrlParseTestCase.test_splitting_bracketed_hostsrs���
�\�\�
"�
"�#K�
L��������h�/�������f�-�������'�*�������$�'�
�\�\�
"�
"�#K�
L��������h�/�������f�-�������'�*�������$�'�
�\�\�
"�
"�#Y�
Z��������&A�B�������f�-�������'�*��
�
�b�g�g�t�$�
�\�\�
"�
"�#j�
k��������&R�S�������f�-�������'�*rc��Qo[OOQ2oUO[U29^tt^2UO
PPP2[OO
Q2oUO[U29^tt^2UO
PPP2P!)%fhKd9h)%fhP!9h)z3Port could not be cast to integer value as 'oracle'z%http://Server=sde; Service=sde:oracle)rirjrr5rLrar)rM�messager1r2s&   rA�!test_port_casting_failure_message�2UrlParseTestCase.test_port_casting_failure_message�s���G��
�\�\�
"�
"�#J�
K��
�
#�
#�J��
8�
8��G�G�9��\�\�
"�
"�#J�
K��
�
#�
#�J��
8�
8��G�G�9�
8�	9�
8��9�
8�
8�s$�
B*�
B=�*B:	�3B:	�=C	�C	c��[OOQ2oUOUOQ2UOUO
Q2UOUOQ2[OOQ2oUOUOQ2UOUO
Q2UOUOP2[OOQP	Q5oUOUOQ2UOUO
Q2UOUOP2[OOQ2oUOUOQ2UOUO
Q2UOUOQ	2[OOQ
2oUOUOQ2UOUO
Q2UOUOQ2P!)
z"tel:123-4;phone-context=+1-650-516r0z123-4zphone-context=+1-650-516ztel:+1-201-555-0123z+1-201-555-0123r7z"tel:7042;phone-context=example.com�7042zphone-context=example.comz%tel:863-1234;phone-context=+1-914-555z863-1234zphone-context=+1-914-555)rirjrrJrWrYrZ)rMr1s& rA�test_telurl_params�#UrlParseTestCase.test_telurl_params�s���
�\�\�
"�
"�#G�
H��������E�*�������'�*�������$>�?�
�\�\�
"�
"�#8�
9��������E�*�������"3�4�������B�'�
�\�\�
"�
"�#8�$�
"�
O��������E�*�������"3�4�������D�)�
�\�\�
"�
"�#G�
H��������E�*�������&�)�������$?�@�
�\�\�
"�
"�#J�
K��������E�*�������*�-�������$>�?rc��[OO[OO2oUO	Q[U22P!)�Quoter)rirj�_Quoter�_ALWAYS_SAFE�assertIn�repr)rM�quoters& rA�test_Quoter_repr�!UrlParseTestCase.test_Quoter_repr�s2�����%�%�f�l�l�&?�&?�@���
�
�h��V��-rc�D�[OO2P!r;)rirj�clear_cacher�s&rA�"test_clear_cache_for_code_coverage�3UrlParseTestCase.test_clear_cache_for_code_coverage�s����� � �"rc��UO[29^tt^2[OOoPPP2P!)%fhP!9h)z5Test that urllib.parse.__getattr__() fails correctly.)rK�AttributeErrorrirj�this_does_not_exist)rM�unuseds& rA�!test_urllib_parse_getattr_failure�2UrlParseTestCase.test_urllib_parse_getattr_failure�s1��
�
�
�~�
.�
.��\�\�5�5�F�/�
.�
.�
.�s�A�A	�
A	c�f�,o.Qlo[[O2FDaoUOQ2%fV27cJ"[	[OU2o[	UQP2Q6XfJPUOU2Jc	UO
[OOU2P!)�	splitattrr<r
zurllib.parse>�unwrap�splittag�to_bytesr[�	splithost�	splitport�	splittype�	splituser�
ResultBase�
splitnport�
splitquery�
splitvaluerQ�splitpasswd)�dirrirj�
startswithry�append�assertCountEqual�__all__)rMr��undocumented�namer�s&    rA�test_all�UrlParseTestCase.test_all�s�����
������%�D����s�#�#�t�';���V�\�\�4�0�F��v�|�T�2�n�D�����%�&�	
���f�l�l�2�2�H�=rc��QoSTt.tFDoQO[U22jJ	oo[[[	]�[
O22Tt,tFDgo[OU2%fJ!U[[OU2O22*%fJ]V!7fJeUMJi	ooUOQU2UOQU2[OOQ2UO[ 29^tt^2[OOQ2PPP2QFD�oQ	FD�oSFD�oQOVVOU22oUO#UQO[U22Q59^tt^2UO[ 29^tt^2[OOU2PPP2PPP2J�	J�	J�	P!ttohttoh)%fhK�9h)%fhKC9h)%fhJ�9h)
z/:#?@z{:04X}u℀u#uhttp://プ:80uhttp://プ︓80z{}://{}/path)rN�char)r#rArs)znetloc{}false.netloczn{}user@netloc)�format�ord�map�chrr;�sys�
maxunicode�unicodedata�
decompositionrrPrKrirjrrKrLr�)rM�
illegal_charsr�	hex_chars�denorm_charsrWrXrNs&       rA�test_urlsplit_normalization�,UrlParseTestCase.test_urlsplit_normalization�s��� �
�6C�D�m��X�_�_�S��V�,�m�	�D��3��c�3�>�>� :�;�
�;�!��(�(��+�
��S��!:�!:�1�!=�!C�!C�!E�F�F�F�
��&�
�A�;�	�
�	
�
�
�h��-��
�
�h��-�	�����6�7�
�
�
�z�
*�
*��L�L�!�!�"?�@�+�/�F�D��%�A�(�/�/��
�
�a�8H�I�C����#�H�O�O�C��F�4K��L�L�!�.�.�z�:�:�"�L�L�1�1�#�6�;�M�L�&�E�/��#E��
�+�
*��;�:��M�L�L�s_�%H� H�<7H�8H�H�( H�5I� H.�3I�H+	�$H+	�.H>�7H>�9I�I�
Ir<r;)FT))�path/to/file)NNr�NNN)NNr�NN)�
/path/to/file)NNr�NNN)NNr�NN)�//path/to/file)NrY�/to/fileNNN)NrYr�NN)z////path/to/file)Nr�r�NNN)Nr�r�NN)z/////path/to/file)Nr��///path/to/fileNNN)Nr�r�NN)zscheme:path/to/file)rWNr�NNN)rWNr�NN)�scheme:/path/to/file)rWNr�NNN)rWNr�NN)zscheme://path/to/file)rWrYr�NNN)rWrYr�NN)zscheme:////path/to/file)rWr�r�NNN)rWr�r�NN)zscheme://///path/to/file)rWr�r�NNN)rWr�r�NN)zfile:tmp/junk.txt)�fileN�tmp/junk.txtNNN)r�Nr�NN)�file:///tmp/junk.txt)r�r��
/tmp/junk.txtNNN)r�r�r�NN)zfile:////tmp/junk.txt)r�r��//tmp/junk.txtNNN)r�r�r�NN)zfile://///tmp/junk.txt)r�r��///tmp/junk.txtNNN)r�r�r�NN)zhttp:tmp/junk.txt)r#Nr�NNN)r#Nr�NN)zhttp://example.com/tmp/junk.txt)r#rVr�NNN)r#rVr�NN)z http:///example.com/tmp/junk.txt)r#r��/example.com/tmp/junk.txtNNN)r#r�r�NN)z!http:////example.com/tmp/junk.txt)r#r��//example.com/tmp/junk.txtNNN)r#r�r�NN)zimap://mail.python.org/mbox1)�imap�mail.python.org�/mbox1NNN)r�r�r�NN)z1mms://wms.sys.hinet.net/cts/Drama/09006251100.asf)�mms�wms.sys.hinet.net�/cts/Drama/09006251100.asfNNN)r�r�r�NN)znfs://server/path/to/file.txt)�nfs�server�/path/to/file.txtNNN)r�r�r�NN)z0svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/)�svn+ssh�svn.zope.org�/repos/main/ZConfig/trunk/NNN)r�r�r�NN)z)git+ssh://git@github.com/user/project.git)�git+ssh�git@github.com�/user/project.gitNNN)r�r�r�NN)zEitms-services://?action=download-manifest&url=https://example.com/app)�
itms-servicesr�r�N�4action=download-manifest&url=https://example.com/appN)r�r�r�r�N)�+scheme:path/to/file)NNr�NNN)NNr�NN)�sch_me:path/to/file)NNr�NNN)NNr�NN)�schème:path/to/file)NNr�NNN)NNr�NN))r�r�)Nr�r�NNN)Nr�r�NN)zscheme:///path/to/filer�)rWr�r�NNN)rWr�r�NN)zfile:/tmp/junk.txtr�)r�Nr�NNN)r�Nr�NN)zhttp:/tmp/junk.txtzhttp:///tmp/junk.txt)r#Nr�NNN)r#Nr�NN)zhttps:/tmp/junk.txtzhttps:///tmp/junk.txt)rANr�NNN)rANr�NN)r#rA))z://www.python.org)r%r�NNN)r%r�NN)z://www.python.org#abc)r%r�NN�abc)r%r�Nr�)z://www.python.org?q=abc)r%r�N�q=abcN)r%r�r�N)z://www.python.org/#abc)r%r�NNr�)r%r�Nr�)z://a/b/c/d;p?q#f)rz/b/c/dr�qr�)rz/b/c/d;pr�r�)�Pythonz./Pythonrnzx://yzx:/yzx:/r�))z http://Test.python.org:5432/foo/�test.python.org�8)zhttp://12.34.56.78:5432/foo/�12.34.56.78r�)zhttp://[::1]:5432/foo/�::1r�)zhttp://[dead:beef::1]:5432/foo/�dead:beef::1r�)zhttp://[dead:beef::]:5432/foo/�dead:beef::r�)z:http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:5432/foo/�'dead:beef:cafe:5417:affe:8fa3:deaf:feedr�)z http://[::12.34.56.78]:5432/foo/�
::12.34.56.78r�)z%http://[::ffff:12.34.56.78]:5432/foo/�::ffff:12.34.56.78r�)zhttp://Test.python.org/foo/r�N)zhttp://12.34.56.78/foo/r�N)zhttp://[::1]/foo/r�N)zhttp://[dead:beef::1]/foo/r�N)zhttp://[dead:beef::]/foo/r�N)z5http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/r�N)zhttp://[::12.34.56.78]/foo/r�N)z http://[::ffff:12.34.56.78]/foo/r�N)zhttp://Test.python.org:/foo/r�N)zhttp://12.34.56.78:/foo/r�N)zhttp://[::1]:/foo/r�N)zhttp://[dead:beef::1]:/foo/r�N)zhttp://[dead:beef::]:/foo/r�N)z6http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:/foo/r�N)zhttp://[::12.34.56.78]:/foo/r�N)z!http://[::ffff:12.34.56.78]:/foo/r�N)zhttp://::12.34.56.78]/zhttp://[::1/foo/zftp://[::1/foo/bad]/badzhttp://[::1/foo/bad]/badzhttp://[::ffff:12.34.56.78)zhttp://python.org#fragr�r)r�r�N)zhttp://python.org/#frag�http://python.org/r)r�r�N)zhttp://python.org/?q#frag�http://python.org/?qr)r�r�N)zhttp://python.org/p#fragzhttp://python.org/pr)�http://python.org/p?qr�N)zhttp://a/b/c;p?q#f�http://a/b/c;p?qr�)zhttp://a/b/c;p?q#r�r�)r�r�N)zhttp://a/b/c;p?#fzhttp://a/b/c;p?r�)zhttp://a/b/c;p#fzhttp://a/b/c;pr�)zhttp://a/b/c;?q#fzhttp://a/b/c;?qr�)zhttp://a/b/c?q#fzhttp://a/b/c?qr�)zhttp:///b/c;p?q#fzhttp:///b/c;p?qr�)zhttp:b/c;p?q#fzhttp:b/c;p?qr�)z
http:;?q#fzhttp:;?qr�)z	http:?q#fzhttp:?qr�)z
//a/b/c;p?q#fz//a/b/c;p?qr�)z://a/b/c;p?q#fz://a/b/c;p?qr�)	r�z1.5z-1�0x10z-0�1_1z 1z1 u६)r��+�-�0zhttp&u६http)
)z
http:#fragrYr)z//example.net#fragrYr)zindex.html#fragrYr)z	;a=b#fragrZr)z	?a=b#fragr[r)z#fragrYr)z	abc#@fragrY�@frag)z//abc#@fragrYr�)z//abc:80#@fragrYr�)z//abc#@frag:80rYz@frag:80�rr�rr�rr�rr�rrr��rr!�rr"�rr#�rr$)Nr	r
rrrSrHr�subTests�parse_qsl_test_casesrr�parse_qs_test_casesrvrr�r�r�r�r�r�r�r�rr
rrr�r�rr r6r=rGrirjrrrJrOrSrWrarerjrortrr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr r&r*r-r3r6r=rArErNrRrXror~r
rrs@rAr5r5ls�����3�268�p
���m�%9�:�8�;�8�
���m�%8�9�8�:�8�
���g�}�-����(�Z+�Z�v1�wZ�.�x1�
���g�}�-����-�0
��,7�-�.�.7�
���g�}�-����h� 1�2����(�+��"1�#�3�.�&1�O��O�&
���g�}�-����c�i�j�O�k�.�O�"A�`H�%J�Z7B�r`=�DF0�P
���g�}�-����)�,��@Q�A�.�BQ�
���g�}�-����m�&.�/�J�
/�.�J�

���g�}�-����'�C�<�E�>�I�B�G�D�
�/��5�
�/��6�;�9�:�9�7�9�7�9�3�+�)�1�3�/*
��2
���'��7�0�8�3�.�60� M�[�z#t�J9D�v
���g�}�-����g���� 5� 5�v�|�|�7L�7L�M�N����f�Z�[��\�O�.��
���g�}�-����g���� 5� 5�v�|�|�7L�7L�M�N����h� H�I�$�J�O�.�$�
���'��7�'*�8�'*�RU�
���'��7�H�8�H�*
���'��7�H�8�H�<D�
���'��7�X�8�X�.
���f�v�|�|�4�4�f�l�l�6K�6K�L�M�N�N�N� 
���.�1
��
���f�v�|�|�4�4�f�l�l�6K�6K�L�M�<�N��<�0L�08�8^�)�4�.4� _�B7�7�H�

���m�
�"�I�
�2�J�
�c�C�5�\�"�
�S�5�'�3���8�9�
��s�C�j�)�*�
�2�J�
�B�K�
�t�d�V�n�%�
�d�V�H�d�V�H�=�>�
�$��t��-�.�&
��/��/�
���m�
�"�I�
�2�J�
�j�\�"�
�\�<�8�9�
��Z�0�1�
�2�J�
�B�K�
�|�n�%�
�n�n�=�>�
�,��5�6�&
��/��/�U�
R�=�.�;�	5�&�R�

2�+W�Z+�*�@�4.�#�6�
>� 7�7rr5c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
s\O"QQ2Q2sQsUsP!)�
Utility_Testsi�z=Testcase to test the various utility functions in the urllib.c�,�[OOoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2P!)
ztype:opaquestring�opaquestring�
:opaquestringztype:ztype:opaque:string)�typer�)Nr�)Nr�)r�r�)r�z
opaque:string)rirj�
_splittyperJ)rMras& rA�test_splittype�Utility_Tests.test_splittype�s����L�L�+�+�	�����#6�7�9Q�R�����>�2�4J�K�����?�3�5L�M�����7�+�\�:�����#7�8�:S�Trc��[OOoUOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ	2Q2P!)z%//www.example.org:80/foo/bar/baz.html�/foo/bar/baz.htmlz//www.example.org:80z//127.0.0.1#@host.comz//127.0.0.1#@host.com:80z//127.0.0.1:80#@host.comz///filez//example.net/file;z//example.net/file?z//example.net/file#)�www.example.org:80r�)r�r�)Nr�)�	127.0.0.1�/#@host.com)r�z/#@host.com:80)z127.0.0.1:80r�)r�z/file)�example.netz/file;)r�z/file?)r�z/file#)rirj�
_splithostrJ)rMr_s& rA�test_splithost�Utility_Tests.test_splithost�s���L�L�+�+�	�����#J�K�D�	F�����#9�:�3�	5�����#6�7�4�	6�	
����#:�;�5�	7�����#=�>�8�	:�����#=�>�8�	:�	
����9�-�&�	(�	
����#8�9�2�	4�����#8�9�2�	4�����#8�9�2�	4rc�,�[OOoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2P!)
r(�www.python.org:080z@www.python.org:080z
User:Pass@r,)�	User:Passr�)r�r�)Nr�)r�r�)zUser@example.com:Passr�)rirj�
_splituserrJ)rMrbs& rA�test_splituser�Utility_Tests.test_splitusers����L�L�+�+�	�����#A�B�<�	>�����#8�9�3�	5�����#7�8�5�	7�����<�0�*�	,�����#M�N�H�	Jrc��[OOoUOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ	2Q2UOUQ
2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2P!)zuser:abr9zuser:a
bzuser:a	bzuser:a
bzuser:abzuser:abzuser:a:bzuser:a bz	user 2:abz
user+1:a+bzuser:z:ab)r9�ab)r9za
b)r9za	b)r9za
b)r9zab)r9zab)r9za:b)r9r)zuser 2r�)zuser+1za+b)r9r�)r9N)r�r�)rirj�_splitpasswdrJ)rMrgs& rA�test_splitpasswd�Utility_Tests.test_splitpasswds+���l�l�/�/������Y�/��@�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����Z�0�/�B�����Z�0�/�B�����[�1�3C�D�����\�2�4E�F�����W�-�|�<�����V�,�n�=�����U�+�Z�8rc��[OOoUOUQ2Q2UOUQ2Q	2UOUQ2Q	2UOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q
2UOUQ2Q2P!)�	parrot:88�parrot�parrot:r��
parrot:cheesez[::1]:88�[::1]z:88)r��88�r�N)r�N)r�N)r�r�)r�N)r�r�)rirj�
_splitportrJ)rMr`s& rA�test_splitport�Utility_Tests.test_splitport-s����L�L�+�+�	�����;�/�1A�B�����8�,�.>�?�����9�-�/?�@�����;�/�1D�E�����?�3�5L�M�����:�.��@�����7�+�_�=�����5�)�:�6rc�$�[OOoUOUQ2Q2UOUQ2Q2UOUQ]72Q2UOUQ2Q2UOUQ]72Q2UOUQ2Q	2UOUQ]72Q
2UOUQ2Q2UOUQ]72Q2UOUQ2Q2P!)r�r�r�r�r�z
parrot: +1_0 )r��X)r����)r��7)r�r�)r�r�r�)rirj�_splitnportrJ)rMrds& rA�test_splitnport�Utility_Tests.test_splitnport8s����\�\�-�-�
�����K�0�.�A�����H�-�~�>�����H�b�1�>�B�����I�.��?�����I�r�2�N�C�����K�0�2C�D�����K��4�6G�H�����O�4�6F�G�����O�R�8�:J�K�����O�4�6F�Grc��[OOoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2P!)�http://python.org/fake?foo=bar�http://python.org/fakezhttp://python.org/fake?foo=bar?z?foo=bar)r��foo=bar)r�r�)r�N)r�r�)rirj�_splitqueryrJ)rMres& rA�test_splitquery�Utility_Tests.test_splitqueryEsu���\�\�-�-�
�����$D�E�>�	@�����$E�F�?�	A�����$<�=�9�	;�����J�/��Arc�,�[OOoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2P!)
�http://example.com?foo=bar#baz�http://example.com?foo=barzhttp://example.com?foo=bar#z#bazz"http://example.com?foo=bar#baz#boo)r��baz)r�r�)r�r�)r�N)r��boo)rirj�	_splittagrJ)rMr]s& rA�
test_splittag�Utility_Tests.test_splittagQs����<�<�)�)������"B�C�>�	@�����"?�@�;�	=�����&�)�;�7�����">�?�=�	?�����"F�G�B�	Drc��[OOoUOUQ2QQQ,12UOUQ2QP,12UOUQ2PQQ,12UOUQ2Q,12P!)z/path;attr1=value1;attr2=value2r:zattr1=value1zattr2=value2z/path;z;attr1=value1;attr2=value2)rirj�
_splitattrrJ)rMr[s& rA�test_splitattr�Utility_Tests.test_splitattr]s����L�L�+�+�	�����#D�E�!�N�N�#C�D�	F�����8�,�w���o�>�����#?�@��~�~�>�?�	A�����7�+�g�r�]�;rc�,�[OOoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2P!)
r�zfoo=z=bar�foobarzfoo=bar=baz)r��bar)r�r�)r�r	)rN)r�zbar=baz)rirj�_splitvaluerJ)rMrfs& rA�test_splitvalue�Utility_Tests.test_splitvaluefs~���\�\�-�-�
�����I�.��?�����F�+�[�9�����F�+�[�9�����H�-�/?�@�����M�2�4F�Grc���[OOQ2oUOUQ2UO	[
[OOQ2P!)zhttp://www.python.orguhttp://www.python.org/mediæval)rirj�	_to_bytesrJrK�UnicodeErrorr�s& rA�
test_to_bytes�Utility_Tests.test_to_bytespsH�����'�'�(?�@������!8�9����,����(>�(>�?�	Ar�wrapped_urlc�j�[OOU2oUOUQ2P!)�scheme://host/path)rirjr\rJ)rMrrNs&& rA�test_unwrap�Utility_Tests.test_unwrapvs)���l�l�!�!�+�.������2�3rr<)z<URL:scheme://host/path>z<scheme://host/path>zURL:scheme://host/pathr)r	r
rr�__doc__r�r�r�r�r�r�r�rrrrrr�rr
rrs@rAr�r��so����G�U�4�:J�9�$	7�H�
B�
D�<�H�A�
���m�K�L�4�L�4rr�c�d`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sUsP!)�DeprecationTesti~c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjrarJr�warning�rMr�s& rA�test_splittype_deprecation�*DeprecationTest.test_splittype_deprecation�T��
�
�
�0�
1�
1�R��L�L�"�"�2�&�2�����R�Z�Z��?�	@�2�
1��� A.�.A>	�7A>	c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjr_rJrrrs& rA�test_splithost_deprecation�*DeprecationTest.test_splithost_deprecation�rr c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjrbrJrrrs& rA�test_splituser_deprecation�*DeprecationTest.test_splituser_deprecation�rr c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjrgrJrrrs& rA�test_splitpasswd_deprecation�,DeprecationTest.test_splitpasswd_deprecation�sT��
�
�
�0�
1�
1�R��L�L�$�$�R�(�2�����R�Z�Z��?�	@�2�
1�r c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjr`rJrrrs& rA�test_splitport_deprecation�*DeprecationTest.test_splitport_deprecation�rr c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjrdrJrrrs& rA�test_splitnport_deprecation�+DeprecationTest.test_splitnport_deprecation��T��
�
�
�0�
1�
1�R��L�L�#�#�B�'�2�����R�Z�Z��?�	@�2�
1�r c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjrerJrrrs& rA�test_splitquery_deprecation�+DeprecationTest.test_splitquery_deprecation�r0r c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjr]rJrrrs& rA�test_splittag_deprecation�)DeprecationTest.test_splittag_deprecation�sT��
�
�
�0�
1�
1�R��L�L�!�!�"�%�2�����R�Z�Z��?�	@�2�
1�r c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlsplit() instead)r�r�rirjr[rJrrrs& rA�test_splitattr_deprecation�*DeprecationTest.test_splitattr_deprecation�rr c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�zWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() instead)r�r�rirjrfrJrrrs& rA�test_splitvalue_deprecation�+DeprecationTest.test_splitvalue_deprecation�sU��
�
�
�0�
1�
1�R��L�L�#�#�B�'�2�����R�Z�Z��@�	A�2�
1�r c��UO[29^tt^2o[OO	P2PPP2UO[
WO2Q2P!)%fhK79h)r�z/urllib.parse.to_bytes() is deprecated as of 3.8)r�r�rirjr^rJrrrs& rA�test_to_bytes_deprecation�)DeprecationTest.test_to_bytes_deprecation�sR��
�
�
�0�
1�
1�R��L�L�!�!�"�%�2�����R�Z�Z��J�	L�2�
1�r r<)r	r
rrrr"r%r(r+r.r2r5r8r;r>r
rrs@rArr~sM����@�@�@�@�@�@�@�@�@�A�L�Lrrc�2�UeP!UOQ2!)NrM)rC)�ss&rAr}r}�s���y���8�8�G��rc�Z�[9PIc,QU2DMJ	3!QU22!)c3�D�SF �Do[U2w�	J	P!3hr;)r})r>r?s& rArB�tuple_encode.<locals>.<genexpr>�s������1��A����s� )rI)rbs&rAr~r~�s&���5�*��*�5�5�*�5�*��*�*�*r�__main__r�)r�r)rr�)rr
)rrr�)rr)rrr�r�r�r�)rr)rr)rr)rr)rrr�)rr)rr r�r�r�r�)r&r)rr()r*r)rr,)r-r.)r/r/)r0r1)r2r3)r�r�rwry�unittest�urllib.parserirrrrr�testrr�r�r�rr�r��TestCaser5r�rr}r~r	�mainr<rrA�<module>rKs����
�
����N�N��%��#��#����
)���H�)��"�I�)�
�2�J�)�	�8�*��	)�

�I�;��)�	�9�+��
)�
�I�;��)�
�|�n��)�����)���Z�(�)�)��>�"�#�)��j�\��)��\�<�0�1�)���Z�(�)�)�	�"�I�)� 
�2�J�!)�"�B�K�#)�$
�J�<��%)�&�[�M��')�(
�K�=��))�*�[�M��+)�,��� �-)�.�.�!�"�/)�0�,��-�.�1)�2�$�%�&�3)�4
�|�n��5)�6�n�n�5�6�7)�8�,��-�.�9)�:�k�]��;)�<�'�(�)�=)�>
�}�o��?)�@�*�+�,�A)�D�'�(�)�E)�F�)�*�+�G)�H�%�&�'�I)�J�6�7�8�K)�L�2�3�4�M)�N�&�'�(�O)�P�$�%�&�Q)��\*���H�*��"�I�*�
�2�J�*�	�2��t�*��	*�

�B���;��*�	�3���+��
*�
�C�"��;��*�
�s�U�G�n��*�������*���s�e�S�3�%�(�)�*��3��	�"�#�*��c�C�5�\��*��S�5�'�3���0�1�*���s�C�j�!�"�*�	�"�I�*� 
�2�J�!*�"�B�K�#*�$
�C�#��<��%*�&�S�4�&�M��'*�(
�D�3�%�=��)*�*�T�C�5�M��+*�,��v�h�� �-*�.�&�4�&�!�"�/*�0�$����t�f�-�.�1*�2�D�8�*�%�&�3*�4
�t�d�V�n��5*�6�d�V�H�d�V�H�5�6�7*�8�$��t��%�&�9*�:�d�S�E�]��;*�<�S�;�-�(�)�=*�>
�u�t�f�o��?*�@�d�\�?�+�,�A*�B��0�1�2�3�C*�F�X��x�(�)�G*�H�x�&��*�+�I*�J��H�:�&�'�K*�L�K�+��7�8�M*�N��k�]�3�4�O*�P�G�g�Y�'�(�Q*�R�'�G�9�%�&�S*��Xw7�x�(�(�w7�r3V4�H�%�%�V4�rKL�h�'�'�KL�\�
+��z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit