Coverage for fastapi/_compat/shared.py: 100%
113 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1import sys 1fabcdeg
2import types 1fabcdeg
3import typing 1fabcdeg
4from collections import deque 1fabcdeg
5from dataclasses import is_dataclass 1fabcdeg
6from typing import ( 1fabcdeg
7 Any,
8 Deque,
9 FrozenSet,
10 List,
11 Mapping,
12 Sequence,
13 Set,
14 Tuple,
15 Type,
16 Union,
17)
19from fastapi._compat import may_v1 1fabcdeg
20from fastapi.types import UnionType 1fabcdeg
21from pydantic import BaseModel 1fabcdeg
22from pydantic.version import VERSION as PYDANTIC_VERSION 1fabcdeg
23from starlette.datastructures import UploadFile 1fabcdeg
24from typing_extensions import Annotated, get_args, get_origin 1fabcdeg
26# Copy from Pydantic v2, compatible with v1
27if sys.version_info < (3, 9): 1fabcdeg
28 # Pydantic no longer supports Python 3.8, this might be incorrect, but the code
29 # this is used for is also never reached in this codebase, as it's a copy of
30 # Pydantic's lenient_issubclass, just for compatibility with v1
31 # TODO: remove when dropping support for Python 3.8
32 WithArgsTypes: Tuple[Any, ...] = () 1f
33elif sys.version_info < (3, 10): 1abcdeg
34 WithArgsTypes: tuple[Any, ...] = (typing._GenericAlias, types.GenericAlias) # type: ignore[attr-defined] 1a
35else:
36 WithArgsTypes: tuple[Any, ...] = ( 1bcdeg
37 typing._GenericAlias, # type: ignore[attr-defined]
38 types.GenericAlias,
39 types.UnionType,
40 ) # pyright: ignore[reportAttributeAccessIssue]
42PYDANTIC_VERSION_MINOR_TUPLE = tuple(int(x) for x in PYDANTIC_VERSION.split(".")[:2]) 1fabcdeg
43PYDANTIC_V2 = PYDANTIC_VERSION_MINOR_TUPLE[0] == 2 1fabcdeg
46sequence_annotation_to_type = { 1fabcdeg
47 Sequence: list,
48 List: list,
49 list: list,
50 Tuple: tuple,
51 tuple: tuple,
52 Set: set,
53 set: set,
54 FrozenSet: frozenset,
55 frozenset: frozenset,
56 Deque: deque,
57 deque: deque,
58}
60sequence_types = tuple(sequence_annotation_to_type.keys()) 1fabcdeg
62Url: Type[Any] 1fabcdeg
65# Copy of Pydantic v2, compatible with v1
66def lenient_issubclass( 1fabcdeg
67 cls: Any, class_or_tuple: Union[Type[Any], Tuple[Type[Any], ...], None]
68) -> bool:
69 try: 2f )tMTNTOTPTQTRTSTTTUTVTWTXTcGdGeGfGogYT*tQfRfZT0T9lh 1Trf!lsf*d2T3T4T2R3R4R5R6R7R8R9R!R#R$R%R'R5T(R)R*RgRhRiRjRkR+R,RlRmR6TZj7T8T8e1kDl+t9T!T#T,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t$T%T_t`t'T(TEl)T*T+T#l$l,TgG{t|t}t~t-Taubucu2ksi-R.T.Rdu/TeuyetiXsYsZs9e%l'l!e#e$e:T(lpbqbrbsbtbubdbPc;T=T?T@T[Tfugu]Thuiu)l*l+l,lju-l.l^T_T`Tpg%eqgSfTfUf'etf+d^ ,d{T|T}T~TaUhGiGbUcUdUeUfUgUhUiUjUkUlU0jkumU/lnUoU0spUqUebvbwb-b.bxbrU/b:b:l;lsUjG=l?llu@ltUkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,GmunuoupuqurusutuuuvuuUwuxuvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!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~UaVbVcVdVeVfVgVhViVjVkVlV-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDumVEunVjHoVpVFuGuHuIuJuKu]l^l_l`lqVrVsVuiLutVkHuVlHvVFlGl1j2jwVxVMuNu3k4k5kOu6k7k+ , yVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVrgsgtgugVVWVXVvgwgxgygYVzgAgBgCgZV0V1V2V3VPuQuRuSu4VmHnHTuUu{l5V6V7V8V9V3j4j!V#V$VVuWu%V|l}l'VXuYu(V~lamZu0u)V1ubm*V+V,V-V2u3u4u5u6u7u8u9u!u#u$u.V%u'u(u)u*u+u,u-u.u/u:u;u=u/V:V;V=V?V@V[V]V^V_V`V{V|V}VoHpHqH~VaWcmdmemfmbWrHsHtHcWdWeW?ufWgW@uhWiWjW[u]u^ugmhmimjmkWkmlmmmnmlWommW_u`unWoWpWqWrWsWtWuWvWwWxWyWzWAW{upmBWqmCW|u}u~uavDWbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvEWuvFWGWuHHWIWvHJWvvwvKWLWMWNWOWPWQWxvyvRWzvAvSWBvCvTWwHxHyHUWVWWWXWzHAHBHYWrmsmtmumZWvmwmxmym0WzmAmBmCmDm1WEm2WFm3W4s4W5W6W7WGm8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:WDv;WEvFvGvHvIv=W?W@W[W]W^W_WCHDHEHFH`WGHHHIHJHJvKv{WHmIm|W}WJmKmLmMm5s~W6sKHLHaXMHbXNHNmOmcXPmQmRmSmdXeX8k7s9k8s5jfXvizeMeNegX9s6jhX{i|i}i7jiX~i8jjXTmUmVmWmXmkXYmZm0m1m2m3mlX/R:R;R=R?R@RmX4m5m6m7m8mnXajbjcjdjejLvoXpXqXrXOHPHsXtXwiQHRHuXMvvXwXNvOvxXPvQvyXSHzX[RAXTHBXUHCXDgEgFgDXGgHgIgEXJgKgLgMgNgFXGXHXIXJXKXVHLXWHMXNXOXVfPXRvQXWfSv9mp q r s t u !m#m$m%m'mXHRXSXTX# xiyiUXziAiVXWXXXYHZHYXQcRcScTcTva UvZX0X1X2X3X4X5X6X7X8X9X!X0H1H2H3HOg#XVvXfYf$X%X(mi 'Xuf)mvf.d(X)X*X]R^R_R`R{R|R}R~RaSbScSdSeS+XfSgShSnRoRpRqRrRiSjSsRtR,X9j-X.X(e!kHlWv/X:X;XXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v=X?X9v!v@X[XIl]X^X_X*m+m`X4H#v$v%v'v{X(v)v*v#kBikS|XlS+v}X,vAeCi!s#s$s)e,m-m*e+e,e~X.mybzbAbBbCbDbfb6caYbYcYdYeY-v.vfY/v:v/m:m;m=m;v?m@mgYhYiYPg-eQgZf0f1f.ewf/d_ :djYkYlYmYnY5H6HoYpYqYrYsYtYuYvYwYxYyY!j=vzY[mAYBY%sCYDYgbEbFb=b?bGbEY@b[b]m^mFY7H_m`m?v{mGY8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vHYawbwIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwzZiwAZ7IBZCZjwkwlwmwnwow}m~manbnDZEZFZDipwGZ8IHZ9IIZJlKl#j$jJZKZqwrw$k%k'ksw(k)k- . LZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7ZRgSgTgUg8Z9Z!ZVgWgXgYg#ZZg0g1g2g$Z%Z'Z(Z)Ztwuwvwww*Z!I#Ixwywcn+Z,Z-Z.Z/Z%j'j:Z;Z=ZzwAw?Zdnen@ZBwCw[ZfngnDwEw]ZFwhn^Z_Z`Z{ZGwHwIwJwKwLwMwNwOwPwQw|ZRwSwTwUwVwWwXwYwZw0w1w2w3w}Z~Za0b0c0d0e0f0g0h0i0j0k0l0$I%I'Im0n0injnknlno0(I)I*Ip0uRvR4wq0r05ws0t0u06w7w8wmnnnonpnv0qnrnsntnw0unx09w!wy0z0A0B0C0D0E0F0G0H0I0J0K0L0#wvnM0wnN0$w%w'w(wO0)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|wP0}wQ0R0+IS0T0,IU0~waxV0W0X0Y0Z00010bxcx20dxex30fxgx40-I.I/I50607080:I;I=I90(j)j*j+j!0,j-j.j/j#0:j;j=j?j@j$0xn%0yn'0*s(0)0*0+0zn,0-0.0/0:0;0=0?0@0[0]0^0_0`0{0|0hx}0ixjxkxlxmx~0a1b1c1d1e1f1+s,s-s.sg1/s:s;s=snxoxh1AnBni1j1CnDnEnFn*kk1+k?s@swR?Il1@IGnHnm1[I]I^I_In1o1,k[s-k]s[jp1EiBeOePeq1^s]jr12f3f4fFis15fGit1InJnKnLnMnu1NnOnPnQnRnSnv1mSnSoSpSqSrSw1TnUnVnWnXnx1fjgjhjijjjpxy1z1A1B1`I{IC1D1Hi|I}IE1qxF1G1rxsxH1txuxI1~IJ1sSK1aJL1bJM13g4g5gN16g7g8gO19g!g#g$g%gP1Q1R1S1T1U1cJV1dJW1X1Y16fZ1vx017fwxYnw x y z A B Zn0n1n2n3neJfJ112131$ IiJi41KiLi516171gJhJ817c8c9c!cxxb yx91!1#1$1%1'1(1)1*1+1,1-1iJjJkJlJ'g.1zx8f9f/1:14nj ;1xf5nyf=d=1?1@1tSuSvSwSxSySzSASBSCSDSESFS[1GSHSISxRyRzRARBRJSKSCRDR]1^j^1_1/e.kLlAx`1{1|1BxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMx}1~1NxOxa2b2Mlc2d2e26n7nf2mJPxQxRxSxg2TxUxVx/kMiLSh2MSWxi2XxCeNi_s`s{s:e8n9n;e=e?ej2!nHbIbJbKbLbMbhb:ck2l2m2n2o2YxZxp20x1x#n$n%n'n2x(n)nq2r2s2(g@e)g!f#f$f[ezf?d` @dt2u2v2w2x2nJoJy2z2A2B2C2D2E2F2G2H2I2_j3xJ2*nK2L2|sM2N2ibNbOb^b_bPbO2`b{b+n,nP2pJ-n.n4x/nQ2qJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'xR2(x)xS2T2U2V2W2X2Y2Z202122232425262728292!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~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/xJ3:xK3pKL3M3;x=x?x@x[x]x;n=n?n@nN3O3P3Oi^xQ3qKR3rKS3NlOl`j{jT3U3_x`x:k;k=k{x?k@kV3/ : W3X3Y3Z303132333435363738393!3#3$3%3'3(3)3*3+3*g+g,g-g,3-3.3.g/g:g;g/3=g?g@g[g:3;3=3?3@3|x}x~xay[3sKtKbycy]3[n^3_3`3{3|3|j}j}3~3a4dyeyb4]n^nc4fygyd4_n`nhyiye4jy{nf4g4h4i4kylymynyoypyqyrysytyuyj4vywyxyyyzyAyByCyDyEyFyGyHyk4l4m4n4o4p4q4r4s4t4u4v4w4x4uKvKwKy4z4|n}n~naoA4xKyKzKB4ERFRIyC4D4JyE4F4G4KyLyMybocodoeoH4fogohoioI4joJ4NyOyK4L4M4N4O4P4Q4R4S4T4U4V4W4X4PykoY4loZ4QyRySyTy04UyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y14%y2434AK4454BK64'y(y748494!4#4$4%4)y*y'4+y,y(4-y.y)4CKDKEK*4+4,4-4FKGKHK.4~jakbkck/4dkekfkgk:4hkikjkkklk;4mo=4no?4[k@4[4]4^4oo_4`4{4|4}4~4a5b5c5d5e5f5g5h5i5j5/yk5:y;y=y?y@yl5m5n5o5p5q5r5btctdtets5ftgthtit[y]yt5poqou5v5rosotouo]kw5^kjtktGRIKx5JKvowoy5KKLKMKNKz5A5_klt`kmtmkB5PiDeQeReC5ntnkD5'f(f)fQiE5*fRiF5xoyozoAoBoG5CoDoEoFoGoHoH5NSOSPSQSRSSSI5IoJoKoLoMoJ5kjljmjnjoj^yK5L5M5N5OKPKO5P5SiQKRKQ5_yR5S5`y{yT5|y}yU5SKV5TSW5TKX5UKY5]g^g_gZ5`g{g|g05}g~gahbhch152535455565VK75WK8595!5+f#5~y$5,fazNoD E F G H I OoPoQoRoSoXKYKcb%5'5(5% TiUi)5ViWi*5+5,5ZK0K-5@c[c]c^cbzc cz.5/5:5;5=5?5@5[5]5^5_5`51K2K3K4Kdh{5dz-f.f|5}5Tok ~5AfUoBf{da6b6c6USVSWSXSYSZS0S1S2S3S4S5S6Sd67S8S9SHRIRJRKRLR!S#SMRNRe6okf6g6]e{kPlezh6i6j6fzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzk6l6rzszm6n6Qlo6p6q6VoWor65Ktzuzvzwzs6xzyzzz|kXi$St6%SAzu6BzEeYiotptqt^eXoYo_e`e{ev6ZoQbRbSbTbUbVbjbgdw6x6y6z6A6CzDzB6EzFz0o1o2o3oGz4o5oC6D6E6eh|efh/f:f;f}eCf|d{ }dF6G6H6I6J66K7KK6L6M6N6O6P6Q6R6S6T6U6pkHzV66oW6X6rtY6Z6kbWbXb}b~bYb06acbc7o8o168K9o!oIz#o269K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSz36TzUz465666768696!6#6$6%6'6(6)6*6+6,6-6.6/6:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7ILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0zV71zW78LX7Y72z3z4z5z6z7z%o'o(o)oZ70717Zi8z279L37!L47RlSlqkrk57679z!z}k~kal#zblcl77; = 8797!7#7$7%7'7(7)7*7+7,7-7.7/7:7;7=7?7@7[7]7^7ghhhihjh_7`7{7khlhmhnh|7ohphqhrh}7~7a8b8c8$z%z'z(zd8#L$L)z*ze8*of8g8h8i8j8sktkk8l8m8+z,zn8+o,oo8-z.zp8-o.o/z:zq8;z/or8s8t8u8=z?z@z[z]z^z_z`z{z|z}zv8~zaAbAcAdAeAfAgAhAiAjAkAlAw8x8y8z8A8B8C8D8E8F8G8H8I8J8%L'L(LK8L8:o;o=o?oM8)L*L+LN8O8P8mAQ8R8nAS8T8U8oApAqA@o[o]o^oV8_o`o{o|oW8}oX8rAsAY8Z808182838485868788898!8#8tA~o$8ap%8uAvAwAxA'8yAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQA(8RA)8*8,L+8,8-L-8SATA.8/8:8;8=8?8@8UAVA[8WAXA]8YAZA^8.L/L:L_8`8{8|8;L=L?L}8bpcpdpep~8fpgphpipa9jpkplpmpnpb9opc9ppd9vte9f9g9h9qpi9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x90Ay91A2A3A4A5Az9A9B9C9D9E9F9@L[L]L^LG9_L`L{L|L6A7AH9rpspI9J9tpupvpwpwtK9xt}L~LL9aMM9bMxpypN9cMdMeMfMO9P9dlytelztukQ90iFeSeTeR9AtvkS9pjqjrjwkT9sjxkU9zpApBpCpDpV9EpFpGpHpIpJpW9'S(S)S*S+S,SX9KpLpMpNpOpY9tjujvjwjxj8AZ9091929gMhM39491iiMjM599A6979!A#A89$A%A99kM!9-S#9lM$9mM%9shthuh'9vhwhxh(9yhzhAhBhCh)9*9+9,9-9.9nM/9oM:9;9=9?f?9'A@9@f(APpK L M N O P QpRpSpTpUppMqM*b[9]9^9' 2i3i_94i5i`9{9|9rMsM}9kdldmdnd)Ad *A~9a!b!c!d!e!f!g!h!i!j!k!tMuMvMwMDhl!+A[f]fm!n!Vpl o!DfWpEfeep!q!r!.S/S:S;S=S?S@S[S]S^S_S`S{Ss!|S}S~SORPRQRRRSRaTbTTRURt!yku!v!~eflTl,Aw!x!y!-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_Az!A!`A{AB!C!UlD!E!F!XpYpG!xM|A}A~AaBH!bBcBdBgl6icTI!dTeBJ!fBGe7iBtCtDtafZp0pbfcfdfK!1pZb0b1b2b3b4blbAdL!M!N!O!P!gBhBQ!iBjB2p3p4p5pkB6p7pR!S!T!EhefFh^f_f`fffFffe| geU!V!W!X!Y!yMzMZ!0!1!2!3!4!5!6!7!8!9!zklB!!8p#!$!Et%!'!mb5b6bdcec7b(!fcgc9p!p)!AM#p$pmB%p*!BMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwB+!xByB,!-!.!/!:!;!=!?!@![!]!^!_!`!{!|!}!~!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#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#aNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEB!#FB##AN$#%#GBHBIBJBKBLB(p)p*p+p'#(#)#8iMB*#BN+#CN,#VlWlAkBk-#.#NBOBhliljlPBklll/#? @ :#;#=#?#@#[#]#^#_#`#{#|#}#~#a$b$c$d$e$f$g$h$i$GhHhIhJhj$k$l$KhLhMhNhm$OhPhQhRhn$o$p$q$r$QBRBSBTBs$DNENUBVBt$,pu$v$w$x$y$CkDkz$A$B$WBXBC$-p.pD$YBZBE$/p:p0B1BF$2B;pG$H$I$J$3B4B5B6B7B8B9B!B#B$B%BK$'B(B)B*B+B,B-B.B/B:B;B=B?BL$M$N$O$P$Q$R$S$T$U$V$W$X$Y$FNGNHNZ$0$=p?p@p[p1$INJNKN2$3$4$@B5$6$[B7$8$9$]B^B_B]p^p_p`p!${p|p}p~p#$aq$$`B{B%$'$($)$*$+$,$-$.$/$:$;$=$?$|Bbq@$cq[$}B~BaCbC]$cCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuC^$vC_$`$LN{$|$MN}$wCxC~$a%b%c%d%e%f%yCzCg%ACBCh%CCDCi%NNONPNj%k%l%m%QNRNSNn%dqeqfqgqo%hqiqjqkqp%lqmqnqoqpqq%qqr%rqs%Itt%u%v%w%sqx%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%ECN%FCGCHCICJCO%P%Q%R%S%T%U%TNUNVNWNV%XNYNZN0NKCLCW%tquqX%Y%vqwqxqyqJtZ%Kt1N2N0%3N1%4NzqAq2%5N6N7N8N3%4%mlLtnlMtEk5%9iHeUeVe6%NtFk7%yjzjAjGk8%BjHk9%BqCqDqEqFq!%GqHqIqJqKqLq#%eTfTgThTiTjT$%MqNqOqPqQq%%CjDjEjFjGjMC'%(%)%*%9N!N+%,%!i#N$N-%NC.%/%OCPC:%QCRC;%%N=%kT?%'N@%(N[%ShThUh]%VhWhXh^%YhZh0h1h2h_%`%{%|%}%~%)Na'*Nb'c'd'|fe'SCf'}fTCRqR S T U V W SqTqUqVqWq+N,N+bg'h'i'( #i$ij'%i'ik'l'm'-N.Nn'EdFdGdHdUCe VCo'p'q'r's't'u'v'w'x'y'z'/N:N;N=N3hA'WC~fagB'C'Xqm GfHfmeD'E'F'lTmTnToTpTqTrTsTtTuTvTwTxTG'yTzTATVRWRXRYRZRBTCT0R1RH'IkI'J'gfolXlXCK'L'M'YCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9CN'O'!C#CP'Q'YlR'S'T'YqZqU'?N$C%C'C(CV')C*C+Cpl(iDTW'ET,CX'-CIe)iOtPtQthf0q1qifjfkfY'2q8b9b!b#b$b%bnbUdZ'0'1'2'3'.C/C4':C;C3q4q5q6q=C7q8q5'6'7'4hlf5hbgcgdgmfIfne} oe8'9'!'#'$'@N[N%'''(')'*'+','-'.'/':'Jk?C;'9q='?'Rt@'['ob'b(bicjc)b]'kclc!q#q^']N$q%q@C'q_'^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaD`'bDcD{'|'}'~'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(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(!(#($(%('((()(*(+(,(-(.(/(:(3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiD;(jD=(]O?(@(kDlDmDnDoDpD)q*q+q,q[(](^(*iqD_(^O`(_O{(Zl0lKkLk|(}(rDsDqlrlsltDtlul~([ ] a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)6h7h8h9hx)y)z)!h#h$h%hA)'h(h)h*hB)C)D)E)F)uDvDwDxDG)`O{OyDzDH)-qI)J)K)L)M)MkNkN)O)P)ADBDQ).q/qR)CDDDS):q;qEDFDT)GD=qU)V)W)X)HDIDJDKDLDMDNDODPDQDRDY)SDTDUDVDWDXDYDZD0D1D2D3D4DZ)0)1)2)3)4)5)6)7)8)9)!)#)$)|O}O~O%)')?q@q[q]q()aPbPcP))*)+)5D,)-)6D.)/):)7D8D9D^q_q`q{q;)|q}q~qar=)br?)!D#D@)[)])^)_)`){)|)})~)a*b*c*d*$Dcre*drf*%D'D(D)Dg**D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}Dh*~Di*j*dPk*l*ePm*aEbEn*o*p*q*r*s*t*cEdEu*eEfEv*gEhEw*fPgPhPx*y*z*A*iPjPkPB*erfrgrhrC*irjrkrlrD*mrnrorprqrE*rrF*srG*VtH*I*J*K*trL*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*0*iE1*jEkElEmEnE2*3*4*5*6*7*8*lPmPnPoP9*pPqPrPsPoEpE!*urvr#*$*wrxryrzrWt%*XttPuP'*vP(*wPArBr)*xPyPzPAP**+*vlYtwlZtOk,*+iJeWeXe-*0tPk.*HjIjJjQk/*KjRk:*CrDrErFrGr;*HrIrJrKrLrMr=*FTGTHTITJTKT?*NrOrPrQrRr@*LjMjNjOjPjqE[*]*^*_*BPCP`*{*,iDPEP|*rE}*~*sEtEa+uEvEb+FPc+LTd+GPe+HPf++h,h-hg+.h/h:hh+;h=h?h@h[hi+j+k+l+m+n+IPo+JPp+q+r+fgs+wEt+ggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,bu+v+w+) -i.ix+/i:iy+z+A+MPNPB+YdZd0d1dyEg zEC+D+E+F+G+H+I+J+K+L+M+N+OPPPQPRP]hO+AEhgigP+Q+Yrn JfKfueR+SkS+T+Lf1lBEU+V+W+CEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEX+Y+OEPEZ+0+2l1+2+3+Zr0r4+SPQERESETE5+UEVEWExl;iXE6+YEKe=i1t2t3tnf1r2rofpfqf7+3rncocpcqcrcsctcve8+9+!+#+ZE0E$+1E2E4r5r6r7r3E8r9r%+'+^hNf_hjgkglgOfMfYe~ Ze(+)+*+++,+TPUP-+.+/+:+;+=+?+@+[+]+^+yl4E_+!r`+{+4t|+}+ucvcwcxcyczc~+AcBc#r$ra,VP%r'r5E(rb,WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(Ec,)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:Ed,;Ee,VQf,g,=E?E@E[E]E^E*r+r,r-rh,i,j,?ik,WQl,XQm,4l5lTkUkn,o,_E`E6l7l8l{EzlAlp,abbbq,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,`h{h|h}hN,O,P,~haibiciQ,dieifigiR,S,T,U,V,|E}E~EaFW,YQZQbFcFX,8tY,Z,0,1,2,VkWk3,4,5,dFeF6,.r/r7,fFgF8,:r;rhFiF9,jF=r!,#,$,%,kFlFmFnFoFpFqFrFsFtFuF',vFwFxFyFzFAFBFCFDFEFFFGFHF(,),*,+,,,-,.,/,:,;,=,?,@,[,0Q1Q2Q],^,?r@r[r]r_,3Q4Q5Q`,{,|,IF},JF~,a-b-KFLFMF^r_r`r{rc-|r}r~rasd-bse-NFOFf-g-h-i-j-k-l-m-n-o-p-q-r-PFcss-dst-QFRFSFTFu-UFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Fv-%Fw-x-6Qy-z-7QA-'F(FB-C-D-E-F-G-H-)F*FI-+F,FJ--F.FK-8Q9Q!QL-M-N-O-#Q$Q%QP-esfsgshsQ-isjskslsR-msnsospsqsS-rsT-ssU-9tV-W-X-Y-!tZ-0-1-2-3-4-5-6-7-8-9-!-#-/F$-:F;F=F?F@F%-'-'Q(Q)Q*Q(-+Q,Q-Q.Q[F]F)-tsus*-+-vswsxsys#t,-$t/Q:Q--;Q.-=QzsAs/-?Q@Q[Q]Q:-;-Bl%tCl'tXk=-@iLe6e7e?-(tYk@-QjRjSjZk[-Tj0k]-BsCsDsEsFs^-GsHsIsJsKsLs_-MsNsOsPsQs`-UjVjWjXjYj^F{-|-}-~-^Q_Qa.b.[i`Q{Qc._Fd.e.`F{Ff.|F}Fg.|Qh.}Qi.~Qj.hiiijik.kilimil.nioipiqirim.n.o.p.q.r.aRs.bRt.u.v.mgw.~Fx.ngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCcy.z.A.* ]i^iB._i`iC.D.E.eRfRF.xe'd(d)dbG
70 return isinstance(cls, type) and issubclass(cls, class_or_tuple) # type: ignore[arg-type] 2f )tMTNTOTPTQTRTSTTTUTVTWTXTcGdGeGfGogYT*tQfRfZT0T9lh 1Trf!lsf*d2T3T4T2R3R4R5R6R7R8R9R!R#R$R%R'R5T(R)R*RgRhRiRjRkR+R,RlRmR6TZj7T8T8e1kDl+t9T!T#T,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t$T%T_t`t'T(TEl)T*T+T#l$l,TgG{t|t}t~t-Taubucu2ksi-R.T.Rdu/TeuyetiXsYsZs9e%l'l!e#e$e:T(lpbqbrbsbtbubdbPc;T=T?T@T[Tfugu]Thuiu)l*l+l,lju-l.l^T_T`Tpg%eqgSfTfUf'etf+d^ ,d{T|T}T~TaUhGiGbUcUdUeUfUgUhUiUjUkUlU0jkumU/lnUoU0spUqUebvbwb-b.bxbrU/b:b:l;lsUjG=l?llu@ltUkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,GmunuoupuqurusutuuuvuuUwuxuvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!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~UaVbVcVdVeVfVgVhViVjVkVlV-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDumVEunVjHoVpVFuGuHuIuJuKu]l^l_l`lqVrVsVuiLutVkHuVlHvVFlGl1j2jwVxVMuNu3k4k5kOu6k7k+ , yVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVrgsgtgugVVWVXVvgwgxgygYVzgAgBgCgZV0V1V2V3VPuQuRuSu4VmHnHTuUu{l5V6V7V8V9V3j4j!V#V$VVuWu%V|l}l'VXuYu(V~lamZu0u)V1ubm*V+V,V-V2u3u4u5u6u7u8u9u!u#u$u.V%u'u(u)u*u+u,u-u.u/u:u;u=u/V:V;V=V?V@V[V]V^V_V`V{V|V}VoHpHqH~VaWcmdmemfmbWrHsHtHcWdWeW?ufWgW@uhWiWjW[u]u^ugmhmimjmkWkmlmmmnmlWommW_u`unWoWpWqWrWsWtWuWvWwWxWyWzWAW{upmBWqmCW|u}u~uavDWbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvEWuvFWGWuHHWIWvHJWvvwvKWLWMWNWOWPWQWxvyvRWzvAvSWBvCvTWwHxHyHUWVWWWXWzHAHBHYWrmsmtmumZWvmwmxmym0WzmAmBmCmDm1WEm2WFm3W4s4W5W6W7WGm8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:WDv;WEvFvGvHvIv=W?W@W[W]W^W_WCHDHEHFH`WGHHHIHJHJvKv{WHmIm|W}WJmKmLmMm5s~W6sKHLHaXMHbXNHNmOmcXPmQmRmSmdXeX8k7s9k8s5jfXvizeMeNegX9s6jhX{i|i}i7jiX~i8jjXTmUmVmWmXmkXYmZm0m1m2m3mlX/R:R;R=R?R@RmX4m5m6m7m8mnXajbjcjdjejLvoXpXqXrXOHPHsXtXwiQHRHuXMvvXwXNvOvxXPvQvyXSHzX[RAXTHBXUHCXDgEgFgDXGgHgIgEXJgKgLgMgNgFXGXHXIXJXKXVHLXWHMXNXOXVfPXRvQXWfSv9mp q r s t u !m#m$m%m'mXHRXSXTX# xiyiUXziAiVXWXXXYHZHYXQcRcScTcTva UvZX0X1X2X3X4X5X6X7X8X9X!X0H1H2H3HOg#XVvXfYf$X%X(mi 'Xuf)mvf.d(X)X*X]R^R_R`R{R|R}R~RaSbScSdSeS+XfSgShSnRoRpRqRrRiSjSsRtR,X9j-X.X(e!kHlWv/X:X;XXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v=X?X9v!v@X[XIl]X^X_X*m+m`X4H#v$v%v'v{X(v)v*v#kBikS|XlS+v}X,vAeCi!s#s$s)e,m-m*e+e,e~X.mybzbAbBbCbDbfb6caYbYcYdYeY-v.vfY/v:v/m:m;m=m;v?m@mgYhYiYPg-eQgZf0f1f.ewf/d_ :djYkYlYmYnY5H6HoYpYqYrYsYtYuYvYwYxYyY!j=vzY[mAYBY%sCYDYgbEbFb=b?bGbEY@b[b]m^mFY7H_m`m?v{mGY8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vHYawbwIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwzZiwAZ7IBZCZjwkwlwmwnwow}m~manbnDZEZFZDipwGZ8IHZ9IIZJlKl#j$jJZKZqwrw$k%k'ksw(k)k- . LZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7ZRgSgTgUg8Z9Z!ZVgWgXgYg#ZZg0g1g2g$Z%Z'Z(Z)Ztwuwvwww*Z!I#Ixwywcn+Z,Z-Z.Z/Z%j'j:Z;Z=ZzwAw?Zdnen@ZBwCw[ZfngnDwEw]ZFwhn^Z_Z`Z{ZGwHwIwJwKwLwMwNwOwPwQw|ZRwSwTwUwVwWwXwYwZw0w1w2w3w}Z~Za0b0c0d0e0f0g0h0i0j0k0l0$I%I'Im0n0injnknlno0(I)I*Ip0uRvR4wq0r05ws0t0u06w7w8wmnnnonpnv0qnrnsntnw0unx09w!wy0z0A0B0C0D0E0F0G0H0I0J0K0L0#wvnM0wnN0$w%w'w(wO0)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|wP0}wQ0R0+IS0T0,IU0~waxV0W0X0Y0Z00010bxcx20dxex30fxgx40-I.I/I50607080:I;I=I90(j)j*j+j!0,j-j.j/j#0:j;j=j?j@j$0xn%0yn'0*s(0)0*0+0zn,0-0.0/0:0;0=0?0@0[0]0^0_0`0{0|0hx}0ixjxkxlxmx~0a1b1c1d1e1f1+s,s-s.sg1/s:s;s=snxoxh1AnBni1j1CnDnEnFn*kk1+k?s@swR?Il1@IGnHnm1[I]I^I_In1o1,k[s-k]s[jp1EiBeOePeq1^s]jr12f3f4fFis15fGit1InJnKnLnMnu1NnOnPnQnRnSnv1mSnSoSpSqSrSw1TnUnVnWnXnx1fjgjhjijjjpxy1z1A1B1`I{IC1D1Hi|I}IE1qxF1G1rxsxH1txuxI1~IJ1sSK1aJL1bJM13g4g5gN16g7g8gO19g!g#g$g%gP1Q1R1S1T1U1cJV1dJW1X1Y16fZ1vx017fwxYnw x y z A B Zn0n1n2n3neJfJ112131$ IiJi41KiLi516171gJhJ817c8c9c!cxxb yx91!1#1$1%1'1(1)1*1+1,1-1iJjJkJlJ'g.1zx8f9f/1:14nj ;1xf5nyf=d=1?1@1tSuSvSwSxSySzSASBSCSDSESFS[1GSHSISxRyRzRARBRJSKSCRDR]1^j^1_1/e.kLlAx`1{1|1BxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMx}1~1NxOxa2b2Mlc2d2e26n7nf2mJPxQxRxSxg2TxUxVx/kMiLSh2MSWxi2XxCeNi_s`s{s:e8n9n;e=e?ej2!nHbIbJbKbLbMbhb:ck2l2m2n2o2YxZxp20x1x#n$n%n'n2x(n)nq2r2s2(g@e)g!f#f$f[ezf?d` @dt2u2v2w2x2nJoJy2z2A2B2C2D2E2F2G2H2I2_j3xJ2*nK2L2|sM2N2ibNbOb^b_bPbO2`b{b+n,nP2pJ-n.n4x/nQ2qJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'xR2(x)xS2T2U2V2W2X2Y2Z202122232425262728292!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~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/xJ3:xK3pKL3M3;x=x?x@x[x]x;n=n?n@nN3O3P3Oi^xQ3qKR3rKS3NlOl`j{jT3U3_x`x:k;k=k{x?k@kV3/ : W3X3Y3Z303132333435363738393!3#3$3%3'3(3)3*3+3*g+g,g-g,3-3.3.g/g:g;g/3=g?g@g[g:3;3=3?3@3|x}x~xay[3sKtKbycy]3[n^3_3`3{3|3|j}j}3~3a4dyeyb4]n^nc4fygyd4_n`nhyiye4jy{nf4g4h4i4kylymynyoypyqyrysytyuyj4vywyxyyyzyAyByCyDyEyFyGyHyk4l4m4n4o4p4q4r4s4t4u4v4w4x4uKvKwKy4z4|n}n~naoA4xKyKzKB4ERFRIyC4D4JyE4F4G4KyLyMybocodoeoH4fogohoioI4joJ4NyOyK4L4M4N4O4P4Q4R4S4T4U4V4W4X4PykoY4loZ4QyRySyTy04UyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y14%y2434AK4454BK64'y(y748494!4#4$4%4)y*y'4+y,y(4-y.y)4CKDKEK*4+4,4-4FKGKHK.4~jakbkck/4dkekfkgk:4hkikjkkklk;4mo=4no?4[k@4[4]4^4oo_4`4{4|4}4~4a5b5c5d5e5f5g5h5i5j5/yk5:y;y=y?y@yl5m5n5o5p5q5r5btctdtets5ftgthtit[y]yt5poqou5v5rosotouo]kw5^kjtktGRIKx5JKvowoy5KKLKMKNKz5A5_klt`kmtmkB5PiDeQeReC5ntnkD5'f(f)fQiE5*fRiF5xoyozoAoBoG5CoDoEoFoGoHoH5NSOSPSQSRSSSI5IoJoKoLoMoJ5kjljmjnjoj^yK5L5M5N5OKPKO5P5SiQKRKQ5_yR5S5`y{yT5|y}yU5SKV5TSW5TKX5UKY5]g^g_gZ5`g{g|g05}g~gahbhch152535455565VK75WK8595!5+f#5~y$5,fazNoD E F G H I OoPoQoRoSoXKYKcb%5'5(5% TiUi)5ViWi*5+5,5ZK0K-5@c[c]c^cbzc cz.5/5:5;5=5?5@5[5]5^5_5`51K2K3K4Kdh{5dz-f.f|5}5Tok ~5AfUoBf{da6b6c6USVSWSXSYSZS0S1S2S3S4S5S6Sd67S8S9SHRIRJRKRLR!S#SMRNRe6okf6g6]e{kPlezh6i6j6fzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzk6l6rzszm6n6Qlo6p6q6VoWor65Ktzuzvzwzs6xzyzzz|kXi$St6%SAzu6BzEeYiotptqt^eXoYo_e`e{ev6ZoQbRbSbTbUbVbjbgdw6x6y6z6A6CzDzB6EzFz0o1o2o3oGz4o5oC6D6E6eh|efh/f:f;f}eCf|d{ }dF6G6H6I6J66K7KK6L6M6N6O6P6Q6R6S6T6U6pkHzV66oW6X6rtY6Z6kbWbXb}b~bYb06acbc7o8o168K9o!oIz#o269K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSz36TzUz465666768696!6#6$6%6'6(6)6*6+6,6-6.6/6:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7ILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0zV71zW78LX7Y72z3z4z5z6z7z%o'o(o)oZ70717Zi8z279L37!L47RlSlqkrk57679z!z}k~kal#zblcl77; = 8797!7#7$7%7'7(7)7*7+7,7-7.7/7:7;7=7?7@7[7]7^7ghhhihjh_7`7{7khlhmhnh|7ohphqhrh}7~7a8b8c8$z%z'z(zd8#L$L)z*ze8*of8g8h8i8j8sktkk8l8m8+z,zn8+o,oo8-z.zp8-o.o/z:zq8;z/or8s8t8u8=z?z@z[z]z^z_z`z{z|z}zv8~zaAbAcAdAeAfAgAhAiAjAkAlAw8x8y8z8A8B8C8D8E8F8G8H8I8J8%L'L(LK8L8:o;o=o?oM8)L*L+LN8O8P8mAQ8R8nAS8T8U8oApAqA@o[o]o^oV8_o`o{o|oW8}oX8rAsAY8Z808182838485868788898!8#8tA~o$8ap%8uAvAwAxA'8yAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQA(8RA)8*8,L+8,8-L-8SATA.8/8:8;8=8?8@8UAVA[8WAXA]8YAZA^8.L/L:L_8`8{8|8;L=L?L}8bpcpdpep~8fpgphpipa9jpkplpmpnpb9opc9ppd9vte9f9g9h9qpi9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x90Ay91A2A3A4A5Az9A9B9C9D9E9F9@L[L]L^LG9_L`L{L|L6A7AH9rpspI9J9tpupvpwpwtK9xt}L~LL9aMM9bMxpypN9cMdMeMfMO9P9dlytelztukQ90iFeSeTeR9AtvkS9pjqjrjwkT9sjxkU9zpApBpCpDpV9EpFpGpHpIpJpW9'S(S)S*S+S,SX9KpLpMpNpOpY9tjujvjwjxj8AZ9091929gMhM39491iiMjM599A6979!A#A89$A%A99kM!9-S#9lM$9mM%9shthuh'9vhwhxh(9yhzhAhBhCh)9*9+9,9-9.9nM/9oM:9;9=9?f?9'A@9@f(APpK L M N O P QpRpSpTpUppMqM*b[9]9^9' 2i3i_94i5i`9{9|9rMsM}9kdldmdnd)Ad *A~9a!b!c!d!e!f!g!h!i!j!k!tMuMvMwMDhl!+A[f]fm!n!Vpl o!DfWpEfeep!q!r!.S/S:S;S=S?S@S[S]S^S_S`S{Ss!|S}S~SORPRQRRRSRaTbTTRURt!yku!v!~eflTl,Aw!x!y!-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_Az!A!`A{AB!C!UlD!E!F!XpYpG!xM|A}A~AaBH!bBcBdBgl6icTI!dTeBJ!fBGe7iBtCtDtafZp0pbfcfdfK!1pZb0b1b2b3b4blbAdL!M!N!O!P!gBhBQ!iBjB2p3p4p5pkB6p7pR!S!T!EhefFh^f_f`fffFffe| geU!V!W!X!Y!yMzMZ!0!1!2!3!4!5!6!7!8!9!zklB!!8p#!$!Et%!'!mb5b6bdcec7b(!fcgc9p!p)!AM#p$pmB%p*!BMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwB+!xByB,!-!.!/!:!;!=!?!@![!]!^!_!`!{!|!}!~!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#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#aNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEB!#FB##AN$#%#GBHBIBJBKBLB(p)p*p+p'#(#)#8iMB*#BN+#CN,#VlWlAkBk-#.#NBOBhliljlPBklll/#? @ :#;#=#?#@#[#]#^#_#`#{#|#}#~#a$b$c$d$e$f$g$h$i$GhHhIhJhj$k$l$KhLhMhNhm$OhPhQhRhn$o$p$q$r$QBRBSBTBs$DNENUBVBt$,pu$v$w$x$y$CkDkz$A$B$WBXBC$-p.pD$YBZBE$/p:p0B1BF$2B;pG$H$I$J$3B4B5B6B7B8B9B!B#B$B%BK$'B(B)B*B+B,B-B.B/B:B;B=B?BL$M$N$O$P$Q$R$S$T$U$V$W$X$Y$FNGNHNZ$0$=p?p@p[p1$INJNKN2$3$4$@B5$6$[B7$8$9$]B^B_B]p^p_p`p!${p|p}p~p#$aq$$`B{B%$'$($)$*$+$,$-$.$/$:$;$=$?$|Bbq@$cq[$}B~BaCbC]$cCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuC^$vC_$`$LN{$|$MN}$wCxC~$a%b%c%d%e%f%yCzCg%ACBCh%CCDCi%NNONPNj%k%l%m%QNRNSNn%dqeqfqgqo%hqiqjqkqp%lqmqnqoqpqq%qqr%rqs%Itt%u%v%w%sqx%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%ECN%FCGCHCICJCO%P%Q%R%S%T%U%TNUNVNWNV%XNYNZN0NKCLCW%tquqX%Y%vqwqxqyqJtZ%Kt1N2N0%3N1%4NzqAq2%5N6N7N8N3%4%mlLtnlMtEk5%9iHeUeVe6%NtFk7%yjzjAjGk8%BjHk9%BqCqDqEqFq!%GqHqIqJqKqLq#%eTfTgThTiTjT$%MqNqOqPqQq%%CjDjEjFjGjMC'%(%)%*%9N!N+%,%!i#N$N-%NC.%/%OCPC:%QCRC;%%N=%kT?%'N@%(N[%ShThUh]%VhWhXh^%YhZh0h1h2h_%`%{%|%}%~%)Na'*Nb'c'd'|fe'SCf'}fTCRqR S T U V W SqTqUqVqWq+N,N+bg'h'i'( #i$ij'%i'ik'l'm'-N.Nn'EdFdGdHdUCe VCo'p'q'r's't'u'v'w'x'y'z'/N:N;N=N3hA'WC~fagB'C'Xqm GfHfmeD'E'F'lTmTnToTpTqTrTsTtTuTvTwTxTG'yTzTATVRWRXRYRZRBTCT0R1RH'IkI'J'gfolXlXCK'L'M'YCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9CN'O'!C#CP'Q'YlR'S'T'YqZqU'?N$C%C'C(CV')C*C+Cpl(iDTW'ET,CX'-CIe)iOtPtQthf0q1qifjfkfY'2q8b9b!b#b$b%bnbUdZ'0'1'2'3'.C/C4':C;C3q4q5q6q=C7q8q5'6'7'4hlf5hbgcgdgmfIfne} oe8'9'!'#'$'@N[N%'''(')'*'+','-'.'/':'Jk?C;'9q='?'Rt@'['ob'b(bicjc)b]'kclc!q#q^']N$q%q@C'q_'^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaD`'bDcD{'|'}'~'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(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(!(#($(%('((()(*(+(,(-(.(/(:(3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiD;(jD=(]O?(@(kDlDmDnDoDpD)q*q+q,q[(](^(*iqD_(^O`(_O{(Zl0lKkLk|(}(rDsDqlrlsltDtlul~([ ] a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)6h7h8h9hx)y)z)!h#h$h%hA)'h(h)h*hB)C)D)E)F)uDvDwDxDG)`O{OyDzDH)-qI)J)K)L)M)MkNkN)O)P)ADBDQ).q/qR)CDDDS):q;qEDFDT)GD=qU)V)W)X)HDIDJDKDLDMDNDODPDQDRDY)SDTDUDVDWDXDYDZD0D1D2D3D4DZ)0)1)2)3)4)5)6)7)8)9)!)#)$)|O}O~O%)')?q@q[q]q()aPbPcP))*)+)5D,)-)6D.)/):)7D8D9D^q_q`q{q;)|q}q~qar=)br?)!D#D@)[)])^)_)`){)|)})~)a*b*c*d*$Dcre*drf*%D'D(D)Dg**D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}Dh*~Di*j*dPk*l*ePm*aEbEn*o*p*q*r*s*t*cEdEu*eEfEv*gEhEw*fPgPhPx*y*z*A*iPjPkPB*erfrgrhrC*irjrkrlrD*mrnrorprqrE*rrF*srG*VtH*I*J*K*trL*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*0*iE1*jEkElEmEnE2*3*4*5*6*7*8*lPmPnPoP9*pPqPrPsPoEpE!*urvr#*$*wrxryrzrWt%*XttPuP'*vP(*wPArBr)*xPyPzPAP**+*vlYtwlZtOk,*+iJeWeXe-*0tPk.*HjIjJjQk/*KjRk:*CrDrErFrGr;*HrIrJrKrLrMr=*FTGTHTITJTKT?*NrOrPrQrRr@*LjMjNjOjPjqE[*]*^*_*BPCP`*{*,iDPEP|*rE}*~*sEtEa+uEvEb+FPc+LTd+GPe+HPf++h,h-hg+.h/h:hh+;h=h?h@h[hi+j+k+l+m+n+IPo+JPp+q+r+fgs+wEt+ggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,bu+v+w+) -i.ix+/i:iy+z+A+MPNPB+YdZd0d1dyEg zEC+D+E+F+G+H+I+J+K+L+M+N+OPPPQPRP]hO+AEhgigP+Q+Yrn JfKfueR+SkS+T+Lf1lBEU+V+W+CEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEX+Y+OEPEZ+0+2l1+2+3+Zr0r4+SPQERESETE5+UEVEWExl;iXE6+YEKe=i1t2t3tnf1r2rofpfqf7+3rncocpcqcrcsctcve8+9+!+#+ZE0E$+1E2E4r5r6r7r3E8r9r%+'+^hNf_hjgkglgOfMfYe~ Ze(+)+*+++,+TPUP-+.+/+:+;+=+?+@+[+]+^+yl4E_+!r`+{+4t|+}+ucvcwcxcyczc~+AcBc#r$ra,VP%r'r5E(rb,WPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(Ec,)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:Ed,;Ee,VQf,g,=E?E@E[E]E^E*r+r,r-rh,i,j,?ik,WQl,XQm,4l5lTkUkn,o,_E`E6l7l8l{EzlAlp,abbbq,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,`h{h|h}hN,O,P,~haibiciQ,dieifigiR,S,T,U,V,|E}E~EaFW,YQZQbFcFX,8tY,Z,0,1,2,VkWk3,4,5,dFeF6,.r/r7,fFgF8,:r;rhFiF9,jF=r!,#,$,%,kFlFmFnFoFpFqFrFsFtFuF',vFwFxFyFzFAFBFCFDFEFFFGFHF(,),*,+,,,-,.,/,:,;,=,?,@,[,0Q1Q2Q],^,?r@r[r]r_,3Q4Q5Q`,{,|,IF},JF~,a-b-KFLFMF^r_r`r{rc-|r}r~rasd-bse-NFOFf-g-h-i-j-k-l-m-n-o-p-q-r-PFcss-dst-QFRFSFTFu-UFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Fv-%Fw-x-6Qy-z-7QA-'F(FB-C-D-E-F-G-H-)F*FI-+F,FJ--F.FK-8Q9Q!QL-M-N-O-#Q$Q%QP-esfsgshsQ-isjskslsR-msnsospsqsS-rsT-ssU-9tV-W-X-Y-!tZ-0-1-2-3-4-5-6-7-8-9-!-#-/F$-:F;F=F?F@F%-'-'Q(Q)Q*Q(-+Q,Q-Q.Q[F]F)-tsus*-+-vswsxsys#t,-$t/Q:Q--;Q.-=QzsAs/-?Q@Q[Q]Q:-;-Bl%tCl'tXk=-@iLe6e7e?-(tYk@-QjRjSjZk[-Tj0k]-BsCsDsEsFs^-GsHsIsJsKsLs_-MsNsOsPsQs`-UjVjWjXjYj^F{-|-}-~-^Q_Qa.b.[i`Q{Qc._Fd.e.`F{Ff.|F}Fg.|Qh.}Qi.~Qj.hiiijik.kilimil.nioipiqirim.n.o.p.q.r.aRs.bRt.u.v.mgw.~Fx.ngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCcy.z.A.* ]i^iB._i`iC.D.E.eRfRF.xe'd(d)dbG
71 except TypeError: # pragma: no cover 2a uRvR(j)j*j+j,j-j.j/j:j;j=j?j@j+s,s-s.s/s:s;s=s*k+k?s@swR2f3f4fFi5fGib ERFR~jakbkckdkekfkgkhkikjkkklk[kbtctdtetftgthtit]k^kjtktGR'f(f)fQi*fRicb
72 if isinstance(cls, WithArgsTypes): 2a uRvR(j)j*j+j,j-j.j/j:j;j=j?j@j+s,s-s.s/s:s;s=s*k+k?s@swR2f3f4fFi5fGib ERFR~jakbkckdkekfkgkhkikjkkklk[kbtctdtetftgthtit]k^kjtktGR'f(f)fQi*fRicb
73 return False 2a uRvR(j)j*j+j,j-j.j/j:j;j=j?j@j+s,s-s.s/s:s;s=s*k+k?s@swR2f3f4fFi5fGib ERFR~jakbkckdkekfkgkhkikjkkklk[kbtctdtetftgthtit]k^kjtktGR'f(f)fQi*fRicb
74 raise # pragma: no cover
77def _annotation_is_sequence(annotation: Union[Type[Any], None]) -> bool: 1fabcdeg
78 if lenient_issubclass(annotation, (str, bytes)): 2f )tcGdGeGfGog*tQfRf9lh rf!lsf*d2R3R4R5R6R7R8R9R!R#R$R%R'R(R)R*RgRhRiRjRkR+R,RlRmRZj8e1kDl+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`tEl#l$lgG{t|t}t~taubucu2ksi-R.RdueuyetiXsYsZs9e%l'l!e#e$e(lpbqbrbsbtbubdbPcfuguhuiu)l*l+l,lju-l.lpg%eqgSfTfUf'etf+d^ ,dhGiG0jku/l0sebvbwb-b.bxb/b:b:l;ljG=l?llu@lkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,Gmunuoupuqurusutuuuvuwuxu-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDuEujHFuGuHuIuJuKu]l^l_l`luikHlHFlGl1j2jMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSumHnHTuUu{l3j4jVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=uoHpHqHcmdmemfmrHsHtH?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvuHvHvvwvxvyvzvAvBvCvwHxHyHzHAHBHrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmDvEvFvGvHvIvCHDHEHFHGHHHIHJHJvKvHmImJmKmLmMm5s6sKHLHMHNHNmOmPmQmRmSm8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m/R:R;R=R?R@R4m5m6m7m8majbjcjdjejLvOHPHwiQHRHMvNvOvPvQvSH[RTHUHDgEgFgGgHgIgJgKgLgMgNgVHWHVfRvWfSv9mp q r s t u !m#m$m%m'mXH# xiyiziAiYHZHQcRcScTcTva Uv0H1H2H3HOgVvXfYf(mi uf)mvf.d]R^R_R`R{R|R}R~RaSbScSdSeSfSgShSnRoRpRqRrRiSjSsRtR9j(e!kHlWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!vIl*m+m4H#v$v%v'v(v)v*v#kBikSlS+v,vAeCi!s#s$s)e,m-m*e+e,e.mybzbAbBbCbDbfb6c-v.v/v:v/m:m;m=m;v?m@mPg-eQgZf0f1f.ewf/d_ :d5H6H!j=v[m%sgbEbFb=b?bGb@b[b]m^m7H_m`m?v{m8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vawbwHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwiw7Ijwkwlwmwnwow}m~manbnDi8I9IJlKl#j$jqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwww!I#Ixwywcn%j'jzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w$I%I'Iinjnknln(I)I*I4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w+I,I~waxbxcxdxexfxgx-I.I/I:I;I=I(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznhxixjxkxlxmx+s,s-s.s/s:s;s=snxoxAnBnCnDnEnFn*k+k?s@s?I@IGnHn[I]I^I_I,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnmSnSoSpSqSrSTnUnVnWnXnfjgjhjijjjpx`I{IHi|I}Iqxrxsxtxux~IsSaJbJ3g4g5g6g7g8g9g!g#g$g%gcJdJ6fvx7fwxYnw x y z A B Zn0n1n2n3neJfJ$ IiJiKiLigJhJ7c8c9c!cxxb yxiJjJkJlJ'gzx8f9f4nj xf5nyf=dtSuSvSwSxSySzSASBSCSDSESFSGSHSISxRyRzRARBRJSKSCRDR^j/e.kLlAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOxMl6n7nmJPxQxRxSxTxUxVx/kMiLSMSWxXxCeNi_s`s{s:e8n9n;e=e?e!nHbIbJbKbLbMbhb:cYxZx0x1x#n$n%n'n2x(n)n(g@e)g!f#f$f[ezf?d` @dnJoJ_j3x*n|sibNbOb^b_bPb`b{b+n,npJ-n.n4x/nqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'x(x)x?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/x:xpK;x=x?x@x[x]x;n=n?n@nOiqKrKNlOl`j{j_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaysKtKbycy[n|j}jdyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyuKvKwK|n}n~naoxKyKzKIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%yAKBK'y(y)y*y+y,y-y.yCKDKEKFKGKHK~jakbkckdkekfkgkhkikjkkklkmono[koo/y:y;y=y?y@ybtctdtetftgthtit[y]ypoqorosotouo]k^kjtktIKJKvowoKKLKMKNK_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoNSOSPSQSRSSSIoJoKoLoMokjljmjnjoj^yOKPKSiQKRK_y`y{y|y}ySKTSTKUK]g^g_g`g{g|g}g~gahbhchVKWK+f~y,fazNoD E F G H I OoPoQoRoSoXKYKcb% TiUiViWiZK0K@c[c]c^cbzc cz1K2K3K4Kdhdz-f.fTok AfUoBf{dUSVSWSXSYSZS0S1S2S3S4S5S6S7S8S9SHRIRJRKRLR!S#SMRNRok]e{kPlezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszQlVoWo5Ktzuzvzwzxzyzzz|kXi$S%SAzBzEeYiotptqt^eXoYo_e`e{eZoQbRbSbTbUbVbjbgdCzDzEzFz0o1o2o3oGz4o5oeh|efh/f:f;f}eCf|d{ }d6K7KpkHz6ortkbWbXb}b~bYbacbc7o8o8K9o!oIz#o9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSzTzUzILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0z1z8L2z3z4z5z6z7z%o'o(o)oZi9L!LRlSlqkrk9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z#L$L)z*z*osktk+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA%L'L(L:o;o=o?o)L*L+LmAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA,L-LSATAUAVAWAXAYAZA.L/L:L;L=L?Lbpcpdpepfpgphpipjpkplpmpnpopppvtqp0A1A2A3A4A5A@L[L]L^L_L`L{L|L6A7Arpsptpupvpwpwtxt}L~LaMbMxpypcMdMeMfMdlytelztuk0iFeSeTeAtvkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJp'S(S)S*S+S,SKpLpMpNpOptjujvjwjxj8AgMhM1iiMjM9A!A#A$A%AkM-SlMmMshthuhvhwhxhyhzhAhBhChnMoM?f'A@f(APpK L M N O P QpRpSpTpUppMqM*b' 2i3i4i5irMsMkdldmdnd)Ad *AtMuMvMwMDh+A[f]fVpl DfWpEfee.S/S:S;S=S?S@S[S]S^S_S`S{S|S}S~SORPRQRRRSRaTbTTRURyk~eflTl,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AUlXpYpxM|A}A~AaBbBcBdBgl6icTdTeBfBGe7iBtCtDtafZp0pbfcfdf1pZb0b1b2b3b4blbAdgBhBiBjB2p3p4p5pkB6p7pEhefFh^f_f`fffFffe| geyMzMzklB8pEtmb5b6bdcec7bfcgc9p!pAM#p$pmB%pBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwBxByBaNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEBFBANGBHBIBJBKBLB(p)p*p+p8iBNCNVlWlAkBkNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBDNENUBVB,pCkDkWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?BFNGNHN=p?p@p[pINJNKN@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCLNMNwCxCyCzCACBCCCDCNNONPNQNRNSNdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqECFCGCHCICJCTNUNVNWNXNYNZN0NKCLCtquqvqwqxqyqJtKt1N2N3N4NzqAq5N6N7N8NmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqeTfTgThTiTjTMqNqOqPqQqCjDjEjFjGjMC9N!N!i#N$NNCOCPCQCRC%NkT'N(NShThUhVhWhXhYhZh0h1h2h)N*N|fSC}fTCRqR S T U V W SqTqUqVqWq+N,N+b( #i$i%i'i-N.NEdFdGdHdUCe VC/N:N;N=N3hWC~fagXqm GfHfmelTmTnToTpTqTrTsTtTuTvTwTxTyTzTATVRWRXRYRZRBTCT0R1RIkgfolXlXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYlYqZq?N$C%C'C(C)C*C+Cpl(iDTET,C-CIe)iOtPtQthf0q1qifjfkf2q8b9b!b#b$b%bnbUd.C/C:C;C3q4q5q6q=C7q8q4hlf5hbgcgdgmfIfne} oe@N[NJk?C9qRtob'b(bicjc)bkclc!q#q]N$q%q@C'q^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaDbDcD3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiDjD]OkDlDmDnDoDpD)q*q+q,q*i^O_OZl0lKkLkrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxD`O{OyDzD-qMkNkADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D|O}O~O?q@q[q]qaPbPcP5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DdPePaEbEcEdEeEfEgEhEfPgPhPiPjPkPerfrgrhrirjrkrlrmrnrorprqrrrsrVttriEjEkElEmEnElPmPnPoPpPqPrPsPoEpEurvrwrxryrzrWtXttPuPvPwPArBrxPyPzPAPvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrFTGTHTITJTKTNrOrPrQrRrLjMjNjOjPjqEBPCP,iDPEPrEsEtEuEvEFPLTGPHP+h,h-h.h/h:h;h=h?h@h[hIPJPfgwEggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,b) -i.i/i:iMPNPYdZd0d1dyEg zEOPPPQPRP]hAEhgigYrn JfKfueSkLf1lBECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPE2lZr0rSPQERESETEUEVEWExl;iXEYEKe=i1t2t3tnf1r2rofpfqf3rncocpcqcrcsctcveZE0E1E2E4r5r6r7r3E8r9r^hNf_hjgkglgOfMfYe~ ZeTPUPyl4E!r4tucvcwcxcyczcAcBc#r$rVP%r'r5E(rWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(E)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:E;EVQ=E?E@E[E]E^E*r+r,r-r?iWQXQ4l5lTkUk_E`E6l7l8l{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFYQZQbFcF8tVkWkdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF0Q1Q2Q?r@r[r]r3Q4Q5QIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F6Q7Q'F(F)F*F+F,F-F.F8Q9Q!Q#Q$Q%Qesfsgshsisjskslsmsnsospsqsrsss9t!t/F:F;F=F?F@F'Q(Q)Q*Q+Q,Q-Q.Q[F]Ftsusvswsxsys#t$t/Q:Q;Q=QzsAs?Q@Q[Q]QBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F^Q_Q[i`Q{Q_F`F{F|F}F|Q}Q~QhiiijikiliminioipiqiriaRbRmg~FngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCc* ]i^i_i`ieRfRxe'd(d)dbG
79 return False 2f )t*tQfRf9lh !l2R3R4R5R6R7R8R9R!R#RgRhRiRjRkR+R,RlRmR+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`t#l$l{t|t}t~taubucu2ksi-R.Rdueuye9e%l'l!e#e$e(ldbfuguhuiu)l*l+l,lju-l.l0jku/leb:l;l=l?llu@l[lmunuoupuqurusutuuuvuwuxuyuzuAuBuCu;bDuEuFuGuHuIuJuKu]l^l_l`lMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSuTuUu{lVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=ucmdmemfm?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmDvEvFvGvHvIvJvKvHmImJmKmLmMmNmOmPmQmRmSm8k7s9k8svize9sTmUmVmWmXmYmZm0m1m2m3m/R:R;R=R?R@R4m5m6m7m8majbjcjdjejLvMvNvOvPvQvDgEgFgGgHgIgJgKgLgMgNgVfRvWfSv9mp q r s t u !m#m$m%m'm# RcScTcTva UvVvXfYf(mi )m]R^R_R`R{R|R}R~RaSbSnRoRpRqRrRiSjSsRtRWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!v*m+m#v$v%v'v(v)v*v#kBikSlS+v,vAe)e,m-m*e+e,e.mfb-v.v/v:v/m:m;m=m;v?m@m!j=v[mgb]m^m_m`m?v{m|m@v[v]v^v_v`v{v|v}v~vawbwcwdwewfwgw]bhwiwjwkwlwmwnwow}m~manbnqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwwwxwywcnzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3winjnknln4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgx(j)j*j+j,j-j.j/j:j;j=j?j@jxnynznhxixjxkxlxmxnxoxAnBnCnDnEnFnGnHn,k[s-k]sEiBe^sInJnKnLnMnNnOnPnQnRnSnmSnSoSpSqSrSTnUnVnWnXnfjgjhjijjjpxqxrxsxtxux3g4g5g6g7g8g9g!g#g$g%g6fvx7fwxYnw x y z A B Zn0n1n2n3n$ 8c9c!cxxb yxzx8f9f4nj 5ntSuSvSwSxSySzSASBSCSxRyRzRARBRJSKSCRDRAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOx6n7nPxQxRxSxTxUxVx/kMiLSMSWxXxCe:e8n9n;e=e?e!nhbYxZx0x1x#n$n%n'n2x(n)n_j3x*nib+n,n-n.n4x/n:n5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x|b;c%f=c?c]d^d_d`d/x:x;x=x?x@x[x]x;n=n?n@n_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaybycy[ndyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHy|n}n~naoIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y+y,y-y.y~jakbkckdkekfkgkhkikjkkklkmonooo/y:y;y=y?y@y[y]ypoqorosotouovowo_klt`kmtPiDentxoyozoAoBoCoDoEoFoGoHoNSOSPSQSRSSSIoJoKoLoMokjljmjnjoj^y_y`y{y|y}y]g^g_g`g{g|g}g~gahbhch+f~y,fazNoD E F G H I OoPoQoRoSocb% [c]c^cbzc czdz-f.fTok UoUSVSWSXSYSZS0S1S2S3SHRIRJRKRLR!S#SMRNRezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszVoWotzuzvzwzxzyzzz|kXi$S%SAzBzEe^eXoYo_e`e{eZojbCzDzEzFz0o1o2o3oGz4o5opkHz6okb7o8o9o!oIz#o$oJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZzcchd=fidjdaebecede0z1z2z3z4z5z6z7z%o'o(o)o9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z)z*z*o+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA:o;o=o?omAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZAbpcpdpepfpgphpipjpkplpmpnpopppqp0A1A2A3A4A5A6A7Arpsptpupvpwpxpypdlytelzt0iFeAtzpApBpCpDpEpFpGpHpIpJp'S(S)S*S+S,SKpLpMpNpOptjujvjwjxj8A9A!A#A$A%AshthuhvhwhxhyhzhAhBhCh?f'A@f(APpK L M N O P QpRpSpTpUp*b' ldmdnd)Ad *A+A[f]fVpl Wp.S/S:S;S=S?S@S[S]S^SORPRQRRRSRaTbTTRUR,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AXpYp|A}A~AaBbBcBdBgl6icTdTeBfBGeafZp0pbfcfdf1plbgBhBiBjB2p3p4p5pkB6p7pzklB8pmb9p!p#p$pmB%p'pnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBhcBd{fCdDdiejekeleEBFBGBHBIBJBKBLB(p)p*p+pNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBUBVB,pWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?B=p?p@p[p@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqECFCGCHCICJCKCLCtquqvqwqxqyqzqAqmlLtnlMt9iHeNtBqCqDqEqFqGqHqIqJqKqLqeTfTgThTiTjTMqNqOqPqQqCjDjEjFjGjMCNCOCPCQCRCShThUhVhWhXhYhZh0h1h2h|fSC}fTCRqR S T U V W SqTqUqVqWq+b( FdGdHdUCe VCWC~fagXqm lTmTnToTpTqTrTsTtTuTVRWRXRYRZRBTCT0R1RXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYqZq$C%C'C(C)C*C+Cpl(iDTET,C-CIehf0q1qifjfkf2qnb.C/C:C;C3q4q5q6q=C7q8qJk?C9qob!q#q$q%q@C'q(q[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDmcVdegWdXdqereseteiDjDkDlDmDnDoDpD)q*q+q,qrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxDyDzD-qADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D?q@q[q]q5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEerfrgrhrirjrkrlrmrnrorprqrrrsrtriEjEkElEmEnEoEpEurvrwrxryrzrArBrvlYtwlZt+iJe0tCrDrErFrGrHrIrJrKrLrMrFTGTHTITJTKTNrOrPrQrRrLjMjNjOjPjqErEsEtEuEvE+h,h-h.h/h:h;h=h?h@h[hfgwEggxESrY Z 0 1 2 3 TrUrVrWrXr,b) Zd0d1dyEg zEAEhgigYrn BECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPEZr0rQERESETEUEVEWExl;iXEYEKenf1r2rofpfqf3rZE0E1E2E4r5r6r7r3E8r9ryl4E!r#r$r%r'r5E(r)r6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E0e1e2ePf3e4e5e:E;E=E?E@E[E]E^E*r+r,r-r_E`E{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFbFcFdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF?r@r[r]rIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.Fesfsgshsisjskslsmsnsospsqsrsss/F:F;F=F?F@F[F]FtsusvswsxsyszsAsBl%tCl't@iLe(tBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F_F`F{F|F}Fhiiijikiliminioipiqirimg~FngaGRs5 6 7 8 9 ! SsTsUsVsWs* 'd(d)dbG
80 return lenient_issubclass(annotation, sequence_types) # type: ignore[arg-type] 2f )tcGdGeGfGog*tQfRf9lh rf!lsf*d$R%R'R(R)R*RgRhRiRjRkRZj8e1kDl+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`tEl#l$lgG{t|t}t~taubucu2ksidueuyetiXsYsZs9e%l'l!e#e$e(lpbqbrbsbtbubdbPcfuguhuiu)l*l+l,lju-l.lpg%eqgSfTfUf'etf+d^ ,dhGiG0jku/l0sebvbwb-b.bxb/b:b:l;ljG=l?llu@lkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,Gmunuoupuqurusutuuuvuwuxu-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDuEujHFuGuHuIuJuKu]l^l_l`luikHlHFlGl1j2jMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSumHnHTuUu{l3j4jVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=uoHpHqHcmdmemfmrHsHtH?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvuHvHvvwvxvyvzvAvBvCvwHxHyHzHAHBHrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmDvEvFvGvHvIvCHDHEHFHGHHHIHJHJvKvHmImJmKmLmMm5s6sKHLHMHNHNmOmPmQmRmSm8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejLvOHPHwiQHRHMvNvOvPvQvSH[RTHUHDgEgFgGgHgIgJgKgLgMgNgVHWHVfRvWfSv9mp q r s t u !m#m$m%m'mXH# xiyiziAiYHZHQcRcScTcTva Uv0H1H2H3HOgVvXfYf(mi uf)mvf.dcSdSeSfSgShSnRoRpRqRrR9j(e!kHlWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!vIl*m+m4H#v$v%v'v(v)v*v#kBi+v,vAeCi!s#s$s)e,m-m*e+e,e.mybzbAbBbCbDbfb6c-v.v/v:v/m:m;m=m;v?m@mPg-eQgZf0f1f.ewf/d_ :d5H6H!j=v[m%sgbEbFb=b?bGb@b[b]m^m7H_m`m?v{m8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vawbwHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwiw7Ijwkwlwmwnwow}m~manbnDi8I9IJlKl#j$jqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwww!I#Ixwywcn%j'jzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w$I%I'Iinjnknln(I)I*I4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w+I,I~waxbxcxdxexfxgx-I.I/I:I;I=I(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznhxixjxkxlxmx+s,s-s.s/s:s;s=snxoxAnBnCnDnEnFn*k+k?s@s?I@IGnHn[I]I^I_I,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjjpx`I{IHi|I}Iqxrxsxtxux~IsSaJbJ3g4g5g6g7g8g9g!g#g$g%gcJdJ6fvx7fwxYnw x y z A B Zn0n1n2n3neJfJ$ IiJiKiLigJhJ7c8c9c!cxxb yxiJjJkJlJ'gzx8f9f4nj xf5nyf=dDSESFSGSHSISxRyRzRARBR^j/e.kLlAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOxMl6n7nmJPxQxRxSxTxUxVx/kMiWxXxCeNi_s`s{s:e8n9n;e=e?e!nHbIbJbKbLbMbhb:cYxZx0x1x#n$n%n'n2x(n)n(g@e)g!f#f$f[ezf?d` @dnJoJ_j3x*n|sibNbOb^b_bPb`b{b+n,npJ-n.n4x/nqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'x(x)x?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/x:xpK;x=x?x@x[x]x;n=n?n@nOiqKrKNlOl`j{j_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaysKtKbycy[n|j}jdyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyuKvKwK|n}n~naoxKyKzKIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%yAKBK'y(y)y*y+y,y-y.yCKDKEKFKGKHK~jakbkckdkekfkgkhkikjkkklkmono[koo/y:y;y=y?y@ybtctdtetftgthtit[y]ypoqorosotouo]k^kjtktIKJKvowoKKLKMKNK_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj^yOKPKSiQKRK_y`y{y|y}ySKTSTKUK]g^g_g`g{g|g}g~gahbhchVKWK+f~y,fazNoD E F G H I OoPoQoRoSoXKYKcb% TiUiViWiZK0K@c[c]c^cbzc cz1K2K3K4Kdhdz-f.fTok AfUoBf{d4S5S6S7S8S9SHRIRJRKRLRok]e{kPlezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszQlVoWo5Ktzuzvzwzxzyzzz|kXiAzBzEeYiotptqt^eXoYo_e`e{eZoQbRbSbTbUbVbjbgdCzDzEzFz0o1o2o3oGz4o5oeh|efh/f:f;f}eCf|d{ }d6K7KpkHz6ortkbWbXb}b~bYbacbc7o8o8K9o!oIz#o9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSzTzUzILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0z1z8L2z3z4z5z6z7z%o'o(o)oZi9L!LRlSlqkrk9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z#L$L)z*z*osktk+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA%L'L(L:o;o=o?o)L*L+LmAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA,L-LSATAUAVAWAXAYAZA.L/L:L;L=L?Lbpcpdpepfpgphpipjpkplpmpnpopppvtqp0A1A2A3A4A5A@L[L]L^L_L`L{L|L6A7Arpsptpupvpwpwtxt}L~LaMbMxpypcMdMeMfMdlytelztuk0iFeSeTeAtvkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxj8AgMhM1iiMjM9A!A#A$A%AkM-SlMmMshthuhvhwhxhyhzhAhBhChnMoM?f'A@f(APpK L M N O P QpRpSpTpUppMqM*b' 2i3i4i5irMsMkdldmdnd)Ad *AtMuMvMwMDh+A[f]fVpl DfWpEfee_S`S{S|S}S~SORPRQRRRSRyk~eflTl,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AUlXpYpxM|A}A~AaBbBcBdBgl6ieBfBGe7iBtCtDtafZp0pbfcfdf1pZb0b1b2b3b4blbAdgBhBiBjB2p3p4p5pkB6p7pEhefFh^f_f`fffFffe| geyMzMzklB8pEtmb5b6bdcec7bfcgc9p!pAM#p$pmB%pBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwBxByBaNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEBFBANGBHBIBJBKBLB(p)p*p+p8iBNCNVlWlAkBkNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBDNENUBVB,pCkDkWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?BFNGNHN=p?p@p[pINJNKN@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCLNMNwCxCyCzCACBCCCDCNNONPNQNRNSNdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqECFCGCHCICJCTNUNVNWNXNYNZN0NKCLCtquqvqwqxqyqJtKt1N2N3N4NzqAq5N6N7N8NmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjMC9N!N!i#N$NNCOCPCQCRC%NkT'N(NShThUhVhWhXhYhZh0h1h2h)N*N|fSC}fTCRqR S T U V W SqTqUqVqWq+N,N+b( #i$i%i'i-N.NEdFdGdHdUCe VC/N:N;N=N3hWC~fagXqm GfHfmevTwTxTyTzTATVRWRXRYRZRIkgfolXlXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYlYqZq?N$C%C'C(C)C*C+Cpl(i,C-CIe)iOtPtQthf0q1qifjfkf2q8b9b!b#b$b%bnbUd.C/C:C;C3q4q5q6q=C7q8q4hlf5hbgcgdgmfIfne} oe@N[NJk?C9qRtob'b(bicjc)bkclc!q#q]N$q%q@C'q^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaDbDcD3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiDjD]OkDlDmDnDoDpD)q*q+q,q*i^O_OZl0lKkLkrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxD`O{OyDzD-qMkNkADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D|O}O~O?q@q[q]qaPbPcP5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DdPePaEbEcEdEeEfEgEhEfPgPhPiPjPkPerfrgrhrirjrkrlrmrnrorprqrrrsrVttriEjEkElEmEnElPmPnPoPpPqPrPsPoEpEurvrwrxryrzrWtXttPuPvPwPArBrxPyPzPAPvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPjqEBPCP,iDPEPrEsEtEuEvEFPLTGPHP+h,h-h.h/h:h;h=h?h@h[hIPJPfgwEggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,b) -i.i/i:iMPNPYdZd0d1dyEg zEOPPPQPRP]hAEhgigYrn JfKfueSkLf1lBECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPE2lZr0rSPQERESETEUEVEWExl;iXEYEKe=i1t2t3tnf1r2rofpfqf3rncocpcqcrcsctcveZE0E1E2E4r5r6r7r3E8r9r^hNf_hjgkglgOfMfYe~ ZeTPUPyl4E!r4tucvcwcxcyczcAcBc#r$rVP%r'r5E(rWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(E)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:E;EVQ=E?E@E[E]E^E*r+r,r-r?iWQXQ4l5lTkUk_E`E6l7l8l{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFYQZQbFcF8tVkWkdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF0Q1Q2Q?r@r[r]r3Q4Q5QIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F6Q7Q'F(F)F*F+F,F-F.F8Q9Q!Q#Q$Q%Qesfsgshsisjskslsmsnsospsqsrsss9t!t/F:F;F=F?F@F'Q(Q)Q*Q+Q,Q-Q.Q[F]Ftsusvswsxsys#t$t/Q:Q;Q=QzsAs?Q@Q[Q]QBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F^Q_Q[i`Q{Q_F`F{F|F}F|Q}Q~QhiiijikiliminioipiqiriaRbRmg~FngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCc* ]i^i_i`ieRfRxe'd(d)dbG
83def field_annotation_is_sequence(annotation: Union[Type[Any], None]) -> bool: 1fabcdeg
84 origin = get_origin(annotation) 2f )tcGdGeGfGog*tQfRf9lh rf!lsf*dZj8e1kDl+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`tEl#l$lgG{t|t}t~taubucu2ksidueuyetiXsYsZs9e%l'l!e#e$e(lpbqbrbsbtbubdbPcfuguhuiu)l*l+l,lju-l.lpg%eqgSfTfUf'etf+d^ ,dhGiG0jku/l0sebvbwb-b.bxb/b:b:l;ljG=l?llu@lkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,Gmunuoupuqurusutuuuvuwuxu-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDuEujHFuGuHuIuJuKu]l^l_l`luikHlHFlGl1j2jMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSumHnHTuUu{l3j4jVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=uoHpHqHcmdmemfmrHsHtH?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvuHvHvvwvxvyvzvAvBvCvwHxHyHzHAHBHrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmDvEvFvGvHvIvCHDHEHFHGHHHIHJHJvKvHmImJmKmLmMm5s6sKHLHMHNHNmOmPmQmRmSm8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejLvOHPHwiQHRHMvNvOvPvQvSHTHUHDgEgFgGgHgIgJgKgLgMgNgVHWHVfRvWfSv9mp q r s t u !m#m$m%m'mXH# xiyiziAiYHZHQcRcScTcTva Uv0H1H2H3HOgVvXfYf(mi uf)mvf.d9j(e!kHlWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!vIl*m+m4H#v$v%v'v(v)v*v#kBi+v,vAeCi!s#s$s)e,m-m*e+e,e.mybzbAbBbCbDbfb6c-v.v/v:v/m:m;m=m;v?m@mPg-eQgZf0f1f.ewf/d_ :d5H6H!j=v[m%sgbEbFb=b?bGb@b[b]m^m7H_m`m?v{m8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vawbwHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwiw7Ijwkwlwmwnwow}m~manbnDi8I9IJlKl#j$jqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwww!I#Ixwywcn%j'jzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w$I%I'Iinjnknln(I)I*I4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w+I,I~waxbxcxdxexfxgx-I.I/I:I;I=I(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznhxixjxkxlxmx+s,s-s.s/s:s;s=snxoxAnBnCnDnEnFn*k+k?s@s?I@IGnHn[I]I^I_I,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjjpx`I{IHi|I}Iqxrxsxtxux~IaJbJ3g4g5g6g7g8g9g!g#g$g%gcJdJ6fvx7fwxYnw x y z A B Zn0n1n2n3neJfJ$ IiJiKiLigJhJ7c8c9c!cxxb yxiJjJkJlJ'gzx8f9f4nj xf5nyf=d^j/e.kLlAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOxMl6n7nmJPxQxRxSxTxUxVx/kMiWxXxCeNi_s`s{s:e8n9n;e=e?e!nHbIbJbKbLbMbhb:cYxZx0x1x#n$n%n'n2x(n)n(g@e)g!f#f$f[ezf?d` @dnJoJ_j3x*n|sibNbOb^b_bPb`b{b+n,npJ-n.n4x/nqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'x(x)x?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/x:xpK;x=x?x@x[x]x;n=n?n@nOiqKrKNlOl`j{j_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaysKtKbycy[n|j}jdyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyuKvKwK|n}n~naoxKyKzKIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%yAKBK'y(y)y*y+y,y-y.yCKDKEKFKGKHK~jakbkckdkekfkgkhkikjkkklkmono[koo/y:y;y=y?y@ybtctdtetftgthtit[y]ypoqorosotouo]k^kjtktIKJKvowoKKLKMKNK_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj^yOKPKSiQKRK_y`y{y|y}ySKTKUK]g^g_g`g{g|g}g~gahbhchVKWK+f~y,fazNoD E F G H I OoPoQoRoSoXKYKcb% TiUiViWiZK0K@c[c]c^cbzc cz1K2K3K4Kdhdz-f.fTok AfUoBf{dok]e{kPlezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszQlVoWo5Ktzuzvzwzxzyzzz|kXiAzBzEeYiotptqt^eXoYo_e`e{eZoQbRbSbTbUbVbjbgdCzDzEzFz0o1o2o3oGz4o5oeh|efh/f:f;f}eCf|d{ }d6K7KpkHz6ortkbWbXb}b~bYbacbc7o8o8K9o!oIz#o9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSzTzUzILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0z1z8L2z3z4z5z6z7z%o'o(o)oZi9L!LRlSlqkrk9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z#L$L)z*z*osktk+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA%L'L(L:o;o=o?o)L*L+LmAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA,L-LSATAUAVAWAXAYAZA.L/L:L;L=L?Lbpcpdpepfpgphpipjpkplpmpnpopppvtqp0A1A2A3A4A5A@L[L]L^L_L`L{L|L6A7Arpsptpupvpwpwtxt}L~LaMbMxpypcMdMeMfMdlytelztuk0iFeSeTeAtvkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxj8AgMhM1iiMjM9A!A#A$A%AkMlMmMshthuhvhwhxhyhzhAhBhChnMoM?f'A@f(APpK L M N O P QpRpSpTpUppMqM*b' 2i3i4i5irMsMkdldmdnd)Ad *AtMuMvMwMDh+A[f]fVpl DfWpEfeeyk~eflTl,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AUlXpYpxM|A}A~AaBbBcBdBgl6ieBfBGe7iBtCtDtafZp0pbfcfdf1pZb0b1b2b3b4blbAdgBhBiBjB2p3p4p5pkB6p7pEhefFh^f_f`fffFffe| geyMzMzklB8pEtmb5b6bdcec7bfcgc9p!pAM#p$pmB%pBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwBxByBaNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEBFBANGBHBIBJBKBLB(p)p*p+p8iBNCNVlWlAkBkNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBDNENUBVB,pCkDkWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?BFNGNHN=p?p@p[pINJNKN@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCLNMNwCxCyCzCACBCCCDCNNONPNQNRNSNdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqECFCGCHCICJCTNUNVNWNXNYNZN0NKCLCtquqvqwqxqyqJtKt1N2N3N4NzqAq5N6N7N8NmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjMC9N!N!i#N$NNCOCPCQCRC%N'N(NShThUhVhWhXhYhZh0h1h2h)N*N|fSC}fTCRqR S T U V W SqTqUqVqWq+N,N+b( #i$i%i'i-N.NEdFdGdHdUCe VC/N:N;N=N3hWC~fagXqm GfHfmeIkgfolXlXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYlYqZq?N$C%C'C(C)C*C+Cpl(i,C-CIe)iOtPtQthf0q1qifjfkf2q8b9b!b#b$b%bnbUd.C/C:C;C3q4q5q6q=C7q8q4hlf5hbgcgdgmfIfne} oe@N[NJk?C9qRtob'b(bicjc)bkclc!q#q]N$q%q@C'q^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaDbDcD3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiDjD]OkDlDmDnDoDpD)q*q+q,q*i^O_OZl0lKkLkrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxD`O{OyDzD-qMkNkADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D|O}O~O?q@q[q]qaPbPcP5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DdPePaEbEcEdEeEfEgEhEfPgPhPiPjPkPerfrgrhrirjrkrlrmrnrorprqrrrsrVttriEjEkElEmEnElPmPnPoPpPqPrPsPoEpEurvrwrxryrzrWtXttPuPvPwPArBrxPyPzPAPvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPjqEBPCP,iDPEPrEsEtEuEvEFPGPHP+h,h-h.h/h:h;h=h?h@h[hIPJPfgwEggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,b) -i.i/i:iMPNPYdZd0d1dyEg zEOPPPQPRP]hAEhgigYrn JfKfueSkLf1lBECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPE2lZr0rSPQERESETEUEVEWExl;iXEYEKe=i1t2t3tnf1r2rofpfqf3rncocpcqcrcsctcveZE0E1E2E4r5r6r7r3E8r9r^hNf_hjgkglgOfMfYe~ ZeTPUPyl4E!r4tucvcwcxcyczcAcBc#r$rVP%r'r5E(rWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(E)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:E;EVQ=E?E@E[E]E^E*r+r,r-r?iWQXQ4l5lTkUk_E`E6l7l8l{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFYQZQbFcF8tVkWkdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF0Q1Q2Q?r@r[r]r3Q4Q5QIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F6Q7Q'F(F)F*F+F,F-F.F8Q9Q!Q#Q$Q%Qesfsgshsisjskslsmsnsospsqsrsss9t!t/F:F;F=F?F@F'Q(Q)Q*Q+Q,Q-Q.Q[F]Ftsusvswsxsys#t$t/Q:Q;Q=QzsAs?Q@Q[Q]QBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F^Q_Q[i`Q{Q_F`F{F|F}F|Q}Q~QhiiijikiliminioipiqiriaRbRmg~FngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCc* ]i^i_i`ieRfRxe'd(d)dbG
85 if origin is Union or origin is UnionType: 2f )tcGdGeGfGog*tQfRf9lh rf!lsf*dZj8e1kDl+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`tEl#l$lgG{t|t}t~taubucu2ksidueuyetiXsYsZs9e%l'l!e#e$e(lpbqbrbsbtbubdbPcfuguhuiu)l*l+l,lju-l.lpg%eqgSfTfUf'etf+d^ ,dhGiG0jku/l0sebvbwb-b.bxb/b:b:l;ljG=l?llu@lkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,Gmunuoupuqurusutuuuvuwuxu-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDuEujHFuGuHuIuJuKu]l^l_l`luikHlHFlGl1j2jMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSumHnHTuUu{l3j4jVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=uoHpHqHcmdmemfmrHsHtH?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvuHvHvvwvxvyvzvAvBvCvwHxHyHzHAHBHrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmDvEvFvGvHvIvCHDHEHFHGHHHIHJHJvKvHmImJmKmLmMm5s6sKHLHMHNHNmOmPmQmRmSm8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejLvOHPHwiQHRHMvNvOvPvQvSHTHUHDgEgFgGgHgIgJgKgLgMgNgVHWHVfRvWfSv9mp q r s t u !m#m$m%m'mXH# xiyiziAiYHZHQcRcScTcTva Uv0H1H2H3HOgVvXfYf(mi uf)mvf.d9j(e!kHlWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!vIl*m+m4H#v$v%v'v(v)v*v#kBi+v,vAeCi!s#s$s)e,m-m*e+e,e.mybzbAbBbCbDbfb6c-v.v/v:v/m:m;m=m;v?m@mPg-eQgZf0f1f.ewf/d_ :d5H6H!j=v[m%sgbEbFb=b?bGb@b[b]m^m7H_m`m?v{m8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vawbwHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwiw7Ijwkwlwmwnwow}m~manbnDi8I9IJlKl#j$jqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwww!I#Ixwywcn%j'jzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w$I%I'Iinjnknln(I)I*I4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w+I,I~waxbxcxdxexfxgx-I.I/I:I;I=I(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznhxixjxkxlxmx+s,s-s.s/s:s;s=snxoxAnBnCnDnEnFn*k+k?s@s?I@IGnHn[I]I^I_I,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjjpx`I{IHi|I}Iqxrxsxtxux~IaJbJ3g4g5g6g7g8g9g!g#g$g%gcJdJ6fvx7fwxYnw x y z A B Zn0n1n2n3neJfJ$ IiJiKiLigJhJ7c8c9c!cxxb yxiJjJkJlJ'gzx8f9f4nj xf5nyf=d^j/e.kLlAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOxMl6n7nmJPxQxRxSxTxUxVx/kMiWxXxCeNi_s`s{s:e8n9n;e=e?e!nHbIbJbKbLbMbhb:cYxZx0x1x#n$n%n'n2x(n)n(g@e)g!f#f$f[ezf?d` @dnJoJ_j3x*n|sibNbOb^b_bPb`b{b+n,npJ-n.n4x/nqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'x(x)x?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/x:xpK;x=x?x@x[x]x;n=n?n@nOiqKrKNlOl`j{j_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaysKtKbycy[n|j}jdyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyuKvKwK|n}n~naoxKyKzKIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%yAKBK'y(y)y*y+y,y-y.yCKDKEKFKGKHK~jakbkckdkekfkgkhkikjkkklkmono[koo/y:y;y=y?y@ybtctdtetftgthtit[y]ypoqorosotouo]k^kjtktIKJKvowoKKLKMKNK_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj^yOKPKSiQKRK_y`y{y|y}ySKTKUK]g^g_g`g{g|g}g~gahbhchVKWK+f~y,fazNoD E F G H I OoPoQoRoSoXKYKcb% TiUiViWiZK0K@c[c]c^cbzc cz1K2K3K4Kdhdz-f.fTok AfUoBf{dok]e{kPlezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszQlVoWo5Ktzuzvzwzxzyzzz|kXiAzBzEeYiotptqt^eXoYo_e`e{eZoQbRbSbTbUbVbjbgdCzDzEzFz0o1o2o3oGz4o5oeh|efh/f:f;f}eCf|d{ }d6K7KpkHz6ortkbWbXb}b~bYbacbc7o8o8K9o!oIz#o9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSzTzUzILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0z1z8L2z3z4z5z6z7z%o'o(o)oZi9L!LRlSlqkrk9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z#L$L)z*z*osktk+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA%L'L(L:o;o=o?o)L*L+LmAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA,L-LSATAUAVAWAXAYAZA.L/L:L;L=L?Lbpcpdpepfpgphpipjpkplpmpnpopppvtqp0A1A2A3A4A5A@L[L]L^L_L`L{L|L6A7Arpsptpupvpwpwtxt}L~LaMbMxpypcMdMeMfMdlytelztuk0iFeSeTeAtvkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxj8AgMhM1iiMjM9A!A#A$A%AkMlMmMshthuhvhwhxhyhzhAhBhChnMoM?f'A@f(APpK L M N O P QpRpSpTpUppMqM*b' 2i3i4i5irMsMkdldmdnd)Ad *AtMuMvMwMDh+A[f]fVpl DfWpEfeeyk~eflTl,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AUlXpYpxM|A}A~AaBbBcBdBgl6ieBfBGe7iBtCtDtafZp0pbfcfdf1pZb0b1b2b3b4blbAdgBhBiBjB2p3p4p5pkB6p7pEhefFh^f_f`fffFffe| geyMzMzklB8pEtmb5b6bdcec7bfcgc9p!pAM#p$pmB%pBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwBxByBaNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEBFBANGBHBIBJBKBLB(p)p*p+p8iBNCNVlWlAkBkNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBDNENUBVB,pCkDkWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?BFNGNHN=p?p@p[pINJNKN@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCLNMNwCxCyCzCACBCCCDCNNONPNQNRNSNdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqECFCGCHCICJCTNUNVNWNXNYNZN0NKCLCtquqvqwqxqyqJtKt1N2N3N4NzqAq5N6N7N8NmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjMC9N!N!i#N$NNCOCPCQCRC%N'N(NShThUhVhWhXhYhZh0h1h2h)N*N|fSC}fTCRqR S T U V W SqTqUqVqWq+N,N+b( #i$i%i'i-N.NEdFdGdHdUCe VC/N:N;N=N3hWC~fagXqm GfHfmeIkgfolXlXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYlYqZq?N$C%C'C(C)C*C+Cpl(i,C-CIe)iOtPtQthf0q1qifjfkf2q8b9b!b#b$b%bnbUd.C/C:C;C3q4q5q6q=C7q8q4hlf5hbgcgdgmfIfne} oe@N[NJk?C9qRtob'b(bicjc)bkclc!q#q]N$q%q@C'q^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaDbDcD3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiDjD]OkDlDmDnDoDpD)q*q+q,q*i^O_OZl0lKkLkrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxD`O{OyDzD-qMkNkADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D|O}O~O?q@q[q]qaPbPcP5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DdPePaEbEcEdEeEfEgEhEfPgPhPiPjPkPerfrgrhrirjrkrlrmrnrorprqrrrsrVttriEjEkElEmEnElPmPnPoPpPqPrPsPoEpEurvrwrxryrzrWtXttPuPvPwPArBrxPyPzPAPvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPjqEBPCP,iDPEPrEsEtEuEvEFPGPHP+h,h-h.h/h:h;h=h?h@h[hIPJPfgwEggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,b) -i.i/i:iMPNPYdZd0d1dyEg zEOPPPQPRP]hAEhgigYrn JfKfueSkLf1lBECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPE2lZr0rSPQERESETEUEVEWExl;iXEYEKe=i1t2t3tnf1r2rofpfqf3rncocpcqcrcsctcveZE0E1E2E4r5r6r7r3E8r9r^hNf_hjgkglgOfMfYe~ ZeTPUPyl4E!r4tucvcwcxcyczcAcBc#r$rVP%r'r5E(rWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(E)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:E;EVQ=E?E@E[E]E^E*r+r,r-r?iWQXQ4l5lTkUk_E`E6l7l8l{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFYQZQbFcF8tVkWkdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF0Q1Q2Q?r@r[r]r3Q4Q5QIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F6Q7Q'F(F)F*F+F,F-F.F8Q9Q!Q#Q$Q%Qesfsgshsisjskslsmsnsospsqsrsss9t!t/F:F;F=F?F@F'Q(Q)Q*Q+Q,Q-Q.Q[F]Ftsusvswsxsys#t$t/Q:Q;Q=QzsAs?Q@Q[Q]QBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F^Q_Q[i`Q{Q_F`F{F|F}F|Q}Q~QhiiijikiliminioipiqiriaRbRmg~FngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCc* ]i^i_i`ieRfRxe'd(d)dbG
86 for arg in get_args(annotation): 2f 9lh !lo #l$lyeti9e!e#e$e)l*l+l,l-l.l^ /l0s/b:b:l;l=l?l@l[l1s2s3s]l^l_l`lui+ , rgsgtgugvgwgxgygzgAgBgCg{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmHmImJmKmLmMm5s6sNmOmPmQmRmSmvizeMeNewiDgEgFgGgHgIgJgKgLgMgNg9mp q r s t u !m#m$m%m'mxiyiziAia (mi )mv *m+mAeCi)e*e+e,e/m:m;m=m?m@m_ [m%s@b[b]m^m_m`m{m|m's(s)s}m~manbnDi- . RgSgTgUgVgWgXgYgZg0g1g2gcndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwn(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznAnBnCnDnEnFn*k+kGnHnEiBeOePeHi3g4g5g6g7g8g9g!g#g$g%gYnw x y z A B Zn0n1n2n3nIiJiKiLib 4nj 5nC 6n7nCeNi:e;e=e?e#n$n%n'n(n)n` *n|s`b{b+n,n-n.n/n:n}s~sat;c%f=c?c]d^d_d`d;n=n?n@nOi/ : *g+g,g-g.g/g:g;g=g?g@g[g[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolo~jakbkckdkekfkgkhkikjkkklkmono[koopoqorosotouo]k^kvowoPiDeQeReSi]g^g_g`g{g|g}g~gahbhchNoD E F G H I OoPoQoRoSoTiUiViWic Tok UoJ VoWoEeYi^e_e`e{e0o1o2o3o4o5o{ 6ortacbc7o8o9o!o#o$ostttuthd=fidjdaebecede%o'o(o)oZi; = ghhhihjhkhlhmhnhohphqhrh*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppvtqprpsptpupvpwpwtxtxpyp0iFeSeTe1ishthuhvhwhxhyhzhAhBhChPpK L M N O P QpRpSpTpUp2i3i4i5id Vpl WpQ XpYpGe7iafbfcfdf2p3p4p5p6p7p| 8pEtfcgc9p!p#p$p%p'pFtGtHtBd{fCdDdiejekele(p)p*p+p8i? @ GhHhIhJhKhLhMhNhOhPhQhRh,p-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqtquqvqwqxqyqJtKtzqAq9iHeUeVe!iShThUhVhWhXhYhZh0h1h2hRqR S T U V W SqTqUqVqWq#i$i%i'ie Xqm X YqZqIe)ihfifjfkf3q4q5q6q7q8q} 9qRtkclc!q#q$q%q'q(qStTtUtVdegWdXdqeresete)q*q+q,q*i[ ] 6h7h8h9h!h#h$h%h'h(h)h*h-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrVttrurvrwrxryrzrWtXtArBr+iJeWeXe,i+h,h-h.h/h:h;h=h?h@h[hSrY Z 0 1 2 3 TrUrVrWrXr-i.i/i:ig Yrn 4 Zr0rKe=infofpfqf4r5r6r7r8r9r~ !r4tAcBc#r$r%r'r(r)r5t6t7t0e1e2e3e4e5e*r+r,r-r?iabbb`h{h|h}h~haibicidieifigi8t.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrsss9t!ttsusvswsxsys#t$tzsAs@iLe6e7e[ihiiijikiliminioipiqiriRs5 6 7 8 9 ! SsTsUsVsWs]i^i_i`i
87 if field_annotation_is_sequence(arg): 2f 9lh !lo #l$lyeti9e!e#e$e)l*l+l,l-l.l^ /l0s/b:b:l;l=l?l@l[l1s2s3s]l^l_l`lui+ , rgsgtgugvgwgxgygzgAgBgCg{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmHmImJmKmLmMm5s6sNmOmPmQmRmSmvizeMeNewiDgEgFgGgHgIgJgKgLgMgNg9mp q r s t u !m#m$m%m'mxiyiziAia (mi )mv *m+mAeCi)e*e+e,e/m:m;m=m?m@m_ [m%s@b[b]m^m_m`m{m|m's(s)s}m~manbnDi- . RgSgTgUgVgWgXgYgZg0g1g2gcndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwn(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznAnBnCnDnEnFn*k+kGnHnEiBeOePeHi3g4g5g6g7g8g9g!g#g$g%gYnw x y z A B Zn0n1n2n3nIiJiKiLib 4nj 5nC 6n7nCeNi:e;e=e?e#n$n%n'n(n)n` *n|s`b{b+n,n-n.n/n:n}s~sat;c%f=c?c]d^d_d`d;n=n?n@nOi/ : *g+g,g-g.g/g:g;g=g?g@g[g[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolo~jakbkckdkekfkgkhkikjkkklkmono[koopoqorosotouo]k^kvowoPiDeQeReSi]g^g_g`g{g|g}g~gahbhchNoD E F G H I OoPoQoRoSoTiUiViWic Tok UoJ VoWoEeYi^e_e`e{e0o1o2o3o4o5o{ 6ortacbc7o8o9o!o#o$ostttuthd=fidjdaebecede%o'o(o)oZi; = ghhhihjhkhlhmhnhohphqhrh*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppvtqprpsptpupvpwpwtxtxpyp0iFeSeTe1ishthuhvhwhxhyhzhAhBhChPpK L M N O P QpRpSpTpUp2i3i4i5id Vpl WpQ XpYpGe7iafbfcfdf2p3p4p5p6p7p| 8pEtfcgc9p!p#p$p%p'pFtGtHtBd{fCdDdiejekele(p)p*p+p8i? @ GhHhIhJhKhLhMhNhOhPhQhRh,p-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqtquqvqwqxqyqJtKtzqAq9iHeUeVe!iShThUhVhWhXhYhZh0h1h2hRqR S T U V W SqTqUqVqWq#i$i%i'ie Xqm X YqZqIe)ihfifjfkf3q4q5q6q7q8q} 9qRtkclc!q#q$q%q'q(qStTtUtVdegWdXdqeresete)q*q+q,q*i[ ] 6h7h8h9h!h#h$h%h'h(h)h*h-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrVttrurvrwrxryrzrWtXtArBr+iJeWeXe,i+h,h-h.h/h:h;h=h?h@h[hSrY Z 0 1 2 3 TrUrVrWrXr-i.i/i:ig Yrn 4 Zr0rKe=infofpfqf4r5r6r7r8r9r~ !r4tAcBc#r$r%r'r(r)r5t6t7t0e1e2e3e4e5e*r+r,r-r?iabbb`h{h|h}h~haibicidieifigi8t.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrsss9t!ttsusvswsxsys#t$tzsAs@iLe6e7e[ihiiijikiliminioipiqiriRs5 6 7 8 9 ! SsTsUsVsWs]i^i_i`i
88 return True 2f h /b:b4s5s6sa i @b[b*s*k+kb j `b{b[k]k^kc k acbcvtwtxtd l fcgcItJtKte m kclcVtWtXtg n AcBc9t#t$t
89 return False 2f 9l!lo #l$lyeti9e!e#e$e)l*l+l,l-l.l^ /l0s:l;l=l?l@l[l1s2s3s]l^l_l`lui+ , rgsgtgugvgwgxgygzgAgBgCg{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmvizeMeNewiDgEgFgGgHgIgJgKgLgMgNg9mp q r s t u !m#m$m%m'mxiyiziAia (m)mv *m+mAeCi)e*e+e,e/m:m;m=m?m@m_ [m%s]m^m_m`m{m|m's(s)s}m~manbnDi- . RgSgTgUgVgWgXgYgZg0g1g2gcndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwn(j)j*j+j,j-j.j/j:j;j=j?j@jxnynznAnBnCnDnEnFnGnHnEiBeOePeHi3g4g5g6g7g8g9g!g#g$g%gYnw x y z A B Zn0n1n2n3nIiJiKiLib 4n5nC 6n7nCeNi:e;e=e?e#n$n%n'n(n)n` *n|s+n,n-n.n/n:n}s~sat;c%f=c?c]d^d_d`d;n=n?n@nOi/ : *g+g,g-g.g/g:g;g=g?g@g[g[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolo~jakbkckdkekfkgkhkikjkkklkmonooopoqorosotouovowoPiDeQeReSi]g^g_g`g{g|g}g~gahbhchNoD E F G H I OoPoQoRoSoTiUiViWic ToUoJ VoWoEeYi^e_e`e{e0o1o2o3o4o5o{ 6ort7o8o9o!o#o$ostttuthd=fidjdaebecede%o'o(o)oZi; = ghhhihjhkhlhmhnhohphqhrh*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpyp0iFeSeTe1ishthuhvhwhxhyhzhAhBhChPpK L M N O P QpRpSpTpUp2i3i4i5id VpWpQ XpYpGe7iafbfcfdf2p3p4p5p6p7p| 8pEt9p!p#p$p%p'pFtGtHtBd{fCdDdiejekele(p)p*p+p8i? @ GhHhIhJhKhLhMhNhOhPhQhRh,p-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzqAq9iHeUeVe!iShThUhVhWhXhYhZh0h1h2hRqR S T U V W SqTqUqVqWq#i$i%i'ie XqX YqZqIe)ihfifjfkf3q4q5q6q7q8q} 9qRt!q#q$q%q'q(qStTtUtVdegWdXdqeresete)q*q+q,q*i[ ] 6h7h8h9h!h#h$h%h'h(h)h*h-q.q/q:q;q=q?q@q[q]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrArBr+iJeWeXe,i+h,h-h.h/h:h;h=h?h@h[hSrY Z 0 1 2 3 TrUrVrWrXr-i.i/i:ig Yr4 Zr0rKe=infofpfqf4r5r6r7r8r9r~ !r4t#r$r%r'r(r)r5t6t7t0e1e2e3e4e5e*r+r,r-r?iabbb`h{h|h}h~haibicidieifigi8t.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrsss!ttsusvswsxsyszsAs@iLe6e7e[ihiiijikiliminioipiqiriRs5 6 7 8 9 ! SsTsUsVsWs]i^i_i`i
90 return _annotation_is_sequence(annotation) or _annotation_is_sequence( 2f )tcGdGeGfGog*tQfRf9lh rf!lsf*dZj8e1kDl+t,t-t.t/t:t;to DcEcFcGcHcIcJcKcLcMcNcOc=t?t@t[t]t^t_t`tEl#l$lgG{t|t}t~taubucu2ksidueuyetiXsYsZs9e%l'l!e#e$e(lpbqbrbsbtbubdbPcfuguhuiu)l*l+l,lju-l.lpg%eqgSfTfUf'etf+d^ ,dhGiG0jku/l0sebvbwb-b.bxb/b:b:l;ljG=l?llu@lkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBG[lCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,Gmunuoupuqurusutuuuvuwuxu-G.G/G:G;G=G?G1s2s3s@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHyuzuAuBuCu-d;bDuEujHFuGuHuIuJuKu]l^l_l`luikHlHFlGl1j2jMuNu3k4k5kOu6k7k+ , rgsgtgugvgwgxgygzgAgBgCgPuQuRuSumHnHTuUu{l3j4jVuWu|l}lXuYu~lamZu0u1ubm2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=uoHpHqHcmdmemfmrHsHtH?u@u[u]u^ugmhmimjmkmlmmmnmom_u`u{upmqm|u}u~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvuHvHvvwvxvyvzvAvBvCvwHxHyHzHAHBHrmsmtmumvmwmxmymzmAmBmCmDmEmFm4sGmDvEvFvGvHvIvCHDHEHFHGHHHIHJHJvKvHmImJmKmLmMm5s6sKHLHMHNHNmOmPmQmRmSm8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejLvOHPHwiQHRHMvNvOvPvQvSHTHUHDgEgFgGgHgIgJgKgLgMgNgVHWHVfRvWfSv9mp q r s t u !m#m$m%m'mXH# xiyiziAiYHZHQcRcScTcTva Uv0H1H2H3HOgVvXfYf(mi uf)mvf.d9j(e!kHlWvXvYvZv0v1v2vv UcVcWcXcYcZc0c1c2c3c4c5c3v4v5v6v7v8v9v!vIl*m+m4H#v$v%v'v(v)v*v#kBi+v,vAeCi!s#s$s)e,m-m*e+e,e.mybzbAbBbCbDbfb6c-v.v/v:v/m:m;m=m;v?m@mPg-eQgZf0f1f.ewf/d_ :d5H6H!j=v[m%sgbEbFb=b?bGb@b[b]m^m7H_m`m?v{m8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H|m?H@H[H]H^H_H`H{H|H}H~HaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGI@v[v]v^v_v`v{v|v}v~vawbwHIIIJIKILIMINI's(s)sOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6Icwdwewfwgw;d]bhwiw7Ijwkwlwmwnwow}m~manbnDi8I9IJlKl#j$jqwrw$k%k'ksw(k)k- . RgSgTgUgVgWgXgYgZg0g1g2gtwuwvwww!I#Ixwywcn%j'jzwAwdnenBwCwfngnDwEwFwhnGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w$I%I'Iinjnknln(I)I*I4w5w6w7w8wmnnnonpnqnrnsntnun9w!w#wvnwn$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w+I,I~waxbxcxdxexfxgx-I.I/I:I;I=I(j)j*j+j,j-j.j/j:j;j=j?j@jxnyn*sznhxixjxkxlxmx+s,s-s.s/s:s;s=snxoxAnBnCnDnEnFn*k+k?s@s?I@IGnHn[I]I^I_I,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjjpx`I{IHi|I}Iqxrxsxtxux~IaJbJ3g4g5g6g7g8g9g!g#g$g%gcJdJ6fvx7fwxYnw x y z A B Zn0n1n2n3neJfJ$ IiJiKiLigJhJ7c8c9c!cxxb yxiJjJkJlJ'gzx8f9f4nj xf5nyf=d^j/e.kLlAxBxCxDxExFxGxC #c$c%c'c(c)c*c+c,c-c.c/cHxIxJxKxLxMxNxOxMl6n7nmJPxQxRxSxTxUxVx/kMiWxXxCeNi_s`s{s:e8n9n;e=e?e!nHbIbJbKbLbMbhb:cYxZx0x1x#n$n%n'n2x(n)n(g@e)g!f#f$f[ezf?d` @dnJoJ_j3x*n|sibNbOb^b_bPb`b{b+n,npJ-n.n4x/nqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJ:nIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J5x6x7x8x9x!x#x$x%x'x(x)x?J@J[J]J^J_J`J}s~sat{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoK*x+x,x-x.x[d|b;c%f=c?c]d^d_d`d/x:xpK;x=x?x@x[x]x;n=n?n@nOiqKrKNlOl`j{j_x`x:k;k=k{x?k@k/ : *g+g,g-g.g/g:g;g=g?g@g[g|x}x~xaysKtKbycy[n|j}jdyey]n^nfygy_n`nhyiyjy{nkylymynyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHyuKvKwK|n}n~naoxKyKzKIyJyKyLyMybocodoeofogohoiojoNyOyPykoloQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%yAKBK'y(y)y*y+y,y-y.yCKDKEKFKGKHK~jakbkckdkekfkgkhkikjkkklkmono[koo/y:y;y=y?y@ybtctdtetftgthtit[y]ypoqorosotouo]k^kjtktIKJKvowoKKLKMKNK_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj^yOKPKSiQKRK_y`y{y|y}ySKTKUK]g^g_g`g{g|g}g~gahbhchVKWK+f~y,fazNoD E F G H I OoPoQoRoSoXKYKcb% TiUiViWiZK0K@c[c]c^cbzc cz1K2K3K4Kdhdz-f.fTok AfUoBf{dok]e{kPlezfzgzhzizjzkzJ _c`c{c|c}c~cadbdcdddedfdlzmznzozpzqzrzszQlVoWo5Ktzuzvzwzxzyzzz|kXiAzBzEeYiotptqt^eXoYo_e`e{eZoQbRbSbTbUbVbjbgdCzDzEzFz0o1o2o3oGz4o5oeh|efh/f:f;f}eCf|d{ }d6K7KpkHz6ortkbWbXb}b~bYbacbc7o8o8K9o!oIz#o9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K$o@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLJzKzLzMzNzOzPzQzRzSzTzUzILJLKLLLMLNLOLstttutPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7LVzWzXzYzZz~dcchd=fidjdaebecede0z1z8L2z3z4z5z6z7z%o'o(o)oZi9L!LRlSlqkrk9z!z}k~kal#zblcl; = ghhhihjhkhlhmhnhohphqhrh$z%z'z(z#L$L)z*z*osktk+z,z+o,o-z.z-o.o/z:z;z/o=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlA%L'L(L:o;o=o?o)L*L+LmAnAoApAqA@o[o]o^o_o`o{o|o}orAsAtA~oapuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARA,L-LSATAUAVAWAXAYAZA.L/L:L;L=L?Lbpcpdpepfpgphpipjpkplpmpnpopppvtqp0A1A2A3A4A5A@L[L]L^L_L`L{L|L6A7Arpsptpupvpwpwtxt}L~LaMbMxpypcMdMeMfMdlytelztuk0iFeSeTeAtvkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxj8AgMhM1iiMjM9A!A#A$A%AkMlMmMshthuhvhwhxhyhzhAhBhChnMoM?f'A@f(APpK L M N O P QpRpSpTpUppMqM*b' 2i3i4i5irMsMkdldmdnd)Ad *AtMuMvMwMDh+A[f]fVpl DfWpEfeeyk~eflTl,A-A.A/A:A;A=AQ odpdqdrdsdtdudvdwdxdydzd?A@A[A]A^A_A`A{AUlXpYpxM|A}A~AaBbBcBdBgl6ieBfBGe7iBtCtDtafZp0pbfcfdf1pZb0b1b2b3b4blbAdgBhBiBjB2p3p4p5pkB6p7pEhefFh^f_f`fffFffe| geyMzMzklB8pEtmb5b6bdcec7bfcgc9p!pAM#p$pmB%pBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSM'pTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!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~MnBoBpBqBrBsBtBuBvBwBxByBaNbNcNdNeNfNgNFtGtHthNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNzBABBBCBDBhehcBd{fCdDdiejekeleEBFBANGBHBIBJBKBLB(p)p*p+p8iBNCNVlWlAkBkNBOBhliljlPBklll? @ GhHhIhJhKhLhMhNhOhPhQhRhQBRBSBTBDNENUBVB,pCkDkWBXB-p.pYBZB/p:p0B1B2B;p3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?BFNGNHN=p?p@p[pINJNKN@B[B]B^B_B]p^p_p`p{p|p}p~paq`B{B|Bbqcq}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCLNMNwCxCyCzCACBCCCDCNNONPNQNRNSNdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqItsqECFCGCHCICJCTNUNVNWNXNYNZN0NKCLCtquqvqwqxqyqJtKt1N2N3N4NzqAq5N6N7N8NmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjMC9N!N!i#N$NNCOCPCQCRC%N'N(NShThUhVhWhXhYhZh0h1h2h)N*N|fSC}fTCRqR S T U V W SqTqUqVqWq+N,N+b( #i$i%i'i-N.NEdFdGdHdUCe VC/N:N;N=N3hWC~fagXqm GfHfmeIkgfolXlXCYCZC0C1C2C3CX IdJdKdLdMdNdOdPdQdRdSdTd4C5C6C7C8C9C!C#CYlYqZq?N$C%C'C(C)C*C+Cpl(i,C-CIe)iOtPtQthf0q1qifjfkf2q8b9b!b#b$b%bnbUd.C/C:C;C3q4q5q6q=C7q8q4hlf5hbgcgdgmfIfne} oe@N[NJk?C9qRtob'b(bicjc)bkclc!q#q]N$q%q@C'q^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkO(qlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O[C]C^C_C`C{C|C}C~CaDbDcD3O4O5O6O7O8O9OStTtUt!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[OdDeDfDgDhDpemcVdegWdXdqereseteiDjD]OkDlDmDnDoDpD)q*q+q,q*i^O_OZl0lKkLkrDsDqlrlsltDtlul[ ] 6h7h8h9h!h#h$h%h'h(h)h*huDvDwDxD`O{OyDzD-qMkNkADBD.q/qCDDD:q;qEDFDGD=qHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D|O}O~O?q@q[q]qaPbPcP5D6D7D8D9D^q_q`q{q|q}q~qarbr!D#D$Dcrdr%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DdPePaEbEcEdEeEfEgEhEfPgPhPiPjPkPerfrgrhrirjrkrlrmrnrorprqrrrsrVttriEjEkElEmEnElPmPnPoPpPqPrPsPoEpEurvrwrxryrzrWtXttPuPvPwPArBrxPyPzPAPvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPjqEBPCP,iDPEPrEsEtEuEvEFPGPHP+h,h-h.h/h:h;h=h?h@h[hIPJPfgwEggxESrY Z 0 1 2 3 TrUrVrWrXrKPLP,b) -i.i/i:iMPNPYdZd0d1dyEg zEOPPPQPRP]hAEhgigYrn JfKfueSkLf1lBECEDEEEFEGEHE4 2d3d4d5d6d7d8d9d!d#d$d%dIEJEKELEMENEOEPE2lZr0rSPQERESETEUEVEWExl;iXEYEKe=i1t2t3tnf1r2rofpfqf3rncocpcqcrcsctcveZE0E1E2E4r5r6r7r3E8r9r^hNf_hjgkglgOfMfYe~ ZeTPUPyl4E!r4tucvcwcxcyczcAcBc#r$rVP%r'r5E(rWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P)r'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQ6E7E8E9E!E#E$E%E'E(E)E*EvQwQxQyQzQAQBQ5t6t7tCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQ+E,E-E.E/Ewe0e3l1e2ePf3e4e5e:E;EVQ=E?E@E[E]E^E*r+r,r-r?iWQXQ4l5lTkUk_E`E6l7l8l{EzlAlabbb`h{h|h}h~haibicidieifigi|E}E~EaFYQZQbFcF8tVkWkdFeF.r/rfFgF:r;rhFiFjF=rkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF0Q1Q2Q?r@r[r]r3Q4Q5QIFJFKFLFMF^r_r`r{r|r}r~rasbsNFOFPFcsdsQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$F%F6Q7Q'F(F)F*F+F,F-F.F8Q9Q!Q#Q$Q%Qesfsgshsisjskslsmsnsospsqsrsss9t!t/F:F;F=F?F@F'Q(Q)Q*Q+Q,Q-Q.Q[F]Ftsusvswsxsys#t$t/Q:Q;Q=QzsAs?Q@Q[Q]QBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYj^F^Q_Q[i`Q{Q_F`F{F|F}F|Q}Q~QhiiijikiliminioipiqiriaRbRmg~FngaGRs5 6 7 8 9 ! SsTsUsVsWscRdRCc* ]i^i_i`ieRfRxe'd(d)dbG
91 get_origin(annotation)
92 )
95def value_is_sequence(value: Any) -> bool: 1fabcdeg
96 return isinstance(value, sequence_types) and not isinstance(value, (str, bytes)) # type: ignore[arg-type] 2lRmRsi/b:b{i|i}i~isRtRBi@b[b2f3f4f5fCRDRMi`b{b'f(f)f*fMRNRXiacbcpjqjrjsjTRUR6ifcgcyjzjAjBj0R1R(ikclcHjIjJjKj;iAcBcQjRjSjTj
99def _annotation_is_complex(annotation: Union[Type[Any], None]) -> bool: 1fabcdeg
100 return ( 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
101 lenient_issubclass(
102 annotation, (BaseModel, may_v1.BaseModel, Mapping, UploadFile)
103 )
104 or _annotation_is_sequence(annotation)
105 or is_dataclass(annotation)
106 )
109def field_annotation_is_complex(annotation: Union[Type[Any], None]) -> bool: 1fabcdeg
110 origin = get_origin(annotation) 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
111 if origin is Union or origin is UnionType: 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
112 return any(field_annotation_is_complex(arg) for arg in get_args(annotation)) 2f h o ^ + , p q r s t u # a i v _ - . w x y z A B $ b j C ` ]d^d_d`d/ : D E F G H I % c k J { aebecede; = K L M N O P ' d l Q | iejekele? @ R S T U V W ( e m X } qeresete[ ] Y Z 0 1 2 3 ) g n 4 ~ Pf3e4e5eabbb5 6 7 8 9 ! *
114 if origin is Annotated: 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
115 return field_annotation_is_complex(get_args(annotation)[0]) 1#a$b%c'd(e)g*
117 return ( 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
118 _annotation_is_complex(annotation)
119 or _annotation_is_complex(origin)
120 or hasattr(origin, "__pydantic_core_schema__")
121 or hasattr(origin, "__get_pydantic_core_schema__")
122 )
125def field_annotation_is_scalar(annotation: Any) -> bool: 1fabcdeg
126 # handle Ellipsis here to make tuple[int, ...] work nicely
127 return annotation is Ellipsis or not field_annotation_is_complex(annotation) 2f ogQfRfh *do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,debvbwb-b.bxb-d;b+ , VfWfp q r s t u # QcRcScTca OgXfYfi .dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :dgbEbFb=b?bGb;d]b- . 6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @dibNbOb^b_bPb[d|b]d^d_d`d/ : +f,fD E F G H I cb% @c[c]c^cc dh-f.fk {dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dkbWbXb}b~bYb~dccaebecede; = ?f@fK L M N O P *b' kdldmdndd Dh[f]fl eeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gemb5b6bdcec7bhehciejekele? @ |f}fR S T U V W +b( EdFdGdHde 3h~fagm meX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeob'b(bicjc)bpemcqeresete[ ] fgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ ZeucvcwcxcyczcwePf3e4e5eabbbmgng5 6 7 8 9 ! Cc* xe'd(d)d
130def field_annotation_is_scalar_sequence(annotation: Union[Type[Any], None]) -> bool: 1fabcdeg
131 origin = get_origin(annotation) 2f tf+d^ ,da wf/d_ :db zf?d` @dc Cf|d{ }dd Fffe| gee Ifne} oeg MfYe~ Ze
132 if origin is Union or origin is UnionType: 2f tf+d^ ,da wf/d_ :db zf?d` @dc Cf|d{ }dd Fffe| gee Ifne} oeg MfYe~ Ze
133 at_least_one_scalar_sequence = False 1f^a_b`c{d|e}g~
134 for arg in get_args(annotation): 1f^a_b`c{d|e}g~
135 if field_annotation_is_scalar_sequence(arg): 1f^a_b`c{d|e}g~
136 at_least_one_scalar_sequence = True 1fabcdeg
137 continue 1fabcdeg
138 elif not field_annotation_is_scalar(arg): 1f^a_b`c{d|e}g~
139 return False 1^_`{|}~
140 return at_least_one_scalar_sequence 1fabcdeg
141 return field_annotation_is_sequence(annotation) and all( 2f tf+d^ ,da wf/d_ :db zf?d` @dc Cf|d{ }dd Fffe| gee Ifne} oeg MfYe~ Ze
142 field_annotation_is_scalar(sub_annotation)
143 for sub_annotation in get_args(annotation)
144 )
147def is_bytes_or_nonable_bytes_annotation(annotation: Any) -> bool: 1fabcdeg
148 if lenient_issubclass(annotation, bytes): 2rfZj8e2ksiye9e!e#e$e/b:b3j4j8k7s9k8s5jvizeMeNe9s6j{i|i}i7j~i8jajbjcjdjejuf9j(e#kBiAe)e*e+e,e@b[b%j'j,k[s-k]s[jEiBeOePe^s]j2f3f4fFi5fGifjgjhjijjjxf^j/e/kMiCe:e;e=e?e`b{b|j}j_klt`kmtmkPiDeQeRentnk'f(f)fQi*fRikjljmjnjojAfok]e|kXiEe^e_e`e{eacbcsktkdlytelztuk0iFeSeTeAtvkpjqjrjwksjxktjujvjwjxjDfyk~egl6iGeafbfcfdffcgcCkDkmlLtnlMtEk9iHeUeVeNtFkyjzjAjGkBjHkCjDjEjFjGjGfIkgfpl(iIehfifjfkfkclcMkNkvlYtwlZtOk+iJeWeXe0tPkHjIjJjQkKjRkLjMjNjOjPjJfSkLfxl;iKenfofpfqfAcBcVkWkBl%tCl'tXk@iLe6e7e(tYkQjRjSjZkTj0kUjVjWjXjYj
149 return True 2rf2ksi/b:b8k7s9k8s9s{i|i}i~iajbjcjdjejuf#kBi@b[b,k[s-k]s^s2f3f4f5ffjgjhjijjjxf/kMi`b{b_klt`kmtnt'f(f)f*fkjljmjnjojAf|kXiacbcdlytelztAtpjqjrjsjtjujvjwjxjDfgl6ifcgcmlLtnlMtNtyjzjAjBjCjDjEjFjGjGfpl(ikclcvlYtwlZt0tHjIjJjKjLjMjNjOjPjJfxl;iAcBcBl%tCl't(tQjRjSjTjUjVjWjXjYj
150 origin = get_origin(annotation) 2rfZj8esiye9e!e#e$e/b:b3j4j5jvizeMeNe6j{i|i}i7j~i8jajbjcjdjejuf9j(eBiAe)e*e+e,e@b[b%j'j[jEiBeOePe]j2f3f4fFi5fGifjgjhjijjjxf^j/eMiCe:e;e=e?e`b{b|j}jmkPiDeQeRenk'f(f)fQi*fRikjljmjnjojAfok]eXiEe^e_e`e{eacbcsktkuk0iFeSeTevkpjqjrjwksjxktjujvjwjxjDfyk~e6iGeafbfcfdffcgcCkDkEk9iHeUeVeFkyjzjAjGkBjHkCjDjEjFjGjGfIkgf(iIehfifjfkfkclcMkNkOk+iJeWeXePkHjIjJjQkKjRkLjMjNjOjPjJfSkLf;iKenfofpfqfAcBcVkWkXk@iLe6e7eYkQjRjSjZkTj0kUjVjWjXjYj
151 if origin is Union or origin is UnionType: 2rfZj8esiye9e!e#e$e/b:b3j4j5jvizeMeNe6j{i|i}i7j~i8jajbjcjdjejuf9j(eBiAe)e*e+e,e@b[b%j'j[jEiBeOePe]j2f3f4fFi5fGifjgjhjijjjxf^j/eMiCe:e;e=e?e`b{b|j}jmkPiDeQeRenk'f(f)fQi*fRikjljmjnjojAfok]eXiEe^e_e`e{eacbcsktkuk0iFeSeTevkpjqjrjwksjxktjujvjwjxjDfyk~e6iGeafbfcfdffcgcCkDkEk9iHeUeVeFkyjzjAjGkBjHkCjDjEjFjGjGfIkgf(iIehfifjfkfkclcMkNkOk+iJeWeXePkHjIjJjQkKjRkLjMjNjOjPjJfSkLf;iKenfofpfqfAcBcVkWkXk@iLe6e7eYkQjRjSjZkTj0kUjVjWjXjYj
152 for arg in get_args(annotation): 2ye/b:bvizeMeNeAe@b[bEiBeOePeCe`b{bPiDeQeReEeacbc0iFeSeTeGefcgc9iHeUeVeIekclc+iJeWeXeKeAcBc@iLe6e7e
153 if lenient_issubclass(arg, bytes): 2ye/b:bvizeMeNeAe@b[bEiBeOePeCe`b{bPiDeQeReEeacbc0iFeSeTeGefcgc9iHeUeVeIekclc+iJeWeXeKeAcBc@iLe6e7e
154 return True 2yevizeAeEiBeCePiDeEe0iFeGe9iHeIe+iJeKe@iLe
155 return False 2rfZj8esi9e!e#e$e/b:b3j4j5jMeNe6j{i|i}i7j~i8jajbjcjdjejuf9j(eBi)e*e+e,e@b[b%j'j[jOePe]j2f3f4fFi5fGifjgjhjijjjxf^j/eMi:e;e=e?e`b{b|j}jmkQeRenk'f(f)fQi*fRikjljmjnjojAfok]eXi^e_e`e{eacbcsktkukSeTevkpjqjrjwksjxktjujvjwjxjDfyk~e6iafbfcfdffcgcCkDkEkUeVeFkyjzjAjGkBjHkCjDjEjFjGjGfIkgf(ihfifjfkfkclcMkNkOkWeXePkHjIjJjQkKjRkLjMjNjOjPjJfSkLf;infofpfqfAcBcVkWkXk6e7eYkQjRjSjZkTj0kUjVjWjXjYj
158def is_uploadfile_or_nonable_uploadfile_annotation(annotation: Any) -> bool: 1fabcdeg
159 if lenient_issubclass(annotation, UploadFile): 2f h sf*d8eo DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.d(ev UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=d/eC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{d]eJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l Efee~eQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmegfX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n KfueLf4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
160 return True 2f sf8ea vf(eb yf/ec Bf]ed Ef~ee Hfgfg KfLf
161 origin = get_origin(annotation) 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
162 if origin is Union or origin is UnionType: 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
163 for arg in get_args(annotation): 1fhopqrstu#aivwxyzAB$bjCDEFGHI%ckJKLMNOP'dlQRSTUVW(emXYZ0123)gn456789!*
164 if lenient_issubclass(arg, UploadFile): 1fhopqrstu#aivwxyzAB$bjCDEFGHI%ckJKLMNOP'dlQRSTUVW(emXYZ0123)gn456789!*
165 return True 1fabcdeg
166 return False 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
169def is_bytes_sequence_annotation(annotation: Any) -> bool: 1fabcdeg
170 origin = get_origin(annotation) 2rfZj8e2ksiyetiXsYsZs9e%l'l!e#e$e(l/b:brgsgtgugvgwgxgygzgAgBgCg3j4j8k9k5jzeMeNe6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejDgEgFgGgHgIgJgKgLgMgNgxiyiziAiuf9j(e#kBiAeCi!s#s$s)e,m-m*e+e,e.m@b[bRgSgTgUgVgWgXgYgZg0g1g2g%j'j,k-k[jBeOePe]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjj3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixf^j/e/kMiCeNi_s`s{s:e8n9n;e=e?e!n`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[g|j}j_k`kmkDeQeRenk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj]g^g_g`g{g|g}g~gahbhchTiUiViWiAfok]e|kXiEeYiotptqt^eXoYo_e`e{eZoacbchdidjdghhhihjhkhlhmhnhohphqhrhsktkdlelukFeSeTevkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxjshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfyk~egl6iGe7iBtCtDtafZp0pbfcfdf1pfcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhCkDkmlnlEkHeUeVeFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIkgfpl(iIe)iOtPtQthf0q1qifjfkf2qkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hMkNkvlwlOkJeWeXePkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPj+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfSkLfxl;iKe=i1t2t3tnf1r2rofpfqf3rAcBc0e1e2e`h{h|h}h~haibicidieifigiVkWkBlClXkLe6e7eYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYjhiiijikiliminioipiqiri]i^i_i`i
171 if origin is Union or origin is UnionType: 2rfZj8e2ksiyetiXsYsZs9e%l'l!e#e$e(l/b:brgsgtgugvgwgxgygzgAgBgCg3j4j8k9k5jzeMeNe6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejDgEgFgGgHgIgJgKgLgMgNgxiyiziAiuf9j(e#kBiAeCi!s#s$s)e,m-m*e+e,e.m@b[bRgSgTgUgVgWgXgYgZg0g1g2g%j'j,k-k[jBeOePe]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjj3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixf^j/e/kMiCeNi_s`s{s:e8n9n;e=e?e!n`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[g|j}j_k`kmkDeQeRenk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj]g^g_g`g{g|g}g~gahbhchTiUiViWiAfok]e|kXiEeYiotptqt^eXoYo_e`e{eZoacbchdidjdghhhihjhkhlhmhnhohphqhrhsktkdlelukFeSeTevkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxjshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfyk~egl6iGe7iBtCtDtafZp0pbfcfdf1pfcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhCkDkmlnlEkHeUeVeFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIkgfpl(iIe)iOtPtQthf0q1qifjfkf2qkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hMkNkvlwlOkJeWeXePkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPj+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfSkLfxl;iKe=i1t2t3tnf1r2rofpfqf3rAcBc0e1e2e`h{h|h}h~haibicidieifigiVkWkBlClXkLe6e7eYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYjhiiijikiliminioipiqiri]i^i_i`i
172 at_least_one = False 2rfyeti9e!e#e$e/b:brgsgtgugvgwgxgygzgAgBgCgzeMeNeDgEgFgGgHgIgJgKgLgMgNgxiyiziAiufAeCi)e*e+e,e@b[bRgSgTgUgVgWgXgYgZg0g1g2gBeOePe3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixfCeNi:e;e=e?e`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[gDeQeRe]g^g_g`g{g|g}g~gahbhchTiUiViWiAfEeYi^e_e`e{eacbchdidjdghhhihjhkhlhmhnhohphqhrhFeSeTeshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfGe7iafbfcfdffcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhHeUeVeShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIe)ihfifjfkfkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hJeWeXe+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfKe=infofpfqfAcBc0e1e2e`h{h|h}h~haibicidieifigiLe6e7ehiiijikiliminioipiqiri]i^i_i`i
173 for arg in get_args(annotation): 2rfyeti9e!e#e$e/b:brgsgtgugvgwgxgygzgAgBgCgzeMeNeDgEgFgGgHgIgJgKgLgMgNgxiyiziAiufAeCi)e*e+e,e@b[bRgSgTgUgVgWgXgYgZg0g1g2gBeOePe3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixfCeNi:e;e=e?e`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[gDeQeRe]g^g_g`g{g|g}g~gahbhchTiUiViWiAfEeYi^e_e`e{eacbchdidjdghhhihjhkhlhmhnhohphqhrhFeSeTeshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfGe7iafbfcfdffcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhHeUeVeShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIe)ihfifjfkfkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hJeWeXe+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfKe=infofpfqfAcBc0e1e2e`h{h|h}h~haibicidieifigiLe6e7ehiiijikiliminioipiqiri]i^i_i`i
174 if is_bytes_sequence_annotation(arg): 2rfyeti9e!e#e$e/b:brgsgtgugvgwgxgygzgAgBgCgzeMeNeDgEgFgGgHgIgJgKgLgMgNgxiyiziAiufAeCi)e*e+e,e@b[bRgSgTgUgVgWgXgYgZg0g1g2gBeOePe3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixfCeNi:e;e=e?e`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[gDeQeRe]g^g_g`g{g|g}g~gahbhchTiUiViWiAfEeYi^e_e`e{eacbchdidjdghhhihjhkhlhmhnhohphqhrhFeSeTeshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfGe7iafbfcfdffcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhHeUeVeShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIe)ihfifjfkfkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hJeWeXe+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfKe=infofpfqfAcBc0e1e2e`h{h|h}h~haibicidieifigiLe6e7ehiiijikiliminioipiqiri]i^i_i`i
175 at_least_one = True 2rf/b:buf@b[bxf`b{bAfacbcDffcgcGfkclcJfAcBc
176 continue 2rf/b:buf@b[bxf`b{bAfacbcDffcgcGfkclcJfAcBc
177 return at_least_one 2rfyeti9e!e#e$e/b:brgsgtgugvgwgxgygzgAgBgCgzeMeNeDgEgFgGgHgIgJgKgLgMgNgxiyiziAiufAeCi)e*e+e,e@b[bRgSgTgUgVgWgXgYgZg0g1g2gBeOePe3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixfCeNi:e;e=e?e`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[gDeQeRe]g^g_g`g{g|g}g~gahbhchTiUiViWiAfEeYi^e_e`e{eacbchdidjdghhhihjhkhlhmhnhohphqhrhFeSeTeshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfGe7iafbfcfdffcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhHeUeVeShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIe)ihfifjfkfkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hJeWeXe+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfKe=infofpfqfAcBc0e1e2e`h{h|h}h~haibicidieifigiLe6e7ehiiijikiliminioipiqiri]i^i_i`i
178 return field_annotation_is_sequence(annotation) and all( 2rfZj8e2ksiyetiXsYsZs9e%l'l!e#e$e(l/b:brgsgtgugvgwgxgygzgAgBgCg3j4j8k9k5jzeMeNe6j{i|i}i7j~i8jTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8majbjcjdjejDgEgFgGgHgIgJgKgLgMgNgxiyiziAiuf9j(e#kBiAeCi!s#s$s)e,m-m*e+e,e.m@b[bRgSgTgUgVgWgXgYgZg0g1g2g%j'j,k-k[jBeOePe]j2f3f4fFi5fGiInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnfjgjhjijjj3g4g5g6g7g8g9g!g#g$g%gIiJiKiLixf^j/e/kMiCeNi_s`s{s:e8n9n;e=e?e!n`b{b;c=c?c*g+g,g-g.g/g:g;g=g?g@g[g|j}j_k`kmkDeQeRenk'f(f)fQi*fRixoyozoAoBoCoDoEoFoGoHoIoJoKoLoMokjljmjnjoj]g^g_g`g{g|g}g~gahbhchTiUiViWiAfok]e|kXiEeYiotptqt^eXoYo_e`e{eZoacbchdidjdghhhihjhkhlhmhnhohphqhrhsktkdlelukFeSeTevkpjqjrjwksjxkzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOptjujvjwjxjshthuhvhwhxhyhzhAhBhCh2i3i4i5iDfyk~egl6iGe7iBtCtDtafZp0pbfcfdf1pfcgcBdCdDdGhHhIhJhKhLhMhNhOhPhQhRhCkDkmlnlEkHeUeVeFkyjzjAjGkBjHkBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqCjDjEjFjGjShThUhVhWhXhYhZh0h1h2h#i$i%i'iGfIkgfpl(iIe)iOtPtQthf0q1qifjfkf2qkclcVdWdXd6h7h8h9h!h#h$h%h'h(h)h*hMkNkvlwlOkJeWeXePkHjIjJjQkKjRkCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrLjMjNjOjPj+h,h-h.h/h:h;h=h?h@h[h-i.i/i:iJfSkLfxl;iKe=i1t2t3tnf1r2rofpfqf3rAcBc0e1e2e`h{h|h}h~haibicidieifigiVkWkBlClXkLe6e7eYkQjRjSjZkTj0kBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsUjVjWjXjYjhiiijikiliminioipiqiri]i^i_i`i
179 is_bytes_or_nonable_bytes_annotation(sub_annotation)
180 for sub_annotation in get_args(annotation)
181 )
184def is_uploadfile_sequence_annotation(annotation: Any) -> bool: 1fabcdeg
185 origin = get_origin(annotation) 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
186 if origin is Union or origin is UnionType: 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
187 at_least_one = False 2f h sfo p q r s t u # a i vfv w x y z A B $ b j yfC D E F G H I % c k BfJ K L M N O P ' d l EfQ R S T U V W ( e m HfX Y Z 0 1 2 3 ) g n Kf4 5 6 7 8 9 ! *
188 for arg in get_args(annotation): 2f h sfo p q r s t u # a i vfv w x y z A B $ b j yfC D E F G H I % c k BfJ K L M N O P ' d l EfQ R S T U V W ( e m HfX Y Z 0 1 2 3 ) g n Kf4 5 6 7 8 9 ! *
189 if is_uploadfile_sequence_annotation(arg): 2f h sfo p q r s t u # a i vfv w x y z A B $ b j yfC D E F G H I % c k BfJ K L M N O P ' d l EfQ R S T U V W ( e m HfX Y Z 0 1 2 3 ) g n Kf4 5 6 7 8 9 ! *
190 at_least_one = True 2sfvfyfBfEfHfKf
191 continue 2sfvfyfBfEfHfKf
192 return at_least_one 2f h sfo p q r s t u # a i vfv w x y z A B $ b j yfC D E F G H I % c k BfJ K L M N O P ' d l EfQ R S T U V W ( e m HfX Y Z 0 1 2 3 ) g n Kf4 5 6 7 8 9 ! *
193 return field_annotation_is_sequence(annotation) and all( 2f h sf*do DcEcFcGcHcIcJcKcLcMcNcOcpbqbrbsbtbubdbPcebvbwb-b.bxb-d;b+ , p q r s t u # QcRcScTca i vf.dv UcVcWcXcYcZc0c1c2c3c4c5cybzbAbBbCbDbfb6cgbEbFb=b?bGb;d]b- . w x y z A B $ 7c8c9c!cb j yf=dC #c$c%c'c(c)c*c+c,c-c.c/cHbIbJbKbLbMbhb:cibNbOb^b_bPb[d|b/ : D E F G H I cb% @c[c]c^cc k Bf{dJ _c`c{c|c}c~cadbdcdddedfdQbRbSbTbUbVbjbgdkbWbXb}b~bYb~dcc; = K L M N O P *b' kdldmdndd l EfeeQ odpdqdrdsdtdudvdwdxdydzdZb0b1b2b3b4blbAdmb5b6bdcec7bhehc? @ R S T U V W +b( EdFdGdHde m HfmeX IdJdKdLdMdNdOdPdQdRdSdTd8b9b!b#b$b%bnbUdob'b(bicjc)bpemc[ ] Y Z 0 1 2 3 ,b) YdZd0d1dg n Kfue4 2d3d4d5d6d7d8d9d!d#d$d%dncocpcqcrcsctcveucvcwcxcyczcweabbb5 6 7 8 9 ! Cc* xe'd(d)d
194 is_uploadfile_or_nonable_uploadfile_annotation(sub_annotation)
195 for sub_annotation in get_args(annotation)
196 )
199def annotation_is_pydantic_v1(annotation: Any) -> bool: 1fabcdeg
200 if lenient_issubclass(annotation, may_v1.BaseModel): 2f ogQfRfh *d8e1kDlo DcEcFcGcHcIcJcKcLcMcNcOcElpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,d0jebvbwb-b.bxb-d;buiLuFlGl1j2j3k4k5k6k7k+ , wiVfWfp q r s t u # QcRcScTca OgXfYfi .d(e!kHlv UcVcWcXcYcZc0c1c2c3c4c5cIlybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :d!jgbEbFb=b?bGb;d]bDipwJlKl#j$j$k%k'k(k)k- . Hi6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =d/e.kLlC #c$c%c'c(c)c*c+c,c-c.c/cMlHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @d_jibNbOb^b_bPb[d|b;c%f=c?c]d^d_d`dOi^xNlOl`j{j:k;k=k?k@k/ : Si+f,fD E F G H I cb% @c[c]c^cc dh-f.fk {d]e{kPlJ _c`c{c|c}c~cadbdcdddedfdQlQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dpkkbWbXb}b~bYb~dcchd=fidjdaebecedeZi8zRlSlqkrk}k~kalblcl; = 1i?f@fK L M N O P *b' kdldmdndd Dh[f]fl ee~eflTlQ odpdqdrdsdtdudvdwdxdydzdUlZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gezkmb5b6bdcec7bhehcBd{fCdDdiejekele8iMBVlWlAkBkhliljlklll? @ !i|f}fR S T U V W +b( EdFdGdHde 3h~fagm megfolXlX IdJdKdLdMdNdOdPdQdRdSdTdYl8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeJkob'b(bicjc)bpemcVdegWdXdqeresete*iqDZl0lKkLkqlrlsltlul[ ] ,ifgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ueLf1l4 2d3d4d5d6d7d8d9d!d#d$d%d2lncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ Zeylucvcwcxcyczcwe0e3l1e2ePf3e4e5e?i4l5lTkUk6l7l8lzlAlabbb[imgng5 6 7 8 9 ! Cc* xe'd(d)d
201 return True 2f 8e1kpbqbrbsbtbubdbPc%e'e+d,d0jebvbwbxb;b+ , Qca (e!kybzbAbBbCbDbfb6c-e.e/d:d!jgbEbFbGb]b- . 7cb /e.kHbIbJbKbLbMbhb:c@e[e?d@d_jibNbObPb|b;c%f=c?c/ : @cc ]e{kQbRbSbTbUbVbjbgd|e}e|d}dpkkbWbXbYbcchd=fidjd; = kdd ~eflZb0b1b2b3b4blbAdeffffegezkmb5b6b7bhcBd{fCdDd? @ Ede gfol8b9b!b#b$b%bnbUdlfmfneoeJkob'b(b)bmcVdegWdXd[ ] Yd
202 origin = get_origin(annotation) 2f ogQfRfh *d8e1kDlo DcEcFcGcHcIcJcKcLcMcNcOcElpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,d0jebvbwb-b.bxb-d;buiLuFlGl1j2j3k4k5k6k7k+ , wiVfWfp q r s t u # QcRcScTca OgXfYfi .d(e!kHlv UcVcWcXcYcZc0c1c2c3c4c5cIlybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :d!jgbEbFb=b?bGb;d]bDipwJlKl#j$j$k%k'k(k)k- . Hi6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =d/e.kLlC #c$c%c'c(c)c*c+c,c-c.c/cMlHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @d_jibNbOb^b_bPb[d|b;c%f=c?c]d^d_d`dOi^xNlOl`j{j:k;k=k?k@k/ : Si+f,fD E F G H I cb% @c[c]c^cc dh-f.fk {d]e{kPlJ _c`c{c|c}c~cadbdcdddedfdQlQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dpkkbWbXb}b~bYb~dcchd=fidjdaebecedeZi8zRlSlqkrk}k~kalblcl; = 1i?f@fK L M N O P *b' kdldmdndd Dh[f]fl ee~eflTlQ odpdqdrdsdtdudvdwdxdydzdUlZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gezkmb5b6bdcec7bhehcBd{fCdDdiejekele8iMBVlWlAkBkhliljlklll? @ !i|f}fR S T U V W +b( EdFdGdHde 3h~fagm megfolXlX IdJdKdLdMdNdOdPdQdRdSdTdYl8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeJkob'b(bicjc)bpemcVdegWdXdqeresete*iqDZl0lKkLkqlrlsltlul[ ] ,ifgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ueLf1l4 2d3d4d5d6d7d8d9d!d#d$d%d2lncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ Zeylucvcwcxcyczcwe0e3l1e2ePf3e4e5e?i4l5lTkUk6l7l8lzlAlabbb[imgng5 6 7 8 9 ! Cc* xe'd(d)d
203 if origin is Union or origin is UnionType: 2f ogQfRfh *d8e1kDlo DcEcFcGcHcIcJcKcLcMcNcOcElpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,d0jebvbwb-b.bxb-d;buiLuFlGl1j2j3k4k5k6k7k+ , wiVfWfp q r s t u # QcRcScTca OgXfYfi .d(e!kHlv UcVcWcXcYcZc0c1c2c3c4c5cIlybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :d!jgbEbFb=b?bGb;d]bDipwJlKl#j$j$k%k'k(k)k- . Hi6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =d/e.kLlC #c$c%c'c(c)c*c+c,c-c.c/cMlHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @d_jibNbOb^b_bPb[d|b;c%f=c?c]d^d_d`dOi^xNlOl`j{j:k;k=k?k@k/ : Si+f,fD E F G H I cb% @c[c]c^cc dh-f.fk {d]e{kPlJ _c`c{c|c}c~cadbdcdddedfdQlQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dpkkbWbXb}b~bYb~dcchd=fidjdaebecedeZi8zRlSlqkrk}k~kalblcl; = 1i?f@fK L M N O P *b' kdldmdndd Dh[f]fl ee~eflTlQ odpdqdrdsdtdudvdwdxdydzdUlZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gezkmb5b6bdcec7bhehcBd{fCdDdiejekele8iMBVlWlAkBkhliljlklll? @ !i|f}fR S T U V W +b( EdFdGdHde 3h~fagm megfolXlX IdJdKdLdMdNdOdPdQdRdSdTdYl8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeJkob'b(bicjc)bpemcVdegWdXdqeresete*iqDZl0lKkLkqlrlsltlul[ ] ,ifgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ueLf1l4 2d3d4d5d6d7d8d9d!d#d$d%d2lncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ Zeylucvcwcxcyczcwe0e3l1e2ePf3e4e5e?i4l5lTkUk6l7l8lzlAlabbb[imgng5 6 7 8 9 ! Cc* xe'd(d)d
204 for arg in get_args(annotation): 2f h o ^ uiLu+ , wip q r s t u a i v _ Dipw- . Hiw x y z A B b j C ` ;c%f=c?c]d^d_d`dOi^x/ : SiD E F G H I c k J { hd=fidjdaebecedeZi8z; = 1iK L M N O P d l Q | Bd{fCdDdiejekele8iMB? @ !iR S T U V W e m X } VdegWdXdqeresete*iqD[ ] ,iY Z 0 1 2 3 g n 4 ~ ?iabbb[i5 6 7 8 9 !
205 if lenient_issubclass(arg, may_v1.BaseModel): 2f h o ^ uiLu+ , wip q r s t u a i v _ Dipw- . Hiw x y z A B b j C ` ;c%f=c?c]d^d_d`dOi^x/ : SiD E F G H I c k J { hd=fidjdaebecedeZi8z; = 1iK L M N O P d l Q | Bd{fCdDdiejekele8iMB? @ !iR S T U V W e m X } VdegWdXdqeresete*iqD[ ] ,iY Z 0 1 2 3 g n 4 ~ ?iabbb[i5 6 7 8 9 !
206 return True 2f Lua pwb ^xc 8zd MBe qD
207 if field_annotation_is_sequence(annotation): 2f ogQfRfh *d8e1kDlo DcEcFcGcHcIcJcKcLcMcNcOcElpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,d0jebvbwb-b.bxb-d;buiFlGl1j2j3k4k5k6k7k+ , wiVfWfp q r s t u # QcRcScTca OgXfYfi .d(e!kHlv UcVcWcXcYcZc0c1c2c3c4c5cIlybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :d!jgbEbFb=b?bGb;d]bDiJlKl#j$j$k%k'k(k)k- . Hi6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =d/e.kLlC #c$c%c'c(c)c*c+c,c-c.c/cMlHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @d_jibNbOb^b_bPb[d|b;c%f=c?c]d^d_d`dOiNlOl`j{j:k;k=k?k@k/ : Si+f,fD E F G H I cb% @c[c]c^cc dh-f.fk {d]e{kPlJ _c`c{c|c}c~cadbdcdddedfdQlQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dpkkbWbXb}b~bYb~dcchd=fidjdaebecedeZiRlSlqkrk}k~kalblcl; = 1i?f@fK L M N O P *b' kdldmdndd Dh[f]fl ee~eflTlQ odpdqdrdsdtdudvdwdxdydzdUlZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gezkmb5b6bdcec7bhehcBd{fCdDdiejekele8iVlWlAkBkhliljlklll? @ !i|f}fR S T U V W +b( EdFdGdHde 3h~fagm megfolXlX IdJdKdLdMdNdOdPdQdRdSdTdYl8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeJkob'b(bicjc)bpemcVdegWdXdqeresete*iZl0lKkLkqlrlsltlul[ ] ,ifgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ueLf1l4 2d3d4d5d6d7d8d9d!d#d$d%d2lncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ Zeylucvcwcxcyczcwe0e3l1e2ePf3e4e5e?i4l5lTkUk6l7l8lzlAlabbb[imgng5 6 7 8 9 ! Cc* xe'd(d)d
208 for sub_annotation in get_args(annotation): 2f h pbqbrbsbtbubdb%eSfTfUf'e+d,debvbwb-b.bxb1j2ja i ybzbAbBbCbDbfb-eZf0f1f.e/d:dgbEbFb=b?bGb#j$jb j HbIbJbKbLbMbhb@e!f#f$f[e?d@dibNbOb^b_bPb`j{jcbc k QbRbSbTbUbVbjb|e/f:f;f}e|d}dkbWbXb}b~bYbqkrk*bd l Zb0b1b2b3b4blbef^f_f`ffffegemb5b6bdcec7bAkBk+be m 8b9b!b#b$b%bnblfbgcgdgmfneoeob'b(bicjc)bKkLk,bg n ncocpcqcrcsctcNfjgkglgOfYeZeucvcwcxcyczcTkUkCc
209 if annotation_is_pydantic_v1(sub_annotation): 2f h pbqbrbsbtbubdb%e'e+d,debvbwb-b.bxb1j2ja i ybzbAbBbCbDbfb-e.e/d:dgbEbFb=b?bGb#j$jb j HbIbJbKbLbMbhb@e[e?d@dibNbOb^b_bPb`j{jcbc k QbRbSbTbUbVbjb|e}e|d}dkbWbXb}b~bYbqkrk*bd l Zb0b1b2b3b4blbeffffegemb5b6bdcec7bAkBk+be m 8b9b!b#b$b%bnblfmfneoeob'b(bicjc)bKkLk,bg n ncocpcqcrcsctcNfOfYeZeucvcwcxcyczcTkUkCc
210 return True 2f pbqbrbsbtbubdb%e'e+d,debvbwbxba ybzbAbBbCbDbfb-e.e/d:dgbEbFbGbb HbIbJbKbLbMbhb@e[e?d@dibNbObPbc QbRbSbTbUbVbjb|e}e|d}dkbWbXbYbd Zb0b1b2b3b4blbeffffegemb5b6b7be 8b9b!b#b$b%bnblfmfneoeob'b(b)b
211 return False 2f ogQfRfh *d8e1kDlo DcEcFcGcHcIcJcKcLcMcNcOcElpbqbrbsbtbubdbPcpg%eqgSfTfUf'etf+d^ ,d0jebvbwb-b.bxb-d;buiFlGl1j2j3k4k5k6k7k+ , wiVfWfp q r s t u # QcRcScTca OgXfYfi .d(e!kHlv UcVcWcXcYcZc0c1c2c3c4c5cIlybzbAbBbCbDbfb6cPg-eQgZf0f1f.ewf/d_ :d!jgbEbFb=b?bGb;d]bDiJlKl#j$j$k%k'k(k)k- . Hi6f7fw x y z A B $ 7c8c9c!cb 'g8f9fj =d/e.kLlC #c$c%c'c(c)c*c+c,c-c.c/cMlHbIbJbKbLbMbhb:c(g@e)g!f#f$f[ezf?d` @d_jibNbOb^b_bPb[d|b;c%f=c?c]d^d_d`dOiNlOl`j{j:k;k=k?k@k/ : Si+f,fD E F G H I cb% @c[c]c^cc dh-f.fk {d]e{kPlJ _c`c{c|c}c~cadbdcdddedfdQlQbRbSbTbUbVbjbgdeh|efh/f:f;f}eCf|d{ }dpkkbWbXb}b~bYb~dcchd=fidjdaebecedeZiRlSlqkrk}k~kalblcl; = 1i?f@fK L M N O P *b' kdldmdndd Dh[f]fl ee~eflTlQ odpdqdrdsdtdudvdwdxdydzdUlZb0b1b2b3b4blbAdEhefFh^f_f`fffFffe| gezkmb5b6bdcec7bhehcBd{fCdDdiejekele8iVlWlAkBkhliljlklll? @ !i|f}fR S T U V W +b( EdFdGdHde 3h~fagm megfolXlX IdJdKdLdMdNdOdPdQdRdSdTdYl8b9b!b#b$b%bnbUd4hlf5hbgcgdgmfIfne} oeJkob'b(bicjc)bpemcVdegWdXdqeresete*iZl0lKkLkqlrlsltlul[ ] ,ifgggY Z 0 1 2 3 ,b) YdZd0d1dg ]hhgign ueLf1l4 2d3d4d5d6d7d8d9d!d#d$d%d2lncocpcqcrcsctcve^hNf_hjgkglgOfMfYe~ Zeylucvcwcxcyczcwe0e3l1e2ePf3e4e5e?i4l5lTkUk6l7l8lzlAlabbb[imgng5 6 7 8 9 ! Cc* xe'd(d)d