From 9b98d6960658967708a52b1649c570317846601f Mon Sep 17 00:00:00 2001 From: Leto_b Date: Mon, 23 Mar 2026 17:29:55 +0800 Subject: [PATCH 1/2] add odbc from 2082 --- src/.vuepress/public/img/odbc-1-en.png | Bin 0 -> 113766 bytes src/.vuepress/public/img/odbc-1.png | Bin 0 -> 188273 bytes src/.vuepress/public/img/odbc-2-en.png | Bin 0 -> 96297 bytes src/.vuepress/public/img/odbc-2.png | Bin 0 -> 135766 bytes src/.vuepress/public/img/odbc-3-en.png | Bin 0 -> 145093 bytes src/.vuepress/public/img/odbc-3.png | Bin 0 -> 164831 bytes src/.vuepress/public/img/odbc-4-en.png | Bin 0 -> 134908 bytes src/.vuepress/public/img/odbc-4.png | Bin 0 -> 161576 bytes src/.vuepress/public/img/odbc-5-en.png | Bin 0 -> 101938 bytes src/.vuepress/public/img/odbc-5.png | Bin 0 -> 134293 bytes .../sidebar_timecho/V2.0.x/en-Table.ts | 1 + .../sidebar_timecho/V2.0.x/en-Tree.ts | 1 + .../sidebar_timecho/V2.0.x/zh-Table.ts | 1 + .../sidebar_timecho/V2.0.x/zh-Tree.ts | 1 + .../Table/API/Programming-ODBC_timecho.md | 1049 ++++++++++++++++ .../Master/Tree/API/Programming-ODBC.md | 146 --- .../Tree/API/Programming-ODBC_timecho.md | 992 +++++++++++++++ .../API/Programming-ODBC_timecho.md | 1049 ++++++++++++++++ src/UserGuide/latest/API/Programming-ODBC.md | 146 --- .../latest/API/Programming-ODBC_timecho.md | 992 +++++++++++++++ .../Table/API/Programming-ODBC_timecho.md | 1081 +++++++++++++++++ .../Master/Tree/API/Programming-ODBC.md | 146 --- .../Tree/API/Programming-ODBC_timecho.md | 1028 ++++++++++++++++ .../API/Programming-ODBC_timecho.md | 1081 +++++++++++++++++ .../UserGuide/latest/API/Programming-ODBC.md | 146 --- .../latest/API/Programming-ODBC_timecho.md | 1028 ++++++++++++++++ 26 files changed, 8304 insertions(+), 584 deletions(-) create mode 100644 src/.vuepress/public/img/odbc-1-en.png create mode 100644 src/.vuepress/public/img/odbc-1.png create mode 100644 src/.vuepress/public/img/odbc-2-en.png create mode 100644 src/.vuepress/public/img/odbc-2.png create mode 100644 src/.vuepress/public/img/odbc-3-en.png create mode 100644 src/.vuepress/public/img/odbc-3.png create mode 100644 src/.vuepress/public/img/odbc-4-en.png create mode 100644 src/.vuepress/public/img/odbc-4.png create mode 100644 src/.vuepress/public/img/odbc-5-en.png create mode 100644 src/.vuepress/public/img/odbc-5.png create mode 100644 src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md delete mode 100644 src/UserGuide/Master/Tree/API/Programming-ODBC.md create mode 100644 src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md create mode 100644 src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md delete mode 100644 src/UserGuide/latest/API/Programming-ODBC.md create mode 100644 src/UserGuide/latest/API/Programming-ODBC_timecho.md create mode 100644 src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md delete mode 100644 src/zh/UserGuide/Master/Tree/API/Programming-ODBC.md create mode 100644 src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md create mode 100644 src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md delete mode 100644 src/zh/UserGuide/latest/API/Programming-ODBC.md create mode 100644 src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md diff --git a/src/.vuepress/public/img/odbc-1-en.png b/src/.vuepress/public/img/odbc-1-en.png new file mode 100644 index 0000000000000000000000000000000000000000..420b287bb3864d6932baddf4e7e06beb0f51796f GIT binary patch literal 113766 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%0Av<} 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

I2kx+{ZGo_^H5 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 DHl!!O literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-2-en.png b/src/.vuepress/public/img/odbc-2-en.png new file mode 100644 index 0000000000000000000000000000000000000000..461ae4a259dac2d342b8598e9496d71e051b9883 GIT binary patch literal 96297 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

$lCQ1d7O)P65YR~QEESl7=HD6ao;P+3yXIX> zYM*iTu3l(~llgmir%U1&3kb=o&nku1>2yLsM~K*3pkrN2%iA&F;&G@(XA}f4 zZDhSX$)Xxa5HD`RdMA-pS%UTQkYf^RB|%G8GAFyk~0yjR;GdTEN`w!TCzJt%(H z7b9Lc;|0!LZmxr~s{bLP=LRBjkDeQzF1DB_^ZzFG1B7%9PZatb9=PmE^5cPZ#j94N zi56b-1IiuJEYpzK9{#?#BSNyFNV!AignBb83W|G(Q<`{@s6OmUmWf`u2NgwSfk?LI zzH;;YdsR6tbJpb50K5>DTKWZeTOfbUo&+xW@gPOf}|OH;!`9`jTVa%7Od^?#j{ zl~-~hl#Ls?AfOJMJVIffa}zrd*;{_n551qx*~^6A8nVKgUkD6;)Kq7#mT+vw&SgAs zT6^QbM^>re8(2Ye!}y}OnH*EB{-Ia|K{t86WltFvA33M+H+dmurCWYK2T(s(1o4hrs1|y`NqOXtgS+u3$c#d8CIAWb{s=4BH)Kd{nfmTVpk{7jC|;q z%jm2+WGFZ6db4$5+wKSJ=9(n}8mpS3?7jf%O0_mhN&^Pcmn3MucqK_{1 zq{bTZw*}56?GwD-ORC>lC6RR1)H-SzDDdc<%E$v_>a`j#Zz${4J z6>K`MXc5AKGm-ro0OLcpz6#&bLoQOxDIis+Gmjw;!v;cqoWFpipcGDJj0o_)VDs$- zpr|gK8X@gcG&@$u_U?~s9OZ3_>!Rzx4D;n~`Mxh+!m{qtTkc{?sD#d7dN%B<2EsMB+KP_C)cce`aU$hiXHaRrNDMCJRybIZTr@= zd%*V6i-=?I8art4kI^IC-N69nb)|%>IY4)de0r&_9sK2#_plMZYmq^lI2q7>XvJR3 z*#srC^Mz?Z_W|s!;1@KbPIE9`B9-6l_}F0f`uh(5vNb1g^&Xql8?#SZ35Z)u!zgj2x4|E{wZRtqZnsc8A+E!WBHxEDURby z6l~0+twWXR@8Y;+38Ha57;E@f!Wxs^F@c_EJ!`MZI;ft%ozO!*#dy{jeST3?<+%}*FtaOwsjLIH}iS2L1Xn`N#4S2sOG#&VZ zUesiIfYGBFwBDBYvQ@qv6v~B-vIKD5tAc-<;zhN4bjqLhNg{;RyA%{yg7N7P4DK`y z9@(!L-OV$AWiJV6J;1S3V)rr^LD`C!U>=Ce{>Si|9XF_|LD&@AVYJBkHA$>QPbV#R zdprdDD0$BfHFcL0Uz}ElA-6$ZjVlV#0#F>lLHyipFv>K8C&t_KOs&?Q&^y&8j!#Dz znw?jK&!<}f&Mw&JtGsR3j>8^|7=K$TYcKNGBX(!zp%E0+n2>Wj_saK!8w<@BMRUUE zm(gB-&rxWSJ#o3oFbs7V{O${$8LFqaJ^HEd-s-?K@EcnGr4*BX%>Vn}Tekd$u~F9; zDpBN7#?}N+s2S4F-7hI}zHUf0mcfa*t@J(jE6QyiQ}C8m<;8~Pc-MvDLIj09ZFvmr zFwv*fS}4t;!E?t2$aB;A6D0FE2=3X<#jxhMZ7TsY&WLSzx6Z#|0 zJ}GP~6tz}jmigHc;9UxXJ!}6Q)5FU4;QLQ^*1$cv+Mb@9{qPL}BwSFie~&9E_4&u8 zVRfCo!Pj4~any6}zeVv4GcV3e+oJKbz(3h;q4fNv_xqLs&vcPGXOQq~WYCR?G5l>8 zby2vocZ3uE_$mIlb2Drx!u)AVYc#~qfouroZ0#R{4p(GbKoI+OHX0Kp;)ej*!@*DG zXXi}*`NgcXJ{#~S%7yf!9kQm+;ZDrb3oNUx1HT91@sMPC1noKbjdyUH1KZJuC95?I zdrmP6O5n$b6=B=I^+KQ5;Mvp5i@a!md~V<;WK$(Nhf+be#bTw&DWKEY!0i(5H*F)@{+ z;uRCm##C{_$9AMiIW4brNKu##&(Ckh31WDqYWSc#qoZ>WfA(GQw*Zra7UC^;VgwZ# zOhCq~FT$ZC_$R$BGj>T)w3V}WogQB7Yrt5bZbgJV>Z~uWM8pG)RukjyNI>_sf=K;b}kRxP& zr_d))C-S6EEu7kBY!qt?8VDMX(6`4G<`L;ULN+$0n?bIsP}J+MkVaP;i9>b{Ux{U)ni%@>@bp+lA|@hq`S5#dvkfg z1c~F$?yFQ;?mK2-@?5}IB}=p_a_KzW3u|uTUiZ0OVB(XGHB9Ft(~+3ZNdI&5DQ$$_ z9agWOZ_436Jw_?4_Qc8ZoiVhK$@*GaRCl28ng6o{eY^iI3_V2Za4c;?I0w^FP1z78 z%LDF8ifpC-L`$w`>ao7@#_;e6-K|t6VGt1t-II9exIQ;`H_4G^IxqD<&sdQ+RN~w^ zhvZv4J%u1dtNO}v`uQWqk&?9U+00udb#g+ho4lPIf2hMg%k2tX_Q!E;6hE-EcXzQR zL?C-uA|Q?w^mUMsx=s3axRVOITv#j#16K1p%Givn%mnJA1pYBTMj?fZ8k`^KEl7iZ zW(9^!5?K`|-joAGsFRX9KRi%}n;IM6cS+K=lP@U9o+zN_TT!>uzrn=NIzJ@K551y) z07kng!}Lkb^ocH`l7YtGpDgK;L3m^kriFCq0Y=q81Z-Z*AXh^@M9vZj`gKFYJjqg5 z`&>}ZW;2q}0Y=QHit*}UUXthC+St$@C-^eTt&XDrn#|E|-q33e99qy{zUu9=a3E=ofzprsAcP#ulC=#E9?hNx71eY->T~e_fkM z+HM8r_SfTTa3fS@J3@Bq1)Sr$Yo23?XmkBiyG%LpL=ei7GKnEa<)IR^cmcQ3Y(VjT zwjG`(Dcf~?!9Vw+P~HQ&i0xM1`e5t|KHbtvhY;@2g>7?Pn+k8u)y*WhhwRxw8T;qFazUGJsd zQu~9BpT_{VygfLjLtjZ-M@c0k{%=h@XVx`L$P(=LM&_G$5CtL_c8u4}VM?-yX(P{^IjY`QA1=Yl#<$Zu%5j``)d*t)R{gtyjp)n>%YuJp5B( z@{`W6&*O&41=Hku8SET+RBfEJknl$F)jh8)w@|0er-R(PyOoE9$vl}{K(OoSqi!Y|WNz$)!(}5zJ7o7kl*v5*=nZZ!ZQ94%f+kWu$fe__0tV9JYHTw_>;pyY#M`Wm?E52g z3p(M5JUTW6hheS~KepG6z-OAWPuytEOpA#V$Y#88I*WsgOQ4u681!egpwKy+&+U`A zO~++eK#rCV-3PAh`>KP$`N36zzYA0vy+IV&{CjP5jl>Tl!t97;o}8Dv88dN}S=~=X z&wdTfv&b?#@>puaY2u9oAGS^Qh@ZDIpSV{5s%^RU>j2Xqc#-}AVnDczXcHm-@;tSY z8ZbSIF6{FL|)Cea%`0!b)am>99zm7el z#n0QAZ#D6b`89WLgslwG6e>PSlsuR4czVKOo@ZhX-7F%uj1MtkqnBDOVDlG7&bDPJ zW%I3jGX}}tyBX!>J8r&zcZee-bewyl;tB{XTS3hzl)5xcohRGJXST?ywFgXK(-$VK zKXmeR^@`qMY=iW6tM>@DcoB0voN*%)Vhilc{wxP={!(_G@))$dn6D)!uorX?B7n-> z=*>m*4H|tud0+=27Ot`QZrzPGon&Ymdw=?L;dMn=Rrho=!PT;mf-!1oBRvtb6moA)~;{dJlwW=w73 z3DL+I5xN@bcJxfhLW#MEp(-$}0lUNvTX1F+$o<+&X!&J!G?k9w3?q zqpeL*=h=WwpS?-0fs%AQS@_0j`o`8rN8J~@UuM~^2|H=knZ+*!?8$QT>mor`38efv#oPz)MdOPt~k z4Nf#(wj{Ub1-x&a*I(isi%vYT126Gi8IwTEVR`GpGHMS1G|1{i@&Mo1b zxnyep0NYbVY9Nz8^1ZxagwJL+Y!G++6%EX)oS!XYw$YF zaj*|&)gY;*;#pQ#3CUPMa1TOA-qCStZwO5@hRbFX8Z*)t~^LkRa z9P?YG`(3g;7I&TA*a(Yx@~mIb%q}j(>nlOTJ=Q%p^kd0kWPqX-_ZF8 zGVG9K9UvqZW5IYvk5T(tqvN2sftdBje72nwqD{ua;Z_};8@eh(X|earWTfCvEmTcU z7edstHjRw8ArclgP;nl!%(mr`KoS(DF%##e6gZtu z>jdV7*V%=zrZq5HBU^{CroiqqK*@o!U(yz(grTCpcNG$Q9Kum_1vSet6w^{BaDxNF zL0k+CqltcR9}4aAeHe|(wn_3{F`(^TpHhD*ATf|$^@!ahz7(x-vby*5mvs+^d)?gOl-Lj+sNi`1U71F~I~ zwV=ivVmj@D;(XSOp-LB~T^T|ajgTw#}5k@H_}_B^pP;ODLXI`Qo3=R$F^KZNn< z_s6&K5_%Q_s|y_;OE4SU_`>PNyDKM;DkoVcapvS1c^JZ6mRCSLWYad&Qpx+mOFRPCbgkGhQpIm)82*$UV)Rauz_F*XgrzR*T(dh z92P%h+tB-n7zDP3yy2NZoY09K6}5NRoc|4Zr<}rGtjLN|npM=oC%E1GE&o9AuNfKQ zuppaw;~z#!_8e-^zFtP=QVSr|TwQHe?j%GOY<2yd`BEAu_fQ={y5-|q zU3$^R*b*5JJ$21IRo#qyYEi0$C~C#FK{aeHk?6Pm;y% zdyzH!)5P22lsL{YLL!-6omN8!oVSMTKA1<`b9)Prra|A6~6NUk@GXNH(-zdPPs` zMi4$f7tIL!BH~g@LVxWhEU8VG6}sY~{Umwb0({qF3_2jA05VRq3fQSI=jLqkOr0;- zX0YBrxoiomV_JU=M0eB$P7&?c34mO@(l4S%zi(o-(Oxh88TsOeAhpQaT@_zG`Nxr{ zICGv@3G;X5S!jd?<>j}i?Yqx$Y}s|oFK1mfrG9gCk@&c?*0HILSmTG1*8ks4vK^!- z9MBJ0&Je-^KHLpE-H^6DEg+V$DGvDk;qRqpQaAE?!v)^CzF%8<4(w}s;#RhmPNcI;hw=+e^I>GUCj{t}Kq?I0_yDpO{{05z51!$5Xz6yFffWa8y6bh2 zH`kkC#Tqty=eg0|W?c-|I%_w7hu=4pZtB6Tr~it)xshkM_6d4(SKoM{mC4!ltq-G4 z|Kq7WbmBy2zDG21M2w=2;J@<{oo6y|xd1KnvZ*l+q6ZM|+WQ%=avRwl+ zUm~N`P@mGPpavr^{ZVM;hoqxgJez02#Dp$thF&vbW2`%mnZtV=>Yb}~oAQl&(Lz6< z4QMhjcEwRbnp{L*lii$+xJUFiHS_wIS}vJUHLt!ScTwXJ`d$$jxJlFRCF>z}Tc^d> zO5BQY|2fd`NR6FZAs;zac0-|uvlcL+HMq-gCQH?7q@I23g&FTa;D{Xft3!^zlEt3mYZPl!<^pok^%4V5NPMSv3f6ipfg6)yvseN>h zzO{biDZj?<0kc_|DZO zQf}hO)g!X+OqiRpBHyO`IYw?QOks0#AFVrD1Az1<`tkSY1H*^I?szedtE9rLA_l%F zwa^?psGHPPkbR)|hqj_!Ls}*p3oc(fhQ!V*()ZEG55~{S&Ntl83xz;`y#J@k=Y4)f z?OGi)ogN^mHvXE&jHW~w`1?h3?!4Rrvr+O;|5!Arfb}lHKX4vAt_Xc4q%p^8LaQIY zHrQIi#OXOnkcu$O#LFDAcTPIUl{=K!WPO+YlNxSO#Qz+9!n8x~3*Z8f!d|@{_usRq z!3)eWfzC2Fo1Zbd!8Qr0cU)uR;@9%!j+#q(5BVRnx}_p1Yi(1An&s)IL0nPBKZNyV z)fiE+e=Qd+AqHM$-5sndr>D(PuRGFM*H0xyp9pWt&*u0Icw`a zZ4wMissKd=#TItkQ~A9un6x4%#XIehMh>0z0?gVi_rCC)-9D9?|??6?16~- z2d=2fi=Yv(1f!~8-OJLAhlyjfGCoMhCAWIE(YrkWjKS{*bAns1#99}O z(&nR*TLckRKSjurjFn-PlxjMUrkkLH6ICIjKhj2nA908yJj9U^#U4MF(OXlArDlf2 z$mf8n(Wr+s9wnO)5L`} z3q3iPY{k&|p482bd2s6454Jvgnrhf1mu&ug--rc}X1M^Zs{{O*N+>0knI3N&q*#`{ zFD9mt?;KiHmBFaN2r?U`$gu5>Ro4eOQ8z7G6Tz9%rw$7JZ{lo;>hshpz~Y<>)F*1rGr|~ z+Fw4-Gu^m9z}b-=iKeToSbAdaNTv5!ZoVDp2Gp$sS(&AHrUTU6i_w zy?W0%P>F-5u&ZaGkErrW+)!WFdS#C};Vrp@E_&HVGq%DEbTb&MH9H%J_Sdoa-QNj| zDuK!VZgc(&fuHWkioY+8q@I*xy^Y3gi=7YusN55!m#V!H@ge*M|(G%IsU9^Yra~WZ1e&4seWVVR#o; zj=^w$fbgG_O}LeA({=etj@Rsi3lqU%QOdr%LI8EB$=nm;`8R(_?!bmx_Bf{!BDx2< zG}|u7iv(Izvn`>BChlk3MF|HfzWGmCL-%h)d4RB)r&ii`0IxjmTxhNWZas8Tf}sy; z83KV}m@f9c1sYL>Sy%%+RXJVl;NKIY`BeL&#vX94>G4)-f5dr-cp?2W) zts#d+%8eEB<(b_?$d5HwU_N&QICV06q$R0`j+f=IaR!VbcCtub(Nz>NMWJ~8{f!RB zcfWBt_dg z=x-OcqD<}~2q_q%2g2ormuKOgIGY6ZkJeUf0D<-weWX zhv9P)1Sa=&;)VdT(|W{?93(E(M)ge9NeAS7bZPQN1exD3CN4igQDXBSobRT^gZQ`XgZMm~Chu^GNlcSk6-r7ETR@yzKWz5w2jlA0`_(*Mh$pt7 zoCaPvLmTm*PW&UL_scL@xOVLITDM)_L4s^b;nO9V*81QnB_EqHJapdSfgR%w)5Xla zP}*yIxp;3fn8A^(UCNzuKAL3x=%884&E{wmI^seGf;s1N4g(cS{KSF#9@`NhHS~_M z!=Ygpn2GQk=TpIyFy6~bT*OI)$jJZW1U%f_qmFjM2>HzWg@*yFC z$Kh^L^y1Yw<^j%={#=o7=$^|Ddjz&~SA#1+-Ob70lU*6_sc`(DNC;Pa5i6C z4Jo2d9c^$z2p#7iExR;nXHgf;0t%74@a`CgTvYUneIo`d{6ArlC&D-wV-bS&pl)1q zU#h5B(3G^-euXE-IK0L{`{f4v0`K2bsL8sOlZdIAL!|LjV=j6uG4WA35;Y_D<#Mhe zvFH4_{G;>vt|8eDfOBVqrn&90(>1GnotuE4JdXIB4KHj%XkP5jCE`~kFFgJLznXw( zdLy$6f7hhiq^ah>-KAAd!h^8!O7CKRBkGdKM-CxEq;sE@>!|0JNct|?V5MF6_U-Jm zsmVJ(&VsRt!;T{^ztOMkLFvWkTcOe8SXG0%_PYBpQ<4TP8`%eDg_OfW(rG!1!ryp7 z5!B1f`?fP1(mrvBdhrA_a6ySN?43n2j9iamIG$uvI8(F+bD#am@;OB0`aj-~yuLtb z;2h?!6}Z_y?aaGmC*c0(yidNJMyP#sKZ9*Z;?1{pZXp`01N^_IV+13*9c=KD1OFLN zNxzZ~Uz*vivgLSPK=)^R;df_ss6I4Ho7t8^_!}^AdMPye zvP6FzpE(k!g>Sc)XMTJpw$2C^_%PR*K-GL4%?$cXr@aKD)5$D&4HSwuM%LN)&WV;QJaEZNr72&G@0GGMh57X1~ zeHg)4S685QhI@|Va!(D|Pk>zqV{=&Pzxb#Y!mtVwrUzWRx=^|KkKcVUsshb7`4Ur1 zTuj$1$C~^cC!k-Ak)54Co`Z6R+B{<96#RU%Gf>7v{RgQZhIWf&zWo2sMaRL}F7M#EuiZpZdQ$mQ;QtE@CmyTK43x;c z#}J}3GxV3NtgIwUQTzvYjb!EdFBbfNeoA}xzmRdl|9;w7AV!|+fkl)|FBRNGDHj{C zGljT0YT4f#aq5aNaB52>Bp(663+Q~GpXa$VA3Uj2a@$J774`J)T^ItR2j< zVt0Xu^7qwL=AOyEjhGaa-+=V;tlv{_Od%zX@O87j*XD1R zf-)z?0>sPusG*aUs-}zb-cRE%bzh>6L+9SHOD%5o-IbpMbd<68Vg8cD$}&19Ct@rJ znlw+T#3Yjh{K<~Ku}C2iIn;}HEnd?p*I7KeLHh}sOH>{pHKeidu0>VE@QHcX{dI_- zKd8$y3kQDeCNj$0P%AigRU&G}fKCWMKge-fL8XpEbX*)PaTRe?VLLDAhbhCipd%Vt zM!737tO%HUq(lFy0URMNI!h#3*O}E!DZF>gIPu2d|d1JSP~Sw8vQc()<{6v?OOjVWF*rm^lbz zQkPjHs;c^#)5!cW9NJP7;I^~w_jy6~c|TdXoA$ohzW{lMl=>@PbLzVRuuH59v9vXr zDVk{^?kwe}VEIT>{_W?Djh& zCjAfD_xGOBC^xBzwyni7XY`7YzJU4+(DP3J05aRS_TO>%@d|+vo}Mq1@4kcgSohoG zon_+_F&bS3YGD-wmVzP|8G-)nn$9SJ2bY`9aE=xHA*K;hQ8hSTFBR7L=(Hls*HePt zY4@Fh@SwU{cmo%sKXmYK#PUs)%{^R!+j^o3xE7WELaIWVY z!|(nZSB{&9<1P(r+5aFSh5}2=u6rSds7aat-#vPEbVqneDLhV8W3~DNt@$r!FIVUh zE#sNjWC=m|UX=^#t&8iBlT~>oP~gW__S&&__<|l&8H9NTPssvBF3|d+x404etUrOqgA~g zz6rDc?7qQ(_<+{|1!waIvTU;ENAqB>_#20!8@#yWn&>~M;?szRiJd`@jUhVFBL{RIT-WtDR*p&?QMW|t6-Xhy+!?&C6Ks#j|P!aQHljyRBrQVeu_1-6H zH@>`U{EoajrsX=v!H;@gNwBhbyrHuBZb$|!aRmVxm1I}}E;Pz&#Xu7@YkbF(t*mfy z04Sr$M(GzMRt^E zl|;~oe4@Dg?nq?yWk3CGYITS$KF$VPux_JJD-?!F-S=2gFKIw-A?t1i2X6zb12Bcv97V#Deh-`Oa(l^v4X=B22UIMt+ zt_5j7Y(3PdcX1MTb&KkqPnqz%$Hwy#-g67v5&cExk6Q%Z_Z(-NB{l5Ba7y?GFHFmN z!N=v%38_q>i4yQS{~vR285dX6ru#mD;4~840|W`~F2Ny4fZ*;DJh(&S4j}}0LU3r@ z-JQl7*901Om)*(pyfd?B=A18c_V4VEbTzB0>%Ld5RaIC0FZw3Ac}rS-V%oqa`k&Av z-n<$J4u?NK{QMF^(HFD7WWw0gl7Vm(G-WIHn9nmhbNo=*X6tB0Lnu{sJ%N5}K_GupfY#}EIe-Z6weKYH?uN6KAMhaN0;)W@Tc)$ zO)H&No&`rl(7g*~gQy4m)g-LE{6IN3XqdXi3pE`zY$K^+OugtGO8yLq8}yMUk@)Zx z>A4i1vw+O{8(VuBfGCEZtJ=jBF0mq@W-oAX9jYa=ixId%3n2UyLKR1mu111tpVFiA z#KnTBmR}gv*Jj0pD@7&!Ot?B7F8K!Y;qP$?Rpa3odMiouWcM@xk7{IqT;|#9MOTc} z$y|KkmAR=_p=(b1$~{VZ5jj-C(ww^lwPb2EHbOKt6s8HZu6%dbhRAhZPi!Zq-AGs4 zv5Z){?4}kaYR5gUQ{6%=Rp(lCaL|XG?t64SN2PnsI7qk_Y$I^Y$Byz#)Kr!cDPV;} z;R2pf-XVb%u3Qad@eJ5@MHlj6-2PWW`G2jbe%Tum+BwaNQtX*TUs)t+?u7qJ;%J?x zg>u5i(!yKotSRmXNn55=cx`(~i=1|&rha($1Jld3af#n&l-^`Xj3U7XEV)KmGRS9? z7jtWyka7+)?wB0zCjoJEx2^DYVtiKa47SPg+oDE06k%=c43oiOgTO4CS0*EiQ<^v^ zx;74cf;AJDEMixq>KQePlICk{(w|HdwoAeofzC?o7e<~faJLVPY;v@jHa=Lpry*D4 zrEF~B?-Jf5j^nSzdLSKmKXX*b;O86D!h3X(lYOt?d$^Kn3?Zmak4N1O(H8gnDUgEn zhO!}#03N=(mMUV=yn*&%85g7v<)J!TVn5+ayoH~;d55&vc5NI|ORm;>{${?Vfmr|T zH`u%l!Quz+dhNGWbXt9+k#E^y2|*&`rCEUoG{S^8eR*a+g!zXNC+Aloncv`8j-KHv zpUeUE`WWvN5Ny0RXxg1o?tS`H^_RhG5$9PdC(Oj}9JCq0F1%t352PA)Q|WAzZI`?9 z&LM}|2pQPD_cTSsH(ec8gh6B7%?k@%;4@US4{s$jj(J{rtXL51)-n0Z(drjG5qj7V zi+N_Ffwh|xptQbU>vSS`x$5^jJGWU1eG-;4(bq<11Nke z06V)Jwc~EKr!LcqUN$_c3$0bo35ZAds{v^l#OO@o@sG7ZmO0_6e$J$x_iP#O1(p2` zJ@oRV*=AfZb3Z#stoCBAdTz#M$$gRAAs&`!&IVj{l!u;p=Q@6YIB3hZk^N=JDf*_q z#+!E4Z^cvg3H#v+a`1}_I`dO%K@UIy7YuY`SulTZ>pNQgFOpF+ly(JDdfj_9xyY>a(whJ}zD)iX z$xHn=Uf(C*@ml83O#HQngt3mb)mgs+p|JrdCKIZC-!)kYYjN65K`;1V-?LXoa!RZ_ znRp8{z>Cl#an0D;IarE=Pj@#S(DrZaYcO%7h2@~;Yrweoc<1ggptsH`v0_Z&j)C-R z2OOEDC0}}K_uU1Ntq68N)w0ILgxMR2x_4T)Qt&;8 z^TsdAdZ({|it3i|8Nrz8Sh+@1Cv>lV&J-7SbtXR>B#bQ0&aOlmkn;q~0e>aNwVmN7xUaU#bHK}^b* z_xScss9&AS(JGFU#2Sa%UbW`{k#8Q++m8lb-tVK(5@>c1ypYwG{M<&&(XYX_Wj;9- z`t3peKowQYsh)rP&77$lahak_WH!&t2RYMOVwv8$tD3=d?fe7jcAhCXIt|t?^9H^G zE;LarYudzEV%$*uo?HKe{yInfgGH9&wY+spKk^b?j7?P&ismp1Ben?)FVvl?Er{zj zU}h_8UMj_!)WVr+e>z`Ad$d$+j)ly+_^3+lW9MS!m4wQpP`j`hX2*e!0xLQ6CvK_> zdngh+STlAzXQ@p8v+^o6Wz6dpEZCxC=rA1awgnZZAOU}$x)nKL?>m3Sw7n7)Rkg^) zYB)1X&;;kXva&(USqT-cx2a-S5wS=3S_f)jChn~_ib=871mQlIf=W?aXd=|=l>hyzlNzycu zlfM#}gKwWgLma^7qX`M7VTU#sj?^%nqT6^QgF_&xMb3OU`UT{#(B^cl_~hKzq7g_p1us1piU-luO)d0EG;hU)^W}C% z%u(!zhq|=}5Gd7`3(jNmD>o@BpYZ&>_nBKS`>9&5S1}G|Sl_AQk>qd^qs$qXM^tIG zV_Wbh#?Osm0NjkKZZPckDEj*GvNtX}e1rQ)k{oG3rY4C+kWGE?QlMmh&}3C?@Y)K! zWJfRUV|=%Pt?=NJ|0BuGj`#7#ekN>=QzCAu$ph|YcJgV!=w9?z#>x@022(_@$QXXa z9*#PXPu>K$lX)`Tu8}F9O-QH=yl$>pUe9w!_ZRTQnT2hMY}3ZpJ;sE9$MYI>Oo6qe z-tmCz}-`{9z)tcbA?aJikBrwNv3ORG|Ohy#C_}}O+ z2V-6@bqkha`0Rd|il%MDGiNuLd^F)^@~H#4Mr`|y#Bu~2_5rjkQ^G=5{l0qAi=TdB zxN3Tn+wjDKp6napj9B3qX9>#oA^~Mtg0|7P`I?{`k*(_zC;cQ3S#A;O4I|pa}5H;Cfnq15X`r1P2=zJ!g z(jiECU~6n@kCd$2;KV3|`r?=LTf_N@Z*v6XZMkA7!B&qPHX5A9j^$m~-zUMmW`F=oPc-`}u^mG!*%_Qp;?DvCh)c%5$gErHu)@ zvSO>{&U`0BbT?4{2c)MM_kbI!IVXeR8 zX}_cT+%MSQ^AUNQ+y;Cr-Pcm3=Z_-27bttYMeDoRKNV}j)w?Uc$NQNLZCqj@S~?G5 z1>nbbudB@$L7ueHp>Y-n3U;$ybL`aRqDV>(NDFesK zFae5!7)tfiX%P{&{b1rIlynbe880`C=y=-G1hSuP8Men5f^L+|oLGFjv6|f?igr$g(m|J!iCGb^ zU8#%YQmN1UL_=T3wS?P|9v*i(MgVY=8MiW|k>#0bVWLEWD*rZ`zaIfWMG&Iab0n7n zg$?*eOu3sq_=g>-U9?1P5~9YF28Kw)9po9E_Oa`RUiz3fmv51{xzr#e;{)}Xg@<$j zbsrJ0dcD}EAix)5?@7U*bf&>+Qw7PCyn`rb9Rh*6D0dKdz0VzW4K&pd?%p&&y{rRc zz&w#PA#|~)A^1CvEyI(;!`T26qF=Ykv!OpQ`(b8>Oa$_k zsd;LQoO@ery2#XEvDG_wZ<;SFdf4fG!?Wz+Fj`oxX7A==9pCoX8qbRafi|Cbx#WT& zsbK<|woBRh71X4lk*f1A%;>47zKyS88oluNCQ=E9h!O=l$Zc^OT3%MRj zok`{eAUT@m?ewIG7g2o{wrq5izzK{ytxY%!(T^^_BcsHkA&yEDxjX!cr9UYtl5 z((?_#;IXIlW?;`$`K(;p6`M1cC_=V%AI^JvjCop@h;e#7M2?d$>fFD}}qD`%z!Zp2J|+$yz<^MOr=^aq92k9J9b*xlxV%EQ_p9 z<}92UF=E3v`z)3>1+&Ihw230Vzu&pD*EsaSh)jU z9>de-71yxEv~tJ6nl2S0=G`U9+}gwmO#$2XMO2zLn-e875bNuR1Q;2Jm(WITFj>;% zcZR}L|L;he_rEyx(7Y@T;kF_o>~{PBzZluGzWXg;d6}k!>(r-(g7n zy;^N&fwRO|jH?@eIwNh28)?a&s*~VrQWX@0qJ5GKoo@>%7wH?};f#`|1TFT8LiQ;{ zUBlhPa~MjFpR0n}V)!py^c@9jP`TSoEO}&r%gTAc@{+gFW^!yRB8s$04&I@47P5wZ znC~8Y_* zB6g@2dO5LlE@XgsnqDYiX*HtV(@jNIx3WocwrsqI7fR2|nUboQ<7r03<5Tm(MokY( zZ8Au#Ya*2G6yiA5HSb^;veZV-1?s1uKMRR#qFNQ%4FxNF%-9UI>Poxtt2L|P;R8|V z)?4*7MJAOin8D6`DCGbO{5_HHa%YQnnoi5JbavKCO7SEj=OO$WSg_weVI?tvNh#+>_qg(p0`` zqZab~hc7Xp-}3|}K2y=sjB83*jiE^dj1us%_(o&X*m|BKpFYP^Z4$#G1#J`wC=+%qY7Gm7Zz4| zDclMofemRRLaM~X1g6&^2{EspYU(eR4$yjFtQs|0p}_MzMK8Q(ZeTs32h?jb)R3p7 zkV#gh(QW|$2w<68aEvY}W65VI5CPD|t@_Gr^hL25Pj_;9<9iOm<)fzKP;jQHB|P2t zwws+#vk_}azdQ?IkM^ENK3@Y&e4qT(asX+?r}g2X!zxq-8J;yo8aC)OPwZk^w~ho# z`ut*-U=#kBkfA%bMIPpQbrZnWlNilet2na{udl~Z_UIk6F6e%w2YW9sxQ^rfWK|7L zK@D3691Vcmb~akf3G*4Jt-t|N5^wS&JfFfhQZq$c&L>qtpb?uva$AZyg`x$H8b=qR zZS&6hTqnhg?!!ew3NZ}IlS&mB@v(37c{K`0nuqPDU8OHJLo&<8$)$_Sa!ndrexU}k zg|zirbU+Zqnk@`O*^>@UV8{ApMVNMY&cKF z2;9dLE3gQ1dC%86jVnD5Ny#djlHj(aUYSN-njd~A(SyNLHj4kNztQoE1A~k!&`|EU zH~qaOe?9G;`(nQenw`~K{qESqRaq;FcZ%N#NL^XCmbRKFO)p)yFS*&flT1sL1-GJ8 z>WgW88|$$8URZ+Ej~Kpcjh^s#zyCm@8C&Ip#G}az=Fi16n>6#~^M(j;c-m9ZR zf_$pTBnG{huQ+q6C=6CC{h2cX<~yq`W9nz9o}8Tmx*LchzVEY-CufJ2`NX8se_jl& zJNAo>(F8i3lV{^WNWmYY3CGHn1C--o zK7AaDyw zTbDh0CuR#;`g2Pt(KZ4p!=uNAnj`VwZS?j$F|phNC%u5vuky1Keo zAAWB$uX+){WcoSQ9t4*M*_-~S{YGR0Xv?piy8*`9u0=yJVkwJGw*Iim-hftzpYXS1 zl^#k(Ufe1dx?pH?i*o{A{}Zz_4gwRQ&5>94?TuU6&Q9AkIgI@jJ8?xQey_oz<4L|S z7k_((3}>k;?>5 zgH{X5-RG$tNX4sYCb6v#>ihZI_RH^hN5c=D72r}crQ&1#eZ^vYtiuGacYZUGSuia5PNY<*}q53WG;lgwiM}+|D7q5{y3~m^SrBk z*;-fTmTz8!C448$x^I}H-2caQ`uZne(@@r!VwllxV#p9vzn1y_$Bp79w58;leZP9R z>E1-R-t&GaM-8}r5#1_9MyW>6$V2ohO5Xxp%Fr+Bga1hF<2z86&%OZtYg+Ixj= z*}un+lm|O4fe9LF7*w=Yg7>~~6-Xkyzrk;(cogOyysDFsb!1YlW`xweS60CSU}me~ zsx^R`oUq`1SF9Wk-W^Y}F`9~cr6wHM9*R?}5ekCCD&~}2TrZV;Y@Xq_TezU*<#ua{ z1N!9Arardl`KDVyf{qV(YkET>BxF4|K}a5*)3LFe?QC)P*Typ48V1Ag6CiUk4tGe^L+`&;QK+fWPMig~$M1gx11-rW@r&e>6B8<5D4L zw^mDuotIMfQvnh!N;ziyq%2#Kr<+4+U7@}I($LeRl=d}eLi=9P!Tl;?z2+Y1hg~PU zFQFn>b46zQ$i_2XIr3x}Z;|(Gpy&PJt2XXLoK^LxkO2{sh_uupH7T`Fy`-tx`(-qf z*lgY&NE(<0bIBKY51jbHbs7yNS5Ty5$r4?QfBRn4mkF6G;n$F^MO&A%%%#|Nilx=J*f1&w4H^VJBL?1pp8J8`mENnHuF3u1&{jOC=#fmnd>dC~rv8f{omScwTytCLl0bT_0Mg zh%BCRYj4XU;n~O?ec|e;J_6@fZ+~*})eNldCjnpP6H?}bQN?XB&%qWFXv5ac*gQ2e zun!4d>{ff37W%p&=yF4ryG1Nqs!%8 z{zGG1K`-e)LY1~<*eZde74w*cwCziAad9kCQuMV>-4i7yaV7n@-izMpbNw`zC!*_Z zs>Icq87||0)Al6DqDh;92{4%Z7Gz_#JANEtJ_o$JkvYlswwI_`$Hv?AtbVO<2VCNN z|2J@;EBrTD;lKOrAK1bhFz}Ba!%Qs2rJY(EjPmbo{3F{z~qxNq~rSJMrqhk^~l7Ol~e^Am%R+BlLXXL{Gs>TRXKEhmW~49_-aU?U!L&T#GL8KJc(-`HY69 zqPi3wD{?ipwK~kc9F+Bo71Kig+w>se%LvE{Hxa%zbiGwV6YrW@S60N1^l)e#WcLEGAZbU1OI)RzZRU+72IA<^~8a$+%d zVw+hSUyReglj5N;%-5mY>)G$ypJ&#IE8G=9^n#`GDu%}P@uhqo4E}I^eT^24!ArS( zGs(NxD;_pL|L;5r4;EVAuC~!4b}XeIbDLwL{-JB7lKCK*PosMd#}v6{`whR}Qy(6L zPNSMy;W5cdz8R?4@yKs*dm4ATCHjPY?Bk7(F?EnXkQz{J^wQ>_Yr?+;Me_?pa*0)_ zJ$^O;D0y#s6Fz(X4C~k%>ZgZPCbc}+DLI%0iSH-&nlJ{Wj3n-mz>lcJAz=g=9Odh^ z$JDJuOWPe!NEC-1vAwPM8)2A9)^*rBteM>loz~nNc3#uCs_CTht8;P35`+rBB2n2P+euo!N_P z_r2g>VX}wtp<)0+)eBFyb||MHUpS<^n%|mbyTW=np5Rm8B4*iR@PI+^4Y4_!3WWiy zK}UMtrBx(x!Ydy@tcHe>ltqKonjuVWMnIJ1=2p`kgZwO=87%-(-r)VRtmf|GqOhv< z{yi^AR+OBfBP-`8^njpWB1~R}sD}0}p&2ku{^^$Rf^3@`>WKfHAMKCo~)^7X)nWycqm^OK*WqtyFKwR;FGJG?taIVWDjtW0u7n}SW zeV|-JP<1W)1?d-p961VOv(BAf9r}ZB15!Iyk}~{a=QC7RUTac5hms7@fa;X9u<>u# zRiA5^zQPx#yUZ2xMuT*QF|4N*n@{wdg+DYlfq0_MdaY^vaoqq)z1vY=USlY2ZMlnd zFBuYTTBu%18e+`mQBM=zKV7WdWbTz?Ra?Rx#@mE6J$N7s|! zEYFPB_2iHEXSoKEAO>=qz*{RE7#-qrd+puV9|E|oB?)9ZXvv)NAmb54CgCl_=V)p4 zSfL6Ti?>q{9lPjSE>l_29zC!IZWtD9!dCs$^x-n#t!L))G-vRv7ZkT=GVOzgOUT z)vh<~sINp~9{a4(>q0XphM7T?lZC-VXBW1Yh)E9$xVVytZ$F3$p1W@pT@Ln+P?DuD z6IbW`zy;h`{rqM(Gk7!f8nhX{x2$l-hgOv3EgL-~rU4Y~ws?Q7FRyH&$n>N~EW>*g zq_2h_=@BS^Hihq%c6qFMGw{PQ=hH^q=o#tDkY$MxESv0z8pG(9rn9dEMdxH(oLQSC zrDcAzNw!iuH2viIOFYW(cqW`5KgAzey;NFZ<*xe^Xx>wPuRoKfb@8s z-NPw0F;#G#jLY_|h;N!LMc1Y7!bQvR9;C_lx=)rfo zCd~!o`O3%0=$(;9qcx0)0}BQA1dNY~?3W2UQ~@)Ng-!pu9$)4=!Y$XF3JG1fNkEmj z&z7X868+#eEbc*%Ur=C~QNfY2IyX(BHd9U$qfq}Ug=t%>wyI1gzfVHjd*0QCC1G4>c;J?Xgv!qLr8XIh||fXrhsEpElRS36!lkxV`W#wBkiM3CuRhu zr6Pdv$U8Glyw^;5gmx17gqd&MboVFql49cHJ$eViI+p~A*@uYeGv{R3Y3hIu9u!ru zomkR9Wy3j*)(PK*8zV6h4(x3v%(-l#xFL_XQev$*OiD1w!;Y99N81Zb8JY~CDtNZ~Dy+ohKtXpc?}3+{vq}2r8gO6ahgA%{G3Cgy2W^PpC^&pZ zxd<$`Vl9aokfhn(3EsWf6YqYP$3pmBbs{P7b)Sm|K3jOnLS{YHUI% zg=tVhOs7?Y`R6`A^d`s*jM>A7VapCFuN#{X#~_6Uu{x6~AG^Xvdkc{j?o5Aup(|!2 z;g66zIggZay8uYeVdki}E(}OR7Q23By>s}+dh9Uga8%|y5;ob@;Ye|0?5s4`n`nF2fNxNrkQZb5@I6Y#z8ODp@S zn+s6*+hZL?J1~Fw^=s9OUyMod?s2rP*Y4QSe@f{ZqQ(b-u9fvx1KfBlCu*H8{F;zR z_4S=r-@?O4wD<2r<{5AQ(NPeo}hV8yhkPZ&yD&jz7zhZhpQHk{W?5I<3tEi!lKMGD%*7T z#JBaM{?~dB=j;$9v)rOD%zkrpRp*)RCoi@#=R3M1d+zwkZ21oE0Wgc2ce3) zUwL);FZH{2C>w65eY&RGPx;%m+%c->Z6-fYAV#hYoAmIuR9$xJv_2jodD!(S(TBXD zieVk*%-mlI{T7(Iw*(v?mVF~Y)&m+lHk!IWXsv4j=^xWBJA1#x1dUGGedJnP3uO>| zTc$DDt(`2ZhWqn1Z{=U#xnZn`(b~DfoK7+F`^r%2ch6XVSP@x!S`Qlrq+gd}S(E)k zc|{BZXDu(+^_GI4KI^*W=K=LgznSiQSz8zNd%}EhEyc4pn+5H9i@oaWLWM85%?zzg z6}8PTRnEi%#F>(8;1&cOBE{qm^iRbMc|avikI+FR2Z8Z6IChR1bzR_}KVJJwBh+Ku zJHGo(3|d|Ccr1;9SpE!&=dtMZDoOA&=j361{_A<&_vt&SS!Drd{#;nBo}2LDC8T-N z732X5dz#&XTr=2oJU>uB-SxZ4miv-WwBD0EJWPz7rYcRJEH5!6oc=kx=0e-%bb2WjN}j-#CL4B)0zTFIlWX6iBHwA#A3f2vKWsBI-JhBIfV}7o zjA?}v(k}+aXeLS$3|`L?O1EelBV@Kxd1v}=bph}^*)AIFE-`!SaUlQb`#NnjORSdyNXNNY@Ao7mh@|HDeL z10$@d5*lCX;M}~q>73mlz9@)^7dV`V!n{kHN{6Bdh9r6H$943^`CTBjK3;0`sl9l7 z)seQPP2ck~4SsZ*!lu~uH0Hn-2C#0@JpWlMZh;% z2Q=W5mpWm|Ep=TBuA-Ay{9O{dLQsZrnf*)kx17P4uK69K`0wTMa`VW8Wv(2@8c%AT z?d5}3nz`B969Tqlkv!N$LP07Th)U(G2QGArT-<$Fzjx;u>(T9iErk8>pju{>@Jo*V zv^t-UxPq2Y3tLDz+Ig)2x+`yPblofm%||`_gS+&N<$*a~^rKjq3u*Dor855<~CRUdDDZOUaj z6XQ9DIV7nH;YZ5P5fjC=Q=V6z{$(bQ8+~{A3FQ=hPgOh`9#&uq!DJyM7!vFz#gS$6 z@taAnJ>uw_;3xekM+<>@ECaOIjy~N54`VQB!$^`Abs|jtU z=m`JnTI{zy@okIm)T0CF$+Nhp?Pa3XfrT{)ax>m_qPWE&$TLhvqXz>j6Li z?&S)-n7Jt>RoPd{$G#KY(g#h1++5D%nEO35J|ujX+eF(J z1L$#}%7{H9lP@3lImWUm4H8NWaFf|_W-^+G6x5^hjmQ=`7`!G`uQxu0dF1(fU7Ir9 zh1cP*t{sc^(y0=kSde=e;op}^()yMIg<|==s6^<9r#6%(mm87O#@(@B4dcrRn%hn( zikTlHe+upoPQOTK=P}bN>uDg-UbXqQxpmo6^*MqCII=kD=TDjsaK}C>iD2yjNh>v@ zm=zMPLhYX6-b4nuev>Wz5Ks;zC)FNZ^4c}pk07xcMF;Adanp=dgjQ;hq zdCvsTCP;P;Q9ov*(Y^rw_9Krhl&Bw>)06tUJ=^qLPcGUjy>(3BDR{ohrv}%}YPWls z`IX8GDXZd>PMWMRgb`D(R>Jfi!`4U1EuVf%uptoisT@P}rAVWZ)xBc`mP z_X`H`uOPQD;fIek*xoD1g=ar<(jdV{46IhNzCcX>XS#<+VU4Re{EaR5=U~I<2@_jW zUYg{w-aFOqnx9mOPlJHcH>X}6Rr|hu6`D&?6#{b(X=S5y%kk4|ara5x93EuhF$=Pnvoc&Cykd{w3q`q2o#8QND@%7n$G8yR1S znV6UeEuu&G>VFb)UR&lkhz4PMgQefMrz~W3Z9eP7Qfpr3QaADpyl_(zlePIIrW7p- zR|)MI+@%_4d~5P7LU3c5L{-U#;Vv9)Y>|s`d49&{1$o8OaHdS%dQo7Zb0hO9h1M_l0PzWNg*4Dh4tmv zlrBLardC?Sj%?qa;CBFAg2;4}YQ3zrjig^*@Lgz?-&bLvx`SO1sSQQqklW|LFn_8e zkh&d@_gp`c;N+J3%lk{x9OnjLU7s(ydotzGLs&ewQ$NitXJhNF;)C&!fsgmaON=s4 zf^5I1w<3ZC2vIHE^s#Qiaf~DL@5y#pGEx@{^V}@#*qS!%DAQc##;waTaqL*S#4X5T zGX%q^G5U7ttFm^fRZ{!***_jc&MSTi#3xDqE}=LGZ~}%U^0?GZh^rXj4aBuj(~RH_ zSVks853k=OK5;~=^9oyqF9sxes0gS_ujh77!UMEe=DXOXU`{`Ux+id|CMat zRmeTyFvq)%~)2*8DGTN7+xB9#?J(Np_Qt;wyEl}KoCAu$v55^-yn9Bu7IX*==id}S+ z4fgO?hK(4<-XG~YrQ0JI1yRYZ`>cqF@Dy@-grVWB_TjD$)~E{2HwE`bjU>J($&T-z z5lOqHMi|_K?PO9pA|!ZA!mJu1=#^wRV+LC6=88_h8gIbTdAII5OQLQtK(1tZ~mB zsUdMXVUHqW*}FLWOnIQ4=AP33C!)y@hk~!QCpBl6_+gYozjP1c&t=!Iryb59mL zA>ZqA{mn?>o5&|ya+sHQ-?SHfrQ)4L1$RIYe4k&bxuBaiauADYq+#-UAA)-k+N`$E z_E49ObIRCjD{9WhTqDR`lc~)*@3Jwv68W0Qlx* zI<+dUTvlzG!rvrc=f$||n$rUhSU2-CF&dMN;hItv2BW~Wd{(kEVbD{DDyJ|3h4cF< zO@T4Ka&8Ho1YVYrF{~EKipC=S|lmf3HWyiKs za4w9ODTOT3grDqsZG4U(F$ks0i&<%nZa|Rm-+z(uv0khw$G+?V2pC5gl*f>~!P%^3 z6erW^zvJ6fVfj5Fs2otBU711Y^1%^paXJ|^ePr+Lr>2n6Fd>n#%#gQ$+z8v$<&<_I zS^CxBX}a{p>-7xJY5+e!kKA~KP%a0p7!7RQ@VZ*1KjD47H|6VkD8JG;Ed^oS= zS;qMopOF{@5xkn5Q}4>#YKWhG+fHOhdhJaTZ&`)$gZW`Si`#X{(56uUJ%+`kC6Bhu z{TYXYV0puzj)))RzFt|5mMSH)o|1&gd%4o+rAn;BlQ1}>ATw^~ZY4LgzGsfqxN-{2 zziArc-GG__$p(ZI=85229tWJDMJ%>di3zWE0EdT2MkDxGrs@Da9UAzw^cPc>oAIWu!p99)E%-w4)d}AA2F78`bFX=rY_G!oC+B_#OwaVi64N1= zkIheMxT69P;TcCjMKdY>{+g70R$nj*J6BkC_KW&5)i6z4_7bm9gPY101>zrbRyTVo zTX|&!s;N%Ip4&@`PYPZrKv&CfeNQPp5H7D<`QW8WNbx8`hMT4D*Q^NH^y&DvvJf1D z(_OoEz>534#O0pr96qRV%Q}WpFt(E>E-ucl(QAXg)`$8>e^ljlEyr4D%Z7Re-=~l& z?-;8VQCf=`!!IBmwxA6>zZxN)$yl$6mH355LPIj{U@yLj;J8>X$*5~{4TjHoF-~{U z!c2B{8`m!rW4)CoXL-AM4jYN=BX1K#YSnpi>)32dpxHwOg3Dq$p-7}x?XlF-_9ty4 zdp;j=7Ju+;VcN1_3kmRU>2)LR)At{_=byrkOIrxnBTh{(M-~ph;^GODxYzf@Pkdsc zb#Bm*u=?vS4}hGcm|DEs00FNW#>S5Pg%L@1q*b=Hvr+-;!FSeo<_!YNXEp0?X4q=D zb;iedBPNvi5l1|Hj}yLZmz(EF4ADwu-6;1fNvC<@%~6d7@1 z1v&VoJ^koKIV|quGJB-@bW>il11{eTd4mg0n;Ic zfiGUAf3xSXMdb(oiP*NTv%Bl;4MY6m9@+|0J52H%|3c>lU>0O93{12qIF4=_+rV(e zbVu;8(^0eE4k9kSgxfF_bq!idy!>m+8s8DZJh~<7A0gGEkDWXn4ZRnjZ~!Nr4t)^m z{1Np8=(wR_oG2{?DJ)?Ar1mAm6L#Kr1fZPmDL=1^o=p2Mg^h@LdMGWe{HlNnAsc#b z`1&Dyo}JN&+cF9;j_bz*S|n=wG?4dXR`1>JWRHl~Bb(V_qVhohhLs^5gDq^vGe>dC zU~_HQT8F-GH!=kt7zm?)yVOwJrX*)Q@cKBC5&I@gnD1ec;&k}AWZg@Gm%N?siiW5Z z5XTFB(EkgQ;r7>zgQM)+3(RZJY9}g#2LI;|54$~Wdy+P%JU+4&U~*CJ%WvauF= z4j5v1_C_7AA=gbsZnuTI1bhoOV%Mg}PwaT;W3Aeq{(dt=rvoHdt84g>?(BCVkj{8v zl%)}O3iDx1mg&^HGiCBh^1qUQ*kPSFiL*idoObJz6wH?{akFmtBsH1rQ0527wijZ8 zWH3Yc?uJ!;?(SGm_9!4t9Uf>M1`bh;`1SN?z&v<76nCR`1C$r#`X=m8kFQ{_<|%@r z3WlMI}&NCcKaM9jC_8SG>6ejVNSo2OSH~N0=@-2AJK&p>DNl|(JvZu3;Ey|hz`8oY7ep$i33_*KPSCh zK9Udq{NQJrnwzBe4RC$%oxYN7BLTZ{0a%N!t&I)@^ z6Akk&nK`c<=Zt1mS7koNPndVNy!reXv$T^bfk5`Jl{b%LR_2eagVfCMw?FN6$viH^ zuLW%;Av57=&{X8bT113mCi}CG36#4HCUY80PY}Rn&<6gD8jQr8q~8E@bh)*b{lF}v zztb7z9Yn|KEQ1rNEqGnymUV{QVH8wQHOiDF*gHLj+rnf(-b6lPnv<_u7RR8nvPgG> zhyOGp)>AfC^0_8ePDxDKp7Om`e4Nrt{*j=|oeK}og3-ra8)g}r7HMe>z@l`2uir+9 z@9&rR(0t9%ycnw^%NPbLOO3S> zxNXbR36A*w9T~Te9G$#_3i~6=n|iok)v9kyFZb-;IayGme&&Qc42+KrW@bFUv@;}$ zQNt8INVt?z-&v3DFsYq{QCDCzbv;EdS=sQ;g7b!07QMgeIi9nQ&P-prnRBeN0?yiv zyLwDnHG&9K@6Ubo@BSNqUf?MI z&A8)FTmNM(B76QH>-vqZ`G=kV$G_waxHa+*1j~{K`ta93ZX~jte}l1pu>Y2D!X=JR zQ2%pnDCqxqOUV8mkn`sm`Y-SeSLOe0Re!Jn@9*vXi__y({XdVw|LnJW5+@pb{7B6P z1pojzw3#h#FsAIkX`iD0g*t0#Zib=G{z(?_2=jkP#Q&${_@6cFf0UR1v#Ng+sQ;jK z|5G=>lD(^|i=LS|=|B4D{E1&Gj9ZnJk$$nbsPnHx%wqb#tdGvQXxo~bb&SCK`};%x z5UIRc|NlLiY5JEn3$9|8(+ z`2HC|y_)_W-JRK?4>qp>y>t6s^nw`49#yi*_$R?{WBPOg5NdJ4GPz>xa zPvfAXm%cvPKP48Susd6b3^rE&zDf%3?=+YegH;H-O1Njxe_N=J%xdZ4!UYEh=eR$| z{QLj39D{>{b8>RtZ3@&Y!y@^oW=cgxMMqcHkoIe6Th>3|cx*Zael9Byxhe_846dF-h#uTv+5fAxq+wlL|!2gd5*W?pL zcz8m)y2O6}#@G0Ku&s+f)(_s6V0Z~CW!?FAzkgKk^~-iQ7=A6h>2#Dfv*Z193kTGI z7e4p9rPANU=CSf+;L8}(VKtDZ!PUFmfL{CZ_yFecYC} zIhcf)_+^X6ZLIpAX8bSS-m)vssAo$I0equ7v#yPnR1_mZ9>D#sB*6 z+P|9ysh`9CKM%-2)`I&VzyHsdh;Zk@Bmd{|0=xkK+oak*|F3`c7@T(7-7WIJEnr1H z4+haEObC8fIthSe6DCkU)p0-JY5(y(T!1_Nmce6i`fW@M%75#M|Ch6vDOV9eKN8m0 z*O~r{bo(C{ed@+}ZQ=f!X?09?{-m`%yGhu7SM5}|JX0Zd$8E^((iBVAo>9g4YN&>t zxn2v&e}6iJg3Ycql#*W~o@!o#OZnOPKmQ|$Lz&VDRUBHgb30CFh1Kal@^;5(Vm@F_ z@V9>o1^mu%FV&Vk3{`M@wxBIjNeQfwtF= z0yFVZ4jUriR+{|mH!sWQgZ_v3_bOLY!`U9_H1Qv-cTzIpyUxN|o+r}=Sa8IZBK-%8 z`QobSPn(i^@&bN1a)z#06v9GiI(z`SUl)?q1sogHPFA?n1ix_MHZH{)WaMtd0p$IN zH$v-0oh)JVU7pJP=xNeStKct*zSI|Eb#EKxTwLZ}HVZxbSI1d=ZrUtFpn& zx@LlJiYexSMbyZ&ed~|;SC9eqNi7Odj;G2P!WzVYEJo5QK8+09J;4X zpgjnoP4}HnY-1iZPLd&-ZY_RZ>p2d~_0l<@;nXwT_cE$lO5Pg#`#GPe_&bpju>f+b z$*Geh?{JoIaG&(8BV`fPyx{CV-gu;qNKYQn0+bsVM5@&G@OR5PGy$aX$IXTQm?n0T za-RFMD}hv6c|!vJ<)Qm_QqmcRoSqdL7$+H!5t=eH20G+Aw3l?VMezP)pZ}PTAd$6# zat79uBR5&QZLj!*I<8aWO=HK;j8ksga?Zs9n-nBMipW^Y39{m6gzfnvr~j73a?;;A zzS*&+Qx$sXkl@1Jq+KZ7s^^!HL9Yv?m7Ja9wjX`?U$;EhX%TuXYi0PJ-<*zG9OW1B ztaet#VwWq#X<>!_u^^V7Bw+sUka((-YF6(2VEl%Bp#6N-ZVHTkvzmMUC1P^H=Usaz zkVvsSwaib&x~BKvIqhthO`Y|*EPU6W3MFFJ1(U1=sp*ty0WtiCJCf6o^Ce(d!9N2D zig&<`S43FOCVw}EV^Ce$DUT8B1792!dcG#(6UWoW^av$0K~HOT`LDu55A*KjhZYjz zq&j=h8Qe;;DK9Pt$6?Wy*er%5Tj8nRoRi5M(RVa&pqPL5uG*MbdFo8X;lnt6^Wa(k zC&DGnRamhho*=a1ENp7vOjt9}$hin9_X)8|RuQ~0)PY$VHyPn1`iP_;`dSZdmXvBI zglncay3lWZ>>%K&g~uHov2nP+vR2Gk{GgYUXEJhV-mR(V2gdBA zPqxoeaYNp1uq#ZpwW&F%oP)Qek^xxDYn6v+J<_%!x6M51lPmsTLa15beZz+lo zJ0R=@r143e4#dl1XAx>7l;%XL)nZ{5mj_C5v%%%#Z=YJ54eb(L zfKjWO^^a-eNv+m_emj{Cv&Z>}iZe#|sjpwbu3)t2Jr?xC36aYNLWt%fkRsXcPcbI< zC*>*%DWunZ4f;^OZs?BA?Xco+06-N|uC2f7M$6n{#(F7Q+;CDNtG&&0YGv}-JhhO} z{6lyua{c_X%c)MbsU24E?UcsM60c9Zqw^X3XY*`+^u68hm@LcH&aD=9jKkSc%ZMk0 zm29})Yr8Ga8#ZLh@EAUFRMYXtASACKc8+2+CBTE!%FDH?fD6z3?#$wB@_N^bUz_(C)yh;plcg$1*|FPXMVyz#3{zWXjr2GsT(_nuIdF!NUze)$=v zS^InGC(qi1IP$2;VffjYNyrf5MSi&FE!>b^N^WMy*&_&l+m^4~9q@GBLHqLC)$9m6 z(Jaq^ePDigO5!DQ$cQ_#^4)bhpfu8YtF>hN?EC2r#QMUk9{f&;+a^F4e%a$ks_Qi# zy>2+{Sn-g5i9iBkBh#u@*L?4LrX}uYg(HhE?G3T1hjVSqE-Obbp6Q~+2MJbU+5lGM z%lkKzbp85sre6Ij<0Uyv35|x_q!f=q0f~d~zLUXg^gGyC;U1#V8`GRgib2w>oZv-o z8^dc3wVm9ISipi*-aG!Og(KatrZdxLv(%lXPp}IOs zTKowAs2H5=`JbupGWwq+KgY@=Vw{lSY<6NG!Q`)D*O{Q-^lD+(1VpN&k|nu*11cjj!Dd}=YAwrQ4ZmMv#^1N2F)i+LyY671L#ie z-kL)j92`76GJ^gpTz%8s-R)+wa1yv>dJ$Cr>|bIX7JQYi$Z{7WE~m{G4>?|AF{G`P zz2?s;kF#~*XBb7T+mK7l9dIvHYwer@WSz!Z@%>;#vMVHyO?&+2k?7T<_b%XSQ!h!x zzTv~3cI(fx`eVLtNf9T^_{g(3<5tN0a_7|1JQSsYBidnY1usM6guJee*tXvH-P)B# z@FWI@iBxawxC8E@SI{MT z(!jpHhOM!hWwqfw4&ZS;6H+0WozQPRW$);`#nW&|SRcYE<*~K2)eac&vsm1F@*TeJ zOoFdh%eWlRsNMt_>PMl*xRVv8MaMGWx_`Inl@nd&#wT=~;=$iC%X=0m;9SEzKhO|T zaAQK-I0g<9U|ilvSOyWrUO;xKCL_t@S3^b|RXhqMuxg`ONmeE&|tH)wbK zRomv&=(DeJU=U+L8X@Iu3)}LwM*qDFBLmB3GybQrN7ZN{C%7Tir^yn2{X>J0Che@` z(6^!EPHov&*!o2zm017Il5lQAv<2DvBk45VzAF%9ul~pJx6nT={u^+Xj*yRr5d53Q zcgPN-WLRWO|v!ZY0PiE4X!oeasPW4S3?2|&Dww$xnR>nvLd2Yc5Y$f zFxtmucE!e);SShS1nhND9gk`!N(LwG5iyTqZvQG^AQ~Bjt&Q9JD9T0ZKo;1F?;fw? zV%MsByg#(7_$-_CdEY{}UHxU3!-9h`7#DCLp{v;B^cz~oL#Kyz3%vXY(UndDn|J+L zt1Z!Wpw;!_(G}pz+q+zd|D>oq%pJUU75<&5Pa7#Zkz9BcF-3TB@XXU-pCKp%+-LbO zwMx3J9YM+G8R31y?*qSD4!Yyjqq$h`A{C-v1UIWQQ&*px6K=H?uyY9iM&sy+vns2%!TppT>3!VVCfq$* zh8!c5mAa$SgYEFEp5+E1wB?+O&@?Z$8QrD3fuX{7d}r{oldPDY;0zOc^D~dBMyA`F1;1Z}{Htp~yU? zCJ^k>7A=R_LqC_)z^xhp}LGsq7+o&e@ zvhpJ1t-Mgu<$Y;9UB+}fVx&V_2+X?X%ba5Ula+v(iBwqYnVSDifCLQ4i9wwZjDE{e|aW{@Sue8=`dY5Pk zlwLTWaAgJloS=sUNu5Mkh+Q3G`lonGb8`Md-Zo0@_&i z+Hq6@a%&)T@76Zajw!>|O83-4!wY=t;l*Y9^tCF$u{XckrW#GJX#HR^G_@!r2IhB7 z7`OeD%pBc*9`R`Scz&^{Allj-t14zfmONtTp>V@i`qh4UuG>!L(?i^o_B8CJ$}fL5 zIKfy9v@L>+l;^*k)YRP4{po}wzWgI)Baj(aUc7Gr))j}~hx$Tr-PNa@zB_)pVn zKG!5tT|ieybc1%H86tgTI^&5rtZqx@T6EwL19d-kekaBqJ^=0$JhEfP(mMRl0?BMV z)C53Jh)BRdVxw3swsUJV`b}xd78l83Lv;RVbeggoqo!$xTWxD?Gta0V~0%xI)h`&)$$;0IJ?7 zl&x_?->-WsE_8H={`Db3rl|VjG^5tr+S_&<1?@d5X1ME~4|H=?wB+SoUzgbT&{f$Q z-=z3{ zN@w@&+#eh4%?TDM2&wt93c+5mc+cr=id;4{ikc@aKGa7mzT+4 z0|nR$c{sJzDJB$>`76 zvr+tg;|wdpE6Lc@np8Q{T9@0}Gd34*p0u3Mic>&G??m+efl^F<+VdI4Ni)}+rhIx1 zV{TOuOrP|&S&?UdZa|}9iPj76%3<&2jMD4Fc6m+aCspTW@=gXP15-cKW~-#0@S;K( z)k-M#p`oUc8wNf5{BrZ@vh_Uvdl&CHlrX((z2K64(xK7K=q2S%Bu0jzx7JGJ_)?yW zs2mBuo25v`_=R$IiAnN=2E#;z7_8`gka?@X8aA?S)2XAnYq<1tqBO~(g&{9H5ih`39+r`D@#&Yf{ z*G{}_$&QY6Js|qG=hUaV>c9QP%PS#UJwSr*-#%&v4{-t*x5yt0)1h$@KUN#NE=ySV zBTa~OB{n+0v`=}fD~^QvkwCZ=j{fz?lLdvc_}E&WtM=XTna@PF$l|W>e5W5B8xlGd zutY_K#dRN#lua?C5yV>dLfPCk(AK+j_6NmMRuQ$w@K3+jfPQ~{5i*Dx|L!?8HyyY> z@CL3kr(LiUfSx2{Wbk?;bGD(3TkJlsqOBf3R0z(w;-w?zg--EOJS4yq)6J%wV=6QG z+&H~X=G&&pAa+9I($gPWm5H3qnRnbnv-_-KDfyu^*TW5jlV3J9hi1pn+^Tb#T>Zk% z^eRxiK`V1Yzm{*_DQKtnh9m|QY{Mu&=)%FV`QJt$vqUqZ-P&ueBfF<(_Ud|N{rGDG zmo}8!*VaqZ%y8QjCIUB6wQN*_Z`el}WoZKQK z{HEbU@wG8Iw05B_a8NY$#c24-zYY{U=Vj61pk#WSct%l2u_5&7o z81Y+n8*-b}Pd!eT1`$uVdrV9^HlmhNvn91-J}=q1h>uLDtT%5V6yZ&hrq!ZD0zUhJ zxw%+UEoW`n!2eeM%$q=$5Aky0#4l+bmMe-+G>Sidtax3NRMl}@xSi`vNt=W`g*l(WLGKuoY(o;#G42|O7w%3To(NY6gD&jWB^%&++QjSrx?OISp5 zyal4RsILIf6Qx93#M%5%KokcmGFZ8)8Fc>5Ac&;5m$!I}_&BsY{aBDBBx1R^rFM(E z<~IoSBZJ#v)}7pZQa^&an1u4Eid}Dl-?(~Byi}1ADpvsYTl5W(FE7O2J;B5z=2H6a zrF3Q3#{w>0Y^;AyDI~?LU7zv6A!`+nFe1OKv3dgYH=hMMz|&z7z#q@=w?UA;vhG!IO=>SG?&>y<6} zFa{e@+pLhMw0)&J_vtxQMklDEM^U%zh_@i*x*%lVZ#J7n-)D{#nU0AVIVhV4IdYGyg|Q#d{_3sohNJp5 ztM+V&rbRz4x*PEY&|(XLb1~x&Oro#SQxiB|8w)D0oV)dnQWi z2edDd*cj9ySjB2?eSxJ6%34+=0#PP+?Pe1R@XyiCqlK zn9a+CRP`n1anreN_ahs-doNz$K+gmAmn-BMJ~ZGEwdR?hTn{r;>P-EAU{*$5!kUoa zCu^IO6E^w>N|jytypd9jcao{KDlLL2U4<@h{6emq&ObHo+!KBz+L9fU(##|cM$zz> zF8~uCY_}!nHI7~JD;b@Y=8Gt|%kVjmdf@8k`>L={E}u@99&aB${7L;9U=ZhQMUFNW zd`(8^^X)*jyFbI%GK=H{_^#+vTRgXG3NfpWY=dVxEf`j}1C1QXoz9oBQ-c;tz#_TR z(*InLtm{>6hUu1k8}Kw4m2X|t4OQ18+b^dL{cu6AZ#kEtz^j@sH@N3LNxBPgi)LqJ&Y z^$X{(uSKnUOCRRkhR8d-Z(iAnq6b8|_MUg+9A-8B%&w7AP^z>nmF-P3y8-Nwgr`QF z0~JX-1-Iqc&yi48z<{(_lRZ(z+xy)1Vb}>;+uD;&TdZ(rO7575`@8)Q$ z_Gv%?ZnUK(t|()_r*A4`jQtbR$L#~5WB(H#$~pVspyWN=$uTk7V}nPb{B13hn?rs= zNRJ^p)S_B3F#jTQl>}osZvw+lui>-3b;4cm9J$jk4HD7GkZN}kSl#;NCwwuha-v%x zO%^b`QhXPA=t+{$!LpL`tJ-&}jQf3lzz2#WcJ(hcc$E~qOk&PLOPRaAy+FjP6H-gS zn-Hesr~WlG;sj+?9lWAxGp=LUJzq5M%_P~kBP7@GYbApyY52Q@V>*WbA!4;0_r0#8 z@GkiFseSh4iupCsyZu~>bB^TKdal#2B$UO{{VcXd@mv>S10rBC7f5{gJ0|KCe&XOb z8_0-g3QfGThC$f_Sh}L<#K5bLobBU8LGQVh;_@E*EPV>QwrSBT)y$xvlcFhY4$_a; z>gN^>o!IZZzH_+#J?0hU(rsUL@>X)sj4wNL-PUETqWZ&_-Lq;MZU0lh|wQZt3+#4s& z47`***0469Ms<{DM*~it)EK4wel}Lum^i2HvRZT?*rH@M(T$;Nj;CngnKDH_YKSRf zrw_(SVqN;T!MyXauXU+3Zs)2IFyu+Q|2(W!O-8B;yO(d}BNwU+Rj?`9(SciU{1vi#Y=g<6E`P3^f|**NE5_Pzmj@P8=zb5C6x?Er zf499mP5`~;*j1-b^AA1JaBKc3Ba3tYsb023)3w3cB}B*N6TXVrv%sUe0hR|QNt5zn zU1BC20dAr=F1{t%grM!s3*V5#&s(~VBY7faG!K5SA3lo;V1KTd_`_?=JZo46qM#oY z=b|e&NL0%w+Zz_TeUf1B0vYZ>puR60!#Pfu4O$mRPe;-a3>O@7IX@)&fsIk)J5R^; ziHbqoANiF=$89h?*n_{rT`UQE5P+P1?z3-R&K21mNpHZUANQvhmXSzSRVCBMi z4we73$Dd8&iLSU$!T5-+x|wy$+oLNeDsFz>X<<#?+^_7EoM20oHBX8LZuCnY&z7NS z`7mq`2;#sGc*r0)ha6QfJKj4YN9;xmmwg4K3a^vRczyp%SlTnu>o*WPDW*({9M4H5lR;4i{R zLwV6>sMhHUe|T&yZfK2m+F)*SB_>F8`A^)$2j1>XH+U&h!(^v0!#($X4cdj&is0Zk zF~#JRWGNA0eXwv4X^tG>Y~)|3o$q5GHP9&}LVxZiSpTorehb%OH&!^HtAtyvjQi)Z zUaLzx|4ccCW7^qmsRFp zcqFi;*ws0Z8k77uhM&oMiw^rJ^dCvAe&S&0kTp{Y}8=y`2VC-)T^Dm=qihk11 zbMexYL`{k~-E=#tIKy^+ z*7p2{!HuW zsv}jo-${yC1)QTNNSJ;9O2i20@Sx;kd_mALtnAxnd;$8*5ud9-(^232Z4qY@1yO}X#RoICPneTsLejU~-gq917hl45A}E|P#{tprKmL>>4{1K!HH zP5OSvna}f8=obardNRSuekx-g>srECeUFqDyL3z?#ZDLisPzDdcz#0-#%MaQHWD%F z@41^=ql{vg*Lp5}uh4GBD8Dz5Fj8fz!wf_>X8dQ^h-bZMxkaC~26mmnj1gs}!wB>P z*EjT8iYun$zA`kjeAEw2=~O~zt<|&o?cr2#w)hv{@xm?Tqjs8|0I8pAWv!tbQkZ)- z-lq|8`&Ku%YG9Y^LH(NTRg^{V_~%Q@VfVIJXD9H4+Y$RYZj*4}i-N*Lr zfaIDLW5$YUov3*}4Tp}Tuv0xph{HOZ7Z)6px3-^JRgK6QQIqB1%`dka41KhtO@JLw z%uKcwe`Z|WD6AvZjk(i08%!>{rawvYcy;BYac7M0APZ!!UyMVV8C)h=(}2^?#DD?} zj~#r`gdc@u9k1DQGe5@&5m4JkvExO}fQdoI)ZoMbE??;M$ zsv=idWAEw(Lr)$xeQx0!wuY5$@AY_5O~mj({WG5xLlD>su!6G{TisA&(};2pejy`k zCOW&*hFhs8&>7V*nz&w@n&#@g66Z_3D@8l%8w>~ygG{Q11j&L0hb5{8J*_428ytCw zvzK#>Qkqzm1{>geR6^w*&K|`M@NRwLrDIMekW52}`?7_7qYBF>Hl^fH*rY1OIfVzL z5aP4$YW&{VDsWA1%l8Ote529tb=@gjI|!BlCee;6>skXPSg^nDe%TKdQCa}@6GH2n zV6Y@xHX}yNZL~XWEPdDWOhW13&s)6Y8$kmzMf|10+Z4qh$^MdaIh)jGVi+!R8BE+= zWgpkRf0p=Mc3M?9uxHh_!0g3Uc$GXc>Z-j>uT@2 zrF~8)X9lQWn&P4l*nx0Qc)fzW)hrg2Gs7ax-?F(L_PHsKrQm>j*@J&Miu6oo)QM5d zNHIEC*M1zJ9dh&m^NFYDLKhkxgjOpPK-2Y(ee}1GV~RaCpFJ7c1(bkc;n|n?}(9*OK6?ap{dk(W$rA`55x5wJ&X~3M|0hM-wnnUXFIc$S|KwKU4y~9*a5xJ=H;t^X1!>A*lYzH z;3FYVff5tl8qllJdoSl$He%l}Ez209P)Y3gP4qE=tNY&>MiaqxHC={{h;M=|bu>QT zJ}%>6ZHX=?3dfRmzdQ3l%P^*>uUe&eDd}(Go$wUOcNwOrpkg^+OF$N{XqmLHbBcsDLzp{(LlTDHV7}pS zKC5;bAo6Ry3{U_yDv%qt>S`tCPK173)I2>s4Zow@g)S5d06^>xID1)+(URFE&AM}h zCl-P{_w(B#Y6e5PGT1&21fRiU==S6{^iEx5Nj?iwN=$0EdVfQ37W9OH8)4c5vM(W5 zC~`(lf(j3Xfz(mxYFCfT)Z7e~g?*T#i_mMMzIxoEUD-o!$zmUl1v8ASt*?r1%r*-u zPX-auVMZ{tQnm}`dl>fnaK8yQXfN!kP;TcnPxWF-a)RV^wF%SJBx;sB2DOxQ-N6Y- zHGE|8W@E~`aD-_`r#P6Ia2DO0<4bJFz)c1kpV*l6^n{o+b|kO73!_?WIpAp!)@sWN z`-mzti4AS`+YDjG%HL#tfq=v@iXbT(iYr+Nw(EaXGfw|5=^DQgZLru1odq zcni2EA|KF`U!ulHd&`k{e>I_|*kRk+BMrpl%I2{;h#r1a;NWPK3ju1f2)UzChF?!j z{TQ)yyI4=+ik~5N@hs+Bk}4fX>SOu*sP&eBnpiO*jygYWVZU=saVM|)=(wjcujDTb zxpP=RwYc}p*s}R?&_KYYDhMyO3-Y{E&1-I!#@KN_$Ru$CwjVuQY=l-kVN<^Lp$ARltPGe-Wn3@Rc$gYgvzjV z5pMR(eOc&_noRfv*z3vA@}WbsRtT)UcYs?++ZccueE~aDeAQKwGRe4uJmnz{&2ohY zyU?JwPtpJ;pG;3(+@pMORe>fSXofaTpNDCNT}18`Qp?c{QM$Uifpc@}?w+1<)s{rc z!vC=?1VEG7WpL}pncG%}(ujQ4$Niff^Xq@DLke>yWLQ3l8E7-m>iB?3KK3$6^RGrb zco)lrMQ|hu;xs4M@}j~zVGLps#tCQCpc*r&UE_k_qxv^l2q&5iqhE}4$ZH|`p~{8C ze9(O;M}pF_Cw^fJ(*^!*E>i&VE>!|KC^g@DN-;AtA1N~5>b0q6;Q!a8RD0NhVC@2W zvhZ7%g~!My%zZmhSSx=ft9>Zq{#i%R6JM29%LyCKnQPy6r)I7Dh6}^mMGW(uK<#Qb zB0W-P?e!mK4dUCt1z?7j3C5pl1$)5R78&_rVD0)V*8(YWPe{I7&B7^;(2Bbb#*y4t z{i4cBY;L>NRFOC(6lSSkB1G{!h;yzSnt5bG_>K^zbU1#XvxDD5NIq*7qNP8Nyol76cS4$AxXK#%ZbrPBJj$DG$Vj`NV7D>@4c(?|oG$EJ2$2-mn zp<4~lDkIeVPGP*)X)*b5td^PZs%P-ozSZl$KHvQ+ot?{1FD zc6H`VB72jCFC*;#NSaZg60dGnb^o|snbHo7*v8n!nUgU#eT0pKD(f2Sh;+DH92x02 z8!RYo+HlUleeQV(zZ%?l0dJIA)_bll##}G2+V6NT&xeH^V+f$*-YVX*@)vR--H?d> z*J$WTgst7v2-j)eBNNHM*9&_XA*0)Ivg?nZ!ZsX#v)6%D*)ax7Jnr6?chTzaOE*fx zlYU%u6QPLCt%3|Q(4;d;*9#PLRQyJJY_N|*xSj888>Xz&6rI~#tEWV{*1x?THF3;f zxQWsZ`MM|WPlu~%%Zj`Rb3hk)E*&*8no8UWsS#Y|i>&D~n#6&2;TtiEe))GPfOYZz zoO@~-$rLn$d`X`_lHYw8Ym#y~RNF*VgdOxGQ&EWta~1K-MG9uKZsWG~LL}QZ#W9XL z^$)G8rM0aD)0h9pb(oAZ!PNxE$12n~a&3`<*GkXbA^EsJ?@H*SB(NfH-2x@sez&Fd zD_|a#nOuIBoy1D=-7p3=utYjT8${l^$|`97{JG<(lfF5!39>3Ft4f}@ix^>|q_;lg z5%rr*5k2xQOnh(=%2VBad(Nm1ma*@{C!b-j&!%{>A{P_ic6d+{$fJmt%xauD!8@`x zuB>F7rI@*J;Q&(g5+sM{)|!tqow7OyOG|L-@b^O*rbH!@(Q6%5_N2QI)((OpCg2B# z%ZJ640))rLvo?24V+6e>wmS?FvP&0$@osB6jCdFN!5d@jeGnMN(F2yAn_o_B32R-V z=`xNvT?Y1A6rf0-iE=&;s;_dKkd3ypqmHXIZp}Tr*PKyZWv!Zxcet#11T4jBpQRb0 zTt?0v>X$kH+C^d$y(0Y3qqdpO4BdvZ;K8fz8Fa}b5~R5h_~)KLlXUQ0-kE9mw72loO|zY+4c4F5Klim#u`g{#OC#m_A_vSdZ~-y!klF zW3VH>TkqQzKGs*wt$YM@aqMGO=W3`*>W9tq@23Y|$fE1CEY?k*^kvq82|LVgc&Wqz5J}B0s7=~lo1(LunljkS#@LAgyKOye zrh}W!5sqVo;x17u()j~P!VLZ11a$jq;sm61v1~8X%hV}Aw1+^G6L!`ny#erYb-LRy z$QUW&N=4N1!Xk=T7sh1#I~-udrEf*XIjq+3QY0$h7IMeZ!S{X`>qIQ&x-EA(cJZWF z`M=)JfPP@6<#?`m-Zuq@IEXmAKBo^ltd+51Re9+P3qM=_PL2w6WW8+MUoUWv>Y{Ad~^|t7($>WQZ%-6LQ zdL)n5fq2Ja<$@eB2ixx*T$KaoS^PC-%_zG*Ak#lArncC@|EbM5%|e`BZy(zsj9pqyZ34U%AFACHQ5;?AcYI6g0= z9tGHj+nesGef zCm3YQzEH&jDLv`jhzw$+BdsKbr>(tQEUy)pCWVcK1LW63wv{g!4fM!JNa+pmlE*hy zun*ZjR6fQ|D(^f8ihZu8^Dq6mC&u207U1WHX<3=(=cD$Iwe%ie7pLkGB^-R)wFGj= z7Adw~y*;!PVG}tw1;dmQQ)QEr!o!&(~^cUOHc#aJ-emDNZny{+mzr zNf?uq&(H~cO+6d7b}tNw2oSi`3-i=+a>eI*ck5hhdxJp!JDkHNl?&OVmTe#3wmK~m?;{7=y zEj~mvP|FZxnaRyDf5jz4KwZ`U_^2L*D$Xht)&Ix>u7l?zysJH$!^Gl>#&~eEBa=`w zSOU#}+XDOh$y$6{u?&xn#VkU(nk==u``L8P_8`tI-El(kGAgIm+MwIK9zGq8`5_FY zFKE#(z${+3arpMQE36?txd0OaV_l#Mbykb}_U zBce=j@b9K)li6Av)I{7f;c{YB)TzqsQL%;K5t8@5a1?@fwZCd1P|~%x4C~HBFdSF+4f*Xyya?F^6z@Hd5-@z56~W~1R8S}4hOu zIdV?yf3Zkohxtk19F`+D{LGPK0f@koW?>Yj^7|g=3#%6DV9KW|%KNd}U^jQTRibF4 zHZ#FfQqA1fdRR{MWELTt2<-hu6^dg$mUJ0zaOAv`!e+)bk!^H1q|XZTGmdWHJBf<@ zfCY8d}GCzl=eLHb0x0~_bn2>L#=HSkcCwdxn!)poKFjxT_H3Ke6% zoj5Mu6MMzC6=UH&_OC`pi1a&d?wvLLYPAhU-jRz>*7#3%n-6Il*3K_OFTo|=1Tp-B zPM3x_fUvONgx=mg*rgO93ZHNGxs^oNyKS6gTRHsu=S7G_zkGIB${>fbo^WL#sXfTQ zH?bb9d_?4f{wauiO8dI-GopA4*GS;Ntp-k>&|s))g$~OP6&@X3*`*hTf8O@8Jio;d zE112kc10r+VIx|r!WtFPVlj@;NZM!BC=pB?RX#vbWomd|+}=GP0T=gXCqv%~843LX z?W9RMl5*CY5*y6yN9TQ1M(|L!qxg+xa!tx+o^WubcU%i}k~g>E%c}7*pv8%1;?ln( zt%mQnYpAj=mUO)=k9h?)S+7t)I*fSun#(Y*EWS`JIR6#C?e4n z9pn>e7X5u@GSUQ4v&dm@S!R+UNO5!C?fuTCqPpj*hE77T4PueC5 zGVLMppX>v#rC7~s1KHdA(#(X32jr~$>u2?e>5n74ENd%kVzeXjI2oleF<+83!3znS zF%v3U!6Xt7^0@UGHhc;}3>0|y-GXQL0#r-*r z!=iJG`+92#iUfVMgL*bzZ>ldRja9-4b=2wXNuS#Yrs6yx4xBZ%Vuhb;WnP*e+dp1% zE;oFguqMh70e;Q7aLtN1MoSf>TgBzvVi&K({em_k`uB=F@&T%Q9$HWM+A6q=rVY7P zSVzANrep2yx=O_m_a$v#t3P(CuTcG7+#cIMD`{{)c3$WmDS$ANm4Q~Fj7^SkF6{m1 z+8+@YV_BidLsgWQzO4V~+d_rQt8Vo!bZ;r!fkaz_A1Dd(%?>vjUjmrYw!A{~RMtgU z^HoWoDi7IEP6eXXnEb;cS|Ltak7n?8z06O;Zf*@JNMyeeAmU1&9fC3 z3z+FldV?8=DB{D~ZV(5P>8!!P+T{z}W$uHCD@iGj-NjEM1jHSwXJSWF${edX)C1h9=)vKEgkkjCWlsUZFtxMgjDaZhi9%Z2|= z@JQYwU<@TuO@X zo_N8NIf3hgGfVTq;GiJD!J+-LF0-PGcCDxA_1} zXXNy<0LNpuQHQZzjIWd=l-!I&sBa4W{ayqHeKhMrqPRK+iFq7?U#Gd1wl5c`A7gV! zy3?$SjlMJEP@L^X-1eouWmWQEW<))bXY5gea*;S~1rOtM%1N5Q`*{^Wf+XJ9OR6z^ z3#8Q4 z-2l9N8rb^5>)qOoGQFp0$&j@28xxu$d}U% z8Zy!|R5T1&k@#rV02e2cW@bq&rcYn?_DU+s2s&1TQr#|Fkcjht%X*JeyiNBZS>4d# zbFfjsE6-f_Q>~CmcwSJ2IqO{NpgH|cLenyD$$at*{Gq>ZmbwHso*yw%U!?BN;(~=4 zq9hl@=~1Gsxy#3Hxn#jJw+01WW$#?(jZ2DWxa~&&`IS(C^wzL~fr`84!ei_~;6Hgh zMUS(0th-X{jciNQ88Vd{IrT(qtF^({Qy*f-VG+`E67RM5(_(H}pZv1PXT!qX}d^trDn z@mOf&7nb9?pepsA4x?A_xk6GuEdt-1Ou$}de4 zA@l6xKWiH1^9ZM#IK<@K1RYdi9Qky;hqLN%2144EFlur~BrCvLuH)4!*pByiqbr6a=hK-Svm= zMRpe(k;CNh0fD|Qgd8q;^|GHz==Gt6FUSIL4!tnbsNAijlYMB;)9L_*4szF@Z{#zm zm>q3ZGK_7|3DACnSLOZ`_VvRV4A)iI9`jt(Wii}^sm|?Tql<%l>k=MvVhZNpcVe#x zSB$olQ8t4Fm_}gi2ruiA?cm%UaGPyzjar-`PbvC8Td1TS!g|KX=JTR}7Bl?pe=DZ# zQF`rT9n@w!93{kw?cCy+y-oQHNWTpvB_N)cP8MS_&Dc|r@1ZbR>yqdog{jVG0}-$ zBhf|gW0eO6osMyv-Ft7Gh(!x3}ZmU~;i4$t`XYLJXyM z;B%Gp{EQPqpxHb%s~1P)u)~SDrycIyW_Nmhf?X!c?QzpbzExC8c4aQS*xqgnBrm{$ z1TpWwQ!Px!&_qDdA}jAyV8TjCX9<5@%0)W$ z7C2xS4z?wvxK-yhVa@Q`@2S02i!+BOeOAyIug&U)G%+6B!Iso7Sc@Z5&1qH57`@$N z+7fGZz6v`36yDY&AYl3qNANWKzOR;LptHXNyjm7Cw}<0bx%E`=*HkDx9Q4S`mhjZv z5YEO#^rOW!`im(p?PInGg^O^*3F~K!%e4|xPn;vpxs!&-G*tt>g(~aO#m4*)oh+}$ z-j~*%kbFr4+ZXEO5n?iF$f@^(kshR?I)3~*T9XOdQ%&bpFgU$KF5KlZ#P2LZ-n0V$ z&~=e#C-wL-&VspV<%lSLT~*bN+y(dG7n4v!-(D;KA2hTZu?s1P%uZtm(6dC&c@33y z(!FqCld`SssV`*h(iU=&xiR54cgtC4^=HaYfwR?-1vduJ;jZ@xb^Hr_f-#X9h*>vj zWW8tv`dy4-KZ747Q5%pUFd6w(oomwCgHXbA zSwzkUr>Ob%SihfW)T|JGTS2Gg0^n+5dyB~xqF9pQ;@xAxtY5&U@@1n73KQlZxNhze zHno9J;#()tQpQ5_N--S^b|Mnup*_69avx}-&xg|E9o$PM>EwKgm#q~h>r6fn9oGoO zRI=nn!X)+mPx1^!|1AC*S7p;U#ux-zu+po28Kq^ zNL>1m5DU7pS7qODOq-v(PyQTo89uA-sv2Iu4fl*vx~sfjAumNN#uNv#LzK10L5rG} z=3OV}O!W0-iDmAttV-`qHp(=U{}Y$fhN@4f+xM8E4c4{r^%76i*|)WoQ+@bE=*++K zr*J(D`D^4G4VaggP6@OqYr1;AWzIGSiz!1{;O!huR_M)Vtwk+3G#%O%Q#CjF?Z0#a zH(HC3mMN(;;isfAcKa~}51*K%?DxnGAQf=aKVjM?+Of$aY4Ku$5z|9uXUA)4#y=G7 zL-unAgqH&_Hf$z`M5*^@2EmR#7**4;KifNfj5!C(%^E1zJV|v zeA~Mx$tITgHCBtDNbkv%Q44s|x}Td&1@?Q|$h};a^mR;fvthWW&j`n`MQoU}B^}GQ zYW}L4;{!Q%mzZp=4bX==g3b+r(8`>5EKioyJ@w=zKCrapvUo&Pm|*Egb4aPClZ>tD zsqPlsAzhPh-Na*J5GXe|DmIW0!z3EkrNdWi3iRa&ew)1)8iBDP975J7bayDP7G0B9 z#O}?SF$xE?uZ?+wMZ0~)-SN3 zeDdt&Cgqv<5{>8A2RmC4KI5y5j5IFg61a}qqm{uU3xqX8xGR+hD!iHR1jo%N=3Igl zUpA9-PubZNbQ+gNdUQ+YCFX9brbxO9$1=&{sB}5yvRFZNyn@pY3+-;>6Y}V z6%dN@u8-fR!YZO!aSPw=53oyd47!fS*dl;yNCo7nGSjo*aZOfT*){>^0ryur^K!$l zP+)IM%QmQy$T}lJ%}2EXJwY_aaVf8~h0m>%FBU@>Aiug+qUNqI;=B)U-+Uf{_QdO{ znSC&UJAyZrIgIAV=<)AS_Hw-lYVlP_Vb?MZnnVQ9jR4 zqKf&@W4e^9qsN`Ox#KI4na)mjloWxpmX9A~CQKQ@%#a?DQk>8s9LwD?B}UvJ{dIWe zo6uMXu!5@y^m13=HG{$+zAAaPZ&!MHBJO!hU0Je8$O>h={%?@J*vAk86xrmQw;74s z;nYF5n4iqw3J9pl$=qD5hT30;vXA3_6XYTG^nB@XIpj~Kj42q50WPznkJmr7=yO~A{Il$<8CcjSZp{aKDq zDnwEm2eH}LzpKRxM$gqmT_q&-5O>3(U?(>yrnTU)k*eMhH2GmCM`(R(=upKeKAgHY zB4BT3A?ddv#9nI7W6C5NhKLDYACpWOr<%bp-<}1F`hI`$zPt!(}5%_Ykw@kHs{D>or z8oB5iJY-WWr;CK&9{#4may!@S?O{$?8HMzBRp`q%JoFkb4t)$Cldx|pf?c$*($XKs zok-cwMd!6*SuzUpzEd(XO6EkSr>6swdp+JCc~Q_;w96+j$sg$r4a-_%=x|`+@jWkt z`Sv#2eGIX7V#Psq<%(ojGWq=ZPYytwr z7#JA(ou#IA<;(E{4tw*OMdO+jv#84Y0GnUjtyLCN&Cui^wA-M8+dXMx16y zhaCO0XnENVgJ4*aGQan}GV&@&K0e)7cX4{5qYYyxYx z4Ik-~@wJb*mPNX-ROKsE{#*aMM8xo~aD(4@DRg$YS4j{5P4Iu`NdLbNrbvg- zeq9juTkJ#zG{eNV@z{{>atuU&OHx-enSp_U|Ea2sM@3Up`X8Rp5Y61prrJvU4-LsM z{$=EUQ~;PI@qaz`W9F<6b?8T>DcL`GFlhG^CPWi|R=iLs-* z37mGdWPJQv<>>5ohi)NJs%skbe;$OTnu$ljCY4JP0{`$MrB5{vD$K`sf1n+hZZrMl zxC)#EIllDk*DqaD)6beWZ10^sw7hpOI(K>&dnxa1Jw7sY{_Xs^%VD*i!Y+weWplLR zV)xpY(avEDSdk1!Qf)`g-I3y*LQ*V4q;^N{$TC1@``VP{v z(Ft%+b5IcG;?ffDw~iPVBr)}tYju_uD1_4jzcIpkhN)_4%0fzS1~{}Y=XVg(+lLL_ zBPDRz{c3#Hc_sIDK{=rakW`u)YE#|IOVZcRZ+LvXw;9W}3n*NuP7Dlm8EaUqFC%T~ z;qkHNs8R>$k*!B^`dNW@Q9TP>mnVmP)+ApiU*Bh-X=G%C<9ob6+mun?g@$e>;LT9h zDczij1&e-m{&AL{$bdqVNI7v(&fxEn*(jjap_`M)?z8=I%Y}5;Rx9pT0P>&n{{6j& zs}5V#=GeT)N=&;rf^Lfp{g=B-_j-0ycT{$?o@uwTW*Hb7@}4L$QQq3ku-GLaNWHjt zVHd=j6{lN7WN=boEdb6yB7dkZMDNDwcweMRIn1!hj!3Z$YticdQqWa3%pXyux)S;n zuMlp1N%ZM9M4>u-PEcPFTS@K=b{c9 zF<0bbDOQPQ5PZHK-xutBuiTYeIcE{e1DYT2%_&+eB$OH%EEMz)2h#odbI#fAp7ll6 z%U#H+(+v6^>-B62!j^R?`8BA-#h!io>cDqBOH^XN6*p&nw>oU}N^7wOw z<`j8j@+N!k0Ryb7?Qg$?fx!<0mp*~Z3@eHxAIMUrXSy>wH$anQ;XxrsN zx86~B9?*DN@K2dAOntTN-2dX_U-23zzQ`E?q@Ybj3xhl%z|`#G1{73?X| z)6u1tT{n&+%C&*z`QVeRBid^&9r;f3q+d&y;a=;Mf&|9?gH_VZa*&Md)I}2l>0=$oPXVRRwo&Cbl4I6X$n6=TlHvxc9nAF*>*f8`qpR$_|Z=M#X;P79Smt zbl)#_1um}^ZlM4#25=!gYO@=Z@3>0(TC{dbTDEnM2QWFfmZ=70NLdR1a-j0q_ncd! z1g1-_u(>S z(;2xN;Ioe(3EA$gs5TA?p^Kx?`QT9x&+L!!3Yg-$_O3d#jXjlvnO^ne-uGG)+0PTV zRqglMjf-h)aw>63r#ov&p38`aNABpW1W<|=rj@B2**31+{=>)^O4P^0xu@RPQ^^@B zA>^^sB`cFzc|tQc_gd|5^frCJg`n+hIDnE!bVNzZOn7&b4GT_-X=hW3Y2?ReYz$hr zAryB*Gs3$=WlYBBs$DVc0uGywHoe+}jbH5_@J2vi1|oVIy-D5Us34X zqRncL44=*ZsJ2-81st-c@FA-pO_G{|>&sE$d*aem`)Ae*Uw2L|BlcJX+gI$y=giqd ztSF+7m@Z{21%un8WI z6*~#5nLL$y>K(>9IznJ16t!2DxgF^fvjWaPB#uI#)@`vWC{P>aX66;-sg+ch%~2q2 zf+_Z!S(w1ZaEB4j-BN1Q$Dh^$A6V#!W-mosn;x-{hAq#l?>uS@T|uP1py#&ht#Elq z$HRwO*MF|Zo-C^sW0+5s-?t>(e*Jpsqh^-?EmGY|A@SVYRgFDr(%Jv<`H47 z@8U)^)4F+&DNkhVt3b`LF-askCr9v@>x$R!xxp0RF8|cUW%*z<3LwK*pYrua^90r> z-VfdlBNeCSWD}IZuDiW9^dKWbBujRiEJg+Vfcbf*-Tbp7lA~S)hNlqgYzp7+@*vzc&jZgv6I#`(uv{?ySa?Lb;9;jo;y zS3rsP7Nl{9+kZE2)@l%0V9ai;A#g;UHDD2uCD0I(e`4KTZ`{6*7Jb{qYc0RZ9durr zW50vmA2kqVPQGb9a@UmCJo}QQK25Nf&s5k<``v@Gmr>U{EHSMCDa4B- z&RW+UNaK-T3Uuo|#HNg)_F~UM3W$v%70ysBFJjwLG6D+*pR;YkAC>!Iq^X|dND2;+ z&)h@ISiG`_Z?=E#BS->;TfJ+eW)T+YvOX(N5lEW- z<1K6n-zK*ooiuvK8%N8AZJbB(RwpnGV4Jqg&bsl*bdwHDI z^wa$-X?iVCNh7U6<71e`2d{UF)E^b)7Rq6Gtv*XuOZ84l4mur| zr!f5%)i_xMjeM=*HlaTnDS?i47+Kt%i9~n#iC)5;vYnpBc44~Dw?A_{Wi&IvxkcN^9hzZ~znCs2IbP{iZU5~$%H zQ&j!y@DiY|QK4C>I54BBdF^q@)k6F9CHK;=x(x1&FE2hyn{n*vsj{D!NH3p37?Q=( zbyJyc^xFJm+`1wM{@gTl{@gAg(Cuy{tZJ`8OzM#v$-B~Ud8JwY<6tqWR6wb}mma6i%##mIcfrLMa~_ z7kH4*cx_ZZV~B=DX5t#q7OyfFXTIPXw%&2yyq|R%N=3Q?#?9u?=bDsV%zagt5wB@eU zX+G2IY0HH~^0;z~gPbODdY|#bxp2HKR)MA$i|$zo<9n>JA2OnQ?6Y#43&@1kBEF(* z03unv?;YQ8djZE7wDTbOew=P3JUlxVS=)FMcA)z6EVoo-$_=+}#3|Ilq4zT;?JDYR z=)MDcMrL`ya|&NS=SK@?H@M_Ek9u%MK3l*fKIXQ_k%}glRvgV9bgcPcSq$}z@=r!g zMlOf>qG_5sBUro;t4=<#E7FnM#QYE^zr(p5&(UPtpNMb<=6uzT&%z+GH_^jN@B)0q zjL{x>4rl8EWn3aX54I0`RJv@aB3?hg2E6CaSL}rM5$M8ieBvu1^I$i=PS+Vo|AN7y z1exn+gPl@J)UI*L`)Cz4%s6pzP~*@HxBq<_xRjx2+X!=!8FS9tRvfn1l4_!{gB{CH zqR`9-6#F_9*Bi6K$W$(*Wv=8Y=qb~1$KmA)0d{_EZq6Emc(R;waVgG&3-rAd)d#uR zh60{INu*DvG_Rp}^8Pyuuid;YGR4x+EHPKhJId zhkSP;fz|9CU5kgBtc*|XbM%gER%v1av>aT0W2P)(-5MD~PT^U3FQT$klaD=J7?~J} zPFFfKS8kXUR1Wd}6C|mfVjfsMqKaJ-g>JyB{47F!2vmMqC{>QB8%wcwV@~S88EK@? zyxN`)h>KQ38nYL0G~$Ej+@K7yApgk3=p^foG(qDWS0bWATe;FLRi2jHZXrM?{ zr%QL0`#+(weNd+h+!nOHNWof(61_a(Tw++s;7pEIA*aG;md37SZHZl{La%4~j|(GV zx#j8;$AJ~qW7!#BHXgl1k#heG{A56)~ky`{R8-&R*tysEAi({2n~cnZ!XS9?-x zbg1S>vrF}~b2_m9Be_(UJU8C)Yx8;Q60B*%RQy9ZoYQ!|3zv0OSDTxgv+5A=!=8NC zr1bCXEmW_U!0U^k><=w0@+Driev?CEy06esOEa%Swe}4WPK7Atfncd_PTJgN<+sV1 zitx^{_sZUA5yG8k^ZsC&OzLJOKTG&FydL_Q#<8DanD^H&XMUCY?H-W)r5vRr2XE8D z*h7u{x)lzsm{8fny>QnDEG`1ZjNuLLH-g-s=nhMz49b%lN^1{ImBIrsd3ZAtp@%o# zJ=R)%^Ere2H$ZWdm*hE_x1%IsoW>{K% zyD2p+s#fR=dy5cD=*|nNt;L|VXOC|=rL;D!cH{9PQPTU*g&AcR35ysUM;g@)B6k1; zeZJUVKj>PgWREH=QODEfH%5Z z4qFg=qpzR79v<#z7d7eEv=GUIZ5_{=U%E;*%0jnmp_YsrsDShJQ<#VaLVF(J51b$n zTT6Vu5Il2)j7(bgtnoS+EEeXDH}~`PjZ07ee2oN@4ZOo)ZZN0Nbl#jDuc^YHQWbG2Oo4<`9uFxUWV&c#MhH|rOb1qu{UmKxdfz{{&H zH!IaE_zXEZ%K5#atW0~DtmHQ#l~y;QCMKzz#3&(9bZ2DXrqVE`nsxB{Jz6k;mqjV) zh9mpn&2bJn&u6w|L&d_Ag)KEOGv+g#%}h<-uVQ(8f^!lQ^nV2hSR-&6oo%jA3I#Sr zq!gRteR?@mS*>iPDo0hi@cH8OCWp9ozUOBIBSS5(J)quAG`@xuNeyf2crI#v9oB%I%R=aVVe&j&MP?<;FW z0x(~Sqzbs8vGHbVYAO^8RdRL~*o*D%>0#sLCHVgRJ2F?2`KPijFf_vgB^4FT+M|E) zju(G+g@5|=DQ-SM4%0mB3=Ga-?t8?Yv_lA^?^nwe5fs$gt$eeUxdr!M)PG@-RaI5_@)(@oP|s+6DLO0*ii#G7 z^VI&k1vFaGXBPtaeJA_ND2dm1@7~P?3VeuC{ehT8;;|fo)EhU{$4VG&21KUC^t^oa zJFTy(p|SBqN^4m6Uv#=jWink{%JJFQ$}kr~yKW5i)c5)GDzuOZ=+|E~y&-OydqeBy z+nV}cd#h-YytZ6LXag+>q!GC}(-M7l=HJu#7e)1vggV7vwT3sufs$D~=qXX?aDT~+ zkdu)jodTowA)~$3QekwDWFv`A-3%`Y4FrX9<%_vU${}2pqS3xIlIKx*tgF!Yx;)|T z3)1kLJSwQA=ZU}aNfG;xW8zfMAmSl^iAMz zNDIqPE@;k`d2F9SBT*Qhl&hkmqR8m6;NV~iI=WjFT zx+3RxN!*TwPNHdraUn9(Jq7W*<~IH4_3vWpA6Ax@*d!&5e6usCFCA>{?6e7BG`DGn z)_99BeU}Ce;*ydip5E8jFT!rT_4eJ+qZ0{b#ZpmXu|2(;ZCkP$?(3S$jxK4$3Ew6q zb7~58a5Zi|zO9Qiiw}Gg_Lew7ypk_JNBv%WA-9XxO;gb7t~qS1=x!K9=3KdMd@NLk zCYy7#y1M#K?r24yQlAp=t1cd_f*YB{3Al?u$M@5CZ)sI+iD^Uw5*8ngG(IEOOS7>j z)NmTH&8|`SN}V9yZ=0Rpz>UR4A`MW$nw~3AyO;=eT~qF# zM5j?po_5{Rk9dAE{u+2LJ#7 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-2.png b/src/.vuepress/public/img/odbc-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c699a9b2c8a96f1e91602f0b72df959c64675564 GIT binary patch literal 135766 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

5I!{y_W|~cOHzZ}f< z&h;qlF4K#1PtkdiYX#YhdfxfP50-}FK^b+q@6~FRzZYlg>*e)~tnpU?BSk+HgZ1@t zMUnMzHWp8x(;JO*DL)r(${mjCIoGcb#MW)@P_m{PC2MA5`+CzCffF!!=7jF-1Ulf? z5_3UeB!(a48?5qM68^WGdew(l1$BrDx3Xp=gv@LQ0*Lm2NCm4$Ld|cAQZMp+!9Io^F$}^oQY}lg z-_G|Y4&7s4DMdvfQb-9;tXgN)c+y-D=9-l^RVq0-`_^jjBhW?R|@>9L2kns-Nb_3;bf zDd$Lgat60C^F*q4*6o|pTe=EtPmG@}$BW=j1+!ZFC+8Pi7N`X`arQc3;=17c25NS{ zEd=wA{FuP|D||B_v*s42ShU$Y{FK|+I_D;|ArZ(2j#>iE9xB(6uA_r{jK~K+Lb5(-nR)Rwr+UR@~7gN&>F=_#Br-x%P0`n3=>mAbQZ^@;7x!JOlG?+omwgX+7o zJn07&dfZ>+eUA&SIZobD@Jd^WE0(ceemBd~v0f1A^?@sI`^9F)E~mV^;x#5ra|%1hfOXQ} z&pZf)q{GeO4H3KUH+U7fk%PyYO|Os-+>p2Pe=VxeQZLNV%8h`vZQ^MZgO0^(`E27B zWx!6yT@-VTS$l@L*0k!u4W*{Zk%Yrt077Pc)Mk`RnrcS(2Iwj-vshqJilZs6yz{~> zPB(?*yjk6?7<5PA`xcCLyt@C3ORklypOSo?ZOj%X46w(R!;?*}swnk=Y%Tbl-H~*~ z4h$;QPAI1hyb?xvZPK5;7tE{od20#wN(Cw$@pNCybyL{*x%d6`=5~LpIS2E;XW{-F zy5&J+a8DSkHOazhV*vfjPLawj5ZjN*TYc}154a3_X;hdrl@x$HkhAo8D>4|En|NwY zDvrN(E@F)KfIQ0Fd!{qvJY4Q9{F0pO#N81%GR+0C1$mmDPg$XT~1(g)*H01bFT>;{Q zkh81P#?RY1`_yEdou)>!D;;|ZW-YZWp^PK$$zm#kr$R~7D|IKSykug*;q}Ureco>O zROAZxfq&lkBFwt_V1~7udrl{kqs!)jw!#|*iyP znmy8?qtW&D-0|t(mlj^??C8Z~@a)EVMk+w^V)<9ymf1Ya8WRzI^BORiVeT)^7#W_QB(pVu(>&pX?7+ zHlc$aX1*di&~K4i@sKl%v2ybX$PX#X)v2dA z0lJc%Af&&9L<9OK&AO$&+S;EJT(PB2HH|@4LE5sfO&JT6yHY-5)e^EDLT;IKpItKu z;EVbcnzmlb61&I-)W&Iay<1ho(>q8|8rrk@Nr;_^7ufST6dWZNb~tVxRI*?g^rr=k zJ6%|LJzITsn7m0#;ZsD$t*YAID#|+dIwv#;tYIV1udTdRrm}59s0kB~nDwJB9E38e z7Oqh(N2f4>d9xhH?7+OgSxtJZX~=V!zAw9o$&#n$&#INLxJmLu$8QiPYY&xIg15L> zLosq)=LeN1ZF3KefY@4aOS)90t@Sf;`x|vVPj5igMN`sj7_}#M4ZVNTg*5chD-#?? zMm4|Th*;;tqpYAyvTqP_HqEr64<1ASYd{qQJdz9jDjn^1&c4|mXv0J@vJ^`I?iNSkZKp{kiDOpw&DjnIbDHzags(ntT2)eS{TOTmC2bZGIF!5cvXq9g7O-TFfvp<)8YczW+bpR zk;+VJbWb+Bjjgt+$t^L(0O*g!=&7oKrjxBC=;1OJ*uU@P|0tUv_#o2V@O-a*8rArs zJAL5_%C_^CK_+kPtmh03dBt^Q^9Y2$E?Z?zRV2TgFqFIB;Pz53?9Wpb(Ej2TKISO( zpLAzZqaJqLMct>Wg+TxJ!V$*R?nzQ1eI40dd<@u zL{yrG0oI|bZ~gD z$cHG9IDtlffI|B4`d}LJK$J0R`cUm0m2|~Q+V$!yqbC0hTBFd_MkI7w2CrCcV+!2k%;T9C zGN8cJPAU()f1Q907ev*y=xt}!-ZyXLQ)W6yYA~lQ+vDMDkdxsP$focbb(!21JK4K6 zND_Ntg>mnj(x@yERNmOIqx%*&CB&ZV)`ZL+9tEyw#V0>e404j$28qUBE9y$EFub|8 z(ZZwndHrrzfLhnAzjP{wKl;b&{e*F6cE?$abEfw zzOz7YPek2XV5V}(;=79+wb3DLRe1fq{X3GZM}m^QfP|hTdh{zNLWKw?5GimN7G3*o zEvC(wtce1TtF@($>cBWIugL8){%oGL{u#@n*eOkwa!L01%ETE<7~?4$qIH>kyLj7u z6i|Joic(?uAWm<;Sy&+iVZQbM$a@rROnQVn*ar-B{Fg(LBXr0qc6qA!pE zul-}~6jukmnwx%7KIQ5g)4gi zphWdPT5N0YHw5f(E0u8nG=1Lm`y%xyA~V6GX&Sc= ztaLuB5L8-aYmWv6ZT)?t3a5Q8U!x()5z5h$mj?UbLJ*WhPF4A`$OeI_1_gZlf}Aa% zo!Q$rd(KgNz$4xZU+$_s`_jSKIbqlLU8i8G2j_Z1q!{O8hK~n2QNr6Tuy;p*!|`|F zZB{7oWPg-;@j5=J`Xyc1#WWa)#70su2MUN@XSf1LU@tFTZEL(T;tJA^4diwn&UJs8 zTEj{~usHl25q1CkOT{TI*7zAU?!ipgHpYTUYm~Ufw4S8&DT859E2=h0Puerq&V{Ek z*-wNEEZ}2iFX|}#*@G_dI$hfzW^Vy8gu2C~w&~-RqXyhdX)%gFa_g+hLIlsC`*N+` zGcRZM&Xm8G92z;n>qUT(xBb#2(*H0X|G_USABoOWM{{TDg%rKIe*xvphyT8^Rb32O z;^&bM)LDEwHd%|+I#}NkTkfWs2O!TAW)#7p%J+`lqO%?L64`{8Q!XZ{kKE_DGu=`K zUJ=(SRDr89tbAXZbxzL&KLvZUE1wg*a5I&WDXu@{b>mA6>pd4WUt;&70qP!c^5NUg zOad6oiM6vV!bvqqd8rlq?h~cCL5aA+fj7c`W!LfloT@1>+ZBK$VKpq7-Z;zOA&v6q zTOqjWH0C+AUwQO?5>vGd1a$e{a!tzz?d(xkOdFo;7M+V+ob#LsWkCjtE*Bwd8Uo=w z=)nr)kSo0ysUADN{Nb;YN z`?EhZbd8r25uK77e~wu&$8&%ECU2!3Vj)#A^khrqc3tv{V@HS&*Q)@@Bufb1`MmD4 zV1qa5jh&LXCKgE@&JfZ~G*>;{G&y|T{`U1;QCZZe^@C6 zMh*;;leWp!vRUi`GD{d}YIK(}=?2tBDRj8^NfDz64_S{?DJ>cbzDB+3%wWiRL~A!$ z^Ra4_d}1ZSaa(Hs>B1jN=8uBAA(hMYA=1^whNIzk*B?1aauG)ch7~^*GeC@|(MjNx zs`2fFnBM?H3yId0O*yvDj$(tY4$SVz*3oiE?OyEO>>$iD+v9V0Qk@?|feLK%;?_~m zudbX}HbhnNlf_D$L(8>qs_w#)N^i)c^k-tb3-!181S0cOZ$?`Rsp~};D!2dLbgdG( zHBWLPpN_NzdCPXl>gz!}(pid3o~TwZrE1PsNLsjF4X{&Qzw0QvZG=kT_xMq!HDnM( z9y7M8m*f)&|C|~?WwCjH+_M&5M40WGbGYr?Jr1B&o6UX%KtmJcY7Pmj=YaEL6Vc+m z;#tMaZU&g;S0r?2TI%f-=G{w^hgkZe_41-@T^3?JZ~Dov8@UPXGQy5yQ6N?9oJ2-( z5ipt!se)_)%J+5&d6>0^DSrtBCTnvLmhYg15e$hQ__*S^8Eo-ohr>yiuX!`-0S%7{ z8k(C~bGWqHohU6gGlkxkdIB1SEeVmQdR&wZ!qo@6S-lZon&$I%1E~2HdFnlXa|Hdl zyeK+}gFAdR`&qiU`599%GR(c*_r^TIUoSV3ta4r? z5b=RY1#q#~bQ1VwT>R%(cI-Oj;y~pDQn(xY298L2p9f^-+oV?G>6{yf_UVUD)%mGC z1K6@d{KDlTEJB}ErKj4AxjJ2L*=a^9@Tm>f!Wx=%#87SZjG?b8*JCfSmnj;TE>C2+ zAh)b3RIcA@G66NvJuYo2--isc-_J_&A|)n!^k_lHkh>vH{1t@2hQMnt(q&vkeat8= zq~mC*iokHySr@s~c8=_ML?O}WZ6bfl@J9bF*vIg#DvrE)0-(1-vm95jCnFUZI&Nv7 zR>u>c&~nKl6i1l|`zgf~{3J9?@r56S{i#i~oN5dg`wD0f_^1-=A6->;HWQf!A*TuB z4)B1D??q&)i!EA>pJ}VrsTDG9t2~M=&6XQ9lmNPqqPauqKYDjE`*~W1*EE{)h;0uf zwtu8xfllM)nSY|_JJJU1D8=6A!;d)(z+VY~z1GpL0oy+wBPD0gw7C0*JtJP{F|SQ_ zlqineUbI-Ob=^NF40u|8>#ng}A;i|WCOi9HUJr>BMp^oR-nccNq4>IO3Sd4{_jSG=*;&)@81smNY>aeGz%aPGOE0udMLA$9!GZ;QgB?xD{d zG3)p?AKYEziRu`Ik-&#l7=%>AV;b@uW31H&t|uD3okF5(XpM|P4iDWI?%T#MJp|qZ z9D*3pXQO=`RK_Z`uaMIhDLGRi|7=h2MN9ful}?XrO*%hkAII|%{A?Ru;hq|CtFWn9 zDzyVf_3XwwNy`VuoYT#!D~7i3_}n^64Wu;#VPRoNqhv8Mr@EKT)rn_&u>sDl8_TmS zijYv&w-nY{_p_ZYzHJ8)U9rVe#lcp& zm#eY*pCs3pduOc{N?8rU?fAXA9k|(ei2ZAswkgFEy@^}K{3>Y!(`a}-NH_3z7}7k< zp+!*F!#Wx&VYr??(BWd*;3#loxC^aO<2=oE@MVt0-Yuio4VwY$tjo~q_rd5GZGW}X z#O_mvtGps`rnZ}JJMRv2al*^56q4t}UTb{4Wf1P8Kux}y>T0Z~TV{e=3iTX^5JY|i z7Jd+Mv*6SOrs|kiI1Ro_uImM;BkW(VW-CA9 zsRj#?46f{02Fo#ZW6z%}Z{D1|@2q=b9T@}Zjp|N{E18Ig=ynIY*85olWxdwVT4%#v zu3zgJcr)sLc#TqxL{T`Km_1%XP5uYmd1=Uo;ozHZf94|Bhg=JL%`-ckPJWb8ysT+- zpVuXq_v`9t68{TJ_12sZ$OT*J&qsvcW*SmXdtz9cq#ew!fTK~%q=;8cXoL{ixN~X* z@M&YXh)GuEGhdP0MCVbG)$L>-4)-%F#q!8+?O;8_w3#6A2&D680djE@4;Tl)Baw$RV z`BbfAcr)rHHA2lsA;m2QBj=!5E*bvd)j9Q1;MFth8ROTA9&C*_M<2%P0W}Mh?I-&z0G>d~h6?#&0W`&a$e z$s5=HB=uHNw*uU|10nOO36J*2tfMEJ`u4w>Rx0SG@~0(B@lCcpXZr1>b|bH#81m6z zl4pL9r|!2VAn*nwHf5zS#{3`KZ+ph)l*GcNdbo>k8U7zm$bk+#OVz@UDcP!ho=3 zdGk4^y$?50zl*O7&+#RD)M8gpsA$5aD;RfUDjz;@m zb*+89s;%ePDN0Abf>^D(>hJAkd==?+6e^RZSvO(oE~L{F?b>d9_Jky%vp({ujiJa=Y>< z`ZJ~cB``w|4ZGn#tmn z&<0f@HKJju--8ZoZtiY}Ta0JP&=WefsWx{x(Ej9KPu%8v(^o~K0oT&{*Kk~%%RT&W z%jGD35c1m>Qx%3*3ibRU@;^Qp^DGu6P~Cq-e_i?J3)0a#>gbsZ2&Kv{s7ut2|5E({&L%+~7!zRd z*G)dtay#WSm(kv?HEd|+_0 z<_ahaO?UiHfA`<|bA(C|r5%?h_EeK;NJ%8Q*lkj=nAe?7S;c^FNS~D%M29Z8t_&8b z&Sx0{LlfI{t{S@=X?bQ_OiLu=!$1xeUC%4tk^I@alZg}a%F7X$$>cdW?2+(COXLnwQR*Vqp3z+{mC#C1o8GHt=C`?pyzQw1$NdBUwav91EW8WFHr4UEGh zQ11IT6er`Ov%-_Z?!sSItqOH0{=E0=j4S4?Eo+Io$9XwgT>LkpbAVH;&|AWseO7qyEmq8;CPR=gc2=$VCIFeaeA37nP zj9FxPzHdCJK7X`L87^{9H|xb(JmXX=;j#FQhq1vUTqWpQ==Ker)wINQ2qO3b5eSK|{4&J;BR?BsKdm7K#x`|;4 z>6YxJm%?LHjeXwYJD&I_v;~uCI>(phj0N01@133~7Z2vtNJfmS*}9hXH(_)hAv(Uz z^i;AOHY8l`F3Pl0*>oLIM{K3;3Phf*-k(3VV+WF)W34d^f9LD*b|Vm- zh1~Ne?20DWnKPxVipIAJBGesr6O<@3xh6i-apD#Q4nqTzFJU-%2+K#QNbYS=O`6l? zVJK_pI`(kl@?d)bV7O5h;Ku^FmJuXC8oo)q(?c5~&yUg-JA~MrR`6M=cs`iscZ=o1 z#KOlo^!4U9CMTtX_Cr^Di3r^J1{5$k+b zpWqF)l-2|!Q>q7I!_`88{~)*g6f$L1WczQGt=mdF1I7eNPcjEza3v^^7-UBLM{( z!h!t=yky~s61cziB1gqxo+-O_3txGPXt!7NV}^Mu-3-)FM)QBR{4UcD3mZfTA{a{d zOEiwLPCy5>G;=+Z4fod2HpDXBeD_9cHX327+IV< zzCvt4<_G^Z!fu@L5k_@4j;F{_F>q9ExoJ75y+=7156|?3R5p1NGWyXwcQ3zvX8Gxs zjUZoSbXMY35o&+h_V-5;($o|+fim<(YIFQaft~nYi;vZZ(1QEf#O(JsPDLgJ{ioXRhO4jwJU9V1Hn5#+QU^_!Q$s2#TTF62%M3$E@uEQ69xu9g{ zJHI*hJ)HcbQ`{JNw+Mm>N-g~53mdsq`K1O<-}#6>lf2dLgGlLAA^7JmGzRg=yA*ow z9E>aM#Q2PjeQF{RoK`pFtSH=zJf_0Hok1Dz@cr6}CcW`BEey=xy(41x#<*)|L+55K z6$V+&;uu&kN- zG&8#6V0wFk$#dRQtl3MT1qY9ta~ahOFOi0A6f%SuNzqJiIh#N5(bAB`f)#N>_Q0o! zlI=S`7yB1}Ub1vvfRUaM(pDkiKC!?4elcO3Hh2Ig95KaK4KdLFIZOI^Dq zelSB#)=leg{^^ymdc2vBG-wUI!hW`IK5pGJ8le7}T#nCOUf}zB9~J!nUN?rLv8@y3 znf}J^nYmz}UT1?iN#+D4yv0H=|ES?;%?HCCk7fGyLmGP@;O`nMu_Ai0C3R*ai1_KV ze3z|R$-6ZH_FLgoY&s%4QE<^wnB!-@qH$r?nf6<7foh~8g^#~`VWhWAexbGvSj;#H z(!AAXXcWnsAhRVaFIgDRh&lC>6+Y2R|F2yrEe=(EOyN;~PixNzlBsK?Ugq$pu3Hn2<|{O!Q7L(-@uC&ln58<+y3{2;=uhVHQ%Yv?LghI1Y7iw|wi z4N9EO+MWlL__Hc65E;Oy@oN7(C#BNHvVJ`Bz0>~lS3JGAgeZy+ zvJ~{l`@fGtJf+?6)U(}QN%$a0e>aK2p_)Rd$Bmj-c z9!6;Kp1Y>V8(*XRAh;lQPe@l^s9OqiY$3Q*RW{!f_JV!ZX3 zt4jC7LPwecV{=YTz=y9SU*qc4(-Y=Gfw})di{l?oN__UoBhn4EO+t&i*nILV3m(~} zYd!V+^nt}7KWn&39A{Aw10Q_edZ#u(o?WX{_y#7C3ov%@a^u|XoKi4v7S&3M#4Bp-8 z`Di}po_pU5ZgqDkYIs7|?#*XE^$tAY}J=AlxkbE8gz@>(4$3LDKFjVyMq=#AZu!4v`j| z+VzEg7Fq_??q{cex2||5xkw6u}V)(7{t*=f&(VG}goVx+c}#^LP3iomz{| zIkSh|G!lKpu?(7*f4FOb>Y@0wNZt*(Pf!i|qgjE*cAqiChl!4TX<{s@#JSR26pk=O zrvZSFm;=8>ML)@%w6)DVW|CTby54dN$PeP`N2ucaS1=J7mJqotPO>Z1cm^Wxx!5Ug zW6TXL9m!4?G#=!V(ym>?rK#BpD4L`ezN|*{!$j(tD7m&D&5mK;5^@IwkpIRG@F%`M z#NDx-PqPw;Uo{!qtB`d;rV+F{Cvj4~y%x&x#tHtWv(;gNqK&DqH-zjtPoY$%|g4Q0OMIDd2UR&YWzt8uI2uyk#hPTdbp`xXN=B? znR>D^FjISB>yBR)SnFTGKOhAehu`7Ljfp^qmTHbHDy}7-UaV&vAQT(F2_;^R5Dx*% z+Y^zgtCnw49Sz@&&;+}R|IghtLoon>H+d9l97lrCVK*eqZ>*9uCXhJDscY9^*TwJ1 z6%Z+MPs2;O$5Bc*BlOzpCCLkUE3oeDl*Gsqxd(h>kG-}a6Z(jv(&>4(6MwwW=L?G} z+6iI>N5!H z&i6^t=5x!Zcl6L_0)4BraKk8aR|*>|T?d3w3=>fxfb@x7T5`5n9MpD6LTevK|KXhp z1)yl_J?8%U3OT>^7Q~gLStj#Qs+CGv)}UXwj%n~SgQbrrTrv3#kXEkev39mP7pF#V z3zyn;be@7<(s;Dgh+1XsAN%joWmE0?%A&Ic`6qbPcN+3P0i!(01gQF>6yq`}Z&o7w zR>2q9heMXvoYr#drTGo81yau+O16e2a<^ zK~lN_sCS}U(^CNFo7*l&x>Zk$$_(rDtx7DZ3}~}ojDNETYJ92&;#9j1;gk4afnoi|%_LYAmE`7po^DAJeM=Q$c}j0UO}97ra+LH!=Ta7RFZL_z#* zK3AuaOr+IpQydH7)oYayIYOb&#u)8-d-Q_rJwC)2`G@F+P#;|446g6`S*)CuY8T(i zWt|OYrwWfSGsz!dnmy6KMu7oOH`wfcz2Tzd7_!;de27-Z8(+YY8=g!3RGUr}O&y+3 z9lrW384JG(kyPO)Nh-pADpg~E9QJQBwc-9hg-E*@={)s;Hrx@17Li8Qk<{7Ch?m$> zM-+a&&dh6t>%eY~W6ZW$Z^#1wX$$iV*g+ouUuYNZ2QC5mGRW5zrnWZCt*x=`D0xC` zVHG8QW6UQn2ORSes%+8Qqp&D6ZCNqxA&sg=_5V_3{PLJVV!J&bZ0~MGSfds|KHj^K zP|S`spgJc0W3}xSVT9i7mZj}l7a>wRAe{`Np(G^pf-_j2Sx zk!%uhu-4hBx4GdPT0jXuO7j8dQNQ-qrD{{|JlG@}oBJU)b` z@3{6QdLs4rqfZoR+qu$xFiS$u=lr*lT^ooSh}nypFsLX) zetfR@xpQy~+lWRl-OK9snEyVg+a~K>Jp@@7kJ@S*y{Nf z5jV0^Rg9n8Z}T40KU=wlvg?sI=t3|s)V0M=FA-2yILi}s8lv^$xbkEN>{ha}EV$4b zEE^(QmEc+=n)wck(VNR9LUJ zgV^Hk#vTf)-zbzBgK_OBeo?Wa8~PoO?4)aR zQdkNNrK@8|QcfcjGa92i-$EQ|K7Dg9H(zM`!)gT#&_;h)TFL?R1$6fO4bN$H*>B-1 zP3u|+si|utY=QB(2^e!CDg3Qt0os{|!c-t%t1Vbgh;HgA4u|gGW(3YzdQQhE`J2hc zc>puh)*%>6af*tuF38*1iu8DwEW_dR!!!y*2n|uVIk6j;nh6{LL>x_cLNs95Bn4PK z)x7uVpt{j_^DBJt0N9}s@#i9hFWw^X5tQD3s@=^s`M`qFME#HSmm4`r&+`H)L%D`u z|DjmHgic1hwC_qSOMhGHG-eYd5iW1c2TXa7?MgnnZT=v<3O-l6^(%k&T3y!^70W%) zqpHNBjTXI;Qv6rBg%;x7ar=%hC$jGU?pED2Sq!CD`CBJ*x@ZHsCs@BL?L8Jo_%~>( z!#Jq-8)Jp&JJvPXK~66AQot?`J44D#qjl7|Ias15hao`$Aa2m|lA@!mPz2~o2rWPI znH9kZYL2G8^xZRT1m0_{xw|xYK(WSTNNg3N%smDZ0L_J2!z`h-$}2DZhfFp6Zn#^A zd%@zIL$EZ6a<^=6x&6NgFC_;LxXh*6+_b~YnywXom*G}X@c$_cz8*5p(cbFOnOw%h z@#0m{T+r_BxK#*7dYr>x(!L{rYrgTOlh-!$Xs!~Qc88o+%NOG=x3vB_`+n1%SUp^x zz&R%*=m%$F_n~;A+9~!V9;=$f%=V+$hqN7Zk#H}khpcD}Y)?HvJ4=;>O0bHlU9+9Q zK%4JvO@0k_1z9)V5}pHT4q?N2Am@v9xCI$c+X?bb6O9XjlRQW;m;chN9u&Y`@*CFO zurWYmryurHol=B#fOjugj`lf>k*MF-UYnP2bGPuMh~%Z+>k)Rwa+*!zowhpvvC95e zs?W&urI;cwX5iUb+m4s~t5iBIt$sA=5vna1_rPn*?r~4<&Sw|fx|~g0LxxxYYg0^& z6jx7vV>h5`R5;x()5HFQX?UZ5Gho*5&DQduL;%kZrY--23#GeN6wPBe&t9ZP#On2q zY{~qbv?)X$vK^=}cuwZ}2K@i{de5*X)2(fI&nP1S6{IU|(9oM8QbHSw3eu%_X;MQG zh;&AzNEeVQU6Ecw2^|y(kpKxIB@l|#AR)9!4d8df?3rUf`+MH!2md&ZT=#XYzRq>7 zHkPUVoTMg#d2m0R;cd{>PrwqoD>>smZ=L# z?nV1(-y&&T?mD*h(Y_8eB24sQ(O^rJrP7NqC#-4}k<4>iJsTo2l}!%TFO}BrZEUoi zC!Ge@c|R5%^}=&GMQ><~NmFrtL*t zH3pg;9e-)!z6#yr|9FwJ+4NK&v8bhKRzHASpzj3W7)TH7u-NGVf!cu5K{mhJTL`VV zM)$f_p*=#Ep*-ti+5tmFJ+~o{-1US_i&y5QFVGhS^;IPZKY>et+GmvQY@nh*qKF34 zIS+G}8OMXg-t8+xW5tDq5n;>kkTsZ|IUyqfWwgQAoae`|_$Z1x5G zVm0?zPvg)9gTts~{r1^E29<*3wjU%O5GC0s+Pf@eKwqN+Ba(b&>pVD)x_{1<-7RCt z7oX$geBjmlUF(v!y^i?nT7gG?!SC?{DhaqQb)^ zIMSLqDGxEen_9F}Mtv)qYCuRU_tybRk?8>4me*Z~-4td9_k9X# zrSPw6i?I*MN;e{#oSPlA^9WxGJ$T>InZMb;vl|}S#IhR5^n08Z@tV~m z!w3t*%gS54HPbB#WPU6U<=Dw;2qxZ@`3zNwl|~hQC)SaMpNMdOWfZj)f6m2@UHq2c zzq)v_^HI~hna}F&Brc1%UkcJyVst-Akh947#7ytK&)2P5Lat=eVS5^-0UBX1<3DN# zNuLKhYdPgM-pLTbVo;Z;r^#V)N;-WH{#zZ1oPaBuUIAS))tb)~RS>gbvwDazHpxpQ zbG+P1^<`&d@Yl?H^_t?uPJnc&TQD_4c?(1+3K8hC;icXm;>B^+3 zcWi{sO5pJ-u*xUo1+** z={bMckD-q41qLcbAmDCbqW{5eTIbczDJW*N);Q|&oAVI$y+~T31K@Tai#?cZ=Gwu9W`m0DHqeaDg9*X zI{ExH05cPwA5?zrNN+kqOD1W4v`bTiqQaSw+kB;gzqH5z{*(1*_s{LpgLtn~(XQ-Z zTS_zk+{bon7Kf)zo8L_5P7I~IMkHy1{v|v|^|9@&oN1#W#}BKMeRabHR(LUwuu0pt zl%1xt192UB_c|~Ca_5T;S~(E%rTC(%IGaf7mVP!$tm;oj8#8pJ4Z{PlKSPJnmTI~; zZS31MGZuu75V(rTC7t)H2|8*D2c;MO)&nG5Vw2+=*l~Oox?lf|K1F|WFLq7s3xShQ%pPS+c%ky zyDAGlOZx%jGlaqd0?vRiK=&vhX)n}(|^~Y z0PFp1WuMOwS;1%jiK9R0G5src3v}e1j?wW&EUY%MZ+NDpi8*nix|YeeTlZZOHYB*d zzOVT-9(tT0xA`jy?%vO`J{!oHXdn38t-mZA?+Y@nI(gjoit9NR^{B3F7f!@2`rFvU-V` zzN!1M=Ts-PigG`_>HKo#{m10)d5Rc6-7ljp6_cC$EQ((`Ug|3s$yM4dA!q#6=CBI^ z*m3+(Jv|PkZ||vu|4Eg1;j(Hh z7(P0h6&YFDNGAr}6O^@I)G5%q=)K0C(0tI5w~?y1l%Y6S>Y$+NI<1vCAKQ6CPidRa0}(6vm0Q z4vS&z?1qzErO>p?-PP8%f$^kp%e`&X1BWV~^AG~)D{TGG&#s(76dEe2C2BJL2;RT$ z7aK^uF=zX*r-_NdXE|^%4rDuOWRf6R3K0%am9YI+wL0IYOx=vMYib<~G?veFen z`OHd4k9-X&X46S~S|Vqu4Qd~HGh$>p~xh{cn`GOTrk1rG99@9 z3rPof?a$jP|MmHAnT>|OrvYpdo5h9lfKhaWeLK0iDlHCTWfByF=B4}E4jX5@l<+c8 zh!hVJVib zrf0h`u;A~$k{&Sm*_XLxWcEx%L;(hwQUlnw1)D==B5KHlck^I-Zf|?dVL{3DKXiNK znSU5@`@%K)3_r&Ip(Y zway{|l~TjQh#C@gzZ}qm`km%zLVT5@!|0}`!(QIgBGXa`AF{fv5>u>M7$O7?P?w2)|sNl{TK3^^&{^iKdG{cbvW znV-;0BS&V~GSZmx$R{`--ZmM`kn>XYZ4v-_HfMt2_so##$L)Vi=Yw-= z^uoDhdIhQom)sa={YGUs?-M-?)}OuE4nmeh5|G<($Pc$(JT=^H`|vs zmJ-p?&Z&wY^6Ccr<;VHB631j<>}zvIE>Xzh3elAvElhY2yfkID(%^C$&nuD)Qk|(V{k^Wk=FUR&|3`HzpZh zzm|sFxz)Y5CcFYI00A$}pU4hMEajf)(6`d+lMVlWUpTqrZK3j?5t!#`zz8I>A<(eQ zL=$EGuGMvl`u0o0>))3oQp~oW%+eIS!=sy_pR&Xr;qNm%WYS}9_;s*EDTAS+S-_Kc z^0cfvl#q7-9h+T=f-V-sAU7|uFG2<>xUS`qBs#Li(c-$p;$Y0m|8@WS+=+#A<+)@t zDUBN%S8rd+<8-0Q3nzVL^@B+R-PV*;KmG`=RNr{V>4&XDF~j$G}{MZ9tCoEbI9O(=?pzA=mFX-%A;IrEUR! zYoZDjxkx9JGpUT)#C6G`a@)?s@geaLso-6A4V&(Qe z;kjpS&aFtY$bY#nEYR~uKU1l@YR(ogt+3g1hN23&|3C%H*&EEWI*mx*aZL5xj>?q~ zHb-lH0MY;kR#jC2!N%oRe;i3N&kRe~v{=|2ntt6i;mT#4$vAT!txKG?lU^dDk zL3mm??G_=@MM2%2QQ+RW%ao*n zxzfd|RSCr}6J!kKw#j_p@H+T zLP5!qf$8ba?CGtq6=?e1Dj>_etq5HoJ0dh!zxTv{htUr|ZY#qCSo(B+h)iEPD`GZd zQU($3A&+lf^KCLVUwpESGLjgIb@UE%mf;w|A8@S7`WijRD4fdD7pi)*GAprClql*(KzUsv zVdwG}1}(og`*3qM%y5wrn*iHjc$B@WL=q^|qq5#!NDEW_O4ySSHJm7MkqDLh8>W%A z5miWTbt`b)lXIlXd&l6XSuOBT1z_(afBNTWfXx+?U`XB6&(>NPFqaI08=4op5MS#> zr)$MK-c7Hg!JDXhOc=8lOA^=RmrTl_dG?6vIy`L=3?PDpkW8Hx3K~QyCv0(`#1u}t zaF5hP_lm<0a!f(j*lzxF4nQQBeeKQ~dTK1camiriX^wzNM;@OM^_53;gQ1Ul!A=Md zDjf;i1$C7LG-E%oP%ltR!$Q==Y|I3|LuCei3FT(kjIeL!?3pV-dVcC79kJw>l4QdB zr7QTuZ1Dh~f;~xw5R-wX_{euZy7q5{oYw?uzj3W~0Ce*|6q3m=HlLe>HfZ+zSdDT%5H+Ir%S$fd3~NT6~ONZ#1jBY<_s_O|NCsA)v5QrXn^6_ zTr;gvq6Q)gm5*mu;q10os%qGA9bk#85U=cC2pi03{jogtfE2~u3>AfO+V4XhG8}z& zU)W|=(Vb)+%_hZDC+2aQWP(gR@T%>L0rz_~|>8w)XR zh)05l&~LcY*rLB}Yu%h2M>yxQW@oTef9e3^yc~)Kk4Q|5NRjI%>?tA}pQNY628u$X zr)Ws1WX3#af%m6|gZ$<{D{GChyr}raQXg8R)J9QOo^Y;moU76`;YFbbf5Wzbh^hk^ z9|cei{-1k3EUp9sQPl@3#mIN@fg5)snIRdij@mw&MaaIUnkb)G{*;cXtmLIk=&?U9 zsy7+$e}X8=ijw(NZ1O&Sw;AZOTOw&9!gY(Xj)v?hhEB_O?;|k9@XJV2OJ!ASPls|c zH9^cP$>cNd>i=8tD9I+k!l->JML!V^4*8ciyz$R-Z|BM?gxe1Dn&d`4ySX}LL*1Vt zZma(EJ~$}SKaQet(fz~T}I-Tw%ApIHJq z$dRp&BH>5E%^(cWeLE%{M(92Q1!;_g3O1i3-)_;;Bxhss=fn~2JCe2a%n~}@V!Vr~ zGGb%*;q(l>^cDN}3>nZRkEdy>p`S|D)*scaqdXLhLnW`9YWs-!iy-nug;$yzoL1B# z*F3@x;YJRH0rlIBi$fjC;_DsoLq~wq^dIn936L8DWV(Q**#8{SP!q(F&*p!OzAB@ zPjsaR+2Vo3$J2)0HA8NEKA0UF@geZ$;dqBZwno>9?0S5F8f9I$& zFF~FR#z*KDQQze=81A-F$&|gOYZIHvy?E-;Nk`-jM^g^$+2Vxtz;Dou_#}UmNM^&_ zk*cREplVdso&&ij6K0DG_2b$LfDWSe;z^9%o5!cLW0v5B8{*;Gv7T-{wTm2Ia~5w|MWF_rH=(o;dCBtxl>(Rz=G&I6J*-b{siE0{>7)@> zBjMuyS2zY5_;||ir3_Bh1k_{(vCISSTHwYyRWl5k%Aa|E56^#k2*P{qneBYqgX^2i z2q$rZ5^GnUbCWe$SWVEpOI@!Sm(~6&Dfu6FA!lW#;ylL-kRj_k0ML|;FwNJDSz0UQyt@>DWpsiA?!A#U)oZTHXJK7cxqDBZrPm-*|^BOeTT*h-Y<-)y=wGk|*& z0Wz^OFs`|Nz+i~<9HOw{!g&Fq_9v&Gu$d4ZG^DUk$W+t#we>YPPG4K{MykHDr$g6z z^pcr>`Ebx_TUh5#Sf_rwK6`Kngs$5IPQ2!srnRdUR#y4Ii!39qV3Je9eaH_=@4Q3K2n8=^QIRa_WDiPq?%jrjK)k%2dI0-wFn&m*dt zIJQg?%aGUxAJJ-h$-a(A16WYG2*5mfEBlrFcKs zMpeR+P+NIYuQVD{)X}Fc(6?TyT z`vI&b^XyDa9BsPi!rT80ScOqvxRrGn(gjs%Y5w zn2cQqqXQ*XG95Kn;vNo1Eom+Av8DB16OI@ps{TG`Y1gQwRhBn==vq%7E0oz^_eiI) z3sIUS%KynzcrwfoIxzm7V;%18y14#Ae>#SA+{JjBRi-T^9f#lMJLUKm(y+@j8a-fi zpo)=$lC4tzddLSiQ$EkUsPPr2%EKBc5f7%nHVi5Gu9_UHy(+&rlj$eC3RYI(@5-V* ze5?W&GuPiR8=fpG>RTex`#o$5U&zpZU~!Duzx0{=5BZiG-rZ?ZDzfGQU8&5vd^#fi z%<{=;$>9?5p(xGlimz!rD*RJ1Xa?xb$*&T)EOkAnu{+{EMnL2soQ0;%FIAUe`Uy` zEKBTF{?v3a7*qH!k&H>IT~NHV$4ndZ8yTua0EGs#GxB`Aiadr!?#*YW*Vk?*4*;q%*E-rFD7J1!lc-3}xxg|G)Ot4o(+ef5 z``XHA1nbP zsY*0`$#MrqF?g>J+94V)_v>-+xA! z%_YxYrLM<_qv6P8P;UAvF_pFBhRsT(Xvq5KBa#Rlsn*Es=3PW*lmxq}oViFO)HxaX zfb5zbBf zuLB&t;9uRz6IgB4h>%SYut}BHt*fPQ`pE}IG5;~H#V}@5U)EAh@M*9i6hZnc#+!-P z@*4CsGMYrY^A-?!JN?5)2#biyPHolYM!d?U=2dn5BT4cb6PP8y<*QB>1}To z%k!E&Hl_EWDk`bCkgW1bdsvXF`4)!)tld^V))=U}1%{-4(pQSKttB^X+3)b0E<5_C zt_(wjDigU)C&i%C$%kdLb1)%~0vAqpL-Ugor3NP?Q?tY3+ij*BUPUeM-bgH~;R4-3 zW0VL_ueiObx(V9af-}?B<*C9gX`SIEg?czU3NiDaxmVgL{CfS;je&Bi&57P0ox(QB< zqeM=v9!E}9h-{CkZ`*ZFZK?iPEJ8?o4oGuF>`o^`#r+a07>mf;L?f>O^-wR0mIU$y z!6WN=!#3U#!ZZMYa`M_OguL*p_gz5N>~Y&i=QYo+7hHlu3-YTe8mIp}^7Mq@>iVDN z4NvUWad0-dr%O8b6WDxcKgH1L-S)uMz1eyq{u>=v?&EJCo`Zh7%=Ty4$x)HlTo>r* z$M+XDok2y;*!*(ZkAYOx;ytvbs|a$R zKEfE594UJa8N*>a^3u>dfcePRDn4Zj3!n1&J;A467Nxg~7UoiwBxN!$N`hyky+BO_ z|A9A!o!1yv)XGj(Sbm(lVyb`CHZ%_i)r$Wx%wWIk_WE`76?Q%iEv@#b->%#Mm)UlQ zMFj1x@s?ROi>-~8zX0Bezs$UW&uz5q`Px|JTZ<;QGT<))&+I4f!|S0gansx}K}$GI z#FB~ZG@3jk*2PBPNAuwFiH88OSy{E>rFPrAf_nhE4Ajj@`AQ>4(U;ikwnr#Maw^xb z#xchFseoczmMkUG{TCY|d#zMGYk7J?{?k=#{_QGkOACF!$;lmf%FNBMC2oU;gjzLit6Q zumVij$I4>zE8OKf;Uw$b$V0v_t<=csmWsT&S#)zU*c=Z^KS2lyXJ`+nn@-m@>_WJK zU2sEqU!(5BPy*qE4evhaFq1`+BwrgL@v-0oo zG*5(GNU4#(f^BTw0*{1A9`oa-TZ8yL7Q8Mob$I*W z0P11>2)YPU+`X15Qd!%WKYq=PTh+IZTb}(^n0$t)$p_=wENdG1Oz2<%QK^k9Aau3O zU~qi<2JK(@9S{;uE3R4t`Q0HOpLOi)J3@Q@o327e#k7OQ* z7#4B(adEi;z>0{OK%_vQPlQ%;TC5(?Koc~$(wi4n2TJb|%M&sEeT|BiwGd!*Xnh3B ze^%Li%@}SgR2oNYQ6s60Wx2NKJ?IG)k*zV+jV0eaZ%l$_47 zoEM=>lrjPOa<{jnru#qR(OG6H;M2Rdde80e+{VNMAJALthmt2*NtU}plwIi+RA`6+ zU(qgrG!3*gp&ai)@eEwGbwoidFA>Kb2lt?SDP|**WN}%KC+&$Mxmr1T=oow0>11FT zp!8E&c@w9(bRVTp@4l7%vWqfw8GuJ)5WG=i-Oh4$j?@1*hva94 zk`&bPtx0W@TJn|y0@%l6W0nK%5@2jRhr8>S#QbaerzTJJl`HfB z<|wCeUk(j{CyPap_?1*qTJ{Dq7NaIc8XCZub2q`sijg(6KXVN7wXAJBPR~lXg@tr% zk~i?M^&}t|`fU9e(}4sQme`A(VXNn$OjMs%V3 zj@z&JEJeP4{sD$z`tmgq2+DDFfu@NLK;Sso4blWvz$~VM@N^XoyV9Oi)5Tre#A-iQ zsVDOsBMLhX(wL5w+&c2`Y|DDCaW=_A5l)^#*)X0qsj(6KoodgY={+_#2EiG8|0WP) zi;cX+KHguKW$6%SWd`!(t$@Sz@W&VPev%fRl_57n;yJ;^zcg-vqZC<%c}yOGZ!4Jg zw=cyq#!2#TFX~oo;ay~a^|vgv6a1t+JiD6Dt(*UZ?$ zeJAqYc+Aa%0sY56vnL`rarOT4(q5C%I&T2>toNcIX-ChVw%u&A23Tl>api>la>ZRU zL#LdW~X_r(pMqx<0QOF#)~2N+1h4&BhXb7Q}4Es;I=G9 z?6DbfyE%V>^z3DFi&J+5YLwmOLJRAHaT)s4T{y-Lxk-guiQrH6HVa~hEU8}C;>=Su zA=`6utVOLi085>sAqk|)^V=g=Jhg`Tb#ntIE{5XDKrU1Di=1EH-HUlGARw#Z|~(g6n#R8~C$@PBfVYiXKoJ1n*zsJxyQWijv2cjZ!KKA!~| z>N~f+! zUeN8jOxcq!ms+1`Ru&B2+h_;gE|_6`x=H?HQeKEmC_e&9APhF!(JFVcik8;t?C_d8j$c?t&?Z)V@Q3VS&U}T=aDluCslo@u!+#B z+Nv1re@rwg5UH)t05-JZ-`~dV#$pWoA$mZSmQWUEudTIgtUHcn!4s_9LSBNWv6Uj= zIW+A<8Mp*HYnxBh7O$1JnC3|9pdJQb?bs{?@^p=NXZ`8--Vyo!n-@C^BOwL{oSSqB z%HA-2(qrPW6pyT&tR|3sV;BT=`9SRa*ZJAylhTsYUZtg^?Ev{Yx2?AE)h4a+46XbZ zw%9Ddg|;NGjooK0MqBNe9U~%qEKBPXeO;3!CR-=B4Y;X=Cpom1Lp^@Rtnp5tN_$vo zbfiy6riU~rF%g=a$*K%B^(!@=u=3$t*4%h$?sLgH+XfSj(lQ;Ed*_F&N;4Ra#pp3E z*Z{MBUQyUMdm(VCiHZL;0kNtdM-tVgY?)!&tl3-5b^~ZiIX z3r4myqKdM1dgjCj))@2N>>v^!=aICy`;1EwO46RlH#k^W-m5=>;X6+<4|rahJAypM z>W^{iYhlV+%mMmsU&POz2mDC?FU4Z_yIO7~L0p;_SXC#Kf^9U+bRDbi>!1?U)l<7f&De!-X^=tXF;9k((X#9+_wfkqX;E-2Upy}^k&ICF7-XiOmH@`Ae(y94s$>on;nGha z%C+RC$fK_`(!|&ycg3V;sPHzzhy5!D+$nw~MSM{NpA~5tX|GB)l98StXx@?LGg?t_ zwDBET0ZJ}_+oV2s0^hGdVqVt-h$}5HK>CgTmQ_wE`9k#zPF1!2G}`T{O(9Cyz#WI)^_;7)^`e72_pzWV9G5 zU3UXOj^Mn&rtN!*;MIi5XXq$^igyry{;VP)8R{xn+T?Uk19}x@fAO#<5`L-W)c(a= z^0VA*@-DF3{U-ve(=~iGdqr8cPi&U;<%Js%dGBPHVT!;$KA0tgUv*{Hjz{SpmE3Pl zhL&~{yADU4K=-m3eWybHRN zN7eyGau=HKJUf5rYavO09Z1aJwhH!8?Oyw{&7=rjDW3BZAO@K3YK8KoG&7C*@<1eOR&X54DS-6T2%P`u2E_H7%D#|BL#I+Vo+GG zKi)N8qX)DYSDuJOw>nObn@jPlX<)MVz1+~kp2VF+*ox2DK~7ud8*cq|8}SsI;mPf; z$jIRjQLm28K=o!RsR4%?>o1q|9-(#Z2;NUg)2-wcJwZ>P+-ZsM_y{CLud=gacZm}Y zLpgWNI)m;;({YDc+J6FNueZ?9PV8a_&^6+{N{Bo(q8eR3<=QR%Ub>1=`aMhm2CS!? zL?CKu)avEz7FpzzQ-{P?NFk%gMpl8Ay3*Keg4Gt$|7-o~Z+vp5g9Vmu&O}wxdWX~L ze;oUTm^yzk`|_ezT`zchf0cf{v@S*6;`hJI;~{gI1Eaw)*_91}bx z52{LrV>o1(=@JSXKD9c;no3HU@dOOBbg61Z^Zi-qXSvO%@T{l*7HF;`(AWMEbh<@C z;^TO=WeniP`Mxb#wm#(rT6;+)TAB9!sl03o0b9`6E0?So^&>>3Q~(WiYER;8=7Uha zCf|8NOn2@SrS0yV>6&@Jc6=gmKOonw5_;P!*_J54w~h>y$I(tLG=I70iO0p;`lIpe ze+XcS4 zsmfnUR*n3GgIH2J7!R|K6KeRp$f06OAwB!Oue4|mHH2EOY@}^s&OiHgp`nG*)%l!5)9C$QG2cL6O;OP7!of|r*Lr(2);ra5%yG2BOAKD!gMsK0B*u<==*}BGD#8|NaPiDm9s7K8zGSUYtkaqy zLJY(b?aYC%-C ztTC~M1ur*+*Er*&hPP?h4QDrn0kkU>K4$Tatrhu$c)a6NG4MB_iR`PADz-hI+o)QT zmDjFHe&`ggTQOKt(2Vmx^A8ODbV~9-0Wb=M_8s3Y4eF~GqY3i7G}&JW>hWEc)B1pe zGpOs<6|?yDznh^Wn`kh1bE-bAVw*>h_ISU+x&hQ>)(nh#oC5XGCTJZmZV!04C+j$I zgZx##1W?{pXz>!NZsq7%9R-5q$T{Iap`3eYaya*9MT74Mwz8_@9_joPg47|fzpN{v zYEf@D!3o%dG<~%`O@%R%fcDLZggfxQ$bAghSg3Ydj=#DS`z-|};h_kBlXqjfPNYu= zvI9$BBc~m)$+}%J-Oz6Tx)5Wxt-x>`2nn83x`77(cp!wRuZ?&4E;N^X-xr07ll`J_ zE5UsOn6g?a5vAY`9UV?XjO3*BNd7+ZWZ5$-7e2i;3B*|93MTmtNy=k)GW-GN9r@3? zzvYD3=nmWk-n&(w>JU-o}L!z~qh_Cb;0s zljND42lt-qivSKt+)}Cr=)9)-jmgzP+z>(TFqGenl}fSs#kwP4{abf(d7rGC=?Vc|1Kb3Fto_AU z+lTAL0>dPI8{12CmjXU0eu}2AQ5pKesl6uY%Ulf5$+99mnfMy`)SSM`h2j+7XN;32 z@R6;KNFhA?0}+l1QgH-@1pLR}UV-1w>_SDeEd;J(dc8F`%LqvHOq`gvJr5#^X zG@mSHXNHrNp_Xk&2jT%(-F>r%Q9-L7JKzkc5Rd0G+Vqd?{Nv6wxGbagEh2L>gGhSKcqZ7>;T>R$c5HV-i3XaQ~(*F>(lC|j$ZK#s#5e(qT5Ozynzmxm*rKkM0%r^^fRKY7QctJ^1?)BP0}+6y=1 zc}l@Nbi4E0>MGA7A^HcL8+6q03r{Y6y;={^V4M%5_anuG_I9M}vhSz#GU$W>HMssE-8u+gOiSRgikGf zNoCcEAW&<8sd+J{>H+{qi{KOjp#B(TOROXzW`%#7kiHfinon?Fy`uAOp z|MR?hdmViL{Ca$$yDiLhQM#|=ok=}Fu0EUL&xOzxzyN4U#2^fjxKQNZ`XhO+wt)!O z29L8S*C2}aZglHwyX1x%VD&H{LTobljaE_pO6IrR23*!k3H1=?$G}XF4GB+z0(?T9 z8gT_Gd}b6<9JdaE$)~@JLIGiEKkxCmsTxs#_4~Cmv(VF*wES-5T;gRPN{X78qzqy z+c1}yn65iC@}8Y+Ev;W^&D-y_VdTN}c`BbDzQVaOPCT_HW96Yy;YMobO`2 zm4VetBYiZ#CL5@7RG3;*TT8*Z69j8uYZs74wW01a^llClTG2-z0C=!oR3D~TmcVT= z*(bN5ltWhp3}d{b_-ac46KtL?KrJ6*Ee4QF6th3)ZkUKbD^1y+2Y^)1v04A6_@38( zBqSsNTdK1QeXlc2Ix-BxZkn@0^<0z{_{UtWm!rn*EPvkl4&$am)(kAtS2V+qhh@zl zjU8&>{2Lx8XvMEY0-gPERz)ckQ-ilsBpTNBYFNQR8z+Y;>HLi*uKVOXEqL_N89*6y zY?%dOAYu7wbI&6D{hn^bhi20Iv8X1-LT)!MMii&L%etrXlV(Hj(Hdi_ZC|84lR&Rt=v`fp)HYP0#=hbMozipio|Jsh)UG#fp(%R()>zQH(zUw z8tX=juUb776IfZqUN3GHVf)&_m*9%QyZ_F-m$SXkdM3UaLI>+9gtTfS=%A$wPG?oz1jWw{dS*0Ly+FZNI4;&tPs?ra#QfTnh!y@JQ)~Wt&YR94go^IE1msdvf&liL}9~mHS$mReh7a#c=hB zF~d za1|^k%RwK!pj3om42z*$u)h?Kdp`Ov_YZ-dIn=pKxg5FRGymk6#Hn?7+(u;`A;<>o zCQ_gk{?dn?foAg(635RtTwdm*dMMSPa*_WFdf32y1JUDKtx=;;SiCsy6 z4z!56Cz&&4R{4t6tz(nvbDdAE_+T|@`hyF$w+4w28j{Svtw#2p4n1L`+9}3crJ^5? z06@%}JGZ4esf0>*k)xrkDd{Kl)DR@^XqJYC>bb~Vy?UwlOk~KB>Ap9M=wWp)IW=tE z0)X@HTMSd}JAsfP;DHSN_K2R{&}|brU|>3L&@tCS;DsZQqF$9 zc7tfS`Qt~kz!ZB9opiz6Jr6j!Dh7-uGtIjH&TB%J9B@Ekm;AYZ$b$Cj$3RG`lVq01{!)KfO0m*PWPR{dF7 z#g=))bXjdj)M&H$>lJk}G9xO_QWb9GqJ--}7NAb2P0Y!&-C`nbMTbu8`}==Y2ZatU z-xw~s5k@xCd1pBM%malXS=K>`Pf#Wv_^u1``|F=Rs$qV)O6Gra*laAY@gw=I>_&c3 zv-qmBH;+7{ny~b}&6?_A-<3a%LTWCsZ2DriFIf*iTgP1kK1%Rh8yyWm5WQ5Cwj9D^ zvVNIG+G{o>4d~1A;#zzhA_fPwfu{L9A911eYNKxm6$O%6b9#ON|b)8WdRG%IGJ&a+-J_;AqPa z3>W+UTS<$jNyNm9q0*kX7GOSY=GnPlIQ&TXYU$M#t4#4>mU>@UoBh%}bYStTb9W5) zF~B0$IoFl=%p$q>b9yD*-&6i|KrICQS}@5TsnjFP?T_-?zpMyrj|kh76eUV z?2j|5@{5>V`YtoohPKo5-VbB@IN7u`nz+L*%1PqP2g$`H{!E;oL- zKbU=oakHkO;o!QEs)}=aEiev}4izzCtuTEP(RbW}mc}TchPng_|5a%N@A@{WO*wES74s5eXE~N45*NWqdo1sR(aT`IO-ya(&JRVT) z-PgL>^O>3AJ*9}RVmykp8triaSSqRgx!|e5;H=ncV6(%-$;0998{YnG@;*Ri2P9E& z$NB30#2ZnQ4bBcTZT_)W7oB(GEr!!THA|+rfG}w4SlaRI^L+qPBaz;u7!Q=nGS}%n zDm!MWns-&}MMtG0nKv8{Hgjo{(xXVSKQD?u?jDpFmt@YB2T0CF{J<&fu!EmZi)1Z@Dhv)*N{n};jB_*#%t z)d$#qNarmTeGl9nrb6e1 zs(Ewk=4A8b7D&R24l3zo|{M zDIRzse9$$EWG&&z3bF&*7ejAZD@$;e6eM))0?RgKE`O{~_np!3n4L8WQFZY8GCeP; z9Ppf|su#uV!`|sVR|Aq_l6<@ShWlB!z5(saL709!O8G> z7XBabt2ZK03{*4M))ee{-|**{4tvd*2F!5C5elb%F^zF@%7gWEQdOE%KhzM}|A>8O z_<>(9Klk9KATl@4bd=jikeXxZ)z%S!jLQ?{k2hb3z24u((|{Veo6Wu;eEM6UZ?mjp zoMM}8b)%WLj)$+jz$p-N>)@|m68Rhktfl}!JsMrA${HAE#>3jt>Qe6BvjQUedz|OI zOc#|3AQJ%>l8@_YZqTjAh`I9WpMIZv`-o72YlPAPi@c*Zsz94(wjXyPV81E+3J+^|BtP=j*7DD;)V^nl#oGE8l{^dr39qJq8kCFVd#>f zq)X`-8kO#D80i5N28PZ-nn60=3-9~+p7&Yr_tz}e8qS=3cK^=a`)~^IKkf=UN}jR@ z-#b5|@7#D*=)|^3Ne5S>K6IQ-#Gf-Yeu6t$ z>cDVzfvXLxFQXrRuneXn$$f2FL+gxBq>Ow|S(^_!LOG0@1oeohLce%o`Q9Vh$qdfS zZ!{ZgRb&W)!{Nq58$7ow71(cHYx3)=ssXwq=0d@~Hu3EA3Ek+2y$`he z>0?XY0HU^FXW4Qm5<$bkWo-TS-#=tgc6g@cjKu5emM*Qa`)@r{GRMV#B=>Vw z!b!9C@(p}84gGNGyM-{n$4rp=Wep{K_( zqwptks=l9*W8>}5O92(O#qg<0I&*&`;KD2=>EkAw1*Y*~aI9mfnRKJmY;ypZe|>BY zMm6rFc;mia-ai@4A>0^J^&?7tIiSfjGi*%8I#b|Fc{b8@k?BCWnJ7IWE5E0+q+~!_ zJHEy<`)R&;7E7~voTAOMFf8Dm{JsGox6}Gtjo?k0o!T^cb0y}BvnZTo5r;2nEIy%s z>eHTvl4mIzmz&5g(ft8xK-er=Y$i+b1J;|+=|Mj1*PADwA~cm@tTlb*OLTh1c^{HK zw7gcXv`aDHg}*++klAHfI57Y{uZp7hoa@b|LH4waa^_r+-2DLs(aaZfbCGgLn$N~0 z9W-BB0-WBLfqS={{(;^Zd@M(U(Fzb|KcW*itXXNBORKzVwdxTOsmU$O5L|kbixE__ z2fPd^VOyw$$l{nI8cEy>;?^f7uh@(XjNW`K2eG(YYCwQJKgc zho4kYbswU7P_DhX9xY)WymkW8)t51HmX&+9T{#_ZOX zmn{YN=XXU~6cI6W5~*TF8eDD@A;g>H{_REbp(J4>DRTQLmx~rbVZeEW?dw%JT_gWVc(Akdfm-v<7pDxTZ>9-%Ld{0XG3#fTY1Qo`aXocldCgE_|C z`1@;&Lk{Q?bA1ZGoHSSE4t#hG`K)TZh1D{pF1rrKh&>KZSC-sq@jhmm6W&Eum@f_F zeAh1H5s;nqyJ*hm%Q3hwcm5bHjU1M-G)0~AqlT6KY`JqzQxoBD5u8a3?VZPG?EQpCzs%T&eC6>t zODOeN8@Kn^8Q<|}g=jXvs0A5uOycq;?gl13IqVvEaK8K{{O;a|RauXcev@V+SG>6* z5ekR54AG)Ck&bdQWDdV*0|3eBMv+Whu4VM%%dRUd0>|Lez3;eG4{i|K5O@9kdIh>O z@ZF43#t7;5w)G)1BV*m>xn~@g<>u?RG6m4f5=qqe!TcDkw4yC|a2_f~7oYuum3gC9 zQ87&jt5Ct|FPluql*kLL*}2a?5SPmB_}OB}(APnmXw~av<~WJfnQyE0`zYfX3e0_q zKZwRS<&~?@5unk)bJ0oqGqlyZhpqW-BWwS!-B5z}cMo1jmt24SV(?oztSqnP*ON`&n#b;TZpP;z${Jfi@EIjqu z8mWRy%>B=|DYR2O8HQEUlB_v*;I9(_ltvWayJ`T65}Xb`ykSm^nlZ!di{^a)85 zU+y%UY}?{rRVm8i-BJ;4=h_^ntd;FP)UeXDYE@^i(VUwp<=M%-TV!mnCsXeS)Ni#d zVt|GLBaifZ`7np+X6%ech*F|NG+<7aKJZMI8o8|6)OXH59RXhC3A-4&bk?`03EMX8 zRjlLgv@=q^sK^2Gf9LLy47ct+6HKCAh4bp~?i&UPqL1YeVOYm*c=+A|1dTG$DR$Zj z^VbqQtW%8~HR?I_^U)X$Po7uV5i|YuQKu(z_6{Wdn{10+6_^1=h|50yulGF8k6+G4 z+D58g_gV~uKhFI9tjFtGk||Cim~1$vF6j5CFOYEWB6WZW|3w$Be~74qS!Fbwg5=9s z6DRFY?_)Ajt0`*`%yqsF)b6zik~hr4eFoph_>v- zTrVIp`}><0Y0>3OrImXFN4*LcGzsOdM|$KyWePJ{!>be0q!$Kz84&!lQ_reEJD@P} zk}&JtU(4b116zudamD+1r)z9=fR2-FfOR0zG=|1!XWi$>vskBwAR>uJz1+HwjLWz| zVDvF9aQ)_HKDxxJQ}5vfJtYL0rKLT!8p&{l`cVy~!>auH;(t*|Lta8FatqD7LWb;} zw_Or!+R`BUZEt1k%xnfkEL9%Vp`m*>4>Y`Kesp5@W+GTwEbDbyWsu$&x2>9|Od^4C zH#i2lF2V-f;VgPgHSeKLFi+p{Y-2yUpovx#rEddpjAqjl*Y38*`_lxoFgbqj3!oqB z<4d4vh|JS*5%VuE0D+pRez+~+*0WJOUjMt+b#H;O*s$)3&1Rz1CD8AFQkj89`pMa# zTCq`;NXNHdHs$tRAqs_i%-r6`+wlH3-z$J}KdhUwF`miAtyuX|Olpm7;Nw@8W=la+ zXq2~_+^{zU*b$+j#H6mfJi=EFTAaMp_uFo;7h|(KiK?HU=(SS=WpcaFKQ5?@nyUN_ z-laIkF#0fBP4#-jokET7^Mg)*g(8|4#*AQBQ3a2XX>q}#nHEm7pFQkOMIWzi3l}!~ zlf?a)RHrypUg-!K5x#1n5+}`g3Dp?=48xRVkb?s=|9HKf4}&FKuo#YrGn`rpcmP8( z>1xLXMD69$4mHG9akwg41{zk@c#WMm?>k7v3qAthg)pLsDV;LD2dEJpO}U79uWhNz zGVq(-DNxG{J;fw8Y5Sg&@8*nTRCTM@+Zji|ToA&H@;YIM=Ha0SB8j$AGMU9&@XJPv z?Op7~qJ(VeV{>=%A#$Dwg5gz*eN>0cn)1r#+VhfreDL}RPsnd(K;nqAz<|UZAPCP? z*gyItr5hg(y5*E~EWq_nJe_Obt!KHgm&vLT73){ZPl=Gatmg*EY}fX&j_fZi%7dZO zK6flNjDuDOCQRmmscKX**LB3bvlaQFT?+u4w><5n{k{nZ=Dt-KUE|7q8SL9h#-=kMyY!E`AJe&p8Y zLG?7g_x-Qc(j{4Cd-M8q+Dro_;KkiaRxb(8QU|-SBB1oZ@`|{t>AR`(KF5+*P*s+L zr*gPAbMxuf<+;)9Gwl^VgLH&#Tb>CSO^!e9cA=XmF6$!=0ww_*?d07FB5qxHJ3Z%bo^ghwsNJP4;uXXdsSF2hs17g>POBbU{U?1)%XC&u;cVKY%o1YA`&g;U|3KXFL_!k8>F7Qt7Ah_YG ze_U&rIS!ZhpR!sp276iebF1}(D)hxK$_oGMfS~58agT%ZSuA9e!@RoA!~(sP7uUXE zl=snAk3H@@5DosmxbuXa1lxBshc#Kk>fzZTeU!A6lIhbnC!LlLhC3rzK&u+SH;Diy z4aTH&_A6)W3mxDr+vRW0GAZ;K;!-04#vtRzG|GSRu*c~kIeBD8Y~06+EyAg=jtn7J z>fY$ASd+-Wcl6g&RqN%JvtE(Z5<6_n@W`Iu!Zu`WPvznYVP!fE0!}{ZV(CvWICDZt z=pb<4NBJ<9mj%CXT3=4h;n&Tc7vLV{mBj!O7TH1?EyUy0BX@*@HbO;~Wwsv}rIdN^ zhz0obbP7XQikVUwWN?9Zt&W<*$piZmq}_LlQ6krPB-rOVOS4WIw@O{s2B*5gzKi2185dFQWg7k9+@ANt#1HcwUzGN7LGrU?KMMjav^S`FkPI z3sk6HffS1P8;r4LNjg2va6Y|2Y~NzT`4!e61tJz7-F0_)xks3N_KEPCk5nd5XM)X%a+-Y+`;sNr2YjvG%E>CS@QYJOo3v_GHm zv!mCmW^XZcheXjh1TbiV{jUtnUWnSwrJwvD)UEToE7JG}jF!CTcjYtG=qjq);%2v` zZKRPd8F$hwj_rG}k^<->=YEm`JgVOod|>H{Vd zaLvRgF5z!)Sa(srX-tctIq9e)SET`@?)ctc^RUQ27YD;E(*WJEz;(1=!3+srMWEu= z(`gdKQ*vVI(V&F}tzK5NU;%G;W&U?VTbbUNtgy$g*37n3iM0?w7``G>|1AwiT7yushOWet8j74hsN}W#+A+%VabO?buVNy+nX*dn2K)5 zIO2)B?Swcj7nn@{Jk_aoR5W`TMKAn7(27g>f_0PwXiQ^q-W98RZ@!ev^Z9U7V?vjt zCIV>uVfd@mGZnDinFc{*@{B4_o%kEFWO$fTwPw=)^Py;p&^tZ3cDR*V=gQY{a(tyc(*Xj9ZRi$du2FVsA>GhSL67NLyPa5WAN;+x7uH~xe^oK z>4v`wv#~^bw{O=ZPneC;tO42(IWx@ybss&f94(GJ^d{S z8C#4JroJbJu`OAbTk8$GH4~TK6GrD#G!qVl#fruiLfDGl{fM~

93+3o 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-3.png b/src/.vuepress/public/img/odbc-3.png new file mode 100644 index 0000000000000000000000000000000000000000..c3fd427e7d0818848aa63401acea169fa1d32f8d GIT binary patch literal 164831 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 Iu#Wiu0KK@Z@c;k- literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-4-en.png b/src/.vuepress/public/img/odbc-4-en.png new file mode 100644 index 0000000000000000000000000000000000000000..71ca0462d8811f00bb83f0e2d0004ee3223ad952 GIT binary patch literal 134908 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 M8anF8o93_nAJc0@CjbBd literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-4.png b/src/.vuepress/public/img/odbc-4.png new file mode 100644 index 0000000000000000000000000000000000000000..69c442da3aea053971d86bd46e4bb7019f4a19df GIT binary patch literal 161576 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 YnZ85DLF0;Q%L8tu781g13t_(;@bw>z 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 z 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/odbc-5.png b/src/.vuepress/public/img/odbc-5.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1a8ffa608c5572c29d6e6b88cf6fba75cc99f7 GIT binary patch literal 134293 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µ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 dqo#iL)zM=~22_cgg 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 O^Hkxve7US?(EkN>KE>q# literal 0 HcmV?d00001 diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/en-Table.ts b/src/.vuepress/sidebar_timecho/V2.0.x/en-Table.ts index 083726d5b..a5684c0c8 100644 --- a/src/.vuepress/sidebar_timecho/V2.0.x/en-Table.ts +++ b/src/.vuepress/sidebar_timecho/V2.0.x/en-Table.ts @@ -202,6 +202,7 @@ export const enSidebar = { { text: 'GO Native API', link: 'Programming-Go-Native-API_timecho' }, { text: 'C# Native API', link: 'Programming-CSharp-Native-API_timecho' }, { text: 'JDBC', link: 'Programming-JDBC_timecho' }, + { text: 'ODBC', link: 'Programming-ODBC_timecho' }, { text: 'MQTT Protocol', link: 'Programming-MQTT' }, { text: 'RESTAPI V1 ', link: 'RestAPI-V1' }, ], diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts b/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts index af45bacfb..f1a99b2f2 100644 --- a/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts +++ b/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts @@ -222,6 +222,7 @@ export const enSidebar = { { text: 'Node.js Native API', link: 'Programming-NodeJS-Native-API' }, { text: 'Rust Native API', link: 'Programming-Rust-Native-API' }, { text: 'JDBC', link: 'Programming-JDBC_timecho' }, + { text: 'ODBC', link: 'Programming-ODBC_timecho' }, { text: 'MQTT Protocol', link: 'Programming-MQTT' }, { text: 'OPC UA Protocol', link: 'Programming-OPC-UA_timecho' }, { text: 'OPC DA Protocol', link: 'Programming-OPC-DA_timecho' }, diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Table.ts b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Table.ts index 6485ccdd5..2cc60984e 100644 --- a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Table.ts +++ b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Table.ts @@ -193,6 +193,7 @@ export const zhSidebar = { { text: 'GO原生接口', link: 'Programming-Go-Native-API_timecho' }, { text: 'C#原生接口', link: 'Programming-CSharp-Native-API_timecho' }, { text: 'JDBC', link: 'Programming-JDBC_timecho' }, + { text: 'ODBC', link: 'Programming-ODBC_timecho' }, { text: 'MQTT协议', link: 'Programming-MQTT' }, { text: 'RESTAPI V1 ', link: 'RestServiceV1' }, ], diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts index f2ed46887..afdf4bf12 100644 --- a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts +++ b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts @@ -204,6 +204,7 @@ export const zhSidebar = { { text: 'Node.js原生接口', link: 'Programming-NodeJS-Native-API' }, { text: 'Rust', link: 'Programming-Rust-Native-API' }, { text: 'JDBC', link: 'Programming-JDBC_timecho' }, + { text: 'ODBC', link: 'Programming-ODBC_timecho' }, { text: 'MQTT协议', link: 'Programming-MQTT' }, { text: 'OPC UA协议', link: 'Programming-OPC-UA_timecho' }, { text: 'OPC DA协议', link: 'Programming-OPC-DA_timecho' }, diff --git a/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md b/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..37da2439e --- /dev/null +++ b/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md @@ -0,0 +1,1049 @@ + + +# ODBC + +## 1. Feature Introduction +The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. + +## 2. Usage Method +It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. + +### 2.1 Environment Requirements +Only the ODBC Driver Manager dependency at the operating system level is required; no compilation environment configuration is needed: + +| **Operating System** | **Requirements and Installation Method** | +| :--- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11, Server 2016/2019/2022**: Comes with ODBC Driver Manager version 17/18 built-in; no extra installation needed.
2. **Windows 8.1/Server 2012 R2**: Requires manual installation of the corresponding version of the ODBC Driver Manager. | + +### 2.2 Installation Steps +1. Contact the Tianmou team to obtain the pre-compiled binary package. + Binary package directory structure: + ```Plain + ├── bin/ + │ ├── apache_iotdb_odbc.dll + │ └── install_driver.exe + ├── install.bat + └── registry.bat + ``` +2. Open a command line tool (CMD/PowerShell) with **Administrator privileges** and run the following command: (You can replace the path with any absolute path) + ```Bash + install.bat "C:\Program Files\Apache IoTDB ODBC Driver" + ``` + The script automatically completes the following operations: + * Creates the installation directory (if it does not exist). + * Copies `bin\apache_iotdb_odbc.dll` to the specified installation directory. + * Calls `install_driver.exe` to register the driver to the system via the ODBC standard API (`SQLInstallDriverEx`). +3. Verify installation: Open "ODBC Data Source Administrator". If you can see `Apache IoTDB ODBC Driver` in the "Drivers" tab, the registration was successful. + ![](/img/odbc-1-en.png) + +### 2.3 Uninstallation Steps +1. Open Command Prompt as Administrator and `cd` into the project root directory. +2. Run the uninstallation script: + ```Bash + uninstall.bat + ``` + The script will call `install_driver.exe` to unregister the driver from the system via the ODBC standard API (`SQLRemoveDriver`). The DLL files in the installation directory will not be automatically deleted; please delete them manually if cleanup is required. + +### 2.4 Connection Configuration +After installing the driver, you need to configure a Data Source Name (DSN) to allow applications to connect to the database using the DSN name. The IoTDB ODBC driver supports two methods for configuring connection parameters: via Data Source and via Connection String. + +#### 2.4.1 Configuring Data Source +**Configure via ODBC Data Source Administrator** +1. Open "ODBC Data Source Administrator", switch to the "User DSN" tab, and click the "Add" button. + ![](/img/odbc-2-en.png) +2. Select "Apache IoTDB ODBC Driver" from the pop-up driver list and click "Finish". + ![](/img/odbc-3-en.png) +3. The data source configuration dialog will appear. Fill in the connection parameters and click OK: + ![](/img/odbc-4-en.png) + The meaning of each field in the dialog box is as follows: + + | **Area** | **Field** | **Description** | + | :--- | :--- | :--- | + | Data Source | DSN Name | Data Source Name; applications refer to this data source by this name. | + | Data Source | Description | Data Source description (optional). | + | Connection | Server | IoTDB server IP address, default 127.0.0.1. | + | Connection | Port | IoTDB Session API port, default 6667. | + | Connection | User | Username, default root. | + | Connection | Password | Password, default root. | + | Options | Table Model | Check to use Table Model; uncheck to use Tree Model. | + | Options | Database | Database name. Only available in Table Model mode; grayed out in Tree Model. | + | Options | Log Level | Log level (0-4): 0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE. | + | Options | Session Timeout | Session timeout time (milliseconds); 0 means no timeout. Note: The server-side `queryTimeoutThreshold` defaults to 60000ms; exceeding this value requires modifying server configuration. | + | Options | Batch Size | Number of rows fetched per batch, default 1000. Setting to 0 resets to the default value. | + +4. After filling in the details, you can click the "Test Connection" button to test the connection. Testing will attempt to connect to the IoTDB server using the current parameters and execute a `SHOW VERSION` query. If successful, the server version information will be displayed; if failed, the specific error reason will be shown. +5. Once parameters are confirmed correct, click "OK" to save. The data source will appear in the "User DSN" list, as shown in the example below with the name "123". + ![](/img/odbc-5-en.png) + To modify the configuration of an existing data source, select it in the list and click the "Configure" button to edit again. + +#### 2.4.2 Connection String +The connection string format is **semicolon-separated key-value pairs**, for example: +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2 +``` +Specific field attributes are introduced in the table below: + +| **Field Name** | **Description** | **Optional Values** | **Default Value** | +| :--- | :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| DSN | Data Source Name | Custom data source name | - | +| uid | Database username | Any string | root | +| pwd | Database password | Any string | root | +| server | IoTDB server address | IP address | 127.0.0.1 | +| port | IoTDB server port | Port number | 6667 | +| database | Database name (only effective in Table Model mode) | Any string | Empty string | +| loglevel | Log level | Integer value (0-4) | 4 (LOG_LEVEL_TRACE) | +| isTableModel / tablemodel | Whether to enable Table Model mode | Boolean type, supports multiple representations:
1. 0, false, no, off: set to false;
2. 1, true, yes, on: set to true;
3. Other values default to true. | true | +| sessiontimeoutms | Session timeout time (milliseconds) | 64-bit integer, defaults to `LLONG_MAX`; setting to `0` will be replaced with `LLONG_MAX`. Note: The server has a timeout setting: `private long queryTimeoutThreshold = 60000;` this item needs to be modified to get a timeout time exceeding 60 seconds. | LLONG_MAX | +| batchsize | Batch size for fetching data each time | 64-bit integer, defaults to `1000`; setting to `0` will be replaced with `1000` | 1000 | + +Notes: +* Field names are case-insensitive (automatically converted to lowercase for comparison). +* Connection string format is semicolon-separated key-value pairs, e.g., `Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2`. +* For boolean fields (`isTableModel`), multiple representation methods are supported. +* All fields are optional; if not specified, default values are used. +* Unsupported fields will be ignored and a warning logged, but will not affect the connection. +* The default server interface port 6667 is the default port used by IoTDB's C++ Session interface. This ODBC driver uses the C++ Session interface to transfer data with IoTDB. If the C++ Session interface on the IoTDB server uses a non-default port, corresponding changes must be made in the ODBC connection string. + +#### 2.4.3 Relationship between Data Source Configuration and Connection String +Configurations saved in the ODBC Data Source Administrator are written into the system's ODBC data source configuration as key-value pairs (corresponding to the registry `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI` under Windows). When an application uses `SQLConnect` or specifies `DSN=DataSourceName` in the connection string, the driver reads these parameters from the system configuration. + +**The priority of the connection string is higher than the configuration saved in the DSN.** Specific rules are as follows: +1. If the connection string contains `DSN=xxx` and does not contain `DRIVER=...`, the driver first loads all parameters of that DSN from the system configuration as base values. +2. Then, parameters explicitly specified in the connection string will override parameters with the same name in the DSN. +3. If the connection string contains `DRIVER=...`, no DSN parameters will be read from the system configuration; it will rely entirely on the connection string. + +For example: If the DSN is configured with `Server=192.168.1.100` and `Port=6667`, but the connection string is `DSN=MyDSN;Server=127.0.0.1`, then the actual connection will use `Server=127.0.0.1` (overridden by connection string) and `Port=6667` (from DSN). + +### 2.5 Logging +Log output during driver runtime is divided into "Driver Self-Logs" and "ODBC Manager Tracing Logs". Note the impact of log levels on performance. + +#### 2.5.1 Driver Self-Logs +* Output location: `apache_iotdb_odbc.log` in the user's home directory. +* Log level: Configured via the `loglevel` parameter in the connection string (0-4; higher levels produce more detailed output). +* Performance impact: High log levels will significantly reduce driver performance; recommended for debugging only. + +#### 2.5.2 ODBC Manager Tracing Logs +* How to enable: Open "ODBC Data Source Administrator" → "Tracing" → "Start Tracing Now". +* Precautions: Enabling this will greatly reduce driver performance; use only for troubleshooting. + +## 3. Interface Support + +### 3.1 Method List +The driver's support status for standard ODBC APIs is as follows: + +| ODBC/Setup API | Function Function | Parameter List | Parameter Description | +|:------------------|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| SQLAllocHandle | Allocate ODBC Handle | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) | HandleType: Type of handle to allocate (ENV/DBC/STMT/DESC);
InputHandle: Parent context handle;
OutputHandle: Pointer to the returned new handle. | +| SQLBindCol | Bind column to result buffer | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
ColumnNumber: Column number;
TargetType: C data type;
TargetValue: Data buffer;BufferLength: Buffer length;
StrLen_or_Ind: Returns data length or NULL indicator. | +| SQLColAttribute | Get column attribute information | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) | StatementHandle: Statement handle;
ColumnNumber: Column number;
FieldIdentifier: Attribute ID;
CharacterAttribute: Character attribute output;
BufferLength: Buffer length;
StringLength: Returned length;
NumericAttribute: Numeric attribute output. | +| SQLColumns | Query table column information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/Table/ColumnName: Query object names;

NameLength*: Corresponding name lengths. | +| SQLConnect | Establish database connection | (SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: Connection handle;
ServerName: Data source name;
UserName: Username;
Authentication: Password;
NameLength*: String lengths. | +| SQLDescribeCol | Describe columns in result set | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) | StatementHandle: Statement handle;
ColumnNumber: Column number;
ColumnName: Column name output;
BufferLength: Buffer length;
NameLength: Returned column name length;
DataType: SQL type;
ColumnSize: Column size;
DecimalDigits: Decimal digits;
Nullable: Whether nullable. | +| SQLDisconnect | Disconnect database connection | (SQLHDBC ConnectionHandle) | ConnectionHandle: Connection handle. | +| SQLDriverConnect | Establish connection using connection string | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR *InConnectionString, SQLSMALLINT StringLength1, SQLCHAR *OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: Connection handle;
WindowHandle: Window handle;InConnectionString: Input connection string;
StringLength1: Input length;
OutConnectionString: Output connection string;
BufferLength: Output buffer;
StringLength2: Returned length;
DriverCompletion: Connection prompt method. | +| SQLEndTran | Commit or rollback transaction | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: Handle type;
Handle: Connection or environment handle;
CompletionType: Commit or rollback transaction. | +| SQLExecDirect | Execute SQL statement directly | (SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) | StatementHandle: Statement handle;
StatementText: SQL text;TextLength: SQL length. | +| SQLFetch | Fetch next row in result set | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLFreeHandle | Free ODBC handle | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: Handle type;
Handle: Handle to free. | +| SQLFreeStmt | Free statement-related resources | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: Statement handle;
Option: Free option (close cursor/reset parameters, etc.). | +| SQLGetConnectAttr | Get connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Returned attribute value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetData | Get result data | (SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
Col_or_Param_Num: Column number;
TargetType: C type;
TargetValue: Data buffer;
BufferLength: Buffer size;
StrLen_or_Ind: Returned length or NULL flag. | +| SQLGetDiagField | Get diagnostic field | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
DiagIdentifier: Diagnostic field ID;
DiagInfo: Output info;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetDiagRec | Get diagnostic record | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
Sqlstate: SQL state code;
NativeError: Native error code;
MessageText: Error message;
BufferLength: Buffer;
TextLength: Returned length. | +| SQLGetInfo | Get database information | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | ConnectionHandle: Connection handle;
InfoType: Information type;
InfoValue: Return value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetStmtAttr | Get statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Return value;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetTypeInfo | Get data type information | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: Statement handle;
DataType: SQL data type. | +| SQLMoreResults | Get more result sets | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLNumResultCols | Get number of columns in result set | (SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) | StatementHandle: Statement handle;
ColumnCount: Returned column count. | +| SQLRowCount | Get number of affected rows | (SQLHSTMT StatementHandle, SQLLEN *RowCount) | StatementHandle: Statement handle;
RowCount: Returned number of affected rows. | +| SQLSetConnectAttr | Set connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Attribute value length. | +| SQLSetEnvAttr | Set environment attribute | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: Environment handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLSetStmtAttr | Set statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLTables | Query table information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/TableName: Table names;
TableType: Table type;
NameLength*: Corresponding lengths. | + +### 3.2 Data Type Conversion +The mapping relationship between IoTDB data types and standard ODBC data types is as follows: + +| **IoTDB Data Type** | **ODBC Data Type** | +| :--- | :--- | +| BOOLEAN | SQL_BIT | +| INT32 | SQL_INTEGER | +| INT64 | SQL_BIGINT | +| FLOAT | SQL_REAL | +| DOUBLE | SQL_DOUBLE | +| TEXT | SQL_VARCHAR | +| STRING | SQL_VARCHAR | +| BLOB | SQL_LONGVARBINARY | +| TIMESTAMP | SQL_BIGINT | +| DATE | SQL_DATE | + +## 4. Operation Examples +This chapter mainly introduces full-type operation examples for **C#**, **Python**, **C++**, **PowerBI**, and **Excel**, covering core operations such as data query, insertion, and deletion. + +### 4.1 C# Example + +```C# +Here is the C# code with all comments and string literals translated into English: + +```csharp +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console.WriteLine function. +This is an issue with the ConsoleTable package. +*****/ + +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +///

Executes a SELECT query and outputs the results of fulltable in table format +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "select * from fulltable"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + + // Output header row + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + + // Output content rows + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"Database error: {ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"Unknown error occurred: {ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var database = "test"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};Database={database};loglevel=4"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + Console.WriteLine($"Successfully opened connection. database name = {dbConnection.Driver}"); + + Execute(dbConnection, "CREATE DATABASE IF NOT EXISTS test"); + Execute(dbConnection, "use test"); + Console.WriteLine("use test Execute complete. Begin to setup fulltable."); + + Execute(dbConnection, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + + string[] insertStatements = new string[] + { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine("fulltable setup complete. Begin to query."); + + Query(dbConnection); // Execute query and output results +} +``` + +### 4.2 Python Example +1. To access ODBC via Python, install the `pyodbc` package: + ```Plain + pip install pyodbc + ``` +2. Full Code: + + +```Python +Here is the complete Python code with all comments and string literals translated into English: + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python example +Use pyodbc to connect to the IoTDB ODBC driver and perform operations such as query and insert. +For reference, see examples/cpp-example/test.cpp and examples/BasicTest/BasicTest/Program.cs +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """Executes non-query SQL statements (such as USE, CREATE, INSERT, DELETE, etc.)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + # INSERT/UPDATE/DELETE require commit; session commands such as USE do not. + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """Executes a SELECT query and outputs the results in table format""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + # Get column names (if the name contains '.', take the last segment, consistent with C++/C# samples). + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + # Fetch data rows + rows = cursor.fetchall() + + # Simple table output + col_widths = [max(len(str(col)), 4) for col in columns] + for i, row in enumerate(rows): + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print data rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + database = "test" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"Database={database};loglevel=4" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + execute(conn, "CREATE DATABASE IF NOT EXISTS test") + execute(conn, "use test") + print("use test Execute complete. Begin to setup fulltable.") + + # Create the fulltable table and insert test data + execute( + conn, + "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, " + "int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, " + "double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, " + "blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) " + "WITH (TTL=315360000000)", + ) + insert_statements = [ + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print("fulltable setup complete. Begin to query.") + query(conn, "select * from fulltable") + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + + +### 4.3 C++ Example + + +```C++ +Here is the complete C++ code with all comments and string literals translated into English: + +```cpp +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// Error handling function (core functionality preserved) +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// Simplified table output - displays basic data only +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + // Print header row + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // Print separator line + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // Print data rows + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// Executes a SELECT query and outputs the results of fulltable in table format +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + // Allocate statement handle + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + // Execute query + const std::string sqlQuery = "select * from fulltable"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // Get column count + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + // If no columns, return directly + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // Get column names and type information + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Fetch data for every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + // Allocate statement handle + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + // Execute command + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + // Free statement handle + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + // 1. Initialize ODBC environment + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + // 2. Establish connection + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + // Connection string + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + std::string database = "test"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";Database=" + database + ";loglevel=4"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + // Get driver name + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + // 3. Execute operations + Execute(hDbc, "CREATE DATABASE IF NOT EXISTS test"); + Execute(hDbc, "use test"); + std::cout << "use test Execute complete. Begin to setup fulltable." << std::endl; + + // Create fulltable table and insert test data + Execute(hDbc, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + const char* insertStatements[] = { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "fulltable setup complete. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + // 4. Clean up resources + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + // Exception cleanup + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI Example +1. Open PowerBI Desktop and create a new project. +2. Click "Home" → "Get Data" → "More..." → "ODBC" → Click the "Connect" button. +3. Data Source Selection: In the pop-up window, select "Data Source Name (DSN)" and choose `Apache IoTDB DSN` from the dropdown. +4. Advanced Configuration: + * Click "Advanced options" and fill in the configuration in the "Connection string" input box (example): + ```Plain + server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 + ``` + * Notes: + * The `dsn` item is optional; filling it in or not does not affect the connection. + * `loglevel` ranges from 0-4: Level 0 (ERROR) has the least logs, Level 4 (TRACE) has the most detailed logs; set as needed. + * `server`/`database`/`dsn`/`loglevel` are case-insensitive (e.g., can be written as `Server/DATABASE`). + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Authentication: Enter the username (default `root`) and password (default `root`), then click "Connect". +6. Data Loading: Select the table to be called in the interface (e.g., fulltable/table1) , and then click "Load" to view the data. + +### 4.5 Excel Example +1. Open Excel and create a blank workbook. +2. Click the "Data" tab → "From Other Sources" → "From Data Connection Wizard". +3. Data Source Selection: Select "ODBC DSN" → Next → Select `Apache IoTDB DSN` → Next. +4. Connection Configuration: + * The input process for connection string, username, and password is exactly the same as in PowerBI. Reference format for connection string: + ```Plain + server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 + ``` + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Table Selection: Choose the database and table you wish to access (e.g., fulltable), then click Next. +6. Save Connection: Customize settings for the data connection file name, connection description, etc., then click "Finish". +7. Import Data: Select the location to import the data into the worksheet (e.g., cell A1 of "Existing Worksheet"), click "OK" to complete data loading. \ No newline at end of file diff --git a/src/UserGuide/Master/Tree/API/Programming-ODBC.md b/src/UserGuide/Master/Tree/API/Programming-ODBC.md deleted file mode 100644 index 0d5bf67f1..000000000 --- a/src/UserGuide/Master/Tree/API/Programming-ODBC.md +++ /dev/null @@ -1,146 +0,0 @@ - - -# ODBC -With IoTDB JDBC, IoTDB can be accessed using the ODBC-JDBC bridge. - -## 1. Dependencies -* IoTDB-JDBC's jar-with-dependency package -* ODBC-JDBC bridge (e.g. ZappySys JDBC Bridge) - -## 2. Deployment -### 2.1 Preparing JDBC package -Download the source code of IoTDB, and execute the following command in root directory: -```shell -mvn clean package -pl iotdb-client/jdbc -am -DskipTests -P get-jar-with-dependencies -``` -Then, you can see the output `iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar` under `iotdb-client/jdbc/target` directory. - -### 2.2 Preparing ODBC-JDBC Bridge -*Note: Here we only provide one kind of ODBC-JDBC bridge as the instance. Readers can use other ODBC-JDBC bridges to access IoTDB with the IOTDB-JDBC.* -1. **Download Zappy-Sys ODBC-JDBC Bridge**: - Enter the https://zappysys.com/products/odbc-powerpack/odbc-jdbc-bridge-driver/ website, and click "download". - - ![ZappySys_website.jpg](/img/ZappySys_website.jpg) - -2. **Prepare IoTDB**: Set up IoTDB cluster, and write a row of data arbitrarily. - ```sql - IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true) - ``` - -3. **Deploy and Test the Bridge**: - 1. Open ODBC Data Sources(32/64 bit), depending on the bits of Windows. One possible position is `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools`. - - ![ODBC_ADD_EN.jpg](/img/ODBC_ADD_EN.jpg) - - 2. Click on "add" and select ZappySys JDBC Bridge. - - ![ODBC_CREATE_EN.jpg](/img/ODBC_CREATE_EN.jpg) - - 3. Fill in the following settings: - - | Property | Content | Example | - |---------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| - | Connection String | jdbc:iotdb://\:\/ | jdbc:iotdb://127.0.0.1:6667/ | - | Driver Class | org.apache.iotdb.jdbc.IoTDBDriver | org.apache.iotdb.jdbc.IoTDBDriver | - | JDBC driver file(s) | The path of IoTDB JDBC jar-with-dependencies | C:\Users\13361\Documents\GitHub\iotdb\iotdb-client\jdbc\target\iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar | - | User name | IoTDB's user name | root | - | User password | IoTDB's password | root | - - ![ODBC_CONNECTION.png](/img/ODBC_CONNECTION.png) - - 4. Click on "Test Connection" button, and a "Test Connection: SUCCESSFUL" should appear. - - ![ODBC_CONFIG_EN.jpg](/img/ODBC_CONFIG_EN.jpg) - - 5. Click the "Preview" button above, and replace the original query text with `select * from root.**`, then click "Preview Data", and the query result should correctly. - - ![ODBC_TEST.jpg](/img/ODBC_TEST.jpg) - -4. **Operate IoTDB's data with ODBC**: After correct deployment, you can use Microsoft's ODBC library to operate IoTDB's data. Here's an example written in C#: - ```C# - using System.Data.Odbc; - - // Get a connection - var dbConnection = new OdbcConnection("DSN=ZappySys JDBC Bridge"); - dbConnection.Open(); - - // Execute the write commands to prepare data - var dbCommand = dbConnection.CreateCommand(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s1) values(1715670861634, 1)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s2) values(1715670861634, true)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s3) values(1715670861634, 3.1)"; - dbCommand.ExecuteNonQuery(); - - // Execute the read command - dbCommand.CommandText = "SELECT * FROM root.Keller.Flur.Energieversorgung"; - var dbReader = dbCommand.ExecuteReader(); - - // Write the output header - var fCount = dbReader.FieldCount; - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fName = dbReader.GetName(i); - Console.Write(fName + ":"); - } - Console.WriteLine(); - - // Output the content - while (dbReader.Read()) - { - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fieldType = dbReader.GetFieldType(i); - switch (fieldType.Name) - { - case "DateTime": - var dateTime = dbReader.GetInt64(i); - Console.Write(dateTime + ":"); - break; - case "Double": - if (dbReader.IsDBNull(i)) - { - Console.Write("null:"); - } - else - { - var fValue = dbReader.GetDouble(i); - Console.Write(fValue + ":"); - } - break; - default: - Console.Write(fieldType.Name + ":"); - break; - } - } - Console.WriteLine(); - } - - // Shut down gracefully - dbReader.Close(); - dbCommand.Dispose(); - dbConnection.Close(); - ``` - This program can write data into IoTDB, and query the data we have just written. diff --git a/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md b/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..60bdd3174 --- /dev/null +++ b/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md @@ -0,0 +1,992 @@ + + +# ODBC + +## 1. Feature Introduction +The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. + +## 2. Usage Method +It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. + +### 2.1 Environment Requirements +Only the ODBC Driver Manager dependency at the operating system level is required; no compilation environment configuration is needed: + +| **Operating System** | **Requirements and Installation Method** | +| :--- | :--- | +| Windows | 1. **Windows 10/11, Server 2016/2019/2022**: Comes with ODBC Driver Manager version 17/18 built-in; no extra installation needed.2. **Windows 8.1/Server 2012 R2**: Requires manual installation of the corresponding version of the ODBC Driver Manager. | + +### 2.2 Installation Steps +1. Contact the Tianmou team to obtain the pre-compiled binary package. + Binary package directory structure: + ```Plain + ├── bin/ + │ ├── apache_iotdb_odbc.dll + │ └── install_driver.exe + ├── install.bat + └── registry.bat + ``` +2. Open a command line tool (CMD/PowerShell) with **Administrator privileges** and run the following command: (You can replace the path with any absolute path) + ```Bash + install.bat "C:\Program Files\Apache IoTDB ODBC Driver" + ``` + The script automatically completes the following operations: + * Creates the installation directory (if it does not exist). + * Copies `bin\apache_iotdb_odbc.dll` to the specified installation directory. + * Calls `install_driver.exe` to register the driver to the system via the ODBC standard API (`SQLInstallDriverEx`). +3. Verify installation: Open "ODBC Data Source Administrator". If you can see `Apache IoTDB ODBC Driver` in the "Drivers" tab, the registration was successful. + ![](/img/odbc-1-en.png) + +### 2.3 Uninstallation Steps +1. Open Command Prompt as Administrator and `cd` into the project root directory. +2. Run the uninstallation script: + ```Bash + uninstall.bat + ``` + The script will call `install_driver.exe` to unregister the driver from the system via the ODBC standard API (`SQLRemoveDriver`). The DLL files in the installation directory will not be automatically deleted; please delete them manually if cleanup is required. + +### 2.4 Connection Configuration +After installing the driver, you need to configure a Data Source Name (DSN) to allow applications to connect to the database using the DSN name. The IoTDB ODBC driver supports two methods for configuring connection parameters: via Data Source and via Connection String. + +#### 2.4.1 Configuring Data Source +**Configure via ODBC Data Source Administrator** +1. Open "ODBC Data Source Administrator", switch to the "User DSN" tab, and click the "Add" button. + ![](/img/odbc-2-en.png) +2. Select "Apache IoTDB ODBC Driver" from the pop-up driver list and click "Finish". + ![](/img/odbc-3-en.png) +3. The data source configuration dialog will appear. Fill in the connection parameters and click OK: + ![](/img/odbc-4-en.png) + The meaning of each field in the dialog box is as follows: + + | **Area** | **Field** | **Description** | + | :--- | :--- | :--- | + | Data Source | DSN Name | Data Source Name; applications refer to this data source by this name. | + | Data Source | Description | Data Source description (optional). | + | Connection | Server | IoTDB server IP address, default 127.0.0.1. | + | Connection | Port | IoTDB Session API port, default 6667. | + | Connection | User | Username, default root. | + | Connection | Password | Password, default root. | + | Options | Table Model | Check to use Table Model; uncheck to use Tree Model. | + | Options | Database | Database name. Only available in Table Model mode; grayed out in Tree Model. | + | Options | Log Level | Log level (0-4): 0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE. | + | Options | Session Timeout | Session timeout time (milliseconds); 0 means no timeout. Note: The server-side `queryTimeoutThreshold` defaults to 60000ms; exceeding this value requires modifying server configuration. | + | Options | Batch Size | Number of rows fetched per batch, default 1000. Setting to 0 resets to the default value. | + +4. After filling in the details, you can click the "Test Connection" button to test the connection. Testing will attempt to connect to the IoTDB server using the current parameters and execute a `SHOW VERSION` query. If successful, the server version information will be displayed; if failed, the specific error reason will be shown. +5. Once parameters are confirmed correct, click "OK" to save. The data source will appear in the "User DSN" list, as shown in the example below with the name "123". + ![](/img/odbc-5-en.png) + To modify the configuration of an existing data source, select it in the list and click the "Configure" button to edit again. + +#### 2.4.2 Connection String +The connection string format is **semicolon-separated key-value pairs**, for example: +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2 +``` +Specific field attributes are introduced in the table below: + +| **Field Name** | **Description** | **Optional Values** | **Default Value** | +| :--- | :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| DSN | Data Source Name | Custom data source name | - | +| uid | Database username | Any string | root | +| pwd | Database password | Any string | root | +| server | IoTDB server address | IP address | 127.0.0.1 | +| port | IoTDB server port | Port number | 6667 | +| database | Database name (only effective in Table Model mode) | Any string | Empty string | +| loglevel | Log level | Integer value (0-4) | 4 (LOG_LEVEL_TRACE) | +| isTableModel / tablemodel | Whether to enable Table Model mode | Boolean type, supports multiple representations:
1. 0, false, no, off: set to false;
2. 1, true, yes, on: set to true;
3. Other values default to true. | true | +| sessiontimeoutms | Session timeout time (milliseconds) | 64-bit integer, defaults to `LLONG_MAX`; setting to `0` will be replaced with `LLONG_MAX`. Note: The server has a timeout setting: `private long queryTimeoutThreshold = 60000;` this item needs to be modified to get a timeout time exceeding 60 seconds. | LLONG_MAX | +| batchsize | Batch size for fetching data each time | 64-bit integer, defaults to `1000`; setting to `0` will be replaced with `1000` | 1000 | + +Notes: +* Field names are case-insensitive (automatically converted to lowercase for comparison). +* Connection string format is semicolon-separated key-value pairs, e.g., `Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2`. +* For boolean fields (`isTableModel`), multiple representation methods are supported. +* All fields are optional; if not specified, default values are used. +* Unsupported fields will be ignored and a warning logged, but will not affect the connection. +* The default server interface port 6667 is the default port used by IoTDB's C++ Session interface. This ODBC driver uses the C++ Session interface to transfer data with IoTDB. If the C++ Session interface on the IoTDB server uses a non-default port, corresponding changes must be made in the ODBC connection string. + +#### 2.4.3 Relationship between Data Source Configuration and Connection String +Configurations saved in the ODBC Data Source Administrator are written into the system's ODBC data source configuration as key-value pairs (corresponding to the registry `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI` under Windows). When an application uses `SQLConnect` or specifies `DSN=DataSourceName` in the connection string, the driver reads these parameters from the system configuration. + +**The priority of the connection string is higher than the configuration saved in the DSN.** Specific rules are as follows: +1. If the connection string contains `DSN=xxx` and does not contain `DRIVER=...`, the driver first loads all parameters of that DSN from the system configuration as base values. +2. Then, parameters explicitly specified in the connection string will override parameters with the same name in the DSN. +3. If the connection string contains `DRIVER=...`, no DSN parameters will be read from the system configuration; it will rely entirely on the connection string. + +For example: If the DSN is configured with `Server=192.168.1.100` and `Port=6667`, but the connection string is `DSN=MyDSN;Server=127.0.0.1`, then the actual connection will use `Server=127.0.0.1` (overridden by connection string) and `Port=6667` (from DSN). + +### 2.5 Logging +Log output during driver runtime is divided into "Driver Self-Logs" and "ODBC Manager Tracing Logs". Note the impact of log levels on performance. + +#### 2.5.1 Driver Self-Logs +* Output location: `apache_iotdb_odbc.log` in the user's home directory. +* Log level: Configured via the `loglevel` parameter in the connection string (0-4; higher levels produce more detailed output). +* Performance impact: High log levels will significantly reduce driver performance; recommended for debugging only. + +#### 2.5.2 ODBC Manager Tracing Logs +* How to enable: Open "ODBC Data Source Administrator" → "Tracing" → "Start Tracing Now". +* Precautions: Enabling this will greatly reduce driver performance; use only for troubleshooting. + +## 3. Interface Support + +### 3.1 Method List +The driver's support status for standard ODBC APIs is as follows: + +| ODBC/Setup API | Function Function | Parameter List | Parameter Description | +|:------------------|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| SQLAllocHandle | Allocate ODBC Handle | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) | HandleType: Type of handle to allocate (ENV/DBC/STMT/DESC);
InputHandle: Parent context handle;
OutputHandle: Pointer to the returned new handle. | +| SQLBindCol | Bind column to result buffer | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
ColumnNumber: Column number;
TargetType: C data type;
TargetValue: Data buffer;BufferLength: Buffer length;
StrLen_or_Ind: Returns data length or NULL indicator. | +| SQLColAttribute | Get column attribute information | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) | StatementHandle: Statement handle;
ColumnNumber: Column number;
FieldIdentifier: Attribute ID;
CharacterAttribute: Character attribute output;
BufferLength: Buffer length;
StringLength: Returned length;
NumericAttribute: Numeric attribute output. | +| SQLColumns | Query table column information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/Table/ColumnName: Query object names;

NameLength*: Corresponding name lengths. | +| SQLConnect | Establish database connection | (SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: Connection handle;
ServerName: Data source name;
UserName: Username;
Authentication: Password;
NameLength*: String lengths. | +| SQLDescribeCol | Describe columns in result set | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) | StatementHandle: Statement handle;
ColumnNumber: Column number;
ColumnName: Column name output;
BufferLength: Buffer length;
NameLength: Returned column name length;
DataType: SQL type;
ColumnSize: Column size;
DecimalDigits: Decimal digits;
Nullable: Whether nullable. | +| SQLDisconnect | Disconnect database connection | (SQLHDBC ConnectionHandle) | ConnectionHandle: Connection handle. | +| SQLDriverConnect | Establish connection using connection string | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR *InConnectionString, SQLSMALLINT StringLength1, SQLCHAR *OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: Connection handle;
WindowHandle: Window handle;InConnectionString: Input connection string;
StringLength1: Input length;
OutConnectionString: Output connection string;
BufferLength: Output buffer;
StringLength2: Returned length;
DriverCompletion: Connection prompt method. | +| SQLEndTran | Commit or rollback transaction | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: Handle type;
Handle: Connection or environment handle;
CompletionType: Commit or rollback transaction. | +| SQLExecDirect | Execute SQL statement directly | (SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) | StatementHandle: Statement handle;
StatementText: SQL text;TextLength: SQL length. | +| SQLFetch | Fetch next row in result set | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLFreeHandle | Free ODBC handle | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: Handle type;
Handle: Handle to free. | +| SQLFreeStmt | Free statement-related resources | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: Statement handle;
Option: Free option (close cursor/reset parameters, etc.). | +| SQLGetConnectAttr | Get connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Returned attribute value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetData | Get result data | (SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
Col_or_Param_Num: Column number;
TargetType: C type;
TargetValue: Data buffer;
BufferLength: Buffer size;
StrLen_or_Ind: Returned length or NULL flag. | +| SQLGetDiagField | Get diagnostic field | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
DiagIdentifier: Diagnostic field ID;
DiagInfo: Output info;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetDiagRec | Get diagnostic record | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
Sqlstate: SQL state code;
NativeError: Native error code;
MessageText: Error message;
BufferLength: Buffer;
TextLength: Returned length. | +| SQLGetInfo | Get database information | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | ConnectionHandle: Connection handle;
InfoType: Information type;
InfoValue: Return value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetStmtAttr | Get statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Return value;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetTypeInfo | Get data type information | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: Statement handle;
DataType: SQL data type. | +| SQLMoreResults | Get more result sets | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLNumResultCols | Get number of columns in result set | (SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) | StatementHandle: Statement handle;
ColumnCount: Returned column count. | +| SQLRowCount | Get number of affected rows | (SQLHSTMT StatementHandle, SQLLEN *RowCount) | StatementHandle: Statement handle;
RowCount: Returned number of affected rows. | +| SQLSetConnectAttr | Set connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Attribute value length. | +| SQLSetEnvAttr | Set environment attribute | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: Environment handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLSetStmtAttr | Set statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLTables | Query table information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/TableName: Table names;
TableType: Table type;
NameLength*: Corresponding lengths. | + +### 3.2 Data Type Conversion +The mapping relationship between IoTDB data types and standard ODBC data types is as follows: + +| **IoTDB Data Type** | **ODBC Data Type** | +| :--- | :--- | +| BOOLEAN | SQL_BIT | +| INT32 | SQL_INTEGER | +| INT64 | SQL_BIGINT | +| FLOAT | SQL_REAL | +| DOUBLE | SQL_DOUBLE | +| TEXT | SQL_VARCHAR | +| STRING | SQL_VARCHAR | +| BLOB | SQL_LONGVARBINARY | +| TIMESTAMP | SQL_BIGINT | +| DATE | SQL_DATE | + +## 4. Operation Examples +This chapter mainly introduces full-type operation examples for **C#**, **Python**, **C++**, **PowerBI**, and **Excel**, covering core operations such as data query, insertion, and deletion. + +### 4.1 C# Example + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console.WriteLine function. +This is an issue with the ConsoleTable package. +*****/ + +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// Executes a SELECT query and outputs the results of root.full.fulldevice in table format +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + + // Output header row + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + + // Output content rows + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"Database error: {ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"Unknown error occurred: {ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};loglevel=4;istablemodel=0"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + + string[] insertStatements = new string[] + { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')" + }; + + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine($"[DEBUG] Inserted {insertStatements.Length} rows. Begin to query."); + + Query(dbConnection); // Execute query and output results +} +``` + + +### 4.2 Python Example +1. To access ODBC via Python, install the `pyodbc` package: + ```Plain + pip install pyodbc + ``` +2. Full Code: + + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python Example - Tree Model +Uses pyodbc to connect to the IoTDB ODBC driver, using istablemodel=0 for Tree Model. +Functionality references examples/BasicTest/TreeTest/TreeTest.cs and examples/cpp-example/TreeTest.cpp. +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """Executes a SELECT query and outputs the results of root.full.fulldevice in table format""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + rows = cursor.fetchall() + + # Calculate column widths + col_widths = [max(len(str(col)), 4) for col in columns] + for row in rows: + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"loglevel=4;istablemodel=0" + ) + + print("Start") + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + insert_statements = [ + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600001, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + ] + + for insert_sql in insert_statements: + execute(conn, insert_sql) + + print(f"[DEBUG] Inserted {len(insert_statements)} rows. Begin to query.") + + query_sql = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000" + query(conn, query_sql) + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + + +### 4.3 C++ Example + + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// Helper function to check ODBC errors +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// Helper function to print a simple table +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// Executes a SELECT query and outputs the results of root.full.fulldevice in table format +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + const std::string sqlQuery = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Fetch data for every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";loglevel=4;istablemodel=0"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + const char* insertStatements[] = { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "[DEBUG] Inserted 20 rows. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI Example +1. Open PowerBI Desktop and create a new project. +2. Click "Home" → "Get Data" → "More..." → "ODBC" → Click the "Connect" button. +3. Data Source Selection: In the pop-up window, select "Data Source Name (DSN)" and choose `Apache IoTDB DSN` from the dropdown. +4. Advanced Configuration: + * Click "Advanced options" and fill in the configuration in the "Connection string" input box (example): + ```Plain + server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 + ``` + * Notes: + * The `dsn` item is optional; filling it in or not does not affect the connection. + * `loglevel` ranges from 0-4: Level 0 (ERROR) has the least logs, Level 4 (TRACE) has the most detailed logs; set as needed. + * `server`/`dsn`/`loglevel` are case-insensitive (e.g., can be written as `Server`). + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Authentication: Enter the username (default `root`) and password (default `root`), then click "Connect". +6. Data Loading: Click "Load" to view the data. + +### 4.5 Excel Example +1. Open Excel and create a blank workbook. +2. Click the "Data" tab → "From Other Sources" → "From Data Connection Wizard". +3. Data Source Selection: Select "ODBC DSN" → Next → Select `Apache IoTDB DSN` → Next. +4. Connection Configuration: + * The input process for connection string, username, and password is exactly the same as in PowerBI. Reference format for connection string: + ```Plain + server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 + ``` + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Save Connection: Customize settings for the data connection file name, connection description, etc., then click "Finish". +6. Import Data: Select the location to import the data into the worksheet (e.g., cell A1 of "Existing Worksheet"), click "OK" to complete data loading. \ No newline at end of file diff --git a/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md b/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..37da2439e --- /dev/null +++ b/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md @@ -0,0 +1,1049 @@ + + +# ODBC + +## 1. Feature Introduction +The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. + +## 2. Usage Method +It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. + +### 2.1 Environment Requirements +Only the ODBC Driver Manager dependency at the operating system level is required; no compilation environment configuration is needed: + +| **Operating System** | **Requirements and Installation Method** | +| :--- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11, Server 2016/2019/2022**: Comes with ODBC Driver Manager version 17/18 built-in; no extra installation needed.
2. **Windows 8.1/Server 2012 R2**: Requires manual installation of the corresponding version of the ODBC Driver Manager. | + +### 2.2 Installation Steps +1. Contact the Tianmou team to obtain the pre-compiled binary package. + Binary package directory structure: + ```Plain + ├── bin/ + │ ├── apache_iotdb_odbc.dll + │ └── install_driver.exe + ├── install.bat + └── registry.bat + ``` +2. Open a command line tool (CMD/PowerShell) with **Administrator privileges** and run the following command: (You can replace the path with any absolute path) + ```Bash + install.bat "C:\Program Files\Apache IoTDB ODBC Driver" + ``` + The script automatically completes the following operations: + * Creates the installation directory (if it does not exist). + * Copies `bin\apache_iotdb_odbc.dll` to the specified installation directory. + * Calls `install_driver.exe` to register the driver to the system via the ODBC standard API (`SQLInstallDriverEx`). +3. Verify installation: Open "ODBC Data Source Administrator". If you can see `Apache IoTDB ODBC Driver` in the "Drivers" tab, the registration was successful. + ![](/img/odbc-1-en.png) + +### 2.3 Uninstallation Steps +1. Open Command Prompt as Administrator and `cd` into the project root directory. +2. Run the uninstallation script: + ```Bash + uninstall.bat + ``` + The script will call `install_driver.exe` to unregister the driver from the system via the ODBC standard API (`SQLRemoveDriver`). The DLL files in the installation directory will not be automatically deleted; please delete them manually if cleanup is required. + +### 2.4 Connection Configuration +After installing the driver, you need to configure a Data Source Name (DSN) to allow applications to connect to the database using the DSN name. The IoTDB ODBC driver supports two methods for configuring connection parameters: via Data Source and via Connection String. + +#### 2.4.1 Configuring Data Source +**Configure via ODBC Data Source Administrator** +1. Open "ODBC Data Source Administrator", switch to the "User DSN" tab, and click the "Add" button. + ![](/img/odbc-2-en.png) +2. Select "Apache IoTDB ODBC Driver" from the pop-up driver list and click "Finish". + ![](/img/odbc-3-en.png) +3. The data source configuration dialog will appear. Fill in the connection parameters and click OK: + ![](/img/odbc-4-en.png) + The meaning of each field in the dialog box is as follows: + + | **Area** | **Field** | **Description** | + | :--- | :--- | :--- | + | Data Source | DSN Name | Data Source Name; applications refer to this data source by this name. | + | Data Source | Description | Data Source description (optional). | + | Connection | Server | IoTDB server IP address, default 127.0.0.1. | + | Connection | Port | IoTDB Session API port, default 6667. | + | Connection | User | Username, default root. | + | Connection | Password | Password, default root. | + | Options | Table Model | Check to use Table Model; uncheck to use Tree Model. | + | Options | Database | Database name. Only available in Table Model mode; grayed out in Tree Model. | + | Options | Log Level | Log level (0-4): 0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE. | + | Options | Session Timeout | Session timeout time (milliseconds); 0 means no timeout. Note: The server-side `queryTimeoutThreshold` defaults to 60000ms; exceeding this value requires modifying server configuration. | + | Options | Batch Size | Number of rows fetched per batch, default 1000. Setting to 0 resets to the default value. | + +4. After filling in the details, you can click the "Test Connection" button to test the connection. Testing will attempt to connect to the IoTDB server using the current parameters and execute a `SHOW VERSION` query. If successful, the server version information will be displayed; if failed, the specific error reason will be shown. +5. Once parameters are confirmed correct, click "OK" to save. The data source will appear in the "User DSN" list, as shown in the example below with the name "123". + ![](/img/odbc-5-en.png) + To modify the configuration of an existing data source, select it in the list and click the "Configure" button to edit again. + +#### 2.4.2 Connection String +The connection string format is **semicolon-separated key-value pairs**, for example: +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2 +``` +Specific field attributes are introduced in the table below: + +| **Field Name** | **Description** | **Optional Values** | **Default Value** | +| :--- | :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| DSN | Data Source Name | Custom data source name | - | +| uid | Database username | Any string | root | +| pwd | Database password | Any string | root | +| server | IoTDB server address | IP address | 127.0.0.1 | +| port | IoTDB server port | Port number | 6667 | +| database | Database name (only effective in Table Model mode) | Any string | Empty string | +| loglevel | Log level | Integer value (0-4) | 4 (LOG_LEVEL_TRACE) | +| isTableModel / tablemodel | Whether to enable Table Model mode | Boolean type, supports multiple representations:
1. 0, false, no, off: set to false;
2. 1, true, yes, on: set to true;
3. Other values default to true. | true | +| sessiontimeoutms | Session timeout time (milliseconds) | 64-bit integer, defaults to `LLONG_MAX`; setting to `0` will be replaced with `LLONG_MAX`. Note: The server has a timeout setting: `private long queryTimeoutThreshold = 60000;` this item needs to be modified to get a timeout time exceeding 60 seconds. | LLONG_MAX | +| batchsize | Batch size for fetching data each time | 64-bit integer, defaults to `1000`; setting to `0` will be replaced with `1000` | 1000 | + +Notes: +* Field names are case-insensitive (automatically converted to lowercase for comparison). +* Connection string format is semicolon-separated key-value pairs, e.g., `Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2`. +* For boolean fields (`isTableModel`), multiple representation methods are supported. +* All fields are optional; if not specified, default values are used. +* Unsupported fields will be ignored and a warning logged, but will not affect the connection. +* The default server interface port 6667 is the default port used by IoTDB's C++ Session interface. This ODBC driver uses the C++ Session interface to transfer data with IoTDB. If the C++ Session interface on the IoTDB server uses a non-default port, corresponding changes must be made in the ODBC connection string. + +#### 2.4.3 Relationship between Data Source Configuration and Connection String +Configurations saved in the ODBC Data Source Administrator are written into the system's ODBC data source configuration as key-value pairs (corresponding to the registry `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI` under Windows). When an application uses `SQLConnect` or specifies `DSN=DataSourceName` in the connection string, the driver reads these parameters from the system configuration. + +**The priority of the connection string is higher than the configuration saved in the DSN.** Specific rules are as follows: +1. If the connection string contains `DSN=xxx` and does not contain `DRIVER=...`, the driver first loads all parameters of that DSN from the system configuration as base values. +2. Then, parameters explicitly specified in the connection string will override parameters with the same name in the DSN. +3. If the connection string contains `DRIVER=...`, no DSN parameters will be read from the system configuration; it will rely entirely on the connection string. + +For example: If the DSN is configured with `Server=192.168.1.100` and `Port=6667`, but the connection string is `DSN=MyDSN;Server=127.0.0.1`, then the actual connection will use `Server=127.0.0.1` (overridden by connection string) and `Port=6667` (from DSN). + +### 2.5 Logging +Log output during driver runtime is divided into "Driver Self-Logs" and "ODBC Manager Tracing Logs". Note the impact of log levels on performance. + +#### 2.5.1 Driver Self-Logs +* Output location: `apache_iotdb_odbc.log` in the user's home directory. +* Log level: Configured via the `loglevel` parameter in the connection string (0-4; higher levels produce more detailed output). +* Performance impact: High log levels will significantly reduce driver performance; recommended for debugging only. + +#### 2.5.2 ODBC Manager Tracing Logs +* How to enable: Open "ODBC Data Source Administrator" → "Tracing" → "Start Tracing Now". +* Precautions: Enabling this will greatly reduce driver performance; use only for troubleshooting. + +## 3. Interface Support + +### 3.1 Method List +The driver's support status for standard ODBC APIs is as follows: + +| ODBC/Setup API | Function Function | Parameter List | Parameter Description | +|:------------------|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| SQLAllocHandle | Allocate ODBC Handle | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) | HandleType: Type of handle to allocate (ENV/DBC/STMT/DESC);
InputHandle: Parent context handle;
OutputHandle: Pointer to the returned new handle. | +| SQLBindCol | Bind column to result buffer | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
ColumnNumber: Column number;
TargetType: C data type;
TargetValue: Data buffer;BufferLength: Buffer length;
StrLen_or_Ind: Returns data length or NULL indicator. | +| SQLColAttribute | Get column attribute information | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) | StatementHandle: Statement handle;
ColumnNumber: Column number;
FieldIdentifier: Attribute ID;
CharacterAttribute: Character attribute output;
BufferLength: Buffer length;
StringLength: Returned length;
NumericAttribute: Numeric attribute output. | +| SQLColumns | Query table column information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/Table/ColumnName: Query object names;

NameLength*: Corresponding name lengths. | +| SQLConnect | Establish database connection | (SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: Connection handle;
ServerName: Data source name;
UserName: Username;
Authentication: Password;
NameLength*: String lengths. | +| SQLDescribeCol | Describe columns in result set | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) | StatementHandle: Statement handle;
ColumnNumber: Column number;
ColumnName: Column name output;
BufferLength: Buffer length;
NameLength: Returned column name length;
DataType: SQL type;
ColumnSize: Column size;
DecimalDigits: Decimal digits;
Nullable: Whether nullable. | +| SQLDisconnect | Disconnect database connection | (SQLHDBC ConnectionHandle) | ConnectionHandle: Connection handle. | +| SQLDriverConnect | Establish connection using connection string | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR *InConnectionString, SQLSMALLINT StringLength1, SQLCHAR *OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: Connection handle;
WindowHandle: Window handle;InConnectionString: Input connection string;
StringLength1: Input length;
OutConnectionString: Output connection string;
BufferLength: Output buffer;
StringLength2: Returned length;
DriverCompletion: Connection prompt method. | +| SQLEndTran | Commit or rollback transaction | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: Handle type;
Handle: Connection or environment handle;
CompletionType: Commit or rollback transaction. | +| SQLExecDirect | Execute SQL statement directly | (SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) | StatementHandle: Statement handle;
StatementText: SQL text;TextLength: SQL length. | +| SQLFetch | Fetch next row in result set | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLFreeHandle | Free ODBC handle | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: Handle type;
Handle: Handle to free. | +| SQLFreeStmt | Free statement-related resources | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: Statement handle;
Option: Free option (close cursor/reset parameters, etc.). | +| SQLGetConnectAttr | Get connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Returned attribute value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetData | Get result data | (SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
Col_or_Param_Num: Column number;
TargetType: C type;
TargetValue: Data buffer;
BufferLength: Buffer size;
StrLen_or_Ind: Returned length or NULL flag. | +| SQLGetDiagField | Get diagnostic field | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
DiagIdentifier: Diagnostic field ID;
DiagInfo: Output info;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetDiagRec | Get diagnostic record | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
Sqlstate: SQL state code;
NativeError: Native error code;
MessageText: Error message;
BufferLength: Buffer;
TextLength: Returned length. | +| SQLGetInfo | Get database information | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | ConnectionHandle: Connection handle;
InfoType: Information type;
InfoValue: Return value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetStmtAttr | Get statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Return value;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetTypeInfo | Get data type information | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: Statement handle;
DataType: SQL data type. | +| SQLMoreResults | Get more result sets | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLNumResultCols | Get number of columns in result set | (SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) | StatementHandle: Statement handle;
ColumnCount: Returned column count. | +| SQLRowCount | Get number of affected rows | (SQLHSTMT StatementHandle, SQLLEN *RowCount) | StatementHandle: Statement handle;
RowCount: Returned number of affected rows. | +| SQLSetConnectAttr | Set connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Attribute value length. | +| SQLSetEnvAttr | Set environment attribute | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: Environment handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLSetStmtAttr | Set statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLTables | Query table information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/TableName: Table names;
TableType: Table type;
NameLength*: Corresponding lengths. | + +### 3.2 Data Type Conversion +The mapping relationship between IoTDB data types and standard ODBC data types is as follows: + +| **IoTDB Data Type** | **ODBC Data Type** | +| :--- | :--- | +| BOOLEAN | SQL_BIT | +| INT32 | SQL_INTEGER | +| INT64 | SQL_BIGINT | +| FLOAT | SQL_REAL | +| DOUBLE | SQL_DOUBLE | +| TEXT | SQL_VARCHAR | +| STRING | SQL_VARCHAR | +| BLOB | SQL_LONGVARBINARY | +| TIMESTAMP | SQL_BIGINT | +| DATE | SQL_DATE | + +## 4. Operation Examples +This chapter mainly introduces full-type operation examples for **C#**, **Python**, **C++**, **PowerBI**, and **Excel**, covering core operations such as data query, insertion, and deletion. + +### 4.1 C# Example + +```C# +Here is the C# code with all comments and string literals translated into English: + +```csharp +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console.WriteLine function. +This is an issue with the ConsoleTable package. +*****/ + +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// Executes a SELECT query and outputs the results of fulltable in table format +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "select * from fulltable"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + + // Output header row + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + + // Output content rows + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"Database error: {ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"Unknown error occurred: {ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var database = "test"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};Database={database};loglevel=4"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + Console.WriteLine($"Successfully opened connection. database name = {dbConnection.Driver}"); + + Execute(dbConnection, "CREATE DATABASE IF NOT EXISTS test"); + Execute(dbConnection, "use test"); + Console.WriteLine("use test Execute complete. Begin to setup fulltable."); + + Execute(dbConnection, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + + string[] insertStatements = new string[] + { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine("fulltable setup complete. Begin to query."); + + Query(dbConnection); // Execute query and output results +} +``` + +### 4.2 Python Example +1. To access ODBC via Python, install the `pyodbc` package: + ```Plain + pip install pyodbc + ``` +2. Full Code: + + +```Python +Here is the complete Python code with all comments and string literals translated into English: + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python example +Use pyodbc to connect to the IoTDB ODBC driver and perform operations such as query and insert. +For reference, see examples/cpp-example/test.cpp and examples/BasicTest/BasicTest/Program.cs +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """Executes non-query SQL statements (such as USE, CREATE, INSERT, DELETE, etc.)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + # INSERT/UPDATE/DELETE require commit; session commands such as USE do not. + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """Executes a SELECT query and outputs the results in table format""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + # Get column names (if the name contains '.', take the last segment, consistent with C++/C# samples). + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + # Fetch data rows + rows = cursor.fetchall() + + # Simple table output + col_widths = [max(len(str(col)), 4) for col in columns] + for i, row in enumerate(rows): + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print data rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + database = "test" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"Database={database};loglevel=4" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + execute(conn, "CREATE DATABASE IF NOT EXISTS test") + execute(conn, "use test") + print("use test Execute complete. Begin to setup fulltable.") + + # Create the fulltable table and insert test data + execute( + conn, + "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, " + "int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, " + "double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, " + "blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) " + "WITH (TTL=315360000000)", + ) + insert_statements = [ + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print("fulltable setup complete. Begin to query.") + query(conn, "select * from fulltable") + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + + +### 4.3 C++ Example + + +```C++ +Here is the complete C++ code with all comments and string literals translated into English: + +```cpp +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// Error handling function (core functionality preserved) +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// Simplified table output - displays basic data only +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + // Print header row + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // Print separator line + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // Print data rows + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// Executes a SELECT query and outputs the results of fulltable in table format +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + // Allocate statement handle + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + // Execute query + const std::string sqlQuery = "select * from fulltable"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // Get column count + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + // If no columns, return directly + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // Get column names and type information + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Fetch data for every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + // Allocate statement handle + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + // Execute command + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + // Free statement handle + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + // 1. Initialize ODBC environment + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + // 2. Establish connection + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + // Connection string + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + std::string database = "test"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";Database=" + database + ";loglevel=4"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + // Get driver name + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + // 3. Execute operations + Execute(hDbc, "CREATE DATABASE IF NOT EXISTS test"); + Execute(hDbc, "use test"); + std::cout << "use test Execute complete. Begin to setup fulltable." << std::endl; + + // Create fulltable table and insert test data + Execute(hDbc, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + const char* insertStatements[] = { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "fulltable setup complete. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + // 4. Clean up resources + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + // Exception cleanup + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI Example +1. Open PowerBI Desktop and create a new project. +2. Click "Home" → "Get Data" → "More..." → "ODBC" → Click the "Connect" button. +3. Data Source Selection: In the pop-up window, select "Data Source Name (DSN)" and choose `Apache IoTDB DSN` from the dropdown. +4. Advanced Configuration: + * Click "Advanced options" and fill in the configuration in the "Connection string" input box (example): + ```Plain + server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 + ``` + * Notes: + * The `dsn` item is optional; filling it in or not does not affect the connection. + * `loglevel` ranges from 0-4: Level 0 (ERROR) has the least logs, Level 4 (TRACE) has the most detailed logs; set as needed. + * `server`/`database`/`dsn`/`loglevel` are case-insensitive (e.g., can be written as `Server/DATABASE`). + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Authentication: Enter the username (default `root`) and password (default `root`), then click "Connect". +6. Data Loading: Select the table to be called in the interface (e.g., fulltable/table1) , and then click "Load" to view the data. + +### 4.5 Excel Example +1. Open Excel and create a blank workbook. +2. Click the "Data" tab → "From Other Sources" → "From Data Connection Wizard". +3. Data Source Selection: Select "ODBC DSN" → Next → Select `Apache IoTDB DSN` → Next. +4. Connection Configuration: + * The input process for connection string, username, and password is exactly the same as in PowerBI. Reference format for connection string: + ```Plain + server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 + ``` + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Table Selection: Choose the database and table you wish to access (e.g., fulltable), then click Next. +6. Save Connection: Customize settings for the data connection file name, connection description, etc., then click "Finish". +7. Import Data: Select the location to import the data into the worksheet (e.g., cell A1 of "Existing Worksheet"), click "OK" to complete data loading. \ No newline at end of file diff --git a/src/UserGuide/latest/API/Programming-ODBC.md b/src/UserGuide/latest/API/Programming-ODBC.md deleted file mode 100644 index 0d5bf67f1..000000000 --- a/src/UserGuide/latest/API/Programming-ODBC.md +++ /dev/null @@ -1,146 +0,0 @@ - - -# ODBC -With IoTDB JDBC, IoTDB can be accessed using the ODBC-JDBC bridge. - -## 1. Dependencies -* IoTDB-JDBC's jar-with-dependency package -* ODBC-JDBC bridge (e.g. ZappySys JDBC Bridge) - -## 2. Deployment -### 2.1 Preparing JDBC package -Download the source code of IoTDB, and execute the following command in root directory: -```shell -mvn clean package -pl iotdb-client/jdbc -am -DskipTests -P get-jar-with-dependencies -``` -Then, you can see the output `iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar` under `iotdb-client/jdbc/target` directory. - -### 2.2 Preparing ODBC-JDBC Bridge -*Note: Here we only provide one kind of ODBC-JDBC bridge as the instance. Readers can use other ODBC-JDBC bridges to access IoTDB with the IOTDB-JDBC.* -1. **Download Zappy-Sys ODBC-JDBC Bridge**: - Enter the https://zappysys.com/products/odbc-powerpack/odbc-jdbc-bridge-driver/ website, and click "download". - - ![ZappySys_website.jpg](/img/ZappySys_website.jpg) - -2. **Prepare IoTDB**: Set up IoTDB cluster, and write a row of data arbitrarily. - ```sql - IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true) - ``` - -3. **Deploy and Test the Bridge**: - 1. Open ODBC Data Sources(32/64 bit), depending on the bits of Windows. One possible position is `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools`. - - ![ODBC_ADD_EN.jpg](/img/ODBC_ADD_EN.jpg) - - 2. Click on "add" and select ZappySys JDBC Bridge. - - ![ODBC_CREATE_EN.jpg](/img/ODBC_CREATE_EN.jpg) - - 3. Fill in the following settings: - - | Property | Content | Example | - |---------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| - | Connection String | jdbc:iotdb://\:\/ | jdbc:iotdb://127.0.0.1:6667/ | - | Driver Class | org.apache.iotdb.jdbc.IoTDBDriver | org.apache.iotdb.jdbc.IoTDBDriver | - | JDBC driver file(s) | The path of IoTDB JDBC jar-with-dependencies | C:\Users\13361\Documents\GitHub\iotdb\iotdb-client\jdbc\target\iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar | - | User name | IoTDB's user name | root | - | User password | IoTDB's password | root | - - ![ODBC_CONNECTION.png](/img/ODBC_CONNECTION.png) - - 4. Click on "Test Connection" button, and a "Test Connection: SUCCESSFUL" should appear. - - ![ODBC_CONFIG_EN.jpg](/img/ODBC_CONFIG_EN.jpg) - - 5. Click the "Preview" button above, and replace the original query text with `select * from root.**`, then click "Preview Data", and the query result should correctly. - - ![ODBC_TEST.jpg](/img/ODBC_TEST.jpg) - -4. **Operate IoTDB's data with ODBC**: After correct deployment, you can use Microsoft's ODBC library to operate IoTDB's data. Here's an example written in C#: - ```C# - using System.Data.Odbc; - - // Get a connection - var dbConnection = new OdbcConnection("DSN=ZappySys JDBC Bridge"); - dbConnection.Open(); - - // Execute the write commands to prepare data - var dbCommand = dbConnection.CreateCommand(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s1) values(1715670861634, 1)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s2) values(1715670861634, true)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s3) values(1715670861634, 3.1)"; - dbCommand.ExecuteNonQuery(); - - // Execute the read command - dbCommand.CommandText = "SELECT * FROM root.Keller.Flur.Energieversorgung"; - var dbReader = dbCommand.ExecuteReader(); - - // Write the output header - var fCount = dbReader.FieldCount; - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fName = dbReader.GetName(i); - Console.Write(fName + ":"); - } - Console.WriteLine(); - - // Output the content - while (dbReader.Read()) - { - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fieldType = dbReader.GetFieldType(i); - switch (fieldType.Name) - { - case "DateTime": - var dateTime = dbReader.GetInt64(i); - Console.Write(dateTime + ":"); - break; - case "Double": - if (dbReader.IsDBNull(i)) - { - Console.Write("null:"); - } - else - { - var fValue = dbReader.GetDouble(i); - Console.Write(fValue + ":"); - } - break; - default: - Console.Write(fieldType.Name + ":"); - break; - } - } - Console.WriteLine(); - } - - // Shut down gracefully - dbReader.Close(); - dbCommand.Dispose(); - dbConnection.Close(); - ``` - This program can write data into IoTDB, and query the data we have just written. diff --git a/src/UserGuide/latest/API/Programming-ODBC_timecho.md b/src/UserGuide/latest/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..79f1ed2b6 --- /dev/null +++ b/src/UserGuide/latest/API/Programming-ODBC_timecho.md @@ -0,0 +1,992 @@ + + +# ODBC + +## 1. Feature Introduction +The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. + +## 2. Usage Method +It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. + +### 2.1 Environment Requirements +Only the ODBC Driver Manager dependency at the operating system level is required; no compilation environment configuration is needed: + +| **Operating System** | **Requirements and Installation Method** | +| :--- | :--- | +| Windows | 1. **Windows 10/11, Server 2016/2019/2022**: Comes with ODBC Driver Manager version 17/18 built-in; no extra installation needed.
2. **Windows 8.1/Server 2012 R2**: Requires manual installation of the corresponding version of the ODBC Driver Manager. | + +### 2.2 Installation Steps +1. Contact the Tianmou team to obtain the pre-compiled binary package. + Binary package directory structure: + ```Plain + ├── bin/ + │ ├── apache_iotdb_odbc.dll + │ └── install_driver.exe + ├── install.bat + └── registry.bat + ``` +2. Open a command line tool (CMD/PowerShell) with **Administrator privileges** and run the following command: (You can replace the path with any absolute path) + ```Bash + install.bat "C:\Program Files\Apache IoTDB ODBC Driver" + ``` + The script automatically completes the following operations: + * Creates the installation directory (if it does not exist). + * Copies `bin\apache_iotdb_odbc.dll` to the specified installation directory. + * Calls `install_driver.exe` to register the driver to the system via the ODBC standard API (`SQLInstallDriverEx`). +3. Verify installation: Open "ODBC Data Source Administrator". If you can see `Apache IoTDB ODBC Driver` in the "Drivers" tab, the registration was successful. + ![](/img/odbc-1-en.png) + +### 2.3 Uninstallation Steps +1. Open Command Prompt as Administrator and `cd` into the project root directory. +2. Run the uninstallation script: + ```Bash + uninstall.bat + ``` + The script will call `install_driver.exe` to unregister the driver from the system via the ODBC standard API (`SQLRemoveDriver`). The DLL files in the installation directory will not be automatically deleted; please delete them manually if cleanup is required. + +### 2.4 Connection Configuration +After installing the driver, you need to configure a Data Source Name (DSN) to allow applications to connect to the database using the DSN name. The IoTDB ODBC driver supports two methods for configuring connection parameters: via Data Source and via Connection String. + +#### 2.4.1 Configuring Data Source +**Configure via ODBC Data Source Administrator** +1. Open "ODBC Data Source Administrator", switch to the "User DSN" tab, and click the "Add" button. + ![](/img/odbc-2-en.png) +2. Select "Apache IoTDB ODBC Driver" from the pop-up driver list and click "Finish". + ![](/img/odbc-3-en.png) +3. The data source configuration dialog will appear. Fill in the connection parameters and click OK: + ![](/img/odbc-4-en.png) + The meaning of each field in the dialog box is as follows: + + | **Area** | **Field** | **Description** | + | :--- | :--- | :--- | + | Data Source | DSN Name | Data Source Name; applications refer to this data source by this name. | + | Data Source | Description | Data Source description (optional). | + | Connection | Server | IoTDB server IP address, default 127.0.0.1. | + | Connection | Port | IoTDB Session API port, default 6667. | + | Connection | User | Username, default root. | + | Connection | Password | Password, default root. | + | Options | Table Model | Check to use Table Model; uncheck to use Tree Model. | + | Options | Database | Database name. Only available in Table Model mode; grayed out in Tree Model. | + | Options | Log Level | Log level (0-4): 0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE. | + | Options | Session Timeout | Session timeout time (milliseconds); 0 means no timeout. Note: The server-side `queryTimeoutThreshold` defaults to 60000ms; exceeding this value requires modifying server configuration. | + | Options | Batch Size | Number of rows fetched per batch, default 1000. Setting to 0 resets to the default value. | + +4. After filling in the details, you can click the "Test Connection" button to test the connection. Testing will attempt to connect to the IoTDB server using the current parameters and execute a `SHOW VERSION` query. If successful, the server version information will be displayed; if failed, the specific error reason will be shown. +5. Once parameters are confirmed correct, click "OK" to save. The data source will appear in the "User DSN" list, as shown in the example below with the name "123". + ![](/img/odbc-5-en.png) + To modify the configuration of an existing data source, select it in the list and click the "Configure" button to edit again. + +#### 2.4.2 Connection String +The connection string format is **semicolon-separated key-value pairs**, for example: +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2 +``` +Specific field attributes are introduced in the table below: + +| **Field Name** | **Description** | **Optional Values** | **Default Value** | +| :--- | :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| DSN | Data Source Name | Custom data source name | - | +| uid | Database username | Any string | root | +| pwd | Database password | Any string | root | +| server | IoTDB server address | IP address | 127.0.0.1 | +| port | IoTDB server port | Port number | 6667 | +| database | Database name (only effective in Table Model mode) | Any string | Empty string | +| loglevel | Log level | Integer value (0-4) | 4 (LOG_LEVEL_TRACE) | +| isTableModel / tablemodel | Whether to enable Table Model mode | Boolean type, supports multiple representations:
1. 0, false, no, off: set to false;
2. 1, true, yes, on: set to true;
3. Other values default to true. | true | +| sessiontimeoutms | Session timeout time (milliseconds) | 64-bit integer, defaults to `LLONG_MAX`; setting to `0` will be replaced with `LLONG_MAX`. Note: The server has a timeout setting: `private long queryTimeoutThreshold = 60000;` this item needs to be modified to get a timeout time exceeding 60 seconds. | LLONG_MAX | +| batchsize | Batch size for fetching data each time | 64-bit integer, defaults to `1000`; setting to `0` will be replaced with `1000` | 1000 | + +Notes: +* Field names are case-insensitive (automatically converted to lowercase for comparison). +* Connection string format is semicolon-separated key-value pairs, e.g., `Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2`. +* For boolean fields (`isTableModel`), multiple representation methods are supported. +* All fields are optional; if not specified, default values are used. +* Unsupported fields will be ignored and a warning logged, but will not affect the connection. +* The default server interface port 6667 is the default port used by IoTDB's C++ Session interface. This ODBC driver uses the C++ Session interface to transfer data with IoTDB. If the C++ Session interface on the IoTDB server uses a non-default port, corresponding changes must be made in the ODBC connection string. + +#### 2.4.3 Relationship between Data Source Configuration and Connection String +Configurations saved in the ODBC Data Source Administrator are written into the system's ODBC data source configuration as key-value pairs (corresponding to the registry `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI` under Windows). When an application uses `SQLConnect` or specifies `DSN=DataSourceName` in the connection string, the driver reads these parameters from the system configuration. + +**The priority of the connection string is higher than the configuration saved in the DSN.** Specific rules are as follows: +1. If the connection string contains `DSN=xxx` and does not contain `DRIVER=...`, the driver first loads all parameters of that DSN from the system configuration as base values. +2. Then, parameters explicitly specified in the connection string will override parameters with the same name in the DSN. +3. If the connection string contains `DRIVER=...`, no DSN parameters will be read from the system configuration; it will rely entirely on the connection string. + +For example: If the DSN is configured with `Server=192.168.1.100` and `Port=6667`, but the connection string is `DSN=MyDSN;Server=127.0.0.1`, then the actual connection will use `Server=127.0.0.1` (overridden by connection string) and `Port=6667` (from DSN). + +### 2.5 Logging +Log output during driver runtime is divided into "Driver Self-Logs" and "ODBC Manager Tracing Logs". Note the impact of log levels on performance. + +#### 2.5.1 Driver Self-Logs +* Output location: `apache_iotdb_odbc.log` in the user's home directory. +* Log level: Configured via the `loglevel` parameter in the connection string (0-4; higher levels produce more detailed output). +* Performance impact: High log levels will significantly reduce driver performance; recommended for debugging only. + +#### 2.5.2 ODBC Manager Tracing Logs +* How to enable: Open "ODBC Data Source Administrator" → "Tracing" → "Start Tracing Now". +* Precautions: Enabling this will greatly reduce driver performance; use only for troubleshooting. + +## 3. Interface Support + +### 3.1 Method List +The driver's support status for standard ODBC APIs is as follows: + +| ODBC/Setup API | Function Function | Parameter List | Parameter Description | +|:------------------|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- | +| SQLAllocHandle | Allocate ODBC Handle | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) | HandleType: Type of handle to allocate (ENV/DBC/STMT/DESC);
InputHandle: Parent context handle;
OutputHandle: Pointer to the returned new handle. | +| SQLBindCol | Bind column to result buffer | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
ColumnNumber: Column number;
TargetType: C data type;
TargetValue: Data buffer;BufferLength: Buffer length;
StrLen_or_Ind: Returns data length or NULL indicator. | +| SQLColAttribute | Get column attribute information | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) | StatementHandle: Statement handle;
ColumnNumber: Column number;
FieldIdentifier: Attribute ID;
CharacterAttribute: Character attribute output;
BufferLength: Buffer length;
StringLength: Returned length;
NumericAttribute: Numeric attribute output. | +| SQLColumns | Query table column information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/Table/ColumnName: Query object names;

NameLength*: Corresponding name lengths. | +| SQLConnect | Establish database connection | (SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: Connection handle;
ServerName: Data source name;
UserName: Username;
Authentication: Password;
NameLength*: String lengths. | +| SQLDescribeCol | Describe columns in result set | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) | StatementHandle: Statement handle;
ColumnNumber: Column number;
ColumnName: Column name output;
BufferLength: Buffer length;
NameLength: Returned column name length;
DataType: SQL type;
ColumnSize: Column size;
DecimalDigits: Decimal digits;
Nullable: Whether nullable. | +| SQLDisconnect | Disconnect database connection | (SQLHDBC ConnectionHandle) | ConnectionHandle: Connection handle. | +| SQLDriverConnect | Establish connection using connection string | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR *InConnectionString, SQLSMALLINT StringLength1, SQLCHAR *OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: Connection handle;
WindowHandle: Window handle;InConnectionString: Input connection string;
StringLength1: Input length;
OutConnectionString: Output connection string;
BufferLength: Output buffer;
StringLength2: Returned length;
DriverCompletion: Connection prompt method. | +| SQLEndTran | Commit or rollback transaction | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: Handle type;
Handle: Connection or environment handle;
CompletionType: Commit or rollback transaction. | +| SQLExecDirect | Execute SQL statement directly | (SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) | StatementHandle: Statement handle;
StatementText: SQL text;TextLength: SQL length. | +| SQLFetch | Fetch next row in result set | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLFreeHandle | Free ODBC handle | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: Handle type;
Handle: Handle to free. | +| SQLFreeStmt | Free statement-related resources | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: Statement handle;
Option: Free option (close cursor/reset parameters, etc.). | +| SQLGetConnectAttr | Get connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Returned attribute value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetData | Get result data | (SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind) | StatementHandle: Statement handle;
Col_or_Param_Num: Column number;
TargetType: C type;
TargetValue: Data buffer;
BufferLength: Buffer size;
StrLen_or_Ind: Returned length or NULL flag. | +| SQLGetDiagField | Get diagnostic field | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
DiagIdentifier: Diagnostic field ID;
DiagInfo: Output info;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetDiagRec | Get diagnostic record | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) | HandleType: Handle type;
Handle: Handle;
RecNumber: Record number;
Sqlstate: SQL state code;
NativeError: Native error code;
MessageText: Error message;
BufferLength: Buffer;
TextLength: Returned length. | +| SQLGetInfo | Get database information | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) | ConnectionHandle: Connection handle;
InfoType: Information type;
InfoValue: Return value;
BufferLength: Buffer length;
StringLength: Returned length. | +| SQLGetStmtAttr | Get statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Return value;
BufferLength: Buffer;
StringLength: Returned length. | +| SQLGetTypeInfo | Get data type information | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: Statement handle;
DataType: SQL data type. | +| SQLMoreResults | Get more result sets | (SQLHSTMT StatementHandle) | StatementHandle: Statement handle. | +| SQLNumResultCols | Get number of columns in result set | (SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) | StatementHandle: Statement handle;
ColumnCount: Returned column count. | +| SQLRowCount | Get number of affected rows | (SQLHSTMT StatementHandle, SQLLEN *RowCount) | StatementHandle: Statement handle;
RowCount: Returned number of affected rows. | +| SQLSetConnectAttr | Set connection attribute | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: Connection handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Attribute value length. | +| SQLSetEnvAttr | Set environment attribute | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: Environment handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLSetStmtAttr | Set statement attribute | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: Statement handle;
Attribute: Attribute ID;
Value: Attribute value;
StringLength: Length. | +| SQLTables | Query table information | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4) | StatementHandle: Statement handle;
Catalog/Schema/TableName: Table names;
TableType: Table type;
NameLength*: Corresponding lengths. | + +### 3.2 Data Type Conversion +The mapping relationship between IoTDB data types and standard ODBC data types is as follows: + +| **IoTDB Data Type** | **ODBC Data Type** | +| :--- | :--- | +| BOOLEAN | SQL_BIT | +| INT32 | SQL_INTEGER | +| INT64 | SQL_BIGINT | +| FLOAT | SQL_REAL | +| DOUBLE | SQL_DOUBLE | +| TEXT | SQL_VARCHAR | +| STRING | SQL_VARCHAR | +| BLOB | SQL_LONGVARBINARY | +| TIMESTAMP | SQL_BIGINT | +| DATE | SQL_DATE | + +## 4. Operation Examples +This chapter mainly introduces full-type operation examples for **C#**, **Python**, **C++**, **PowerBI**, and **Excel**, covering core operations such as data query, insertion, and deletion. + +### 4.1 C# Example + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console.WriteLine function. +This is an issue with the ConsoleTable package. +*****/ + +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// Executes a SELECT query and outputs the results of root.full.fulldevice in table format +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + + // Output header row + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + + // Output content rows + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"Database error: {ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"Unknown error occurred: {ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};loglevel=4;istablemodel=0"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + + string[] insertStatements = new string[] + { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')" + }; + + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine($"[DEBUG] Inserted {insertStatements.Length} rows. Begin to query."); + + Query(dbConnection); // Execute query and output results +} +``` + + +### 4.2 Python Example +1. To access ODBC via Python, install the `pyodbc` package: + ```Plain + pip install pyodbc + ``` +2. Full Code: + + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python Example - Tree Model +Uses pyodbc to connect to the IoTDB ODBC driver, using istablemodel=0 for Tree Model. +Functionality references examples/BasicTest/TreeTest/TreeTest.cs and examples/cpp-example/TreeTest.cpp. +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """Executes a SELECT query and outputs the results of root.full.fulldevice in table format""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + rows = cursor.fetchall() + + # Calculate column widths + col_widths = [max(len(str(col)), 4) for col in columns] + for row in rows: + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"loglevel=4;istablemodel=0" + ) + + print("Start") + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + insert_statements = [ + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600001, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + ] + + for insert_sql in insert_statements: + execute(conn, insert_sql) + + print(f"[DEBUG] Inserted {len(insert_statements)} rows. Begin to query.") + + query_sql = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000" + query(conn, query_sql) + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + + +### 4.3 C++ Example + + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// Helper function to check ODBC errors +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// Helper function to print a simple table +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// Executes a SELECT query and outputs the results of root.full.fulldevice in table format +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + const std::string sqlQuery = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Fetch data for every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// Executes non-query SQL statements (such as INSERT; Tree Model INSERT will auto-create paths) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";loglevel=4;istablemodel=0"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + const char* insertStatements[] = { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "[DEBUG] Inserted 20 rows. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI Example +1. Open PowerBI Desktop and create a new project. +2. Click "Home" → "Get Data" → "More..." → "ODBC" → Click the "Connect" button. +3. Data Source Selection: In the pop-up window, select "Data Source Name (DSN)" and choose `Apache IoTDB DSN` from the dropdown. +4. Advanced Configuration: + * Click "Advanced options" and fill in the configuration in the "Connection string" input box (example): + ```Plain + server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 + ``` + * Notes: + * The `dsn` item is optional; filling it in or not does not affect the connection. + * `loglevel` ranges from 0-4: Level 0 (ERROR) has the least logs, Level 4 (TRACE) has the most detailed logs; set as needed. + * `server`/`dsn`/`loglevel` are case-insensitive (e.g., can be written as `Server`). + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Authentication: Enter the username (default `root`) and password (default `root`), then click "Connect". +6. Data Loading: Click "Load" to view the data. + +### 4.5 Excel Example +1. Open Excel and create a blank workbook. +2. Click the "Data" tab → "From Other Sources" → "From Data Connection Wizard". +3. Data Source Selection: Select "ODBC DSN" → Next → Select `Apache IoTDB DSN` → Next. +4. Connection Configuration: + * The input process for connection string, username, and password is exactly the same as in PowerBI. Reference format for connection string: + ```Plain + server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 + ``` + * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN. +5. Save Connection: Customize settings for the data connection file name, connection description, etc., then click "Finish". +6. Import Data: Select the location to import the data into the worksheet (e.g., cell A1 of "Existing Worksheet"), click "OK" to complete data loading. \ No newline at end of file diff --git a/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..a54dc1385 --- /dev/null +++ b/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md @@ -0,0 +1,1081 @@ + + +# ODBC + +## 1. 功能介绍 + +IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 + +## 2. 使用方式 + +推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 + +### 2.1 环境要求 + +仅需满足操作系统层面的 ODBC 驱动管理器依赖,无需配置编译环境: + +| **操作系统** | **要求与安装方式** | +| -------------------- |------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11、Server 2016/2019/2022**:自带 ODBC 17/18 版本驱动管理器,无需额外安装
2. **Windows 8.1/Server 2012 R2**:需手动安装对应版本 ODBC 驱动管理器 | + +### 2.2 安装步骤 + +1. 联系天谋团队获取预编译二进制包 + +二进制包目录结构: + +```Plain +├── bin/ +│ ├── apache_iotdb_odbc.dll +│ └── install_driver.exe +├── install.bat +└── registry.bat +``` + +2. 以**管理员权限**打开命令行工具(CMD/PowerShell),并运行以下命令:(可以将路径替换为任意绝对路径) + +```Bash +install.bat "C:\Program Files\Apache IoTDB ODBC Driver" +``` + +脚本自动完成以下操作: + +* 创建安装目录(如果不存在) +* 将 `bin\apache_iotdb_odbc.dll` 复制到指定安装目录 +* 调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLInstallDriverEx`)将驱动注册到系统 + +3. 验证安装:打开「ODBC 数据源管理器」,在「驱动程序」选项卡中可查看到 `Apache IoTDB ODBC Driver`,即表示注册成功。 + +![](/img/odbc-1.png) + +### 2.3 卸载步骤 + +1. 以管理员身份打开命令提示符,`cd` 进入项目根目录。 +2. 运行卸载脚本: + +```Bash +uninstall.bat +``` + +脚本会调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLRemoveDriver`)从系统中注销驱动。安装目录中的 DLL 文件不会被自动删除,如需清理请手动删除。 + +### 2.4 连接配置 + +安装驱动后,需要配置数据源(DSN)才能让应用程序通过 DSN 名称连接数据库。IoTDB ODBC 驱动支持通过数据源和连接字符串配置连接参数两种方法。 + +#### 2.4.1 配置数据源 + +**通过 ODBC 数据源管理器配置** + +1. 打开"ODBC 数据源管理程序",切换到"用户 DSN"选项卡,点击"添加"按钮。 + +![](/img/odbc-2.png) + +2. 在弹出的驱动程序列表中选择"Apache IoTDB ODBC Driver",点击"完成"。 + +![](/img/odbc-3.png) + +3. 弹出数据源配置对话框,填写连接参数,随后点击 OK: + +![](/img/odbc-4.png) + +对话框中各字段的含义如下: + +| **区域** | **字段** | **说明** | +| ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- | +| Data Source | DSN Name | 数据源名称,应用程序通过此名称引用该数据源 | +| Data Source | Description | 数据源描述(可选) | +| Connection | Server | IoTDB 服务器 IP 地址,默认 127.0.0.1 | +| Connection | Port | IoTDB Session API 端口,默认 6667 | +| Connection | User | 用户名,默认 root | +| Connection | Password | 密码,默认 root | +| Options | Table Model | 勾选时使用表模型,取消勾选时使用树模型 | +| Options | Database | 数据库名称。仅表模型模式下可用;树模型时此字段灰化不可编辑 | +| Options | Log Level | 日志级别(0-4):0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE | +| Options | Session Timeout | 会话超时时间(毫秒),0 表示不设超时。注意服务端 queryTimeoutThreshold 默认为 60000ms,超过此值需修改服务端配置 | +| Options | Batch Size | 每次拉取的行数,默认 1000。设为 0 时重置为默认值 | + +4. 填写完成后,可以点击"Test Connection"按钮测试连接。测试连接会使用当前填写的参数尝试连接到 IoTDB 服务器并执行 `SHOW VERSION` 查询。连接成功时会显示服务器版本信息,失败时会显示具体的错误原因。 +5. 确认参数无误后,点击"OK"保存。数据源会出现在"用户 DSN"列表中,如下图中的名称为123的数据源。 + +![](/img/odbc-5.png) + +如需修改已有数据源的配置,在列表中选中后点击"配置"按钮即可重新编辑。 + +#### 2.4.2 连接字符串 + +连接字符串格式为**分号分隔的键值对**,如: + +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2 +``` + +具体字段属性介绍见下表: + +| **字段名称** | **说明** | **可选值** | **默认值** | +| --------------------------- | ---------------------------------- |------------------------------------------------------------------------------------------------------------------------------| --------------------------------- | +| DSN | 数据源名称 | 自定义数据源名 | - | +| uid | 数据库用户名 | 任意字符串 | root | +| pwd | 数据库密码 | 任意字符串 | root | +| server | IoTDB 服务器地址 | ip地址 | 127.0.0.1 | +| port | IoTDB 服务器端口 | 端口 | 6667 | +| database | 数据库名称(仅表模型模式下生效) | 任意字符串 | 空字符串| +| loglevel | 日志级别 | 整数值(0-4) | 4(LOG\_LEVEL\_TRACE) | +| isTableModel / tablemodel | 是否启用表模型模式 | 布尔类型,支持多种表示方式:
1. 0, false, no, off :设置为 false;
2. 1, true, yes, on :设置为 true;
3. 其他值默认设置为 true。 | true| +| sessiontimeoutms | Session 超时时间(毫秒) | 64 位整数,默认为`LLONG_MAX`;设置为`0`时将被替换为`LLONG_MAX`。注意,服务端有超时设置项:`private long queryTimeoutThreshold = 60000;`需要修改这一项才能得到超过60秒的超时时间。 | LLONG\_MAX| +| batchsize | 每次拉取数据的批量大小 | 64 位整数,默认为`1000`;设置为`0`时将被替换为`1000` | 1000| + +说明: + +* 字段名称不区分大小写(自动转换为小写进行比较) +* 连接字符串格式为分号分隔的键值对,如:`Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2` +* 对于布尔类型的字段(isTableModel),支持多种表示方式 +* 所有字段都是可选的,如果未指定则使用默认值 +* 不支持的字段会忽略并在日志中记录警告信息,但不会影响连接 +* 服务器接口默认值 6667 是 IoTDB 的 C++ Session 接口所使用的默认端口。本 ODBC 驱动使用 C++ Session 接口与 IoTDB 传递数据。如果 IoTDB 服务端的 C++ Session 接口使用的端口不是默认的,需要在 ODBC 连接字符串中作相应的更改。 + +#### 2.4.3 数据源配置与连接字符串的关系 + +在 ODBC 数据源管理器中保存的配置,会以键值对的形式写入系统的 ODBC 数据源配置中(Windows 下对应注册表 `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI`)。当应用程序使用 `SQLConnect` 或在连接字符串中指定 `DSN=数据源名称` 时,驱动会从系统配置中读取这些参数。 + +**连接字符串的优先级高于 DSN 中保存的配置。** 具体规则如下: + +1. 如果连接字符串中包含 `DSN=xxx` 且不包含 `DRIVER=...`,驱动会先从系统配置中加载该 DSN 的所有参数作为基础值。 +2. 然后,连接字符串中显式指定的参数会覆盖 DSN 中的同名参数。 +3. 如果连接字符串中包含 `DRIVER=...`,则不会从系统配置中读取任何 DSN 参数,完全以连接字符串为准。 + +例如:DSN 中配置了 `Server=192.168.1.100`、`Port=6667`,但连接字符串为 `DSN=MyDSN;Server=127.0.0.1`,则实际连接使用 `Server=127.0.0.1`(连接字符串覆盖),`Port=6667`(来自 DSN)。 + +### 2.5 日志记录 + +驱动运行时的日志输出分为「驱动自身日志」和「ODBC 管理器追踪日志」两类,需注意日志等级对性能的影响。 + +#### 2.5.1 驱动自身日志 + +* 输出位置:用户主目录下的 `apache_iotdb_odbc.log`; +* 日志等级:通过连接字符串的 `loglevel` 配置(0-4,等级越高输出越详细); +* 性能影响:高日志等级会显著降低驱动性能,建议仅调试时使用。 + +#### 2.5.2 ODBC 管理器追踪日志 + +* 开启方式:打开「ODBC 数据源管理器」→「跟踪」→「立即启动跟踪」; +* 注意事项:开启后会大幅降低驱动性能,仅用于问题排查。 + +## 3. 接口支持 + +### 3.1 方法列表 + +驱动对 ODBC 标准 API 的支持情况如下: + +| ODBC/Setup API | 函数功能 | 参数列表 | 参数说明 | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SQLAllocHandle| 分配ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE \*OutputHandle) | HandleType: 要分配的句柄类型(ENV/DBC/STMT/DESC);
InputHandle: 上级上下文句柄;
OutputHandle: 返回的新句柄指针 | +| SQLBindCol | 绑定列到结果缓冲区 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
TargetType: C数据类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区长度;
StrLen\_or\_Ind: 返回数据长度或NULL指示 | +| SQLColAttribute| 获取列属性信息 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength, SQLLEN \*NumericAttribute) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
FieldIdentifier: 属性ID;
CharacterAttribute: 字符属性输出;
BufferLength: 缓冲区长度;
StringLength: 返回长度;
NumericAttribute: 数值属性输出 | +| SQLColumns| 查询表列信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*ColumnName, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/Table/ColumnName: 查询对象名称;
NameLength\*: 对应名称长度 | +| SQLConnect | 建立数据库连接 | (SQLHDBC ConnectionHandle, SQLCHAR \*ServerName, SQLSMALLINT NameLength1, SQLCHAR \*UserName, SQLSMALLINT NameLength2, SQLCHAR \*Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: 连接句柄;
ServerName: 数据源名称;
UserName: 用户名;
Authentication: 密码;NameLength\*: 字符串长度 | +| SQLDescribeCol | 描述结果集中的列 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR \*ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT \*NameLength, SQLSMALLINT \*DataType, SQLULEN \*ColumnSize, SQLSMALLINT \*DecimalDigits, SQLSMALLINT \*Nullable) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
ColumnName: 列名输出;
BufferLength: 缓冲区长度;
NameLength: 返回列名长度;
DataType: SQL类型;
ColumnSize: 列大小;
DecimalDigits: 小数位;
Nullable: 是否可为空 | +| SQLDisconnect | 断开数据库连接 | (SQLHDBC ConnectionHandle) | ConnectionHandle: 连接句柄 | +| SQLDriverConnect | 使用连接字符串建立连接 | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR \*InConnectionString, SQLSMALLINT StringLength1, SQLCHAR \*OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: 连接句柄;
WindowHandle: 窗口句柄;
InConnectionString: 输入连接字符串;
StringLength1: 输入长度;
OutConnectionString: 输出连接字符串;
BufferLength: 输出缓冲区;
StringLength2: 返回长度;
DriverCompletion: 连接提示方式 | +| SQLEndTran | 提交或回滚事务 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: 句柄类型;
Handle: 连接或环境句柄;
CompletionType: 提交或回滚事务 | +| SQLExecDirect | 直接执行SQL语句 | (SQLHSTMT StatementHandle, SQLCHAR \*StatementText, SQLINTEGER TextLength) | StatementHandle: 语句句柄;
StatementText: SQL文本;
TextLength: SQL长度 | +| SQLFetch | 提取结果集中的下一行 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLFreeHandle | 释放ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: 句柄类型;
Handle: 要释放的句柄 | +| SQLFreeStmt | 释放语句相关资源 | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: 语句句柄;
Option: 释放选项(关闭游标/重置参数等) | +| SQLGetConnectAttr | 获取连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 返回属性值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetData | 获取结果数据 | (SQLHSTMT StatementHandle, SQLUSMALLINT Col\_or\_Param\_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
Col\_or\_Param\_Num: 列号;
TargetType: C类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区大小;
StrLen\_or\_Ind: 返回长度或NULL标志 | +| SQLGetDiagField | 获取诊断字段 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
DiagIdentifier: 诊断字段ID;
DiagInfo: 输出信息;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetDiagRec | 获取诊断记录 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR \*Sqlstate, SQLINTEGER \*NativeError, SQLCHAR \*MessageText, SQLSMALLINT BufferLength, SQLSMALLINT \*TextLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
Sqlstate: SQL状态码;
NativeError: 原生错误码;
MessageText: 错误信息;
BufferLength: 缓冲区;
TextLength: 返回长度 | +| SQLGetInfo | 获取数据库信息 | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | ConnectionHandle: 连接句柄;

InfoType: 信息类型;
InfoValue: 返回值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetStmtAttr | 获取语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 返回值;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetTypeInfo | 获取数据类型信息 | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: 语句句柄;
DataType: SQL数据类型 | +| SQLMoreResults | 获取更多结果集 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLNumResultCols | 获取结果集列数 | (SQLHSTMT StatementHandle, SQLSMALLINT \*ColumnCount) | StatementHandle: 语句句柄;
ColumnCount: 返回列数 | +| SQLRowCount | 获取受影响的行数 | (SQLHSTMT StatementHandle, SQLLEN \*RowCount) | StatementHandle: 语句句柄;
RowCount: 返回受影响行数 | +| SQLSetConnectAttr | 设置连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 属性值长度 | +| SQLSetEnvAttr | 设置环境属性 | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: 环境句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLSetStmtAttr | 设置语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLTables | 查询表信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*TableType, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/TableName: 表名;
TableType: 表类型;
NameLength\*: 对应长度 | + +### 3.2 数据类型转换 + +IoTDB 数据类型与 ODBC 标准数据类型的映射关系如下: + +| **IoTDB 数据类型** | **ODBC 数据类型** | +| -------------------------- | ------------------------- | +| BOOLEAN | SQL\_BIT | +| INT32 | SQL\_INTEGER | +| INT64 | SQL\_BIGINT | +| FLOAT | SQL\_REAL | +| DOUBLE | SQL\_DOUBLE | +| TEXT | SQL\_VARCHAR | +| STRING | SQL\_VARCHAR | +| BLOB | SQL\_LONGVARBINARY | +| TIMESTAMP | SQL\_BIGINT | +| DATE | SQL\_DATE | + +## 4. 操作示例 + +本章节主要介绍 **C#**、**Python**、**C++**、**PowerBI**、**Excel** 全类型操作示例,覆盖数据查询、插入、删除等核心操作。 + +### 4.1 C# 示例 + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console. +WriteLine function. This is an issue with the ConsoleTable package. +*****/ +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// 执行 SELECT 查询并以表格形式输出 fulltable 的结果 +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "select * from fulltable"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + // 输出表头 + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + // 输出内容 + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// 执行非查询 SQL 语句(如 CREATE DATABASE、CREATE TABLE、INSERT 等) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"数据库错误:{ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"发生未知错误:{ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var database = "test"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};Database={database};loglevel=4"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + Console.WriteLine($"Successfully opened connection. database name = {dbConnection.Driver}"); + Execute(dbConnection, "CREATE DATABASE IF NOT EXISTS test"); + Execute(dbConnection, "use test"); + Console.WriteLine("use test Execute complete. Begin to setup fulltable."); + + Execute(dbConnection, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + string[] insertStatements = new string[] + { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine("fulltable setup complete. Begin to query."); + Query(dbConnection); // 执行查询并输出结果 +} + +``` + +### 4.2 Python 示例 + +1. 通过Python访问odbc,需安装pyodbc包 + +```Plain +pip install pyodbc +``` + +2. 完整代码 + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python example +Use pyodbc to connect to the IoTDB ODBC driver and perform operations such as query and insert. +For reference, see examples/cpp-example/test.cpp and examples/BasicTest/BasicTest/Program.cs +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """执行非查询 SQL 语句(如 USE、CREATE、INSERT、DELETE 等)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + # INSERT/UPDATE/DELETE require commit; session commands such as USE do not. + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """执行 SELECT 查询并以表格形式输出结果""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + # Get column names (if the name contains '.', take the last segment, consistent with C++/C# samples). + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + # Fetch data rows + rows = cursor.fetchall() + + # Simple table output + col_widths = [max(len(str(col)), 4) for col in columns] + for i, row in enumerate(rows): + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print data rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + database = "test" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"Database={database};loglevel=4" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + execute(conn, "CREATE DATABASE IF NOT EXISTS test") + execute(conn, "use test") + print("use test Execute complete. Begin to setup fulltable.") + + # Create the fulltable table and insert test data + execute( + conn, + "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, " + "int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, " + "double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, " + "blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) " + "WITH (TTL=315360000000)", + ) + insert_statements = [ + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print("fulltable setup complete. Begin to query.") + query(conn, "select * from fulltable") + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + +### 4.3 C++ 示例 + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// 错误处理函数(保持核心功能) +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// 简化版表格输出 - 仅展示基本数据 +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + // 打印表头 + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // 打印分隔线 + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // 打印数据行 + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// 执行 SELECT 查询并以表格形式输出 fulltable 的结果 +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + // 分配语句句柄 + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + // 执行查询 + const std::string sqlQuery = "select * from fulltable"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // 获取列数量 + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + // 如果没有列,直接返回 + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // 获取列名和类型信息 + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Get data front every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// 执行非查询 SQL 语句(如 CREATE DATABASE、CREATE TABLE、INSERT 等) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + // 分配语句句柄 + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + // 执行命令 + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + // 释放语句句柄 + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + // 1. 初始化ODBC环境 + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + // 2. 建立连接 + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + // 连接字符串 + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + std::string database = "test"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";Database=" + database + ";loglevel=4"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + // 获取驱动名称 + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + // 3. 执行操作 + Execute(hDbc, "CREATE DATABASE IF NOT EXISTS test"); + Execute(hDbc, "use test"); + std::cout << "use test Execute complete. Begin to setup fulltable." << std::endl; + + // 创建 fulltable 表并插入测试数据 + Execute(hDbc, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + const char* insertStatements[] = { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "fulltable setup complete. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + // 4. 清理资源 + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + // 异常清理 + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI 示例 + +1. 打开 PowerBI Desktop,创建新项目; +2. 点击「主页」→「获取数据」→「更多...」→「ODBC」→ 点击「连接」按钮; +3. 数据源选择:在弹出窗口中选择「数据源名称 (DSN)」,下拉选择 `Apache IoTDB DSN`; +4. 高级配置: + +* 点击「高级选项」,在「连接字符串」输入框填写配置(样例): + +```Plain +server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 +``` + +* 说明: + + * `dsn` 项可选,填写 / 不填写均不影响连接; + * `loglevel` 分为 0-4 等级:0 级(ERROR)日志最少,4 级(TRACE)日志最详细,按需设置; + - `server/database/dsn/loglevel` 大小写不敏感(如可写为 `Server/DATABASE`); + * 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 + +5. 身份验证:输入用户名(默认 `root`)和密码(默认 `root`),点击「连接」; +6. 数据加载:在界面中选择需要调用的表(如 `fulltable/table1`),点击「加载」即可查看数据。 + +### 4.5 Excel 示例 + +1. 打开 Excel,创建空白工作簿; +2. 点击「数据」选项卡 →「自其他来源」→「来自数据连接向导」; +3. 数据源选择:选择「ODBC DSN」→ 下一步 → 选择 `Apache IoTDB DSN` → 下一步; +4. 连接配置: +* 连接字符串、用户名、密码的输入流程与 PowerBI 完全一致,连接字符串格式参考: + +```Plain +server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 +``` + +* 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 +5. 表选择:选择需要访问的数据库和表(如 fulltable),点击「下一步」; +6. 保存连接:自定义设置数据连接文件名、连接描述等信息,点击「完成」; +7. 导入数据:选择数据导入到工作表的位置(如「现有工作表」的 A1 单元格),点击「确定」,完成数据加载。 diff --git a/src/zh/UserGuide/Master/Tree/API/Programming-ODBC.md b/src/zh/UserGuide/Master/Tree/API/Programming-ODBC.md deleted file mode 100644 index 756ba2fdd..000000000 --- a/src/zh/UserGuide/Master/Tree/API/Programming-ODBC.md +++ /dev/null @@ -1,146 +0,0 @@ - - -# ODBC -在 JDBC 插件的基础上,IoTDB 可以通过 ODBC-JDBC 桥来支持通过 ODBC 对数据库的操作。 - -## 1. 依赖 -* 带依赖打包的 IoTDB JDBC 插件包 -* ODBC-JDBC 桥(如 Zappy-Sys) - -## 2. 部署方法 -### 2.1 准备 JDBC 插件包 -下载 IoTDB 源码,在根目录下执行下面的命令: -```shell -mvn clean package -pl iotdb-client/jdbc -am -DskipTests -P get-jar-with-dependencies -``` -之后,就可以在`iotdb-client/jdbc/target`目录下看到`iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar`文件。 - -### 2.2 准备 ODBC-JDBC 桥 -*注意: 这里给出的仅仅是一种 ODBC-JDBC 桥,仅作示例。读者可以自行寻找其他的 ODBC-JDBC 桥来对接 IoTDB 的 JDBC 插件。* -1. **下载 Zappy-Sys ODBC-JDBC 桥插件**: - 进入 https://zappysys.com/products/odbc-powerpack/odbc-jdbc-bridge-driver/ 网站,点击下载按钮并直接安装。 - - ![ZappySys_website.jpg](/img/ZappySys_website.jpg) - -2. **准备 IoTDB**:打开 IoTDB 集群,并任意写入一条数据。 - ```sql - IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true) - ``` - -3. **部署及调试插件**: - 1. 打开 ODBC 数据源 32/64 位,取决于 Windows 的位数,一个示例的位置是 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools`。 - - ![ODBC_ADD_CN.jpg](/img/ODBC_ADD_CN.jpg) - - 2. 点击添加,选择 ZappySys JDBC Bridge。 - - ![ODBC_CREATE_CN.jpg](/img/ODBC_CREATE_CN.jpg) - - 3. 填写如下配置: - - | 配置项 | 填写内容 | 示例 | - |---------------------|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------| - | Connection String | jdbc:iotdb://:/ | jdbc:iotdb://127.0.0.1:6667/ | - | Driver Class | org.apache.iotdb.jdbc.IoTDBDriver | org.apache.iotdb.jdbc.IoTDBDriver | - | JDBC driver file(s) | IoTDB JDBC jar-with-dependencies 插件路径 | C:\Users\13361\Documents\GitHub\iotdb\iotdb-client\jdbc\target\iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar | - | User name | IoTDB 的用户名 | root | - | User password | IoTDB 的密码 | root | - - ![ODBC_CONNECTION.png](/img/ODBC_CONNECTION.png) - - 4. 点击 Test Connection 按钮,应该显示连接成功。 - - ![ODBC_CONFIG_CN.jpg](/img/ODBC_CONFIG_CN.jpg) - - 5. 点击上方的 Preview, 将查询文本换为 `select * from root.**`,点击 Preview Data,应该正确显示查询结果。 - - ![ODBC_TEST.jpg](/img/ODBC_TEST.jpg) - -4. **使用 ODBC 操作数据**:正确部署后,就可以使用 Windows 的 ODBC 库,对 IoTDB 的数据进行操作。 这里给出 C# 语言的代码示例: - ```C# - using System.Data.Odbc; - - // Get a connection - var dbConnection = new OdbcConnection("DSN=ZappySys JDBC Bridge"); - dbConnection.Open(); - - // Execute the write commands to prepare data - var dbCommand = dbConnection.CreateCommand(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s1) values(1715670861634, 1)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s2) values(1715670861634, true)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s3) values(1715670861634, 3.1)"; - dbCommand.ExecuteNonQuery(); - - // Execute the read command - dbCommand.CommandText = "SELECT * FROM root.Keller.Flur.Energieversorgung"; - var dbReader = dbCommand.ExecuteReader(); - - // Write the output header - var fCount = dbReader.FieldCount; - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fName = dbReader.GetName(i); - Console.Write(fName + ":"); - } - Console.WriteLine(); - - // Output the content - while (dbReader.Read()) - { - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fieldType = dbReader.GetFieldType(i); - switch (fieldType.Name) - { - case "DateTime": - var dateTime = dbReader.GetInt64(i); - Console.Write(dateTime + ":"); - break; - case "Double": - if (dbReader.IsDBNull(i)) - { - Console.Write("null:"); - } - else - { - var fValue = dbReader.GetDouble(i); - Console.Write(fValue + ":"); - } - break; - default: - Console.Write(fieldType.Name + ":"); - break; - } - } - Console.WriteLine(); - } - - // Shut down gracefully - dbReader.Close(); - dbCommand.Dispose(); - dbConnection.Close(); - ``` - 运行该程序可以向 IoTDB 内写入数据,并且查询并打印写入的数据。 diff --git a/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..41125fb3d --- /dev/null +++ b/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md @@ -0,0 +1,1028 @@ + + +# ODBC + +## 1. 功能介绍 + +IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 + +## 2. 使用方式 + +推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 + +### 2.1 环境要求 + +仅需满足操作系统层面的 ODBC 驱动管理器依赖,无需配置编译环境: + +| **操作系统** | **要求与安装方式** | +| -------------------- |------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11、Server 2016/2019/2022**:自带 ODBC 17/18 版本驱动管理器,无需额外安装
2. **Windows 8.1/Server 2012 R2**:需手动安装对应版本 ODBC 驱动管理器 | + +### 2.2 安装步骤 + +1. 联系天谋团队获取预编译二进制包 + +二进制包目录结构: + +```Plain +├── bin/ +│ ├── apache_iotdb_odbc.dll +│ └── install_driver.exe +├── install.bat +└── registry.bat +``` + +2. 以**管理员权限**打开命令行工具(CMD/PowerShell),并运行以下命令:(可以将路径替换为任意绝对路径) + +```Bash +install.bat "C:\Program Files\Apache IoTDB ODBC Driver" +``` + +脚本自动完成以下操作: + +* 创建安装目录(如果不存在) +* 将 `bin\apache_iotdb_odbc.dll` 复制到指定安装目录 +* 调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLInstallDriverEx`)将驱动注册到系统 + +3. 验证安装:打开「ODBC 数据源管理器」,在「驱动程序」选项卡中可查看到 `Apache IoTDB ODBC Driver`,即表示注册成功。 + +![](/img/odbc-1.png) + +### 2.3 卸载步骤 + +1. 以管理员身份打开命令提示符,`cd` 进入项目根目录。 +2. 运行卸载脚本: + +```Bash +uninstall.bat +``` + +脚本会调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLRemoveDriver`)从系统中注销驱动。安装目录中的 DLL 文件不会被自动删除,如需清理请手动删除。 + +### 2.4 连接配置 + +安装驱动后,需要配置数据源(DSN)才能让应用程序通过 DSN 名称连接数据库。IoTDB ODBC 驱动支持通过数据源和连接字符串配置连接参数两种方法。 + +#### 2.4.1 配置数据源 + +**通过 ODBC 数据源管理器配置** + +1. 打开"ODBC 数据源管理程序",切换到"用户 DSN"选项卡,点击"添加"按钮。 + +![](/img/odbc-2.png) + +2. 在弹出的驱动程序列表中选择"Apache IoTDB ODBC Driver",点击"完成"。 + +![](/img/odbc-3.png) + +3. 弹出数据源配置对话框,填写连接参数,随后点击 OK: + +![](/img/odbc-4.png) + +对话框中各字段的含义如下: + +| **区域** | **字段** | **说明** | +| ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- | +| Data Source | DSN Name | 数据源名称,应用程序通过此名称引用该数据源 | +| Data Source | Description | 数据源描述(可选) | +| Connection | Server | IoTDB 服务器 IP 地址,默认 127.0.0.1 | +| Connection | Port | IoTDB Session API 端口,默认 6667 | +| Connection | User | 用户名,默认 root | +| Connection | Password | 密码,默认 root | +| Options | Table Model | 勾选时使用表模型,取消勾选时使用树模型 | +| Options | Database | 数据库名称。仅表模型模式下可用;树模型时此字段灰化不可编辑 | +| Options | Log Level | 日志级别(0-4):0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE | +| Options | Session Timeout | 会话超时时间(毫秒),0 表示不设超时。注意服务端 queryTimeoutThreshold 默认为 60000ms,超过此值需修改服务端配置 | +| Options | Batch Size | 每次拉取的行数,默认 1000。设为 0 时重置为默认值 | + +4. 填写完成后,可以点击"Test Connection"按钮测试连接。测试连接会使用当前填写的参数尝试连接到 IoTDB 服务器并执行 `SHOW VERSION` 查询。连接成功时会显示服务器版本信息,失败时会显示具体的错误原因。 +5. 确认参数无误后,点击"OK"保存。数据源会出现在"用户 DSN"列表中,如下图中的名称为123的数据源。 + +![](/img/odbc-5.png) + +如需修改已有数据源的配置,在列表中选中后点击"配置"按钮即可重新编辑。 + +#### 2.4.2 连接字符串 + +连接字符串格式为**分号分隔的键值对**,如: + +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2 +``` + +具体字段属性介绍见下表: + +| **字段名称** | **说明** | **可选值** | **默认值** | +| --------------------------- | ---------------------------------- |------------------------------------------------------------------------------------------------------------------------------| --------------------------------- | +| DSN | 数据源名称 | 自定义数据源名 | - | +| uid | 数据库用户名 | 任意字符串 | root | +| pwd | 数据库密码 | 任意字符串 | root | +| server | IoTDB 服务器地址 | ip地址 | 127.0.0.1 | +| port | IoTDB 服务器端口 | 端口 | 6667 | +| database | 数据库名称(仅表模型模式下生效) | 任意字符串 | 空字符串| +| loglevel | 日志级别 | 整数值(0-4) | 4(LOG\_LEVEL\_TRACE) | +| isTableModel / tablemodel | 是否启用表模型模式 | 布尔类型,支持多种表示方式:
1. 0, false, no, off :设置为 false;
2. 1, true, yes, on :设置为 true;
3. 其他值默认设置为 true。 | true| +| sessiontimeoutms | Session 超时时间(毫秒) | 64 位整数,默认为`LLONG_MAX`;设置为`0`时将被替换为`LLONG_MAX`。注意,服务端有超时设置项:`private long queryTimeoutThreshold = 60000;`需要修改这一项才能得到超过60秒的超时时间。 | LLONG\_MAX| +| batchsize | 每次拉取数据的批量大小 | 64 位整数,默认为`1000`;设置为`0`时将被替换为`1000` | 1000| + +说明: + +* 字段名称不区分大小写(自动转换为小写进行比较) +* 连接字符串格式为分号分隔的键值对,如:`Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2` +* 对于布尔类型的字段(isTableModel),支持多种表示方式 +* 所有字段都是可选的,如果未指定则使用默认值 +* 不支持的字段会忽略并在日志中记录警告信息,但不会影响连接 +* 服务器接口默认值 6667 是 IoTDB 的 C++ Session 接口所使用的默认端口。本 ODBC 驱动使用 C++ Session 接口与 IoTDB 传递数据。如果 IoTDB 服务端的 C++ Session 接口使用的端口不是默认的,需要在 ODBC 连接字符串中作相应的更改。 + +#### 2.4.3 数据源配置与连接字符串的关系 + +在 ODBC 数据源管理器中保存的配置,会以键值对的形式写入系统的 ODBC 数据源配置中(Windows 下对应注册表 `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI`)。当应用程序使用 `SQLConnect` 或在连接字符串中指定 `DSN=数据源名称` 时,驱动会从系统配置中读取这些参数。 + +**连接字符串的优先级高于 DSN 中保存的配置。** 具体规则如下: + +1. 如果连接字符串中包含 `DSN=xxx` 且不包含 `DRIVER=...`,驱动会先从系统配置中加载该 DSN 的所有参数作为基础值。 +2. 然后,连接字符串中显式指定的参数会覆盖 DSN 中的同名参数。 +3. 如果连接字符串中包含 `DRIVER=...`,则不会从系统配置中读取任何 DSN 参数,完全以连接字符串为准。 + +例如:DSN 中配置了 `Server=192.168.1.100`、`Port=6667`,但连接字符串为 `DSN=MyDSN;Server=127.0.0.1`,则实际连接使用 `Server=127.0.0.1`(连接字符串覆盖),`Port=6667`(来自 DSN)。 + +### 2.5 日志记录 + +驱动运行时的日志输出分为「驱动自身日志」和「ODBC 管理器追踪日志」两类,需注意日志等级对性能的影响。 + +#### 2.5.1 驱动自身日志 + +* 输出位置:用户主目录下的 `apache_iotdb_odbc.log`; +* 日志等级:通过连接字符串的 `loglevel` 配置(0-4,等级越高输出越详细); +* 性能影响:高日志等级会显著降低驱动性能,建议仅调试时使用。 + +#### 2.5.2 ODBC 管理器追踪日志 + +* 开启方式:打开「ODBC 数据源管理器」→「跟踪」→「立即启动跟踪」; +* 注意事项:开启后会大幅降低驱动性能,仅用于问题排查。 + +## 3. 接口支持 + +### 3.1 方法列表 + +驱动对 ODBC 标准 API 的支持情况如下: + +| ODBC/Setup API | 函数功能 | 参数列表 | 参数说明 | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SQLAllocHandle| 分配ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE \*OutputHandle) | HandleType: 要分配的句柄类型(ENV/DBC/STMT/DESC);
InputHandle: 上级上下文句柄;
OutputHandle: 返回的新句柄指针 | +| SQLBindCol | 绑定列到结果缓冲区 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
TargetType: C数据类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区长度;
StrLen\_or\_Ind: 返回数据长度或NULL指示 | +| SQLColAttribute| 获取列属性信息 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength, SQLLEN \*NumericAttribute) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
FieldIdentifier: 属性ID;
CharacterAttribute: 字符属性输出;
BufferLength: 缓冲区长度;
StringLength: 返回长度;
NumericAttribute: 数值属性输出 | +| SQLColumns| 查询表列信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*ColumnName, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/Table/ColumnName: 查询对象名称;
NameLength\*: 对应名称长度 | +| SQLConnect | 建立数据库连接 | (SQLHDBC ConnectionHandle, SQLCHAR \*ServerName, SQLSMALLINT NameLength1, SQLCHAR \*UserName, SQLSMALLINT NameLength2, SQLCHAR \*Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: 连接句柄;
ServerName: 数据源名称;
UserName: 用户名;
Authentication: 密码;NameLength\*: 字符串长度 | +| SQLDescribeCol | 描述结果集中的列 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR \*ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT \*NameLength, SQLSMALLINT \*DataType, SQLULEN \*ColumnSize, SQLSMALLINT \*DecimalDigits, SQLSMALLINT \*Nullable) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
ColumnName: 列名输出;
BufferLength: 缓冲区长度;
NameLength: 返回列名长度;
DataType: SQL类型;
ColumnSize: 列大小;
DecimalDigits: 小数位;
Nullable: 是否可为空 | +| SQLDisconnect | 断开数据库连接 | (SQLHDBC ConnectionHandle) | ConnectionHandle: 连接句柄 | +| SQLDriverConnect | 使用连接字符串建立连接 | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR \*InConnectionString, SQLSMALLINT StringLength1, SQLCHAR \*OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: 连接句柄;
WindowHandle: 窗口句柄;
InConnectionString: 输入连接字符串;
StringLength1: 输入长度;
OutConnectionString: 输出连接字符串;
BufferLength: 输出缓冲区;
StringLength2: 返回长度;
DriverCompletion: 连接提示方式 | +| SQLEndTran | 提交或回滚事务 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: 句柄类型;
Handle: 连接或环境句柄;
CompletionType: 提交或回滚事务 | +| SQLExecDirect | 直接执行SQL语句 | (SQLHSTMT StatementHandle, SQLCHAR \*StatementText, SQLINTEGER TextLength) | StatementHandle: 语句句柄;
StatementText: SQL文本;
TextLength: SQL长度 | +| SQLFetch | 提取结果集中的下一行 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLFreeHandle | 释放ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: 句柄类型;
Handle: 要释放的句柄 | +| SQLFreeStmt | 释放语句相关资源 | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: 语句句柄;
Option: 释放选项(关闭游标/重置参数等) | +| SQLGetConnectAttr | 获取连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 返回属性值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetData | 获取结果数据 | (SQLHSTMT StatementHandle, SQLUSMALLINT Col\_or\_Param\_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
Col\_or\_Param\_Num: 列号;
TargetType: C类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区大小;
StrLen\_or\_Ind: 返回长度或NULL标志 | +| SQLGetDiagField | 获取诊断字段 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
DiagIdentifier: 诊断字段ID;
DiagInfo: 输出信息;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetDiagRec | 获取诊断记录 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR \*Sqlstate, SQLINTEGER \*NativeError, SQLCHAR \*MessageText, SQLSMALLINT BufferLength, SQLSMALLINT \*TextLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
Sqlstate: SQL状态码;
NativeError: 原生错误码;
MessageText: 错误信息;
BufferLength: 缓冲区;
TextLength: 返回长度 | +| SQLGetInfo | 获取数据库信息 | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | ConnectionHandle: 连接句柄;

InfoType: 信息类型;
InfoValue: 返回值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetStmtAttr | 获取语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 返回值;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetTypeInfo | 获取数据类型信息 | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: 语句句柄;
DataType: SQL数据类型 | +| SQLMoreResults | 获取更多结果集 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLNumResultCols | 获取结果集列数 | (SQLHSTMT StatementHandle, SQLSMALLINT \*ColumnCount) | StatementHandle: 语句句柄;
ColumnCount: 返回列数 | +| SQLRowCount | 获取受影响的行数 | (SQLHSTMT StatementHandle, SQLLEN \*RowCount) | StatementHandle: 语句句柄;
RowCount: 返回受影响行数 | +| SQLSetConnectAttr | 设置连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 属性值长度 | +| SQLSetEnvAttr | 设置环境属性 | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: 环境句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLSetStmtAttr | 设置语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLTables | 查询表信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*TableType, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/TableName: 表名;
TableType: 表类型;
NameLength\*: 对应长度 | + +### 3.2 数据类型转换 + +IoTDB 数据类型与 ODBC 标准数据类型的映射关系如下: + +| **IoTDB 数据类型** | **ODBC 数据类型** | +| -------------------------- | ------------------------- | +| BOOLEAN | SQL\_BIT | +| INT32 | SQL\_INTEGER | +| INT64 | SQL\_BIGINT | +| FLOAT | SQL\_REAL | +| DOUBLE | SQL\_DOUBLE | +| TEXT | SQL\_VARCHAR | +| STRING | SQL\_VARCHAR | +| BLOB | SQL\_LONGVARBINARY | +| TIMESTAMP | SQL\_BIGINT | +| DATE | SQL\_DATE | + +## 4. 操作示例 + +本章节主要介绍 **C#**、**Python**、**C++**、**PowerBI**、**Excel** 全类型操作示例,覆盖数据查询、插入、删除等核心操作。 + +### 4.1 C# 示例 + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console. +WriteLine function. This is an issue with the ConsoleTable package. +*****/ +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// 执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果 +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + // 输出表头 + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + // 输出内容 + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// 执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"数据库错误:{ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"发生未知错误:{ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};loglevel=4;istablemodel=0"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + string[] insertStatements = new string[] + { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')" + }; + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine($"[DEBUG] Inserted {insertStatements.Length} rows. Begin to query."); + + Query(dbConnection); // 执行查询并输出结果 +} +``` + +### 4.2 Python 示例 + +1. 通过Python访问odbc,需安装pyodbc包 + +```Plain +pip install pyodbc +``` + +2. 完整代码 + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python 示例 - 树模型(Tree Model) +使用 pyodbc 连接 IoTDB ODBC 驱动,通过 istablemodel=0 使用树模型。 +功能参考 examples/BasicTest/TreeTest/TreeTest.cs 和 examples/cpp-example/TreeTest.cpp。 +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + rows = cursor.fetchall() + + col_widths = [max(len(str(col)), 4) for col in columns] + for row in rows: + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"loglevel=4;istablemodel=0" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + insert_statements = [ + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600001, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print(f"[DEBUG] Inserted {len(insert_statements)} rows. Begin to query.") + + query_sql = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000" + query(conn, query_sql) + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + +### 4.3 C++ 示例 + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// 执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果 +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + const std::string sqlQuery = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Get data front every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// 执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";loglevel=4;istablemodel=0"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + const char* insertStatements[] = { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "[DEBUG] Inserted 20 rows. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI 示例 + +1. 打开 PowerBI Desktop,创建新项目; +2. 点击「主页」→「获取数据」→「更多...」→「ODBC」→ 点击「连接」按钮; +3. 数据源选择:在弹出窗口中选择「数据源名称 (DSN)」,下拉选择 `Apache IoTDB DSN`; +4. 高级配置: + +* 点击「高级选项」,在「连接字符串」输入框填写配置(样例): + +```Plain +server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 +``` + +* 说明: + + * `dsn` 项可选,填写 / 不填写均不影响连接; + * `loglevel` 分为 0-4 等级:0 级(ERROR)日志最少,4 级(TRACE)日志最详细,按需设置; + * `server`/`dsn`/`loglevel` 大小写不敏感(如可写为 `Server`); + * 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 + +5. 身份验证:输入用户名(默认 `root`)和密码(默认 `root`),点击「连接」; +6. 数据加载:点击「加载」即可查看数据。 + +### 4.5 Excel 示例 + +1. 打开 Excel,创建空白工作簿; +2. 点击「数据」选项卡 →「自其他来源」→「来自数据连接向导」; +3. 数据源选择:选择「ODBC DSN」→ 下一步 → 选择 `Apache IoTDB DSN` → 下一步; +4. 连接配置: +* 连接字符串、用户名、密码的输入流程与 PowerBI 完全一致,连接字符串格式参考: + +```Plain +server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 +``` + +* 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 +5. 保存连接:自定义设置数据连接文件名、连接描述等信息,点击「完成」; +6. 导入数据:选择数据导入到工作表的位置(如「现有工作表」的 A1 单元格),点击「确定」,完成数据加载。 diff --git a/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..a54dc1385 --- /dev/null +++ b/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md @@ -0,0 +1,1081 @@ + + +# ODBC + +## 1. 功能介绍 + +IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 + +## 2. 使用方式 + +推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 + +### 2.1 环境要求 + +仅需满足操作系统层面的 ODBC 驱动管理器依赖,无需配置编译环境: + +| **操作系统** | **要求与安装方式** | +| -------------------- |------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11、Server 2016/2019/2022**:自带 ODBC 17/18 版本驱动管理器,无需额外安装
2. **Windows 8.1/Server 2012 R2**:需手动安装对应版本 ODBC 驱动管理器 | + +### 2.2 安装步骤 + +1. 联系天谋团队获取预编译二进制包 + +二进制包目录结构: + +```Plain +├── bin/ +│ ├── apache_iotdb_odbc.dll +│ └── install_driver.exe +├── install.bat +└── registry.bat +``` + +2. 以**管理员权限**打开命令行工具(CMD/PowerShell),并运行以下命令:(可以将路径替换为任意绝对路径) + +```Bash +install.bat "C:\Program Files\Apache IoTDB ODBC Driver" +``` + +脚本自动完成以下操作: + +* 创建安装目录(如果不存在) +* 将 `bin\apache_iotdb_odbc.dll` 复制到指定安装目录 +* 调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLInstallDriverEx`)将驱动注册到系统 + +3. 验证安装:打开「ODBC 数据源管理器」,在「驱动程序」选项卡中可查看到 `Apache IoTDB ODBC Driver`,即表示注册成功。 + +![](/img/odbc-1.png) + +### 2.3 卸载步骤 + +1. 以管理员身份打开命令提示符,`cd` 进入项目根目录。 +2. 运行卸载脚本: + +```Bash +uninstall.bat +``` + +脚本会调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLRemoveDriver`)从系统中注销驱动。安装目录中的 DLL 文件不会被自动删除,如需清理请手动删除。 + +### 2.4 连接配置 + +安装驱动后,需要配置数据源(DSN)才能让应用程序通过 DSN 名称连接数据库。IoTDB ODBC 驱动支持通过数据源和连接字符串配置连接参数两种方法。 + +#### 2.4.1 配置数据源 + +**通过 ODBC 数据源管理器配置** + +1. 打开"ODBC 数据源管理程序",切换到"用户 DSN"选项卡,点击"添加"按钮。 + +![](/img/odbc-2.png) + +2. 在弹出的驱动程序列表中选择"Apache IoTDB ODBC Driver",点击"完成"。 + +![](/img/odbc-3.png) + +3. 弹出数据源配置对话框,填写连接参数,随后点击 OK: + +![](/img/odbc-4.png) + +对话框中各字段的含义如下: + +| **区域** | **字段** | **说明** | +| ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- | +| Data Source | DSN Name | 数据源名称,应用程序通过此名称引用该数据源 | +| Data Source | Description | 数据源描述(可选) | +| Connection | Server | IoTDB 服务器 IP 地址,默认 127.0.0.1 | +| Connection | Port | IoTDB Session API 端口,默认 6667 | +| Connection | User | 用户名,默认 root | +| Connection | Password | 密码,默认 root | +| Options | Table Model | 勾选时使用表模型,取消勾选时使用树模型 | +| Options | Database | 数据库名称。仅表模型模式下可用;树模型时此字段灰化不可编辑 | +| Options | Log Level | 日志级别(0-4):0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE | +| Options | Session Timeout | 会话超时时间(毫秒),0 表示不设超时。注意服务端 queryTimeoutThreshold 默认为 60000ms,超过此值需修改服务端配置 | +| Options | Batch Size | 每次拉取的行数,默认 1000。设为 0 时重置为默认值 | + +4. 填写完成后,可以点击"Test Connection"按钮测试连接。测试连接会使用当前填写的参数尝试连接到 IoTDB 服务器并执行 `SHOW VERSION` 查询。连接成功时会显示服务器版本信息,失败时会显示具体的错误原因。 +5. 确认参数无误后,点击"OK"保存。数据源会出现在"用户 DSN"列表中,如下图中的名称为123的数据源。 + +![](/img/odbc-5.png) + +如需修改已有数据源的配置,在列表中选中后点击"配置"按钮即可重新编辑。 + +#### 2.4.2 连接字符串 + +连接字符串格式为**分号分隔的键值对**,如: + +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2 +``` + +具体字段属性介绍见下表: + +| **字段名称** | **说明** | **可选值** | **默认值** | +| --------------------------- | ---------------------------------- |------------------------------------------------------------------------------------------------------------------------------| --------------------------------- | +| DSN | 数据源名称 | 自定义数据源名 | - | +| uid | 数据库用户名 | 任意字符串 | root | +| pwd | 数据库密码 | 任意字符串 | root | +| server | IoTDB 服务器地址 | ip地址 | 127.0.0.1 | +| port | IoTDB 服务器端口 | 端口 | 6667 | +| database | 数据库名称(仅表模型模式下生效) | 任意字符串 | 空字符串| +| loglevel | 日志级别 | 整数值(0-4) | 4(LOG\_LEVEL\_TRACE) | +| isTableModel / tablemodel | 是否启用表模型模式 | 布尔类型,支持多种表示方式:
1. 0, false, no, off :设置为 false;
2. 1, true, yes, on :设置为 true;
3. 其他值默认设置为 true。 | true| +| sessiontimeoutms | Session 超时时间(毫秒) | 64 位整数,默认为`LLONG_MAX`;设置为`0`时将被替换为`LLONG_MAX`。注意,服务端有超时设置项:`private long queryTimeoutThreshold = 60000;`需要修改这一项才能得到超过60秒的超时时间。 | LLONG\_MAX| +| batchsize | 每次拉取数据的批量大小 | 64 位整数,默认为`1000`;设置为`0`时将被替换为`1000` | 1000| + +说明: + +* 字段名称不区分大小写(自动转换为小写进行比较) +* 连接字符串格式为分号分隔的键值对,如:`Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2` +* 对于布尔类型的字段(isTableModel),支持多种表示方式 +* 所有字段都是可选的,如果未指定则使用默认值 +* 不支持的字段会忽略并在日志中记录警告信息,但不会影响连接 +* 服务器接口默认值 6667 是 IoTDB 的 C++ Session 接口所使用的默认端口。本 ODBC 驱动使用 C++ Session 接口与 IoTDB 传递数据。如果 IoTDB 服务端的 C++ Session 接口使用的端口不是默认的,需要在 ODBC 连接字符串中作相应的更改。 + +#### 2.4.3 数据源配置与连接字符串的关系 + +在 ODBC 数据源管理器中保存的配置,会以键值对的形式写入系统的 ODBC 数据源配置中(Windows 下对应注册表 `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI`)。当应用程序使用 `SQLConnect` 或在连接字符串中指定 `DSN=数据源名称` 时,驱动会从系统配置中读取这些参数。 + +**连接字符串的优先级高于 DSN 中保存的配置。** 具体规则如下: + +1. 如果连接字符串中包含 `DSN=xxx` 且不包含 `DRIVER=...`,驱动会先从系统配置中加载该 DSN 的所有参数作为基础值。 +2. 然后,连接字符串中显式指定的参数会覆盖 DSN 中的同名参数。 +3. 如果连接字符串中包含 `DRIVER=...`,则不会从系统配置中读取任何 DSN 参数,完全以连接字符串为准。 + +例如:DSN 中配置了 `Server=192.168.1.100`、`Port=6667`,但连接字符串为 `DSN=MyDSN;Server=127.0.0.1`,则实际连接使用 `Server=127.0.0.1`(连接字符串覆盖),`Port=6667`(来自 DSN)。 + +### 2.5 日志记录 + +驱动运行时的日志输出分为「驱动自身日志」和「ODBC 管理器追踪日志」两类,需注意日志等级对性能的影响。 + +#### 2.5.1 驱动自身日志 + +* 输出位置:用户主目录下的 `apache_iotdb_odbc.log`; +* 日志等级:通过连接字符串的 `loglevel` 配置(0-4,等级越高输出越详细); +* 性能影响:高日志等级会显著降低驱动性能,建议仅调试时使用。 + +#### 2.5.2 ODBC 管理器追踪日志 + +* 开启方式:打开「ODBC 数据源管理器」→「跟踪」→「立即启动跟踪」; +* 注意事项:开启后会大幅降低驱动性能,仅用于问题排查。 + +## 3. 接口支持 + +### 3.1 方法列表 + +驱动对 ODBC 标准 API 的支持情况如下: + +| ODBC/Setup API | 函数功能 | 参数列表 | 参数说明 | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SQLAllocHandle| 分配ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE \*OutputHandle) | HandleType: 要分配的句柄类型(ENV/DBC/STMT/DESC);
InputHandle: 上级上下文句柄;
OutputHandle: 返回的新句柄指针 | +| SQLBindCol | 绑定列到结果缓冲区 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
TargetType: C数据类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区长度;
StrLen\_or\_Ind: 返回数据长度或NULL指示 | +| SQLColAttribute| 获取列属性信息 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength, SQLLEN \*NumericAttribute) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
FieldIdentifier: 属性ID;
CharacterAttribute: 字符属性输出;
BufferLength: 缓冲区长度;
StringLength: 返回长度;
NumericAttribute: 数值属性输出 | +| SQLColumns| 查询表列信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*ColumnName, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/Table/ColumnName: 查询对象名称;
NameLength\*: 对应名称长度 | +| SQLConnect | 建立数据库连接 | (SQLHDBC ConnectionHandle, SQLCHAR \*ServerName, SQLSMALLINT NameLength1, SQLCHAR \*UserName, SQLSMALLINT NameLength2, SQLCHAR \*Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: 连接句柄;
ServerName: 数据源名称;
UserName: 用户名;
Authentication: 密码;NameLength\*: 字符串长度 | +| SQLDescribeCol | 描述结果集中的列 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR \*ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT \*NameLength, SQLSMALLINT \*DataType, SQLULEN \*ColumnSize, SQLSMALLINT \*DecimalDigits, SQLSMALLINT \*Nullable) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
ColumnName: 列名输出;
BufferLength: 缓冲区长度;
NameLength: 返回列名长度;
DataType: SQL类型;
ColumnSize: 列大小;
DecimalDigits: 小数位;
Nullable: 是否可为空 | +| SQLDisconnect | 断开数据库连接 | (SQLHDBC ConnectionHandle) | ConnectionHandle: 连接句柄 | +| SQLDriverConnect | 使用连接字符串建立连接 | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR \*InConnectionString, SQLSMALLINT StringLength1, SQLCHAR \*OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: 连接句柄;
WindowHandle: 窗口句柄;
InConnectionString: 输入连接字符串;
StringLength1: 输入长度;
OutConnectionString: 输出连接字符串;
BufferLength: 输出缓冲区;
StringLength2: 返回长度;
DriverCompletion: 连接提示方式 | +| SQLEndTran | 提交或回滚事务 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: 句柄类型;
Handle: 连接或环境句柄;
CompletionType: 提交或回滚事务 | +| SQLExecDirect | 直接执行SQL语句 | (SQLHSTMT StatementHandle, SQLCHAR \*StatementText, SQLINTEGER TextLength) | StatementHandle: 语句句柄;
StatementText: SQL文本;
TextLength: SQL长度 | +| SQLFetch | 提取结果集中的下一行 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLFreeHandle | 释放ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: 句柄类型;
Handle: 要释放的句柄 | +| SQLFreeStmt | 释放语句相关资源 | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: 语句句柄;
Option: 释放选项(关闭游标/重置参数等) | +| SQLGetConnectAttr | 获取连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 返回属性值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetData | 获取结果数据 | (SQLHSTMT StatementHandle, SQLUSMALLINT Col\_or\_Param\_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
Col\_or\_Param\_Num: 列号;
TargetType: C类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区大小;
StrLen\_or\_Ind: 返回长度或NULL标志 | +| SQLGetDiagField | 获取诊断字段 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
DiagIdentifier: 诊断字段ID;
DiagInfo: 输出信息;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetDiagRec | 获取诊断记录 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR \*Sqlstate, SQLINTEGER \*NativeError, SQLCHAR \*MessageText, SQLSMALLINT BufferLength, SQLSMALLINT \*TextLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
Sqlstate: SQL状态码;
NativeError: 原生错误码;
MessageText: 错误信息;
BufferLength: 缓冲区;
TextLength: 返回长度 | +| SQLGetInfo | 获取数据库信息 | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | ConnectionHandle: 连接句柄;

InfoType: 信息类型;
InfoValue: 返回值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetStmtAttr | 获取语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 返回值;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetTypeInfo | 获取数据类型信息 | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: 语句句柄;
DataType: SQL数据类型 | +| SQLMoreResults | 获取更多结果集 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLNumResultCols | 获取结果集列数 | (SQLHSTMT StatementHandle, SQLSMALLINT \*ColumnCount) | StatementHandle: 语句句柄;
ColumnCount: 返回列数 | +| SQLRowCount | 获取受影响的行数 | (SQLHSTMT StatementHandle, SQLLEN \*RowCount) | StatementHandle: 语句句柄;
RowCount: 返回受影响行数 | +| SQLSetConnectAttr | 设置连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 属性值长度 | +| SQLSetEnvAttr | 设置环境属性 | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: 环境句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLSetStmtAttr | 设置语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLTables | 查询表信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*TableType, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/TableName: 表名;
TableType: 表类型;
NameLength\*: 对应长度 | + +### 3.2 数据类型转换 + +IoTDB 数据类型与 ODBC 标准数据类型的映射关系如下: + +| **IoTDB 数据类型** | **ODBC 数据类型** | +| -------------------------- | ------------------------- | +| BOOLEAN | SQL\_BIT | +| INT32 | SQL\_INTEGER | +| INT64 | SQL\_BIGINT | +| FLOAT | SQL\_REAL | +| DOUBLE | SQL\_DOUBLE | +| TEXT | SQL\_VARCHAR | +| STRING | SQL\_VARCHAR | +| BLOB | SQL\_LONGVARBINARY | +| TIMESTAMP | SQL\_BIGINT | +| DATE | SQL\_DATE | + +## 4. 操作示例 + +本章节主要介绍 **C#**、**Python**、**C++**、**PowerBI**、**Excel** 全类型操作示例,覆盖数据查询、插入、删除等核心操作。 + +### 4.1 C# 示例 + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console. +WriteLine function. This is an issue with the ConsoleTable package. +*****/ +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// 执行 SELECT 查询并以表格形式输出 fulltable 的结果 +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "select * from fulltable"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + // 输出表头 + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + // 输出内容 + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// 执行非查询 SQL 语句(如 CREATE DATABASE、CREATE TABLE、INSERT 等) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"数据库错误:{ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"发生未知错误:{ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var database = "test"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};Database={database};loglevel=4"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + Console.WriteLine($"Successfully opened connection. database name = {dbConnection.Driver}"); + Execute(dbConnection, "CREATE DATABASE IF NOT EXISTS test"); + Execute(dbConnection, "use test"); + Console.WriteLine("use test Execute complete. Begin to setup fulltable."); + + Execute(dbConnection, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + string[] insertStatements = new string[] + { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine("fulltable setup complete. Begin to query."); + Query(dbConnection); // 执行查询并输出结果 +} + +``` + +### 4.2 Python 示例 + +1. 通过Python访问odbc,需安装pyodbc包 + +```Plain +pip install pyodbc +``` + +2. 完整代码 + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python example +Use pyodbc to connect to the IoTDB ODBC driver and perform operations such as query and insert. +For reference, see examples/cpp-example/test.cpp and examples/BasicTest/BasicTest/Program.cs +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """执行非查询 SQL 语句(如 USE、CREATE、INSERT、DELETE 等)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + # INSERT/UPDATE/DELETE require commit; session commands such as USE do not. + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """执行 SELECT 查询并以表格形式输出结果""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + # Get column names (if the name contains '.', take the last segment, consistent with C++/C# samples). + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + # Fetch data rows + rows = cursor.fetchall() + + # Simple table output + col_widths = [max(len(str(col)), 4) for col in columns] + for i, row in enumerate(rows): + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + # Print header + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + # Print data rows + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + database = "test" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"Database={database};loglevel=4" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + execute(conn, "CREATE DATABASE IF NOT EXISTS test") + execute(conn, "use test") + print("use test Execute complete. Begin to setup fulltable.") + + # Create the fulltable table and insert test data + execute( + conn, + "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, " + "int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, " + "double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, " + "blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) " + "WITH (TTL=315360000000)", + ) + insert_statements = [ + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print("fulltable setup complete. Begin to query.") + query(conn, "select * from fulltable") + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + +### 4.3 C++ 示例 + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +// 错误处理函数(保持核心功能) +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +// 简化版表格输出 - 仅展示基本数据 +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + // 打印表头 + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // 打印分隔线 + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + // 打印数据行 + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// 执行 SELECT 查询并以表格形式输出 fulltable 的结果 +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + // 分配语句句柄 + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + // 执行查询 + const std::string sqlQuery = "select * from fulltable"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // 获取列数量 + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + // 如果没有列,直接返回 + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + // 获取列名和类型信息 + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Get data front every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// 执行非查询 SQL 语句(如 CREATE DATABASE、CREATE TABLE、INSERT 等) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + // 分配语句句柄 + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + // 执行命令 + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + // 释放语句句柄 + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + // 1. 初始化ODBC环境 + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + // 2. 建立连接 + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + // 连接字符串 + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + std::string database = "test"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";Database=" + database + ";loglevel=4"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + // 获取驱动名称 + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + // 3. 执行操作 + Execute(hDbc, "CREATE DATABASE IF NOT EXISTS test"); + Execute(hDbc, "use test"); + std::cout << "use test Execute complete. Begin to setup fulltable." << std::endl; + + // 创建 fulltable 表并插入测试数据 + Execute(hDbc, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)"); + const char* insertStatements[] = { + "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689600000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689660000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', '0x506C616E7444617461', 1735689720000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', '0x506C616E7444617462', 1735689780000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', '0x506C616E7444617461', 1735689840000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689900000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', '0x506C616E7444617463', 1735689960000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', '0x506C616E7444617464', 1735690020000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', '0x506C616E7444617463', 1735690080000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690140000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', '0x506C616E7444617465', 1735690200000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', '0x506C616E7444617466', 1735690260000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', '0x506C616E7444617465', 1735690320000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690380000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690440000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', '0x506C616E7444617467', 1735690500000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', '0x506C616E7444617468', 1735690560000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690620000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690680000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')", + "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', '0x506C616E7444617469', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "fulltable setup complete. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + // 4. 清理资源 + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + // 异常清理 + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI 示例 + +1. 打开 PowerBI Desktop,创建新项目; +2. 点击「主页」→「获取数据」→「更多...」→「ODBC」→ 点击「连接」按钮; +3. 数据源选择:在弹出窗口中选择「数据源名称 (DSN)」,下拉选择 `Apache IoTDB DSN`; +4. 高级配置: + +* 点击「高级选项」,在「连接字符串」输入框填写配置(样例): + +```Plain +server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 +``` + +* 说明: + + * `dsn` 项可选,填写 / 不填写均不影响连接; + * `loglevel` 分为 0-4 等级:0 级(ERROR)日志最少,4 级(TRACE)日志最详细,按需设置; + - `server/database/dsn/loglevel` 大小写不敏感(如可写为 `Server/DATABASE`); + * 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 + +5. 身份验证:输入用户名(默认 `root`)和密码(默认 `root`),点击「连接」; +6. 数据加载:在界面中选择需要调用的表(如 `fulltable/table1`),点击「加载」即可查看数据。 + +### 4.5 Excel 示例 + +1. 打开 Excel,创建空白工作簿; +2. 点击「数据」选项卡 →「自其他来源」→「来自数据连接向导」; +3. 数据源选择:选择「ODBC DSN」→ 下一步 → 选择 `Apache IoTDB DSN` → 下一步; +4. 连接配置: +* 连接字符串、用户名、密码的输入流程与 PowerBI 完全一致,连接字符串格式参考: + +```Plain +server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 +``` + +* 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 +5. 表选择:选择需要访问的数据库和表(如 fulltable),点击「下一步」; +6. 保存连接:自定义设置数据连接文件名、连接描述等信息,点击「完成」; +7. 导入数据:选择数据导入到工作表的位置(如「现有工作表」的 A1 单元格),点击「确定」,完成数据加载。 diff --git a/src/zh/UserGuide/latest/API/Programming-ODBC.md b/src/zh/UserGuide/latest/API/Programming-ODBC.md deleted file mode 100644 index 756ba2fdd..000000000 --- a/src/zh/UserGuide/latest/API/Programming-ODBC.md +++ /dev/null @@ -1,146 +0,0 @@ - - -# ODBC -在 JDBC 插件的基础上,IoTDB 可以通过 ODBC-JDBC 桥来支持通过 ODBC 对数据库的操作。 - -## 1. 依赖 -* 带依赖打包的 IoTDB JDBC 插件包 -* ODBC-JDBC 桥(如 Zappy-Sys) - -## 2. 部署方法 -### 2.1 准备 JDBC 插件包 -下载 IoTDB 源码,在根目录下执行下面的命令: -```shell -mvn clean package -pl iotdb-client/jdbc -am -DskipTests -P get-jar-with-dependencies -``` -之后,就可以在`iotdb-client/jdbc/target`目录下看到`iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar`文件。 - -### 2.2 准备 ODBC-JDBC 桥 -*注意: 这里给出的仅仅是一种 ODBC-JDBC 桥,仅作示例。读者可以自行寻找其他的 ODBC-JDBC 桥来对接 IoTDB 的 JDBC 插件。* -1. **下载 Zappy-Sys ODBC-JDBC 桥插件**: - 进入 https://zappysys.com/products/odbc-powerpack/odbc-jdbc-bridge-driver/ 网站,点击下载按钮并直接安装。 - - ![ZappySys_website.jpg](/img/ZappySys_website.jpg) - -2. **准备 IoTDB**:打开 IoTDB 集群,并任意写入一条数据。 - ```sql - IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true) - ``` - -3. **部署及调试插件**: - 1. 打开 ODBC 数据源 32/64 位,取决于 Windows 的位数,一个示例的位置是 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools`。 - - ![ODBC_ADD_CN.jpg](/img/ODBC_ADD_CN.jpg) - - 2. 点击添加,选择 ZappySys JDBC Bridge。 - - ![ODBC_CREATE_CN.jpg](/img/ODBC_CREATE_CN.jpg) - - 3. 填写如下配置: - - | 配置项 | 填写内容 | 示例 | - |---------------------|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------| - | Connection String | jdbc:iotdb://:/ | jdbc:iotdb://127.0.0.1:6667/ | - | Driver Class | org.apache.iotdb.jdbc.IoTDBDriver | org.apache.iotdb.jdbc.IoTDBDriver | - | JDBC driver file(s) | IoTDB JDBC jar-with-dependencies 插件路径 | C:\Users\13361\Documents\GitHub\iotdb\iotdb-client\jdbc\target\iotdb-jdbc-1.3.2-SNAPSHOT-jar-with-dependencies.jar | - | User name | IoTDB 的用户名 | root | - | User password | IoTDB 的密码 | root | - - ![ODBC_CONNECTION.png](/img/ODBC_CONNECTION.png) - - 4. 点击 Test Connection 按钮,应该显示连接成功。 - - ![ODBC_CONFIG_CN.jpg](/img/ODBC_CONFIG_CN.jpg) - - 5. 点击上方的 Preview, 将查询文本换为 `select * from root.**`,点击 Preview Data,应该正确显示查询结果。 - - ![ODBC_TEST.jpg](/img/ODBC_TEST.jpg) - -4. **使用 ODBC 操作数据**:正确部署后,就可以使用 Windows 的 ODBC 库,对 IoTDB 的数据进行操作。 这里给出 C# 语言的代码示例: - ```C# - using System.Data.Odbc; - - // Get a connection - var dbConnection = new OdbcConnection("DSN=ZappySys JDBC Bridge"); - dbConnection.Open(); - - // Execute the write commands to prepare data - var dbCommand = dbConnection.CreateCommand(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s1) values(1715670861634, 1)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s2) values(1715670861634, true)"; - dbCommand.ExecuteNonQuery(); - dbCommand.CommandText = "insert into root.Keller.Flur.Energieversorgung(time, s3) values(1715670861634, 3.1)"; - dbCommand.ExecuteNonQuery(); - - // Execute the read command - dbCommand.CommandText = "SELECT * FROM root.Keller.Flur.Energieversorgung"; - var dbReader = dbCommand.ExecuteReader(); - - // Write the output header - var fCount = dbReader.FieldCount; - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fName = dbReader.GetName(i); - Console.Write(fName + ":"); - } - Console.WriteLine(); - - // Output the content - while (dbReader.Read()) - { - Console.Write(":"); - for(var i = 0; i < fCount; i++) - { - var fieldType = dbReader.GetFieldType(i); - switch (fieldType.Name) - { - case "DateTime": - var dateTime = dbReader.GetInt64(i); - Console.Write(dateTime + ":"); - break; - case "Double": - if (dbReader.IsDBNull(i)) - { - Console.Write("null:"); - } - else - { - var fValue = dbReader.GetDouble(i); - Console.Write(fValue + ":"); - } - break; - default: - Console.Write(fieldType.Name + ":"); - break; - } - } - Console.WriteLine(); - } - - // Shut down gracefully - dbReader.Close(); - dbCommand.Dispose(); - dbConnection.Close(); - ``` - 运行该程序可以向 IoTDB 内写入数据,并且查询并打印写入的数据。 diff --git a/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md new file mode 100644 index 000000000..41125fb3d --- /dev/null +++ b/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md @@ -0,0 +1,1028 @@ + + +# ODBC + +## 1. 功能介绍 + +IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 + +## 2. 使用方式 + +推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 + +### 2.1 环境要求 + +仅需满足操作系统层面的 ODBC 驱动管理器依赖,无需配置编译环境: + +| **操作系统** | **要求与安装方式** | +| -------------------- |------------------------------------------------------------------------------------------------------------------------------------| +| Windows | 1. **Windows 10/11、Server 2016/2019/2022**:自带 ODBC 17/18 版本驱动管理器,无需额外安装
2. **Windows 8.1/Server 2012 R2**:需手动安装对应版本 ODBC 驱动管理器 | + +### 2.2 安装步骤 + +1. 联系天谋团队获取预编译二进制包 + +二进制包目录结构: + +```Plain +├── bin/ +│ ├── apache_iotdb_odbc.dll +│ └── install_driver.exe +├── install.bat +└── registry.bat +``` + +2. 以**管理员权限**打开命令行工具(CMD/PowerShell),并运行以下命令:(可以将路径替换为任意绝对路径) + +```Bash +install.bat "C:\Program Files\Apache IoTDB ODBC Driver" +``` + +脚本自动完成以下操作: + +* 创建安装目录(如果不存在) +* 将 `bin\apache_iotdb_odbc.dll` 复制到指定安装目录 +* 调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLInstallDriverEx`)将驱动注册到系统 + +3. 验证安装:打开「ODBC 数据源管理器」,在「驱动程序」选项卡中可查看到 `Apache IoTDB ODBC Driver`,即表示注册成功。 + +![](/img/odbc-1.png) + +### 2.3 卸载步骤 + +1. 以管理员身份打开命令提示符,`cd` 进入项目根目录。 +2. 运行卸载脚本: + +```Bash +uninstall.bat +``` + +脚本会调用 `install_driver.exe` 通过 ODBC 标准 API(`SQLRemoveDriver`)从系统中注销驱动。安装目录中的 DLL 文件不会被自动删除,如需清理请手动删除。 + +### 2.4 连接配置 + +安装驱动后,需要配置数据源(DSN)才能让应用程序通过 DSN 名称连接数据库。IoTDB ODBC 驱动支持通过数据源和连接字符串配置连接参数两种方法。 + +#### 2.4.1 配置数据源 + +**通过 ODBC 数据源管理器配置** + +1. 打开"ODBC 数据源管理程序",切换到"用户 DSN"选项卡,点击"添加"按钮。 + +![](/img/odbc-2.png) + +2. 在弹出的驱动程序列表中选择"Apache IoTDB ODBC Driver",点击"完成"。 + +![](/img/odbc-3.png) + +3. 弹出数据源配置对话框,填写连接参数,随后点击 OK: + +![](/img/odbc-4.png) + +对话框中各字段的含义如下: + +| **区域** | **字段** | **说明** | +| ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- | +| Data Source | DSN Name | 数据源名称,应用程序通过此名称引用该数据源 | +| Data Source | Description | 数据源描述(可选) | +| Connection | Server | IoTDB 服务器 IP 地址,默认 127.0.0.1 | +| Connection | Port | IoTDB Session API 端口,默认 6667 | +| Connection | User | 用户名,默认 root | +| Connection | Password | 密码,默认 root | +| Options | Table Model | 勾选时使用表模型,取消勾选时使用树模型 | +| Options | Database | 数据库名称。仅表模型模式下可用;树模型时此字段灰化不可编辑 | +| Options | Log Level | 日志级别(0-4):0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE | +| Options | Session Timeout | 会话超时时间(毫秒),0 表示不设超时。注意服务端 queryTimeoutThreshold 默认为 60000ms,超过此值需修改服务端配置 | +| Options | Batch Size | 每次拉取的行数,默认 1000。设为 0 时重置为默认值 | + +4. 填写完成后,可以点击"Test Connection"按钮测试连接。测试连接会使用当前填写的参数尝试连接到 IoTDB 服务器并执行 `SHOW VERSION` 查询。连接成功时会显示服务器版本信息,失败时会显示具体的错误原因。 +5. 确认参数无误后,点击"OK"保存。数据源会出现在"用户 DSN"列表中,如下图中的名称为123的数据源。 + +![](/img/odbc-5.png) + +如需修改已有数据源的配置,在列表中选中后点击"配置"按钮即可重新编辑。 + +#### 2.4.2 连接字符串 + +连接字符串格式为**分号分隔的键值对**,如: + +```Bash +Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2 +``` + +具体字段属性介绍见下表: + +| **字段名称** | **说明** | **可选值** | **默认值** | +| --------------------------- | ---------------------------------- |------------------------------------------------------------------------------------------------------------------------------| --------------------------------- | +| DSN | 数据源名称 | 自定义数据源名 | - | +| uid | 数据库用户名 | 任意字符串 | root | +| pwd | 数据库密码 | 任意字符串 | root | +| server | IoTDB 服务器地址 | ip地址 | 127.0.0.1 | +| port | IoTDB 服务器端口 | 端口 | 6667 | +| database | 数据库名称(仅表模型模式下生效) | 任意字符串 | 空字符串| +| loglevel | 日志级别 | 整数值(0-4) | 4(LOG\_LEVEL\_TRACE) | +| isTableModel / tablemodel | 是否启用表模型模式 | 布尔类型,支持多种表示方式:
1. 0, false, no, off :设置为 false;
2. 1, true, yes, on :设置为 true;
3. 其他值默认设置为 true。 | true| +| sessiontimeoutms | Session 超时时间(毫秒) | 64 位整数,默认为`LLONG_MAX`;设置为`0`时将被替换为`LLONG_MAX`。注意,服务端有超时设置项:`private long queryTimeoutThreshold = 60000;`需要修改这一项才能得到超过60秒的超时时间。 | LLONG\_MAX| +| batchsize | 每次拉取数据的批量大小 | 64 位整数,默认为`1000`;设置为`0`时将被替换为`1000` | 1000| + +说明: + +* 字段名称不区分大小写(自动转换为小写进行比较) +* 连接字符串格式为分号分隔的键值对,如:`Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;isTableModel=false;loglevel=2` +* 对于布尔类型的字段(isTableModel),支持多种表示方式 +* 所有字段都是可选的,如果未指定则使用默认值 +* 不支持的字段会忽略并在日志中记录警告信息,但不会影响连接 +* 服务器接口默认值 6667 是 IoTDB 的 C++ Session 接口所使用的默认端口。本 ODBC 驱动使用 C++ Session 接口与 IoTDB 传递数据。如果 IoTDB 服务端的 C++ Session 接口使用的端口不是默认的,需要在 ODBC 连接字符串中作相应的更改。 + +#### 2.4.3 数据源配置与连接字符串的关系 + +在 ODBC 数据源管理器中保存的配置,会以键值对的形式写入系统的 ODBC 数据源配置中(Windows 下对应注册表 `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI`)。当应用程序使用 `SQLConnect` 或在连接字符串中指定 `DSN=数据源名称` 时,驱动会从系统配置中读取这些参数。 + +**连接字符串的优先级高于 DSN 中保存的配置。** 具体规则如下: + +1. 如果连接字符串中包含 `DSN=xxx` 且不包含 `DRIVER=...`,驱动会先从系统配置中加载该 DSN 的所有参数作为基础值。 +2. 然后,连接字符串中显式指定的参数会覆盖 DSN 中的同名参数。 +3. 如果连接字符串中包含 `DRIVER=...`,则不会从系统配置中读取任何 DSN 参数,完全以连接字符串为准。 + +例如:DSN 中配置了 `Server=192.168.1.100`、`Port=6667`,但连接字符串为 `DSN=MyDSN;Server=127.0.0.1`,则实际连接使用 `Server=127.0.0.1`(连接字符串覆盖),`Port=6667`(来自 DSN)。 + +### 2.5 日志记录 + +驱动运行时的日志输出分为「驱动自身日志」和「ODBC 管理器追踪日志」两类,需注意日志等级对性能的影响。 + +#### 2.5.1 驱动自身日志 + +* 输出位置:用户主目录下的 `apache_iotdb_odbc.log`; +* 日志等级:通过连接字符串的 `loglevel` 配置(0-4,等级越高输出越详细); +* 性能影响:高日志等级会显著降低驱动性能,建议仅调试时使用。 + +#### 2.5.2 ODBC 管理器追踪日志 + +* 开启方式:打开「ODBC 数据源管理器」→「跟踪」→「立即启动跟踪」; +* 注意事项:开启后会大幅降低驱动性能,仅用于问题排查。 + +## 3. 接口支持 + +### 3.1 方法列表 + +驱动对 ODBC 标准 API 的支持情况如下: + +| ODBC/Setup API | 函数功能 | 参数列表 | 参数说明 | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SQLAllocHandle| 分配ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE \*OutputHandle) | HandleType: 要分配的句柄类型(ENV/DBC/STMT/DESC);
InputHandle: 上级上下文句柄;
OutputHandle: 返回的新句柄指针 | +| SQLBindCol | 绑定列到结果缓冲区 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
TargetType: C数据类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区长度;
StrLen\_or\_Ind: 返回数据长度或NULL指示 | +| SQLColAttribute| 获取列属性信息 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength, SQLLEN \*NumericAttribute) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
FieldIdentifier: 属性ID;
CharacterAttribute: 字符属性输出;
BufferLength: 缓冲区长度;
StringLength: 返回长度;
NumericAttribute: 数值属性输出 | +| SQLColumns| 查询表列信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*ColumnName, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/Table/ColumnName: 查询对象名称;
NameLength\*: 对应名称长度 | +| SQLConnect | 建立数据库连接 | (SQLHDBC ConnectionHandle, SQLCHAR \*ServerName, SQLSMALLINT NameLength1, SQLCHAR \*UserName, SQLSMALLINT NameLength2, SQLCHAR \*Authentication, SQLSMALLINT NameLength3) | ConnectionHandle: 连接句柄;
ServerName: 数据源名称;
UserName: 用户名;
Authentication: 密码;NameLength\*: 字符串长度 | +| SQLDescribeCol | 描述结果集中的列 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR \*ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT \*NameLength, SQLSMALLINT \*DataType, SQLULEN \*ColumnSize, SQLSMALLINT \*DecimalDigits, SQLSMALLINT \*Nullable) | StatementHandle: 语句句柄;
ColumnNumber: 列号;
ColumnName: 列名输出;
BufferLength: 缓冲区长度;
NameLength: 返回列名长度;
DataType: SQL类型;
ColumnSize: 列大小;
DecimalDigits: 小数位;
Nullable: 是否可为空 | +| SQLDisconnect | 断开数据库连接 | (SQLHDBC ConnectionHandle) | ConnectionHandle: 连接句柄 | +| SQLDriverConnect | 使用连接字符串建立连接 | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR \*InConnectionString, SQLSMALLINT StringLength1, SQLCHAR \*OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength2, SQLUSMALLINT DriverCompletion) | ConnectionHandle: 连接句柄;
WindowHandle: 窗口句柄;
InConnectionString: 输入连接字符串;
StringLength1: 输入长度;
OutConnectionString: 输出连接字符串;
BufferLength: 输出缓冲区;
StringLength2: 返回长度;
DriverCompletion: 连接提示方式 | +| SQLEndTran | 提交或回滚事务 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) | HandleType: 句柄类型;
Handle: 连接或环境句柄;
CompletionType: 提交或回滚事务 | +| SQLExecDirect | 直接执行SQL语句 | (SQLHSTMT StatementHandle, SQLCHAR \*StatementText, SQLINTEGER TextLength) | StatementHandle: 语句句柄;
StatementText: SQL文本;
TextLength: SQL长度 | +| SQLFetch | 提取结果集中的下一行 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLFreeHandle | 释放ODBC句柄 | (SQLSMALLINT HandleType, SQLHANDLE Handle) | HandleType: 句柄类型;
Handle: 要释放的句柄 | +| SQLFreeStmt | 释放语句相关资源 | (SQLHSTMT StatementHandle, SQLUSMALLINT Option) | StatementHandle: 语句句柄;
Option: 释放选项(关闭游标/重置参数等) | +| SQLGetConnectAttr | 获取连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 返回属性值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetData | 获取结果数据 | (SQLHSTMT StatementHandle, SQLUSMALLINT Col\_or\_Param\_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN \*StrLen\_or\_Ind) | StatementHandle: 语句句柄;
Col\_or\_Param\_Num: 列号;
TargetType: C类型;
TargetValue: 数据缓冲区;
BufferLength: 缓冲区大小;
StrLen\_or\_Ind: 返回长度或NULL标志 | +| SQLGetDiagField | 获取诊断字段 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
DiagIdentifier: 诊断字段ID;
DiagInfo: 输出信息;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetDiagRec | 获取诊断记录 | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR \*Sqlstate, SQLINTEGER \*NativeError, SQLCHAR \*MessageText, SQLSMALLINT BufferLength, SQLSMALLINT \*TextLength) | HandleType: 句柄类型;
Handle: 句柄;
RecNumber: 记录号;
Sqlstate: SQL状态码;
NativeError: 原生错误码;
MessageText: 错误信息;
BufferLength: 缓冲区;
TextLength: 返回长度 | +| SQLGetInfo | 获取数据库信息 | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT \*StringLength) | ConnectionHandle: 连接句柄;

InfoType: 信息类型;
InfoValue: 返回值;
BufferLength: 缓冲区长度;
StringLength: 返回长度 | +| SQLGetStmtAttr | 获取语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER \*StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 返回值;
BufferLength: 缓冲区;
StringLength: 返回长度 | +| SQLGetTypeInfo | 获取数据类型信息 | (SQLHSTMT StatementHandle, SQLSMALLINT DataType) | StatementHandle: 语句句柄;
DataType: SQL数据类型 | +| SQLMoreResults | 获取更多结果集 | (SQLHSTMT StatementHandle) | StatementHandle: 语句句柄 | +| SQLNumResultCols | 获取结果集列数 | (SQLHSTMT StatementHandle, SQLSMALLINT \*ColumnCount) | StatementHandle: 语句句柄;
ColumnCount: 返回列数 | +| SQLRowCount | 获取受影响的行数 | (SQLHSTMT StatementHandle, SQLLEN \*RowCount) | StatementHandle: 语句句柄;
RowCount: 返回受影响行数 | +| SQLSetConnectAttr | 设置连接属性 | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | ConnectionHandle: 连接句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 属性值长度 | +| SQLSetEnvAttr | 设置环境属性 | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | EnvironmentHandle: 环境句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLSetStmtAttr | 设置语句属性 | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength) | StatementHandle: 语句句柄;
Attribute: 属性ID;
Value: 属性值;
StringLength: 长度 | +| SQLTables | 查询表信息 | (SQLHSTMT StatementHandle, SQLCHAR \*CatalogName, SQLSMALLINT NameLength1, SQLCHAR \*SchemaName, SQLSMALLINT NameLength2, SQLCHAR \*TableName, SQLSMALLINT NameLength3, SQLCHAR \*TableType, SQLSMALLINT NameLength4) | StatementHandle: 语句句柄;
Catalog/Schema/TableName: 表名;
TableType: 表类型;
NameLength\*: 对应长度 | + +### 3.2 数据类型转换 + +IoTDB 数据类型与 ODBC 标准数据类型的映射关系如下: + +| **IoTDB 数据类型** | **ODBC 数据类型** | +| -------------------------- | ------------------------- | +| BOOLEAN | SQL\_BIT | +| INT32 | SQL\_INTEGER | +| INT64 | SQL\_BIGINT | +| FLOAT | SQL\_REAL | +| DOUBLE | SQL\_DOUBLE | +| TEXT | SQL\_VARCHAR | +| STRING | SQL\_VARCHAR | +| BLOB | SQL\_LONGVARBINARY | +| TIMESTAMP | SQL\_BIGINT | +| DATE | SQL\_DATE | + +## 4. 操作示例 + +本章节主要介绍 **C#**、**Python**、**C++**、**PowerBI**、**Excel** 全类型操作示例,覆盖数据查询、插入、删除等核心操作。 + +### 4.1 C# 示例 + +```C# +/******* +Note: When the output contains Chinese characters, it may cause garbled text. +This is because the table.Write() function cannot output strings in UTF-8 encoding +and can only output using GB2312 (or another system default encoding). This issue +may not occur in software like Power BI; it also does not occur when using the Console. +WriteLine function. This is an issue with the ConsoleTable package. +*****/ +using System.Data.Common; +using System.Data.Odbc; +using System.Reflection.PortableExecutable; +using ConsoleTables; +using System; + +/// 执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果 +void Query(OdbcConnection dbConnection) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + dbCommand.CommandText = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + using (OdbcDataReader dbReader = dbCommand.ExecuteReader()) + { + var fCount = dbReader.FieldCount; + Console.WriteLine($"fCount = {fCount}"); + // 输出表头 + var columns = new string[fCount]; + for (var i = 0; i < fCount; i++) + { + var fName = dbReader.GetName(i); + if (fName.Contains('.')) + { + fName = fName.Substring(fName.LastIndexOf('.') + 1); + } + columns[i] = fName; + } + // 输出内容 + var table = new ConsoleTable(columns); + while (dbReader.Read()) + { + var row = new object[fCount]; + for (var i = 0; i < fCount; i++) + { + if (dbReader.IsDBNull(i)) + { + row[i] = null; + continue; + } + row[i] = dbReader.GetValue(i); + } + table.AddRow(row); + } + table.Write(); + Console.WriteLine(); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } +} + +/// 执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建) +void Execute(OdbcConnection dbConnection, string command) +{ + try + { + using (OdbcCommand dbCommand = dbConnection.CreateCommand()) + { + try + { + dbCommand.CommandText = command; + Console.WriteLine($"Execute command: {command}"); + dbCommand.ExecuteNonQuery(); + } + catch (Exception ex) + { + Console.WriteLine($"CommandText error: {ex.Message}"); + } + } + } + catch (OdbcException ex) + { + Console.WriteLine($"数据库错误:{ex.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"发生未知错误:{ex.Message}"); + } +} + +var dsn = "Apache IoTDB DSN"; +var user = "root"; +var password = "root"; +var server = "127.0.0.1"; +var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};loglevel=4;istablemodel=0"; + +using (OdbcConnection dbConnection = new OdbcConnection(connectionString)) +{ + Console.WriteLine($"Start"); + try + { + dbConnection.Open(); + } + catch (Exception ex) + { + Console.WriteLine($"Login failed: {ex.Message}"); + Console.WriteLine($"Stack Trace: {ex.StackTrace}"); + dbConnection.Dispose(); + return; + } + string[] insertStatements = new string[] + { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')" + }; + foreach (var insert in insertStatements) + { + Execute(dbConnection, insert); + } + Console.WriteLine($"[DEBUG] Inserted {insertStatements.Length} rows. Begin to query."); + + Query(dbConnection); // 执行查询并输出结果 +} +``` + +### 4.2 Python 示例 + +1. 通过Python访问odbc,需安装pyodbc包 + +```Plain +pip install pyodbc +``` + +2. 完整代码 + +```Python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Apache IoTDB ODBC Python 示例 - 树模型(Tree Model) +使用 pyodbc 连接 IoTDB ODBC 驱动,通过 istablemodel=0 使用树模型。 +功能参考 examples/BasicTest/TreeTest/TreeTest.cs 和 examples/cpp-example/TreeTest.cpp。 +""" + +import pyodbc + +def execute(conn: pyodbc.Connection, command: str) -> None: + """执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建)""" + try: + with conn.cursor() as cursor: + cursor.execute(command) + cmd_upper = command.strip().upper() + if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")): + conn.commit() + print(f"Execute command: {command}") + except pyodbc.Error as ex: + print(f"CommandText error: {ex}") + +def query(conn: pyodbc.Connection, sql: str) -> None: + """执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果""" + try: + with conn.cursor() as cursor: + cursor.execute(sql) + col_count = len(cursor.description) + print(f"fCount = {col_count}") + + if col_count <= 0: + return + + columns = [] + for i in range(col_count): + col_name = cursor.description[i][0] or f"Column{i}" + if "." in str(col_name): + col_name = str(col_name).split(".")[-1] + columns.append(str(col_name)) + + rows = cursor.fetchall() + + col_widths = [max(len(str(col)), 4) for col in columns] + for row in rows: + for j, val in enumerate(row): + if j < len(col_widths): + col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL")) + + header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns)) + print(header) + print("-" * len(header)) + + for row in rows: + values = [] + for i, val in enumerate(row): + if val is None: + cell = "NULL" + else: + cell = str(val) + values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell) + print(" | ".join(values)) + + print() + + except pyodbc.Error as ex: + print(f"Query error: {ex}") + +def main() -> None: + dsn = "Apache IoTDB DSN" + user = "root" + password = "root" + server = "127.0.0.1" + connection_string = ( + f"DSN={dsn};Server={server};UID={user};PWD={password};" + f"loglevel=4;istablemodel=0" + ) + + print("Start") + + try: + conn = pyodbc.connect(connection_string) + except pyodbc.Error as ex: + print(f"Login failed: {ex}") + return + + try: + driver_name = conn.getinfo(6) # SQL_DRIVER_NAME + print(f"Successfully opened connection. driver = {driver_name}") + except Exception: + print("Successfully opened connection.") + + try: + insert_statements = [ + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600001, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + ] + for insert_sql in insert_statements: + execute(conn, insert_sql) + print(f"[DEBUG] Inserted {len(insert_statements)} rows. Begin to query.") + + query_sql = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000" + query(conn, query_sql) + print("Query ok") + finally: + conn.close() + +if __name__ == "__main__": + main() +``` + +### 4.3 C++ 示例 + +```C++ +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef SQL_DIAG_COLUMN_SIZE +#define SQL_DIAG_COLUMN_SIZE 33L +#endif + +void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) { + if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { + return; + } + + SQLCHAR sqlState[6]; + SQLCHAR message[SQL_MAX_MESSAGE_LENGTH]; + SQLINTEGER nativeError; + SQLSMALLINT textLength; + SQLRETURN errRet; + errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength); + + std::cerr << "ODBC Error in " << functionName << ":\n"; + std::cerr << " SQL State: " << sqlState << "\n"; + std::cerr << " Native Error: " << nativeError << "\n"; + std::cerr << " Message: " << message << "\n"; + std::cerr << " SQLGetDiagRec Return: " << errRet << "\n"; + + if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) { + exit(1); + } +} + +void PrintSimpleTable(const std::vector& headers, + const std::vector>& rows) { + for (size_t i = 0; i < headers.size(); i++) { + std::cout << headers[i]; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (size_t i = 0; i < headers.size(); i++) { + std::cout << "----------------"; + if (i < headers.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + + for (const auto& row : rows) { + for (size_t i = 0; i < row.size(); i++) { + std::cout << row[i]; + if (i < row.size() - 1) std::cout << "\t"; + } + std::cout << std::endl; + } + std::cout << std::endl; +} + +/// 执行 SELECT 查询并以表格形式输出 root.full.fulldevice 的结果 +void Query(SQLHDBC hDbc) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret = SQL_SUCCESS; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + return; + } + + const std::string sqlQuery = "SELECT * FROM root.full.fulldevice WHERE time >= 1735689600000 AND time <= 1735690790000"; + std::cout << "Execute query: " << sqlQuery << std::endl; + + ret = SQLExecDirect(hStmt, reinterpret_cast(const_cast(sqlQuery.c_str())), SQL_NTS); + if (!SQL_SUCCEEDED(ret)) { + if (ret != SQL_NO_DATA) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)"); + } + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + SQLSMALLINT colCount = 0; + ret = SQLNumResultCols(hStmt, &colCount); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::cout << "Column count = " << colCount << std::endl; + + if (colCount <= 0) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector columnNames; + std::vector columnTypes(colCount); + std::vector columnSizes(colCount); + std::vector decimalDigits(colCount); + std::vector nullable(colCount); + + // Get basic column information + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLSMALLINT nameLength = 0; + ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::vector colNameBuffer(nameLength + 1); + SQLSMALLINT actualNameLength = 0; + + ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, + &actualNameLength, NULL, NULL, NULL, NULL); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + + std::string fullName(reinterpret_cast(colNameBuffer.data())); + + size_t pos = fullName.find_last_of('.'); + if (pos != std::string::npos) { + columnNames.push_back(fullName.substr(pos + 1)); + } else { + columnNames.push_back(fullName); + } + + ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], + &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]); + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)"); + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + return; + } + } + + std::vector> tableRows; + + int rowCount = 0; + // Get data front every row + while (true) { + ret = SQLFetch(hStmt); + if (ret == SQL_NO_DATA) { + break; + } + + if (!SQL_SUCCEEDED(ret)) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch"); + break; + } + + std::vector row; + + for (SQLSMALLINT i = 1; i <= colCount; i++) { + SQLLEN indicator = 0; + std::string valueStr; + + SQLSMALLINT cType; + size_t bufferSize; + bool isCharacterType = false; + const int maxBufferSize = 32768; + + switch (columnTypes[i-1]) { + case SQL_CHAR: + case SQL_VARCHAR: + case SQL_LONGVARCHAR: + case SQL_WCHAR: + case SQL_WVARCHAR: + case SQL_WLONGVARCHAR: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_DECIMAL: + case SQL_NUMERIC: + cType = SQL_C_CHAR; + if (columnSizes[i - 1] > 0) { + bufferSize = min(maxBufferSize, static_cast(columnSizes[i-1]) * 4 + 1); + } else { + bufferSize = maxBufferSize; + } + isCharacterType = true; + break; + + case SQL_INTEGER: + case SQL_SMALLINT: + case SQL_TINYINT: + case SQL_BIGINT: + cType = SQL_C_SBIGINT; + bufferSize = sizeof(SQLBIGINT); + break; + + case SQL_REAL: + case SQL_FLOAT: + case SQL_DOUBLE: + cType = SQL_C_DOUBLE; + bufferSize = sizeof(double); + break; + + case SQL_BIT: + cType = SQL_C_BIT; + bufferSize = sizeof(SQLCHAR); + break; + + case SQL_DATE: + case SQL_TYPE_DATE: + cType = SQL_C_DATE; + bufferSize = sizeof(SQL_DATE_STRUCT); + break; + + case SQL_TIME: + case SQL_TYPE_TIME: + cType = SQL_C_TIME; + bufferSize = sizeof(SQL_TIME_STRUCT); + break; + + case SQL_TIMESTAMP: + case SQL_TYPE_TIMESTAMP: + cType = SQL_C_TIMESTAMP; + bufferSize = sizeof(SQL_TIMESTAMP_STRUCT); + break; + + default: + cType = SQL_C_CHAR; + bufferSize = 256; + isCharacterType = true; + break; + } + + std::vector buffer(bufferSize); + + ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator); + + if (indicator == SQL_NULL_DATA) { + valueStr = "NULL"; + } + else if (ret != SQL_SUCCESS) { + valueStr = "ERR_CONV"; + } + else { + if (cType == SQL_C_CHAR) { + valueStr = reinterpret_cast(buffer.data()); + } + else if (cType == SQL_C_SBIGINT) { + SQLBIGINT intVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(intVal); + } + else if (cType == SQL_C_DOUBLE) { + double doubleVal = *reinterpret_cast(buffer.data()); + valueStr = std::to_string(doubleVal); + } + else if (cType == SQL_C_BIT) { + valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE"; + } + else if (cType == SQL_C_DATE) { + SQL_DATE_STRUCT* date = reinterpret_cast(buffer.data()); + char dateStr[20]; + snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", + date->year, date->month, date->day); + valueStr = dateStr; + } + else if (cType == SQL_C_TIME) { + SQL_TIME_STRUCT* time = reinterpret_cast(buffer.data()); + char timeStr[15]; + snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", + time->hour, time->minute, time->second); + valueStr = timeStr; + } + else if (cType == SQL_C_TIMESTAMP) { + SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast(buffer.data()); + char tsStr[30]; + snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", + ts->year, ts->month, ts->day, + ts->hour, ts->minute, ts->second, + ts->fraction / 1000); + valueStr = tsStr; + } + else { + valueStr = "UNKNOWN_TYPE"; + } + + if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) { + SQLLEN actualSize = 0; + SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, + &actualSize, SQL_IS_INTEGER, NULL); + + if (indicator > 0 && static_cast(indicator) > bufferSize - 1) { + valueStr += "..."; + } + } + + } + + row.push_back(valueStr); + } + + tableRows.push_back(row); + } + + if (!tableRows.empty()) { + PrintSimpleTable(columnNames, tableRows); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } + catch (...) { + std::cerr << "Unknown exception occurred" << std::endl; + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +/// 执行非查询 SQL 语句(如 INSERT 等,树模型 INSERT 会自动创建) +void Execute(SQLHDBC hDbc, const std::string& command) { + SQLHSTMT hStmt = SQL_NULL_HSTMT; + SQLRETURN ret; + + try { + ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)"); + + ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS); + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect"); + } + + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + catch (...) { + if (hStmt != SQL_NULL_HSTMT) { + SQLFreeHandle(SQL_HANDLE_STMT, hStmt); + } + throw; + } +} + +int main() { + SQLHENV hEnv = SQL_NULL_HENV; + SQLHDBC hDbc = SQL_NULL_HDBC; + SQLRETURN ret; + + try { + std::cout << "Start" << std::endl; + + ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)"); + + ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr"); + + ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); + CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)"); + + std::string dsn = "Apache IoTDB DSN"; + std::string user = "root"; + std::string password = "root"; + std::string server = "127.0.0.1"; + + std::string connectionString = "DSN=" + dsn + ";Server=" + server + + ";UID=" + user + ";PWD=" + password + + ";loglevel=4;istablemodel=0"; + std::cout << "Using connection string: " << connectionString << std::endl; + + SQLCHAR outConnStr[1024]; + SQLSMALLINT outConnStrLen; + + ret = SQLDriverConnect(hDbc, NULL, + (SQLCHAR*)connectionString.c_str(), SQL_NTS, + outConnStr, sizeof(outConnStr), + &outConnStrLen, SQL_DRIVER_COMPLETE); + + if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { + std::cerr << "Login failed" << std::endl; + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect"); + return 1; + } + + SQLCHAR driverName[256]; + SQLSMALLINT nameLength; + ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength); + CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo"); + + std::cout << "Successfully opened connection. database name = " << driverName << std::endl; + + const char* insertStatements[] = { + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, '设备运行状态正常', '设备A-机房1', 1735689600000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, '设备运行状态正常', '设备A-机房1', 1735689660000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, '设备运行状态正常', '设备A-机房1', 1735689720000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, '设备温度偏高告警', '设备A-机房1', 1735689780000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, '设备状态恢复正常', '设备A-机房1', 1735689840000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, '设备运行状态正常', '设备B-机房2', 1735689900000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, '设备运行状态正常', '设备B-机房2', 1735689960000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, '设备湿度偏低告警', '设备B-机房2', 1735690020000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, '设备状态恢复正常', '设备B-机房2', 1735690080000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, '设备运行状态正常', '设备C-机房3', 1735690140000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, '设备运行状态正常', '设备C-机房3', 1735690200000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, '设备电压不稳告警', '设备C-机房3', 1735690260000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, '设备状态恢复正常', '设备C-机房3', 1735690320000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, '设备运行状态正常', '设备D-机房4', 1735690380000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, '设备运行状态正常', '设备D-机房4', 1735690440000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, '设备运行状态正常', '设备D-机房4', 1735690500000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, '设备信号中断告警', '设备D-机房4', 1735690560000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, '设备运行状态正常', '设备E-机房5', 1735690620000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, '设备运行状态正常', '设备E-机房5', 1735690680000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')", + "INSERT INTO root.full.fulldevice(timestamp, bool_col, int32_col, int64_col, float_col, double_col, text_col, string_col, timestamp_col, date_col) VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, '设备运行状态正常', '设备E-机房5', 1735690740000, '2026-01-04')" + }; + for (const char* sql : insertStatements) { + Execute(hDbc, sql); + } + std::cout << "[DEBUG] Inserted 20 rows. Begin to query." << std::endl; + Query(hDbc); + std::cout << "Query ok" << std::endl; + + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + + return 0; + } + catch (...) { + if (hDbc != SQL_NULL_HDBC) { + SQLDisconnect(hDbc); + SQLFreeHandle(SQL_HANDLE_DBC, hDbc); + } + if (hEnv != SQL_NULL_HENV) { + SQLFreeHandle(SQL_HANDLE_ENV, hEnv); + } + + std::cerr << "Unexpected error!" << std::endl; + return 1; + } +} +``` + +### 4.4 PowerBI 示例 + +1. 打开 PowerBI Desktop,创建新项目; +2. 点击「主页」→「获取数据」→「更多...」→「ODBC」→ 点击「连接」按钮; +3. 数据源选择:在弹出窗口中选择「数据源名称 (DSN)」,下拉选择 `Apache IoTDB DSN`; +4. 高级配置: + +* 点击「高级选项」,在「连接字符串」输入框填写配置(样例): + +```Plain +server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 +``` + +* 说明: + + * `dsn` 项可选,填写 / 不填写均不影响连接; + * `loglevel` 分为 0-4 等级:0 级(ERROR)日志最少,4 级(TRACE)日志最详细,按需设置; + * `server`/`dsn`/`loglevel` 大小写不敏感(如可写为 `Server`); + * 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 + +5. 身份验证:输入用户名(默认 `root`)和密码(默认 `root`),点击「连接」; +6. 数据加载:点击「加载」即可查看数据。 + +### 4.5 Excel 示例 + +1. 打开 Excel,创建空白工作簿; +2. 点击「数据」选项卡 →「自其他来源」→「来自数据连接向导」; +3. 数据源选择:选择「ODBC DSN」→ 下一步 → 选择 `Apache IoTDB DSN` → 下一步; +4. 连接配置: +* 连接字符串、用户名、密码的输入流程与 PowerBI 完全一致,连接字符串格式参考: + +```Plain +server=127.0.0.1;port=6667;isTableModel=false;loglevel=4 +``` + +* 如果在DSN中配置了相关信息,则可以不填写任何配置信息,驱动管理器会自动使用在DSN中填入的配置信息。 +5. 保存连接:自定义设置数据连接文件名、连接描述等信息,点击「完成」; +6. 导入数据:选择数据导入到工作表的位置(如「现有工作表」的 A1 单元格),点击「确定」,完成数据加载。 From c80228638bcfcbf64fa011be87ac7c0ef58eb23d Mon Sep 17 00:00:00 2001 From: Leto_b Date: Mon, 23 Mar 2026 18:33:34 +0800 Subject: [PATCH 2/2] add odbc --- src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md | 2 ++ src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md | 4 ++++ src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md | 2 ++ src/UserGuide/latest/API/Programming-ODBC_timecho.md | 2 ++ src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md | 2 ++ src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md | 3 +++ src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md | 2 ++ src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md | 2 ++ 8 files changed, 19 insertions(+) diff --git a/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md b/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md index 37da2439e..fe40f1f8f 100644 --- a/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md +++ b/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md @@ -24,6 +24,8 @@ ## 1. Feature Introduction The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. +> Note: This feature is supported starting from V2.0.8.2. + ## 2. Usage Method It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. diff --git a/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md b/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md index 60bdd3174..287211667 100644 --- a/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md +++ b/src/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md @@ -24,6 +24,10 @@ ## 1. Feature Introduction The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. +> Note: This feature is supported starting from V2.0.8.2. + + + ## 2. Usage Method It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. diff --git a/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md b/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md index 37da2439e..fe40f1f8f 100644 --- a/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md +++ b/src/UserGuide/latest-Table/API/Programming-ODBC_timecho.md @@ -24,6 +24,8 @@ ## 1. Feature Introduction The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. +> Note: This feature is supported starting from V2.0.8.2. + ## 2. Usage Method It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. diff --git a/src/UserGuide/latest/API/Programming-ODBC_timecho.md b/src/UserGuide/latest/API/Programming-ODBC_timecho.md index 79f1ed2b6..bea1a4eb2 100644 --- a/src/UserGuide/latest/API/Programming-ODBC_timecho.md +++ b/src/UserGuide/latest/API/Programming-ODBC_timecho.md @@ -24,6 +24,8 @@ ## 1. Feature Introduction The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol. +> Note: This feature is supported starting from V2.0.8.2. + ## 2. Usage Method It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported. diff --git a/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md index a54dc1385..6326752d8 100644 --- a/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md +++ b/src/zh/UserGuide/Master/Table/API/Programming-ODBC_timecho.md @@ -25,6 +25,8 @@ IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 +> 注意:该功能从 V2.0.8.2 起支持。 + ## 2. 使用方式 推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 diff --git a/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md index 41125fb3d..ebdfef741 100644 --- a/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md +++ b/src/zh/UserGuide/Master/Tree/API/Programming-ODBC_timecho.md @@ -25,6 +25,9 @@ IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 +> 注意:该功能从 V2.0.8.2 起支持。 + + ## 2. 使用方式 推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 diff --git a/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md index a54dc1385..6326752d8 100644 --- a/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md +++ b/src/zh/UserGuide/latest-Table/API/Programming-ODBC_timecho.md @@ -25,6 +25,8 @@ IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 +> 注意:该功能从 V2.0.8.2 起支持。 + ## 2. 使用方式 推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。 diff --git a/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md b/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md index 41125fb3d..9d3aff458 100644 --- a/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md +++ b/src/zh/UserGuide/latest/API/Programming-ODBC_timecho.md @@ -25,6 +25,8 @@ IoTDB ODBC 驱动程序提供了通过 ODBC 标准接口与数据库进行交互的能力,支持通过 ODBC 连接管理时序数据库中的数据。目前支持数据库连接、数据查询、数据插入、数据修改和数据删除等操作,可适配各类支持 ODBC 协议的应用程序与工具链。 +> 注意:该功能从 V2.0.8.2 起支持。 + ## 2. 使用方式 推荐使用预编译二进制包安装,无需自行编译,直接通过脚本完成驱动安装与系统注册,目前仅支持 Windows 系统。

N0!E3#6->`D~8ptB|+Yl#J zSvvIca{Uaww}Yq`TK;0Rb|L&tk1x=2#c<}Lp*+Re7G}P*w4{<>clrUaqapIfbtx*~*!#I`M`m6rUZmD^SCBWX^rrF+1M8*6>`@2auNQu+s=*+zdz z5@};$ezveCLqNfWNzP_DL~Z+W5;3D8CnqT~{HHKDkvi~4rz&cuApgyQf!q*16Lt#@ zZ3%3XZM8Y*t|_YvFBFI#Nd=z8#)+O(*wbqE4f)>lPlh%9y-&s6USHi%YgdgxMX3w= z`JFvXs#-_gjYr?U|d4t>!RM2+crnvs*!ZCSGXOeKt~rew3b!Rs@SQ%zE)YSL>*Wf8{E z*6@Lk;CNti5Zja!3wgc*mk=(d%}SD_b=l2gh1+7WBa~`7nDx8c- zd1)o#`v-oy93FY4d=H!YLqHglW^ZaG2`Q7=;@v%1HBZyI)?|NEIl_FvL^<# zCNJ!1O!jMbMWN|x10cKM5l%pY5TnoJTS`*|;Ywc&_(!4&x6M9R9Tc_g7roE#O?z>V z4_Fe!3iGyqz85uU$-GZ#d7(5+2~32 zY(ZnEUd=A>LOdu*G!SE;wb`;{JD;%rN@hP`uF8RcYeob;xVsu<$&<&uvF>L-VSJty z5MkdZa})1 z3I{A2?g)(vDaqAkM}`_b81~z{A0K$|Ey9^MJOMT%D7S=JK`fWPKP{){(0+4?2X>oi zY1UUCEG+ich)EIgMxe=dEu`(8@}r&oAEv%JJd&X6cQ>1CY;3TxZ9AFRcCxXPjh$?4 z+n(6AZQHi3JKuZ1_da+2nrFJ7Q`KEvJyqxYU?VfO_idxSohv9JuAzf2D3-CcRD&B< zON*HlbIrh{49g;wgGn)KC|PwWjNLR%BX-}YfrbatrFQzyXdEa8UFAnx%G_DsEb9wzG9XhT5DIsb zbHn2qndZ`fbdotDdf3zc6@#PyxySsZ;o(WuA0iysyIkUT_Z@6bRi+} zz@)z@0huK-fpWdIwtYU2jC;T@Ev?osq5nLuR5Po(vXz3FnvjgKsFy07FbRJ8OAO61DN$wsHPP%8xG`kVyE51y`B(k(<(>bjFHA zvOv7bV@i|b-BSXJvHCsef@YN8WRAGFL`+ zfBmn>bA-a{3Sw?iLKE?d`=cp8a6j2SE{lKv&!4ZQ2oaQTe^cf*?mxC@#&9^AaB2)g zqoXSQp0R+OzlaiP^4BF(HBj77dwo@G=Po@2V|zvvmQKIoM?c$q74+^WxUih0vM=k{ zqiv*Ajl+%#O0_hdv%Rbw*A`3R>~uEe`;7Z%3i)KYZXK~u%PPH0Y)>tP$->_H7bO0w z%Jsy_PT}oY10!crBvo~#qTn5DKQ3Y0bN8+_r20)})92OC@oa)NlBPB(%=w$o?wcD$ zsSLI-fdo|x=JPkGZzQ}$a<&^SHF8=gxt&!iZ;!-{bZ2?Fq;g=0ERk&1Kdbn?Z|6@U z``$Q@S-j42cUTOLQvz{b>&bR^M3AipQh_YC08%Q)azqTl3BK$=qHmCRH6HT)ug!CZdL}t*85#-%W>>q2f^5WPT7Wx>mR? zbDJYmYzp8Uo1&n;o?Di+ zNW9HstXDbubpFKwai-1Uqtg~c(FmuRxcO7Wu!@cLK`U-vU?gAqB-7cZL#Yw+u5VFt znq7ZxJIm&RWx(l1rbZ{a#9u7Rh8!NH4{gFjI+M-i@-zz`{tsYju^OipB`cZ4 zhJ6BeBOkq9=;xmKhbW6`ZlRmWnFjW%>n)z1XMB>D{M}|zwxhMo+b6Xw-IZlUsYD+` zW2k;|YMjJ&wb#onXWuI#f6Mxsrb_1!ZYm{(OtNFg^M!UzRcL@7KtTI%jE9^bEKfr(o!ONSS*(<$sKS zAJJ(&5Km_16bF#27rj1p>(R;hyk4(I;;DZketJA4bo#h3&L}cka6k4}lKQtc_#R2N zwl^9!9gshMTXYU?_E=j*gE5sg7eamY zK594eH2}t6h(zgFx%JuOgLdl}4Fy?e{OhJgaPFfC{I4s_TKC`SNq-*?=cM!bPsq8k zM%>dw-oMSHJNzkU#7e^}2zSS`J}Co;2z$iHpZYr0Lu!fW7-$b<&nk-V;ZpQ*WpR2# zz@m=O@o2=BXC6}WcYPy88%=X&Dv-T0usmh5*b_BXJw{nwRSWrLclSl=Xflh}<#Tm! zdpN=XLUBgv>p7wQ9j3B4Nh&$M5A}K?L!bfJT+P5<7BCRkvzLn#?2lMZsVu7D)*$e_ zxyZGg|DFi`?NTiY(D%QR;-6Aru1uMgD}$5rDk_aHO9q`vm_}~aq$)DBi!SzGEjA-C zT#{7TP`u0m|8 zEG2o0ymH{z)7#o!7K$i0+{u~BizC@UgNc;_ghsGy^i0l8&^pSNt!tM?xAK5vT)5W9n-%gU^i-76FbVk zjDZJgFwZcngH&j(h_g-q%>|%*C+cA!N(2C_0}d9PgtCyV6h7I&ueS!_Z~dU&wZP1H z{+Fad4-lY03k#6xd%XuI=RCo0gJ2NbrGjiaZ&AWzZhLXRgVl8?+Ml97q>$x)ER_P0d=bj?MTrMK^@g;4ZD zP|2sg-%rCNrJu8e`ganQL7x@B`QztVuB>NUzr}@H&J24va=&8vPiOG$dT(yiVN}qK ze@_CR&il`^?wTxMZ4RwQ(qDs43RVLwC`g(b8XM^y>NVg7Sq27?Qp*vCQP1L}N+`{< zF|pJrmJEZI!W0$6<`nuWw2k>j*^?3-3q!B7$K+($xlp3NXlH~Cq%FdmBU(mO9PLpg@XgjN(Dizl*+>S z(weahn)|I>-!)`ar24uA;zxIGT)_x+R25WxWhlnz4sRiZBE;jB6c%R{ObuqcOhk>S zs4Py?&xVmih+<>ZloWJyCXyNF+(b2{&CHDKMKgnF;>B}kidnG3MfW})1jOCPu=L%v_R*wR70PXHvn2S*xO)jYDrN8e zb*_VgQa+ux1K;Ms&1}2b{xorZ*|xDJzci~(E>3&F!x-q@$i}rh+aENV2K>pjFfSe| zN%&BYZ2uMakAaEgb8K-M4(i)?f^Xpez9BuULQ~wIWB`{M7A|n^4qhM0N*3+@w@zd z^;186c%fm(%AN@_S;@e4JDeZle6;r<6`pz$85q2Swt9y2kzW$=wV%$=Rrdn}d0)o( zQTve2mcl*5X2aH}r^$nV#9)of&1|$iDd=e-xwzbQ^p73_m)H&NIM8dZ?_ zJ9DV1${CohRuxo~z}ncJoz*0+b`Uru#v@DT#VN3_kJ&+TS@QKUnKg5?SKM5mkWsMh zVTwPb%$Uxp(z0V0E2nGymUNkO3J;zZ4vYGZWY~j(ma025EnHnv$w0V!*;ix^|6pAe zz0YY)i@p@8-X^o4!htnGn9TrARn^<}^zt zuYAcgErr8KYh7iA7j^ylhw1%K&otJ+km5y3ktz_O_YjF{5uetc=S z+!a}`IiF(`{AhFW2-sh^kHF*mNsUIZ*suHcaZP{5{z-I*p5l-K~rvM(Z@ zFeP$e*!Quk8dhf8dfZWBI=EZyMirabj*yW1P?OfUnA^GXXR;-~( znT%(H^DFs+|BK}Jv(B4~Ew>Lh30X^R?ukrOE`{Q)g@wf_%&bxF2fq85VWZj+$vWr# zQhf7r#_V9}`*TS3n#UC6;1Ez{aS^)9!}FMr`~GGbvm=jye&K46c&bfzhV;d(w66K< z)I%nC(C4AY_%0T!1&sO9Z6E;+ZK19;{iZ6xJ4V#AyrQw4gL(e!q|d>nH=N1A;>3}R zOTh=}ph^t{7tOe6xEt??S$+><_hk0+5~hFv+d}Z2`VGTL_jNYyk0}Tf75d^-65lyk zWU%FOKT4|x&YM4xS#f4E^_%VBZBO^@=qX;_>tv}md$d4zS#GtV53$y(*a2^-A3!+C z27+6>Yq)@+*0!Eu4K&j7$XlML&~YHm1ftqwaIqU&rCTL^AuK z%Bo=&2fGyZ)x0cxt{8Js9?AJ-Hk$b* zT^rf%4x1BX*dSFDz_wbF%g&wyYwCr$a zwN#~_^JsH@_TY1q)9@ac{)4zoZ@Y?iNHzfP(slJW|7vJ1^!wH5F&TjC(YyC!_HyG* z|1d7SaNq&|zHz%PMVx*w=sb&6e`s^q^(%qfWobg!y{x|erlV7}17zJp-?wKFYU*76 z>U4oc|Mf`nMH+QB6%hQZeJyh1=}KlonpJOW1)OIcr8DPj&XiIL6?3kj7EsruA>tb?C=b9^rx$&0CaZ*gf% z@H%vk8ob- z5R@B)#D|kS?V{;>FDaHy4z~rVO0-70M?H{KsA@#3l`kGuZ}KOSvgtvu^LsuKYAVUO zo&*}@$?#N^NgQqd$y_CzwZ*Q-^kKlN9-+MecZ-C+09^>ia=vbsOy*83-g zkcm6_Xo{((B<{PA)kJgknKWn56=Cw5Wi}RORvL&?&r(7b+zYQsj0*ORx84TneaR?o zn0j=18#;*yiR$j?v=xk$p{b)yn1;1uNmyWgBnF<=`Lt1`OX{@PcW4T++^@Vh=9ZlhXy-Z)0)u8{z!=aY+{QKD~AYIMrLe5ci#%F4{n|UVo zMNYBR>HSfWa-8INcEuBwRgjJw8hoxdL9{I!mxfPfpJo7q{4>S26Ka zemg0bX?EHksq<*U=V@+!S$YWekE_e_(DAarQZFN??w$KR*{Ga-#*EIc)zAc23kT$Qc#}j|= zz~Pk2z&S;gyZ7r(y(TEQl{M0J(rLrsh#O;0Cq^C}rMgZpI4C=KqSHKZ$)OgtoYUb> zy(<0?n&N(j`(x&h$Dl3SU{Q?w<|>h?$GeVZscGC*ZBI-UdG)M}_v`*3{HvfOR<^vi z5jXuQ+pCuw8xuF;$%^3by>O|~Blebt&F&_LWTLPA0YB4PDQdmJFQ3D59jm;gC5T4`N9Ny;hh3wUA%dA@ee%?_6d!4={=&? z$F^CGc{=Ru5o?{!D*2;>-sglp&25wr)I_zHU30kpn+q7SNuWJc6G11B@1J(TY8T^+ zUPJPDc+ZtO!Y9GV!x}r-f4k(iTiX+y`X#qIhJuQBF17)kw0DG0<_!BfTIYY2fvTJ{ zVTZWGO$`83kZ#FN5;t_vvU5V+Tu5&BvliH9Mmpw@@CwR;&`BbP_{rBAR+R2i8T2cO zmC4mgRM<|leag71KFy*Y75$Tgq@g*n=RnN_g2(%jgn=TrSu_S)6BEu^Nm#=D9(OCH zJZu+6SyM9x3-!c_zBJ?o7+;X1<*AgMjdl_E6tOs@;Pz4|LMowvI2m|QU$=JSzB4*d zJv#pHXofKK#I;FIfBC*6fIa{Rg=qNwS^7QOf3(NEKO$^u@<-U>B z2g0i;m6hI=%_z;JrIpsEy-ydpc=;RN&NyZFnN@~#TxLra6`#OYFU0m%FAWBdpWgT0 zFNbI&sQnF(SWD20!MMOp*%}r^EM!Ok*?rgxRc(Y&RGFD{?2uu{x!(z)^cc}f|rXPZvW`1|MFZ69O7p4sz-KEeLhJNn! z$obb=J{!--c?t{9Nm*b{Si@_~EYb5lN=c8>3F|B^va;0MakiiKrVJmODo6x^6i-=M zSp!cLril7_6-&3iR8S;9zO=2FCFS)QV@K>Jylw7Zw_b=}3G1t^X@kxthN9&zX8-iu zDf4rAH|~IPo>qdqKMa}E!e;UCJTUYWm*v$`!x0p|QrgpMC5=g4D?)v4PG zITqKRP7^Jk3~MbcsBkp3G%~Wp47{X>yDFvC#8C4U7~%G+-FB5Z&qB{sxh%uS;#ZD2 z#0q-@his}wBE#LB-|S4J3?&p@#hc}nRW)$5)WdC8B4tEIbWObs9l~KOVBtqgOQ zA*wts!mRY0>{w(Vqw(2#YqHG{_4%UvtSyJ#y_p%f2sx{o*|=|eKVtU71~J$y7D_4_ z2v+#dTYNmZPT}>^PT<(m`>aYvr9ACN*-M(68K{}*-YfNlKqWqu-!z%DZ9cazo)}Dh zR>J{1eYme7?FOQjUaHd*|Bn0T-}6q(hr^$QJ<@uHz)irPSp36T*;PoMKb+oYJEn*4 z^KShT%CCdT>2=%AvttspG?kJP(~;bdJdI?9wX|HcbT>_zo5Qe8ghi)*+mg!`Ax+mz zllB}jriB}N2?_n^voCEfj74l0BCZ`fYwgM#prDTke{91~Q&v)nx-+)|GPnIKr{d)% z=VV1pR8w0lc=6zc@y1pO=rRwm=_@NOV`c0wJ#G79Xe~2b{tmXq0a`f|971fhdKs{1 zA-p%N5z|%yWqSX{d^FE&!B0fphD3DvOwflb7IB^}nY*K`KfeWE1}&Lue%kMb5nO2P zAC_t)qrRSxKMEWcpfj`CtTkG1@UX+D9&yu)v7@m&ad&ju#EdEVwNLHw=07C3DB8Qd zSr$A?m$ROJUP9KWNP2aNy*62`HO~58#$$cXv*-Ki;<Y(J7X5W+t}qe(}~Sn>mBY8dpUH?kvmgsKH_Nr5L@gwU&surQ5wau`y%5%bUpf z&kmW!mNpUw%8J0zEVHNIEM;w2Wt7S7@>%cVV?vH)bbD_KReDrrSA<-@Fu!!F8CfK> zVw6wC{l8GDsISK%7;1Qv`48Tvy=5<4A6_SjU+wnB*^%1%{r+=&(6klpK}Wi}Gzt~a zmXE)=+&}jZsHH@)D5)9l=D@t@K5)l0y|<50e_e|XE!kvsw=^7v_*g*nxNi=dk0rq? zF{X96Jk8vxRsP<3+lx3^O!H^ge!eSeiNB~X1ZQ*HVn{1Ry*lUqBv0FGbIESEBdbT# zaXmQyC6`)mm>+ZMLrd^668h#;3H%{C>728;5B~nJk*JvNcK68>-pcp%^og54&tiu4 zX`0Ogt6yBX+33X01-^(7KVAvlVaFZ$G00KS20?$N1j4o!-j$e0XrpS48_c#4Cx5Ze zs>+C>{lZ9$TfpJ-_^qleuc)ZoX8~kK1BYDDiPQcWVgbbh(**{CB^w|va$u{JY51a-!O+EDp@rZVUzhmhHMl3{3k z#(DUUA$r9(`su7FR9!Fo4#eEM=8Er(DtIVu>@99Nw zRCaswRrJxPPjwsHSA$M!$*2 zKv<~iW|0Q>>i7@IQb|ZO>reo1RnqSgJm9`NWeNOWi& zq>WI>sN>zE2RlB$ziAYL8EeG2^OWkp@w2V1O>T=3Bb9J=1yV#**r{L6vWQtC@g^74 zkPxxW^%70?Hb-~$92_4LF&9g5Zq!jD8v7m-lVM|cE?1@R$R0>0Bjh2y`S8i`YmGsX z_Ht^W4Mm04^uzw(d=uB`qTR%sS}0DVo~yu~^=1Y{yj){(~*c%gb=7&7N1G$~Kz%8d}_Yfy-x)uaUYf4^*4X znpZYB>_EL}SV=M1pFhG8U@ar~T^@Y+;ly4qtgQxZ+q1S4HHdY$S)XSC%P2zj=gUkQ+2aPS z3IFMMaZ@Aa%>!ynNg*baZs*KelX{rI06HsP@b%8@qf3+UU=-^Lb->^1UGe-Ke{xO` z6HrDBuHHl=tY5T9(bYl|d!C|;-}!Rgb+Hbm%PEwaYM8Q;6u3U4*lgtGDNNd(0k;6yu-xNas*$F(7Z{0+8AGq3zLM49@T~F zT+3<=Xbx(H38I@2-!xbaL1q@y_@j;(wTqIHzt%kpXJcb7D`709@2fWo{zDk6Ve!1T zJtQ4M4nejS_b@~ni_7cd#=*RNJx}o`>PAC1%Q%ZlEc(@EepqRotMg)}|C-5pyG9u6_T}yZ$|+Y=`q%N@{Z!vt z)f?IqVn z=f9=gG%qflD$`+g$lAC;%A!!z0a~08SS#)(yDRv=le5Dq=+9STC)RKJ$l+N<;s7Wn zoHhk29p95OV*HL6r9~9NWn;@L%0)HQ|8;i}O?%)#SGHwO@uCEZq9UV`C@@l`l01+6 z@)ZZTV1@i9ix160MFuI$bFu1c(?K}SBKzZ&~4Ak7X5kPyqn$Zhp^wre`(;_{MsjMTviI z!f7$9T-Lg0qf4v3efKG2KKYj;XI%pfqPDKW9Xv+NNJ?u`RB-?bwv1;IG6PsDKr~mt zOW!7M>0zxRw8(`%oy|FCt>3uoqE#=|)oLaVKRWyI>;`g-W#cDj1g@zJ8I;MlAY`LN z<^8u5#%!@BL<$v(h5~>|WC#IVeusrOx%3ei&mMdKNj6+UQev@?gxY`3AyFbsEMquw7RB>IonYir%5Rc z6=pQ~hM3{3e(g~9J-m=-b$T$`hICF~{rtak?1rvn>rD+Cz|93@c{ zjb-l|8Vx4&`sc@$sFJhTHpp63Zvh^aD~r1?%&VrpLdU2>xa>r&ub4M z0iwA!D1ky`$aa0myiB46apDyI$WUg420V^mH(Q>$NT-7gM5%tBdvz&hgK@(~+AgN( zpArn!S*`kV(;ehbT}n@{`bYPvmXGVu)Q0<#CF^z&4S8eJWZC%NgdrBvx_`P{}cenPL6? z=T1k^vJ|rUK)#YTs*;q75tIEZl#~Y|7jgEIOi2@N(i)biQoj;t?(g?cL4E+rc~H10P+VRtVAF0m2_ zfibW&>E?ds<|KofwvV}}Jd=@q+T)_Anxq)#+7j=RSrvgeR%SsUt=?)3#>mda$5~b` zBC0AaywbT$OkI|X_GMTQSy92+)5AJpzuL+Ygb^HA(#FBrmSaRgM>hdfO8DG?RYzRI zj8q@Y6fP2i9k%$$C~q*=`LQZo%IqJdtr5QS7}p*Y@h_#B1~`BTi;l&Z76t+wnSCwZ zVz`+q;TVO4m$bH8DekrgAA))ME}apw_eqxE4vlqZeaLnMDT%2r;|0aukJNA8{t$~*1` zv*b_l8zb$!lPk45Q2y=mIMO$6pL7VBd-+2Xli%BVJMuPH`%ZSZqTpK&n-frnU~#n} zI6C9*V-)`auO4lWdTIIjy=tJHx9*x_Xl zjXiZ}kysjW=s!1iHe-pvSMW{@+Z0fQ;Bd9UIojhM7HnecXej!PA2ZzxU)CFuxo`2l z9bLp|mM4ZMia{K*)`^ghZ*in0|Nb4Hq_?m~T9AZ7(l-l0ogcAoF6%VY(2}rlKDvT& zkQ{}jzJ|*lG7oV>NfMMVQNM;GJ?8_LNQYx+ZYcgu%_jh=7cJVdslYs zg}%84?CV0(txSWcU*?OE)M{Bn=!R;g-A)*9kpay_Z$vAS~MB%)S=~Tw? zF38s9F&jnEm__-m4RP*Q@=jvG;SA2|{vez@dHm-cOVZrjqN1HrX@n6xEBiEytJHnI zfytKMOiJ>J!_MhL8O2L*VUlW%ZVQThKZA7rlfsT z*NcNtzE8ZTb|L0li7*2)venu=rqS1+k4P~r)*+o%ce&-`+jw$s(&ZS1pV;;=^m=`O z{(fVl0w}jBTON0ebmjHw3(Y8KrRZek%FT`|F~tal-ej3g$}*qbeq0Tyn4tKuBuG zH-$%_q6X3v_js_AhEW<@pR_2BTwL>3A*jdcQ?3ZMj8Dggbs)wXG#ocF0!XB^`__a` zA}!qh3ttNO5*ZWTntsm1v(?rWhmTAlECGBNw1KyRB(pN6Kz&SKo?ZrZ zZd^Z-=-+K}E6iG-?qZHp@@#DJ?v^79OQ1j5tG2GA%1D`%9TVmgSpZzGf7DEi0^D~{ zZ$=-+j)Y)JK3FR*CZ?^e_7#lXT1YBX1VwX&AAfivL4kv;^LG9ch`xVg5fotuqo4!C zhfNGd<%fuBf5tIYEvSB`j(~1OD(*9^|n)4u$vObB_mVuD7*Os$>UfB z){LH`NS2YG?+NL?=x|9R)#!D!PHPUf1UJMUkNXW{A)}{fmg(?WoyN7U`zLE+3NKlf zQ-)`d(#*Lb;s!)g z+E&&X+hrFA8kUolCA$x^NM!byX{Nbc%6Q|6hteoFZGf>)HX;>$?T2?-OYv))_D8iX zVJw66i1VhR8ZFb@-E-DQ@KZ)41}@u(b&5Y{E9o-)Hw}QM=74}!6xnTSaHEdj#e+!U z3lhJ z6PRN_CY2X5W`RRJ5)!JwASk3pJ~zW(g*B7B_4-T^*O$C@aXYxkOrA0tPYNa3$CAdA zhnKVKFIEXYq;7?4mb;)PxY2EVUan_?Al_pC_55AA=`CO@A8x~1D>&71G$&OWBQZ%~ zaV|E0X81TOwIDAjG_*yxVG3kSk_BO^{P2E&o=QeYPe-Y6(D8My*9_cf`{ME(C9X{Z zDLXQj12QT&O*Wwn6OqeIQ(0!EX8q$i?N6g%5h@fY@7&yBMz&f!>jbBCB$R|K0Z7z^3N+E-wJ#_3piQzMfk}-nsl=@Js4=By%NPzcS)Gq*$`AJ0ay`9T^R`x5luAI-_`aXujV1g=@hl&V(@BY z;(N-h5x8Q~>Wm@h4Ntp->j`bpEske5CYWSF3jGHQ=*r4yNW|w262dBKC0$Amf|_2I z+`&(!PznK5B{_3qVuEq2ahK@ns&S;;E*DV7@yHHhTH>V*g*-4--3)dRxV~L^X)F@B z{}Dv(7q}qWOlW=k@2I ziuh~{Rm}&20j8#jwf#oMiH>Ofj9?0z3Zb#ezyG!KRfFKe1cBycNl72gb|uJsoBIp- znGqLa5q8+qJ~3vqZddKE8AUEr>usLgo#(ja-4wI8%~u}VjK@n zI1P%-d>mZdMG2&IO zhYF}fKAFkf{cVGPpE2D&EIopSWE{SA)6DIciET0=N+=69yv`V>UwE?h2~AUdh>CA5U;qV1jc^H{mo4as3u)w<8nwn~b{x*fHuSEo+ZV(3l7tWnpc$Lp z9KG0-M`cZt$S>UiUsQJ7wqSOssK^iN(ELs^0|FqWY0G=H&tD{6yfeGcZfr~G-(pKk z7j2wl2+}o!3_QUk+!#zjC5W0n?hBTPpT5++NGd{&Cnl+BOLlNwTgJ>nlsw`dRK~a#9VEvCJ zPiDQPOBrJ(E(C`|{Pwm56#y)v1_L85Wbg}QUt_B#%w5=rlc+TuFRy8HY+OJ@!(N6l z*Mh1XGPcLfJuNAnlKm*II>vnVO@3yrC4ukJ zqy3JV8B3cXAz`5%4f=s?u^BmDN1~!j=9{ZHHN~~UO6Sbk9$gbNq=>rCJJY!zZx}0O zf6%~yobN?vrcc%{TbMs0i2ThbpHE&51(%+9Z0PI=<4Iz;G;oq3y0$_hBatb%+T2#n z-tDP^^bug`DpR=@u%`%XeuX!eC!LMgDMZicQ<h|HfRs^ffQ4SsMGfLR_~nL3!y)G25Y^aN#C&s- zCmluTC9Il1Qjtj{H{Rd8vQ=Ir0A8Yl{7*UH#z{-~T zZsfjx#_>P*Q|VJMt>K|j8~oPofwf@|^BUavVwssIrKHqRBUlK!t)KlJ#k2@P?SqPj zPFaDuDlZq60on`gpQmC{fex29Zr z<6*BSB%H9Y4a1?2*5tr0B^Q$9MU*v?nJB|nv~F^ntB z8SE!j%knNl6a1-5@6n^{^4eC5FBRhjWQCuHc_OOUJiQ2kZtlyJDFcJNJfegsZ$>zk*pfUV zBO>IcAI1_SVFH0ri9#qz`kBy8is~!+l$BwUga#z@^sNJe$eNM@Lw-<^k^_i8!9)p^ zL;w)MaUo`EUEuSuGSl#t5&@Ef#*AP=gfeIegwD<&sbc~HY$6@H9MwEr5^hq4h<~qz z+Z8oY00M<#v|L<26rSjDG(im5+vgwwKp~NM_8&nL7u7riY>V~O0b@N)=(wL2qOxn+ zS-5UUm&wW>inO8xC=ww_P`%J|qCf#q(7#_)3j?O@ zoJ2x9TjNq=`B1vkJH1Fj<4Kh$NtmA%ON9;LB-0Hg&WM$pPgF@llq!v!n-c|%8AJxr zFy?@rDh-G;Vp2halp;W4n2+)s$H+&rq?UqXNs#`k!-5Jf?uMJyn&@T#^9{kLLPPNt z?`DX&23jfUB$i{YjI5%$1$-ESa;we4%1p>dviS-#c$IkMzS)N*pp+vqRj9bY0XWJo zB_=|Bu7Z3?4kVEfAa@1;0La(;$yGqIgR`WZhhL5dx@Bjik;vNgpiP7s>`PDEl%C-t~9SX@~O5Kkf^vgX4*f!+<#Mov={rByL8S$GVBKUu!e)FY|1jWTS z1qe|8-*)~JyHgVkiNL!-7&7R`f12tpBLBt<=4_P8)Yg>ufzLlv7f5gUiTE_xKZ>n#cuAY{Zx=9(AnyfQBJ$Z2V_d8u#1Bfq9n_tF8OHN%>8aj4{fkM!;*qZmw z6N;hgyYEKOr?GK2>FAWjiGGH}ZK^S4~AjM|oqmjLvlY5Lhbo{YO0|T~$8w zU$r(>6AvX74OLk|TK^u={?<{w^XpZdlh~sukD(J^tc{OSHbj`$Gmi0h?s5#{&qt7Jdl4kWd=C#ZReSKd~AWym|EI3sOY5GI&Z zmE61qF$`uK(A4IeoP+zUN{i2lf(z^=B`r2j>7z$1N~omerUZJQ;}R3KG>7&bbPiWnL)+*%FKn0@y1oZ-OC{nU1KNa{3FI;E6Z}4o(I@Pzp&cDOVvGI zr%G!X^Z_u$0Nk23mwCcI8^ifzM?6tZ2+{_bDrBMB^TpNK+24ZExaod*w}WiTcfi7q zdZN$I$roM{TU1+TRU4 zw1jv4@q=V>ct8NXXn#vRrpC^e(X;F89z)yLrg7?!9wRw8BcS zwk!HRgg#NL*v0FR90`zaO~QX#j~KZCHgB(F`&1m4HZif_; zVQw$Zm@N;FbZOIWFFOCVwx)saXqngdG;OG;XsfuWJfl1?>vVETw>RHuJ;A-WiN=DQ z0^gr^QQ6~uk-&pwUt3+>S!isOdb+wlw_&B5X#qZ;Yc;|B62|@TCa(C6wWYD}qLG;5 zWqSATyO8nTFPn~IrH5T9%_5}N^01cMxkc#a%1Nh_)vbsPo(uP~O-(+Ijwrx&qb<(lz zOzdQmOze(rYhou8+xEn^eR`jL_W4;?UDbuIs<+zdC_eAP1 z_a~FN$kU8`tZw%;<7}$tWgV|2W4{UuTlOFI|NJ9I_jJ8jai@s8dod3&A8{cLliNik zEW_U?I>1SJ>GKlC_ePHDmt-!4vVJ*Dz1JNkHh(cntP%7(jbattZ1b;Z^5?0|02L(m zz5C)uYao9iQRuG^jUkV^EzmvqwL0b_1b^&=wn)T9CVL! z`4b@b42xdpE~IZ^qXbmdjwAiU#zxO3__s7$)Uu%0bNb45F6EJ9`O|AJ70(+J>QuMt zpUWy@;m-I{_TRRDXJi!q3;7o!@BU5>dTZp7Gi zwLUxyJK_$gt2fR z?oaSBV8q^QN`XRQD3X88Ki|l`ED|+@z#ZJDTiN}@TMw|v@@1#TC3}UWd>!nhgP+kY zC=R#fZQ{jpO7`8DqkB)dD0;X%Cgm9&)1PX*2|2<-TyufXMt9MJZxqkTwK9850}qW^ zIJvOGZ7V=sWeApESg^kM5Q4;Uy+(OV$#Pg27>U2YQ*y{}oT)OD=<@N;zMnK{6S*uu zFnLR74GoJ*+9p`IVfy(=Oq;kgfaa15I*4^3)dVz|uIW%pv4o{_OUH^rMmpKguuyWq zZAQt|W9*bCKAX+LN^jz8BsFnBlDZ0Ar@buYJZ015q&-pmuc(-aWO|;i*1ERpegHa9 zV$|%{;(zKV=jWHgR&%X`!3$uYkYP!SBzE1j#X&Ul_O)hrhyH}WKQvqNDX715$p zfZ$ShabW*jqcrAl=yNI8S8%?eITudsj-S@;ckC|fYKuOI+UC+nG&*Jh~2;H%{yyivbBue_v+PSXG%FilEfVT45EB72Cn820*Jx8ytsAs39QJGx zNx!Rf&WlUeAhOfIyl-=QL&LAoyD~P@p;kn&HSW`%CHpq|k`Vvw_Z^WXIMFuxrp+tq&3_OYJN6S;8l^{}D}C0CO70fN4&33zVYQ?Gnr1~pA; zzsfVKa=QD=205S^iZ&)j80b#Ci27Nn!zPW`tlDiVcF7x&E5U|Gbg~b4?RGDSrry5V z-eOWjkykHz^{^pgP}Sia1PM)&U0W7KQx75ug2;$Pf4?XiKMQkAr!6FlvU?Q zy2J>!vM7oNH)}RjnL#9a-M$C6=5b~3LHs+F;v?%R1>w?gRDz)e52O?dKTd!>nKsVz zSE{#@hyb* zeF{}$%5t=h(p1lY%nYrOGID}wVk-%1w@{&TYH#iLd0S0Ky`lMj%Y50zw0}9;x%s(x56Q+31YAL<&?`Gk8TMJ%!(5 zmoH7428z=o#%XnkfxqyLDA^+J zd(!$U#@n5KX_TN~40d`sKv%8A;S%tuI7A{0It-@~{(+T#4p1O2)Q2#mIyG2vNAck| zy8@dsTt`LqtSr46T>?V98fR-uPx$=o_UI(>fJMOiiw)bE@E`v}gBGK)%&(dQ$E09* z((4?^nTR9_a#dQ)1!N(6iS@Xyf4$?wmwWcF2UQdH1BmJ%lC8-a)1SP!rA#8iJRBSf z)+&a;3Pi<~q~X0rPBSQP1KwNxo%sLL0&bo@Ki)jPngfoeVMz8Z)H$?qyZAZ&jdmwX z6F=(<`5#V1bhPAz;#hip)ZNZC?9bUmkJ~Ua#Q6AL)QX_whYAGn|2$r??y1nBZvPLC z>uF=IsGQzg<27M1`2lOu6U)15(I7iFH#;E(n;6`Hj6cy6(+``>lICFR;_g-nbJkNq~m+MeZd+Y~vW&6W5 z*M&2#mbRWrqKv4L-dOO*+tbBrkL`HPyzu8J&=q-TuW_CMe2EKicjrE`CotKnDAxXZ zQ#$A>8Cy(n^w=POE)Z49`=B4Xok&TT60}f&b{5R`-?FuQI4QfU%J;(Dg)raMLKy?g zTTzJAw+&M9(E&@L`D7+s!>`l}7-LBj3EBh54XqO;yM0!1@&TV@X)^05?{0@;Ms5_T z(}SlRxj9{au1DKXIh%Yx|BZNk#it#iZJ~UvJ+dYY+Dobe&2@I?GfQXh#m8e61G4>BFZ~8I89lj=eOq6Q?he%Qc|$-QdDL(=(#6`!ex$G&q881 zstAMJqauQ%(4@`{=*UCU*HGeZGLH(DP9j2S1-zg?AZ8{Ln+kK|PzO`l8kH#mNM>IdjQ zAS>3|nKW~04!vAv1-w7@N0qWjJ7Ry^-U|E=9@R^bxIJFn^%=SG z$9@+aY$Eb{H5VSG!V0jXn{X`zR$b(w9Z9-T|5Z-+BHSthq`$$s_Ou7 zFiUPf_AG_Vc0NRw*T;m{oH&1Pg-$&Lm3;j%=2|Wy$!#&JYKWPPkH{q6C}P61WT<#l zn(jI%KG0jbN>?GiUSET|OSS9931fb&eJtU%Ixg#F&afx$Ax02w`C)+d>@Cl0SJg-> zvL~04)Ns(gvNG~_MLN@-{T=T!<8ryHT`(9NNg9Wh5DL1$-^HMUQnYUE7NB3rK?!uI9 zn`u>iwj~IP9oDV6G9RqS2F^u9Ijw>AHJl!|3+C&L5B9J5VNIl_I;TH%>3^68Gb${1 zjGpo90+=iOy&sMSG3@MynBKVl^6kFS1w-R?c_mf&*6OulXpInbIMrbUUWc+6f6Z8$ zT8{@`1>XmV_}|ZN2_Zn!dW18q^9v9hSCmLnC0(;&Ya}NoOzuP>=KiaS2+_}WX_D}o zo3pg?>@zhbnQ#kl*fU&QV%d+9LSdzSypFF7^tqj>%;TI9=+t6Vbzd+OsHZJP2o5hR+B&|XuF&+> z+v1=1JH1W!`8dVb1%oYyMj>U5`!g5YNav1K@`V7pB8Tgu1w;kuNhc8OR-63|z@-SBPEVs~>M!B3NOblf0wPRVuf34rScAKJummj9^Wu1PKBIoZb*omr%x%z~YP5*~FXI|)J0bV$4;a3z@XQv1>!hr6LRmbJDc zjZPzSH`fB=RgeAG5G4>gJm*+c>6~YA!3!x)hyOr50)rG1$!YiF#O6Oi=BK8sw10C! zz)&%^84a2l$d+mI=pAe%R-2qfDKZ5NC;6)B@HEm zN2Wd-^xadNFFeV`+?)rc#@m(Q!L7+99sPCWwARaypv&Y&4GS=y;Ry zc=GD;v4AmK1}?&HtMzATPU7ub*-I48d1q-|cN;-LfN#!w2Z({`tDNx26xA;{arHzo zKrW0YcAXbssM)WWO)k~CDzv%aC{Br}6MOpT3^ASC?R-F$JCqZ?ogFrY1~3vS#qW%6 zlI=klGKjmR1IW1EKTL1XL~uodj?UqB8({Upa3%OpXyYR3_+=F^pMr5T+LWN0q=p3< zF2SxSw!Sejv;{}SW1IPn9vzO&ToUP_)=z50!brO}zxuR#P6rwuSBlbTWdM_ z@kmqL!03oFditNTzfU{wS7u;Z<^a37SuZZzk4Pe4UMF%t{Vx0cV3Y*C377YVb8kP+ zC-g&kDBb-DE0JU?tgVbqfnMf{F|+MT4mP{>U(dp@kB5}jMwXT)1xoOb zv7Vpr4uzon_U0Vy`nF1_t}@oc*~uu)+LW|=4`KoP(?4X*p{H8XydlPE;f+P0?i9jr zd=bu@DMO8r+m$@TAy6C_)Ji%0_G93Y1jxzNE_=UGJ;BUei%`0vWrIpJqltxBC^JG= z@Ujzrn436nq=sRR7!@;JbJ*12!@aP$e2^M>G$eWO^!`Ac7;6qGJe}x3IXW`_U^kb{ z5Uyy0N{7vJS{sB0>q)0*pw^L_ohMI2^CX;czSg{u)yIui6<2O;N~fW!`xtverzpBP zvVc$L?DUh^hB^V$FbSZ((qM1uFR{`uzP<;1MZ_0z+Z_?rfX)E4B3(6dr*L5xiTu@5 z2M5AXU1MXSWjK@g@u3;J#-zGdnLwXr%=s;XzVF&Z?e*DWaZ)m#GY;@-iTh=PVpjja zHCQNTa@!9zTHk5fZ#OuflH%x#dd3>xdgH^_15Ai?{(Xn_ZG-&FPI}!7hbq!K^rT5k zUR|*s5Z|RxUz=+viy+xMr9_}l0hvl4Sl_JUeR+rQ)aOF`VK>CA*JgC8F3lC;@glaZ zt`d*yJSxy&;4_e>J)WxUL1I^NJ#_r1t(BMg{<82{DvE3kKT?he2R86qA5x$UX#y=I zaeKm?(-}aEd82uG-lgBs0FE|^4Zz8{P{Q4^Z2l^ly2Q;csjfJ=LBo=LV4@wbr8=wi za@zqx&W`_KFRhe8nT?K-n-c$3Vi*b6@#5W#iC;3?!%`is4NL+q#olOX$!qwNh4iN; zr~$E5TeA2hltYG0Ik~vz*VnZL9R#ws#*FUY5t!?tq1XK0Dvb4e@KBRg0dpKcTG;6- zTbt@p7JG|Ex!A^8@duj6^d=Cq6Zc zA`5=w_6%E_OYPB2-b#^x&-$X zKydKlkMX-pRjAXK)D%;Z8`}uEE_62aahm@7;lWV-RJV8WA;$Fo7GrFwu7@fYY20Mw z3>F4_8OK>Tq{C>f4{XTh3q6?Qrm34xd7tJB!kckQD2u77ERufmK64BaJJ*`6=pk#T zlsaA&%_`K6$;!#dPSaKOfn{)p%IdZf*6O`4xd?dALmYQH1Lwz1Q41aTT?lhu=8ik6 z4Q;PP@#SK76#*yYS#b)1s9X z?X*&?^5_VQREzhl+I@h^=9Gop+4%8k`nbAT3*#ykXpjl4*1^COj*JOYGE@j3L}1ZM_3t*~uKy+pJjex3=S@C>Df)%xGdqwOI&mBbmQbGt z1ZY`#p+~8PsekJ~PR^Y%tZT}r0yL7Jub(74E{Bs-lZy9CQzc3Wl) zlUx4vKo36L>!sg^+E6CP7R}9(=XeW8-HasYciCu>n4bh7G9I|T;;tiuBHKP06QmQ> zPirYcBIHagYA6QSPe$3kO+)d|&yjaQs3FMN`aB}={ZDQ2FOST>aadF~J}0=aa)yaT zO9AV2tISSLWM>`FQon`@vw^mN`=6M}Y7k*reK{EQIBPhjwJ(C|UHuS(c#K5nXjDq!wtlv$aPq5CP!2hi~dpiJRLcP6(k)mAlWtqX+3MT|pWVP>Fe?$1yZCv@~Q< z?P0Il;HsGyDv@~kadW1S8QWN?W3ulN@KI-`&J%|}_q|KN08m$#?mpfyd*1>EmC9<< z-`Tkvj_luF&b`7ueJHTQWlToO79Wxp!d)~)mH}) zl+T%Bmer>nPMGr>e;Yocz>|Io!2s(J9j@=KqEhu*Eek5Th9m?@Zo4o7>wz*#e_EB( zK74R%v$hngTv}Lndm{$3KWY#n0cpNFkFnZ1kbE|!1G>Ug>c#4=p(ZH1oG|pKX)8PK zGDd0h1tO`HJi>fj`ZFytlR!3UHgH};!1xCfeLnpE)U>aWA-gparm;vP!^bjW*00*U zBZDc3?a^dRZt)X8c^~^5LzFUF71d=YycYv=k7|iFHFHSmON_W){uYiCe}4M=qttBk zzTO?GeP))doRyo-ou*(|5_NvUcH66HYzBm{M}F`xBK8>*p5K!EW@a6^lGELUP`JSkcP93njg7vWRv(W+_YoyB2hR@c9UPZaL!3%cwz#=ZskI^3Gi!W2U&re3Q zljl<$hzJvIvxljkpFyAgpMh_Ot82FLkiG`b)Z4>;&+Q%3mbkb*hi#t-b@v37Et4MZ z?(R-bM7*BYKbB?JQF4TwKQ@NSnWvbirlwp_HgCuM$v&oi=GMMjOsslbNL!*Iz2`8C z>Mi#=^#=Z8s!7QJJpV_3zlir4ygiF|2@M8)we{c9E2m(-KOg(N^czDY+%S zHo97UTD$#hNiI&hso74NtnS*hUgOgkISsxxsLVvjZ~d!g=d&=>GGNnjD3ksvd$sm z2W4V0lAFFJ@r~cBMBeoD)o1p&$RszqCbnb)azv!OEw2(EzUz3Ui=5BaqX4%{SzRPz z`T`g2$5Gar2OVu$znMtSuT6rIl{6I@v7?!A0HSpC+ow#bs=xG-J+ZOO2|NBnFbib# z4**g7O=-{7Zu7IqJ<10Ayn=X)#E(3#EbMG>b!k9Ry60<#&GyTm7#;K9(b3g%!lj{b zoBw~Rl0OrPmlx{jS0}dW_M}?AKd#jZ93s!;sg9H}=t)UUdwphY9`W#@s#9JIQrDCo zupdc`l+04o%XtR=&T3wd#t`)gNEhA$6we!yYy0hQ5DnLOxPPrL2p^7>0mL-M-PT5D zNTdid5%Blm|95KTD-Zd*^h5cIEkYszaAI3pNzcI0svpKINKWtfc2;2ne<#6CT|K|7 zqNXVeicEm)`_2f%o6q@oZEZqkdqUI@sG$H!5hYVz_S7_+SQ-vT(w-ne3pn+IId)sL zNf%f}@ZWPZb#Pcx?x~Gw77UT-Ed$ZNLTktv9+}Ly0ZlW=Svkcx%po7$Vb$uB$Mw66&5iE%FUw5=__mOclM9NeT?lb zES3y=;)+uU6MhVp&Dn%zyoTxka07px_0rDOpJwYz^#LzL4=h@vj7eP1}spsW#GsW3WA>E8p7>Hu2 z^oWJBl>~SmpaH1rm>4cID;7#x6K8yU>O)UmP#)%$O#g(eq4o-kR6+PyIruvex1vJE z%~o1XornDlU{^p-R(6iM1jIIjdNukE38sFYOJGrZ=p1`jYvX>k)>q|^M+UYp1zX1C zQ28eOb6a0^NRj$k367OB_=EeuxKg(Q#J0q*XY&G>O7Q0YL4frEUnt0DUkzJ7Q@@Mx z^8E7dw&Lpi=92zp{_ziT%L)-Jkuo{=Yx+ z&mJ=G5(D+0lNQ!2itnYqH=oe07b- zEi@>mm8c$uTR6f%=B=pzAj7Xh5Pk>#-$Cg@!kR@!E~b&0T1LCGHLxWuxc;0|XZ3I< z;BwlJXJdB%ke*EAw1<`}%$|IuyM+uuPo6#+ugqLQNoR9A-QQUnd;Pw#Aw7jFWRlm! zExYVL@%x4<0tPV+3A{-S+MlJ$E~TzL0}AC@5tpa{r(0vV%TG5l!zmYc9_${5Muk zGKPlJ+^>o3A8>Y`Lf<%lqmq95_|Dvlqy9(qKZ+lCoRq{MHS)!8DX(Z`tu1OV$XV6X zSliIi*8v%7>8MR(Cj$VQKs9MuZ3DUM*wmTS=9Ko^f{CiC^PsV%&|6T!`$T8ZE;ud4 zRNFvFiP~mugBnvp*Fq5p6t^al6qgKApf;Ht46%lrEvI6Nq;3zT_5|e1)-mkL;hA{> z<<`rS?px6B#>AFKd^3# zaHgZh2uH+WPlw-DT|?VK+tZ#?T4ru+Z_Fg)=X#GN$?FR$k_xb=Bd%?tu053Wq?`Gc ziJ}Y!=uoCHIU&CNFD7?v54qo%tnNDDnjDi|&4sD(YC~7f0BE(7(mj%=f0(ScXG9b- zIc#o_1m3$&UbKUX^CN3&QlxTgAOr*uzKgr5LT3*iIh~Hvr|H!+reyFAQT!QexU zKOIVOFOkCqK5JGEB%3eB5V{UZ((clq&PkA$b`~KU{Cru#K!g~GQ^dXh9$1_5A1*Q^ z_(FM#=EaQKl|DTi#-`n`ZPcWy6GIPBX_$a#X;kCe+j~+^scM&yB_YxSl%5_e9j+&j zdzm{_u2QDD1W0>Pa$wOZH4K=ffssr%X7d`!!hcyuL(MEk8abo81C>gwB`gLF-sOK- z>i_@wn?u^bSK{l)%Z{C*>#++_P?T2XbrS8(hf@;SzIP?!73wp-GMGZ5OZLr7+VB6c z)Lj>De=M||_`7YC&Sy)VV*xv_g5WmqPhFx!LA_cY8P(V_S1y=S#tV;%#^wrxPGJOo zHFB?pkLw|GOa~4TSyw*up@^tY2lIikd)c!|#%42g2VO z-;Nm=Wa8PPWk@5(X)9?fE6+00a33xTnUqiy;!`z2sW`)}F$Z3Fc#W3Ixxe#2MZix@Sn~|#|Gs>LQNA66 zsSq0oNOCySdfkdU_OZ-o3E_0G=+M6YBQXUtF~KBtk)7{Ym91jurj3yMj4NXDpey|1 zIgNAzV}nhC08W-oIPC7o#J;liQNA+XU(j<1>9C-q(|32!JO)0F9A|?)z#)F{u${ZHHjDy0M_H#_h1XgVWZewn3>t*z;s^JyhjB`Nhalw_KT3Ar70?(A0NRE-3ANnVYZ zIVht-zET(Ri!SO%^tcI!F2Q=6r`D*gDXZs&f~pgnaNx3%qm7M&wWV{Lue+|AK1Emd z;9>nLqPMucDMRM4A&+lKfy2fb+bIw8qN?`K_OV zq5RbLn)Ye*f+Jx1^TV2M$kH@9;fOo?{qAq^er>PwpPL>GmDA;IxA)E|PIHwWf13iK z#`?7Lr6p=a@dRRnsj`YuIIo{Cw~ON}G}Ffgo!)vyF81c^c&_hxQfv_!u{F4LTs&;N z>|Ic%aBf^U%lkC1MJ#Ib*-5B3Eajz(!@@vd0|B%hV#g*Kdd$ zQD9=vW1WQB2p9fLI7`--ICWA|*3-(5x9dwvP4!;`hOI#MX5*8T>vUNO?cQpHeqpJv z2NzGr>q7uxPge{U5r|_%Zg@iri|2;~a)WlmW?Mb~?rgV9LUP*m4Wz-Hu&t@;LQEn8 zbO#@c&^;qf$FPr=jG}SIRb4JjoRhxyBui;%ELn~oa%OOMr~g(dzI}-7$tMbO<(K2S zbzIM~B4JIOg5O(E_jc+Ft$pL4|G>kutc0lgmG1TCqlo|0m`}$sO>K2-NB3T;b++2~ zuXl$JgWMKq0$<^{VPmHmdq_@flF@&mE0s9YM0&1tl6gJ+kEedqmEC>OdHX$%&$uX) z)ULzdH#h#>y$BL#KGX^pEMrk_eqR3gDeLwSz;jB(^)Cz}brNk?8V@&;y@gck^5oP#EhR?-gi!JB^^2k_f5tp67#&HArnZ(< zB@Yb34X33$7KldcE+Y5kD|Qi>kW-V!md%5LBCCju6jZHq7yT732Wz6Ep}}pzJ*HR} zSF_p8{G6+vb3`)_48@fX2f%6(WQ!KoCnqnmMo%0Seh*)M>1nxc6%_Vg+$;QjRY-w& z5`3_YPWrhX`c+31H|$U|7G6%P6h6%yJ!yYg6ARSUKzBWI_bf9M^EY-w@Ft!IYfeAc zdm%$hN(3?t6NlP$ow|e&!0z`QJZEc1b${B6(z1enmzEETp3oACelyiPINCC9Qa|A0 zY>{1=NaMtMVK*HzG7pj3{=V*^r)*U@(1X!6__yReJ`6E$WeAdYtixr1_dL!$ zS1V!n9g03_?Wl35rY9HwhEdANr{X~+p)qs_pchG2Pl=81qVtUAN%4v;Ye0-jQfgX@knuMjEKfi&X z?d{;}e7%>MP-jeM-ek`h+bWt%mZcVMomc8 zATW13U8n`X*W~z`SeNBq#m&svK)WhXPD{@4We7b_GAeJOrmdtVV7R2j%VRNtODoQF z!~1;pNnrinPW*k&`d4@b=wyThxt74bq-yJKO0sky;L|P~DWaUdEU9sx!uW&-aosN<>RcQ01s6 zuqtGc#_$=&G3+KCGmNJjn6`~7iD1vqFDK>vz6rDImeyxiLpzPEPK$V}1O*OltAEr5r* z@oZ2-Zt<_hZU$B>i|tZX2JaRy0Yq@%#V6QRRd*1wQ0a4jyO3uUkQ>e(eWx>RXn(^e zA0NRaX)FpSNocaoCT6%?g~zc1kk22lXzsgj-Q7R8P}PsV4ox3%psyT5@)=`G#LAbw z(b46{FkJQi`=4z~x3iW!0ufeogBGEy$qC>?Nq|!|G9ugE&rZqM-K%Ao$Ud3Q3oC@H zpoAY+)hMN`y}5Y2wXL7=Kz4WEW9~iSx7Nht;}W#FwlzH7>a2kwCdrW(#h>`~`&XY@ z+_=>>&|{~}kd$Ip@k$oDX2{Jp!JM>nv3PZrhR7S8twyauaB1?M^s4MF2L(wM!gNJ` z&*2$5&_K%LZ_=U~^zry8!WT>^G8f5tA^(Y}w~(UPvUNrb`;c)XnETYQJW5GT!E9=- zd+uZjBaWMND6g&^8Lgh2nszL!w5&7eihJrU>ue#1NGP)4>6eU>s#1KCsqwmcocSkD z@q^R^y&~h)Z-R-jnm@6)*ek%#o`_4*TwKTtUuyr47NjZ~Ua~(vfHHdAB2kix3QK(e zjuAWa!I^x#Y>kA;nPqh_xR#Ub0fd*)ag{*#{#FS7%2mH*zVvf@!Lbt|!pt;I7 zMF}~df9>hbucvafPq%%0tS3-AH)$zRo3Js${Cs5jNUj>1w4*!q1oZ549BS7|Ici!9 zf5ql8`qwfmBN49IeJ7c1t*nj;O1o<@hTis?7nhSQ_6nYLv~=c!Ef=)(xyw=*v(xt8XzI|>ZDM?*4)vK6GXj{&>nFpBC*_^VeuBma|7l_|}{eU8z zI$6Oma^_0LQ3>Dn>qj09j117Jw4$nDETB8N&(gH&J?{@c8yXsexL8{r*uCGB0vVf4 zLQ_XWtyx)yx+TeoZ4|k%^OMzr8_SGZ#Q#-KJ7>mnfjZaSvlza84A!QVI z?9rvw=RnUeIgN@)gntTftwcu>4y{{_e!X2#HbJtLE;~=?8UDYzs1?uPw+f|N? zj{Y#sNzm8QUY#goQJ9>nEweG{WM5VBT}i@07w5*`;RG1y^6{`&B=lZ+lgIH_oSo8A z)V3BS#7IH)ui=j)+(B97D=JBOKfJk!dhBH2&~KA7+4^Z0l1}>d(*5t9EzC zbi7>@4dk@NeQd=QWxZsbtSNNMV#RCAnOR2Z>?QKqN!nDFHbV|AHlUcpR`sHKkO7(+ zT4}inVZYIS29ApnS*0cuw8=L89IQSDqg#?_Ol4XI^bPT@45`K_GEo$hdfP$#m z=2Fxs&%=Ki-+tIP&9<~3O>=lVV{-;gE=&IU(TDk}lX09@)|F;KK1S{RDuw+@KNrdz zydfQpUPLy9d}uQl`WUPi3V-Xkjp#yPQ(H+YMixa|NiSPI-dJ+9G&o2#&`CBpIJC51 z)FekMTV_=j@va**bD0eXcGyQ#b8c`a#kYpu@Km3j`tg*-T1Cmm!*RjBI;fsVPeXq# zt{z=QTAk^}&)!a2ETMAStSFGEiuRIKSy;e3Gie|vwt08h4*`v#-v}9Vnn5r0&8TC4WtDJUzc+;x^gpF@bhyF}ONJzogVkCA-_j!p7u z3CNC)+C6&`mr$OL6R{h>lxTWG;(VZEs$gao z$2kUNq+wKoJDF&8>JPLCgL@;|yKloj-Y&C!_dWb$I_?VYa!!(&Vj|dhJSLj!@JNrH zKOIwv?>!lcY5T8MxCsbgL@$D}QwUCDfsSB>pLp3m0ZO` zxVbT;6a;saExGgIt5`RmtWqo3&c1~49+jtEX8R}W!+AqRRX4tG=R&^P*_B+}-HxJe zQA*+zv47pA+O`RPh$@}phSt!m*aD12r6vjyv&KRq#m zCQw8`WRQ6f>>L~#Qu?>F0(Q)cptYutYi-)NnSRrBcU<|i;kPxAD|n}+N1bweABQv! zWfC+QD#T;z3`sv*^16EY#Y99#OJZl*aAyOshN2&=u)V#!bZI1EE(6niobInDM%XxB zsbBYhn+gToH|UjkdEJI!X$T0OthY&C-n=fm++z1qKb^)zD%TZN^w2_^nr9irKiDvc zsCalR;YF9;x;5Eww5h79Yo^*dhPNEj@(T0scs_Q4bkFrk=N*ol>|jTFg|B&${{q~# z^^^T9uYNJ_On%+fNNnrG7lf`b;It_I00kWk`+4j+vqdke0Gv%ntJrFS`bPIGvk?w% z3_i1IY~D}F^U2E#j~re}d0O&2>&aN2-v?tb+`~dHb2zO}pP6*yHpAh%TUQ*O`Wpv^ zQ(H)$z0Qzx=`okcxRBUVr@@PB$hqjkLw%r5k6L~DV*+~%LU_bJLu>157R2_tk;iFi z9`K3|*Oh{kp4Ys2xJZ2!m);@V%xK;G#!fY7)rcWm_!f#k3 zaNMrKBIoZ}F{NLEKmYwr!7C%sT~};j$LJTjBGL+S=5BW9`0^&s3QHn&;?KqLc6j_v z=NS?+`M1tpL~w-u!r$SC5~bIr4wIF&sjY3xiTjdBR|AOPDDl`Uq@8y+Z$mtHV`RX0 zLHQ{pCz0gm&-|E}hP-*}vqyd3o3p8n6#<_B%%sA}-}X4Q1KdVh2yqzB7Kgk$UXyO; z=TtoM^4HG-JdclCNHR*T6DxIJ4uB_r)~W)=gEb`r0?vqpk;VrYe*dnB-}_km5$com zV*o@SpVlZd83%beMNUNstiue9Qx&vb|5N64sf z682rfrv()erB~8TZ1{C+Nv$Ir=OE*G>f?w=SEX-!blOKv0#ZQ1?GFFb0(0HV;hqCm zHN!ddD?gAqO@3LPc|~bO#Xblfq%wj2E*igke&q3$eQN9R@RGVK z5*HQqm*KbCPT~8GxGqo7(1k(>#BV)3=IXp23eJ>=k&hbbTqi{b`#S~>538xkI@xPA z-d1!Fw{oQh=&vc?&(_HATzrImv>kZg!MRr?Y{5~a<&-mfuT~Lh1K-*wyuFHC37Tt6~D;WSrn>+5WJrAXT`z~rjxd9y=r-EP~DGL&Wb6}2$; z;~~=$y(2=?{psBtR6qXM;5oRLm!~-YT3K!sQf|PbT-B9RcYPk%p?s4ekm(UuxyHR8 zH%w>V*lSzLwAtsHoPq2ahPs6lU`zU<@g~*s%yx|<<%4+D$VO4 zH^zQy5vp?wXf8)XD}KkuMyHdx>GZ!1%S?}Ad5@@s_x9Xvxe%w487O0r_jpk!(7FKo z%o1a|8aHKTiYne>T-l10mSqRHW4jUDU(XPJSNw_zkhmVZ`{)!r9UFCtgM`{)408Wq z-4d(i>Y?ZQxon8P7r+OOyl_4kT5Wrj*zG_<#YclkpcTYs70%T)T=*IA;WB9t^SHfo z)1$2sDaf2TxO0QW1haBtMOz|8owSQ)?B*avov4VSQ|mK>ot!;)F7j;N)hp zSHAzxQut-WmN>Ql_KPF*AMaTh%rLW^ljiUrhaNgfy~uGFAZ=QbU@U;JA9_OQW3vcO zjaoVDelwl#J1Zg<8B;bw-1wCDYiF~P!-T;q==EaN1cshi;Mm%*@P&0HzkGSKKErmbNm-AqX(C5y=~CZN}qIse5w_$F+~E0NoUft6`2h4bAw( z)ENzcTGOI(v|M$Ct%>ns2vr-EuziVmX&Z{OhttoWf4Htp8KV+h$RXq?UxpqFOA)0) ztm3IKKqO!4j;1P3X66l!m>LITJ9`sw z-=osuomKSX+`i{@*}ELbOhlf5fys-#{48RjvgDCbG-$1!ym8&+N=)zukhpTbr?p zjM)e1{>091)qs{>r4f?G==A-vWoAPh^lbTkXDZIgsu*?8i4DtT$ITAn_~e8nL(SzC zxt%-f3wx?jr<{bBMa**ll%m5l81+JFD^jPr+(*z31~_V$l^zB1j%gp^XTY+GeFKKUP->qj-6>u^~PPrx;{`G zFLxmI4^h56`5p#Py}Gs{s9tCFZUA2i!N0e>irIE5k^@&@NJU>16YU&Kxj#`&Y)mfV zfq=aRWP@3pS8tN|W)H&5CG3sM6|@S`OuI=V>(RMf1G8ueZhzR97UJ_^&AF=1tFkr; z?G>1s1_tW;a+1epUj1QJrFlhaXJF2{cIh~ESEV^-GEK^4?qbjH%2gg&C9!@bw9fV!cgPJ zGg?)aRx{}Ahs~$MUDDD{OC=6X7qA_b8nN?p%jX%btq_H>nuDq%6S>^65oUt zpqRH)h(V-W{T+>Z1@L0K!{G+!caC#m?NdP;qTD=r`+h7ba(=rMy1ow}&c)9FD$=lP zPf|&$vdw<-U3hEqRW*s0RyQt8vkO3w=RneiSn}dE{YomsEuo+h z$G{kbvPK6%e-A_Y>FnOf$qq=Ba)azlqu*@l$pJ-sJ1giR^)yinF(j__u{r-iMN>q1 zj74tyx}WX$8BsT@8E%+4j$i287{l%)3bob|&=Tn2U%Tg7)%ti*bZUX7uIj`xv0Wrh==Vm|k?U1)ZK?i`t<>S4YUV z|HT6gvWP{J>uT>Qsw+2ZxA(tY?0ieF`<9c=M41v>*##{nd340A&5ktx6JNmov*L<6 z){L4 zQAVos&>aYS4{3ZXu=P@@tp3m>n$Js0N&4A3dC&xQtW19?_j;&Cv|x}_0Lcspm5zj0 zX2ztMRp5tE!9WT6X$E_NX4$KZH20!7Cpe+H+VFt>?Xpl5MZ<) z(aV-B^3w26R90tZmd}^Hi%c-ut^%xpakNvOQUq@w1S*43Ira18xUog4YcujY|NucNd zL}OM^USerQreraX$ebXu%EkDlXREgsF->Xz29f=Rw!QpdGkt`zG1TdpBAm1R81ZtG z%a3SPH7^rO`nTfr+>j+v5 z+x!wYV68=w491Hpf*$L?0aIYOUUipe6aV5+*<9IuFg?LW*BvKOP3c=~+$1w0->QmO zj50RyOS|jsQkYlfG7l~fbGYKmnhCRab^D=aZLLLBfh}wC*&l0+R+(Nn8BKlddclcehnfQD2#JVzm>s%y)QlOvBQsOpLb3Jb|Gt8{dEgur$6^`#s&y`_SSVvPli*|>@- z5TEnZ{Sh3eFCvt1jJK3|m;+GU36aoE-_S|hF{tQBDGQCLwPa@E7-r#D;hZ4? zj}GMr3FQIo6+q{uHA|AW4-nxPs*{W^L|cLhQ*ZMU)p2R`0xCq!2%>t;%ioj$ zPnC8(NK4RkOAZ&;xZR4!dE^N>&QDg-R3DkbEF{m~2~qtVygt_Da@ifva=d={FuYZC z%qKlmPW9^J`$FNty8U3R9MoF9Dz#Fi2(9$QK=S$|vHbeAN;nUXceXYrHICFuxO8-} z6UEo*oDO%qlKD}D_m1~{&e^rKIZ863^lCnbV*;*`bCR6SKkJ{Rr@ZFtHQf$VObsj%xfQB{tjw9{CbA&cjnPP#L z%;l8c09hLGe%tY=!)PuliK_G#S9iwJg~-2Ua60W?*Pd^44J!^p<~&>?1cjR8;C*5g)=1gc z%2Q&c%Z}oX*9PJXr+t-H(F$IkS9CS*EikU z3){_|Ul`a@6%fru$Hd&;R@hpaS&=-U#I#h0l0?2zI&*(Kgr^CFindFfz8HiE*u)_rn4e}=n=n4qxh?e> zF-P0;N-Ic)E_YU*w=iI2gqKm7>o8cqYyU>b^Fhu}Q7npR{_OF(TUohB z=}u0ka{tDEl>=G9!)NV~p*{8Tqht|ktU?u$_wG`LDSL!6!x(S7c3%QDYyh45s<(iF$a$eVV2riYuhb&OPc*`=8K7`(;?c!e~bURX-C&G<^gj zQ$lC6J+GfwZBN$PYzZbKZ3c{_B}59Vf)~aW#`dT@Z$B)nDQYPwC`=9bG;T+@!w1p6 zi?c2@%W}kVdqW>GT2NZH1KWV0nH6ngVQpA-YQZ1UTS8Zw7j`ztike*Uv|OhJon1)7 zz}8+A)LS4Ce#Y5+U4B3IMdkVCzH-V_m7Zt4};ObA`9t7mpwR-e7Ku`zCC0&OrWsMCP0-sOwkF4AbkPb4d9 zYB)r1p&m|WnajiP7J-;TPSIUt6;*$}3t*%LWeg&a+~qA9b4FZH@{UszjXPc5$_vxr zLfTuNiBmcn8P50j0v{C5@OXwNT$lK1LSvX2($2#WhN}0om9QR;)hl#M7;oesAY=pUdrbh1g0_%kwUQG9h?dXPpC*UxOs5|XwT%Baamt}rIXshGg6Ls#D(6@ z3xw!(8-qC|^!2S|Bq4eD(d~xl8>?9G%%)jIm3O2k zbUs(ogoRH;N06zOG2H&lu086pd}%4xuFKbg;)A}$w$B~f^F>MNP7N(xY>t&RcXKud zXDMi-w7^I~?6Uo7oNZjGr)2$z(35d!vP#a^aFD}-xt6utVQamW__dyvmy*Kz`Xm{t zPU8$2Mess%lk&aMJ@iu4VTsHsT*+E**kyf;EouC+2bN}v@~h$lR`(;~`#DV$)ZNn2 zP-qQ!t*J!EW*aQbxvzyE^=I6jKY{z6LetPl6t^xE%&DbhD1KRtx2bp-`&iI{JgKw7 zp(>ljOD|c-fX+4@zoYhAr;+Geai?wf&dv^{2Veds)>icH#@{dYq6f-IcB~V; zRv&%&7+I^hVQhmS%17{bh*+n8>|{pT+&uWr=XAlhBrB_`cx}v`Pk5_4 zaEsm%ULIcvjt!!4HqP4&?tNZ=i22SP0BzV2K*+)h^a{V^+G}h~y7`O-n-~;<`9__U zzk>(Ye9KVHz{tqNDk(A5fB$Avs583OeWsx0YaRR5_RlI&LdQ2MG2&VYcE(0_;#O`z zBmc7@n)LpSruWr%12Fz=NjfvTSv(Z}Z8bAu= z=qPAK(@4|AD7bvf7RQa-Q|~1wYnC5&jVM?WaK9DLG3&P#J694lM;G~-Z<}H&9oAe4 zh8gMLbTO2TmV0-_LB!~>Q1%1!o)RvQFoCEgQLlCS3n@+M8mTh+7q97wiNVnY=e{vx zR zS*~3eb{Pt3Bs*B?5D}F{RSvaTJjP#A_CtxK^Oh>Ss~?9%{roku&7YiMXR;~!LxS#E z-(6B6+Yq!(^7i58;cml~y}3?!#>~VMMz6|xT>Gi zpO~Z7DdWQ(T^uqv?{`?Cbeds_V!|vw=Sa_Vi9T}n4-OiSln8vtz_Gox@%tDr{VeF1 zk8J-s*lUNg2WqaKrKD!aES&3VU#{xJhewrJbR4HezcgE1ejUY-Ks$s>c18Dychvg9 zj#32e6Da{ngYxaxjIP30(JV z>xXhNtw!|~W;sisDb6@dka{W?VF+5s7<|8C5#Z+LLLsicSVJ9Mh1NXKDBMqqOl~|Y zFZAf&@eyz#vG~F1vlCn#(@vCRVw!m(=|z>DQ)?b~AfG3Z$!T@cz_qHmW8;7h%Tva65N*RW7XS98Djuz(i@<}Nm{`6) zy-l^RHEt=uS(j1>OOC#-0>uO!u7*tE<4*d(HQ+;Wr-v8iRrz1{R%^Mfum z@HXDCNo6B%csbBS?TtYiQ2mBY$syKnj7^%ozX=5ii_>Xv;mQJoGvme}(wc?q#nKY` z%Fz6)4Xf2uobk_kpZRe7MxV=grArAs4E05(sgS)lCPY79uH0}YjBy-BX)ZPHpAF|I zmXTp}9ed?Yl3%8& z9H#BgmS>PozRmh*d6iOWKUD;We#qJ@53Y{Ll3Zc1@^SErdy*WrC_FOaKIhYv$+xbl z2lZ;Ku~dT@UB$Cp;&cf-WCGUPX6-Pm8IeJZ97tU%R*9eB!&ha=o9iX{RAtlk#|2Pf zDkJG3P9w>THi@-`F;q!Z*%oXTHzSQw@uWWs!cfZ|m6XZJKijp-pJThijwLhe2d0$9 zlLiTA4HaJ76LDg}jis|$PV5Iwi6Jwp#J>~WPeMuO_MxH4s5d)miDMB>q>>jIY(QOB zG3VRCRcv3aH0~{FEMSXCW3nHb_kU3u!P+Ci%8K{3h&#R;%jda!oy&21B$>^4=)rw> z+jgF5_FXtlq&y~2vY1q@KU_8FD0($F!|qJL?fzp(8Nqb)T{4A?MukE5l1Nx8A|o1{ zVnt$={x(qeZ?dlPEt$=-Ga0Iy0>z0*A)a&+cJeV~Os&Rlp$e+nWHgn_^C3{=z&C|& zur&%=LP=O<%wXUGZt8v5ZP?B?Z6@o6N>Y(8w6AP84>`@B&M>RDM?{sYDZ(AmHKi!(27Tk;=Kd~ezA!KQczNHspUj}_H0|nz z0ZqVPZ91Av%>LNmef!=#n(*uK#jCO<(}D3V z0U3^5nsszpC6(0`>(i)^HdhwaguGWslR(>WMPwg=c@1q*rKQZ{&(Xv6QOvn9J&bVf zhS)oU=Lw~WZ20+19tCOsk>P=fTDo(!ArxGD_&+MyE#$fwaciH1f=839^|riH@iY>~ z64{qr{DKi9-u4MA0h1A;QUfJ-zNJ*_J$|LGyE~g?m6zz{&-;-7^&u6?>|tVHG__Ih z(1^uZnTe)M-nGMzTA&<1=PN}J1*eGQ;;c*Gto556T0C28plf-s}cP zlge*7Ye#ALT7*eL%k3}#^NlH7ps5Uz!1RKGQ2bjGMa&v$7-XW5!06hrS^8A=9!WWQ z1!<+u0gK%d3GvR7TdD0)b#C{MZM6Qu1TXO>E92N4G6Xj6GdSonf<6dyn@Fd!exK>> zdMg8&ooNUj`~IhZ7f_zVa*w(x0%a|%6ek^0#=|@%sHua6`8mg!4Mtl1`8;Zv0-1T{ zv#2=ZbVzv9V<3}bAU#QLwI~V`n?f8~w=j9!2z2SQXJ~6Y_zF&~uX*R9Mz|B{gr*c) zwT>@}{H)1t*X=o0ljd+J8th}Rtp>M6L*bf>V|@vv!kbX%8Od=o2k5)lHr-mQr_i8* zbaO>hSwhyWd+lN|itex-6P& zIQf8JIG@+y812TW%8Io(txp3@@{gFxTdXn!q6}KqE)yl{W_lEI>J?@)Eo}I~m%WU5 z6ovD)6^qliQVC;dITIgBooaGkn=yObbz^&mRx$)s3(T{4SPv4mqw<=>_go7&IsPoimnXwMr=iJ_>BSd zhjq>oL~j|2)?SB#J66a{Y*2r;lc^I=_FIy5jL-s$cBZhj(Hdt+-JDMt@`XNz6x=Bb z@aMpssUNJf%YBVeRXD-U)890jG(N{O=&adL(NNx1y=HE@dI2qyew;}!>2A+W8YXVR zNtez(&?l;imn|MvxDcUTrIl&6zZv~F!}Jgn@af>v5nljbwax0%!WEy6Yl%wB?QQm_UBH4jrS#<(JNQZ>T0a z@8=4d1D=RfKYYJ(!;)#XTpb&dGApw~ZriUx0qatyZSUVp%WL$zM7HL|P(>}Q+>xRx zA>H9>Tq%;&)zxK9x=^Haqu06Bmll-72hHrNzi=L8W^I8IQIQ(9xB!akEG7e5fC9V9 zgEI-NVEA=bd1pGQ=85VsLrTmE(qih(AMIXP!FZ5v2KPs_}tF7M! z7KZ}E4d|~`%dtSs@-d4CvrX4&R2Y)lJu1qISj+IcdwRF-o4xBDqBBh{_qonZzwgC- zBy^^speS>sP#+i!+h9qh$uHgD+-Qy~RvB}`)ywpY{DM4#Lt(nR&ujJ|t*MMw>1d*l zBci1<{IhxC1FiJTYo?;qn#hfuxHl8wx~(2(H?Js)67|p|aWs(ASh0`22lr<_&?@EF zg>VO|!Ud|15pm3`D3gS9Gdnn@f0WudpmNk=36_72Q3G9;N_U}u)v#Ar6o{>&mnQM9 z+hN{LP|i)W<{Lg!mj-%NIXAiRmUC&Tm@IKYr_R~LpYH->KIg!P7Mw9R&Bm%C33sB~ zV2WbKO|WIOShO{}KOdp2y$&x4mN`=3os^b9QkBGvn-S`w_YP9`?^0ziQi%;GPm*!h zCmOuTo=rH2-u@vJf?UlU^A_5CQJUD?G`sj!XpYV|G}vW}!WhUj!Kod3QTj5SR{)qTUOqrCoM{DD2a=7*b570>AeYZ7Jtw7VB+TT;JW->c)5KApw-P2y&d0t90;AZsHZ$tE4Tjb;mgBEk{KUU%(6%-@-##p`uWGr8zs$MbfSO$8 z^>>9KL0n$Zergwg=XayKE2s&icpik{5YghK(an6x&sIceA0dt4vo_41Oj$N`oux@) zB!t%!-k$0vJ!jy(YUd(Aj=I(n@VJ%Zd$(a50+ui=!bF;En9*Sj`%(bhXcq#2Wkm+8 z8pF^nss{DSH9Cp;d16%$s zh;57ZDe#EoD^B#FQ56ZeKZ+oj3}p^<&?h5iT$u_vJ7GaTDnCU0-$jaGpf=f|sOGGA zO@Y}wA9q6|4TOOaxW1Hr5W*OQ3WZ7-Bwz7ohz*LKJ|M%sdFa+?E7r$u(CICpr^6ottz_dXR z*b5S1jsyz9XW&PY|B3AfhPn;*a+eOW1Lcn-#2|F$4Eoq`{y<>|jofsXqU50lz2%J!fPAqpn%;9~oLK6v&&Jo|Obi360&?Wa3T z{*nbuUKrvThs39+O_1#$w*5M=L5mse-gl6L7I#pRfNB3?a0PUo)&0s@4xe?7XN1|Vh|B8X$$4KS5o2>f^U!d?O5VY6Vg_P+dc6o5N7 z-$4db8$~kzXS~Ro;!8jNHfj(F#crf;e~bVOFqjO`+OhDr5dV4*Fn?E4fHIFh#H)WH zE`;Q7(FSO^+Y^XpI*1K=#T8R%I1*Lj}gf@F~* z#H~R1tC1T#xC{7{S8oq7yJ2O2LGj;q-5>++u7s2Ur2F468hl{(%{m7^c!&2tdTNo* ztcU){a1ZDH&qcs2KxNiE0T4{Tuil`+`XK?tfGh+M8h&W}e;yJ*f)sR7wG zuhy_2YxH}I4P0)1-+}yh>G&e7pTKh@AmVc*e$DUm{(EWpYXFRLLJd2_|LF-p*#ZQp z#rin$UlIVyb`TllZy&mF{oMcH`HRJ6(2+udKKy;wJ3LXr^Z_nBr~xKC_c{VJ|5)%S%KHqyMQVC|26UpkknWEKcIGg zL;uTYPM#p!mcdRR)ddm$(ggrQ2W>_XjGOu^Dtqxjc7XDiCms;HJVN7Okbg<|>xh8Z zWlL@C#r;R>`=&Lj4~ly#P^whQ`(U zlNkWJb}YhOlmvlQQlbp}YjG*RPM!c17|2QdHSnAFAPVov1yTOl%mWVCti8Y=((tbc zK*YKQ`H$OvFj_DO5QzROvS1G{Aarp-YpcLtIR5MODnV;2;XXY5MHUR8FbaxHDYzDP z|Mh18sJq31eQ5z%WqCG)@gLm)*KdMB6p&E(8;~LYalZVtAQ))n#)0hQzZ4corP4dF z(MWtQ2|B_500~gKzyql=ISW$k*GgRya7H*#-W3CErn^<)Kk@HwZXgugtUSX^{?$(( zC@+mb;%xY1dT+(S>fWx6Lh^g~4Hz*mzWRgjO%agqK5*!AXFL?mDH*R(*af&m($LtQ&{+ueMYn`0;d;=vjj+RfyPo~0!%Ik_>O&wg*^AU?kU zhM{4jyPa)Hn3!yfwOsgH{H4T<6ArY#35C#C~~W0r;y9JS{MYKeU0IKoBsja)ZPU z@n5(BVIva2?F0&qvHbhDPhm*Bh08uYGEGo$Vc`SgXwMUS1cpAxs`p0SUGx$d>@c??k zWdxb-pA*zECkkTQx~D@2;O(y~Iq3zZGGT;xjEMhmoe=^C#K$0>nt$x&Ed!8-7%&hh z+5IOU5OU3sAlsZFh?(AQ3jGsF0j~uM$?pPo59o&?Rvik^wcEfz;N)RG?}HC;yG;Q?kNr0+UOzzg*aZVS0-V{uc;r)@90N(e z_3H~5(0*Y5-8vZrIlIC4LccTxdZbo^1>Nrep#G=`3|9gJ|GRl6sC$++mB%ph|FR^2 zpJx!#&wVHwe>8aW`%7pzkhb9Tg;f7C0f>nQ+Kw$8ZGQgW#HH<5Zim?oDf++123>mp z6;oWukFB=Son(J`00WJd13Jr4dW{3E#{L(i_lK>zl2YMovizMLwH>xJc02diNy*$F4*Z!Azo?wE~+&6f% zjDHa7NDu)l*((JoAC{6K{B|wBSy|Hs*_>{`2b2GA#-p^~z|OfY{RiIvwBhe7=(jMh zp_!_+@=fpjNyO3&0&pZSuTL1_;K+m;KHM;zdb5p=b2{RL1HJX?Uqi=^dT%*JYBpJ4DX!JBeI9|Z#i%hxbTE6R-+PcRI7`lC2ZIwmX@=@ zE_D7lyU}9Lj_6!JapOe}>2=Hg@l%?jS(CwwK4H|Prn(Vlw)!BUFSK8uNnIK`Y_v}V zDy~3`en&**{j6iRm`Wv1Lp$HF=eC;_bXf1c4Mx$<`Dg5pFtbQx%%6u%UcFx)`n;Qh z%^xyoP>mx^aW2EzG_~e9Pf*jsoWpRiW5~-MJGw;@>O~Z_xGcz@(QnM6G0~%6F;B1( zc9?S4KfDO_m9X`MQ<{SL#oiHB$4e6|{7)puJYm2%xv`Ckd0s)7h6yd8{|oT)E-!t; zhqHjw!x&K>LUzYSFaCsXllA4cCT2APm=(0{Udd0y3h6Ad0DB^r*pYCl=I= zs%U>&WR&`l-ZeY-8`xK|FA8&9~bC|=0XvK!1?g<4=)tWw{vqwlR%eNVF5 zG;~F4=s4h6w@(zGDi))%c$L|??$F%qr(Xb`(re_Pqry<2U&Xa#v+hNo67QXEgs@x13z1m_p=z;k>`qr?oU+g4T1CV*6g4={JrF+{B)Xk>z9kH1LP(+`Q zy(s(5Ovi4)tR#rAy~enLlfd7=>F(WUH*rk#(T0Q^?rK7qlDCeYi}-w2mO?woN0wf0 zgRc<}9I_TG&L^e?pR!OrwM*YZW%TP;e&;FmxTpNk`>r1oFe}Ez#T5f)JR5TI_s`$( zSy5LZuZ*)l^c1`BwKc-*F zMZmk76*{=D5;mO4ZpBX8<9iPUi~Xpf0wg){(RT?h4!}E_*R%9#+easL7aPZ_*;Tqn zS!p_HUbdq}DV<44bPRL)*1bqvC@3q`v}H6hP4@#E7uh%-%BQU}*bpq)-7hlucsVYe z-n~H&vPeT(pi|pxeSr<(ojq(ZmBDv6*g3kz22Ho%*iBYgz`VayP2v2sn9;Z%>>XPIf%a>S|}nbokvv5LZ8W+l)`s&rQe34Z08n z4ZBL$`WdRq%~fMHo*sIJG=sRuy?(+9$M!iJr=Hv{zD)eO#y zWIXrf)q;%>QEE6UcUITWHY+HhSesDZD!tk~&gb(Yt3x)FyB7FCpRLRq?2|1lF#Rl6+fCz*>2ZYq^_^-HtSWe zf{xX_7z$z8dKX2PwW>B%oaDXV&`&q2-09qz53c7P%w;rsJ63kzs45YAefa`9cd`T~%@22B4Nu*B+uGATuwowYlt;L2PD^#=pn}L% z;l8_CIkfr+xE}g8XIxVCFj8b_9-bdur4VJ=6B1^JnHpaN8FI*Jd#YoZuRB)eI5yKS zJ)f(C4`rPYjUDlvA6zyhTo}+9AAVkTq(JV^lGWlfJ!tItpqLkF*IOMhGuZ3A*!u9r zLTl8sbmaTeLvdJsBreta^Y0PWAG+(vR;Ys*4sz!<1DCZa9uAL^bPMjGDSQH@iB}&pzByv38@0-(D zued9)eJiOFfBb3dg=$(@5tZawL#6BBfr$Lx7hTs?*%Dx8Ru#iDtNApn(pgjQp!0Z3 z?8HQG`Q3Q;+b{Y`#@nkp-oWVaR;;a)pnjY3lO>nkyzAv0QNf?dN3{)*ZL`LAL_Cb= z&fe`Bb=x;nOF&l(X9tvtEQuoz~{=YK3{2DvhsF9Io-2%|A@Rof1y|43B4xlG%t{ zg7we|$IC7kMJ!p`m}h&wr&`sSh;h-Mn%5Tq42>Rj+QrIZDqX9+@wyzwSWUBDN>^-a z?iL*QniYq`LpFGIL3evhmsK}$_W7YdZS8xc8f5pbGOo|HPg1*8bOn~Ruh#v>a)FA8 z>O+S`p+s}reu8s>WCg7{n{WTdctF!P%i!_thxtXZYlQvN(a!$#avtz=pt*}7oTlko zN7AaTi1`$XW&+~)p@7rc{A;Ru=Yzab;Qtwn=#5(DiUhPc(bziXZiq*N0Ce~iouZt< z3Gy1+p|m;G4~ojj^E>GD*;U_ATcUniHpNCUrW;;3R}MQ~zG%Itt&wOMG@87NNQs_KmS87Km6oQk z#@wv4(Prz_Zsq$p-FH^+xRhyMq^KIL)xu=SqbPW|Exp%H#C-lD6}^c*$Pm4o zu3Vq7D3_Bnec!Q-uAfUl5BR_AGCmX}H+tql?I`j$lhnid`pUPsv_yntpIqa&JbvC; zdb*~d=z7G{b3WTKme7zD<+O^_9e3Er*4Zpq)oOlkFgY;L#B@IZud6%y)}(+V+QC@D z-QE_bBbJ%9Tu(;@p~s;#TUS%#$SCUxOj{ZMgd|X=LCR=wi_)Hcu8_##GZ=LqteHYH z(PM;UwQa4w;5g8<@M>Or{m7ss(6h(9yU2h{eP5UfN}HFV;wwL2X`F`0%swR@qr&^( z35?#JI6C}D7?b$E9aa@`sNRqjZWRG(U1g16x-roBSLc9OC4jQ)W3#6HV zTgw;lMubZ{5rq0AGw)0G8BK4`kY@_QCLVDK6cl-?zLwUJ>~%dv6hmoEnB0C3YPNwE z;Bxkui+UqpXSv|^VDy$wRmVFqv|LqMu<1mjH}AaIpj#4$t+X6pmLEol)nc#oXKK?3 z*eV%e6Z@n4&SCC-{dGC&Hb=VKdfG&IrKY<$rc@XWeK{S)2^Q48b0PK5ug!AC!$eYE*5gd?>+fgo;aKia31?IfVE=s=aEUDO11755l#-2(i4P z1-g|cm)H)-PLuOKq*&?X-cO@+kj9u~=X+Deu~8XUm+)a$sy(#%aKd$E1lG*+y?HFa z(RVczTL3DF7I=|cwI+JK?_A$i5-rvu%%Lcn*xi)U>R9Rv-)xnh>*i$md_VZmHBaAv zO8{M*Rg)Lg{gx8Zh`lu++Rgi#1y5J2Q?0Ctb!)FOyKT-_x4PDn2wusW8$DgJlCZ5r zte%f~bu5)@DOsF|(YP1oz!VA3h&IYzed#LL3rh7m>5Zp2JTrd$SfX{GAPj-VXUyZa zfn6?6mrOLO?{|+?xZR}^7zc%`bQ%n_drRL4ILFnHmnnA~7KbpFMS&Lj;kCng%}EZD zI9BusgzW>cMC%U}KT0*{MsyF#giTMsLvbK#423EluNKrMEv}~a!Ctps?@X~?JcKPP z;d}kuKe{|`Uv2&YUHtrTEZT%u%oYf#yF?21iM_aBJ04H=eDzdwGdD z^QaJbJ>TVqpf=_TD>0}gE;PC~{(vei?U+@m(JDKH$F1xvo@dPmdx+C zjbkbV^;%w#hkf$l;iX%LzSCo$WvyXltFL2+ z)wCza_~I1qjF}S`_vIzHkE6b}W31crpb)K+GMjv-R2Wcl3mMmAq9;PV6&hT%-Tl)E z!+9|yByQ5p;LL#;jTxwzh(VL=Nj>?zw6t!5+?qpm_`R|nik^Vq>!Pc*xQ$u_JfSR& zE0kx(yY=UBipn=Ldg&(53yJp{!fsYyj?;><-jwPA8N(MUVJ?#Jt6|$PqBY% zpdcywaV{ENERru$`t01t;pg;^DO38}o*DZvg$D;IntkyB8z^IA4MhtRcXMYlJS>$r zDj4f?1+Tv9v5yQ+m~W5ZvNY%J#hOG`PR>=<)a{y1$te>I8mdVtyUUo^1s=~FnOx1c zueqN`%M~2&ktL+(i@1BN@c7<7Rqr~WNoeWl2%@TImXwrbSy~9#T=mG$R#|zdyFf`P zEYEx2HBc`%`8d0NQTCO=MfGr(i8)^Fx4omJgyHveI+)&bRQ1}xzfn%IUvQUrB`+BD z4c5AGA2TjRQ(ZL)m5}i4q%XHvjuhfCJ42w+>sZiE#avrZ!@$Plt(*CYGx$Jv2!q?Q z$0p&rm5O+L0g?nTo+-jDFzCH9&sb*++IUbfSP+wLfZ$rnd%I_E$y zO!aRY2H|~o-|0`k?>EJ}AV*R91=}xH^aXYx+C%BElwRz8LQo~jRe@e=b@4+UmTnX92d2+<+?|qz+bchW z$lxrf!W(Z4sgDwb;$*ilckT?FrU;r-`}1GhrgJ;~Xwo%!K}^`I?mpOw`h;>SD9Cb^ zEN2BylVo%pxpLl^dr_;iWxQxwwp#<|OLz1F*s;Cn#p|A?Bo_%G-_mlbk_ZH>K5D;zdyKY6_gZ|_fPD;m1)`udVXFA4^BP|CC$_HoezHXBk)I>sM5z8UU(J=Tt*6kOSf)NxNozu){px7y#S-kW+AKR3cn{}hW^ zlv)zGHJ)Ucc2`_1p-5eY=Kzg$6bwnx+E!OsTiBSJ3ofRhJsPX1IyJ7;^}?AHZmPx^ zhvGtfO=Zqxa+ms>M~neRPq;W1YV?=>q>VSIX~@;@&_fMv(*?Yx*N%S}?%3*h>!4k4 zE|oURJ$^+ys}{1!Xg-q9%_|^(z4$p6Rd?Kgy?f?eeH8nOj=H*zVB~x3gQRH1MS5Fv zmZIWeRTl~*{B4865~~eRjZDg3v3>|JN3lao^iOD4 zqm065?~q15NKJ-77jLLIKl#Lv({x1^o(@@&qtCc`JdVZoZY4!$UT@`lp$N}nxIwnjweB$deP}AflmEOY&ZYEI zL=ichv$~Irv7n^ehl#bD1V5AEvYV6na~z|LigxE1dv-pze=DB-ifN8#2?g^) z>s<`Ge0nAzxFuWjdACPWH+G+&==OsspnF+UhLJ6dS>JwF8BZ;CN{-(cn8+_;(sRz)u_ zp_rnp9qk{bUO>{DYl6+8?{$&-63#`l=uKD(JUaXaga_Vtx*cqEG~5KDoqJA_TFy7@ z>`M$J^w}Q^^p|YM$Mp>Z!NicAD#(p@L|1%I$XTf>@t!TFO2g`ZvSX>dzI*Vg4_}PY z{JigbzP^P(Sr#-s-P^CkTnvvl^fkyui^u0X3oTn~OH~~e-B-bCiXj1xIS$TpM&8h@ z`IpggN5`1*ScHli89)Qv{#?U$LN4c-RSsr$x^Hvc0=48k6coJtq}1g#x#VnXr&E;g z;s_Uwnvj*>iG<24eLgv~SCW^IRC9Xoq@-ZZM`R%eb?@#v;C|-;nFCCGW3e~owDNFQ zpU=vQznJ)S+|TgiS=uyC=S=^A zoPe+A5FBuk;xY!(;X7%I^(c?1Q<6or-y)EAEAXFB!iFUVM~0$2@5o6?S$Qb9S$Rw4 zIzJhwC)>bgG$h+!jp+<~JWJztlW;h!-$Kgbut$K^T0;9^Azq!;GINnMWm2Aa8rtdB*@cPF zAMQAlAV~jJT`f8W=T15^zrSx$fVBz7(vU36xAw%nG}qkR9@ZQP$M%$a}3?Zfzgg#?S~*=)QHnoNlXl*p6!DPzU?ud!cQ!^IQ*QrL_?u% zI`H{6=zn6(v^)bKre9Fsfjh3#?+VTSd=78%0^C@!C(4mpuxY;x0f)_k&e+H%wg5(VO`r9G$9mSYWlVnibK5cP#U-P( z($tW}#3vXOqNmGYS1B=^#VeLcf|efxLSwl!Y+mx_6OHY!ndG3?+p1CkfW~b0iR$V z4dM3}mar>W#jI~m$B{Z0aG=Wb*`rwZ85Xz5qGDrGsVUPbG!9iW0QqmnXs5{4$aTc{vw;qk9tgo%DPK5t;n?8*gC)1i+0u&O_VI0m*L&?zGOOr zYU6MG+3xy~Nc{A$w@JpkSb3zyVcwOPHSF8sd|O``e}J6M_qcmB1I;D;=evN$74`>=Rbp0QuXci0>@c9iMkA)C`a8=k~wbI~Ki@!%4L`}COgOt@O< zINH&sP&8kmi=2-6jT9xSIe|}>o(SkC`9c4qqqg~a#4_bR+ZSU3(=qk)g#Jr}X0hwr zALR(9ybq7WX^P8_A>f8E4;?a)A@Zy7!n+8iTPXXhwmQ6-oX#nWS-;4 z)9+=nTRz;Z+9u2?$9!5Is}S+;m$k;_aXCz6GVIGj1q}T#QJzc`(V3XpYPw)%$3_gB z%?|k4t+`Zt*8K4SuGr=IY|4K)gd-9)?O`}clOz4^=I-u>_n^b|GGE;iYb51i>SsQ- zDstN6L0LQUL!*5_ad7xy#mtbuoaCed3w-t@X-hnYbdpiAah|kEl{@Ls-J^&a~Qp=ORi1wQrap(lP_Iuvesz)j3zS6Ny~wL{N|+QM@!cTyShV;KbmZt#sc#xLoA5evO0} z%Sga!He)Uqbq~WnrpqY4*plJi{{H~XKr_Gb+fO{aKaZ5uD6OZx^56~s2R=`Jo2@f# z-TaB`e*bOF&o{l#uNpY>x4lQV?p!%(xXG9`SNtFP_@mR8uaA$HcgN}Lk7Ywl8Xn#I zd)4HlVcAu5PUn$HpwM)t{QB$hTLLzB@83E6y|c1D{`C);{LV{NVs7Y-tq%$+n%TU% z+9r%kw{UWue)#fr58tQH{QUjBZk#x`%5wUzH;*0KGP@sP1{Msr(^ zs+s)5pM&yipWpla{_T^uc+Zsx3=-YDqC z?+pkB%;T>gPMgPiWw8tE*lcDSej22=v=$ce#6<}*(zph0JE!3^O?x(LW(GM9J8J*W9?YAW@VNz67q*AHq7Gy?71`0CU+S)#DjL2YM zG2!7d1I4UuU5&6FNnSzR%5oIB1gmLpe);Dx0zr}prar*RIGx{`o&NHiYGiq=v6WIRuA@TkZqNmGE}e6@)5azc|<-=mXK}Y_r+=|I2>MSX_<-) zUqMQ~N5h_(#>8mvo13gp+fdgt9(zG(80kt_e&blA`9^6^y8!~Ne)oit(d#0*l zsn;Gpjoo+J``ii#7e~DN?(4>D$+0hN#I1RUwWf`g8 zmaTe8s5N#*&a* zOP&1MwU`o9MjIQ&s5LJx`O)dasaSP;H=VEF zmD6`ywD#14@IS{JYe-`jQ{5)7KDcb!%(D@X0(*js*t>qb1^PDCrAB|mmJKKUf`cF3 zxf2l_jD$U}>|HvezcQi!_xpFxo#LX$O1OV(vx9@9)11FULh@TH6T*`NZxR03Y_6tE ziM|-{Z60sZkz4k=IAv2SD%Z&{J4D9gq2HnT;V=gKX3dHhsi(hxE5R8 zvjwxZy6Dy=)<8QsBi$EYwFENsoaiKvbAP8}wG5P(GaS5h-F0N`OA9*8cCQ^}s*6O> z!sB3p2X-zS-!TokeGHwlZ1ZERvKa~en}tZC7|cD0LN>hn=Z`~f{xEd@zJq5y@NC5M z(BNyo4Atm^V*K~hO|Qv$c59WpKW54kpE9AJ_E@{@UALp3W+-aW8QNHVHIvCNFD=$q zqRNQBO?O?yvpY9;?h7cxFmxJ1CaBrY95-vjFRV>#&-nVL*P;@%@K}u8%in)LV~Bvt zK$n4YclwuSHKCgKS=8)Q^&Msw?g=TWD=w+Q_-ss;-=2GO+oqe|(Z!8DHK`AnJ!-|V zb@rH?C?@Z?%vqP_z`Pyp{P$ozWoE9LC0t*a$;kVq3Vod5Tc+W|P( zphp3hz8kC}BM5(x{68#2B2hv0p&M#X~E9SYY?Vk%-Ws zh+~@vEm<>f@A(MtK;K>S)#TK=lu*U7VL$D@@C3KH$NKc)xu2GsU{aJW(RbcyPD_2f zccFs=y37d1%fVs(ZWr)M-%UP8yd7Mx?qb=9tuQObARUKi9|v{UeASsQqPj^xfhk9f`sNSs;;c8tg5O)!Qw}Z5&1j}eYqe>5XHnK zx?V>R@+C`9q|}UbbLn(?(`!$Z1Oi487ZYj6cuWRU*aoWzJahWjmGkE>UB2PaiK-#S z##((fC>V#sV=$U&@}go?k$0Z`8hU+=`k5P}WMpWpt1P3SrmCTba>m9+#>RST=%E_9 zqf_)z?tl8!j#cwtla|e&f8a(&G5Yq_Sdf$E<5}mn#?isFuZpaclCFlOt!7TKzQfQ# z!~2`7bIL2({L*5UiH@X(sytFEToUixJb(Sr{qX$S=-a<6TfcPv{O^9=@yD?z5C7b_ zWYH4Txh&FXyy2RQsK} z9o|;WlQ%F@Rn);M^tcN@N+<37^esn6ssf1f+F@3;T`vTE{F7d>fCD^~4y@yy-$7GsC`yZ+p{ zb=$VBU1|Nw`C~N-_}unZHpVDVPQLx~lEn+>cctY&%>UCr@Y3Gn|3f3#RXTtEu8XIi zrZJl;vlR4Y#YCiA8(KKbN){P}p89KDw|=|tZol>*rnni0Cs-41UfFx{z~A>GGJMbM-E&~~OUWlF zwVB$_VepczTe_Ubch+s)I>t=d-hJqtRd}{@T{&@*lP;~HBLBwL?cbvTUbFqLyU*$s z{pYpwrGxeRg_AU|_?r&2IK4MvAi1ss>Olf+nkFWjk`|mQkua45KrPD{`}fZ^Z}R z+O&P`;_r8y-h1%GsqM%&eA#m?I08i_2qT||#a=n*ofSp4Te1~R&|iL>X{=#xr#EcH zuX_$&_-ogWpSN%QZo)WwZE9_C&b3XOSEJ)>?a#*^1vDuu*ex?{I-ipf9V1kQvN4S$S~`Ypu!*d3FX_`_i&^_wM`tDPT8M)YGX9MoEU&M`u$uJ5%!ufg;TwnA>!a^dGMYx3CjGRsi}i<28s@HNsKBYJVDKwS zS(YX;%JMQo-CQ;neeu+(+h?CfW#$K7**JeCnrEwi+kf=f-J5%V5WbSQ>D1-0YSF%~ zV;1aKKi0axnuM?^kxWr?m^owF1_70gn>Q^U(?>?-eSuKKWwdpi$D5ZO_4K&?D6^qL zNnM{TXYQ&Tot&K+menHcOSq+o%SkC}Dv4tx0@j)rT-i=-R&vou`RTx>#k(#Q#8>JY zS=kT!afxxkv1@l9-HoY0tq24nOKhsw>u4w_$%`p!pdmKaRF+gwlvmd_HZU|$m7|bfob}MGlT=aD5l#l& z@XpmhPg_Mn1Viq>(e5`@@EGlEVlCBv^2&AiyD^JLkFi$DZ3l))wI`=|YGKRgKl0dgU-a>(I>DcRB9iO^?IB;@L&>=l^mpAS;*t zrY^tS^8Y-dpV~D(pZ}IFd(_fsG%+zT5fKpu1qC9JSYKa{Vnham@eyOhH=0H!k|d<$ zC^Qjtx_hG#hRKPFic5%h2#`djq~sLw*9Fw|oNTo#6Eo5?i(a}7&>{LyA2o^IKG#ni zM(OX9hc5;ug?srvyohp#5C47m@I}w0iqckG1&_;ZYOKR3qEfP`-)=v!?bt z8N*0qaY-cu^P$6J%JPWfWbpw5jkRpYS{vBdT3A`Bh>Ny93(n0;h@dIU$|#Ao7bk?@ zJbCm|U~&V8AVn4<^V*w4#AOu~l$4bfWo4x#X(Gr`B_-60ytK3gl|};wWB>pV07*na zRLJA9TB@ZbB*nzUMX6LpX((GM>?3eRFxmS&_s zza(%9-~4_2%$XaHJwno|D=HJ8-ne!9$?c%BvNkDeJ9$Y%bE^Ti11)sqsG^ca*1F;x z8jIfC(#B}66{wd`($q2OFNrneK0g_mSytV^Xl!ll>RKRzHZ^sP?R+i|=SCpYXcBTt zO1KBe31wwjX$gL1PJV4Oiy|f^DCykDN=osV%#wnv(u|zC_JXvux|$+NUn7Y(%nO>l zw$6Z2bKMLTrC<8af%p4{m83pkgtfJexprr#U7re4%Cw41(3_`^Tza0? z%p=K4$%wI-_4$6OZA1~7PH_cgWm;28W_ei?U%juz$eA-{%$zyU(8%0I-)a2JnNw!Y zbTiYladI9pdYHYli8RS%#ISMGW{!1s>Z>9_BvB;gjy33(+&1YSW_MoLmdL<$*=a>@!6c4bbgZ$K7Hgd?h~ zZ7fA$mxtdAPOqveM`PE0iSzdK3=S$HD-Rep$4y^Ol2sDx<#plki8s8Ya^j+wcWin! zuR6V1Ntvr_ZzLxx&CSSY6GD?@7FU<&B{zx*v+~kn;#4ArkuknJx5)q5{WFJ;oH}v( z+MS0tZ{50i^XA>hei1QQ1y$)jch8?Xe)oBFgRHUr*cq;RvJ&WqGFe93%6!dFeT64Fu<5^_St%CeGtdSO)X&9g_Ygk-c4C>WE|Qk{eQRaMu-V6@WPo9gkLaAk5B z1d2F`Op%nA7r>H}7MGNekv4I+Hr5ue4$VpkjKzb5jtM2Aq;D`_#9S9-1{K4IWSY2S zXTKfY;~xmKw1fzS+|dZb7%d;;B^5r8TN!=-;icpFQGN96(JR4OF;5=dK8t4$AN~92 z)u&mFRf7Az91gpwsh%JrAtR3_9&TdKRZ&SvTAV~g29u~#vKoENhYS(VOe8AHN?E)1 z)3F|BYhYn#Wo;?X<2MI}W*4VMOX#Rc%Tk)M!-H;|J9<4Vhe@VN5vUlS(IzUXpsa`h zD9T7lNQ#I`D<~_YoU*)>q!@+3VYBJAa?)}%ny9!4O7gzItI!T5+bBd zQ~t##gVEkll!K;lNKRQ*!@p4QUz%`PSoSlo8?T}}dH$APL^Z}h*N86t0%6Y^_}f@r zfID_hUp?iGp2G|80%I7D%VV`P)YjCX!>6vXk7?tK`Qq&~uM$DWtdeR_$iPom7 zs`~oc!m7;h2bX4aS3s0!EuAKa#Erc3bD(SuV&}#G8r9c zZz20~ExMP8?jfQuQ9(gLNl6J+qv5WpsbMe}TyFP?^A?@&Q$-|UvT}0lT5e-w-Al(R ztDW6YTi9$MDJvoM+B+0HF4j<1!PcTmtEkI&blUZj%Kn{O_RpjhdOY=gmQsjONs>}Z zt@X?{76aWa>X3co2lATHPOnG{jr4zvCr_Wp0V#!9u?d~|$BzSI3ma+~xCVr!uC`Lu zX~w(_zwdud+OvQE#udY@%#|c0Wn|>_vUcF=FnFF_R{Y9qwpv*-u%`!fn*( zQDdjipEYXyKtr*n^5pCL{F92(Dq2W9mVvg8n7X+dyQn1U-sN*A_Z_%!>rq$%SxH1* zNxZeBBE>(jLX^lNk?RWb5`<3Tj{1hDQR{Z^*(YSSXUC807mqaSZ)!he_>?6-Z1|tBSg>6+d4`P^g)gE- zEzL}g_VSA>sHFF|)+G`NxJ9q5(%RZ4Lx-9WiJ~1PrgZBSJ$mT9mE(4;=e)nlx+L{O@*b8fT*>D~YjMs&dmqe4hlQ6>AI`xqQ~rsn)s_ zF@lz@^NZ!3SD{Uz=oy#|S^V8k8#ZoS_3g9) z-HkESJiMW5BYl>LN36WJ>6Z}n3%fu z95Mt=q-me`>Sm`We_kl|>})=8R0lgfc3yN?{rFuty6f-#J9i$hKfeAnN6Bm3yQ4ma zq@1KE`C;^R-;jtqAE5ANJWv*+sF$k+k{i}J*~H$tvON5#Y!m!=d6J$Yo7ft{Ve z*~3!o`sL7}BZm&{=jr6q#@5WWkCx&1;axj)u%N5eirN~cvLH4lG6>uDLyqN}Tu zg^{H|CN0Q{z?*S=$Im;@T?>8oVjW0ct|0SFthEK9pr5CsTL))HAGC}6HkRlk$fNl1 zVE>y**_H!_`B--(KRti?$nNzUP9+ejiW+iu)Wx%>5C6Gt@9{IIBNF0ss;GPu%VFOy zU4;f^<)TS_x)@;uBFU=HB6m}al6E8FUKYC5t~)LAZEPHS_H@87?Z~qQ=55^u;+4L< z4H-JLQyVihmk>2Nk#FP5$j^%n$2;@#7J4T(h2~?#V{x^`X{XHF25Ob6wz@nw=K8Hr zZJ_}n{x{=ulJ7^=ANvJ_JRLy7R~7H?7(O0 z>Fe{21=;V+BLs?|J4{DM~bX6t5iJVyRSYQIJlhw%7lb?O;%jo{o4`9-Hy8bD7{#w zXs8$&yzmqTS!nBSEfTS*%Bq~Aoagtm1gXBE$=NxD7)GLTSSD?(SY^e9MY+YbFLJ$) zJ*3-m9zQ_m1RPf5E$CXr<0s{qLfxoVl>)gIlu30V8pG6@LS=b{{CSx=}(j5(i5X@7qB@h0v!`O^`0;TpK|Cz z`PIm_eTVe^Vjh0@>&A@>$9h>?FdH?dh3pbrNIOw8k<>vUrdDf|N|i>tkf=tdUWHPj zbt;uw8;7AJWS~}~4`|3^BoawaPtVZM(8$OL?Wd)sp`}EbOs0P4&o$F%n5&m}ZDj4E z`(X+47gJNCQWd2Y-3~mGYN=$gcpSVJFKrsNx~8<|&ISK!lX8KTz2K!p`~a2Q!Oe{$ z5mr`~5=5*v?FMJx%}>rxFGV2mbbM1O6iT$HhIbi1tlKn7g)Ao{)ot>cjmJW9clA=} zk@>@?tz7o&QT#CUYG~+@Rl}V-2vG*a51o*SVncnt9vdD1!=ptkw=wgE^y+PoJr585 zb=a_hGkyz+IDBO5`l(3XjTyM;-1X$*YI7G`14f_Z1HYtBG`A2t80(q2jh?aNQox~k z!<EAH06QtX82Y%}RITa~NfX zNqL#it?k>Ij@Qd+E-+cq}@5;J#w^I_{_KjFso*RB> z-sov#M|`pR_=(6;DygB|imV404lfunYUGI5yD3ZNZoZkNP|A=PCGe~~C(PP$KKSt5 zfi{MGT^UscSm=iDznWN|eawgvb2f#hC*j|3(rDymiqx}z1u$3~^TBR)Idu70mY$A1 zCQU7zf9=7ON4bsWq%OHpXxVFOdpjRt=;?1D>V#=U?qS7jkHBe`^E2rmU)5m79nW z?#*8?YuwN&KX2T3^g-mdZ$^$BJ?N_qClX4X28~|v{b(}+pNe6;jy|9NxF;yk*FPvY zB;@SI89yzWI`Nmf@$}ulY}t5M{33}r)xdSail2^#hJ^SB`R_V#=*syEAt9G8_#HjG z*Ei4)Wj^}T!p-wvMB&c)EskdV;7rVX4nf9SG(_(72W?^7M8_qOR^Yl$~OyHz|s zcWUET+H&yVi`B<|-+JiSGJGH3emozd=`nZbnV^HS`T3e)eluMxTzNOnKg85E=z^+w)uu4!%K6m; z2M-%Dd^ldSb{jro_^?6!*6s;T%)m5ihDg=^n_WlF1_T5K23`#cz8dIz>GI_(et|(j zA*jb8!2ws6_7&Un(MegOQ7aXa>YAEriA?#XhfFmxS#4fUR+n#fZaa<22@MT69e7}F zug})3-+D@S92Br`X)m$89%{1&IklQ(VPeQ-zxGnhAyYa}{c)JLhbAExI{*L>07*na zRJknX^7%C*2M?OFCF;@PUF%j%8Z>C+l;O+#qYJAfHXbhAYL{gHwV5;B9C;S{e7m00 zzu9>*VDFdRjd^;S(#ldzL83$+@y)C+#ti*p!`8z`@7(-z?(mVL2F?Ec{DatvDyg(K zJEM(}J~=nzad~03RU1#6@mmfYxfpn2?Xs`u^d0=eLH~=FukKnhx|0juY$AcmruAF0 zV%xC*e}7;9tHIii1qb>C1o-=(J>>iIFk2%IiAX>_#1LwwEGr{hu8b-yd=eL$3 zX6W(7oY9j|!Zx@T$Ba!K0Rm8-t~3?JX|vp!pV`cXw~Es=%~xE=bmY&BxtESm?nuHU?JD+`apG%9(mOs-JqYSKo%n}EW^dM;VH z>x`CJ5JxNTvc<%a%V^@)X_B2B(m8sS0%8HtxfIFEP zxiXmo9m?f$rBX>IlQ|p?kH;er2uVpvg@uLEcYm*$j$t0XMz$vuhF{pd%Qp{`p|dS& zbVY3R^|NbtMRi|3w}*q37{$EeOP=I~Z0o-)QQWz6pDs?gRC~ohD#fDi+^Jv|>GAZ1 zLN?cJ>}>L#Lz@pA4!m9WpazB|o;nwBb@z*7T@ezcqB1LOfW4K-^feXhY#Ks|w6^5# zO)CpyrkP1Y6pH_phZW1Ni*IaozaMM=(cbXIs> z-tw|)r8L)0Y)T~dp1X6)g%@8f-ap^9hb_udtH3HVu^x5?IkHT3R+6cyv6M)-cYN-y zvnQjTW0<5Q^X}$ey8<6YWox9ClH_nP?Ktmb-t7mbI-Nx+NHKD7$-lM|@77h0D z>gwe+cE!b{N2RD_&u(+qjuk?P*Wd@G;HUmuISeFsl^%@%mz%!=Mtd09Cko?4G1c(r5<(=)+_{=WZw zNPXUj$jGxl54Cf_O>4>vl25Mn=S;t(xpj%&E?jS5;z$wrx8Pn$w0beEES3mm&j>Z=5~HgExHoct??djg?iGmFA}4 z*mO%&uk|z%YWpkNy&)0F!R?t>3KCMEj{w`p0DZ# zbN1#-_}{Le*hao4KlRS9W54EFm2<*Tli6{M%B;|?tzyX3bcoAw>J zc52lj%atBxhSn^U+=Lg{_3AzHhw+}8?20T!b>%-T1;+Nn7M+a@L^A?ajr-tR5x>vG z;UnX`-1w`%b^R?QCFIcGeiu)KC8k_EKHYn0kIAc!-p2p3MOLgxKeg(IQ@(f7%CPEU zJk@JR53jGc285)c>`nM;nN*pbHnhDn$57OSnJ%fivb^fvO`A4$)HfO%J9hBsH@iK3 z%*vB~zL9>1*M2eEOEh%qSUWu~6Dz4GDbN46hLseTlT^i)#+FpZfbUNq@Wol6?N-E% zozpE{O;Jm#WSAm{(5;=(vyvoQafXqRL8V-BYw!52mxB`1F|0D{QTXq@wp`0hEJDT@ zMmL~Yk6S;tn{CC#oxlA&3Rc&#tW8yL0{T59qWm->o0hrn9+L@=6P2X&1L2 z5OkP0XIMMK%AF_fVc5&-hT1YwP?eOI@#sW)Pg@~VAJ1xH;Wl`Y-vYs9O2fw?dhdU=WiT( zZ2a~28`qKOLOiSYNf7uGMPLjIXmX@v(hqL9oE!H zDk`dJbgEk?CnFPmh`A^PyaH1GZ8v{^$3i<8gKpZet&_%~Fi&fdKLmd1AO+POn59rURb zZDrDmqFX!XF8fAnuyn`jaKXs$7fkKn*2RF{Fw^p`@7uFl`-sDgZ>O#Z@bHc{ zWHNpJiB%4j?hBA89)E*oe+BI znqOpk+_WrxM7BJ@y}6O-@-{;I7rz9%Yvk zoqW1}w(!Rvm;d ziXwGfGJSxL375mww{{=i-cqQ%GH2%W1A)&Ait#p45;E|+x0s=j z%jSw$0+EHi9ZGnuw=p*r(#o<^c|tusF8jsGqqbx`kd$MO&-}gPkNOe$W&Qe{7atd7 z)nH}M@5KiHo!~y-%hldNpN8jEDzJk50)?U)&xsMqES8~1kN%dmS?Tw$$LE#hrkq^% z!~B_3r+)L}pXUOzu=-^w5{=E~8F5%xR$&^SsALPxZLPacSbwM&Gwl5N^?&X;d-Fz) z;!#GHJpTOA&0F?G){3Sr`>k`-#gn1I(OHe9OLk0TM!|D}TU#>%mKOZ?(QWmuUcdhE z&Ab#XXzYcn%8ri=-o5qa>7O?T#G$)M`ZgVVOsyNyDg9mB)vq7wa+Ey1@i1_AxapdS z{XE<(xir3|O^2>u4lKL2>EhL!Pissq9KE~RP%v8EtRqwCd_#MC8|20M1|lKX*h)JB z7RE^B=BDJv-c9jv=P{YDzk-rjn6UHsnPYpo+Zw5|auR}n-hA`^;Y0VI78bB|<=}UAZY&P8`_3^~{s|=O3lkNUDjrovb+X z`LQKSzn(F5>bw=(F9m1gk=l(!V{>?hY^EkBKSe;&u=Kdv=obN*Oye3@+1uFSHETCp zJ3A90jY7q+;-sj=+ZT%l4>aMBH6<10Woo*}$#eRT3%>tygqN*Baa7E;>n%b8<20NW|7oU+DNe~xe|(77 z*^>5nw@&h*g_p099PRI zHL@{R6~>=Buk6>+$kqg{@i7F(HoZTiUq2QX6ZaGqt*BJy-@fqcvR$_oN}Hb31~~CC z486Y$JC1a>66!ttWBU9RJ3^9EOVH=XqP*n$Csu~Bh7a@UIc7{3^Nt+~&R#35s?~ij zKu4i2EJ}X-H0EZxi-f=zYlq=Za?z&LN5P9i>8;NrM9rd85~boisxgv{c&^rEDkvYQW6uH1NhDfCfDWKw))$+dgW zo~0Mi>2xC_BNmIPR;v{X1qz8oB85UJ*E%E?-+AX5rmmfO4H`PItGkV%iIE}h%$=M( zdJh>rq_a7dOG6dXd8X|g&D`D`Pd7BTwRG(ywwo{n!et{oh#T}uTs z{7rcW4}C80)pNciC-ZUei7nfuD!K~<;eo^;QiTn=T`b`@B*$5w3W_DuK{nM9%?gZ`Le&j}W zO?FzIrlQ)gTOV6JGLgv<@b&Sw>ox(0icUxJin5A~=MotttmN6v z@bg=?Y~QoxaF~QI(lZdgH1^uY%d3ksZfrkV|F!I`yH4!zBU)P;T9|OE^Acl&_HH{I zmM_y_G%9XRBw-AmK;J;u0&S?zV~|lZh!n1#iF2nxeVk47RH-+@&ukS?Apign07*na zRBhR^W%rite#ulOiH8VW5C3bpAYwL zPf2@p=fT;_fe}~tZaorSAkR(CB1ja*KHaU+B?wI~-+&#x*)qlo+Xl&qAz64XAOFL`n;Atv&P+Sbu$ z!Y~he8xa#-T#alx_3hu$o}T_N{>g)Um7#?NdXH$wr?xmHD*PA%g8O|J?_3YRpLq2k zet@<^=Z>F$lo(&@Fw9w?N2g$ztT-hZS#RC4FZ1 z?<5swayzx}*l|#w-rfVpedZ%eyL`+q@IiEzgg_!wxcb`R71a+4((SoPp%=BK?%2Bh z>zQqeDA;Vt;qnO^tUd zbCYvZA1d9u8Zua{#tCS@HvL(o-?1&*x9vC{T%xJMsEXX&qRezo4=+O&gMkd1^pyqa zDY4;61$h-D9-D9J=-#(y|9*W*w=bTFiY?$6dGs1Mam0kdo!Swe-n|ul;fmkQzymu@ z+$zKJpQRI31QV|=mK==0;OYxroW2autiw+vB}J9_*)?V+6$$BVdm9rg3OVE6y$VNj ztHP%-5AMY0NKI|pxQ**#S)G%S5qTr@LD12iS5hiyT#=)PrD0}q zjhTUvCyhVl8+OP4+KuOr!eZ#2U52^0wY0Hs)7EXEn-d+QRwYJWIf*9Rj)T6ZB85C5 ziOs@DY*VqL*XTjchAeBbX=!Orz-gS-;VTcKuU{H zfB0m`Mc>QUgO2a@PpxL^88~@)dwceFHLc@p+oio*7jI`%5uYQ8Id(bh?wyn}jKZZF zckDIX!=6LLipy$cY6BskWNu|%oRHzCeNS%NvE|6kLK%U@LmjN^M1GwA)l=I3Z$a;q z3pY~kMMU|Y)Y9NV^SYiDO`Wo2b%hCX*2Ak|o1U0qdG^*#h5&XQ$m>oacQ z#*M#j)VUuP%^2v;$H)Xc5yM#ewm$tAZd_lVym9rSAE&sR(#aHEI)+hL0=uEB7dHG$ z%Eq-DH;(URXCSOMz+cU}4w|$`R{?${At_J+K=lO}}nb9GE{ssKO)2FS+>)*I) z>Be5f!fF#!pUHD(e?F)U+Z-zTqP^%x^dz|z*G~jLt-vATZbTPLbJjTC(@7koLG4ZXhHX5%bnfpapcSXcJ!jgIONyT*KP@Mjce2$d ziQEQu5u1vzGPI~f#4x_8i=~N}&%!XJthy*ZAS~GTdV;JNvv4-Th;`WUE)mHzx`_+w zp@_w1F)bZC^c=lmv|IZQHkxwjvzxxY0lvO>GALXUm&d}*@r^37GZ&kf^R*HRMM!c} zAKkg`>l+;Q@F{7Wy`@Mjz@%l_8PV7M{UoLnX3ze5^aOWfWZ2;KEZn>%{q)PP-NiX^ zv9}*YJjg1}qP1VXen=NfTRuiJbad=FZNq5ib{)LBjG8lV1!93_#_ENWygjV-@Me&x z7~i&orGW{L-cTmmsm_T{yn~v2-Sc%`(eFxLM@u&>SqT)%&()Z3%2 zxvdFZQks?i=(^wCGJO-FzKD&HSq#HA?I(Ww{c7EC>YA}?!9*_)E1rp^dxyb`MmrG& z46G_AJ^|Gmc-=R$Oypu?VSzGZb&l7e`+%;42D+JBdkmem@~5?^BkO+p?u*ZR+M6;k z3b8aN?jFjD;Q9JKtMPO+u{Y+GW~M*5?&n)%IA+eQ4XDzM8&}NV*iDg9W@^`K+E+8j z^lvK?b^ZF=k=6!S<>PzNiH~ofdJV+{o^=l!`~D+38#7Hi44%I1`!(9U+F<#Yy}LW> z)2cGl<06oTHRRSxQl1o6iyXedljpc9DFjk_esyh}jtUy{_}J`9j6}l(cJ{`4)Ut$f zC6nd3V6-E~Z$M6FW1_C(zi<)>2!+{I82)bNn|HJ_HlnNYpCyLX6?NlDby2y3krh#Q zeC_t#6t#-uKDMhqpN)$lWo2G|0ARS{G-{Gsf|_bRc-6+0zs~7rCMmyH zR}6Z&@uVgrud*fE->+)le)_4B{~tg5yK!}vBnu7kcF>453cj4aGCvLZ2DYoQB5qf7IM zokn*N>4`o14C&f`cuxo0_A^A!V-t#*e4&laKdNe|6T>7bB3V!P*=Qe2J!YMK&{Mu^5BN=RsXB^bHx@Mfsm$R(%9lJ`#JF0b+(O4dUdz9C@m!_>}qJG*_4HI zb+c~S?4P|92}S1Z2Y)$h>d-#zOpLqD`F@l+S6UVubwB=5c+i6iGb<9uvah3K?;-9c zY>Q6AXRY`FotU+tH~#v|_cOYA+w+-p7L#u@sDn9E)UH==uWk->YE6mKYo@a*B|R}C zOT{p4Z*4#^=sc>I0iP{NiA|1+4o$c0H-Gu;3EjF_vl=&)A@1lpV(~BQR!_0YF3wAN z5St}aU=9nu^0MZMP!|RE;fdGUEz?$fC7P+#Ax;fW8cz1vzcL|jZ@-`#82H?zD& zJcgZPR{>uyJw`VkczE+sC7tZn!&{%s(0A`YtZN@1E4{`QzrfI2`IhFU z=8h(Kj|e0Z$Ek<2l*G(N>x3 zdp+oSro!7nWJ1?uCC1*q74o1|piW7Ah)&(wieCiRZaq#bH#RJfy%~A?ab#3fZ2aS} z9GfAFf0{kc+spE$b}-F4xsO`1VfBxb%+vC6(w-C(x%%REZ4Eip@~r!}Bknv;t7Z@A zXvuK$>du$5Qng(S2=+}>3b;H=eI|ywPZe5v*wCwzp47eX1AKiGi}}(DdFrEvCS89V zpIM4-GyO~7n`tz$S+$GK;<5A$Sv(^a--shHLF1$+GUFRs2#hTC#Wn_}c7|pS#+J?| z)@{w~T+Hn|SUI{{J9n~a>u%@bW#8V*zN3$$YZoWCuE?{vd<;XMkMaI#G?-ARZ*FdG zXJ_Z^>||_=U%!z$RI6WJDZ*`A)rL+J-R2yb=gl_f*7u9d!c2zEo7k;S?|!bMzTXoX z8Wb8DdT{=iee7-RUA@0tInt7WpMC1h|Ls-i&~wm=0Kcm{=J&C)XKStKJk0IuKlU#A zZmgS)HUbZv#(Xtr+AehRToD>@HT1yz`KyP-Qc5e7k;D%^(8auyV zuU_5TcWO6!&8E>-!{#p09XbyGX`Uyo!;l4wH=PMRvgz+HTo@D*Ch9(FaPO%DQB@2K z>oj)rjFDqp@dJTbr*HiB;on+5zH9B&euns!92KtfWR9W9@J&lcd-m)-xX-LbCk{^S zLL+mW#?4u?4`HbHYZr~ei_&EgbzeAj^oS|$XgX;lMBPU(-K>2U=2B?r;&E-oMi{2= z)Mv;~mjZ+84z+f#1gMejW9%56e0B`8|U$VO&Bp!`@J&sNx`JY zqRG9xceF+(41LUf{+5}2Ms#@TYHHE*o7tP{n*8(FHZLclY`ACYTe&X?Jb1RwEHw0D zXy|uioQ+XIqBi}9tqKha4&6Vudp8?4#FqC_INW; zgw|X3nm1>2U4i@OcI*1`RSh>0wKeTBZOdp=O9AR3&(dqq=%1F2HX{nCZFjL>NlXLGW8wBgi{=e=vBHbfZf!naIB)8<4J*D{6&ex} zx^K>$Rm(>Y|IAg)GZT;6I<NU4rktu>xKd)3yhi+))&u`Ql# z&}+$$TVD{td-CTui~3k$EJMs=(bA!9Cw{qN*yjs%#(0LtTic0?J|DKQk0pk&Fhb{v zyJig=)U}t-q}h$94_;#ZcJ$8!+ZKJftfSKGY*;FbyQ z7{<_9VQisQk8#^W&-jOKn%%FbMP2M`U(jvVJ~RKC?~V!UGh*PfvOfW9_wS~PDY2-R;+}bNw{Wr~YH!^2xlQ?2pmqiCp zESlBF$y^(O5y_a#)MejJ*|cuWH)}(K0|WQWnDNt!(St|1i1lqPMs1quW9TT|GJN5J$z4Xs9R(-!&tvf^~E_C`rC$Y7=&WG+@y?Lw?Mi4K!OaK5707*na zR3Kx9{icrYF=x@Y6Mi`2_s8%~h8$*HNw2<;s7#kH4sBZW<*G&B^_~95*PR-DXhF6_ z3TD{tBAQYje{Vsn!NX)Bm6iUXu?VumO+lD8<*!HgaeT*ZX_OBa_!m#VV^7!rx zc&5vTwr(6|qObj)9ml>;-}&48uWX#wQ6GKk(-lCZFpLJQ+OS7!jpsmDmEB86c5JJM z(z$e|=k(RXJv*9m(NR<0#N4sl*S`(57qS`#yx!c-UA+|@HdOiBG#_tMl%2=W^O<>K?xNq0?P#3bV5i$Tw0Pd&Hu}iC zMfv)7ck^mA5_ZUA8l>#dEAm>chrbdq0^!xRYA|h-Hh47+Wz;l|(~w9cQ&Ta6@o)2_ zu`%oe0U!VbK1l)`6O#ARHKW@3ShI{=d-k09!#FdHM`=L8AyRy19G^FGa67ApIM@LK zK%jLIAU3P+$Rw4Ls$xlHNo{3uO?hE;c|lcaUS&y6c~N#*L1t-wdU0-QVRmvs*0a3y zC%I{f*{KOx$#I#_W73~IN=tf_mKdFy@E|4rKJvBI_&5BK!fez*Tq+U>1TvX|!bb71 z3k3dG0+1gFv?>Bb3V~&4#AC3iL<*C`78)XTNP6)hoJb(Bgcc$mmw{G^TUE!QGe7_c z)Dvhf0+CE2nCp}Kcvz0?-F9T}HY0nr8PUsmL{I18J)MU2a2(d%VQ4q|AzkeTcd;Gh zV>8IxdZ3rp08h*Qoh|x#nD=ux>+5dXx0AS!o4B`|iOxHj(z%Qm=QFgDsO$2}l2I22 zArJrpKmZ5;0U!VbUPIuMjcP6ekwU`kj49&=beuD>*W8J{@bL5Ab0_wmqxHHS6xMrW z(0k73y&I+W!Vggl?okQ7J=^FD*bM>^Upqu&4C)X;01pI!01yBIKmZ5;fu;#G7lHVq zl^RT~)~FOpg;J?dpcjQosnj54r_m^tc#Jj@-$jP_w-nWCWQAL+6iSssrBb4zwDxGx zP@`6>q+4l(CHK8NKK>rx|M=X!oQX3t=iE7S=BvebHP2eF%$zcuyZw-qy+M0iK zLkUwTEndPcqs&P(sxo1g-Pnv-Q$&4+HrYAT|HB55I;9;mMg|*#<@T^DDe}Hb3Pf!_ zx1C-2+S9{?H~GBCBJoPe=%J_)LsZ0?8NUFxLUL2@$Fj2YfdNv=>>qnu-8Pej+QKJP z5LA|lL8`1PaUs^iXR+qfml1KYjamM533~jxAKpF>nGHUm>n)n*>)!Pon9R?M<&-%2 zSTwEyE9a^>`ZOM#!nwZ?c=;g-fV<6zY?Y6ifnQ#PBw|-ZYL;YQAj;y< z8>p_a%{4dQb{6}@^{)Bn-FR>($Cx1`c(?<>HKb+F^ijf4bm!HN=9QqP=oEZXDm`(m zW(p6#S8~;=5g5L5BAj#w-Y& zz&t>Dqn zXXoD+@qgjvX|HO$b;^U-s|o3{)J7#nC}&qzSBp`T=FyBXub&?`2%(pkqoqaaz|E)L z^)a=%EB{RJg#s_}Qp2TN;?>(Y&e1h)_#%)-UblRWbg(E?@Bb~i^F`y!>#Fb9kARL! z)`R*tM;|)R-wW+zKP%DHvljP$n~=e?mZO`n(?vwc*JNg?H)Ki5HypF4M_&$BOj3^0 z$+EV6yaIoJ$w@dxRJ>_TSEM(thdAnavrU*5=iK{_`gAK#pR3+3-*r`UDMg%>Te-8MGlY<}J-AouZPuEb)N;1e37@}e=n zIOyGGlte|x{Dggb8%$dzIaH=wny|DXe6b_$^wmY=;!A;fKI2)>H!ZK5X)do>qKoxh z_y~&jpIB7)2ys}28vLnv95OI4kWVQV?u!$1eLX&!n5adk?0fZ-gi?pfOiL?vO=WQ4 zVAq0DE3o0)fpf zXwW)YT(2b${T7#f5y=m^-eX9f*-oKQe1lzQ#oKpE76nK+O<`wX zA4;rVe_I?aiZP%%IXgHmfb}Nyr&i=qZ*>(M+Nhc}*j_jAwg#pPS^jJgt)Ay}cJ6Gj zcA+TM?+H;*PMiNubo0^gTVXA5FJ213JD8UA+vPtG!!Lf6pO2BkL3RD(km~x|1T!BW zv2wGqwoaitKVF(HOUle%Y+0E-opy-!?Mzbee@noTG%BAUH2jR50SC3^(%b9wT*3S) zl?$UHBVAT}m&1>r(TaKA8~$zHViJ*xf;p`|uU3yGOuzfJy{Dk48$AV&L-Dxl4J$R7 z5@K~(rs?n^V&P@1lyK>}4sA3;`e>2*=X(NX*0Ga~?u%R^BqTx?#Ns=r^AbJ8=lZnc zHZMLLVk>rxTsjkrwk4t_DQ!oI6NQiqe>6WnVwUv{>^x0huFUprHCluFywQdW#u2<2 z`PKEqdS2cJtY$ZpH0jjuQlybVYQbSCJs6rCZ`7#f#{Z ziwzNAKpzvgsAC8hi&6Lzr}a+Y!FLIT1VG9N3!vnsIv(q7u#y_Muz!n-nP8xnF>O}n zpt#5?-f@i&w(_~(w%!j398Pc6qS1*b=e<1DcU~saC2p}ExiE8x+pc)l#4o0n*L4`X-A#9SXml-d zu|0o{J$Ym;16(X1n18XcscrCiz5Dv9r+CSVrk?IZ;4W}y&QGuP?&MO+tfMgl78mp*-cBTcPsAY+N7uBN5n>nM}(t{-T9I4(?! zn?1@G6UG zZwd*Mlr;|;&pjBP!nFBA5ouD25}4c$i%;32&s6Kp$fioT<*g00q)nYorCsep3d;C6 zIVA-RUY;}5mfUljO3Yky+U zjU*Z$Cp4VsGCpO%>OqJ+R!3VNqCD8l)Ku%)vp3gZv3LC&OxlsrQ79fj zu2FvJvwEAGFjlPcYD2tzAw8Ystx`9fu^65eGqe(U9eDezroNLSTfkE4u}Z*f1Z(Hs zZ2!4vNgM@3dKM zSqvbVJFtGhNLIVe%cjll9y{{ud35aN66GABQ%X=(DX(VpGcyA^3qDX}+$t7BMQb7Q zUN^Pye8llx%c!n{rSs_W3s+`qM(Pb8^SVLZ0TbI#XH~a=Pk|Fv3t*bxJ4gT|3=JQK zV*-EidYAoGFkg01?~k8LrL|$L#bK{(y}Vu-i4sJZlPbP?rQzkZaZGoi?(1tzFuHv# zR^P)^Q>)1MN|dY(d_&2r9YJ~{8txV%Q>DxF&YsZF&_Su&OJbx*tMnaugleJFdZ6Ry zQ!=k}Hp*L(i%lv78dq38_dt3i`7(u%LNWobqJQYKW%IcYX0MKze66CX@dT>WW728L zKLrkGHm)oP?bly>P>wo{kYnrc(qaljv!1{|sAr39P!YfQHFRe-JG3w2`rW$I{SzbH zP{=W!Fexw700PPirCj)B;tzDmx$Qb&w*{__c&r#cqh!JQ1Lp)_&PJm`IM;_u#JzPq z2GAlTHxf9ee2w?*xav{b^S+HSt%j70r{{w%7Ob#ZE+VMCuh1`@9t4AoD`(3il_iu}~Ue7&ro#n9@*t=BKxWHJvJ6xVUZ$fHO z$jp^!iMEQ3Jm7wp30J-LRgN&v`MuqkSg!z4kDU3y3gRKC6ze@O^8J?qp9|u!Dm8e% z_|pI@D`jtw0IcrJgKn3Pl#QOfod$1TSAVTD?wRRvq$>(u0&!@d`G>NyhMJmC&Xp!l zw~dc!u)}gC!V;#R>n)LpPwWCHBPwSEw7(JAIr%L7ic!qhcE_mi{eXN@_8GQb`?O-o zcVjMs41O0s(EQ~Ze&_Uc;uhOZBG{=LMdl`pFSNAa+3J@jQXBpvMmj-`XB^XggHv=x zp*h!k7VCA5^Ti*LXONN&H{PFJTORl5G`fj45hp5nL=UZ?d4p+E^1#nSLYf;;6!t~D z>dW2rd%&`^P^i!M+<{Iiqd&QT%%sxr!B5{JbREs7R;S6f)C}6pXD=C356~c(rNZxjS+=+UcpP`fv>v z&mzR{lBH8hn#o>k860vnDM>_DM2jM>Ctc@~8Yq`vXT)uT-JT4nIIt*l36!f-=@%9% znh1BmclPnp<(>po>eJ%%^Ho*%)wnluP>34!xgVOSmEn$EwruO3g&1pVZRo^=c!|0k zR;h!lbFC)EOruV$4Al2_U_>FT2a<=aztb^W6?w2CCh5QA;=`xUmsiRzEfd!1LxK1 z{aStq;US~@55w&+MCueToYdo*_=}KZLw>t|FmOt?)8foPBq*0hK@=6TW@Z`PojYPl z9Py@(fiO+0#44%fAX|5A_4>#@q>XLUT){O!c_0z?W;-s*jzKSOjaC-vknZbN5^hA= z6EElQXc!pnN%8Tf%o{XNl`bpov^Flm3xk_mtC<|Aekcm3UDK7m_CM#DMQWFh1F4^a zQ80-GtX8_^f9O|Ci%XrH?ooA+m~ZnQXSk%~g(qPo^NWqYt|_N`J5llDlZKpAr4zZT zFjJ^h7cr)&)TCL=c8Hte7fcK zO>n}uhVxmp26E@FbCN`xXcAuk`amhX4^ic~A*$U21FV%T^#*O%6T7r3E$&10oi=LJ zT74b@nKINJVnY1^k}igAXBu$B+XrFW-nGNcFTYdcDCsi9sDkqz&B(8E%Hcg=ZzobY z&AUY}YOEG;=j*ZL=6S#?(CF z-o@4MfKM@=!zN3#T%k4{J=z^3QQW2D&(x^y(k!G|$7d~Py((dd`bXMu(^^z(n9X#B z>^RW8@L*?sqBQ0^22_a}xC5BZ(kZmny%&Mc5SP}@z;wVpJeE2_(-cEl*h1uGahTi1 z*pO))UNBo#XtDBVg$IBY0W4Om69kr<6c#33Ym2YIb>nzm4{7 zhDzSY7JGcNa`1~))O!V|+lG|H!X^%d3$VSU&D=-%)2qhpkM7rRoYg~r`Qm-oIEOiY z8_x&o+7$(yvZhL}FJ|Me_DE-}yq#y$3@DB%>j5RMxc+z?Abt(8n%nPF(^(YBfH=^( za~Nv^5>a87%b> z;|;EvsyzC66eHGpx@|yF|DsO#&J4i{@qT>(AprJy$B3v@aHDa#tY=gAacX9M{9Czu zW7QH?hl!D`;Ose8SPO+Mqb*CsWNv2EQ`rL4?FWA>rSUk?;0fIe6YUom{Jy#&!C zoGhJe9UMZ4#fuZhH6`Gk3y9p4-s)WjV zEM@7Xi6ObZ!sp)LOva7l=rhx|m3^s|E;JSirhsxqM!Wkew3bB9UPWQDAS5axGAArD*XZizVYj`Q>u*F5texQH>G5KJZe*rs zpijx_dAA@h@5YN%8yggqP()HJxI|uZl>(Uz2>E|@5A4%e?x~qM0X?J?;#gP8Vtd!? z4xjg0@WvN)b794(a|;j|ehW`i^*AMfQ^=twtxYVcn-wS)>%>IASu!z>Ka7SaMj{Nn zR+d$Xh=~j{0SrKb8leRJw=EbVLW!txesHhtX*PZ!^nqN+V~R*oe$B@zRd9mYk9q8s z&%D6=j~%E+Qdb~RI2Ad8HdMsy>1pR~TVT|z^<))khi)tfrObWw`(KjsDJq`>RH;xq zDoQ0UpDHv=kq;Iw;>8MHqYuRJ!u3A7+CQ%};%qandd`zZr~O^0=Ytef_MiC4s03>H zhbn}6tl|MUMu9f5zYM-I#WMY){mPmVFXD|14NE5i@=p-LUle!#p;tVa@V2(P+BINy zWMP3cX>kuZ&smk`Z`4q@T#f;TT%BK^P3^dL_G+tVi7K$#4ZyQkq;38T2LR7cAs|ce zL2cM^B>6B)fCSNBq`pW|e+D48sosEe5s`ljoU@4og3h`1pc|t9`vlmH2_jb3iBsbk z?RLpD{!cH!l)~vjh{r&}=LA?J#tc!VB!B<7LWoF>V}^hj_Qz9!$FM21x<^o0X&m^B z>MtG+<3Xt1Ua0tyzug+@r2@8&5Bm;lJS8R8gQQ3}gueKy8vx=}-H4 zt#saN!VCg+`kP@8aysD3)o4QT$jE;tq>c`8Y{p9-5U>@Dwh8)gh@7PRDOEaFkxsq6pvKWEUHMB85V9c~AT_(^PR{DRexTT@ zptAd!N(8>djuT1jcm9TyUy23hq;Y-9up)=*k2V1+-n76FE^^2yf1ag_B0#8cyc>au z?J&yHB>h{-V)x_%P;-$gLqKOp|Jsa{J3y|wIU2d{&l3<1BnH{gDqD)Wq0c;6;V(6> z+~NYNyPK2g2gv<5O^gbFiWmh}#_mJNAJN+)Kw1}ZuUvQ>j(5lYQ{BCwjdUQ^a2GW6 zq2KT32;&6_0QP<)feOqlm2R%;U&GWr2Xtz5v{Ij3B>S&3+z+t@%!^t$&yKd%KxM zCdNd8N=fk?++JSL<1Cv+jmTs~_`{B1+T&^R!T5iu=<TXp0u(k=*M;*}jLSv=#>nmwlI1jdfUtx7#{{rt0Xqy^#jO85 z#y^o^pg?m3`yD#7@l zWZu%C^K^DVwqZ|5j`?5H1rxeg5BY&6D-MJm`A-BGLq}_qrncuJ4UwUF_*YN{g3epC z65X=Kr!{gv)f%R!r}b9;xaB{58S)^|Iin$e&hRiZ@zr4s2a>7}9{uLRkO=|u4?2w~!eMD{A}OBLD&x_ff5W#*Qz&i0l>x8h#QC4@b_i|4YMd?ucsTvhS{d zAKAM8^M=D@&^r|5bm4m`{ep6Q{+4p=UP{QCrrF<-dCdOasq1AiDE_nHJ5hu_D6kv> zSm#*((;f&oVTJ>8wodmt$+yChzc^SOja(`)6*j) zB-~tCdMyQXF_Z&KFD?b-QLis77{05{L!|C}uy*3cM`O)HvUZ*v&rceIz8FXoGzW&b zL_AKTdBwLs-lVIm+cu38aH0@SC{ho04qqY@N9`5_BL+W3?V`c)?nE9VL^KHUWaldhkqsudx)!GqeKDjW1=01ee_9C4WuPgfy3QRg5XDM<$`=cE;Vzr$_ zJg{8>zE^{)uy%N&lj}7rWpc+B7Z>psjc~a5_<+XgK;5!ZN89mK9CdyavY~43ID{!b zB;>2n)KO^$wK7Bo>;ZAhV~+G3Be)fe(;jD{whl)L>9?wR#^yQrf~q!2l_60km)g0H zHVEFM|2WQZj0sQzP-Ecl@6RWaeTD4bdPhb~91k=t#A253)_i!nEQ1pcS3p?%0YwLVia`}K0VLDe-QRX`XW8yv$M!!)b657DHa@v7P4W0<#-6f_d6+D?z*NB z4r2CBS*ntUJ5zCWs3N~;gOoD)Ojui*z+@f?QU;nmMKLt>P*8e2FlEB82?X%Cv5w)3 z(xpn&U~F$VT5$yN8x=uD+%AS8O}zB&9oa{u7<5cp90W*rPN>xS;lwF}@{9=GA9vZP zaWb}$N&!3egCHuk=44RsSlr~YIMMAnH+zGj!JYd7 z2)z2w(=kU>pskwu;_aJvu!;ejNd}10k9)uT6-|GJ48(3P73%95=(q8>wWxFsJ$;=U zzP+QXl~lhbRYB=8t}W%2)t8*Dou1^V-kPCLbm4tZiQOf+o{z5f>Bbml5mMrwva!?> zeR*fE_hhkrPHt&c z>QrWt@l9fMo<`bo`P9-L@$hW)PVMT2v&5jofT>}^DQxD`%fK5$!5@v3Vub0jPm-Pm zoc)5$DUOz93@nmQ02}WxtsntF?jvqArgC)jtVQ$+uT|_dok+T8S~t^)f%}pkJAIce zZ^B3j3$=|?bsvjGU}9ocMV+_09mAG8KPoW z<1Icvko3QG?#^so4d~^_lJqHaf$Vfr5bSoQ>r064!so{~76cyLoo|w>9DLi@G zc2cqNX1j$6xKqu}Ql@V~TF)kVyjyGggxR3EX|R9T4=)?Ww`(90@Wv%=bUoYFiin>L zs8Uu|R*pO!7-O3qrbwzQD_~+2Z7_zH}qsZnaclJy!D*z&TMvNRw0$7?IhOA<=7j);Ljg1;vB|!()5c< zk_tyB6D{rnCVIbwI?*_q6x_87lGfKS{PNrw2AaPZvf~jG5W|jq?4FovDa)jCpkT`$ z_I%x(i4ZF?c$IP>+eCpt!v z%2Z;#(SJXhq_*?Y<}fp(wG-}o344;*naX25(LFvm`jC-mYDGwnZK=-%J5ywD+sl6P z^8=)>r1fv^^J8(jMku$SgsW3MByZ*A|# zB4k?bJhHJ%mSW%Q?Dp3#`zjYsu5%sIzqJOM!oKEpj+m%!rFjx}m``?RRmC@btNx=a68XXb(n@pOyu#DQtO%?&g1W=FOUXdEtfpgSL8y`?o{B@{1k!5~ ziiI>1Gy}tzdd51g)`JzylZr9vC%5POpR7GR!^|Z)NvCUngwx=67&pG0{NP~QT#lLQ zCR{BjHyDO}HC z2R_oZZg0o{kXrV`yy zyD57+JALa))jS5lX!?X6i_hszYYvp5gguM7>809W6}3;zf6Z(G=jz>SxcN8T z`}wNfI}i4Mig-6&o{@+{`lLPxAd-@eMn`94_7*GDIuP)o-tR1qXwZ~YRCFk_#7I)# z<9Tt?F$vHI|J)pSxH-U+NhgoSast+tAdlx3(tX_9AN)UG@5qz2J3r zlGK$ElTRf%+Fvf zRzW3Fm;(QyP)(GVmrH=Ou6hcM zA;&44mp?``~IH9qJ6rU#pPQfL~%5u&EdJ19~IfQv;jZ{%Q;Sa&{sVr+z zX3-jycY@eGzH6aOJ1ao`!o`wi;kdrH)IT}do*5HEgCuX)P8s}Z&5gkRrMw+?aCibU zK?O-mBX0Qc$NAr1-d(NW9R01Y#bMc({Ft>_u-U~@q|gRw`av!>ddPJgYYM#DfBTcs z=c3v z^4LiaI6$75)0^3~@FwTGr|t%8-Nq9Y4IQ5f&9PK@B?hQS*o*~N+z>yK@1$_bSj z5)0{Y3ibHiV#;^~v%eJRJc#L-lag&*nI0g`EKg!3aBEi06D=!E=p$g+4`xt~X{pIW zL6bwzEV3@qDs{`Y=`X=+k?PLJk5L`o2zfiO=N5sYp@5k1)tY%zuC&0A45}D_Xyml8 zZ=@KID&cejTdfr|YlmIz`gf{lTx|~7EoVl?jV5mNUYcCFA1prT%v8?Tg+Tc5z}kjJ zBp%QE+vI^3@J3!ohg{!3td&d=zcrPsGl#{N292(`#kPrU$>nf0=j+QbQ zNUSNznCnX*j+@nFo?zm@hYNX~e2!fXG~)LdxhpAQ>U=4C-Hf`&&KDx>F!CVmVbP3Y zUEeJBBE%oRH$jC%A!IQEec^mMI*Wl=fgVrIxcx-Mf#>rVJ`#1VCSy3vf*YL(;P!MoaFkm=l)?Pch7EFmPsd#*k=(b10d z+TmDrf-vCKR2Bq`5&s#of7Z(8A|Vu~Ze`u9Qq<^m+*LdGNHs^=;i6tuMrt6s5%1euc) zsi@N_+t*?Lu;;D63tAVm+No(53=Yh&-?^Qx5q~I?pZ8khK_!({cW-e;$i>-*hMZI6 zgT~>5@nLcV?u{eH%JX(lewMw3W!9(BHQiiwC>cgUuG7S3ZzeJtA42EadLJ4B>6xxq zj9uIZJL8sHsithvr)$ySR*DP1+8qQd<~t6%s#^mxwudt=CUaZI?erG5n7GsejIFff z(+IxPezoKy_VijFq3R@`Um>E9c${PqQT%B}DoCm5Ik~xMcTfE{PuSsiuZ_MB7(Is? zn$6dmRK_Y1zDHBlDU1}B;7h2vUSYHRd<15d1XQj^?jTc<{aNcieWTC!8Y%_D$fkFp z6Gqpu%E8XaPfL@OqYH|AS5D+e(&%@B`ag47$h*3#nG)&I<#DC87*t5lOi#1n_j;Q8 zyUrGSEpx;Y2{`@y5qEvQKd~fZ7M_gxgbp$I(>oMLI{ z9&?(ZwWXLQUGkN4eE@a3M&|CCvL?NqCS@@xW-=1>HGzkpyni1?)0#rnq?NoA=sUP| zxIJvtVZK{+^zb@vaiGa>$fb9IbKAes@$0;mZ&G^hEeB(olm$k#TC|#)8YT>p=z&go z_2>6~kBoAACua#4jAap_IT=dB_0X{@K|Bx=@Z|~I574bjsMb?_Wr>-;6Zuw8iB%b| zT786rLTtgv$S@Tx+R?<=`2Fyu7z2r5f}Xv$%x!*RqFed+1JXF@jI6n-o@W2xT0w!a z{6tML@Ap#H_Ht6)^<67-8}Z_eD!;yl>MIc0^zt1Y$J!3YWhf&C?M?@2v=%oAuE7r5#n&i<^gU zd?((SS}H!;5qBE^Z|4;}6sDIkLVAUe&$eYRqm`r^(a(z!iDpnpVeG^WU^2vW^{e{6 zS#Et*E$&TDm7>S4S7!=^op9N|<1vsA;C`Z1%-cjj8uN*_dXqPt4m>F52(IDHv3j~o z_M)FHT_8ibsFazh1b2c&l|zSYQdbI$L#%33Z(J3x#GRyTn3$<2!_VjRV{2Z1+popL z)k}arvB3H=L>m*WdvAag?}=WZN=s>tkq)V><3jc9R3U!bnOK-csyJ2qd`dw3Pj}8@ zX|otg;pbLn*t4Ea`*Oa%j^MQDX(Agd$A4a3&ptMe4$K> zwUD3wlAaK+89j6Q)NKOnbV(Ft#vcWWkG7 zpuCMi@Iy2;XN>^&*Sf)$9&z8%n@ya7n43ag#yComCYR-r<)FgPENO(UwjT4Sx+=}b zcik-?2sl5yrm4!%NB^T`!&Z*GR#@-{ponS=Xg9CUS0 z=jHR4{78}55fCdQK^{e4ad(ctuZnj_e@o${p!=95@k!S#r*+%dBt2k#N_8}i%#Uij zM33Z2b?!D=;KAXcz(&R|BO?EOdn$>q?q@cg!74zF&P;Rlwf*S_=~DJbpC3BBP=@Wc zlRZ@($h!L$Im+N;l(ukjAmY7%TN|u`y)5RrYUB3AIeAVq+I*u2Yog@i>nT=lRMD)(hn|I2 zka2KqM!9>v{fb@M$JJGNW0Mv@GiZLn+ulZONgW`E*FQIIprd7ymGNPX#OP&)P(wy= zq0;qb31!t-b%sVGrN0R>i{55!fg6-^w!7*0l#z%#AJ(p;H)NT!^@B+%R#%(HbUc6gP3bPGu@BNbAe00B2B-jgxv1l zP&)F2DRnjNi@d@zy!!>qT6X>hw0A2jy;Zo_o%i{5m~dIfL}tt?JJH63!2rtT z=8Kh5%N}(T(U~+=YP_>o(HSCEH)8@Y3qol4u{cUVv(<2e(>JfXdjG?P{;E)$p{<2} zuXzrhU|XOailPyI6|}V7q}Lhd&WL5yiGYOih*HAiIXvL@Na*m~l%qj`0;T!ekvtn; zME${3LzSp4knz&CpR>MYDdz#wYZq9kj~*Sh zyIrn@C>+$7J(rStZdGD-u>O%RIY!FNYUl=;9yvkEYKP?X8Rq^h=dU4y%py)Q$oEeQ zY+PJGH99x<`1VA&6{13sd(%~s1wK9!M@(oechT5P;pkh=YeN!}`EznUpMIceYop_x z!!2Ek07J!Af3;78vSGrIE)3P)}}IAjWsFsBvb7F$V$$Mh>orlZEdJN z5UDs^F_+k9`^m=MJ@S2l?D;}50e9%w=LP?{ADJ3Pk99`E_M|b&!x(D3JPvs)0!L{$ zP?RY43^nrHg=Zw%zopHKGzp0`>{|@>av}C`)q6E~ek8Jg`nfLb;QQ4|_d_g-wSB9u zjkda;@Oo`U@Z`K7uZ~3U(8kV>jAzr5kdv0D7?$p|2;asQf@E_$gJipye6J8W;(80+ zv4&n=vc+I}w?sr2lcuJpWssyErJ}$OkY!{=G#mjqo<3V{rAmVHZ(dOYxx@`G8z=DB zu&?N9$hT9DP1W#_ON;_jhjns1pxT zjd&cmFSPOSUemy*G6)&?-CG>U%zxNMtp4{kS5&F{vJpNc;KVZH6SWjR@D4;SNQxR# zSEWV%vx5-f&3@(2It6(DvkW9eOlet4DZYn@E%@^8kS9?N!G@Iq8FrY!QCf^6284?b z7xktSEhkYTLQb2BfF)@UZqiqrrd6pwXvKq!b6JE&jkHmy%{(wsM_Zyx% zSdTxDgWGlxF}=+`od|@XlFD2tsK})%(E$yh`M@rGD8W6*IOZO&<R(mF+ZHX982-Y_-QOh46^T~0Yki3wlzDq>w2Gn{qj+*066xS;|`<%`!UR93D zQ_@h!Q2lE-9#~&nTiei38K_SB?A)^72YT{8G7=q`WCl0GW;#BSnpXHVHE@H&O^BRM zll1Lfb8r#2cG!+GCf-fr!^^wAwr0`Q9wFuD=Vx!v@|M%r z*B4?A;&${+9iIjcDJ?xRm7Y97=yO4gE~f1Ra9)&-a{D8SAd~T0EU%;W9me<+P9B&f zedIiW#=bfHEj~tb&H(xeXQNNS2HIK1w6wa3Evt zQwOQxE0pf+MTsp)4+^X-D}f^HHgKOIV}*o&BNMNYqkSzlWX{J}e>aR^5wgYgI&`N! z?TC!M>mM^ef&v!!xCIG}7tsxz+6F~LMC9hu7~;w;F1Zzq@e`BevoWn3O@SCJkV({( z_}Fn98^faC2(=_Uyo*7`VainGJ!L-z^YRfvq-VRjKny$IaHQOct7W=z1mzB6vS8UL z>oH%U2)`>6fLkb1|CIkq@lxmLgdS0J+i($#A^-L@5aPXOks&J4uCa#O*SE~`m0AlT z8)D!4;Xl8DpvfvAJDGw0zqQcPOTRHj>b@q&Q0h&VD%bl56*5UsX^_3PT4@nOH#lP0vR#U;l><|4GjXEoY)jW z|IqCN(f+z@G0tvH;`S;{P7h;-2Gf8I$|m@ z@A!<2Yb_(xr2h&C06Km`h)UNq55hfiG@0bmHMf5tgCpfh$A^a4fXRf*Nus)Ewm)T*i-LG3p7rbd+5o7SG8RjWocVyjs* zv1`|U(|*6t^LgI)^ZV=fM-a(<-Pd(o=Qz&eI`0S_h#KWh)|*$ZT%puZSAKfs$~8RU zMNN8x@E>kAky661tL{(L6t9$H*jEW}i0r^x;44?E;>gb|i3#t?T-A--uUw&n{drxT zeaZFa%9YCk4P~(Y8}p5G64)&@RQ)>)YW-sV0*Cwnyw@#7?>I2Q87H^6!6L|hm0qj* zsFHJZAiUB?rx=qHQ!w3edCAr^L``qwF)W1<^G^PF#kx)HWYCuZLAYQ8;$ytugd(evkwxw*MC3=F}Eg4*rf-6XTKv!SP7Bj^Pw zZUnWxxXa8b3{sPrmRZ6s4K0lSJI9RJ>n;)YTOxLgaP zwdH?t=B=3qSZ&QEnta5CJZQtO-hY!-ehmJA*{~dMyLP;z$ zGc&-K;oRW<5kEI~j;iW^SK)fe%~WLJbw^yhLH(rS+O=zs^6;qty;e~S0x^I7{N;zW zT@ee5IiGWkcUV?RZf{(a=>5$mqVGPUU5L+!9B(eQT72_0(bG@LWmn6vK0jG&kL^Xj zu+~yJkyNNnakF8a@v7tuUUF`aef|D(_jwJtDH4e!%1|8)RJjB`Mhvp@;Vmd;q-r>o_72{irZ&Ci1_?-Xu`QGKK7)?==hWak}MwcI~3jQ&9r zHZL+@HO?)*x$|Gt1Sz4rLqkua^5>GX1Ao{NryZF^FrGipvArC9^}tos_)57YZVKoA2Vvmvop;=aJQE0QLWl8zVzBgDwl;{ShlN zmR(&vB;ZWj;GDC|_(>&=RIjBa_u5vsY+d)m|Ljoa{hnU?QgV$GGjg97uHhk#!9?5( z4bI(BUGKaZZ-M*mPH zHFz3Mv%|*dtnZdFHtu$Q;*k_iKP8MOp<@49ZHwM|^nG!2(~OrIy!v`}bE;vy2a%Md z&&yR6aDF1Qt7`;1CY^C3Gn*xOXY6Taa`rSErE|Jgznb0R?Cd=0RR8sSb>z;}mmbr( zvsR);$nNJh`{=rpp@Y&*bIVtOpjcDX*8-Dc3k%Pz@*CnXQEsF*WiI9s;-c3Ed-*3%ZGnSh*hhp`L=GVj);AP|Gxs8pT z0^sq850FrynBBf(b%0P7s#Vy9;rY?BJJuLdp+z*ZNXIbFQ6vTPC=p)+mWXbt7;*`~ zGD_r%A!G9DCHV5LJVmAC&46)TCl?Sx^!)wq;1^1MyfErCXyKr#`>&T&-lE%nR%S3R zyjs6h72?adUuIB|tInSNvE`b9@^3;6nW%PRd;ZZhB0KwbQp9yV&V{~Ykq1Hm;Zi;9 zDzS@J_$UJA^i*@Tx~JHxgJ(dp-OV8{XslA;34pu4&(_IYR)dPdve^ksvFCCM-8ey>W$+lNU=dM{D@esi?u^YX4i z`T%LX2c7S9OXb`$v(Le1SXL-icc(_;&a4{Od@~nnv2sthv5~8$$5-7jmH&w;3Pwgu z9O7})$Lu}8rDBsS6 zx=&q?8|9XE_atD)WX?<&w6{&8wrlF}vbE%NY#m2fwtMf?(t4lMSKRyc+e)ju0s7mM zC+te6gH=x72bOi$`LfbuyT{EwrJDvsqBmU#mUBZ%DVKgHG|3%~Y-wzq;8{JOgUw~% z?JTh4eN2Olzd4?*ms<0R<)ye0)xb}^Uosq5TlMBsrH83v%f=UjEv{J6CyH7H?ksdo zF)%ER3**lg#+FxRzrwF6dfOal zpNu?L1#vDXsHla;ijy-m(Bg`Adu@3}psSc1&aj`TA>-MsST%28xsqH_IYghT=_8D@ zuN!B3tQV)`$_8y}it*-(E$d#g{&n#>KsXL*KvgzHI*EuMUPG;*7DqhHfMN{@syaYY zRt2#W@6sNPKBK%?$mk}hQ5F@@=7HPmn_8AuvWK4jjS^UFkK!yA3Yo6U=8|KH{Jr6a z6aj$EHGr5~4BU4_n64&NxdK^&<+i%3j^oK!DrUnUn0Q((AiGlQUftSA`PklKTUO;h z2S&T??yfV!W;6{|85tbJo#6a$7i+mRLxo9*x{O|}1(|Z*dVkBIJ$J0G9(5N6aKKsN zrA^h0_CIo1h~)uHqETE<2J8AJY{kpB@o!+JKrPizMW(8XpX(_&5J!3LPdSg%h9pL$ z;`e^Zo0@}C(k#TH(pu|%Rwu&`KYijL1tD6peArFOMH-k8dL&K+s0gMOmMxuS@tGg;lEbm@m2Z9_3KmbgZ$dyF5y{@fYH29EGeh(c@GyBWa>n*X7+BbLr8H)5#=OO8j-@LoO0^Viyiex$wN=;?hn~}7LlNrHpn-1OywhuB!qH!vG9U023UL5_MEgD@82GlE9MxqigCo$D zc~Lb6?)!`7O>kxiuEe#GIK;9m#f(|nkxyX2A~M3A(XwSmai2|s)}4LaDm_tV15wTZ z%?#S#r)X^A8qN&LVG@f9x%oNV$=kk0x_37(krKp&rsRk^)U_=WgLU(dR6jKoqt4Qf zMIYa(Fn$PPLX0ymS&s-vL)nVGM||*Wnp5@`z!=>MB{M?@ZDC%gyt^FQf^U+(ovtl? zsNa!bZrWIrN1Z{_w%92U2@R`jDpSk#2^CCAr@e%2j};vsHTEqj_QuQZHUYJq=)Kd^ zEW#$GqWwfie2mHjlSBSleNN6GnYWTAA^V@y^KQA4%SXv=$xm#q#Q1Z5nOI$jh#`ry z+RW@QtbIvdsGSvSYjS9HP=4L8(OIOh-^A)iy(5~l->8M%&CM-5JiK!-Pi)e?2a7gI zzT$ISChjq#nQn2hrfG7E4Ws4&;cdc31U=y9CL~Qic3@239bDcfl=E4xenifR&UD(9 zK~J-cIKrZ`e`;+c(qA21I8;IV=pJ#0P-0b;?`p-}yfAT3#;YtwI{L8gQH@9+(+pP~jyo}3A+a6Dclvuy@1mgV zySqT<6lqmwy}q(Yy5ty}$FpHN6(Q3vp>m`%7f5Zd43`TzD~D1>2@dYn`&LmSp(l_sFhu_i%l0$EW%L6W<`XRy=t zpSy%mWR3QIl|IST7(0D|lKsoe?-SLNzES!^2T|j_k3LSckW)F-TeY2R682n%5ZmEE z^h2wap}N$S+eCh|lF{j(Y4QpO=;6*`R~5128}g1UDuUp+*jQChPborPtHTkHrRJi0 zVYJ0%tB!Fv{rU&$8yz!>mtW=>cM4_Mq#Q?_Ym%E8VT8Kq8q0?t(j2rgy!$ngzEqa6 zi=Zd97VsU9W=t3tM zzzoGeMn*Qd8FzE4-l-;g>LuZZ!YHr)ywEKU$2XF<1;vGhQ8M6h-RI9^dnTkeyr3Pj z-F3_l(N}qkFm-1>s~4GeI|;nrq}uohwz99s5gm#B97v&5izjj!Rp9Z(D6bB(U>roSc@DoD$_Mj1rA ze`CS9prxf{`Y#wk^9icByB?Ox=UWo+fVdI0eh-e>e?LKlV>~|QxC;e&L}$-kM^P2$ zu45@xjEp|~9q&ev7Tz>B2MdgkWYKNl;Kh5rDlY)5Z|H+8V(M zHi(y@%2_vkt;V+$Tk2_JR@7>O&t(btfYq`ifD?BQWtTONc!vS%>$fJ%sNqyWVLbZd zL&p<|;j}Qy*LH&*LW-MyP+XGCr|F#0^q=NBT%p?6LPA3R+NkVZ*miC=M}~WGk29}K z+=gPQ;Hqh)&gUrX@sGq{+WptCj3BHBpW>D))GkS;1kyK}{wQqgYEB-Zbo~d{9PnUM zMC69l0j)=d9xaH37lt|H(^0|(!Qt^qN&CtPsj07$gM))vJG;9bBBG*dXxP{sxCI1O zqy`5E|5orUEXSQRw6vCYWvi8k&Y5rdrwgIfY)glEd3b0!IWMp|lEe4-(!%dEbMhsG zhQhb!Etn|#4TFCIm1!iJ*i$k1TipIkC!bYH{XSCf;LW)_4X--d;eOwY{BudKW* z{x&)~`e)Zd)u?7<)-^(=L)b%2Ly@7=q3mk6JPx@P1y`%}O1>2ANjl(>+iuyR*}gtL z^3UPr&8hX-o{UYry-*BX%u6}N{lex$TG~wu3ya{;P~$Jsk9oOjTesMn|JoG6C?%Kf z?jx>1S)puDb|}XoXGZ?;Z2@0;-=vM_rCzJk{j8wN(}Kh_eSZ8>>d5oB4mGL#<_p0NE!-4))@QV$l)+~s7?W;gD zHK{)_sqMuZx+!GCrl4nCd$|h4-_!74)VniMQ<;fw+%SI0UYS1yiY$kC>2@{C7gL>T=FY+~F(vd%VIh#( zZAK5iFH+#5!)z+TELh_vLqP23(=;BB>pEEfVs%$`3%hUeUNepAiJqDI&^oJ%9oT^1 zEP3lB*JndK#G)m8o$u8Ag#=<5Nt_{*DU2V9DAp==D()DJJJL&=Hu_iW$s|%2TIFKh z3Dio)<&CRhvure4ZSiObBWj+H1Vsx91)}`$a#ped9@fLH=$22e(Rcd2c0|Dt8fc z87W4BxN>dM}$$Oy7$9wK0^ncN5r})}`5=4i0>hR&!&DitF3_j7+6V1joxG$5@HjFxUIq$=%`Bvj9 zvPq<~J={q)q-oUkTRKc65975vywTqmyh(1AIm=ATI%uYMwU2ALWGLs%M zHdE#CF|q!L0G>$8u6G))A-D2k%SyZxQN+Ey0or$*uT2Jz zOB@NRrC0v=jX?DwrX((jb#UJ{lTGJDI<&pZoa8_2)H;S0@hw z&OAZ&-l{wz&CJV)il5L7cz`ZVl$;Vtdz&*Q)l1X*vq??+3G0KSfIOs<&P>-K8^;ZJ%MNN%-gK-Aa;*0&9pGO9uod) zNrG}o#G!U;K1>u(bYMs4Y;sBGRsqN0^6H$M|1v`As7a!hoF(LKaFN9zuSUiC5thsd z`%D8t;J^v{VF3JT)yq}pv;7_4-!}b*{WF!s>Ep-TSTx6$Nq6pdJ?+JVxU_|ul~35x zA7Q_LehQpFZuR_D{n?Wc3HYAW%S4A?W4&c}wc=Z8b{5lbOAmxZs)9dL3wl+MOML#Z zhLoh0lG|=Do2Qd`>~SJ$apuCL^4|Sh#{j%2$9#HbSTJ60qVdgxm)gd0SGe(7Z0cAi zTJ`r9oF59#03CqfXyIO2$pJ&nB59XJ_q)jQpsv)e=Ztz8*?YxO9S4QhJ+`-B$t>ff z8{Q$q=ArodL3wDij(ih^>B|RZVlp8ft018`(ecDMwVvf+fAyd1{kF^XKPAzpdlF<# zAN@>KolX9jwk!)?xrKWfc^4kwGOY&IR!W+B`6Qr>WK3n5dsETlB;@{*$|t3`1_A3D z6Ph!nxCQKPZ>p3Xg}@W$m>i{X>%A4qi6$tK{7FR|)^_Agbfy&LFrdE+33T|mTz5sz z7xdLRnQO>a!tNv4$+D#B_oKpZ?09wm!e&g490mCXtHk#5d>ax#X9LWW#BhQi5{V52v9CENTcx-Q z&WJ+nTPI_+-I~fxy-LF-sn~JW^e{(jzHpld6zH9d?em$ zZ?#3na#^nID0ecL)#qD?MS>T0KKw3Tytx7NW~~~emGyik1-l#z z`S^F0@m7yE$xHqGqzHfUC0=nkPC@_n1g_Qaob&ZNc!aR)9W|uyoK7@z9Ub~mmAi(I z1Sm1`Gpl{gt@xuU$+4{IL+`*z z47`K~p;S;WrMvzFhgbv^n~%kI|8gTU+5(z=3Y&h8k}N(gaq6%i>r+{U0>dXK`~T3u zxQBq1e}PeAgh97&Fzh?@#K1y^I}IePn(wvby$3J}+<8p8b4dHfBbVNkSMI0PLo(}h z%C>8*e4Tv9mW#jI3>#hVJm;Dw>aGv$_#r`vi=1t^L(WFQbt7Y+_~|ME2=` z(ztVCZ;6PYY1w3H+{j0P42GX(H z;oGgw?-)giECSp<{t(*E3JI=N3zfvc3&#e-6i4yb9wi zGj)}`LwyTTzOdWn$56o4F-z<8Yjs`Ra98eN!QoBL3@N}}Tght6+Z21#hfGpiX8vc- z(T)O_))xY=>_W31+>(SZMa6!1dv*qcJD0tYgi$@)#WU-hXJn5**Y4By$dxrU07(@L z?~rNYtJL)6~gOQuHLJ&=F9?k7*V z*_XGPA*}D(!Zn$86FBCnU8oJ%3ooVDpcG;kwCcSwagqt!Pra$CpIXna zGlgv|NG2H*eP-`!T2+@@j8Nh%qD??XAbn|I@Xp7{qPH^QM+FLkg>Cs))2P1? z#;Jd5*{2ulX$D+6t2LXkkS768IfxXME4cnxTKsiTbbs>OX5ZA3&)-?^6iU&$sA~v< zwY9YBNI{p3ATp3Qod$@UP!}~NeS%}~OH%{>B$ zgugHgf?VnCy8+d|N_0Lvr4m$<*9Vqg zG%eqcEVE6TZ`qZ9%~{v-nr-~qA19pAcD88ZR5o*ZO^8;Z-6SRiCcrmCdh*$l=$w}R z-(%y@)2rvF0VbX4yN(l;y3OC8|1nEdY)tk)0><6@LWB(<&{kFKzqJ!91A)Va(!zN0 z|5oXgk%ZI`M4U0%O^W(YK@jTujnLh&kVyEUuAxzNw!{+wI$z2KtOGVc_I5oru=u!H z(cQ3jBxFsz-h8L|52CZ#!2h0rztW-N00mD>7!s5oUT*HI5fKp$wq~40h=Pm&kqqv4 zc7{vO3^%rKK4OTfTQBMmIN~IyJon^II$oIzWZIQDicVXb~A^ZtAqso~`E=FtIlZIVcuz z1+iHk?XF5*l=Hur2IXADlkW&U1k#~_P4oj?1_j6$+=z@PILBzro}&ux!x4RH7VW+< z*6fAi7R7%t+oIydKgc=xGvExdz!K)ge}b6K@JWJ3!{a-`!D9r9i%>5 z#Q_JjFzBwJDnV32#LHacMg!a65T{2Oks#*F8z2wRg}>%n^!~77OV+=VVPYr%KNet> zfP5^74_>ncd0E50*olC~TP$?Wqq9xGUY2Bay!V5%^#cAa<^{>1xBp#F1AMEU?zLK@ z0l4DR;J*gKY0&d7I(s~L&8{X}kPY0B?Md`sTR9-u2xn>5CwOLN%1fdQ9U1t4XMbW% zWJWzY@ElxJF9{d>|NKNSI-7hX_P^leTrh*jl@6K-zNVou_>%8`Y^ai8pmO@HzI3qH zkIYmTEN`O9E!Ts#awVaHI+q%>+~lCkM4pUnJAzL4ui5?TRHRZCQ-<)7gMjqppe6>~ zD4CD{g%NGep1jE*5O@A|&1)PE$$B$1JY2^@_CF5s(els4E9Bu22*kABqqe&>w-Nb~M!#0t$=BDq4)?j9NV_`C4FYW2*&W>L6HoBz>G22;6ZKP~< z%%?gsAhP~jF6wAUXRqg+oGTK^F^3gOzj&HnAT6+fb1C}2i|hZ67%L9>$Ps$P_BljA zbShix^zhYODLKlM174*$_S4ny2If}M+}7O(M4xYyd*3PgxxyM59t^W#{g30_g*y|M z&dHIT1f9OeD>3eKQ2nkRef-<*R$e&hkuy6Tb$?sCr}#omM7e8Rzlw@SSP3`Y$SwhI z8@8hL()zPI^TL0l20@^1Cv2}|q_PP3L2FT$b){KLH+(>-do-7{(--*F`6uFc=_ulN zHSSIHoEzO2dlsSS$p{U4M(eSUZogNH?l4OpUs3ENmK|Wy6U29h=-YHVE4H@Aw4*wT zXwsKrDm|>R74~|yH20k*IsA)U+84g3&rck?yg6KLozHR-usp;hhHH|7&oVWbkCn!o z>0n#=UgVoDBB;G_;&ZXKxK7unXi9QP)0q}7c_I*o5tWu@zg7lLuIhyN5 zkj{~|>w{HY(2WC`sQ5*bDz8KB)K?1h_g;SQ>~BhxXm^%dDVK?U)%xSr@yR&;bokAa zjOMHBUN^YGreDeZBt8-93)7{dCaWw|W`0Q+nY zxYh;yA`C7L`9V|`5u)842}stErN#8SfxDf}?_Z!^jOZ>=^|}h?Rr9`uECeOwKL`1S%>jQZ6hmit0#@d>_5Vz2UH7T=6g1G3mHgX4@*7wc-pBQFx z+v{%}<*Mr@9Gm9dgUc(EqR3wc%3QHN(e9udQ2HfbeKSu+tUF+U*HFQQ?}q>JtrO9y z7*QE7>!VT${G8L3FI$pV!=^W|8wD;B?j<4^8;0?g)aOL!Lj|%+MZRAzI;ae5he<9J zZ@AMb{q)@z^4ywu_X!=EcNEt#Sb*S=m9xv!IAB0X)AhP*sK@Pet&EnfIl?$fv&%Rj zVhUa_wmO5StH`!CK*fHbV)p9zUV8w(wq9k-sE^Eh#3*HF(#DLl*A^(qZ3ixT&;b?u zBi`2c0SU(*hDsO~Mrew=!+VHj=t4E}9*_V5HZnqZ!^_UYz1-}ETi*qIMXxEABf{6S1S+iu_ zV2k;>%en1e{d)t8z_vZcS+$x9AIlwQ62IAzt1^&IUW5C7F;VtfSn)zK?zzym0m`nl zpbOF%k9Xs{IrtqTy_U0f@;6)B+VfuG4d6spcxJ>to}P44_F6~l_H(zCV*dB&e9i)cBQ2ighpFfA;O! zQUVm1F-$5PG|lu^ZZ0O@B}95c=AKE+PJFQ{Nk=JyxBq1ZWTNs{vv%5jkYrvC88`|X zC=Yox>IXb?kBql?9=wqMB6zE&J8A3tFPy?z@DB$&tLf~)--ntq8}v*H=k@&&kobTb zB>_}cm(4W$xzb2-!?zV_{aw%FGA8a4P6PvosH2W0poxDsq(Fr9o-%61XfBKv}iZdcoCF2BjJ)s=cWWCD3G8=SyZ+chn^ ze%E*MZnV=lv8S4(j(z}{fxG{Ftu-|x(DB=cDPrw@00TQV0HAGdSX(${z(i zA;<`Bu7O}{!>iD!zIe|O+PsrEwJ26NCuxN!6@KS*D;3|^fKeT9gNyNcaYmx8%IRTE z?(U|c1*R$PVr9lJpJAU#*s1pzVOWf?1nTJV9s@1E35s~*Pm~ditdfF?6;&b2^6(VB z($-qoXWZijqXKxqtT145Y>36E(_>0s*Nz)uYkCU??|c0ZsXKV**Z!A>9r5A$L{QO0 z56ibYy_5owBC=kwT}#I`RW?7KN`pY{mV@k1jGE|%Wfyc|@|>B&->gp>2o0-P^=Qs} zG@nntw?VS>NTus3n+p$>Tg}fUUhXqTr%O>OZAg8!+|%v633f3;WV@M!_DcF_uD6{2s@A{5byFwG?#Vk1a%EAtzV({0 zqHr9$CKr$zQQ({5HexHt=y!bmi2$CUM2DSWQy-Kk~Z0^`heKoQyhZ$_#I|K!J6TQ$3{40CZMy2 zL-CcQh-;nn^$7W?Dpwmdzo`;l5LH_2>ghGw_=Jeu38hrvIgKBWq%MH<%eO8-q+%ml zG8&J)I!6jJ#K*|z8N5(31l>dn1337^r>V^~3#|-K5AhS_94ANHaa?ME&cg!UD-+y1Ns zED2Yqmhs|*$Ci*oq>S$7d&Nx@n!p@-7@fN+hYBJjgWt^TUTIQUF)yA-1Eld$7!NYC zGwd_!e+Cx(Fjg>nBksLP6n%AYP5yA2E^)@)f9Q3w_!6Be);i^;uRc9RWb387Hq(?Qp>rWRIBRf&%8;!M7@;;ex++RI@PUeHyX4e~zK1+5kIh|I zHYL$^(Iqy!1?8xAq^~Qeazwu`k8EU5Ng&SXQyE8|hWy=I53u|n0`xciyubB_o0Fl+ zB?#Qys;_vVtWWGAkB7iBtdUp={d@J@l1j9^m^u%HdlPNL|(M<=qtR1ja9zZVYF0FnX!RN&;& zXi!8WV3`6f9cFvAf}GKbV@wsh49kdK=gSx(6cB%e2WRev+f2DfQlGn5Ga%dEp6W(e zpn}Xz-{=jS;58=@?81NxcJU)#=e$^S%NVPn4`U&7Hl2ys7DR=9q(+h7QEC_QB61)`rjFSLeFso5IYlG)}ss)LIpdzT5Ra$a)n zClqa%=&oqM314#{#JW4UFW^;%6n-QKk*2CMB>`9>x-^QOO6o+81wR1WX&5Xcm609n zg2!VqY3Qe79eO6DoGOUHf~stEE{3jLaY!`GsNGf{DEMK;39yJ%OK~N1oIS=7^b|No z5o1r0Oeh8aOmgkIcL?o%+8;Edvo-Nz`4nUo)3o}7%c?DNaLDq{-9Aao@*p* z!W*?Ofkh9(JfN6gLZA*hhyx^1ZOFSB(r=Ux{5VzEZuN;EU$g@jO7m;N(Z`0JcQW=^ z{uV_YpC5_+-vD-0ql>H2F+EV9Rw6So>M+92{&?l2HQm%N4AQW}pH+wJ8j_4=tZVnY z$2`UOD?{=yDx3N3R${zpU|o^$5>dAY!ENkHDCs)_othG^7V8644d?^ zH3lY!9v(4X7X#u99sUgBj4DE*{8zU)y7vD7)t|?M*MDw=8HKJEYxUXUe~N>679 zO#+okHPJQk=v9Jm?|!-oD%v@$to%=KdAM}zZ*a-0zY7=3X^xkSd!Mc6JtB!-UaT}$ zHHjzA7;yOXu{xC=uu_}S0ayg-gU7$i;SLw2^6LmpcZ{IV3=vWS8G+VTf86V7l7$me zacGFCsvxe83`7nLvxPk^=OHKbvb9NKTum|JQPSuJR^0u6Vq2p@kH}w5LCtBWhy3Kj zFQGS_M>S;B;&Z;8MbBfsPrlA{oJu)&L-gIJ;Zf;Ku_&LLvOhN#t`_BWyLSGd49l2y z{q;+iT^h!4N)58yzTh>if@)>Nlm`);k!UnU3gg%-v?e{^5Lcu#qfw7EMiSycU<5|r zo*5Fj!80(SpP-Y_QD6x)urxxbVU7OqO9F%h4>$pmqd-uIj$y`bd$kz)jT02o!@FGj zQrCcgniVir?TS_`&t2g+{K^8cme$g0-G-YBoaloYhl)RyoOd0l0}(MTii1b6;}1`F za>T_+R$07-3gt`DdzE+S#j|;IztyrYF-2604fq!dJtSwjlbcmk$g5dvZ~sBwBIxUZ z7Sn-fOV~+DB=z2ck*nA}E`FX1b#s%BJf(x0+a0@ryXVWg?~wlxl2%giT-_1r^NP99 z^Dwh@n>lX8Xuz&y9|iP2WoU zDNe^}6givJc4vDR`cG{G!1K*b|FB^xqIzs;jFuGZu&;f|g6I(TbH2IWiOfzfmXffu zxg$uR!{7X!->?a{p_v8xMbd% zM_Co%o+y>)m5l;(Kr4hDgCxw`k-Lj*Dg|hTpEwU^+_Ca#Zo8ehMTYwxi~r#wf(fT? zCq~JJl28G=a+JaV+YlebdjqcCxB|HqX_4DLlov|2M4X9z)TYTz^ zRk5}#sL!EVnxEJGTMps&N^r{$IwZxE>?NnkV1$$2(d6WUXhKBRsBj|62tm5A9=uGP zXM69W16RWwuh`zf-4O-gVR?I$E@jz!9q{-rg4@$UGrzSHf;7e<#nl+?mI7sQfdBEm z5RGc15nC3!s|}2T>a|8FU^x$((5XCsH#zxKv4cKpSnYYo7cH-7!^Z3Dong~*Q#i}n z{0RIHH#ymmH+Bw3^!cdyU&g+*=RObM(5Uz#v>p?GlaTggTme;cIm)OR?c4Y3*i{NpEtJ8( zA3?YB8wEr+s|J?=LnE6kv#zssl)PJu1?W%FQ}{?b|*}$ zD<5yQhbQ>bq^5e<1s0x)cM+!>Y__8~-l-=y%!o%~a%3%;R=&@M1m$kOT-%iu&PTnt z6!wMTTNraf_{S7J+7WjQcrz6a$VW1B?}iYz{65ppQrX7J-Pyi!)e&rqp?`* z)Hd^RM%T8i5AK)6hgJU)#q9~yPp`w7uiM_YpcK2TyMR&K_3Ou}v@o)a_%c~xxEP`B zS6UMoCGBL*jk_Pa-pB^VDJYacAs(XyE&vLI7t|4Qthb$n9T2BI$hR!HMv8)93EPBm z%Ut1!LP7e0fVq6xt`L`(KFnAprK7up8la*oKa(I^(-dexc&~kJ3Kx{Xjp(7QMeFSp z$p>G^e9Ea!$0u{9)D|m6zR;|8B{9ahY8yBjx-t}XqQ^?#JPgievdxvXqP?+S8Fmih z;#=FDCLbgET&vSlDo(X^051w`IiTh~QY`sR`xTJZPgj)Fe+P8MQ_69d`SKNxl3@2}o2%)nQu^8#Gne zgr5yyI1KIL<_8R_?mjWqzs-!1IE zJ>j50#YHo9B;EFd_X>E>GJIl?%i`hoJFf1J-EDfkjDxM#R1RQ)UF$Pfze{=c38hoc zcZq7u?L&RKxv{EV#Br$FSRBZywSI@rAGAgh%SEOFr-^94w!^)<;l{2YjA`{!IBd*N zex%4K303(Ld~d;fkvcGtnjOd!>klHs^>vZoeaN1(ej_icc0uH-jv!|CI7 zlcI(?ul(i!hAX99K$*i#uhAww4TWz=BgrVcdgBebge9^+p~SWv5dtBU|izN^M!8b~_i^ zxtEL<)lC)7B>4ha@XNj20N%)o*Uz_$xG+YBv?S3GvD2S>v`WX;ki>>WctWH@!bRn< zyThFLhaPOmfx=nu>2`g-F6FPq4yQG70@Ok%sVosR$mO{8(_cfXX z(ah6bx73X{d|_|eM~4K0$zzEHZcAw5}E+m<~gz+(gqU=nb%STqz$J3P}4QgGYS6aG&3+J>eq35Ti zd){h10!@$nn8m97q+>{3L(3YskJw?~Ea&vph3=^62Jqx|ex~J7Fex2|2k~|`i?ExU zzsvpJ@^fwNdK`UG!tKmw;D)Sc`z>UQ1L?9mEwlrcRW1uG;%^3PUSu_&E@m^SC(ezI` z{v}$`*#>zIuD1@ZDFDE@*pkO6Dx-d~Eqv{BLisB%UbLzlU0|B*k%2@%#W=ND8tWln zNQ`TMIutRvVwz19y-kFYF3H_A#Z58UU6l}Q+*vN@(*Vm1V;UfCO;E3w8I(YI%G)I& z1Xksm2AGvh5{PO{g9HXF`EQqHlUD(KVchJKt?-L`V^-Z)xxZL0bm;li(>yy_D0=fF z(>P2kF+Fe8m%xsW5!hmT?foe_(ux;??6ssP!rXXob%i?4^rG5F4w_$>M2}CLsovW0 z^m-HJQcqaF*t6RiV9EsN+0AxNY5C;MEf7~a>`+`>j8yEb2f`GKK0w0hmr>R>4}mlq z=_lEHQ3LZX_th>wjQ>(itYWTzNc|yX7on%pc$czC(9RMv*RV6_u+S*p8m=wx5_)-X z@#G^7orHfM>3xSGmbs(f6a$yXUcckUPp$B!G19fZ@;Bt>*!5=gXfj1RMSf6X$OV7a zFm+oRKtpM;-zOw$C?^AMV=gx=u=uDgeBCUGGuYX6<~~`>+$oj9p>xE;IXaJOndq;( z`ZoMdT}gqFl9#O(i>(2BchWq}t{(C1ypwuCwLq#<#xR;u1t!Lv_PMwGtgNlC|gYb$sBkeR?y1R0I_A)+`Epe&k=d<;Y4G z*;3_|CZ`$*qL9&^oJYU>e79KB1omo|kyY;eTIRVsxnGUYwOM(Ys@LUmJ{Pqdv|UX- z6w~iQt}ApG<$hw7+oQ|$FQ-KH%Meiy)EUY<+&2y!Bi8eI*fwY3#~E{h)AIWjbNyx0 z^l{hVlS{1$={%8u%SF!MNNSscWfkcf7pdnI4xyH6?zH~xSEIrL-VV(9u@1ES626#j zp-7fnr#NL_?XHlweKQ(2zNlgWA^}2`+G(16-mMnE6E;O-jEkmftTaI=Pq%rJI&exZEdTt1B=@?b&R2mQz}`n&!#JO zvc&x&w8OTP^^IsHl^Cs$i@&|vJsf_uk7!-|Anx;`u=O|A{2aV&cayfp4kX~=N7?GK z&vZ7wI)MFhX)b+SKngtSDlrSf9-&o#pIWGR&pE{kEHYY+l{*=pEm!P}&z-Zjdgsab zh`Fk@`1Lc`ZFttI6*;fFsfOp-&OR&s8o*O8WV`$<5WHUq-Fp4Y$m)pM(gjxRr8Ywm4qh*((#j-!9|w zIdok9m{I&Dm|6gQWEO5a7Z`c8DjlOd=e7u$iY;g|MbXk--W z61-nhn+kY+W#ZZ962+ZAl;8Y(RWr5>C#tF%PqWZ=`Hd^%RlH^Danh%Yr%)Vq^0Py z{70^vwK@cS%YrGPsS>MJv*k|e-jtsh9o(2bvAV0eNum7M{3;aU^fkp^ba2IAcMNC# zC{I8RYqzNJhL3UPc-n{PcF`MCg0=>&jw`mUxm7A&7xCvw9?DO-=0C&u@zrn9t|Tvo zVr1$m3XJl^G>RUKsu2qM5aNtAM@qthm1k_tA3<2##S$#IH0W;BzntI>SILMc&@5z# zSu&LKK||;Ruz_v}GP@G6Tv}XK>4&ytdH>3|206}@;>_sw*jm?ar1n$iX# zLP9{K8wtq)BLxJdbECWKKKlLruKT{O`yc*dySDevIj?#?p6C0^KfRR3bKzPhkf?@M zZ|jS*#j!hW{G3blv_9?Ff=w%^VHNeNAZml3@Elqdy+$7589nAIJuS1hS*6--8#0JAuXhdf%2Wphi81?O{nW&pnC*=ZD!n9DlI4y+~`m*p_d$JWz0; zpvA@9P(@8&rMR%8S%N{^s%*HomWKpIZGyyn6z1aMOmDS4^+|$oK+1fUGW@Hk+UqFkw?j>-;S_Os(OZsh6otHNJ}v##$L?D<-i-0)HIf^pNL4NR zaWZfDh{Uyhc~N$-X#J|g@42_05V(2F0M!56`2`1)=yS-gHBuFY8vg#~N~Z1qRD00( zX|MUM1@Jn(!Ng8Bl7xlATRy`KWL%+MRMYMlMpbp4nE9ixVMjBcXvSzcyk>4T7(C}-f?40u^9-e8@l&0-zm7PwUVu1A*L1&u3u`ETJ8~91Kj%&Ihu+M6 z@~s`!m_93fd304V2Ex6(=k=IbhLLVPnycG^YcLH^~n=!4!gZ^s8gsAumeTc_=GP|}5AWgY-*z?gHa?7;CVE>VF7uOq zAw=IOU+3BwL;4&pIro?~FiIa5x4dVc6dmUyXdcY0=aepWER}6soqcPO9yV8}(e_O| zO)^Et1J_^~k5?Dvw=e8x{JV>^ps zCl~Rbf%-rR?}_;rU&KNy>?)$}40x5~Jsky2EgB-%5VMl+B)TFH2|Z_oiIy zmKuw58-{A?`e!b5|odu^YzGi}1 z(m`W@Gy$O?(H<11I%wE!;{ZnFw?VJ26|{HJbo4LOY@fqz1#l&Img^I8&@=ghGO0na zxixq~QwV|*`_wE2U6AM6XVqtKSnpO6iglrN)J$w;#oec*JJcT_njxm?X z+}r&KUaPIpxR(zc`M5GAtlAhi=UV;i!~DhV!V(0NGZ%9&e<1uXXeWuOTHB5l2F78x z_^o7vCC(Y;ymS{%Q9I&_*#3)mIORqTmB(#8ISOr!H^U~I=K@UpNV~}q&O-NC;lyZa zm!AZ(jm0*UUVc~0S{}5ztnnjHPwXokPUNQSCuobSj0vV652iceB9#C8@gLIuCoz`l zgo{hRKJ?y`*>Ahg&Q2q0#~!2P{Am5oT!?($zt^U3Bn$QSL>0#CeAuOk;IdhBjKb0B~Wl+)xL6LOf>U`AO1H-FQ(>)^{UA?vqp+* zOPh=w>`NKFs#z9IBgD3CuZmDinyZ?{%`vY}thafo(3-+Z zo?+BK5MdS2d&rTk15(OWO3{!omu#lEfak zopX1rNktV#ys%n~J;48QXEoB0iB3A7yEauHmDC_jdmOaPAN~8?4Y7_a{Y0Uczt_0$ zUmWSkOpdXKn5?z$C%sMYaA@6*^x>SE^GY@1TJVE(#8hMajBy!^IiGnPWrLA71CLqI zG|8r+KOF}3CqlCJ-N}_Mr3HQSKNQW|t+9Sje66E=+8-{$zK$>{|3Bn+Q_pDP z`Q(PboNzlFGS!c~5;#~#{D}NRI5|m~-XMOpfRd0?sEZ|ST&t~&$X{4yFkZ;DK!Jk!>l7R%F)-cnj7IL3) zy7Bb3(f#%CDFrC+#0$;`jz*!%5kVQ%m8x2?vUQgQFr)j&kcMF&7DlVm&e1QecL>SU zzFS||r<&7hD7JJpj7gPHb;KmS+n(pOZrS44nyjAOil#=&8xAa!e>OXKc@QM~hBc<> zL?Q3&wl?kF@&R7nl`1p5T${FbuPTENLRu@=a3dgPzcpO(u7yND<@|NwK*XyDWUYx- zotVObvk!fEPt{3?#blkbfly$cr@iV?c9=K*O)b&a44evAuPTW?!rQ?m=AqOgjoosi zu3d`6xb=a9_a1v0U7S_Q$x!fZ&*e}g;Qz3R7C-Rq22vi9Rno=EiADCMFI3EX3|B+L zyiu?G)b2~%{B*%p82`u`zG+A0ANQ-SQuYC>tj;bryG}SPyuvNvzVZN(XQ{#ioKNTy zVxrWmj}U71JcdTPA@=TxGNyQ~^k6IhtGQfPL}j+G;7QM)$^+*T!vSm@2QDPGcJnjt zYbukd#dST6Pj4BFM>BoD>yCXdx!dt=GGb9~`%#Q!xal=7tL`lUCW$v>ypd}`a`HX_ zO=NI+1(aM5`#i4BK*d%N#a^zrz+eZk$TOvnBm^5Lm9lzkH}c=(P+u!HmHzC=Hiv83 za<%x9S3y}Lwue+L_V95)#TYeKiy%tST#1Nb@eLNrd=gbZS^dJgZ^CAa*0UeIa!*3Qc=Zv4R4nu@@;GK)Njh`5Tw?sEr9Nlvyzi zl8eoS08Zj|s1UjdUqj*}gw2j2+_wEc_CC=KoS!!uFmn=CXrXgO7{Uf=wxs=NYi)zJ zj87R7d#ojABsnJkNX{9&VJ=fXW$0MP{0b7=up*qKV>zL0-4f=rPIV&tuYH$S-uZS1 zRcer5Rb+-t9qUg@HrMxzlOuiMJz?9xJT>?LLiN6=$19Rt1>efFHIj!MR1( zB1jG9KcF&cU8XX`lkQtVyhf?_9MBPr{gI07p_1#@a&LSXENDMGI$8Z}Fx$v#Zp;FA ze-n6q1Y?qMmiF0gBc8msZTVzR{d8N*p3Ezu2>=$;);%?D&R=jQ`-wjT+7Uur8zv(m z*{US2Wd9V1KShD~9eLxM0;5txO$;gniyProKW-qCYJFPN;@an?yNF&D&H}5P-qL06>U#W(CxLRe{asR$`-H5s{Nvx{NlqDZk?omz=N59l`nH7Y&t zcC=g#6{C?4YRAdQ_@_ai4QFDG31jZPpZlZx@!q#5?FArx_~20$VHDyS1(%XBF`IE% z{*dZyZyF2rdw+;=i2pm6^WbJnori3Qfs{}m#T*~EUU+&KfxnaRb4wv9w@<;$}4Gg)Z}kqwJ7$uA!8M9j?0kzUe3uKdzBX+s2M z9r#ZnIr?00>sIiA4y~t$^*lV=gjh3R_)1c*+E~1+1ay5%PU`+~vBy z0eaJ)%jeCGR{dUR^Wm#{;2io?aN+)ketnLQH};6n&OdD6%iFL!pL6+znNqwv5d*0+ z_Y0ZLIBFTB&r)aSO0KlZqa*FoNJ*kJ;Ys5PV^Qq+j7XR0mWj!vy?*(ukwe7nOjHlGUnPRFMm10}E59kG|o5nU{2vwl(pw&*I$l573XxPAU`^x#@E1ylAl5Z*E@{_9nu;unI z3N*3!kzw?O+e;)c7IUQ@gi2p#K4M&HlGR5wl6K~U`28` zFrHf=Pn8YkKD@0tA|!-z#89SUGE?v1M-T%zw-dg)V#wi}mplsYPdc(MQnwEKB50oC z0}VA)tS7eE##m$D;IkIUi zE>|{Y`^LoHJW#1fj;Q5Rl5Wf4YO}lELB(pUGoZ{7;cU*Erd!zyzoeZ%r9?I0&BbvU ziJ28V9G}!ab<%M>eC3nAM4BC||;xo@uWZ*RXa3ld=`;{@%GOq$u(#gz;(lp_OUV;lSA< z@5@PhHW}qwzl0$xH2F4aC|2m@G0t{-PAqEcm;L3B6b}C^8l=ngv&(R7hVWF!-6ygE zO-<)llMjwqH+}BYjjvGe?PNkf2KKhjJoz(o`VLzvsPgF3V$JPN`T5A#I^Q$)zh^qG z6xWPF@tHo#xL9vYaZPgv2X9cKbQ&&0~Een=CmZ^+O;!^dw<{OZd?RL!$eZ147#2 zhKABBZGxxuzbtk8-M3bAF9L0E`o4Q(?$$2BR!Hi_9uDNm%BM{h1HlF8@ z&OlRYfRV#mDJA|EA20pXd|lQMR(RHC(A>;>fAi=NV?H8?e{cp&qcNMzXn&x({ryW~e|8$(&d7hE_1Z^i)+3$cgHHxGj4WtgL-^7(P%Ek za(u=YBN`F6#K%)}*|e3Cd-*mOB#nB4bs6e>Y6DG3DFiss89PjLlu z1Wk?WbzYwfxv9+ce)*6W={}*;ej*U-2Sq_cjWkRr2Z*Cq4r1%Uu%Ruf3IeRO1cvyD z?s>TSynj;wPJShq26@83=+4SMOw)UDWLrOgx2vCWq32zbi9nm|>zl}RteQgRAAvD* z1Ua?;7{QzA#;|Fb{d$iMan(epy3fAGsTmP6RswI9eg)8i3n08y*u=8JEKBV26yLGf_iu$$w zi}RaSXC4=>NePZabm8U^-Il>Xx`lj<>gHC&>0lqZ#eGf*Rqb088PSzM^}W88MYs1o z9{Cq6_QI}Eg8z?=mEv|>L2h>+$j6afPRK$9pem!=CP5b+{zVjtv|zunEN(QF&p zOHw@5-qI1C@R%>IUi_;XznyAhqKOkxT+C{`b@(ATi~5+kH1xo&y|H00rRi#}^%g}K z+=zW&HI7gI8fmWYs|!jmN2#atTr=}55#MMBg$1TRB_H=0p0n*)p#P)GG)X|US?GJP zy$K0%s!+b;pYYE0<3cD^Q101`?zuExHJY_~(7I8Q%PbEU-tL)GUwyf-=0YE$JQbix z?9ww$j*;mLms1(Ne-&=2)=78V{WUjVsZH9Z)J*|bS7=Qlx)*;i9?=*9H6)Q?wzZfZN|H1#eIN^LyjWRdTIB zPoKVF7=?B1NaN=`(X{zzlwPcJyX{pw&)ZI==f^mySgAq_PNq;wF2Hs$)ZXp1mhAW5 zyJDw28?VQGzder{u}qIYHPD|5HU;=Gc}FXUzPUS)C@jb>>L-86UKi_gn z8fQf}cg@k!m0#v?qunoVbQ!e1k58IMg(-jM*mP=;VC-VPPQ$0Gozj(QsaWay%a0_p za{_Pm>|Z(9*jDxM66(vjee2+P@2*#RkrZ%e3`g{F%Jwj(ogNsa5ou1%{mwsULrO@7 z;hyr!CbsznEnAJN*}9y4oqjIw(n2*gmHXA7SXN>0I|)xJwz$sxl}y3#G+aKUO{`JR zkJyyN+3czUB>-KNE8?CVgb*D6lL7lKGsS$$sP2$Y_ag6ipA4Vja)GP;;Lrh^vn+Pk z)5a2~sbSCX7f4v-l+?rx#m6n8Ed&xv0pIjdtPEYAG^*dXxGV%DQ#UyAk%D0UWIL$w zn)4MMGQo*Kw+|LYXaaG80sUOq_o`{mMH}<#vd3UTmAGikhj&e;h)+2|{doeM%}|lf zN_E1RF_-Dj)|>5PD{RLW7YvQfQbc<}1D<#xf3@MQHn`tEaj?16_0a|){WBYqlW+Mi zk1d@j)~8v-p3rlb?rqZ}rHIob;-rhj;khCh!xm4LpnMs$=D_i{c%X~dTAa{>gYfT0 zDy0T=q);4mb?2p21g!Nbz?PtRS5W>XApf2-hQn$dZm}6+Kngx&L_+IiR&cLKo!jyS zXRc(f3;GxI7Zk65vngoUhFox&XITo)Ct1V-_t(-fp$PWo?V@^T%opbVQ1z_h!Ig_` zUGCq(AtdK>k6Ijis>g!@%(TV*pAK#*J^cTDn=>Hmdi{XXfjw-K*XzgKFHDTO@P0BS ze36ZTh@VVHOgfK2@Qt+mP+*7ks?Ft_Sp(JSL1D*4?U1N#tB?bz$jrX$S*cz z=mJpcNamD&#Fm7vE}$)r6Iv??Cy|+!2AxQDZ zT86de|1;krUts(vbH&F0Bboc^hYn$KEj=sI4@Jac_yv655&&y^-E9c|*}QN;PJqcQ8}O-AC-X(9-WH z%;Ea?&)AyYu_ca}`baJGlqAImRo{pWd7!aKYuIl6*q&4-L1}jz7nH3}S_-WOoyW&& zGA#f7C6M4Yvy^?73J_N|q#VSV5^HzwYlhegE7GvOV~6d7WIU0oO(F44x~qCcGdGU6!$jyQx6-P6d~xL~YsY zGCnW?N{&i*0K*RVQ5Mzw+yW>(y!$Y$rJGZ3 zbc1`fMFzA_L-%-G>S+Q7au(?w)boEF2Uar4I*Tq9!bqHoHIj}E=^p>#AS^Cd=s~$# zW9GV!>VGSEd?B5!-?AVyO?}#GFD2prl3}W2n0L8u7byI|g8>|cXEOPSIRt5hKwEO= z_I21NxB|&5;3NhCP$|?82O7T%u52JhZwGB3R|epXqz#natfOZ_W>g0dQa&|C!Np*?azhF{9HQLe`RhospmEp`Yob%X)Sj}_>gf^MH zE9e?QZInC3V#PkP6qdDoXMH z2bq?A{E#QcGb^RWCz{B~X-hf^B>GEIaNBKONmI=aK_<~3LJ>*xcX-AtUL3#JUMhj& zp-a$BbmFXlpzBS`|HHfmvHtTOX#C5(DFEh8ZM2nsucAAp#>^14RX9}o+)LO;I`i^6S-v@Pmqxv~or{v>wPaXWA?eCa<|aDzXzPDs&jKWrEF&)t=l z$Sn&YmX6O73|=J$Ly)ztt|sxW%tDOj9)JCIgc4lpJOSD>67z4AJCrO%6_ZgOyQ|T) z3|)ZY%Rma+`GkGxM@W|5xRCeg;~xvu~7gi!RoHTn-j6lR+*0=i&;wtDcR(l&z{Rv%cN z$Ou0VKe`c-p`W?82Atd^2sf$50)}og#%)yISoLy$7?Eh!Qc&C&4!lfeCi`|pbkPUT0HsMO8cnVKlObTywqRYBWkT`n_+2}(g; zrHjbrLfQoX-Kr`id%8 zin-a+u*XiL6Qw!(2N;1283WaF1dLpoRI1grFKc-x6e!QZ!iWGn9f|`0oLaqSp<;q7 z1fc*58yD0(y2G`1e31sJ3DTk)1x){Ap(Y>x-}c9K*r&DkzdZJc&X>eZ7#LT7=GfO5 z3gX%dS@d1@e-eE(tqEVvoOLv#W87CDy7M*YeYdd@C!wCnR)M~7#PwR#Dw3ehPhaUz z5IH>~^Jc5#>4V$<5tou}IU3Y_R51vzzP+wVwahhp02wc7a~;%XjLWMETu z6A&9cKoAMmFKEWg^2MhUMYd8*D^+}vGNMC%{SKs+e^-6Taz_rpjtH@}ckuh4{QF!% zLZDvvFC-LL75!Hm37zA?ef;uY-JN+?^w9H1^@cxf;G@kuzyVEX3|NqeXLaOH3=jC1O5@2II(IQHfRp!I5IDMAqhw~v_HDk-c0bpj(u^Lfisk;!tY5uJ4$V6r3 z)`a16wI!7t%{THysoKgD$!NfyS1gHSr6sQX;OdizX2lI6Qo(#sCu!vgP%t4CKzzc2 z{SYBl2%vPL)J2ncBoHH%XMl7TG>5RYk#|<0Qy>vahAzB9Ybn=1fbl&Oz|}z4(JDK= zu6U6)%G?X9SL0q_oLvE?697aBszc$gGw8$=5D)QE%c10 ziakmdYlGbFV}9=fc>^E_d&3@pM{)xBy@acfdYx2Z(7epoJ^->9cIv`xkM(8;of91U za_NwL>Xr$12}r{ddltB@!GN19`^}rLV0`U5L|I@a6XJ&G zFC?v#X;%j100il|V8SL_&AS}v$X=)U%WcSTL8Ns~5VMN1LARsl2_tIntbvB#S@DI< zGl9e*<~#EH#HQ)B`d0&5OMFM+{~XgEQnJ3Ol#JM@ozRN4{}*NAqg{ai3@RJ@2-t33 zf(%!}-6(pfb`|xP=z;Zcfm<2qv?m>CkYD9vfY-qyA(%=_q57;GH3nAi;*?BLLKs~& z+%axP2BeBM1|7Pb`kb=~t-o%8KhTA;k9737b^1i*??p672y*HP1hM2tR##rY_se0z z()0S?r!{+l*a~GyfSL>1(;26vw;{w$?q^SE(U zBz00=eVtYy0Zrxwv3c>H6ao0LCsoGowFhPRhJ|qALsDaOrK3(%vUU_3!FJMZEkVDP8vj4LKfW8pLekd9E9yRqjW*1DK9(;p= zPO05sSG6GiroKu8lMnoO4gomB{GmLQCR?Oxf}vhM=ce9(9S6kKu)C17Rw$}Od4Tjz z6V&`G8k?5|2A85Z7Ofy4ThjdU0TIk&n&6uDi;G+efY>FKG)OZ#o<)$OfNQyGaVvQM zYsB-E(!T)w9Zg~oD0|&fD0PQzkndj$0^1N%sSuc^8}R&rlqW5!8AN7Cur9Fk;P=dI z!I4^S3Z31JKe7UPf%hAsAVF3j&;&B`M`IOw2f?;Ey|f}?e+?`N;2VH@m8 z&$|Z6b^o6vb%s4w34D&Cs43@IcNrm+ri&Cue5y>)N{h``;b;1Py{#%U%qSX@d}eDS zsh)x#!x#|k848TxpoSGmr&EjsEt&+cfDi=22%a8SWdXP4j{>I`Kw34OW{+`gwZlvc zJg1qrev{g$r8sli5eel&+ea$eYtkA?B!1%NRsOI}Jo*&98ur0i_Qm}o6^hoyaz&Tz zJ(7>o*qv-8c2ysfNaao-5QZQ@ZzuRU zsO0~GTRgKo17Nj`Lg%21cfMxRq0OtK+R>x#4&R{McZ6xQ)GATc}H6%hU z!dcK)z>$7Kb+P^7Oc`D=@$Buc z=Kpk6)p%tx2yr+CMWhvK&5ke=@$qqUwotj0YU>fDs`eUo81~rk_a&-wS%8cPv4&4`!f z{JR-64MTWY{wBp`HmrZ;l0fd+{EZ!V%=1p&Ra8@ip81jV>-(t**NM9f^E3~+aD@B9 zU~~BNkeqOH;VY=rB~#Vqa>?T1#B2dUrh?a;vc$19lz^5N03dL#6ey`seVt(1jMB6O zWlOiGhJ>n$7g_j+gW0EL+(o!`g~c45A0s53ILjaH9~An6@bPR{|Es!2RPb(%=-~;) zGv27?!lZXK%u{p{Ep?>uOBIq6eT9LP`R>wwm*4x=CP0(6m}bsB?GB~Qy1GFPihARC zkP|FQ%K88t9f0MQ2`&&M^M6^ytnv#6jf;|`4{*2|aVVEimo(`+dHw8vXa zb5dFHy`Rk&sf1IyOLP|fiPdVzV`G(gpaCPjh+b*4|MZ8)lyCKG(rz-5 zY3i>Q@D87r-p7USs@-)F^d@)IJ-Rw-6_gR8AC+dlb-mj(5WUIpWGw38)V*8wLa`5+ zwARgdS$Lc5+6NV2Qpn(!go&ndKa_D)&drPDAK6Z?ht2XqUHd>V z29;F>9eu+5*U(i97$1LM*5W;$KdcGLXv^A!>e7sIB!Zn81_Dv=r3@1rYh+5VT*+D5 z$%x&&me9%DiQEmM|N9XCEw%rp48pH~8)fRzB8eBA-t`St3%0+yEmi|gA{bXCfX_DR z;Dz@iTRMWUA`UHk%HcoFBdHF^cY(%*nTJC+&_2;1Dcjc2M7o{af%wwhOCmg=YBV<5>GS!j%kOEP|U zccklIe&Z^kZi@2Dsb{h@#?6f7BeN59`F338C_no(OD=tgbfqc$_Mh(pgd1P=`Q()% zd_VKejMuNl@R)BI1wT!1G7=WM2yU5TieB1ohMCeZi0@EKaVCQJ49bkNs*H5$P;mrf z#%1SuC|zn+rqMvYWximZP8Y~WVs7q$yFq{nkfy@MH`in^g!U9nSA`%z#u;Q|0=&aP zCad`~UxVqr*?Z@Ut9gZJ^(W2kZ9z4<8#g8%UoT3dd4i>$$)wVnCHuH`jZ8u}Cas^~ zC*QR$?zc65d68#u5--~c3cDB!H~?dul}Sz(xfKSeF3A@|ZgRsWb`R(o z+5fibKn8u1G0^)P2*pSYd{=frX7FYd?ntG3lEf>@H(`K$kx9& zkEy9}$FTXXI08{$#Mw-(2Z`LJwba#w)x zd#80|Wg*yzJvd{?yvuN)i`2s+Mh2KdquS$ReN}<2re?P;@~R{G*YXF1&%oL*!dY|S z8RM8;SySrX1kH02@1@kUuu!#Uokh#&g7v?o&4^TqM=EU8u>RsqPj8`U2Y?|v3|E&o zP?@0Ge|$2OYyqnVzMaT`_id1H-=d!yIvhgjn92%<8eN(z6OS04w2I8!i%H|izbV_F zJBT2jnLuLkFk0ekq77Qi+iZ@h7e*vr#uIx^VJvbQF1@Qmui*Y1`e^wdw{xkq%1&?a zq{7}{h9SDZghoFIJd4Lj|jeD+}p z=(*S&)Un}$F(R98^!g!O*>7syPtSbiHeTI(escPZ;qrX@u>+-S$kh|4iT|Z3_h*35 zkhw5csUx^}z_!_PjYP0TQ2kE+kw*6VO^WY1cP-rO2i|*)Vx!2mDaV8Jt$$gczaxoQ zlUM*5^_yq5uSxREhACsfduXUu9Ks)8OtHUHHZ!>QM($S;QuSH8r-?vxK=Bi%t1{6) z&bKtzCj1GBefn{60FI!^5eWT5>Ihw7{nf#H0&*#`(mQm+&F5+!YM`u_K z+j#Y6`-U%OHjzh4d(Mm#|K_N4l&i*D+H(A$aIF6L3MEGjxG{*cE=QTai}otghw1?M z%8#&ATTQ}+9bgMaf8De|i&mgDHD0=i%+%qJxr#d_1i|K0PQ8PKFhdZ!efhhcR=|B_ zHwtV!OrwAt^+<$0ql=g&?;Ukz|5{xNlc?)L9t4Y;)Guz(J6>^3ylPnfZcpuD_oG{u zZ>jg#^C&jMyN9M{^d5bG1;4yHDl69}UVTW&F`xXz*yP~!q$*>Gq%IPQ11S`Cn0JNs zS37BfQ^FhjOifx1+P|ULE$_XfVASUwo#~kigxr0S_~NtWs_f}A{0;Tw35-LI8LH8S zpwU5wV93uQ+T}af3_>#-G|52i_46%x!#v*i)$9CvBUDOhgviSuuHPmY!|pKT#_dr^ z#;io#j+UPJXqdC^-ta8^+{sMI^OMJ+d864mXU6Q`BP(n7mv_+0{ut>=lnKWXtoVn- z(7Coj8p>LS*gCHD=34ZBN|t%o{ybm~+z^ygD(C*YPs zm!sKtdH0>7B+R^tgk?|JahO{CLs&avm z9Q@Q-^`i}1njcfx{Ju!KC|L#g?rr74K7;m3CMc8!qP|3D>Zn@fS&KsPx923Q9j7X2 zAbaXH%<^pUL8@)LBC0Y!0;5ee7~XGCecZUVqfhYr;76^%!SwdHM3C~%c z1y{Bg{(#hYmN7dXRsM*2>*T_{$7dohOE}uMhgp2=^1}$X$nkC-c&x4lH=Sjv+j;*7*l$j5ieu8ivcZ}e$`ardy@@WF7Jy>&SADV+yxaye$0v zw-)BE1SLg{8*>ePq_}+4kFv@>l5FjFEVysGKXA6xH`+i`RhHY(kwb(dLC9gs+amVd3?EXq$g7hQ01-tv5mOsf=@*T z)f1$eQ(gQG?*qb**v3RE>Ac=BU{+;s&R5lPuPoi3=yb=NFtC)kMzbYou<=K4S6a}& zSkq`*uK&ta5J7_+AM{*pPyj*H;~QZE&vWjH(U{hkF{}IyK6IamF%}nA#E-|=-nM}I zD*TxOMX>?1zC~ASn-Zl zMo;!E6=|zt+dKc2y^nQqxT|teE57z3QhD03VQ{U%k7*eR>H1XLd6*P(o4e!lWu733 z+J1Z4n?j4~3u?-cTuz`?wbVooX%v(Xx(&!pkiL#b)^)mufU7X@eV`tF{Q6&h4K9c2 znFQ@9l$jtNw%T@W=c5NdBs63(=Z;|$>kYKLfYLd?R*hn49e1o8-6M8BC13hGbbJ~2 z?7mpAJKh%VDEv556W^#tfE@BHnLj(;551=*hHFEV9 z0biG14%(6c49lX*pJ7o&(O<-P#$TZab40-yTBr_|wNu=5Y50?9v>ltrC0nRsW)G&S zO&j&s2Vw6F9{AmaIBf-*mvP~hOCRn32^SZ8Ve!SH12|sFd$BDQA>fh4vdIlUNdvz0 zV}@a^q9ywJ_c!k|kpC(Um|Pg-nts~zn;CUh#uEsmY^5dU+(NX8zIf6~9|B{Vai-;5 zUR;XE0}Ic(en2{UD(e?xvax=6EYUR)|KBR#sG4rc4dJqet@*D%o(R9eF4`Ho+u;(D zE;4C(^Gh#ne=JN#w9oQ3@3$Rg%?Vcuhf%u8?@>R7kI6-STUZ}E4w3q*kcDwb&~kfe zD5Y~e2*YjM+gq)sSFbwd2|LpYAuFf=!;cb=_8Xz24OU8-m@W_ z!PebA-aSb&q+(u3g+rR}CB1wsb;-atnJu+?>h7~*%;SLw>QZ|yUcY13H1Ab%pPk=~ zNBDi*)|{&8px>OAQV>*OH3nzVTB`Kite|aw&LG?SafdCNzLoziQpNl48}wU?{QWCl z{-Q|tKe}n=c`04NT+f=zH98-n*IK&qkpF$S@a#!^M2*SED35fVM`TkZAzfkvS))d* z{WNULC_I1Zc!|{?hrRVC>PA0G{LZNS?7sfgkCaXS$PSMBh{LHP7P*tHaVZv4VpEX~ zBou#V!UeRl?0SLMS$cpC+KKEF@OgCHs|WXaIk|q=`pt`fkH(_XYCCs6gvaY!wUw8l zFP8YJGyTeyI=vEN_mwzTIUj~mH?=4}e3#Kl7jN@9ub!H_jF+UDadj7-2c1BrFw?mR zeq|9lz7LW`-lF(6;}uQw=eG$Gl~d=Q`GNU`8yRp#EO22?aL#-HOPq&JvMxy~qQEFa zJQraQ#A9;fU&|fttGJ=q(|-P4`}oX%nsa&oxOdNs+-tNjw9$u+CS<*|#f49Ab5}K! zdhZJqKl-0m0z<@*pPw_#i@q;~&+1{506<~{uKKJE?)`R}b(Xy8!h9jw_=?P^L6pgu zR+vkE{gz&@VK@z4_3Yyo%g4T(rf2s(MIoE6!Mlx>V{;-`HtWS9tC~EVt9_e6pW2}> zJR>1qn8EKAML9=p$T4AL+k$B+zrcS=Tf<+NO8e+E<3vg1YnZI%&X~>-WPFS4LjvvgX>WCZ<{xPgXpUcs_&{To>7(ZSrKSNDfXc|E}Eu?C(@N|z0 zKJ9UZ-7z|8tcrOl^|6vyyDmCr?44kQ%1kf(dmIC}h^6o(b2F(>68)6Sgl4lj!;a~A zUIsdKGk9WUr~Cgs8olZX8)OJW9`s=b@DpDgtRe?f2} z+~u$1=k$Tl4t+u8-{c&muppQkhv50rA9LT1O)A)HE`zSx9_l5q*r z<0>Du`!>RQJ!v70zUwY6);E*S`!V>j*VMs%N$>22zF4jdGbi2eYWy3D86&0H+*E26 zR~G)d$nBKc(C{s=C~6j{|K&edM0gg!NZbvaK+C+hXUm1~63_|GB_p_dx| zqdt{xOnC028MydIXMDi_9=9j}x&X?h%{MHmE*YX$W+Ms=(8?lLe?CgG)3AFb)y$>o z+H0xM$A^_Dw(*cw+|Ov_JiPr0%Q8B_iSHRR9NVho{tOizfxdGmgPXbkRvwhm zt7-7GqVIM;X~BAe#oF*|61Bq))QiH>30)bEr%zfCYQkr$m#5|)Uk5n`@CRZG;`Il= zstsJ8b2c9P2_&pbM#-2cDVtrX@;kgI=QzYuB!8Kha;v!ROQhep-FRO*OIVuCUkvp%+%ZeY+ zgH!Oo0b%7r%zxWmu4^4h={XH$^n<4f7W*>?O!Y6X%XxcW*Za9{x`8?=NiAU7gwfRVKl_38!2)VNiop+Uj&uJ)VSSHvf zxI`BKv%Q@+h8-}W+|k?kws>Vk<$JSHr!OBe_%6o^PaKPFfO-FDEW(PYst^A*AwVT# zn-5Tg($=SuYDs@y(f^W4S5|rPz_sri1|2pR;M+jx+ep2~VcCRXglG0YZR+j%d|@2A zqdwQ_t>|x!{g>VStDLjkgd~QXtv<0qqBg>a;CBZzyJT1?u@AL5Nl)%qoUD>K{P$R~ zXWcf`gYQL-;g@WRm0nOuPkHLQlu9xZ4YE6%%3k*!cWYjCdJ?$%yB&YQL{e8?UcPvl zG+>^+?4KU{ZAhN`qd#M6{kx!4wt(}1GbI&wc9d`KgRu`Q*Q6n*OkIsDrTanAhX$lx zD;uTG1{KsgF^lRbv#_!uV;5&l7N3E}yHgjhsVESV;oQ0NF27E%9Q3Y*R)1j)(nnLt z;H0gd?s_^)a#ks0IG;~K_txYn%_Dz@<+X^c;m@ykL|0&ff$NhjTj;=~y~r8Iv{iF` z*pVHY0nSlH!)YgHaM)_k^x)<7gx3cTGY&0l*3sb`4KGH2v8;1M3;Mp>`E;39GS)IZC*Dd8g-MPWk%`?`L72 z+e(}`>%fmOw2|~rZ3+i9t6)l zd$Ynlp<3wTHrELli{XQmWmQud=iQ*(HuBp!C(+eq!_>$bqb@a%;!DzXGatGqzWBGY zwv-mdwhSL$yc38(JKr;`&nsTY;F%&F z%9Y}j%-5369s0Y3=1T`oqoxYog!N-L%9vPG#g#)i&j&odQC-#Pb~!haYM~PPaTLR1 z{ipGHHiIeA9V?pI`9N4X6_@NUn)B0=4D#8Y-S(5B52gL<^a}F|Gj%WIf_;9{*iSHK z=uolb*2uJ={I+J`*dGwzkcbN|4M(-uk|Fno=XSXSGN{E=A~Ti!8!B&T?YD^Ep4{@L zI;Po=@{UJJT^|XOiE3H{vsJOadT^EPo65N8j6WrYi7Oe3QAOvmP-8E>iG!7xS zyGtN}#@($6!5e~e*SGh%cbqZqKmPP!t?oH%)~tH!eeL~dwu7&y=uaiAI7y}~qQk$o zp5ntzBN5L{*D24Qdtdrq0v{xsp5fZJu(OxQm&dD4pPnZ*AKT2Lzaww=9;o|k%&RZ@ zgC9wQ{#m?4wr=>~1V2^O;=|=tdgv+G4p=j>KPTXs-)lcE20y>jemUX@=p8|)>(8yX zPI@c585tu-mrv(!x%q(ncpUlC7yNv|Br)sGt5hp$q+EPli1iT=KFEj6`eI;$^A`VH z81NYac8Y9?HPYTbJ)%YnzFTQJHj45FCV@x==#=V zrCgm>Xq-fux>@YrS7x^DT@$E9Kpr}s>euiY%k}MYP8I%zYfaiB0{xLS6QF~{&bh_k z5CJe{P5<$lR&tr{z(czf0)5o|vYx^lChEl~_`I5!o0I(}Meo$zn-f9j$+waA$L-#hrqMO})&M2jbc?6lV88++Pj56`W_! zB8Q`6_YcLUIR>c$L(lQvKF+*efmhTcH`IyKyQ5Z*w-;n@{SY6uxD}@g~v>G_c|G^s=U3oTALC>~is1pbzY$a4r$gQ8+#~D0 zPtS~1W52LLxBJxg9&0{)CG@x){I=`|axhk^;&?fGx}YXfg}LSMU3SqQvN z%+>6h;qrH*@1xuZqB~C>Q#vxZPlI!TxHuGoKq3QO-P_`6ffeW#@LS<#Ji3=P&N#% zrNI0#9x|5-1>dOv<^##EM3YGrUdc`ohH=x#XDQ|=LRqk6X<1Or#zd1Lrh5S?DOZTr z!4#4&Iub)Y=(;__)l0Z-G%HkD64Ff?Zm&r9J&Ey%?`NrAu{Rexqdb|Tn6d1Oec)p; z8nXSM!_t4?VccOn`g2e<=<$?m%obMO4E&4TSB_ILC2#>pdGCl_=Tet6AvCpXVb#a zB;m27na=TEyA=3g7$3gXvH0q^^_yJ(@2a*8QlLB%{q>u%AkeU^i`;O7b2mE_9)6ic z(>UG@k#{iE@p$Oh596mhI%f86xD<%ja=lSisvPsXvKGBuTd=tcp`F%~XzalG7V1lL z)CM}9;+!0SJHdZ+M3`oNGcE~G&D@nODHJ;yi~S>L>q`cP`kG+HGXv7o!V~RXv=51Y zWW_F+_3Ib<8_Z}wSd`kN*ytELaJf|B=>vVdZq~E4VjfttI~{6dVf=K9!F-lNe8~&h zclm!73a_5sVbm6c#8AaT+`eyf6=|;FGm-SErKz@mTqUeEoQzD1O~Y@tlPZoOd1Zs| zMY9G0ve;IiFRM_jJgRNL4mNR4dqap6RrQF2$dH{y!29LaA21d&{7&}tJyOQ{mo(#Z zY+t0^f>U~ZLiWh9$`4+rlQrgPE6ok{~gzS5NPy6E8={b3-No@vSgwF)u) zS2&KdVsPX!ou=E-5_%?qhsz<(xwP-hCC3}_78hkdzx$JKMvQyDFhDHT){Nw;1Ny2R zGhSHMN~;RXxWiUo_OPoV1x$mx2;3Unc%V~U-`#_9vkFEs4AeP&rvm?7PaSz`f`P^W z01Z5J0adf$!vAhUseu^~unu`;*B>F%Lce8pSo`5j&~{i56D=`YjS=q@asLJVk5qT^ z{5+!M9DvM=ZU(fjTA2;gwU&ThQOazEXml+6op&D9jqqOL3$+@{6G^Gwkl)G+#A8H& zHUEhv{WlPkuAbu>Pf1i`KahgNo*NNhp`mQM;M9ovJ*zq_i2Er^ zDy#;Q_P<|Y2ZU(N;Z+BaZu1n23k_Opy<@Sdzy)+%J*xi`Ha`^oaAd^@<0H{aqj8>oUFy3$O+2l$cbF(zI~@e zH{V6Owyst-Zd&_Lj_B2`?_g7q=TS)2X};@xF;6B zB|pf7&j4^5Vvkpa9%Y%@pNeWb-KmcGzEA+mbMBQ2>h?} z|J89G}U#s6XJYykn?a>Kh40=NYPaBNdb zI!^js2guzXg3!$;V0%E*Po*&dB26V*+eOHMBB_&t0`jOKgb&0TfTyma-cO0s8c8;n z8eY$3o`vj9%2+GY!A@K`8klNOgTmr#&Wuo=tj$a89Y5_}jj3pljwDiYT{ZYN0gePf zM-Xs+5F>9T`FK=Tr!`{SB|2$E;_O%#0(AY4+;3}8&EBQvgaK{P8d7)ak2(MQ=xzVk zqhH69dgKSJhG~u40%#=+;K=aJjQ$`1V=&>mY(N?GQuk9oX;t5gi8_wDU5f&$=wXurASs1G?YCOEYB7w-Xt8RN*<$rSbf4- z2EQcb-Mz?6hApNx-g51629k;Xtk}e>*IX^V>Xt60ZQB=*aWyDMpK0!jOM}uVg%$;qe}AzI1dtXl>ZyP$S)Ca&*8?K-#16e7ol|{ zX*GX|Hy^kC^}n$K&#lm#vRjY#5a0-&-gRe;|AU}N@>~%-eW}puagt>LAVEOWe-ja3>xJU9uC3+-Gl7ZC?=By1jei&k(xQ^9wwYuGYlAA4a7|f%56*wl zSc}Qm<${fJx|{nlQDrQCZ+At=h_v>9Hqt-91zzfmWv@%v@~i(da*AB(UD__hdN4j^#+Mn9Uh71<*5MFfqw#$6oGsmx7a=*4RLG{GyUP zmY<>*Nlg-ES(bZ7ddVM_5MU1jS?SV$*+4;H9w`ItTHfn@*ne-=Ey6R4A$C!LDVDFT z2v~k(&CJ^neoxTLn>7Nwl`Fnz)nyAvpi4^76RKxcE5wRqp8CznfWpU3o1VX#(wjwH z&b4_7*E~LcQ#hg}PR+9r4Ii&6M=gKn8)O00hbr%lhyUfg&-mXKa^L*4x=OJElcbK-dwded|(|6gmf55+9+ zFpCK$%w5R8NM1#9GF(&4$J&t>-cX^Ly;S(N=l-uifKt;@!h0J-E4|OC4Lqs<@bMdVhR^E$8lFkM~@eppZsS=J1$<w6$?0+~TehIQI*aO=Ck78_47{vli1Q_7rG{q3$61WB-UMMZ>=-2O zG^`jhw!_@|Bq@;OhF_Ac33=s#Jc&8NMApx~&Dp`s_(qF*?TSePbraduB0634bDDi0Ra4+SmdA+z8W9Qi(17nvwy=}X{jc*7?XHxFPqMx5 zbs{2&C3zw8{!QeKi1A@+OtRX_d;M>Xq%3*SG(AF|B+!3Z2oe@Y{qAofXTdkniHU0? zCY!Dl7xScwc?CY`o1DaLw3`|MqFddkERH1QbqiTLa>H4V(eF4NSRR zNQO|xI!@}y4aez|ZsR3i37TaRzSlT<=~07Ey@Lay4A3cO0p{97g?9XbV?kZR?ZkC~ zGHcl4jYuAt+BR!=_$OZ2XjHzDbMR}s2uRj2_h?Me6|du+8)FP`^B$sCr>>zZZ-YiQ zqL~?uPgwZ|`)az50#$cMz;s2@X!1_%DrXR7N}6Rd4<`$yTW!GQO9U1tVNJ|GYDeG; zokyAk)tZ>r#A0mH#CG^y*vaxphmFSvA-U+ApDXO&6<2VAKyMc%>ILwxN>f}Zm`GF7 zm9YQ=s1k_|2Vxz;q7Cd;tzbHoZnylfNhB@Z$uEG-iJ0snojNdG*I&H9up((pXg zyvY37y+?N`@=OohO+48wH?Qj(ag9liY3@CZIRfLYuW~;A0L%qg_SwY%bE^NduqPB&Q_`eY!h*~|KX$+(S%lHI z*#at8-;#s6sV(g^p|yt)MhCp8C(qYHoeK0{XPnauIXMupdJ7VepT+Ck*Oh)zHWQ^9 zI`8nuS|)L{h%DKRL9a15IF(gVe@kW^K(J(cZxQ~Z_H}YgssJ+cE`W-;-nzZ$ZAO-D z-T;6&1EU}8CbB&2Eg0UJZLhdy^*Qx5ZB#Y2TUGuwS1oetfslrT!Y-k&N$<;Lgq=ak zAKx#WRB~ykefne&-0m)maWA;0_BDDu&q-zj@l9~8(HV-nqC{Ys&t*zpYh_N)fIH2w zE_Z~4NsKs=!Ep7g=6BR5vs`5;Fhvo~^##cAutcio1&zP&i}d^IliTgJapS4CQ5m*M z;>#{_0;8D8Snxa{0Ah+aZMwiV4AG+tFiqs;buDhj?sNaMN~w^6PA zH9miS>qg?PkPCghs@ln6VP;`4`D_DIFZ9?o>kY!WE5a$ZQRq;3@1-@b>8_{}kcSU% zBd^dfW{U_2x1>&KQG2ta3P_lE6V9xg$S~|N9&qmeM&&}`sv_8CEoukalfY3;686lK zi;@pa2HNH;WTx5z?=@j%+y*f5@D2b&1(DfUz+j4b*f>-}rdjNTJEf1W= zv>Aq)t;Bvb67R!KdrN5lmcxe=PSCf(YdGA;58K_7vwT4L3#i0A3wK>ld0(7qOAnXR z3icnKy@a@sDlxF05Z1(IJ(Ys#Vm8*Oky{zJJ(N%!WMh&XRx zYXrt)^EycUjc{K(WQ`R zBIHtP*XntkwSrbes@{|FU-LgE)6w;Fu|t3|0)5M8=ivwCz?3*s#;SWrQZR{ zLtsH(!fD@qR<(P?VLFdU+3Vu4C1r3Dhhr@5?CWw`9+x%}Z z*S0*_X<|hc=kJCl4EM0ax%bnO4UIgz8fFOhh9l^f<}2AZLy?ybk5GHtJo11EL$jLI z*NhC@bClezQ<@@!^M}~<{HL`6bLf6Sx%+&^&SvP`r3~ZJ*g6->tZgRwS`!(d5~fmm z=0b!l#ij=K>usJ4VTG>(_(WgXHymu0pvSR)SoEdXYjd1A;1YEP(4+MSz`1LuzLC$d zpZWH{tnasD5&!npbn&KyhCvVGz0=vWfdyf{I1zXhdr&yPWm~2K|J;-`1^iLE#VZ(* z7C3Eb(GrHV&2kGhCk}jU+Qf_Exwq(F?fL4o?(yD=yA00^WAWJ<@pw>5p%1ne$hP3a zuNYw~Jh9Fr+=gz0LLtDcXcbgQj^(I}XY{CuzY8#afq?T~kRaiJ7845$6*ZCsv7EAW zKvzlUBi138@Vuv6w`$jvp4nu)J0|CKr3lZ5Tg;kR%FxS<_$L1E%8CZ@M&lB38h-fozz+W<<5lxJQ)JhRck^8?e~~P832%6Vr*&x`?YF zcM5sWlm{JoT?<*B2`z>GQz`q)_e4!J&4}VQ!9f+9q%%qVzE7a0PpwGL#&=`0`;~YO zG=ND0Dc6d~z*(Npd)TFZ8btuU>BHNBiC~8arNp4*m*=UMf#By&i(T(TR&JOCI#|dh z1h{DW9KJlFB^LOiO})DpsNMao{a`i3?V?b&Us$IA>h$2DBD&jnetASM@Vh6M(7ZE$ zd3|>6-6!z^%HtrMLcV+S=*DWqKajwi?Rh|X2{PGxxw^84-~EHt4^S%?4Pmt?>~Z{* z_f2O|3b^Cxdd%H4q;8%5HVvyxzLA%Cym+^*)~oeijbWzI%pK zQ3S5xNdJI`fkAX}>T&Nn81|xoK~`K zF9rYbQeVNhb{M*#c`m=`GF@#d+%Igu_-q=m@sR?z{58YbWj;f-i}@8BEw%!N zY%+cr%`{TX9vc@UFg0soQ0uJV4rk}GrHYoaS zKlH3ucA}n=?@nc$dX+LSniW>6xD!DBN<~9OMs6VJ2ZbO_c&^4E2|;pE6a4cBmbSsb zSx&(xYZ6?P_#n9>I`eaLQ4&3q?l7;bZZ~=pl_sEfu+><8Zy9SrhQzjc5x!(6OzI?7 zJNUC{O?*N(JJCJ4^0vlU+T)}VH(ERHv7SKX+%(3@siW{ErdcF~@vnyj%s}NOk&u^FJ%= z6mJB3dw=w{v-9%0{5zCikz_NJ2cCRI6!zh#=;0d-OiVSUpKroY5M_(@^1y`9soEZN zwTYV$-sua`&BbGIhqbq-r@_C@V|{OFCNEm(OH%J+An|*O;i4$i3Cn~=(abMzYNu7Y)m(oC>2)T1#uzZsvpV=*H8#^IKI;}Ol&Cgg7e9g zCm+JSMz#}j=+a4->EjUnR`Ep8^M#EFOLqyczLfAP2CFZvSd!gSn}VKCo-F7NPC5#HS3o)DG% zy{JJ=sJy$j7ca0|5?0Y28p=t%rfH5-@&n!ZuMKa_FUv;^(^G_oOnyF$se8<^kKX@3G#>(!1&B= zZ3kb_*8_f9v~q{X~E(>F=`)TAhAcx`S;) z*;rs?AX&C}e|z}9)j2#27#;`BVbZa@Z4J3xc5iI7zx`aq`eVCq&A zj)39PE+~NRlWj;4p@jq(p&-(rP4nnaEyGb0@xs#y3i83H^eayDFT9ijs&m~pyoVsd{e&d`*9QNKS+rQr&CJMT`~2`2Mx5fo?}i6G ztJ8RdbtuAdi$7iTohj>&*nF^V*S4J>!nbOX#GxV+!ArP)QVtd4&>;lUg!^0KQJf@y z^Yu+S89IC)z20ZUgw@e>;B7MM?7Q0!h}}X6UVfP(B{WiQ9WE2ELxL=HZwnGi*3|Zk zFVzNFIK*fr3_@spKJ#gPXCJ&!l8o}p(b;anu;9+!qSGN+NdKG^*}FMB(2(+FC+X_F zKi_73ME(!-QG`IU{NYzBd|$(T-#eVQiiHePbn=bTVU%J+{g*>4JDkGGzAgT@^;r&i~~m8!vNKXdju%ghkP^hXxQNw59YAz z=*Pg%s`<&WVswT)-v7RI@V!e55f{D3o>@dR%o2EKfeNyiXd+ZG?Hhtf1Tu%apuvo> z2O6_2n33E`GW&OCdOqBhH9lfb?%EZyI8d%MP($^%HfT(y=*DK`g*eFAJ;W4a$j z1l7cDBEdrVG(seNPGe@sNIPU6Rk`1N%+R^;Xw{rXjR8Jo1~Zi&!%8}MXRxWmPA zgmm;mnqp>M`3prnnH}4dKGt>MT8Gpm^7QJ53Wpm92DX@wJCY_?j;qf~e40(6ITFnI zSHi4ibl1nz{W>zyW}k!!6>j1+=&}52vZ0Hjp=hb24ww)mQH!Za?2(p=rlgv26NQy}9HbSF! zaH-RkL@F;3#pIduEZ+({v6{x)WZEDf+ohHl1;uA@dYWn^iRN5uQqg_MVJW9E_W+{* zVWCmz?cC_NJ9(YYvf+AEu1}J&`yb>tv`g+#NX}67tv~u zl76cmRy*++%F^G;sTKW;%Q5(-k@Vzg&?ZD`;C_HhAEYzdHD4n_>W4_${npKL{&UyA zqw?EZ0E&1HGcYO#Q%D&)POmIS&}`F9d(-- z?VqS-MAOxu=<_C!JqXdkxW_05AgW14nc7;H6i);bT2B?i#FSYTAFz7k4`iLgqD9`B zF%d(ipa}n1 za3~|%wxJ!u&snmNMq74dH^TN>f)s6=qcR)DZ4PV}&Y^rqQ)q4wA$8>8^s;_Z=yT75 zs}!*ei^!o2=Ky!K1vl<6V?hvoYzTMUX#6qJ;zZVr;2KY64Dp z{gO<|rp^!Ki}jw$GP=+#6{mk3l)^P(lu>gnG*wd`(R;TDsIct^i^ z0ui8oBNfQY^Z`5**0e5(ivfC>6#WrnS85kQU zKdgb2V5<(a*j;SDE5Q8o}vrYA4a{lt$(e%VRTXv z;!{sJ-@tLL?xQ*C56Mjb(FZO?eth%td_zl;-${Ivo{az#(lW>BfJFsTYT}!`jcLKe zh0(RG>xDL`KR|+gXx?*uOB9_8YB`JY^P>oWXWE?fnh#q%w_{de7wfD@M?6gB+`KLp z`iXDR-HB_8cRCtXt#+%X`pV+;BgEO2iZZKqa3(O57l%jT#gg=Nzpa0Ni}|y)L;3;d zP}tpS-8dtu16xnsw55~p2pZM9qo(;#!-GPfqUO_z0#Hfs_bob_{$?48C?GW8s9!ExOWQFq}K_0gp0T zJ!b4oQBPa=lS>&LgBYUlsxmJxe2YPp0oe&wqp55uBZf(a{hqXZ=MSoPc1}ZlR_rT{ zwMT-0YJ?1~C)mlUjElTjO`cm+btoeI`r5WAT0!-IhLj-Pw{*4!se$Ee(uSR|#O{=4Us# ziBtL$pg25?H=OEDmY_p*l9eq?&yW4eaI)|^iW+Su$qM!d4SSeJ&ihuQjAxqYB16Nh zPyk9UhGS+mYkX@6OE3yqsKBvTpH}jB5bQ9injT%?32T>-IRsBBz9ZcR(X7Q;F|tvC zW0+&Nem@mq%(aj4xKQt^c9_*`Fgh43zN8_-PAWQrXb3vMb(3u9sf+O`eg}*R^DS0A zs+^x@66;R}pO%6+F=R`z52~=pgNT;C@q-VLl6>3qkN_$|l_ z4rTgMRWsoAU?ZEW49B(-uf zb!gzYQ`17mPG&e^&yo%HHTdfnbh2_xm}dn?V(4AMGB3O%Y>7$~FIMV`-TdK$w3q)P zB%=T5>4X5nLS{KBXx0{KD=EglMuRT>HjpZa6GHlCM2pt%_@@8 zv^!PEq+0}pu@jr@5W}tac|0D{x7Z`jEcJWw#74aulyhajxW#z#xdkQz7KW#Uxcr^|ou z+^&@a3|RbJM(O(9`GUHikgToqEX6lolOn+ZsetRvM##}b4YI8vfulFJz)J_o`{nft zHk^p?9wyw1$oj5-WTU*UC-(9JoivN-7_kX!ec#X$C)Ss-);@oB9}B=Aj_kt<4U-^ z>5>yYcdyv*yEjAX5KK7S-Z|cunWU8P2F^SwlSx?+iaR&%K@+3&rXd?dZ?v#s+UvvW zC%aY4qK0XG;_uSFwh%nxX$)UOyR07)#YGLxg^f0FB;}p`{ZEcgO5Vy0ek;e&RrAD| zFb^X#$3YDX9B!egI)TN|mOnuiG#j|o&Ea+Y{84G8M3Zd=vIouj9!)}45DTfiv=L;F zu=hQT2wLjuX|a&^9`TTgVLId2k+XgnU83*6y{wqKJ6004`j-nl&K8_mO?gExz@-Lr z4MQmO54!XqPw*9X(8I6B+x6NPtlr02e;>C>a$P-~x}bSBnD_|YH(57jFzU(-yv`w< z4tt$Q$0RH9QUsaGLXg(w`NRcVD>&Su_Z;zAVi7-f@prvvI5XUdA$4_5>K-kvg?TQ+ zpy=R$3FImfx!m~MwX_Mh8LpHvgApP2Z6HrHsx8Ml>Ev5a9O=t3=`C^h(cZEhna4Bf z^I2~%YN>n;Mif8EK4SOl zc||+7+vHVC|5JAUi9HEMzbB-}M18)i(zJ6xY#3n&1;+RJ<=KujVUmgA_*rb!<3S?t zhI%k(6zSdoK~|GjQbOen6ywt#7(jHHGaaRT^gILJs-H z7e0f84stnG)~-f?4X%?_UPc|)b7kL6iu;`Y>m3w$xsnLF?~&3Xf_&reFBn8*J#`vY z`O1)9UOVIc63Q=PHJ~y8#zPU%{ z9va`af7&g%G!NikL@-PvU#k@kDFjQzMK=6oJOgg0B!5N*4(hrLaq2Dx_l=tWpkSZ% zM(4hcTROgDP3G>}EJ!TGDQ?5hz~6lIvzC=GJOR|QBN-3zdE9oZDT($R4PJIHP>-Y*5p5K;IA zsZ?^x$X~K?`dT3hoy>;c$&U(Asp@F)&Io6sWAAr=B> zZ))Y2`PV!&P)aj)L?L5AjSd$WbBYPQD)Qu&a6lG5i^mW>!{)hKzda=Vc+MgtTsQPg zR9HcFI)EX`c)!e@x6oOF;DOl1!jTF<2ADG6ib`a-Gk`SZi3}m15$_iZVMcORDvzR0 z`zW#}E)1m0O8UevBU~@zI(+c^E%Pe(Gi`NmR3YuTwYTX=i%R3bVmo8uAc7n z%v{`K*Xp@AW$Zy2NxS7F6OtHWJ4Pc_A6wGU_M=+}cZZ@|TP917rbC;DetvZ9ex6Df z=bE;&!(9Q2Os)3S5V4|8|^a7pK_bs_$tz{Tj*iJrV6 zLCX@2X}MO4$tCCH97Tlta=M&~R`8f4Frfe5%KC}W*&Vx|s2pM;SX4_=wlEFSru ziimMT0{!<%uB+}8Nugr1y~__7TPO|Zx)lc3l;f8!Jp?#fOF@+s#*BFkaWoGdV>Kbp zB|`T$TFsq_uU+(|>K;OY8zZ?<0i3th#P;mx{nN=GWfT{&tlF>tqJ2lJE}cHVOc`%1Xv@XmS)o5={BW&8aD!s%Qo!{J&`SHoHw zVixtU9zIAXUE>-pdT=A5pOC6b?eS=SlTcBjyXgk30O5Wr4!xu3ZwVG_&6?x+zTnRc*i{=98(dtjtJ^$*ONjOAk1q zBM_Mlf-1+%@blBgsWaPuTrKmt^NqK4YnnR3rXLnDHh*t!u3a4BjP31>7ZDNBx439{ z6VNwZtXx=I&J(_PI_dnHIK6-Hgph(VXD{py!PA2o7q(bqmKN&x>C>OUH!Q-Wc)JiS zhke9OR)Vmf+98~%PNxS5Tq74gCYQcPYg4o8i)>NT?p>ELeuM~5Wwf0~GZG=xL8bPe z1K(wibg3{J{TeNA>>c6=2F2J?dRn@V;7JwK)V((kEA`tr*HDwWN7c3uszXQDoa|d( z#j{J8tF!wp^k`N1meBDE|3eeON@weCMA9s5FkXmRgg;ms`PVM=;~QpDXvPn>W--$K z5kS?;pHjcccmup~E?yl=t!%c1@3Y&VtJ8KW&G;#D=zA`PkQws&E+xcz7sY}HZ;8q{ ziMU*1o5}+2+7pYgZh-Uc1uTwjrac(1MNZvJ4}}h%$d>cplgT`6%yPV!i@^va2=KaNhHYMD(tvw*^)91h;H)e zG$qf~tL%{?nwi|3nFgS&PfpStPJOduDV~MS%nXDgqeChSW3kbS1gG*5)@LPS5dE&& zT)C0_K7Z!a)zzg5bFcg+FCOjTOBk9h&lk#X;qG&=1LZ0s7*yQ}FP2D{aTkt^cLN3F zgXl}*Z374qBv%$l7Fe|U8zDqoJ9bCM4LW2sp^CxxE{~_ztrtg!wY*S2k}0VdJPGkx zl#NA9o!>L_wib$cHzb^X&&ju|jZ-`M-W&bVjl#S6i8LyeHo}F&s%@4{uhgYV+DE1Y zeh;yu6&4!uY&RsoUHI%edTp|>;gFkA-^NdpX)-vVRzu(CBaj(1boqQ#>vJ<->LKXshMY<1}52-I3m8b>A%}l{LYu_8s3*hT8uI3$AMzuMcR4;SbP4DJrL%t%kbSq0&@-;oR$# z2QMEcmzWj>qLMZ!FD`D(g#>szQN8R)b}^`52|pgy#@EkF()>*BT8^p|B-{8?b@B7b z^NZ9FDJ70ohQ7qTi%KYqhqlpRA2-_YrIh~A0LARD`u**U-PHYhsr^5tpNA1qHh1E$+mt+ZotJdrXA-syRTK9qt4 zlTp*&MpSN((Gh>##Z^;WOzh-&$C^An z)It0Q+R_sNUsYsfXP4C>SKl1adgL@y=5U;No59LM@x*_4vfAp_`Gb&&7zg{-nAX8Y zxTu-aJTpr_D$c|U(ZN9uEKkkuBewEU{20r63AmjvdsV%gAG^`U8HAS z7q7U}xp4g<*O$J3<+q|l{mED=?CQZ&=D4a>uJXq(5Yy+)rQwu?L6?tY731oL^y;I1 zMqNh)a~rzJ9pn6K2fk_?%RTj;>zl$0+$(={^vvVFL@$`dUFM((wp<>m5S7{-PA=46 zPq%+BM4K;d9i6EcW8+q4>P#)W-`VfrL3_q|OZ?@jBXK6qWUk&ux?>$}?tNoNm5UN( z_^GngwYC)(=U*?;@5f6QB*~_x0)MI|bd*M;^G)N%D|=vhQp4bu;(<3vIr}D=C zn?nCPMPlgwvCc~a!DC56O-qE&dbScdVV5Y6%v^ia2@T%|P&*DLo&=K7nV)sTVyEd5FFENNI`0_v^!bRF9zy9u`(EJ~WmiMo|Qk#`+Bd#>fT2o z_ixw%soXhiR^&;1{$BKSrxaqYqeCam7t5}X2rEX1J)n6MC~b83?q=Sr>hd1uU_jeT z-c2e#up`4+KBJgPLC!+r#$Snu`wqUW*`nMk(@6>8oH(8A_TAlvNEL`w#HVoML0Q5) zP7nGx2bwT`@5aukBbu4h(2QnX4z()djl`Y&S)D7PCCpdh%7Fdi8*cF&kT1eygQLVw zYGUdwrCDRj1i$X1Wtoi7Cs`3@r?eZcj9Vx~@Q4li8#0-7d70|7OY)>IMRZ} za|m1yFkoxHw;xqeJ-}crAAkP|8bSjDgW<`1aa+9j`v)^QT{-3%U6-PUE;Pw?N%uaG z6y!<={6!>=Ta8MGG&EoS?t`ou4J$a-jWO)A4hl>Hl#>|^c9Z7Xcgh;SQs^4CrJojz zSG)gWFKDeB$NUl}75VzUK;e)%lI^c5A1Xu|b1Rt$=z{|G!2x@u#$N12PdW%43eqGp zq?Amtj}jmdOMB@mzHD5UHaqS?8o4Bk8*6!~giP<(Tyz#vZ;CDw(#BF!HqE~{f1?$MUP!^T#Sl|{tF z!m`za#>L0m>S0fekAL7{pj+5GH#arqAmU3OBV*jbO_f)<^oeA2Pn2+b{u(DDP7pn< z88TL{N1Tt>gA36sU?GBvgHs8&FrMV2T~+9vz@#XooAPIXYtQ6cCK*~-zok4q(xegt ze?3N`u8hl=qF1`O*2zYqWT)3pC3^>o;n1`wUMwydSEHfDD6Dbi)h(bc?-DrUip0k4 zkd1LTgT|q@vQ+wCBz;Q;xGao#C2{jM*G0v)&)@PlhK1I*|Lr~+`Nc(C%GX#I8rjVC zyJNYG&m{6l|h)8nUZh(uKyS;4|c$9jX$x7iHTvW2>?0{B^QYK zmU#&I;i8cQ31DebbPt_N1Tz#*+>zJJVf@kdxU1G8u}YJ}qDQ*D60vu8_e0mZIkfJ$ z9ZNUBcRI>Wv89teQ1JRe3Q>}kRpn;IIqY&~MwgsNf5vbXm6a4RZ-_i?2=VJuBqOen zdrPXCxv_%k!{LV^-@myDdEjZk0&baFtgz$Q-?uxo7M2(H*G3afK^oCbzg%w?B;nZO z=-?VQL_Z60w0LS)pK>;ADk2?bR1d%IuTMb%=WCtW&8~caGI-Ly2BjBm#P?$+w2X3= zAMguCArx-k5bpb7w4am}U1%CX8)NMw;hth6^eO7Y+j;R~CW?xsf4T3NyLTm`r9xjS z8X6jmqj8kv8C21dBoflO^`cmjOk~raKWYhC7Zuy;31H-zfj}RM zVIw0WV?QTz81vF-&^(ab!-5E_4XG3lT_?BAFpogHiDmIAz^SJWU+qg^%*!wdJaR3{5sG#(3mbVNTbN>2XCY#TUqwbCG2(PsOoqP;4vVr zkFHG$p)|Fes(+I%(EHcnW9(i&nPT8^$f-jJkDV!9M+rs753LVdCaIAFB94Do3Z<<| zwHbq;KFFolF<-Kxg0<_Qj`1a z!9T7x@xe+pHWpB@3$yk!n(OOBC@U*Fzm%9-AWw{`V_eP!br|LUj0Vr#hD`Q@B0PLu zC*K;YkSbcCjIHrRI-Zsb7JXaW856}L-7R%4$W%Dqz1Vv$Jb-X$SYhgA5A*~AmFxhF zZz{T8Pt5-tR5r07!gB)IKRzb%Ki2bdX?I!82#Ms)ei?OB1?JAtxYcO#(qLq93^1x+ zia?YJ+@+3_36PK}M;lVai4$h${sTb?ZN_f%@96ySr!0_4&rOFs{7?aO-kHFWYUtMg z!e7I*DWeX?a^5Fl5EQ}f&$3PpWU#nVYblFjE-{}7OEzSsH|~k@6WjI}gWN4toBl&w z9~)CagFOeywo#=f#Joeg*KcZW`iTgxiAFSw0JA~jt#m~Wt#nmrUB=@j2q0kBvU~rv zIb!aDB;;0B+?yhwHdfUCedDEB8%&ujyltZY@5c{#VYU{F^Dja$!`$H4M1eWAPQSK^ zii{2*NH-hAb>(gdmvFN$l(f$2fUbZ-N(4;anLqJKJ>P=MxZZgs%IeyRNBMt;x=rAC zMfVQuEOQ1;fBfU2_Qc)YLKHidpdN5we~Y=tjJw19{3ixh zk^J`0-12gy_zaAt7!Sh~w`ESHaumCa8j z6B84of=#WD1ee8!EHeBYxSTL=f{|NA_VO+f_)+YzHwg%!?7Vh#xUkZ{NMfqA*$HXr z8!71$(NAK~qPgeWt#&rNfsNc ztEsJ4`Xle9A;A?a##e$=^J4@l_$s2A;*nd}r1}-nU``z=NN}*z;wuelcFv!2ygwqc zVY+?&r9~aTBf@;Uut&EjQm50Tk5r2%&ziFjQ&6vtj<^;YGJC?``!$@X0>-Cf-831`cFplgdPPzbHj1~yTG$At{1<`e z0UlhE;(gUn^40X+ff$;bU3Tc~7VSwgc5%~hS`F?hX%#8zi{k~Dva*=5K`43KpP7H! z;;u@@An^sP9e-w;>loWvI`n9MLCuYm6`Hgs$GOFKDQLsfL-3ERZRB-W_fLnw&k^sS zsZSC9cj-M>C#CuzDH7f$!BBRXUTS^lm{xUql8<=h+aRT)Og6&fLqMITg?D?h(r=+p zWkk8Jl;_;^H9rMyAz%P8k^v5WDgJe-3dA@ZysP3L-w8j=)u;OZMEmz!5@r{id9=DhfbCNs z!gi?dZ4bdqtVhk1&^6 zJ05z*u^Uelo#apb4G()sL9J{Cwh|I1d1P{jp?;EJ<-0b&Khq;ff##uDhl0+QM=(U+ z-1K)V9Rx2yxA^1Al$O1-uMkXcfHaKk4!2jC)dt;=M~vj}*$k`B_ZU) zQDQuB4}$)#G-%)+F_wCY>=82LM~Gz+Lt8Mi6;nwO^Lv{yV8tT#3H$wC5(Rxty@>hC z(lf>;wDpa;%p#|Qqg^jVq3@Dq-Wm=XphRpeD)?3V5xl&AAMva>+c;p=`GM*L?Rz_< z?o4Na^><Mj%9W(FQy7Bux|G> zw3{^TLw_aI9-1$W%0D>5C;FQV^DJrV!9I@&0h7RiyZLSde}0$F#XzgQeTvaaU;#L55R zB#CVOiaGPp1{~qJmhSwb75XG@`?a?7-Ksb#r-6I8%6eYo3zz)fHBHz-M^b~ zW2)537EFOPf5X`u^ZXXvrKe9Hc{@_=7OE-dMXhPg?pM0_ZfjiS_GS3$eSBG?&r(XH`T@QjRN=gI$`inID^ZA(M~XLOd%9 zxn%KHKY+|=)1h5y^X(P0^XN0CYnvGGJj6o33^~T8XeiVDxDD~aevJ&v5WY8hbKxTC zr;>pz*0EFe+vZB=WiN;cIy2ApzcoxjA@XQUfO-hfaWR+@(`oG0@*uSmPXY7^L58TV zCq9|thE?7S_ZVxmJ1E8rbE{T!gw+bAgM~nU`DXKJPP&Iv;F!SuS3!~JujjWjW!cs% zbRp4eoh@XnK?3{^rH3_&jY1UPB$;LJ}v^s4_1Hk~U}saqGRD*;Otk`x9?(yN7R)c%ZEl0o{XVC|*81{q8SF z#DZ^(Y(WD0`5(^vYqHk+_B}=9_uEa@A+AwltUM)P0`Dhpt@-`$)Wm{tx* zrk2%Jh}SDO&7bmz+v6}t5NhztmSZwA-W-QiuEmQWaJNpr;ebL<*9u82|GXpg{oJ7n{K0y=h zWjMQj&{H`ng(~u4UxyPE>R{<@0Tb`79dgxgJ5lRf9-N~&@5rVX!#shyfdZ`~{4~P^ zWfxcDn(m1yOywKHZUJV}I0hHKRS$$4myIE|wxmT7&e8b_ByK!cU`=>bOp=&xQ+0%f z2k3kMz!*7t5&@s~Y)pA0s~S}prTY+3o9|4|14c+hf0svW+a<6u`o&CPUXA$zd?^ZnYsdH~Qp6>HM3?QM_3I0OSWBkFMVXekp)KCVi#BNQ9=*5-_eH`iFRa9c}tJX2OADRDZY7@&EM zm=Pq`gJPY`0zck;SV%(XZpGN~BI5hLs*E5hC1nQW4G_xaGe;)?_<%V&)WHZV#@>B9 zm$xiUuBrXA$I0vSAnMT;w&eA^!?^4SP4LOjBwi_?(ZFi#<}Ab55%gFJAo{=%!?(4C zceaVn3Xvv}>6(tOKG5|GEGw?8CfdSANufl)I?k-U(xh7%SYd#4V54@%KtfE=m8o4I z5r}X}3J9mXhBOk0ZH2Gx3!6AzJ_}lHZJhF}s1=Y8LFXpgLUqkH0gj)|OI$Hq$TuM=em?mNvHM=dRT98j3inFQv{# zC=Ur}#Hh%xx4EZNzpdA0M~!KnA~iC5IpC`HQbkRV*~`ofv0|iUD62pPbEU}6KFZlv z^+?GF<#wJsAY*_q+gN%5sq)0}@Jg^l%RH#PVJ>e|AA!hh9)!oT)gR|9yHG)`R!P$0LM2 z0pWK~>q3>y9~o=X5QEi(-;@Lu1r1SwrnzbZzvIP)V1dV}UbpmnyLFKREJx=ym`4i` zd(-I?kp9Wt|447HLGls;3`7eWuAxBctycDE>H72lT32f@K7w#TovlbfAjHL4P zh|2nCYK{j3s1J3c;@$3sggS~Bt(FVHfM{ugrPe4$D=1=`BH&C+luWG1L8XeOM`l52 zTePN^(%B}6e*!}o1%^xms~J}KAo5@S7x*(J~X7(8!w!Fx=UgQ|Ygw6v2Bf@Kmp$^+WSjeNX zyeu7PlY$J(`Kg8mZKidg3*`~N5=$Qx*<8ltO|vo0%r?WZ_Jxk9S<#_?(Ksg44kQ1) zObxc&5eg0=U#$i$pZRvrX8pt0ro{QxJ80puAA}}8?uS=a~aH<>TciY+d zfN~2il;-_rgaJJum#3_2K%p%nGdBzWyD$w_e*EVT5A@Hpjy1uuOSLkCWSMpU>TAOq z-h*!VQqkK8In%W6OFONnw5r?UHo*-|pl;daaZW8@eOK{B|*7 zB@ko{uTOWwVEPlQkR3rf%PS~rZz)u5-Vm97Kzg)TPlA3!^Cv6`z1A_8A@7kW)%}u# zaI9%#Jrk#%H~d6A03%S-aIrJ=FX3jUOR?b$J{jqJM)!XdRleQ*cc8P zAj_~O+vK9~Q)5Z~ulB#{RFq-ul2F;(bmQp}!y`h>U(Z7p>=q@9arZC2GC^6f5{dE9 z4tm-q4a-|59_+QhR~VJ0L%w2pJ1~T`6f@SSzn(q|9zM)+e})j|^=Q=jCGD_5K(-|( zM?6)JhnId|cP*tJNLRm>pnidfd66wxpGH3!w0cpH@&w>bJWgQU?W0GFq-!VLOu3l| z8T|coBl`IHLh=%^bKZy2haH*xD+ZJz8vR?YoLviz6vW)8PEGA7t~r{@mZrqQ#-zI>6!CsBTX%O|QvIX6FR@u>kKAVFK^Po+ zST=Z`0*S4zm@;-w4CnwK;E(;_eFcb^5j4%Lrtpwp$6sS_g~NuQV&v&&;Xm7ISI;@# zaEiO#x=3;e@NQk1c}9|W7uR)SgXE4agYr5hTH{oa2N1svRUP-axl*;duy)UVWW_x( zi1B{V+H5vvE_Q64{6K^1np5b%LwaCn4H=OA!j60ecly|eBBRfX0^%UgNJb0@wxNyJ z33h)!7Vtl)gjPYRLvt?Z(|;f%?#}!3tzqSfzgn9zno05|@x^@A=k)nvFhB6K_n*8g zgi*RbKCW7z@q)`i2VT17R{x&98Kl+wzDumtYZEbI6&alnxvg^*=E zE^qynp}wBG*5Q&Il7ej+xf&~X{Fw*MpP_l(DcQy`|8t>Zlyf0Z|Bc4LSqjEL6257W z@Cs5E1~kU7?T|9~N8AykM=z1B*sO>L2bvHz^fVa@_D`i=2z+nmoyT+9^T!$K3UuD| z0v8HVgSkT)Q zM~fX4XmfmG-Y%p6Q8Ku=oiE>B>g(SuP$7xd5>Y{0GReb{#qIE{2&_mxTPnovr8SwR z4QXEVxgwM^wzAVVXARctOoGt7zSH~1skUGI*QMtOLZp>0q|})Yidy!p38mlnN$WCa zCY@x%ETAjoG}$qL<_cK|_md#Ciw#%`tx`9J=mT6~6DL*;JF7fhSZ@^!a4qqalG4$| zY>5fJ#EY!|87ft~P0&ErF78)(-rJ*I;olze&7+e^N1FWdu^?M*f@ymZhf9&dn- zFveUdHdpU0%8hXcv`9o7dCOW;#91sOG@s|vP)1Cn&jhujB2q+!kHr%*jrHb#+h9W< z949}YqGzSE*1GS!WgCN&Nj;jpa^2Z@2g+hsAchR)G&OKwrv* zwYhtHU6#wN8UL-oTK{38OHX~eW#vb()Egc^0c)b^Ghe7~4DOdY+_LeZ#*>D0h{s*7QEF#6+aP?1 z8ZDuuBRZA023M|4LbI3J(H$CCYTf{BJV${q@@cCN-d`K<*z=Tipi))AOsY?lV)az3oRBOi08P+9wKnq{rb#ESht>?_-vu0+}xjto2Ou;01FGq zQPQXT`+GJnE(Le@bNN4JW@bFdK32%%n0ZVh#%=_zvFdW0Rg7PT1TL6&3jfA7$CIDs z%E3WsSF9%tlY=U>842(@K!~3l(cI1l&^CXSM?|v|EH5b8T$`Cct+ykqgyr>#C$i!0 zw0pYC?5X*KpPhR|zwP^ATWLL^I0#SBkKDU9?>}?Yo0<;@C9G}6k89zVUwdvxvI!s* z0;47o;M-IsV=%?sGofBqRM{(b;HDlIO-w=GzUb@DY1_GPQ8?Q@8=D@9@TJupR9oEb zbEl0biHyf=ctuz#t&?0s2dcedWveC=S035Y5q)+c!};SuhWl_L)i+I>ZCZF zbLm0HhI(Q^n~ZvfS&?xh`;j0On?|*qnw*?lrQZn}<^z7?)%ga{-*CnF7 z>^<6Kz;@wE$0F=Fn<9b1)8kr9i3Sp{Ca(SbCl{dDRH7 zQJ+cY)SFE_ih({Q-;Q}U=P1@Q^Pz6O1Bs@`@#}vT76&Kzs8aMC-ThS^R-CyjoAfy; z**TeeHk;InB8Ph`z)LM@C}zYA%TO!sz+dZ_5rcUqQ%Im?hwFSiyonJl!~geS}2nS%^tn`_!0yRMa3xyifpER~qKNq!?_ zZmO4d7_;{zE=qY84s>XN_W^g@Jk+BOs^+9545ldO=K#62FSwRho{q0R5^?!AycJ`k zSi~)1U*T?-5d)CPsow$`I|nqFd}Z8Z^R~;R)7hPoD@4ilHC$RrV zitpm{stt^kWXIV2&T=w%;M{o1WKEqIWiiLxUSA42_#c%qa$~^s7kCstHx~{UVKRW_ z$c_oqXkbGfI7a2cA+D)qY7tAjl6=CV36(LczviQR5X42;=>|Rvpt8BrpmmHtYPyOa zRL3yr28v6)v2w1g(s?#EiJnLOE`bPYzqP!_4OOrO6&nM(mk&ksQ$*iij1UKxgZv!n zz@6o<)QKpeQ-eIu3dqR$_U#{HA06*2KU!{rqU?v?1v+pPdmO%-RE0=J-W0PbMnT301SH(N9{hBNIf)~7U$y$L#j=^pU)9! zB<)Ar!UcXvMYRrwaJ_4c`K&K&gif^(97lH3@tZmTH|z820De#@9n*@<&?uX{#;Si_ zBcRskDYx~FA;;4#T|fBwmRR`K62BMb$|Lg~E@QCTvSCt~w0iO)sde zQtq*%-((csaf`8xCuK`ck!je@K`|u<3`dwQa#?3)*K}66Vss39c{0@9%B`Xmu|e|w zqJKR8B6|?DDykwHb8NPKi@(tRTAA2D?C;J|9L(VI9s!;mG79FYjsaP$#`g083bK9% z6XGw%85lbarF8JHQAbT94lZoAoXq>+&3AuN5C)F@1Kvr5kE|K^^94 zPdOM;91;h}L*Dd2F>m3TqTza>UpVE<<#Ql3Dn{YQTLUqy zqrz`!&X)$;$tRP@oNbA2@;2>{7uwA+S?hWZG#5II8$K5(yB&=b!XUAC8WGkguswCY z2LSKy{1E@%$Tx&zN^-`seOn_B!$Cn7tBgq|OM*FvF6$gGoZq?Rd820A!+^X8q=tOv_4HRvNsrM)TrN z23crNxp5G^{7|9huXuA|J@~ZDJ)ouxZK;%x+XQQFx{co!B8$tmh{S8se39W}W>&a? z%LfJq&MzzkJ6_aDMLgzZVq~ z>zSS=l9iQ>O-}BV?ubGb<5rZ(f{Q``RZGd~;yI_8H*6c`_G3L5NVg&;z zDvk+eMQil_j_5j-4gKnK$d!**Q3Q_(Hq@OCT2sPzN?H76&T5?QIg%{&g?csk(7XNm zK4%aifc>ImqSx~&DClAoW^5w$v~K#iGrfX`4BvCz+A)77ofx8h4nmxe6rdULYA49h zM_!OOxJ5L*NQDU$%BxD!W?i7s71(JCOMqwVKPt>u4{mm~gR>0376v<_NiDh}=OzjZ z-u}8IOR^<`O!pQ_Kd=BW!RdLR5vZfcc0dYkkD~IVT>zdVOYvU=8+?P)e&5eejR}*p zUNgnU@hWdFC1xUazWqyY* z&y-!(4j&&BU7?0QkQ17XVMla*EAerNPiC$xVmjV+M>XbFh4&VogT^z(*XiW@#u zgk0?Dul1VbnrzRM)61<9?23=mqgJgYUom!H@y&)vP=$t`SdYFOa%R_!BkQ{gTev~c zNZ1Q%4R2AOAA9J|AMBo^_OaA04}Ej5_Yh~P($*UXBCn?nP$2@U8-Z^&om6a?Itl-` zpzHllK~Dtp@M=2!DK;k-qV6oca97zw&^$SRyjVBE+$qj|Xvs~G7o!v1OV!NJ*exNr zntXJ`{iQ?T?H6#SP{8<<^llr@se3OGG47bl_wHlZ_r4N0{bx~XatQk2Gp7Es-tZXb zzy1U=8xWzkwsve>T#NLlaoN0Hv6hz7RLysqU`?jIhAzRfsP!!Q>yQ12#$KLr2t47S zmKO7a%mFRtfIl&d>GQZ<+!~b7(}v=fa%_sP|6sJ1PySp6wpZN{semqjieX0zm7CfS z!|b?>x?9L}T|!$@6#KiPWb zUv9J6eC%^zZ}XgfT>G|&LY>GbG6n`qbyXEkOR}6!{v+G{KT|7d=_diI;yKJOA)Zu4 z>@-3kH_10aS1ZSpswzW2{O+*8z6PPyqq2kvcx_!L_I)N}in3~S5!-cj=jVOLDnzb9`ej9yAczI5&@O*5}qhOzOM&=imUnn-ZnSoV*u!pf+zZ8`g z;~*dHI%U%gs{2Sd8V}HlmDP^F|2R;(spl_n;u>yB1zn5(Zag>Ok0<7c*K%E-LZdox z4Zv;giAHbf7S(`=H2nU>0~-aizcM$@XvX#at3Ytl&z_(2jDol+LyLA=!Kj#<#RNw| zh-7*4_-borkbQm{Z|o^~e1g}FPxz7M$x82EiL=%=8k@h1-yD6rki_QPQo@DzwTJ-2 z!*=f5w7x;%PkCjKa}>WCYuoOsiUPCv?cdI=RK4i83xUvYCfsaY008a))ZnkBXOa}| z!lm{9xvC`;{fWU+uf^!S==UvN@PQNCH4kpdrHseeG0_#qg>9;|vT-!A9q<9|M-y=m zFlf1~o~z7cR|>?tjXx1<41Ws{kc?QfNpD#Ak1yUs)?M1r2CEgn0a;`}qD ziY_mbm@vU`GmH4|k-cYPaL;DCXHhwF$e{nvtfbf!RwOZkp%!DxaTd8&3|P>1p3>O2 zWt6t}X9e*hkqMh%$J;D=S4GdIL~>=OhKiziLZ7M;^B=8{ zchzvWxAy=tv)cp{)~=J9E8p@zLTgWYvZA~PRq8*Am@cWGi=-X=)igdHw%W^K&z z2nD^OVJABySvGi1@1K;S3zQ>Mgo_`&@B?MZ&coo%J|T3ND+MihuwYc%N=*r*(BGlT zkbwyT$47IOn>)fd*=Q9^VTDH)CWZS$hBr{vMoptG;;Aw)&j2tETky2L8ov+n47XWC zCya3>==2AyH_)-msWkZpa@L87eng;zO!;|SwqwfZXZH}7*H#RMsK~HFx51iD3`k;o z3hEY3F*z>8VBE!$E_#{^O9Rbb0%Edw0F{Y7~RSzj_u zteSP(nd067)RecF)RacaI?6xlYSy%N0?z>D@0H=*ThGp8|aYR?{Z7S}h& z|Cu(+48^S=y0;}eI_5L%>Gw=^-_4z~DkAK^^FVy_l!F8%0ZXw1)Aj7*5| z6PF1}fG*utr_LvFK}<jRHw<`j)Y7md3M2pcJK-5p- zUCFDVXm-Y51;4v|#Tm@_cZ4;{<6C82EChI%KtcZ*ed)=7!xjNtuo)S9Rhq;Enem<; zr03`7H+Q9zmT;?Vk*3Eb-B&t6LDcQeDSR?7pc&R9rO^ z9OUg~5y@A*&A|?&ivr18no(pY!b(<=Wi(uM@^;nyQzp-GmjeR$`1tfx3l)vLu5D|& zS1AbHLP^l+B}a@^MT9~X>H@{4nHLdy)~@X2!8n(biiXEAp8t2Dh{4qeSE>$g!7dFX zbivIizsQ>DJHFCzVY+H4rd)qF&FGVqxI7m=7faJ=Z<*?|9~ z7@$$yTIQAml!(KMpcoIHPt*WSmy6u`_3Kyls{lE`-fUQrk(?Q79N!*2^kZ?|B6 zp9jLLV#5uL4tE?oW?`<`mtBZ+SQjBpaH9i&{2cWAe}rH2#D`-4pw{DIkt~ zGHXJXWhtz~OnA^11$r{YBt=XZW2qWq{zF;G?lN~cKstI%YSARokN5SV#Ng2l6aglN z&AwN#gM%I@^i2G7SP=n`pJVZ@UjIxAo0?`XR!N8JUI4_~n@NOZxY2kr>@;N~)1?wyLFP6Zqz zqrJ~pIEeWQ_oeFA^* zvLz838yW^5);H8g$9-e3@@iz%y$<~=wRT#2y2rNy@3QQ;T(gj0ymqa9&EG`gFxb_d z7Pmax7Q&d`KVHb#y{p(q{zzDmL&qO0oY~glDxaB|SuZv#(=;dafaosYv-#Lz=m2&|aBLD;2_v^;5K z&f;1s5Ejr^B-oFCxoR9SwsdPTce0Z$>C5mewf5?-V1L>68>=Hhx1e4$Cxa&1L$aTJ z7fgE_v^q(%=Lj7?!~Q7}J7pe6B*$~|tT4*x+kiWR{+B*9GsE3}9|zV9Ie88I9ZaGV z?=})>)*YtR2+$ZYBOXj=AUejC6rL<%ohM3QVgnOW}Xt z1qWfDeCHaNg3ffddBdt1w*Cy{`z81J$TAKcfnLGbjF;0&FCXMWhwOhQ5$RT)u#74r<)BA3!N= z?~-{A5(n;oykH6khQ2CfdO;@}v-?ZyQ8odehWFQhhA}hoCMI_nh&y}p4M>UE?hh=bB`em z<2(pEvIc9lUK5wFEz%CZeQPjU$~^trN$ewfQ=XF7nm_EJMj9+sfB8?yXADDGRT&RH zQbR8;K#>(cSloqk$Stp^#HafqVj;2%`Ps}HH&iNy)3&PY;}a*D|RIpp*2PuQ1-Iu|(Qk$DYLuYf;{j{2DQ zH~Yq!-iLwWeeqgHxE%GYL`pLiPJMG+6|({nt=;m*msKfJIm_zGiNyO=#QaXrH?)vx z>3c>Oh)=3V!2#>o}DJF>zb!B zCwHr|h>ns1GO-6Myi6G{n!6U`Cx3+Jmm9A4q&y+pYR{7j zmU~sf75NPEf=u#w;+H23pQVJM=|KF$Hs3TWhv1v__&JxnUrR}DP5H51_8ft}qTL>E z-^M$ciI62ZsVO=rbY+`mv^Q+;Ev-K&c*|W2f5ju!&_kKqx))8n-0FQYv6}Z4?YEf% zetImYrug}4g6o#nTbJgvIgADL{nMEu{t?s%vuDwemvOT^w~kmxkj{p$6jhQu(_J~; z(Sz-5{E|DF<<(ygCtaNwH3PPB)Cxw%Rs$a*{z>V7Kj(tnZ_ea`M4SbL@Ac`M?qgQc zRSg3v-v?`LPLu6f?-6{cba0e6R;0;^NtTtDN7byuHtU~wT%)q}@R#%aa%zA@Fm#5=1c6=l+RTt6$sxc)Fs+@^KydwbE-vLi86PQ z4Mj>$9qgNdt2Mg|Dpj|v4a2HFj=YSKP)=J2MErL-IZBIx)%7Q}0klkmUju~WWUiZ& z-K%DTJEj9RcFuV!4zk{O;saXw+Tsq%A|?F+-tWo_78L9%k*(qc=P z`1?)~B~%~Wbe9mv7l%daPssBo`bwJZoM_&+jV!7JqAmM|fKvza`4JFau2dCdb-x&= ztSi_{F0r+>akgPw%L}1I#jqm;t6v~Ix-+_zd1#B4Nr)Rtc7Q{;@D)vkR6s__M7eer zzoUspcHjiTc$8MV=$0fl-aHq?5f z^AzE#(V^#Aote;zi6Ha@L$7)&Y*zuiY7&uYeDlt%1XZKN!l#&3rlP4i=t&fIVWEQJ z#q$YjRq|T3$Rq;;kchE{dw!C6FP$Y4u9jQx@|JEt*X6ULYwzD#?!T_rL8XMXdKR++4-Im%gS*vjPUKFU)FqcBtbCXob5d$DB zojJ#mGtoRlcSRM58v2qOO}D|LQk029%X-VoS8b#Jh;dxAEb{Osl$Q+7e639@n>SyD zj#-O*aYskh*XmXB7bTr2#4AHat5tK634CcnNMB=w_!67Trry(55Vh4AMP+?Z=d%OP2t$_+pK}ndoY=PiX3C@k7vyyujTK;T*VQh7mLeAsE~p+z74G z62CQN?{#QI?7Sg?Zsg8$5)f|%bhQCgFGn;OnI+#Tf^K6AQ!Rw%DSxaI3)rVB6d)o+ z3jyhsFg(0r6zu9bvA(Ho$ryp0FQI!)P5@3<`BvQv`uyZv-5J?Z!vD@BFh#!m&xgZ| z>XnAEPd!vd2!#826Q)!&4zq+rHB?r@Ix!j@RGA)`X$KVXhl}!hMevyB%gX@tO4|35 z1>MtQIxPXgz~pT|BA^q9N@8Uf#9t64$Q`J-I4^h)*8 z-^=|fW8N9}PW=))l6QBU$n$xsvNoZ-i;E9@3VTVP#mQl|PepO73tGp&DV!yb`Xu^h z*2dtd*CnL0Crgu)|B^aGW@~Z}-%Tufo9g5q9c#Yf>l6?FY&Khw1EWHyDir)hWVePP z4ytP=@Totw1PwIc91x8iwR=|JNq*7CKY%2C^&E9COI@kj4fvyLN|k&2z*zDV582o7 z-hSmh)i;IW1Xk*Q*!Z)=(Y=@I1R=kPH3TnwPI*pnuSF`ss)??*0yRe0B5d)HpCe7<|W)v9CM7d#P!3o@kuH(Q%Y)ZSlT0t=9igI$kxN`=C}Q_C_|CV_aH9pdLGbU| zZ^AHXhXRBIoJf7d>J zw+jyc_kmZkkImQ}l%rPNeUfl}Ho^`-jHO!nB#cj0ShxZ*cofK2ZTHV-{8Hg$vwloX zS^1$#M8m%Wy&c%jmr~YfvE@xBVceg#k^rB|mCX^hldMbZE8VfG+Qs8?u4JxhTU_;@ zi57(n6?m&Qd;7y824m)tL{w7!Z*UT{WwNr7pvo+GfcA1zk7EvqH$jmGTp<`o0A9#z zN7h%g>z5}WhV_zQ$aYAID2cW)Ud?CVMy;$av3|6R=zA?`P^(KZ4cuRGG}yN@Q9n$| z!{0@=Cz$%^;v#fL5g^-dmLT-2JDu#yiQo00uI$C7-tj4<*@N%zR$4Iz?27Tz=P&~B z0$iZJFR5%oxa=8fLIkCr(tv}BX&=z=#8H01*eq7!T`&0qjG?rNBUnuC>zO^GfRCTO zGTl7V^8(17$RJ*SH7{D~$w$_mPjAe@UgdeN?diUqw=9tyL-3fqm$_G%Sn9^jtA0@K zd?sjOB{h|f0!!GXV3>BL@@ekh3ese4%dUG4vBFK{C6{w3Lv=bja+mspYU~3qsZBAZ zrmDxc{Y}Fu1;o!t-rAM7%v%JazFN>$!EE?5RTks6J;d04Ic~;Q_$K@kKFO!aP@N; zmo>1t?^O-O%6vQ^yIYtDiCL2prz#A-006Kl-m}n`Gyc_i4^qQ?2wroY;kRZ*!2x8a6Z%nR9@jAH(}CPrkNFs(Lha>C z^q(+#?%_c#!_}894{p3INj=Q@f zJkO@oc-LFBa5wJuu~gn(^~H77gavyb4?A3VusT-k{j7T=;WnvaewQrUeyHSh7yjib zg=GPt&7ZeMRyN=LesuHf}?2Xp6^#;oB=DN&!jn$eg(tm@F@HjV;^fPK7XZ#~G z_#l+_f8Nzejy871rI-iex^~=iNZo&;cuq$QD8+_qS^S;CnXh%AEO;oC-fZFZm0=Yo zVzJK6fu6jf|BpduMNV4PyuwXdX?C*)Ija1My#B6rzTxTB{u2Fi-^=K9$)zmDZ|KYY zoyf%9>)F%qS~30wqp$`Pt)WC?gLW`QU{Q;fAXVB-W_V9(@gtD1dd~Y-J8GrIRJVKC z-Wlb{!^Xqu`Y}cB*>13mbmH$red~?Ql(Xf8nhnu1Yd6ksO2_uyP(yFzBI6gLgFOK^ zZ^1M6-^z#`+zYg`t>R~!aRv)rZ#Egyja*f^-aBV*3QTjA>L)*oPni-YG5_+EJEmrom{)DnRt?EN3=2lUKC zkni=e>jLYhBELvc0G!4rMv;o>aX=@-Ar>;jes|#x*2Gcu^2ErB?-lo!^9RBchJbYj zS?P#g?0J`N{v|NR)C4u{Acg#dKgN+>xW^KSZDlg!z0J9OVJ4V+Is`HMHB1Ecg9&?T z-}=0?2qCrB_Ezh?&*u-5~I>Mh_q?Z1fXA8x^DNaes{`$+b*i_kYNG%djY;wr!j4?gj+} z=@NzpDG@;=&ht3- z1C5o{&+e3i8uLe&kOSR_A!1JTRf#83_sAd|MQejmP$EY8YXUr2-pKwcjzxz&a|b|5 zyXlDPeG~2^a*&{4`6;iggIe4)kVZ1F!<~1B6BJ8miGVj6AJIB%Q~u5+$cvzr^?qOg zQdL35SmGR+7qN@zhkppBvc2H~DVXiXGvIn2Wkh5RX05xX)IagkRBOx*)YKQ@>3xYY zg8l^+`jXv~SZW!}resz)*;Vq`eU5kq8YNyCp04g4Cb#53`t3K{6_1E|%7S_sz&`l< zs0CtrfGu)>v%6W#HSroP$ZPC(;*|gqo!klS{61a;B$(DpXZ*$lFqY2xy;98#sjs4mY-Wn9pRl!}J{h#XL1{pRs#x5TGmgCX`ddd|ZzE`yzv3dNvsg+*J z&QFRg#V^u|tk(`2f=i86x-3jaW3g`MWf@sm*eQF0^}9*sWerZa*smRCPAp3-x4(ZZ z^VyM>(3T2{mA)kRDh<(IN{Wyo-Kun`xU(a>+g6ddN4p@ic#0_zZDX0;Mnr-%PY)bJ zzq33s0$dCpnn7OyMVtbM4YR5;lQ`->M#)z(fJ`ze0`{WgKnCNF0^U2+O;!A_u6RrW z?C9lQX+#h&Dt5tK*ISY&5%y;E-#|`>fMk`35iRb9j8=B(&uaFMG+z~-7)nuXJkA&Q z1^#}A_xmAwZX=b~+Dlf+e}4*cOvqXiQSpd@ia6rK`IS(+*uHnRVQTFn_k2|oy8c>N z4seyeb%2iqWdCxQ_M?7=$UzJBR`#D{1Dh$7sAk?9$)FxDw?`cFxmwxmna2EK{Qf0O z>ZX38T0@a?;5qyB>NF(Fg4yA3sFdS`J51a2bw>xP$Aj)9jT;*4wRUgcAN0Ikw!FG| zYHjK#n9m^<_m&#=u#fG;$Krx@ufgp>o^(8^Li77LyTzcm)>`!SnsIq z0`8X}X+NT!Oh4<5V26z#>qGv!OWLUj=t8+d#$0}8b%f4Kh-cpL_w0}w_ADO_It3m@ zGz|0GY1g1tb=1>#ggJBRc9Q$d9rvlAxTJF2b!}*I5jehi)%B5bc$&mCCPMh}ecO65 z=@48c8XwNX*EmdA7R)vwVo#3J*s%h|JUL0Lb%;!*@nF(piP#2}E$_sMxbeV&Zpr=? z$)Rw}S}ehq45)Vx#?N-a{@%}xD6@gBXL!%GW`m2h^_Nf`E_j=L#XLxMC&(ndwrM=|E$2}0 zV{#kOlhLCh>(1VPlqXZytcs{Hhg01xSANlK|GJSq6MazZ1^l@@EKZ zxa*n7loJPjdMB>4R*|=-37lUc<@tRX{xICw_B=~*nw4qHg2pB3yipYzEQU>6U&rJ? zQ$g#&Y~x#MV!eS(Yyu+*$3>T-JNH2qc3^upBTi{Vh`yA0aqOZ52v%F21V7~18pSo1 zJYOGx-3nLwex#4ovaPD%R~Jreqi#2+=W&H9&lY+kBL!1M%7;c`~!r%&AiI3TT5 zU2@`2tYT?`l!nj%>Lv#)+!ubQ&@$+j^7(H_Pda+V?F$yYBbqV z0m`+3!u>3u06U(Mm4MQDe-zCXyHW7H-Dtht@?Ve_c2@m@%1@J$CN>TK=N)xVTsL9{ zPi};c$s$;oL8BqBm7Bo7A!WYqL1dWBY_)^}5p1u3LYs2yo6b(aq9vrgf(~SNHO{Jg zN!^fP*4}#K#*0R~_GA37K>H0vro{tdZXbbXsbs-sV8MOikTD?4<^iIBO)H z(t9pGmjtN9N{_PK72rw)x0AwW-3IZZouPAM)nM;Z4J&Mf6lQk*LVz*g4;3c%+?dI1 z=etCYf`}*mAFIaWw}@6mv{h zG^t^X^`_PH&&Cplc45m1sD~>SaF_{Y#ktKJhk8NyC_d~*Fpf?@1OpGDe7|O5gkk>o zg1M=8oX{?bp4ig3!ZO}3-ME-yPtHe*btE<3%+UT&w~dVR*^6}CV%}uh9Wkw$Dc>a0 z-n5vI9yw*cb(&yDa~1@U7c8B`Rjshi3ouV3*8(D@H$yeh#A_%?m^|JuEK|iKkA71h z8^^!oTGe+y-anABw0{?(^||QPMsxhZmrke2V^nM&??BQfFz+S9H7Ift98qksoYF@88p= z#!x`U_b(l6g?Kp8aidr=B%ur>=D%Opwlp1K#F>&ns+D{%-`ISd?JniVYH{QUnZ@Vq zBdOak2oObaOgFj009reX-D7_dGWeV6iaf}k_`0))$AReGUu00m`1uAM+W1{wW%dKg zPrc=id^JxMO|fvKn0E89*u!q)%gJ{Q90c$<0D^O5%qTz%wf=j3Cwy-sR*io4ve zs~NoMY#^AEn0eZj>-R2xb}w(|bLVZ9;Unqu?HPuhsBT#0iUU!OimYE^BOnH6KtA~s zJuI_L^aHR#Jmo&+VCAY&aowU z!B1>uBKWbuYQP_oktp&@?rBEb%cntwfz_A+XfCiEME=R>#uLV#3j|(Sj zAr71whV1yBK2WfwPNHG9Cq+qsNR%==ryUEyMT`?ii+r8o6d)?wJ3#RM+>Be^KsAu^ zPAPKVdeEr^36d&I-^fbo;8O&!@$Eea`FY`vQOSyhSdW6vUYQs3D7WFl=!qk1p@-y8^iY6w7gV|U9O zx25n)n=!@zMf*D}XwJG1i1Ul^Nmq9BMt9dm>Y|r%FQKi)SHEZNoqq&rmRdnP1}g~vNipPkhGI10|5y}P$|5%AYJ z6-GYd!9Mi;O<-SmB?l;O>nX~@7_!ZyQTcXH;3|!A0{msGK&Fv}ee4fSa?@9Y^JehS z*LWoYzPT?8yr3P@kWmzO`zG>0IBFo?&YY>*djaR$gQu_9G0{PVX|e^-_u|zCuFrhPv*JPS*!*&kvVJ zy~_L_-Xj#839~a6JEaE&9J_{@>V+My79H=~NuN9j#%IgR=!L-nZQVccm+K;W;s>!I zRg`NkD{zab6kj*$D7{-}*Q5{8=JyVQ+=%nv{J}CD{Vn;y0$XS@e#yC`TDt}Bmq3fM zwkJ&k%3)?6c@%|vt$!-C9F=+nOF`i?+C&@=Wp|dr0QzqMsyLPrdtvqZdZ(^bC^Oh? z!=X@sZ-=>ef)AkonkEMSJDu(&;j;o23``OcAe}xEyK!I<6%k26psV^*?MKs3e*?|8 z#ja$eP^y9E+vl@^o+n>Hn%o#QJ!vk$ss<>Lb@yp;#|0x5US&nNHiE{&Vx;(kn#evY z;6Uq$B(p-^MfC`pU2q-$VoZgl?(VFywFrJlk`|B;wNB*oFTLl6^L~*K9d^a|>RNzN zA$8RBD9&X}$8ES#dQm4wc&ZI+)TIiYze*x9BqQYT28( zp*$l98FR;UXG0XUg%=GQesd{6N_V}cNtM=!7Gp8d)AMerT3;N?i`|aW`PV5#KN!2r z(jIwoWJW>Y%Ati5fBl+5396tfdIMf|yk?kB%{lUTYnn$RCDy>D<7 zzBVm_5+gAhNS>R*QR}0laW(cGYh?d!Y!$iR7Y-iMjpVtK%Kd@;2tda)Cz;I$%TL)@ zr#-05~+{^PPRFqc&^IkmU zf0QC>O!vTS7S10HD|&|O(;+Ug@3kFqhbuu{&+`=Jx_$Qp%QEGTc6~eal}(-%c;++i z_H&zMxW7zS4!!29-6%*Z^<%uKAcnf}3po@0`Pd)R8jS>haf+h!4rL6b`W@HdRuq;v zW$>aNmmKP`-e|~tj`;%*cGnX=&;RD+i`g)t7ufG=X)-xg0pV*7?3tB}T^^Bz$UBB2 zS>)L@rCvpWK@Qpx#4*>#?Nc^~25mUPIG!7tyuzGUv-AriID@HB;w?l;kP`S z>e3IA4=?q=()^dIDoFEPqGx}iKN$C=^^9uZdoI-d=R_gy&G zgOm7`_Np)4jU!v+X>pBj`R609V@J?x-bFMw@W)b5bcvTChFq?+I=B<2ZXrABrtE&l zuhUQbIwn!m*-1g{RRSn8`;Af>R3i3cG0}e42S>^9o!=jGeP16K7jCZ~x)cnV3AUN} znD?s{PashZpT-{%yI#QgE*76H)+&e1XpbTu=E8y*GI}gT#Duzml`Ny1`iId{cJWe`VuVNYS3@*eq`J6qieaL+GL5Jiz_fAL--Q9;auN@ z-X3x&)FUC-7gztqZ?WUup|9yTb1x4EJIm<%a= zXaaek3+i+EPf$3P`tl;P5Qy6WNB55;@O-|0&wJ!nBZY(&Y($Gfy^oqk%Vi!;*s zphEj=ns$CgE4q_2+xo&(EW#Ac4qKoatG$&+rv8&;5wSD12X0UL18+=?SGxe?56fH6 z&zivCzGx^GuxJhnAb?Ai0Tv0M0QHxH+`0FmjK0c@i1F8n1}vHH$hk=W-BBmS5`O}u zG$2-hjw864Y~YnXP&xQ>9PbvuHsPDqk+T08$CJ=H`ng;HsWxIG49ImEl>~$wO?=d; z01RU6Uu&maCXSSIhj>#)0C<~HUPqT19|0rB!*h9b7Hf}_YA@jedlqgdvYhd1Vtqa{ zJA#3xW~BMts^c?@e3&08z?oH%2SO0?0j-pbMP{^>xYbK1|Nk_xUJn&uBsZ>?0Izor zB-J=pZ}2z6K#>JIBA-}R@I3|5TmD0RKJUsr$zk3HBdyhKIUu-3Cj|@MHS1y#=IOEE zkD~Yd6Ym<=F|6$Xl&h8|qW+@h({ErM7p~pJ_rei2G!suEu_>yzjPkFt09|d5NPNoq zdDMD-PDmYdwrngd=aFar;U$0PIlKQVxD>aabm|VA3M-zd6Q3Y0*_S z91SdNqG5+3{!Tj4cYjTDSSn@B5fXc7XU2Q_wzybQZIJ62OB7@G20p8ztofe*_wN{$ zzr!q*juP&tg1Ks8s$tGrZ@6{>l_W;sQ~ove0y3?hROQz*`vB!l#N=6?i}P7L9Woea z`}~mse_Uo#EP8`FA;otlle5GWu(V%Bt!4Jf4c(~{!3&}~PqG6Y4(`}q!3dZ0q>Nrr zgd_fFp)){1a1}t+!b<;vn`*l`Ckvu<@^mgEH5t) z_;YcWoh6tC)&iB5d9)>7^60Xr)U>Tut=?`g{Mn}j@UGwg0n~s<#^7~-D;k4`gTdSB zDA0@>)=zA- zXA(ZSAPk>NinN}%WAk|590vJVEMt6dgA0rgn?Y%=aDXR6kiA(q6e!H7#s?9>UKWAH~F}cZYN#KT>NH!oh)(irIU^0888v%ljlj4Ry zf@LDvU~fMkQup~3Byr=`dq@$Ey~PWdMD%&$Hx&Yj55E9mJK*L50J@^UQ-PX@x^XUj zkaw;uXf5ycPZQ{8D#2v+Z!p^n=Z&ZL*}lu?MZIU2we2f(D#V|}zi|^qwH?P~pvpfe zr@aihsBZ}i!m2_QK;cbW725JZtQXxLZd+62yeLh`Dqb&XrjMEq1kU~b;Nf|gja^7A z%sux8^NXX$5Y8hmHjJtR;2#15)C5daR}L0R!+2Cc9jK4wvdFnoaw~SO0?_z(0o01# zjAx({9>p0%Q;6R5^3<8+ z?BPq;y!+{_DvnFYs3_;~U%CIZ=_*q$DiYFAr94>lr!Bg^30T5o&+_a zLsa>o9H$g~nOOSIs&5EnMlV58%Q6qr)g0yvB{1N@0D_bH7&_Gcaeo!jA#v}xd={0c zR({j&eq2-*9|GX;7*Ul=r`?0RryFwjr*9-qEFd&iQN$-D8zw506sWRXQ@Ro98P-j( z?9kWu_nCSUjWx|IP=C>&S_YtAK z_CvTYR7gFR64X!K^H!SkYk4Llbs}RLU&~b_SO{a-rWu#Z2eHaCR@v#P4-7^%B^+e* z2<{!g2~{zX=MpXhyURxM8^>O?zcX-9gaeY2?m18Pcv(%lMlUpK>*pquc6inqjnhA* zzfM!(@7c{l7mY3sk51)>W#p-!sCmv1^LZprhNO#Qgkxupoa#9cn0BeVe^h_kYUGtT zF~ct4Aw`#T03F$&>gsxUX0`{z9$9AIRkzj+zh91QjjXNQ;o_|gtgO5P=K0yh-13xk zHzS0OZF+4gF>x6wGi!HQ45+RpXrs*l5uac^Qy~<*Z}36tLVjRh?lZ>lq9K z&UC5wGN6BmDkBbrR_q9hS8;Q?J#zZUdU(znkjwkdcUfu#s_QBf=bv19|PJ$ z1KQ4oEGG2+<9@P9O9%m?i?`dHlYs3=g^C@$tAsul2z@>4%IqmIj@&R(+Q^De0T$lw z)~@mEpM*{csQXCJd|f24OVUrL@m_!}+Qso6=#SMgFmG=tk3*@3ieBS46ygENuudwk zBQM+{33{0jT(dPPIIuVKL5q(6U5y@Ahxbo>9jJhrHer7c`BIeRg97hhrdJ9m;7UZP z)w|oXQBbu?*XY^~2j;;&rI8SiWe9p35H|PxsQb9Z#JP6Gnb2DZCIbXb@a-(8T+1Sv zMqc)Slct`z4w#MqvRqI58llVG0Li(=YOpmJ_*+g<_x&e*cMqIy_8rC|7SCmae|X42 z!}|$##AI_uG+|TTf4LwwnMiAZ1T^5pi42J7`WX5z7ep0QG%iW-1QaC>I6KRVaWX=| zQlJPh&c{rU}s zm%T;b)RN$y?wHn2yoq#xo_?My%3mzVE_$H9hbNwtzG5-wh?Khp#p|bv+(Iw1lS6E2 z3*NHt5o^AIB^asoJH~$_0tPOs+7oV8{7@aA?^17}OsLL%i^xI#zqI%jkm2{ti>;0& z;vUPbvhZ$7IbgLRbLqcMTt`+OjCjSd*yC}3`p{1 z?l~d7Nq$w8t8!g(6SdL{_1P2|r!|c3>}*GQ=(Sauf0mNk*{l$oruAR^sH~bkc!_WD z@}zJ(xVq9?^pVZ(4+is(fi()mowo}g#KT*Mzy29-t!HmP7vEgX4jOeGJe_nj9IWHC zG{v!ZymkSCHQ-pTX__*Z0(WTETk~$nZZE$Sz%2d?7xEe&`Jnf`j-j_uY{Y-cPzO2)R~{q!{ghITN1%_ij!{(L{J zsyd2R(yHEg#O$X2{qoL6nm-2apblR|+d0(Saz4U?l$_9|Ff6|KFNHT+F-8J7sp?|= zvrlqPuj{hyzh7mh_-1m8#{WDGJfVi%WnK)z3pwMUg0piFg(9?ZU}`~NFJKt(PXzm) z-5s!2#J)R^cj+sw2wCaynlHA;MSLORuzl$OfPS3ad?579A7=}|D*QXYq9nvT zCTftz9BkY{1oeH3`(02v>8C%3*WFL+ekW)3%%X3VQlknE9E&eZ2$1%K4a1l81nZpa zp2AU<*$HjWFRw}~GrM9}pD{YU{KRMemp1lf+ylpua1r|645h_nHD({peosH8n_Aq^s36n-wMuF3r;RE9Zl>~qMJc38`ZX7!hQQ44G74Hy62ko(q=wVDCiUyB^o zPM^aboyQzU!Xds-RFztX-RtwlX0l$r?yG#CULO70nhj9-xrwcg$Xkz$=yE8Hqdtq* zO8Q!l+#0SQj&@g!q}*;1+V-tD_&?4GEnL-d{6)P+wOAXOSnaj7tv4dp2>Qj*+$g+S zX|B~h1*Mf;|9kFO>Hl3;fHoOTBO}7x@dfAQsjTtzHR7cN4y@PfgPqe zg0q(o+;bS;gWTTesP?YWjrRi(nkJDb`kntYD4B3JRGmMN0{5VwcmRYCE|U{5A8#?> z&!88h_x%C9a~QiOLfn~s-Kh){p9x<5DEb!6i%SZhUbMbpEpxiF_a-qd)iI>Ux-%O~ zLZEka;;*yK^r!iOUAm&AFafh%79&y%JDrG|Uk5$spDRj*&r@)cv7?J4ZR-xlDE8*2okWAcC?0il(3pUX%L&+ znWP^>Nr>;@7zD+Fgb3!Y;`Df36nJ`lV^3T{ne1KM$O^(iF+GA==x^o;Sq(`q^cUP7 zjY~+A)^Wjg#mw3bef`IXFeI*$C* zpdN0RRlMtQ^H)Kj(hCK)dtP#&lhX%ySnxj-%zsY)5|qnxWB0QP^uRlQH7%jOS5*(j z5}adV39g#Dr#r9wJPj4Q>&w~tk$SCc@TOk^cw^IfN>z+k|P|rkcYY9ESr!;c;NT_i>C;>ab91Z=1iyMA?O(&o6Zy9KazaW=iS6v-O*dtEwS2O>laUnC zsMLEl!q}c@sI~f`668yd9}Foe==q#|=RP*Xv(GoIBCkv;k~Q^m_yRE~f>k(i`lf1v zIJ!NZAe7W)C8G)9s*N9(tNoU>xF&-soLomqU(R+LQ%#%wiK5AU}XHC9s&(Vv@<-mfHjdRkQsq-fNA&Zyarq!)4I&rjGXZ-C0`57m3;=5I1JWdT0vOnPlUUzPx{O(<@ zR^>$y0D>I4a)rlxaRyWD2ZHRYHtxhbq8n59yI+gEsC)pX7iRQ|Fh`LHsgvSv=om50 zD=`R!D05}VKZMVVO2R$HHP)V*f0D~PNr`L2aCd0iz)fw}L@R9-xX+Z{ zRs5NC6ZR}AZnoS$=u|^1u$<7V{X#}{zTh`KEeQ+$-=?9;0}dz1Qd}oZw1m_PBvc^q z$sBzMtQY5TrTR@rY|%ydoF3nni#jGV27j{@iyBjb3M*IlUWN5y0YOT^H8c7fuYP$J z^!vaMqiGA)rV_RR?txD{|8We_en2|;^O0smN#?UaF7FFoD=T$Mdz?8EJ%NNHxwWic z3a!XoN6hN;T<0c}_#L|c`D5#?QR6!f(%NBs8Uktx6FR*djH0_*V{d+(s4H9?1nRcu z-xt8lexTv#&;c|~{?KvnDDpzt(2?_qKhfDr{D8o#qS{NLGfwPT!r5Jy%6z;Fm;}5G zDIq06F3unzvI{_^!xaH6%zRI;e`&G6cguW6py+3q99!3;`3ZP}zyLSXI7_Rd=BxxsD#Y8qBtop zgd;x0OX#X8G<2f!A9Qy!QIrV&i4<5s*C)ho=v;)%&ILwCz59MNtvsm~I5xc%7$u*tsOZ5fbxBra0m)TY`go-Mj$v5*@wVSb8xRr!? z6Q>uL^y_>m+gS8_5d3b%LsQ#8?P|L!-x7OBZ(CFMx3yTKgQ`@cEUGTuO{Gn7uk<~a` z+6bxny8se5X|R0HercxxpZq4P`RZa0S7w+M#zX>spAhc2&Xm*GJw#(|b+DrdU?sCX zIJZcPI%Aop=S;VsGpo{At{*Pl$Z`xY6sMz1CdnbD5H-8qbVX!7j}^ zp1(?4+En9HNC>7ue!^j{&NUPaGmXG8y;)If+8P%4aBMl|sMi|Fx{G5xvLgj@9@uu& za~9Yk1hv?UYO?7@Gb*GQ{b6BZ5XN0szpfCk9rA#18jkjKD^k|H49RDXKHK1dJV_^L z20HXxv+RzXgIiHEzHoNs-_>%v?)Z-CwvilMH_5xtM4fhv&Nn!`B^gZ*jg5_hO%|-$ zqYJHXUH0p3F~Jg@x5KtX#8pziW9okxCR8Fag!l>W_FHZ1as6sbcE)JrJkW$N?&z>g zc-d?(7jXqEF>LFV+HGf6uOy(ObI9nJN7WM_Dvu5%7t!fDH`piTU2Fcf&ysPbT?&74 zT1C636?*M@gQw2=mjdeJ-Um7JQ(k|fnNM1v$@$I~{Om1Y2NI**GdGmdIl3Owa-(Q+ zCwF?y(_v$aWdkK+PoM3s6=#m~zi?lNo&8N)?!eejVU3{qG3c~+kDZyB6mD}xvGH_G z4yv|9*njM0Enc#wlVzufaTfK?y%!d(xg8RzV}C)JO0Vy4$|`aeeISdEf5zkVU%_X; zzZ|GD-ebPDp)LQ@5{Y@|-xqf60-tg38~di7HQ&w~Wgw0!)F9^xYeHi`{928~_$rp8 z`0SFDjQyJ z?%q!-{v;@7FH9yXXHI8oWm{LOP15=3rvGV?m)d@%G*HJpBX=p^T8qDeskD6x*_1?4 z`ek-Z`Ke?AVz(~BraOaMA$AZ=_yFtn-*(d?WG0F4WbCyhTKfih4#*%k||2CL!A4IErUD35cBHlgnZjjD&4F2$kIGmqtXF^V+ZWt7m#MG*g z;I{3Ssd#dN`XbbM2&VR@9a0*3o;=NEWh5o?JmvxM8l|`xd2d))FinxC;Enj5MkO%E z4&AqJdp`Ud+0r?=$b~cFch4FkiYu+aJ4%cP{8ZnmdU{axfWBJi{j2orvtP zJ+ewp+(q^GSx!RF<|WtGoSg(=nONxzhg|Y}OvDc%NwGbY%&XVb zE;|}UJl{U3^$^!OOD-sCT$>V@#Uxt?i01JusSFd(wft#NJiPX60tUAo_?L~|uP!!l zu&S2v5chpU-{@21dp^BwsxCnks||ks*dkm6_I-2)0>%xJZ(;(ONKIzfz-^D-hUMY` zGLMj#Y%g52|K)=zRqF*p+0-jYKJAA3@V8XbpsninJ z4VA^G@zC^bg%f{-WGNf22IFhw433E3Qi_}p(Z_eX`633~ z<>cgl9GN8(;iI1DoWU$pYC%;$)`wI+{g*I3(kXN@Br{Udgdgv<&(c*4{FKxf|dwd$< zTrU{#;}$WcbU$h(^1TsfLPmPJXY}y(Q$F~Sv-uEkpL$!C@xYX@KDPhFeRt|?MoSyK zAMm2+d(-$%*>A=|uM;|v%j@TbK>9gBW-Op0+<=-QFDQeOQJgYNU!Zbrf8|*K`Dv|C zs;Q}v^<&#C!Bde^Z|E!P$x<`M%N0LjZQ+N4ZiUXC&c{E7o`a9JZP&(ve8nVa__a2#Giv;lm_+WZct4HnMdq;|H?}b6JgEm-Sh6&=9u!{_sF*WC zHY95XI~;ssv${aYK1z#{&l=9HNjjt0q0D=bOHqjQXn%V>$Xc}tTaJg#{bb0tZKcw6 zKN?J5$;s8!LG%?f<5kjc%D(lSyi%}q+T0IghM^qzBKP0S_YfdM&*(5(l3g8ilTvO? zvP(xdzeOIrRyNQgZ@hIQxcFME)>J==`{3a1AFT9eXNvR;PjlcZzL^siE#IJK9Htw( zxTo)0{|)qT+oRBwJ+>s2m)0qks#*Hf5UVSXyY47JEHd{X2YC>b?2J?lVa?qGz-=Sj z`vtRG1xhDM19@Ja~w{jjWMe1XsId5?Ny5Q%nrdx4+$C&M>~q3w;{S4$t&Y|mCH^~PSkQ1MFjx|6KCTR z0!*$Q;IAJHX>{U`dRf=1Se1G*D+CQq#ag_H1~i|0CqQ0 zL2p^>U|3zwIVW(9iBlM=DAp|xJuo>l6`_rxQ69Z8p}(dE8xGlLla?TfGVEzW?6Zh3 zzZSbzF8)q-jq)-^(m(mG&~fF^QthS}o(o5~Z7-rtNjqFKhN*jfAYJOwZ=aR&>^>8I znt4Jid2)jE#G+*BF1M5**6nlR)(4|6a(1&!)kSWnqjlahLwZuRh)!tw}dK8bMAybzBE#{EqBfzQ=h5nK}m* zsXD-izD1lu6l4T8B*QH>H&gHcG**>FNf zv?e`jzHSvfOuwD=jlFne1?8LEzYjV2l1Tv5|1yE2@IG?npje}U28GR;Raj-9<_Fol zD}ro`KlHabj;#MR|Hr@f2`o9^rRrs&lg6`)ON5sfa?U1yBw{&UTz#j!U+s+2M*06i zg2we-u`*S+{G}|uxV!NDWuo@|I3)_x&|okwri{C8O1M~~6y=`H#m9r&GLvl45+NLi zEOH@974v?3TOXQf7j7wBF&6jpgBOx0X6r7tTuwCOnbOm7v35RE>Cc4zQ{;=2b2&YW ze8aM1*c=$|m!s>=))l?V$(_gK&p`$@kSq2sZe?%&enP(9UFzw>NBv2wnfR(_qXdN| zxqu)V_Tl`U*q8vK9Ld2uVl9z!%3(1mp@O?Xck>8Sjk^SKU8NpE@~@_cE{$n)?Tl(i zcizXxZJM;Y>#rHDmNmA|%3z<}w|v^(B&~DUvbr7<%uq9u_+~F}L^{q%13h7_(r9Z{IKGzt73!wW0M# za=gh-dJ{=YuQ|iG)kfE>Zh+u$(U*GhHCL^Tai8VEq%w_jJ65I5@e4$%I{t`Z&Zf+b zTy2@-$+y@}W?`cdxBe{}f#Y`bOhcIc#6|Ne($mI*q87g~36E^mz)D$>vuP?54EZk6 z%7Y%JRCPUe5S!QND}TwWZY6-`HZPLl0LrN_E zL_~Z)+7)X~$UTQ~-@HJU@r?YjQ;(#6X{;|C^9w;hH8YcbccI!6SM7Oivmsjh)y3%J zhSeayqH?|}WvunJ7|Zf(sx+xlyl!LSEVi$Fo%7ig^NWoAOxYLoLIr`(Lu)@*pkJRC zA8zYR{AS$FFo-GgFCbwbo~1b8B|o=8)>5T)^W?@k$rUv-`JdSM$Hz- z+$Wdj`M2AUHSdFPj?;o)$s=d2_>o)g{FND-%kGb%ZIEVVk`o;CMG?*ny{Ww79u7$H z8NF7>ze5v>SL%nvA1SwOIURy!u171P9_AzJH+M|e=O@z|i>W_8-Fpe3JaL&+(N@$wK#u9|fQGa5l%3G3B_ zD{{b7!`uis3W8gjDu-Taj<)98v1@tnh9 zPvSG+BA8U7YTn4+)%`_(l;u)lo4%-VWg!R7cOlPOrgfbJ%z&aQ%}G2PN) zo6pnXSw-QEl^$cSbjShf&Y5-LnLQH0c@faZ`7x1eI3gCV-@DppD}GNb#J@*~4DJ2D z5B&!u=tn{0PFo&b@-LZQG%+cekHB4Yy(4z1rRtgTrYxcMLtk z#m`(Ll&J3>hD9u^bN@k;Q~yhuH<(DysCljOsMJIiInvayA%{#9+-RLS8j zUMaUf`jfSmo8ehnZ_DC&sNb0C4CiQX8Ja8vz8woUS?(%q^#5^rsZ>s}DmF2}R;eY5 zS}RxAE!;l0F{B+Io^+`a0%_Hu{50Q=N0{y#I1w`^6XUN?&2Fh+Sa@-~m@|#7v0T%> z!<>?f^idranQfauH!?2v=NAqu20_c)7L1vYx@% zqvq)n7;*en4%HGUaZSw8&J5J4&my7~^%!X#Ff0_+dRNS}*!~v|F~0Txqv}2UnozoK z;iG^Eh#cviqlie2^bP_7QlyB|Ap#;Q9YSwPm9EmIgMdn}p+`!H^d>cg7D^~dh=BwM zfiLHM?t8!I{sBqmmzh0#&)RFP{iMOoQ(t!ONzQBpwJwn}MJN>J=suf$*tDQpNO8MQST?s@IeEC9RHB=-EGZY>iJUh10U+XoZ@QCPWSU-2MjodBggg1(H zwD4e4)px}CYe9d(cTBXg)6osf2t7{+w#ruIK(fU*(pgo|$g$-RK-uXKbn!xLhhURj zC-XO#^W5EtzT-c+=~nP6e)Y(zt1BdXpJzdkYhRd#2cRQLm#_fup_ezRpL5lnW6U#7 z5hLH8M!v)V`tk=C%aW!#g91kb0MqAE8ZBQrbd5RFu80{UhufX4=1KO?&c1Q#CbxA8 z_#{LXX5U9Ky)QQWCFdiwwimf2k!(0DwEfvnLTIbwp?j{Clu2xio#|-HCiGi*IENY+ zv#;0|vrmcdw^Z+OgRbz?o6ygWF1FYY@xw9FBjs~=m+aSS33B>EzoPtY^spgfn7VzK z`(hd;ScJ}#@ynR@Vi@ZT)tB*Csr`KsMaU-H;zDFrk^Y79wB`X^o<`1Lx8Ouk`$x7( zpfFCnZhd39;x)Wgcqw%wDLLoqJ)*dJ_fB%C=T4S~?}d-Y#FYcMU%!&R=fTaVtVgyD zE0%wUrAdgJO$uDqv$MNpZ?dp8nyL%MmsXRY8vnHQ~E?9Fj|M57w zbGPRm16>DTx2HHhM)i3?@oU2$2^&2x4X0-Z>6PK%C6J=<`ZN z$3cGx!HxAO$El+mg#6J7@Ze7L1s*{Y1uG$E%x<6V5tBOu=v<9oB8OY*_H`aQGGC^- zF%5z}-f7Cba)iciLQYxCJ$+Ms`%?;Lvb%;(Z=NUsYqwrvWpy+mZ2RFfz5jXiq~mGL zCfhxR+Ry9^d6+1R+-$AxdZfyh;R_tqw$jYbU=iDAPiSNF%@elx8Gak=GX5NzOVla& z!%Nwv)e^<*o_FRMY%D#G3f|%3I{THK*Y{)ZN_TCU-N{yDPWddA5Yc~+#=O=>@t)bcfcI;7M<^;2`^r|;xq0tH5)qEjYmJ{`T8UEIWkeKe_L zole*Br`720c26=%>NcH8EVca()J0kZe3!+~(Z$ZUwu>6E9ex)%>Q{Sar6e3-bO)0i zI{;5Jdy%jgyTNK>D1F7E&~Uc0uXe=a4F0@Z?b7k{AGp$3{e-rKZf2CL&bgq0f!~#$n;vjTo|-jkN#r%Tuk!~J~YDGRJ;apZQ6N3^qK=gu%*`#x# zNJS2RDk}}yqMF1O^Kpbd?mp@YKda`Bd;%ND32Nv3vmAi3IXiKZyo(&Ry(RqFhXNku ze6@Aq!8c%kkgz$Vdd981U@;^+^zJ4*WjpniY2aD8*+HZ~XjqPALF{orw`l>OPgFR` zEF&T2OK?m2BY5kDe6u?KB19CPvmx39ETzQ0xsj9_uL%8FjTKSs`t59q8)lPKs@J2& z(FVT~GC^WUZmOX+rvMQxU(eX(c#hPM$@u)3OrJYfz`?gg<~#RT@lj#Yp*DMpn0pNcGP)PR{BX4y_F?&=>)8C06i8;SIDN>28EtT6Qoz)rH{r zZ`4x$i+I8R3AG5C+nbHCx9LOP(P~aANufKpqryF*w!y}ppTvzRH-=R92eGnlw9iu%v>%ow3}*X%^^tv@%K9#Nhp zT@`P)F!F)^)}@pYW|O%@uq(d0DVRSyHN|JJxo7D*!R7y~rcO!;+~&Ra*)L_e@yU3m zXZ~>Ct~pTIawr9%`9C4|U+1Q@xT!7{VfnZ(VZ&mOES+Y4c&EWhQe-~(^&5QGueRnW zPay=oa(2&G2H-R~a0;(YIo$(xF`IU#g)OY&hISsy0I_@TpLb{4K;2b_>eyav3;h~x z>Yi&r$IdnF-(zu~Z5Z|Vp|%g=e_MH+F;BQo`cueomYJ^D?^ zWnH2)E*SJTJdkfN7Ep&A9FkZF6laKMICDl?B2-m77!0!xdcP-GVh@D>p1{Booa5_f zF7x(>rc(^td?GmJs+VHPu<7y=6#8#)-Wx9SSwNG<4&DQ@Zr9c&Fg)^)BN^Mkp!zvXGZA2vKN7Z*gK>Tg7AR z&TOX{_CSEf*({%w8&UVA09=4l>~;V(ueZB9eu&~<)BGEBDJW?{fq}gx!?k>XUXE)?%C3;tq78U)^uGao>_+)kJQ0}JK?8_d~ zeIXXMqq3@nYc>D)DK|yN_`YXm?DFPUs?N~j;dG6D;^leWVTvAquV9?3ShMyeW4lL^ zs0(&*==pBY?kOnQs-C6Nw_jmq{l*b_gY6tvbm6iQbdd%7lXBVTwd$38q{QR%Co0_u zK9sRpReNdTg51b-19mPW+M21&D{eeWPi3jcpVQ@kdB%m-9UXi(%i+CiP@nDf#JZ|M zS&$Dxws#d@2s~@Oyt;EN#__THE6ZRCD&<;J{v*499n3ax7_|GK)>9wW>Gib?yZJ=1 zkVo?zy}Fdz*78?4uYbP%p!V+a{&$@@C!M*Y&+~mzkkK?%5 zh}-}~ps2h3IFfl0EJB89KeHGtyW;;Kj63Tiv?8C8Du+?vsj)FWdM#cR$iyU-V>k&otGV&MqirFx{pf7m zN^!Vi#7Y-74ENXgE5ZOwD8%Xfv)X-B-Viu1b;2{zF}kBve^Ao>%k-@$E9W;akh_*R zC&cZX=IzIxRjl8yQ{dYDd2jE<`$x6s)P=!kmM4xw0VowOfbouk6|kweNTrQy zY~>~EYVet0hEY+J4kp&4XIGN`EE6x>;A-sEe0sQgI8s^E?*&0cPmM5bUv6xt(iFfU zaY=aF5@hkM*HYjI-9>^#7B|Sd`Ag)#0P?=xiJmaZ*^~b4W;Nf;U%;@-RntbIy!dh( zHy7FPc8$JBv)x`C;zHpGL6X;Dg|AK>zT9nU74H!*?|hn5`1&-2?r0&1pO$E(Ta<-1 z`@ZB|tq9`OW0HWrn;0(Eu3XOv77yf!*a&~Q`tWzi9&OM@rky5avvz>yO;DMpc5^|O zB7H}^KP2jJ-^IQ|Q-+Yo!xCW190_)nzj$RC#f9Hf+wf5l*xV)(2l7>WEp+1|=xb zZPk1b)}D69mq?d1KYiK$Y;jwt^(|nLEr1Vt7ts?0_xLg1+JYuGrXh+Tkx3hNzLy6( zB&|tW`F?DKIo