Edit File: cookiejar.cpython-36.opt-2.pyc
3 48er+�����������������@���s&��d�dddddddgZ�dd lZdd lZdd lZdd lZdd lZdd lZydd lZ W�n�e k rl���dd lZ Y�nX�dd lZ dd lmZ�dZd add ��Zee jj�ZdZdd��ZdZdd��ZdddddddgZdddddd d!d"d#d$d%d&gZg�ZxeD�]Zejej ����q�W�dtd'd(�Z!dud)d*�Z"d d d d d+�Z#ej$d,ej%�Z&d-d.��Z'd/d0��Z(ej$d1ej%�Z)ej$d2ej*ej%B��Z+ej$d3ej,ej%B��Z-d4d5��Z.ej$d6ej,ej%B��Z/d7d8��Z0d9d:��Z1ej$d;�Z2ej$d<�Z3ej$d=�Z4ej$d>�Z5d?d@��Z6ej$dA�Z7dBdC��Z8dDdE��Z9dFdG��Z:ej$dHej%�Z;dIdJ��Z<dKdL��Z=dMdN��Z>dOdP��Z?ej$dQej%�Z@dRdS��ZAdTdU��ZBdVdW��ZCdXdY��ZDdZZEej$d[�ZFd\d]��ZGd^d_��ZHd`da��ZIdbdc��ZJG�ddd���d��ZKG�ded��d�ZLG�dfd��deL�ZMdgdh��ZNdidj��ZOG�dkdl��dl�ZPG�dmd��d�ZQG�dnd��deR�ZSG�dod��deQ�ZTdpdq��ZUG�drd��deT�ZVG�dsd��deT�ZWd S�)v�Cookie� CookieJar�CookiePolicy�DefaultCookiePolicy� FileCookieJar�LWPCookieJar� LoadError�MozillaCookieJar�����N)�timegmFc��������������G���s(���t�sd�S�tsdd�l}|jd�atj�|���S�)Nr ���zhttp.cookiejar)�debug�logger�loggingZ getLogger)�argsr �����r����&/usr/lib64/python3.6/http/cookiejar.py�_debug.���s���� r���zQa filename was not supplied (nor was the CookieJar instance initialised with one)c��������������C���sJ���dd�l�}�dd�l}dd�l}|�j��}|jd�|��|j��}|jd|�dd��d�S�)Nr ���zhttp.cookiejar bug! %s����)� stacklevel)�io�warnings� traceback�StringIO� print_exc�getvalue�warn)r���r���r����f�msgr���r���r����_warn_unhandled_exception<���s ����r���i���c�������������C���s����|�d�d��\}}}}}}|t�kr�d|��ko2dkn��r�d|��koJdkn��r�d|��kobdkn��r�d|��kozdkn��r�d|��ko�dkn��r�t|��S�d�S�d�S�) N����������������r ��������;����=���)� EPOCH_YEARr ���)�tt�year�monthZmday�hour�min�secr���r���r����_timegmK���s ����8Hr,���ZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc�������������C���s@���|�d�krt�j�j��}nt�j�j|��}d|j|j|j|j|j|jf�S�)Nz%04d-%02d-%02d %02d:%02d:%02dZ) �datetime�utcnow�utcfromtimestampr'���r(����dayr)����minute�second)�t�dtr���r���r���� time2isozY���s ����r5���c�������������C���sR���|�d�krt�j�j��}nt�j�j|��}dt|j���|jt|jd��|j|j |j |jf�S�)Nz#%s, %02d-%s-%04d %02d:%02d:%02d GMTr���)r-���r.���r/����DAYSZweekdayr0����MONTHSr(���r'���r)���r1���r2���)r3���r4���r���r���r���� time2netscapel���s����r8���)ZGMT�UTCZUT�Zz^([-+])?(\d\d?):?(\d\d)?$c�������������C���sj���d�}|�t�krd}nTtj|��}|rfdt|jd���}|jd�rR|dt|jd����}|jd�dkrf|�}|S�)Nr ���i��r��������<���r����-)� UTC_ZONES�TIMEZONE_RE�search�int�group)�tz�offset�mr���r���r����offset_from_tz_string����s���� rF���c������� ������C���s���t�|�}|tjkrd�S�ytj|j���d�}W�nX�tk r����yt�|�}W�n�tk r\���d�S�X�d|��kopdkn��r||}nd�S�Y�nX�|d�kr�d}|d�kr�d}|d�kr�d}t�|��}�t�|�}t�|�}t�|�}|dk��r0tjtj���d�}|d�} |} ||�| �}| | �} t | �dk�r0| dk�r(|d�}n|d�}t |||�||||f�}|d�k �r�|d�k�r^d}|j��}t|�}|d�k�r|d�S�||�}|S�)Nr���r ���r ���i����d����2���r9���) rA���r-���ZMAXYEAR�MONTHS_LOWER�index�lower� ValueError�timeZ localtime�absr,����upperrF���) r0����mon�yr�hrr*���r+���rC���ZimonZcur_yrrE���Ztmpr3���rD���r���r���r���� _str2time����sV���� ��� � rS���zV^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$z+^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*a���^ (\d\d?) # day (?:\s+|[-\/]) (\w+) # month (?:\s+|[-\/]) (\d+) # year (?: (?:\s+|:) # separator before clock (\d\d?):(\d\d) # hour:min (?::(\d\d))? # optional seconds )? # optional clock \s* ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone \s* (?:\(\w+\))? # ASCII representation of timezone in parens. \s*$c�������������C���s����t�j|��}|rl|j��}tj|d�j���d�}t|d��|t|d��t|d��t|d��t|d��f}t|�S�|�j ��}�t jd|�d�}�d�gd�\}}}}}} } tj|��}|d�k r�|j��\}}}}}} } nd�S�t |||||| | �S�) Nr���r���r ���r;�����������������)�STRICT_DATE_REr@����groupsrI���rJ���rK���rA����floatr,����lstrip� WEEKDAY_RE�sub�LOOSE_HTTP_DATE_RErS���)�textrE����grP���r&���r0���rQ���rR���r*���r+���rC���r���r���r���� http2time����s���� " ra���a���^ (\d{4}) # year [-\/]? (\d\d?) # numerical month [-\/]? (\d\d?) # day (?: (?:\s+|[-:Tt]) # separator before clock (\d\d?):?(\d\d) # hour:min (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional) )? # optional clock \s* ([-+]?\d\d?:?(:?\d\d)? |Z|z)? # timezone (Z is "zero meridian", i.e. GMT) \s*$c������� ������C���sd���|�j���}�d�gd�\}}}}}}}tj|��}|d�k rL|j��\}}}}}}}} nd�S�t|||||||�S�)NrW���)r[����ISO_DATE_REr@���rY���rS���) r_���r0���rP���rQ���rR���r*���r+���rC���rE����_r���r���r����iso2time'��s���� rd���c�������������C���s*���|�j�d�\}}|�jd�|��|�j|d����S�)Nr ���)�span�string)�match�start�endr���r���r���� unmatchedH��s����rj���z^\s*([^=\s;,]+)z&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"z^\s*=\s*([^\s;,]*)z\\(.)c������� ������C���s��g�}�x�|�D�]�}|}g�}x�|r�t�j|�}|r�t|�}|jd�}tj|�}|rlt|�}|jd�}tjd|�}n.tj|�}|r�t|�}|jd�}|j��}nd�}|j ||f��q|j ��jd�r�|j ��dd���}|r�|j |��g�}qtj dd|�\}} |}qW�|r|j |��qW�|S�)Nr���z\1�,z^[=\s;]*rV���)�HEADER_TOKEN_REr@���rj���rB����HEADER_QUOTED_VALUE_RE�HEADER_ESCAPE_REr]����HEADER_VALUE_RE�rstrip�appendr[���� startswith�re�subn) Z header_values�resultr_���Z orig_text�pairsrE����name�valueZnon_junkZ nr_junk_charsr���r���r����split_header_wordsQ��s>����. � �ry���z([\"\\])c�������������C���s����g�}xt|�D�]l}g�}xN|D�]F\}}|d�k rTt�jd|�sHtjd|�}d|�}d||f�}|j|��qW�|r |jdj|���q W�dj|�S�)Nz^\w+$z\\\1z"%s"z%s=%sz; z, )rs���r@����HEADER_JOIN_ESCAPE_REr]���rq����join)Zlists�headersrv����attr�k�vr���r���r����join_header_words���s���� �r����c�������������C���s0���|�j�d�r|�dd���}�|�jd�r,|�d�d��}�|�S�)N�"r������)rr����endswith)r_���r���r���r����strip_quotes���s ���� r����c�������������C���s��d}g�}x�|�D�]�}g�}d}x�t�|jd ��D�]�\}}|j��}|jd �\}} } |j��}|sd|dkr*P�nq*| rp| j��nd�} |dkr�|j��}||kr�|}|dkr�| d�k r�t| �} d}n|dkr�| d�k r�tt| ��} |j|| f��q*W�|r|��s�|jd��|j|��qW�|S�)N�expires�domain�path�secure�version�port�max-ageF�;�=r ���T�0)r����r����r����r����r����r����r����)r����r����)� enumerate�split�strip� partitionrK���r����ra���rq���)Z ns_headersZknown_attrsru���Z ns_headerrv����version_setZiiZparam�key�sep�val�lcr���r���r����parse_ns_headers���s@����� r����z\.\d+$c�������������C���s:���t�j|��rdS�|�dkrdS�|�d�dks2|�d�dkr6dS�dS�)NFrV���r ����.r���Tr����)�IPV4_REr@���)r_���r���r���r����is_HDN��s���� r����c�������������C���sl���|�j���}�|j���}|�|krdS�t|��s(dS�|�j|�}|dksB|dkrFdS�|jd�sTdS�t|dd����shdS�dS�)NTFr���r ���r����r����)rK���r�����rfindrr���)�A�B�ir���r���r����domain_match��s���� r����c�������������C���s���t�j|��rdS�dS�)NFT)r����r@���)r_���r���r���r����liberal_is_HDNB��s���� r����c�������������C���sb���|�j���}�|j���}t|��ot|�s0|�|kr,dS�dS�|jd�}|rL|�j|�rLdS�|�r^|�|kr^dS�dS�)NTFr����)rK���r����rr���r����)r����r�����initial_dotr���r���r����user_domain_matchL��s���� r����z:\d+$c�������������C���sB���|�j���}tjj|�d�}|dkr,|�jdd�}tjd|d�}|j��S�)Nr���rV���ZHost)�get_full_url�urllib�parseZurlparseZ get_header�cut_port_rer]���rK���)�request�url�hostr���r���r����request_hosta��s����r����c�������������C���s6���t�|���}}|jd�dkr.tj|��r.|d�}||fS�)Nr����r���z.localr����)r�����findr����r@���)r�����erhn�req_hostr���r���r����eff_request_hostq��s����r����c�������������C���s4���|�j���}tjj|�}t|j�}|jd�s0d|�}|S�)N�/)r����r����r����Zurlsplit�escape_pathr����rr���)r����r�����partsr����r���r���r����request_path|��s���� r����c�������������C���s^���|�j�}|jd�}|dkrV||d�d���}yt|��W�qZ�tk rR���td|��d�S�X�nt}|S�)N�:r ���r���znonnumeric port: '%s')r����r����rA���rL���r����DEFAULT_HTTP_PORT)r����r����r����r����r���r���r����request_port���s���� r����z%/;:@&=+$,!~*'()z%([0-9a-fA-F][0-9a-fA-F])c�������������C���s���d|�j�d�j���S�)Nz%%%sr���)rB���rO���)rg���r���r���r����uppercase_escaped_char���s����r����c�������������C���s���t�jj|�t�}�tjt|��}�|�S�)N)r����r����Zquote�HTTP_PATH_SAFE�ESCAPED_CHAR_REr]���r����)r����r���r���r���r�������s���� r����c�������������C���sP���|�j�d�}|dkrL|�|d�d���}|j�d�}t|��rL|dksD|dkrLd|�S�|�S�)Nr����r ���r���Zlocal)r����r����)�hr�����br���r���r����reach���s���� r����c�������������C���s$���t�|��}t|t|�j��sdS�dS�d�S�)NTF)r����r����r����Zorigin_req_host)r����r����r���r���r����is_third_party���s���� r����c���������������@���sJ���e�Zd�Zddd�Zdd��Zddd�Zd d ��Zddd�Zd d��Zdd��Z dS�)r���Fc�������������C���s����|d�k rt�|�}|d�k r$t�t|��}|d�kr<|dkr<td��||�_||�_||�_||�_||�_|j��|�_ ||�_ ||�_| |�_| |�_ ||�_||�_| |�_||�_||�_||�_tj|�|�_d�S�)NTz-if port is None, port_specified must be false)rA���rZ���rL���r����rw���rx���r�����port_specifiedrK���r�����domain_specified�domain_initial_dotr�����path_specifiedr����r�����discard�comment�comment_url�rfc2109�copy�_rest)�selfr����rw���rx���r����r����r����r����r����r����r����r����r����r����r����r�����restr����r���r���r����__init__���s.���� �� zCookie.__init__c�������������C���s ���||�j�kS�)N)r����)r����rw���r���r���r����has_nonstandard_attr��s����zCookie.has_nonstandard_attrNc�������������C���s���|�j�j||�S�)N)r�����get)r����rw����defaultr���r���r����get_nonstandard_attr��s����zCookie.get_nonstandard_attrc�������������C���s���||�j�|<�d�S�)N)r����)r����rw���rx���r���r���r����set_nonstandard_attr��s����zCookie.set_nonstandard_attrc�������������C���s,���|d�krt�j���}|�jd�k r(|�j|kr(dS�dS�)NTF)rM���r����)r�����nowr���r���r���� is_expired��s �����zCookie.is_expiredc�������������C���sX���|�j�d�krd}n d|�j��}|�j|�|�j�}|�jd�k rFd|�j|�jf�}n|�j}d||f�S�)NrV���r����z%s=%sz<Cookie %s for %s>)r����r����r����rx���rw���)r�����p�limitZ namevaluer���r���r����__str__%��s���� � zCookie.__str__c�������������C���sp���g�}x,dD�]$}t�|�|�}|jd|t|�f���q W�|jdt|�j����|jdt|�j����d|�jjdj|�f�S�)Nr����rw���rx���r����r����r����r����r����r����r����r����r����r����r����r����z%s=%szrest=%sz rfc2109=%sz%s(%s)z, )r����rw���rx���r����r����r����r����r����r����r����r����r����r����r����r����)�getattrrq����reprr����r����� __class__�__name__r{���)r����r���rw���r}���r���r���r����__repr__/��s������� zCookie.__repr__)F)N)N) r����� __module__�__qualname__r����r����r����r����r����r����r����r���r���r���r���r������s��� c���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) r���c�������������C���s ���t����d�S�)N)�NotImplementedError)r�����cookier����r���r���r����set_okG��s����zCookiePolicy.set_okc�������������C���s ���t����d�S�)N)r����)r����r����r����r���r���r���� return_okP��s����zCookiePolicy.return_okc�������������C���s���dS�)NTr���)r����r����r����r���r���r����domain_return_okT��s����zCookiePolicy.domain_return_okc�������������C���s���dS�)NTr���)r����r����r����r���r���r����path_return_okY��s����zCookiePolicy.path_return_okN)r����r����r����r����r����r����r����r���r���r���r���r���>��s��� c���������������@���s����e�Zd�ZdZdZdZdZeeB�Zdddddddddeddfdd �Zd d��Z dd ��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��ZdS�)6r���r���r���rT���r ���NTFc ������� ������C���sp���||�_�||�_||�_||�_||�_||�_| |�_| |�_||�_||�_ |d�k rPt |�|�_nf�|�_|d�k rft |�}||�_d�S�)N) �netscape�rfc2965�rfc2109_as_netscape�hide_cookie2� strict_domain�strict_rfc2965_unverifiable�strict_ns_unverifiable�strict_ns_domain�strict_ns_set_initial_dollar�strict_ns_set_path�tuple�_blocked_domains�_allowed_domains) r�����blocked_domains�allowed_domainsr����r����r����r����r����r����r����r����r����r����r���r���r���r����i��s ���� zDefaultCookiePolicy.__init__c�������������C���s���|�j�S�)N)r����)r����r���r���r���r�������s����z#DefaultCookiePolicy.blocked_domainsc�������������C���s���t�|�|�_d�S�)N)r����r����)r����r����r���r���r����set_blocked_domains���s����z'DefaultCookiePolicy.set_blocked_domainsc�������������C���s"���x|�j�D�]}t||�rdS�qW�dS�)NTF)r����r����)r����r����Zblocked_domainr���r���r���� is_blocked���s���� zDefaultCookiePolicy.is_blockedc�������������C���s���|�j�S�)N)r����)r����r���r���r���r�������s����z#DefaultCookiePolicy.allowed_domainsc�������������C���s���|d�k rt�|�}||�_d�S�)N)r����r����)r����r����r���r���r����set_allowed_domains���s����z'DefaultCookiePolicy.set_allowed_domainsc�������������C���s0���|�j�d�krdS�x|�j�D�]}t||�rdS�qW�dS�)NFT)r����r����)r����r����Zallowed_domainr���r���r����is_not_allowed���s���� z"DefaultCookiePolicy.is_not_allowedc�������������C���sB���t�d|j|j��x,dD�]$}d|�}t|�|�}|||�sd S�qW�d S�)Nz - checking cookie %s=%sr����� verifiabilityrw���r����r����r����Zset_ok_FT)r����r����rw���r����r����r����)r���rw���rx���r����)r����r����r�����n�fn_name�fnr���r���r���r�������s���� zDefaultCookiePolicy.set_okc�������������C���s^���|j�d�krtd|j|j��dS�|j�dkr<|�j�r<td��dS�|j�dkrZ|�j�rZtd��dS�dS�)Nz0 Set-Cookie2 without version attribute (%s=%s)Fr ���z$ RFC 2965 cookies are switched offz$ Netscape cookies are switched offT)r����r���rw���rx���r����r����)r����r����r����r���r���r����set_ok_version���s���� z"DefaultCookiePolicy.set_ok_versionc�������������C���sJ���|j�rFt|�rF|jdkr*|�jr*td��dS�|jdkrF|�jrFtd��dS�dS�)Nr ���z> third-party RFC 2965 cookie during unverifiable transactionFz> third-party Netscape cookie during unverifiable transactionT)�unverifiabler����r����r����r���r����)r����r����r����r���r���r����set_ok_verifiability���s����z(DefaultCookiePolicy.set_ok_verifiabilityc�������������C���s0���|j�dkr,|�jr,|jjd�r,td|j��dS�dS�)Nr ����$z' illegal name (starts with '$'): '%s'FT)r����r����rw���rr���r���)r����r����r����r���r���r����set_ok_name���s ����zDefaultCookiePolicy.set_ok_namec�������������C���sL���|j�rHt|�}|jdks(|jdkrH|�jrH|j|j��rHtd|j|��dS�dS�)Nr ���z7 path attribute %s is not a prefix of request path %sFT)r����r����r����r����rr���r����r���)r����r����r�����req_pathr���r���r����set_ok_path���s���� zDefaultCookiePolicy.set_ok_pathc������� ������C���s���|�j�|j�rtd|j��dS�|�j|j�r8td|j��dS�|j�r�t|�\}}|j}|�jr�|jd�dkr�|jd�}|jdd|�}|dkr�||d�d���}||d�|��} | j ��d$kr�t |�dkr�td|��dS�|jd���r�|dd���} n|} | jd�dk}|��r|dk�rtd|��dS�|j dk�rb|j|���rb|jd���rbd|�j|���rbtd ||��dS�|j dk�s||�j|�j@��r�t||��s�td!||��dS�|j dk�s�|�j|�j@��r�|d�t |����}|jd�dk�r�tj|���r�td"||��dS�d#S�)%Nz" domain %s is in user block-listFz& domain %s is not in user allow-listr����r���r ���r����co�ac�com�edu�org�net�gov�milrA����aero�biz�cat�coop�info�jobs�mobi�museumrw����pro�travel�euz& country-code second level domain %sz.localz/ non-local domain %s contains no embedded dotzO effective request-host %s (even with added initial dot) does not end with %sz5 effective request-host %s does not domain-match %sz. host prefix %s for domain %s contains a dotT)r���r��r��r��r��r��r��r��rA���r��r ��r ��r��r��r ��r��r��rw���r��r��r��)r����r����r���r����r����r����r�����countr����rK����lenrr���r����r����r����r�����DomainRFC2965Matchr�����DomainStrictNoDotsr����r@���) r����r����r����r����r����r����r�����jZtldZsldZundotted_domainZ embedded_dotsZhost_prefixr���r���r���� set_ok_domain���sf���� �� z!DefaultCookiePolicy.set_ok_domainc�������������C���s����|j�r�t|�}|d�krd}nt|�}x\|jjd�D�]:}yt|��W�n�tk r`���td|��dS�X�||kr2P�q2W�td||j��dS�dS�)N�80rk���z bad port %s (not numeric)Fz$ request port (%s) not found in %sT)r����r�����strr����r����rA���rL���r���)r����r����r�����req_portr����r���r���r����set_ok_port%��s"���� zDefaultCookiePolicy.set_ok_portc�������������C���sB���t�d|j|j��x,dD�]$}d|�}t|�|�}|||�sd S�qW�d S�)Nz - checking cookie %s=%sr����r����r����r����r����r����Z return_ok_FT)r����r����r����r����r����r����)r���rw���rx���r����)r����r����r����r����r����r����r���r���r���r����:��s���� zDefaultCookiePolicy.return_okc�������������C���s@���|j�dkr|�j�rtd��dS�|j�dkr<|�j�r<td��dS�dS�)Nr ���z$ RFC 2965 cookies are switched offFz$ Netscape cookies are switched offT)r����r����r���r����)r����r����r����r���r���r����return_ok_versionL��s����z%DefaultCookiePolicy.return_ok_versionc�������������C���sJ���|j�rFt|�rF|jdkr*|�jr*td��dS�|jdkrF|�jrFtd��dS�dS�)Nr ���z> third-party RFC 2965 cookie during unverifiable transactionFz> third-party Netscape cookie during unverifiable transactionT)r����r����r����r����r���r����)r����r����r����r���r���r����return_ok_verifiabilityU��s����z+DefaultCookiePolicy.return_ok_verifiabilityc�������������C���s ���|j�r|jdkrtd��dS�dS�)NZhttpsz( secure cookie with non-secure requestFT)r�����typer���)r����r����r����r���r���r����return_ok_securea��s����z$DefaultCookiePolicy.return_ok_securec�������������C���s���|j�|�j�rtd��dS�dS�)Nz cookie expiredFT)r�����_nowr���)r����r����r����r���r���r����return_ok_expiresg��s����z%DefaultCookiePolicy.return_ok_expiresc�������������C���sP���|j�rLt|�}|d�krd}x0|j�jd�D�]}||kr(P�q(W�td||j���dS�dS�)Nr��rk���z0 request port %s does not match cookie port %sFT)r����r����r����r���)r����r����r����r��r����r���r���r����return_ok_portm��s���� z"DefaultCookiePolicy.return_ok_portc�������������C���s����t�|�\}}|j}|r,|jd��r,d|�}n|}|jdkrb|�j|�j@�rb|j�rb||krbtd��dS�|jdkr�t||��r�td||��dS�|jdkr�d|�j |��r�td||��dS�dS�)Nr����r ���zQ cookie with unspecified domain does not string-compare equal to request domainFzQ effective request-host name %s does not domain-match RFC 2965 cookie domain %sz; request-host %s does not match Netscape cookie domain %sT) r����r����rr���r����r�����DomainStrictNonDomainr����r���r����r����)r����r����r����r����r����r����� dotdomainr���r���r����return_ok_domain{��s&���� z$DefaultCookiePolicy.return_ok_domainc�������������C���s����t�|�\}}|jd�sd|�}|jd�s0d|�}|rJ|jd��rJd|�}n|}|j|�p`|j|�sfdS�|�j|�r~td|��dS�|�j|�r�td|��dS�dS�)Nr����Fz" domain %s is in user block-listz& domain %s is not in user allow-listT)r����rr���r����r����r���r����)r����r����r����r����r����r%��r���r���r���r�������s"���� z$DefaultCookiePolicy.domain_return_okc�������������C���s0���t�d|��t|�}|j|�s,t�d||��dS�dS�)Nz- checking cookie path=%sz %s does not path-match %sFT)r���r����rr���)r����r����r����r����r���r���r���r�������s���� z"DefaultCookiePolicy.path_return_ok)r����r����r����r��r$��r��Z DomainLiberalZDomainStrictr����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���_��sJ��� ; c�������������C���s���t�|�j���}t|�j|�S�)N)�sorted�keys�mapr����)Zadictr(��r���r���r����vals_sorted_by_key���s����r*��c�������������c���sZ���t�|��}xL|D�]D}d}�y |j�W�n�tk r4���Y�nX�d}�t|�E�d�H��|�s|V��qW�d�S�)NFT)r*���items�AttributeError� deepvalues)�mapping�values�objr���r���r���r-�����s���� r-��c���������������@���s���e�Zd�ZdS�)�AbsentN)r����r����r����r���r���r���r���r1�����s����r1��c���������������@���s����e�Zd�Zejd�Zejd�Zejd�Zejd�Zejd�Z ejdej �Zd2dd �Zd d��Z dd ��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd3d$d%�Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Z dS�)4r���z\Wz([\"\\])z\.?[^.]*z[^.]*z^\.+z^\#LWP-Cookies-(\d+\.\d+)Nc�������������C���s(���|d�krt���}||�_tj��|�_i�|�_d�S�)N)r����_policy� _threading�RLock� _cookies_lock�_cookies)r�����policyr���r���r���r�������s ���� zCookieJar.__init__c�������������C���s ���||�_�d�S�)N)r2��)r����r7��r���r���r���� set_policy���s����zCookieJar.set_policyc�������������C���s����g�}|�j�j||�sg�S�td|��|�j|�}xd|j��D�]X}|�j�j||�sHq4||�}x:|j��D�].}|�j�j||�svtd��qZtd��|j|��qZW�q4W�|S�)Nz!Checking %s for cookies to returnz not returning cookiez it's a match) r2��r����r���r6��r(��r����r/��r����rq���)r����r����r�����cookiesZcookies_by_pathr����Zcookies_by_namer����r���r���r����_cookies_for_domain���s ���� zCookieJar._cookies_for_domainc�������������C���s.���g�}x$|�j�j��D�]}|j|�j||���qW�|S�)N)r6��r(���extendr:��)r����r����r9��r����r���r���r����_cookies_for_request���s����zCookieJar._cookies_for_requestc������� ������C���sF��|j�dd��dd��d}g�}�x$|D��]}|j}|sLd}|dkrL|jd|���|jd�k r~|�jj|j�r~|dkr~|�jjd|j�}n|j}|jd�kr�|j|j��n|jd |j|f���|dkr"|j r�|jd |j ���|jjd��r|j}|j �o�|jd��r|dd���}|jd |���|jd�k r"d}|j�r4|d|j��}|j|��q"W�|S�)Nc�������������S���s ���t�|�j�S�)N)r��r����)�ar���r���r����<lambda>��s����z)CookieJar._cookie_attrs.<locals>.<lambda>T)r�����reverseFr ���z$Version=%sz\\\1z%s=%sz $Path="%s"r����r���z$Domain="%s"z$Portz="%s")�sortr����rq���rx����non_word_rer@����quote_rer]���rw���r����r����r����rr���r����r����r����) r����r9��r�����attrsr����r����rx���r����r����r���r���r���� _cookie_attrs��s>���� zCookieJar._cookie_attrsc���������� ���C���s����t�d��|�jj���z�ttj����|�j_|�_|�j|�}|�j|�}|r^|j d�s^|j ddj|���|�jjr�|�jj �r�|j d��r�x$|D�]}|jdkr�|j dd��P�q�W�W�d�|�jj���X�|�j���d�S�)N�add_cookie_headerr���z; ZCookie2r���z$Version="1")r���r5���acquirerA���rM���r2��r!��r<��rD��Z has_headerZadd_unredirected_headerr{���r����r����r�����release�clear_expired_cookies)r����r����r9��rC��r����r���r���r���rE��?��s$���� zCookieJar.add_cookie_headerc�������������C���s���g�}d}d}�x||D��]r}|d�\}}d}d} i�} i�}�x4|d d���D��]"\}} |j���}||ksh||krl|}||kr�| d�kr�d} || kr�qF|dkr�| d�kr�td��d} P�| j���} |dkr�|r�qF| d�kr�td��qF|dk�rd}yt| �} W�n$�tk �r���td��d} P�Y�nX�d}|�j| �} ||k�s2||k�rb| d�k�rX|dk�rXtd|���d} P�| | |<�qF| ||<�qFW�| �rvq|j||| |f��qW�|S�)Nr����r����r����r�����max-ager����r����r����r����� commenturlr ���Fr���Tz% missing value for domain attributezM missing or invalid value for expires attribute: treating as session cookiez? missing or invalid (non-numeric) value for max-age attributez! missing value for %s attribute)r����r����)r����r����rI��r����r����r����r����rJ��)r����r����rJ��)rK���r���rA���rL���r!��rq���)r����� attrs_set� cookie_tuples� boolean_attrs�value_attrsZcookie_attrsrw���rx���Zmax_age_setZ bad_cookie�standardr����r~���r���r����r���r���r����_normalized_cookie_tuples`��sl���� ��� z#CookieJar._normalized_cookie_tuplesc����������!���C���s$��|\}}}}|j�dt�}|j�dt�}|j�dt�} |j�dt�} |j�dd��}|d�k rryt|�}W�n�tk rp���d�S�X�|j�dd�}|j�dd�} |j�d d��}|j�d d��}|tk r�|dkr�d}t|�}nXd}t|�}|jd �}|dk�r|dkr�|d�|��}n|d�|d���}t|�dk�rd }|tk }d}|�r8t|j d��}|tk�rTt |�\}}|}n|j d��shd|�}d}| tk �r�| d�k�r�t|�} nd}tj dd| �} nd�} | tk�r�d�} d} nH| |�jk�r�y|�j|||��W�n�tk �r����Y�nX�td|||��d�S�t|||| |||||||| | |||�S�)Nr����r����r����r����r����r����Fr����r����rJ��rV���Tr����r���r ���r����z\s+z2Expiring cookie, domain='%s', path='%s', name='%s'r����)r����r1��rA���rL���r����r����r����r���boolrr���r����r����rs���r]���r!���clear�KeyErrorr���r���)r�����tupr����rw���rx���rO��r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r����_cookie_from_cookie_tuple���s����� � z#CookieJar._cookie_from_cookie_tuplec�������������C���s:���|�j�|�}g�}x&|D�]}|�j||�}|r|j|��qW�|S�)N)rP��rU��rq���)r����rK��r����rL��r9��rT��r����r���r���r����_cookies_from_attrs_set��s���� �z!CookieJar._cookies_from_attrs_setc�������������C���sL���t�|�jdd��}|d�kr |�jj�}x&|D�]}|jdkr&d|_|r&d|_q&W�d�S�)Nr����r���Tr ���)r����r2��r����r����r����)r����r9��Z rfc2109_as_nsr����r���r���r����_process_rfc2109_cookies&��s���� z"CookieJar._process_rfc2109_cookiesc������� ������C���s6��|j���}|jdg��}|jdg��}|�jj}|�jj}|�r<|�s`|�rH|�s`|�rT|�s`|�rd|�rdg�S�y|�jt|�|�}W�n�tk r����t���g�}Y�nX�|o�|�r2y|�jt |�|�} W�n�tk r����t���g�} Y�nX�|�j | ��|�r"i�} x |D�]}d�| |j|j|j f<�q�W�| fdd�}t|| �} | �r2|j| ��|S�)NzSet-Cookie2z Set-Cookiec�������������S���s���|�j�|�j|�jf}||kS�)N)r����r����rw���)Z ns_cookie�lookupr����r���r���r����no_matching_rfc2965^��s����z3CookieJar.make_cookies.<locals>.no_matching_rfc2965)r��Zget_allr2��r����r����rV��ry���� Exceptionr���r����rW��r����r����rw����filterr;��) r�����responser����r|���Zrfc2965_hdrsZns_hdrsr����r����r9��Z ns_cookiesrX��r����rY��r���r���r����make_cookies2��sB���� zCookieJar.make_cookiesc���������� ���C���sN���|�j�j���z2ttj����|�j_|�_|�jj||�r:|�j|��W�d�|�j�j���X�d�S�)N) r5��rF��rA���rM���r2��r!��r����� set_cookierG��)r����r����r����r���r���r����set_cookie_if_okh��s���� zCookieJar.set_cookie_if_okc���������� ���C���sl���|�j�}|�jj���zJ|j|kr&i�||j<�||j�}|j|krDi�||j<�||j�}|||j<�W�d�|�jj���X�d�S�)N)r6��r5��rF��r����r����rw���rG��)r����r�����cZc2Zc3r���r���r���r^��u��s���� � � zCookieJar.set_cookiec���������� ���C���s|���t�d|j����|�jj���zRttj����|�j_|�_x6|�j||�D�]&}|�jj ||�r>t�d|��|�j |��q>W�W�d�|�jj���X�d�S�)Nzextract_cookies: %sz setting cookie: %s)r���r��r5��rF��rA���rM���r2��r!��r]��r����r^��rG��)r����r\��r����r����r���r���r����extract_cookies���s���� zCookieJar.extract_cookiesc�������������C���st���|d�k r2|d�ks|d�kr t�d��|�j|�|�|=�n>|d�k rX|d�krJt�d��|�j|�|=�n|d�k rj|�j|=�ni�|�_d�S�)Nz8domain and path must be given to remove a cookie by namez.domain must be given to remove cookies by path)rL���r6��)r����r����r����rw���r���r���r���rR�����s���� zCookieJar.clearc�������������C���sH���|�j�j���z,x&|�D�]}|jr|�j|j|j|j��qW�W�d�|�j�j���X�d�S�)N)r5��rF��r����rR��r����r����rw���rG��)r����r����r���r���r����clear_session_cookies���s���� zCookieJar.clear_session_cookiesc�������������C���sT���|�j�j���z8tj��}x*|�D�]"}|j|�r|�j|j|j|j��qW�W�d�|�j�j���X�d�S�)N) r5��rF��rM���r����rR��r����r����rw���rG��)r����r����r����r���r���r���rH�����s���� zCookieJar.clear_expired_cookiesc�������������C���s ���t�|�j�S�)N)r-��r6��)r����r���r���r����__iter__���s����zCookieJar.__iter__c�������������C���s���d}x|�D�]}|d�}q W�|S�)Nr ���r���r���)r����r����r����r���r���r����__len__���s���� �zCookieJar.__len__c�������������C���s6���g�}x|�D�]}|j�t|���q W�d|�jjdj|�f�S�)Nz<%s[%s]>z, )rq���r����r����r����r{���)r�����rr����r���r���r���r�������s���� �zCookieJar.__repr__c�������������C���s6���g�}x|�D�]}|j�t|���q W�d|�jjdj|�f�S�)Nz<%s[%s]>z, )rq���r��r����r����r{���)r����re��r����r���r���r���r�������s���� �zCookieJar.__str__)N)NNN)!r����r����r����rs����compilerA��rB��Zstrict_domain_reZ domain_reZdots_re�ASCII�magic_rer����r8��r:��r<��rD��rE��rP��rU��rV��rW��r]��r_��r^��ra��rR��rb��rH��rc��rd��r����r����r���r���r���r���r������s6��� ;!a\ 6 c���������������@���s���e�Zd�ZdS�)r���N)r����r����r����r���r���r���r���r������s����c���������������@���s4���e�Zd�Zddd�Zddd�Zd dd�Zdd d �ZdS�)r���NFc���������� ���C���sJ���t�j|�|��|d�k r6y|d��W�n���td��Y�nX�||�_t|�|�_d�S�)NrV���zfilename must be string-like)r���r����rL����filenamerQ��� delayload)r����ri��rj��r7��r���r���r���r�������s����zFileCookieJar.__init__c�������������C���s ���t����d�S�)N)r����)r����ri���ignore_discard�ignore_expiresr���r���r����save���s����zFileCookieJar.savec�������������C���sJ���|d�kr"|�j�d�k r|�j�}ntt��t|��}|�j||||��W�d�Q�R�X�d�S�)N)ri��rL����MISSING_FILENAME_TEXT�open�_really_load)r����ri��rk��rl��r���r���r���r����load���s���� � zFileCookieJar.loadc�������������C���s����|d�kr"|�j�d�k r|�j�}ntt��|�jj���zFtj|�j�}i�|�_y|�j|||��W�n�t k rn���||�_��Y�nX�W�d�|�jj ���X�d�S�)N)ri��rL���rn��r5��rF��r�����deepcopyr6��rq���OSErrorrG��)r����ri��rk��rl��Z old_stater���r���r����revert��s���� � zFileCookieJar.revert)NFN)NFF)NFF)NFF)r����r����r����r����rm��rq��rt��r���r���r���r���r������s ��� �c�������������C���s$��|�j�|�jfd|�jfd|�jfg}|�jd�k r8|jd|�jf��|�jrH|jd ��|�jrX|jd��|�jrh|jd��|�j rx|jd��|�j r�|jdtt|�j ��f��|�j r�|jd��|�jr�|jd |�jf��|�jr�|jd|�jf��t|�jj���}x$|D�]}|j|t|�j|��f��q�W�|jdt|�j�f��t|g�S�)Nr����r����r����� path_spec� port_spec� domain_dotr����r����r����r����rJ��r����)ru��N)rv��N)rw��N)r����N)r����N)rw���rx���r����r����r����rq���r����r����r����r����r����r5���rZ���r����r����r����r'��r����r(��r��r����r����)r����r����r(��r~���r���r���r����lwp_cookie_str��s6���� �� � � � �� �� rx��c���������������@���s(���e�Zd�Zd dd�Zddd�Zdd ��ZdS�)r���Tc�������������C���s\���t�j���}g�}x>|�D�]6}|�r$|jr$q|�r6|j|�r6q|jdt|����qW�dj|dg��S�)NzSet-Cookie3: %s� rV���)rM���r����r����rq���rx��r{���)r����rk��rl��r����re��r����r���r���r���� as_lwp_strG��s���� zLWPCookieJar.as_lwp_strNFc�������������C���sX���|d�kr"|�j�d�k r|�j�}ntt��t|d��"}|jd��|j|�j||���W�d�Q�R�X�d�S�)N�wz#LWP-Cookies-2.0 )ri��rL���rn��ro���writerz��)r����ri��rk��rl��r���r���r���r���rm��W��s���� � zLWPCookieJar.savec�������������C���sL��|j���}|�jj|�s$d|�}t|��tj��}d}d} d} �yʐx�|j���}|dkrRP�|j|�s^q@|t|�d���j��}�x�t|g�D��]x}|d�\} }i�}i�}x| D�]}d||<�q�W�x�|dd���D�]t\}}|d�k r�|j ��}nd�}|| k��s�|| k��r�|}|| k�r|d�k�rd}|||<�q�|| k�r*|||<�q�|||<�q�W�|j }|d�}|d�}|d�k �r^t|�}|d�k�rld}|d�}|jd�}t|d�| ||d �|d�|||d�|d �|d�|d�|||d �|d�|�}|��r�|j �r�q�|��r�|j|��r�q�|�j|��q�W�q@W�W�nB�tk �r�����Y�n,�tk �rF���t���td||f���Y�nX�d�S�)Nz5%r does not look like a Set-Cookie3 (LWP) format filezSet-Cookie3:rv��ru��rw��r����r����r����r����r����r����r����r����rJ��rV���r ���Fr���Tr����z&invalid Set-Cookie3 format file %r: %r)rv��ru��rw��r����r����)r����r����r����r����r����r����rJ��)�readlinerh��r@���r���rM���rr���r��r����ry���rK���r����rd���r���r����r����r^��rs��rZ��r���)r����r���ri��rk��rl���magicr���r�����headerrM��rN���line�datarw���rx���rO��r����r~���r���r����r����r����r����r����r����r`��r���r���r���rp��c��s���������� � zLWPCookieJar._really_load)TT)NFF)r����r����r����rz��rm��rp��r���r���r���r���r���:��s��� c���������������@���s,���e�Zd�Zejd�ZdZdd��Zd dd�ZdS�) r���z#( Netscape)? HTTP Cookie Filezr# Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This is a generated file! Do not edit. c�������������C���sn��t�j���}|j��}|�jj|�s(td|�����y�x�|j��}|dkr@P�|jd�rV|d�d��}|j��jd�s.|j��dkrrq.|jd�\}} } }}} }|dk}| dk} | dkr�|} d�}|jd �}d }|dkr�d�}d}t d| |d�d || || d |||d�d�i��}|��r�|j �r�q.|��r|j|��rq.|�j|��q.W�W�nB�t k �r>�����Y�n,�tk �rh���t���td ||f���Y�nX�d�S�)Nz4%r does not look like a Netscape format cookies filerV���ry��r����#r����� �TRUEr����FTr ���z+invalid Netscape format cookies file %r: %rr����)r���r����)rM���r}��rh��r@���r���r����r����rr���r����r���r����r����r^��rs��rZ��r���)r����r���ri��rk��rl��r����r~��r���r����r����r����r����r����rw���rx���r����r����r`��r���r���r���rp�����s`����� � zMozillaCookieJar._really_loadNFc�������������C���s��|d�kr"|�j�d�k r|�j�}ntt��t|d���}|j|�j��tj��}x�|�D�]�}|�rZ|jrZqH|�rl|j|�rlqH|j rxd}nd}|j jd�r�d}nd}|jd�k r�t |j�} nd} |jd�kr�d} |j}n|j} |j}|jdj|j ||j|| | |g�d���qHW�W�d�Q�R�X�d�S�)Nr{��r���ZFALSEr����rV���r���ry��)ri��rL���rn��ro��r|��r��rM���r����r����r����r����rr���r����r��rx���rw���r{���r����)r����ri��rk��rl��r���r����r����r����r����r����rw���rx���r���r���r���rm����s<���� � �� zMozillaCookieJar.save)NFF) r����r����r����rs���rf��rh��r��rp��rm��r���r���r���r���r������s��� A)N)N)X�__all__r����r-���rs���rM���Zurllib.parser����Zurllib.requestZ threadingr3���ImportErrorZdummy_threadingZhttp.clientZhttpZcalendarr ���r���r���r���r��ZclientZ HTTP_PORTr����rn��r���r%���r,���r6���r7���rI���r(���rq���rK���r5���r8���r>���rf��rg��r?���rF���rS���rX����Ir\����Xr^���ra���rb���rd���rj���rl���rm���ro���rn���ry���rz���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r*��r-��r1��r���rs��r���r���rx��r���r���r���r���r���r����<module>���s���� � 88! U D' #b!��\����:x