Coverage for fastapi/routing.py: 100%
376 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-09 09:16 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-09 09:16 +0000
1import asyncio 1efabcd
2import dataclasses 1efabcd
3import email.message 1efabcd
4import inspect 1efabcd
5import json 1efabcd
6from contextlib import AsyncExitStack, asynccontextmanager 1efabcd
7from enum import Enum, IntEnum 1efabcd
8from typing import ( 1efabcd
9 Any,
10 AsyncIterator,
11 Callable,
12 Collection,
13 Coroutine,
14 Dict,
15 List,
16 Mapping,
17 Optional,
18 Sequence,
19 Set,
20 Tuple,
21 Type,
22 Union,
23)
25from fastapi import params 1efabcd
26from fastapi._compat import ( 1efabcd
27 ModelField,
28 Undefined,
29 _get_model_config,
30 _model_dump,
31 _normalize_errors,
32 lenient_issubclass,
33)
34from fastapi.datastructures import Default, DefaultPlaceholder 1efabcd
35from fastapi.dependencies.models import Dependant 1efabcd
36from fastapi.dependencies.utils import ( 1efabcd
37 _should_embed_body_fields,
38 get_body_field,
39 get_dependant,
40 get_flat_dependant,
41 get_parameterless_sub_dependant,
42 get_typed_return_annotation,
43 solve_dependencies,
44)
45from fastapi.encoders import jsonable_encoder 1efabcd
46from fastapi.exceptions import ( 1efabcd
47 FastAPIError,
48 RequestValidationError,
49 ResponseValidationError,
50 WebSocketRequestValidationError,
51)
52from fastapi.types import DecoratedCallable, IncEx 1efabcd
53from fastapi.utils import ( 1efabcd
54 create_cloned_field,
55 create_model_field,
56 generate_unique_id,
57 get_value_or_default,
58 is_body_allowed_for_status_code,
59)
60from pydantic import BaseModel 1efabcd
61from starlette import routing 1efabcd
62from starlette.concurrency import run_in_threadpool 1efabcd
63from starlette.exceptions import HTTPException 1efabcd
64from starlette.requests import Request 1efabcd
65from starlette.responses import JSONResponse, Response 1efabcd
66from starlette.routing import ( 1efabcd
67 BaseRoute,
68 Match,
69 compile_path,
70 get_name,
71 request_response,
72 websocket_session,
73)
74from starlette.routing import Mount as Mount # noqa 1efabcd
75from starlette.types import AppType, ASGIApp, Lifespan, Scope 1efabcd
76from starlette.websockets import WebSocket 1efabcd
77from typing_extensions import Annotated, Doc, deprecated 1efabcd
80def _prepare_response_content( 1efabcd
81 res: Any,
82 *,
83 exclude_unset: bool,
84 exclude_defaults: bool = False,
85 exclude_none: bool = False,
86) -> Any:
87 if isinstance(res, BaseModel): 2yfKgugLg)ihbImMg)pw x 2 *i+i!p' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQgujib#mRg$my z 3 vjwj#p( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNhfb!kCg/ps t U OhPhen8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hgbclHg:pu v V ]h^hfn9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%jjbgn|g;pA B 4 'j(j'p) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkkbJnch=pC D 5 sktk(p* ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
88 read_with_orm_mode = getattr(_get_model_config(res), "read_with_orm_mode", None) 2hbMg)pw x 2 ' JmKmLm/i:i3qMmNmOmPmQm?i4qRmSm5qTmUmVmWmXm_f_iYm`f`iZm0m1m2m3m4m5mkhlhejfj6m7m8m9m!m{f|f}f~fshNgOgthuhvhrjsjAfBf=eibRg$my z 3 ( %m'm(mAjBjhq)m*m+m,m-mEjiq.m/mjq:m;m=m?m@magJj[mbgKj]m^m_m`m{m|m}mChDhTjUj~manbncndncgdgegfgKhSgTgLhUgVg6j7j`e{e/efbCg/ps t U 8 #k$k%kThUh6q'k(k)k*k+kXh7q,k-k8q.k/k:k;k=k$f2h?k%f3h@k[k]k^k_k`k{k1g2g$h%h|k}k~kalbl'f(f)f*f+f9gDgEg!g#g$g=h?h}e~e:egbHg:pu v V 9 dlelfl|h}h9qglhliljlklbi!qllml#qnlolplqlrl,fgisl-fhitlulvlwlxlylzl,g-gqiriAlBlClDlEl.f/f:f;f=f@gIgJg[g]g^gDiEibfcf;ejb|g;pA B 4 ) hninjn,j-j$qknlnmnnnon:j%qpnqn'qrnsntnunvngg[jwnhg]jxnynznAnBnCnDnLiMibkckEnFnGnHnInigjgkglgmgTi}g~gUiViWiokpkMfNf[ekbch=pC D 5 * KnLnMnxkyk(qNnOnPnQnRnBk)qSnTn*qUnVnWnXnYnngGkZnogHk0n1n2n3n4n5n6n3i4iQkRk7n8n9n!n#npgqgrgsgtg#idheh$i%i'i3k4kQfRf]e
89 if read_with_orm_mode: 2hbMg)pw x 2 ' JmKmLm/i:i3qMmNmOmPmQm?i4qRmSm5qTmUmVmWmXm_f_iYm`f`iZm0m1m2m3m4m5mkhlhejfj6m7m8m9m!m{f|f}f~fshNgOgthuhvhrjsjAfBf=eibRg$my z 3 ( %m'm(mAjBjhq)m*m+m,m-mEjiq.m/mjq:m;m=m?m@magJj[mbgKj]m^m_m`m{m|m}mChDhTjUj~manbncndncgdgegfgKhSgTgLhUgVg6j7j`e{e/efbCg/ps t U 8 #k$k%kThUh6q'k(k)k*k+kXh7q,k-k8q.k/k:k;k=k$f2h?k%f3h@k[k]k^k_k`k{k1g2g$h%h|k}k~kalbl'f(f)f*f+f9gDgEg!g#g$g=h?h}e~e:egbHg:pu v V 9 dlelfl|h}h9qglhliljlklbi!qllml#qnlolplqlrl,fgisl-fhitlulvlwlxlylzl,g-gqiriAlBlClDlEl.f/f:f;f=f@gIgJg[g]g^gDiEibfcf;ejb|g;pA B 4 ) hninjn,j-j$qknlnmnnnon:j%qpnqn'qrnsntnunvngg[jwnhg]jxnynznAnBnCnDnLiMibkckEnFnGnHnInigjgkglgmgTi}g~gUiViWiokpkMfNf[ekbch=pC D 5 * KnLnMnxkyk(qNnOnPnQnRnBk)qSnTn*qUnVnWnXnYnngGkZnogHk0n1n2n3n4n5n6n3i4iQkRk7n8n9n!n#npgqgrgsgtg#idheh$i%i'i3k4kQfRf]e
90 # Let from_orm extract the data from this model instead of converting
91 # it now to a dict.
92 # Otherwise, there's no way to extract lazy data that requires attribute
93 # access instead of dict iteration, e.g. lazy relationships.
94 return res 2' AfBf( `e{e8 }e~e9 bfcf) MfNf* QfRf
95 return _model_dump( 2hbMg)pw x 2 JmKmLm/i:i3qMmNmOmPmQm?i4qRmSm5qTmUmVmWmXm_f_iYm`f`iZm0m1m2m3m4m5mkhlhejfj6m7m8m9m!m{f|f}f~fshNgOgthuhvhrjsj=eibRg$my z 3 %m'm(mAjBjhq)m*m+m,m-mEjiq.m/mjq:m;m=m?m@magJj[mbgKj]m^m_m`m{m|m}mChDhTjUj~manbncndncgdgegfgKhSgTgLhUgVg6j7j/efbCg/ps t U #k$k%kThUh6q'k(k)k*k+kXh7q,k-k8q.k/k:k;k=k$f2h?k%f3h@k[k]k^k_k`k{k1g2g$h%h|k}k~kalbl'f(f)f*f+f9gDgEg!g#g$g=h?h:egbHg:pu v V dlelfl|h}h9qglhliljlklbi!qllml#qnlolplqlrl,fgisl-fhitlulvlwlxlylzl,g-gqiriAlBlClDlEl.f/f:f;f=f@gIgJg[g]g^gDiEi;ejb|g;pA B 4 hninjn,j-j$qknlnmnnnon:j%qpnqn'qrnsntnunvngg[jwnhg]jxnynznAnBnCnDnLiMibkckEnFnGnHnInigjgkglgmgTi}g~gUiViWiokpk[ekbch=pC D 5 KnLnMnxkyk(qNnOnPnQnRnBk)qSnTn*qUnVnWnXnYnngGkZnogHk0n1n2n3n4n5n6n3i4iQkRk7n8n9n!n#npgqgrgsgtg#idheh$i%i'i3k4k]e
96 res,
97 by_alias=True,
98 exclude_unset=exclude_unset,
99 exclude_defaults=exclude_defaults,
100 exclude_none=exclude_none,
101 )
102 elif isinstance(res, list): 2yfKgugLg)iImMg)p2 *i+i!p,i-i.ifhghhh/i:i;i=icq?i@i[idq]i^ieq_i`i{i|i}i? G M k l ~iajihbj6kcjdjjhkhlhejfjgjhjijjjmhzfnhoh^ekjljphmjqhXfYfrhnjojpjqjrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQguj#mRg$m3 vjwj#pxjyjzjxhyhzhAjBjCjDj*pEjFjGj+pHjIj,pJjKjLjMjNj@ H N m n OjPjAhQj8kRjSjBhChDhTjUjVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fJh2j3j4j5j6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNh!kCg/pU OhPhenQhRhShWgXgYgThUhVhWhkqXhYhZhlq0h1hmq2h3h4h5h6h; E K g h 7h8hZg9h9j!h#h0g1g2g$h%h'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf8g.h/h:h;h=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hclHg:pV ]h^hfn_h`h{h'g(g)g|h}h~haipqbicidiqqeifirqgihiiijiki= F L i j limi*gni#joipi+g,g-gqirisitiuivi.gaf/g:g@ewixi;gyi=gIfJf?gziAiBiCiDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%jgn|g;p4 'j(j'p)j*j+jGiHiIi,j-j.j/juq:j;j=jvq?j@jwq[j]j^j_j`j[ I O o p {j|jJi}jFl~jakKiLiMibkckdkekfkgkNiLfOiPidfhkikQijkRi1f2fSikklkmknkokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkJnch=p5 sktk(pukvkwkYiZi0ixkykzkAkzqBkCkDkAqEkFkBqGkHkIkJkKk] J P q r LkMk1iNkHlOkPk2i3i4iQkRkSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4f!iZk0k1k2k3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
103 return [ 22 *i+i!pfhghhh/i:i?i_i`iihcjjhejfjmhzfnhoh^ephqhrhrjsjAfBf?pGq@pIqwh3 vjwj#pxhyhzhAjBjEjJjKjAhRjBhTjUjEhDfFhGh_eHhIhJh6j7j`e{e$p[p%p^pMhU OhPhenWgXgYgThUhXh2h3hZg!h0g$h%h3g|e4g5g?e6g7g8g=h?h}e~eQ _pJq`pLq%gV ]h^hfn'g(g)g|h}hbigihi*goi+gqiri.gaf/g:g@e;g=g?gDiEibfcfR {pMq|pOq_g4 'j(j'pGiHiIi,j-j:j[j]jJi~jKibkckNiLfOiPidfQiRiSiokpkMfNfW }pPq~pRqXi5 sktk(pYiZi0ixkykBkGkHk1iOk2iQkRk5iPf6i7ief8i9i!i3k4kQfRfX aqSqbqUq(i
104 _prepare_response_content(
105 item,
106 exclude_unset=exclude_unset,
107 exclude_defaults=exclude_defaults,
108 exclude_none=exclude_none,
109 )
110 for item in res
111 ]
112 elif isinstance(res, dict): 2yfKgugLg)iImMg)p*i+i,i-i.ifhghhh;i=icq@i[idq]i^ieq{i|i}i? G M k l ~iajihbj6kcjdjjhkhlhgjhjijjjmhzfnhoh^ekjljphmjqhXfYfrhnjojpjqj=e?pfqGqHqtj7k@pgqIqwhCfPgvgQguj#mRg$mvjwjxjyjzjxhyhzhCjDj*pFjGj+pHjIj,pLjMjNj@ H N m n OjPjAhQj8kRjSjBhChDhVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fJh2j3j4j5j/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNh!kCg/pOhPhQhRhShWgXgYgVhWhkqYhZhlq0h1hmq4h5h6h; E K g h 7h8hZg9h9j!h#h0g1g2g'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf8g.h/h:h;h:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hclHg:p]h^h_h`h{h'g(g)g~haipqcidiqqeifirqiijiki= F L i j limi*gni#joipi+g,g-gsitiuivi.gaf/g:g@ewixi;gyi=gIfJf?gziAiBiCi;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%jgn|g;p'j(j)j*j+jGiHiIi.j/juq;j=jvq?j@jwq^j_j`j[ I O o p {j|jJi}jFl~jakKiLiMidkekfkgkNiLfOiPidfhkikQijkRi1f2fSikklkmknk[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkJnch=psktkukvkwkYiZi0izkAkzqCkDkAqEkFkBqIkJkKk] J P q r LkMk1iNkHlOkPk2i3i4iSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4f!iZk0k1k2k]eX aqCqSqTq5kIlbqDqUq(i
113 return { 2)iImMg)p,i-i.ifhghhh;i=icq@i[idq]i^ieq{i|i}i? G M ~iajihbjdjjhkhlhgjhjijjjmhzfnhoh^ekjljphmjqhXfYfrhnjojpjqj=e?pfqGqtj@pgqIqwhuj#mRg$mxjyjzjxhyhzhCjDj*pFjGj+pHjIj,pLjMjNj@ H N OjPjAhQjSjBhChDhVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fJh2j3j4j5j/e$p-p[p8j%p.p^pMhNh!kCg/pQhRhShWgXgYgVhWhkqYhZhlq0h1hmq4h5h6h; E K 7h8hZg9h#h0g1g2g'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf8g.h/h:h;h:eQ _pnqJq@h`poqLq%g[hclHg:p_h`h{h'g(g)g~haipqcidiqqeifirqiijiki= F L limi*gnipi+g,g-gsitiuivi.gaf/g:g@ewixi;gyi=gIfJf?gziAiBiCi;eR {psqMqFi|ptqOq_g%jgn|g;p)j*j+jGiHiIi.j/juq;j=jvq?j@jwq^j_j`j[ I O {j|jJi}jakKiLiMidkekfkgkNiLfOiPidfhkikQijkRi1f2fSikklkmknk[eW }pxqPqqk~pyqRqXirkJnch=pukvkwkYiZi0izkAkzqCkDkAqEkFkBqIkJkKk] J P LkMk1iNkPk2i3i4iSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4f!iZk0k1k2k]eX aqCqSq5kbqDqUq(i
114 k: _prepare_response_content(
115 v,
116 exclude_unset=exclude_unset,
117 exclude_defaults=exclude_defaults,
118 exclude_none=exclude_none,
119 )
120 for k, v in res.items()
121 }
122 elif dataclasses.is_dataclass(res): 2yfKgugLg)iMg)p*i+i,i-i.ifhghhh;i=icq@i[idq]i^ieq{i|i}i? G M k l ~iajihbj6kcjdjjhgjhjijjjmhzfnhoh^ekjljphmjqhXfYfrhnjojpjqj=e?pfqGqHqtj7k@pgqIqwhCfPgvgQgujRg$mvjwjxjyjzjxhyhzhCjDj*pFjGj+pHjIj,pLjMjNj@ H N m n OjPjAhQj8kRjSjBhVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fJh2j3j4j5j/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNhCg/pOhPhQhRhShWgXgYgVhWhkqYhZhlq0h1hmq4h5h6h; E K g h 7h8hZg9h9j!h#h0g'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf8g.h/h:h;h:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hHg:p]h^h_h`h{h'g(g)g~haipqcidiqqeifirqiijiki= F L i j limi*gni#joipi+gsitiuivi.gaf/g:g@ewixi;gyi=gIfJf?gziAiBiCi;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%j|g;p'j(j)j*j+jGiHiIi.j/juq;j=jvq?j@jwq^j_j`j[ I O o p {j|jJi}jFl~jakKidkekfkgkNiLfOiPidfhkikQijkRi1f2fSikklkmknk[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkch=psktkukvkwkYiZi0izkAkzqCkDkAqEkFkBqIkJkKk] J P q r LkMk1iNkHlOkPk2iSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4f!iZk0k1k2k]eX aqCqSqTq5kIlbqDqUq(i
123 return dataclasses.asdict(res) 26kcj^e8kRj_e9j!h?e#joi@eFl~jdfHlOkef
124 return res 2yfKgugLg)iMg)p*i+i,i-i.ifhghhh;i=icq@i[idq]i^ieq{i|i}i? G M k l ~iajihbjdjjhgjhjijjjmhzfnhoh^ekjljphmjqhXfYfrhnjojpjqj=e?pfqGqHqtj7k@pgqIqwhCfPgvgQgujRg$mvjwjxjyjzjxhyhzhCjDj*pFjGj+pHjIj,pLjMjNj@ H N m n OjPjAhQjSjBhVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fJh2j3j4j5j/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNhCg/pOhPhQhRhShWgXgYgVhWhkqYhZhlq0h1hmq4h5h6h; E K g h 7h8hZg9h#h0g'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf8g.h/h:h;h:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hHg:p]h^h_h`h{h'g(g)g~haipqcidiqqeifirqiijiki= F L i j limi*gnipi+gsitiuivi.gaf/g:g@ewixi;gyi=gIfJf?gziAiBiCi;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%j|g;p'j(j)j*j+jGiHiIi.j/juq;j=jvq?j@jwq^j_j`j[ I O o p {j|jJi}jakKidkekfkgkNiLfOiPidfhkikQijkRi1f2fSikklkmknk[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkch=psktkukvkwkYiZi0izkAkzqCkDkAqEkFkBqIkJkKk] J P q r LkMk1iNkPk2iSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4f!iZk0k1k2k]eX aqCqSqTq5kIlbqDqUq(i
127def _merge_lifespan_context( 1efabcd
128 original_context: Lifespan[Any], nested_context: Lifespan[Any]
129) -> Lifespan[Any]:
130 @asynccontextmanager 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
131 async def merged_lifespan( 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
132 app: AppType,
133 ) -> AsyncIterator[Optional[Mapping[str, Any]]]:
134 async with original_context(app) as maybe_original_state: 2z0^q7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r_T`TG M {TE'A0_q~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBs|T}TH N ~TF'B0+qbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDraUbUE K cUG'C0,qErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6rdUeUF L fUH'D0`qCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4sgUhUI O iUI'E0{q5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{sjUkUJ P lUJ'
135 async with nested_context(app) as maybe_nested_state: 2z0^q7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r_T`TG M {TE'A0_q~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBs|T}TH N ~TF'B0+qbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDraUbUE K cUG'C0,qErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6rdUeUF L fUH'D0`qCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4sgUhUI O iUI'E0{q5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{sjUkUJ P lUJ'
136 if maybe_nested_state is None and maybe_original_state is None: 2z0^q7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r_T`TG M {TE'A0_q~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBs|T}TH N ~TF'B0+qbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDraUbUE K cUG'C0,qErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6rdUeUF L fUH'D0`qCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4sgUhUI O iUI'E0{q5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{sjUkUJ P lUJ'
137 yield None # old ASGI compatibility 2z0^q7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r`TG E'A0_q~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBs}TH F'B0+qbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrbUE G'C0,qErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6reUF H'D0`qCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4shUI I'E0{q5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{skUJ J'
138 else:
139 yield {**(maybe_nested_state or {}), **(maybe_original_state or {})} 2_TM {T|TN ~TaUK cUdUL fUgUO iUjUP lU
141 return merged_lifespan # type: ignore[return-value] 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
144async def serialize_response( 1efabcd
145 *,
146 field: Optional[ModelField] = None,
147 response_content: Any,
148 include: Optional[IncEx] = None,
149 exclude: Optional[IncEx] = None,
150 by_alias: bool = True,
151 exclude_unset: bool = False,
152 exclude_defaults: bool = False,
153 exclude_none: bool = False,
154 is_coroutine: bool = True,
155) -> Any:
156 if field: 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
157 errors = [] 2yfKgugLg-q)ihbnbImMg)p.q8vw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQg/qujibob#mRg$m:qkuy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgXqNhfblb!kCg/pYqxws t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGgZq[hgbmbclHg:p0qgAu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g;q%jjbpbgn|g;p=qFDA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbh?qrkkbqbJnch=p@qIDC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
158 if not hasattr(field, "serialize"): 2yfKgugLg-q)ihbnbImMg)p.q8vw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQg/qujibob#mRg$m:qkuy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgXqNhfblb!kCg/pYqxws t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGgZq[hgbmbclHg:p0qgAu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g;q%jjbpbgn|g;p=qFDA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbh?qrkkbqbJnch=p@qIDC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
159 # pydantic v1
160 response_content = _prepare_response_content( 2yfKgugLg)ihbImMg)pw x 2 *i+i!p' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQgujib#mRg$my z 3 vjwj#p( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgNhfb!kCg/ps t U OhPhen8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGg[hgbclHg:pu v V ]h^hfn9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g%jjbgn|g;pA B 4 'j(j'p) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbhrkkbJnch=pC D 5 sktk(p* ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
161 response_content,
162 exclude_unset=exclude_unset,
163 exclude_defaults=exclude_defaults,
164 exclude_none=exclude_none,
165 )
166 if is_coroutine: 2yfKgugLg-q)ihbnbImMg)p.q8vw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQg/qujibob#mRg$m:qkuy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgXqNhfblb!kCg/pYqxws t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGgZq[hgbmbclHg:p0qgAu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g;q%jjbpbgn|g;p=qFDA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbh?qrkkbqbJnch=p@qIDC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
167 value, errors_ = field.validate(response_content, {}, loc=("response",)) 2yfKgugLgMg)p.q8vXm_f_iYm`f`igjhjijjjmhzfnh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvh=eCfPgvgQgRg$m:qku@magJj[mbgKjVjWjXjYjEhDfFh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg/eEfAgwgBgCg/pYqxw=k$f2h?k%f3h'h(h)h*h3g|e4g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g:eHfFgxgGgHg:p0qgArl,fgisl-fhisitiuivi.gaf/g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^g;eKf`gyg{g|g;p=qFDvngg[jwnhg]jdkekfkgkNiLfOidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWi[eOfahzgbhch=p@qIDYnngGkZnogHkSkTkUkVk5iPf6iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i]e
168 else:
169 value, errors_ = await run_in_threadpool( 2-q)ihbnbImw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mohrjsjAfBf?pfqGqHqtj7k@pgqIqwh/qujibob#my z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnGh6j7j`e{e$p-p[p]p8j9k%p.p^pMhXqNhfblb!ks t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl5g=h?h}e~eQ _pnqJqKq@h!j`poqLq%gZq[hgbmbclu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqltliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlEl:gDiEibfcfR {psqMqNqFi$j|ptqOq_g;q%jjbpbgnA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInPiokpkMfNfW }pxqPqQqqkGl~pyqRqXi?qrkkbqbJnC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXn0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#n7i3k4kQfRfX aqCqSqTq5kIlbqDqUq(i
170 field.validate, response_content, {}, loc=("response",)
171 )
172 if isinstance(errors_, list): 2yfKgugLg-q)ihbnbImMg)p.q8vw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQg/qujibob#mRg$m:qkuy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgXqNhfblb!kCg/pYqxws t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGgZq[hgbmbclHg:p0qgAu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g;q%jjbpbgn|g;p=qFDA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbh?qrkkbqbJnch=p@qIDC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
173 errors.extend(errors_) 28vcq3qdq4qeq5q?pfqGqHq@pgqIqku*phq+piq,pjq$p-p[p]p%p.p^pxwkq6qlq7qmq8q_pnqJqKq`poqLqgApq9qqq!qrq#q{psqMqNq|ptqOqFDuq$qvq%qwq'q}pxqPqQq~pyqRqIDzq(qAq)qBq*qaqCqSqTqbqDqUq
174 elif errors_: 2yfKgugLg-q)ihbnbImMg)p.qw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqHqtj7k@pgqwhCfPgvgQg/qujibob#mRg$m:qy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p]p8j9k%p.pMhEfAgwgBgXqNhfblb!kCg/pYqs t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqKq@h!j`poq%gHfFgxgGgZq[hgbmbclHg:p0qu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqNqFi$j|ptq_gKf`gyg{g;q%jjbpbgn|g;p=qA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqQqqkGl~pyqXiOfahzgbh?qrkkbqbJnch=p@qC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqTq5kIlbqDq(i
175 errors.append(errors_) 2)pcq3qdq4qeq5q?pfqHq@pgq$m*phq+piq,pjq$p-p]p%p.p/pkq6qlq7qmq8q_pnqKq`poq:ppq9qqq!qrq#q{psqNq|ptq;puq$qvq%qwq'q}pxqQq~pyq=pzq(qAq)qBq*qaqCqTqbqDq
176 if errors: 2yfKgugLg-q)ihbnbImMg)p.q8vw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=icq3qMmNmOmPmQm?i@i[idq4qRmSm]i^ieq5qTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=e?pfqGqHqtj7k@pgqIqwhCfPgvgQg/qujibob#mRg$m:qkuy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj*phq)m*m+m,m-mEjFjGj+piq.m/mHjIj,pjq:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e$p-p[p]p8j9k%p.p^pMhEfAgwgBgXqNhfblb!kCg/pYqxws t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWhkq6q'k(k)k*k+kXhYhZhlq7q,k-k0h1hmq8q.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ _pnqJqKq@h!j`poqLq%gHfFgxgGgZq[hgbmbclHg:p0qgAu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haipq9qglhliljlklbicidiqq!qllmleifirq#qnlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR {psqMqNqFi$j|ptqOq_gKf`gyg{g;q%jjbpbgn|g;p=qFDA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/juq$qknlnmnnnon:j;j=jvq%qpnqn?j@jwq'qrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW }pxqPqQqqkGl~pyqRqXiOfahzgbh?qrkkbqbJnch=p@qIDC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkzq(qNnOnPnQnRnBkCkDkAq)qSnTnEkFkBq*qUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX aqCqSqTq5kIlbqDqUq(i
177 raise ResponseValidationError( 2)p8vcq3qdq4qeq5q?pfqGqHq@pgqIq$mku*phq+piq,pjq$p-p[p]p%p.p^p/pxwkq6qlq7qmq8q_pnqJqKq`poqLq:pgApq9qqq!qrq#q{psqMqNq|ptqOq;pFDuq$qvq%qwq'q}pxqPqQq~pyqRq=pIDzq(qAq)qBq*qaqCqSqTqbqDqUq
178 errors=_normalize_errors(errors), body=response_content
179 )
181 if hasattr(field, "serialize"): 2yfKgugLg-q)ihbnbImMg.qw x 2 *i+i!p- ' ,i-i.ifhghhhJmKmLm/i:i;i=iMmNmOmPmQm?i@i[iRmSm]i^iTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=etj7kwhCfPgvgQg/qujibob#mRg:qy z 3 vjwj#p. ( xjyjzjxhyhzh%m'm(mAjBjCjDj)m*m+m,m-mEjFjGj.m/mHjIj:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e8j9kMhEfAgwgBgXqNhfblb!kCgYqs t U OhPhen+ 8 QhRhShWgXgYg#k$k%kThUhVhWh'k(k)k*k+kXhYhZh,k-k0h1h.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ @h!j%gHfFgxgGgZq[hgbmbclHg0qu v V ]h^hfn, 9 _h`h{h'g(g)gdlelfl|h}h~haiglhliljlklbicidillmleifinlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR Fi$j_gKf`gyg{g;q%jjbpbgn|g=qA B 4 'j(j'p/ ) )j*j+jGiHiIihninjn,j-j.j/jknlnmnnnon:j;j=jpnqn?j@jrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW qkGlXiOfahzgbh?qrkkbqbJnch@qC D 5 sktk(p: * ukvkwkYiZi0iKnLnMnxkykzkAkNnOnPnQnRnBkCkDkSnTnEkFkUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX 5kIl(i
182 return field.serialize( 2yfKgugLg-q)inbIm.qw x 2 *i+i!p- ,i-i.ifhghhhJmKmLm/i:i;i=iMmNmOmPmQm?i@i[iRmSm]i^iTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=etj7kwhCfPgvgQg/qujob#m:qy z 3 vjwj#p. xjyjzjxhyhzh%m'm(mAjBjCjDj)m*m+m,m-mEjFjGj.m/mHjIj:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e8j9kMhEfAgwgBgXqNhlb!kYqs t U OhPhen+ QhRhShWgXgYg#k$k%kThUhVhWh'k(k)k*k+kXhYhZh,k-k0h1h.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ @h!j%gHfFgxgGgZq[hmbcl0qu v V ]h^hfn, _h`h{h'g(g)gdlelfl|h}h~haiglhliljlklbicidillmleifinlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR Fi$j_gKf`gyg{g;q%jpbgn=qA B 4 'j(j'p/ )j*j+jGiHiIihninjn,j-j.j/jknlnmnnnon:j;j=jpnqn?j@jrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW qkGlXiOfahzgbh?qrkqbJn@qC D 5 sktk(p: ukvkwkYiZi0iKnLnMnxkykzkAkNnOnPnQnRnBkCkDkSnTnEkFkUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX 5kIl(i
183 value,
184 include=include,
185 exclude=exclude,
186 by_alias=by_alias,
187 exclude_unset=exclude_unset,
188 exclude_defaults=exclude_defaults,
189 exclude_none=exclude_none,
190 )
192 return jsonable_encoder( 2yfKgugLg)ihbImMgw x 2 *i+i!p' ,i-i.ifhghhhJmKmLm/i:i;i=iMmNmOmPmQm?i@i[iRmSm]i^iTmUmVmWmXm_f_iYm`f`iZm{i0m|i1m}i? G M k l ~iajihbj6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!mgjhjijjjmhzfnhoh^ekjljphmjqhXfYf{f|f}f~frhnjojpjqjshNgOgthuhvhrjsjAfBf=etj7kwhCfPgvgQgujib#mRgy z 3 vjwj#p( xjyjzjxhyhzh%m'm(mAjBjCjDj)m*m+m,m-mEjFjGj.m/mHjIj:m;m=m?m@magJj[mbgKj]mLj^mMj_mNj@ H N m n OjPjAhQj8kRjSjBh`m{m|m}mChDhTjUj~manbncndnVjWjXjYjEhDfFhGh_eZj0jHh1jIhZf0fcgdgegfgJh2j3j4j5jKhSgTgLhUgVg6j7j`e{e/e8j9kMhEfAgwgBgNhfb!kCgs t U OhPhen8 QhRhShWgXgYg#k$k%kThUhVhWh'k(k)k*k+kXhYhZh,k-k0h1h.k/k:k;k=k$f2h?k%f3h@k4h[k5h]k6h; E K g h 7h8hZg9h9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalbl'h(h)h*h3g|e4g5g?e+h,h6g-h7gFfGf'f(f)f*f+f8g.h/h:h;h9gDgEg!g#g$g=h?h}e~e:eQ @h!j%gHfFgxgGg[hgbclHgu v V ]h^hfn9 _h`h{h'g(g)gdlelfl|h}h~haiglhliljlklbicidillmleifinlolplqlrl,fgisl-fhitliiuljivlki= F L i j limi*gni#joipi+gwlxlylzl,g-gqiriAlBlClDlElsitiuivi.gaf/g:g@ewixi;gyi=gIfJf.f/f:f;f=f?gziAiBiCi@gIgJg[g]g^gDiEibfcf;eR Fi$j_gKf`gyg{g%jjbgn|gA B 4 'j(j'p) )j*j+jGiHiIihninjn,j-j.j/jknlnmnnnon:j;j=jpnqn?j@jrnsntnunvngg[jwnhg]jxn^jyn_jzn`j[ I O o p {j|jJi}jFl~jakKiAnBnCnDnLiMibkckEnFnGnHnIndkekfkgkNiLfOiPidfhkikQijkRi1f2figjgkglgmgSikklkmknkTi}g~gUiViWiokpkMfNf[eW qkGlXiOfahzgbhrkkbJnchC D 5 sktk(p* ukvkwkYiZi0iKnLnMnxkykzkAkNnOnPnQnRnBkCkDkSnTnEkFkUnVnWnXnYnngGkZnogHk0nIk1nJk2nKk] J P q r LkMk1iNkHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#nSkTkUkVk5iPf6i7iefWkXk8iYk9i3f4fpgqgrgsgtg!iZk0k1k2k#idheh$i%i'i3k4kQfRf]eX 5kIl(i
193 value,
194 include=include,
195 exclude=exclude,
196 by_alias=by_alias,
197 exclude_unset=exclude_unset,
198 exclude_defaults=exclude_defaults,
199 exclude_none=exclude_none,
200 )
201 else:
202 return jsonable_encoder(response_content) 2KDLDMDNDOD$n%nPDQDRDSDTDqcGv{bY 7vUDVDbb^qWDXDPb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D}r]D+n^D_D,n%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmE! nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[EHv]E;n^EIvJv_E`E{E|E}E~EaFbFcFdFeF` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F=n'F?n/t@n[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tboco~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfoqGrGsGtGuGvGwGxGyGzGAGBGgoCGDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}Gjokolomo~GhuaHNgOgbHnooocHdHAfBfeHfHgHhHiHtbjHkHlHmHnHoHpHqHrHpoqoiujurososHtHuHvHwHtouoxHyHzHAHBHrcLvacZ !vCHDHcb_qEHFHQb~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!HBs#Hzo$H%HAolumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_H# `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!IMv#IFo$INvOv%I'I(I)I*I+I,I-I.I/I:I{ ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJGoWJHouuIoJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUodc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXo}J~JaKbKcKdKeKfKgKhKiKjKYokKlKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)K*K1o2o3o4o+KQu,KSgTg-K5o6o.K/K`e{e:K;K=K?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$v%v'v(v)vJlKl*v+v,v-v.vscQv.bS Rv/v:v| +q;v=vvbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwDruwPlvwwwQl|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPw6 QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxwbxb;b=bsxtxuxTuvxVlwxUuVuxxyxzxAxBxCxDxExFxGxHx^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyfyWlgyXlgtYlZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%lTyUyVyWyXyYyZy0y1y2y3y4y'l5y6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAzBz*l+l,l-lCzCtDzDgEgEz.l/lFzGz}e~eHzIzJzKzLzrbMzNzOzPzQzRzSzTzUz:l;lDtEt=l?lVzWzXzYzZz@l[l0z1z2z3z4ztcTv@bT Uv5z6z} ,q7z8zybErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcA6rdA{leAfA|lFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyA7 zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBzbAb^b_bbBcBdBXueBcmfBYuZugBhBiBjBkBlBmBnBoBpBqB_ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=Bdm?BemOtfmgm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCumCCDCECFCGCHCICJCKCLCMCNCvmOCPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjDkDymzmAmBmlD!tmDIgJgnDCmDmoDpDbfcfqDrDsDtDuDsbvDwDxDyDzDADBDCDDDEmFm#t$tGmHmaLbLcLdLeL#o$ofLgLhLiLjLucWvec0 EDkLlLdb`qmLnLRbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSL4sTL*oULVL+o1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%L$ 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMSbTbhcicQMRMSMXvTM:oUMYvZvVMWMXMYMZM0M1M2M3M4M5M~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDN;oEN=o!u?o@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)Nep*N+N,N-N.N/N:N;N=N?N@N[Nfp]N^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOZOipjpkplp0O`u1O}g~g2Ompnp3O4OMfNf5O6O7O8O9OBb!O#O$O%O'O(O)O*O+Ooppp{u|uqprp,O-O.O/O:Osptp;O=O?O@O[Ovc1vkc1 HD]O^Oeb{q_O`OUb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAP{sBPypCPDPzp}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVP% WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQVbWbncocyQzQAQ2vBQEpCQ3v4vDQEQFQGQHQIQJQKQLQMQNQabOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRFpmRGphvHpIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTppcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWpZR0R1R2R3R4R5R6R7R8R9R!RXp#R$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|R}R~RaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSHS0p1p2p3pISDvJSdhehKS4p5pLSMSQfRfNSOSPSQSRSCbSSTSUSVSWSXSYSZS0S6p7pEvFv8p9p
205async def run_endpoint_function( 1efabcd
206 *, dependant: Dependant, values: Dict[str, Any], is_coroutine: bool
207) -> Any:
208 # Only called by get_request_handler. Has been split into its own function to
209 # facilitate profiling endpoints, since inner functions are harder to profile.
210 assert dependant.call is not None, "dependant.call must be a function" 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n)n1S*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]DT0U0V0+n^D_D`U{U,n|UMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F00?F@F[F10]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtG20301WuG402WvG506070wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0hoHG$0IGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhbHnorjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowoxo6vyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#HeXfXgXzo$H%HBVCVAoDVRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7JlX8J9J!JmX#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKnXoXVWcKpXWWdKqXrXsXeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXZopKxXqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMlNl2SOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruw_0`0{0PlvwwwnUoUQlpUCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryb1sytyuyc1vywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyd1e1XWXyf1YWYyg1h1i1Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1(l!yn1#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^l_l3S`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdAG1H1I1{leAfAUUVU|lWUHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCN1bCcCdCO1eCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCP1Q1ZWGCR10WHCS1T1U1ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1wmTCZ1UCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'o(o4S)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL+1,1-1*oULVL8V9V+o!V|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPN=1QNRNSN?1TNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N@1[1(W.N]1)W/N^1_1`1:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1gp|Na2}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi2Ompoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvpwp5SxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPt2u2v2ypCPDPeWfWzpgWch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRA2yRzRARB2BRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2RC2D2.W3RE2/W4RF2G2H25R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL2Yp)RM2*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
212 if is_coroutine: 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n)n1S*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]DT0U0V0+n^D_D`U{U,n|UMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F00?F@F[F10]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtG20301WuG402WvG506070wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0hoHG$0IGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhbHnorjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowoxo6vyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#HeXfXgXzo$H%HBVCVAoDVRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7JlX8J9J!JmX#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKnXoXVWcKpXWWdKqXrXsXeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXZopKxXqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMlNl2SOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruw_0`0{0PlvwwwnUoUQlpUCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryb1sytyuyc1vywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyd1e1XWXyf1YWYyg1h1i1Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1(l!yn1#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^l_l3S`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdAG1H1I1{leAfAUUVU|lWUHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCN1bCcCdCO1eCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCP1Q1ZWGCR10WHCS1T1U1ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1wmTCZ1UCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'o(o4S)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL+1,1-1*oULVL8V9V+o!V|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPN=1QNRNSN?1TNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N@1[1(W.N]1)W/N^1_1`1:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1gp|Na2}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi2Ompoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvpwp5SxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPt2u2v2ypCPDPeWfWzpgWch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRA2yRzRARB2BRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2RC2D2.W3RE2/W4RF2G2H25R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL2Yp)RM2*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
213 return await dependant.call(**values) 2KDLDMDNDOD%nQDRDSDTDyfKgugLgqcGv{bY XDYDZD0D1D2DF0G0H03D4D5DI07DN0O0P09D'n(n)n$D%D'D(D)D*D+D,D-D.D/D:D;DMg)p.q8v`D-n{D|D}D~DaEkErEsEtEuEvEHvIvJvXm_f_iYm`f`idFLFMFTFUFVFWFXFYF8FW09FX0Y0Z0'FgjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F=F00?F@F[F10]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVpVoGpGfonh^eqGrGsGwGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0hoHG$0IGJGKGLGMGNGOGPGQGRGSGTGUGVGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufugu}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhcHdHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVsHtHuHvHwHuoyHzHAHBHCfPgvgQgrcLvacZ FHGHHHIHJHKH@W[W]WLHMHNH^WPH}W~WaXRHvowoxoUHVHWHXHYHZH0H1H2H3H4H5H6HRg$m:qku'HBo(H)H*H+H,H]H~HaIbIcIdIMvNvOv@magJj[mbgKj/ItJuJBJCJDJEJFJGJQJhXRJiXjXkXWJVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J7JlX8J9J!JmX#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDf(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVVV{J|JXoFh_e}J~JaKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXZopKxXqKrKsKtKuKvKwKxKyKzKAKBKCKDKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg.K/KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V$v%v'v(v)vKl+v,v-v.vEfAgwgBgscQv.bS =v?v@v[v]v^v*0+0,0_v`v{v-0}v=0?0@0awLlMlNldwewfwgwhwiwjwkwlwmwnwowpwCg/pYqxwywRlzwAwBwCwDwNwUwVwWwXwYwwbxb;b=bTuUuVu=k$f2h?k%f3hGx'x(x/x:x;x=x?x@xay|0by}0~0a1gy'hsU(htU)huU*hvU[qZlhyiyhtjykylyryb1sytyuyc1vywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|ezyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUHURySy%l4g?eTyUyVyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1(l!yn1#y$y%y'y(y)y*y+y,y-y.y/y:y;y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBt)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gFzGzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUVzWzXzYzZz[l1z2z3z4zHfFgxgGgtcTv@bT 8z9z!z#z$z%zs1t1u1'z(z)zv1+zA1B1C1-z]l^l_l:z;z=z?z@z[z]z^z_z`z{z|z}zHg:p0qgAhA}liAjAkAlAmAwADAEAFAGAHAzbAb^b_bXuYuZurl,fgisl-fhipBXBYB5B6B7B8B9B!B-BJ1.BK1L1M1?BsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_BaCN1bCcCdCO1eCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gafiCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U'UACBCum/g@eCCDCECICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1wmTCZ1UCVCWCXCYCZC0C1C2C3C4C5C6C7C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^goDpDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UaLbLcLdLeL$ogLhLiLjLKf`gyg{gucWvec0 nLoLpLqLrLsL415161tLuLvL71xL$1%1'1zL%o'o(oCLDLELFLGLHLILJLKLLLMLNLOL|g;p=qFDWL,oXLYLZL0L1L#L+L,L-L.L/LSbTbhcicXvYvZvvngg[jwnhg]j4MbNcNjNkNlNmNnNoNyN.1zN/1:1;1ENdk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNPN=1QNRNSN?1TNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V[V(N)NepOidf*N+N,N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1gp|Na2}N~NaObOcOdOeOfOgOhOiOjOkOlOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_ukglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi3O4OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW,O-O.O/O:Otp=O?O@O[OOfahzgbhvc1vkc1 `O{O|O}O~OaPf2g2h2bPcPdPi2fPn2o2p2hPupvpwpkPlPmPnPoPpPqPrPsPtPuPvPwPch=p@qIDEPApFPGPHPIPJPTP0P1P2P3P4PVbWbncoc2v3v4vYnngGkZnogHkMQ-Q.Q[Q]Q^Q_Q`Q{QgRw2hRx2y2z2mRSkjWTkkWUklWVkmWarIpnRoRivpRqRrRxRA2yRzRARB2BRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWyWXRYRWp6iefZR0R1R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL2Yp)RM2*R+R,R-R.R/R:R;R=R?R@R[R]R^R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCvrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iLSMSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW
214 else:
215 return await run_in_threadpool(dependant.call, **values) 2$nPD7vUDVDbb-q^qWD)iPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rJ0K0L06D8DM0Q0R0S0!D#D1S*n=D?D@D[DIm}r]DT0U0V0+n^D_D`U{U,n|U%t't(t)t*t+tbEcEdEeEfEgEhEiE|b}b.n/njE:nlEmEw ! x 2 nEoEpEqEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[E]E;n^E,i-i.ifhghhhJmKmLm/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmZm{i0m|i1m}icF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tNFOFPF-tQFRFSF.tZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m!F#F$F%F=n?n/t@n-F.F/F:F;F~boVohtG20301WuG402WvG506070ioWGKvsV{GtV|GbHnorjoosjAfBfeHfHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhtoxH!vCHDHcb/q_qEHujQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAs_W`W{WOHQH|WbXcXdXSHTH6vyo7H8H9H!H#mBs#HeXfXgXzo$H%HBVCVAoDVlumunuoupuqu-H.H/H:H;H=H?H@HbcccCoDo[HEo^H_Hy # z 3 `H{H|H}HeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!I#IFo$Ixjyjzjxhyhzh%m'm(mAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m]mLj^mMj_mNj.I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJruvJwJxJsuyJzJAJtuHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnSJTJUJVJGoHouuIo2J3J4J5J6JdcUVGhbKnXoXVWcKpXWWdKqXrXsX0oEKPvYV(KZV)K-K5o6j6o7j`e{e:K;K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMhJl*vRv/v:v| Xq+q;vNhvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr.0/0:0|v~v;0[0]0^0bwcw2SOlqwrwswtw!kDruw_0`0{0PlvwwwnUoUQlpU|s}s~satbtctEwFwGwHwIwJwKwLw/b:bSlTlMwUlOwPws 6 t U QwRwSwTwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 sxtxuxvxVlwxQhRhShWgXgYg#k$k%kThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k@k4h[k5h]k6hFx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt)x*x+xet,x-x.xft[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblcydyeyfyWlXlgtYlmynyoypyqy?bGU5gWyd1e1XWXyf1YWYyg1h1i1)l=yWuKUzzLUAzEz.l=h/l?h}e~eHzIzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%g@l0zUv5z6z} Zq,q7z[hybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5rw1x1y1*z,zz1D1E1F1.z/z3S`l~zaAbAcAcl6rdAG1H1I1{leAfAUUVU|lWUFtGtHtItJtKtnAoApAqArAsAtAuA[b]b~lamvAbmxAyAu 7 v V zAAABACAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 bBcBdBeBcmfB_h`h{h'g(g)gdlelfl|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqltliiuljivlkioB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtZB0B1BMt2B3B4BNt#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl/B:B;B=BdmemOtfm`B{B|B}B~B`b%U:gFCP1Q1ZWGCR10WHCS1T1U1xm8C0u*UiD+UjDnDCmDiDmEibfcfqDrDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_g#ofLEDkLlLdb;q`qmL%jRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s8191!1wLyL#1(1)1*1ALBL4S)oPLQLRLSLgn4sTL+1,1-1*oULVL8V9V+o!V1u2u3u4u5u6u2L3L4L5L6L7L8L9Lfcgc-o.o!L/o$L%LA $ B 4 'L(L)L*L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) QMRMSMTM:oUM)j*j+jGiHiIihninjn,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunxn^jyn_jzn`j3M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7udNeNfN8ugNhNiN9upNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInANBNCNDN;o=o!u?oKNLNMNNNONjc@VPi-N@1[1(W.N]1)W/N^1_1`1hpmO0v_VXO`VYO2OmpoknppkMfNf5O6O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXisp;OHD]O^Oeb?q{q_OrkUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`sj2k2l2ePgPm2q2r2s2iPjP5SxpxPyPzPAPJn{sBPt2u2v2ypCPDPeWfWzpgW}u~uavbvcvdvKPLPMPNPOPPPQPRPlcmcBpCpSPDpUPVPC % D 5 WPXPYPZP5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * yQzQAQBQEpCQukvkwkYiZi0iKnLnMnxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXn0nIk1nJk2nKkLQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev/Q:Q;Qfv=Q?Q@Qgv|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#niRjRkRlRFpGphvHpsRtRuRvRwRpcxW7i2RC2D2.W3RE2/W4RF2G2H2Zp_R5vBWFSCWGSKS4p3k5p4kQfRfNSOS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
218def get_request_handler( 1efabcd
219 dependant: Dependant,
220 body_field: Optional[ModelField] = None,
221 status_code: Optional[int] = None,
222 response_class: Union[Type[Response], DefaultPlaceholder] = Default(JSONResponse),
223 response_field: Optional[ModelField] = None,
224 response_model_include: Optional[IncEx] = None,
225 response_model_exclude: Optional[IncEx] = None,
226 response_model_by_alias: bool = True,
227 response_model_exclude_unset: bool = False,
228 response_model_exclude_defaults: bool = False,
229 response_model_exclude_none: bool = False,
230 dependency_overrides_provider: Optional[Any] = None,
231 embed_body_fields: bool = False,
232) -> Callable[[Request], Coroutine[Any, Any, Response]]:
233 assert dependant.call is not None, "dependant.call must be a function" 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
234 is_coroutine = asyncio.iscoroutinefunction(dependant.call) 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
235 is_body_form = body_field and isinstance(body_field.field_info, params.Form) 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
236 if isinstance(response_class, DefaultPlaceholder): 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
237 actual_response_class: Type[Response] = response_class.value 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*ctbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@crbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{csbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidCbX
238 else:
239 actual_response_class = response_class 2e Acf Bca Ccb Dcc Ecd Fc
241 async def app(request: Request) -> Response: 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
242 response: Union[Response, None] = None 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
243 async with AsyncExitStack() as file_stack: 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMha $v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gb VzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gc aLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXid ,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
244 try: 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
245 body: Any = None 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
246 if body_field: 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
247 if is_body_form: 2$n6S%nyfKgugLgbbz0^qPb'n(n7S)n1S*n+n,n%t't(t)tCXDX*t+t-n.n8S9S/n!S:nw ! x - ' #SEX;n_f`f` ,tFXGXHX-tIXJXKXLX.tMXNX=n$S?nOX/t%S@n|q[n]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|fSX?tTX@t[t]t^t_t`t{t|tUX}tVX~taubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*X}f~fjokolomohu3W4Wsh5W6WNgOgthuhvhnoooAfBf=epoqo+X,Xiujurosoto:SuoCfPgvgQgcbA0_qQbvowo;Sxo6vyozoAolumunuou-X.XpuquBoCo=S?SDo@SEoy # z . ( [S/XFoagbg{ ru:X;X=Xsu?X@X[X]Xtu^X_XGo]SHo`Xuu^SIo}qJoKoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdg~XyuaYzuAuBuCuDuEuFuGubYHucYIuJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYegfg1o2o3o4oQuRWSWKhTWUWSgTgLhUgVg5o6o`e{e/e7o8ozYAYRuSu9o!oJldTKlEfAgwgBg| B0+qvbLlMleTNl2SOlPlQl|s}s~satBYCYbtctRlSlfTgTTlhTUls 6 t + 8 wbxbwciTDYVl$f%f^ dtEYFYGYetHYIYJYKYftLYMYWljTXlNYgtkTYl[qZl0l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(fRYktSYltmtntotptqtrtstTYttUYutvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)Y)f*f+f*l+l,l-lCt7W8W9g9W!WDgEg!g#g$g.l/l}e~e:eQ :l;l*Y+YDtEt=l?l@luT[lHfFgxgGg} C0,qyb]l^lvT_l3S`l{l|lFtGtHtIt,Y-YJtKt}l~lwTxTamyTbmu 7 v , 9 zbAbxczT.Ycm,f-f_ Lt/Y:Y;YMt=Y?Y@Y[YNt]Y^YdmATem_YOtBTfm]qgmhmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f}YSt~YTtUtVtWtXtYtZt0taZ1tbZ2t3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ:f;f=fymzmAmBm!t#W$W@g%W'WIgJg[g]g^gCmDmbfcf;eR EmFmyZzZ#t$tGmHm#oLT$oKf`gyg{gdbD0`qRb%o'oMT(o4S)o*o+o1u2u3u4uAZBZ5u6u,o-oNTOT.oPT/oA $ B / ) SbTbycQTCZ:ogghg~ 7uDZEZFZ8uGZHZIZJZ9uKZLZ;oRT=oMZ!uST?o~q@o[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgQZ'uRZ(u)u*u+u,u-u.u/uSZ:uTZ;u=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Zkglgmgipjpkplp`u*W+WTi,W-W}g~gUiViWimpnpMfNf[eW oppp)Z*Z{u|uqprpsp2TtpOfahzgbhebE0{qUbupvp3Twp5Sxpypzp}u~uavbv+Z,ZcvdvApBp4T5TCp6TDpC % D : * VbWbzc7T-ZEpngogabev.Z/Z:Zfv;Z=Z?Z@Zgv[Z]ZFp8TGp^Zhv9THparIpJpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqg|Zlv}Zmvnvovpvqvrvsvtv~Zuva0vvwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w0rgsgtg0p1p2p3pDv:W;W#i=W?Wdheh$i%i'i4p5pQfRf]eX 6p7px0y0EvFv8p9p
248 body = await request.form() 2z0^qPb%t't(t)tCXDX*t+t,tFXGXHX-tIXJXKXLX.tMXNXOX/tSX?tTX@t[t]t^t_t`t{t|tUX}tVX~taubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*Xhu3W4Wsh5W6WNgOgthuhvh+X,XiujuA0_qQblumunuou-X.Xpuquru:X;X=Xsu?X@X[X]Xtu^X_X`Xuu~XyuaYzuAuBuCuDuEuFuGubYHucYIuJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYQuRWSWKhTWUWSgTgLhUgVgzYAYRuSuB0+qvb|s}s~satBYCYbtctwbxbwcdtEYFYGYetHYIYJYKYftLYMYNYgtRYktSYltmtntotptqtrtstTYttUYutvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YCt7W8W9g9W!WDgEg!g#g$g*Y+YDtEtC0,qybFtGtHtIt,Y-YJtKtzbAbxcLt/Y:Y;YMt=Y?Y@Y[YNt]Y^Y_YOt}YSt~YTtUtVtWtXtYtZt0taZ1tbZ2t3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ!t#W$W@g%W'WIgJg[g]g^gyZzZ#t$tD0`qRb1u2u3u4uAZBZ5u6uSbTbyc7uDZEZFZ8uGZHZIZJZ9uKZLZMZ!uQZ'uRZ(u)u*u+u,u-u.u/uSZ:uTZ;u=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z`u*W+WTi,W-W}g~gUiViWi)Z*Z{u|uE0{qUb}u~uavbv+Z,ZcvdvVbWbzcev.Z/Z:Zfv;Z=Z?Z@Zgv[Z]Z^Zhv|Zlv}Zmvnvovpvqvrvsvtv~Zuva0vvwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w0Dv:W;W#i=W?Wdheh$i%i'ix0y0EvFv
249 file_stack.push_async_callback(body.close) 2^qPb%t't(t)tCXDX*t+t,tFXGXHX-tIXJXKXLX.tMXNXOX/tSX?tTX@t[t]t^t_t`t{t|tUX}tVX~taubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*Xhu3W4Wsh5W6WNgOgthuhvh+X,Xiuju_qQblumunuou-X.Xpuquru:X;X=Xsu?X@X[X]Xtu^X_X`Xuu~XyuaYzuAuBuCuDuEuFuGubYHucYIuJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYQuRWSWKhTWUWSgTgLhUgVgzYAYRuSu+qvb|s}s~satBYCYbtctwbxbwcdtEYFYGYetHYIYJYKYftLYMYNYgtRYktSYltmtntotptqtrtstTYttUYutvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YCt7W8W9g9W!WDgEg!g#g$g*Y+YDtEt,qybFtGtHtIt,Y-YJtKtzbAbxcLt/Y:Y;YMt=Y?Y@Y[YNt]Y^Y_YOt}YSt~YTtUtVtWtXtYtZt0taZ1tbZ2t3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ!t#W$W@g%W'WIgJg[g]g^gyZzZ#t$t`qRb1u2u3u4uAZBZ5u6uSbTbyc7uDZEZFZ8uGZHZIZJZ9uKZLZMZ!uQZ'uRZ(u)u*u+u,u-u.u/uSZ:uTZ;u=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z`u*W+WTi,W-W}g~gUiViWi)Z*Z{u|u{qUb}u~uavbv+Z,ZcvdvVbWbzcev.Z/Z:Zfv;Z=Z?Z@Zgv[Z]Z^Zhv|Zlv}Zmvnvovpvqvrvsvtv~Zuva0vvwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w0Dv:W;W#i=W?Wdheh$i%i'ix0y0EvFv
250 else:
251 body_bytes = await request.body() 2$n6S%nyfKgugLgbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #SEX;n_f`f` =n$S?n%S@n|q[n]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfPgvgQgcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [S/XFoagbg{ Go]SHo^SIo}qJoKoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEfAgwgBg| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTDYVl$f%f^ WljTXlkTYl[qZl0l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHfFgxgGg} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zT.Ycm,f-f_ dmATemBTfm]qgmhmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKf`gyg{gdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QTCZ:ogghg~ ;oRT=oST?o~q@o[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfahzgbhebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7T-ZEpngogabFp8TGp9THparIpJpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
252 if body_bytes: 2$n6S%nyfKgugLgbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #SEX;n_f`f` =n$S?n%S@n|q[n]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfPgvgQgcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [S/XFoagbg{ Go]SHo^SIo}qJoKoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEfAgwgBg| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTDYVl$f%f^ WljTXlkTYl[qZl0l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHfFgxgGg} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zT.Ycm,f-f_ dmATemBTfm]qgmhmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKf`gyg{gdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QTCZ:ogghg~ ;oRT=oST?o~q@o[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfahzgbhebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7T-ZEpngogabFp8TGp9THparIpJpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
253 json_body: Any = Undefined 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_nVq@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMoWqmULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2lEq[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjmFq]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o1q^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp2q_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
254 content_type_value = request.headers.get("content-type") 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_nVq@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMoWqmULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2lEq[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjmFq]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o1q^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp2q_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
255 if not content_type_value: 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_nVq@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMoWqmULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2lEq[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjmFq]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o1q^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp2q_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
256 json_body = await request.json() 2VqWqEqFq1q2q
257 else:
258 message = email.message.Message() 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
259 message["content-type"] = content_type_value 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
260 if message.get_content_maintype() == "application": 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
261 subtype = message.get_content_subtype() 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
262 if subtype == "json" or subtype.endswith("+json"): 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNW:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOW=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPW@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
263 json_body = await request.json() 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_n@UMW'S(S)S`n{n|n*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMomULW_S`S{SNoOoPo|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2l[UNWlTmTnT3l4l5loT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjm]UOWCTDTETkmlmmmFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o^UPWTTUTVT_o`o{oWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp_UQW!T#T$TMpNpOp%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
264 if json_body != Undefined: 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_nVq,T'S(S)S`n{n|n-T*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMoWq.T_S`S{SNoOoPo/T|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2lEq:TlTmTnT3l4l5l;ToT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjmFq=TCTDTETkmlmmm?TFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o1q@TTTUTVT_o`o{o[TWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp2q]T!T#T$TMpNpOp^T%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
265 body = json_body 2$n6S%nyfbb'n(n7S)n1S*n+n,n-n.n8S9S/n!S:nw ! x - ' #S;n_f`f` =n$S?n%S@n|q[n]n^n_nVq'S(S)S`n{n|n*S}n~nao+Sboco,Szfdoeo-S.Sfo^egoXfYfho/Sio{f|f}f~fjokolomonoooAfBf=epoqorosoto:SuoCfcbvowo;Sxo6vyozoAoBoCo=S?SDo@SEoy # z . ( [SFoagbg{ Go]SHo^SIo}qJoKoLoMoWq_S`S{SNoOoPo|SQoRoSo}SToUo~SDfVoWoaTbTXo_eYoZf0fZocT0ocgdgegfg1o2o3o4o5o6o`e{e/e7o8o9o!oJldTKlEf| LlMleTNl2SOlPlQlRlSlfTgTTlhTUls 6 t + 8 iTVl$f%f^ WljTXlkTYl[qZl0l1l2lEqlTmTnT3l4l5loT6l7l8lpT9l!lqT|e#l$lrTsT%l?e'lFfGf(ltT)l'f(f)f*f+f*l+l,l-l.l/l}e~e:eQ :l;l=l?l@luT[lHf} ]l^lvT_l3S`l{l|l}l~lwTxTamyTbmu 7 v , 9 zTcm,f-f_ dmATemBTfm]qgmhmimjmFqCTDTETkmlmmmFTnmompmGTqmrmHTafsmtmITJTum@evmIfJfwmKTxm.f/f:f;f=fymzmAmBmCmDmbfcf;eR EmFmGmHm#oLT$oKfdb%o'oMT(o4S)o*o+o,o-oNTOT.oPT/oA $ B / ) QT:ogghg~ ;oRT=oST?o~q@o[o]o^o1qTTUTVT_o`o{oWT|o}o~oXTapbpYTLfcpdpZT0Tepdffp1f2fgp1ThpigjgkglgmgipjpkplpmpnpMfNf[eW opppqprpsp2TtpOfebupvp3Twp5SxpypzpApBp4T5TCp6TDpC % D : * 7TEpngogabFp8TGp9THparIpJpKpLp2q!T#T$TMpNpOp%TPpQpRp'TSpTp(TPfUpVp)T*TWpefXp3f4fYp+TZppgqgrgsgtg0p1p2p3p4p5pQfRf]eX 6p7p8p9p
266 else:
267 body = body_bytes 2,T-T.T/T:T;T=T?T@T[T]T^T
268 except json.JSONDecodeError as e: 2z0@UMWA0mULWB0[UNWC0]UOWD0^UPWE0_UQW
269 validation_error = RequestValidationError( 2MWLWNWOWPWQW
270 [
271 {
272 "type": "json_invalid",
273 "loc": ("body", e.pos),
274 "msg": "JSON decode error",
275 "input": {},
276 "ctx": {"error": e.msg},
277 }
278 ],
279 body=e.doc,
280 )
281 raise validation_error from e 2MWLWNWOWPWQW
282 except HTTPException: 2z0@UA0mUB0[UC0]UD0^UE0_U
283 # If a middleware raises an HTTPException, it should be raised again
284 raise 2z0A0B0C0D0E0
285 except Exception as e: 2@UmU[U]U^U_U
286 http_error = HTTPException( 2@UmU[U]U^U_U
287 status_code=400, detail="There was an error parsing the body"
288 )
289 raise http_error from e 2@UmU[U]U^U_U
290 errors: List[Any] = [] 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
291 async with AsyncExitStack() as async_exit_stack: 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMha $v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gb VzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gc aLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXid ,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
292 solved_result = await solve_dependencies( 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
293 request=request,
294 dependant=dependant,
295 body=body,
296 dependency_overrides_provider=dependency_overrides_provider,
297 async_exit_stack=async_exit_stack,
298 embed_body_fields=embed_body_fields,
299 )
300 errors = solved_result.errors 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tFXGXHXLFMFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F00?Fr3s3@Ft3u3[F10v3]Fw3^Fx3_Fy3`Fz3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGD3sGtG20301WuG402WvG506070E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhbHnorjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgXzo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJru:X;X=XtJuJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7JlX8Jv4w49Jx4y4!JmXz4#JA4$JB4%JC4'JD4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~JH4aKbKnXoXVWcKpXWWdKqXrXsXI4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdtEYFYGY'x(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryb1syz5A5tyB5C5uyc1D5vyE5wyF5xyG5yyH50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyL5VyWyd1e1XWXyf1YWYyg1h1i1M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLt/Y:Y;YXBYBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCN1bCD6E6cCF6G6dCO1H6eCI6fCJ6gCK6hCL6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDCP6ECFCP1Q1ZWGCR10WHCS1T1U1Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7uDZEZFZbNcNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPN=1QNH7I7RNJ7K7SN?1L7TNM7UNN7VNO7WNP7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NT7,N-N@1[1(W.N]1)W/N^1_1`1U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi2Ompoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev.Z/Z:Z-Q.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRA2yRL8M8zRN8O8ARB2P8BRQ8CRR8DRS8ERT8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0RX81R2RC2D2.W3RE2/W4RF2G2H2Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
301 if not errors: 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tFXGXHXLFMFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F00?Fr3s3@Ft3u3[F10v3]Fw3^Fx3_Fy3`Fz3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGD3sGtG20301WuG402WvG506070E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhbHnorjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgXzo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJru:X;X=XtJuJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7JlX8Jv4w49Jx4y4!JmXz4#JA4$JB4%JC4'JD4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~JH4aKbKnXoXVWcKpXWWdKqXrXsXI4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdtEYFYGY'x(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryb1syz5A5tyB5C5uyc1D5vyE5wyF5xyG5yyH50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyL5VyWyd1e1XWXyf1YWYyg1h1i1M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLt/Y:Y;YXBYBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCN1bCD6E6cCF6G6dCO1H6eCI6fCJ6gCK6hCL6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDCP6ECFCP1Q1ZWGCR10WHCS1T1U1Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7uDZEZFZbNcNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPN=1QNH7I7RNJ7K7SN?1L7TNM7UNN7VNO7WNP7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NT7,N-N@1[1(W.N]1)W/N^1_1`1U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi2Ompoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev.Z/Z:Z-Q.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRA2yRL8M8zRN8O8ARB2P8BRQ8CRR8DRS8ERT8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0RX81R2RC2D2.W3RE2/W4RF2G2H2Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
302 raw_response = await run_endpoint_function( 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n)n1S*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]DT0U0V0+n^D_D`U{U,n|UMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F00?F@F[F10]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtG20301WuG402WvG506070wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0hoHG$0IGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~Ghu3W4WaHsh5W6WNgOgthuhvhbHnorjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowoxo6vyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#HeXfXgXzo$H%HBVCVAoDVRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7JlX8J9J!JmX#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKnXoXVWcKpXWWdKqXrXsXeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXZopKxXqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQuRWSW,KKhTWUWSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMlNl2SOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruw_0`0{0PlvwwwnUoUQlpUCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyryb1sytyuyc1vywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyd1e1XWXyf1YWYyg1h1i1Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1(l!yn1#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCt7W8WDz9g9W!WDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^l_l3S`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdAG1H1I1{leAfAUUVU|lWUHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCN1bCcCdCO1eCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCP1Q1ZWGCR10WHCS1T1U1ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1wmTCZ1UCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!t#W$WmD@g%W'WIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'o(o4S)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL+1,1-1*oULVL8V9V+o!V|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPN=1QNRNSN?1TNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N@1[1(W.N]1)W/N^1_1`1:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1gp|Na2}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u*W+W1OTi,W-W}g~gUiViWi2Ompoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvpwp5SxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPt2u2v2ypCPDPeWfWzpgWch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRA2yRzRARB2BRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2RC2D2.W3RE2/W4RF2G2H25R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL2Yp)RM2*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDv:W;WJS#i=W?Wdheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
303 dependant=dependant,
304 values=solved_result.values,
305 is_coroutine=is_coroutine,
306 )
307 if isinstance(raw_response, Response): 2e KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D`U{U,n|UMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhf sHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HBVCVAoDVRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMha $v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwnUoUQlpUCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gb VzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfAUUVU|lWUHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gc aLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL8V9V+o!V|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXid ,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPeWfWzpgWch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
308 if raw_response.background is None: 2e `U{U|U}U~UaVbVcVdV|q:teVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVf BVCVDVEVFVGVHVIVJV}qvuKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7Va nUoUpUqUrUsUtUuUvU[qhtwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUb UUVUWUXUYUZU0U1U2U]qPt3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?Uc 8V9V!V#V$V%V'V(V)V~q#u*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWd eWfWgWhWiWjWkWlWmWarivnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKW
309 raw_response.background = solved_result.background_tasks 2e `U{U|U}U~UaVbVcVdV|q:teVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVf BVCVDVEVFVGVHVIVJV}qvuKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7Va nUoUpUqUrUsUtUuUvU[qhtwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUb UUVUWUXUYUZU0U1U2U]qPt3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?Uc 8V9V!V#V$V%V'V(V)V~q#u*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWd eWfWgWhWiWjWkWlWmWarivnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKW
310 response = raw_response 2e `U{U|U}U~UaVbVcVdV|q:teVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzVAVf BVCVDVEVFVGVHVIVJV}qvuKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7Va nUoUpUqUrUsUtUuUvU[qhtwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUb UUVUWUXUYUZU0U1U2U]qPt3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.U/U:U;U=U?Uc 8V9V!V#V$V%V'V(V)V~q#u*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWd eWfWgWhWiWjWkWlWmWarivnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKW
311 else:
312 response_args: Dict[str, Any] = { 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
313 "background": solved_result.background_tasks
314 }
315 # If status_code was set, use it, otherwise use the default from the
316 # response class, in the case of redirect it's 307
317 current_status_code = ( 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
318 status_code
319 if status_code
320 else solved_result.response.status_code
321 )
322 if current_status_code is not None: 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
323 response_args["status_code"] = current_status_code 27vHvIvJv9vKv!vMvNvOv#vPvRvTuUuVuSvWuUvXuYuZuVv0uEDXvYvZvGD0vHD2v3v4vJD5v
324 if solved_result.response.status_code: 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
325 response_args["status_code"] = ( 2HvIvKvMvNvPvTuUuWuXuYu0uXvYv0v2v3v5v
326 solved_result.response.status_code
327 )
328 content = await serialize_response( 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg)p.q8v%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCg/pYqxw|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg:p0qgAFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g;p=qFD1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch=p@qID}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9paqCqSqTq5kIlbqDqUq(i
329 field=response_field,
330 response_content=raw_response,
331 include=response_model_include,
332 exclude=response_model_exclude,
333 by_alias=response_model_by_alias,
334 exclude_unset=response_model_exclude_unset,
335 exclude_defaults=response_model_exclude_defaults,
336 exclude_none=response_model_exclude_none,
337 is_coroutine=is_coroutine,
338 )
339 response = actual_response_class(content, **response_args) 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg.q%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujurosotj7kwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg:qlumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj)m*m+m,m%I'I-mEjFjGj.m/mHjIj:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o8j9kMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCgYq|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l@h!j%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg0qFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHmFi$j_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g=q1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprpqkGlXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch@q}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9p5kIl(i
340 if not is_body_allowed_for_status_code(response.status_code): 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg.q%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujurosotj7kwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HAoRg:qlumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj)m*m+m,m%I'I-mEjFjGj.m/mHjIj:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o8j9kMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCgYq|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l@h!j%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg0qFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHmFi$j_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g=q1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprpqkGlXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch@q}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9p5kIl(i
341 response.body = b"" 2JvOvVuZuZv4v
342 response.headers.raw.extend(solved_result.response.headers.raw) 2KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D,nMg.q%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i:i;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjhjijjj[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGhGdoiGeojGkGlGmGnG9voGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|t}t~taubucudueufuguKv{G|G}f~f}Grhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHrHpoqoiujurosotj7kwhsHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowoxo6vyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#HeXfXgX(8zo$H%HAoRg$m:qkulumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjBjCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJrue9f9tJg9h9uJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJHouuIoVjWjXjYjJoXJYJvuZJ0J1J2J3J4J5J6J7Jk9lXl98J9Jm9!JmXn9#J$J%J'Jo9KoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=J?JVo@JWo[J]J^J_J`J#v{J|JXoFhGh_e}J~Jp9q9aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXZopKxXqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuPv(K)Kegfg*KJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K~K7o8oRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwQlCgYq|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThUhVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'h(h)h*hZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJyKy#lLy$lMyNyOyPyQySvRySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstttutvtwtxtytztAtBtWuzzAz)f*fBz+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzUzQ :l;lDtEt=l?l@h!j%gVzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfA|lHg0qFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|h}h~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsitiuivigm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsCtCsmuCtmvCwCxCyCzCVvACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t0uiDjD:f;fkD=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCDDDR EmFm#t$tGmHmFi$j_gaLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL+o|g=q1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j-j.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odkekfkgk@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N8Ncp9Ndp!N#N$N%N'NGD(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u0vXOYOkglgZOmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*O+OW oppp{u|uqprpqkGlXi,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPzpch@q}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkykzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkTkUkVkIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRQRUpRRVpSRTRURVRWRJDXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCv5vFSGSrgsgHStg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZS0SX 6p7pEvFv8p9p5kIl(i
343 if errors: 2e KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n7S)n*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]D42+n^D_D`U{U,n|UMg.q%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tFXGXHXLFMFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F?Fr3s3@Ft3u3[Fv3]Fw3^Fx3_Fy3`Fz3]n^n_nVq,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGD3sGtG1WuG2WvGE3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGG3ho/SHGH3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujurosotj7kwhf sHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowo;SxoyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#H83zo$H%HBVCVAoDVRg:qlumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj)m*m+m,m%I'I-mEjFjGj.m/mHjIj:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJru:X;X=XtJuJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7J8Jv4w49Jx4y4!Jz4#JA4$JB4%JC4'JD4KoLoMoWq.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~JH4aKbKVWcKWWdKI4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKK4ZocTpKL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o8j9kMha $v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMleTNlOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw$4PlvwwwnUoUQlpUCgYq|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdtEYFYGY'x(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyrysyz5A5tyB5C5uyD5vyE5wyF5xyG5yyH50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyL5VyWyXWXyYWYyM5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9yO5(ltT!yP5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l@h!j%gb VzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^lvT_l`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dA)5{leAfAUUVU|lWUHg0qFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLt/Y:Y;YXBYBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCbCD6E6cCF6G6dCH6eCI6fCJ6gCK6hCL6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDCP6ECFCZWGC0WHCQ6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCS6wmKTTCT6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHmFi$j_gc aLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'oMT(o)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL-6*oULVL8V9V+o!V|g=q1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7uDZEZFZbNcNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNQNH7I7RNJ7K7SNL7TNM7UNN7VNO7WNP7[o]o^o1q@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NT7,N-N(W.N)W/NU7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{NW7gp1T|NX7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprpqkGlXid ,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvp3Twpxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BP;7ypCPDPeWfWzpgWch@q}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev.Z/Z:Z-Q.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRyRL8M8zRN8O8ARP8BRQ8CRR8DRS8ERT8JpKpLp2q]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0RX81R2R.W3R/W4RY8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(R08Yp+T)R18*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9p5kIl(i
344 validation_error = RequestValidationError( 26SyfugqcGv7SR2S2T2U2V2W2X2Y2Z20212223242CXDX8S9S!S5262728292!2#2$2%2'2(2)2*2+2,2-2.2/2:2;2=2?2@2[2]2^2_2`2{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3#SEXp3q3FXGXHXIXJXKXLXMXNX$SOX%Sr3s3t3u3v3w3x3y3z3,T'SPX(S)S-T*SQX+SRX,SA3B3C3-S.SD3E3F3G3/SH3I3J3K3L3M3N3O3P3Q3R3S3T3U3SXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X:SCfvgrcLv;SV3W3X3Y3Z3031323334353637383-X.X=S?S@S93!3#3$3%3'3(3)3*3+3,3-3.3/3:3;3=3?3@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4[S/Xt4u4:X;X=X?X@X[X]X^X_X]S`X^Sv4w4x4y4z4A4B4C4D4.T_S{X`S{S/T|S|X}S}X~SE4F4G4aTbTH4I4J4K4cTL4M4N4O4P4Q4R4S4T4U4V4W4X4Y4~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYdTEfwgscQveTZ404142434445464748494!4#4$4BYCYfTgThT%4'4(4)4*4+4,4-4.4/4:4;4=4?4@4[4]4^4_4`4{4|4}4~4a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5wcGciTDYx5y5EYFYGYHYIYJYKYLYMYjTNYkTz5A5B5C5D5E5F5G5H5:TlTOYmTnT;ToTPYpTQYqTI5J5K5rTsTL5M5N5O5tTP5Q5R5S5T5U5V5W5X5Y5Z5051525RYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+YuTHfxgtcTvvT35455565758595!5#5$5%5'5(5)5,Y-YwTxTyT*5+5,5-5.5/5:5;5=5?5@5[5]5^5_5`5{5|5}5~5a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6xcHczT.YB6C6/Y:Y;Y=Y?Y@Y[Y]Y^YAT_YBTD6E6F6G6H6I6J6K6L6=TCT`YDTET?TFT{YGT|YHTM6N6O6ITJTP6Q6R6S6KTT6U6V6W6X6Y6Z606162636465666}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZLTKfygucWvMT768696!6#6$6%6'6(6)6*6+6,6-6AZBZNTOTPT.6/6:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7ycIcQTCZF7G7DZEZFZGZHZIZJZKZLZRTMZSTH7I7J7K7L7M7N7O7P7@TTTNZUTVT[TWTOZXTPZYTQ7R7S7ZT0TT7U7V7W71TX7Y7Z707172737475767778797!7QZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%Z'Z(Z)Z*Z2TOfzgvc1v3T#7$7%7'7(7)7*7+7,7-7.7/7:7;7+Z,Z4T5T6T=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8zcJc7T-ZJ8K8.Z/Z:Z;Z=Z?Z@Z[Z]Z8T^Z9TL8M8N8O8P8Q8R8S8T8]T!T_Z#T$T^T%T`Z'T{Z(TU8V8W8)T*TX8Y8Z808+T182838485868788898!8#8$8%8'8|Z}Z~Za0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0
345 _normalize_errors(errors), body=body
346 )
347 raise validation_error 26SyfugqcGv7SR2S2T2U2V2W2X2Y2Z20212223242CXDX8S9S!S5262728292!2#2$2%2'2(2)2*2+2,2-2.2/2:2;2=2?2@2[2]2^2_2`2{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3#SEXp3q3FXGXHXIXJXKXLXMXNX$SOX%Sr3s3t3u3v3w3x3y3z3,T'SPX(S)S-T*SQX+SRX,SA3B3C3-S.SD3E3F3G3/SH3I3J3K3L3M3N3O3P3Q3R3S3T3U3SXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X:SCfvgrcLv@W[W]W^W_W`W{W|W}W~WaXbXcXdX;S6vV3W3X3Y3Z30313233343536373eX83fXgX(8$mku-X.X=S?S@S93!3#3$3%3'3(3)3*3+3,3-3.3/3:3;3=3?3@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4[S/Xt4u4*phq+piq,pjq)8*8+8,8-8.8/8:8;8=8?8@8[8]8^8_8`8{8|8}8~8a9b9c9d9:X;X=Xe9f9g9h9?X@X[X]X^X_Xi9j9hXiXjXkX]S`X^Sk9lXl9v4w4m9x4y4mXn9z4A4B4C4o9D4mULW.T_S{X`S{S/T|S|X}S}X~SE4F4G4aTbTp9q9H4nXoXpXqXrXsXr9s9t9u9I4J4tXuXvXwXK4cTxXL4M4N4O4P4Q4yXzXAXBXR4S4T4U4V4W4X4Y4~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYv9w9x9y9z9RWSWA9B9C9TWUWD9E9UgVgF9G9H9I9J9K9`e{e/ezYAY$p-p[p]p%p.p^pa $v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMleTNlOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw$4PlvwwwnUoUQlpUCgYq|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdtEYFYGY'x(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyrysyz5A5tyB5C5uyD5vyE5wyF5xyG5yyH50l1l2lEq:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyL5VyWyXWXyYWYyM5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9yO5(ltT!yP5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l@h!j%gb VzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^lvT_l`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dA)5{leAfAUUVU|lWUHg0qFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLt/Y:Y;YXBYBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCbCD6E6cCF6G6dCH6eCI6fCJ6gCK6hCL6hmimjmFq=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDCP6ECFCZWGC0WHCQ6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCS6wmKTTCT6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHmFi$j_gLTKfygucWvMT768696!6#6$6%6'6(6)6*6+6,6-6AZBZNTOTPT.6/6:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7ycIcQTCZF7G7DZEZFZGZHZIZJZKZLZRTMZSTH7I7J7K7L7M7N7O7P7@TTTNZUTVT[TWTOZXTPZYTQ7R7S7ZT0TT7U7V7W71TX7Y7Z707172737475767778797!7QZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%Z'Z(Z)Z*Z2TOfzgvc1v3T#7$7%7'7(7)7*7+7,7-7.7/7:7;7+Z,Z4T5T6T=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8zcJc7T-ZJ8K8.Z/Z:Z;Z=Z?Z@Z[Z]Z8T^Z9TL8M8N8O8P8Q8R8S8T8]T!T_Z#T$T^T%T`Z'T{Z(TU8V8W8)T*TX8Y8Z808+T182838485868788898!8#8$8%8'8|Z}Z~Za0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0
348 if response is None: 2e KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D`U{U,n|UMg.q%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtG1WuG2WvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujurosotj7kwhf sHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HBVCVAoDVRg:qlumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj)m*m+m,m%I'I-mEjFjGj.m/mHjIj:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKVWcKWWdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o8j9kMha $v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwnUoUQlpUCgYq|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyXWXyYWYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l@h!j%gb VzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfAUUVU|lWUHg0qFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCZWGC0WHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHmFi$j_gc aLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL8V9V+o!V|g=q1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N(W.N)W/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprpqkGlXid ,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPeWfWzpgWch@q}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2R.W3R/W4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9p5kIl(i
349 raise FastAPIError( 21W2WVWWWXWYWZW0W(W)W.W/W
350 "No response object was returned. There's a high chance that the "
351 "application code is raising an exception and a dependency with yield "
352 "has a block with a bare except, or a block with except Exception, "
353 "and is not raising the exception again. Read more about it in the "
354 "docs: https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#dependencies-with-yield-and-except"
355 )
356 return response 2e KDLDMDNDOD$n%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-q^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2D3D4D5D6D7D8D9D!D#D'n(n)n*n$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[DIm}r]D+n^D_D`U{U,n|UMg.q%t't(t)t*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n/njEkE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E*i+i!p+E,E-E.E/E:E;E=E- ' ?E@E[EHv]E;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=iMmNmOmPm_E`EQm?i@i[iRmSm]i^iTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdF? G M eFk l ` fFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF,tLFMFNFOFPF-tQFRFSF.tTFUFVFWFXFYFZF0F1F2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8F9F!F#F$F%F=n'F?n/t@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F]n^n_nVq`n{n|n}n~nao;t=tbocomhzf~b{F|F}F~FaGbGcGdGeGfGgGeVfVgVhGhViVjVdoiGeojGkGlGkVlVmGmVnG9vnVoVpVoGpGfonhoh^eqGrGsGtGuGvGwGxGyGzGAGBGgokjljphmjCGqhXfYfDGEGFGGGhoHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGioWGXGYGZG{f0G1G2G3G4G5G|f6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G?t@t[t]t^t_t`t{t|tqV}t~trVaubucudueufuguKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomo~GhuaHshNgOgthuhvhbHnorjoosjcHdHAfBfeHfHgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqoiujurosotj7kwhf sHtHuHvHwHtouoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/q_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKHLHMHNHOHPHQHRHSHTHvowoxoyoUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#mBs#Hzo$H%HBVCVAoDVRg:qlumunuoupuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCoDo[H]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZIvjwj#p0I1I2I3I4I5I6I7I. ( 8I9I!IMv#IFo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj)m*m+m,m%I'I-mEjFjGj.m/mHjIj:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/I@ H N :Im n { ;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJrutJuJvJwJxJsuyJzJAJtuBJCJDJEJFJGJHJIJJJKJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJRJSJTJUJVJGoWJHouuIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'JKoLoMoWqNoOoPoQoRoSowuxuToUoEhDfdc(J)J*J+J,J-J.J/J:J;J=JKVLVMV?JNVOVPVVo@JWo[J]J^JQVRV_JSV`J#vTVUVVV{J|JXoFhGh_e}J~JaKbKcKdKeKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKmKnKoKZopKqKrKsKtKuKvKwKxKyKzKAKBKCKDK0oEKFKGKHKcgIKJKKKLKMKNKdgOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8K9K!K#K$K%K'KyuzuAuBuCuDuEuFuGuWVHuIuXVJuKuLuMuNuOuPuPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4o+KQu,KKhSgTgLhUgVg-K5o6j6o7j.K/K`e{e:K;K=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8oRuSu9o!o8j9kMha $v%v'v(v)vJlKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| Xq+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v_v`v{v|v}v~vawbwcwLlMlNlOldwewfwgwhwiwjwkwlwmwnwowpwqwrwswtw!kDruwPlvwwwnUoUQlpUCgYq|s}s~satbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlTlMwNwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxOhPhenkxlxmxnxoxpxqxrx+ 8 wbxb;b=bsxtxuxTuvxVlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWh'k(k)k*kxxyx+kXhYhZh,k-k0h1h.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGx; E K Hxg h ^ IxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%xdt'x(x)x*x+xet,x-x.xft/x:x;x=x?x@x[x]x^x_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblaybycydyeyfyWlgyXlgtYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyoypyqyrysytyuyvywyxyyy0l1l2lEq3l4l5l6l7l8litjt9l!l3g|e?bzyAyByCyDyEyFyGyHyIyJywUxUyUKyzUAUBU#lLy$lMyNyOyCUDUPyEUQySvFUGUHURySy%l4g5g?eTyUyVyWyXyYyZy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6y7y8y9y(l!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y)l=y?y@y[y'f]y^y_y`y{y|y(f}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzktltmtntotptqtrtstIUttutJUvtwtxtytztAtBtWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lCzCtDz9gDgEg!g#g$gEz.l=h/l?hFzGz}e~eHzIzJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;lDtEt=l?l@h!j%gb VzWzXzYzZz@l[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} Zq,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%z'z(z)z*z+z,z-z.z/z]l^l_l`l:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAcl6rdA{leAfAUUVU|lWUHg0qFtGtHtItJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lamvAwAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A]h^hfn^A_A`A{A|A}A~AaB, 9 zbAb^b_bbBcBdBXueBcmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haiglhliljlgBhBklbicidillmleifinloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpB= F L qBi j _ rBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBLtXBYBZB0B1BMt2B3B4BNt5B6B7B8B9B!B#B$B%B'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-B.B/B:B;B=Bdm?BemOtfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChChmimjmFqkmlmmmnmompmQtRtqmrm.gaf`biCjCkClCmCnCoCpCqCrCsC3U4U5UtC6U7U8UsmuCtmvCwCxC9U!UyC#UzCVv$U%U'UACBCum/g:g@eCCDCECFCGCHCICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCQCRCSCwmTCUCVCWCXCYCZC0C1C2C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C(C)C*C/f+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDStTtUtVtWtXtYtZt0t(U1t2t)U3t4t5t6t7t8t9t0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBmlD!tmD@gIgJg[g]g^gnDCmDiDmEioDpDbfcfqDrDsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFm#t$tGmHmFi$j_gc aLbLcLdLeL#o$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;q`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsLtLuLvLwLxLyLzLALBL%o'o(o)oCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLgn4sTL*oULVL8V9V+o!V|g=q1u2u3u4u5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-o.o!L#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHM'j(j'pIMJMKMLMMMNMOMPM/ ) SbTbhcicQMRMSMXvTM:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/jknlnmnnnVMWMon:j;j=jpnqn?j@jrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4M[ I O 5Mo p ~ 6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaN7ubNcNdNeNfN8ugNhNiN9ujNkNlNmNnNoNpNqNrNsNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyNzNANBNCNDN;oEN=o!u?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNMNNNONPNQNRNSNTNUNVNWN[o]o^o1q_o`o{o|o}o~o$u%uapbpNiLfjcXNYNZN0N1N2N3N4N5N6N7N*V+V,V8N-V.V/Vcp9Ndp!N#N$N:V;V%N=V'NGD?V@V[V(N)NepOiPidf*N+N,N-N.N/N:N;N=N?N@N[NfphkikQijk]NRi1f2f^N_N`N{Ngp|N}N~NaObOcOdOeOfOgOhOiOjOkOlOhpmOnOoOpOigqOrOsOtOuOvOjgwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWO'u(u)u*u+u,u-u.u/u]V:u;u^V=u?u@u[u]u^u_u0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplp0O`u1OTi}g~gUiViWi2Ompoknppk3O4OMfNf5O6O7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp{u|uqprpqkGlXid ,O-O.O/O:Osptp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?q{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPbPcPdPePfPgPhPiPjPupvpwpxpkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPJn{sBPypCPDPeWfWzpgWch@q}u~uavbvcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBpCpSPTPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQsktk(pqQrQsQtQuQvQwQxQ: * VbWbncocyQzQAQ2vBQEpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkNnOnPnQnDQEQRnBkCkDkSnTnEkFkUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQ] J P NQq r abOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Qev-Q.Q/Q:Q;Qfv=Q?Q@Qgv[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRhRiRjRkRlRFpmRGphvHpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERJpKpLp2qMpNpOpPpQpRpjvkvSpTp5iPfpcFRGRHRIRJRKRLRMRNRORPRnWoWpWQRqWrWsWUpRRVpSRTRURtWuWVRvWWRJDwWxWyWXRYRWp6i7iefZR0R1R2R3R4R5R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$R%R'R(RYp)R*R+R,R-R.R/R:R;R=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSbScSdSqgeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESlvmvnvovpvqvrvsvtvzWuvvvAWwvxvyvzvAvBvCv5vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pISDvJS#idheh$i%i'iKS4p3k5p4kLSMSQfRfNSOSPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7pEvFv8p9p5kIl(i
358 return app 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
361def get_websocket_app( 1efabcd
362 dependant: Dependant,
363 dependency_overrides_provider: Optional[Any] = None,
364 embed_body_fields: bool = False,
365) -> Callable[[WebSocket], Coroutine[Any, Any, Any]]:
366 async def app(websocket: WebSocket) -> None: 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
367 async with AsyncExitStack() as async_exit_stack: 2L9M9N9O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%V%W%X%Y%U9V9W9X9Y9Z9P%0919293949Z%0%1%gf5fhf2%3%4%5%6%5969798999L%7%!9#9$9%9'98%9%!%if@fTf#%$%%%'%(%(9)9*9+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%.%/%:%;%=9?9@9[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%^%_%`%{%}9~9a!b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'c'd'e'f'
368 # TODO: remove this scope later, after a few releases
369 # This scope fastapi_astack is no longer used by FastAPI, kept for
370 # compatibility, just in case
371 websocket.scope["fastapi_astack"] = async_exit_stack 2L9M9N9O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%V%W%X%Y%U9V9W9X9Y9Z9P%0919293949Z%0%1%gf5fhf2%3%4%5%6%5969798999L%7%!9#9$9%9'98%9%!%if@fTf#%$%%%'%(%(9)9*9+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%.%/%:%;%=9?9@9[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%^%_%`%{%}9~9a!b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'c'd'e'f'
372 solved_result = await solve_dependencies( 2L9M9N9O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%V%W%X%Y%U9V9W9X9Y9Z9P%0919293949Z%0%1%gf5fhf2%3%4%5%6%5969798999L%7%!9#9$9%9'98%9%!%if@fTf#%$%%%'%(%(9)9*9+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%.%/%:%;%=9?9@9[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%^%_%`%{%}9~9a!b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'c'd'e'f'
373 request=websocket,
374 dependant=dependant,
375 dependency_overrides_provider=dependency_overrides_provider,
376 async_exit_stack=async_exit_stack,
377 embed_body_fields=embed_body_fields,
378 )
379 if solved_result.errors: 2L9M9N9O9P9K%Q9R9S9T9R%S%T%ffSfU%V%W%X%Y%U9V9W9X9Y9Z90919293949Z%0%1%gfhf2%3%4%5%6%5969798999L%!9#9$9%9'98%9%!%ifTf#%$%%%'%(%(9)9*9+9,9M%-9.9/9:9;9*%+%,%jfUf-%.%/%:%;%=9?9@9[9]9N%^9_9`9{9|9?%@%[%kfVf]%^%_%`%{%}9~9a!b!c!O%d!e!f!g!h!}%~%a'lfWfb'c'd'e'f'
380 raise WebSocketRequestValidationError( 2K%SfZ9hfL%TfM%UfN%VfO%Wf
381 _normalize_errors(solved_result.errors)
382 )
383 assert dependant.call is not None, "dependant.call must be a function" 2L9M9N9O9P9Q9R9S9T9R%S%T%ffU%V%W%X%Y%U9V9W9X9Y90919293949Z%0%1%gf2%3%4%5%6%5969798999!9#9$9%9'98%9%!%if#%$%%%'%(%(9)9*9+9,9-9.9/9:9;9*%+%,%jf-%.%/%:%;%=9?9@9[9]9^9_9`9{9|9?%@%[%kf]%^%_%`%{%}9~9a!b!c!d!e!f!g!h!}%~%a'lfb'c'd'e'f'
384 await dependant.call(**solved_result.values) 2L9M9N9O9P9Q9R9S9T9R%S%T%ffU%V%W%X%Y%U9V9W9X9Y9Z9P%0919293949Z%0%1%gf5fhf2%3%4%5%6%5969798999!9#9$9%9'98%9%!%if#%$%%%'%(%(9)9*9+9,9-9.9/9:9;9*%+%,%jf-%.%/%:%;%=9?9@9[9]9^9_9`9{9|9?%@%[%kf]%^%_%`%{%}9~9a!b!c!d!e!f!g!h!}%~%a'lfb'c'd'e'f'
386 return app 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
389class APIWebSocketRoute(routing.WebSocketRoute): 1efabcd
390 def __init__( 1efabcd
391 self,
392 path: str,
393 endpoint: Callable[..., Any],
394 *,
395 name: Optional[str] = None,
396 dependencies: Optional[Sequence[params.Depends]] = None,
397 dependency_overrides_provider: Optional[Any] = None,
398 ) -> None:
399 self.path = path 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
400 self.endpoint = endpoint 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
401 self.name = get_name(endpoint) if name is None else name 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
402 self.dependencies = list(dependencies or []) 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
403 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
404 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
405 for depends in self.dependencies[::-1]: 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
406 self.dependant.dependencies.insert( 1efabcd
407 0,
408 get_parameterless_sub_dependant(depends=depends, path=self.path_format),
409 )
410 self._flat_dependant = get_flat_dependant(self.dependant) 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
411 self._embed_body_fields = _should_embed_body_fields( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
412 self._flat_dependant.body_params
413 )
414 self.app = websocket_session( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
415 get_websocket_app(
416 dependant=self.dependant,
417 dependency_overrides_provider=dependency_overrides_provider,
418 embed_body_fields=self._embed_body_fields,
419 )
420 )
422 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd
423 match, child_scope = super().matches(scope) 2L9M9g'm'N9n'O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%Q'V%W%X%Y%R'U9V9h'o'W9p'X9Y9Z9P%0919293949Z%0%1%gf5fhf2%S'3%4%5%6%T'5969i'q'79r'8999L%7%!9#9$9%9'98%9%!%if@fTf#%U'$%%%'%(%V'(9)9j's'*9t'+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%W'.%/%:%;%X'=9?9k'u'@9v'[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%Y'^%_%`%{%Z'}9~9l'w'a!x'b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'0'c'd'e'f'1'
424 if match != Match.NONE: 2L9M9g'm'N9n'O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%Q'V%W%X%Y%R'U9V9h'o'W9p'X9Y9Z9P%0919293949Z%0%1%gf5fhf2%S'3%4%5%6%T'5969i'q'79r'8999L%7%!9#9$9%9'98%9%!%if@fTf#%U'$%%%'%(%V'(9)9j's'*9t'+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%W'.%/%:%;%X'=9?9k'u'@9v'[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%Y'^%_%`%{%Z'}9~9l'w'a!x'b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'0'c'd'e'f'1'
425 child_scope["route"] = self 2L9M9N9O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%V%W%X%Y%U9V9W9X9Y9Z9P%0919293949Z%0%1%gf5fhf2%3%4%5%6%5969798999L%7%!9#9$9%9'98%9%!%if@fTf#%$%%%'%(%(9)9*9+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%.%/%:%;%=9?9@9[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%^%_%`%{%}9~9a!b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'c'd'e'f'
426 return match, child_scope 2L9M9g'm'N9n'O9P9K%Q%Q9R9S9T9R%S%T%ff?fSfU%Q'V%W%X%Y%R'U9V9h'o'W9p'X9Y9Z9P%0919293949Z%0%1%gf5fhf2%S'3%4%5%6%T'5969i'q'79r'8999L%7%!9#9$9%9'98%9%!%if@fTf#%U'$%%%'%(%V'(9)9j's'*9t'+9,9M%)%-9.9/9:9;9*%+%,%jf[fUf-%W'.%/%:%;%X'=9?9k'u'@9v'[9]9N%=%^9_9`9{9|9?%@%[%kf]fVf]%Y'^%_%`%{%Z'}9~9l'w'a!x'b!c!O%|%d!e!f!g!h!}%~%a'lf^fWfb'0'c'd'e'f'1'
429class APIRoute(routing.Route): 1efabcd
430 def __init__( 1efabcd
431 self,
432 path: str,
433 endpoint: Callable[..., Any],
434 *,
435 response_model: Any = Default(None),
436 status_code: Optional[int] = None,
437 tags: Optional[List[Union[str, Enum]]] = None,
438 dependencies: Optional[Sequence[params.Depends]] = None,
439 summary: Optional[str] = None,
440 description: Optional[str] = None,
441 response_description: str = "Successful Response",
442 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
443 deprecated: Optional[bool] = None,
444 name: Optional[str] = None,
445 methods: Optional[Union[Set[str], List[str]]] = None,
446 operation_id: Optional[str] = None,
447 response_model_include: Optional[IncEx] = None,
448 response_model_exclude: Optional[IncEx] = None,
449 response_model_by_alias: bool = True,
450 response_model_exclude_unset: bool = False,
451 response_model_exclude_defaults: bool = False,
452 response_model_exclude_none: bool = False,
453 include_in_schema: bool = True,
454 response_class: Union[Type[Response], DefaultPlaceholder] = Default(
455 JSONResponse
456 ),
457 dependency_overrides_provider: Optional[Any] = None,
458 callbacks: Optional[List[BaseRoute]] = None,
459 openapi_extra: Optional[Dict[str, Any]] = None,
460 generate_unique_id_function: Union[
461 Callable[["APIRoute"], str], DefaultPlaceholder
462 ] = Default(generate_unique_id),
463 ) -> None:
464 self.path = path 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
465 self.endpoint = endpoint 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
466 if isinstance(response_model, DefaultPlaceholder): 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
467 return_annotation = get_typed_return_annotation(endpoint) 2e qc6f{bY bbPb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 6ejdkd? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 8eldmd@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU wb;cxbwc=cGc;b=b!endod; E K g h ^ !c?c4c?b#e$e@cCcrbb tc9f@bT } yb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV zb^cAbxc_cHc^b_b%epdqd= F L i j _ #c`c5c`b'e(e{cDcsbc uc!fec0 dbRb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 Sb~cTbycadIchcic)erdsd[ I O o p ~ $cbd6cjc*e+ecdEcBbd vc#fkc1 ebUbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 VbfdWbzcgdJcncoc,etdud] J P q r ab%chd7cpc-e.eidFcCb
468 if lenient_issubclass(return_annotation, Response): 2e qc6f{bY bbPb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 6ejdkd? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 8eldmd@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU wb;cxbwc=cGc;b=b!endod; E K g h ^ !c?c4c?b#e$e@cCcrbb tc9f@bT } yb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV zb^cAbxc_cHc^b_b%epdqd= F L i j _ #c`c5c`b'e(e{cDcsbc uc!fec0 dbRb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 Sb~cTbycadIchcic)erdsd[ I O o p ~ $cbd6cjc*e+ecdEcBbd vc#fkc1 ebUbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 VbfdWbzcgdJcncoc,etdud] J P q r ab%chd7cpc-e.eidFcCb
469 response_model = None 1efabcd
470 else:
471 response_model = return_annotation 2e qc6f{bY bbPb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 6ejdkd? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 8eldmd@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU wb;cxbwc=cGc;b=b!endod; E K g h ^ !c?c4c?b#e$e@cCcrbb tc9f@bT } yb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV zb^cAbxc_cHc^b_b%epdqd= F L i j _ #c`c5c`b'e(e{cDcsbc uc!fec0 dbRb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 Sb~cTbycadIchcic)erdsd[ I O o p ~ $cbd6cjc*e+ecdEcBbd vc#fkc1 ebUbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 VbfdWbzcgdJcncoc,etdud] J P q r ab%chd7cpc-e.eidFcCb
472 self.response_model = response_model 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
473 self.summary = summary 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
474 self.response_description = response_description 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
475 self.deprecated = deprecated 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
476 self.operation_id = operation_id 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
477 self.response_model_include = response_model_include 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
478 self.response_model_exclude = response_model_exclude 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
479 self.response_model_by_alias = response_model_by_alias 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
480 self.response_model_exclude_unset = response_model_exclude_unset 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
481 self.response_model_exclude_defaults = response_model_exclude_defaults 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
482 self.response_model_exclude_none = response_model_exclude_none 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
483 self.include_in_schema = include_in_schema 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
484 self.response_class = response_class 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
485 self.dependency_overrides_provider = dependency_overrides_provider 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
486 self.callbacks = callbacks 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
487 self.openapi_extra = openapi_extra 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
488 self.generate_unique_id_function = generate_unique_id_function 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
489 self.tags = tags or [] 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
490 self.responses = responses or {} 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
491 self.name = get_name(endpoint) if name is None else name 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
492 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
493 if methods is None: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
494 methods = ["GET"] 1efabcd
495 self.methods: Set[str] = {method.upper() for method in methods} 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
496 if isinstance(generate_unique_id_function, DefaultPlaceholder): 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
497 current_generate_unique_id: Callable[[APIRoute], str] = ( 2e qc6f{bY bbPbhbnbDbEb|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibobFbGbbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblbHbIb/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmbJbKb[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpbLbMbfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqbNbOblcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
498 generate_unique_id_function.value
499 )
500 else:
501 current_generate_unique_id = generate_unique_id_function 2e XbWcYbZb0bDbEb'cf 1bXc2b3b4bFbGb+ca 5bYc6b7b8bHbIb/cb 9bZc!b#b$bJbKb[cc %b0c'b(b)bLbMb|cd *b1c+b,b-bNbObdd
502 self.unique_id = self.operation_id or current_generate_unique_id(self) 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
503 # normalize enums e.g. http.HTTPStatus
504 if isinstance(status_code, IntEnum): 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
505 status_code = int(status_code) 1efabcd
506 self.status_code = status_code 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
507 if self.response_model: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
508 assert is_body_allowed_for_status_code(status_code), ( 2e hbnbXbWcYbZb0bDbEbw ! x KcLc2 - ' 6emfnf? G M k l 7ef ibob1bXc2b3b4bFbGby # z McNc3 . ( 8eofpf@ H N m n 9ea fblb5bYc6b7b8bHbIbs 6 t OcPcU + 8 !eqfrf; E K g h #e$eQ b gbmb9bZc!b#b$bJbKbu 7 v QcRcV , 9 %esftf= F L i j 'e(eR c jbpb%b0c'b(b)bLbMbA $ B ScTc4 / ) )eufvf[ I O o p *e+eW d kbqb*b1c+b,b-bNbObC % D UcVc5 : * ,ewfxf] J P q r -e.eX
509 f"Status code {status_code} must not have a response body"
510 )
511 response_name = "Response_" + self.unique_id 2e hbnbXbWcYbZb0bDbEbw ! x KcLc2 - ' 6emfnf? G M k l 7ef ibob1bXc2b3b4bFbGby # z McNc3 . ( 8eofpf@ H N m n 9ea fblb5bYc6b7b8bHbIbs 6 t OcPcU + 8 !eqfrf; E K g h #e$eQ b gbmb9bZc!b#b$bJbKbu 7 v QcRcV , 9 %esftf= F L i j 'e(eR c jbpb%b0c'b(b)bLbMbA $ B ScTc4 / ) )eufvf[ I O o p *e+eW d kbqb*b1c+b,b-bNbObC % D UcVc5 : * ,ewfxf] J P q r -e.eX
512 self.response_field = create_model_field( 2e hbnbXbWcYbZb0bDbEbw ! x KcLc2 - ' 6emfnf? G M k l 7ef ibob1bXc2b3b4bFbGby # z McNc3 . ( 8eofpf@ H N m n 9ea fblb5bYc6b7b8bHbIbs 6 t OcPcU + 8 !eqfrf; E K g h #e$eQ b gbmb9bZc!b#b$bJbKbu 7 v QcRcV , 9 %esftf= F L i j 'e(eR c jbpb%b0c'b(b)bLbMbA $ B ScTc4 / ) )eufvf[ I O o p *e+eW d kbqb*b1c+b,b-bNbObC % D UcVc5 : * ,ewfxf] J P q r -e.eX
513 name=response_name,
514 type_=self.response_model,
515 mode="serialization",
516 )
517 # Create a clone of the field, so that a Pydantic submodel is not returned
518 # as is just because it's an instance of a subclass of a more limited class
519 # e.g. UserInDB (containing hashed_password) could be a subclass of User
520 # that doesn't have the hashed_password. But because it's a subclass, it
521 # would pass the validation and be returned as is.
522 # By being a new field, no inheritance will be passed as is. A new model
523 # will always be created.
524 # TODO: remove when deprecating Pydantic v1
525 self.secure_cloned_response_field: Optional[ModelField] = ( 2e hbnbXbWcYbZb0bDbEbw ! x KcLc2 - ' ? G M k l f ibob1bXc2b3b4bFbGby # z McNc3 . ( @ H N m n a fblb5bYc6b7b8bHbIbs 6 t OcPcU + 8 ; E K g h Q b gbmb9bZc!b#b$bJbKbu 7 v QcRcV , 9 = F L i j R c jbpb%b0c'b(b)bLbMbA $ B ScTc4 / ) [ I O o p W d kbqb*b1c+b,b-bNbObC % D UcVc5 : * ] J P q r X
526 create_cloned_field(self.response_field)
527 )
528 else:
529 self.response_field = None # type: ignore 2e qc6f{bY bbPb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 jdkd` 8c)c2c~b*cActbf rc7facZ cbQb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 ldmd{ 9c-c3cdc.cBcuba sc8f.bS | vb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU wb;cxbwc=cGc;b=bndod^ !c?c4c?b@cCcrbb tc9f@bT } yb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV zb^cAbxc_cHc^b_bpdqd_ #c`c5c`b{cDcsbc uc!fec0 dbRb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 Sb~cTbycadIchcicrdsd~ $cbd6cjccdEcBbd vc#fkc1 ebUbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 VbfdWbzcgdJcncoctdudab%chd7cpcidFcCb
530 self.secure_cloned_response_field = None 2e qc6f{bY bbPb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 jdkd` 8c)c2c~b*cActbf rc7facZ cbQb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 ldmd{ 9c-c3cdc.cBcuba sc8f.bS | vb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU wb;cxbwc=cGc;b=bndod^ !c?c4c?b@cCcrbb tc9f@bT } yb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV zb^cAbxc_cHc^b_bpdqd_ #c`c5c`b{cDcsbc uc!fec0 dbRb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 Sb~cTbycadIchcicrdsd~ $cbd6cjccdEcBbd vc#fkc1 ebUbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 VbfdWbzcgdJcncoctdudab%chd7cpcidFcCb
531 self.dependencies = list(dependencies or []) 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' jdkd? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( ldmd@ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=bndod; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_bpdqd= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcicrdsd[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoctdud] J P q r ab%chd7cpcidFcCbX
532 self.description = description or inspect.cleandoc(self.endpoint.__doc__ or "") 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' jdkd? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( ldmd@ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=bndod; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_bpdqd= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcicrdsd[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoctdud] J P q r ab%chd7cpcidFcCbX
533 # if a "form feed" character (page break) is found in the description text,
534 # truncate description text to the content preceding the first "form feed"
535 self.description = self.description.split("\f")[0].strip() 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' jdkd? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( ldmd@ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=bndod; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_bpdqd= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcicrdsd[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoctdud] J P q r ab%chd7cpcidFcCbX
536 response_fields = {} 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' jdkd? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( ldmd@ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=bndod; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_bpdqd= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcicrdsd[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoctdud] J P q r ab%chd7cpcidFcCbX
537 for additional_status_code, response in self.responses.items(): 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' jdkd? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( ldmd@ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=bndod; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_bpdqd= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcicrdsd[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoctdud] J P q r ab%chd7cpcidFcCbX
538 assert isinstance(response, dict), "An additional response must be a dict" 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
539 model = response.get("model") 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
540 if model: 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
541 assert is_body_allowed_for_status_code(additional_status_code), ( 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
542 f"Status code {additional_status_code} must not have a response body"
543 )
544 response_name = f"Response_{additional_status_code}_{self.unique_id}" 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
545 response_field = create_model_field( 2e XbWcYbZb0bDbEbw ! x KcLc2 jdkdf 1bXc2b3b4bFbGby # z McNc3 ldmda 5bYc6b7b8bHbIbs 6 t OcPcU ndodb 9bZc!b#b$bJbKbu 7 v QcRcV pdqdc %b0c'b(b)bLbMbA $ B ScTc4 rdsdd *b1c+b,b-bNbObC % D UcVc5 tdud
546 name=response_name, type_=model, mode="serialization"
547 )
548 response_fields[additional_status_code] = response_field 2e XbWcYbZb0bDbEbw ! x KcLc2 f 1bXc2b3b4bFbGby # z McNc3 a 5bYc6b7b8bHbIbs 6 t OcPcU b 9bZc!b#b$bJbKbu 7 v QcRcV c %b0c'b(b)bLbMbA $ B ScTc4 d *b1c+b,b-bNbObC % D UcVc5
549 if response_fields: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
550 self.response_fields: Dict[Union[int, str], ModelField] = response_fields 2e XbWcYbZb0bDbEbw ! x KcLc2 f 1bXc2b3b4bFbGby # z McNc3 a 5bYc6b7b8bHbIbs 6 t OcPcU b 9bZc!b#b$bJbKbu 7 v QcRcV c %b0c'b(b)bLbMbA $ B ScTc4 d *b1c+b,b-bNbObC % D UcVc5
551 else:
552 self.response_fields = {} 2e qc6f{bY bbPbhbnb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqbddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
554 assert callable(endpoint), "An endpoint must be a callable" 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
555 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
556 for depends in self.dependencies[::-1]: 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
557 self.dependant.dependencies.insert( 1efabcd
558 0,
559 get_parameterless_sub_dependant(depends=depends, path=self.path_format),
560 )
561 self._flat_dependant = get_flat_dependant(self.dependant) 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
562 self._embed_body_fields = _should_embed_body_fields( 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
563 self._flat_dependant.body_params
564 )
565 self.body_field = get_body_field( 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
566 flat_dependant=self._flat_dependant,
567 name=self.unique_id,
568 embed_body_fields=self._embed_body_fields,
569 )
570 self.app = request_response(self.get_route_handler()) 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
572 def get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]: 1efabcd
573 return get_request_handler( 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
574 dependant=self.dependant,
575 body_field=self.body_field,
576 status_code=self.status_code,
577 response_class=self.response_class,
578 response_field=self.secure_cloned_response_field,
579 response_model_include=self.response_model_include,
580 response_model_exclude=self.response_model_exclude,
581 response_model_by_alias=self.response_model_by_alias,
582 response_model_exclude_unset=self.response_model_exclude_unset,
583 response_model_exclude_defaults=self.response_model_exclude_defaults,
584 response_model_exclude_none=self.response_model_exclude_none,
585 dependency_overrides_provider=self.dependency_overrides_provider,
586 embed_body_fields=self._embed_body_fields,
587 )
589 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd
590 match, child_scope = super().matches(scope) 2KDLDMDL9NDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{DM9|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE2':nlEmEw ! x 2 nEoEpEqErEsEtEuEvE3'wExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdFg'm'N9n'? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.FK'/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf2c~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeH4'fHAcgH=ehHiHO9tbjHkHlHmHnHoHpHqHyVP9zVK%Q%Q9R9S9AVT9rH5'poqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHU9vHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(HV9)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]H6'Eo^H_Hy # z 3 `H{H|H}H~HaIbIcIdI7'eIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/Ih'o'W9p'@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3JL'4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDf3cdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K8';KBc=K/e?K@KX9ub[K]K^K_K`K{K|K}K4VY95VZ9P%0919296V397V49~K9'7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v59(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzw69AwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4Nw!'UlOwPws 6 t U QwRwSwTwUwVwWwXwYw#'Zw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGxi'q'79r'; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyM'oypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e4c?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHz$'IzCcJz:eKzLz89rbMzNzOzPzQzRzSzTzQU99RUL%7%!9#9$9SU%9TU'9Uz%'Q :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXz(9YzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liA)9jAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wA''bmxAyAu 7 v V zAAABACADAEAFAGAHA('IAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpBj's'*9t'= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{BN'|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf5c`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqD)'rDDcsD;etDuD+9sbvDwDxDyDzDADBDCD:U,9;UM%)%-9.9/9=U:9?U;9DD*'R EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcL=9dLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXL?9YLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L+'/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L,':L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4Mk'u'@9v'[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNO'MNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLf6cjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O-'6OEc7O[e8O9O[9Bb!O#O$O%O'O(O)O*OaW]9bWN%=%^9_9`9cW{9dW|9+O.'W oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O}9/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFP~9GPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TP/'DpUPVPC % D 5 WPXPYPZP0P1P2P3P4P:'5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQl'w'a!x'] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRP'uRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPf7cpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNS;'OSFcPS]eQSRSb!CbSSTSUSVSWSXSYSZSHWc!IWO%|%d!e!f!JWg!KWh!0S='X 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
591 if match != Match.NONE: 2KDLDMDL9NDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{DM9|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE2':nlEmEw ! x 2 nEoEpEqErEsEtEuEvE3'wExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdFg'm'N9n'? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.FK'/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf2c~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeH4'fHAcgH=ehHiHO9tbjHkHlHmHnHoHpHqHyVP9zVK%Q%Q9R9S9AVT9rH5'poqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHU9vHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(HV9)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]H6'Eo^H_Hy # z 3 `H{H|H}H~HaIbIcIdI7'eIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/Ih'o'W9p'@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3JL'4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDf3cdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K8';KBc=K/e?K@KX9ub[K]K^K_K`K{K|K}K4VY95VZ9P%0919296V397V49~K9'7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v59(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzw69AwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4Nw!'UlOwPws 6 t U QwRwSwTwUwVwWwXwYw#'Zw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGxi'q'79r'; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyM'oypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e4c?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHz$'IzCcJz:eKzLz89rbMzNzOzPzQzRzSzTzQU99RUL%7%!9#9$9SU%9TU'9Uz%'Q :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXz(9YzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liA)9jAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wA''bmxAyAu 7 v V zAAABACADAEAFAGAHA('IAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpBj's'*9t'= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{BN'|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf5c`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqD)'rDDcsD;etDuD+9sbvDwDxDyDzDADBDCD:U,9;UM%)%-9.9/9=U:9?U;9DD*'R EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcL=9dLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXL?9YLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L+'/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L,':L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4Mk'u'@9v'[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNO'MNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLf6cjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O-'6OEc7O[e8O9O[9Bb!O#O$O%O'O(O)O*OaW]9bWN%=%^9_9`9cW{9dW|9+O.'W oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O}9/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFP~9GPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TP/'DpUPVPC % D 5 WPXPYPZP0P1P2P3P4P:'5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQl'w'a!x'] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRP'uRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPf7cpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNS;'OSFcPS]eQSRSb!CbSSTSUSVSWSXSYSZSHWc!IWO%|%d!e!f!JWg!KWh!0S='X 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
592 child_scope["route"] = self 2KDLDMDNDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{D|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE:nlEmEw ! x 2 nEoEpEqErEsEtEuEvEwExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdFg'? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.FK'/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeHfHAcgH=ehHiHtbjHkHlHmHnHoHpHqHyVzVAVrHpoqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHvHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(H)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]HEo^H_Hy # z 3 `H{H|H}H~HaIbIcIdIeIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/Ih'@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3JL'4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDfdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K;KBc=K/e?K@Kub[K]K^K_K`K{K|K}K4V5V6V7V~K7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzwAwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4NwUlOwPws 6 t U QwRwSwTwUwVwWwXwYwZw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGxi'; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyM'oypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHzIzCcJz:eKzLzrbMzNzOzPzQzRzSzTzQURUSUTUUzQ :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXzYzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liAjAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wAbmxAyAu 7 v V zAAABACADAEAFAGAHAIAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpBj'= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{BN'|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqDrDDcsD;etDuDsbvDwDxDyDzDADBDCD:U;U=U?UDDR EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcLdLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXLYLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L:L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4Mk'[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNO'MNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLfjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O6OEc7O[e8O9OBb!O#O$O%O'O(O)O*OaWbWcWdW+OW oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFPGPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TPDpUPVPC % D 5 WPXPYPZP0P1P2P3P4P5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQl'] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRP'uRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPfpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNSOSFcPS]eQSRSCbSSTSUSVSWSXSYSZSHWIWJWKW0SX 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
593 return match, child_scope 2KDLDMDL9NDOD$n6S%nPDQDRDSDTDyfKgugLgqcGv{bY 7vUDVDbb-qz0^qWD)iXDPbhbnb7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|rYDZD0D1D2DF0G0H03D4D5DI0J0K0L06D7D8DM0N0O0P09DQ0R0S0!D#D'n(n7S)n1S*nR2$D%DS2'D(D)DT2U2*DV2W2+DX2,DY2Z2-D0212.D/D22:D;D=D?D@D[DIm}r32]DT042U0V0i!+n^D_D`U{U,n|UMg)p.q8v%t't(t)tCXDX*t+t`D-n{DM9|D}D~DaEbEcEdEeEfEgEhEiE|b}b.n8S9S/n!SjE52kE2':nlEmEw ! x 2 nEoEpEqErEsEtEuEvE3'wExE6272yEzEAE82BECEDE92!2EEFE#2$2%2GE'2HEIE(2)2JEKE*2LE+2ME,2-2NEOEPE.2QERESE/2TEUE:2VE;2WE=2XE?2@2YEZE[2]20E^2_21E`2{22E|2}23E~2a34Eb3c35E6E7E8E9E!E#Ed3$Ee3%E'Ef3g3(E)Eh3*Ei3j3*i+i!pk3l3+E,E-E.E/Em3n3:Eo3;E=E- ' ?E@E[EHv#SEXp3]Eq3;n^E,i-i.ifhghhhJmKmLmIvJv/i}U:i~U;i=icq3qMmNmOmPm_E`EQm?i@i[idq4qRmSm]i^ieq5qTmUm{E|E}E~EaFbFVmWmXm_f_iYm`f`iZm{i0m|i1m}icFdFg'm'N9n'? G M eFk l ` fFj!gFk!hFiFjFl!kFm!lFmFnFn!oFo!pFqFrFp!sFq!tFuFvFr!wFs!xFt!u!v!yFw!x!y!zFz!A!AFB!C!BFCFDFEFD!E!FFF!G!GFHFIFJFH!KF,tFXGXHXI!J!LFK!L!MFNFOFPF-tIXJXKXQFRFSFLX.tMXNXTFUFVFWFXFYFZFM!0F1FN!2F3F4F5F~iajihbj6F7F6kcjdjjh2m3m4m5mkhlhejfj6m7m8m9m!m8FW09FX0Y0Z0!F#F$F%F=n'F$S?nOX/t%S@ngjaVhjbVijcVjjdV|q[n(F)F:t*F+F,F-F.FK'/F:F;F=FO!00P!?Fr3s3@FQ!t3u3[F10R!v3]Fw3^Fx3_Fy3`FS!z3]n^n_nVq@UMW,T'SPX(S)S`n{n|n-T*S}n~naoQX;t=t+SRXboco,Smhzf2c~b{F|F}F~FaGbGA3cGdGB3C3eGfGgGeVfVgVhGhViVjVdoiGeo-SjGkGlGkVlVmGmVnG9vnVoVpVoGpG.Sfonhoh^eqGrGT!U!D3sGtG20301WuG402WvG506070V!W!X!Y!E3F3wGxGyGzGAGBGgokjljphmjCGqhXfYfDG80EG90FG!0GG#0G3ho/SHG$0H3IGJGKGI3LGMGJ3K3NGOGPGL3M3QGRGSGTGUGVGioWGXGYGZG{f0G1G2G%0'03G(0)04G5G|f6G7G8G9GN3!G#G$G%G'GO3(G)GP3Q3*GR3+GS3,GT3-G.G/G:G;G=G?G@G[G]GU3^G_G`GSX?tTX@t[t]t^t_t`t{t|tqVUX}tVX~trVaubucuWXXXYXZX0Xdu1X2X3X4X5Xeu6X7X8X9Xfu!X#X$X%X'X(Xgu)X*XKvsV{GtV|G}f~fuVvVwV}GxVrhnjojpjqjjokolomoZ!0!~G1!2!3!hu3W4W4!aH5!6!sh5W6W7!NgOg8!thuhvh9!!!#!bH$!%!'!norjoosjcHdHAfBfeH4'fHAcgH=ehHiHO9tbjHkHlHmHnHoHpHqHyVP9zVK%Q%Q9R9S9AVT9rH5'poqo+X,Xiujuroso?pfqGqHqtj7k@pgqIqwhsHtHuHU9vHwHto:SuoxHyHzHAHBHCfPgvgQgrcLvacZ !vCHDHcb/qA0_qEHujFHQbibob~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsGHHHIHJHKH@W[W]WLHMHNH^W_W`W{WOHPHQH|W}W~WaXRHbXcXdXSHTHvowo;Sxo6vyoV3UHVHW3WHXHYHX3Y3ZHZ3030H131H23332H43533H4H635H6H7H8H9H!H#mBs73#HeX83fXgX(8zo$H%HBVCVAoDVRg$m:qkulumunuou-X.Xpuqu'HBo(HV9)H*H+H,H-H.H/H:H;H=H?H@HbcccCo=S?SDo@S[H93]H6'Eo^H_Hy # z 3 `H{H|H}H~HaIbIcIdI7'eIfI!3#3gIhIiI$3jIkIlI%3'3mInI(3)3*3oI+3pIqI,3-3rIsI.3tI/3uI:3;3vIwIxI=3yIzIAI?3BICI@3DI[3EI]3FI^3_3GIHI`3{3II|3}3JI~3a4KIb4c4LId4e4MIf4g4NIOIPIQIRISITIh4UIi4VIWIj4k4XIYIl4ZIm4n4vjwj#po4p40I1I2I3I4Iq4r45Is46I7I. ( 8I9I!IMv[S/Xt4#Iu4Fo$Ixjyjzjxhyhzh%m'm(mNvOvAjEVBjFVCjDj*phq)m*m+m,m%I'I-mEjFjGj+piq.m/mHjIj,pjq:m;m(I)I*I+I,I-I=m?m@magJj[mbgKj]mLj^mMj_mNj.I/Ih'o'W9p'@ H N :Im n { ;I)8=I*8?I@I[I+8]I,8^I_I`I-8{I.8|I}I~I/8aJ:8bJcJdJ;8eJ=8fJ?8@8[8gJ]8^8_8hJ`8{8iJ|8}8jJkJlJmJ~8a9nJb9c9oJpJqJrJd9sJru:X;X=Xe9f9tJg9h9uJvJwJxJsu?X@X[XyJzJAJ]Xtu^X_XBJCJDJEJFJGJHJi9IJJJj9KJLJMJNJOjPjAhQjOJPJ8kRjSjBh`m{m|m}mChDhTjUj~manbncndnQJhXRJiXjXkXSJTJUJVJGoWJ]SHo`Xuu^SIoVjGVWjHVXjIVYjJV}qJoXJYJvuZJ0J1J2J3JL'4J5J6J7Jk9lXl98Jv4w49Jm9x4y4!JmXn9z4#JA4$JB4%JC4'Jo9D4KoLoMoWqmULW.T_S{X`S{SNoOoPo/T|SQoRoSo|Xwuxu}S}XToUo~SEhDf3cdc(J)J*J+J,J-JE4.J/JF4G4:J;J=JKVLVMV?JNVOVPVVo@JWoaT[J]J^JQVRV_JSV`J#vTVUVVV{J|JbTXoFhGh_e}J~Jp9q9H4aKbKnXoXVWcKpXWWdKqXrXsXr9s9t9u9I4J4eKfKgKhKiKjKYoZj0jHh1jkKIhZf0flKtXmKuXnKvXoKwXK4ZocTpKxXL4qKrKsKM4tKuKN4O4vKwKxKP4Q4yKzKAKBKCKDK0oEKFKGKHKcgIKJKKKyXzXLKAXBXMKNKdgOKPKQKRKR4SKTKUKVKWKS4XKYKT4U4ZKV40KW41KX42K3K4K5K6K7K8K9K!K#KY4$K%K'K~XyuaYzuAuBuCuDuEuFuGuWVbYHucYIuXVJuKuLudYeYfYgYhYMuiYjYkYlYmYNunYoYpYqYOurYsYtYuYvYwYPuxYyYPvYV(KZV)Kegfg0V1V2V*K3VJh2j3j4j5j1o2o3o4ov9w9+Kx9y9z9QuRWSWA9,KB9C9KhTWUWD9SgTgE9LhUgVgF9G9H9-KI9J9K95o6j6o7j.K/K`e{e:K8';KBc=K/e?K@KX9ub[K]K^K_K`K{K|K}K4VY95VZ9P%0919296V397V49~K9'7o8ozYAYRuSu9o!o$p-p[p]p8j9k%p.p^pMh$v%v'v59(v)vJldTKl*v+v,v-v.vEfAgwgBgscQv.bS Rv/v:v| XqB0+q;vNh=vvbfblbbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCr?v@v[v]v^v*0+0,0_v`v{v-0.0/0:0|v}v~v;0=0?0@0aw[0]0^0bwcwLlMleTNl2SOlZ4dwew04fwgwhw1424iw3444jw54kw6474lw8494mwnw!4owpwqwrwswtw!kDr#4uw_0$4`0{0(!PlvwwwnUoUQlpUCg/pYqxw|s}s~satBYCYbtctywRlzw69AwBwCwDwEwFwGwHwIwJwKwLw/b:bSlfTgTTlhTMw%4Nw!'UlOwPws 6 t U QwRwSwTwUwVwWwXwYw#'Zw0w'4(41w2w3w)44w5w6w*4+47w8w,4-4.49w/4!w#w:4;4$w%w=4'w?4(w@4[4)w*w+w]4,w-w.w^4/w:w_4;w`4=w{4?w|4}4@w[w~4a5]wb5c5^wd5e5_wf5g5`wh5i5{wj5k5|w}w~waxbxcxdxl5exm5fxgxn5o5hxixp5jxq5r5OhPhens5t5kxlxmxnxoxu5v5pxw5qxrx+ 8 wbxbwcGc;b=bsxtxuxTuiTDYx5vxy5VlwxQhRhShWgXgYg#k$k%kUuVuThqUUhrUVhWhkq6q'k(k)k*kxxyx+kXhYhZhlq7q,k-k0h1hmq8q.k/kzxAxBxCxDxEx:k;k=k$f2h?k%f3h@k4h[k5h]k6hFxGxi'q'79r'; E K Hxg h ^ Ix)!Jx*!KxLxMx+!Nx,!OxPxQx-!Rx.!SxTxUx/!Vx:!WxXxYx;!Zx=!0x?!@![!1x]!^!_!2x`!{!3x|!}!4x5x6x7x~!a#8xb#c#9x!x#x$xd#%xdtEYFYGYe#f#'xg#h#(x)x*x+xetHYIYJY,x-x.xKYftLYMY/x:x;x=x?x@x[xi#]x^xj#_x`x{x|x7h8hZg9h}x~x9j!h#h0g^k_k`k{k1g2g$h%h|k}k~kalblay|0by}0~0a1cydyeyfyWlgyjTXlNYgtkTYl'hsU(htU)huU*hvU[qZlhyiyhtjykylymynyM'oypyqyryk#b1l#syz5A5tym#B5C5uyc1n#D5vyE5wyF5xyG5yyo#H50l1l2lEq[UNW:TlTOYmTnT3l4l5l;ToT6l7l8lPYitjtpTQY9l!lqT3g|e4c?bzyAyByCyDyEyI5FyGyJ5K5HyIyJywUxUyUKyzUAUBU#lLy$lrTMyNyOyCUDUPyEUQySvFUGUHURySysT%l4g5g?eTyUyp#q#L5VyWyd1e1XWXyf1YWYyg1h1i1r#s#t#u#M5N5Zy0y1y2y3y4y'l+h,h6g-h5y7gFfGf6yj17yk18yl19ym1O5(ltT!yn1P5#y$y%yQ5'y(yR5S5)y*y+yT5U5,y-y.y/y:y;y)l=y?y@y[y'f]y^y_yo1p1`yq1r1{y|y(f}y~yazbzV5czdzezfzgzW5hzizX5Y5jzZ5kz05lz15mznzozpzqzrzsztzuzvz25wzxzyzRYktSYltmtntotptqtrtstIUTYttUYutJUvtwtxtVYWYXYYYZYyt0Y1Y2Y3Y4Yzt5Y6Y7Y8YAt9Y!Y#Y$Y%Y'YBt(Y)YWuKUzzLUAz)f*fMUNUOUBzPU+f8g.h/h:h;h*l+l,l-lv#w#Czx#y#z#Ct7W8WA#DzB#C#9g9W!WD#DgEgE#!g#g$gF#G#H#EzI#J#K#.l=h/l?hFzGz}e~eHz$'IzCcJz:eKzLz89rbMzNzOzPzQzRzSzTzQU99RUL%7%!9#9$9SU%9TU'9Uz%'Q :l;l*Y+YDtEt=l?l_pnqJqKq@h!j`poqLq%gVzWzXz(9YzZz@luT[l0z1z2z3z4zHfFgxgGgtcTv@bT Uv5z6z} ZqC0,q7z[h8zybgbmbErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r9z!z#z$z%zs1t1u1'z(z)zv1w1x1y1*z+z,zz1A1B1C1-zD1E1F1.z/z]l^lvT_l3S`l35:z;z45=z?z@z5565[z7585]z95^z!5#5_z$5%5`z{z'5|z}z~zaAbAcAcl6r(5dAG1)5H1I1L#{leAfAUUVU|lWUHg:p0qgAFtGtHtIt,Y-YJtKthA}liA)9jAkAlAmAnAoApAqArAsAtAuA[b]b~lwTxTamyTvA*5wA''bmxAyAu 7 v V zAAABACADAEAFAGAHA('IAJA+5,5KALAMA-5NAOAPA.5/5QARA:5;5=5SA?5TAUA@5[5VAWA]5XA^5YA_5`5ZA0A1A{52A3A4A|55A6A}57A~58Aa69Ab6c6!A#Ad6e6$Af6g6%Ah6i6'Aj6k6(Al6m6)An6o6*A+A,A-A.A/A:Ap6;Aq6=A?Ar6s6@A[At6]Au6v6]h^hfnw6x6^A_A`A{A|Ay6z6}AA6~AaB, 9 zbAbxcHc^b_bbBcBdBXuzT.YB6eBC6cmfB_h`h{h'g(g)gdlelflYuZu|hXU}hYU~haipq9qglhliljlgBhBklbicidiqq!qllmleifirq#qnloliBjBkBlBmBnBplqlrl,fgisl-fhitliiuljivlkioBpBj's'*9t'= F L qBi j _ rBM#sBN#tBuBvBO#wBP#xByBzBQ#ABR#BBCBDBS#EBT#FBGBHBU#IBV#JBW#X#Y#KBZ#0#1#LB2#3#MB4#5#NBOBPBQB6#7#RB8#9#SBTBUBVB!#WBLt/Y:Y;Y##$#XB%#'#YBZB0B1BMt=Y?Y@Y2B3B4B[YNt]Y^Y5B6B7B8B9B!B#B(#$B%B)#'B(B)B*Blimi*gni+B,B#joipi+gwlxlylzl,g-gqiriAlBlClDlEl-BJ1.BK1L1M1/B:B;B=Bdm?BATem_YOtBTfmsiZUti0Uui1Uvi2U]qgm@B[BPt]B^B_B`B{BN'|B}B~BaC*#N1+#bCD6E6cC,#F6G6dCO1-#H6eCI6fCJ6gCK6hC.#L6hmimjmFq]UOW=TCT`YDTETkmlmmm?TFTnmompm{YQtRtGT|YqmrmHT.gaf5c`biCjCkClCmCnCM6oCpCN6O6qCrCsC3U4U5UtC6U7U8UsmuCtmITvCwCxC9U!UyC#UzCVv$U%U'UACBCJTum/g:g@eCCDC/#:#P6ECFCP1Q1ZWGCR10WHCS1T1U1;#=#?#@#Q6R6ICJCKCLCMCNCvmwixi;gyiOC=gIfJfPCV1QCW1RCX1SCY1S6wmKTTCZ1T6UCVCWCU6XCYCV6W6ZC0C1CX6Y62C3C4C5C6C7Cxm8C9C!C#C.f$C%C'C0111(C2131)C*C/f+C,C-C.CZ6/C:C;C=C?C06@C[C1626]C36^C46_C56`C{C|C}C~CaDbDcDdDeD66fDgDhD}YSt~YTtUtVtWtXtYtZt0t(UaZ1tbZ2t)U3t4t5tcZdZeZfZgZ6thZiZjZkZlZ7tmZnZoZpZ8tqZrZsZtZuZvZ9twZxZ0u*UiD+UjD:f;f,U-U.UkD/U=f?gziAiBiCiymzmAmBm[#]#lD^#_#`#!t#W$W{#mD|#}#@g%W'W~#IgJga$[g]g^gb$c$d$nDe$f$g$CmDiDmEioDpDbfcfqD)'rDDcsD;etDuD+9sbvDwDxDyDzDADBDCD:U,9;UM%)%-9.9/9=U:9?U;9DD*'R EmFmyZzZ#t$tGmHm{psqMqNqFi$j|ptqOq_gaLbLcL=9dLeL#oLT$ofLgLhLiLjLKf`gyg{gucWvec0 EDkLlLdb;qD0`qmL%jnLRbjbpbCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3soLpLqLrLsL415161tLuLvL718191!1wLxLyL#1$1%1'1zL(1)1*1ALBL%o'oMT(o4S)o76CLDL86ELFLGL96!6HL#6$6IL%6JL'6(6KL)6*6LLML+6NLOLPLQLRLSLgn4s,6TL+1-6,1-1h$*oULVL8V9V+o!V|g;p=qFD1u2u3u4uAZBZ5u6uWL,oXL?9YLZL0L1L2L3L4L5L6L7L8L9Lfcgc-oNTOT.oPT!L.6#L+'/o$L%LA $ B 4 'L(L)L*L+L,L-L.L/L,':L;L/6:6=L?L@L;6[L]L^L=6?6_L`L@6[6]6{L^6|L}L_6`6~LaM{6bM|6cM}6~6dMeMfMa7gMhMiMb7jMkMc7lMd7mMe7nMf7g7oMpMh7i7qMj7k7rMl7m7sMn7o7tMp7q7uMr7s7vMwMxMyMzMAMBMt7CMu7DMEMv7w7FMGMx7HMy7z7'j(j'pA7B7IMJMKMLMMMC7D7NME7OMPM/ ) SbTbycIchcicQMRMSMXvQTCZF7TMG7:oUM)j*j+jGiHiIihninjnYvZv,j#V-j$V.j/juq$qknlnmnnnVMWMon:j;j=jvq%qpnqn?j@jwq'qrnsnXMYMZM0M1M2Mtnunvngg[jwnhg]jxn^jyn_jzn`j3M4Mk'u'@9v'[ I O 5Mo p ~ 6Mi$7Mj$8M9M!Mk$#Ml$$M%M'Mm$(Mn$)M*M+Mo$,Mp$-M.M/Mq$:Mr$;Ms$t$u$=Mv$w$x$?My$z$@MA$B$[M]M^M_MC$D$`ME$F${M|M}M~MG$aN7uDZEZFZH$I$bNJ$K$cNdNeNfN8uGZHZIZgNhNiNJZ9uKZLZjNkNlNmNnNoNpNL$qNrNM$sNtNuNvN{j|jJi}jwNxNFl~jakKiAnBnCnDnLiMibkckEnFnGnHnInyN.1zN/1:1;1ANBNCNDN;oENRT=oMZ!uST?odk%Vek'Vfk(Vgk)V~q@oFNGN#uHNINJNKNLNO'MNNNONPNN$=1O$QNH7I7RNP$J7K7SN?1Q$L7TNM7UNN7VNO7WNR$P7[o]o^o1q^UPW@TTTNZUTVT_o`o{o[TWT|o}o~oOZ$u%uXTPZapbpYTNiLf6cjcXNYNZN0N1N2NQ73N4NR7S75N6N7N*V+V,V8N-V.V/Vcp9NdpZT!N#N$N:V;V%N=V'NGD?V@V[V(N)N0TepOiPidf*N+NS$T$T7,N-N@1[1(W.N]1)W/N^1_1`1U$V$W$X$U7V7:N;N=N?N@N[NfphkikQijk]NRi1f2f^N{1_N|1`N}1{N~1W7gp1T|Na2X7}N~NaOY7bOcOZ707dOeOfO1727gOhOiOjOkOlOhpmOnOoOpOigqOrOsOb2c2tOd2e2uOvOjgwOxOyOzO37AOBOCODOEO47FOGO5767HO77IO87JO97KOLOMONOOOPOQOROSOTO!7UOVOWOQZ'uRZ(u)u*u+u,u-u.u/u]VSZ:uTZ;u^V=u?u@uUZVZWZXZYZ[uZZ0Z1Z2Z3Z]u4Z5Z6Z7Z^u8Z9Z!Z#Z$Z%Z_u'Z(Z0v_VXO`VYOkglg{V|V}VZO~VmgSikklkmknkipjpkplpY$Z$0O0$1$2$`u*W+W3$1O4$5$Ti,W-W6$}g~g7$UiViWi8$9$!$2O#$$$%$mpoknppk3O4OMfNf5O-'6OEc7O[e8O9O[9Bb!O#O$O%O'O(O)O*OaW]9bWN%=%^9_9`9cW{9dW|9+O.'W oppp)Z*Z{u|uqprp}pxqPqQqqkGl~pyqRqXi,O-O.O}9/O:Osp2Ttp;O=O?O@O[OOfahzgbhvc1vkc1 HD]O^Oeb?qE0{q_Ork`OUbkbqb5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{O|O}O~OaPf2g2h2bPcPdPi2j2k2l2ePfPgPm2n2o2p2hPq2r2s2iPjPupvp3Twp5Sxp#7kPlP$7mPnPoP%7'7pP(7)7qP*7rP+7,7sP-7.7tPuP/7vPwPxPyPzPAPJn{s:7BPt2;7u2v2'$ypCPDPeWfWzpgWch=p@qID}u~uavbv+Z,ZcvdvEPApFP~9GPHPIPJPKPLPMPNPOPPPQPRPlcmcBp4T5TCp6TSP=7TP/'DpUPVPC % D 5 WPXPYPZP0P1P2P3P4P:'5P6P?7@77P8P9P[7!P#P$P]7^7%P'P_7`7{7(P|7)P*P}7~7+P,Pa8-Pb8.Pc8d8/P:P;Pe8=P?P@Pf8[P]Pg8^Ph8_Pi8`Pj8k8{P|Pl8m8}Pn8o8~Pp8q8aQr8s8bQt8u8cQv8w8dQeQfQgQhQiQjQx8kQy8lQmQz8A8nQoQB8pQC8D8sktk(pE8F8qQrQsQtQuQG8H8vQI8wQxQ: * VbWbzcJcncocyQzQAQ2v7T-ZJ8BQK8EpCQukvkwkYiZi0iKnLnMn3v4vxkhWykiWzkAkzq(qNnOnPnQnDQEQRnBkCkDkAq)qSnTnEkFkBq*qUnVnFQGQHQIQJQKQWnXnYnngGkZnogHk0nIk1nJk2nKkLQMQl'w'a!x'] J P NQq r abOQ($PQ)$QQRQSQ*$TQ+$UQVQWQ,$XQ-$YQZQ0Q.$1Q/$2Q3Q4Q:$5Q;$6Q=$?$@$7Q[$]$^$8Q_$`$9Q{$|$!Q#Q$Q%Q}$~$'Qa%b%(Q)Q*Q+Qc%,Qev.Z/Z:Zd%e%-Qf%g%.Q/Q:Q;Qfv;Z=Z?Z=Q?Q@Q@Zgv[Z]Z[Q]Q^Q_Q`Q{Q|Qh%}Q~Qi%aRbRcRdRLkMk1iNkeRfRHlOkPk2i3n4n5n6n3i4iQkRk7n8n9n!n#ngRw2hRx2y2z2iRjRkRlRFpmR8TGp^Zhv9THpSkjWTkkWUklWVkmWarIpnRoRivpRqRrRsRtRP'uRvRwRxRj%A2k%yRL8M8zRl%N8O8ARB2m%P8BRQ8CRR8DRS8ERn%T8JpKpLp2q_UQW]T!T_Z#T$TMpNpOp^T%TPpQpRp`Zjvkv'T{ZSpTp(T5iPf7cpcFRGRHRIRJRKRU8LRMRV8W8NRORPRnWoWpWQRqWrWsWUpRRVp)TSRTRURtWuWVRvWWRJDwWxWyWXRYR*TWp6i7iefZR0Ro%p%X81R2RC2D2.W3RE2/W4RF2G2H2q%r%s%t%Y8Z85R6R7R8R9R!RXpWkXk8iYk#R9i3f4f$RI2%RJ2'RK2(RL208Yp+T)RM218*R+R,R28-R.R3848/R:R;R5868=R?R@R[R]R^RZp_R`R{R|Rpg}R~RaSN2O2bSP2Q2cSdSqgeSfSgShS78iSjSkSlSmS88nSoS98!8pS#8qS$8rS%8sStSuSvSwSxSySzSASBS'8CSDSES|Zlv}ZmvnvovpvqvrvsvtvzW~Zuva0vvAWwvxvyvb0c0d0e0f0zvg0h0i0j0k0Avl0m0n0o0Bvp0q0r0s0t0u0Cvv0w05vBWFSCWGSrgsgDWEWFWHSGWtg!iZk0k1k2k0p1p2p3pu%v%ISw%x%y%Dv:W;Wz%JSA%B%#i=W?WC%dhehD%$i%i'iE%F%G%KSH%I%J%4p3k5p4kLSMSQfRfNS;'OSFcPS]eQSRSb!CbSSTSUSVSWSXSYSZSHWc!IWO%|%d!e!f!JWg!KWh!0S='X 6p7px0y0EvFv8p9paqCqSqTq5kIlbqDqUq(i
596class APIRouter(routing.Router): 1efabcd
597 """
598 `APIRouter` class, used to group *path operations*, for example to structure
599 an app in multiple files. It would then be included in the `FastAPI` app, or
600 in another `APIRouter` (ultimately included in the app).
602 Read more about it in the
603 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/).
605 ## Example
607 ```python
608 from fastapi import APIRouter, FastAPI
610 app = FastAPI()
611 router = APIRouter()
614 @router.get("/users/", tags=["users"])
615 async def read_users():
616 return [{"username": "Rick"}, {"username": "Morty"}]
619 app.include_router(router)
620 ```
621 """
623 def __init__( 1efabcd
624 self,
625 *,
626 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "",
627 tags: Annotated[
628 Optional[List[Union[str, Enum]]],
629 Doc(
630 """
631 A list of tags to be applied to all the *path operations* in this
632 router.
634 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
636 Read more about it in the
637 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
638 """
639 ),
640 ] = None,
641 dependencies: Annotated[
642 Optional[Sequence[params.Depends]],
643 Doc(
644 """
645 A list of dependencies (using `Depends()`) to be applied to all the
646 *path operations* in this router.
648 Read more about it in the
649 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
650 """
651 ),
652 ] = None,
653 default_response_class: Annotated[
654 Type[Response],
655 Doc(
656 """
657 The default response class to be used.
659 Read more in the
660 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).
661 """
662 ),
663 ] = Default(JSONResponse),
664 responses: Annotated[
665 Optional[Dict[Union[int, str], Dict[str, Any]]],
666 Doc(
667 """
668 Additional responses to be shown in OpenAPI.
670 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
672 Read more about it in the
673 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).
675 And in the
676 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
677 """
678 ),
679 ] = None,
680 callbacks: Annotated[
681 Optional[List[BaseRoute]],
682 Doc(
683 """
684 OpenAPI callbacks that should apply to all *path operations* in this
685 router.
687 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
689 Read more about it in the
690 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
691 """
692 ),
693 ] = None,
694 routes: Annotated[
695 Optional[List[BaseRoute]],
696 Doc(
697 """
698 **Note**: you probably shouldn't use this parameter, it is inherited
699 from Starlette and supported for compatibility.
701 ---
703 A list of routes to serve incoming HTTP and WebSocket requests.
704 """
705 ),
706 deprecated(
707 """
708 You normally wouldn't use this parameter with FastAPI, it is inherited
709 from Starlette and supported for compatibility.
711 In FastAPI, you normally would use the *path operation methods*,
712 like `router.get()`, `router.post()`, etc.
713 """
714 ),
715 ] = None,
716 redirect_slashes: Annotated[
717 bool,
718 Doc(
719 """
720 Whether to detect and redirect slashes in URLs when the client doesn't
721 use the same format.
722 """
723 ),
724 ] = True,
725 default: Annotated[
726 Optional[ASGIApp],
727 Doc(
728 """
729 Default function handler for this router. Used to handle
730 404 Not Found errors.
731 """
732 ),
733 ] = None,
734 dependency_overrides_provider: Annotated[
735 Optional[Any],
736 Doc(
737 """
738 Only used internally by FastAPI to handle dependency overrides.
740 You shouldn't need to use it. It normally points to the `FastAPI` app
741 object.
742 """
743 ),
744 ] = None,
745 route_class: Annotated[
746 Type[APIRoute],
747 Doc(
748 """
749 Custom route (*path operation*) class to be used by this router.
751 Read more about it in the
752 [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router).
753 """
754 ),
755 ] = APIRoute,
756 on_startup: Annotated[
757 Optional[Sequence[Callable[[], Any]]],
758 Doc(
759 """
760 A list of startup event handler functions.
762 You should instead use the `lifespan` handlers.
764 Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
765 """
766 ),
767 ] = None,
768 on_shutdown: Annotated[
769 Optional[Sequence[Callable[[], Any]]],
770 Doc(
771 """
772 A list of shutdown event handler functions.
774 You should instead use the `lifespan` handlers.
776 Read more in the
777 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
778 """
779 ),
780 ] = None,
781 # the generic to Lifespan[AppType] is the type of the top level application
782 # which the router cannot know statically, so we use typing.Any
783 lifespan: Annotated[
784 Optional[Lifespan[Any]],
785 Doc(
786 """
787 A `Lifespan` context manager handler. This replaces `startup` and
788 `shutdown` functions with a single context manager.
790 Read more in the
791 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
792 """
793 ),
794 ] = None,
795 deprecated: Annotated[
796 Optional[bool],
797 Doc(
798 """
799 Mark all *path operations* in this router as deprecated.
801 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
803 Read more about it in the
804 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
805 """
806 ),
807 ] = None,
808 include_in_schema: Annotated[
809 bool,
810 Doc(
811 """
812 To include (or not) all the *path operations* in this router in the
813 generated OpenAPI.
815 This affects the generated OpenAPI (e.g. visible at `/docs`).
817 Read more about it in the
818 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
819 """
820 ),
821 ] = True,
822 generate_unique_id_function: Annotated[
823 Callable[[APIRoute], str],
824 Doc(
825 """
826 Customize the function used to generate unique IDs for the *path
827 operations* shown in the generated OpenAPI.
829 This is particularly useful when automatically generating clients or
830 SDKs for your API.
832 Read more about it in the
833 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
834 """
835 ),
836 ] = Default(generate_unique_id),
837 ) -> None:
838 super().__init__( 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
839 routes=routes,
840 redirect_slashes=redirect_slashes,
841 default=default,
842 on_startup=on_startup,
843 on_shutdown=on_shutdown,
844 lifespan=lifespan,
845 )
846 if prefix: 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
847 assert prefix.startswith("/"), "A path prefix must start with '/'" 1eYfZaSbTc0d1
848 assert not prefix.endswith("/"), ( 1eYfZaSbTc0d1
849 "A path prefix must not end with '/', as the routes will start with '/'"
850 )
851 self.prefix = prefix 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
852 self.tags: List[Union[str, Enum]] = tags or [] 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
853 self.dependencies = list(dependencies or []) 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
854 self.deprecated = deprecated 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
855 self.include_in_schema = include_in_schema 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
856 self.responses = responses or {} 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
857 self.callbacks = callbacks or [] 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
858 self.dependency_overrides_provider = dependency_overrides_provider 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
859 self.route_class = route_class 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
860 self.default_response_class = default_response_class 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
861 self.generate_unique_id_function = generate_unique_id_function 2e {bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? _T`TG M {Tk l ` 8c)c2c~b7e*cActbff?fSff acZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ |T}TH N ~Tm n { 9c-c3cdc9e.cBcubgf5fhfa .bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; aUbUE K cUg h ^ !c?c4c?b#e$e@cCcrbQ if@fTfb @bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= dUeUF L fUi j _ #c`c5c`b'e(e{cDcsbR jf[fUfc ec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ gUhUI O iUo p ~ $cbd6cjc*e+ecdEcBbW kf]fVfd kc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] jUkUJ P lUq r ab%chd7cpc-e.eidFcCbX lf^fWf
863 def route( 1efabcd
864 self,
865 path: str,
866 methods: Optional[Collection[str]] = None,
867 name: Optional[str] = None,
868 include_in_schema: bool = True,
869 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
870 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
871 self.add_route( 1efabcd
872 path,
873 func,
874 methods=methods,
875 name=name,
876 include_in_schema=include_in_schema,
877 )
878 return func 1efabcd
880 return decorator 1efabcd
882 def add_api_route( 1efabcd
883 self,
884 path: str,
885 endpoint: Callable[..., Any],
886 *,
887 response_model: Any = Default(None),
888 status_code: Optional[int] = None,
889 tags: Optional[List[Union[str, Enum]]] = None,
890 dependencies: Optional[Sequence[params.Depends]] = None,
891 summary: Optional[str] = None,
892 description: Optional[str] = None,
893 response_description: str = "Successful Response",
894 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
895 deprecated: Optional[bool] = None,
896 methods: Optional[Union[Set[str], List[str]]] = None,
897 operation_id: Optional[str] = None,
898 response_model_include: Optional[IncEx] = None,
899 response_model_exclude: Optional[IncEx] = None,
900 response_model_by_alias: bool = True,
901 response_model_exclude_unset: bool = False,
902 response_model_exclude_defaults: bool = False,
903 response_model_exclude_none: bool = False,
904 include_in_schema: bool = True,
905 response_class: Union[Type[Response], DefaultPlaceholder] = Default(
906 JSONResponse
907 ),
908 name: Optional[str] = None,
909 route_class_override: Optional[Type[APIRoute]] = None,
910 callbacks: Optional[List[BaseRoute]] = None,
911 openapi_extra: Optional[Dict[str, Any]] = None,
912 generate_unique_id_function: Union[
913 Callable[[APIRoute], str], DefaultPlaceholder
914 ] = Default(generate_unique_id),
915 ) -> None:
916 route_class = route_class_override or self.route_class 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
917 responses = responses or {} 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
918 combined_responses = {**self.responses, **responses} 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
919 current_response_class = get_value_or_default( 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
920 response_class, self.default_response_class
921 )
922 current_tags = self.tags.copy() 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
923 if tags: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
924 current_tags.extend(tags) 1efabcd
925 current_dependencies = self.dependencies.copy() 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
926 if dependencies: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
927 current_dependencies.extend(dependencies) 1efabcd
928 current_callbacks = self.callbacks.copy() 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
929 if callbacks: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
930 current_callbacks.extend(callbacks) 2e Wcf Xca Ycb Zcc 0cd 1c
931 current_generate_unique_id = get_value_or_default( 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
932 generate_unique_id_function, self.generate_unique_id_function
933 )
934 route = route_class( 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
935 self.prefix + path,
936 endpoint=endpoint,
937 response_model=response_model,
938 status_code=status_code,
939 tags=current_tags,
940 dependencies=current_dependencies,
941 summary=summary,
942 description=description,
943 response_description=response_description,
944 responses=combined_responses,
945 deprecated=deprecated or self.deprecated,
946 methods=methods,
947 operation_id=operation_id,
948 response_model_include=response_model_include,
949 response_model_exclude=response_model_exclude,
950 response_model_by_alias=response_model_by_alias,
951 response_model_exclude_unset=response_model_exclude_unset,
952 response_model_exclude_defaults=response_model_exclude_defaults,
953 response_model_exclude_none=response_model_exclude_none,
954 include_in_schema=include_in_schema and self.include_in_schema,
955 response_class=current_response_class,
956 name=name,
957 dependency_overrides_provider=self.dependency_overrides_provider,
958 callbacks=current_callbacks,
959 openapi_extra=openapi_extra,
960 generate_unique_id_function=current_generate_unique_id,
961 )
962 self.routes.append(route) 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
964 def api_route( 1efabcd
965 self,
966 path: str,
967 *,
968 response_model: Any = Default(None),
969 status_code: Optional[int] = None,
970 tags: Optional[List[Union[str, Enum]]] = None,
971 dependencies: Optional[Sequence[params.Depends]] = None,
972 summary: Optional[str] = None,
973 description: Optional[str] = None,
974 response_description: str = "Successful Response",
975 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
976 deprecated: Optional[bool] = None,
977 methods: Optional[List[str]] = None,
978 operation_id: Optional[str] = None,
979 response_model_include: Optional[IncEx] = None,
980 response_model_exclude: Optional[IncEx] = None,
981 response_model_by_alias: bool = True,
982 response_model_exclude_unset: bool = False,
983 response_model_exclude_defaults: bool = False,
984 response_model_exclude_none: bool = False,
985 include_in_schema: bool = True,
986 response_class: Type[Response] = Default(JSONResponse),
987 name: Optional[str] = None,
988 callbacks: Optional[List[BaseRoute]] = None,
989 openapi_extra: Optional[Dict[str, Any]] = None,
990 generate_unique_id_function: Callable[[APIRoute], str] = Default(
991 generate_unique_id
992 ),
993 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
994 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
995 self.add_api_route( 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
996 path,
997 func,
998 response_model=response_model,
999 status_code=status_code,
1000 tags=tags,
1001 dependencies=dependencies,
1002 summary=summary,
1003 description=description,
1004 response_description=response_description,
1005 responses=responses,
1006 deprecated=deprecated,
1007 methods=methods,
1008 operation_id=operation_id,
1009 response_model_include=response_model_include,
1010 response_model_exclude=response_model_exclude,
1011 response_model_by_alias=response_model_by_alias,
1012 response_model_exclude_unset=response_model_exclude_unset,
1013 response_model_exclude_defaults=response_model_exclude_defaults,
1014 response_model_exclude_none=response_model_exclude_none,
1015 include_in_schema=include_in_schema,
1016 response_class=response_class,
1017 name=name,
1018 callbacks=callbacks,
1019 openapi_extra=openapi_extra,
1020 generate_unique_id_function=generate_unique_id_function,
1021 )
1022 return func 2e qc{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}b(cw ! x KcLc2 - ' ? G M k l ` 8c)c2c~b*cActbf rcacZ cbQbibob1bXc2b3b4bFbGb+cbccc,cy # z McNc3 . ( @ H N m n { 9c-c3cdc.cBcuba sc.bS | vbfblb5bYc6b7b8bHbIb/c/b:b:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b; E K g h ^ !c?c4c?b@cCcrbQ b tc@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b= F L i j _ #c`c5c`b{cDcsbR c ucec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgc}cA $ B ScTc4 / ) Sb~cTbycadIchcic[ I O o p ~ $cbd6cjccdEcBbW d vckc1 ebUbkbqb*b1c+b,b-bNbObddlcmcedC % D UcVc5 : * VbfdWbzcgdJcncoc] J P q r ab%chd7cpcidFcCbX
1024 return decorator 2e qc6f{bY bbPbhbnbXbWcYbZb0bDbEb'c|b}bvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ cbQbibob1bXc2b3b4bFbGb+cbcccQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS | vbfblb5bYc6b7b8bHbIb/c/b:b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc=cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbQ b tc9f@bT } ybgbmb9bZc!b#b$bJbKb[c[b]b`d{d|d}d~daebecedeeefegeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbR c uc!fec0 dbRbjbpb%b0c'b(b)bLbMb|cfcgcqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbycadIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbW d vc#fkc1 ebUbkbqb*b1c+b,b-bNbObddlcmcLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcgdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCbX
1026 def add_api_websocket_route( 1efabcd
1027 self,
1028 path: str,
1029 endpoint: Callable[..., Any],
1030 name: Optional[str] = None,
1031 *,
1032 dependencies: Optional[Sequence[params.Depends]] = None,
1033 ) -> None:
1034 current_dependencies = self.dependencies.copy() 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1035 if dependencies: 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1036 current_dependencies.extend(dependencies) 1efabcd
1038 route = APIWebSocketRoute( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1039 self.prefix + path,
1040 endpoint=endpoint,
1041 name=name,
1042 dependencies=current_dependencies,
1043 dependency_overrides_provider=self.dependency_overrides_provider,
1044 )
1045 self.routes.append(route) 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1047 def websocket( 1efabcd
1048 self,
1049 path: Annotated[
1050 str,
1051 Doc(
1052 """
1053 WebSocket path.
1054 """
1055 ),
1056 ],
1057 name: Annotated[
1058 Optional[str],
1059 Doc(
1060 """
1061 A name for the WebSocket. Only used internally.
1062 """
1063 ),
1064 ] = None,
1065 *,
1066 dependencies: Annotated[
1067 Optional[Sequence[params.Depends]],
1068 Doc(
1069 """
1070 A list of dependencies (using `Depends()`) to be used for this
1071 WebSocket.
1073 Read more about it in the
1074 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).
1075 """
1076 ),
1077 ] = None,
1078 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1079 """
1080 Decorate a WebSocket function.
1082 Read more about it in the
1083 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).
1085 **Example**
1087 ## Example
1089 ```python
1090 from fastapi import APIRouter, FastAPI, WebSocket
1092 app = FastAPI()
1093 router = APIRouter()
1095 @router.websocket("/ws")
1096 async def websocket_endpoint(websocket: WebSocket):
1097 await websocket.accept()
1098 while True:
1099 data = await websocket.receive_text()
1100 await websocket.send_text(f"Message text was: {data}")
1102 app.include_router(router)
1103 ```
1104 """
1106 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
1107 self.add_api_websocket_route( 1efabcd
1108 path, func, name=name, dependencies=dependencies
1109 )
1110 return func 1efabcd
1112 return decorator 1efabcd
1114 def websocket_route( 1efabcd
1115 self, path: str, name: Union[str, None] = None
1116 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1117 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd
1118 self.add_websocket_route(path, func, name=name) 1efabcd
1119 return func 1efabcd
1121 return decorator 1efabcd
1123 def include_router( 1efabcd
1124 self,
1125 router: Annotated["APIRouter", Doc("The `APIRouter` to include.")],
1126 *,
1127 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "",
1128 tags: Annotated[
1129 Optional[List[Union[str, Enum]]],
1130 Doc(
1131 """
1132 A list of tags to be applied to all the *path operations* in this
1133 router.
1135 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1137 Read more about it in the
1138 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1139 """
1140 ),
1141 ] = None,
1142 dependencies: Annotated[
1143 Optional[Sequence[params.Depends]],
1144 Doc(
1145 """
1146 A list of dependencies (using `Depends()`) to be applied to all the
1147 *path operations* in this router.
1149 Read more about it in the
1150 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
1151 """
1152 ),
1153 ] = None,
1154 default_response_class: Annotated[
1155 Type[Response],
1156 Doc(
1157 """
1158 The default response class to be used.
1160 Read more in the
1161 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).
1162 """
1163 ),
1164 ] = Default(JSONResponse),
1165 responses: Annotated[
1166 Optional[Dict[Union[int, str], Dict[str, Any]]],
1167 Doc(
1168 """
1169 Additional responses to be shown in OpenAPI.
1171 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1173 Read more about it in the
1174 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).
1176 And in the
1177 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
1178 """
1179 ),
1180 ] = None,
1181 callbacks: Annotated[
1182 Optional[List[BaseRoute]],
1183 Doc(
1184 """
1185 OpenAPI callbacks that should apply to all *path operations* in this
1186 router.
1188 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1190 Read more about it in the
1191 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
1192 """
1193 ),
1194 ] = None,
1195 deprecated: Annotated[
1196 Optional[bool],
1197 Doc(
1198 """
1199 Mark all *path operations* in this router as deprecated.
1201 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1203 Read more about it in the
1204 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1205 """
1206 ),
1207 ] = None,
1208 include_in_schema: Annotated[
1209 bool,
1210 Doc(
1211 """
1212 Include (or not) all the *path operations* in this router in the
1213 generated OpenAPI schema.
1215 This affects the generated OpenAPI (e.g. visible at `/docs`).
1216 """
1217 ),
1218 ] = True,
1219 generate_unique_id_function: Annotated[
1220 Callable[[APIRoute], str],
1221 Doc(
1222 """
1223 Customize the function used to generate unique IDs for the *path
1224 operations* shown in the generated OpenAPI.
1226 This is particularly useful when automatically generating clients or
1227 SDKs for your API.
1229 Read more about it in the
1230 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1231 """
1232 ),
1233 ] = Default(generate_unique_id),
1234 ) -> None:
1235 """
1236 Include another `APIRouter` in the same current `APIRouter`.
1238 Read more about it in the
1239 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/).
1241 ## Example
1243 ```python
1244 from fastapi import APIRouter, FastAPI
1246 app = FastAPI()
1247 internal_router = APIRouter()
1248 users_router = APIRouter()
1250 @users_router.get("/users/")
1251 def read_users():
1252 return [{"name": "Rick"}, {"name": "Morty"}]
1254 internal_router.include_router(users_router)
1255 app.include_router(internal_router)
1256 ```
1257 """
1258 if prefix: 2e Y y'XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z z'1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S A'5b6b7b8bHbIbaUbUE K cUg h if@fTfb T B'9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 C'%b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 D'*b+b,b-bNbObjUkUJ P lUq r lf^fWf
1259 assert prefix.startswith("/"), "A path prefix must start with '/'" 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1260 assert not prefix.endswith("/"), ( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1261 "A path prefix must not end with '/', as the routes will start with '/'"
1262 )
1263 else:
1264 for r in router.routes: 2e Y y'XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z z'1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S A'5b6b7b8bHbIbaUbUE K cUg h if@fTfb T B'9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 C'%b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 D'*b+b,b-bNbObjUkUJ P lUq r lf^fWf
1265 path = getattr(r, "path") # noqa: B009 2e Y y'XbYbZb0bDbEbk l ff?fSff Z z'1b2b3b4bFbGbm n gf5fhfa S A'5b6b7b8bHbIbg h if@fTfb T B'9b!b#b$bJbKbi j jf[fUfc 0 C'%b'b(b)bLbMbo p kf]fVfd 1 D'*b+b,b-bNbObq r lf^fWf
1266 name = getattr(r, "name", "unknown") 2e Y y'XbYbZb0bDbEbk l ff?fSff Z z'1b2b3b4bFbGbm n gf5fhfa S A'5b6b7b8bHbIbg h if@fTfb T B'9b!b#b$bJbKbi j jf[fUfc 0 C'%b'b(b)bLbMbo p kf]fVfd 1 D'*b+b,b-bNbObq r lf^fWf
1267 if path is not None and not path: 2e Y y'XbYbZb0bDbEbk l ff?fSff Z z'1b2b3b4bFbGbm n gf5fhfa S A'5b6b7b8bHbIbg h if@fTfb T B'9b!b#b$bJbKbi j jf[fUfc 0 C'%b'b(b)bLbMbo p kf]fVfd 1 D'*b+b,b-bNbObq r lf^fWf
1268 raise FastAPIError( 2y'z'A'B'C'D'
1269 f"Prefix and path cannot be both empty (path operation: {name})"
1270 )
1271 if responses is None: 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1272 responses = {} 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1273 for route in router.routes: 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1274 if isinstance(route, APIRoute): 2e Y XbYbZb0bDbEbk l ff?fSff Z 1b2b3b4bFbGbm n gf5fhfa S 5b6b7b8bHbIbg h if@fTfb T 9b!b#b$bJbKbi j jf[fUfc 0 %b'b(b)bLbMbo p kf]fVfd 1 *b+b,b-bNbObq r lf^fWf
1275 combined_responses = {**responses, **route.responses} 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1276 use_response_class = get_value_or_default( 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1277 route.response_class,
1278 router.default_response_class,
1279 default_response_class,
1280 self.default_response_class,
1281 )
1282 current_tags = [] 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1283 if tags: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1284 current_tags.extend(tags) 1efabcd
1285 if route.tags: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1286 current_tags.extend(route.tags) 1efabcd
1287 current_dependencies: List[params.Depends] = [] 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1288 if dependencies: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1289 current_dependencies.extend(dependencies) 1efabcd
1290 if route.dependencies: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1291 current_dependencies.extend(route.dependencies) 1efabcd
1292 current_callbacks = [] 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1293 if callbacks: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1294 current_callbacks.extend(callbacks) 1efabcd
1295 if route.callbacks: 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1296 current_callbacks.extend(route.callbacks) 1efabcd
1297 current_generate_unique_id = get_value_or_default( 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1298 route.generate_unique_id_function,
1299 router.generate_unique_id_function,
1300 generate_unique_id_function,
1301 self.generate_unique_id_function,
1302 )
1303 self.add_api_route( 2e Y XbYbZb0bDbEbk l f Z 1b2b3b4bFbGbm n a S 5b6b7b8bHbIbg h b T 9b!b#b$bJbKbi j c 0 %b'b(b)bLbMbo p d 1 *b+b,b-bNbObq r
1304 prefix + route.path,
1305 route.endpoint,
1306 response_model=route.response_model,
1307 status_code=route.status_code,
1308 tags=current_tags,
1309 dependencies=current_dependencies,
1310 summary=route.summary,
1311 description=route.description,
1312 response_description=route.response_description,
1313 responses=combined_responses,
1314 deprecated=route.deprecated or deprecated or self.deprecated,
1315 methods=route.methods,
1316 operation_id=route.operation_id,
1317 response_model_include=route.response_model_include,
1318 response_model_exclude=route.response_model_exclude,
1319 response_model_by_alias=route.response_model_by_alias,
1320 response_model_exclude_unset=route.response_model_exclude_unset,
1321 response_model_exclude_defaults=route.response_model_exclude_defaults,
1322 response_model_exclude_none=route.response_model_exclude_none,
1323 include_in_schema=route.include_in_schema
1324 and self.include_in_schema
1325 and include_in_schema,
1326 response_class=use_response_class,
1327 name=route.name,
1328 route_class_override=type(route),
1329 callbacks=current_callbacks,
1330 openapi_extra=route.openapi_extra,
1331 generate_unique_id_function=current_generate_unique_id,
1332 )
1333 elif isinstance(route, routing.Route): 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1334 methods = list(route.methods or []) 1efabcd
1335 self.add_route( 1efabcd
1336 prefix + route.path,
1337 route.endpoint,
1338 methods=methods,
1339 include_in_schema=route.include_in_schema,
1340 name=route.name,
1341 )
1342 elif isinstance(route, APIWebSocketRoute): 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1343 current_dependencies = [] 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1344 if dependencies: 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1345 current_dependencies.extend(dependencies) 1efabcd
1346 if route.dependencies: 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1347 current_dependencies.extend(route.dependencies) 1efabcd
1348 self.add_api_websocket_route( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1349 prefix + route.path,
1350 route.endpoint,
1351 dependencies=current_dependencies,
1352 name=route.name,
1353 )
1354 elif isinstance(route, routing.WebSocketRoute): 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1355 self.add_websocket_route( 2e ff?fSff gf5fhfa if@fTfb jf[fUfc kf]fVfd lf^fWf
1356 prefix + route.path, route.endpoint, name=route.name
1357 )
1358 for handler in router.on_startup: 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1359 self.add_event_handler("startup", handler) 1GHEFIJ
1360 for handler in router.on_shutdown: 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1361 self.add_event_handler("shutdown", handler) 1GHEFIJ
1362 self.lifespan_context = _merge_lifespan_context( 2e Y XbYbZb0bDbEb_T`TG M {Tk l ff?fSff Z 1b2b3b4bFbGb|T}TH N ~Tm n gf5fhfa S 5b6b7b8bHbIbaUbUE K cUg h if@fTfb T 9b!b#b$bJbKbdUeUF L fUi j jf[fUfc 0 %b'b(b)bLbMbgUhUI O iUo p kf]fVfd 1 *b+b,b-bNbObjUkUJ P lUq r lf^fWf
1363 self.lifespan_context,
1364 router.lifespan_context,
1365 )
1367 def get( 1efabcd
1368 self,
1369 path: Annotated[
1370 str,
1371 Doc(
1372 """
1373 The URL path to be used for this *path operation*.
1375 For example, in `http://example.com/items`, the path is `/items`.
1376 """
1377 ),
1378 ],
1379 *,
1380 response_model: Annotated[
1381 Any,
1382 Doc(
1383 """
1384 The type to use for the response.
1386 It could be any valid Pydantic *field* type. So, it doesn't have to
1387 be a Pydantic model, it could be other things, like a `list`, `dict`,
1388 etc.
1390 It will be used for:
1392 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
1393 show it as the response (JSON Schema).
1394 * Serialization: you could return an arbitrary object and the
1395 `response_model` would be used to serialize that object into the
1396 corresponding JSON.
1397 * Filtering: the JSON sent to the client will only contain the data
1398 (fields) defined in the `response_model`. If you returned an object
1399 that contains an attribute `password` but the `response_model` does
1400 not include that field, the JSON sent to the client would not have
1401 that `password`.
1402 * Validation: whatever you return will be serialized with the
1403 `response_model`, converting any data as necessary to generate the
1404 corresponding JSON. But if the data in the object returned is not
1405 valid, that would mean a violation of the contract with the client,
1406 so it's an error from the API developer. So, FastAPI will raise an
1407 error and return a 500 error code (Internal Server Error).
1409 Read more about it in the
1410 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
1411 """
1412 ),
1413 ] = Default(None),
1414 status_code: Annotated[
1415 Optional[int],
1416 Doc(
1417 """
1418 The default status code to be used for the response.
1420 You could override the status code by returning a response directly.
1422 Read more about it in the
1423 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
1424 """
1425 ),
1426 ] = None,
1427 tags: Annotated[
1428 Optional[List[Union[str, Enum]]],
1429 Doc(
1430 """
1431 A list of tags to be applied to the *path operation*.
1433 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1435 Read more about it in the
1436 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
1437 """
1438 ),
1439 ] = None,
1440 dependencies: Annotated[
1441 Optional[Sequence[params.Depends]],
1442 Doc(
1443 """
1444 A list of dependencies (using `Depends()`) to be applied to the
1445 *path operation*.
1447 Read more about it in the
1448 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
1449 """
1450 ),
1451 ] = None,
1452 summary: Annotated[
1453 Optional[str],
1454 Doc(
1455 """
1456 A summary for the *path operation*.
1458 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1460 Read more about it in the
1461 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1462 """
1463 ),
1464 ] = None,
1465 description: Annotated[
1466 Optional[str],
1467 Doc(
1468 """
1469 A description for the *path operation*.
1471 If not provided, it will be extracted automatically from the docstring
1472 of the *path operation function*.
1474 It can contain Markdown.
1476 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1478 Read more about it in the
1479 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1480 """
1481 ),
1482 ] = None,
1483 response_description: Annotated[
1484 str,
1485 Doc(
1486 """
1487 The description for the default response.
1489 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1490 """
1491 ),
1492 ] = "Successful Response",
1493 responses: Annotated[
1494 Optional[Dict[Union[int, str], Dict[str, Any]]],
1495 Doc(
1496 """
1497 Additional responses that could be returned by this *path operation*.
1499 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1500 """
1501 ),
1502 ] = None,
1503 deprecated: Annotated[
1504 Optional[bool],
1505 Doc(
1506 """
1507 Mark this *path operation* as deprecated.
1509 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1510 """
1511 ),
1512 ] = None,
1513 operation_id: Annotated[
1514 Optional[str],
1515 Doc(
1516 """
1517 Custom operation ID to be used by this *path operation*.
1519 By default, it is generated automatically.
1521 If you provide a custom operation ID, you need to make sure it is
1522 unique for the whole API.
1524 You can customize the
1525 operation ID generation with the parameter
1526 `generate_unique_id_function` in the `FastAPI` class.
1528 Read more about it in the
1529 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1530 """
1531 ),
1532 ] = None,
1533 response_model_include: Annotated[
1534 Optional[IncEx],
1535 Doc(
1536 """
1537 Configuration passed to Pydantic to include only certain fields in the
1538 response data.
1540 Read more about it in the
1541 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1542 """
1543 ),
1544 ] = None,
1545 response_model_exclude: Annotated[
1546 Optional[IncEx],
1547 Doc(
1548 """
1549 Configuration passed to Pydantic to exclude certain fields in the
1550 response data.
1552 Read more about it in the
1553 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1554 """
1555 ),
1556 ] = None,
1557 response_model_by_alias: Annotated[
1558 bool,
1559 Doc(
1560 """
1561 Configuration passed to Pydantic to define if the response model
1562 should be serialized by alias when an alias is used.
1564 Read more about it in the
1565 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1566 """
1567 ),
1568 ] = True,
1569 response_model_exclude_unset: Annotated[
1570 bool,
1571 Doc(
1572 """
1573 Configuration passed to Pydantic to define if the response data
1574 should have all the fields, including the ones that were not set and
1575 have their default values. This is different from
1576 `response_model_exclude_defaults` in that if the fields are set,
1577 they will be included in the response, even if the value is the same
1578 as the default.
1580 When `True`, default values are omitted from the response.
1582 Read more about it in the
1583 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1584 """
1585 ),
1586 ] = False,
1587 response_model_exclude_defaults: Annotated[
1588 bool,
1589 Doc(
1590 """
1591 Configuration passed to Pydantic to define if the response data
1592 should have all the fields, including the ones that have the same value
1593 as the default. This is different from `response_model_exclude_unset`
1594 in that if the fields are set but contain the same default values,
1595 they will be excluded from the response.
1597 When `True`, default values are omitted from the response.
1599 Read more about it in the
1600 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1601 """
1602 ),
1603 ] = False,
1604 response_model_exclude_none: Annotated[
1605 bool,
1606 Doc(
1607 """
1608 Configuration passed to Pydantic to define if the response data should
1609 exclude fields set to `None`.
1611 This is much simpler (less smart) than `response_model_exclude_unset`
1612 and `response_model_exclude_defaults`. You probably want to use one of
1613 those two instead of this one, as those allow returning `None` values
1614 when it makes sense.
1616 Read more about it in the
1617 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
1618 """
1619 ),
1620 ] = False,
1621 include_in_schema: Annotated[
1622 bool,
1623 Doc(
1624 """
1625 Include this *path operation* in the generated OpenAPI schema.
1627 This affects the generated OpenAPI (e.g. visible at `/docs`).
1629 Read more about it in the
1630 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
1631 """
1632 ),
1633 ] = True,
1634 response_class: Annotated[
1635 Type[Response],
1636 Doc(
1637 """
1638 Response class to be used for this *path operation*.
1640 This will not be used if you return a response directly.
1642 Read more about it in the
1643 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
1644 """
1645 ),
1646 ] = Default(JSONResponse),
1647 name: Annotated[
1648 Optional[str],
1649 Doc(
1650 """
1651 Name for this *path operation*. Only used internally.
1652 """
1653 ),
1654 ] = None,
1655 callbacks: Annotated[
1656 Optional[List[BaseRoute]],
1657 Doc(
1658 """
1659 List of *path operations* that will be used as OpenAPI callbacks.
1661 This is only for OpenAPI documentation, the callbacks won't be used
1662 directly.
1664 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1666 Read more about it in the
1667 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
1668 """
1669 ),
1670 ] = None,
1671 openapi_extra: Annotated[
1672 Optional[Dict[str, Any]],
1673 Doc(
1674 """
1675 Extra metadata to be included in the OpenAPI schema for this *path
1676 operation*.
1678 Read more about it in the
1679 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
1680 """
1681 ),
1682 ] = None,
1683 generate_unique_id_function: Annotated[
1684 Callable[[APIRoute], str],
1685 Doc(
1686 """
1687 Customize the function used to generate unique IDs for the *path
1688 operations* shown in the generated OpenAPI.
1690 This is particularly useful when automatically generating clients or
1691 SDKs for your API.
1693 Read more about it in the
1694 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1695 """
1696 ),
1697 ] = Default(generate_unique_id),
1698 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
1699 """
1700 Add a *path operation* using an HTTP GET operation.
1702 ## Example
1704 ```python
1705 from fastapi import APIRouter, FastAPI
1707 app = FastAPI()
1708 router = APIRouter()
1710 @router.get("/items/")
1711 def read_items():
1712 return [{"name": "Empanada"}, {"name": "Arepa"}]
1714 app.include_router(router)
1715 ```
1716 """
1717 return self.api_route( 2e qc6f{bY hbnb|b}bvdwdxdydzdAdBdCdDdEdFdw ! x KcLc2 6ejdmfkdnf? G M k l ` 8c)c2c~b7e*cActbf rc7facZ ibobbcccQdRdSdTdUdVdWdXdYdZd0dy # z McNc3 8eldofmdpf@ H N m n { 9c-c3cdc9e.cBcuba sc8f.bS fblb/b:b#d$d%d'd(d)d*d+d,d-d.ds 6 t OcPcU =cGc;b=b!endqfodrf; E K g h ^ !c?c4c?b#e$e@cCcrbb tc9f@bT gbmb[b]b`d{d|d}d~daebecedeeefeu 7 v QcRcV _cHc^b_b%epdsfqdtf= F L i j _ #c`c5c`b'e(e{cDcsbc uc!fec0 jbpbfcgcqereseteuevewexeyezeAeA $ B ScTc4 adIchcic)erdufsdvf[ I O o p ~ $cbd6cjc*e+ecdEcBbd vc#fkc1 kbqblcmcLeMeNeOePeQeReSeTeUeVeC % D UcVc5 gdJcncoc,etdwfudxf] J P q r ab%chd7cpc-e.eidFcCb
1718 path=path,
1719 response_model=response_model,
1720 status_code=status_code,
1721 tags=tags,
1722 dependencies=dependencies,
1723 summary=summary,
1724 description=description,
1725 response_description=response_description,
1726 responses=responses,
1727 deprecated=deprecated,
1728 methods=["GET"],
1729 operation_id=operation_id,
1730 response_model_include=response_model_include,
1731 response_model_exclude=response_model_exclude,
1732 response_model_by_alias=response_model_by_alias,
1733 response_model_exclude_unset=response_model_exclude_unset,
1734 response_model_exclude_defaults=response_model_exclude_defaults,
1735 response_model_exclude_none=response_model_exclude_none,
1736 include_in_schema=include_in_schema,
1737 response_class=response_class,
1738 name=name,
1739 callbacks=callbacks,
1740 openapi_extra=openapi_extra,
1741 generate_unique_id_function=generate_unique_id_function,
1742 )
1744 def put( 1efabcd
1745 self,
1746 path: Annotated[
1747 str,
1748 Doc(
1749 """
1750 The URL path to be used for this *path operation*.
1752 For example, in `http://example.com/items`, the path is `/items`.
1753 """
1754 ),
1755 ],
1756 *,
1757 response_model: Annotated[
1758 Any,
1759 Doc(
1760 """
1761 The type to use for the response.
1763 It could be any valid Pydantic *field* type. So, it doesn't have to
1764 be a Pydantic model, it could be other things, like a `list`, `dict`,
1765 etc.
1767 It will be used for:
1769 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
1770 show it as the response (JSON Schema).
1771 * Serialization: you could return an arbitrary object and the
1772 `response_model` would be used to serialize that object into the
1773 corresponding JSON.
1774 * Filtering: the JSON sent to the client will only contain the data
1775 (fields) defined in the `response_model`. If you returned an object
1776 that contains an attribute `password` but the `response_model` does
1777 not include that field, the JSON sent to the client would not have
1778 that `password`.
1779 * Validation: whatever you return will be serialized with the
1780 `response_model`, converting any data as necessary to generate the
1781 corresponding JSON. But if the data in the object returned is not
1782 valid, that would mean a violation of the contract with the client,
1783 so it's an error from the API developer. So, FastAPI will raise an
1784 error and return a 500 error code (Internal Server Error).
1786 Read more about it in the
1787 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
1788 """
1789 ),
1790 ] = Default(None),
1791 status_code: Annotated[
1792 Optional[int],
1793 Doc(
1794 """
1795 The default status code to be used for the response.
1797 You could override the status code by returning a response directly.
1799 Read more about it in the
1800 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
1801 """
1802 ),
1803 ] = None,
1804 tags: Annotated[
1805 Optional[List[Union[str, Enum]]],
1806 Doc(
1807 """
1808 A list of tags to be applied to the *path operation*.
1810 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1812 Read more about it in the
1813 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
1814 """
1815 ),
1816 ] = None,
1817 dependencies: Annotated[
1818 Optional[Sequence[params.Depends]],
1819 Doc(
1820 """
1821 A list of dependencies (using `Depends()`) to be applied to the
1822 *path operation*.
1824 Read more about it in the
1825 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
1826 """
1827 ),
1828 ] = None,
1829 summary: Annotated[
1830 Optional[str],
1831 Doc(
1832 """
1833 A summary for the *path operation*.
1835 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1837 Read more about it in the
1838 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1839 """
1840 ),
1841 ] = None,
1842 description: Annotated[
1843 Optional[str],
1844 Doc(
1845 """
1846 A description for the *path operation*.
1848 If not provided, it will be extracted automatically from the docstring
1849 of the *path operation function*.
1851 It can contain Markdown.
1853 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1855 Read more about it in the
1856 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
1857 """
1858 ),
1859 ] = None,
1860 response_description: Annotated[
1861 str,
1862 Doc(
1863 """
1864 The description for the default response.
1866 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1867 """
1868 ),
1869 ] = "Successful Response",
1870 responses: Annotated[
1871 Optional[Dict[Union[int, str], Dict[str, Any]]],
1872 Doc(
1873 """
1874 Additional responses that could be returned by this *path operation*.
1876 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1877 """
1878 ),
1879 ] = None,
1880 deprecated: Annotated[
1881 Optional[bool],
1882 Doc(
1883 """
1884 Mark this *path operation* as deprecated.
1886 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
1887 """
1888 ),
1889 ] = None,
1890 operation_id: Annotated[
1891 Optional[str],
1892 Doc(
1893 """
1894 Custom operation ID to be used by this *path operation*.
1896 By default, it is generated automatically.
1898 If you provide a custom operation ID, you need to make sure it is
1899 unique for the whole API.
1901 You can customize the
1902 operation ID generation with the parameter
1903 `generate_unique_id_function` in the `FastAPI` class.
1905 Read more about it in the
1906 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
1907 """
1908 ),
1909 ] = None,
1910 response_model_include: Annotated[
1911 Optional[IncEx],
1912 Doc(
1913 """
1914 Configuration passed to Pydantic to include only certain fields in the
1915 response data.
1917 Read more about it in the
1918 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1919 """
1920 ),
1921 ] = None,
1922 response_model_exclude: Annotated[
1923 Optional[IncEx],
1924 Doc(
1925 """
1926 Configuration passed to Pydantic to exclude certain fields in the
1927 response data.
1929 Read more about it in the
1930 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1931 """
1932 ),
1933 ] = None,
1934 response_model_by_alias: Annotated[
1935 bool,
1936 Doc(
1937 """
1938 Configuration passed to Pydantic to define if the response model
1939 should be serialized by alias when an alias is used.
1941 Read more about it in the
1942 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
1943 """
1944 ),
1945 ] = True,
1946 response_model_exclude_unset: Annotated[
1947 bool,
1948 Doc(
1949 """
1950 Configuration passed to Pydantic to define if the response data
1951 should have all the fields, including the ones that were not set and
1952 have their default values. This is different from
1953 `response_model_exclude_defaults` in that if the fields are set,
1954 they will be included in the response, even if the value is the same
1955 as the default.
1957 When `True`, default values are omitted from the response.
1959 Read more about it in the
1960 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1961 """
1962 ),
1963 ] = False,
1964 response_model_exclude_defaults: Annotated[
1965 bool,
1966 Doc(
1967 """
1968 Configuration passed to Pydantic to define if the response data
1969 should have all the fields, including the ones that have the same value
1970 as the default. This is different from `response_model_exclude_unset`
1971 in that if the fields are set but contain the same default values,
1972 they will be excluded from the response.
1974 When `True`, default values are omitted from the response.
1976 Read more about it in the
1977 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
1978 """
1979 ),
1980 ] = False,
1981 response_model_exclude_none: Annotated[
1982 bool,
1983 Doc(
1984 """
1985 Configuration passed to Pydantic to define if the response data should
1986 exclude fields set to `None`.
1988 This is much simpler (less smart) than `response_model_exclude_unset`
1989 and `response_model_exclude_defaults`. You probably want to use one of
1990 those two instead of this one, as those allow returning `None` values
1991 when it makes sense.
1993 Read more about it in the
1994 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
1995 """
1996 ),
1997 ] = False,
1998 include_in_schema: Annotated[
1999 bool,
2000 Doc(
2001 """
2002 Include this *path operation* in the generated OpenAPI schema.
2004 This affects the generated OpenAPI (e.g. visible at `/docs`).
2006 Read more about it in the
2007 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2008 """
2009 ),
2010 ] = True,
2011 response_class: Annotated[
2012 Type[Response],
2013 Doc(
2014 """
2015 Response class to be used for this *path operation*.
2017 This will not be used if you return a response directly.
2019 Read more about it in the
2020 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2021 """
2022 ),
2023 ] = Default(JSONResponse),
2024 name: Annotated[
2025 Optional[str],
2026 Doc(
2027 """
2028 Name for this *path operation*. Only used internally.
2029 """
2030 ),
2031 ] = None,
2032 callbacks: Annotated[
2033 Optional[List[BaseRoute]],
2034 Doc(
2035 """
2036 List of *path operations* that will be used as OpenAPI callbacks.
2038 This is only for OpenAPI documentation, the callbacks won't be used
2039 directly.
2041 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2043 Read more about it in the
2044 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2045 """
2046 ),
2047 ] = None,
2048 openapi_extra: Annotated[
2049 Optional[Dict[str, Any]],
2050 Doc(
2051 """
2052 Extra metadata to be included in the OpenAPI schema for this *path
2053 operation*.
2055 Read more about it in the
2056 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2057 """
2058 ),
2059 ] = None,
2060 generate_unique_id_function: Annotated[
2061 Callable[[APIRoute], str],
2062 Doc(
2063 """
2064 Customize the function used to generate unique IDs for the *path
2065 operations* shown in the generated OpenAPI.
2067 This is particularly useful when automatically generating clients or
2068 SDKs for your API.
2070 Read more about it in the
2071 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2072 """
2073 ),
2074 ] = Default(generate_unique_id),
2075 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2076 """
2077 Add a *path operation* using an HTTP PUT operation.
2079 ## Example
2081 ```python
2082 from fastapi import APIRouter, FastAPI
2083 from pydantic import BaseModel
2085 class Item(BaseModel):
2086 name: str
2087 description: str | None = None
2089 app = FastAPI()
2090 router = APIRouter()
2092 @router.put("/items/{item_id}")
2093 def replace_item(item_id: str, item: Item):
2094 return {"message": "Item replaced", "id": item_id}
2096 app.include_router(router)
2097 ```
2098 """
2099 return self.api_route( 1efabcd
2100 path=path,
2101 response_model=response_model,
2102 status_code=status_code,
2103 tags=tags,
2104 dependencies=dependencies,
2105 summary=summary,
2106 description=description,
2107 response_description=response_description,
2108 responses=responses,
2109 deprecated=deprecated,
2110 methods=["PUT"],
2111 operation_id=operation_id,
2112 response_model_include=response_model_include,
2113 response_model_exclude=response_model_exclude,
2114 response_model_by_alias=response_model_by_alias,
2115 response_model_exclude_unset=response_model_exclude_unset,
2116 response_model_exclude_defaults=response_model_exclude_defaults,
2117 response_model_exclude_none=response_model_exclude_none,
2118 include_in_schema=include_in_schema,
2119 response_class=response_class,
2120 name=name,
2121 callbacks=callbacks,
2122 openapi_extra=openapi_extra,
2123 generate_unique_id_function=generate_unique_id_function,
2124 )
2126 def post( 1efabcd
2127 self,
2128 path: Annotated[
2129 str,
2130 Doc(
2131 """
2132 The URL path to be used for this *path operation*.
2134 For example, in `http://example.com/items`, the path is `/items`.
2135 """
2136 ),
2137 ],
2138 *,
2139 response_model: Annotated[
2140 Any,
2141 Doc(
2142 """
2143 The type to use for the response.
2145 It could be any valid Pydantic *field* type. So, it doesn't have to
2146 be a Pydantic model, it could be other things, like a `list`, `dict`,
2147 etc.
2149 It will be used for:
2151 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2152 show it as the response (JSON Schema).
2153 * Serialization: you could return an arbitrary object and the
2154 `response_model` would be used to serialize that object into the
2155 corresponding JSON.
2156 * Filtering: the JSON sent to the client will only contain the data
2157 (fields) defined in the `response_model`. If you returned an object
2158 that contains an attribute `password` but the `response_model` does
2159 not include that field, the JSON sent to the client would not have
2160 that `password`.
2161 * Validation: whatever you return will be serialized with the
2162 `response_model`, converting any data as necessary to generate the
2163 corresponding JSON. But if the data in the object returned is not
2164 valid, that would mean a violation of the contract with the client,
2165 so it's an error from the API developer. So, FastAPI will raise an
2166 error and return a 500 error code (Internal Server Error).
2168 Read more about it in the
2169 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2170 """
2171 ),
2172 ] = Default(None),
2173 status_code: Annotated[
2174 Optional[int],
2175 Doc(
2176 """
2177 The default status code to be used for the response.
2179 You could override the status code by returning a response directly.
2181 Read more about it in the
2182 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2183 """
2184 ),
2185 ] = None,
2186 tags: Annotated[
2187 Optional[List[Union[str, Enum]]],
2188 Doc(
2189 """
2190 A list of tags to be applied to the *path operation*.
2192 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2194 Read more about it in the
2195 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2196 """
2197 ),
2198 ] = None,
2199 dependencies: Annotated[
2200 Optional[Sequence[params.Depends]],
2201 Doc(
2202 """
2203 A list of dependencies (using `Depends()`) to be applied to the
2204 *path operation*.
2206 Read more about it in the
2207 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2208 """
2209 ),
2210 ] = None,
2211 summary: Annotated[
2212 Optional[str],
2213 Doc(
2214 """
2215 A summary for the *path operation*.
2217 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2219 Read more about it in the
2220 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2221 """
2222 ),
2223 ] = None,
2224 description: Annotated[
2225 Optional[str],
2226 Doc(
2227 """
2228 A description for the *path operation*.
2230 If not provided, it will be extracted automatically from the docstring
2231 of the *path operation function*.
2233 It can contain Markdown.
2235 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2237 Read more about it in the
2238 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2239 """
2240 ),
2241 ] = None,
2242 response_description: Annotated[
2243 str,
2244 Doc(
2245 """
2246 The description for the default response.
2248 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2249 """
2250 ),
2251 ] = "Successful Response",
2252 responses: Annotated[
2253 Optional[Dict[Union[int, str], Dict[str, Any]]],
2254 Doc(
2255 """
2256 Additional responses that could be returned by this *path operation*.
2258 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2259 """
2260 ),
2261 ] = None,
2262 deprecated: Annotated[
2263 Optional[bool],
2264 Doc(
2265 """
2266 Mark this *path operation* as deprecated.
2268 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2269 """
2270 ),
2271 ] = None,
2272 operation_id: Annotated[
2273 Optional[str],
2274 Doc(
2275 """
2276 Custom operation ID to be used by this *path operation*.
2278 By default, it is generated automatically.
2280 If you provide a custom operation ID, you need to make sure it is
2281 unique for the whole API.
2283 You can customize the
2284 operation ID generation with the parameter
2285 `generate_unique_id_function` in the `FastAPI` class.
2287 Read more about it in the
2288 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2289 """
2290 ),
2291 ] = None,
2292 response_model_include: Annotated[
2293 Optional[IncEx],
2294 Doc(
2295 """
2296 Configuration passed to Pydantic to include only certain fields in the
2297 response data.
2299 Read more about it in the
2300 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2301 """
2302 ),
2303 ] = None,
2304 response_model_exclude: Annotated[
2305 Optional[IncEx],
2306 Doc(
2307 """
2308 Configuration passed to Pydantic to exclude certain fields in the
2309 response data.
2311 Read more about it in the
2312 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2313 """
2314 ),
2315 ] = None,
2316 response_model_by_alias: Annotated[
2317 bool,
2318 Doc(
2319 """
2320 Configuration passed to Pydantic to define if the response model
2321 should be serialized by alias when an alias is used.
2323 Read more about it in the
2324 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2325 """
2326 ),
2327 ] = True,
2328 response_model_exclude_unset: Annotated[
2329 bool,
2330 Doc(
2331 """
2332 Configuration passed to Pydantic to define if the response data
2333 should have all the fields, including the ones that were not set and
2334 have their default values. This is different from
2335 `response_model_exclude_defaults` in that if the fields are set,
2336 they will be included in the response, even if the value is the same
2337 as the default.
2339 When `True`, default values are omitted from the response.
2341 Read more about it in the
2342 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2343 """
2344 ),
2345 ] = False,
2346 response_model_exclude_defaults: Annotated[
2347 bool,
2348 Doc(
2349 """
2350 Configuration passed to Pydantic to define if the response data
2351 should have all the fields, including the ones that have the same value
2352 as the default. This is different from `response_model_exclude_unset`
2353 in that if the fields are set but contain the same default values,
2354 they will be excluded from the response.
2356 When `True`, default values are omitted from the response.
2358 Read more about it in the
2359 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2360 """
2361 ),
2362 ] = False,
2363 response_model_exclude_none: Annotated[
2364 bool,
2365 Doc(
2366 """
2367 Configuration passed to Pydantic to define if the response data should
2368 exclude fields set to `None`.
2370 This is much simpler (less smart) than `response_model_exclude_unset`
2371 and `response_model_exclude_defaults`. You probably want to use one of
2372 those two instead of this one, as those allow returning `None` values
2373 when it makes sense.
2375 Read more about it in the
2376 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
2377 """
2378 ),
2379 ] = False,
2380 include_in_schema: Annotated[
2381 bool,
2382 Doc(
2383 """
2384 Include this *path operation* in the generated OpenAPI schema.
2386 This affects the generated OpenAPI (e.g. visible at `/docs`).
2388 Read more about it in the
2389 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2390 """
2391 ),
2392 ] = True,
2393 response_class: Annotated[
2394 Type[Response],
2395 Doc(
2396 """
2397 Response class to be used for this *path operation*.
2399 This will not be used if you return a response directly.
2401 Read more about it in the
2402 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2403 """
2404 ),
2405 ] = Default(JSONResponse),
2406 name: Annotated[
2407 Optional[str],
2408 Doc(
2409 """
2410 Name for this *path operation*. Only used internally.
2411 """
2412 ),
2413 ] = None,
2414 callbacks: Annotated[
2415 Optional[List[BaseRoute]],
2416 Doc(
2417 """
2418 List of *path operations* that will be used as OpenAPI callbacks.
2420 This is only for OpenAPI documentation, the callbacks won't be used
2421 directly.
2423 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2425 Read more about it in the
2426 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2427 """
2428 ),
2429 ] = None,
2430 openapi_extra: Annotated[
2431 Optional[Dict[str, Any]],
2432 Doc(
2433 """
2434 Extra metadata to be included in the OpenAPI schema for this *path
2435 operation*.
2437 Read more about it in the
2438 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2439 """
2440 ),
2441 ] = None,
2442 generate_unique_id_function: Annotated[
2443 Callable[[APIRoute], str],
2444 Doc(
2445 """
2446 Customize the function used to generate unique IDs for the *path
2447 operations* shown in the generated OpenAPI.
2449 This is particularly useful when automatically generating clients or
2450 SDKs for your API.
2452 Read more about it in the
2453 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2454 """
2455 ),
2456 ] = Default(generate_unique_id),
2457 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2458 """
2459 Add a *path operation* using an HTTP POST operation.
2461 ## Example
2463 ```python
2464 from fastapi import APIRouter, FastAPI
2465 from pydantic import BaseModel
2467 class Item(BaseModel):
2468 name: str
2469 description: str | None = None
2471 app = FastAPI()
2472 router = APIRouter()
2474 @router.post("/items/")
2475 def create_item(item: Item):
2476 return {"message": "Item created"}
2478 app.include_router(router)
2479 ```
2480 """
2481 return self.api_route( 2e bbPbXbWcYbZb0bDbEb'cGdHdIdJdKdLdMdNdOdPd(cw ! x KcLc2 - ' ` 8cf cbQb1bXc2b3b4bFbGb+c1d2d3d4d5d6d7d8d9d!d,cy # z McNc3 . ( { 9ca | vb5bYc6b7b8bHbIb/c/d:d;d=d?d@d[d]d^d_d:cs 6 t OcPcU + 8 wb;cxbwc^ !cQ b } yb9bZc!b#b$bJbKb[cgeheiejekelemeneoepe]cu 7 v QcRcV , 9 zb^cAbxc_ #cR c dbRb%b0c'b(b)bLbMb|cBeCeDeEeFeGeHeIeJeKe}cA $ B ScTc4 / ) Sb~cTbyc~ $cW d ebUb*b1c+b,b-bNbObddWeXeYeZe0e1e2e3e4e5eedC % D UcVc5 : * VbfdWbzcab%cX
2482 path=path,
2483 response_model=response_model,
2484 status_code=status_code,
2485 tags=tags,
2486 dependencies=dependencies,
2487 summary=summary,
2488 description=description,
2489 response_description=response_description,
2490 responses=responses,
2491 deprecated=deprecated,
2492 methods=["POST"],
2493 operation_id=operation_id,
2494 response_model_include=response_model_include,
2495 response_model_exclude=response_model_exclude,
2496 response_model_by_alias=response_model_by_alias,
2497 response_model_exclude_unset=response_model_exclude_unset,
2498 response_model_exclude_defaults=response_model_exclude_defaults,
2499 response_model_exclude_none=response_model_exclude_none,
2500 include_in_schema=include_in_schema,
2501 response_class=response_class,
2502 name=name,
2503 callbacks=callbacks,
2504 openapi_extra=openapi_extra,
2505 generate_unique_id_function=generate_unique_id_function,
2506 )
2508 def delete( 1efabcd
2509 self,
2510 path: Annotated[
2511 str,
2512 Doc(
2513 """
2514 The URL path to be used for this *path operation*.
2516 For example, in `http://example.com/items`, the path is `/items`.
2517 """
2518 ),
2519 ],
2520 *,
2521 response_model: Annotated[
2522 Any,
2523 Doc(
2524 """
2525 The type to use for the response.
2527 It could be any valid Pydantic *field* type. So, it doesn't have to
2528 be a Pydantic model, it could be other things, like a `list`, `dict`,
2529 etc.
2531 It will be used for:
2533 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2534 show it as the response (JSON Schema).
2535 * Serialization: you could return an arbitrary object and the
2536 `response_model` would be used to serialize that object into the
2537 corresponding JSON.
2538 * Filtering: the JSON sent to the client will only contain the data
2539 (fields) defined in the `response_model`. If you returned an object
2540 that contains an attribute `password` but the `response_model` does
2541 not include that field, the JSON sent to the client would not have
2542 that `password`.
2543 * Validation: whatever you return will be serialized with the
2544 `response_model`, converting any data as necessary to generate the
2545 corresponding JSON. But if the data in the object returned is not
2546 valid, that would mean a violation of the contract with the client,
2547 so it's an error from the API developer. So, FastAPI will raise an
2548 error and return a 500 error code (Internal Server Error).
2550 Read more about it in the
2551 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2552 """
2553 ),
2554 ] = Default(None),
2555 status_code: Annotated[
2556 Optional[int],
2557 Doc(
2558 """
2559 The default status code to be used for the response.
2561 You could override the status code by returning a response directly.
2563 Read more about it in the
2564 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2565 """
2566 ),
2567 ] = None,
2568 tags: Annotated[
2569 Optional[List[Union[str, Enum]]],
2570 Doc(
2571 """
2572 A list of tags to be applied to the *path operation*.
2574 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2576 Read more about it in the
2577 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2578 """
2579 ),
2580 ] = None,
2581 dependencies: Annotated[
2582 Optional[Sequence[params.Depends]],
2583 Doc(
2584 """
2585 A list of dependencies (using `Depends()`) to be applied to the
2586 *path operation*.
2588 Read more about it in the
2589 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2590 """
2591 ),
2592 ] = None,
2593 summary: Annotated[
2594 Optional[str],
2595 Doc(
2596 """
2597 A summary for the *path operation*.
2599 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2601 Read more about it in the
2602 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2603 """
2604 ),
2605 ] = None,
2606 description: Annotated[
2607 Optional[str],
2608 Doc(
2609 """
2610 A description for the *path operation*.
2612 If not provided, it will be extracted automatically from the docstring
2613 of the *path operation function*.
2615 It can contain Markdown.
2617 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2619 Read more about it in the
2620 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2621 """
2622 ),
2623 ] = None,
2624 response_description: Annotated[
2625 str,
2626 Doc(
2627 """
2628 The description for the default response.
2630 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2631 """
2632 ),
2633 ] = "Successful Response",
2634 responses: Annotated[
2635 Optional[Dict[Union[int, str], Dict[str, Any]]],
2636 Doc(
2637 """
2638 Additional responses that could be returned by this *path operation*.
2640 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2641 """
2642 ),
2643 ] = None,
2644 deprecated: Annotated[
2645 Optional[bool],
2646 Doc(
2647 """
2648 Mark this *path operation* as deprecated.
2650 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2651 """
2652 ),
2653 ] = None,
2654 operation_id: Annotated[
2655 Optional[str],
2656 Doc(
2657 """
2658 Custom operation ID to be used by this *path operation*.
2660 By default, it is generated automatically.
2662 If you provide a custom operation ID, you need to make sure it is
2663 unique for the whole API.
2665 You can customize the
2666 operation ID generation with the parameter
2667 `generate_unique_id_function` in the `FastAPI` class.
2669 Read more about it in the
2670 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2671 """
2672 ),
2673 ] = None,
2674 response_model_include: Annotated[
2675 Optional[IncEx],
2676 Doc(
2677 """
2678 Configuration passed to Pydantic to include only certain fields in the
2679 response data.
2681 Read more about it in the
2682 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2683 """
2684 ),
2685 ] = None,
2686 response_model_exclude: Annotated[
2687 Optional[IncEx],
2688 Doc(
2689 """
2690 Configuration passed to Pydantic to exclude certain fields in the
2691 response data.
2693 Read more about it in the
2694 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2695 """
2696 ),
2697 ] = None,
2698 response_model_by_alias: Annotated[
2699 bool,
2700 Doc(
2701 """
2702 Configuration passed to Pydantic to define if the response model
2703 should be serialized by alias when an alias is used.
2705 Read more about it in the
2706 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
2707 """
2708 ),
2709 ] = True,
2710 response_model_exclude_unset: Annotated[
2711 bool,
2712 Doc(
2713 """
2714 Configuration passed to Pydantic to define if the response data
2715 should have all the fields, including the ones that were not set and
2716 have their default values. This is different from
2717 `response_model_exclude_defaults` in that if the fields are set,
2718 they will be included in the response, even if the value is the same
2719 as the default.
2721 When `True`, default values are omitted from the response.
2723 Read more about it in the
2724 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2725 """
2726 ),
2727 ] = False,
2728 response_model_exclude_defaults: Annotated[
2729 bool,
2730 Doc(
2731 """
2732 Configuration passed to Pydantic to define if the response data
2733 should have all the fields, including the ones that have the same value
2734 as the default. This is different from `response_model_exclude_unset`
2735 in that if the fields are set but contain the same default values,
2736 they will be excluded from the response.
2738 When `True`, default values are omitted from the response.
2740 Read more about it in the
2741 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
2742 """
2743 ),
2744 ] = False,
2745 response_model_exclude_none: Annotated[
2746 bool,
2747 Doc(
2748 """
2749 Configuration passed to Pydantic to define if the response data should
2750 exclude fields set to `None`.
2752 This is much simpler (less smart) than `response_model_exclude_unset`
2753 and `response_model_exclude_defaults`. You probably want to use one of
2754 those two instead of this one, as those allow returning `None` values
2755 when it makes sense.
2757 Read more about it in the
2758 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
2759 """
2760 ),
2761 ] = False,
2762 include_in_schema: Annotated[
2763 bool,
2764 Doc(
2765 """
2766 Include this *path operation* in the generated OpenAPI schema.
2768 This affects the generated OpenAPI (e.g. visible at `/docs`).
2770 Read more about it in the
2771 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
2772 """
2773 ),
2774 ] = True,
2775 response_class: Annotated[
2776 Type[Response],
2777 Doc(
2778 """
2779 Response class to be used for this *path operation*.
2781 This will not be used if you return a response directly.
2783 Read more about it in the
2784 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
2785 """
2786 ),
2787 ] = Default(JSONResponse),
2788 name: Annotated[
2789 Optional[str],
2790 Doc(
2791 """
2792 Name for this *path operation*. Only used internally.
2793 """
2794 ),
2795 ] = None,
2796 callbacks: Annotated[
2797 Optional[List[BaseRoute]],
2798 Doc(
2799 """
2800 List of *path operations* that will be used as OpenAPI callbacks.
2802 This is only for OpenAPI documentation, the callbacks won't be used
2803 directly.
2805 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2807 Read more about it in the
2808 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
2809 """
2810 ),
2811 ] = None,
2812 openapi_extra: Annotated[
2813 Optional[Dict[str, Any]],
2814 Doc(
2815 """
2816 Extra metadata to be included in the OpenAPI schema for this *path
2817 operation*.
2819 Read more about it in the
2820 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
2821 """
2822 ),
2823 ] = None,
2824 generate_unique_id_function: Annotated[
2825 Callable[[APIRoute], str],
2826 Doc(
2827 """
2828 Customize the function used to generate unique IDs for the *path
2829 operations* shown in the generated OpenAPI.
2831 This is particularly useful when automatically generating clients or
2832 SDKs for your API.
2834 Read more about it in the
2835 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
2836 """
2837 ),
2838 ] = Default(generate_unique_id),
2839 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
2840 """
2841 Add a *path operation* using an HTTP DELETE operation.
2843 ## Example
2845 ```python
2846 from fastapi import APIRouter, FastAPI
2848 app = FastAPI()
2849 router = APIRouter()
2851 @router.delete("/items/{item_id}")
2852 def delete_item(item_id: str):
2853 return {"message": "Item deleted"}
2855 app.include_router(router)
2856 ```
2857 """
2858 return self.api_route( 1efabcd
2859 path=path,
2860 response_model=response_model,
2861 status_code=status_code,
2862 tags=tags,
2863 dependencies=dependencies,
2864 summary=summary,
2865 description=description,
2866 response_description=response_description,
2867 responses=responses,
2868 deprecated=deprecated,
2869 methods=["DELETE"],
2870 operation_id=operation_id,
2871 response_model_include=response_model_include,
2872 response_model_exclude=response_model_exclude,
2873 response_model_by_alias=response_model_by_alias,
2874 response_model_exclude_unset=response_model_exclude_unset,
2875 response_model_exclude_defaults=response_model_exclude_defaults,
2876 response_model_exclude_none=response_model_exclude_none,
2877 include_in_schema=include_in_schema,
2878 response_class=response_class,
2879 name=name,
2880 callbacks=callbacks,
2881 openapi_extra=openapi_extra,
2882 generate_unique_id_function=generate_unique_id_function,
2883 )
2885 def options( 1efabcd
2886 self,
2887 path: Annotated[
2888 str,
2889 Doc(
2890 """
2891 The URL path to be used for this *path operation*.
2893 For example, in `http://example.com/items`, the path is `/items`.
2894 """
2895 ),
2896 ],
2897 *,
2898 response_model: Annotated[
2899 Any,
2900 Doc(
2901 """
2902 The type to use for the response.
2904 It could be any valid Pydantic *field* type. So, it doesn't have to
2905 be a Pydantic model, it could be other things, like a `list`, `dict`,
2906 etc.
2908 It will be used for:
2910 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
2911 show it as the response (JSON Schema).
2912 * Serialization: you could return an arbitrary object and the
2913 `response_model` would be used to serialize that object into the
2914 corresponding JSON.
2915 * Filtering: the JSON sent to the client will only contain the data
2916 (fields) defined in the `response_model`. If you returned an object
2917 that contains an attribute `password` but the `response_model` does
2918 not include that field, the JSON sent to the client would not have
2919 that `password`.
2920 * Validation: whatever you return will be serialized with the
2921 `response_model`, converting any data as necessary to generate the
2922 corresponding JSON. But if the data in the object returned is not
2923 valid, that would mean a violation of the contract with the client,
2924 so it's an error from the API developer. So, FastAPI will raise an
2925 error and return a 500 error code (Internal Server Error).
2927 Read more about it in the
2928 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
2929 """
2930 ),
2931 ] = Default(None),
2932 status_code: Annotated[
2933 Optional[int],
2934 Doc(
2935 """
2936 The default status code to be used for the response.
2938 You could override the status code by returning a response directly.
2940 Read more about it in the
2941 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
2942 """
2943 ),
2944 ] = None,
2945 tags: Annotated[
2946 Optional[List[Union[str, Enum]]],
2947 Doc(
2948 """
2949 A list of tags to be applied to the *path operation*.
2951 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2953 Read more about it in the
2954 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
2955 """
2956 ),
2957 ] = None,
2958 dependencies: Annotated[
2959 Optional[Sequence[params.Depends]],
2960 Doc(
2961 """
2962 A list of dependencies (using `Depends()`) to be applied to the
2963 *path operation*.
2965 Read more about it in the
2966 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
2967 """
2968 ),
2969 ] = None,
2970 summary: Annotated[
2971 Optional[str],
2972 Doc(
2973 """
2974 A summary for the *path operation*.
2976 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2978 Read more about it in the
2979 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2980 """
2981 ),
2982 ] = None,
2983 description: Annotated[
2984 Optional[str],
2985 Doc(
2986 """
2987 A description for the *path operation*.
2989 If not provided, it will be extracted automatically from the docstring
2990 of the *path operation function*.
2992 It can contain Markdown.
2994 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
2996 Read more about it in the
2997 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
2998 """
2999 ),
3000 ] = None,
3001 response_description: Annotated[
3002 str,
3003 Doc(
3004 """
3005 The description for the default response.
3007 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3008 """
3009 ),
3010 ] = "Successful Response",
3011 responses: Annotated[
3012 Optional[Dict[Union[int, str], Dict[str, Any]]],
3013 Doc(
3014 """
3015 Additional responses that could be returned by this *path operation*.
3017 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3018 """
3019 ),
3020 ] = None,
3021 deprecated: Annotated[
3022 Optional[bool],
3023 Doc(
3024 """
3025 Mark this *path operation* as deprecated.
3027 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3028 """
3029 ),
3030 ] = None,
3031 operation_id: Annotated[
3032 Optional[str],
3033 Doc(
3034 """
3035 Custom operation ID to be used by this *path operation*.
3037 By default, it is generated automatically.
3039 If you provide a custom operation ID, you need to make sure it is
3040 unique for the whole API.
3042 You can customize the
3043 operation ID generation with the parameter
3044 `generate_unique_id_function` in the `FastAPI` class.
3046 Read more about it in the
3047 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3048 """
3049 ),
3050 ] = None,
3051 response_model_include: Annotated[
3052 Optional[IncEx],
3053 Doc(
3054 """
3055 Configuration passed to Pydantic to include only certain fields in the
3056 response data.
3058 Read more about it in the
3059 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3060 """
3061 ),
3062 ] = None,
3063 response_model_exclude: Annotated[
3064 Optional[IncEx],
3065 Doc(
3066 """
3067 Configuration passed to Pydantic to exclude certain fields in the
3068 response data.
3070 Read more about it in the
3071 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3072 """
3073 ),
3074 ] = None,
3075 response_model_by_alias: Annotated[
3076 bool,
3077 Doc(
3078 """
3079 Configuration passed to Pydantic to define if the response model
3080 should be serialized by alias when an alias is used.
3082 Read more about it in the
3083 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3084 """
3085 ),
3086 ] = True,
3087 response_model_exclude_unset: Annotated[
3088 bool,
3089 Doc(
3090 """
3091 Configuration passed to Pydantic to define if the response data
3092 should have all the fields, including the ones that were not set and
3093 have their default values. This is different from
3094 `response_model_exclude_defaults` in that if the fields are set,
3095 they will be included in the response, even if the value is the same
3096 as the default.
3098 When `True`, default values are omitted from the response.
3100 Read more about it in the
3101 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3102 """
3103 ),
3104 ] = False,
3105 response_model_exclude_defaults: Annotated[
3106 bool,
3107 Doc(
3108 """
3109 Configuration passed to Pydantic to define if the response data
3110 should have all the fields, including the ones that have the same value
3111 as the default. This is different from `response_model_exclude_unset`
3112 in that if the fields are set but contain the same default values,
3113 they will be excluded from the response.
3115 When `True`, default values are omitted from the response.
3117 Read more about it in the
3118 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3119 """
3120 ),
3121 ] = False,
3122 response_model_exclude_none: Annotated[
3123 bool,
3124 Doc(
3125 """
3126 Configuration passed to Pydantic to define if the response data should
3127 exclude fields set to `None`.
3129 This is much simpler (less smart) than `response_model_exclude_unset`
3130 and `response_model_exclude_defaults`. You probably want to use one of
3131 those two instead of this one, as those allow returning `None` values
3132 when it makes sense.
3134 Read more about it in the
3135 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3136 """
3137 ),
3138 ] = False,
3139 include_in_schema: Annotated[
3140 bool,
3141 Doc(
3142 """
3143 Include this *path operation* in the generated OpenAPI schema.
3145 This affects the generated OpenAPI (e.g. visible at `/docs`).
3147 Read more about it in the
3148 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3149 """
3150 ),
3151 ] = True,
3152 response_class: Annotated[
3153 Type[Response],
3154 Doc(
3155 """
3156 Response class to be used for this *path operation*.
3158 This will not be used if you return a response directly.
3160 Read more about it in the
3161 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3162 """
3163 ),
3164 ] = Default(JSONResponse),
3165 name: Annotated[
3166 Optional[str],
3167 Doc(
3168 """
3169 Name for this *path operation*. Only used internally.
3170 """
3171 ),
3172 ] = None,
3173 callbacks: Annotated[
3174 Optional[List[BaseRoute]],
3175 Doc(
3176 """
3177 List of *path operations* that will be used as OpenAPI callbacks.
3179 This is only for OpenAPI documentation, the callbacks won't be used
3180 directly.
3182 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3184 Read more about it in the
3185 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3186 """
3187 ),
3188 ] = None,
3189 openapi_extra: Annotated[
3190 Optional[Dict[str, Any]],
3191 Doc(
3192 """
3193 Extra metadata to be included in the OpenAPI schema for this *path
3194 operation*.
3196 Read more about it in the
3197 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3198 """
3199 ),
3200 ] = None,
3201 generate_unique_id_function: Annotated[
3202 Callable[[APIRoute], str],
3203 Doc(
3204 """
3205 Customize the function used to generate unique IDs for the *path
3206 operations* shown in the generated OpenAPI.
3208 This is particularly useful when automatically generating clients or
3209 SDKs for your API.
3211 Read more about it in the
3212 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3213 """
3214 ),
3215 ] = Default(generate_unique_id),
3216 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3217 """
3218 Add a *path operation* using an HTTP OPTIONS operation.
3220 ## Example
3222 ```python
3223 from fastapi import APIRouter, FastAPI
3225 app = FastAPI()
3226 router = APIRouter()
3228 @router.options("/items/")
3229 def get_item_options():
3230 return {"additions": ["Aji", "Guacamole"]}
3232 app.include_router(router)
3233 ```
3234 """
3235 return self.api_route( 1efabcd
3236 path=path,
3237 response_model=response_model,
3238 status_code=status_code,
3239 tags=tags,
3240 dependencies=dependencies,
3241 summary=summary,
3242 description=description,
3243 response_description=response_description,
3244 responses=responses,
3245 deprecated=deprecated,
3246 methods=["OPTIONS"],
3247 operation_id=operation_id,
3248 response_model_include=response_model_include,
3249 response_model_exclude=response_model_exclude,
3250 response_model_by_alias=response_model_by_alias,
3251 response_model_exclude_unset=response_model_exclude_unset,
3252 response_model_exclude_defaults=response_model_exclude_defaults,
3253 response_model_exclude_none=response_model_exclude_none,
3254 include_in_schema=include_in_schema,
3255 response_class=response_class,
3256 name=name,
3257 callbacks=callbacks,
3258 openapi_extra=openapi_extra,
3259 generate_unique_id_function=generate_unique_id_function,
3260 )
3262 def head( 1efabcd
3263 self,
3264 path: Annotated[
3265 str,
3266 Doc(
3267 """
3268 The URL path to be used for this *path operation*.
3270 For example, in `http://example.com/items`, the path is `/items`.
3271 """
3272 ),
3273 ],
3274 *,
3275 response_model: Annotated[
3276 Any,
3277 Doc(
3278 """
3279 The type to use for the response.
3281 It could be any valid Pydantic *field* type. So, it doesn't have to
3282 be a Pydantic model, it could be other things, like a `list`, `dict`,
3283 etc.
3285 It will be used for:
3287 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
3288 show it as the response (JSON Schema).
3289 * Serialization: you could return an arbitrary object and the
3290 `response_model` would be used to serialize that object into the
3291 corresponding JSON.
3292 * Filtering: the JSON sent to the client will only contain the data
3293 (fields) defined in the `response_model`. If you returned an object
3294 that contains an attribute `password` but the `response_model` does
3295 not include that field, the JSON sent to the client would not have
3296 that `password`.
3297 * Validation: whatever you return will be serialized with the
3298 `response_model`, converting any data as necessary to generate the
3299 corresponding JSON. But if the data in the object returned is not
3300 valid, that would mean a violation of the contract with the client,
3301 so it's an error from the API developer. So, FastAPI will raise an
3302 error and return a 500 error code (Internal Server Error).
3304 Read more about it in the
3305 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
3306 """
3307 ),
3308 ] = Default(None),
3309 status_code: Annotated[
3310 Optional[int],
3311 Doc(
3312 """
3313 The default status code to be used for the response.
3315 You could override the status code by returning a response directly.
3317 Read more about it in the
3318 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
3319 """
3320 ),
3321 ] = None,
3322 tags: Annotated[
3323 Optional[List[Union[str, Enum]]],
3324 Doc(
3325 """
3326 A list of tags to be applied to the *path operation*.
3328 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3330 Read more about it in the
3331 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
3332 """
3333 ),
3334 ] = None,
3335 dependencies: Annotated[
3336 Optional[Sequence[params.Depends]],
3337 Doc(
3338 """
3339 A list of dependencies (using `Depends()`) to be applied to the
3340 *path operation*.
3342 Read more about it in the
3343 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
3344 """
3345 ),
3346 ] = None,
3347 summary: Annotated[
3348 Optional[str],
3349 Doc(
3350 """
3351 A summary for the *path operation*.
3353 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3355 Read more about it in the
3356 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3357 """
3358 ),
3359 ] = None,
3360 description: Annotated[
3361 Optional[str],
3362 Doc(
3363 """
3364 A description for the *path operation*.
3366 If not provided, it will be extracted automatically from the docstring
3367 of the *path operation function*.
3369 It can contain Markdown.
3371 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3373 Read more about it in the
3374 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3375 """
3376 ),
3377 ] = None,
3378 response_description: Annotated[
3379 str,
3380 Doc(
3381 """
3382 The description for the default response.
3384 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3385 """
3386 ),
3387 ] = "Successful Response",
3388 responses: Annotated[
3389 Optional[Dict[Union[int, str], Dict[str, Any]]],
3390 Doc(
3391 """
3392 Additional responses that could be returned by this *path operation*.
3394 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3395 """
3396 ),
3397 ] = None,
3398 deprecated: Annotated[
3399 Optional[bool],
3400 Doc(
3401 """
3402 Mark this *path operation* as deprecated.
3404 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3405 """
3406 ),
3407 ] = None,
3408 operation_id: Annotated[
3409 Optional[str],
3410 Doc(
3411 """
3412 Custom operation ID to be used by this *path operation*.
3414 By default, it is generated automatically.
3416 If you provide a custom operation ID, you need to make sure it is
3417 unique for the whole API.
3419 You can customize the
3420 operation ID generation with the parameter
3421 `generate_unique_id_function` in the `FastAPI` class.
3423 Read more about it in the
3424 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3425 """
3426 ),
3427 ] = None,
3428 response_model_include: Annotated[
3429 Optional[IncEx],
3430 Doc(
3431 """
3432 Configuration passed to Pydantic to include only certain fields in the
3433 response data.
3435 Read more about it in the
3436 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3437 """
3438 ),
3439 ] = None,
3440 response_model_exclude: Annotated[
3441 Optional[IncEx],
3442 Doc(
3443 """
3444 Configuration passed to Pydantic to exclude certain fields in the
3445 response data.
3447 Read more about it in the
3448 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3449 """
3450 ),
3451 ] = None,
3452 response_model_by_alias: Annotated[
3453 bool,
3454 Doc(
3455 """
3456 Configuration passed to Pydantic to define if the response model
3457 should be serialized by alias when an alias is used.
3459 Read more about it in the
3460 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3461 """
3462 ),
3463 ] = True,
3464 response_model_exclude_unset: Annotated[
3465 bool,
3466 Doc(
3467 """
3468 Configuration passed to Pydantic to define if the response data
3469 should have all the fields, including the ones that were not set and
3470 have their default values. This is different from
3471 `response_model_exclude_defaults` in that if the fields are set,
3472 they will be included in the response, even if the value is the same
3473 as the default.
3475 When `True`, default values are omitted from the response.
3477 Read more about it in the
3478 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3479 """
3480 ),
3481 ] = False,
3482 response_model_exclude_defaults: Annotated[
3483 bool,
3484 Doc(
3485 """
3486 Configuration passed to Pydantic to define if the response data
3487 should have all the fields, including the ones that have the same value
3488 as the default. This is different from `response_model_exclude_unset`
3489 in that if the fields are set but contain the same default values,
3490 they will be excluded from the response.
3492 When `True`, default values are omitted from the response.
3494 Read more about it in the
3495 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3496 """
3497 ),
3498 ] = False,
3499 response_model_exclude_none: Annotated[
3500 bool,
3501 Doc(
3502 """
3503 Configuration passed to Pydantic to define if the response data should
3504 exclude fields set to `None`.
3506 This is much simpler (less smart) than `response_model_exclude_unset`
3507 and `response_model_exclude_defaults`. You probably want to use one of
3508 those two instead of this one, as those allow returning `None` values
3509 when it makes sense.
3511 Read more about it in the
3512 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3513 """
3514 ),
3515 ] = False,
3516 include_in_schema: Annotated[
3517 bool,
3518 Doc(
3519 """
3520 Include this *path operation* in the generated OpenAPI schema.
3522 This affects the generated OpenAPI (e.g. visible at `/docs`).
3524 Read more about it in the
3525 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3526 """
3527 ),
3528 ] = True,
3529 response_class: Annotated[
3530 Type[Response],
3531 Doc(
3532 """
3533 Response class to be used for this *path operation*.
3535 This will not be used if you return a response directly.
3537 Read more about it in the
3538 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3539 """
3540 ),
3541 ] = Default(JSONResponse),
3542 name: Annotated[
3543 Optional[str],
3544 Doc(
3545 """
3546 Name for this *path operation*. Only used internally.
3547 """
3548 ),
3549 ] = None,
3550 callbacks: Annotated[
3551 Optional[List[BaseRoute]],
3552 Doc(
3553 """
3554 List of *path operations* that will be used as OpenAPI callbacks.
3556 This is only for OpenAPI documentation, the callbacks won't be used
3557 directly.
3559 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3561 Read more about it in the
3562 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3563 """
3564 ),
3565 ] = None,
3566 openapi_extra: Annotated[
3567 Optional[Dict[str, Any]],
3568 Doc(
3569 """
3570 Extra metadata to be included in the OpenAPI schema for this *path
3571 operation*.
3573 Read more about it in the
3574 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3575 """
3576 ),
3577 ] = None,
3578 generate_unique_id_function: Annotated[
3579 Callable[[APIRoute], str],
3580 Doc(
3581 """
3582 Customize the function used to generate unique IDs for the *path
3583 operations* shown in the generated OpenAPI.
3585 This is particularly useful when automatically generating clients or
3586 SDKs for your API.
3588 Read more about it in the
3589 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3590 """
3591 ),
3592 ] = Default(generate_unique_id),
3593 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3594 """
3595 Add a *path operation* using an HTTP HEAD operation.
3597 ## Example
3599 ```python
3600 from fastapi import APIRouter, FastAPI
3601 from pydantic import BaseModel
3603 class Item(BaseModel):
3604 name: str
3605 description: str | None = None
3607 app = FastAPI()
3608 router = APIRouter()
3610 @router.head("/items/", status_code=204)
3611 def get_items_headers(response: Response):
3612 response.headers["X-Cat-Dog"] = "Alone in the world"
3614 app.include_router(router)
3615 ```
3616 """
3617 return self.api_route( 1efabcd
3618 path=path,
3619 response_model=response_model,
3620 status_code=status_code,
3621 tags=tags,
3622 dependencies=dependencies,
3623 summary=summary,
3624 description=description,
3625 response_description=response_description,
3626 responses=responses,
3627 deprecated=deprecated,
3628 methods=["HEAD"],
3629 operation_id=operation_id,
3630 response_model_include=response_model_include,
3631 response_model_exclude=response_model_exclude,
3632 response_model_by_alias=response_model_by_alias,
3633 response_model_exclude_unset=response_model_exclude_unset,
3634 response_model_exclude_defaults=response_model_exclude_defaults,
3635 response_model_exclude_none=response_model_exclude_none,
3636 include_in_schema=include_in_schema,
3637 response_class=response_class,
3638 name=name,
3639 callbacks=callbacks,
3640 openapi_extra=openapi_extra,
3641 generate_unique_id_function=generate_unique_id_function,
3642 )
3644 def patch( 1efabcd
3645 self,
3646 path: Annotated[
3647 str,
3648 Doc(
3649 """
3650 The URL path to be used for this *path operation*.
3652 For example, in `http://example.com/items`, the path is `/items`.
3653 """
3654 ),
3655 ],
3656 *,
3657 response_model: Annotated[
3658 Any,
3659 Doc(
3660 """
3661 The type to use for the response.
3663 It could be any valid Pydantic *field* type. So, it doesn't have to
3664 be a Pydantic model, it could be other things, like a `list`, `dict`,
3665 etc.
3667 It will be used for:
3669 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
3670 show it as the response (JSON Schema).
3671 * Serialization: you could return an arbitrary object and the
3672 `response_model` would be used to serialize that object into the
3673 corresponding JSON.
3674 * Filtering: the JSON sent to the client will only contain the data
3675 (fields) defined in the `response_model`. If you returned an object
3676 that contains an attribute `password` but the `response_model` does
3677 not include that field, the JSON sent to the client would not have
3678 that `password`.
3679 * Validation: whatever you return will be serialized with the
3680 `response_model`, converting any data as necessary to generate the
3681 corresponding JSON. But if the data in the object returned is not
3682 valid, that would mean a violation of the contract with the client,
3683 so it's an error from the API developer. So, FastAPI will raise an
3684 error and return a 500 error code (Internal Server Error).
3686 Read more about it in the
3687 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
3688 """
3689 ),
3690 ] = Default(None),
3691 status_code: Annotated[
3692 Optional[int],
3693 Doc(
3694 """
3695 The default status code to be used for the response.
3697 You could override the status code by returning a response directly.
3699 Read more about it in the
3700 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
3701 """
3702 ),
3703 ] = None,
3704 tags: Annotated[
3705 Optional[List[Union[str, Enum]]],
3706 Doc(
3707 """
3708 A list of tags to be applied to the *path operation*.
3710 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3712 Read more about it in the
3713 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
3714 """
3715 ),
3716 ] = None,
3717 dependencies: Annotated[
3718 Optional[Sequence[params.Depends]],
3719 Doc(
3720 """
3721 A list of dependencies (using `Depends()`) to be applied to the
3722 *path operation*.
3724 Read more about it in the
3725 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
3726 """
3727 ),
3728 ] = None,
3729 summary: Annotated[
3730 Optional[str],
3731 Doc(
3732 """
3733 A summary for the *path operation*.
3735 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3737 Read more about it in the
3738 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3739 """
3740 ),
3741 ] = None,
3742 description: Annotated[
3743 Optional[str],
3744 Doc(
3745 """
3746 A description for the *path operation*.
3748 If not provided, it will be extracted automatically from the docstring
3749 of the *path operation function*.
3751 It can contain Markdown.
3753 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3755 Read more about it in the
3756 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
3757 """
3758 ),
3759 ] = None,
3760 response_description: Annotated[
3761 str,
3762 Doc(
3763 """
3764 The description for the default response.
3766 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3767 """
3768 ),
3769 ] = "Successful Response",
3770 responses: Annotated[
3771 Optional[Dict[Union[int, str], Dict[str, Any]]],
3772 Doc(
3773 """
3774 Additional responses that could be returned by this *path operation*.
3776 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3777 """
3778 ),
3779 ] = None,
3780 deprecated: Annotated[
3781 Optional[bool],
3782 Doc(
3783 """
3784 Mark this *path operation* as deprecated.
3786 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3787 """
3788 ),
3789 ] = None,
3790 operation_id: Annotated[
3791 Optional[str],
3792 Doc(
3793 """
3794 Custom operation ID to be used by this *path operation*.
3796 By default, it is generated automatically.
3798 If you provide a custom operation ID, you need to make sure it is
3799 unique for the whole API.
3801 You can customize the
3802 operation ID generation with the parameter
3803 `generate_unique_id_function` in the `FastAPI` class.
3805 Read more about it in the
3806 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3807 """
3808 ),
3809 ] = None,
3810 response_model_include: Annotated[
3811 Optional[IncEx],
3812 Doc(
3813 """
3814 Configuration passed to Pydantic to include only certain fields in the
3815 response data.
3817 Read more about it in the
3818 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3819 """
3820 ),
3821 ] = None,
3822 response_model_exclude: Annotated[
3823 Optional[IncEx],
3824 Doc(
3825 """
3826 Configuration passed to Pydantic to exclude certain fields in the
3827 response data.
3829 Read more about it in the
3830 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3831 """
3832 ),
3833 ] = None,
3834 response_model_by_alias: Annotated[
3835 bool,
3836 Doc(
3837 """
3838 Configuration passed to Pydantic to define if the response model
3839 should be serialized by alias when an alias is used.
3841 Read more about it in the
3842 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
3843 """
3844 ),
3845 ] = True,
3846 response_model_exclude_unset: Annotated[
3847 bool,
3848 Doc(
3849 """
3850 Configuration passed to Pydantic to define if the response data
3851 should have all the fields, including the ones that were not set and
3852 have their default values. This is different from
3853 `response_model_exclude_defaults` in that if the fields are set,
3854 they will be included in the response, even if the value is the same
3855 as the default.
3857 When `True`, default values are omitted from the response.
3859 Read more about it in the
3860 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3861 """
3862 ),
3863 ] = False,
3864 response_model_exclude_defaults: Annotated[
3865 bool,
3866 Doc(
3867 """
3868 Configuration passed to Pydantic to define if the response data
3869 should have all the fields, including the ones that have the same value
3870 as the default. This is different from `response_model_exclude_unset`
3871 in that if the fields are set but contain the same default values,
3872 they will be excluded from the response.
3874 When `True`, default values are omitted from the response.
3876 Read more about it in the
3877 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
3878 """
3879 ),
3880 ] = False,
3881 response_model_exclude_none: Annotated[
3882 bool,
3883 Doc(
3884 """
3885 Configuration passed to Pydantic to define if the response data should
3886 exclude fields set to `None`.
3888 This is much simpler (less smart) than `response_model_exclude_unset`
3889 and `response_model_exclude_defaults`. You probably want to use one of
3890 those two instead of this one, as those allow returning `None` values
3891 when it makes sense.
3893 Read more about it in the
3894 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
3895 """
3896 ),
3897 ] = False,
3898 include_in_schema: Annotated[
3899 bool,
3900 Doc(
3901 """
3902 Include this *path operation* in the generated OpenAPI schema.
3904 This affects the generated OpenAPI (e.g. visible at `/docs`).
3906 Read more about it in the
3907 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
3908 """
3909 ),
3910 ] = True,
3911 response_class: Annotated[
3912 Type[Response],
3913 Doc(
3914 """
3915 Response class to be used for this *path operation*.
3917 This will not be used if you return a response directly.
3919 Read more about it in the
3920 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
3921 """
3922 ),
3923 ] = Default(JSONResponse),
3924 name: Annotated[
3925 Optional[str],
3926 Doc(
3927 """
3928 Name for this *path operation*. Only used internally.
3929 """
3930 ),
3931 ] = None,
3932 callbacks: Annotated[
3933 Optional[List[BaseRoute]],
3934 Doc(
3935 """
3936 List of *path operations* that will be used as OpenAPI callbacks.
3938 This is only for OpenAPI documentation, the callbacks won't be used
3939 directly.
3941 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
3943 Read more about it in the
3944 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
3945 """
3946 ),
3947 ] = None,
3948 openapi_extra: Annotated[
3949 Optional[Dict[str, Any]],
3950 Doc(
3951 """
3952 Extra metadata to be included in the OpenAPI schema for this *path
3953 operation*.
3955 Read more about it in the
3956 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
3957 """
3958 ),
3959 ] = None,
3960 generate_unique_id_function: Annotated[
3961 Callable[[APIRoute], str],
3962 Doc(
3963 """
3964 Customize the function used to generate unique IDs for the *path
3965 operations* shown in the generated OpenAPI.
3967 This is particularly useful when automatically generating clients or
3968 SDKs for your API.
3970 Read more about it in the
3971 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
3972 """
3973 ),
3974 ] = Default(generate_unique_id),
3975 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
3976 """
3977 Add a *path operation* using an HTTP PATCH operation.
3979 ## Example
3981 ```python
3982 from fastapi import APIRouter, FastAPI
3983 from pydantic import BaseModel
3985 class Item(BaseModel):
3986 name: str
3987 description: str | None = None
3989 app = FastAPI()
3990 router = APIRouter()
3992 @router.patch("/items/")
3993 def update_item(item: Item):
3994 return {"message": "Item updated in place"}
3996 app.include_router(router)
3997 ```
3998 """
3999 return self.api_route( 1efabcd
4000 path=path,
4001 response_model=response_model,
4002 status_code=status_code,
4003 tags=tags,
4004 dependencies=dependencies,
4005 summary=summary,
4006 description=description,
4007 response_description=response_description,
4008 responses=responses,
4009 deprecated=deprecated,
4010 methods=["PATCH"],
4011 operation_id=operation_id,
4012 response_model_include=response_model_include,
4013 response_model_exclude=response_model_exclude,
4014 response_model_by_alias=response_model_by_alias,
4015 response_model_exclude_unset=response_model_exclude_unset,
4016 response_model_exclude_defaults=response_model_exclude_defaults,
4017 response_model_exclude_none=response_model_exclude_none,
4018 include_in_schema=include_in_schema,
4019 response_class=response_class,
4020 name=name,
4021 callbacks=callbacks,
4022 openapi_extra=openapi_extra,
4023 generate_unique_id_function=generate_unique_id_function,
4024 )
4026 def trace( 1efabcd
4027 self,
4028 path: Annotated[
4029 str,
4030 Doc(
4031 """
4032 The URL path to be used for this *path operation*.
4034 For example, in `http://example.com/items`, the path is `/items`.
4035 """
4036 ),
4037 ],
4038 *,
4039 response_model: Annotated[
4040 Any,
4041 Doc(
4042 """
4043 The type to use for the response.
4045 It could be any valid Pydantic *field* type. So, it doesn't have to
4046 be a Pydantic model, it could be other things, like a `list`, `dict`,
4047 etc.
4049 It will be used for:
4051 * Documentation: the generated OpenAPI (and the UI at `/docs`) will
4052 show it as the response (JSON Schema).
4053 * Serialization: you could return an arbitrary object and the
4054 `response_model` would be used to serialize that object into the
4055 corresponding JSON.
4056 * Filtering: the JSON sent to the client will only contain the data
4057 (fields) defined in the `response_model`. If you returned an object
4058 that contains an attribute `password` but the `response_model` does
4059 not include that field, the JSON sent to the client would not have
4060 that `password`.
4061 * Validation: whatever you return will be serialized with the
4062 `response_model`, converting any data as necessary to generate the
4063 corresponding JSON. But if the data in the object returned is not
4064 valid, that would mean a violation of the contract with the client,
4065 so it's an error from the API developer. So, FastAPI will raise an
4066 error and return a 500 error code (Internal Server Error).
4068 Read more about it in the
4069 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
4070 """
4071 ),
4072 ] = Default(None),
4073 status_code: Annotated[
4074 Optional[int],
4075 Doc(
4076 """
4077 The default status code to be used for the response.
4079 You could override the status code by returning a response directly.
4081 Read more about it in the
4082 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
4083 """
4084 ),
4085 ] = None,
4086 tags: Annotated[
4087 Optional[List[Union[str, Enum]]],
4088 Doc(
4089 """
4090 A list of tags to be applied to the *path operation*.
4092 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4094 Read more about it in the
4095 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
4096 """
4097 ),
4098 ] = None,
4099 dependencies: Annotated[
4100 Optional[Sequence[params.Depends]],
4101 Doc(
4102 """
4103 A list of dependencies (using `Depends()`) to be applied to the
4104 *path operation*.
4106 Read more about it in the
4107 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
4108 """
4109 ),
4110 ] = None,
4111 summary: Annotated[
4112 Optional[str],
4113 Doc(
4114 """
4115 A summary for the *path operation*.
4117 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4119 Read more about it in the
4120 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
4121 """
4122 ),
4123 ] = None,
4124 description: Annotated[
4125 Optional[str],
4126 Doc(
4127 """
4128 A description for the *path operation*.
4130 If not provided, it will be extracted automatically from the docstring
4131 of the *path operation function*.
4133 It can contain Markdown.
4135 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4137 Read more about it in the
4138 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
4139 """
4140 ),
4141 ] = None,
4142 response_description: Annotated[
4143 str,
4144 Doc(
4145 """
4146 The description for the default response.
4148 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4149 """
4150 ),
4151 ] = "Successful Response",
4152 responses: Annotated[
4153 Optional[Dict[Union[int, str], Dict[str, Any]]],
4154 Doc(
4155 """
4156 Additional responses that could be returned by this *path operation*.
4158 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4159 """
4160 ),
4161 ] = None,
4162 deprecated: Annotated[
4163 Optional[bool],
4164 Doc(
4165 """
4166 Mark this *path operation* as deprecated.
4168 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4169 """
4170 ),
4171 ] = None,
4172 operation_id: Annotated[
4173 Optional[str],
4174 Doc(
4175 """
4176 Custom operation ID to be used by this *path operation*.
4178 By default, it is generated automatically.
4180 If you provide a custom operation ID, you need to make sure it is
4181 unique for the whole API.
4183 You can customize the
4184 operation ID generation with the parameter
4185 `generate_unique_id_function` in the `FastAPI` class.
4187 Read more about it in the
4188 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
4189 """
4190 ),
4191 ] = None,
4192 response_model_include: Annotated[
4193 Optional[IncEx],
4194 Doc(
4195 """
4196 Configuration passed to Pydantic to include only certain fields in the
4197 response data.
4199 Read more about it in the
4200 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4201 """
4202 ),
4203 ] = None,
4204 response_model_exclude: Annotated[
4205 Optional[IncEx],
4206 Doc(
4207 """
4208 Configuration passed to Pydantic to exclude certain fields in the
4209 response data.
4211 Read more about it in the
4212 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4213 """
4214 ),
4215 ] = None,
4216 response_model_by_alias: Annotated[
4217 bool,
4218 Doc(
4219 """
4220 Configuration passed to Pydantic to define if the response model
4221 should be serialized by alias when an alias is used.
4223 Read more about it in the
4224 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
4225 """
4226 ),
4227 ] = True,
4228 response_model_exclude_unset: Annotated[
4229 bool,
4230 Doc(
4231 """
4232 Configuration passed to Pydantic to define if the response data
4233 should have all the fields, including the ones that were not set and
4234 have their default values. This is different from
4235 `response_model_exclude_defaults` in that if the fields are set,
4236 they will be included in the response, even if the value is the same
4237 as the default.
4239 When `True`, default values are omitted from the response.
4241 Read more about it in the
4242 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
4243 """
4244 ),
4245 ] = False,
4246 response_model_exclude_defaults: Annotated[
4247 bool,
4248 Doc(
4249 """
4250 Configuration passed to Pydantic to define if the response data
4251 should have all the fields, including the ones that have the same value
4252 as the default. This is different from `response_model_exclude_unset`
4253 in that if the fields are set but contain the same default values,
4254 they will be excluded from the response.
4256 When `True`, default values are omitted from the response.
4258 Read more about it in the
4259 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
4260 """
4261 ),
4262 ] = False,
4263 response_model_exclude_none: Annotated[
4264 bool,
4265 Doc(
4266 """
4267 Configuration passed to Pydantic to define if the response data should
4268 exclude fields set to `None`.
4270 This is much simpler (less smart) than `response_model_exclude_unset`
4271 and `response_model_exclude_defaults`. You probably want to use one of
4272 those two instead of this one, as those allow returning `None` values
4273 when it makes sense.
4275 Read more about it in the
4276 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
4277 """
4278 ),
4279 ] = False,
4280 include_in_schema: Annotated[
4281 bool,
4282 Doc(
4283 """
4284 Include this *path operation* in the generated OpenAPI schema.
4286 This affects the generated OpenAPI (e.g. visible at `/docs`).
4288 Read more about it in the
4289 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
4290 """
4291 ),
4292 ] = True,
4293 response_class: Annotated[
4294 Type[Response],
4295 Doc(
4296 """
4297 Response class to be used for this *path operation*.
4299 This will not be used if you return a response directly.
4301 Read more about it in the
4302 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
4303 """
4304 ),
4305 ] = Default(JSONResponse),
4306 name: Annotated[
4307 Optional[str],
4308 Doc(
4309 """
4310 Name for this *path operation*. Only used internally.
4311 """
4312 ),
4313 ] = None,
4314 callbacks: Annotated[
4315 Optional[List[BaseRoute]],
4316 Doc(
4317 """
4318 List of *path operations* that will be used as OpenAPI callbacks.
4320 This is only for OpenAPI documentation, the callbacks won't be used
4321 directly.
4323 It will be added to the generated OpenAPI (e.g. visible at `/docs`).
4325 Read more about it in the
4326 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
4327 """
4328 ),
4329 ] = None,
4330 openapi_extra: Annotated[
4331 Optional[Dict[str, Any]],
4332 Doc(
4333 """
4334 Extra metadata to be included in the OpenAPI schema for this *path
4335 operation*.
4337 Read more about it in the
4338 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
4339 """
4340 ),
4341 ] = None,
4342 generate_unique_id_function: Annotated[
4343 Callable[[APIRoute], str],
4344 Doc(
4345 """
4346 Customize the function used to generate unique IDs for the *path
4347 operations* shown in the generated OpenAPI.
4349 This is particularly useful when automatically generating clients or
4350 SDKs for your API.
4352 Read more about it in the
4353 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
4354 """
4355 ),
4356 ] = Default(generate_unique_id),
4357 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
4358 """
4359 Add a *path operation* using an HTTP TRACE operation.
4361 ## Example
4363 ```python
4364 from fastapi import APIRouter, FastAPI
4365 from pydantic import BaseModel
4367 class Item(BaseModel):
4368 name: str
4369 description: str | None = None
4371 app = FastAPI()
4372 router = APIRouter()
4374 @router.trace("/items/{item_id}")
4375 def trace_item(item_id: str):
4376 return None
4378 app.include_router(router)
4379 ```
4380 """
4381 return self.api_route( 1efabcd
4382 path=path,
4383 response_model=response_model,
4384 status_code=status_code,
4385 tags=tags,
4386 dependencies=dependencies,
4387 summary=summary,
4388 description=description,
4389 response_description=response_description,
4390 responses=responses,
4391 deprecated=deprecated,
4392 methods=["TRACE"],
4393 operation_id=operation_id,
4394 response_model_include=response_model_include,
4395 response_model_exclude=response_model_exclude,
4396 response_model_by_alias=response_model_by_alias,
4397 response_model_exclude_unset=response_model_exclude_unset,
4398 response_model_exclude_defaults=response_model_exclude_defaults,
4399 response_model_exclude_none=response_model_exclude_none,
4400 include_in_schema=include_in_schema,
4401 response_class=response_class,
4402 name=name,
4403 callbacks=callbacks,
4404 openapi_extra=openapi_extra,
4405 generate_unique_id_function=generate_unique_id_function,
4406 )
4408 @deprecated( 1efabcd
4409 """
4410 on_event is deprecated, use lifespan event handlers instead.
4412 Read more about it in the
4413 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
4414 """
4415 )
4416 def on_event( 1efabcd
4417 self,
4418 event_type: Annotated[
4419 str,
4420 Doc(
4421 """
4422 The type of event. `startup` or `shutdown`.
4423 """
4424 ),
4425 ],
4426 ) -> Callable[[DecoratedCallable], DecoratedCallable]:
4427 """
4428 Add an event handler for the router.
4430 `on_event` is deprecated, use `lifespan` event handlers instead.
4432 Read more about it in the
4433 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated).
4434 """
4436 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e G tbf H uba E rbb F sbc I Bbd J Cb
4437 self.add_event_handler(event_type, func) 2e G tbf H uba E rbb F sbc I Bbd J Cb
4438 return func 2e G tbf H uba E rbb F sbc I Bbd J Cb
4440 return decorator 2e G tbf H uba E rbb F sbc I Bbd J Cb