选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
U e5d#,ã @sddddddddgZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd l Z dd l Z dd l mZd Zd ad d „Zee jjƒZdZdd„ZdZdd„ZdddddddgZdddddd d!d"d#d$d%d&g ZgZeD]Ze e ¡¡qÒdtd'd(„Z dud)d*„Z!d d d d d+œZ"e #d,ej$¡Z%d-d.„Z&d/d0„Z'e #d1ej$¡Z(e #d2ej)ej$B¡Z*e #d3ej+ej$B¡Z,d4d5„Z-e #d6ej+ej$B¡Z.d7d8„Z/d9d:„Z0e #d;¡Z1e #d<¡Z2e #d=¡Z3e #d>¡Z4d?d@„Z5e #dA¡Z6dBdC„Z7dDdE„Z8dFdG„Z9e #dHej$¡Z:dIdJ„Z;dKdL„Ze #dQej$¡Z?dRdS„Z@dTdU„ZAdVdW„ZBdXdY„ZCdZZDe #d[¡ZEd\d]„ZFd^d_„ZGd`da„ZHdbdc„ZIGddd„dƒZJGded„dƒZKGdfd„deKƒZLdgdh„ZMdidj„ZNGdkdl„dlƒZOGdmd„dƒZPGdnd„deQƒZRGdod„dePƒZSdpdq„ZTGdrd„deSƒZUGdsd„deSƒZVd S)vÚCookieÚ CookieJarÚ CookiePolicyÚDefaultCookiePolicyÚ FileCookieJarÚ LWPCookieJarÚ LoadErrorÚMozillaCookieJaréN)ÚtimegmFcGs(tsdStsddl}| d¡atj|ŽS)Nr zhttp.cookiejar)ÚdebugÚloggerÚloggingZ getLogger)Úargsr ©rú&/usr/lib64/python3.8/http/cookiejar.pyÚ_debug,s  rzQa filename was not supplied (nor was the CookieJar instance initialised with one)cCsJddl}ddl}ddl}| ¡}| d|¡| ¡}|jd|dd�dS)Nr zhttp.cookiejar bug! %sé)Ú stacklevel)ÚioÚwarningsÚ tracebackÚStringIOÚ print_excÚgetvalueÚwarn)rrrÚfÚmsgrrrÚ_warn_unhandled_exception:s  ri²cCs¨|dd…\}}}}}}|tkr d|kr4dkr nnhd|krLdkr nnPd|krddkr nn8d|kr|dkr nn d|kr”dkr nnt|ƒSdSdS) Nééé ér éé;é=)Ú EPOCH_YEARr )ÚttÚyearÚmonthZmdayÚhourÚminÚsecrrrÚ_timegmIs&8ÿÿ ÿÿ ÿÿ r,ZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDeccCs@|dkrtj ¡}n tj |¡}d|j|j|j|j|j|jfS)Nz%04d-%02d-%02d %02d:%02d:%02dZ) ÚdatetimeÚutcnowÚutcfromtimestampr'r(Údayr)ÚminuteÚsecond©ÚtZdtrrrÚ time2isozWs   ÿr5cCsR|dkrtj ¡}n tj |¡}dt| ¡|jt|jd|j|j |j |j fS)Nz#%s, %02d-%s-%04d %02d:%02d:%02d GMTr) r-r.r/ÚDAYSZweekdayr0ÚMONTHSr(r'r)r1r2r3rrrÚ time2netscapejs     þr8)ZGMTÚUTCZUTÚZz^([-+])?(\d\d?):?(\d\d)?$cCsjd}|tkrd}nTt |¡}|rfdt| d¡ƒ}| d¡rR|dt| d¡ƒ}| d¡dkrf| }|S)Nr iréé<rú-)Ú UTC_ZONESÚ TIMEZONE_REÚsearchÚintÚgroup)ÚtzÚoffsetÚmrrrÚoffset_from_tz_string�s  rFc CsŽt|ƒ}|tjkrdSzt | ¡¡d}Wn^tk rŠz t|ƒ}Wntk r`YYdSXd|krvdkr€nn|}nYdSYnX|dkr˜d}|dkr¤d}|dkr°d}t|ƒ}t|ƒ}t|ƒ}t|ƒ}|dk�r6t t ¡¡d}|d} |} ||| }| | } t | ƒdk�r6| dk�r.|d}n|d}t |||||||fƒ} | dk �rŠ|dk�rdd}|  ¡}t |ƒ} | dk�r‚dS| | } | S)Nrr r ièédé2r9) rAr-ZMAXYEARÚ MONTHS_LOWERÚindexÚlowerÚ ValueErrorÚtimeÚ localtimeÚabsr,ÚupperrF) r0ÚmonÚyrÚhrr*r+rCZimonZcur_yrrEZtmpr4rDrrrÚ _str2time�sV          rTzV^[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 CsÜt |¡}|rl| ¡}t |d ¡¡d}t|dƒ|t|dƒt|dƒt|dƒt|dƒf}t|ƒS|  ¡}t   d|d¡}dgd\}}}}}} } t  |¡}|dk rÄ| ¡\}}}}}} } ndSt |||||| | ƒS) Nrrr r;ééÚé)ÚSTRICT_DATE_REr@ÚgroupsrIrJrKrAÚfloatr,ÚlstripÚ WEEKDAY_REÚsubÚLOOSE_HTTP_DATE_RErT) ÚtextrEÚgrQr&r0rRrSr*r+rCrrrÚ http2timeás$  ÿ rbaÖ^ (\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 Csd| ¡}dgd\}}}}}}}t |¡}|dk rL| ¡\}}}}}}}} ndSt|||||||ƒS)NrX)r\Ú ISO_DATE_REr@rZrT) r`r0rQrRrSr*r+rCrEÚ_rrrÚiso2time+s  recCs*| d¡\}}|jd|…|j|d…S)Nr )ÚspanÚstring)ÚmatchÚstartÚendrrrÚ unmatchedLsrkz^\s*([^=\s;,]+)z&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"z^\s*=\s*([^\s;,]*)z\\(.)c Csg}|D]ô}|}g}|rît |¡}|r¤t|ƒ}| d¡}t |¡}|rft|ƒ}| d¡}t d|¡}n.t |¡}|r�t|ƒ}| d¡}| ¡}nd}|  ||f¡q|  ¡  d¡rÖ|  ¡dd…}|rÐ|  |¡g}qt   dd|¡\}} |}q|r|  |¡q|S)Nrz\1ú,z^[=\s;]*rW)ÚHEADER_TOKEN_REr@rkrBÚ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_charsrrrÚsplit_header_wordsUs>.         rzú([\"\\])cCs|g}|D]h}g}|D]F\}}|dk rPt d|¡sDt d|¡}d|}d||f}| |¡q|r| d |¡¡qd |¡S)Nz^\w+$ú\\\1z"%s"ú%s=%sú; ú, )rtr@ÚHEADER_JOIN_ESCAPE_REr^rrÚjoin)ZlistsÚheadersrwÚattrÚkÚvrrrÚjoin_header_words«s      r†cCs0| d¡r|dd…}| d¡r,|dd…}|S)Nú"réÿÿÿÿ)rsÚendswith©r`rrrÚ strip_quotesÄs     r‹c Csúd}g}|D]è}g}d}t| d¡ƒD]°\}}| ¡}| d¡\}} } | ¡}|sb|dkr&qØnq&| rn|  ¡nd} |dkrÈ| ¡} | |krŽ| }|dkr¬| dk r¦t| ƒ} d}n|dkrÈ| dk rÈtt| ƒƒ} | || f¡q&|r |sê| d ¡| |¡q |S) N)ÚexpiresÚdomainÚpathÚsecureÚversionÚportúmax-ageFú;ú=r r�TrŒ)r�Ú0)Ú enumerateÚsplitÚstripÚ partitionrKr‹rbrr) Z ns_headersZ known_attrsrvZ ns_headerrwÚ version_setZiiZparamÚkeyÚsepÚvalÚlcrrrÚparse_ns_headersËs>   rŸz\.\d+$cCs:t |¡rdS|dkrdS|ddks2|ddkr6dSdS)NFrWr Ú.rˆT©ÚIPV4_REr@rŠrrrÚis_HDNs r£cCsl| ¡}| ¡}||krdSt|ƒs(dS| |¡}|dksB|dkrFdS| d¡sTdSt|dd…ƒshdSdS)NTFrˆr r r)rKr£Úrfindrs)ÚAÚBÚirrrÚ domain_matchs  r¨cCst |¡rdSdS©NFTr¡rŠrrrÚliberal_is_HDNFs rªcCs`| ¡}| ¡}t|ƒr t|ƒs0||kr,dSdS| d¡}|rL| |¡rLdS|s\||kr\dSdS)NTFr )rKrªrsr‰)r¥r¦Ú initial_dotrrrÚuser_domain_matchPs  r¬z:\d+$cCsB| ¡}tj |¡d}|dkr,| dd¡}t d|d¡}| ¡S)NrrWZHost)Ú get_full_urlÚurllibÚparseZurlparseZ get_headerÚ cut_port_rer^rK)ÚrequestÚurlÚhostrrrÚ request_hostes  r´cCs4t|ƒ}}| d¡dkr,t |¡s,|d}||fS)Nr rˆú.local)r´Úfindr¢r@)r±ÚerhnÚreq_hostrrrÚeff_request_hostus r¹cCs4| ¡}tj |¡}t|jƒ}| d¡s0d|}|S)Nú/)r­r®r¯ZurlsplitÚ escape_pathrŽrs)r±r²ÚpartsrŽrrrÚ request_path€s    r½cCs`|j}| d¡}|dkrX||dd…}z t|ƒWq\tk rTtd|ƒYdSXnt}|S)Nú:r rznonnumeric port: '%s')r³r¶rArLrÚDEFAULT_HTTP_PORT)r±r³r§r‘rrrÚ request_portŠs    rÀz%/;:@&=+$,!~*'()z%([0-9a-fA-F][0-9a-fA-F])cCsd| d¡ ¡S)Nz%%%sr)rBrP)rhrrrÚuppercase_escaped_charœsrÁcCstj |t¡}t t|¡}|S©N)r®r¯ZquoteÚHTTP_PATH_SAFEÚESCAPED_CHAR_REr^rÁ)rŽrrrr»žs  r»cCsP| d¡}|dkrL||dd…}| d¡}t|ƒrL|dksD|dkrLd|S|S)Nr r rZlocal)r¶r£)Úhr§ÚbrrrÚreach¬s  rÇcCs$t|ƒ}t|t|jƒƒsdSdSdS©NTF)r´r¨rÇZorigin_req_host)r±r¸rrrÚis_third_partyÏs rÉc@sJeZdZddd„Zdd„Zddd„Zd d „Zdd d „Zd d„Zdd„Z dS)rFcCs°|dk rt|ƒ}| dk r$tt| ƒƒ} |dkr<|dkr)r‘r�rŽryrx)rÔÚpÚlimitZ namevaluerrrÚ__str__)s   zCookie.__str__cCslg}dD]$}t||ƒ}| d|t|ƒf¡q| dt|jƒ¡| dt|jƒ¡d|jjd |¡fS)N)r�rxryr‘rÊr�rËrÌrŽrÍr�rŒrÎrÏrÐr}zrest=%sz rfc2109=%sz%s(%s)r)ÚgetattrrrÚreprrÓrÑÚ __class__Ú__name__r�)rÔrrxrƒrrrÚ__repr__3s zCookie.__repr__)F)N)N) råÚ __module__Ú __qualname__rÖrØrÛrÜrÞrárærrrrràsö *   c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) rcCs tƒ‚dSr©ÚNotImplementedError©rÔÚcookier±rrrÚset_okKszCookiePolicy.set_okcCs tƒ‚dSrÂrérërrrÚ return_okTszCookiePolicy.return_okcCsdS©NTr)rÔr�r±rrrÚdomain_return_okXszCookiePolicy.domain_return_okcCsdSrïr)rÔrŽr±rrrÚpath_return_ok]szCookiePolicy.path_return_okN)rårçrèrírîrðrñrrrrrBs  c @søeZdZdZdZdZdZeeBZdddddddddedddf d d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„ZdS)7rrrrUr NTF)ZhttpsZwsscCsv||_||_||_||_||_||_| |_| |_| |_| |_ | |_ |dk rVt |ƒ|_ nd|_ |dk rlt |ƒ}||_ dS)Nr)Ú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Úsecure_protocolsÚtupleÚ_blocked_domainsÚ_allowed_domains)rÔÚblocked_domainsÚallowed_domainsròrórôrõrör÷rørùrúrûrürrrrÖms" zDefaultCookiePolicy.__init__cCs|jSrÂ)rþ©rÔrrrr�sz#DefaultCookiePolicy.blocked_domainscCst|ƒ|_dSrÂ)rýrþ)rÔrrrrÚset_blocked_domains“sz'DefaultCookiePolicy.set_blocked_domainscCs |jD]}t||ƒrdSqdSrÈ)rþr¬)rÔr�Zblocked_domainrrrÚ is_blocked—s  zDefaultCookiePolicy.is_blockedcCs|jSrÂ)rÿrrrrr�sz#DefaultCookiePolicy.allowed_domainscCs|dk rt|ƒ}||_dSrÂ)rýrÿ)rÔrrrrÚset_allowed_domains sz'DefaultCookiePolicy.set_allowed_domainscCs.|jdkrdS|jD]}t||ƒrdSqdSr©)rÿr¬)rÔr�Zallowed_domainrrrÚis_not_allowed¦s    z"DefaultCookiePolicy.is_not_allowedcCs@td|j|jƒdD]&}d|}t||ƒ}|||ƒsdSqdS)Nú - checking cookie %s=%s)r�Ú verifiabilityrxrŽr�r‘Zset_ok_FT©rrxryrâ©rÔrìr±ÚnZfn_nameÚfnrrrrí®s  zDefaultCookiePolicy.set_okcCsZ|jdkrtd|j|jƒdS|jdkr:|js:tdƒdS|jdkrV|jsVtdƒdSdS)Nz0 Set-Cookie2 without version attribute (%s=%s)Fr ú$ RFC 2965 cookies are switched offú$ Netscape cookies are switched offT)r�rrxryróròrërrrÚset_ok_versionÁs ÿz"DefaultCookiePolicy.set_ok_versioncCsJ|jrFt|ƒrF|jdkr*|jr*tdƒdS|jdkrF|jrFtdƒdSdS©Nr z> third-party RFC 2965 cookie during unverifiable transactionFz> third-party Netscape cookie during unverifiable transactionT©Z unverifiablerÉr�r÷rrørërrrÚset_ok_verifiabilityÐsz(DefaultCookiePolicy.set_ok_verifiabilitycCs0|jdkr,|jr,|j d¡r,td|jƒdSdS)Nr ú$z' illegal name (starts with '$'): '%s'FT)r�rúrxrsrrërrrÚ set_ok_nameÜs  ÿ zDefaultCookiePolicy.set_ok_namecCsL|jrHt|ƒ}|jdks(|jdkrH|jrH| |j|¡sHtd|j|ƒdSdS)Nr z7 path attribute %s is not a prefix of request path %sFT)rÍr½r�rûrñrŽr)rÔrìr±Úreq_pathrrrÚ set_ok_pathås ÿÿ þÿzDefaultCookiePolicy.set_ok_pathc Csê| |j¡rtd|jƒdS| |j¡r8td|jƒdS|j�ræt|ƒ\}}|j}|jrÌ| d¡dkrÌ| d¡}| dd|¡}|dkrÌ||dd…}||d|…} |   ¡dkrÌt |ƒdkrÌtd |ƒdS|  d¡rä|dd…} n|} |   d¡dk} | �s|d k�rtd |ƒdS|j dk�rX| |¡�sX|  d¡�sXd| |¡�sXtd ||ƒdS|j dk�sr|j|j@�rŽt||ƒ�sŽtd ||ƒdS|j dk�s¨|j|j@�ræ|dt |ƒ …} |   d¡dk�ræt |¡�sætd| |ƒdSdS)Nú" domain %s is in user block-listFú& domain %s is not in user allow-listr rr r)ÚcoZacZcomZeduZorgZnetZgovZmilrAZaeroZbizÚcatZcoopÚinfoZjobsZmobiZmuseumrxZproZtravelZeuz& country-code second level domain %srµz/ 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)rr�rrrËr¹röÚcountr¤rKÚlenrsr¶r�r‰rùÚDomainRFC2965Matchr¨ÚDomainStrictNoDotsr¢r@) rÔrìr±r¸r·r�r§ÚjZtldZsldZundotted_domainZ embedded_dotsZ host_prefixrrrÚ set_ok_domainðs|        ý  ÿ  ÿ þþ  ÿ ÿ  ÿÿÿz!DefaultCookiePolicy.set_ok_domainc Csˆ|jr„t|ƒ}|dkrd}nt|ƒ}|j d¡D]@}z t|ƒWn"tk rbtd|ƒYdSX||kr0q„q0td||jƒdSdS)NÚ80rlz bad port %s (not numeric)Fz$ request port (%s) not found in %sT)rÊrÀÚstrr‘r—rArLr©rÔrìr±Zreq_portrßrrrÚ set_ok_port+s&   ÿzDefaultCookiePolicy.set_ok_portcCs@td|j|jƒdD]&}d|}t||ƒ}|||ƒsdSqdS)Nr)r�rr�rŒr‘r�Z return_ok_FTr r rrrrî@s   zDefaultCookiePolicy.return_okcCs<|jdkr|jstdƒdS|jdkr8|js8tdƒdSdS)Nr r FrT)r�rórròrërrrÚreturn_ok_versionRsz%DefaultCookiePolicy.return_ok_versioncCsJ|jrFt|ƒrF|jdkr*|jr*tdƒdS|jdkrF|jrFtdƒdSdSrrrërrrÚreturn_ok_verifiability[sz+DefaultCookiePolicy.return_ok_verifiabilitycCs"|jr|j|jkrtdƒdSdS)Nz( secure cookie with non-secure requestFT)r�ÚtyperürrërrrÚreturn_ok_securegsz$DefaultCookiePolicy.return_ok_securecCs| |j¡rtdƒdSdS)Nz cookie expiredFT)rÞÚ_nowrrërrrÚreturn_ok_expiresms z%DefaultCookiePolicy.return_ok_expirescCsN|jrJt|ƒ}|dkrd}|j d¡D]}||kr&qJq&td||jƒdSdS)Nr"rlz0 request port %s does not match cookie port %sFT)r‘rÀr—rr$rrrÚreturn_ok_portssÿz"DefaultCookiePolicy.return_ok_portcCs®t|ƒ\}}|j}|r*| d¡s*d|}n|}|jdkr^|j|j@r^|js^||kr^tdƒdS|jdkr‚t||ƒs‚td||ƒdS|jdkrªd|  |¡sªtd||ƒdSdS)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�rsr�rùÚDomainStrictNonDomainrËrr¨r‰)rÔrìr±r¸r·r�Ú dotdomainrrrÚreturn_ok_domain�s6    ÿþþÿÿz$DefaultCookiePolicy.return_ok_domaincCs˜t|ƒ\}}| d¡sd|}| d¡s0d|}|rH| d¡sHd|}n|}| |¡sd| |¡sddS| |¡r|td|ƒdS| |¡r”td|ƒdSdS)Nr FrrT)r¹rsr‰rrr)rÔr�r±r¸r·r.rrrrðœs"        z$DefaultCookiePolicy.domain_return_okcCsbtd|ƒt|ƒ}t|ƒ}||kr&dS| |¡rR| d¡sN|||d…dkrRdStd||ƒdS)Nz- checking cookie path=%sTrºrz %s does not path-match %sF)rr½rrsr‰)rÔrŽr±rZpathlenrrrrñ¶s  ÿÿ z"DefaultCookiePolicy.path_return_ok)rårçrèrr-rZ DomainLiberalZ DomainStrictrÖrrrrrrrírrrrr!r%rîr&r'r)r+r,r/rðrñrrrrrcsRõ #   ;  cCst| ¡ƒ}t|j|ƒSrÂ)ÚsortedÚkeysÚmaprÙ)Zadictr1rrrÚvals_sorted_by_keyÃs r3c csVt|ƒ}|D]D}d}z |jWntk r2YnXd}t|ƒEdH|s |Vq dSr©)r3ÚitemsÚAttributeErrorÚ deepvalues)ÚmappingÚvaluesÚobjrrrr6Çs r6c@s eZdZdS)ÚAbsentN©rårçrèrrrrr:Ùsr:c@søeZdZe d¡Ze d¡Ze d¡Ze d¡Ze d¡Z e dej ¡Z d2dd „Z d d „Z d d „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)4rz\Wr{z\.?[^.]*z[^.]*z^\.+z^\#LWP-Cookies-(\d+\.\d+)NcCs(|dkrtƒ}||_t ¡|_i|_dSrÂ)rÚ_policyÚ _threadingÚRLockÚ _cookies_lockÚ_cookies©rÔÚpolicyrrrrÖês  zCookieJar.__init__cCs ||_dSrÂ)r<rArrrÚ set_policyòszCookieJar.set_policycCsŒg}|j ||¡sgStd|ƒ|j|}| ¡D]T}|j ||¡sFq2||}| ¡D].}|j ||¡srtdƒqVtdƒ| |¡qVq2|S)Nz!Checking %s for cookies to returnz not returning cookiez it's a match) r<rðrr@r1rñr8rîrr)rÔr�r±ÚcookiesZcookies_by_pathrŽZcookies_by_namerìrrrÚ_cookies_for_domainõs     zCookieJar._cookies_for_domaincCs*g}|j ¡D]}| | ||¡¡q|SrÂ)r@r1ÚextendrE)rÔr±rDr�rrrÚ_cookies_for_requestszCookieJar._cookies_for_requestc Cs<|jdd„dd�d}g}|D�]}|j}|sHd}|dkrH| d|¡|jdk rz|j |j¡rz|dkrz|j d|j¡}n|j}|jdkr˜| |j¡n| d |j|f¡|dkr|j rÊ| d |j ¡|j   d ¡�r|j }|j sú|  d ¡rú|d d…}| d |¡|jdk rd}|j�r,|d|j}| |¡q|S)NcSs t|jƒSrÂ)rrŽ)ÚarrrÚóz)CookieJar._cookie_attrs..T)r›ÚreverseFr z $Version=%sr|r}z $Path="%s"r rz $Domain="%s"z$Portz="%s")Úsortr�rrryÚ non_word_rer@Úquote_rer^rxrÍrŽr�rsrÌr‘rÊ) rÔrDršÚattrsrìr�ryr�rßrrrÚ _cookie_attrssF    ÿÿ ÿ   zCookieJar._cookie_attrscCs¸tdƒ|j ¡zŒtt ¡ƒ|j_|_| |¡}|  |¡}|r^|  d¡s^|  dd  |¡¡|jj rœ|jjsœ|  d¡sœ|D]}|jdkr||  dd¡qœq|W5|j ¡X| ¡dS)NÚadd_cookie_headerrr~ZCookie2rz $Version="1")rr?ÚacquireÚreleaserArMr<r*rGrPZ has_headerZadd_unredirected_headerr�rórõr�Úclear_expired_cookies)rÔr±rDrOrìrrrrQIs*    ÿÿ    zCookieJar.add_cookie_headerc Cs’g}d}d}|D�]z}|d\}}d}d} i} i} |dd…D�]0\} } |  ¡}||ks`||krd|} | |krx| dkrxd} | | kr‚q>| dkr¬| dkr¤tdƒd} �qr|  ¡} | d krÌ|rºq>| dkrÌtd ƒq>| d k�r d}z t| ƒ} Wn*tk �rtd ƒd} Y�qrYnXd } |j| } | |k�s4| |k�rh| dk�r^| d k�r^td| ƒd} �qr| | | <q>| | | <q>| �rzq| ||| | f¡q|S)N)rÎr�)r�rŒr’r�rŽr‘rÏÚ commenturlr FrTr�z% missing value for domain attributerŒzM missing or invalid value for expires attribute: treating as session cookier’z? missing or invalid (non-numeric) value for max-age attribute)r‘rÏrUz! missing value for %s attribute)rKrrArLr*rr)rÔÚ attrs_setÚ cookie_tuplesÚ boolean_attrsÚ value_attrsZ cookie_attrsrxryZ max_age_setZ bad_cookieÚstandardrÕr„r…ržrrrÚ_normalized_cookie_tuplesjsh       ÿ   z#CookieJar._normalized_cookie_tuplescCs&|\}}}}| dt¡}| dt¡}| dt¡} | dt¡} | dd¡} | dk rtz t| ƒ} Wntk rrYdSX| dd¡} | dd¡} | d d¡}| d d¡}|tk rÂ|d krÂd }t|ƒ}nXd}t|ƒ}| d ¡}|dk�r| dkrø|d|…}n|d|d…}t|ƒdk�rd }|tk }d}|�r:t|  d¡ƒ}|tk�rVt |ƒ\}}|}n|  d¡�sjd|}d}| tk �r | dk�rŒt |ƒ} nd }t   dd | ¡} nd} | tk�r¸d} d } nH| |jk�rz| |||¡Wntk �rìYnXtd|||ƒdSt| ||| ||||||| | | |||ƒS)Nr�rŽr‘rŒr�r�FrÎrÏrUrWTrºrˆr rr z\s+z2Expiring cookie, domain='%s', path='%s', name='%s')rÙr:rArLr»r½r¤rÚboolrsr¹rÀrtr^r*ÚclearÚKeyErrorrr)rÔÚtupr±rxryrZrÕr�rŽr‘rŒr�r�rÎrÏrÐrÍr§rËrÌr¸r·rÊrrrÚ_cookie_from_cookie_tupleËs”                      ÿöz#CookieJar._cookie_from_cookie_tuplecCs6| |¡}g}|D]}| ||¡}|r| |¡q|SrÂ)r[r`rr)rÔrVr±rWrDr_rìrrrÚ_cookies_from_attrs_set's   z!CookieJar._cookies_from_attrs_setcCsHt|jddƒ}|dkr |jj }|D]}|jdkr$d|_|r$d|_q$dS)NrôrTr )râr<rór�rÑ)rÔrDZ rfc2109_as_nsrìrrrÚ_process_rfc2109_cookies0s  z"CookieJar._process_rfc2109_cookiesc Cs:| ¡}| dg¡}| dg¡}tt ¡ƒ|j_|_|jj}|jj}|sN|rf|sV|rf|s^|rf|sj|sjgSz| t |ƒ|¡}Wnt k rœt ƒg}YnX|�r6|�r6z| t |ƒ|¡} Wnt k rÜt ƒg} YnX|  | ¡|�r&i} |D]} d| | j| j| jf<qö| fdd„} t| | ƒ} | �r6| | ¡|S)Nz Set-Cookie2z Set-CookiecSs|j|j|jf}||kSrÂ)r�rŽrx)Z ns_cookieÚlookupr›rrrÚno_matching_rfc2965isz3CookieJar.make_cookies..no_matching_rfc2965)rZget_allrArMr<r*róròrarzÚ ExceptionrrŸrbr�rŽrxÚfilterrF) rÔÚresponser±r‚Z rfc2965_hdrsZns_hdrsróròrDZ ns_cookiesrcrìrdrrrÚ make_cookies<s^  ÿÿþþýýÿ  ÿ     zCookieJar.make_cookiescCsN|j ¡z2tt ¡ƒ|j_|_|j ||¡r:| |¡W5|j ¡XdSrÂ) r?rRrSrArMr<r*ríÚ set_cookierërrrÚset_cookie_if_okss  zCookieJar.set_cookie_if_okcCsl|j}|j ¡zJ|j|kr&i||j<||j}|j|krDi||j<||j}|||j<W5|j ¡XdSrÂ)r@r?rRrSr�rŽrx)rÔrìÚcZc2Zc3rrrri€s     zCookieJar.set_cookiecCsbtd| ¡ƒ|j ¡z8| ||¡D]&}|j ||¡r&td|ƒ| |¡q&W5|j ¡XdS)Nzextract_cookies: %sz setting cookie: %s) rrr?rRrSrhr<ríri)rÔrgr±rìrrrÚextract_cookies�s  zCookieJar.extract_cookiescCst|dk r2|dks|dkr tdƒ‚|j|||=n>|dk rX|dkrJtdƒ‚|j||=n|dk rj|j|=ni|_dS)Nz8domain and path must be given to remove a cookie by namez.domain must be given to remove cookies by path)rLr@)rÔr�rŽrxrrrr]™s ÿÿ zCookieJar.clearcCsD|j ¡z(|D]}|jr| |j|j|j¡qW5|j ¡XdSrÂ)r?rRrSrÎr]r�rŽrx)rÔrìrrrÚclear_session_cookies´s  zCookieJar.clear_session_cookiescCsP|j ¡z4t ¡}|D]"}| |¡r| |j|j|j¡qW5|j ¡XdSrÂ) r?rRrSrMrÞr]r�rŽrx)rÔrÝrìrrrrTÃs  zCookieJar.clear_expired_cookiescCs t|jƒSrÂ)r6r@rrrrÚ__iter__ÖszCookieJar.__iter__cCsd}|D] }|d}q|S)Nr rr)rÔr§rìrrrÚ__len__Ùs zCookieJar.__len__cCs2g}|D]}| t|ƒ¡qd|jjd |¡fS©Nz<%s[%s]>r)rrrãrärår�©rÔÚrrìrrrræßszCookieJar.__repr__cCs2g}|D]}| t|ƒ¡qd|jjd |¡fSrp)rrr#rärår�rqrrrráäszCookieJar.__str__)N)NNN)!rårçrèrtÚcompilerMrNZstrict_domain_reZ domain_reZdots_reÚASCIIÚmagic_rerÖrCrErGrPrQr[r`rarbrhrjrirlr]rmrTrnrorærárrrrrÛs6      ;!a\  7   c@s eZdZdS)rNr;rrrrrësc@s4eZdZd dd„Zd dd„Zd dd„Zdd d „ZdS)rNFcCs2t ||¡|dk rt |¡}||_t|ƒ|_dSrÂ)rrÖÚosÚfspathÚfilenamer\Ú delayload)rÔrxryrBrrrrÖðs   zFileCookieJar.__init__cCs tƒ‚dSrÂré)rÔrxÚignore_discardÚignore_expiresrrrÚsaveüszFileCookieJar.savec CsJ|dkr"|jdk r|j}nttƒ‚t|ƒ�}| ||||¡W5QRXdSrÂ)rxrLÚMISSING_FILENAME_TEXTÚopenÚ _really_load©rÔrxrzr{rrrrÚloads   zFileCookieJar.loadcCs„|dkr"|jdk r|j}nttƒ‚|j ¡zFt |j¡}i|_z|  |||¡Wnt k rn||_‚YnXW5|j ¡XdSrÂ) rxrLr}r?rRrSrÒZdeepcopyr@r�ÚOSError)rÔrxrzr{Z old_staterrrÚrevert s    zFileCookieJar.revert)NFN)NFF)NFF)NFF)rårçrèrÖr|r�rƒrrrrrís  ÿcCs |j|jfd|jfd|jfg}|jdk r8| d|jf¡|jrH| d¡|jrX| d¡|jrh| d¡|j rx| d¡|j r–| dt t |j ƒƒf¡|j r¦| d ¡|jr¼| d |jf¡|jrÒ| d |jf¡t|j ¡ƒ}|D]}| |t|j|ƒf¡qä| d t|jƒf¡t|gƒS) NrŽr�r‘)Ú path_specN)Ú port_specN)Ú domain_dotN)r�NrŒ)rÎNrÏrUr�)rxryrŽr�r‘rrrÍrÊrÌr�rŒr5r[rÎrÏrÐr0rÓr1r#r�r†)rìrÅr1r„rrrÚlwp_cookie_str$s: þ      ÿ r‡c@s(eZdZd dd„Zd dd„Zdd „ZdS) rTcCsTt ¡}g}|D]2}|s |jr q|s0| |¡r0q| dt|ƒ¡qd |dg¡S)NzSet-Cookie3: %sÚ rW)rMrÎrÞrrr‡r�)rÔrzr{rÝrrrìrrrÚ as_lwp_strMs zLWPCookieJar.as_lwp_strNFc CsX|dkr"|jdk r|j}nttƒ‚t|dƒ�"}| d¡| | ||¡¡W5QRXdS)NÚwz#LWP-Cookies-2.0 )rxrLr}r~Úwriter‰r€rrrr|]s   zLWPCookieJar.savecCs0| ¡}|j |¡s$d|}t|ƒ‚t ¡}d}d} d} �z®| ¡} | dkrP�qæ|  |¡s\q<| t|ƒd… ¡} t| gƒD�]f} | d\} }i}i}| D] }d||<q˜| dd…D]n\}}|dk rÌ|  ¡}nd}|| ksà|| krä|}|| k�r|dkrúd }|||<q²|| k�r|||<q²|||<q²|j }|d ƒ}|d ƒ}|dk �rJt |ƒ}|dk�rXd }|d ƒ}| d ¡}t |dƒ| ||dƒ|dƒ|||dƒ|dƒ|dƒ|dƒ|||dƒ|dƒ|ƒ}|�sÄ|j �rÄqz|�sØ| |¡�rØqz| |¡qzq�q| d¡rT|dd…}| ¡ d¡s*| ¡dkrpq*| d¡\}} } } } } }| dk} | dk} | dkr¨|} d}| d¡}d }| dkrÆd} d }t d | |dd || || d | | |ddiƒ}|sø|j røq*|�s |  |¡�r q*|  |¡q*WnBt k �r2‚Yn,tk �r\tƒtd ||fƒ‚YnXdS) Nz4%r does not look like a Netscape format cookies filerWrˆrˆ)ú#rú ÚTRUEr FTr z+invalid Netscape format cookies file %r: %r)rMrŒrur@rr‰r˜rsr—rrÎrÞrir‚rer)rÔrrxrzr{rÝr�r�r�rËrŽr�rŒrxryr«rÎrkrrrrßsr ÿÿ  ÿÿ ÷ ÿzMozillaCookieJar._really_loadNFc Csþ|dkr"|jdk r|j}nttƒ‚t|dƒ�È}| |j¡t ¡}|D]¨}|sV|jrVqF|sf| |¡rfqF|j rrd}nd}|j   d¡rˆd}nd}|j dk r¢t |j ƒ} nd} |jdkr¼d} |j} n |j} |j} | d |j ||j|| | | g¡d¡qFW5QRXdS)NrŠr“ZFALSEr rWr’rˆ)rxrLr}r~r‹rŽrMrÎrÞr�r�rsrŒr#ryrxr�rŽ) rÔrxrzr{rrÝrìr�r«rŒrxryrrrr| sH        ÿþÿzMozillaCookieJar.save)NFF) rårçrèrtrsrurŽrr|rrrrr¸s A)N)N)WÚ__all__rvrÒr-rtrMZ urllib.parser®Zurllib.requestZ threadingr=Z http.clientZhttpZcalendarr r r rr#ZclientZ HTTP_PORTr¿r}rr%r,r6r7rIr(rrrKr5r8r>rsrtr?rFrTrYÚIr]ÚXr_rbrcrerkrmrnrprorzr€r†r‹rŸr¢r£r¨rªr¬r°r´r¹r½rÀrÃrÄrÁr»rÇrÉrrrr3r6r:rr‚rrr‡rrrrrrÚsÌÿ   ÿ  8þ ÿ ì8 ï!    U D'    #b!b7x