§
    ŽŸjõ  ã                  ó
  — d Z ddlmZ ddlZddlZddlZddlZddlm	Z	m
Z
mZmZmZ ddlmZ ddlmZmZmZ ddlmZ  G d	„ d
ej        ¦  «        Z G d„ de¦  «        Zd„ Zedk    rddlZ eej        d         ¦  «         dS dS )z4PostProcessor for serving reveal.js HTML slideshows.é    )ÚannotationsN)ÚgenÚ
httpserverÚioloopÚlogÚweb)ÚAsyncHTTPClient)ÚBoolÚIntÚUnicodeé   )ÚPostProcessorBasec                  ó2   — e Zd ZdZej        d„ ¦   «         ZdS )ÚProxyHandlerz9handler the proxies requests from a local prefix to a CDNc              #  ó(  K  — d                      | j        d         |g¦  «        }| j        d         }|                     |¦  «        V —}dD ],}||j        v r!|                      ||j        |         ¦  «         Œ-|                      |j        ¦  «         dS )zproxy a request to a CDNú/ÚcdnÚclient)zContent-TypezCache-ControlÚDatezLast-ModifiedÚExpiresN)ÚjoinÚsettingsÚfetchÚheadersÚ
set_headerÚfinishÚbody)ÚselfÚprefixÚurlÚ	proxy_urlr   ÚresponseÚheaders          úk/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbconvert/postprocessors/serve.pyÚgetzProxyHandler.get   sž   è è € ð —H’H˜dœm¨EÔ2°CÐ8Ñ9Ô9ˆ	Ø”˜xÔ(ˆØŸš iÑ0Ô0Ð0Ð0ˆà[ð 	Bð 	BˆFØ˜Ô)Ð)Ð)Ø—’ ¨Ô(8¸Ô(@ÑAÔAÐAøØ�Š�H”MÑ"Ô"Ð"Ð"Ð"ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	coroutiner%   © r&   r$   r   r      s5   € € € € € ØCÐCà„]ð	#ð 	#ñ „]ð	#ð 	#ð 	#r&   r   c                  ó¤  — e Zd ZdZ edd¬¦  «                             d¬¦  «        Z edd¬¦  «                             d¬¦  «        Z edd	¬¦  «                             d¬¦  «        Z	 ed
d¬¦  «                             d¬¦  «        Z
 edd¬¦  «                             d¬¦  «        Z edd¬¦  «                             d¬¦  «        Zd„ ZdS )ÚServePostProcessorzuPost processor designed to serve files

    Proxies reveal.js requests to a CDN if no local reveal.js is present
    Tz+Should the browser be opened automatically?)Úhelp)ÚconfigÚ aú  Specify what browser should be used to open slides. See
                      https://docs.python.org/3/library/webbrowser.html#webbrowser.register
                      to see how keys are mapped to browser executables. If
                      not specified, the default browser will be determined
                      by the `webbrowser`
                      standard library module, which allows setting of the BROWSER
                      environment variable to override it.
                      z6https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.5.0zURL for reveal.js CDN.z	reveal.jszURL prefix for reveal.jsz	127.0.0.1zThe IP address to listen on.i@  z!port for the server to listen on.c                ó4  ‡	‡
— t           j                             |¦  «        \  }}dt          j        d|ifdt          j        dd|z  ifg}d| j        v s| j                             d¦  «        rn®t           j                             t           j         	                    || j        ¦  «        ¦  «        r!| j
                             d| j        ¦  «         nK| j
                             d	| j        | j        ¦  «         |                     d
d| j        z  t          f¦  «         t          j        || j        t!          ¦   «         ¬¦  «        }| j
        t          _        t%          j        |¦  «        }|                     | j        | j        ¬¦  «         d| j        | j        |fz  Š
t/          d‰
z  ¦  «         t/          d¦  «         | j        rƒ	 t3          j        | j        pd¦  «        Š	ˆ	ˆ
fd„}t9          j        |¬¦  «                             ¦   «          n9# t2          j        $ r'}| j
                              d|¦  «         dŠ	Y d}~nd}~ww xY w	 tB          j"         #                    ¦   «                              ¦   «          dS # tH          $ r t/          d¦  «         Y dS w xY w)z+Serve the build directory with a webserver.z/(.+)Úpathr   r    z/%sz://z//zServing local %szRedirecting %s requests to %sr   z
/(%s)/(.*))r   r   )Úaddresszhttp://%s:%i/%szServing your slides at %sz!Use Control-C to stop this serverNc                 ó2   •— ‰                       ‰d¬¦  «        S )Né   )Únew)Úopen)Úbrowserr    s   €€r$   ú<lambda>z0ServePostProcessor.postprocess.<locals>.<lambda>c   s   ø€ ˜GŸLšL¨°!˜LÑ4Ô4€ r&   )ÚtargetzNo web browser found: %s.z
Interrupted)%Úosr3   Úsplitr   ÚStaticFileHandlerÚRedirectHandlerÚreveal_prefixÚ
startswithÚisdirr   r   ÚinfoÚ
reveal_cdnÚinsertr   ÚApplicationr	   Úapp_logr   Ú
HTTPServerÚlistenÚportÚipÚprintÚopen_in_browserÚ
webbrowserr%   r9   Ú	threadingÚThreadÚstartÚErrorÚwarningr   ÚIOLoopÚinstanceÚKeyboardInterrupt)r   ÚinputÚdirnameÚfilenameÚhandlersÚappÚhttp_serverÚbÚer9   r    s            @@r$   ÚpostprocesszServePostProcessor.postprocess@   s“  øø€ åœGŸMšM¨%Ñ0Ô0Ñˆ�à•sÔ,¨v°wÐ.?Ð@Ø•3Ô&¨°¸Ñ0@Ð(AÐBð-
ˆð
 �DÔ&Ð&Ð&¨$Ô*<×*GÒ*GÈÑ*MÔ*MÐ&àÝŒW�]Š]�2œ7Ÿ<š<¨°Ô1CÑDÔDÑEÔEð 	SàŒH�MŠMÐ,¨dÔ.@ÑAÔAÐAÐAàŒH�MŠMÐ9¸4Ô;MÈtÌÑ_Ô_Ð_Ø�OŠO˜A °Ô0BÑ BÅLÐQÑRÔRÐRåŒoØØ”Ý"Ñ$Ô$ð
ñ 
ô 
ˆð ”h�Œå Ô+¨CÑ0Ô0ˆØ×Ò˜4œ9¨d¬gÐÑ6Ô6Ð6Ø 4¤7¨D¬I°xÐ"@Ñ@ˆÝÐ)¨CÑ/Ñ0Ô0Ð0ÝÐ1Ñ2Ô2Ð2ØÔð 	ðÝ$œ.¨¬Ð)=¸Ñ>Ô>�Ø4Ð4Ð4Ð4Ð4�ÝÔ ¨Ð*Ñ*Ô*×0Ò0Ñ2Ô2Ð2Ð2øÝÔ#ð ð ð Ø”× Ò Ð!<¸aÑ@Ô@Ð@Ø������øøøøðøøøð	#ÝŒM×"Ò"Ñ$Ô$×*Ò*Ñ,Ô,Ð,Ð,Ð,øÝ ð 	#ð 	#ð 	#Ý�/Ñ"Ô"Ð"Ð"Ð"Ð"ð	#øøøs+   ÇAH ÈIÈH?È?IÉ0I: É:JÊJN)r'   r(   r)   r*   r
   ÚtagrM   r   r9   rD   r@   rK   r   rJ   r_   r,   r&   r$   r.   r.   #   s6  € € € € € ðð ð
 �d˜4Ð&WÐXÑXÔX×\Ò\Øð ]ñ ô €Oð ˆgØ
ðð
ñ 
ô 
÷ 
‚c�€cÑÔð ð �Ø@ÐGcðñ ô ç	‚c�€cÑÔð ð �G˜KÐ.HÐIÑIÔI×MÒMÐUYÐMÑZÔZ€MØ	ˆ�Ð#AÐ	BÑ	BÔ	B×	FÒ	FÈdÐ	FÑ	SÔ	S€BØˆ3ˆtÐ=Ð>Ñ>Ô>×BÒBÈ$ÐBÑOÔO€Dð,#ð ,#ð ,#ð ,#ð ,#r&   r.   c                ó8   — t          ¦   «         } || ¦  «         dS )z-allow running this module to serve the slidesN)r.   )r3   Úservers     r$   Úmainrc   o   s   € åÑ!Ô!€FØ
€Fˆ4�L„L€L€L€Lr&   Ú__main__)r*   Ú
__future__r   r<   rO   ÚtypingÚtrN   Útornador   r   r   r   r   Útornado.httpclientr	   Ú	traitletsr
   r   r   Úbaser   ÚRequestHandlerr   r.   rc   r'   ÚsysÚargvr,   r&   r$   ú<module>ro      sb  ðØ :Ð :ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à #Ð #Ð #Ð #Ð #Ð #ð#ð #ð #ð #ð #�3Ô%ñ #ô #ð #ð I#ð I#ð I#ð I#ð I#Ð*ñ I#ô I#ð I#ðXð ð ð ˆzÒÐØ€J€J€Jà€DˆŒ�!ŒÑÔÐÐÐð Ðr&   