+
    =O|j!  ã                  óÔ   € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ]P&                  ! R	]4        ! R
 R]4      t ! R R]4      tR# )é    )ÚannotationsN)ÚAny)ÚArbiter)ÚWorker)Úasyncio_run)ÚConfig)ÚServerz˜The `uvicorn.workers` module is deprecated. Please use `uvicorn-worker` package instead.
For more details, see https://github.com/Kludex/uvicorn-worker.c                  ó†   a € ] tR t^t$ RtRRRR/tR]R&   R V 3R lltR	 R
 ltR R lt	R R lt
R R ltR R ltRtV ;t# )ÚUvicornWorkerzj
A worker class for Gunicorn that interfaces with an ASGI consumer callable,
rather than a WSGI callable.
ÚloopÚautoÚhttpzdict[str, Any]ÚCONFIG_KWARGSc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úargsr   ÚkwargsÚreturnÚNone© )Úformats   "ÚHC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\uvicorn/workers.pyÚ__annotate__ÚUvicornWorker.__annotate__    s!   € ÷ (.ñ (.˜cð (.¨Sð (.°Tñ (.ó    c                	ó  <€ \         SV `  ! V/ VB  \        P                  ! R 4      pV P                  P
                  P                  Vn        VP                  V P                  P
                  P                  4       RVn	        \        P                  ! R4      pV P                  P                  P                  Vn        VP                  V P                  P                  P                  4       RVn	        RRRRRV P                  P                  RV P                  RV P                  R	V P                  R
V P                  P                   /pV P                  P"                  '       Ed   RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      RV P                  P$                  P'                  R4      /pVP)                  V4       V P                  P*                  R,          P,                  '       d+   V P                  P*                  R,          P,                  VR&   VP)                  V P.                  4       \1        R/ VB V n        R# )zuvicorn.errorFzuvicorn.accessÚappNÚ
log_configÚtimeout_keep_aliveÚtimeout_notifyÚcallback_notifyÚlimit_max_requestsÚforwarded_allow_ipsÚssl_keyfileÚkeyfileÚssl_certfileÚcertfileÚssl_keyfile_passwordÚpasswordÚssl_versionÚssl_cert_reqsÚ	cert_reqsÚssl_ca_certsÚca_certsÚssl_ciphersÚciphersÚbacklogr   )ÚsuperÚ__init__ÚloggingÚ	getLoggerÚlogÚ	error_logÚhandlersÚsetLevelÚlevelÚ	propagateÚ
access_logÚcfgÚ	keepaliveÚtimeoutr!   Úmax_requestsr#   Úis_sslÚssl_optionsÚgetÚupdateÚsettingsÚvaluer   r   Úconfig)Úselfr   r   ÚloggerÚconfig_kwargsÚ
ssl_kwargsÚ	__class__s   &*,   €r   r3   ÚUvicornWorker.__init__    s5  ø€ Ü‰Ò˜$Ð) &Ò)ä×"Ò" ?Ó3ˆØŸ(™(×,Ñ,×5Ñ5ˆŒØ�‰˜Ÿ™×*Ñ*×0Ñ0Ô1Ø ˆÔä×"Ò"Ð#3Ó4ˆØŸ(™(×-Ñ-×6Ñ6ˆŒØ�‰˜Ÿ™×+Ñ+×1Ñ1Ô2Ø ˆÔð �4Ø˜$Ø  $§(¡(×"4Ñ"4Ø˜dŸl™lØ˜t×3Ñ3Ø  $×"3Ñ"3Ø! 4§8¡8×#?Ñ#?ð
ˆð �8‰8�?�?‰?à˜tŸx™x×3Ñ3×7Ñ7¸	ÓBØ §¡× 4Ñ 4× 8Ñ 8¸Ó DØ&¨¯©×(<Ñ(<×(@Ñ(@ÀÓ(LØ˜tŸx™x×3Ñ3×7Ñ7¸ÓFØ §¡×!5Ñ!5×!9Ñ!9¸+Ó!FØ §¡× 4Ñ 4× 8Ñ 8¸Ó DØ˜tŸx™x×3Ñ3×7Ñ7¸	ÓBðˆJð × Ñ  Ô,à�8‰8×Ñ˜YÕ'×-×-Ð-Ø'+§x¡x×'8Ñ'8¸Õ'C×'IÑ'IˆM˜)Ñ$à×Ñ˜T×/Ñ/Ô0äÑ-˜}Ñ-ˆŽr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r   J   s   € ÷ 	3ñ 	3˜dñ 	3r   c                	ó  € V P                    F(  p\        P                  ! V\        P                  4       K*  	  \        P                  ! \        P                  V P                  4       \        P
                  ! \        P                  R 4       R# )FN)ÚSIGNALSÚsignalÚSIG_DFLÚSIGUSR1Úhandle_usr1Úsiginterrupt)rH   Úss   & r   Úinit_signalsÚUvicornWorker.init_signalsJ   sR   € ð —”ˆAÜ�MŠM˜!œVŸ^™^Ö,ñ ô 	�Š”f—n‘n d×&6Ñ&6Ô7ä×ÒœFŸN™N¨EÖ2r   c               ó   € V ^8„  d   QhRR/# rO   r   )r   s   "r   r   r   U   s   € ÷ Xñ X¨$ñ Xr   c                ó¤   € \         P                  ! 4       pVP                  \        P                  V P
                  \        P                  R4       R# )z‰Install a SIGQUIT handler on workers.

- https://github.com/Kludex/uvicorn/issues/1116
- https://github.com/benoitc/gunicorn/issues/2604
N)ÚasyncioÚget_running_loopÚadd_signal_handlerrR   ÚSIGQUITÚhandle_exit)rH   r   s   & r   Ú_install_sigquit_handlerÚ&UvicornWorker._install_sigquit_handlerU   s5   € ô ×'Ò'Ó)ˆØ×Ñ¤§¡°×0@Ñ0@Ä&Ç.Á.ÐRVÖWr   c               ó   € V ^8„  d   QhRR/# rO   r   )r   s   "r   r   r   _   s   € ÷ 0ñ 0˜dñ 0r   c              ƒ  	óL  "  € V P                   V P                  n        \        V P                  R 7      pV P	                  4        VP                  V P                  R7      G Rj  x€L
  VP                  '       g'   \        P                  ! \        P                  4       R# R#  L>5i)©rG   )ÚsocketsN)ÚwsgirG   r   r	   ra   Úserverf   ÚstartedÚsysÚexitr   ÚWORKER_BOOT_ERROR)rH   Úservers   & r   Ú_serveÚUvicornWorker._serve_   sk   é € ØŸ)™)ˆ�‰ŒÜ˜tŸ{™{Ô+ˆØ×%Ñ%Ô'Ø�l‰l 4§<¡<ˆlÓ0×0Ð0Ø�~�~ˆ~Ü�HŠH”W×.Ñ.Ö/ñ ñ 	1ùs   ‚A!B$Á#B"Á$B$Á:)B$c               ó   € V ^8„  d   QhRR/# rO   r   )r   s   "r   r   r   g   s   € ÷ Wñ W�Tñ Wr   c                	óh   € \        V P                  4       V P                  P                  4       R 7      # ))Úloop_factory)r   rn   rG   Úget_loop_factory©rH   s   &r   ÚrunÚUvicornWorker.rung   s"   € Ü˜4Ÿ;™;›=°t·{±{×7SÑ7SÓ7UÔVÐVr   c               ó   € V ^8„  d   QhRR/# rO   r   )r   s   "r   r   r   j   s   € ÷ ñ  tñ r   c              ƒ  	ó.   "  € V P                  4        R # 5i)N)Únotifyrt   s   &r   r!   ÚUvicornWorker.callback_notifyj   s   é € Ø�‰Žùs   ‚re   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r3   rX   ra   rn   ru   r!   Ú__static_attributes__Ú__classcell__)rL   s   @r   r   r      sH   ø‡ ñð
 &,¨V°V¸VÐ$D€M�>ÓD÷(.ð (.õT	3õXõ0õW÷ó r   r   c                  ó"   € ] tR t^ntRRRR/tRtR# )ÚUvicornH11Workerr   r\   r   Úh11r   N)r{   r|   r}   r~   r   r�   r   r   r   r„   r„   n   s   † Ø˜Y¨°Ð6„Mr   r„   )Ú
__future__r   r\   r4   rR   rj   ÚwarningsÚtypingr   Úgunicorn.arbiterr   Úgunicorn.workers.baser   Úuvicorn._compatr   Úuvicorn.configr   Úuvicorn.serverr	   ÚwarnÚDeprecationWarningr   r„   r   r   r   Ú<module>r�      sY   ðÝ "ã Û Û Û 
Û Ý å $Ý (å 'Ý !Ý !à ‡‚ðFàôôS�Fô Sôl7�}ö 7r   