o ö]Lbî ã@sPddlmZddlZddlmZddlmZddlmZddlmZd d „Z dS) é)Úabsolute_importNé)Úgetattr)Úpycompat)Úprocutilé)Úcommonc s”t tj¡t tj¡tt tj¡ƒ}|  dd¡|  dd¡  d¡r:|d}|d  |¡r:|dt |ƒd…|d<tj}|  dd¡  ¡dkrOt |tjj¡}||d<tj|d <d |d <d |d <d|d<d|d<|  dd¡  ¡dvrwd|d<nd|d<g‰g‰tj‰‡‡‡fdd„‰d‡‡‡fdd„ }|||ƒ}z'|D]}ˆ|ƒq›ˆs´ˆdƒWt|ddd„ƒƒdSWt|ddd„ƒƒdSt|ddd„ƒƒw) NÚ PATH_INFOÚÚSERVER_SOFTWAREz Microsoft-IISÚ SCRIPT_NAMEÚ HTTP_EXPECTz 100-continuez wsgi.inputz wsgi.errors)rrz wsgi.versionFzwsgi.multithreadTzwsgi.multiprocessz wsgi.run_onceÚHTTPSÚoff)ÚonÚ1ÚyesÚhttpszwsgi.url_schemeÚhttpcs„ˆstdƒ‚ˆs7ˆ\}}ˆdd…<ˆ dt |¡¡|D]\}}ˆ dt |¡t |¡f¡qˆ d¡ˆ |¡ˆ ¡dS)Nswrite() before start_response()s Status: %s s%s: %s s )ÚAssertionErrorÚwriterÚbytesurlÚflush)ÚdataÚstatusÚresponse_headersÚhkÚhv)Ú headers_sentÚ headers_setÚout©ú9/usr/lib/python3/dist-packages/mercurial/hgweb/wsgicgi.pyr7s ÿÿ   zlaunch..writecsJ|rzˆr|d|d|dƒ‚W~n~wˆrtdƒ‚||gˆdd…<ˆS)NrrrsHeaders already set!)r)rrÚexc_info)rrrr!r"Ústart_responseIsþzlaunch..start_responseóÚclosecSsdS©Nr!r!r!r!r"Ú^szlaunch..r')rÚ setbinaryÚstdinÚstdoutÚdictrÚ iteritemsÚosÚenvironÚ setdefaultÚgetÚ startswithÚlenÚlowerrÚcontinuereaderrÚstderrr)Ú applicationr/Ú scriptnamer*r$ÚcontentÚchunkr!)rrr rr"ÚlaunchsD        ý*r;) Ú __future__rr.rrr Úutilsrrr;r!r!r!r"Ús