DcWEdoV>rF`=ySAC{9I1F4FsCA#gVv@)3NsgXMJH
zij)`zCof)6(k(7G#ijrffFlMc8EC|_x)0>`A`8-b<3E2)YlNazN-SVBRV)CSMBdbX
z;H|qWDs$&N>kXAbn3E;@5+mxcI*LU(C+Jav2q4hlk63-R6GX`Zv}!MeM>#b{8EDUf
z8x7HEaA*okKz&IHmln99;s7!PAMU+ah~8rq6n_HDA~lH$RtKrXvi8H5H)o2^_xDDB
zyU-ZzOPWx$uNNBaNly|nQ(*dsQ8(Vo3aG>oTuuGuLINJ-Q_Kk=B^JppNGgg;3lexWg3(YQI(M4F5_|SgvRS<^VcC
zVx{;iDwQn8S>G=mg5@$(zyh4suaXSp7OH0c=U-2;SghB6^>2`BuS2WtCcL(j%-ZXR
z3$3^fG(tZC*=|3Jp#u>Rt6uHly4
z-qv=~T-%B0s-53Z-l?@kjmB5|s$i-rCu|R3yp@zcas5sU2=EJvtm{VLa^XwA0tQ0`
zjrLaaac}&$6NTaXd!s+RrSaxFzvX`A>wk08mAl`}xoYP(m{;xm#@DNMeuH1ziTrn-
z_k`@&?X5bS6z&R*2s+Ysce&g1}_~AQT|t4oS@5gZJb7y}Ki2aagsT
zq}6t^c-78tDA&y^Q9?C~@=`op05XB_Cn+$|^h6-NZoGG7rTSB}A+pe=RF;8Bvw&X-
z1v?-*wl(+r$ZCK^V?9YhimoFn{WDuptf2gn!wd3reNsprjga@No1hS(K^PN!=XK2=
z{*ElOFs&8yYsMbfMt{9W>PQv%JYU^}^=g1*Ot7OPf9rkeU~yhwyOJUrK>FiEstS&A
zfB@M8WgPC!Ac$m##yG+=@5vI2^>P${1?4aPG#n7)PnWDXU>S+ynQ{)K6BMKZi#zhS
z-m&ilQL+#%RVm{F@K#Wsu$B-&!<$Z00NDJUD^-jG6^w)&-M6Uu$N&4Lgav&i4u9qO
z*unwIMFDblu2iI+qz2IeO6mmvtw&$){5lr*B~YM07+5)h3ne7p6JWJXVe)jYR3S}J
zht&;9`V9IzPx`!=1%H7Ws%?EnwsLZh8+il9p1y1A+;F)$X%+}90=apDH$U-u*OE!I
zidy2PjD`|ES5A@~KtJIi%k6BWT%0Rals3%{DS;(+@IQF;Ga>*e3kt$pL4hTDp+wqM
zC*8q>(W$WeG61pA<%rlUAA-~`bi2^TX)o*>w
zwP}_P<>>qs)Uzp*9>9@0bs}>ML?{X*bXb8r@l6`*&%L(7!nvF*MM1$^LH&8jW_^9tF9@&IagLUK@g3Ck}UZAkE}R+YVkIZ|+VE2kOvRRTTiUNa{E@?`k+YXAa`
zwf|ym*3Uw{5|7Hj9QZ3HBVNScZr#0RPONTXhINfy*)
z4PT=tmsr-+(Ng@Cl6A}7y016gi_8c6FGlzCraLq19Ha*cf(uScL;m%hU+4r;viL9O
zC?#AB1`xgd1s@i#lz@OVaH@$1`Gwhoddo4ZbEU#K5EwM%JbLZcJH9l-vY@W~%s)8%
zjVs(qr~jhiV6m2yB|FbgiAS`t&gAi(e$~&q0p51!7dpMHZVrzOJA8aQrCWBd=|CVe
z1~QwV>DSZ)vTmb8|LQ6KK+MvpKzJ*rLDzY)d(BtEU{R0+(6#07wqQG}ES1U`e}x2w
zf+`_37m=zOE<*?U_a!hW5m?%`?*32xXTMo)R8lB|P=~ida?k7kv)50i)m2uUV6(Hj
zscuk%-);GBmQz(3d;SUu+!#!$Ln#0(;|DANtv72FR9Q_w>My=E&GM?AUfcZ0#7gdQ
zu9)$S2x9lXf!Ap9X`YvXZ|^#l(Hl%P`s7f
z`NfAUx7A3o-Z|-)CP3QJt9RdaeUN2Z3E{7dOke*Wj8ySRvwO{MbV7`iX2FF(fiOCJ
z=)jZB5BkNAFSBeb2mZ4>@}Jr~a!Z5Hye~Qm5eKnJe|vRbc5I
z+4ToHSn3rpurfO2XtyRFzz*WDh(wBGu2fK*pZux|@>o~@gDf(;HC%DbF$owPpc`Z^
zV8c(E1@wSIlm`9au0NWo6(b~|#
z4)jmZrZGSofh)0q=U%fGv4kvSc)20bP@TAyiWDH5YHr!`lfRD@64UpkU0@l45P{NR
z2%-tvvo>p4GHF)%=BM)WkfUptyk}6UdH}DW3NTPq^U7~odlwzh>bF%~SMdI4^%4A1
zfm9tv&g=I4a(=VKEX8nM9C9=irJ|f99nhfEa|-BSzk89{B?QmosUZ+3xKvx+%=w+p
zxiTw%`qEPakT^Q|G~>QXLN5ndryzQqD^<|y=t$xLTGYB~{+A!0Vo6vErHvRrCye~}
zy9eR?>`j2^l-hQobIA17|J757Ne{t-BV>Q8o5=`*^;y&0HW|y(a)h4`YTH>A>RrDK
z>Zswnq4S3p44=E#1QrD?pR~F;(ueBV-^e6O)k1V$KIoLN1xtNH2t~zv{~DV+0C1_U
z)2hJRXHS3wB?d3-jhy+Dk+PgDho!t5b~y4s@9R?_17awlV&5q?XZ)$F|A!4=w?tbS
z=Q+C209XMKm77qdD&24Q?lbW$WlN#NnS~%1eotKNfk6NY*x~aM3se_k(d;NSyb
zQ?G7vrDUAAS{j&>f#zW|UQ;?{sA3(0lvDxM{Kg
zqt*=LM4Aqs8g`$18wWEYxnl9XI}UETLPB7rG%dYYTp~V
z!-sTf6eQ`Lm>--+27uzZN5`T5aTYLmbyG$U|J+@>&z#(S*X?f)d(Cewv1F|T%Ad`t
zJKV4K9+0JsBOpkGoFgY$43Iuj$JTx?fCTvVAAaqEvGx3<)y-Xh@YN2MvXx->&*su0
z=T{EBzeB)H9Y{f_L{xIZAHV8-8q;s?c6d_YI%V{@g73U&o@9=*1;
z`=uF{(X}ugHQ(wd22R#>!yCbh=_lXZF;R2DLUj5Kv0FMq;civ}CE4L!FaJU(h>|67
zIVcAbB7Td_px*wHnKQ`G^-=AIgq(;6ba7`R81nWtm+<
zIJHfh%(nOXF;ciySaUg`6I08$SG)Q?t%6M0PT2JBmwn!jEVT)q)i!x$TsNjS0);u)
zufR<|%Re&m7hm~Y7(ym&J%FJGE=y=alzj;~Q`^k;Y}+?ow!*F3M>Y+l|CLeeZ+%{M
zWN))oBpX;mk^q+_cPUA$Z91Oq-&56RKj~n^+RwfRl|>t_|ADOxdxd25oSa{AxMer-
z82FZ3d5~$Ml>LUMco5Y`JoFrsHP|lnMen^IE14`H>}+p{#En}{OCriXWbOvFtqx@w
zidI12EuesU;h}e6GiBrE4|LmWNr!3=h*{rxROi0v(}I%w??M*d;tJ^6PmkjnR=e=g
zqEeqdM$~N7J3nZN%Z`h#y6>JyrXm?2_0OTwf$gl8+~Bm;Hc_A`Gfcy4h0wkrMuqkIlaZouoe*oq6Y>+qVU1OmS)0WwyI8L;8v?;2J#WGdMU
z=%fe(6}QCZ7?j6|TzZSmY{;&6{^837INyBdJb_xo*o|NC{Q%cm77R=`ue1oa?EZ^}
z-L)%nB)goHDwN)XLLqh?Qq0CTe@N-h({{mrz$tB_ktJ@~O(py-uLv`{yl5t@CPh2{kc>Gre}SKI72q758lOM3c~@;+pQXXc1}tp3
z0B-4R*GCS!$L7to>61MGhRUQwdyZf=!d8?SR$FYU(V#O+WpB
zSEY<30kk3J$HUId-Z6G7w?y|Rj!)ik3hN#xI{~tQE^*{PNVRUW1
zMacm%7jF?kwXys*{kzj2AYh*epll(>M5$CfI)86h_EC=;7qUQT&%y^+qV|Y~zJLkp
z)h@eFt61jGf4awzBHR+(^hx>}3J1ghB#QS)5AS_^`u-WQTbM@}n2aDgDAnIJy&Ds5
zD*cNuelG0TRQmMDfy)xSl}~2mie7P^3Dbj_v4D7|Gut!vvYfrqU0?72I;%y-pt10~w}J
zz^vk3WG!{e^hF?MOr;<|jqGQT;aJ-wsQeG&7qDldaLaMiC)X6XJ+vUkMbB?0U;f-_J_v;-`MkddXD!
z!MVUK%ia4oCV@(?w}8N^kouqd{+XkT`H*TmFYj0CR-AX61UUSbmww<%nn8vaFP{rd
zGnM`j!}}r$lzZJ015&O-LAaLQ?Dv0RQ5nZJfWkOSoV?m)@6R3N4?W?o+PX4JTQZe?
z6hyeCxx|g_`+f=wd0NR<_z5TQ!~8@J;;Ub-RL~h~iRupi_XAnA?X325wB`-g{uaB+cnf$e2j8Dw``*Zx8sGjQUYAp%N+u8<
zQ+EXYdtda)xzgMR{%%%)Z#_|?Zt2bLdf9d)t3^R##3j@_oIY-?UH8%Dn~Xp1hx)Ee
zsVe&g#$-%1a9N(02)ie2fR=pzo__Vq)j$BFE}&B8d17trUGo<`@xHsLvX4!r9~T(6
zM28VJuo^1wR|&0PVSWGXZ{Dz&^X1CdzkFC!7a1`?28;-X)doAO{`%hk_vR)+QiT11
zs-r|V^Sg&BfYXyW-j?3%^{?1hqW^>uV+2`-jRAsJ3MB*?gCf8<3g*U#29KRLEl{Y7
zo^n4lB`hi9q~Hh(L)@>0`(U
zR83G}$FE)b(V2mx4KJGS$0Bn^;1U-=`dfIluT1B_?u{L5OSPSsjw;SD22hq?{z`!m
z&KOjJpZF%6^`W8fOP}oKyDgvF06DF&iwUT%tuOu!c>$0!Z_JtQKEHWr0Y-xd2bLip
z6pxZ~KTg{t
z0GDOD&wy3*WDnia%+V{nw7-YbFE=RM!<-F9#i%I4|MBGz0n`ND=)xn5vw?U1;lI1!
zIquEhu5uQzi3NnqQoSJTNYa0mkb;HvD_M~dFa8H}jG(4&zKc72&TQNB0m~S)r{b3DKI(Z{5KKdee8nwJF|0NO8B(=@iZlF(kH0+nfwx>+VMc5H@#hI6`!=Z}Cjon)
z*p*lL@PLMFeC!WY+LN7dasmAy55#}#xnG(o-OW7d#|ltiqI->y(~te+i^WT>m=hP^
z`~&C(+UjnYSEooaXD&c;01dw!xFx)q+am%RqXDc!%0}XNp3B-bkm
z+!7uEb}U5s=F|?}`^d-Im{;|^unWM9Kfp@T#@;fXmZ3ZjKs~bOTz%pbwal^FdspU?
zXNe!Q<15%^fIrfkh8ToLbJC{w<^*4hdKQilnvt?{Lw4J
zKzj&6agfg6=h)Ss%<&q(Wi;*9eo)9RfRGLnx2#8?+&@LHI+tdSef$S=zAiqtG!q~H
zRgwW
zPj_dwKO^JvP#aDR7L_4);049V-1cWgrM(ltXP7l;`VzFU
zyf0O;{mrcfd6&3fxbNXBlU!cv?l;H2+wu>{_I?*2+!Eh9Ej|HqPeiHgj(%?D_$T|h
z{M7j2*&3%Qx6cJh+!Ei%9{I3XQ0IkM15{`4d*TznxIER}ZY>9mhiyDdepdJ1Wlx#!|Jsi>KOxuU{41}?Wz6nh`a(M|
zdcu7tDUO{y3-rvNyecj8-TT;8ww%3-=8Vm%RsRdC#wYp34nSe$F|ej>6372s~s^^Cwz-j@(|8e;9B;%AOtiI_QZ1>x{qReUTzHPDm4cKp;8
zm#dFGT}}?s`S|0X90Pt0@cBUQp=3LA>`FmxJF6V7E0FU3b87*4>yqWw$FAo62svcO
zWwHCst@VP@K3H9S>}u}EoVYqm4&B-KsVhyuM9uhb~}dmnpx*T+5bV-w^Mp09*`
zUOLo9RPI+Fy}J3{N1hgNNUv1bHvt-9Ay1n*`gAKftmnM+=}Uob*ygK`Uh%#9_|+nT*w9}
z8#(k>pW?sWe`LXy4t~Rv%n8*i_^FY~
zvAg#b*X}nve5cx%;h-G=71?vxK0;B~RQ@Ee1bLNYF4bet9j>#HxnrddcYq-BtARQt
z4T2sieNs)KGy;Nwzz!)8DtCYcOLkGegnBCdc(^_h4$lEl6aDm{(EkH){1R1NKT^)h
z_KsKQdV@^O4782Os$>C1swBB-)}cy9%lo&(a>juln^zAYTM3M+{M{;>SAF-_R-XvD
zz9QUdjM=Ij2Q-9wUDbH3$??o^oGIXRUcFI?rBFXc_U4=JzyIOyL1E?xX+y`06K!Fg
z^y!5vt{|r;Jzi|Y@yJjdH=h)JJE6)?$~LQxl@xJWeb=|KQK|G<86-+0hbI~TZs>Sz
z2u^h@_CS?FI1ig;yC+?s*>2&^A2~4gea5^>C~s9RPH7CNbA*Q8Of8qDaJxjH?m$~-
zrj4}qVU|Z%dq!uPaR6gS?tj|X4!dzJ*8mkjG_uNuc}S0`LPzEk(;jdZ8?o={J&ncN
zCgY%zK&k=D{SO}xamdZo>dXlSQllT+wy_@PF*2WQR@Lp^EU;-UxptSjzu2?wU6W(Y
zB;y-Z7$66(xR>gX+a@SZJ?ktm(vDrx;4BbrahhUvB^>{8G2`CS-an>r
zsLf`OpxQ)G1#^(~J@>Gx$Vj0y0d-Q9*!}Y?i%Zo*w@~G(FkG}9!)=cCr9Ys?WYkmk
z)2)e~?fZ5TKu^RhMZh{u;IG~!F4|L}UJB(|ZFHL5)G!;+f(Z227d!sIC}&ze+@EB8
z^F;*AryA{gH@#H5EWe*QE%Ok_VK%CAqzWfZ7$riIZn;w7Qgi*G2oL~P8gVER0h8^b
zw{VgqbHeFM;qoOds1iv)o~&=CdQ$+sK#UMtf#{Sf8FS-1K;gs%HHu5zUy?Gan&ps6
zs1mgU#E=9^>)m26RTEJoss-ZoNWirg=Ku>QVpswz{R#DV@8>s??Kpc0T}BmrK|-Zo
z$gbd2oPhmyK-hu$`U@6MfCXwPN~$zpBF?r(+41@iib`?K6(qL*-$gG&+wwug{hu*w
zq#0m)=k*WST*ps=0t%=Jikb8WyiyT?Mi%-G5_s3-0G?tWs+drfaTa5BI-nt^h^`&azF
zE(<9b^Y4HXAS|p_(H!8#Dh~ze1pFpFBsF4s-0O?@pPO;u7GmE~u8ds?phqh}XN2-#
z1g7|>+8tt&jL`&i70FOR;Z;-wBn6QK#7Y#2&3-A=r=1N~S|6!%Z#sjvy!TtgCw|VQ
zrHp2kBt0jpLSYnC0hXYoAd6x%8kRttab@Bk;tk$BFGw?K<5y9s{v1my#SdS?ebKkR_`QB
zZJA)9N~TIFuv&zvGW#2dvEML5!Wq;Q{}ktDE`W#7+*D-_nh7W~fRrK-umlW<4Xd<3
z;Ux2sQ(wC`locDk_^Z?lrdOnH`o6wi_4fT??rt4=R83o$9S+>ha`O}xD`R2
zr4sYB`t*o9!1lf#71wo*{7XPj`*4&??HltXm>IQTu>iBN%pHMqG!qiB`CI=3DV!<(
zshS%tTB!iZ<_U2D2-c_1wgwKUk1pE#Si(kD
z?zCpYWnX!n*48XuoH$T{ss9ZC%c^`6lpa3w_?x|Ndu?vnxxL;08KajncnRGeumcQ#
z4IuS=fCc)6s&iIVX~(8IR?=8(mydyAz{Ewr$|VpJPpp(&x7binz`YsMy{QEd`k0^xpUJK=sk=`xaKG*1-;?qB@`KcJs*#*aLC)
zLEY;aUbbifnpJsQ@&0xF4Z3}s;QCrbtkZL4TQSROVW5q~xY8v7$$*2o7e54tm9+J<
zS43`{QFE*x(!?@VY>mNyMX~#C8ZOyP=1u1bZfttivkY9(Jj+FY7*ngcQ@60QfQP9T
zQ&nFZ+o+r5M7Kz?1dSFXo$B%_Go7}KBr8#gU;qEy01{wN^1CKU!36P4VXn_*V*e6U
z_(ZXHiH6(fhT7&AFO5=v?mbDrRAcMw>wpO$Ph!Yr@n!4h{Pi*frr9%~9>gG~K(5ZG
z8R%6C)g7p!0KC@+{}5_70JL8T(iAc2bt@VNnCum(w10s}KOOpEND<2BY|JKm_ffJN
z*a8qeg!`{o!dCV}J6hY->A*!S7O9qEqEdVA{*aGanu>!@(
z1QnX@-?SK2_Pl5;?)
zr+lzv)MICr8#$-bYv|4w$e<~(xYlprtJJ;x*<1)4ncJFP0J+woB;;Py*UhVR7mkS0
zygoI#5S6O2TG_2=GODZcFFauPsj255IHj{xrn-5xl}0D++jFc#ZCF`szE
z+4$7wma^Ov+!~XR!MtX8WlV-9hWVFVC41=mP0ij>EyiVJ;c1Pgf
zjeUp)3@m{D?e5<~nHZ~0lDP|&Hf`W=Ql@FpY7@60IDMx@{$Cl3zDbg~W!hr<8sGXB
zWpr)5N00+(QNoW-AGglF^v@?*eCf97GqCJowwcW!dEb?e(qhCc7`RTu=*e=%3S&P76>4
zz-ky%?6qBA-2*n7lR;@t8>b$)huf3xLJH3S1}e<`^J-`!ay6+wkFHXG?aR(*kGcC#
z-qagi2!tz6ZM_JUz>?zZt6uQoyqT?UD+6pHKm1V{RWrn+?-MdnA1$un^Nc5J08w8l+1+q0iXCn!QUh>4orS2Kz!jB
zAM3g(Pn>e9b;oxGScJ6&Qs<#9sMG10jL{5~0i!5D16k(5U4GA~)mc9lslo^u8o;<(
zs*$KJ7iOrNSAa*Tz#vZN=kabzbNNG=xSnbx+cYwCqF?uI)jM^*bv9G=p*gi+-q?F6v^
z%CjU{093|O04}hp)!@`E{jC@+@Mr#T7NfAKw~&PCIiMRZvQRrFxgMV~PG_njTUJOa
zeN&{-LZg@rU^6??!o0YvlIGIX#)nGW>B(@u`ylGsC$w?V(1Ztqjidiv{
z8|iV(T6etsPsK&qMEX*2;7r@8xK8bz=+iG%*F4Q=oK=Mq)Z{908lC{E!5=f?N`@ca
z>1wZ|piTt+cc99x@$xN7I#Y%1In%GZof2r<9}p>;n)My4#=*TvEQKk>J8
z#1d5_sh&3ufo-(_WG-e8=v{S{HHi8In9vX8z$qA2M*IG~cH)G1ZcEkq=NMV3EV^*B3c=S!oo1uN~=-6kcGshp!17$#}1rRy4_Z5Ts#yz1=qhp>3(YAoS
zp6%15cat-Bm9M@YlBYB4?m7G{7NM=XK?EM!Ix?Tw(yMN*;aeG9iA^NzM=}kNC-x>F
zDLZ{f?t(Z)&~3$ETR!+LV!AW}mZHWqT*$Syoj!@B(?T^e>D$yQPAZ>op(jAkwfl$J
zLQx%yVznOHN~jQe1@`@7!;G-tRJAa}EEmwZ(AL~=9PRxri~yjy?=#lx(`nR;+G@Yi
z3D{erLP__!SvaUj3qendsoJ+qG#eN71<;}|a5yX!xu^;c$y5~$puC#Jf~p$h+$d1g
zpE1*=Q7`5o3pZ*qj$S9&nKF&oeU&^5z+qy(zSbl3eF}iFP^I9MXCRhIuPQ*F-he_1
zMOwlEe%ry#)pJ{*y<(gN40P(YG1CA^JLdV!bSZ)-$}RJB7F!+wE2aUN2&o={mTDSu
zgt~b|&p?Iyj40AnB-+ke2(;1+D(&uq7rm;KH4Ka}(o!jX1+!cr_vUyg%Cxi6r-XEN
zay}u(R$*9(vwiAuU%`1Z(Pw_3>?{PYn*C&o(bku)tD9d1B4AbQ3+*ID(W^Qnz)Si9
zn}+lWC2(ZnCJCjYpaRBlOd;BS0LxNxBh!F|cFlEWx*%~W)4*67K3D*{x@zm9xHeQw
z#!IaI8Y~rvgnaYR7F5AgAp51Y=YOvkDgvnTCHvQrK2_iUt$z25G4-VkTw8bw$3W*{
zy-+j{VI?t}tjCz;l2o*l%ZW?_p{JaE;jYt%KLW$1A%2=k@isFMWTOR0cY_8+%tdin
z9BQ|9kB7DZT8Eh}y=t-RgS?^L_d;HXE2CMqdm7W`b&53Aub6otWWlxocq?E@dh%ie
z%=0Ba0gEziPDDAL2bcr31fl_u{J8mou?t9NhHon*J<{;6>Cf?_%TL_U^5p24Z35IS
zG~@%yh(S2Tp;;`zAP;RN^B79Mq|c553OliiZgHqtx7BF_Rljs)rggd|6lhJXl3(9g
z3uF081E^MzR-i)}xLS{c2|ICunL1X;ao$N8n=kFObO*68I5ED)ifHu1aqWxlWk4e+
zNL2ORItm=isU7)1O!Bf7{mx?U4_7>}*~hCy%{yh9&ZOv+WjMgiZECY8aHX3*%(Y|w
zh!K-MaEe1ePCH0EfcC4gc*p~a>|61|c{s~v#1d-qD@IV25A4iaPmr*y6#L=gj)lj*XvFw~tid1wo8
zzU+aO5&cS5Id#%XMJybZbi~bMUDzXX;{B1z4DXs%n+({lK4Z
zL*62DzS%UVpL<}eFaHm6^t7Egg{`*cL;?6M)V0yOAHQ|&+3VTCagM#4ZX2sqv9(UX
zzp30dOzAEkI4xT>jqBDNlD!P*QMDa30J>VJi)xt7Dlh{`KqMq60$>gpon8XcTo|?m
ze5KugqGt!{=ESP?R$N)Ccu2nStLCo}Jz!4OZT12-&aStAjycGVeVzCEaT1kerMY%&EC_Ylx?8NDW`NlUZ?2(dt+IJ5R%!!a)i!tv
zU;T>Ndq}+LS(wqP>r>AX#>Ma9*U6`2&fD^5{W1+-9kzN7EOF@V70p4X_m52@1pNO9Pf3hZHr
zACd!|z8z|(fBdkGMs4yne*3boMC&l?0`Qhko|C#+7YLjW?biO>NuThNZgO57QOPsU
zKGQ0joUnj~kzPsL)<%K#XkS6Auo1;9bsiAb3oRfUHvH6Asb=l{v#kKxqT<3|XU+yLCv|ioL8&HEe{oW2hDMYCHp_yjn7
z6*zPoAtl$IeLm~WcJ6n;jRTdJ0U{Cf52)?d@xadh9f01{r+v3%E2NRCycrBsty+LB
zwgdD)rN(%y!|4Nc6&5Xkkd551Fp^P!04U1{_p#H*CxHQ72{Qg|3;1QQu
z)M^>zFWg?ws{o#9Sm8*w-S|;b+;`9b_UziT%?1T1RVj4kSlG%rz`|2vUp%x0RmcXO
zrUsz2V448G>eIb$kC5XBQzjV)Cq`YfJepM1eIvmB8v=cZgB@wM%@t4iw!NVQz>Mu%
zU|*B|MovSCDXm&6fHK+F=TRVrrX#2fyJ3xLNZw8XFo1=pPTO?*XzLEMH4H$QLTog=
zq(_a#T^^{hFEeoB%(x4sZk#dhK)rq7(j&~5;GjxtmhCfd2_YS}PzMM;eW1~06$5e$
zh;_B!@G%khbkoPkW;-;81oVoN-i!js!qY7G7hF^w%>b-Z4-RtDfI$3gT=X)pJ%Cy*
zY>R=IQ{-Cg`apd*#&QhaApo;NfsMMYq&I3EHj6w-NN?N5opBAHOlcu0rh_el5@#WH
zmjQu%)OtAC^c-LTDjCXY2gFYEG$sV?EBB|^z7#*p-JV#UrI3IVBQJP(ZUohu0D$qt
ziLJNwPx>RYQ5$8#8xp}-Ca`UrxlJ-?ua8Lp!7?G^=skz$0YSOh#1{+z3s9Y@H31?o
zZG`~GnI=FDy+Z1;fZ0#;?=g|ncKP~yZNz02fUCzupD$EOXmkDp@CJ7&C*^?9w9ob<
zV~R6CB%KDplYrL-@|t9fEI`e2KIUPz89-elz6=7cH8!fM^-GxbnWlk#z}^eGk!xWF
zsI>vC1E`!?iRhE4P1ra=8EoYb=YyHBs6`C?>n;A0l(x^(~^jG6Nt{HciosQ$d@@m04WuX#v+1_>i)LgNX
z1^}nt4nKnt>S;4F#zIsw^4UXM0DS}RpaufU-UQT`=R4F@=Z7Ld4qy$SGK~HRY>cT!
z*jUAFqz~i4Z0Dj^0h_*m)@|9A);OQR!?n!<#$+(6HqV3o4oltp(^#6nxQX!Oz6{PHPdh9ahK1H?>>>rCIrTWVxr8|bH*nCaqywL{2Wspw|~2r+usVChy9
zG0n)qO&ZYs_h0;m^3DRlch+qjY%{k>s@i1HttnuEZH_;jhc$R;3se|G`gd6YkmBzc
z9FgsW%S28g3mI9BWy++II@rSMxB*Z%fCA65Z!fYT@_}|ri<$-|sL#y`F--h4N@Q|#
zv^_%no
zdt-Vj4YZ_)#Wl509@>H`@EZcV@SYuE`S86q=j|N`%&&sNGG$7r)c!X0o57Ytn|r}_
z_8rBwc028Y4bTiQ3ECD(F6=)Nmk;8|Y+Q7Fj#(^^-UCw>z{YXDMd>S1rPDwaW`W%n
zLW764Kq460*s>Fr4+^>96yw)JhlK-#>RSmKi>iaEk_o2mk;b;7uP`E(+;Z0
zPY%D?l-Ta)0aRST3xMta>9Lwu3qDWogRb
z#CzHDL5RZmM{q)(sZaO1f82Bg9#hM&nEE-^Kp9vps%=}pGYYhMXe$}~7+!mATwX?g
zdQfae_N+3`N(0L@Ua~t4J9=&6hRtyUp?)-`eOF=Kmf{EPl1w5aFv=t8@&PJ!o5LHY
z^SP!SC(l*pESY3TJKH1aNk40VEGCO;a8-C{OU36Bp3sQFek?B^R5WZK!sht(V!nNI
z&2-eS5bLS=mRHXTD5xaM{UEz>n%)-oZ2?9jedo*=%tLl+*??^7CMpYOm}{jJ%aqB{
zQL_5KmMhy^!Q~%p`@bRjGBO(}XYI`<%LYbL}%rf7!
z>ZT6pw18^sdJvWnw{**YHz>V`1vMAm(GK89-G9+O10p$Z)+VrrOPlq3hK55RkQE>MYZSmEEbf-t@>ufw&n!y||8*Vw$tBfZPrk>D1+Eum_@{k#XDIPFSp$
z&%9y&7OMuZpcA+hl
z*4VWAd0&2B6L7WBQM~;7JOku`>AZ1Gu1=lDf!DCz0M3`j;vuh)R_9j|u{zp;oNLts
zz<6jFw^1dw<@1W%wC^()p#aIIveA2)d!@A(pRr`p(o@#0R&juiff$p8G}tHF0nJI>
zesp~fL_1hL#nSo_uh2=X|WvuskDG4X=EqU1B7>))*lLKoe2!g
zdKfC`s?26z0*pvys`gVRz`G_FjJyP(G{oipGl(1N#TI}*sAvNa)>g=iXuk==Ks)U;
zvTrs4j7fdmlYE8kxGS67G0IC5eMtvQjjQQ-Xt8X|;7o`4a;4VJVgYR{FUdiDqaCcQ
zRcb!6o&p`VP_CBa_I{@$Ckay;ZG>vcLvxTp^(+YB)8`k_)cFD^JhZjgmZ!lHh>WP(
zZ8RKd<;A6Zw1Ia}fsIC*?I-iFk{k+yfWj>3+j5L)ySW4y85e1{Q9vy&0`t)Y{lTA4
zF+DYa@YdQdoO)}DAb4qfsX_RMqd1wkaAe%Oz
zYR@ni3l1v)p;$%qwX0*6LOTFinD*t2PNST2fhk)msLnTi=ifY}^K1uTY6PocK1$m9
z8L;TxIqjzj331JdmoF#M`@{i%31)yDu(|IiHPefd2f(Q3B=h*E2u_dy29sJ1kT&ZeN|$Rhw_1{icUCYM-y
zj8tKb1xaoC;-Ozvmd8L&6W}K#sUGXb2mmM`XVR;(OUe@(o=ncOOt`j~Paczt!Yiv;C2Td
z+-m=zq}o3y`kwHr+z{PVo5~HF!J4{g0C==sN2$0Lcj~-3J;@?ZX@`1F8wdI_x!K+r
zWcUJ%;r6wv)s3l2&8|AnJV4$9Bs17E=4e5UgY*ge;u75OkRZfz3h
z7NFNZY7~tD`fwgpSv5}hB-V7hT%E@QQ1Uz+H88-w_GRa@d1@=wUMyQ
zw0gbA2WmV-dxg;cyRp7jG(TRDT2=ckI>>P#bl^E$N|4mhrhyR@;3=x|Dyyc+T&>?y
zVbj{g+#wm5aQTyVZlsX8S|hy|p7Q3iB-(wJOeNvGpMh>7%u26^+uEIBgAII*df{9f
zH7X0v+BCNgpiZw}Z2vnE#RUyz`}?ZD%JS&c>ck+`W9~LG*Flw308bA9{`Qxhf6G_f
z*0zEdcmsRaWIa|kX>jowPLrQ>z$#Fy;Y($V-|yJw$X5PPp28H@)Vh7?D)bPjg~7bj
z-XlsS5Nc0ujqLzqD8LxxjGJoY+o~*2O|tSCFYtX;p@Vsr09g;L^E56|!92r!Ex56~
zQ8gw@rxNOn$HNbul{PkHZwV{MP(9T
zb;rI4Wgc^F^B7q2F_x%NFMhC`s)pRD%4d*>c)J9ssq?J5yk(Y2plxI>Yhea>hDx)Jm87)9V;^@XK0wO1%&U`MRSRStJs)sDAYPL_4O16kp0)$v;#EV%3
z=u2O^FsC)@_Q&U$0cEqCPqMVC7V0LQEgGJljuTwgr?cpGA+Gto`VZ>987L-8tZIZ8
z6B-T){Zf>m=xpW&fmsCeV1AdYtprdQiPO`pcWPK>Rf~RkqAw1`_zS>2ff36rQZe2P
zQjXisdKCC<1Tasr+^UJ3AC{~<02Lcxk>!Arm>rf(v+(0dJc
zqzuJHI{@UK3FxaUJW?{>ZG~dhB(VaPV6~Am-I00wNR`NV<~;!F&oCJAq-@s8Q(6Kb
z2}Y>du~ToCGUsg?rxAd?={x{8>IK9ytj<=)xEszzfD#8#Ew1<#Hg&5`Y*%>!^?@kq
zJ$UwO%glR;dp0d#`KMTp)zp%yE8|rt8)EofxV@g`-azQ!+tIteJ_>{#`sx4x8JyNR
z$e8ygSXcw=OkYu0Y#y^TtLhlT;G73M13LpL9hsFzu!=OpnWEY1imTQF)&3tEt;7u`
zb00>s0kj41a*hj8nf6QyofwM*p$^04AM%pQt7MEfwrzZOJdV!a)~pq*v^Y>)uU6rl
zs85eNnE$Rg^>$Tpl5K+yS+3ROYUZqAFOU?dIh8q}Fd4(i`gFmKr|&=0tk%LU1>pI6
zplU#FcIxcn4jzcP3|Ks{-U+B$ytG+2^#wMB#nlYyP6vh0h*zAV+TK4)cFI^@d3^>Vk%6|47YqgzK?==)4yp~ZrYp!
z=*YP+>=}Z^jmdCEu(E2QSS$uLxy)v6)#dllTHH5}5?34$1!#JFpnAkg;g%_N+T4nJ
zMRWYgd~`iO)2#W}Xcd=?ZUb@_=&(iuAUF@tYwM@}A2FWB8@|1n(NyCN-v${~xv|^^
zn3}HLZnLKW)$2J_?zA)w%ng0!33FF*gSf#Q0G!oV!{I{JBKA`qs5$Msn(c0JogYj`
z+VlD%{ATUPnzbCYveC#9pc+_6{rNU1801s8dO6ExWcm1NuVfC>0(kahmU*=vggeeN
zCoOT1?50o*RWX(<6TlGA8N6p<5Fw~ZxW=H2Y2YU=zVsvSjthg)9|e7j>T5+^YSs$A
zbKR(`o2%Gvjq-$9s$wc;-1l%3fO$~8AY6^=kkq(Xw+(ZUEhlr|POeU3RUA!RJu+FO
zR;*3JsDuM~Y`G@5n5(D?uPVw3L+S6)2VKbkt$CZC8OL?nJt&LVplBcVj
z=qIbDrRsPE3hL^lU=?l>$Ak(nfqFiN
z-?ZwZnjfOY)5lJqJsEy;2C7>$5$D;pXTLT({3a>eSHOskqJTqh>R1FRG@fRkW?MH8
zze%hdklBcHk42T&Os7%-Fe7dKqOkIs=~OCEDfzykHv*1zgA`XLCWqa)sChtP1n0{v
z`<@{;)BH=!_5E*;2zBA<*xy81TYqpi%iUB`sV#R3=
zg}MBm$F-o^ahi};HFhGkqo-3p_<_9M#0{IuD%l#94v=W1BxF-R3mFcxxbG0S^i%6|
zVr?24CH1;UPtsfOofeCMrT5?D^yKQMqpAl(iT3fFT1=QuaX1VRG-w}DDq=A)h!~Wb
zik6rjpyDMk5IE6KBZkBzDL7nUp^k7k%oNmAoPz-sypg%%kQiN^1Ok{~2ho*`A%jC>
zuL(sgWt_(~hsCHu4+YR#Hy<~0NX$6zq(I#*6jh~912ZgU-FWB^U;_bM=T~R892TRX
zGYo)$nAUM<4BY5}02@AiXv}7i0FN+$wb!$tacIm!U;5r01VF}!KRMj@8n~Hphztll
z2vIlT5SjHL0Nx=Wqdo=PFqu2{r8htf0AaKa1&7H1bb1FU#U(y7WcJgU;{VaWaWu}b
z*$?IxC|}>iph{gga>$J9E03r6r6SPqqK;_}n*l|qPrwl5=7F*)Cx^}mnp9OFP5@x<
z>Hcg3a-dS9&a`85Zyr((p}FZv?DXRHzN5bk0UG54H~^Z~yDp*OdouERbZ@q~72BdY
z$T+N4OMWWpruI$@+|(R2ngiU|h+_vBKIiLGI0x_{jgn~u8l)ZD>fBpl$zBNGfjo;Y
z1YDk~=bnLGaq6aO`@u2lM(HP_CrQG&i$PXaZR-F4
literal 0
HcmV?d00001
diff --git a/tr/projects/zephyr-os.mdx b/tr/projects/zephyr-os.mdx
new file mode 100644
index 0000000..146cdd6
--- /dev/null
+++ b/tr/projects/zephyr-os.mdx
@@ -0,0 +1,346 @@
+---
+title: 'Zephyr'
+description: 'Zephyr İşletim Sistemi'
+---
+
+
+
+
+
+
+T3 Gemstone O1 için Zephyr desteği henüz geliştirme aşamasındadır. Kartın üzerindeki I2C, SPI, PWM, CAN Bus gibi tüm çevre
+birimleri kullanmak mümkün değildir.
+
+
+Zephyr, gerçek zamanlı uygulamalar için tasarlanmış açık kaynaklı bir işletim sistemidir. Linux Foundation çatısı
+altında geliştirilen Zephyr; ölçeklenebilir mimarisi, geniş donanım desteği ve modüler yapısıyla özellikle gömülü
+sistemler ve mikrodenetleyiciler için optimize edilmiştir. T3 Gemstone O1 kartında bulunan R5F çekirdekleri için Zephyr'i
+seçmemizin temel nedeni, deterministik davranış sergilemesi ve gerçek zamanlı görevleri güvenilir şekilde
+yönetebilmesidir.
+
+T3 Gemstone O1 kartındaki AM67A SoC üzerinde Linux işletim sistemi dört adet Cortex-A53 çekirdeğinde çalışırken,
+MAIN-domain Cortex-R5F çekirdeği boşta beklemektedir. Bu çekirdek üzerinde, Linux'a müdahale etmeden ve JTAG
+donanımına ihtiyaç duymadan, `remoteproc` mekanizması ile Zephyr çalıştırılabilmektedir. Zephyr'in AM67A (J722S)
+desteği `t3_gem_o1/j722s/main_r5f0_0` board hedefi ile sunulmaktadır.
+
+## 1. Derleme
+
+### 1.1. Gereksinimleri Kurma
+
+Zephyr'i derleyebilmek için sistemde çeşitli gereksinimlerin bulunması gerekmektedir. Ubuntu/Debian sistemlerde
+gereksinimleri paket yöneticisi ile kurabilirsiniz:
+
+```bash
+sudo apt update
+sudo apt install --no-install-recommends -y \
+ git cmake ninja-build gperf \
+ ccache dfu-util device-tree-compiler wget \
+ python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
+ make gcc g++ libsdl2-dev libmagic1t64
+```
+
+
+AArch64 (ARM64) mimarisinde bir host kullanıyorsanız, standart Zephyr talimatında yer alan `gcc-multilib` ve
+`g++-multilib` paketleri bu mimaride bulunmadığından paket listesinden çıkarılmıştır.
+
+T3 Gemstone O1 kartının kendisi de bir AArch64 host'tur; Cortex-A53 çekirdeklerinde çalışan Linux üzerinde bu
+adımların tamamı doğrudan kart üzerinde uygulanabilir. Bu durumda ayrı bir geliştirme bilgisayarına ve derleme
+sonucunda oluşan `zephyr.elf` dosyasını karta kopyalamak için `scp` adımına gerek kalmaz; dosyayı doğrudan
+`/lib/firmware` altına kopyalayabilirsiniz. Buna karşılık kart üzerinde derleme, x86_64 bir masaüstü host'a kıyasla
+belirgin şekilde daha yavaştır. Ayrıca yer açısından da hazırlıklı olun: `west update` sonrası `~/zephyrproject`
+dizini yaklaşık 8,7 GB (`modules` 7,3 GB, `zephyr` 1,4 GB), `west sdk install -t arm-zephyr-eabi` ile kurulan
+toolchain ise 812 MB yer kaplar. Python paketleri ve derleme çıktılarıyla birlikte en az 10 GB boş disk alanı
+ayırmanız gerekir.
+
+
+Kurulumun ardından `cmake --version` komutuyla sürümün 3.20 veya üzeri olduğunu doğrulayabilirsiniz.
+
+### 1.2. Kaynak Kodları İndirme
+
+Zephyr, kaynak kodlarını ve modüllerini yönetmek için `west` isimli bir araç kullanır. Ubuntu 24.04 sistem
+Python'una doğrudan `pip install` yapılmasına izin vermediği için `west` izole bir sanal ortama (venv) kurulur:
+
+```bash
+sudo apt install -y python3-venv
+python3 -m venv ~/zephyrproject/.venv
+source ~/zephyrproject/.venv/bin/activate
+```
+
+
+Açtığınız her yeni terminalde, Zephyr komutlarını çalıştırmadan önce sanal ortamı etkinleştirin:
+`source ~/zephyrproject/.venv/bin/activate`
+
+
+Sanal ortam aktifken `west` kurulur ve Zephyr kaynak kodları indirilir:
+
+```bash
+pip install west
+west init ~/zephyrproject
+cd ~/zephyrproject
+west update
+west packages pip --install
+```
+
+`west update` komutu Zephyr'in ihtiyaç duyduğu onlarca modülü indirdiği için 5-15 dakika sürebilir. İşlem
+tamamlandığında `~/zephyrproject` dizini altında `bootloader`, `modules`, `tools` ve `zephyr` klasörleri oluşur.
+
+### 1.3. Toolchain'i Kurma
+
+R5F çekirdeği için Cortex-R5 (32-bit ARM) hedefli `arm-zephyr-eabi` toolchain'i yeterlidir. `west sdk install`
+komutu, kaynak koddaki `SDK_VERSION` dosyasına bakarak uyumlu sürümü otomatik olarak seçer:
+
+```bash
+cd ~/zephyrproject/zephyr
+west sdk install -t arm-zephyr-eabi
+```
+
+Kurulumun ardından `west sdk list` komutuyla toolchain'in kurulduğunu doğrulayabilirsiniz.
+
+### 1.4. Projeyi Derleme
+
+Kartın MAIN-R5F çekirdeği için `hello_world` örneğini derleyelim:
+
+```bash
+cd ~/zephyrproject/zephyr
+west build -b t3_gem_o1/j722s/main_r5f0_0 samples/hello_world
+```
+
+Derleme sonucunda `build/zephyr/zephyr.elf` isimli bir ELF dosyası oluşur. Bu dosya, R5F çekirdeğine yüklenecek
+işletim sistemi imajını içerir. Başarılı derleme çıktısının sonunda bellek bölgelerini gösteren bir özet yer alır:
+
+```
+[170/170] Linking C executable zephyr/zephyr.elf
+Memory region Used Size Region Size %age Used
+ FLASH: 0 B 0 B
+ RAM: 26960 B 14 MB 0.18%
+ ATCM: 76 B 32 KB 0.23%
+ BTCM: 0 B 32 KB 0.00%
+ RSC_TABLE: 16 B 1 MB 0.00%
+```
+
+
+`RSC_TABLE` (Resource Table) bölümü, `remoteproc` mekanizmasının firmware'i tanıyıp yükleyebilmesi için zorunludur;
+Zephyr'in board desteği bu bölümü otomatik olarak ekler.
+
+
+## 2. Çalıştırma
+
+Zephyr işletim sistemi R5F çekirdeğinde çalışırken A53 çekirdeklerinde de Linux işletim sistemi çalışmaktadır.
+Linux'ta yer alan `remoteproc` mekanizması ile R5F çekirdeklerine kod yüklenebilmektedir. Kart üzerindeki
+çekirdekler `ls /sys/class/remoteproc/` komutuyla listelenir:
+
+| remoteproc | Adres | Açıklama |
+| :--- | :--- | :--- |
+| remoteproc0 | `7e000000.dsp` | Görüntü işleme ve derin öğrenme uygulamaları için C7x DSP çekirdeği |
+| remoteproc1 | `7e200000.dsp` | Görüntü işleme ve derin öğrenme uygulamaları için C7x DSP çekirdeği |
+| remoteproc2 | `79000000.r5f` | Kullanıcı uygulamaları için MCU-domain R5F çekirdeği (`j722s-mcu-r5f0_0-fw`) |
+| remoteproc3 | `78400000.r5f` | Kullanıcı uygulamaları için MAIN-domain R5F çekirdeği (`j722s-main-r5f0_0-fw`) |
+
+Her iki R5F çekirdeği de kullanıcı uygulamalarına açıktır ve Zephyr her ikisini de destekler: MAIN-domain için
+`t3_gem_o1/j722s/main_r5f0_0`, MCU-domain için `t3_gem_o1/j722s/mcu_r5f0_0` board hedefi kullanılır. Güç ve sistem
+yönetiminden sorumlu olan çekirdek bunlardan hiçbiri değildir; Device Manager (TISCI server) yazılımı ayrı bir WKUP
+R5F çekirdeğinde çalışır, U-Boot SPL tarafından açılış sırasında başlatılır ve Linux tarafında `remoteproc` olarak
+görünmez. Dolayısıyla `remoteproc2` ve `remoteproc3` üzerinde çalışmak sistem yönetimini etkilemez.
+
+Bu rehberde Zephyr, MAIN-domain R5F çekirdeğinde (`remoteproc3`) çalıştırılmaktadır. Bu çekirdek varsayılan olarak
+TI'nin Edge AI (vision) firmware'ini çalıştırır; aşağıdaki adımlarda bu firmware yedeklenerek yerine Zephyr imajı
+konulmaktadır. Zephyr'i çalıştırmak için aşağıdaki adımları takip edin.
+
+1. Derleme sonucu oluşan `zephyr.elf` dosyasını karta kopyalayın:
+
+```bash
+scp ~/zephyrproject/zephyr/build/zephyr/zephyr.elf gemstone@192.168.7.2:/tmp/zephyr.elf
+```
+
+2. Kart üzerinde, orijinal firmware'i yedekleyip sembolik bağlantıyı Zephyr imajına yönlendirin.
+`j722s-main-r5f0_0-fw` bir sembolik bağlantıdır ve varsayılan olarak TI'nin vision firmware'ini gösterir:
+
+```bash
+cd /lib/firmware
+sudo cp -a j722s-main-r5f0_0-fw j722s-main-r5f0_0-fw.orig-backup
+sudo cp /tmp/zephyr.elf /lib/firmware/zephyr.elf
+sudo rm j722s-main-r5f0_0-fw
+sudo ln -s zephyr.elf j722s-main-r5f0_0-fw
+```
+
+3. R5F çekirdeğini başlatın:
+
+```bash
+echo j722s-main-r5f0_0-fw | sudo tee /sys/class/remoteproc/remoteproc3/firmware
+echo start | sudo tee /sys/class/remoteproc/remoteproc3/state
+```
+
+4. Zephyr'in konsol çıktısı SSH üzerinden görünmez; UART-MAIN1'in 40-pin HAT'te yer alan GPIO-14 (TX) ve GPIO-15
+(RX) pinlerine USB-to-TTL cihazı bağlayarak konsola erişebilirsiniz (115200 baud, 8N1). Seri terminalde aşağıdaki
+çıktı görünür:
+
+```
+*** Booting Zephyr OS build v4.4.0-8172-g1c2bf123944d ***
+Hello World! t3_gem_o1/j722s/main_r5f0_0
+```
+
+Çekirdeği durdurmak için `state` dosyasına `stop` yazılır:
+
+```bash
+echo stop | sudo tee /sys/class/remoteproc/remoteproc3/state
+```
+
+Kodda değişiklik yaptığınızda tüm adımları tekrarlamanız gerekmez; sembolik bağlantı zaten `zephyr.elf` dosyasını
+gösterdiği için çekirdeği durdurup dosyayı güncellemek ve yeniden başlatmak yeterlidir:
+
+```bash
+echo stop | sudo tee /sys/class/remoteproc/remoteproc3/state
+sudo cp /tmp/zephyr.elf /lib/firmware/zephyr.elf
+echo start | sudo tee /sys/class/remoteproc/remoteproc3/state
+```
+
+
+Komutları tek tek çalıştırın ve `stop` sonrasında `cat /sys/class/remoteproc/remoteproc3/state` çıktısında
+`offline` gördükten sonra kopyalama yapın. Aksi halde çekirdek durmadan dosya değiştirilir ve eksik/bozuk yükleme
+oluşabilir.
+
+
+Orijinal TI firmware'ine geri dönmek isterseniz yedeği geri yükleyin:
+
+```bash
+cd /lib/firmware
+sudo rm j722s-main-r5f0_0-fw
+sudo cp -a j722s-main-r5f0_0-fw.orig-backup j722s-main-r5f0_0-fw
+```
+
+## 3. Örnek Uygulama: Gerçek Zamanlı Jitter Ölçümü
+
+`hello_world` örneği derleme ve yükleme zincirinin çalıştığını gösterir. Bu bölümdeki örnek ise R5F çekirdeğinin
+asıl değerini ortaya koyar: öngörülebilir ve kararlı zamanlama, yani determinizm.
+
+Program 100 ms'de bir uyanır ve donanım sayacını okuyarak bir önceki uyanıştan bu yana gerçekte kaç mikrosaniye
+geçtiğini ölçer. Ölçülen süre ile 100000 µs'lik hedef arasındaki farka jitter (sapma) denir. Program; minimum,
+maksimum ve ortalama jitter istatistiklerini seri porta yazar. Aynı görev Linux üzerinde (A53) çalıştırılsaydı,
+sistem yükü altında sapma binlerce mikrosaniyeye kadar çıkabilirdi.
+
+### 3.1. Proje Dosyaları
+
+Uygulama, `~/zephyrproject/rt_demo` dizini altında üç dosyadan oluşur:
+
+```
+~/zephyrproject/rt_demo/
+├── CMakeLists.txt
+├── prj.conf
+└── src/
+ └── main.c
+```
+
+`src/main.c`:
+
+```c
+/*
+ * Realtime jitter olcum demosu - TI AM67A MAIN-R5F (Zephyr)
+ * Her periyotta gercek sureyi olcup hedeften sapmayi (jitter) hesaplar.
+ */
+#include
+#include
+#include
+
+#define PERIOD_MS 100
+#define TARGET_US (PERIOD_MS * 1000) /* 100000 us */
+
+int main(void)
+{
+ printk("\n========================================\n");
+ printk(" R5F Realtime Jitter Demo (Zephyr)\n");
+ printk(" Hedef periyot: %d ms (%d us)\n", PERIOD_MS, TARGET_US);
+ printk("========================================\n");
+
+ timing_init();
+ timing_start();
+ printk("Timer frekansi: %llu Hz\n\n", timing_freq_get());
+
+ int64_t jitter_min = INT64_MAX, jitter_max = INT64_MIN, jitter_sum = 0;
+ uint32_t count = 0;
+ timing_t t_prev = timing_counter_get();
+
+ while (1) {
+ k_msleep(PERIOD_MS);
+ timing_t t_now = timing_counter_get();
+
+ uint64_t delta_ns = timing_cycles_to_ns(timing_cycles_get(&t_prev, &t_now));
+ int64_t delta_us = (int64_t)(delta_ns / 1000ULL);
+ int64_t jitter = delta_us - TARGET_US;
+
+ if (jitter < jitter_min) jitter_min = jitter;
+ if (jitter > jitter_max) jitter_max = jitter;
+ jitter_sum += jitter;
+ count++;
+
+ if (count % 10 == 0) {
+ printk("[%5u] son=%lld us | jitter: su_an=%+lld min=%+lld max=%+lld ort=%+lld us\n",
+ count, delta_us, jitter, jitter_min, jitter_max, jitter_sum / count);
+ }
+ t_prev = t_now;
+ }
+ return 0;
+}
+```
+
+`prj.conf`:
+
+```
+CONFIG_PRINTK=y
+CONFIG_TIMING_FUNCTIONS=y
+CONFIG_CBPRINTF_FP_SUPPORT=n
+```
+
+`CMakeLists.txt`:
+
+```cmake
+cmake_minimum_required(VERSION 3.20.0)
+find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
+project(rt_demo)
+target_sources(app PRIVATE src/main.c)
+```
+
+### 3.2. Derleme ve Çalıştırma
+
+Farklı bir uygulamaya geçildiği için derleme `-p always` (pristine) seçeneğiyle temiz olarak yapılır; aksi halde
+önceki derlemeden kalan dosyalar yeni derlemeye karışabilir:
+
+```bash
+cd ~/zephyrproject/zephyr
+west build -p always -b t3_gem_o1/j722s/main_r5f0_0 ~/zephyrproject/rt_demo
+scp build/zephyr/zephyr.elf gemstone@192.168.7.2:/tmp/zephyr.elf
+```
+
+Kart üzerinde çekirdeği durdurup yeni imajı yükleyin ve tekrar başlatın:
+
+```bash
+echo stop | sudo tee /sys/class/remoteproc/remoteproc3/state
+sudo cp /tmp/zephyr.elf /lib/firmware/zephyr.elf
+echo start | sudo tee /sys/class/remoteproc/remoteproc3/state
+```
+
+### 3.3. Örnek Çıktı ve Değerlendirme
+
+```
+*** Booting Zephyr OS build v4.4.0-... ***
+========================================
+ R5F Realtime Jitter Demo (Zephyr)
+ Hedef periyot: 100 ms (100000 us)
+========================================
+Timer frekansi: 25000000 Hz
+[ 10] son=100178 us | jitter: su_an=+178 min=+171 max=+210 ort=+181 us
+[ 50] son=100170 us | jitter: su_an=+170 min=+170 max=+6808 ort=+703 us
+[ 200] son=100170 us | jitter: su_an=+170 min=+170 max=+6811 ort=+803 us
+[ 230] son=100170 us | jitter: su_an=+170 min=+170 max=+6811 ort=+807 us
+```
+
+Her satırda `son` bu turda gerçekte geçen süreyi, `su_an` anlık sapmayı, `min`/`max` ölçüm başından beri görülen en
+küçük ve en büyük sapmayı, `ort` ise ortalama sapmayı gösterir.
+
+Anlık sapma sürekli olarak 170-179 µs bandında kalmaktadır. 100 ms'lik periyotta yalnızca ~9 µs'lik dalgalanma,
+milyonda ~90 düzeyinde bir kararlılığa karşılık gelir; gerçek zamanlılıktan kastedilen tam olarak budur. Sabit
+~170 µs'lik fark bir kusur değildir; uyanma, kesme işleme ve `printk` çağrılarının sabit maliyetinden kaynaklanır.
+Gerçek zamanlı sistemlerde önemli olan sapmanın sıfır olması değil, öngörülebilir ve sabit olmasıdır.
+
+`max` alanındaki tek seferlik ~6.8 ms'lik sıçrama yalnızca programın ilk başladığı anda gerçekleşir ve bir daha
+tekrarlanmaz; cache ve başlatma maliyetlerinden kaynaklanan bu ısınma (warm-up) evresi, hassas ölçümlerde
+değerlendirmeye alınmaz.