Coverage for src/fastapi_cloud_cli/commands/_auth.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-11-09 00:25 +0000

1from dataclasses import dataclass 1abcdefg

2from typing import Any, cast 1abcdefg

3 

4from typer._click import Context 1abcdefg

5from typer.core import TyperCommand 1abcdefg

6 

7from fastapi_cloud_cli.utils.auth import Identity 1abcdefg

8from fastapi_cloud_cli.utils.cli import FastAPIRichToolkit, get_rich_toolkit 1abcdefg

9 

10_CONTEXT_KEY = "fastapi_cloud_cli.user_command" 1abcdefg

11 

12 

13@dataclass(frozen=True) 1abcdefg

14class UserCommandContext: 1abcdefg

15 toolkit: FastAPIRichToolkit 1abcdefg

16 identity: Identity 1abcdefg

17 

18 

19def get_user_command_context(ctx: Context) -> UserCommandContext: 1abcdefg

20 return cast(UserCommandContext, ctx.meta[_CONTEXT_KEY]) 2h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!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~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!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~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!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~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~u

21 

22 

23class UserCommand(TyperCommand): 1abcdefg

24 def invoke(self, ctx: Context) -> Any: 1abcdefg

25 json_output = bool(ctx.params.get("json_output", False)) 2h i j k l m n o p q avr s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bv0 1 2 3 4 cv5 6 7 8 9 ! # $ % dv' ( ) * + , - . ev/ : ; = ? fv@ gv[ ] ^ _ ` hv{ | } ~ ivabbbcbdbjvebfbgbhbibjbkblbkvmbnbobpbqbrbsbtbubvbwbxblvybzbAbBbCbDbEbFbGbHbIbJbKbmvLbMbNbObPbQbRbnvSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+bov,b-b.b/bpv:b;b=b?bqv@b[b]brv^b_b`b{b|b}b~bacsvbcccdcecfcgctvhcicjckclcuvmcvvncocpcqcrcscwvxvtcucvcwcxcyczcAcBcCcDcEcFcGcHcyvIcJcKcLcMcNcOcPcQcRcScTcUczvVcWcXcYcZc0cAv1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)cBv*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdCvcdddedfdgdhdidjdkdldmdndodpdDvqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdEvZd0d1d2d3dFv4d5d6d7d8d9d!d#d$dGv%d'd(d)d*d+d,d-dHv.d/d:d;d=dIv?dJv@d[d]d^d_dKv`d{d|d}dLv~daebeceMvdeeefegeheiejekeNvlemeneoepeqereseteueveweOvxeyezeAeBeCeDeEeFeGeHeIeJePvKeLeMeNeOePeQeQvReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eRv+e,e-e.eSv/e:e;e=eTv?e@e[eUv]e^e_e`e{e|e}e~eVvafbfcfdfefffWvgfhfifjfkfXvlfYvmfnfofpfqfrfZv0vsftfufvfwfxfyfzfAfBfCfDfEfFfGf1vHfIfJfKfLfMfNfOfPfQfRfSfTf2vUfVfWfXfYfZf3v0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f4v)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fag5vbgcgdgegfggghgigjgkglgmgngog6vpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXg7vYgZg0g1g2g8v3g4g5g6g7g8g9g!g#g9v$g%g'g(g)g*g+g,g!v-g.g/g:g;g#v=g$v?g@g[g]g^g%v_g`g{g|g'v}g~gahbh(vchdhehfhghhhihjh)vkhlhmhnhohphqhrhshthuhvh*vwhxhyhzhAhBhChDhEhFhGhHhIh+vJhKhLhMhNhOhPh,vQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h-v*h+h,h-h.v.h/h:h;h/v=h?h@h:v[h]h^h_h`h{h|h}h;v~haibicidiei=vfigihiiiji?vki@vliminioipiqi[v]vrisitiuiviwixiyiziAiBiCiDiEiFi^vGiHiIiJiKiLiMiNiOiPiQiRiSi_vTiUiViWiXiYi`vZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i{v(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~i|vajbjcjdjejfjgjhjijjjkjljmjnj}vojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWj~vXjYjZj0j1jaw2j3j4j5j6j7j8j9j!jbw#j$j%j'j(j)j*j+jcw,j-j.j/j:jdw;jew=j?j@j[j]jfw^j_j`j{jgw|j}j~jakhwbkckdkekfkgkhkikiwjkkklkmknkokpkqkrksktkukjwvkwkxkykzkAkBkCkDkEkFkGkHkkwIkJkKkLkMkNkOklwPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(kmw)k*k+k,knw-k.k/k:kow;k=k?kpw@k[k]k^k_k`k{k|kqw}k~kalblcldlrwelflglhlilswjltwklllmlnlolpluwvwqlrlsltlulvlwlxlylzlAlBlClDlElwwFlGlHlIlJlKlLlMlNlOlPlQlRlxwSlTlUlVlWlXlywYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%lzw'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lAw~lambmcmdmemfmgmhmimjmkmlmmmBwnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmCwWmXmYmZm0mDw1m2m3m4m5m6m7m8m9mEw!m#m$m%m'm(m)m*mFw+m,m-m.m/mGw:mHw;m=m?m@m[mIw]m^m_m`mJw{m|m}m~mKwanbncndnenfngnhnLwinjnknlnmnnnonpnqnrnsntnMwunvnwnxnynznAnBnCnDnEnFnGnNwHnInJnKnLnMnNnOwOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'nPw(n)n*n+nQw,n-n.n/nRw:n;n=nSw?n@n[n]n^n_n`n{nTw|n}n~naobocoUwdoeofogohoVwioWwjokolomonoooXwYwpoqorosotouovowoxoyozoAoBoCoDoZwEoFoGoHoIoJoKoLoMoNoOoPoQo0wRoSoToUoVoWo1wXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o2w%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o3w}o~oapbpcpdpepfpgphpipjpkplp4wmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUp5wVpWpXpYpZp6w0p1p2p3p4p5p6p7p8p7w9p!p#p$p%p'p(p)p8w*p+p,p-p.p9w/p!w:p;p=p?p@p#w[p]p^p_p$w`p{p|p}p%w~paqbqcqdqeqfqgq'whqiqjqkqlqmqnqoqpqqqrqsq(wtquqvqwqxqyqzqAqBqCqDqEqFq)wGqHqIqJqKqLqMq*wNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q+w'q(q)q*q,w+q,q-q.q-w/q:q;q.w=q?q@q[q]q^q_q`q/w{q|q}q~qarbr:wcrdrerfrgr;whr=wirjrkrlrmrnr?w@worprqrrrsrtrurvrwrxryrzrArBrCr[wDrErFrGrHrIrJrKrLrMrNrOrPr]wQrRrSrTrUrVr^wWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r_w$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r`w|r}r~rasbscsdsesfsgshsisjsks{wlsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTs|wUsVsWsXsYs}wZs0s1s2s3s4s5s6s7s~w8s9s!s#s$s%s's(sax)s*s+s,s-sbx.scx/s:s;s=s?sdx@s[s]s^sex_s`s{s|sfx}s~satbtctdtetftgxgthtitjtktltmtntotptqtrthxstttutvtwtxtytztAtBtCtDtEtixFtGtHtItJtKtLtjxMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$tkx%t't(t)tlx*t+t,t-tmx.t/t:tnx;t=t?t@t[t]t^t_tox`t{t|t}t~taupxbucudueufuqxgurxhuiujukulumusxtxnuoupuqurusutuuuvuwuxuyuzuAuBuuxCuDuEuFuGuHuIuJuKuLuMuNuOuvxPuQuRuSuTuUuwxVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!uxx#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`uyx{u|u}u~u

26 

27 with get_rich_toolkit(json_output=json_output) as toolkit: 2h i j k l m n o p q avr s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bv0 1 2 3 4 cv5 6 7 8 9 ! # $ % dv' ( ) * + , - . ev/ : ; = ? fv@ gv[ ] ^ _ ` hv{ | } ~ ivabbbcbdbjvebfbgbhbibjbkblbkvmbnbobpbqbrbsbtbubvbwbxblvybzbAbBbCbDbEbFbGbHbIbJbKbmvLbMbNbObPbQbRbnvSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+bov,b-b.b/bpv:b;b=b?bqv@b[b]brv^b_b`b{b|b}b~bacsvbcccdcecfcgctvhcicjckclcuvmcvvncocpcqcrcscwvxvtcucvcwcxcyczcAcBcCcDcEcFcGcHcyvIcJcKcLcMcNcOcPcQcRcScTcUczvVcWcXcYcZc0cAv1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)cBv*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdCvcdddedfdgdhdidjdkdldmdndodpdDvqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdEvZd0d1d2d3dFv4d5d6d7d8d9d!d#d$dGv%d'd(d)d*d+d,d-dHv.d/d:d;d=dIv?dJv@d[d]d^d_dKv`d{d|d}dLv~daebeceMvdeeefegeheiejekeNvlemeneoepeqereseteueveweOvxeyezeAeBeCeDeEeFeGeHeIeJePvKeLeMeNeOePeQeQvReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eRv+e,e-e.eSv/e:e;e=eTv?e@e[eUv]e^e_e`e{e|e}e~eVvafbfcfdfefffWvgfhfifjfkfXvlfYvmfnfofpfqfrfZv0vsftfufvfwfxfyfzfAfBfCfDfEfFfGf1vHfIfJfKfLfMfNfOfPfQfRfSfTf2vUfVfWfXfYfZf3v0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f4v)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fag5vbgcgdgegfggghgigjgkglgmgngog6vpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXg7vYgZg0g1g2g8v3g4g5g6g7g8g9g!g#g9v$g%g'g(g)g*g+g,g!v-g.g/g:g;g#v=g$v?g@g[g]g^g%v_g`g{g|g'v}g~gahbh(vchdhehfhghhhihjh)vkhlhmhnhohphqhrhshthuhvh*vwhxhyhzhAhBhChDhEhFhGhHhIh+vJhKhLhMhNhOhPh,vQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h-v*h+h,h-h.v.h/h:h;h/v=h?h@h:v[h]h^h_h`h{h|h}h;v~haibicidiei=vfigihiiiji?vki@vliminioipiqi[v]vrisitiuiviwixiyiziAiBiCiDiEiFi^vGiHiIiJiKiLiMiNiOiPiQiRiSi_vTiUiViWiXiYi`vZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i{v(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~i|vajbjcjdjejfjgjhjijjjkjljmjnj}vojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWj~vXjYjZj0j1jaw2j3j4j5j6j7j8j9j!jbw#j$j%j'j(j)j*j+jcw,j-j.j/j:jdw;jew=j?j@j[j]jfw^j_j`j{jgw|j}j~jakhwbkckdkekfkgkhkikiwjkkklkmknkokpkqkrksktkukjwvkwkxkykzkAkBkCkDkEkFkGkHkkwIkJkKkLkMkNkOklwPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(kmw)k*k+k,knw-k.k/k:kow;k=k?kpw@k[k]k^k_k`k{k|kqw}k~kalblcldlrwelflglhlilswjltwklllmlnlolpluwvwqlrlsltlulvlwlxlylzlAlBlClDlElwwFlGlHlIlJlKlLlMlNlOlPlQlRlxwSlTlUlVlWlXlywYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%lzw'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lAw~lambmcmdmemfmgmhmimjmkmlmmmBwnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmCwWmXmYmZm0mDw1m2m3m4m5m6m7m8m9mEw!m#m$m%m'm(m)m*mFw+m,m-m.m/mGw:mHw;m=m?m@m[mIw]m^m_m`mJw{m|m}m~mKwanbncndnenfngnhnLwinjnknlnmnnnonpnqnrnsntnMwunvnwnxnynznAnBnCnDnEnFnGnNwHnInJnKnLnMnNnOwOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'nPw(n)n*n+nQw,n-n.n/nRw:n;n=nSw?n@n[n]n^n_n`n{nTw|n}n~naobocoUwdoeofogohoVwioWwjokolomonoooXwYwpoqorosotouovowoxoyozoAoBoCoDoZwEoFoGoHoIoJoKoLoMoNoOoPoQo0wRoSoToUoVoWo1wXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o2w%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o3w}o~oapbpcpdpepfpgphpipjpkplp4wmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUp5wVpWpXpYpZp6w0p1p2p3p4p5p6p7p8p7w9p!p#p$p%p'p(p)p8w*p+p,p-p.p9w/p!w:p;p=p?p@p#w[p]p^p_p$w`p{p|p}p%w~paqbqcqdqeqfqgq'whqiqjqkqlqmqnqoqpqqqrqsq(wtquqvqwqxqyqzqAqBqCqDqEqFq)wGqHqIqJqKqLqMq*wNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q+w'q(q)q*q,w+q,q-q.q-w/q:q;q.w=q?q@q[q]q^q_q`q/w{q|q}q~qarbr:wcrdrerfrgr;whr=wirjrkrlrmrnr?w@worprqrrrsrtrurvrwrxryrzrArBrCr[wDrErFrGrHrIrJrKrLrMrNrOrPr]wQrRrSrTrUrVr^wWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r_w$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r`w|r}r~rasbscsdsesfsgshsisjsks{wlsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTs|wUsVsWsXsYs}wZs0s1s2s3s4s5s6s7s~w8s9s!s#s$s%s's(sax)s*s+s,s-sbx.scx/s:s;s=s?sdx@s[s]s^sex_s`s{s|sfx}s~satbtctdtetftgxgthtitjtktltmtntotptqtrthxstttutvtwtxtytztAtBtCtDtEtixFtGtHtItJtKtLtjxMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$tkx%t't(t)tlx*t+t,t-tmx.t/t:tnx;t=t?t@t[t]t^t_tox`t{t|t}t~taupxbucudueufuqxgurxhuiujukulumusxtxnuoupuqurusutuuuvuwuxuyuzuAuBuuxCuDuEuFuGuHuIuJuKuLuMuNuOuvxPuQuRuSuTuUuwxVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!uxx#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`uyx{u|u}u~u

28 identity = Identity() 2h i j k l m n o p q avr s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bv0 1 2 3 4 cv5 6 7 8 9 ! # $ % dv' ( ) * + , - . ev/ : ; = ? fv@ gv[ ] ^ _ ` hv{ | } ~ ivabbbcbdbjvebfbgbhbibjbkblbkvmbnbobpbqbrbsbtbubvbwbxblvybzbAbBbCbDbEbFbGbHbIbJbKbmvLbMbNbObPbQbRbnvSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+bov,b-b.b/bpv:b;b=b?bqv@b[b]brv^b_b`b{b|b}b~bacsvbcccdcecfcgctvhcicjckclcuvmcvvncocpcqcrcscwvxvtcucvcwcxcyczcAcBcCcDcEcFcGcHcyvIcJcKcLcMcNcOcPcQcRcScTcUczvVcWcXcYcZc0cAv1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)cBv*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdCvcdddedfdgdhdidjdkdldmdndodpdDvqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdEvZd0d1d2d3dFv4d5d6d7d8d9d!d#d$dGv%d'd(d)d*d+d,d-dHv.d/d:d;d=dIv?dJv@d[d]d^d_dKv`d{d|d}dLv~daebeceMvdeeefegeheiejekeNvlemeneoepeqereseteueveweOvxeyezeAeBeCeDeEeFeGeHeIeJePvKeLeMeNeOePeQeQvReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eRv+e,e-e.eSv/e:e;e=eTv?e@e[eUv]e^e_e`e{e|e}e~eVvafbfcfdfefffWvgfhfifjfkfXvlfYvmfnfofpfqfrfZv0vsftfufvfwfxfyfzfAfBfCfDfEfFfGf1vHfIfJfKfLfMfNfOfPfQfRfSfTf2vUfVfWfXfYfZf3v0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f4v)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fag5vbgcgdgegfggghgigjgkglgmgngog6vpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXg7vYgZg0g1g2g8v3g4g5g6g7g8g9g!g#g9v$g%g'g(g)g*g+g,g!v-g.g/g:g;g#v=g$v?g@g[g]g^g%v_g`g{g|g'v}g~gahbh(vchdhehfhghhhihjh)vkhlhmhnhohphqhrhshthuhvh*vwhxhyhzhAhBhChDhEhFhGhHhIh+vJhKhLhMhNhOhPh,vQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h-v*h+h,h-h.v.h/h:h;h/v=h?h@h:v[h]h^h_h`h{h|h}h;v~haibicidiei=vfigihiiiji?vki@vliminioipiqi[v]vrisitiuiviwixiyiziAiBiCiDiEiFi^vGiHiIiJiKiLiMiNiOiPiQiRiSi_vTiUiViWiXiYi`vZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i{v(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~i|vajbjcjdjejfjgjhjijjjkjljmjnj}vojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWj~vXjYjZj0j1jaw2j3j4j5j6j7j8j9j!jbw#j$j%j'j(j)j*j+jcw,j-j.j/j:jdw;jew=j?j@j[j]jfw^j_j`j{jgw|j}j~jakhwbkckdkekfkgkhkikiwjkkklkmknkokpkqkrksktkukjwvkwkxkykzkAkBkCkDkEkFkGkHkkwIkJkKkLkMkNkOklwPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(kmw)k*k+k,knw-k.k/k:kow;k=k?kpw@k[k]k^k_k`k{k|kqw}k~kalblcldlrwelflglhlilswjltwklllmlnlolpluwvwqlrlsltlulvlwlxlylzlAlBlClDlElwwFlGlHlIlJlKlLlMlNlOlPlQlRlxwSlTlUlVlWlXlywYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%lzw'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lAw~lambmcmdmemfmgmhmimjmkmlmmmBwnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmCwWmXmYmZm0mDw1m2m3m4m5m6m7m8m9mEw!m#m$m%m'm(m)m*mFw+m,m-m.m/mGw:mHw;m=m?m@m[mIw]m^m_m`mJw{m|m}m~mKwanbncndnenfngnhnLwinjnknlnmnnnonpnqnrnsntnMwunvnwnxnynznAnBnCnDnEnFnGnNwHnInJnKnLnMnNnOwOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'nPw(n)n*n+nQw,n-n.n/nRw:n;n=nSw?n@n[n]n^n_n`n{nTw|n}n~naobocoUwdoeofogohoVwioWwjokolomonoooXwYwpoqorosotouovowoxoyozoAoBoCoDoZwEoFoGoHoIoJoKoLoMoNoOoPoQo0wRoSoToUoVoWo1wXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o2w%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o3w}o~oapbpcpdpepfpgphpipjpkplp4wmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUp5wVpWpXpYpZp6w0p1p2p3p4p5p6p7p8p7w9p!p#p$p%p'p(p)p8w*p+p,p-p.p9w/p!w:p;p=p?p@p#w[p]p^p_p$w`p{p|p}p%w~paqbqcqdqeqfqgq'whqiqjqkqlqmqnqoqpqqqrqsq(wtquqvqwqxqyqzqAqBqCqDqEqFq)wGqHqIqJqKqLqMq*wNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q+w'q(q)q*q,w+q,q-q.q-w/q:q;q.w=q?q@q[q]q^q_q`q/w{q|q}q~qarbr:wcrdrerfrgr;whr=wirjrkrlrmrnr?w@worprqrrrsrtrurvrwrxryrzrArBrCr[wDrErFrGrHrIrJrKrLrMrNrOrPr]wQrRrSrTrUrVr^wWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r_w$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r`w|r}r~rasbscsdsesfsgshsisjsks{wlsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTs|wUsVsWsXsYs}wZs0s1s2s3s4s5s6s7s~w8s9s!s#s$s%s's(sax)s*s+s,s-sbx.scx/s:s;s=s?sdx@s[s]s^sex_s`s{s|sfx}s~satbtctdtetftgxgthtitjtktltmtntotptqtrthxstttutvtwtxtytztAtBtCtDtEtixFtGtHtItJtKtLtjxMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$tkx%t't(t)tlx*t+t,t-tmx.t/t:tnx;t=t?t@t[t]t^t_tox`t{t|t}t~taupxbucudueufuqxgurxhuiujukulumusxtxnuoupuqurusutuuuvuwuxuyuzuAuBuuxCuDuEuFuGuHuIuJuKuLuMuNuOuvxPuQuRuSuTuUuwxVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!uxx#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`uyx{u|u}u~u

29 

30 if not identity.is_logged_in(): 2h i j k l m n o p q avr s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bv0 1 2 3 4 cv5 6 7 8 9 ! # $ % dv' ( ) * + , - . ev/ : ; = ? fv@ gv[ ] ^ _ ` hv{ | } ~ ivabbbcbdbjvebfbgbhbibjbkblbkvmbnbobpbqbrbsbtbubvbwbxblvybzbAbBbCbDbEbFbGbHbIbJbKbmvLbMbNbObPbQbRbnvSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+bov,b-b.b/bpv:b;b=b?bqv@b[b]brv^b_b`b{b|b}b~bacsvbcccdcecfcgctvhcicjckclcuvmcvvncocpcqcrcscwvxvtcucvcwcxcyczcAcBcCcDcEcFcGcHcyvIcJcKcLcMcNcOcPcQcRcScTcUczvVcWcXcYcZc0cAv1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)cBv*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadbdCvcdddedfdgdhdidjdkdldmdndodpdDvqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdEvZd0d1d2d3dFv4d5d6d7d8d9d!d#d$dGv%d'd(d)d*d+d,d-dHv.d/d:d;d=dIv?dJv@d[d]d^d_dKv`d{d|d}dLv~daebeceMvdeeefegeheiejekeNvlemeneoepeqereseteueveweOvxeyezeAeBeCeDeEeFeGeHeIeJePvKeLeMeNeOePeQeQvReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eRv+e,e-e.eSv/e:e;e=eTv?e@e[eUv]e^e_e`e{e|e}e~eVvafbfcfdfefffWvgfhfifjfkfXvlfYvmfnfofpfqfrfZv0vsftfufvfwfxfyfzfAfBfCfDfEfFfGf1vHfIfJfKfLfMfNfOfPfQfRfSfTf2vUfVfWfXfYfZf3v0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f4v)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fag5vbgcgdgegfggghgigjgkglgmgngog6vpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXg7vYgZg0g1g2g8v3g4g5g6g7g8g9g!g#g9v$g%g'g(g)g*g+g,g!v-g.g/g:g;g#v=g$v?g@g[g]g^g%v_g`g{g|g'v}g~gahbh(vchdhehfhghhhihjh)vkhlhmhnhohphqhrhshthuhvh*vwhxhyhzhAhBhChDhEhFhGhHhIh+vJhKhLhMhNhOhPh,vQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h-v*h+h,h-h.v.h/h:h;h/v=h?h@h:v[h]h^h_h`h{h|h}h;v~haibicidiei=vfigihiiiji?vki@vliminioipiqi[v]vrisitiuiviwixiyiziAiBiCiDiEiFi^vGiHiIiJiKiLiMiNiOiPiQiRiSi_vTiUiViWiXiYi`vZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i{v(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~i|vajbjcjdjejfjgjhjijjjkjljmjnj}vojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWj~vXjYjZj0j1jaw2j3j4j5j6j7j8j9j!jbw#j$j%j'j(j)j*j+jcw,j-j.j/j:jdw;jew=j?j@j[j]jfw^j_j`j{jgw|j}j~jakhwbkckdkekfkgkhkikiwjkkklkmknkokpkqkrksktkukjwvkwkxkykzkAkBkCkDkEkFkGkHkkwIkJkKkLkMkNkOklwPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(kmw)k*k+k,knw-k.k/k:kow;k=k?kpw@k[k]k^k_k`k{k|kqw}k~kalblcldlrwelflglhlilswjltwklllmlnlolpluwvwqlrlsltlulvlwlxlylzlAlBlClDlElwwFlGlHlIlJlKlLlMlNlOlPlQlRlxwSlTlUlVlWlXlywYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%lzw'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lAw~lambmcmdmemfmgmhmimjmkmlmmmBwnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmCwWmXmYmZm0mDw1m2m3m4m5m6m7m8m9mEw!m#m$m%m'm(m)m*mFw+m,m-m.m/mGw:mHw;m=m?m@m[mIw]m^m_m`mJw{m|m}m~mKwanbncndnenfngnhnLwinjnknlnmnnnonpnqnrnsntnMwunvnwnxnynznAnBnCnDnEnFnGnNwHnInJnKnLnMnNnOwOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'nPw(n)n*n+nQw,n-n.n/nRw:n;n=nSw?n@n[n]n^n_n`n{nTw|n}n~naobocoUwdoeofogohoVwioWwjokolomonoooXwYwpoqorosotouovowoxoyozoAoBoCoDoZwEoFoGoHoIoJoKoLoMoNoOoPoQo0wRoSoToUoVoWo1wXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o2w%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o3w}o~oapbpcpdpepfpgphpipjpkplp4wmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUp5wVpWpXpYpZp6w0p1p2p3p4p5p6p7p8p7w9p!p#p$p%p'p(p)p8w*p+p,p-p.p9w/p!w:p;p=p?p@p#w[p]p^p_p$w`p{p|p}p%w~paqbqcqdqeqfqgq'whqiqjqkqlqmqnqoqpqqqrqsq(wtquqvqwqxqyqzqAqBqCqDqEqFq)wGqHqIqJqKqLqMq*wNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q+w'q(q)q*q,w+q,q-q.q-w/q:q;q.w=q?q@q[q]q^q_q`q/w{q|q}q~qarbr:wcrdrerfrgr;whr=wirjrkrlrmrnr?w@worprqrrrsrtrurvrwrxryrzrArBrCr[wDrErFrGrHrIrJrKrLrMrNrOrPr]wQrRrSrTrUrVr^wWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r_w$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r`w|r}r~rasbscsdsesfsgshsisjsks{wlsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTs|wUsVsWsXsYs}wZs0s1s2s3s4s5s6s7s~w8s9s!s#s$s%s's(sax)s*s+s,s-sbx.scx/s:s;s=s?sdx@s[s]s^sex_s`s{s|sfx}s~satbtctdtetftgxgthtitjtktltmtntotptqtrthxstttutvtwtxtytztAtBtCtDtEtixFtGtHtItJtKtLtjxMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$tkx%t't(t)tlx*t+t,t-tmx.t/t:tnx;t=t?t@t[t]t^t_tox`t{t|t}t~taupxbucudueufuqxgurxhuiujukulumusxtxnuoupuqurusutuuuvuwuxuyuzuAuBuuxCuDuEuFuGuHuIuJuKuLuMuNuOuvxPuQuRuSuTuUuwxVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!uxx#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`uyx{u|u}u~u

31 toolkit.fail( 2avbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,v-v.v/v:v;v=v?v@v[v]v^v_v`v{v|v}v~vawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!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~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyx

32 "not_logged_in", 

33 "No credentials found.", 

34 hint="Run `fastapi cloud login`.", 

35 ) 

36 

37 ctx.meta[_CONTEXT_KEY] = UserCommandContext( 2h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!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~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!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~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!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~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~u

38 toolkit=toolkit, 

39 identity=identity, 

40 ) 

41 return super().invoke(ctx) 2h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!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~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7p8p9p!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~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!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~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~u