Coverage for sqlmodel/main.py: 93%

353 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-03-24 00:02 +0000

1import ipaddress 1abcdef

2import uuid 1abcdef

3import weakref 1abcdef

4from datetime import date, datetime, time, timedelta 1abcdef

5from decimal import Decimal 1abcdef

6from enum import Enum 1abcdef

7from pathlib import Path 1abcdef

8from typing import ( 1abcdef

9 TYPE_CHECKING, 

10 AbstractSet, 

11 Any, 

12 Callable, 

13 ClassVar, 

14 Dict, 

15 List, 

16 Mapping, 

17 Optional, 

18 Sequence, 

19 Set, 

20 Tuple, 

21 Type, 

22 TypeVar, 

23 Union, 

24 cast, 

25 overload, 

26) 

27 

28from pydantic import BaseModel, EmailStr 1abcdef

29from pydantic.fields import FieldInfo as PydanticFieldInfo 1abcdef

30from sqlalchemy import ( 1abcdef

31 Boolean, 

32 Column, 

33 Date, 

34 DateTime, 

35 Float, 

36 ForeignKey, 

37 Integer, 

38 Interval, 

39 Numeric, 

40 inspect, 

41) 

42from sqlalchemy import Enum as sa_Enum 1abcdef

43from sqlalchemy.orm import ( 1abcdef

44 Mapped, 

45 RelationshipProperty, 

46 declared_attr, 

47 registry, 

48 relationship, 

49) 

50from sqlalchemy.orm.attributes import set_attribute 1abcdef

51from sqlalchemy.orm.decl_api import DeclarativeMeta 1abcdef

52from sqlalchemy.orm.instrumentation import is_instrumented 1abcdef

53from sqlalchemy.sql.schema import MetaData 1abcdef

54from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid 1abcdef

55from typing_extensions import Literal, TypeAlias, deprecated, get_origin 1abcdef

56 

57from ._compat import ( # type: ignore[attr-defined] 1abcdef

58 IS_PYDANTIC_V2, 

59 PYDANTIC_MINOR_VERSION, 

60 BaseConfig, 

61 ModelField, 

62 ModelMetaclass, 

63 Representation, 

64 SQLModelConfig, 

65 Undefined, 

66 UndefinedType, 

67 _calculate_keys, 

68 finish_init, 

69 get_annotations, 

70 get_config_value, 

71 get_field_metadata, 

72 get_model_fields, 

73 get_relationship_to, 

74 get_sa_type_from_field, 

75 init_pydantic_private_attrs, 

76 is_field_noneable, 

77 is_table_model_class, 

78 post_init_field_info, 

79 set_config_value, 

80 sqlmodel_init, 

81 sqlmodel_validate, 

82) 

83from .sql.sqltypes import AutoString 1abcdef

84 

85if TYPE_CHECKING: 1abcdef

86 from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 

87 from pydantic._internal._repr import Representation as Representation 

88 from pydantic_core import PydanticUndefined as Undefined 

89 from pydantic_core import PydanticUndefinedType as UndefinedType 

90 

91_T = TypeVar("_T") 1abcdef

92NoArgAnyCallable = Callable[[], Any] 1abcdef

93IncEx: TypeAlias = Union[ 1abcdef

94 Set[int], 

95 Set[str], 

96 Mapping[int, Union["IncEx", bool]], 

97 Mapping[str, Union["IncEx", bool]], 

98] 

99OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] 1abcdef

100 

101 

102def __dataclass_transform__( 1abcdef

103 *, 

104 eq_default: bool = True, 

105 order_default: bool = False, 

106 kw_only_default: bool = False, 

107 field_descriptors: Tuple[Union[type, Callable[..., Any]], ...] = (()), 

108) -> Callable[[_T], _T]: 

109 return lambda a: a 1abcdef

110 

111 

112class FieldInfo(PydanticFieldInfo): 1abcdef

113 def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: 1abcdef

114 primary_key = kwargs.pop("primary_key", False) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

115 nullable = kwargs.pop("nullable", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

116 foreign_key = kwargs.pop("foreign_key", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

117 ondelete = kwargs.pop("ondelete", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

118 unique = kwargs.pop("unique", False) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

119 index = kwargs.pop("index", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

120 sa_type = kwargs.pop("sa_type", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

121 sa_column = kwargs.pop("sa_column", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

122 sa_column_args = kwargs.pop("sa_column_args", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

123 sa_column_kwargs = kwargs.pop("sa_column_kwargs", Undefined) 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

124 if sa_column is not Undefined: 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

125 if sa_column_args is not Undefined: 2PlEn4p5n!p/p)pynZnVmQlFn5p6n#p:p*pzn0nWmRlGn6p7n$p;p+pAn1nXmSlHn7p8n%p=p,pBn2nYmTlIn8p9n'p?p-pCn3nZmUlJn9p!n(p@p.pDn4n0m

126 raise RuntimeError( 2/p:p;p=p?p@p

127 "Passing sa_column_args is not supported when " 

128 "also passing a sa_column" 

129 ) 

130 if sa_column_kwargs is not Undefined: 2PlEn4p5n!p)pynZnVmQlFn5p6n#p*pzn0nWmRlGn6p7n$p+pAn1nXmSlHn7p8n%p,pBn2nYmTlIn8p9n'p-pCn3nZmUlJn9p!n(p.pDn4n0m

131 raise RuntimeError( 2)p*p+p,p-p.p

132 "Passing sa_column_kwargs is not supported when " 

133 "also passing a sa_column" 

134 ) 

135 if primary_key is not Undefined: 2PlEn4p5n!pynZnVmQlFn5p6n#pzn0nWmRlGn6p7n$pAn1nXmSlHn7p8n%pBn2nYmTlIn8p9n'pCn3nZmUlJn9p!n(pDn4n0m

136 raise RuntimeError( 2!p#p$p%p'p(p

137 "Passing primary_key is not supported when also passing a sa_column" 

138 ) 

139 if nullable is not Undefined: 2PlEn4p5nynZnVmQlFn5p6nzn0nWmRlGn6p7nAn1nXmSlHn7p8nBn2nYmTlIn8p9nCn3nZmUlJn9p!nDn4n0m

140 raise RuntimeError( 24p5p6p7p8p9p

141 "Passing nullable is not supported when also passing a sa_column" 

142 ) 

143 if foreign_key is not Undefined: 2PlEn5nynZnVmQlFn6nzn0nWmRlGn7nAn1nXmSlHn8nBn2nYmTlIn9nCn3nZmUlJn!nDn4n0m

144 raise RuntimeError( 2PlQlRlSlTlUl

145 "Passing foreign_key is not supported when also passing a sa_column" 

146 ) 

147 if ondelete is not Undefined: 2En5nynZnVmFn6nzn0nWmGn7nAn1nXmHn8nBn2nYmIn9nCn3nZmJn!nDn4n0m

148 raise RuntimeError( 25n6n7n8n9n!n

149 "Passing ondelete is not supported when also passing a sa_column" 

150 ) 

151 if unique is not Undefined: 2EnynZnVmFnzn0nWmGnAn1nXmHnBn2nYmInCn3nZmJnDn4n0m

152 raise RuntimeError( 2Zn0n1n2n3n4n

153 "Passing unique is not supported when also passing a sa_column" 

154 ) 

155 if index is not Undefined: 2EnynVmFnznWmGnAnXmHnBnYmInCnZmJnDn0m

156 raise RuntimeError( 2EnFnGnHnInJn

157 "Passing index is not supported when also passing a sa_column" 

158 ) 

159 if sa_type is not Undefined: 2ynVmznWmAnXmBnYmCnZmDn0m

160 raise RuntimeError( 2ynznAnBnCnDn

161 "Passing sa_type is not supported when also passing a sa_column" 

162 ) 

163 if ondelete is not Undefined: 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

164 if foreign_key is Undefined: 2snEd_ ,b` ' { tnFdbbcb^b_bdbeb( ) fbgbunGdnbobpblcmcncqbrbsb* + , tbubvbvnHdCbDbEbGcHcIcFbGbHb- . / IbJbKbwnIdRbSbTb1c2c3cUbVbWb: ; = XbYbZbxnJd6b7b8b/c:c;c9b!b#b? @ [ $b%b'b

165 raise RuntimeError("ondelete can only be used with foreign_key") 2sntnunvnwnxn

166 super().__init__(default=default, **kwargs) 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

167 self.primary_key = primary_key 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

168 self.nullable = nullable 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

169 self.foreign_key = foreign_key 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

170 self.ondelete = ondelete 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

171 self.unique = unique 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

172 self.index = index 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

173 self.sa_type = sa_type 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

174 self.sa_column = sa_column 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

175 self.sa_column_args = sa_column_args 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

176 self.sa_column_kwargs = sa_column_kwargs 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

177 

178 

179class RelationshipInfo(Representation): 1abcdef

180 def __init__( 1abcdef

181 self, 

182 *, 

183 back_populates: Optional[str] = None, 

184 cascade_delete: Optional[bool] = False, 

185 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

186 link_model: Optional[Any] = None, 

187 sa_relationship: Optional[RelationshipProperty] = None, # type: ignore 

188 sa_relationship_args: Optional[Sequence[Any]] = None, 

189 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

190 ) -> None: 

191 if sa_relationship is not None: 2mngnydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bnnhnzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}boninAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcpnjnBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcqnknCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9crnlnDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

192 if sa_relationship_args is not None: 2mngnydnnhnzdoninAdpnjnBdqnknCdrnlnDd

193 raise RuntimeError( 2mnnnonpnqnrn

194 "Passing sa_relationship_args is not supported when " 

195 "also passing a sa_relationship" 

196 ) 

197 if sa_relationship_kwargs is not None: 2gnydhnzdinAdjnBdknCdlnDd

198 raise RuntimeError( 2gnhninjnknln

199 "Passing sa_relationship_kwargs is not supported when " 

200 "also passing a sa_relationship" 

201 ) 

202 self.back_populates = back_populates 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

203 self.cascade_delete = cascade_delete 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

204 self.passive_deletes = passive_deletes 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

205 self.link_model = link_model 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

206 self.sa_relationship = sa_relationship 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

207 self.sa_relationship_args = sa_relationship_args 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

208 self.sa_relationship_kwargs = sa_relationship_kwargs 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

209 

210 

211# include sa_type, sa_column_args, sa_column_kwargs 

212@overload 1abcdef

213def Field( 1abcdef

214 default: Any = Undefined, 1abcdef

215 *, 

216 default_factory: Optional[NoArgAnyCallable] = None, 1abcdef

217 alias: Optional[str] = None, 1abcdef

218 title: Optional[str] = None, 1abcdef

219 description: Optional[str] = None, 1abcdef

220 exclude: Union[ 1abcdef

221 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

222 ] = None, 1abcdef

223 include: Union[ 1abcdef

224 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

225 ] = None, 1abcdef

226 const: Optional[bool] = None, 1abcdef

227 gt: Optional[float] = None, 1abcdef

228 ge: Optional[float] = None, 1abcdef

229 lt: Optional[float] = None, 1abcdef

230 le: Optional[float] = None, 1abcdef

231 multiple_of: Optional[float] = None, 1abcdef

232 max_digits: Optional[int] = None, 1abcdef

233 decimal_places: Optional[int] = None, 1abcdef

234 min_items: Optional[int] = None, 1abcdef

235 max_items: Optional[int] = None, 1abcdef

236 unique_items: Optional[bool] = None, 1abcdef

237 min_length: Optional[int] = None, 1abcdef

238 max_length: Optional[int] = None, 1abcdef

239 allow_mutation: bool = True, 1abcdef

240 regex: Optional[str] = None, 1abcdef

241 discriminator: Optional[str] = None, 1abcdef

242 repr: bool = True, 1abcdef

243 primary_key: Union[bool, UndefinedType] = Undefined, 1abcdef

244 foreign_key: Any = Undefined, 1abcdef

245 unique: Union[bool, UndefinedType] = Undefined, 1abcdef

246 nullable: Union[bool, UndefinedType] = Undefined, 1abcdef

247 index: Union[bool, UndefinedType] = Undefined, 1abcdef

248 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1abcdef

249 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1abcdef

250 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1abcdef

251 schema_extra: Optional[Dict[str, Any]] = None, 1abcdef

252) -> Any: ... 1abcdef

253 

254 

255# When foreign_key is str, include ondelete 

256# include sa_type, sa_column_args, sa_column_kwargs 

257@overload 1abcdef

258def Field( 1abcdef

259 default: Any = Undefined, 1abcdef

260 *, 

261 default_factory: Optional[NoArgAnyCallable] = None, 1abcdef

262 alias: Optional[str] = None, 1abcdef

263 title: Optional[str] = None, 1abcdef

264 description: Optional[str] = None, 1abcdef

265 exclude: Union[ 1abcdef

266 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

267 ] = None, 1abcdef

268 include: Union[ 1abcdef

269 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

270 ] = None, 1abcdef

271 const: Optional[bool] = None, 1abcdef

272 gt: Optional[float] = None, 1abcdef

273 ge: Optional[float] = None, 1abcdef

274 lt: Optional[float] = None, 1abcdef

275 le: Optional[float] = None, 1abcdef

276 multiple_of: Optional[float] = None, 1abcdef

277 max_digits: Optional[int] = None, 1abcdef

278 decimal_places: Optional[int] = None, 1abcdef

279 min_items: Optional[int] = None, 1abcdef

280 max_items: Optional[int] = None, 1abcdef

281 unique_items: Optional[bool] = None, 1abcdef

282 min_length: Optional[int] = None, 1abcdef

283 max_length: Optional[int] = None, 1abcdef

284 allow_mutation: bool = True, 1abcdef

285 regex: Optional[str] = None, 1abcdef

286 discriminator: Optional[str] = None, 1abcdef

287 repr: bool = True, 1abcdef

288 primary_key: Union[bool, UndefinedType] = Undefined, 1abcdef

289 foreign_key: str, 1abcdef

290 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 1abcdef

291 unique: Union[bool, UndefinedType] = Undefined, 1abcdef

292 nullable: Union[bool, UndefinedType] = Undefined, 1abcdef

293 index: Union[bool, UndefinedType] = Undefined, 1abcdef

294 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1abcdef

295 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1abcdef

296 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1abcdef

297 schema_extra: Optional[Dict[str, Any]] = None, 1abcdef

298) -> Any: ... 1abcdef

299 

300 

301# Include sa_column, don't include 

302# primary_key 

303# foreign_key 

304# ondelete 

305# unique 

306# nullable 

307# index 

308# sa_type 

309# sa_column_args 

310# sa_column_kwargs 

311@overload 1abcdef

312def Field( 1abcdef

313 default: Any = Undefined, 1abcdef

314 *, 

315 default_factory: Optional[NoArgAnyCallable] = None, 1abcdef

316 alias: Optional[str] = None, 1abcdef

317 title: Optional[str] = None, 1abcdef

318 description: Optional[str] = None, 1abcdef

319 exclude: Union[ 1abcdef

320 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

321 ] = None, 1abcdef

322 include: Union[ 1abcdef

323 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

324 ] = None, 1abcdef

325 const: Optional[bool] = None, 1abcdef

326 gt: Optional[float] = None, 1abcdef

327 ge: Optional[float] = None, 1abcdef

328 lt: Optional[float] = None, 1abcdef

329 le: Optional[float] = None, 1abcdef

330 multiple_of: Optional[float] = None, 1abcdef

331 max_digits: Optional[int] = None, 1abcdef

332 decimal_places: Optional[int] = None, 1abcdef

333 min_items: Optional[int] = None, 1abcdef

334 max_items: Optional[int] = None, 1abcdef

335 unique_items: Optional[bool] = None, 1abcdef

336 min_length: Optional[int] = None, 1abcdef

337 max_length: Optional[int] = None, 1abcdef

338 allow_mutation: bool = True, 1abcdef

339 regex: Optional[str] = None, 1abcdef

340 discriminator: Optional[str] = None, 1abcdef

341 repr: bool = True, 1abcdef

342 sa_column: Union[Column[Any], UndefinedType] = Undefined, 1abcdef

343 schema_extra: Optional[Dict[str, Any]] = None, 1abcdef

344) -> Any: ... 1abcdef

345 

346 

347def Field( 1abcdef

348 default: Any = Undefined, 

349 *, 

350 default_factory: Optional[NoArgAnyCallable] = None, 

351 alias: Optional[str] = None, 

352 title: Optional[str] = None, 

353 description: Optional[str] = None, 

354 exclude: Union[ 

355 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

356 ] = None, 

357 include: Union[ 

358 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

359 ] = None, 

360 const: Optional[bool] = None, 

361 gt: Optional[float] = None, 

362 ge: Optional[float] = None, 

363 lt: Optional[float] = None, 

364 le: Optional[float] = None, 

365 multiple_of: Optional[float] = None, 

366 max_digits: Optional[int] = None, 

367 decimal_places: Optional[int] = None, 

368 min_items: Optional[int] = None, 

369 max_items: Optional[int] = None, 

370 unique_items: Optional[bool] = None, 

371 min_length: Optional[int] = None, 

372 max_length: Optional[int] = None, 

373 allow_mutation: bool = True, 

374 regex: Optional[str] = None, 

375 discriminator: Optional[str] = None, 

376 repr: bool = True, 

377 primary_key: Union[bool, UndefinedType] = Undefined, 

378 foreign_key: Any = Undefined, 

379 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 

380 unique: Union[bool, UndefinedType] = Undefined, 

381 nullable: Union[bool, UndefinedType] = Undefined, 

382 index: Union[bool, UndefinedType] = Undefined, 

383 sa_type: Union[Type[Any], UndefinedType] = Undefined, 

384 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 

385 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 

386 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 

387 schema_extra: Optional[Dict[str, Any]] = None, 

388) -> Any: 

389 current_schema_extra = schema_extra or {} 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

390 field_info = FieldInfo( 2a |d'd(dIkVlWl%llmPlEn4p5n!p/p)pynZnVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlFn5p6n#p:p*pzn0nWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlGn6p7n$p;p+pAn1nXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlHn7p8n%p=p,pBn2nYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlIn8p9n'p?p-pCn3nZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlJn9p!n(p@p.pDn4n0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

391 default, 

392 default_factory=default_factory, 

393 alias=alias, 

394 title=title, 

395 description=description, 

396 exclude=exclude, 

397 include=include, 

398 const=const, 

399 gt=gt, 

400 ge=ge, 

401 lt=lt, 

402 le=le, 

403 multiple_of=multiple_of, 

404 max_digits=max_digits, 

405 decimal_places=decimal_places, 

406 min_items=min_items, 

407 max_items=max_items, 

408 unique_items=unique_items, 

409 min_length=min_length, 

410 max_length=max_length, 

411 allow_mutation=allow_mutation, 

412 regex=regex, 

413 discriminator=discriminator, 

414 repr=repr, 

415 primary_key=primary_key, 

416 foreign_key=foreign_key, 

417 ondelete=ondelete, 

418 unique=unique, 

419 nullable=nullable, 

420 index=index, 

421 sa_type=sa_type, 

422 sa_column=sa_column, 

423 sa_column_args=sa_column_args, 

424 sa_column_kwargs=sa_column_kwargs, 

425 **current_schema_extra, 

426 ) 

427 post_init_field_info(field_info) 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

428 return field_info 2a |d'd(dIkVlWl%llmPlVmmngn7mJk8mydKkLkMkxmCk7lmmsnEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmnnhn#mUk$mzdVkWkXkAmDk8lomtnFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXmonin(m5k)mAd6k7k8kDmEk9lqmunGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYmpnjn,m.k-mBd/k:k;kGmFk!lsmvnHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmqnkn:mal;mCdblcldlJmGk#lumwnId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mrnln@mql[mDdrlsltlMmHk$lwmxnJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

429 

430 

431@overload 1abcdef

432def Relationship( 1abcdef

433 *, 

434 back_populates: Optional[str] = None, 1abcdef

435 cascade_delete: Optional[bool] = False, 1abcdef

436 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1abcdef

437 link_model: Optional[Any] = None, 1abcdef

438 sa_relationship_args: Optional[Sequence[Any]] = None, 1abcdef

439 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 1abcdef

440) -> Any: ... 1abcdef

441 

442 

443@overload 1abcdef

444def Relationship( 1abcdef

445 *, 

446 back_populates: Optional[str] = None, 1abcdef

447 cascade_delete: Optional[bool] = False, 1abcdef

448 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1abcdef

449 link_model: Optional[Any] = None, 1abcdef

450 sa_relationship: Optional[RelationshipProperty[Any]] = None, 1abcdef

451) -> Any: ... 1abcdef

452 

453 

454def Relationship( 1abcdef

455 *, 

456 back_populates: Optional[str] = None, 

457 cascade_delete: Optional[bool] = False, 

458 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

459 link_model: Optional[Any] = None, 

460 sa_relationship: Optional[RelationshipProperty[Any]] = None, 

461 sa_relationship_args: Optional[Sequence[Any]] = None, 

462 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

463) -> Any: 

464 relationship_info = RelationshipInfo( 2mngnydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bnnhnzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}boninAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcpnjnBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcqnknCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9crnlnDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

465 back_populates=back_populates, 

466 cascade_delete=cascade_delete, 

467 passive_deletes=passive_deletes, 

468 link_model=link_model, 

469 sa_relationship=sa_relationship, 

470 sa_relationship_args=sa_relationship_args, 

471 sa_relationship_kwargs=sa_relationship_kwargs, 

472 ) 

473 return relationship_info 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

474 

475 

476@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) 1abcdef

477class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): 1abcdef

478 __sqlmodel_relationships__: Dict[str, RelationshipInfo] 1abcdef

479 model_config: SQLModelConfig 1abcdef

480 model_fields: Dict[str, FieldInfo] # type: ignore[assignment] 1abcdef

481 __config__: Type[SQLModelConfig] 1abcdef

482 __fields__: Dict[str, ModelField] # type: ignore[assignment] 1abcdef

483 

484 # Replicate SQLAlchemy 

485 def __setattr__(cls, name: str, value: Any) -> None: 1abcdef

486 if is_table_model_class(cls): 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

487 DeclarativeMeta.__setattr__(cls, name, value) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

488 else: 

489 super().__setattr__(name, value) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

490 

491 def __delattr__(cls, name: str) -> None: 1abcdef

492 if is_table_model_class(cls): 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

493 DeclarativeMeta.__delattr__(cls, name) 1abcdef

494 else: 

495 super().__delattr__(name) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

496 

497 # From Pydantic 

498 def __new__( 1abcdef

499 cls, 

500 name: str, 

501 bases: Tuple[Type[Any], ...], 

502 class_dict: Dict[str, Any], 

503 **kwargs: Any, 

504 ) -> Any: 

505 relationships: Dict[str, RelationshipInfo] = {} 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

506 dict_for_pydantic = {} 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

507 original_annotations = get_annotations(class_dict) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

508 pydantic_annotations = {} 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

509 relationship_annotations = {} 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

510 for k, v in class_dict.items(): 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

511 if isinstance(v, RelationshipInfo): 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

512 relationships[k] = v 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

513 else: 

514 dict_for_pydantic[k] = v 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

515 for k, v in original_annotations.items(): 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

516 if k in relationships: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

517 relationship_annotations[k] = v 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

518 else: 

519 pydantic_annotations[k] = v 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

520 dict_used = { 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

521 **dict_for_pydantic, 

522 "__weakref__": None, 

523 "__sqlmodel_relationships__": relationships, 

524 "__annotations__": pydantic_annotations, 

525 } 

526 # Duplicate logic from Pydantic to filter config kwargs because if they are 

527 # passed directly including the registry Pydantic will pass them over to the 

528 # superclass causing an error 

529 allowed_config_kwargs: Set[str] = { 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

530 key 

531 for key in dir(BaseConfig) 

532 if not ( 

533 key.startswith("__") and key.endswith("__") 

534 ) # skip dunder methods and attributes 

535 } 

536 config_kwargs = { 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

537 key: kwargs[key] for key in kwargs.keys() & allowed_config_kwargs 

538 } 

539 new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

540 new_cls.__annotations__ = { 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

541 **relationship_annotations, 

542 **pydantic_annotations, 

543 **new_cls.__annotations__, 

544 } 

545 

546 def get_config(name: str) -> Any: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

547 config_class_value = get_config_value( 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

548 model=new_cls, parameter=name, default=Undefined 

549 ) 

550 if config_class_value is not Undefined: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

551 return config_class_value 2CfDfEfFfGfHfIfJfKfLfMfNfOfPfQf

552 kwarg_value = kwargs.get(name, Undefined) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

553 if kwarg_value is not Undefined: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

554 return kwarg_value 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

555 return Undefined 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

556 

557 config_table = get_config("table") 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

558 if config_table is True: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkxmCk7lmmEd9m!m1mNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkAmDk8lomFd%m'm2mYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kDmEk9lqmGd*m+m3m9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kGmFk!lsmHd.m/m4m=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlJmGk#lumId=m?m5melKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlMmHk$lwmJd]m^m6mulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

559 # If it was passed by kwargs, ensure it's also set in config 

560 set_config_value(model=new_cls, parameter="table", value=config_table) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

561 for k, v in get_model_fields(new_cls).items(): 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

562 col = get_column_from_field(v) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

563 setattr(new_cls, k, col) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

564 # Set a config flag to tell FastAPI that this should be read with a field 

565 # in orm_mode instead of preemptively converting it to a dict. 

566 # This could be done by reading new_cls.model_config['table'] in FastAPI, but 

567 # that's very specific about SQLModel, so let's have another config that 

568 # other future tools based on Pydantic can use. 

569 set_config_value( 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkCk7lmmEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkDk8lomFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kEk9lqmGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kFk!lsmHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlGk#lumIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlHk$lwmJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

570 model=new_cls, parameter="read_from_attributes", value=True 

571 ) 

572 # For compatibility with older versions 

573 # TODO: remove this in the future 

574 set_config_value(model=new_cls, parameter="read_with_orm_mode", value=True) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkCk7lmmEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkDk8lomFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kEk9lqmGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kFk!lsmHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlGk#lumIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlHk$lwmJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

575 

576 config_registry = get_config("registry") 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

577 if config_registry is not Undefined: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

578 config_registry = cast(registry, config_registry) 1abcdef

579 # If it was passed by kwargs, ensure it's also set in config 

580 set_config_value(model=new_cls, parameter="registry", value=config_table) 1abcdef

581 setattr(new_cls, "_sa_registry", config_registry) # noqa: B010 1abcdef

582 setattr(new_cls, "metadata", config_registry.metadata) # noqa: B010 1abcdef

583 setattr(new_cls, "__abstract__", True) # noqa: B010 1abcdef

584 return new_cls 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

585 

586 # Override SQLAlchemy, allow both SQLAlchemy and plain Pydantic models 

587 def __init__( 1abcdef

588 cls, classname: str, bases: Tuple[type, ...], dict_: Dict[str, Any], **kw: Any 

589 ) -> None: 

590 # Only one of the base classes (or the current one) should be a table model 

591 # this allows FastAPI cloning a SQLModel for the response_model without 

592 # trying to create a new SQLAlchemy, for a new table, with the same name, that 

593 # triggers an error 

594 base_is_table = any(is_table_model_class(base) for base in bases) 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

595 if is_table_model_class(cls) and not base_is_table: 2a |d'd(dIkVlWl%llmPlVm7mJk8mydKkLkMkCk7lmmEd9m!m1mNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mb ge)d*dTkXlYl'lnmQlWm#mUk$mzdVkWkXkDk8lomFd%m'm2mYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mc peqe+d,d-d.d4kZl0l)lpmRlXm(m5k)mAd6k7k8kEk9lqmGd*m+m3m9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{md HeIe/d:d;d=d-k1l2l,lrmSlYm,m.k-mBd/k:k;kFk!lsmHd.m/m4m=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|me Ze0e?d@d[d]d~k3l4l/ltmTlZm:mal;mCdblcldlGk#lumId=m?m5mel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}mf *e+e^d_d`d{dpl5l6l=lvmUl0m@mql[mDdrlsltlHk$lwmJd]m^m6mulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

596 for rel_name, rel_info in cls.__sqlmodel_relationships__.items(): 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkCk7lmmEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkDk8lomFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kEk9lqmGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kFk!lsmHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlGk#lumIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlHk$lwmJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

597 if rel_info.sa_relationship: 2ydEd(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

598 # There's a SQLAlchemy relationship declared, that takes precedence 

599 # over anything else, use that and continue with the next attribute 

600 setattr(cls, rel_name, rel_info.sa_relationship) # Fix #315 2ydzdAdBdCdDd

601 continue 2ydzdAdBdCdDd

602 raw_ann = cls.__annotations__[rel_name] 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

603 origin = get_origin(raw_ann) 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

604 if origin is Mapped: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

605 ann = raw_ann.__args__[0] 

606 else: 

607 ann = raw_ann 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

608 # Plain forward references, for models not yet defined, are not 

609 # handled well by SQLAlchemy without Mapped, so, wrap the 

610 # annotations in Mapped here 

611 cls.__annotations__[rel_name] = Mapped[ann] # type: ignore[valid-type] 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

612 relationship_to = get_relationship_to( 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

613 name=rel_name, rel_info=rel_info, annotation=ann 

614 ) 

615 rel_kwargs: Dict[str, Any] = {} 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

616 if rel_info.back_populates: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

617 rel_kwargs["back_populates"] = rel_info.back_populates 2Ed(b)bv w x g ] ^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } ~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjbkblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2b3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

618 if rel_info.cascade_delete: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

619 rel_kwargs["cascade"] = "all, delete-orphan" 2_ bbcbnbobpbCbDbEbRbSbTb6b7b8b

620 if rel_info.passive_deletes: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

621 rel_kwargs["passive_deletes"] = rel_info.passive_deletes 2Ed` ' { Fddbeb( ) fbgbGdqbrbsb* + , tbubvbHdFbGbHb- . / IbJbKbIdUbVbWb: ; = XbYbZbJd9b!b#b? @ [ $b%b'b

622 if rel_info.link_model: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

623 ins = inspect(rel_info.link_model) 1xgCDhiKLMjklTUVmno234pqr#$%stu

624 local_table = getattr(ins, "local_table") # noqa: B009 1xgCDhiKLMjklTUVmno234pqr#$%stu

625 if local_table is None: 1xgCDhiKLMjklTUVmno234pqr#$%stu

626 raise RuntimeError( 

627 "Couldn't find the secondary table for " 

628 f"model {rel_info.link_model}" 

629 ) 

630 rel_kwargs["secondary"] = local_table 1xgCDhiKLMjklTUVmno234pqr#$%stu

631 rel_args: List[Any] = [] 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

632 if rel_info.sa_relationship_args: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

633 rel_args.extend(rel_info.sa_relationship_args) 

634 if rel_info.sa_relationship_kwargs: 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

635 rel_kwargs.update(rel_info.sa_relationship_kwargs) 

636 rel_value = relationship(relationship_to, *rel_args, **rel_kwargs) 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

637 setattr(cls, rel_name, rel_value) # Fix #315 2Ed(b)bv w x g ] _c^ jd*b+b_ ,b` ' { -b.bFd/b:b;b=by z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bGd~bacbcccdcecE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcHducvcwcxcyczcN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcIdPcQcRcScTcUcW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cJd!c#c$c%c'c(c5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

638 # SQLAlchemy no longer uses dict_ 

639 # Ref: https://github.com/sqlalchemy/sqlalchemy/commit/428ea01f00a9cc7f85e435018565eb6da7af1b77 

640 # Tag: 1.4.36 

641 DeclarativeMeta.__init__(cls, classname, bases, dict_, **kw) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkCk7lmmEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkDk8lomFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kEk9lqmGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kFk!lsmHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlGk#lumIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlHk$lwmJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

642 else: 

643 ModelMetaclass.__init__(cls, classname, bases, dict_, **kw) 2a VlWl7m8m9m!m1m}eRfSfTfUfv Cf~ew KdLdan_mb XlYl#m$m%m'm2m(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfA B MdNdOdPdbn`mc Zl0l(m)m*m+m3m*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfH I J QdRdSdTdUdVdcn{md 1l2l,m-m.m/m4m-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfQ R S WdXdYdZd0d1ddn|me 3l4l:m;m=m?m5m:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfZ 0 1 2d3d4d5d6d7den}mf 5l6l@m[m]m^m6m?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBf8 9 ! 8d9d!d#d$d%dfn~m

644 

645 

646def get_sqlalchemy_type(field: Any) -> Any: 1abcdef

647 if IS_PYDANTIC_V2: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

648 field_info = field 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

649 else: 

650 field_info = field.field_info 2a |d'd(dVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.dZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

651 sa_type = getattr(field_info, "sa_type", Undefined) # noqa: B009 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

652 if sa_type is not Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

653 return sa_type 

654 

655 type_ = get_sa_type_from_field(field) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

656 metadata = get_field_metadata(field) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

657 

658 # Check enums first as an enum can also be a str, needed by Pydantic/FastAPI 

659 if issubclass(type_, Enum): 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

660 return sa_Enum(type_) 2a VlWlb XlYlc Zl0ld 1l2le 3l4lf 5l6l

661 if issubclass( 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

662 type_, 

663 ( 

664 str, 

665 ipaddress.IPv4Address, 

666 ipaddress.IPv4Network, 

667 ipaddress.IPv6Address, 

668 ipaddress.IPv6Network, 

669 Path, 

670 EmailStr, 

671 ), 

672 ): 

673 max_length = getattr(metadata, "max_length", None) 2a |d'd(d%lPlJkydKkLkMkCk7lEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*d'lQlUkzdVkWkXkDk8lFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d)lRl5kAd6k7k8kEk9lGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d,lSl.kBd/k:k;kFk!lHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d/lTlalCdblcldlGk#lIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d=lUlqlDdrlsltlHk$lJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

674 if max_length: 2a |d'd(d%lPlJkydKkLkMkCk7lEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*d'lQlUkzdVkWkXkDk8lFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d)lRl5kAd6k7k8kEk9lGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d,lSl.kBd/k:k;kFk!lHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d/lTlalCdblcldlGk#lIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d=lUlqlDdrlsltlHk$lJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

675 return AutoString(length=max_length) 

676 return AutoString 2a |d'd(d%lPlJkydKkLkMkCk7lEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*d'lQlUkzdVkWkXkDk8lFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d)lRl5kAd6k7k8kEk9lGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d,lSl.kBd/k:k;kFk!lHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d/lTlalCdblcldlGk#lIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d=lUlqlDdrlsltlHk$lJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

677 if issubclass(type_, float): 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

678 return Float 

679 if issubclass(type_, bool): 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

680 return Boolean 2] | } hbibjbwbxbybLbMbNb0b1b2b

681 if issubclass(type_, int): 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

682 return Integer 2a |d'd(d%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*d'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

683 if issubclass(type_, datetime): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

684 return DateTime 

685 if issubclass(type_, date): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

686 return Date 

687 if issubclass(type_, timedelta): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

688 return Interval 

689 if issubclass(type_, time): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

690 return Time 

691 if issubclass(type_, bytes): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

692 return LargeBinary 

693 if issubclass(type_, Decimal): 2a |d'd(dIkVlWlxmymzmb ge)d*dTkXlYlAmBmCmc peqe+d,d-d.d4kZl0lDmEmFmd HeIe/d:d;d=d-k1l2lGmHmIme Ze0e?d@d[d]d~k3l4lJmKmLmf *e+e^d_d`d{dpl5l6lMmNmOm

694 return Numeric( 2|dgepeqeHeIeZe0e*e+e

695 precision=getattr(metadata, "max_digits", None), 

696 scale=getattr(metadata, "decimal_places", None), 

697 ) 

698 if issubclass(type_, uuid.UUID): 2a 'd(dIkVlWlxmymzmb )d*dTkXlYlAmBmCmc +d,d-d.d4kZl0lDmEmFmd /d:d;d=d-k1l2lGmHmIme ?d@d[d]d~k3l4lJmKmLmf ^d_d`d{dpl5l6lMmNmOm

699 return Uuid 2a 'd(dIkVlWlb )d*dTkXlYlc +d,d-d.d4kZl0ld /d:d;d=d-k1l2le ?d@d[d]d~k3l4lf ^d_d`d{dpl5l6l

700 raise ValueError(f"{type_} has no matching SQLAlchemy type") 2xmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOm

701 

702 

703def get_column_from_field(field: Any) -> Column: # type: ignore 1abcdef

704 if IS_PYDANTIC_V2: 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

705 field_info = field 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

706 else: 

707 field_info = field.field_info 2a |d'd(dVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.dZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

708 sa_column = getattr(field_info, "sa_column", Undefined) 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

709 if isinstance(sa_column, Column): 2a |d'd(dIkVlWl%llmPlVmJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlWmUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

710 return sa_column 2VmWmXmYmZm0m

711 sa_type = get_sqlalchemy_type(field) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

712 primary_key = getattr(field_info, "primary_key", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

713 if primary_key is Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

714 primary_key = False 2a |d'd(dVlWl%llmPlJkydKkLkMkCk7lEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dXlYl'lnmQlUkzdVkWkXkDk8lFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.dZl0l)lpmRl5kAd6k7k8kEk9lGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d1l2l,lrmSl.kBd/k:k;kFk!lHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d3l4l/ltmTlalCdblcldlGk#lIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d5l6l=lvmUlqlDdrlsltlHk$lJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

715 index = getattr(field_info, "index", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

716 if index is Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

717 index = False 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

718 nullable = not primary_key and is_field_noneable(field) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

719 # Override derived nullability if the nullable property is set explicitly 

720 # on the field 

721 field_nullable = getattr(field_info, "nullable", Undefined) # noqa: B009 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

722 if field_nullable is not Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

723 assert not isinstance(field_nullable, UndefinedType) 2Ck7lmmDk8lomEk9lqmFk!lsmGk#lumHk$lwm

724 nullable = field_nullable 2Ck7lmmDk8lomEk9lqmFk!lsmGk#lumHk$lwm

725 args = [] 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

726 foreign_key = getattr(field_info, "foreign_key", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

727 if foreign_key is Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

728 foreign_key = None 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

729 unique = getattr(field_info, "unique", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

730 if unique is Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

731 unique = False 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

732 if foreign_key: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

733 if field_info.ondelete == "SET NULL" and not nullable: 2ydEd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzdFd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAdGd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBdHducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdIdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDdJd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

734 raise RuntimeError('ondelete="SET NULL" requires nullable=True') 2EdFdGdHdIdJd

735 assert isinstance(foreign_key, str) 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

736 ondelete = getattr(field_info, "ondelete", Undefined) 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

737 if ondelete is Undefined: 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

738 ondelete = None 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b-b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]b`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0c4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c=c?c@c[c]c^c

739 assert isinstance(ondelete, (str, type(None))) # for typing 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

740 args.append(ForeignKey(foreign_key, ondelete=ondelete)) 2yd(b)bFl}d~daebecedeeefev w x g ] _c^ jd*b+b_ ,b` ' { -b.bzd/b:b;b=bGlheiejekelemeneoey z A B C D h i | } `c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}bAd~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGeE F G H I J K L M j k l hbibjb|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcBducvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeN O P Q R S T U V m n o wbxbybadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcCdPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)eW X Y Z 0 1 2 3 4 p q r LbMbNbddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9cDd!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e5 6 7 8 9 ! # $ % s t u 0b1b2bgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c

741 kwargs = { 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

742 "primary_key": primary_key, 

743 "nullable": nullable, 

744 "index": index, 

745 "unique": unique, 

746 } 

747 sa_default = Undefined 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

748 if field_info.default_factory: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

749 sa_default = field_info.default_factory 2'd(dIk)d*dTk+d,d-d.d4k/d:d;d=d-k?d@d[d]d~k^d_d`d{dpl

750 elif field_info.default is not Undefined: 2a |d'd(dVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.dZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

751 sa_default = field_info.default 2a |d'd(d%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*d'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{d=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

752 if sa_default is not Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

753 kwargs["default"] = sa_default 2a |d'd(dIk%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTk'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4k)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

754 sa_column_args = getattr(field_info, "sa_column_args", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

755 if sa_column_args is not Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

756 args.extend(list(cast(Sequence[Any], sa_column_args))) 2%l'l)l,l/l=l

757 sa_column_kwargs = getattr(field_info, "sa_column_kwargs", Undefined) 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

758 if sa_column_kwargs is not Undefined: 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

759 kwargs.update(cast(Dict[Any, Any], sa_column_kwargs)) 2lmnmpmrmtmvm

760 return Column(sa_type, *args, **kwargs) # type: ignore 2a |d'd(dIkVlWl%llmPlJkydKkLkMkxmCk7lmmEdNkymzmPmygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb ge)d*dTkXlYl'lnmQlUkzdVkWkXkAmDk8lomFdYkBmCmQm8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc peqe+d,d-d.d4kZl0l)lpmRl5kAd6k7k8kDmEk9lqmGd9kEmFmRmhhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd HeIe/d:d;d=d-k1l2l,lrmSl.kBd/k:k;kGmFk!lsmHd=kHmImSm@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie Ze0e?d@d[d]d~k3l4l/ltmTlalCdblcldlJmGk#lumIdelKmLmTm!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf *e+e^d_d`d{dpl5l6l=lvmUlqlDdrlsltlMmHk$lwmJdulNmOmUmTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

761 

762 

763class_registry = weakref.WeakValueDictionary() # type: ignore 1abcdef

764 

765default_registry = registry() 1abcdef

766 

767_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1abcdef

768 

769 

770class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry): 1abcdef

771 # SQLAlchemy needs to set weakref(s), Pydantic will set the other slots values 

772 __slots__ = ("__weakref__",) 1abcdef

773 __tablename__: ClassVar[Union[str, Callable[..., str]]] 1abcdef

774 __sqlmodel_relationships__: ClassVar[Dict[str, RelationshipProperty[Any]]] 1abcdef

775 __name__: ClassVar[str] 1abcdef

776 metadata: ClassVar[MetaData] 1abcdef

777 __allow_unmapped__ = True # https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six 1abcdef

778 

779 if IS_PYDANTIC_V2: 1abcdef

780 model_config = SQLModelConfig(from_attributes=True) 1abcdef

781 else: 

782 

783 class Config: 1abcdef

784 orm_mode = True 1abcdef

785 

786 def __new__(cls, *args: Any, **kwargs: Any) -> Any: 1abcdef

787 new_object = super().__new__(cls) 2yq#nzqAq|p$n%nKn'n(n)n*n+n,n|d'd(dIk[pmqnq7mJk8mydKkLkMkCk9m!m1mNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mBq?nCqDq}p@n[nLn]n^n_n`n{n|nEq}nFqGq~p~naoMnbocodoeofogoge)d*dTk]poqpq#mUk$mzdVkWkXkDk%m'm2mYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mHqnoIqJqaqoopoNnqorosotouovoKqwoLqMqbqxoyoOnzoAoBoCoDoEoNqFoOqPqcqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k^pqqrq(m5k)mAd6k7k8kEk*m+m3m9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{mQqUoRqSqdqVoWoQnXoYoZo0o1o2oTq3oUqVqeq4o5oRn6o7o8o9o!o#oWq$oXqYqfq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k_psqtq,m.k-mBd/k:k;kFk.m/m4m=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|mZq@o0q1qgq[o]oTn^o_o`o{o|o}o2q~o3q4qhqapbpUncpdpepfpgphp5qip6q7qiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~k`puqvq:mal;mCdblcldlGk=m?m5mel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}m8qxp9q!qjqypzpWnApBpCpDpEpFp#qGp$q%qkqHpIpXnJpKpLpMpNpOp'qPp(q)qlqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dpl{pwqxq@mql[mDdrlsltlHk]m^m6mulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

788 # SQLAlchemy doesn't call __init__ on the base class when querying from DB 

789 # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html 

790 # Set __fields_set__ here, that would have been set when calling __init__ 

791 # in the Pydantic model so that when SQLAlchemy sets attributes that are 

792 # added (e.g. when querying from DB) to the __fields_set__, this already exists 

793 init_pydantic_private_attrs(new_object) 2yq#nzqAq|p$n%nKn'n(n)n*n+n,n|d'd(dIk[pmqnq7mJk8mydKkLkMkCk9m!m1mNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mBq?nCqDq}p@n[nLn]n^n_n`n{n|nEq}nFqGq~p~naoMnbocodoeofogoge)d*dTk]poqpq#mUk$mzdVkWkXkDk%m'm2mYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mHqnoIqJqaqoopoNnqorosotouovoKqwoLqMqbqxoyoOnzoAoBoCoDoEoNqFoOqPqcqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k^pqqrq(m5k)mAd6k7k8kEk*m+m3m9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{mQqUoRqSqdqVoWoQnXoYoZo0o1o2oTq3oUqVqeq4o5oRn6o7o8o9o!o#oWq$oXqYqfq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k_psqtq,m.k-mBd/k:k;kFk.m/m4m=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|mZq@o0q1qgq[o]oTn^o_o`o{o|o}o2q~o3q4qhqapbpUncpdpepfpgphp5qip6q7qiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~k`puqvq:mal;mCdblcldlGk=m?m5mel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}m8qxp9q!qjqypzpWnApBpCpDpEpFp#qGp$q%qkqHpIpXnJpKpLpMpNpOp'qPp(q)qlqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dpl{pwqxq@mql[mDdrlsltlHk]m^m6mulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

794 return new_object 2yq#nzqAq|p$n%nKn'n(n)n*n+n,n|d'd(dIk[pmqnq7mJk8mydKkLkMkCk9m!m1mNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gan_mBq?nCqDq}p@n[nLn]n^n_n`n{n|nEq}nFqGq~p~naoMnbocodoeofogoge)d*dTk]poqpq#mUk$mzdVkWkXkDk%m'm2mYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbn`mHqnoIqJqaqoopoNnqorosotouovoKqwoLqMqbqxoyoOnzoAoBoCoDoEoNqFoOqPqcqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k^pqqrq(m5k)mAd6k7k8kEk*m+m3m9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcn{mQqUoRqSqdqVoWoQnXoYoZo0o1o2oTq3oUqVqeq4o5oRn6o7o8o9o!o#oWq$oXqYqfq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k_psqtq,m.k-mBd/k:k;kFk.m/m4m=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idn|mZq@o0q1qgq[o]oTn^o_o`o{o|o}o2q~o3q4qhqapbpUncpdpepfpgphp5qip6q7qiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~k`puqvq:mal;mCdblcldlGk=m?m5mel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen}m8qxp9q!qjqypzpWnApBpCpDpEpFp#qGp$q%qkqHpIpXnJpKpLpMpNpOp'qPp(q)qlqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dpl{pwqxq@mql[mDdrlsltlHk]m^m6mulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn~m

795 

796 def __init__(__pydantic_self__, **data: Any) -> None: 1abcdef

797 # Uses something other than `self` the first arg to allow "self" as a 

798 # settable attribute 

799 

800 # SQLAlchemy does very dark black magic and modifies the __init__ method in 

801 # sqlalchemy.orm.instrumentation._generate_init() 

802 # so, to make SQLAlchemy work, it's needed to explicitly call __init__ to 

803 # trigger all the SQLAlchemy logic, it doesn't work using cls.__new__, setting 

804 # attributes obj.__dict__, etc. The __init__ method has to be called. But 

805 # there are cases where calling all the default logic is not ideal, e.g. 

806 # when calling Model.model_validate(), as the validation is done outside 

807 # of instance creation. 

808 # At the same time, __init__ is what users would normally call, by creating 

809 # a new instance, which should have validation and all the default logic. 

810 # So, to be able to set up the internal SQLAlchemy logic alone without 

811 # executing the rest, and support things like Model.model_validate(), we 

812 # use a contextvar to know if we should execute everything. 

813 if finish_init.get(): 2yq#nzqAq|p$n%nKn'n(n)n*n+n,n|d'd(dIk[pmq7mJk8mydKkLkMkCk9m!m1mNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7ganBq?nCqDq}p@n[nLn]n^n_n`n{n|nEq}nFqGq~p~naoMnbocodoeofogoge)d*dTk]poq#mUk$mzdVkWkXkDk%m'm2mYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbnHqnoIqJqaqoopoNnqorosotouovoKqwoLqMqbqxoyoOnzoAoBoCoDoEoNqFoOqPqcqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k^pqq(m5k)mAd6k7k8kEk*m+m3m9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcnQqUoRqSqdqVoWoQnXoYoZo0o1o2oTq3oUqVqeq4o5oRn6o7o8o9o!o#oWq$oXqYqfq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k_psq,m.k-mBd/k:k;kFk.m/m4m=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idnZq@o0q1qgq[o]oTn^o_o`o{o|o}o2q~o3q4qhqapbpUncpdpepfpgphp5qip6q7qiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~k`puq:mal;mCdblcldlGk=m?m5mel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen8qxp9q!qjqypzpWnApBpCpDpEpFp#qGp$q%qkqHpIpXnJpKpLpMpNpOp'qPp(q)qlqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dpl{pwq@mql[mDdrlsltlHk]m^m6mulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn

814 sqlmodel_init(self=__pydantic_self__, data=data) 2yq#nzqAq|p$n%nKn'n(n)n*n+n,n|d'd(dIk[pmq7mJk8mydKkLkMkCk9m!m1mNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7ganBq?nCqDq}p@n[nLn]n^n_n`n{n|nEq}nFqGq~p~naoMnbocodoeofogoge)d*dTk]poq#mUk$mzdVkWkXkDk%m'm2mYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghbnHqnoIqJqaqoopoNnqorosotouovoKqwoLqMqbqxoyoOnzoAoBoCoDoEoNqFoOqPqcqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k^pqq(m5k)mAd6k7k8kEk*m+m3m9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hcnQqUoRqSqdqVoWoQnXoYoZo0o1o2oTq3oUqVqeq4o5oRn6o7o8o9o!o#oWq$oXqYqfq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k_psq,m.k-mBd/k:k;kFk.m/m4m=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9idnZq@o0q1qgq[o]oTn^o_o`o{o|o}o2q~o3q4qhqapbpUncpdpepfpgphp5qip6q7qiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~k`puq:mal;mCdblcldlGk=m?m5mel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjen8qxp9q!qjqypzpWnApBpCpDpEpFp#qGp$q%qkqHpIpXnJpKpLpMpNpOp'qPp(q)qlqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dpl{pwq@mql[mDdrlsltlHk]m^m6mulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkfn

815 

816 def __setattr__(self, name: str, value: Any) -> None: 1abcdef

817 if name in {"_sa_instance_state"}: 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkmqnqJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_m?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkoqpqUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4kqqrq5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{mUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-ksqtq.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|m@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kuqvqalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplwqxqqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

818 self.__dict__[name] = value 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

819 return 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

820 else: 

821 # Set in SQLAlchemy, before Pydantic to trigger events and updates 

822 if is_table_model_class(self.__class__) and is_instrumented(self, name): # type: ignore[no-untyped-call] 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkmqnqJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_m?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkoqpqUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4kqqrq5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{mUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-ksqtq.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|m@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kuqvqalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplwqxqqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

823 set_attribute(self, name, value) 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4k5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-k.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

824 # Set in Pydantic model to trigger possible validation changes, only for 

825 # non relationship values 

826 if name not in self.__sqlmodel_relationships__: 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkmqnqJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_m?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkoqpqUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4kqqrq5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{mUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-ksqtq.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|m@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kuqvqalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplwqxqqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

827 super().__setattr__(name, value) 2#n|p$n%nKn'n(n)n*n+n,n|d'd(dIkmqnqJkydKkLkMkCkNkygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g_m?n}p@n[nLn]n^n_n`n{n|n}n~p~naoMnbocodoeofogoge)d*dTkoqpqUkzdVkWkXkDkYk8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhgh`mnoaqoopoNnqorosotouovowobqxoyoOnzoAoBoCoDoEoFocqGoHoPnIoJoKoLoMoNopeqe+d,d-d.d4kqqrq5kAd6k7k8kEk9khhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h{mUodqVoWoQnXoYoZo0o1o2o3oeq4o5oRn6o7o8o9o!o#o$ofq%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d-ksqtq.kBd/k:k;kFk=k@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i|m@ogq[o]oTn^o_o`o{o|o}o~ohqapbpUncpdpepfpgphpipiqjpkpVnlpmpnpopppqpZe0e?d@d[d]d~kuqvqalCdblcldlGkel!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSj}mxpjqypzpWnApBpCpDpEpFpGpkqHpIpXnJpKpLpMpNpOpPplqQpRpYnSpTpUpVpWpXp*e+e^d_d`d{dplwqxqqlDdrlsltlHkulTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk~m

828 

829 def __repr_args__(self) -> Sequence[Tuple[Optional[str], Any]]: 1abcdef

830 # Don't show SQLAlchemy private attributes 

831 return [ 21m' 2m( ) 3m* + , 4m- . / 5m: ; = 6m? @ [

832 (k, v) 

833 for k, v in super().__repr_args__() 

834 if not (isinstance(k, str) and k.startswith("_sa_")) 

835 ] 

836 

837 @declared_attr # type: ignore 1abcdef

838 def __tablename__(cls) -> str: 1abcdef

839 return cls.__name__.lower() 2a *q|d'd(dIkVlWl%llmPlVmJkydKkLkMkCk7lmmEdNkygzg(b)bFl}d~daebecedeeefe[l]lAgBg}eRfSfTfUfv Cf~eogw KdLdCgDgOkPkQkEgFgGgHgx g ] IgRkJgKgLgMgNgOgSk_c^ jd*b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gb +q,qge)d*dTkXlYl'lnmQlWmUkzdVkWkXkDk8lomFdYk8g9g/b:b;b=bGlheiejekelemeneoe^l_l!g#g(lafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%gZk0k1k'g(g)g*gC D h i | } +g2k,g-g.g/g:g;g3k`c{c~ abkdld?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghc -q.q/qpeqe+d,d-d.d4kZl0l)lpmRlXm5kAd6k7k8kEk9lqmGd9khhihjhkh~bacbcccdcecHlIlreseteuevewexeyezeAeBeCeDeEeFeGe`l{l|l}llhmhnhoh*l+lefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhsh!k#k$k%k'k(kthuhvhwhxhyhzhAhK L M j k l hbibjbBhCh)k*kDhEhFhGhHhIhJhKhLhMhNhOh+k,k|c}c~ckblbmbmdndodfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hd :q;q=qHeIe/d:d;d=d-k1l2l,lrmSlYm.kBd/k:k;kFk!lsmHd=k@h[h]h^hucvcwcxcyczcJlKlJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe~lambmcm_h`h{h|h-l.lkflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibi?k@k[k]k^k_kcidieifigihiiijiT U V m n o wbxbybkili`k{kminioipiqirisitiuiviwixi|k}kadbdcdzbAbBbpdqdrdAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9ie ?q@q[qZe0e?d@d[d]d~k3l4l/ltmTlZmalCdblcldlGk#lumIdel!i#i$i%iPcQcRcScTcUcLlMl1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)edmemfmgm'i(i)i*i:l;lqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.iflglhliljlkl/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_illml`i{i|i}i~iajbjcjdjejfjgjnlolddedfdObPbQbsdtdudVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjf ]q^q_q*e+e^d_d`d{dpl5l6l=lvmUl0mqlDdrlsltlHk$lwmJdulTjUjVjWj!c#c$c%c'c(cNlOl,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|ehmimjmkmXjYjZj0j?l@lwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4jvlwlxlylzlAl5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'jBlCl(j)j*j+j,j-j.j/j:j;j=j?jDlElgdhdid3b4b5bvdwdxd)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

840 

841 @classmethod 1abcdef

842 def model_validate( 1abcdef

843 cls: Type[_TSQLModel], 

844 obj: Any, 

845 *, 

846 strict: Union[bool, None] = None, 

847 from_attributes: Union[bool, None] = None, 

848 context: Union[Dict[str, Any], None] = None, 

849 update: Union[Dict[str, Any], None] = None, 

850 ) -> _TSQLModel: 

851 return sqlmodel_validate( 2#n$n%nKn'n(n)n*n+n,nmqnq-n.n/n:n;n=n}eRfSfTfUfv Cf~ew KdLd_m?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogooqpqhoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfA B MdNdOdPd`mnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNoqqrqOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfH I J QdRdSdTdUdVd{mUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-osqtq.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfQ R S WdXdYdZd0d1d|m@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpuqvqrpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfZ 0 1 2d3d4d5d6d7d}mxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXpwqxqYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBf8 9 ! 8d9d!d#d$d%d~m

852 cls=cls, 

853 obj=obj, 

854 strict=strict, 

855 from_attributes=from_attributes, 

856 context=context, 

857 update=update, 

858 ) 

859 

860 def model_dump( 1abcdef

861 self, 

862 *, 

863 mode: Union[Literal["json", "python"], str] = "python", 

864 include: Union[IncEx, None] = None, 

865 exclude: Union[IncEx, None] = None, 

866 context: Union[Dict[str, Any], None] = None, 

867 by_alias: bool = False, 

868 exclude_unset: bool = False, 

869 exclude_defaults: bool = False, 

870 exclude_none: bool = False, 

871 round_trip: bool = False, 

872 warnings: Union[bool, Literal["none", "warn", "error"]] = True, 

873 serialize_as_any: bool = False, 

874 ) -> Dict[str, Any]: 

875 if PYDANTIC_MINOR_VERSION >= (2, 7): 2#n$n%nKn'n(n)n*n+n,n|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogoge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNopeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

876 extra_kwargs: Dict[str, Any] = { 2Kn|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg}ev ~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gLnMnge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#gafbfy z cfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghNnOnPnpeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohefffgfE F G hfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hQnRnSnHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|hkflfmfN O P nfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9iTnUnVnZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*iqfrfsfW X Y tfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjWnXnYn*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jwfxfyf5 6 7 zfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

877 "context": context, 

878 "serialize_as_any": serialize_as_any, 

879 } 

880 else: 

881 extra_kwargs = {} 2#n$n%nKn'n(n)n*n+n,n|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogoge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNopeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

882 if IS_PYDANTIC_V2: 2#n$n%nKn'n(n)n*n+n,n|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogoge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNopeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

883 return super().model_dump( 2Kn|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg}ev ~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7gLnMnge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#gafbfy z cfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghNnOnPnpeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohefffgfE F G hfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hQnRnSnHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|hkflfmfN O P nfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9iTnUnVnZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*iqfrfsfW X Y tfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjWnXnYn*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jwfxfyf5 6 7 zfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

884 mode=mode, 

885 include=include, 

886 exclude=exclude, 

887 by_alias=by_alias, 

888 exclude_unset=exclude_unset, 

889 exclude_defaults=exclude_defaults, 

890 exclude_none=exclude_none, 

891 round_trip=round_trip, 

892 warnings=warnings, 

893 **extra_kwargs, 

894 ) 

895 else: 

896 return super().dict( 2#n$n%nKn'n(n)n*n+n,n|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogoge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNopeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

897 include=include, 

898 exclude=exclude, 

899 by_alias=by_alias, 

900 exclude_unset=exclude_unset, 

901 exclude_defaults=exclude_defaults, 

902 exclude_none=exclude_none, 

903 ) 

904 

905 @deprecated( 1abcdef

906 """ 

907 🚨 `obj.dict()` was deprecated in SQLModel 0.0.14, you should 

908 instead use `obj.model_dump()`. 

909 """ 

910 ) 

911 def dict( 1abcdef

912 self, 

913 *, 

914 include: Union[IncEx, None] = None, 

915 exclude: Union[IncEx, None] = None, 

916 by_alias: bool = False, 

917 exclude_unset: bool = False, 

918 exclude_defaults: bool = False, 

919 exclude_none: bool = False, 

920 ) -> Dict[str, Any]: 

921 return self.model_dump( 2#n$n%nKn'n(n)n*n+n,n[p-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdg ^ ?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogo]phoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPdh i ~ abnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNo^pOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdj k l kblbmbUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-o_p.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1dm n o zbAbBb@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqp`prpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7dp q r ObPbQbxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp{pYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%ds t u 3b4b5b

922 include=include, 

923 exclude=exclude, 

924 by_alias=by_alias, 

925 exclude_unset=exclude_unset, 

926 exclude_defaults=exclude_defaults, 

927 exclude_none=exclude_none, 

928 ) 

929 

930 @classmethod 1abcdef

931 @deprecated( 1abcdef

932 """ 

933 🚨 `obj.from_orm(data)` was deprecated in SQLModel 0.0.14, you should 

934 instead use `obj.model_validate(data)`. 

935 """ 

936 ) 

937 def from_orm( 1abcdef

938 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

939 ) -> _TSQLModel: 

940 return cls.model_validate(obj, update=update) 2#n$n%nKn'n(n)n*n+n,nmq-n.n/n:n;n=n}eRfSfTfUfv Cf~ew KdLd?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogooqhoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfA B MdNdOdPdnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNoqqOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfH I J QdRdSdTdUdVdUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-osq.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfQ R S WdXdYdZd0d1d@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpuqrpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfZ 0 1 2d3d4d5d6d7dxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXpwqYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBf8 9 ! 8d9d!d#d$d%d

941 

942 @classmethod 1abcdef

943 @deprecated( 1abcdef

944 """ 

945 🚨 `obj.parse_obj(data)` was deprecated in SQLModel 0.0.14, you should 

946 instead use `obj.model_validate(data)`. 

947 """ 

948 ) 

949 def parse_obj( 1abcdef

950 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

951 ) -> _TSQLModel: 

952 if not IS_PYDANTIC_V2: 2nqpqrqtqvqxq

953 obj = cls._enforce_dict_if_root(obj) # type: ignore[attr-defined] # noqa 2nqpqrqtqvqxq

954 return cls.model_validate(obj, update=update) 2nqpqrqtqvqxq

955 

956 # From Pydantic, override to only show keys from fields, omit SQLAlchemy attributes 

957 @deprecated( 1abcdef

958 """ 

959 🚨 You should not access `obj._calculate_keys()` directly. 

960 

961 It is only useful for Pydantic v1.X, you should probably upgrade to 

962 Pydantic v2.X. 

963 """, 

964 category=None, 

965 ) 

966 def _calculate_keys( 1abcdef

967 self, 

968 include: Optional[Mapping[Union[int, str], Any]], 

969 exclude: Optional[Mapping[Union[int, str], Any]], 

970 exclude_unset: bool, 

971 update: Optional[Dict[str, Any]] = None, 

972 ) -> Optional[AbstractSet[str]]: 

973 return _calculate_keys( 2#n$n%nKn'n(n)n*n+n,n|d'd(d[pygzg(b)b}d~daebecedeeefeAgBg-n.n/n:n;n=n}eRfSfTfUfv Cf~eogw KdLdCgDgEgFgGgHgx g ] IgJgKgLgMgNgOg_c^ *b+b_ ,b` ' { -b.bPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g?n@n[nLn]n^n_n`n{n|n}n~naoMnbocodoeofogoge)d*d]p8g9g/b:b;b=bheiejekelemeneoe!g#ghoiojokolomoafbfVfWfXfYfZf0f1f2fy z DfEfcfdfpgA B MdNdOdPd$g%g'g(g)g*gC D h i | } +g,g-g.g/g:g;g`c{c~ ab?b@b[b]bbbcb^b_bdbeb( ) fbgb`b{b|b}b=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghnooopoNnqorosotouovowoxoyoOnzoAoBoCoDoEoFoGoHoPnIoJoKoLoMoNopeqe+d,d-d.d^phhihjhkh~bacbcccdcecreseteuevewexeyezeAeBeCeDeEeFeGelhmhnhohOoPoQoRoSoToefffgf3f4f5f6f7f8f9f!f#f$f%f'fE F G FfGfHfhfifjfqgrgH I J QdRdSdTdUdVdphqhrhshthuhvhwhxhyhzhAhK L M j k l hbibjbBhChDhEhFhGhHhIhJhKhLhMhNhOh|c}c~ckblbmbfcgchcicjckcnbobpblcmcncqbrbsb* + , tbubvbocpcqcrcsctcPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUoVoWoQnXoYoZo0o1o2o3o4o5oRn6o7o8o9o!o#o$o%o'oSn(o)o*o+o,o-oHeIe/d:d;d=d_p@h[h]h^hucvcwcxcyczcJeKeLeMeNeOePeQeReSeTeUeVeWeXeYe_h`h{h|h.o/o:o;o=o?okflfmf(f)f*f+f,f-f.f/f:f;f=f?fN O P IfJfKfnfofpfsgtgQ R S WdXdYdZd0d1d}h~haibicidieifigihiiijiT U V m n o wbxbybkiliminioipiqirisitiuiviwixiadbdcdzbAbBbAcBcCcDcEcFcCbDbEbGcHcIcFbGbHb- . / IbJbKbJcKcLcMcNcOcyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i9i@o[o]oTn^o_o`o{o|o}o~oapbpUncpdpepfpgphpipjpkpVnlpmpnpopppqpZe0e?d@d[d]d`p!i#i$i%iPcQcRcScTcUc1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e'i(i)i*irpsptpupvpwpqfrfsf@f[f]f^f_f`f{f|f}f~fagbgW X Y LfMfNftfufvfugvgZ 0 1 2d3d4d5d6d7d+i,i-i.i/i:i;i=i?i@i[i]i2 3 4 p q r LbMbNb^i_i`i{i|i}i~iajbjcjdjejfjgjddedfdObPbQbVcWcXcYcZc0cRbSbTb1c2c3cUbVbWb: ; = XbYbZb4c5c6c7c8c9chjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjxpypzpWnApBpCpDpEpFpGpHpIpXnJpKpLpMpNpOpPpQpRpYnSpTpUpVpWpXp*e+e^d_d`d{d{pTjUjVjWj!c#c$c%c'c(c,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|eXjYjZj0jYpZp0p1p2p3pwfxfyfcgdgegfggghgigjgkglgmgng5 6 7 OfPfQfzfAfBfwgxg8 9 ! 8d9d!d#d$d%d1j2j3j4j5j6j7j8j9j!j#j$j# $ % s t u 0b1b2b%j'j(j)j*j+j,j-j.j/j:j;j=j?jgdhdid3b4b5b)c*c+c,c-c.c6b7b8b/c:c;c9b!b#b? @ [ $b%b'b=c?c@c[c]c^c@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBk

974 self, 

975 include=include, 

976 exclude=exclude, 

977 exclude_unset=exclude_unset, 

978 update=update, 

979 ) 

980 

981 def sqlmodel_update( 1abcdef

982 self: _TSQLModel, 

983 obj: Union[Dict[str, Any], BaseModel], 

984 *, 

985 update: Union[Dict[str, Any], None] = None, 

986 ) -> _TSQLModel: 

987 use_update = (update or {}).copy() 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d

988 if isinstance(obj, dict): 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d

989 for key, value in {**obj, **use_update}.items(): 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d

990 if key in get_model_fields(self): 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d

991 setattr(self, key, value) 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d

992 elif isinstance(obj, BaseModel): 

993 for key in get_model_fields(obj): 

994 if key in use_update: 

995 value = use_update.pop(key) 

996 else: 

997 value = getattr(obj, key) 

998 setattr(self, key, value) 

999 for remaining_key in use_update: 

1000 if remaining_key in get_model_fields(self): 

1001 value = use_update.pop(remaining_key) 

1002 setattr(self, remaining_key, value) 

1003 else: 

1004 raise ValueError( 

1005 "Can't use sqlmodel_update() with something that " 

1006 f"is not a dict or SQLModel or Pydantic model: {obj}" 

1007 ) 

1008 return self 2KdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d