+
    PV-ju«  ã                   óD  a € RP ty0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtH t H!t!H"t"H#t#H$t$ ^ RI%H&t&H't( ^R	I)H*t* ^R
IH+t+H,t,H-t- ^RI.H/t/H0t0 ^RI1H2t2 ^RI3H4t4H5t5 ^RI6H7t7H8t8H9t9H:t:H;t; ^RI<H=t= ^RI>H?t? ^RI@HAtAHBtB ^RICHDtD RQtE]'       d   ^RIFHGtG ]H]I]I3,          tJM]HtJ]P–                  RR8  d   ]L3MRStM]N! ]O! ]P](P¢                  ! R4      R,          4      4      tR] ^ k ]P¦                  ! R 4      tT] ^k ]P¦                  ! R!4      tU] ^k ]P¬                  ! R"4      tW] ^k ]
P°                  ! 4       R#8H  tY] ^k ]]?.]]BR,          ,          3,          tZ]N]"R,          ][]I,          3,          t\]Pº                  ! ]P¬                  R$R%7      t^ ! R& R']#R(R)7      t_ ! R* R]]R,          4      t` ! R+ R]PÂ                  4      tb ! R, R]J]+4      tc ! R- R.]c4      tdR/ R0 lte ! R1 R]`4      tf ! R2 R]f4      tg ! R3 R]f4      th ! R4 R5]`4      ti ! R6 R]i4      tj ! R7 R8]i4      tk ! R9 R:]PÂ                  4      tl ! R; R<]l4      tm ! R= R>]m4      tn ! R? R@]k4      to ! RA R]b4      tp ! RB RC]b4      tq ! RD R]-4      tr ! RE RF]]]`,          ]]`,          4      ts ! RG RH]]]b,          ]]b,          4      tt ! RI R],]]I]`3,          4      tuRJ RK ltvRL RM ltwRN RO ltxR# )Té    N)Ú	AwaitableÚCallableÚ	ContainerÚ	GeneratorÚIterableÚIteratorÚMappingÚSized)Úwraps)ÚPath)ÚPattern)ÚMappingProxyType)ÚTYPE_CHECKINGÚAnyÚFinalÚNoReturnÚOptionalÚ	TypedDictÚcast)ÚURLÚ__version__)Úhdrs)ÚAbstractMatchInfoÚAbstractRouterÚAbstractView)ÚDEBUGÚDEFAULT_CHUNK_SIZE)ÚHttpVersion11)ÚHandlerÚPathLike)ÚHTTPExceptionÚHTTPExpectationFailedÚHTTPForbiddenÚHTTPMethodNotAllowedÚHTTPNotFound)ÚFileResponse©ÚRequest)ÚResponseÚStreamResponse)ÚAbstractRouteDefÚUrlDispatcherÚUrlMappingMatchInfoÚAbstractResourceÚResourceÚPlainResourceÚDynamicResourceÚAbstractRouteÚResourceRouteÚStaticResourceÚView)ÚApplicationÚ.:Né   Nz$^[0-9A-Za-z!#\$%&'\*\+\-\.\^_`\|~]+$z*(\{[_a-zA-Z][^{}]*(?:\{[^{}]*\}[^{}]*)*\})Ú/ÚWindowsT)Úquotec                   ó,   a € ] tR t^Zt o V 3R ltRtV tR# )Ú	_InfoDictc                ó²   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[S[ ,          ;R&   S[;R&   S[ ;R&   S[S[ R3,          ;R&   R;R	&   S[ ;R
&   R;R&   S[;R&   # )r8   ÚpathÚ	formatterÚpatternÚ	directoryÚprefixr2   Úroutesr6   ÚappÚdomainÚAbstractRuleMatchingÚruleÚhttp_exception)Ústrr   r   r	   r!   )ÚformatÚ__classdict__s   "€Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/aiohttp/web_urldispatcher.pyÚ__annotate__Ú_InfoDict.__annotate__Z   sŽ   ø‡ ‚ Ù
�Iñ ñ �Nñ ñ ‘S�\Ññ	 ñ �Oñ ñ �Kñ ñ ‘C˜Ð(Õ)Ñ)ñ ð 
Ññ ñ �Kñ ð !Ñ ñ ñ  "Ñ!ò! ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rL   s   @rM   r=   r=   Z   s   ø‡ ‡ „ rP   r=   F)Útotalc                   ó’  a € ] tR t^mt o RR/V 3R lR llt]V 3R lR l4       t]]P                  V 3R lR l4       4       t	]P                  V 3R	 lR
 l4       t
]P                  V 3R lR l4       t]P                  V 3R lR l4       t]P                  V 3R lR l4       tV 3R lR lt]P                  V 3R lR l4       tRtV tR# )r.   ÚnameNc                ó2   <€ V ^8„  d   QhRS[ R,          RR/# ©r8   r\   NÚreturn©rJ   )rK   rL   s   "€rM   rN   ÚAbstractResource.__annotate__n   s   ø€ ÷ ñ ¡ d¥
ð °dñ rP   c               ó   € Wn         R # ©N©Ú_name©Úselfr\   s   &$rM   Ú__init__ÚAbstractResource.__init__n   s   € ØŽ
rP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r8   r_   Nr`   )rK   rL   s   "€rM   rN   ra   r   s   ø€ ÷ ñ ‘c˜D•jñ rP   c                ó   € V P                   # rc   rd   ©rg   s   &rM   r\   ÚAbstractResource.nameq   ó   € à�z‰zÐrP   c                ó    <€ V ^8„  d   QhRS[ /# ©r8   r_   r`   )rK   rL   s   "€rM   rN   ra   w   s   ø€ ÷ ñ ™3ñ rP   c                ó   € R# )zGExposes the resource's canonical path.

For example '/foo/bar/{name}'

NrQ   rm   s   &rM   Ú	canonicalÚAbstractResource.canonicalu   ó   ‚ rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   Úkwargsr_   ©rJ   r   )rK   rL   s   "€rM   rN   ra      s   ø€ ÷ Añ A¡ð A©ñ ArP   c                ó   € R# )z2Construct url for resource with additional params.NrQ   )rg   rw   s   &,rM   Úurl_forÚAbstractResource.url_for~   ru   rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r8   Úrequestr_   ©r(   Ú_Resolve)rK   rL   s   "€rM   rN   ra   ƒ   s   ø€ ÷ ñ ¡Wð ±ñ rP   c              ƒ  ó   "  € R# 5i)zGResolve resource.

Return (UrlMappingMatchInfo, allowed_methods) pair.
NrQ   ©rg   r~   s   &&rM   ÚresolveÚAbstractResource.resolve‚   ó   é ‚ ùó   ‚c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r8   rC   r_   Nr`   )rK   rL   s   "€rM   rN   ra   Š   s   ø€ ÷ ñ ¡ð ¨ñ rP   c                ó   € R# )zGAdd a prefix to processed URLs.

Required for subapplications support.
NrQ   ©rg   rC   s   &&rM   Ú
add_prefixÚAbstractResource.add_prefix‰   ru   rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   ©r=   )rK   rL   s   "€rM   rN   ra   ‘   ó   ø€ ÷ Jñ J™)ñ JrP   c                ó   € R# ©z;Return a dict with additional info useful for introspectionNrQ   rm   s   &rM   Úget_infoÚAbstractResource.get_info�   ru   rP   c                ó   <€ V ^8„  d   QhRR/# rk   rQ   )rK   rL   s   "€rM   rN   ra   ”   s   ø€ ÷ ñ ˜ñ rP   c                ó   € R # rc   rQ   rm   s   &rM   ÚfreezeÚAbstractResource.freeze”   s   € ÙrP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r8   r?   r_   ©rJ   Úbool)rK   rL   s   "€rM   rN   ra   ˜   s   ø€ ÷ /ñ /™cð /¡dñ /rP   c                ó   € R# )z Perform a raw match against pathNrQ   ©rg   r?   s   &&rM   Ú	raw_matchÚAbstractResource.raw_match—   ru   rP   rd   )rR   rS   rT   rU   rh   Úpropertyr\   ÚabcÚabstractmethodrs   rz   rƒ   r‹   r’   r–   rž   rW   rX   rY   s   @rM   r.   r.   m   sÜ   ø‡ € ð¨T÷ ò ð ÷ó ðð Ø×Ñ÷ó ó ðð 	×Ñ÷Aó ðAð 	×Ñ÷ó ðð 	×Ñ÷ó ðð 	×Ñ÷Jó ðJ÷ð ð 	×Ñ÷/ó ö/rP   c                   ó>  a € ] tR t^œt o RRRR/V 3R lR llt]V 3R lR l4       t]V 3R lR	 l4       t]]P                  V 3R
 lR l4       4       t
]V 3R lR l4       t]P                  V 3R lR l4       t]P                  V 3R lR l4       tV 3R lR ltRtV tR# )r2   Úexpect_handlerNÚresourcec          
      ór   <€ V ^8„  d   QhRS[ RS[S[S[,          ,          RS[R,          RS[R,          RR/# )r8   ÚmethodÚhandlerr¤   Nr¥   r_   )rJ   r   Útyper   Ú_ExpectHandlerr.   )rK   rL   s   "€rM   rN   ÚAbstractRoute.__annotate__�   sQ   ø€ ÷ 5"ñ 5"áð5"ñ ™4¡Õ-Õ-ð5"ñ
 '¨Õ-ð5"ñ # TÕ)ð5"ð 
ñ5"rP   c               óŒ  a€ Vf   \         p\        P                  ! V4      '       g=   \        P                  R8  d   \
        P                  ! V4      '       g   Q RV: 24       hVP                  4       p\        P                  V4      '       g   \        V R24      h\        V4      '       g   Q V4       h\        P                  ! V4      '       g2   \        P                  R8  d   \
        P                  ! V4      '       d   M©\        P                  ! V4      '       d+   \        '       d   Q h\        P                  ! R\        4       Mc\!        V\"        4      '       d   \%        V\&        4      '       d   M6\        P                  ! R\        4       \)        V4      R V3R ll4       pVoTpWn        W n        W0n        W@n        R # )NzCoroutine is expected, got z is not allowed HTTP methodz6Bare generators are deprecated, use @coroutine wrapperz-Bare functions are deprecated, use async onesc                ó0   € V ^8„  d   QhR\         R\        /# r}   ©r(   r*   )rK   s   "rM   rN   Ú,AbstractRoute.__init__.<locals>.__annotate__Å   s   € ÷ ñ ¬wð ¼>ñ rP   c              “   ó    <"  € S! V 4      p\         P                  ! V4      '       d   VG R j  x€L
 p\        V\        4      '       g   Q hV#  L5irc   )ÚasyncioÚiscoroutineÚ
isinstancer*   )r~   ÚresultÚold_handlers   & €rM   Úhandler_wrapperÚ/AbstractRoute.__init__.<locals>.handler_wrapperÄ   sE   øé € á$ WÓ-�Ü×&Ò& v×.Ò.Ø#)Ÿ\�FÜ! &¬.×9Ò9Ð9Ð9Ø�ñ *ùs   ƒ*A­A®A)é   é   )Ú_default_expect_handlerÚinspectÚiscoroutinefunctionÚsysÚversion_infor±   ÚupperÚHTTP_METHOD_REÚmatchÚ
ValueErrorÚcallableÚisgeneratorfunctionr   ÚwarningsÚwarnÚDeprecationWarningr³   r©   Ú
issubclassr   r   Ú_methodÚ_handlerÚ_expect_handlerÚ	_resource)rg   r§   r¨   r¤   r¥   r¶   rµ   s   &&&$$ @rM   rh   ÚAbstractRoute.__init__�   sh  ø€ ð Ò!Ü4ˆNä×*Ò*¨>×:Ò:Ü×Ñ˜wÔ&¬7×+FÒ+FÀ~×+VÒ+Vð	<à(¨Ñ(:Ð;ó	<ð 
ð —‘“ˆÜ×#Ñ# F×+Ò+Ü ˜xÐ'BÐCÓDÐDä˜× Ò Ð) 'Ó)Ð Ü×&Ò& w×/Ò/Ü×Ñ˜wÔ&¬7×+FÒ+FÀw×+OÒ+OàÜ×(Ò(¨×1Ò1ß‹}Ø�uÜ�MŠMØHÜ"õô ˜¤×&Ò&¬:°g¼|×+LÒ+LØä�MŠMØ?ÔASôô �7‹^÷ó ðð "ˆKØ%ˆGàŒØŒØ-ÔØ!ŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r«   Õ   s   ø€ ÷ ñ ™ñ rP   c                ó   € V P                   # rc   )rÉ   rm   s   &rM   r§   ÚAbstractRoute.methodÔ   ó   € à�|‰|ÐrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   ©r   )rK   rL   s   "€rM   rN   r«   Ù   s   ø€ ÷ ñ ™ñ rP   c                ó   € V P                   # rc   )rÊ   rm   s   &rM   r¨   ÚAbstractRoute.handlerØ   s   € à�}‰}ÐrP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rk   r`   )rK   rL   s   "€rM   rN   r«   Þ   s   ø€ ÷ Gñ G‘c˜D•jñ GrP   c                ó   € R# )z8Optional route's name, always equals to resource's name.NrQ   rm   s   &rM   r\   ÚAbstractRoute.nameÜ   ru   rP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rk   ©r.   )rK   rL   s   "€rM   rN   r«   â   s   ø€ ÷ ñ Ñ*¨TÕ1ñ rP   c                ó   € V P                   # rc   )rÌ   rm   s   &rM   r¥   ÚAbstractRoute.resourceá   s   € à�~‰~ÐrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r«   æ   r�   rP   c                ó   € R# r‘   rQ   rm   s   &rM   r’   ÚAbstractRoute.get_infoå   ru   rP   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# ©r8   Úargsrw   r_   rx   )rK   rL   s   "€rM   rN   r«   ê   s"   ø€ ÷ >ñ >™Sð >©Cð >±Cñ >rP   c                ó   € R# )ú/Construct url for route with additional params.NrQ   ©rg   râ   rw   s   &*,rM   rz   ÚAbstractRoute.url_foré   ru   rP   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# ©r8   r~   r_   Nr®   )rK   rL   s   "€rM   rN   r«   í   s    ø€ ÷ 3ñ 3±'ð 3¹nÈtÕ>Sñ 3rP   c              ƒ  ó@   "  € V P                  V4      G R j  x€L
 #  L5irc   )rË   r‚   s   &&rM   Úhandle_expect_headerÚ"AbstractRoute.handle_expect_headerí   s   é € Ø×)Ñ)¨'Ó2×2Ð2Ñ2ùs   ‚—˜)rË   rÊ   rÉ   rÌ   )rR   rS   rT   rU   rh   r    r§   r¨   r¡   r¢   r\   r¥   r’   rz   rê   rW   rX   rY   s   @rM   r2   r2   œ   sÄ   ø‡ € ð5"ð
 15ð5"ð -1÷5"ò 5"ðn ÷ó ðð ÷ó ðð Ø×Ñ÷Gó ó ðGð ÷ó ðð 	×Ñ÷Jó ðJð 	×Ñ÷>ó ð>÷3ö 3rP   c                   óh  a a€ ] tR t^ñt oRtV3R lV 3R llt]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t	]V3R	 lR
 l4       t
V3R lR lt]V3R lR l4       tV3R lR lt]V3R lR l4       t]P                  V3R lR l4       tV3R lR ltV3R lV 3R lltRtVtV ;t# )r-   c                ó@   <€ V ^8„  d   QhRS[ S[S[3,          RS[RR/# )r8   Ú
match_dictÚrouter_   N)ÚdictrJ   r2   )rK   rL   s   "€rM   rN   Ú UrlMappingMatchInfo.__annotate__õ   s*   ø€ ÷ ñ ¡4©©S¨¥>ð ¹-ð ÈDñ rP   c                ó\   <€ \         SV `  V4       W n        . V n        R V n        RV n        R # )NF)Úsuperrh   Ú_routeÚ_appsÚ_current_appÚ_frozen)rg   rî   rï   Ú	__class__s   &&&€rM   rh   ÚUrlMappingMatchInfo.__init__õ   s+   ø€ Ü‰Ñ˜Ô$ØŒØ(*ˆŒ
Ø04ˆÔØˆŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rÓ   )rK   rL   s   "€rM   rN   rñ   ý   s   ø€ ÷ #ñ #™ñ #rP   c                ó.   € V P                   P                  # rc   )rô   r¨   rm   s   &rM   r¨   ÚUrlMappingMatchInfo.handlerü   s   € à�{‰{×"Ñ"Ð"rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )r2   )rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ ñ ‘}ñ rP   c                ó   € V P                   # rc   )rô   rm   s   &rM   rï   ÚUrlMappingMatchInfo.route   s   € à�{‰{ÐrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )rª   )rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ 0ñ 0¡ñ 0rP   c                ó.   € V P                   P                  # rc   )rô   rê   rm   s   &rM   r¤   Ú"UrlMappingMatchInfo.expect_handler  s   € à�{‰{×/Ñ/Ð/rP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rk   ©r!   )rK   rL   s   "€rM   rN   rñ   	  s   ø€ ÷ ñ ¡°Õ 4ñ rP   c                ó   € R # rc   rQ   rm   s   &rM   rI   Ú"UrlMappingMatchInfo.http_exception  ó   € árP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ &ñ &™)ñ &rP   c                ó6   € V P                   P                  4       # rc   )rô   r’   rm   s   &rM   r’   ÚUrlMappingMatchInfo.get_info  s   € Ø�{‰{×#Ñ#Ó%Ð%rP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# )r8   r_   )r6   .)Útuple)rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ !ñ !‘eÐ.Õ/ñ !rP   c                ó,   € \        V P                  4      # rc   )r  rõ   rm   s   &rM   ÚappsÚUrlMappingMatchInfo.apps  s   € ä�T—Z‘ZÓ Ð rP   c                ó"   <€ V ^8„  d   QhRRRR/# ©r8   rE   r6   r_   NrQ   )rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ "ñ "˜=ð "¨Tñ "rP   c                ó    € V P                   '       d   \        R 4      hV P                  f   Wn        V P                  P	                  ^ V4       R# )z-Cannot change apps stack after .freeze() callN)r÷   ÚRuntimeErrorrö   rõ   Úinsert©rg   rE   s   &&rM   Úadd_appÚUrlMappingMatchInfo.add_app  s=   € Ø�<�<ˆ<ÜÐNÓOÐOØ×ÑÒ$Ø #ÔØ�
‰
×Ñ˜!˜SÖ!rP   c                ó   <€ V ^8„  d   QhRR/# )r8   r_   r6   rQ   )rK   rL   s   "€rM   rN   rñ     s   ø€ ÷ ñ ˜]ñ rP   c                ó*   € V P                   pVf   Q hV# rc   )rö   r  s   & rM   Úcurrent_appÚUrlMappingMatchInfo.current_app  s   € à×ÑˆØŠÐˆØˆ
rP   c                ó"   <€ V ^8„  d   QhRRRR/# r  rQ   )rK   rL   s   "€rM   rN   rñ   !  s   ø€ ÷  ñ  ˜}ð  °ñ  rP   c                ó„   € \         '       d.   WP                  9  d   \        R V P                  : RV: 24      hWn        R# )z#Expected one of the following apps z, got N)r   rõ   r  rö   r  s   &&rM   r  r     s:   € ç‹5ØŸ*™*Ô$Ü"Ø9¸$¿*¹*¹ÀvÈcÉWÐUóð ð  ÖrP   c                ó   <€ V ^8„  d   QhRR/# rk   rQ   )rK   rL   s   "€rM   rN   rñ   )  s   ø€ ÷ ñ ˜ñ rP   c                ó   € R V n         R# )TN)r÷   rm   s   &rM   r–   ÚUrlMappingMatchInfo.freeze)  s	   € ØˆŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rñ   ,  s   ø€ ÷ Bñ B™#ñ BrP   c                óB   <€ R \         SV `  4        RV P                   R2# )z<MatchInfo ú: Ú>)ró   Ú__repr__rô   ©rg   rø   s   &€rM   r%  ÚUrlMappingMatchInfo.__repr__,  s%   ø€ ØœU™WÑ-Ó/Ð0°°4·;±;°-¸qÐAÐArP   )rõ   rö   r÷   rô   )rô   rõ   rö   r÷   )rR   rS   rT   rU   Ú	__slots__rh   r    r¨   rï   r¤   rI   r’   r  r  r  Úsetterr–   r%  rW   rX   Ú__classcell__©rø   rL   s   @@rM   r-   r-   ñ   sÖ   ù‡ € à>€I÷ó ð ÷#ó ð#ð ÷ó ðð ÷0ó ð0ð ÷ó ð÷&ð &ð ÷!ó ð!÷"ð "ð ÷ó ðð
 ×Ñ÷ ó ð ÷ð ÷B÷ Bó BrP   c                   óp   a a€ ] tR tRt oRtV3R lV 3R llt]V3R lR l4       tV3R lR ltRt	Vt
V ;t# )	ÚMatchInfoErrori0  c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r8   rI   r_   Nr  )rK   rL   s   "€rM   rN   ÚMatchInfoError.__annotate__4  s   ø€ ÷ ;ñ ;¡}ð ;¸ñ ;rP   c                óZ   <€ Wn         \        SV `	  / \        V P                   4      4       R # rc   )Ú
_exceptionró   rh   ÚSystemRoute©rg   rI   rø   s   &&€rM   rh   ÚMatchInfoError.__init__4  s    ø€ Ø(ŒÜ‰Ñ˜œ[¨¯©Ó9Ö:rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r  )rK   rL   s   "€rM   rN   r0  9  s   ø€ ÷ ñ ¡ñ rP   c                ó   € V P                   # rc   ©r2  rm   s   &rM   rI   ÚMatchInfoError.http_exception8  ó   € à�‰ÐrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r0  <  ó   ø€ ÷ Vñ V™#ñ VrP   c                ód   € R V P                   P                   RV P                   P                   R2# )z<MatchInfoError r#  r$  )r2  ÚstatusÚreasonrm   s   &rM   r%  ÚMatchInfoError.__repr__<  s.   € Ø! $§/¡/×"8Ñ"8Ð!9¸¸D¿O¹O×<RÑ<RÐ;SÐSTÐUÐUrP   r8  )rR   rS   rT   rU   r(  rh   r    rI   r%  rW   rX   r*  r+  s   @@rM   r-  r-  0  s:   ù‡ € à€I÷;ó ;ð ÷ó ð÷V÷ Vð VrP   r-  c                ó(   € V ^8„  d   QhR\         RR/# rè   r'   )rK   s   "rM   rN   rN   @  s   € ÷ Lñ L¬7ð L°tñ LrP   c              ƒ  óL  "  € V P                   P                  \        P                  R4      pV P                  \
        8X  d_   VP                  4       R8X  d7   V P                  P                  R4      G Rj  x€L
  ^ V P                  n	        R# \        RV,          R7      hR#  L,5i)z�Default handler for Expect header.

Just send "100 Continue" to client.
raise HTTPExpectationFailed if value of header is not "100-continue"
Ú z100-continues   HTTP/1.1 100 Continue

NzUnknown Expect: %s)Útext)ÚheadersÚgetr   ÚEXPECTÚversionr   ÚlowerÚwriterÚwriteÚoutput_sizer"   )r~   Úexpects   & rM   rº   rº   @  sy   é € ð �_‰_× Ñ ¤§¡¨bÓ1€FØ‡�œ-Ô'Ø�<‰<‹>˜^Ô+Ø—.‘.×&Ñ&Ð'GÓH×HÐHà)*ˆG�N‰NÖ&ä'Ð-AÀFÕ-JÔKÐKñ (áHùs   ‚A3B$Á5B"Á6-B$c                   óØ   a a€ ] tR tRt oRR/V3R lV 3R llltRR/V3R lR lltV3R	 lR
 ltV3R lR lt]P                  V3R lR l4       t
V3R lR ltV3R lR ltRtVtV ;t# )r/   iP  r\   Nc                ó2   <€ V ^8„  d   QhRS[ R,          RR/# r^   r`   )rK   rL   s   "€rM   rN   ÚResource.__annotate__Q  s   ø€ ÷ 0ñ 0¡ d¥
ð 0°dñ 0rP   c               ób   <€ \         SV `  VR 7       / V n        RV n        \	        4       V n        R# )©r\   N)ró   rh   Ú_routesÚ
_any_routeÚsetÚ_allowed_methods)rg   r\   rø   s   &$€rM   rh   ÚResource.__init__Q  s+   ø€ Ü‰Ñ˜dÐÔ#Ø13ˆŒØ04ˆŒÜ*-«%ˆÖrP   r¤   c                ó^   <€ V ^8„  d   QhRS[ RS[S[,          S[,          RS[R,          RR/# )r8   r§   r¨   r¤   Nr_   r3   )rJ   r©   r   r   rª   )rK   rL   s   "€rM   rN   rP  W  sB   ø€ ÷ ñ áðñ ‘lÕ#¡gÕ-ðñ
 '¨Õ-ðð 
ñrP   c               óÎ   € V P                   P                  WP                  4      ;p'       d   \        R VP                   R24      h\        WWR7      pV P                  V4       V# )z+Added route will never be executed, method z is already registered©r¤   )rS  rF  rT  r  r§   r3   Úregister_route)rg   r§   r¨   r¤   rï   Ú	route_objs   &&&$  rM   Ú	add_routeÚResource.add_routeW  si   € ð —L‘L×$Ñ$ V¯_©_Ó=Ð=ˆ5Ö=ÜðØŸ,™,˜ð (ðóð ô " &°4ÔWˆ	Ø×Ñ˜IÔ&ØÐrP   c                ó"   <€ V ^8„  d   QhRRRR/# )r8   rï   r3   r_   NrQ   )rK   rL   s   "€rM   rN   rP  i  s   ø€ ÷ +ñ + Oð +¸ñ +rP   c                ó  € \        V\        4      '       g   Q R V: 24       hVP                  \        P                  8X  d   Wn        V P                  P                  VP                  4       WP                  VP                  &   R# )z)Instance of Route class is required, got N)	r³   r3   r§   r   ÚMETH_ANYrT  rV  ÚaddrS  ©rg   rï   s   &&rM   r[  ÚResource.register_routei  sn   € ÜØ”=÷
ò 
ð 	Aà6°u±iÐ@ó	Að 
ð �<‰<œ4Ÿ=™=Ô(Ø#ŒOØ×Ñ×!Ñ! %§,¡,Ô/Ø%*�‰�U—\‘\Ó"rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r   )rK   rL   s   "€rM   rN   rP  r  s   ø€ ÷ +ñ +¡Wð +±ñ +rP   c              ƒ  ó.  "  € V P                  VP                  P                  4      ;pf   R \        4       3# V P                  P                  VP                  V P                  4      ;p'       d   \        W#4      V P                  3# R V P                  3# 5irc   )
Ú_matchÚrel_urlÚ	path_saferU  rS  rF  r§   rT  r-   rV  )rg   r~   rî   rï   s   &&  rM   rƒ   ÚResource.resolver  sz   é € ØŸ+™+ g§o¡o×&?Ñ&?Ó@Ð@ˆJÒIØœ›�;ÐØ—L‘L×$Ñ$ W§^¡^°T·_±_ÓEÐEˆ5ÖEÜ& zÓ9¸4×;PÑ;PÐPÐPØ�T×*Ñ*Ð*Ð*ùs   ‚A-BÁ0%Bc                óJ   <€ V ^8„  d   QhRS[ RS[S[ S[ 3,          R,          /# ©r8   r?   r_   N©rJ   rð   )rK   rL   s   "€rM   rN   rP  z  s(   ø€ ÷ ñ ™3ð ¡4©©S¨¥>°DÕ#8ñ rP   c                ó   € R # rc   rQ   r�   s   &&rM   rg  ÚResource._matchy  s   € árP   c                ó    <€ V ^8„  d   QhRS[ /# rq   ©Úint)rK   rL   s   "€rM   rN   rP  }  ó   ø€ ÷ !ñ !™ñ !rP   c                ó,   € \        V P                  4      # rc   ©ÚlenrS  rm   s   &rM   Ú__len__ÚResource.__len__}  ó   € Ü�4—<‘<Ó Ð rP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# )r8   r_   r3   )r   )rK   rL   s   "€rM   rN   rP  €  s   ø€ ÷ +ñ +™( ?Õ3ñ +rP   c                óH   € \        V P                  P                  4       4      # rc   ©ÚiterrS  Úvaluesrm   s   &rM   Ú__iter__ÚResource.__iter__€  ó   € Ü�D—L‘L×'Ñ'Ó)Ó*Ð*rP   )rV  rT  rS  )rR   rS   rT   rU   rh   r]  r[  rƒ   r¡   r¢   rg  rw  r  rW   rX   r*  r+  s   @@rM   r/   r/   P  sq   ù‡ € ð0¨T÷ 0õ 0ðð
 15÷ò ÷$+ð +÷+ð +ð 	×Ñ÷ó ð÷!ð !÷+÷ +ð +rP   c                   óà   a a€ ] tR tRt oRR/V3R lV 3R lllt]V3R lR l4       tV3R lR	 ltV3R
 lR ltV3R lR lt	V3R lR lt
V3R lR ltV3R lR ltV3R lR ltRtVtV ;t# )r0   i†  r\   Nc                ó8   <€ V ^8„  d   QhRS[ RS[ R,          RR/# ©r8   r?   r\   Nr_   r`   )rK   rL   s   "€rM   rN   ÚPlainResource.__annotate__‡  s&   ø€ ÷ ñ ™Sð ©3°­:ð Àñ rP   c               óv   <€ \         SV `  VR 7       V'       d   VP                  R4      '       g   Q hWn        R# )rR  r9   N)ró   rh   Ú
startswithÚ_path)rg   r?   r\   rø   s   &&$€rM   rh   ÚPlainResource.__init__‡  s/   ø€ Ü‰Ñ˜dÐÔ#ß˜4Ÿ?™?¨3×/Ò/Ð/Ð/ØŽ
rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r…  �  s   ø€ ÷ ñ ™3ñ rP   c                ó   € V P                   # rc   ©rˆ  rm   s   &rM   rs   ÚPlainResource.canonicalŒ  ro   rP   c                ó   <€ V ^8„  d   QhRR/# rk   rQ   )rK   rL   s   "€rM   rN   r…  �  s   ø€ ÷ ñ ˜ñ rP   c                ó<   € V P                   '       g
   R V n         R# R# ©r9   NrŒ  rm   s   &rM   r–   ÚPlainResource.freeze�  s   € Ø�z�zˆzØˆDŽJñ rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# rˆ   r`   )rK   rL   s   "€rM   rN   r…  ”  s   ø€ ÷ )ñ )¡ð )¨ñ )rP   c                ó¼   € VP                  R 4      '       g   Q hVP                  R 4      '       d   Q h\        V4      ^8”  g   Q hWP                  ,           V n        R# r�  )r‡  Úendswithrv  rˆ  rŠ   s   &&rM   r‹   ÚPlainResource.add_prefix”  sL   € Ø× Ñ  ×%Ò%Ð%Ð%Ø—?‘? 3×'Ò'Ð'Ð'Ü�6‹{˜QŒÐˆØŸj™jÕ(ˆŽ
rP   c                óJ   <€ V ^8„  d   QhRS[ RS[S[ S[ 3,          R,          /# rl  rm  )rK   rL   s   "€rM   rN   r…  š  s(   ø€ ÷ ñ ™3ð ¡4©©S¨¥>°DÕ#8ñ rP   c                ó,   € V P                   V8X  d   / # R # rc   rŒ  r�   s   &&rM   rg  ÚPlainResource._matchš  s   € à�:‰:˜ÔØˆIÙrP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r™   rš   )rK   rL   s   "€rM   rN   r…     s   ø€ ÷ "ñ "™cð "¡dñ "rP   c                ó    € V P                   V8H  # rc   rŒ  r�   s   &&rM   rž   ÚPlainResource.raw_match   s   € Ø�z‰z˜TÑ!Ð!rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r…  £  s   ø€ ÷ $ñ $™)ñ $rP   c                ó   € R V P                   /# )r?   rŒ  rm   s   &rM   r’   ÚPlainResource.get_info£  s   € Ø˜Ÿ
™
Ð#Ð#rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )r   )rK   rL   s   "€rM   rN   r…  ¦  s   ø€ ÷ 8ñ 8™ñ 8rP   c                óF   € \         P                  ! V P                  R R7      # ©T©r?   Úencoded)r   Úbuildrˆ  rm   s   &rM   rz   ÚPlainResource.url_for¦  s   € Ü�yŠy˜dŸj™j°$Ô7Ð7rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r…  ©  s   ø€ ÷ 6ñ 6™#ñ 6rP   c                ó|   € V P                   e   RV P                   ,           R,           MRpRV RV P                   R2# )NÚ'ú' rC  z<PlainResource Ú r$  )r\   rˆ  rf   s   & rM   r%  ÚPlainResource.__repr__©  s8   € Ø)-¯©Ò)>ˆs�T—Y‘Y� Ö%ÀBˆØ    a¨¯
©
 |°1Ð5Ð5rP   rŒ  )rR   rS   rT   rU   rh   r    rs   r–   r‹   rg  rž   r’   rz   r%  rW   rX   r*  r+  s   @@rM   r0   r0   †  su   ù‡ € ð¸÷ õ ð
 ÷ó ð÷ð ÷)ð )÷ð ÷"ð "÷$ð $÷8ð 8÷6÷ 6ð 6rP   c                   ó  a a€ ] tR tRt o]P
                  ! R4      t]P
                  ! R4      tRtRR/V3R lV 3R lllt	]
V3R	 lR
 l4       tV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltRtVtV ;t# )r1   i®  z#\{(?P<var>[_a-zA-Z][_a-zA-Z0-9]*)\}z.\{(?P<var>[_a-zA-Z][_a-zA-Z0-9]*):(?P<re>.+)\}z[^{}/]+r\   Nc                ó8   <€ V ^8„  d   QhRS[ RS[ R,          RR/# r„  r`   )rK   rL   s   "€rM   rN   ÚDynamicResource.__annotate__´  s&   ø€ ÷  $ñ  $™Sð  $©3°­:ð  $Àñ  $rP   c               ó  <€ \         S	V `  VR 7       Wn        RpRp\        P	                  V4       EFC  pV P
                  P                  V4      pV'       d[   VRP                  VP                  R4      V P                  4      ,          pVRVP                  R4      ,           R,           ,          pK�  V P                  P                  V4      pV'       dP   VRP                  ! R/ VP                  4       B ,          pVRVP                  R4      ,           R,           ,          pKó  RV9   g   RV9   d   \        RV RV R	24      h\        V4      pWE,          pV\        P                  ! V4      ,          pEKF  	   \        P                   ! V4      pTP$                  P'                  \(        4      '       g   Q hTP'                  R4      '       g   Q hYpn        Y@n        R#   \        P"                   d   p\        R
T RT 24      RhRp?ii ; i)rR  rC  z
(?P<{}>{})ÚvarÚ{Ú}z(?P<{var}>{re})zInvalid path 'z'['z']zBad pattern 'z': Nr9   rQ   )ró   rh   Ú
_orig_pathÚROUTE_REÚsplitÚDYNÚ	fullmatchrK   ÚgroupÚGOODÚDYN_WITH_REÚ	groupdictrÂ   Ú_requote_pathÚreÚescapeÚcompileÚerrorrA   r‡  ÚPATH_SEPÚ_patternÚ
_formatter)
rg   r?   r\   rA   r@   ÚpartrÁ   ÚcompiledÚexcrø   s
   &&$      €rM   rh   ÚDynamicResource.__init__´  sº  ø€ Ü‰Ñ˜dÐÔ#ØŒØˆØˆ	Ü—N‘N 4×(ˆDØ—H‘H×&Ñ& tÓ,ˆEßØ˜<×.Ñ.¨u¯{©{¸5Ó/AÀ4Ç9Á9ÓMÕM�Ø˜S 5§;¡;¨uÓ#5Õ5¸Õ;Õ;�	Ùà×$Ñ$×.Ñ.¨tÓ4ˆEßØÐ,×3Ò3ÑH°e·o±oÓ6GÑHÕH�Ø˜S 5§;¡;¨uÓ#5Õ5¸Õ;Õ;�	Ùà�dŒ{˜c TœkÜ  >°$°°s¸4¸&ÀÐ!CÓDÐDä  Ó&ˆDØÕˆIØ”r—y’y “Õ&‹Gñ% )ð(	JÜ—z’z 'Ó*ˆHð ×Ñ×*Ñ*¬8×4Ò4Ð4Ð4Ø×#Ñ# C×(Ò(Ð(Ð(Ø ŒØ#Žøô �x‰xô 	JÜ˜}¨W¨I°S¸¸Ð>Ó?ÀTÐIûð	Jús   Å:G ÇH
Ç3HÈH
c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r®  ×  s   ø€ ÷ ñ ™3ñ rP   c                ó   € V P                   # rc   )rÃ  rm   s   &rM   rs   ÚDynamicResource.canonicalÖ  r:  rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# rˆ   r`   )rK   rL   s   "€rM   rN   r®  Ú  s   ø€ ÷ 3ñ 3¡ð 3¨ñ 3rP   c                óP  € VP                  R 4      '       g   Q hVP                  R 4      '       d   Q h\        V4      ^8”  g   Q h\        P                  ! \        P
                  ! V4      V P                  P                  ,           4      V n        WP                  ,           V n        R# r�  )	r‡  r”  rv  r½  r¿  r¾  rÂ  rA   rÃ  rŠ   s   &&rM   r‹   ÚDynamicResource.add_prefixÚ  st   € Ø× Ñ  ×%Ò%Ð%Ð%Ø—?‘? 3×'Ò'Ð'Ð'Ü�6‹{˜QŒÐˆÜŸ
š
¤2§9¢9¨VÓ#4°t·}±}×7LÑ7LÕ#LÓMˆŒØ §?¡?Õ2ˆŽrP   c                óJ   <€ V ^8„  d   QhRS[ RS[S[ S[ 3,          R,          /# rl  rm  )rK   rL   s   "€rM   rN   r®  á  s(   ø€ ÷ 
ñ 
™3ð 
¡4©©S¨¥>°DÕ#8ñ 
rP   c                óÈ   € V P                   P                  V4      pVf   R # VP                  4       P                  4        UUu/ uF  w  r4V\	        V4      bK  	  upp# u uppi rc   )rÂ  r·  r»  ÚitemsÚ_unquote_path_safe)rg   r?   rÁ   ÚkeyÚvalues   &&   rM   rg  ÚDynamicResource._matchá  s]   € Ø—‘×'Ñ'¨Ó-ˆØŠ=Ùà=B¿_¹_Ó=N×=TÑ=TÔ=Vô
Ù=V©z¨sˆCÔ# EÓ*Ò*Ñ=Vò
ð 	
ùó 
s   ÁAc                ó&   <€ V ^8„  d   QhRS[ RS[/# r™   rš   )rK   rL   s   "€rM   rN   r®  é  s   ø€ ÷ 'ñ '™cð '¡dñ 'rP   c                ó    € V P                   V8H  # rc   )r³  r�   s   &&rM   rž   ÚDynamicResource.raw_matché  s   € Ø�‰ $Ñ&Ð&rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r®  ì  s   ø€ ÷ Hñ H™)ñ HrP   c                ó6   € R V P                   RV P                  /# )r@   rA   )rÃ  rÂ  rm   s   &rM   r’   ÚDynamicResource.get_infoì  s   € Ø˜TŸ_™_¨i¸¿¹ÐGÐGrP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   Úpartsr_   rx   )rK   rL   s   "€rM   rN   r®  ï  s   ø€ ÷ 1ñ 1™sð 1¡sñ 1rP   c           
     óÌ   € V P                   P                  VP                  4        UUu/ uF  w  r#V\        V4      bK  	  upp4      p\        P
                  ! VR R7      # u uppi r¡  )rÃ  Ú
format_maprÐ  Ú_quote_pathr   r¤  )rg   rÜ  ÚkÚvÚurls   &,   rM   rz   ÚDynamicResource.url_forï  sM   € Ø�o‰o×(Ñ(ÈÏÉÌÔ)VÉÁÀ¨!¬[¸«^Ò*;ÉÒ)VÓWˆÜ�yŠy˜c¨4Ô0Ð0ùó *Ws   ©A 
c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r®  ó  s   ø€ ÷ =ñ =™#ñ =rP   c                ó|   € V P                   e   RV P                   ,           R,           MRpRV RV P                   R2# )Nr¨  r©  rC  z<DynamicResource rª  r$  )r\   rÃ  rf   s   & rM   r%  ÚDynamicResource.__repr__ó  s9   € Ø)-¯©Ò)>ˆs�T—Y‘Y� Ö%ÀBˆØ" 4 &¨¨$¯/©/Ð):¸!Ð<Ð<rP   )rÃ  r³  rÂ  )rR   rS   rT   rU   r½  r¿  r¶  rº  r¹  rh   r    rs   r‹   rg  rž   r’   rz   r%  rW   rX   r*  r+  s   @@rM   r1   r1   ®  s‘   ù‡ € à
�*Š*Ð;Ó
<€CØ—*’*ÐNÓO€KØ€Dð $¸÷  $õ  $ðD ÷ó ð÷3ð 3÷
ð 
÷'ð '÷Hð H÷1ð 1÷=÷ =ð =rP   c                   ó†   a a€ ] tR tRt oRR/V3R lV 3R lllt]V3R lR l4       tV3R lR	 ltV3R
 lR ltRt	Vt
V ;t# )ÚPrefixResourceiø  r\   Nc                ó8   <€ V ^8„  d   QhRS[ RS[ R,          RR/# )r8   rC   r\   Nr_   r`   )rK   rL   s   "€rM   rN   ÚPrefixResource.__annotate__ù  s&   ø€ ÷ +ñ +™sð +©S°4­Zð +À4ñ +rP   c               ó  <€ V'       d   VP                  R 4      '       g   Q V4       hVR9   g   VP                  R 4      '       d   Q V4       h\        SV `  VR7       \	        V4      V n        V P
                  R ,           V n        R# )r9   rR  N)rC  r9   )r‡  r”  ró   rh   r¼  Ú_prefixÚ_prefix2)rg   rC   r\   rø   s   &&$€rM   rh   ÚPrefixResource.__init__ù  sn   ø€ ß˜V×.Ñ.¨s×3Ò3Ð;°VÓ;Ð3Ø˜Ô"¨&¯/©/¸#×*>Ò*>ÐFÀÓFÐ>Ü‰Ñ˜dÐÔ#Ü$ VÓ,ˆŒØŸ™ sÕ*ˆŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rê    ó   ø€ ÷ ñ ™3ñ rP   c                ó   € V P                   # rc   )rì  rm   s   &rM   rs   ÚPrefixResource.canonical   rÑ   rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# rˆ   r`   )rK   rL   s   "€rM   rN   rê    s   ø€ ÷ +ñ +¡ð +¨ñ +rP   c                óì   € VP                  R 4      '       g   Q hVP                  R 4      '       d   Q h\        V4      ^8”  g   Q hWP                  ,           V n        V P                  R ,           V n        R# r�  )r‡  r”  rv  rì  rí  rŠ   s   &&rM   r‹   ÚPrefixResource.add_prefix  s\   € Ø× Ñ  ×%Ò%Ð%Ð%Ø—?‘? 3×'Ò'Ð'Ð'Ü�6‹{˜QŒÐˆØ§¡Õ,ˆŒØŸ™ sÕ*ˆŽrP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   rC   r_   rš   )rK   rL   s   "€rM   rN   rê    s   ø€ ÷ ñ ¡ð ©ñ rP   c                ó   € R # ©FrQ   rŠ   s   &&rM   rž   ÚPrefixResource.raw_match  s   € ÙrP   )rì  rí  )rR   rS   rT   rU   rh   r    rs   r‹   rž   rW   rX   r*  r+  s   @@rM   rè  rè  ø  sC   ù‡ € ð+¸$÷ +õ +ð ÷ó ð÷+ð +÷÷ ð rP   rè  c                   ó6  a a€ ] tR tRt oRtRRRRR]RRR	RR
R/V3R lV 3R llltR
R/V3R lR llt]V3R lR l4       t	V3R lR lt
V3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR  ltV3R! lR" ltR#tVtV ;t# )$r4   i  rá  r\   Nr¤   Ú
chunk_sizeÚ
show_indexFÚfollow_symlinksÚappend_versionc                ój   <€ V ^8„  d   QhRS[ RS[RS[ R,          RS[R,          RS[RS[RS[R	S[R
R/	# )r8   rC   rB   r\   Nr¤   rû  rü  rý  rþ  r_   )rJ   r    rª   rr  r›   )rK   rL   s   "€rM   rN   ÚStaticResource.__annotate__  sn   ø€ ÷ "2ñ "2áð"2ñ ð"2ñ
 �D�jð"2ñ '¨Õ-ð"2ñ ð"2ñ ð"2ñ ð"2ñ ð"2ð 
ñ"2rP   c          
     óö  <€ \         S
V `  WR 7        \        V4      P                  4       P	                  RR7      pTP                  4       '       g   \        RT R24      hY n        Y`n	        YPn
        Ypn        Y@n        Y€n        R\        RT P                  YR7      R	\        R	T P                  YR7      /T n        \#        T P                   4      T n        R#   \
         d   p	\        RT R24      T	hRp	?	ii ; i)
rR  T)Ústrictr¨  z' does not existNz' is not a directoryÚGETrZ  ÚHEAD)ró   rh   r   Ú
expanduserrƒ   ÚFileNotFoundErrorrÂ   Úis_dirÚ
_directoryÚ_show_indexÚ_chunk_sizeÚ_follow_symlinksrË   Ú_append_versionr3   Ú_handlerS  rU  rV  )rg   rC   rB   r\   r¤   rû  rü  rý  rþ  rÀ  rø   s   &&&$$$$$$ €rM   rh   ÚStaticResource.__init__  sù   ø€ ô 	‰Ñ˜ÐÔ+ð	IÜ˜Y›×2Ñ2Ó4×<Ñ<ÀDÐ<ÓIˆIð ×Ñ×!Ò!Ü˜q  Ð+?Ð@ÓAÐAØ#ŒØ%ÔØ%ÔØ /ÔØ-ÔØ-Ôð ”=Ø�t—|‘| Tôð ”MØ˜Ÿ™ dôð	
ˆŒô !$ D§L¡LÓ 1ˆÖøô' !ô 	IÜ˜q  Ð+;Ð<Ó=À5ÐHûð	Iús   “)C ÃC8Ã#C3Ã3C8c                ó:   <€ V ^8„  d   QhRS[ RS[R,          RS[/# )r8   Úfilenamerþ  Nr_   )r    r›   r   )rK   rL   s   "€rM   rN   r   8  s/   ø€ ÷ 'ñ 'ñ ð'ñ ˜t�ð	'ñ
 
ñ'rP   c               ó¬  € Vf   V P                   p\        V4      P                  R4      p\        P                  ! V P
                  RR7      p\        R8  d   W1P                  RR4      ,          pMW1,          pV'       Ed'   V P                  P                  V4      p V P                  '       dU   \        \        P                  P                  V4      4      pVP                  V P                  4       VP!                  4       pM,VP!                  4       pVP                  V P                  4        VP'                  4       '       dc   VP)                  R4      ;_uu_ 4       pVP+                  4       pR R R 4       V P-                  X4      p	VP/                  V P0                  V	/4      pV# V#   \"        \$        3 d    Tu # i ; i  + '       g   i     L[; i)Nr9   Tr¢  Ú%ú%25Úrb©é   é   )r  rJ   Úlstripr   r¤  rì  ÚYARL_VERSIONÚreplacer  Újoinpathr  r   Úosr?   ÚnormpathÚrelative_torƒ   rÂ   r  Úis_fileÚopenÚreadÚ_get_file_hashÚ
with_queryÚVERSION_KEY)
rg   r  rþ  râ  Úunresolved_pathÚnormalized_pathÚfilepathÚfÚ
file_bytesÚhs
   &$$       rM   rz   ÚStaticResource.url_for8  sr  € ð Ò!Ø!×1Ñ1ˆNÜ�x“=×'Ñ'¨Ó,ˆä�iŠi˜TŸ\™\°4Ô8ˆä˜&Ô Ø×(Ñ(¨¨eÓ4Õ4‰Cà•.ˆCçˆ>Ø"Ÿo™o×6Ñ6°xÓ@ˆOðØ×(×(Ð(Ü&*¬2¯7©7×+;Ñ+;¸OÓ+LÓ&M�OØ#×/Ñ/°·±Ô@Ø.×6Ñ6Ó8‘Hà.×6Ñ6Ó8�HØ×(Ñ(¨¯©Õ9ð
 ×Ñ×!Ò!ð —]‘] 4×(Ô(¨AØ!"§¡£�J÷ )à×'Ñ'¨
Ó3�Ø—n‘n d×&6Ñ&6¸Ð%:Ó;�Ø�
Øˆ
øô Ô 1Ð2ô ð ’
ðú÷ )×(ús+   ÂF* Â0AF* Ä+F* ÅGÆ*G Æ?G ÇG	c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   Ú
byte_arrayr_   )ÚbytesrJ   )rK   rL   s   "€rM   rN   r   b  s   ø€ ÷ #ñ #¡5ð #©Sñ #rP   c                ó¸   € \         P                  ! 4       pVP                  V 4       \        P                  ! VP                  4       4      pVP                  R 4      # )Úascii)ÚhashlibÚsha256ÚupdateÚbase64Úurlsafe_b64encodeÚdigestÚdecode)r-  ÚmÚb64s   &  rM   r"  ÚStaticResource._get_file_hasha  s?   € ä�NŠNÓˆØ	�‰�ÔÜ×&Ò& q§x¡x£zÓ2ˆØ�z‰z˜'Ó"Ð"rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r   h  s   ø€ ÷ 
ñ 
™)ñ 
rP   c                óN   € R V P                   RV P                  RV P                  /# )rB   rC   rD   )r  rì  rS  rm   s   &rM   r’   ÚStaticResource.get_infoh  s'   € à˜Ÿ™Ø�d—l‘lØ�d—l‘lð
ð 	
rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r8   r¨   r_   NrÓ   )rK   rL   s   "€rM   rN   r   o  s   ø€ ÷ -ñ -©ð -°Tñ -rP   c                ó¾   € R V P                   9   d   \        R4      h\        R WV P                  R7      V P                   R &   V P                  P                  R 4       R# )ÚOPTIONSzOPTIONS route was set alreadyrZ  N)rS  r  r3   rË   rV  rb  )rg   r¨   s   &&rM   Úset_options_routeÚ StaticResource.set_options_routeo  sP   € Ø˜Ÿ™Ô$ÜÐ>Ó?Ð?Ü"/Ø�w°T×5IÑ5Iô#
ˆ�‰�YÑð 	×Ñ×!Ñ! )Ö,rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r   )rK   rL   s   "€rM   rN   r   w  s   ø€ ÷ Xñ X¡Wð X±ñ XrP   c              ƒ  óþ  "  € VP                   P                  pVP                  p\        P                  P                  V4      p\        '       d   VP                  R R4      pVP                  V P                  4      '       g   W@P                  8w  d   R\        4       3# V P                  pW59  d   RV3# R\        V\        V P                  4      ^,           R 4      /p\        W`P                   V,          4      V3# 5i)Ú\r9   Nr  )rh  ri  r§   r  r?   r  Ú
IS_WINDOWSr  r‡  rí  rì  rU  rV  rÑ  rv  r-   rS  )rg   r~   r?   r§   Ú	norm_pathÚallowed_methodsrî   s   &&     rM   rƒ   ÚStaticResource.resolvew  sÏ   é € Ø�‰×(Ñ(ˆØ—‘ˆô —G‘G×$Ñ$ TÓ*ˆ	ß‹:Ø!×)Ñ)¨$°Ó4ˆIØ×#Ñ# D§M¡M×2Ò2°yÇLÁLÔ7PØœ›�;Ðà×/Ñ/ˆØÔ(Ø˜Ð(Ð(à Ô"4°T¼#¸d¿l¹lÓ:KÈaÕ:OÐ:QÐ5RÓ"SÐTˆ
Ü# J·±¸VÕ0DÓEÀÐWÐWùs   ‚B C=ÂA:C=c                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   r   ‰  rs  rP   c                ó,   € \        V P                  4      # rc   ru  rm   s   &rM   rw  ÚStaticResource.__len__‰  ry  rP   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rq   ©r   r2   )rK   rL   s   "€rM   rN   r   Œ  s   ø€ ÷ +ñ +™(¡=Õ1ñ +rP   c                óH   € \        V P                  P                  4       4      # rc   r|  rm   s   &rM   r  ÚStaticResource.__iter__Œ  r�  rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r®   )rK   rL   s   "€rM   rN   r   �  s   ø€ ÷ 

ñ 

¡Wð 

±ñ 

rP   c              ƒ  ó0  "  € VP                   R ,          p\        V4      P                  4       '       d   \        4       hV P                  P                  V4      p\        P                  ! 4       pVP                  RV P                  V4      G Rj  x€L
 #  L5i)r  N)
Ú
match_infor   Úis_absoluter%   r  r  r±   Úget_running_loopÚrun_in_executorÚ_resolve_path_to_response)rg   r~   r  r%  Úloops   &&   rM   r  ÚStaticResource._handle�  s~   é € Ø×%Ñ% jÕ1ˆÜ�‹>×%Ñ%×'Ò'ô “.Ð ØŸ/™/×2Ñ2°8Ó<ˆÜ×'Ò'Ó)ˆØ×)Ñ)Ø�$×0Ñ0°/ó
÷ 
ð 	
ñ 
ùs   ‚BBÂBÂBc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   r%  r_   )r   r*   )rK   rL   s   "€rM   rN   r   ›  s   ø€ ÷ !Dñ !D¹ð !DÁ.ñ !DrP   c                ó|  €  V P                   '       dU   \        \        P                  P	                  V4      4      pVP                  V P                  4       VP                  4       pM,VP                  4       pVP                  V P                  4         VP                  4       '       d9   V P                  '       d   \        V P                  V4      RR7      # \        4       h \#        Y0P$                  R7      #   \        .\        O5 d   p\        4       ThRp?ii ; i  \          d   p\        4       ThRp?ii ; i)zFTake the unresolved path and query the file system to form a response.Nz	text/html)rD  Úcontent_type)rû  )r  r   r  r?   r  r  r  rƒ   rÂ   ÚCIRCULAR_SYMLINK_ERRORr%   r  r	  r)   Ú_directory_as_htmlr#   ÚPermissionErrorr&   r
  )rg   r%  r&  Ú	file_pathrÀ  s   &&   rM   rW  Ú(StaticResource._resolve_path_to_response›  s  € ð
	,Ø×$×$Ð$Ü"&¤r§w¡w×'7Ñ'7¸Ó'HÓ"I�Ø×+Ñ+¨D¯O©OÔ<Ø+×3Ñ3Ó5‘	à+×3Ñ3Ó5�	Ø×%Ñ% d§o¡oÕ6ð
	-Ø×Ñ×!Ò!Ø×#×#Ð#Ü#Ø!×4Ñ4°YÓ?Ø%0ôð ô
 (›/Ð)ð "ô ˜I×2BÑ2BÔCÐCøô) Ð4Ô3Ñ4ô 	,ô “. eÐ+ûð	,ûô  ô 	-Ü“/ uÐ,ûð	-úsM   ‚C: ”AC: Á(+C: ÂD  Â+D  Â=D  Ã
D  Ã:DÄDÄDÄ D;Ä+D6Ä6D;c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   Údir_pathr_   )r   rJ   )rK   rL   s   "€rM   rN   r   ¾  s   ø€ ÷ ñ ©4ð ±Cñ rP   c           	     ó”  € VP                  4       '       g   Q hVP                  V P                  4      P                  4       pR\	        V4       2pRV R2p. pVP                  4       p\        V4       F™  pVP                  V P                  4      P                  4       p\        V P                   RV 24      p	VP                  4       '       d   VP                   R2p
MVP                  p
VP                  RV	 R\	        V
4       R24       K›  	  RP                  R	P                  V4      4      pR
V R	V R2pRV R2pRV R	V R2pV# )z"returns directory's index as html.z
Index of /z<h1>z</h1>r9   z<li><a href="z">z	</a></li>z<ul>
{}
</ul>Ú
z<body>
z
</body>z<head>
<title>z</title>
</head>z<html>
z
</html>)r  r  r  Úas_posixÚhtml_escapeÚiterdirÚsortedrß  rì  r\   ÚappendrK   Újoin)rg   rc  Úrelative_path_to_dirÚindex_ofÚh1Ú
index_listÚ	dir_indexÚ_fileÚrel_pathÚquoted_file_urlÚ	file_nameÚulÚbodyÚhead_strÚhtmls   &&             rM   r^  Ú!StaticResource._directory_as_html¾  sP  € à�‰× Ò Ð Ð à'×3Ñ3°D·O±OÓD×MÑMÓOÐØ¤Ð,@Ó AÐBÐCˆØ�H�:˜UÐ#ˆàˆ
Ø×$Ñ$Ó&ˆ	Ü˜IÖ&ˆEà×(Ñ(¨¯©Ó9×BÑBÓDˆHÜ)¨T¯\©\¨N¸!¸H¸:Ð*FÓGˆOð �|‰|�~Š~Ø$Ÿz™z˜l¨!Ð,‘	à!ŸJ™J�	à×ÑØ Ð0°´;¸yÓ3IÐ2JÈ)ÐTöñ 'ð ×%Ñ% d§i¡i°
Ó&;Ó<ˆØ˜"˜˜R ˜t 9Ð-ˆà$ X JÐ.?Ð@ˆØ˜(˜ 2 d V¨9Ð5ˆàˆrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r   Þ  s   ø€ ÷ Pñ P™#ñ PrP   c                ó˜   € V P                   e   RV P                   ,           R,           MRpRV RV P                   RV P                  : R2# )Nr¨  rC  z<StaticResource rª  ú -> r$  )r\   rì  r  rf   s   & rM   r%  ÚStaticResource.__repr__Þ  sC   € Ø(,¯	©	Ò(=ˆs�T—Y‘Y� Ö$À2ˆØ! $  q¨¯©¨°d¸4¿?¹?Ñ:MÈQÐOÐOrP   )rV  r  r
  r  rË   r  rS  r	  )rR   rS   rT   rU   r$  r   rh   rz   Ústaticmethodr"  r’   rA  rƒ   rw  r  r  rW  r^  r%  rW   rX   r*  r+  s   @@rM   r4   r4     sâ   ù‡ € Ø€Kð"2ð
  ð"2ð 15ð"2ð -ð"2ð !ð"2ð !&ð"2ð  %÷"2õ "2ðH'ð '+÷	'ò 'ðR ÷#ó ð#÷
ð 
÷-ð -÷Xð X÷$!ð !÷+ð +÷

ð 

÷!Dð !D÷Fð ÷@P÷ Pð PrP   c                   óÔ   a a€ ] tR tRt oV3R lV 3R lltV3R lV 3R lltV3R lR ltV3R lR	 ltV3R
 lR ltV3R lR lt	V3R lR lt
V3R lR ltV3R lR ltRtVtV ;t# )ÚPrefixedSubAppResourceiã  c                ó(   <€ V ^8„  d   QhRS[ RRRR/# )r8   rC   rE   r6   r_   Nr`   )rK   rL   s   "€rM   rN   Ú#PrefixedSubAppResource.__annotate__ä  s"   ø€ ÷ .ñ .™sð .¨ð .¸4ñ .rP   c                óT   <€ \         SV `  V4       W n        V P                  V4       R # rc   )ró   rh   Ú_appÚ_add_prefix_to_resources)rg   rC   rE   rø   s   &&&€rM   rh   ÚPrefixedSubAppResource.__init__ä  s#   ø€ Ü‰Ñ˜Ô ØŒ	Ø×%Ñ% fÖ-rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# rˆ   r`   )rK   rL   s   "€rM   rN   r‚  é  s   ø€ ÷ .ñ .¡ð .¨ñ .rP   c                óH   <€ \         SV `  V4       V P                  V4       R # rc   )ró   r‹   r…  )rg   rC   rø   s   &&€rM   r‹   Ú!PrefixedSubAppResource.add_prefixé  s   ø€ Ü‰Ñ˜6Ô"Ø×%Ñ% fÖ-rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# rˆ   r`   )rK   rL   s   "€rM   rN   r‚  í  s   ø€ ÷ ,ñ ,©sð ,°tñ ,rP   c                óÆ   € V P                   P                  pVP                  4        F6  pVP                  V4       VP	                  V4       VP                  V4       K8  	  R # rc   )r„  ÚrouterÚ	resourcesÚunindex_resourcer‹   Úindex_resource)rg   rC   rŒ  r¥   s   &&  rM   r…  Ú/PrefixedSubAppResource._add_prefix_to_resourcesí  sP   € Ø—‘×!Ñ!ˆØ×(Ñ(Ö*ˆHð ×#Ñ# HÔ-Ø×Ñ Ô'Ø×!Ñ! (Ö+ó +rP   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# rá   rx   )rK   rL   s   "€rM   rN   r‚  ö  s'   ø€ ÷ Rñ R™Sð R©Cð R±Cñ RrP   c                ó   € \        R 4      h)z3.url_for() is not supported by sub-application root©r  rå   s   &*,rM   rz   ÚPrefixedSubAppResource.url_forö  s   € ÜÐPÓQÐQrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r‚  ù  s   ø€ ÷ :ñ :™)ñ :rP   c                ó6   € R V P                   RV P                  /# )rE   rC   )r„  rì  rm   s   &rM   r’   ÚPrefixedSubAppResource.get_infoù  s   € Ø�t—y‘y (¨D¯L©LÐ9Ð9rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r   )rK   rL   s   "€rM   rN   r‚  ü  s   ø€ ÷ #ñ #¡Wð #±ñ #rP   c              ƒ  ó*  "  € V P                   P                  P                  V4      G R j  x€L
 pVP                  V P                   4       \	        VP
                  \        4      '       d   VP
                  P                  pW#3# \        4       pW#3#  Le5irc   )	r„  rŒ  rƒ   r  r³   rI   r$   rH  rU  ©rg   r~   rS  Úmethodss   &&  rM   rƒ   ÚPrefixedSubAppResource.resolveü  s{   é € ØŸ9™9×+Ñ+×3Ñ3°GÓ<×<ˆ
Ø×Ñ˜4Ÿ9™9Ô%Ü�j×/Ñ/Ô1E×FÒFØ ×/Ñ/×?Ñ?ˆGð Ð"Ð"ô “eˆGØÐ"Ð"ñ =ùs   ‚)B«B¬A&Bc                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   r‚    s   ø€ ÷ .ñ .™ñ .rP   c                ó\   € \        V P                  P                  P                  4       4      # rc   )rv  r„  rŒ  rD   rm   s   &rM   rw  ÚPrefixedSubAppResource.__len__  s    € Ü�4—9‘9×#Ñ#×*Ñ*Ó,Ó-Ð-rP   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rq   rN  )rK   rL   s   "€rM   rN   r‚    s   ø€ ÷ /ñ /™(¡=Õ1ñ /rP   c                ó\   € \        V P                  P                  P                  4       4      # rc   )r}  r„  rŒ  rD   rm   s   &rM   r  ÚPrefixedSubAppResource.__iter__  s    € Ü�D—I‘I×$Ñ$×+Ñ+Ó-Ó.Ð.rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r‚    s   ø€ ÷ Kñ K™#ñ KrP   c                ó>   € R V P                    RV P                  : R2# )z<PrefixedSubAppResource r|  r$  )rì  r„  rm   s   &rM   r%  ÚPrefixedSubAppResource.__repr__  s   € Ø)¨$¯,©,¨°t¸D¿I¹I¹=ÈÐJÐJrP   ©r„  )rR   rS   rT   rU   rh   r‹   r…  rz   r’   rƒ   rw  r  r%  rW   rX   r*  r+  s   @@rM   r€  r€  ã  si   ù‡ € ÷.ó .÷
.ó .÷,ð ,÷Rð R÷:ð :÷#ð #÷.ð .÷/ð /÷K÷ Kð KrP   r€  c                   óº   a € ] tR tRt o ]P
                  V 3R lR l4       t]P
                  V 3R lR l4       t]]P
                  V 3R lR l4       4       t	Rt
V tR	# )
rG   i  c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   ©r(   r›   )rK   rL   s   "€rM   rN   Ú!AbstractRuleMatching.__annotate__  s   ø€ ÷ @ñ @¡7ð @©tñ @rP   c              ƒ  ó   "  € R# 5i)z1Return bool if the request satisfies the criteriaNrQ   r‚   s   &&rM   rÁ   ÚAbstractRuleMatching.match  r…   r†   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   rª    r�   rP   c                ó   € R# r‘   rQ   rm   s   &rM   r’   ÚAbstractRuleMatching.get_info  ru   rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rª    s   ø€ ÷ ñ ™3ñ rP   c                ó   € R# )zReturn a strNrQ   rm   s   &rM   rs   ÚAbstractRuleMatching.canonical  ru   rP   rQ   N)rR   rS   rT   rU   r¡   r¢   rÁ   r’   r    rs   rW   rX   rY   s   @rM   rG   rG     s]   ø‡ € Ø×Ñ÷@ó ð@ð 	×Ñ÷Jó ðJð Ø×Ñ÷ó ó örP   rG   c                   óÆ   a a€ ] tR tRt o]P
                  ! R4      tV3R lV 3R llt]V3R lR l4       t	V3R lR lt
V3R	 lR
 ltV3R lR ltV3R lR ltRtVtV ;t# )ÚDomaini  z(?!-)[a-z\d-]{1,63}(?<!-)c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r8   rF   r_   Nr`   )rK   rL   s   "€rM   rN   ÚDomain.__annotate__!  s   ø€ ÷ /ñ /™sð / tñ /rP   c                óP   <€ \         SV `  4        V P                  V4      V n        R # rc   )ró   rh   Ú
validationÚ_domain)rg   rF   rø   s   &&€rM   rh   ÚDomain.__init__!  s   ø€ Ü‰ÑÔØ—‘ vÓ.ˆŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r·  &  rð  rP   c                ó   € V P                   # rc   ©rº  rm   s   &rM   rs   ÚDomain.canonical%  rÑ   rP   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r8   rF   r_   r`   )rK   rL   s   "€rM   rN   r·  )  s   ø€ ÷ ,ñ ,¡ð ,©ñ ,rP   c                ó|  a € \        V\        4      '       g   \        R 4      hVP                  R4      P	                  4       pV'       g   \        R4      hRV9   d   \        R4      h\        RV,           4      pVP                  f   Q h\        ;QJ d8    V 3R lVP                  P                  R4       4       F  '       d   K   RM-	  RM)! V 3R lVP                  P                  R4       4       4      '       g   \        R	4      hVP                  ^P8X  d   VP                  # VP                   R
VP                   2# )zDomain must be strr7   zDomain cannot be emptyz://zScheme not supportedzhttp://c              3   óZ   <"  € T F   pSP                   P                  V4      x € K"  	  R # 5irc   )Úre_partr·  )Ú.0Úxrg   s   & €rM   Ú	<genexpr>Ú$Domain.validation.<locals>.<genexpr>3  s%   øé € ÐNÑ6M°�4—<‘<×)Ñ)¨!×,Ð,Ó6Mùs   ƒ(+FTzDomain not validÚ:)r³   rJ   Ú	TypeErrorÚrstriprI  rÂ   r   Úraw_hostÚallrµ  Úport)rg   rF   râ  s   f& rM   r¹  ÚDomain.validation)  sí   ø€ Ü˜&¤#×&Ò&ÜÐ0Ó1Ð1Ø—‘˜sÓ#×)Ñ)Ó+ˆßÜÐ5Ó6Ð6Ø�fŒ_ÜÐ3Ó4Ð4Ü�)˜fÕ$Ó%ˆØ�|‰|Ò'Ð'Ð'ß‹sÔN°c·l±l×6HÑ6HÈÔ6MÓN�s�sŠsÔN°c·l±l×6HÑ6HÈÔ6MÓN×NÒNÜÐ/Ó0Ð0Ø�8‰8�rŒ>Ø—<‘<ÐØ—,‘,�˜q §¡ 
Ð+Ð+rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r©  )rK   rL   s   "€rM   rN   r·  9  s   ø€ ÷ 'ñ '¡7ð '©tñ 'rP   c              ƒ  ó’   "  € VP                   P                  \        P                  4      pV'       g   R # V P	                  V4      # 5irø  )rE  rF  r   ÚHOSTÚmatch_domain)rg   r~   Úhosts   && rM   rÁ   ÚDomain.match9  s4   é € Ø�‰×"Ñ"¤4§9¡9Ó-ˆßÙØ× Ñ  Ó&Ð&ùs   ‚AAc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r8   rÓ  r_   rš   )rK   rL   s   "€rM   rN   r·  ?  s   ø€ ÷ ,ñ ,¡ð ,©ñ ,rP   c                ó<   € VP                  4       V P                  8H  # rc   )rI  rº  ©rg   rÓ  s   &&rM   rÒ  ÚDomain.match_domain?  s   € Ø�z‰z‹|˜tŸ|™|Ñ+Ð+rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r·  B  s   ø€ ÷ (ñ (™)ñ (rP   c                ó   € R V P                   /# )rF   r¾  rm   s   &rM   r’   ÚDomain.get_infoB  s   € Ø˜$Ÿ,™,Ð'Ð'rP   r¾  )rR   rS   rT   rU   r½  r¿  rÃ  rh   r    rs   r¹  rÁ   rÒ  r’   rW   rX   r*  r+  s   @@rM   r´  r´    s_   ù‡ € Ø�jŠjÐ5Ó6€G÷/ó /ð ÷ó ð÷,ð ,÷ 'ð '÷,ð ,÷(÷ (ð (rP   r´  c                   ó�   a a€ ] tR tRt o]P
                  ! R4      tV3R lV 3R llt]V3R lR l4       t	V3R lR lt
R	tVtV ;t# )
Ú
MaskDomainiF  z(?!-)[a-z\d\*-]{1,63}(?<!-)c                ó$   <€ V ^8„  d   QhRS[ RR/# r¶  r`   )rK   rL   s   "€rM   rN   ÚMaskDomain.__annotate__I  s   ø€ ÷ &ñ &™sð & tñ &rP   c                ó´   <€ \         SV `  V4       V P                  P                  R R4      P                  RR4      p\        P
                  ! V4      V n        R# )r7   z\.Ú*z.*N)ró   rh   rº  r  r½  r¿  Ú_mask)rg   rF   Úmaskrø   s   && €rM   rh   ÚMaskDomain.__init__I  sC   ø€ Ü‰Ñ˜Ô Ø�|‰|×#Ñ# C¨Ó/×7Ñ7¸¸TÓBˆÜ—Z’Z Ó%ˆŽ
rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rà  O  s   ø€ ÷ "ñ "™3ñ "rP   c                ó.   € V P                   P                  # rc   )rã  rA   rm   s   &rM   rs   ÚMaskDomain.canonicalN  s   € à�z‰z×!Ñ!Ð!rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# rÖ  rš   )rK   rL   s   "€rM   rN   rà  R  s   ø€ ÷ 6ñ 6¡ð 6©ñ 6rP   c                ó<   € V P                   P                  V4      R J# rc   )rã  r·  rØ  s   &&rM   rÒ  ÚMaskDomain.match_domainR  s   € Ø�z‰z×#Ñ# DÓ)°Ð5Ð5rP   )rã  )rR   rS   rT   rU   r½  r¿  rÃ  rh   r    rs   rÒ  rW   rX   r*  r+  s   @@rM   rÞ  rÞ  F  sA   ù‡ € Ø�jŠjÐ7Ó8€G÷&ó &ð
 ÷"ó ð"÷6÷ 6ð 6rP   rÞ  c                   ó„   a € ] tR tRt o V 3R lR lt]V 3R lR l4       tV 3R lR ltV 3R lR	 ltV 3R
 lR lt	Rt
V tR# )ÚMatchedSubAppResourceiV  c                ó(   <€ V ^8„  d   QhRS[ RRRR/# )r8   rH   rE   r6   r_   N)rG   )rK   rL   s   "€rM   rN   Ú"MatchedSubAppResource.__annotate__W  s#   ø€ ÷ ñ Ñ1ð ¸ð È$ñ rP   c                óV   € \         P                  V 4       R V n        W n        Wn        R# )rC  N)r.   rh   rì  r„  Ú_rule)rg   rH   rE   s   &&&rM   rh   ÚMatchedSubAppResource.__init__W  s!   € Ü×!Ñ! $Ô'ØˆŒØŒ	ØŽ
rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rï  ^  s   ø€ ÷ $ñ $™3ñ $rP   c                ó.   € V P                   P                  # rc   )rñ  rs   rm   s   &rM   rs   ÚMatchedSubAppResource.canonical]  s   € à�z‰z×#Ñ#Ð#rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   rï  a  s   ø€ ÷ 6ñ 6™)ñ 6rP   c                ó6   € R V P                   RV P                  /# )rE   rH   )r„  rñ  rm   s   &rM   r’   ÚMatchedSubAppResource.get_infoa  s   € Ø�t—y‘y &¨$¯*©*Ð5Ð5rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r   )rK   rL   s   "€rM   rN   rï  d  s   ø€ ÷ 	#ñ 	#¡Wð 	#±ñ 	#rP   c              ƒ  ó˜  "  € V P                   P                  V4      G R j  x€L
 '       g   R \        4       3# V P                  P                  P                  V4      G R j  x€L
 pVP                  V P                  4       \        VP                  \        4      '       d   VP                  P                  pW#3# \        4       pW#3#  L¤ Lg5irc   )rñ  rÁ   rU  r„  rŒ  rƒ   r  r³   rI   r$   rH  rš  s   &&  rM   rƒ   ÚMatchedSubAppResource.resolved  s¢   é € Ø—Z‘Z×%Ñ% gÓ.×.Ö.Øœ›�;ÐØŸ9™9×+Ñ+×3Ñ3°GÓ<×<ˆ
Ø×Ñ˜4Ÿ9™9Ô%Ü�j×/Ñ/Ô1E×FÒFØ ×/Ñ/×?Ñ?ˆGð Ð"Ð"ô “eˆGØÐ"Ð"ñ /á<ùs'   ‚C
¡C¢	C
¬4C
Á CÁ!A&C
ÃC
c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   rï  o  s   ø€ ÷ ;ñ ;™#ñ ;rP   c                ó$   € R V P                   : R2# )z<MatchedSubAppResource -> r$  r¦  rm   s   &rM   r%  ÚMatchedSubAppResource.__repr__o  s   € Ø+¨D¯I©I©=¸Ð:Ð:rP   )r„  rì  rñ  N)rR   rS   rT   rU   rh   r    rs   r’   rƒ   r%  rW   rX   rY   s   @rM   rí  rí  V  sA   ø‡ € ÷ð ð ÷$ó ð$÷6ð 6÷	#ð 	#÷;ö ;rP   rí  c                   óœ   a a€ ] tR tRt oRtRR/V3R lV 3R llltV3R lR lt]V3R	 lR
 l4       tV3R lR lt	V3R lR lt
RtVtV ;t# )r3   is  zA route with resourcer¤   Nc          
      ód   <€ V ^8„  d   QhRS[ RS[S[S[,          ,          RS[RS[R,          RR/# )r8   r§   r¨   r¥   r¤   Nr_   )rJ   r   r©   r   r.   rª   )rK   rL   s   "€rM   rN   ÚResourceRoute.__annotate__v  sL   ø€ ÷ 

ñ 

áð

ñ ™4¡Õ-Õ-ð

ñ #ð	

ñ '¨Õ-ð

ð 
ñ

rP   c               ó*   <€ \         SV `  WWCR 7       R# ))r¤   r¥   N)ró   rh   )rg   r§   r¨   r¥   r¤   rø   s   &&&&$€rM   rh   ÚResourceRoute.__init__v  s   ø€ ô 	‰ÑØ¨Nð 	ö 	
rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r  ‚  r<  rP   c                óV   € R V P                    RV P                   RV P                  : 2# )z<ResourceRoute [z] r|  )r§   rÌ   r¨   rm   s   &rM   r%  ÚResourceRoute.__repr__‚  s)   € Ø! $§+¡+ ¨b°·±Ð0@ÀÀTÇ\Á\ÑDTÐUÐUrP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rk   r`   )rK   rL   s   "€rM   rN   r  †  s   ø€ ÷ #ñ #‘c˜D•jñ #rP   c                óN   € V P                   f   R # V P                   P                  # rc   )rÌ   r\   rm   s   &rM   r\   ÚResourceRoute.name…  s   € à�>‰>Ò!ÙØ�~‰~×"Ñ"Ð"rP   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# rá   rx   )rK   rL   s   "€rM   rN   r  ‹  s"   ø€ ÷ 7ñ 7™Sð 7©Cð 7±Cñ 7rP   c                óZ   € V P                   f   Q hV P                   P                  ! V/ VB # )rä   )rÌ   rz   rå   s   &*,rM   rz   ÚResourceRoute.url_for‹  s,   € à�~‰~Ò)Ð)Ð)Ø�~‰~×%Ò% tÐ6¨vÑ6Ð6rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r  �  s   ø€ ÷ )ñ )™)ñ )rP   c                óV   € V P                   f   Q hV P                   P                  4       # rc   )rÌ   r’   rm   s   &rM   r’   ÚResourceRoute.get_info�  s%   € Ø�~‰~Ò)Ð)Ð)Ø�~‰~×&Ñ&Ó(Ð(rP   rQ   )rR   rS   rT   rU   Ú__doc__rh   r%  r    r\   rz   r’   rW   rX   r*  r+  s   @@rM   r3   r3   s  sU   ù‡ € Ùð

ð 15÷

õ 

÷Vð Vð ÷#ó ð#÷
7ð 7÷
)÷ )ð )rP   c                   óÚ   a a€ ] tR tRt oV3R lV 3R lltV3R lR lt]V3R lR l4       tV3R lR	 ltV3R
 lR lt	]V3R lR l4       t
]V3R lR l4       tV3R lR ltRtVtV ;t# )r3  i•  c                ó$   <€ V ^8„  d   QhRS[ RR/# r/  r  )rK   rL   s   "€rM   rN   ÚSystemRoute.__annotate__–  s   ø€ ÷ .ñ .¡}ð .¸ñ .rP   c                ód   <€ \         SV `  \        P                  V P                  4       Wn        R # rc   )ró   rh   r   ra  r  Ú_http_exceptionr4  s   &&€rM   rh   ÚSystemRoute.__init__–  s    ø€ Ü‰ÑœŸ™¨¯©Ô5Ø-ÖrP   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# rá   rx   )rK   rL   s   "€rM   rN   r  š  s'   ø€ ÷ Hñ H™Sð H©Cð H±Cñ HrP   c                ó   € \        R 4      h)z).url_for() is not allowed for SystemRouter“  rå   s   &*,rM   rz   ÚSystemRoute.url_forš  s   € ÜÐFÓGÐGrP   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rk   r`   )rK   rL   s   "€rM   rN   r  ž  s   ø€ ÷ ñ ‘c˜D•jñ rP   c                ó   € R # rc   rQ   rm   s   &rM   r\   ÚSystemRoute.name�  r  rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rŽ   )rK   rL   s   "€rM   rN   r  ¡  s   ø€ ÷ 8ñ 8™)ñ 8rP   c                ó   € R V P                   /# )rI   ©r  rm   s   &rM   r’   ÚSystemRoute.get_info¡  s   € Ø  $×"6Ñ"6Ð7Ð7rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   r®   )rK   rL   s   "€rM   rN   r  ¤  s   ø€ ÷ #ñ #¡Wð #±ñ #rP   c              ƒ  ó"   "  € V P                   h5irc   r  r‚   s   &&rM   r  ÚSystemRoute._handle¤  s   é € Ø×"Ñ"Ð"ùs   ‚c                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   r  ¨  ó   ø€ ÷ +ñ +™ñ +rP   c                ó.   € V P                   P                  # rc   )r  r>  rm   s   &rM   r>  ÚSystemRoute.status§  ó   € à×#Ñ#×*Ñ*Ð*rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r  ¬  r%  rP   c                ó.   € V P                   P                  # rc   )r  r?  rm   s   &rM   r?  ÚSystemRoute.reason«  r(  rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   r`   )rK   rL   s   "€rM   rN   r  ¯  s   ø€ ÷ =ñ =™#ñ =rP   c                ó<   € R V P                    RV P                   R2# )z<SystemRoute r#  r$  )r>  r?  rm   s   &rM   r%  ÚSystemRoute.__repr__¯  s   € Ø˜tŸ{™{˜m¨2¨d¯k©k¨]¸!Ð<Ð<rP   r  )rR   rS   rT   rU   rh   rz   r    r\   r’   r  r>  r?  r%  rW   rX   r*  r+  s   @@rM   r3  r3  •  sz   ù‡ € ÷.ó .÷Hð Hð ÷ó ð÷8ð 8÷#ð #ð ÷+ó ð+ð ÷+ó ð+÷=÷ =ð =rP   r3  c                   óV   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR	# )
r5   i³  c                ó    <€ V ^8„  d   QhRS[ /# rq   )r*   )rK   rL   s   "€rM   rN   ÚView.__annotate__´  s   ø€ ÷ 	ñ 	™^ñ 	rP   c              ƒ  óV  "  € V P                   P                  \        P                  9  d   V P	                  4        \        W P                   P                  P                  4       R 4      pVf   V P	                  4        V! 4       G R j  x€L
 p\        V\        4      '       g   Q hV#  L5irc   )	r~   r§   r   ÚMETH_ALLÚ_raise_allowed_methodsÚgetattrrI  r³   r*   )rg   r§   Úrets   &  rM   Ú_iterÚ
View._iter´  s}   é € Ø�<‰<×Ñ¤d§m¡mÔ3Ø×'Ñ'Ô)ä˜Ÿ|™|×2Ñ2×8Ñ8Ó:¸DÓAˆØŠ>Ø×'Ñ'Ô)Ù“H�nˆÜ˜#œ~×.Ò.Ð.Ð.Øˆ
ñ ùs   ‚BB)ÂB'Â	B)c                ó6   <€ V ^8„  d   QhRS[ RRS[3,          /# rk   )r   r*   )rK   rL   s   "€rM   rN   r1  ¿  s    ø€ ÷ (ñ (™9 T¨4±Ð%?Õ@ñ (rP   c                ó>   € V P                  4       P                  4       # rc   )r7  Ú	__await__rm   s   &rM   r;  ÚView.__await__¿  s   € Ø�z‰z‹|×%Ñ%Ó'Ð'rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )r   )rK   rL   s   "€rM   rN   r1  Â  s   ø€ ÷ Iñ I©ñ IrP   c                óÌ   € \         P                   Uu0 uF&  p\        WP                  4       4      '       g   K$  VkK(  	  pp\	        V P
                  P                  V4      hu upi rc   )r   r3  ÚhasattrrI  r$   r~   r§   )rg   r8  rH  s   &  rM   r4  ÚView._raise_allowed_methodsÂ  sF   € Ü&*§m¢mÓP¡m ´w¸tÇWÁWÃY×7OŸ1˜1¡mˆÐPÜ" 4§<¡<×#6Ñ#6¸ÓHÐHùò Qs
   “!A!¹A!rQ   N)	rR   rS   rT   rU   r7  r;  r4  rW   rX   rY   s   @rM   r5   r5   ³  s%   ø‡ € ÷	ð 	÷(ð (÷Iö IrP   c                   óh   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltR
tV t	R# )ÚResourcesViewiÇ  c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r8   r�  r_   N©Úlistr.   )rK   rL   s   "€rM   rN   ÚResourcesView.__annotate__È  s!   ø€ ÷ $ñ $¡$Ñ'7Õ"8ð $¸Tñ $rP   c                ó   € Wn         R # rc   ©Ú
_resources)rg   r�  s   &&rM   rh   ÚResourcesView.__init__È  s   € Ø#ŽrP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   rF  Ë  s   ø€ ÷ $ñ $™ñ $rP   c                ó,   € \        V P                  4      # rc   )rv  rI  rm   s   &rM   rw  ÚResourcesView.__len__Ë  s   € Ü�4—?‘?Ó#Ð#rP   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rq   )r   r.   )rK   rL   s   "€rM   rN   rF  Î  s   ø€ ÷ #ñ #™(Ñ#3Õ4ñ #rP   c              #  ó:   "  € V P                    R j  x€L
  R #  L5irc   rH  rm   s   &rM   r  ÚResourcesView.__iter__Î  s   é € Ø—?‘?×"Ô"ùó   ‚’“c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r8   r¥   r_   ©Úobjectr›   )rK   rL   s   "€rM   rN   rF  Ñ  s   ø€ ÷ +ñ +¡Vð +±ñ +rP   c                ó   € WP                   9   # rc   rH  ©rg   r¥   s   &&rM   Ú__contains__ÚResourcesView.__contains__Ñ  s   € ØŸ?™?Ñ*Ð*rP   rH  N©
rR   rS   rT   rU   rh   rw  r  rX  rW   rX   rY   s   @rM   rB  rB  Ç  s-   ø‡ € ÷$ð $÷$ð $÷#ð #÷+ö +rP   rB  c                   óh   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltR
tV t	R# )Ú
RoutesViewiÕ  c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r8   r�  rD  )rK   rL   s   "€rM   rN   ÚRoutesView.__annotate__Ö  s   ø€ ÷ +ñ +¡$Ñ'7Õ"8ñ +rP   c                ón   € . V n         V F'  pV F  pV P                   P                  V4       K   	  K)  	  R # rc   )rS  rj  )rg   r�  r¥   rï   s   &&  rM   rh   ÚRoutesView.__init__Ö  s/   € Ø,.ˆŒÛ!ˆHÛ!�Ø—‘×#Ñ# EÖ*ó "ó "rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   r^  Ü  rs  rP   c                ó,   € \        V P                  4      # rc   ru  rm   s   &rM   rw  ÚRoutesView.__len__Ü  ry  rP   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rq   rN  )rK   rL   s   "€rM   rN   r^  ß  s   ø€ ÷  ñ  ™(¡=Õ1ñ  rP   c              #  ó:   "  € V P                    R j  x€L
  R #  L5irc   ©rS  rm   s   &rM   r  ÚRoutesView.__iter__ß  s   é € Ø—<‘<×ÔùrQ  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   rï   r_   rT  )rK   rL   s   "€rM   rN   r^  â  s   ø€ ÷ %ñ %¡&ð %©Tñ %rP   c                ó   € WP                   9   # rc   rf  rc  s   &&rM   rX  ÚRoutesView.__contains__â  s   € ØŸ™Ñ$Ð$rP   rf  NrZ  rY   s   @rM   r\  r\  Õ  s-   ø‡ € ÷+ð +÷!ð !÷ ð  ÷%ö %rP   r\  c                   óf  a a€ ] tR tRt o]P
                  ! R4      tV3R lV 3R lltV3R lR ltV3R lR lt	V3R	 lR
 lt
V3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltRR/V3R lR  lltRRR!R/V3R" lR# lltRRR!RR$]R%R&R'R&R(R&/V3R) lR* lltV3R+ lR, ltV3R- lR. ltRRR/R0/V3R1 lR2 lltV3R3 lR4 ltV3R5 lR6 ltV3R7 lR8 ltV3R9 lR: ltV3R; lR< ltV3R= lV 3R> llt V3R? lR@ lt!RAt"Vt#V ;t$# )Br,   iæ  z[.:-]c                ó   <€ V ^8„  d   QhRR/# rk   rQ   )rK   rL   s   "€rM   rN   ÚUrlDispatcher.__annotate__ê  s   ø€ ÷ Jñ J˜$ñ JrP   c                ó\   <€ \         SV `  4        . V n        / V n        / V n        . V n        R # rc   )ró   rh   rI  Ú_named_resourcesÚ_resource_indexÚ_matched_sub_app_resourcesr&  s   &€rM   rh   ÚUrlDispatcher.__init__ê  s-   ø€ Ü‰ÑÔØ24ˆŒØ=?ˆÔØBDˆÔØGIˆÖ'rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r}   )r(   r-   )rK   rL   s   "€rM   rN   rm  ñ  s   ø€ ÷ '.ñ '.¡Wð '.Ñ1Dñ '.rP   c              ƒ  óJ  "  € V P                   p\        4       pV P                   F.  pVP                  V4      G R j  x€L
 w  rVVe   Vu # W6,          pK0  	  VP                  P
                  pV'       dq   VP                  VR4       F.  pVP                  V4      G R j  x€L
 w  rVVe   Vu # W6,          pK0  	  VR8X  d   M$VP                  R4      ^ ,          ;'       g    RpKx  V'       d    \        \        VP                  V4      4      # \        \        4       4      #  Lâ L‚5i)Nr9   rQ   )rp  rU  rq  rƒ   rh  ri  rF  Ú
rpartitionr-  r$   r§   r%   )	rg   r~   Úresource_indexrH  r¥   rî   ÚallowedÚurl_partÚ	candidates	   &&       rM   rƒ   ÚUrlDispatcher.resolveñ  s  é € Ø×-Ñ-ˆÜ$'£Eˆð ×7Ô7ˆHØ(0×(8Ñ(8¸Ó(A×"AÑˆJØÒ%Ø!Ò!àÕ*’ñ 8ð —?‘?×,Ñ,ˆßØ+×/Ñ/°¸"Ö=�	Ø,5×,=Ñ,=¸gÓ,F×&FÑ#�
ØÒ)Ø%Ò%à#Õ.’Oñ >ð ˜3ŒØØ×*Ñ*¨3Ó/°Õ2×9Ð9°cŠHçÜ!Ô"6°w·~±~ÀÓ"WÓXÐXäœl›nÓ-Ð-ñ5 #Bñ 'Gùs4   ‚:D#¼D½7D#Á5)D#ÂD!ÂA D#Ã D#Ã-3D#Ä!D#c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rq   )r   rJ   )rK   rL   s   "€rM   rN   rm    s   ø€ ÷ +ñ +™(¡3�-ñ +rP   c                ó,   € \        V P                  4      # rc   )r}  ro  rm   s   &rM   r  ÚUrlDispatcher.__iter__  s   € Ü�D×)Ñ)Ó*Ð*rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   rq  )rK   rL   s   "€rM   rN   rm    s   ø€ ÷ *ñ *™ñ *rP   c                ó,   € \        V P                  4      # rc   )rv  ro  rm   s   &rM   rw  ÚUrlDispatcher.__len__  s   € Ü�4×(Ñ(Ó)Ð)rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# rS  rT  )rK   rL   s   "€rM   rN   rm     s   ø€ ÷ 1ñ 1¡Vð 1±ñ 1rP   c                ó   € WP                   9   # rc   ©ro  rW  s   &&rM   rX  ÚUrlDispatcher.__contains__   s   € Ø×0Ñ0Ñ0Ð0rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r8   r\   r_   )rJ   r.   )rK   rL   s   "€rM   rN   rm  #  s   ø€ ÷ +ñ +¡ð +Ñ(8ñ +rP   c                ó(   € V P                   V,          # rc   rƒ  rf   s   &&rM   Ú__getitem__ÚUrlDispatcher.__getitem__#  s   € Ø×$Ñ$ TÕ*Ð*rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )rB  )rK   rL   s   "€rM   rN   rm  &  s   ø€ ÷ .ñ .™=ñ .rP   c                ó,   € \        V P                  4      # rc   )rB  rI  rm   s   &rM   r�  ÚUrlDispatcher.resources&  s   € Ü˜TŸ_™_Ó-Ð-rP   c                ó    <€ V ^8„  d   QhRS[ /# rq   )r\  )rK   rL   s   "€rM   rN   rm  )  s   ø€ ÷ +ñ +™
ñ +rP   c                ó,   € \        V P                  4      # rc   )r\  rI  rm   s   &rM   rD   ÚUrlDispatcher.routes)  s   € Ü˜$Ÿ/™/Ó*Ð*rP   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# rq   )r	   rJ   r.   )rK   rL   s   "€rM   rN   rm  ,  s   ø€ ÷ 7ñ 7¡©Ñ.>Ð)>Õ!?ñ 7rP   c                ó,   € \        V P                  4      # rc   )r   ro  rm   s   &rM   Únamed_resourcesÚUrlDispatcher.named_resources,  s   € Ü × 5Ñ 5Ó6Ð6rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r8   r¥   r_   NrÚ   )rK   rL   s   "€rM   rN   rm  /  s   ø€ ÷ %*ñ %*Ñ*:ð %*¸tñ %*rP   c                óÐ  € \        V\        4      '       g   Q R V: 24       hV P                  '       d   \        R4      hVP                  pVe¹   V P
                  P                  V4      pV FU  p\        P                  ! V4      '       d   \        RV: R24      hVP                  4       '       d   KG  \        RV: R24      h	  W P                  9   d%   \        RV: RV P                  V,          : 24      hWP                  V&   V P                  P                  V4       \        V\        4      '       d   V P                  P                  V4       R# V P!                  V4       R# )z4Instance of AbstractResource class is required, got z.Cannot register a resource into frozen router.NzIncorrect route name z/, python keywords cannot be used for route namezV, the name should be a sequence of python identifiers separated by dash, dot or columnz
Duplicate z, already handled by )r³   r.   Úfrozenr  r\   ÚNAME_SPLIT_RErµ  ÚkeywordÚ	iskeywordrÂ   Úisidentifierro  rI  rj  rí  rq  r�  )rg   r¥   r\   rÜ  rÄ  s   &&   rM   Úregister_resourceÚUrlDispatcher.register_resource/  sd  € ÜØÔ&÷
ò 
ð 	OàAÀ(ÁÐNó	Oð 
ð �;�;ˆ;ÜÐOÓPÐPà�}‰}ˆàÒØ×&Ñ&×,Ñ,¨TÓ2ˆEÛ�Ü×$Ò$ T×*Ò*Ü$Ø/°©xð 8)ð )óð ð
 ×(Ñ(×*Ô*Ü$Ø/°©xð 81ð 1óð ñ ð ×,Ñ,Ô,Ü Ø  ¡ð )*Ø*.×*?Ñ*?ÀÕ*EÑ)HðJóð ð +3×!Ñ! $Ñ'Ø�‰×Ñ˜xÔ(ä�hÔ 5×6Ò6à×+Ñ+×2Ñ2°8Ö<à×Ñ Ö)rP   c                ó&   <€ V ^8„  d   QhRS[ RS[/# rS  )r.   rJ   )rK   rL   s   "€rM   rN   rm  V  s   ø€ ÷ 	,ñ 	,Ñ0@ð 	,ÁSñ 	,rP   c                óº   € RVP                   ;p9   d/   VP                  R4      ^ ,          P                  R4      ^ ,          pVP                  R4      ;'       g    R# )z9Return a key to index the resource in the resource index.r±  r9   )rs   Ú	partitionru  rÊ  )rg   r¥   Ú	index_keys   && rM   Ú_get_resource_index_keyÚ%UrlDispatcher._get_resource_index_keyV  sU   € à × 2Ñ 2Ð2�9Ô3ð "×+Ñ+¨CÓ0°Õ3×>Ñ>¸sÓCÀAÕFˆIØ×Ñ Ó$×+Ð+¨Ð+rP   c                ó$   <€ V ^8„  d   QhRS[ RR/# r”  rÚ   )rK   rL   s   "€rM   rN   rm  a  s    ø€ ÷ Kñ KÑ'7ð K¸Dñ KrP   c                ó~   € V P                  V4      pV P                  P                  V. 4      P                  V4       R# )z%Add a resource to the resource index.N)r¡  rp  Ú
setdefaultrj  ©rg   r¥   Úresource_keys   && rM   r�  ÚUrlDispatcher.index_resourcea  s5   € à×3Ñ3°HÓ=ˆð 	×Ñ×'Ñ'¨°bÓ9×@Ñ@ÀÖJrP   c                ó$   <€ V ^8„  d   QhRS[ RR/# r”  rÚ   )rK   rL   s   "€rM   rN   rm  i  s   ø€ ÷ <ñ <Ñ)9ð <¸dñ <rP   c                ól   € V P                  V4      pV P                  V,          P                  V4       R# )z*Remove a resource from the resource index.N)r¡  rp  Úremover¦  s   && rM   rŽ  ÚUrlDispatcher.unindex_resourcei  s+   € à×3Ñ3°HÓ=ˆØ×Ñ˜\Õ*×1Ñ1°(Ö;rP   r\   Nc                ó:   <€ V ^8„  d   QhRS[ RS[ R,          RS[/# r„  )rJ   r/   )rK   rL   s   "€rM   rN   rm  n  s&   ø€ ÷ ñ ¡ð ©s°T­zð ÁXñ rP   c               óÞ  € V'       d#   VP                  R 4      '       g   \        R4      hV P                  '       dL   V P                  R,          pVP                  V8X  d(   VP	                  V4      '       d   \        \        V4      # RV9   gB   RV9   g;   \        P                  V4      '       g    \        WR7      pV P                  V4       V# \        WR7      pV P                  V4       V# )r9   z)path should be started with / or be emptyr±  r²  rR  éÿÿÿÿ)r‡  rÂ   rI  r\   rž   r   r/   r´  Úsearchr0   r›  r1   )rg   r?   r\   r¥   s   &&$ rM   Úadd_resourceÚUrlDispatcher.add_resourcen  s´   € ß˜Ÿ™¨×,Ò,ÜÐHÓIÐIà�?�?ˆ?Ø—‘ rÕ*ˆHØ�}‰} Ô$¨×);Ñ);¸D×)AÒ)AÜœH hÓ/Ð/Ø�t”˜s dœ{¬h¯o©o¸d×.CÒ.CÜ$ TÔ5ˆHØ×"Ñ" 8Ô,ØˆOÜ" 4Ô3ˆØ×Ñ˜xÔ(ØˆrP   r¤   c                óz   <€ V ^8„  d   QhRS[ RS[ RS[S[S[,          ,          RS[ R,          RS[R,          RS[/# )r8   r§   r?   r¨   r\   Nr¤   r_   )rJ   r   r©   r   rª   r2   )rK   rL   s   "€rM   rN   rm  ~  sb   ø€ ÷ 
Rñ 
Ráð
Rñ ð
Rñ ™4¡Õ-Õ-ð	
Rñ �D�jð
Rñ '¨Õ-ð
Rñ 
ñ
RrP   c               óL   € V P                  W$R 7      pVP                  WVR7      # )rR  rZ  )r±  r]  )rg   r§   r?   r¨   r\   r¤   r¥   s   &&&&$$ rM   r]  ÚUrlDispatcher.add_route~  s-   € ð ×$Ñ$ TÐ$Ó5ˆØ×!Ñ! &À.Ð!ÓQÐQrP   rû  rü  Frý  rþ  c                ól   <€ V ^8„  d   QhRS[ RS[RS[ R,          RS[R,          RS[RS[RS[R	S[R
S[/	# )r8   rC   r?   r\   Nr¤   rû  rü  rý  rþ  r_   )rJ   r    rª   rr  r›   r.   )rK   rL   s   "€rM   rN   rm  Š  sn   ø€ ÷  ñ  áð ñ ð ñ
 �D�jð ñ '¨Õ-ð ñ ð ñ ð ñ ð ñ ð ñ 
ñ rP   c               ó¸   € VP                  R4      '       g   Q hVP                  R4      '       d   VRR p\        VVVVVVVVR7      p	V P                  V	4       V	# )zFAdd static files view.

prefix - url prefix
path - folder with files

r9   N)r\   r¤   rû  rü  rý  rþ  r¯  )r‡  r”  r4   r›  )
rg   rC   r?   r\   r¤   rû  rü  rý  rþ  r¥   s
   &&&$$$$$$ rM   Ú
add_staticÚUrlDispatcher.add_staticŠ  sl   € ð$ × Ñ  ×%Ò%Ð%Ð%Ø�?‰?˜3×ÒØ˜C˜R�[ˆFÜ!ØØØØ)Ø!Ø!Ø+Ø)ô	
ˆð 	×Ñ˜xÔ(ØˆrP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# ©r8   r?   r¨   rw   r_   ©rJ   r   r   r2   )rK   rL   s   "€rM   rN   rm  ¬  ó/   ø€ ÷ Gñ G™Sð G©7ð G¹cð GÁmñ GrP   c                óF   € V P                   ! \        P                  W3/ VB # )z(Shortcut for add_route with method HEAD.)r]  r   Ú	METH_HEAD©rg   r?   r¨   rw   s   &&&,rM   Úadd_headÚUrlDispatcher.add_head¬  ó   € à�~Š~œdŸn™n¨dÑF¸vÑFÐFrP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r»  r¼  )rK   rL   s   "€rM   rN   rm  °  s/   ø€ ÷ Jñ J¡ð J©gð JÁð JÉñ JrP   c                óF   € V P                   ! \        P                  W3/ VB # )z+Shortcut for add_route with method OPTIONS.)r]  r   ÚMETH_OPTIONSrÀ  s   &&&,rM   Úadd_optionsÚUrlDispatcher.add_options°  s   € à�~Š~œd×/Ñ/°ÑIÀ&ÑIÐIrP   Ú
allow_headTc                óL   <€ V ^8„  d   QhRS[ RS[RS[ R,          RS[RS[RS[/# )r8   r?   r¨   r\   NrÉ  rw   r_   )rJ   r   r›   r   r2   )rK   rL   s   "€rM   rN   rm  ´  sS   ø€ ÷ Dñ DáðDñ ðDñ
 �D�jðDñ ðDñ ðDñ 
ñDrP   c               ó¾   € V P                  WR7      pV'       d#   VP                  ! \        P                  V3/ VB  VP                  ! \        P                  V3/ VB # )z„Shortcut for add_route with method GET.

If allow_head is true, another
route is added allowing head requests to the same endpoint.
rR  )r±  r]  r   r¿  ÚMETH_GET)rg   r?   r¨   r\   rÉ  rw   r¥   s   &&&$$, rM   Úadd_getÚUrlDispatcher.add_get´  sO   € ð ×$Ñ$ TÐ$Ó5ˆßØ×ÒœtŸ~™~¨wÑA¸&ÒAØ×!Ò!¤$§-¡-°ÑC¸FÑCÐCrP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r»  r¼  )rK   rL   s   "€rM   rN   rm  Ç  r½  rP   c                óF   € V P                   ! \        P                  W3/ VB # )z(Shortcut for add_route with method POST.)r]  r   Ú	METH_POSTrÀ  s   &&&,rM   Úadd_postÚUrlDispatcher.add_postÇ  rÃ  rP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r»  r¼  )rK   rL   s   "€rM   rN   rm  Ë  s/   ø€ ÷ Fñ F™Cð F©'ð F¹Sð FÁ]ñ FrP   c                óF   € V P                   ! \        P                  W3/ VB # )z'Shortcut for add_route with method PUT.)r]  r   ÚMETH_PUTrÀ  s   &&&,rM   Úadd_putÚUrlDispatcher.add_putË  s   € à�~Š~œdŸm™m¨TÑE¸fÑEÐErP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r»  r¼  )rK   rL   s   "€rM   rN   rm  Ï  s/   ø€ ÷ Hñ H™cð H©Gð H¹sð HÁ}ñ HrP   c                óF   € V P                   ! \        P                  W3/ VB # )z)Shortcut for add_route with method PATCH.)r]  r   Ú
METH_PATCHrÀ  s   &&&,rM   Ú	add_patchÚUrlDispatcher.add_patchÏ  s   € à�~Š~œdŸo™o¨tÑGÀÑGÐGrP   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r»  r¼  )rK   rL   s   "€rM   rN   rm  Ó  s/   ø€ ÷ Iñ I™sð I©Wð IÁð IÉñ IrP   c                óF   € V P                   ! \        P                  W3/ VB # )z*Shortcut for add_route with method DELETE.)r]  r   ÚMETH_DELETErÀ  s   &&&,rM   Ú
add_deleteÚUrlDispatcher.add_deleteÓ  s   € à�~Š~œd×.Ñ.°ÑHÀÑHÐHrP   c                óB   <€ V ^8„  d   QhRS[ RS[S[,          RS[RS[/# r»  )rJ   r©   r   r   r2   )rK   rL   s   "€rM   rN   rm  ×  s8   ø€ ÷ Fñ FÙðFÙ"&¡|Õ"4ðFÙ@CðFá	ñFrP   c                óF   € V P                   ! \        P                  W3/ VB # )z?Shortcut for add_route with ANY methods for a class-based view.)r]  r   ra  rÀ  s   &&&,rM   Úadd_viewÚUrlDispatcher.add_view×  s   € ð �~Š~œdŸm™m¨TÑE¸fÑEÐErP   c                ó   <€ V ^8„  d   QhRR/# rk   rQ   )rK   rL   s   "€rM   rN   rm  Ý  s   ø€ ÷ ñ ˜ñ rP   c                ój   <€ \         SV `  4        V P                   F  pVP                  4        K  	  R # rc   )ró   r–   rI  )rg   r¥   rø   s   & €rM   r–   ÚUrlDispatcher.freezeÝ  s%   ø€ Ü‰‰ÔØŸœˆHØ�O‰OÖó (rP   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[S[,          /# )r8   rD   r_   )r   r+   rE  r2   )rK   rL   s   "€rM   rN   rm  â  s&   ø€ ÷ 
!ñ 
!¡Ñ*:Õ!;ð 
!ÁÁ]Õ@Sñ 
!rP   c                ó\   € . pV F#  pVP                  VP                  V 4      4       K%  	  V# )zŠAppend routes to route table.

Parameter should be a sequence of RouteDef objects.

Returns a list of registered AbstractRoute instances.
)ÚextendÚregister)rg   rD   Úregistered_routesÚ	route_defs   &&  rM   Ú
add_routesÚUrlDispatcher.add_routesâ  s3   € ð ÐÛˆIØ×$Ñ$ Y×%7Ñ%7¸Ó%=Ö>ñ  à Ð rP   )rq  ro  rp  rI  )%rR   rS   rT   rU   r½  r¿  r—  rh   rƒ   r  rw  rX  r‡  r�  rD   r‘  r›  r¡  r�  rŽ  r±  r]  r   r¸  rÁ  rÇ  rÍ  rÒ  r×  rÜ  rá  rå  r–   rð  rW   rX   r*  r+  s   @@rM   r,   r,   æ  s¤  ù‡ € à—J’J˜xÓ(€M÷Jó J÷'.ð '.÷R+ð +÷*ð *÷1ð 1÷+ð +÷.ð .÷+ð +÷7ð 7÷%*ð %*÷N	,ð 	,÷Kð K÷<ð <ð
¸D÷ ò ð 
Rð  ð
Rð 15÷
Rò 
Rð ð
  ð ð 15ð ð -ð ð !ð ð !&ð ð  %÷ ò  ÷DGð G÷Jð JðDð
  ðDð  ÷Dò D÷&Gð G÷Fð F÷Hð H÷Ið I÷Fð F÷ó ÷

!÷ 
!ð 
!rP   c                ó0   € V ^8„  d   QhR\         R\         /# ©r8   rÓ  r_   r`   )rK   s   "rM   rN   rN   ï  s   € ÷ 9ñ 9”sð 9œsñ 9rP   c                 ó€   € \         R8  d   V P                  RR4      p \        P                  ! V RR7      P                  # )r  r  r  Fr¢  r  )r  r  r   r¤  Úraw_path©rÓ  s   &rM   rß  rß  ï  s1   € Ü�fÔØ—‘˜c 5Ó)ˆÜ�9Š9˜%¨Ô/×8Ñ8Ð8rP   c                ó0   € V ^8„  d   QhR\         R\         /# ró  r`   )rK   s   "rM   rN   rN   õ  s   € ÷ 9ñ 9œcð 9¤cñ 9rP   c                 óX   € R V 9  d   V # V P                  RR4      P                  RR 4      # )r  z%2Fr9   r  )r  rö  s   &rM   rÑ  rÑ  õ  s-   € Ø
�%ÔØˆØ�=‰=˜ Ó$×,Ñ,¨U°CÓ8Ð8rP   c                ó0   € V ^8„  d   QhR\         R\         /# ró  r`   )rK   s   "rM   rN   rN   û  s   € ÷ ñ œð ¤ñ rP   c                 óN   € \        V 4      pR V 9   d   VP                  RR 4      pV# )r  r  )rß  r  )rÓ  r´   s   & rM   r¼  r¼  û  s*   € ô ˜Ó€FØ
ˆe„|Ø—‘  sÓ+ˆØ€MrP   c                ó”  € V ^8„  d   Qh/ ^ \         9   d"   \        \        \        R3,          ,          ;R&   ^\         9   d    \        \        \
        ,          ,          ;R&   ^\         9   d    \        \        \
        ,          ,          ;R&   ^\         9   d   \        \
        ,          ;R&   ^\         9   d   \        \        ,          ;R&   # )r8   .r  rÀ   r´  rÁ  rF  )Ú__conditional_annotations__r   r  rr  r   rJ   r›   )rK   s   "rM   rN   rN      sš   € ‡
�
÷N TÒ SŒe”Eœ#˜s˜(•OÕ$Ñ SñO ÷Rò ””gœc•lÕ#ñ ñS ÷Xò Œ%”œ•Õ
ñ ñY ÷^ &Ò %Œ%”�*Ñ %ñ_ ÷b 9Ò 8ŒE”$�KÑ 8òc rP   )
r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   )r¸   é   rQ   )zrü  r¡   r±   r4  Ú	functoolsr1  rx  r»   r˜  r  Úplatformr½  r½   rÅ   Úcollections.abcr   r   r   r   r   r   r	   r
   r   Úpathlibr   r   Útypesr   Útypingr   r   r   r   r   r   r   Úyarlr   r   Úyarl_versionrC  r   r   r   r   Úhelpersr   r   Úhttpr   Útypedefsr   r    Úweb_exceptionsr!   r"   r#   r$   r%   Úweb_fileresponser&   Úweb_requestr(   Úweb_responser)   r*   Úweb_routedefr+   Ú__all__Úweb_appr6   rð   rJ   ÚBaseDictr¾   r  r]  r  Úmaprr  rµ  r  r¿  rÀ   r´  r¾  rÁ  ÚsystemrF  rª   rU  r€   Úpartialrg  r=   r.   ÚABCr2   r-   r-  rº   r/   r0   r1   rè  r4   r€  rG   r´  rÞ  rí  r3   r3  r5   rB  r\  r,   rß  rÑ  r¼  rN   )rü  s   @rM   Ú<module>r     sî  øðß 
€
Û Û Û Û Û Û Û Û 	Û Û 	Û 
Û ÷	÷ 	ó 	õ Ý Ý Ý "ß Q× QÑ Qç 1å ß @Ñ @ß .Ý ß '÷õ õ +Ý  ß 2Ý *ð€÷ Ý$à�C˜�H�~�Hà€Hà,/×,<Ñ,<¸wÔ,F˜,™ÈBÐ á',©S°°l×6HÒ6HÈÓ6MÈbÕ6QÓ-RÓ'S€Ó Sà&(§j¢jØ+ó'€ó ð !#§
¢
Ø1ó!€ó ð —y’y “~€Ó %à"Ÿ/š/Ó+¨yÑ8€
Ó 8à˜7˜) Y¨~ÀÕ/DÕ%EÐEÕF€Ø�Ð/Õ0°#°cµ(Ð:Õ;€à×Ò §¡°4Ô8€ô"�	 õ "ô&,/�u˜h Õ7ô ,/ô^R3�C—G‘Gô R3ôj<B˜(Ð$5ô <Bô~VÐ(ô Võ Lô 1+Ðô 1+ôl%6�Hô %6ôPG=�hô G=ôTÐ%ô ô2OP�^ô OPôd)K˜^ô )KôX˜3Ÿ7™7ô ô%(Ð!ô %(ôP6�ô 6ô ;Ð2ô ;ô:)�Mô )ôD=�-ô =ô<Iˆ<ô Iô(+�E˜8Ð$4Õ5°yÐAQÕ7Rô +ô%�˜ Õ/°¸=Õ1Iô %ô"F!�N G¨CÐ1AÐ,AÕ$Bô F!õR9õ9÷rP   