grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h™„ã@sRdZddlmZmZmZddlmZddlZddlZddl Z ddl m Z ddl mZddlZddlZddlZgd¢Zdadad d „Zd d „Zd d„Zdd„Zeadadejdddfdd„Zd1dd„Zdd„Zdd„ZGdd„dƒZ Gdd„dƒZ!ejfd d!„Z"d2d"d#„Z#ejfd$d%„Z$d&d'„Z%d(d)„Z&d*d+„Z'd,d-„Z(d.d/„Z)e*d0k�rNe"ƒdS)3z2.6é)ÚStringIOÚBytesIOÚ TextIOWrapper)ÚMappingN)Ú FeedParser)ÚMessage) ÚMiniFieldStorageÚ FieldStorageÚparseÚparse_multipartÚ parse_headerÚtestÚprint_exceptionÚ print_environÚ print_formÚprint_directoryÚprint_argumentsÚprint_environ_usageÚcGsDtr*ts*zttdƒaWnty(Yn0ts4tantat|ŽdS)NÚa)ÚlogfileÚlogfpÚopenÚOSErrorÚnologÚlogÚdolog©Zallargs©rú(/opt/alt/python39/lib64/python3.9/cgi.pyÚinitlog8s r cGst ||d¡dS)NÚ )rÚwrite)ZfmtÚargsrrrr[srcGsdS©Nrrrrrr_srcCsdatrt ¡datadS)Nr)rrÚcloser rrrrrÚcloselogcs r&ú&c Cs^|durtj}t|dƒr |j}nd}t|tƒr4|j}d|vrDd|d<|ddk�r t|dƒ\}}|dkrxt|||d�S|d kr²t |d ƒ}t r |t kr t d ƒ‚|  |¡  |¡} nd } d |vrØ| rÊ| d} | |d } n*tjdd…�r| rô| d} | tjd} | |d <nÕóz#parse_multipart..)r<ÚformatrZset_typeÚKeyErrorr )r?rDr(rKr-rHrCrJrrOrr ¼s    ÿr ccs˜|dd…dkr”|dd…}| d¡}|dkr`| dd|¡| dd|¡dr`| d|d¡}q&|dkrpt|ƒ}|d|…}| ¡V||d…}qdS)Nr2ú;rú"ú\"é)ÚfindÚcountÚlenÚstrip)ÚsÚendÚfrrrÚ _parseparam×s  (  r_cCs¸td|ƒ}| ¡}i}|D]’}| d¡}|dkr|d|… ¡ ¡}||dd… ¡}t|ƒdkr¦|d|dkr‚dkr¦nn |dd…}| dd ¡ d d¡}|||<q||fS) NrTú=rr2rWéÿÿÿÿrUz\\ú\rV)r_Ú__next__rXr[ÚlowerrZrG)ÚlineÚpartsÚkeyrDÚpÚiÚnameÚvaluerrrr ãs  ,  r c@s<eZdZdZdZdZdZiZdZiZ iZ dd„Z dd„Z dS)rNcCs||_||_dSr$©rjrk©ÚselfrjrkrrrÚ__init__ szMiniFieldStorage.__init__cCsd|j|jfS)NzMiniFieldStorage(%r, %r)rl©rnrrrÚ__repr__szMiniFieldStorage.__repr__) Ú__name__Ú __module__Ú __qualname__ÚfilenameÚlistÚtypeÚfileÚ type_optionsÚ dispositionÚdisposition_optionsrJrorqrrrrrûsrc @súeZdZdddejdddddddf dd„Zd d „Zd d „Zd d„Zdd„Z dd„Z dd„Z dd„Z d:dd„Z d;dd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„ZdZd'd(„Zd)d*„Zd+Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„ZdS)rQz)FieldStorage.getvalue..©r6rvrk©rnrgÚdefaultrkrrrÚgetvalues  zFieldStorage.getvaluecCs4||vr,||}t|tƒr$|djS|jSn|SdS©Nrr¤r¥rrrÚgetfirsts   zFieldStorage.getfirstcCs:||vr2||}t|tƒr(dd„|DƒS|jgSngSdS)NcSsg|] }|j‘qSrr r¡rrrr£.rQz(FieldStorage.getlist..r¤)rnrgrkrrrrL)s   zFieldStorage.getlistcCs*|jdurtdƒ‚ttdd„|jDƒƒƒS)Nr›css|] }|jVqdSr$©rj©rMržrrrÚ 8rQz$FieldStorage.keys..)rvr…Úsetrprrrr—4s zFieldStorage.keyscs*|jdurtdƒ‚t‡fdd„|jDƒƒS)Nr›c3s|]}|jˆkVqdSr$rªr«©rgrrr¬>rQz,FieldStorage.__contains__..)rvr…Úany)rnrgrr®rÚ __contains__:s zFieldStorage.__contains__cCs t| ¡ƒSr$)rZr—rprrrÚ__len__@szFieldStorage.__len__cCs|jdurtdƒ‚t|jƒS)NzCannot be converted to bool.)rvr…ÚboolrprrrÚ__bool__Ds zFieldStorage.__bool__c Cs–|j |j¡}t|tƒs0td|jt|ƒjfƒ‚| |j |j ¡}|j rT|d|j 7}t j j||j|j|j |j |j|jd�}dd„|Dƒ|_| ¡dS)Nú%s should return bytes, got %sr'©r(rKr€r-cSsg|]\}}t||ƒ‘qSr©r©rMrgrkrrrr£VrQz0FieldStorage.read_urlencoded..)r?r;rŒr6r†r:rwrrr<r(rKr‚r>r Ú parse_qslrArBr€r-rvÚ skip_lines)rnrEÚqueryrrrrŽIs ÿ ýzFieldStorage.read_urlencodedc CsL|j}t|ƒstd|fƒ‚g|_|jrftjj|j|j|j |j |j |j |j d�}|j dd„|Dƒ¡|jpp|j}|j ¡}t|tƒsžtd|jt|ƒjfƒ‚|jt|ƒ7_| ¡d|jkrä|rä|j ¡}|jt|ƒ7_q°|j }|du�r|t|jƒ8}tƒ} d} |j ¡} | | 7} |  ¡�s �q0�q | �s:�q@|jt| ƒ7_|  |  |j |j ¡¡|  ¡} d| v�rz| d=|jdu�rŠdn |j|j} ||j| ||||| |j |j ||j ƒ }|du�rô|d 8}|j�râ|t|jƒ8}|d k�rôtd ƒ‚|j|j7_|j |¡|j �s@|j|j!k�r4d k�rnn�q@�q| "¡dS) Nz&Invalid boundary in multipart form: %rrµcss|]\}}t||ƒVqdSr$r¶r·rrrr¬frQz*FieldStorage.read_multi..r´ó--rQr}r2rzMax number of fields exceeded)#r‹Úvalid_boundaryr:rvr‚r>r r¸rArBr(rKr€r-ÚextendÚFieldStorageClassÚ __class__r?r~r6r†rwrrrˆrZr[rZfeedr<r%r‰rœr�rŒr¹)rnr@rArBZibrºÚklassZ first_liner€ÚparserZhdr_textÚdatarJr‰Úpartrrrr�[sr ý   ÿÿ      ÿþ   (zFieldStorage.read_multicCs4|jdkr| ¡| ¡n| ¡|j d¡dSr¨)rŒÚ read_binaryr¹Ú read_linesrxr™rprrrr� s   zFieldStorage.read_singlei cCs’| ¡|_|j}|dkrŽ|dkrŽ|j t||jƒ¡}t|tƒsVt d|jt |ƒj fƒ‚|j t |ƒ7_ |std|_qŽ|j |¡|t |ƒ}qdS)Nrr´ra)Ú make_filerxrŒr?r;ÚminÚbufsizer6r†r:rwrrrˆrZr�r")rnZtodorÂrrrrÄ«s  ÿ zFieldStorage.read_binarycCs@|jrtƒ|_|_ntƒ|_|_|jr4| ¡n| ¡dSr$)rŠrrxÚ_FieldStorage__filerr‡Úread_lines_to_outerboundaryÚread_lines_to_eofrprrrrżs  zFieldStorage.read_linescCsv|jdurF|j ¡t|ƒdkrF| ¡|_|j ¡}|j |¡d|_|jrZ|j |¡n|j | |j |j ¡¡dS)Niè) rÉÚtellrZrÆrxr§r"rŠr<r(rK)rnrerÂrrrZ__writeÇs    zFieldStorage.__writecCs:|j d¡}|jt|ƒ7_|s*d|_q6| |¡qdS)Néra)r?r~rˆrZr�Ú_FieldStorage__write)rnrerrrrËÖs  zFieldStorage.read_lines_to_eofc CsJd|j}|d}d}d}d}|jdurFd|jkr>|krFnn�qF|j d¡}|jt|ƒ7_|t|ƒ7}|s~d|_�qF|dkr’||}d}| d¡rÆ|rÆ| ¡}||kr´�qF||krÆd|_�qF|}|  d ¡rêd }|dd …}d}nL|  d ¡�r d }|dd…}d}n*|  d¡�r.d}|dd…}d }nd}d }|  ||¡qdS) Nr»rQTrrÍraó r2s éþÿÿÿó F) r‡r‰r?r~rˆrZr�Ú startswithÚrstripÚendswithrÎ) rnÚ next_boundaryÚ last_boundaryZdelimÚlast_line_lfendZ_readreÚ strippedlineZodelimrrrrÊàsN $        z(FieldStorage.read_lines_to_outerboundarycCs�|jr |jrdSd|j}|d}d}|j d¡}|jt|ƒ7_|sPd|_qŒ| d¡r€|r€| ¡}||krpqŒ||kr€d|_qŒ| d¡}q&dS)Nr»TrÍrar2rÑ)r‡r�r?r~rˆrZrÔr[)rnrÕrÖr×rerØrrrr¹s$   zFieldStorage.skip_linescCs&|jrt d¡Stjd|jdd�SdS)Nzwb+zw+r!)r(Únewline)rŠÚtempfileZ TemporaryFiler(rprrrrÆ(s  ÿzFieldStorage.make_file)N)N) rrrsrtÚosr@ror“r”r•rqr˜ršrŸr§r©rLr—r°r±r³rŽr¾r�r�rÈrÄrÅrÎrËrÊr¹rÆrrrrr s@+ý &   E   2r cCsÂtdƒtƒtjt_zNtƒ}tƒtƒt|ƒt|ƒt ƒdd„}|fdd„}tdƒ|ƒWnt ƒYn0tdƒda z&tƒ}tƒtƒt|ƒt|ƒWnt ƒYn0dS) NzContent-type: text/htmlcSs tdƒdS)Nz,testing print_exception() -- italics?)Úexecrrrrr^[sztest..fcSs |ƒdSr$r)r^rrrÚg]sztest..gz9

What follows is a test, not an actual exception:

z*

Second try with a small maxlen...

é2) Úprintr3ÚstdoutÚstderrr rrrrrrr9)r@Úformr^rÝrrrr Js4    r c Csx|durt ¡\}}}ddl}tƒtdƒ| ||¡| ||¡}tdt d |dd…¡¡t |d¡fƒ~dS)Nrz+

Traceback (most recent call last):

z
%s%s
rra) r3Úexc_infoÚ tracebackrßÚ format_tbÚformat_exception_onlyÚhtmlÚescapeÚjoin)rwrkÚtbr‰rärvrrrrqs  ÿ þrc Cs\t| ¡ƒ}tƒtdƒtdƒ|D]"}tdt |¡dt ||¡ƒq&tdƒtƒdS)Nz

Shell Environment:

ú
ú
ú
ú
)Úsortedr—rßrçrè)r@r—rgrrrrs  rcCs t| ¡ƒ}tƒtdƒ|s&tdƒtdƒ|D]Z}tdt |¡ddd�||}tdt tt|ƒƒ¡d ƒtd t t|ƒ¡ƒq2td ƒtƒdS) Nz

Form Contents:

z

No form fields.rërìú:ú )r]zzrírî)rïr—rßrçrèÚreprrw)râr—rgrkrrrrŠs rc Csltƒtdƒz t ¡}Wn8tyR}z tdt t|ƒ¡ƒWYd}~nd}~00tt |¡ƒtƒdS)Nz#

Current Working Directory:

zOSError:)rßrÛÚgetcwdrrçrèÚstr)ÚpwdÚmsgrrrršs *rcCs(tƒtdƒtƒttjƒtƒdS)Nz

Command Line Arguments:

)rßr3r=rrrrr¦s  rcCs tdƒdS)NaØ

These environment variables could have been set:

  • AUTH_TYPE
  • CONTENT_LENGTH
  • CONTENT_TYPE
  • DATE_GMT
  • DATE_LOCAL
  • DOCUMENT_NAME
  • DOCUMENT_ROOT
  • DOCUMENT_URI
  • GATEWAY_INTERFACE
  • LAST_MODIFIED
  • PATH
  • PATH_INFO
  • PATH_TRANSLATED
  • QUERY_STRING
  • REMOTE_ADDR
  • REMOTE_HOST
  • REMOTE_IDENT
  • REMOTE_USER
  • REQUEST_METHOD
  • SCRIPT_NAME
  • SERVER_NAME
  • SERVER_PORT
  • SERVER_PROTOCOL
  • SERVER_ROOT
  • SERVER_SOFTWARE
In addition, HTTP headers sent by the server may be passed in the environment as well. Here are some common variable names:
  • HTTP_ACCEPT
  • HTTP_CONNECTION
  • HTTP_HOST
  • HTTP_PRAGMA
  • HTTP_REFERER
  • HTTP_USER_AGENT
)rßrrrrr­srcCs(ddl}t|tƒrd}nd}| ||¡S)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)Úrer6r†Úmatch)r\r÷Z _vb_patternrrrr¼Üs  r¼Ú__main__)rFrGr')NNNN)+Ú __version__ÚiorrrÚcollections.abcrr3rÛZ urllib.parser>Z email.parserrZ email.messagerrçr„rÚÚ__all__rrr rrr&rr9r@r r r_r rr r rrrrrrr¼rrrrrrÚsR   # ÿ F  :'   /