PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oYe@s9ddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddddddd d d d d dddddddgZ dZ dZ dZdZdZdZejejjddejjjDZdZdZdZejd jZejd!jZd"d#d$hZ d%d&d'Z!Gd(d)d)ej"j#Z$e$d*d+Z%Gd,ddej&Z'Gd-ddZ(yddl)Z)Wne*k rYn$XGd.d/d/e(Z+e j,d/Gd0dde-Z.Gd1dde.Z/Gd2d d e.Z0Gd3dde.Z1Gd4dde.Z2Gd5d d e.Z3Gd6d d e.Z4Gd7d d e.Z5Gd8d d e5Z6Gd9dde5Z7Gd:dde5Z8Gd;dde.Z9Gd<dde.Z:Gd=dde;e9Z<e.Z=dS)>N)urlsplit HTTPResponseHTTPConnection HTTPException NotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReady BadStatusLine LineTooLongRemoteDisconnectederror responsesPiZUNKNOWNZIdlezRequest-startedz Request-sentcCsi|]}|j|qS)phrase).0vrr%/opt/python35/lib/python3.5/client.py ks riids[^:\s][^:\r\n]*s\n(?![ \t])|\r(?![ \t\n])ZPATCHZPOSTPUTdatacCsy|jdSWnotk r}zOt|j|j|j|jd|j||j|j|fdWYdd}~XnXdS)Nzlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)encodeUnicodeEncodeErrorencodingobjectstartendtitle)rnameerrrrr_encodesr(c@seZdZddZdS) HTTPMessagecCs|jd}t|}g}d}xh|jD]Z}|d|j|kr`d}n|ddjs|d}|r5|j|q5W|S)N:r)lowerlenkeysisspaceappend)selfr&nZlstZhitlinerrrgetallmatchingheaderss   z!HTTPMessage.getallmatchingheadersN)__name__ __module__ __qualname__r4rrrrr)s r)cCsg}xq|jtd}t|tkr:td|j|t|tkritdt|d kr Pq Wdj|jd}t j j d|j |S) Nr+z header linezgot more than %d headers  z iso-8859-1_class)r8r9r:) readline_MAXLINEr-rr0 _MAXHEADERSrjoindecodeemailparserZParserZparsestr)fpr;headersr3Zhstringrrr parse_headerss    rEcseZdZdddddZddZddZd d Zd d Zfd dZfddZ ddZ ddZ dddZ ddZ ddZddZddZdd Zd!d"Zd#d$Zd%d&Zd@d(d)ZdAd*d+ZdBfd,d-Zd.d/Zd0d1Zd2d3Zdd4d5Zd6d7Zd8d9Zd:d;Zd<d=Zd>d?Z S)CrrNcCsw|jd|_||_||_d|_|_t|_t|_t|_ t|_ t|_ t|_ t|_ dS)Nrb)makefilerC debuglevel_methodrDmsg_UNKNOWNversionstatusreasonchunked chunk_leftlength will_close)r1sockrHmethodurlrrr__init__s        zHTTPResponse.__init__cCsit|jjtdd}t|tkr=td|jdkr_tdt||sqt dy|j dd\}}}WnOt k ry"|j dd\}}d}Wnt k rd}YnXYnX|j d s|j t|y4t|}|d ks.|d kr:t|Wnt k r[t|YnX|||fS) Nr+z iso-8859-1z status linerzreply:z-Remote end closed connection without responsezHTTP/ri)strrCr<r=r-rrHprintreprrsplit ValueError startswith _close_connrint)r1r3rLrMrNrrr _read_statuss2         zHTTPResponse._read_statusc Cs|jdk rdSx|j\}}}|tkr8Pxg|jjtd}t|tkrotd|j}|sP|j dkr;t d|q;WqW||_ |_ |j|_ |dkrd|_n'|jdrd |_n t|t|j|_|_|j dkrSx$|jD]}t d|d d q6W|jjd }|r|jd krd|_d|_n d|_|j|_d|_|jjd}|jjd }|r3|j r3yt||_Wntk rd|_Yq<X|jdkr<d|_n d|_|tks|tksd|kokdkns|jdkrd|_|j r|j r|jdkrd|_dS)Nr+z header linerzheader:HTTP/1.0HTTP/0.9 zHTTP/1. r$ ztransfer-encodingrOTFzcontent-lengthrHEAD)rbrc)rDraZCONTINUErCr<r=r-rstriprHrZcoderMrNrLr^rrErJgetr,rOrP _check_closerRrQr`r]Z NO_CONTENTZ NOT_MODIFIEDrI)r1rLrMrNskiphdrZtr_encrQrrrbegin"sf                 zHTTPResponse.begincCs|jjd}|jdkrS|jjd}|rOd|jkrOdSdS|jjdridS|rd|jkrdS|jjd}|rd|jkrdSdS)N connectionrecloseTFz keep-alivezproxy-connection)rDrkrLr,)r1connZpconnrrrrlrszHTTPResponse._check_closecCs |j}d|_|jdS)N)rCrq)r1rCrrrr_s  zHTTPResponse._close_connc s,ztjWd|jr'|jXdS)N)superrqrCr_)r1) __class__rrrqs zHTTPResponse.closecs'tj|jr#|jjdS)N)rsflushrC)r1)rtrrrus  zHTTPResponse.flushcCsdS)NTr)r1rrrreadableszHTTPResponse.readablecCs |jdkS)N)rC)r1rrrisclosedszHTTPResponse.isclosedc Cs|jdkrdS|jdkr0|jdS|dk rqt|}|j|}t|d|jS|jr|jS|j dkr|jj }nAy|j |j }Wnt k r|jYnXd|_ |j|SdS)Nr:rhr) rCrIr_ bytearrayreadinto memoryviewtobytesrO_readall_chunkedrQread _safe_readr )r1amtbr2srrrr}s*         zHTTPResponse.readcCs|jdkrdS|jdkr0|jdS|jrF|j|S|jdk rt||jkrt|d|j}|jj|}| r|r|jn1|jdk r|j|8_|js|j|S)Nrrh) rCrIr_rO_readinto_chunkedrQr-rzry)r1rr2rrrrys$       zHTTPResponse.readintoc Cs|jjtd}t|tkr4td|jd}|dkr_|d|}yt|dSWntk r|jYnXdS)Nr+z chunk size;r) rCr<r=r-rfindr`r]r_)r1r3irrr_read_next_chunk_sizes    z"HTTPResponse._read_next_chunk_sizecCsSxL|jjtd}t|tkr7td|s>P|dkrPqWdS)Nr+z trailer line  r:)rrr:)rCr<r=r-r)r1r3rrr_read_and_discard_trailers  z&HTTPResponse._read_and_discard_trailerc Cs|j}|s|dk r(|jdy|j}Wntk rXtdYnX|dkr|j|jd}||_|S)NrWr:r)rPr~rr]r rr_)r1rPrrr_get_chunk_lefts        zHTTPResponse._get_chunk_leftc Csg}yPx<|j}|dkr%P|j|j|d|_q Wdj|SWn'tk rtdj|YnXdS)Nrr:)rr0r~rPr?r )r1valuerPrrrr|)s    zHTTPResponse._readall_chunkedc Csd}t|}yx|j}|dkr4|St||krj|j|}|||_||S|d|}|j|}||d}||7}d|_qWWn.tk rtt|d|YnXdS)Nr)rzrr-_safe_readintorPr bytes)r1r total_bytesmvbrPr2temp_mvbrrrr7s$      zHTTPResponse._readinto_chunkedcCs|g}xf|dkrn|jjt|t}|sNtdj|||j||t|8}q Wdj|S)Nrr:)rCr}min MAXAMOUNTr r?r0r-)r1rrchunkrrrr~Os zHTTPResponse._safe_readcCsd}t|}x|t|krtt|kr^|dt}|jj|}n|jj|}|stt|d|t|||d}||7}qW|S)Nr)rzr-rrCryr r)r1rrrrr2rrrrfs %zHTTPResponse._safe_readintor+c Cs|jdks|jdkr"dS|jr8|j|S|jdk rk|dksb||jkrk|j}y|jj|}Wn3tk r|dkr|jjd}YnX| r|r|jn$|jdk r|jt|8_|S)Nrhr:rrii@) rCrIrO_read1_chunkedrQread1r]r_r-)r1r2resultrrrrvs"  *     zHTTPResponse.read1cCsH|jdks|jdkr"dS|jr8|j|S|jj|S)Nrhr:)rCrIrO _peek_chunkedpeek)r1r2rrrrs   zHTTPResponse.peekcs|jdks|jdkr"dS|jr;tj|S|jdk rn|dkse||jkrn|j}|jj|}| r|r|jn$|jdk r|jt|8_|S)Nrhr:r)rCrIrOrsr<rQr_r-)r1limitr)rtrrr<s *   zHTTPResponse.readlinecCs|j}|dks$|dkr(dSd|ko?|knsJ|}|jj|}|jt|8_|std|S)Nrr:)rrCrrPr-r )r1r2rPr}rrrrs  zHTTPResponse._read1_chunkedc CsSy|j}Wntk r(dSYnX|dkr9dS|jj|d|S)Nr:)rr rCr)r1r2rPrrrrs   zHTTPResponse._peek_chunkedcCs |jjS)N)rCfileno)r1rrrrszHTTPResponse.filenocCsd|jdkrt|jj|p-|}t|tsOt|d rS|Sdj|SdS)N__iter__z, )rDrZget_all isinstancerYhasattrr?)r1r&defaultrDrrr getheaders  zHTTPResponse.getheadercCs+|jdkrtt|jjS)N)rDrlistitems)r1rrr getheaderss zHTTPResponse.getheaderscCs|S)Nr)r1rrrrszHTTPResponse.__iter__cCs|jS)N)rD)r1rrrinfoszHTTPResponse.infocCs|jS)N)rU)r1rrrgeturlszHTTPResponse.geturlcCs|jS)N)rM)r1rrrgetcodeszHTTPResponse.getcoderr)!r5r6r7rVrarorlr_rqrurvrwr}ryrrrr|rr~rrrr<rrrrrrrrrrr)rtrrs<  ! P                    c@s$eZdZdZdZeZeZdZ dZ de j dddZ dddd Zd d Zd d ZddZddZddZddZddZdddZddddZddZddd Zdid!d"Zd#d$Zd%d&Zd'd(ZdS))rrezHTTP/1.1r+rNcCs||_||_d|_g|_d|_t|_d|_d|_d|_ i|_ |j ||\|_ |_ tj|_dS)N)timeoutsource_addressrS_buffer_HTTPConnection__response_CS_IDLE_HTTPConnection__staterI _tunnel_host _tunnel_port_tunnel_headers _get_hostporthostportsocketcreate_connection_create_connection)r1rrrrrrrrVs          zHTTPConnection.__init__cCsV|jrtd|j||\|_|_|rE||_n |jjdS)Nz.Can't set up tunnel for established connection)rS RuntimeErrorrrrrclear)r1rrrDrrr set_tunnels    zHTTPConnection.set_tunnelc Cs |dkr|jd}|jd}||kryt||dd}WnVtk r||dddkr|j}ntd||ddYnX|d|}n |j}|r|ddkr|ddkr|dd }||fS) Nr*]r+rXznonnumeric port: '%s'r[rr)rfindr`r] default_portr )r1rrrjrrrrs    # &zHTTPConnection._get_hostportcCs ||_dS)N)rH)r1levelrrrset_debuglevel,szHTTPConnection.set_debuglevelc Cshd|j|jf}|jd}|j|xI|jjD]8\}}d||f}|jd}|j|qBW|jd|j|jd|j}|j \}} } | t j j kr|j td| | jfxn|jjtd} t| tkr*td | s1P| dkr>P|jd krtd | jqWdS)NzCONNECT %s:%d HTTP/1.0 asciiz%s: %s zlatin-1 rTzTunnel connection failed: %d %sr+z header line r:rzheader:)rrr:)rrrsendrrresponse_classrSrIrahttp HTTPStatusZOKrqOSErrorrirCr<r=r-rrHrZr@) r1Z connect_strZ connect_bytesheaderrZ header_strZ header_bytesresponserLrjmessager3rrr_tunnel/s2        zHTTPConnection._tunnelcCs]|j|j|jf|j|j|_|jjtjtj d|j rY|j dS)Nr+) rrrrrrS setsockoptr IPPROTO_TCP TCP_NODELAYrr)r1rrrconnectNs $ zHTTPConnection.connectc CsYt|_z&|j}|r.d|_|jWd|j}|rTd|_|jXdS)N)rrrSrqr)r1rSrrrrrqWs     zHTTPConnection.closecCs|jdkr.|jr%|jn t|jdkrPtdt|d}t|dr|jdkr~tdd}y |j}Wnt k rYn,Xd|krd}|jdkrtd x?|j |}|sP|r|j d }|jj |qWdSy|jj |Wn^t k rt|tjrqx7|D]}|jj |qTWnt d t|YnXdS) Nrzsend:i r}zsendIng a read()ableFrTzencoding file using iso-8859-1z iso-8859-1z9data should be a bytes-like object or an iterable, got %r)rS auto_openrrrHrZr[rmodeAttributeErrorr}rsendall TypeErrorr collectionsIterabletype)r1r blocksizerrZ datablockdrrrresF          zHTTPConnection.sendcCs|jj|dS)N)rr0)r1rrrr_outputszHTTPConnection._outputcCs\|jjddj|j}|jdd=|j||dk rX|j|dS)Nr:s )r:r:)rextendr?r)r1 message_bodyrJrrr _send_outputs   zHTTPConnection._send_outputFc Cs|jr!|jjr!d|_|jtkr<t|_nt|j||_|s`d}d|||jf}|j|j d|j dkr|sd}|j drt |\}}}}}|r!y|j d}Wn!t k r |j d}YnX|jd|n|jr?|j} |j} n|j} |j} y| j d} Wn!t k r| j d} YnX| jd d krd | d } | |jkr|jd| n)| jd} |jdd | | f|s|jddndS)N/z%s %s %srrerXrZidnaZHostr*r[]z%s:%szAccept-Encodingidentity)rrwrr_CS_REQ_STARTEDr rI _http_vsn_strrr _http_vsnr^rr putheaderrrrrrrr@) r1rTrU skip_hostskip_accept_encodingrequestZnetlocnilZ netloc_encrrZhost_encrrr putrequestsN             zHTTPConnection.putrequestcGs |jtkrtt|dr6|jd}t|sUtd|ft|}xt|D]\}}t|dr|jd||os z0HTTPConnection._send_request..rr+rzaccept-encodingrzcontent-lengthr) dictfromkeysrrrrrrYr(r) r1rTrUrrDZ header_namesZskipsrnrrrrrms     zHTTPConnection._send_requestcCs|jr!|jjr!d|_|jtks9|jrHt|j|jdkr{|j|j|jd|j}n|j|jd|j}y`y|j Wnt k r|j YnXt |_|j r|j n ||_|SWn|j YnXdS)NrrT)rrwrrrrHrrSrIroConnectionErrorrqrrR)r1rrrr getresponses,        zHTTPConnection.getresponse)r5r6r7rrrr HTTP_PORTrrrHr_GLOBAL_DEFAULT_TIMEOUTrVrrrrrrqrrrrrrrrrrrrrrrs2       0 {   c sXeZdZeZdddejdddddfddZfddZS)HTTPSConnectionNcontextcheck_hostnamec stt|j||||||_||_|dkrItj}|jtjk} |dkrp|j }|r| rt d|s|r|j ||||_ ||_ dS)NzMcheck_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED)rsrrVkey_file cert_filesslZ_create_default_https_contextZ verify_modeZ CERT_NONErr]Zload_cert_chain_context_check_hostname) r1rrrrrrrrZ will_verify)rtrrrVs          zHTTPSConnection.__init__c stj|jr"|j}n |j}|jj|jd||_|jj r|jryt j |jj |Wn5t k r|jj tj|jjYnXdS)Nserver_hostname)rsrrrr Z wrap_socketrSrr rZmatch_hostnameZ getpeercert Exceptionshutdownr SHUT_RDWRrq)r1r )rtrrrs       zHTTPSConnection.connect) r5r6r7 HTTPS_PORTrrrrVrrr)rtrrs   rc@seZdZdS)rN)r5r6r7rrrrrs c@seZdZdS)rN)r5r6r7rrrrrs c@seZdZdS)r N)r5r6r7rrrrr s c@seZdZddZdS)rcCs|f|_||_dS)N)argsrL)r1rLrrrrVs zUnknownProtocol.__init__N)r5r6r7rVrrrrrs c@seZdZdS)rN)r5r6r7rrrrrs c@seZdZdS)r N)r5r6r7rrrrr s c@s7eZdZdddZddZddZdS)r NcCs"|f|_||_||_dS)N)rpartialexpected)r1rrrrrrVs  zIncompleteRead.__init__cCsE|jdk rd|j}nd}d|jjt|j|fS)Nz, %i more expectedrXz%s(%i bytes read%s))rrtr5r-r)r1errr__repr__s  zIncompleteRead.__repr__cCs t|S)N)r[)r1rrr__str__szIncompleteRead.__str__)r5r6r7rVrrrrrrr s  c@seZdZdS)r N)r5r6r7rrrrr s c@seZdZdS)r N)r5r6r7rrrrr s c@seZdZdS)rN)r5r6r7rrrrr#s c@seZdZdS)rN)r5r6r7rrrrr&s c@seZdZddZdS)rcCs+|st|}|f|_||_dS)N)r[rr3)r1r3rrrrV*s  zBadStatusLine.__init__N)r5r6r7rVrrrrr)s c@seZdZddZdS)rcCstj|dt|fdS)Nz&got more than %d bytes when reading %s)rrVr=)r1Z line_typerrrrV1s zLineTooLong.__init__N)r5r6r7rVrrrrr0s c@seZdZddZdS)rcOs'tj|dtj|||dS)NrX)rrVConnectionResetError)r1poskwrrrrV6szRemoteDisconnected.__init__N)r5r6r7rVrrrrr5s )>Z email.parserrAZ email.messageriorrerrZ urllib.parser__all__rrrKrrrglobalsupdater __members__rrrr=r>compile fullmatchrsearchrrr(rZMessager)rEBufferedIOBaserrr ImportErrorrr0r rrr rrr r r r rrrrrrrrrrrGst               0