ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ [c@sddlZddlmZddlZddlZyddlmZWn!ek rkddlmZnXdddgZde fdYZ ej dkrd Z n d Z e e dd Ze e ddZdZdZdaddZddZdS(iN(tpartial(t monotonic(ttimetNoWayToWaitForSocketErrort wait_for_readtwait_for_writecBseZRS((t__name__t __module__(((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyR siicCs ||S(N((tfnttimeout((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyt_retry_on_intr)scCs|dk r"|dkr"||S|dkr=td}n t|}xtry||SWqMttjfk r}|jdtj krq|t}|dkrd}n|tdkrMd}qMqMqMXqMWdS(Nitinf( tNonetfloatRtTruetOSErrortselectterrortargsterrnotEINTR(RR tdeadlinete((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyR -s"        c Cs| r| rtdng}g}|r?|j|n|rU|j|nttj|||}t||\}}} t|p|p| S(Ns2must specify at least one of read=True, write=True(t RuntimeErrortappendRRR tbool( tsocktreadtwriteR trchecktwcheckRtrreadytwreadytxready((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pytselect_wait_for_socketGscs| r| rtdnd}|r9|tjO}n|rO|tjO}ntjj||fd}tt||S(Ns2must specify at least one of read=True, write=Trueics&|dk r|d9}nj|S(Ni(R tpoll(tt(tpoll_obj(sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pytdo_pollfs  (RRtPOLLINtPOLLOUTR#tregisterRR (RRRR tmaskR&((R%sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pytpoll_wait_for_socketZs cOstddS(Nsno select-equivalent available(R(Rtkwargs((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pytnull_wait_for_socketnscCs@ytj}|jdWnttfk r7tSXtSdS(Ni(RR#tAttributeErrorRtFalseR(R%((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyt_have_working_pollrs  cOs=trtanttdr*tantat||S(NR(R0R+twait_for_socketthasattrRR"R-(RR,((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyR1s    cCst|dtd|S(s Waits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyRscCst|dtd|S(s Waits for writing to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyRs(ii(Rt functoolsRRtsysRRt ImportErrort__all__t ExceptionRt version_infoR R/R R"R+R-R0R1RR(((sB/opt/alt/python27/lib/python2.7/site-packages/urllib3/util/wait.pyts&