From 3f1c6e15a013874a6917658da81818d65823f6c7 Mon Sep 17 00:00:00 2001 From: Marius Drechsler Date: Thu, 8 Aug 2024 20:50:44 +0200 Subject: [PATCH] Not very much progress today --- content/BACH.typ | 6 ++-- .../quantizers/bach/sign-based-overlay.typ | 27 +++++++++++------- main.pdf | Bin 1196346 -> 1197886 bytes 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/content/BACH.typ b/content/BACH.typ index 9acfec3..a0fa947 100644 --- a/content/BACH.typ +++ b/content/BACH.typ @@ -12,6 +12,8 @@ Before we take a look at the higher order quantization cases, we will start with #figure( include("./../graphics/quantizers/bach/sign-based-overlay.typ"), - caption: [Nice graph] -) + caption: [1-bit quantizer with the PDF of a normal distribution] +) +If we overlay the PDF of a zero-mean Gaussian distributed variable $X$ with a sign-based quantizer function as shown in @fig:1-bit_normal, we can see that the expected value of the Gaussian distribution overlaps with the decision threshold of the sign-based quantizer. +Considering that the margin of error of the value $x$ is comparable with the one shown in @fig:tmhd_example_enroll, we can conclude that values of $X$ diff --git a/graphics/quantizers/bach/sign-based-overlay.typ b/graphics/quantizers/bach/sign-based-overlay.typ index a9ae873..ab498a2 100644 --- a/graphics/quantizers/bach/sign-based-overlay.typ +++ b/graphics/quantizers/bach/sign-based-overlay.typ @@ -1,27 +1,32 @@ #import "@preview/cetz:0.2.2": * - +#let ymax = 1/calc.sqrt(2*calc.pi) #let line_style = (stroke: (paint: black, thickness: 2pt)) #let dashed = (stroke: (dash: "dashed")) #canvas({ plot.plot(size: (8,4), + legend: "legend.north", + legend-style: (orientation: ltr, item: (spacing: 0.5)), x-tick-step: none, x-ticks: ((0, [0]), (100, [0])), - y-label: $cal(Q)(1, x)$, + y-label: $cal(Q)(1, x), xi(x)$, x-label: $x$, - y-tick-step: 1, + y-tick-step: none, + y-ticks: ((0, [0]), (ymax, [1])), axis-style: "left", x-min: -3, x-max: 3, y-min: 0, - y-max: 1,{ - plot.add(((-3,0), (0,0), (0,1), (3,1)), style: line_style) - plot.add(plot.sample-fn( - (x) => 1/calc.sqrt(2*calc.pi)*calc.exp(-(calc.pow(x,2)/2)), - (-3, 3), - 300 -)) - + y-max: ymax,{ + plot.add( + plot.sample-fn( + (x) => 1/calc.sqrt(2*calc.pi)*calc.exp(-(calc.pow(x,2)/2)), + (-3, 3), + 300), + style: (stroke: (paint: red, thickness: 2pt)), + label: [PDF of a normal distribution] + ) + plot.add(((-3,0), (0,0), (0,ymax), (3,ymax)), style: line_style, label: [$cal(Q)(1,x)$]) }) }) diff --git a/main.pdf b/main.pdf index f17995b3239d6e03fd4c0afc5e078dbc2d9268b3..a4fb7258703174123ae16e44402eb686ac4f6880 100644 GIT binary patch delta 7858 zcmdnh&IOc=Kx zyDZSeIDNwg0TX32Gd)v717lMKBQrxiLjwbI1tUWvJqr^fLt_OaQ)4|N1Ec8|O!y+F zpF6_KEo5k7pl4}pVQHaYVqvUjY;I&QUGS@bvzoDqp`Nj+sim=kk&&gIiGi7sg@Un# zp`NjUnW2$_k&&UEse!r0^ojF$Bc}T;<>j6pXTm2xy>BOiyD7y?b{xs(ygyxkdPg=I97A@)#NSw+4e`0k2o?&p3ribP(Qyo z;_e!D|IqIl>JD~CxVKmN%|E;@Y2x(h-zVi1zxjCoIh%f_LF}nz-;e+1Z@>TF^vC|c zU-bXi?)hKwqF?^~|GFQ4gNwHu{`hvkTwVR|jrRZE)<1sepU?kH=leqLo3g(7*1~)3 z_x&yS@j3tA_uBvaw%7gHzJ0!|J-=a@+U*J*`F~CN>wkRGjoH6nty1m@}y3!wy z-sZ{fTzLA}nO85if35G{zpmUUmVN(>|NmCq%lf%a{p;?3kH3gsHveH#$1MLOxZ0%b z^~SHqJJRQ|iKkEhy!%(ky{lYR$EMG&oNE=*_PXYbWu@`8W3MYyJJ0W5rMh?3`*&Ff zpH|0R@!x+-?|EhD{wJrU?WXBj&aaf-A1T)R?fUi8^Y%SY+x;c~_1YKbi~KgPDAvB~RZVQ=t|Ps-Bd))^T$T9# z)oDN8+Gx+qldZP$3UA-4pUoH_zoJ9@^zB=(E1l=>l9;=B)lT+(Q_Mc~*Zlli=V>y@ z?0`qtq;K!vw6DH>@bb%-@8W#ww*)+!@W`M(_K5G=qvfmHa)QO%9wg7&YG(88eDC`n z?u$;KoqZwh>LfB*XPkIObU9DloW^`ZR^nLE1=w!6yKN9zB|`^>q<>(<_Nk(F14 zJT`CDDlw{gy)W$b<5b-bH#g{eQV+o`B$ob_mw)=ueO}A=6FfH{k!le!Fu!R znkM6`muJ_Xy0`D$`{{3g?*7ir{KX>offIZ2&doQijlb$=E?N7w=6&^Z`O|Lexng*a z&=s2 ze?2xS^1zk%q3icXZ$Gy5N7+r)EmMEAc*Si`v<>sm&C0SX|JqeQ&u#_dzLnEUgSn4< z*IO+lcKgb|FRQ+KuiY5?!r5s4iy3XHs&=tgh2(Pl)c6nYQj6D_e`#I+y>jQCOpjN; z{r@rM`n{Tbe!2dyqj{Yd%MYr))$3TTw>G3Ae*5Fzp2cr&apc|mS@t$&!x8Oorqe1^ ze@ZU?sD9_1a>da{-rY}LYv3RQnc@6R%~8E5O_uJ7I-8Fwb@NNUfy7H&hU z*}>0qAKbXj_VSqi(f#jArmB8PdFATExNZ8^yD#E83nc&78vRe!D&Nv#9{MBCZ};jC z(>EWtn{2akO^~hs^GBJ#J}v3Gzjoc%lR`S7KhJ)t_b9iW9IR_);n6HxGb8Kc^sf(N zO`pmHoSU$BZ_5907gGbzM`xd@>mOIUb7R)^tykVM?Z3N!!}H(QO?D>7>)tG%Efm_j zJ^Y1SBHuQhg053O&z|1hllgDY^IgWC@j~}?qYvKw7d*3T?!5ENv%9$x;<}`Dy?-P{ zmg?U-ZbV5tbTKQ%F8kNJb6;4MZ>Y9BdOXATT>kW$ z&ztvs`D0)+<>WWNs#&X(wm){uepbS-f8D>rH?-~D?W(`!TNjki4-w{{e{8+?jd$$) zJ9<`5xSj14Wx6V}rqKFv_h%o2pAWA4iZn0ZThvo@Fn8+0b-`@WDO>9`%8UJ?eolJ7 zF0N zKCx*&Gxy)e_Hh4)ciMmc-{-IYC%C45zg*j6`|IwVZf_0TB=Rq;@GUydulr=e%a6@p z53|1c_aUv!l`r$P$XwnXC0kZMxNIPA`Rnn8$UAIq^Y}m83*6M?D{W72n5NP2+nM?6 z^8XdApCx8?N=7Pl+hw=4?Cw(2UH>rTQv1udVS&rJ=1rH~)p5{x>Xi+yHQG7-Jw`#P zck9>Wzpb18+WEQc@wn!?Yqt%a7~XkacDRb#!+?U!Xc`%0tZ?u5p_Tc-Q8 zYx#S@g$HXF#vVP#H{+-6waxai8=F^sKiTTOKk50dC-u$-9~Xw(#N3Xue{a|`<^NN~ z1hJl%#>YD5-2K4W`)&8#6%0KA+s-!pnZH}=v6aNqSa*k&n}YssS>4FrXK*jie9FAG zmu=rx|J%3Tk$v0C#_Q%Ey4z;HnEz|G{Vw}AUJpEewqM(kUibgtRfg44mo^0RORM$7 z9zWpMH}~&j|N7tD?)Ax;<>B)f9WOtDe_1Z zc+DQNwc#BDow@N~(UEujT&=}M2U-&v z3qBWdggJg^XMA?<3mg9e2hA_e?^Vm{FZevU)3kgdn}lym`a*+M(IWXxj<@o3F11UD zv`o{jSW*1NF`L_DM%@L8BVC<+^)ChPa+DcbwlC@y7cmQ*)G|prTbIXTl5XoIgy>QO28l3m$N#757CZ zx!yH0oS^>xaD{no(M(|mRwwJKEc+&VeYwvDjXyIjlXL^VKIk(uFX7Tj~9`&Zi zm-jts+9@$Jd0N6nZoMoyxg2}3F1{n*)D2FsW_f?I{#0k6_mfd9%E9146Z`E)4_5Tf z=x4k)`;fx5Gd};dMbD_Ioe>SYqIYwngrhg?lb=+7lVRcg2ggLZ=DvNHcsRdINc+>Y&Xczq z%2y_c^-AytHC^z|JF?*!)9gC?lAYgk+JsyfC(Sn4cGGADlgrm{j!6@;)eg-&`he;1 zjESNlTX_3Fznx;6Ej*2%*UF10sZr@r%_kRz$oA!n6n4lorSG!)edHo%A-fH~v?|-i zv_+?T%j&O{or|bhwP8`-OtHn%Qi|0Kws#eiJ0>W6nbd6=Z?cp#dCle>+N_Q`6)P%I zT)U?pUC>uEcdEpZSu=yQ8hBHScCdBj9sL+1>!Cc`Qmyq-F*i@pQJ%XEeqx-G&*wNT z$cda$!SY1m&cv117!NYBI%-xPb@n~pQ|@8pwZcPM?zuue$De2?4U@%-HF%Pap1J!# z=$2Po;^)S`(q@O72^?P^?#c`@W_uW;v*^$R+w8P&a={aP-rrdKE^3L!b)Aa;$1YAv zd(!voo;0hYX2pryZr;kX1Y-x z%@@imZ&)tCA${iX!M4^zyIZuj%#f_=OnkI_Cg()E_MMjx98~25dBLXs?u!gbVK=2T z!zh+r(^}b%CM8@-Jl_5+KjRwDnXQ(wuAwuHlqU(4Oq$-t(mlhV(doJKVxfSEW;SJ) zImF+dD6q(~(&7j@*j&glPt8!xZ+&yHz>=op9akKhB`)d|MSfdl&|zw<%D1^=)9oCl zLm^CBx7x%FUmZ~X7^9Zul*YTIUSLTR`*Qhp2Je~z%g(H4WlB8ll>T|5nxWClL`kbq zi7m4_wbL(XJjzt&dM6UHCEFk&DK<%BWy)>1%*sdyg_D$ zPI6D||5y|5mfY)wNj%c+g)-0F962`BbIPfm=-7KCX|bUVTcg8`O#(;0_B0;&r5xvb z`G&#;&9GO+I*;QH^z>BUj#{B1E%)rO;!LA|Q8SA46+Kw_bFV9Hb-v!TZ-FpJi!OKZ zgD07sFLy?WX(?!^u4ggs4sTUiE$Sh-F7iXEVWQ5uWS2P{mO6}%niUc%4=jyN^+XD^ z)t_9W;K9ltC^`AX?E|$25*d@46sGPGQGV`oN9L(OeEvkGn9Uy&=E`3dGE)i?5M@c_ zPGV{Id~v#`yG{PAivtH2_q@be$EHipJ6@u}&EjZmzvi*Uok53 z;n7G+d1@EUDH?m&TVfj1twm3l@GoU$b=0buac$buTOB!7(#JW^ay4!^X!N-x=Wxfe zMgP^#t%$DY_{njw`KReO5m~d&G-rniUU4ohO{c94Zhdj)7P;A#TzGcow+jX(CkkAf z9j=zKX0Wh8d#5anBnJXGpf+Nxmm4!m{>>YT9Y9f6Cu?l&Wu3%A0BM z>)^DO$V_=3(X9eon#3j6YfW^ju;GycWthWL%r41m-<)1=r`qVSBBEfe1?T%6|5PFx zMefczYRbCs$&QCLN+B8oFQUX|DSkTL7-|1RpRI(E(eY+e&sxPb?&3naJntq33tY~a zG(E}Ffc4qzi>fMSUD0Z4LVd40XT-~1dT`TA)MM|HL&09E$B%qHCeb$INuUDvgcz0* zwj+}p9y0Rne3BQ{Q(tuU$%E#H3w*LKl&F}kidI|K+{}1pp7yhKt}AjP4US#A6i~(- z%jKY#Y?nqgm(IYoGgnyISlRFxKU*G^am8%UiAZH#H5;B^=7C8f+G=Xw zBno$aU`$+D^r89CiZCCZ9UN|jqHZ2$MQRHSR+$tLSL=*(X1#z3wL~(-Oa;ncFwj#@$=W5ZUnLlHA2B`m3TE zbP}4S1)uPqey)39Bg4T~-ETe`^=EI*IiL~l)5FO2@nL1PxWv`2nUb=Jwm!AK2_e~P zOqW%U+n1KG_Whcc?LA|{zLzPK@h_+hV`I9?;3S4u#!X?Kf$vpYX=8wS%BH3y0swbx{F0beA zz14R7h>)?*B`ueB z`R1;f)*1?4(eoB3zBpafvYC68f!^CdpD$Mn>`!{@@4B4p+S7j)j|dZ{^6CVrCP4ZQ{Ab zHe8D%4C`gX1rOHw395md6vL66*tG1$v_mVd`OJvl@?LYzvJHWEjckir&v;)gnAfmE zbkBjSc{k5Eb%3-g@3l1VkJakQI_ooY=SnGK(F-ebD=MA~8q7GFDeAT{N$Fe4j0LMc zCNc)z{xremm`Rvdzmxg+ON4@64OMdEPDyXNN0Xa@VDbo&{cS=I97I z>D}qMHdC_ekXzwlm%Xix*&WNj>T^B5RB_a0#!B}+wNX{d3R$fD!Pzc_pSC=3cbMWO zr{=eT^Rkt4Ywx3Joij_5;#RNA7ZTXoWS-D6Yg)+K|I0GY9!NfQXKG2@j;l%`nqo|1 zXRgf^>#E;+Vny_3gW6*mX3;a%6tr0RgI`1l?Rc(Q$h0WrgTXT^wXLtTY#0NzDlNa? zDK3fot-c`e)`uc-_8%^rzqWBLjxe~Xl(6zr&f3L?b{IMv8aDI!6kJW6#QR%@Gw?+SGn>v%coK z&qc8y9h}L{v&A^ML8;Ye&c{7}a}qZl(g^d};(L6iXRNR;$oI|hH(%MVJsc)+bk@uo ze&xvN4cr-5%xre7O?@8_TcM}m6)h*F#{akQa#1;BVg1Ahh1`mtqb>_ow+616xpGO+ zx$fW5DfJ=iA`R9x%eLK&V`>dtJ%dBx>*INoKijc^BD=>g#r(d*LQsC5T{!=0<^Q%r zZl$M>T(NB16#aZpxl3Y*wp!2D9-e)oRBS%j;YAt+3fdwGmF`& zXtias&Dy8AmYq%HS`t@O`9xnhZu8wtro}Oal_8GrkMGTWzP1n~^YG502R+wIZp~IV zIAtn)cKMslt9~=Fg6fewQqNDH+p$YM5L5)-eSEM_^VR2lC&d;=87dz$s=jr+@?OWy zq>$|TG^59Mt9NmSG%b!RNWAHMvoL1+Lam;nqb@6E&U3rVa9b(FOy`+Fki@YwKQa%m zW!d?(xS5;XVs6mq)Z^<9xmBKS>Ap8zRrC4TW1uL1q11aj{QT`XpzLoo?^1xz+sf{( zpwh&r=5S8=c2Hn6FMg6_f5v>8_k^O8U*{aHpL$v8ob_!{x1C9BJo(RiU#14{ZCEjN zPmb5U)$g8$-_XdLxlv+Z;(V??^-j30y<=iXwwk&1 z^P4w$xumc13g48mae1HC?xxXmdy(j5_H{QdGs-{C6y;hRWq3N$Yk9NTvB^dvZd=n9 z%~mtFUsmr7^0?rml9R`7S}JlajxjXUJpTCf=3<|yj;Mo&Gv57uxuy5=Mh&LL5r&2m z%A6AYUtPo)1GOtBa_+C<@#!{U_dDyqa3#CN*H0@Xm-Hw2+nu==|EoM^*J8Vu>F?FT z;@4OF%d0)x!Jb^l!~eacEymL5`9Ed5=k-s^PvzOqdRosI^5KPK_2Y{c-QVv_SZ}xR zYm2|AsLAz^4b$`A^K<{H`4Lh7CcXae?T7xS)0vv*NbB?mUIMudMNQepB@Y#n`874qn~) z@a@c*UmK2omcQKi>~j6ePV>#5IntNw#8toe^=8Yp-p8{H)*qb1b5iqfNW{aFbL2gp zTErM92FQ8+-yisS+U|1#c~4%cUHS8~=->Y}o90)B-CX@?{vMArZzfLEO%#f%dY`tx z%wXI7ms2ji-*)cVpVKRy&bhDUf4u+l!vo$mHeI!kr<_~e&o-}n+qnaGEt9|0|F1I7 z?W_BCLg%Q>j@ABk|L#8Wt5{Qd{#>8s$D{JkA`I96ez|{l6mN3x-urq1^C#|BTB)wG z?(L!2dpY%AHrM+mhu&kZ_e)+{cjo@(2vJ+v=hfTy%+Y_PJbT{ZsqL25dWyO;TW%g~ zt*`m@g+E;GiH(7*%E^fAeQTe*wd3yS_jE~#_{44Ii?l;cw7kPL3Wc<&> zuZ_l4h$yYg*wZ+z;MuDQ=M^qce91`r-|N~vG}b19h>ieD|Meg-IcqRD|^=I<#+Br<`r4p zRDbM!T*T(sH|wWe-Se|KcD{XuW~{CtZ|-k0_r+(?*&-;x>soK*}Ct6D4X{`t`INc*hd4<|EllZn;tlkS9tr2 zHv-z)Di($&#)hUAQJP!|3i`hJDK3d6sR|k{Rz?O!CI%J;VCn7V5`sp|>=q%0CRWCV z(+i{p_28VP(t>Zq(u1;HLeeda%_2fG^`l(F+zOpDd;_;Hml3RIVm7xh+pZ}u_<>Qv z(7@cxM8N7RZ3lNxVqeCe{d&VFB;ww|le zk{`=dUODe^V_{j);K9iBzdHQuow+Y(uG{Gyw1qYP-rDG^#+UmqFF*fMt~&F>{ctgP z)f+2AvL8J?+uptY|FlQv_y4tWHc~;QZ>DP9gd?ukEU%TVS$Mf%d4d3^6f8KxW?(RQYPi=0#`jq<9{lS_rG@jDF5?g$<9x&U2FEn{QOwt zeP2%O^IxZ&NABP2cGY}+@o08<`s)+zE2C~-y%;}@+dg()%3l8ZxEcTdz5cY~ZPfSa z*?-@^6nZV1G;{rdwweceYpt`)if3MYruyT~-E;f(*M3S{xuE^ej#sa*EH?ThQoL66 z)=smyFH=?P>bFe!QuFg$mFAAv=O;hCUi`R7PXATAQPt_N&_Ld3>t>y~5t8s_$3JzHIsZ z%QNJ8ck6O*n~I*=xponGZ_a)yT-J6^Z^_oBezk|6CBNOgv|)L9$dSo!ljllT9-N|? z{(kPOcb)QU`~OJW|0~(2BIP+fLB-Yc`TRHS{qNZMuU)gPHhy-=F*5jM;@-~HOU3TL zskhps9n7Wq?9x{=li%THe%F@gyzbdwUmsT#@JRo@{@cRZhy&AQckVv4-!ZfFl;$#D z+4|jgzPvsxc4KPEw|%=liFqrWy|(Vc)emov-wKjHKaEK~@A$XEY@2)6`c(dHxbvt= z)U#&ejOMFVYtDba{L?G@QF-iV&T~=z`r_X{*4FQTTYvujy?mYv(_b=|^BBadhcDj# z`o|=g#q} z%jRD{Eo=K@3Ez*R`kiZ6FLj71kDj{WMwz7ldH4NSBF$ANcm4G_Zj!70@!+~?7dC9Y zA$4e<+Weg8muvd-mQ5(;bdCN0ME=4vk>DiT*cbfi-e(HE_GOei-YI>(^w95J^W;g)E_E-Q0BRe#k^@8QR7&u#upvdw#Y>GS3q&h3Sb*Du!G z72I|8eD~9r>$jP2o?R%pc=O9XiMgv&yYvd*$u^gKcKx{C{%$I_?ailZ*BEYZetP>& zTxWsg|GoGBZ=7ZweQ34ok7djE#y!a2o%UYkyLi~@dF*>DV)xyNKayYey{evj+p0f# zxtBK2J6XR{%vNT}11Fzs-G7Cdd-|h_*ro_)m6YH7FB|CVGpVBV$LY;Gx%sy}I~w$= zurdGq{Tq)zf8VkzxqsW6>+M3Jz1QUz{$|SFklUCYl4h!(|7+dP-?zS=QL6Q>+5DDu z{rT;uqTbxHn|~uVgyHkL9T&H?@{F-uI; zizbaa^RnX?O6Mkg&pH{u$oywT%%`jGcfH6>cG2iIj;orrJE{M%TlKSFJm}np!fJsX3IprZuMC$8)#e)^qy*&ir|#EbL==v{wA+lb3cy zeVik>J{f$|> z!IkxRMwX*{%lgh$ZIW^I&(h~7?fWmJ`E2_4`Ar}G|MB z_9b)Ex-EY)S7>}W+^{1_J>Q!rec|lx>38p1uw^)vaYxpU^3oS$lK#C|!^(p9(Dy$QG| zChDI$ahKB^nayt=F41TXIahx8)tjv`>sDmf3;&d<{G>Nm?ZM`6dFGt0N} z?x!KPRbcMnANRwAv)4=b{gyYYmkph^+UICTzQj(=ceihH_WtwV`Ibj{zWwKQcaN9d zUeB}c(!b~RF<4+450i)R~V>V1x?H(%JIY3<^ZUcK*M z>N1(cnu%2$G5k|gL`#Yl9VE(Td#&2&$Z5~s`LL4pmD-ucdo1@2_@gJPxNSCDRA+QA zea5r{cFmn33g+TnQ&(@^9^fPKL1=NA%k1WfJW+i!eD$IKJdgca{Qa6yDM(6XU2>+Rg)!yC4lO6}emkkOd^ zuqc!DkYv$8O^`{Vhc7L9CjBJHHJkgzGpA1z7g>EQ&SI-3Pb>FU*7F)m7G0E4~ z$aaohbd2^!mf%}@2L+p>3@;vC?&JlEieI=Nc!@YyVZ zW1MFe9-38=l4KZWF{|_AOcti6Cr$-7Ts$=Ypy;hfj15^2rkp&u@Wb18d)vEbtFo<3 z3%fPJ>&#CPp9vAc{XT2vI|-$6$*wcL?`p+&i+`k;htbycv672noq#0 zvkgWL@^i0BT}<-afs)Aq!ansg*;J@9f)ENC#@d?-rHDdKMRe32_#n9nCo`eZU|MYl}P(h<+GncQjwlOrn_P=h5Hnob zu41@CRCuE58hb6pbmiH34hv)=e@sevefxtZ2k)ibViH@rI(O7_PUCxXQ^PW3mm*hl zlyR}+Wx*mflk*8Jpa5(BRh6x~NYl)VC+X;ub(~h)d0H-d^Kmtmu_!Z{ZHO=3R`uee z(4k3wp9%_J&t7wVj7pe{nwUtzM=iN zX{HKGa)a1(i7B%y>I;^gDc5&mymenc>8La%?FK1+$G#Y;6=nqR2$X5GP?$)+L`(8yo%L0{aSD0r# zDA+QCRiUC?vTsj=z(N6=BY!V==YFS)W^Mn=ysZ!d-_A6wF}K-A`jC;Mvm6Kx_F!&z8X zKDqiR^Ye~Kro-Lm^*5-=&Fp-Z)mFb|Wx*a1mbDKQm!rVwsU5*% z>2y#@Uw4Aqoy}Uutjuc^j)e!N62P!YcLf)Q)Mw0!&Am+NYW-ZST8y zil?11czJ`u)IDCpmnTJCWW9HS!}R5WV%@0`l8HxmU0fu`!m{##q0)>@8Oft-Py9@B z@DM0E$=joP;9**X5hwzWY)bWhLB7n5q)6z^~NFFfht_gRKaGu0dd3q0MHbbix`;5xq} z`JqVfh1?KZ0H1K znVE72@0^hp>e&3?bce&rh}N0L6^ApP^srV=iMZV7Go?91cG^1*{^v=H!UeW8wX2uQ zyz-eJspCDlNkP;`;(v^!{KDYI3k6{UOD3_;@8+&3@iCEa`oWZSsqy$+2A~lu$?8y`_&8Www z7Oz>aUou}>n_|XW7ji->g>h1MX<_D1jh1L*nPLem&P@y_zrM*cnbNWO*#VE1LmJo5 zWGUsUs<}#339Fc`c2_HY?{l%Z&*4+NLP(#E&v(9)E4_D2xLThQad(O1Dpm2*Gp6aM zsx)WwXd9j~6~3(L?IZZNLpd~Yb5+VA)zv;h2iuP|ZGFnX>b5mWjD;z2N<$)pXiD59 zww2Rker%kRx5Kn~n#@Tx-c1e6d8rA?Oj|vEFH+Aa&`Wrd6m|CArF~NC);$nRO)i{0OO-pCbvaRdC3NDT_Hhy$G z^YRO2kcY3GpZIgtzRQ{us!qDvoIJK|a>mCBZjuA02u;gzbmFptsAxkqIMyhOPh*F30}*543m zZS;`GV%g?hKV1_-wAExK@}5L2-zK;y?8A#f!<_qPS2Hb+FkbyoY2oZ^tRSaMyED;p z?YY$g5?8xAw+KvgO?-SwV?xzQ-5URT$>8X2^Q8u-Oea@Ym6D>)vY4Jff|SZW~@HG#$c7{=4E%j#oyocifi^&<;kZD(soV@ zZE9E{YP04j_oLjqr(6<6w9^i-w5fz|*9wxj+9g?eiDg?^f z9YF`11-Tl__qQ!k@!0vqXhVNRp15$Z#M4=v&N)u?;yuAP*2vBDXo+~X`D9ZK1ZFFHL=xqF4E4q*5_k=R@(JC$3Bqp*M+pVo|e<- z$vWziZ(KjGym0nb0fDWP+Ig(+{!k5Gv?0>QXlJkd$@O}!iw#zZ3g1mV_f&7EVr$^q z8JR`UYiFW<$K2>RbIO+cvhNeU+ooTa8Dxo0e$HgMZQ7LiplC3OoHx03 zxz6GS4cSVM*y8IcFFwuYdb}<9Y>VL{>D?+}qGqezm(6`q@4rKDUiaO1EBBuL> zfzrsS*_;1*OGPJ!WUGnY{A_pCvRM!0?F~Wtb1J4S+1sEYx`(5F_Q{QLNvZQT&U;(d3i5S}_fy}u+ZTfr z>$KKOZcbJ2X-IoJZ~9BA!r;%Fe!4l_nWB^A4`dOB<_d+8e#3vaJnZjezxjQS%ZvI=fA=1{!@FE+_wOwnsb1jZC-1uePnN_;cb*wIHA0$4NjSkDb znYqTG%XD)B-^cp9dg-laUrp@1<^1`0UiDURnoF)SS+d=FH%R?MxmCLRZu_n?=rR?4 zeB^1V^6rMTw+9Y0?U5~v`hH%!C+VPz-Q4#)pYGnPZT)C5B`Hd7&2rUPK3-7hE;+nM zE?i<_j`DSzK-4>~Mukj;CI;f8LsOM;4crPeO0^wcM3+ z61<=zTTvimd^!E~O>t1ra_TvHyk0pQ6mB24n%^B=7RH0pM_`G zygs*nxz`|eipZWTH|C3qNL-!8Y5gF(-Y+m= zb5%-G-uFVg&E?f@K?xz+X^W0Nm;Cxp=6Ofp+8G_EUCife?zI)Sa=79przCQ%{CJ?K zS+~2I`s~Y&&o2i?v<9x7G4AA@l#_lxzyCFNhu6u~x>vUCQ*}t(T#=Hr zaPHYZc5RoXxkT#SwkA!x>@9OGTp5%%jyUb!l3ae;T2jPqYucxZ(zo~67jB5OH4s#F zx$L@sU%QioO`C2-&Ghcs@ghZ4-&;W;?jw0_Ufj)#ak~{2vQ+s!Z~b%?S-!niBS);? zheyw*HZI;oNg<21e|@~y%5Uo(1tpGlb#6`W`P^-t7r#a+50v!-HB^>;`sF9i7^q!Y z6MgoV(oDgb_mdaLcZEm$oxUL!o4jmyb@BPVZ-0NkC%d=w-TLL?f_L}1Se*I4ZvEaT z`^z-n9Q>fQ+x>L)hjr7wzqQ@>I=9Z}&Ef04(`U{udDzDG)9rCZ^f`M5b9otq>46h@ zg}1-?B%rO$YHnz1WHwz!PEZQM+-@x=XvEBJ9%5)}Wn?zJL{U%=&RMA__(rU}!Y``8 z#2_)y+bh5^%_GGt-!I6leEVu8!FncUGh?Iex~hU77$poWjf_kb3_w63kC)59z`)SZ z(AdbR-Bew0yQ#X6nrywHg(bQIBNJmIbTJbXQ)4tSBLf2i3p6o9GgA|D3^8*f0}L?> zb3>3=y@3J3W#$G(7@Exuv4|OCI?&wI0K?JdW+oWEH#av$c62>BNX#uwOhK+ec8rCA z8L~pKItwEc^iVLgFg7*A&}(9e5vmqu5Fex1VNq{@;X(^bGYp?t8X97#voylA*wWYn z9IVKeSejwlVQCKah!;}uTUuD4TWn-tV2K_jMh3