From 935c24cc18a9d21fe5198012055c828b4b7c6d32 Mon Sep 17 00:00:00 2001 From: meriadec Date: Mon, 12 Feb 2018 16:47:41 +0100 Subject: [PATCH 1/5] Remove device from sidebar --- src/components/SideBar/index.js | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/components/SideBar/index.js b/src/components/SideBar/index.js index 5ec3acdb..c51619c0 100644 --- a/src/components/SideBar/index.js +++ b/src/components/SideBar/index.js @@ -9,9 +9,8 @@ import { connect } from 'react-redux' import { MODAL_SEND, MODAL_RECEIVE, MODAL_ADD_ACCOUNT } from 'constants' import type { MapStateToProps } from 'react-redux' -import type { Accounts, T, Device } from 'types/common' +import type { Accounts, T } from 'types/common' -import { getCurrentDevice } from 'reducers/devices' import { openModal } from 'reducers/modals' import { getVisibleAccounts } from 'reducers/accounts' @@ -26,7 +25,6 @@ import IconCurrencyBitcoin from 'icons/currencies/Bitcoin' import Box, { Tabbable } from 'components/base/Box' import GrowScroll from 'components/base/GrowScroll' -import Text from 'components/base/Text' import Item from './Item' const CapsSubtitle = styled(Box).attrs({ @@ -44,15 +42,6 @@ const Container = styled(Box)` width: ${p => p.theme.sizes.sideBarWidth}px; ` -const Connected = styled(Box).attrs({ - bg: p => (p.state ? 'green' : 'grenade'), - mx: 3, -})` - border-radius: 50%; - height: 10px; - width: 10px; -` - const PlusBtn = styled(Tabbable).attrs({ p: 1, m: -1, @@ -72,12 +61,10 @@ type Props = { t: T, accounts: Accounts, openModal: Function, - currentDevice: Device, } const mapStateToProps: MapStateToProps<*, *, *> = state => ({ accounts: getVisibleAccounts(state), - currentDevice: getCurrentDevice(state), }) const mapDispatchToProps = { @@ -86,7 +73,7 @@ const mapDispatchToProps = { class SideBar extends PureComponent { render() { - const { t, accounts, openModal, currentDevice } = this.props + const { t, accounts, openModal } = this.props return ( @@ -131,21 +118,6 @@ class SideBar extends PureComponent { - - - - - - - Ledger Nano S - - - - {t(currentDevice !== null ? 'device.connected' : 'device.notConnected')} - - - - ) } From 71a5b8d0e01a61de2685a27cf695ed749a97dd53 Mon Sep 17 00:00:00 2001 From: meriadec Date: Mon, 12 Feb 2018 16:52:10 +0100 Subject: [PATCH 2/5] Update TopBar bar color --- src/components/TopBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/TopBar.js b/src/components/TopBar.js index a6dc5cfa..c8169d0a 100644 --- a/src/components/TopBar.js +++ b/src/components/TopBar.js @@ -41,7 +41,7 @@ const Inner = styled(Box).attrs({ const Bar = styled.div` height: 15px; width: 1px; - background: ${p => p.theme.colors.warmGrey}; + background: ${p => p.theme.colors.mouse}; ` const mapStateToProps: MapStateToProps<*, *, *> = state => ({ From 23b0f12fa13880f6c872ab9cd40d159b2ee98c32 Mon Sep 17 00:00:00 2001 From: meriadec Date: Mon, 12 Feb 2018 17:30:17 +0100 Subject: [PATCH 3/5] Add Rubik font and use it in Dashboard card --- src/components/DashboardPage/BalanceInfos.js | 54 +++++++++++++++++++ src/components/DashboardPage/index.js | 10 ++-- src/styles/global.js | 7 +++ src/styles/theme.js | 7 +++ static/fonts/rubik/Rubik-Regular.woff2 | Bin 0 -> 49632 bytes 5 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 src/components/DashboardPage/BalanceInfos.js create mode 100644 static/fonts/rubik/Rubik-Regular.woff2 diff --git a/src/components/DashboardPage/BalanceInfos.js b/src/components/DashboardPage/BalanceInfos.js new file mode 100644 index 00000000..b585bfeb --- /dev/null +++ b/src/components/DashboardPage/BalanceInfos.js @@ -0,0 +1,54 @@ +// @flow + +import React from 'react' +import { connect } from 'react-redux' +import styled from 'styled-components' + +import type { MapStateToProps } from 'react-redux' + +import { formatBTC } from 'helpers/format' +import { getTotalBalance } from 'reducers/accounts' + +import Box from 'components/base/Box' +import Text from 'components/base/Text' + +const mapStateToProps: MapStateToProps<*, *, *> = state => ({ + totalBalance: getTotalBalance(state), +}) + +type Props = { + totalBalance: number, +} + +const Sub = styled(Text).attrs({ + ff: 'Open Sans', + color: 'warmGrey', + fontSize: 4, +})`` + +function BalanceInfos(props: Props) { + const { totalBalance } = props + return ( + + + + {formatBTC(totalBalance, { + alwaysShowSign: false, + showCode: true, + })} + + {'Total balance'} + + + {'+9.25%'} + {'Since one week'} + + + {'+ USD 6,132.23'} + {'Since one week'} + + + ) +} + +export default connect(mapStateToProps)(BalanceInfos) diff --git a/src/components/DashboardPage/index.js b/src/components/DashboardPage/index.js index bd9dc575..ec69d4fc 100644 --- a/src/components/DashboardPage/index.js +++ b/src/components/DashboardPage/index.js @@ -13,10 +13,9 @@ import takeRight from 'lodash/takeRight' import type { MapStateToProps } from 'react-redux' import type { Accounts } from 'types/common' -import { formatBTC } from 'helpers/format' import { space } from 'styles/theme' -import { getTotalBalance, getVisibleAccounts } from 'reducers/accounts' +import { getVisibleAccounts } from 'reducers/accounts' import { AreaChart } from 'components/base/Chart' import Box, { Card } from 'components/base/Box' @@ -24,10 +23,10 @@ import Pills from 'components/base/Pills' import Text from 'components/base/Text' import AccountCard from './AccountCard' +import BalanceInfos from './BalanceInfos' const mapStateToProps: MapStateToProps<*, *, *> = state => ({ accounts: getVisibleAccounts(state), - totalBalance: getTotalBalance(state), }) const mapDispatchToProps = { @@ -37,7 +36,6 @@ const mapDispatchToProps = { type Props = { accounts: Accounts, push: Function, - totalBalance: number, } type State = { @@ -113,7 +111,7 @@ class DashboardPage extends PureComponent { _timeout = undefined render() { - const { totalBalance, push, accounts } = this.props + const { push, accounts } = this.props const { selectedTime, fakeDatas } = this.state const totalAccounts = accounts.length @@ -142,7 +140,7 @@ class DashboardPage extends PureComponent { {totalAccounts > 0 && ( - {formatBTC(totalBalance)} + Pew8T0RR910Kwn@5dZ)H0wkaS0Ks_x0sw;m00000000000000000000 z0000QgA^NrfJz*iGzMS*lN<AAP2D) z41qjb)$ox8-+b(ztj+0TXy48i)5J%b@1iO0IkiXgK)+JU5d3kli5l zvd@0kEZP76|NsB*Ng6Sxxd6HQe*qK$DXOZjtLq@*k#fPV?T~xwLPy-`;B;R@dl0JF}T~N=9a* zE26FhF}1Y2KQ7k=&$YCty;-nIarY-Q-4^qR7v4mE7)XROKk)8`1v0LzQRdH#*_JTH zd`IML1s4evho4(`+e;|YO?pe#laMlAIlcal=8ct2?oe2bTIi7 z__h%$n2iT^#9bAKY}*GMMMf9@hz;T{((i+${a8pbX?nWp$m`nG`Jih}LxqD`ovOx9 z{rBUn$>zpQpMMbhK-R6S_>6=&&{R+RBb;Q@=0@nFu+g?wu`uVk#<{Vl<5_wd#UisI zG7r_&Cv&N`yd=6o_UY#&tCR3$-%8Vncd4?OBfqf+&uqQ~bEtV8mQv5wfPgby6FTgE zE9N^rJrE@%6{=R+6;Oz9nFp+6QOl1M@?(uMRXWLItq z*Dh<M#noX^aJGF1vC~)UsO{VD+g3a6 zu;1#yc4O~I4CYLwjiv52*-l&plC9*f46gyF-vJr|2Mo!jcz}YztNRiKKmi0W1{;~J zdouzc#$upH2>ZWzm;gdjfLB$%?t1S|EpRa0(BcTK=M#nqkv=uYCsf4t>DHX-X7Lse_e18zyzVz2cDb#HeeoTBE8fC z2{4c-owo+q@$CZmhY)jmqsObnvlSv+Nmq|JRNo(Dzr8PbKmiJ1L?KnP>B@dNVD@>N zGJjD$cU9(!Hlr8;n%FWY+sl#$1R!`1#oUtj>=Ax0Dy&3FzdkK^tg6t1@T#! z$>9Id*3XI(Jk1Rc-_3ORU|9qI-xDfbs<3Dp6sRKHKdYAoG{7QJ9 zzgIa4(6{4{o@26a##pqsj}9-|+}3ZcH6U7^C)O(M_PvDFxQ+%Im5MMd{Z4Nm^#1D5 ztmsLHXbz~u6F6WMi{*(N(Bwj>Qc)2;zk!j-z6NMr4FqqY*m6TwEaSTc%G(C^PkEcTP4CGgi3bX$3B&mEgV!R;OU#D)VZCX zUSMM(M1mnS1o^a@b&*ErHYugB)^tWGmH8PtFh+rat@At{2$G+lOKpDM<*rS~e}qC- zxVw(Nd`3>lA1LNtIUSWb?SSPkpvw3*VF^G;V4-IG{B(G_m1P|aD_OtEQ;?*S7J+I!z*-^FcQ4_X0Jb-EM4`DjqCJ5gTj$ zD)+ztjJf~6wBOplyDJAODkvZv)}elb%vBj>o3pix2na|?fItH2r0CuK6A*LTJRxaO z4Dm)ZO@Dlm1Xuv1ry@%f538#)sHhB8)l94@PocIxXvi=$YMw$9CgBI{pAZ`ZQuE0D z51JMj&!OlEstWL$??C-4w0}U?AN2pn=TQW57&08A%18{DehHGhNDs&cd6%GYii-Rm zs`sJ!0@@#8(Gu1*u;~r9-j+RR1jlMdC*UUBj(hR>Px|7E9(>Eg>wGgNeS5cx#q0S7 zRaQ5mcgYYiMtNBkTy-^YbuNKwr~|GmIcQ`s2{i?%xg$Y+O9n&0#ay3C#Qh)W7Y4!? zdt+ij@8wm8_JSu8u*+rOh~u}>L!K0(1ImFhLdV^KxnKYkFfdafcax> z{#qy5E&>w|7n4}{7gHz@ET>{qBz&1Sb}z(lj=Lz)11aO;S5(FBf)dr5w3B+@O}}DS zrw9RnaB+zLmIf?f;IG^>x3u95=o1o1lzih41FxM>(Ofs3K#gbXBg9%UcEadL8@CgO z`opw0JLWOuI)ml{@t3X%a_Nc~#YyF)=+=2X9LoK#zY^j1FSe+_Uw{PWQ6FdHlfEWl zXA$)5`vP?U=7nZc({})R@eSjDq3a8ANP;50Bb==9%-*S-g$$DhSJzzks%~-tamyuJ zO>2HVU9VQtYF{7M*NsZ*Y?KY&bekPLg-1nvP#A~?;*PW>Ys21P{5F@mLkFwe#QDKPxx!RPar)8AOnXyV!c!#R{>3%BdV;ja)cbFXZunFejwz zw0S?9}g|0 z93!7V8=N%iYw&uw<>{-5zsgh&Ujuh@|?%pL3#KSk)YXIR;&Z<%&ryr*hD8wli zip1JfIPD$9;$ez_-4|DyV2C7e<{}P5qAE4zfe(b)wfK75WYOL%wsT`C}tv2VC=kxn>$=&u0wIY8!1SLi{ zIOS(jVcui01Jg9biH38KDVH@`5;ZdsYcQt#Pu~&5IgY_1uH3vSD@uIW8&YoV|Ed!w zJU#y!K!O+lRbv~N)MF+fOV?K{xy~QD%9Z@=MfJ_D*SwgGkUU97@7vyMwo2!S{rne? zTW{J^u;kHC_a|>`;(FuwNEErp<1hU2uEasyNg~<%-axF?OK?%<%n|)+a=-C;#aop3 zft8)BVU4VvD`TUR%3H?9egF4gM)l_3CaZ&(RN~alQ=XN@cDzTGb(7F_SR+P`1}BxY zGQ>u1@su=jsFpx>6>7SalnLvaZ=F4E@{ni!z&Wn8^seIpcj9*P3BJjH;Z3D-{PWT+ zb(}gsWT$#jeNKH{{ZRc&$e&PAC=j~;3y7ADWn0-<_LTkQP&qo(5Lz5MA#aqI^2}%t_93l`aOTK|&kdNEzkZDnvJyFv%J=V$1Av-I0^G zFP;3_u9IrefZ8;wZw_M|Q~i9`Nqp%y{>;C3oqg`{kT?3EFB|;G-CH;KyvN#%M96 z2w9YDtt~|!OE&=)$)h4Fiqc)z#@5B%AX2)&Uh#)d7*mC%Ez-Y2ee>vDaaM6GS6-z~ z)hb)Q+d6|#uP*t%$GavJ)T%Gw%@XK)rdDSVDs*s!?x^@$-_ zcoxP+E+#^EKBc`M=vQk|05DmTQug?W`7vCv`QjRxl5fc5<*+8R`&~uY(`+jixyW}E zG2t3Q-EYGbq(r2*G zR=KayTjQR|Vsp4WzCgGbl@C2gq%!$X1VLIz^zpok8NTy^#xXVNIKMQ?vBJjI&OQ$9 z7=v*WCQX?()6VXhGjGA7CCgT$$g%cOO1|jo)W}+VKm2YyY>X+7Gl8xja-f^fkua zTG_gwc1MGD+STr9-d_9c7u&`s^~>$z#l5`HEp~y$=RLgs_dXKNo&z6!Q&+k!*{Sw_B&w;Y$ls!Lj9WV9x z(qVMz<@0*!=^T2L|9{ZBn={x#^i7_`f-0VI>J+w6+$_z&XTBcObflcuU`MHk;X2v3 z-q4T#q*i)|zQ~e!Hk???#QbHsy!?FKm6MiY{+o3r{v%h)K;hO6jPxXG=4S*6%d?dx zoZS#n1rxO_N=2;_)0Dg>lha|zdG6{J)l9~oB0>+hY+$K37L=Ejd|JZ-oIA-67J-UF ztwrS$brx@yGPYEM-)^Zg)nrL!>ycxXn3F3)@~8_cSBaD{lRpd|>hN?Jxrkgro+Bwp zDv~Bh7i0k6T)HBG?)Vo1vEXI$pCgY|fD|IdNC{Gkl)=hj6|i<#H->&xgYXbQNn~gS zrU1S`Z6i#~^C871*Mo|a50dJ)~;?WM(cB&xsTwl}IDfi3}ps zoS_s#k|06|At)#)UrsTIGEATk3s|{p8uWgbpH?}dxEeb^cTmT}s3XuH^H1q5)m&x# z9T~ zc~kbok>hxN3>~0OTUAHs<~TRXRoima(1a^fRyWMU_#2N5lQ#{u&tB_Ib=Cu_218!*=LScbXykXHb{gEqfd zrg4o7L-HwkLMAVUBv7zvMfxO|nN{vmI!@3|QcelZVL5B$8gU1?OS?yTzs)G!2ecuEdy zpVQu0Y>Bw0T8?cZl-SosyD@TnP&Vdh5*s;%FG}8%MVd#>1e{{6tRW)ZC?lJ%Yp9{Ov!IiK*cN22b@Yj$Ib1rehQy8T{g7Y6LO^F zR1=AfJkagM2?=E|fr;hSHqCy_l-wbcyLhbWu(61J{y2x8a-=9RO%Au~xe_Y~6WPGW z<>@meSIOkin>O{t#kblLZX8d&P1q+vbGN`FP$ElZ5kHBrrO7-_00kd^qH;vV{EQoY z<|;r10mZ#(9QuP8O&l^M&&U7~SdY25Hkf~N@#5)$Sget3 zknAwoBRE2`7}-RQgcvx{b{uMnSH}z7=u%%6r-N} zXun!*)A{TieFUYsIE>R~WN^w*io@%EQ?LS#V&x;NvyKRiSG~kKQ(Od0gs(TK(Vp1C zH&JF*og$$O=MlA(so*=(KQP81CS^Sa1)Z#!8#bm{UY#U2Y29FMD-~{P+hf~|QkmYs z>xv@CNJgDqS(`#^DR$I+#~|NXYXbG^@Zta^$fAy%0|>QOn_) z_T%(gE_`4s1i*!!PV4EvaQu|X%C~>~Gqh?PZgr}ie~ySg9=|&xW0WF z4=ADV1~ZPc_`_3(D1_KzBN!^V8nmtZ%V+QRmJBb9=uBBTgv+B?#{lb{+VrQXbr3iTdB(j!W8QP+{+L& z0UnI|`@jAx!cgKW+B|%Dg_DcZ<{nX;8-#TruKbQm$HBQ#4(y2XsMsm-vQR1W^0N(8 z<}=JZB_tCNC4GeZt<0y9%)DO!xwkewl=LzIxAR7SF3s|;>ZPnO5CU?Z0~m)pGL?{8rsOnKju z;xrC;s<8$8=@45F3WrYY&lKy@zi8}jymo1AOd-S2aOk@`q@x8E$Xye#o^mkLMu}k3 zJ2_s3y9MPQaBDK zgnI;C72l2ixw@>c^@6+~98~H`cyJmuVq^yHOJJ;(w{#P!+!wRI!Rhx-#!ut3y15S|rcP-fSIS1q}-`DGzMY-y>KW{II_ zlL2MUl1>aU6jpNC;_zEK9TlP#Sgh_+-k1}%oQibF7I%ctIi3V$oi7+KkZTQnX6p8-Nx~pmZc2eqCz6Ad+RZnjlh0C`m;fG-~E3 zDi2#X9Kp`~AfyL z`G@P)-CG*6t-$1#q!FoQwNfHiIP8f!q)AtQI@~2F56GVp(C6_-arO2=>NB$J?<4mp&` zJ40Y6Hq>iZY7!Ui#MDC>^ZX`u9tu#&Qq_Xen-r2es}N4(177peP%pdvzoizdfgLwZ z`q@ca{>m+}z|%j|HezgnY+m0d&p~$1-oe^^QX_BI@xPBZwYy*BQ1o^Sa~vb{r#xJK z;)I0HgON`nE|M?#i+7=*aBr%1HI|0|WSG~(F_KuPLXOmnC05R_x_S{Q*S0L8MDdPW z-?~19aWxjTRXjmsJwaPxW0{V5AB@Wu3vp1Faaw*IMvKx9C`Va&n|S+V!&2;(mY4`P z$UL6g92^?JxoBoMQe-6tMy8m=>X+(hgDh$S>@Cn64hCow0q44N56 zZ>Mb&-qgbkZ?kE30wn$#LA~hZd`}AZ*FuYbBhKboG+rn%P%d`ShAX^F_ zt0*nBEMGnD|kF?Y-o=t+>!$I@I4@dv)AkGvd1UJ2b-IJPGj#l>S1w<{0 z6p3GHxUI0!sbl45V~AT@$hJhP5~}Fk!}8wqK?qT<)Vm9a#zHCHFTy&LE}0yw zn*GL!@WMDSeQy|z%6(HEa|_R+6}Mr=Z!Mv9pBqY{C*yc+1jS#} zu1-;yfwBGMqvsc&O3w^ap248`iN&j z`Mx!DI?f6!r!XZ_E(&x7upLZpIqQjn*sLw888=?o`e`;c(0CTh5amK;*=8Eb7JBjK z*iR4~*^}RpJTp^U?@z*-C-291$V45TjlU^?rw$M6iU$H~&^cdd>EaQ$yszI>*J=Bz zus7XofHWlHokp_+r7;lXEE;d}f2D1%nO0_!ON z>xNmYaY+c#9s&TH0j$ddz+QNuXAKV64hX>79B>x)!X~I2VQ58XM$%nM2);MH;}_A; zh01{LJiv)jAA_^*Q2(iq5xNR)gdWmp0S1o?>V8hUS70Y*+dpl+WOM-@`yFaMEg-E% zU=wXO3jznJ?6FOkLSDyc9V~%CWzjiptx)*Ri)wBi9g*|7V*_mq;xSl|* zmdSg7h_wjoiOC*6Jlkc7A1S0ob0N|)jDGffUOTPB)=m}o%*MGIp(VY7?Ol}DA(>aU zgZxoHc4(FiR#okx?V&cJl`@6%4@~7uhSu0l^}{ig{2|6NqbK<~43Txgg@TdDzh?m9&e^qsANFe)=8=u3LELEo}9opY&2wF~6tEdV)Zg-Hkg5b$*rTUtF6 zIRNuRt4K=Q;(6D{dke>eY||2HS;>U3&SD(M*2ex~?>`_Xj?TtaP5H$1M+1VJ*Q}py z!f1vSzS(DX{))dn!pUrQImz)Xq?T=#N&93O_;f7TS?70Yl?Pq9M*=<*%UF7F0n7Um zJU4+gh0n}KNEiTYL60m``OFPIJIcg7ve#Ff%i!4CHt~3EEH+lL4Wci9jG#ldjT{5) zb(N08e6x)ODO2ObHWE>jy{x!Frda{&k!{Y)-c&1zKFe{w!za|FxdygU=2vCF8L+1t za&snP+`>pQ#uB!lUNSybWqY){Zt?cxWcda-;B~z6Fa5(h;F=Vm&)r%zMErqoS62Wj z#xIWE1HYWh|H*6UP(Z-~k{i`lyTyu2zd4@I@*MmnkYRJS8hvD{YWRaUOyAr7av632o38) z^)u11@ls;!jyr6>eb~Eahoscv5Px9Vw-0|vqZ~Y0owpdZi`F~8>TcP4%;YlbkYaOp zTNJkyV0EZ>y_OtxzDy^xzkGif=49W(VfNOMq!=ad2w7#uqQ@K-$~%(Xx|L_Qq@(U0 zX|{449AdIDBIwg0`&V-kmM!~&RRKH|#huL0F2AUe{uD(w-C`Sfr86-x#Rn#hK4T5@pf z)3-pAZ_HVYYn$1Z_os0xQK=^oytdBb>jYBm_C%*~|DJ>uM_Rs-)9T<{*+*-=n$$?ipd(Gxhn=l4A?iziQWbpo`ElGk(4_);TVpu&g`$I zNAwy!huC}=7_lW}3psJnoR0ff!`9P7DD}A6ytZNK9e6pJ%ZEiLu(>&W zzI?uO=tUO$$0RECi(jXZuGdxM7rgG!gwudq%}}yiYcdt zCfZqOOKlmAj+yVX9Mbi@3^4x~$ssps&aVbC``g4@Q9Qr*Q8HQNPVJ;n1Xi$`^=x4$ z`}5)Md(I{mc2+Z6*bqr3O)4ewsN9O1MUz>HhQl$Brh2gDT_?fPy?H;TlOC3{mQ8GD z4~Oz~-RTf6>I>m|tEV+&lPG`So>pnCqhJnSu_Ui_H9?X?z&3XOv!(07AuB<=FdT*E zFVlLU->0VtrG}Bz^`N1m(Ezq`u5x7VRI9`r~4!r%E9|5eT( z*EE5)0%Dy{Tn#Ow#Q}2Nqr@#~4X;1=YbQDObddy;;8nO{R?;FZTGF!?e@Pdt>y~9X zmuFnQYFAT4Z(luYXsy$y*Tr>xC8_=E=}H^Fxn8XjsP|XRlIYi0_mZwr`7a2K^{u92 z1(j4F1-wQzQX&JZ#=#C@$nv*|c#{ecX6<;Rt#*@&73Vi~+*z0PM0Y&$Y@9)?0IJN5 z-nfaxz-Uk?vHPNF=Ziw8a45n|NFqg!XW*TRorrU(qTTe9ncNgdYUj3GQ!;lof=cbSy1Gk_K*2`=J zg(zbhc6scuyN|Ed$&i5jd@zH^MZ|yMlEyxbeHnY;iAQ)Qu?Z_XbhqDUXf*R!x+-lv zCBFb-G{gceG4?YyU>ii*@V#pp6**QiU_6LFtp&!jL)4^Mp2j)Pa%}m5AJEk6URX__ zv<3LG_qey+&VnH~v(jlhr*R+PVg7e#din$yABZLHCHvuF1iw@iVL$uX`S&z16e&A1 zh?3)~adtBFYpih)A0!Y3t{Mh+2I*wL{eg!9j|QFyJpBlXf36>XG|XN`cyUXv*^5Aj z=)-{O>FlHed=&UJ@EPC>fG-2S=GOmBz<0z??)!ir0e%Yj1>o0!-@)Ae2>1)&?|^>+ z{tGxyNwO4K(wM8La)oO3T6F3+?7d0zAL^`yA<-fUcCzsCS<{UtcTL`)9-Hz|Z4@2e z=43~8*RLG+LEc6*2$IIXD|zp^SQ zR#i3Swswtb2TP^dyMb<}3ziI&zgMMAmp*gWY}sq9speX0t*wr_^4DEYz4g`KV8aly ztg;jL5{5_S2w*Nm0)iPKC<9lwl#q$lw1o)eDqIvdn_T4SvN6Bk4fzfzRwhw}c1gN) z%hqei3!}y;G?6Ge-&(OL7$sykmkvf4%7%g%P_AyN`YeJs5txL!+*7Gg zUEzHlc;%hb4Ca;7J~}wVpZ&)q;LXHb zpg42ghvw{>MBIjGA$%Zd)*Zx~*vZS>#2zJqel24v=Jm8r+q6&Dj3vqeBkSMy7R+DH zB<*=T)6C}2nPVx+r&bcRb^N}dz0UAUAZRLJl&`meg0|R!Sy$auzwfp~9j5iAx~l^M z`z8)n1-$|SiiDJ@P^U$oHCy)Fxbxs?B`>RZ^A#ZE_lClhk(j_GaMAE7VtwTg2M?dR zMKo#CXTXpdD=s{FStU^LYem4Q=oWQ5>g&MzK3-HXzC#uMy51ZNg@LBa|DN}K=wqLn z=yQ`zH3$8^x(h}IOhe8-%(rBeV8k}M0OO@<9)lPK6mG>S^bq)YV<84@$PN^!gFqbu zrNf|h1hjsV9E~H09#uf$y$z2sY_ZH#xidc?<~t~}0Q$%;LG%FzhY)qC0jKK*kP!ez zBtUCrftod~$HVJzK_;zgct_PHcE@V}De>!^go^MeKop>k*T9qn4NYjSPz;FoT$hxw@rj}#a zA{<-<-sg}{8KTmA`)bfbSc-4s(`Sri!W@N#`KtshIigs`iGt;vQMnMI@vs_&k1%xM zW<-b>DT*8kMg0-FHP&O;AO_PWTd{0&fPz>Pr3Rj{#o^Z|JL*>)zxfjv_9Ma!^^n-i zEyu!au(e<#L&QfotP-3bfkdH#$`b9#HWFN5@1o3|U2@$uH!z}0{5B0Y-9q=5N4OrF zU&oN_8K&n_IZKnvMV=Xo6e#4p5PjYX#VWXZttRhVs}0xxw5n;x$XUm?(RJ#vLazZ1 z2F=LX(DFrwjZrl2E8&D4>YMhB(wtpxYktdVI36S-VSCzkZkVTpuE9;A8)Vp^mgSrW z;{3Fy&taFRoHgCisCb)trk0su-)uLV#Z(WeQsRgGZl=O14d*G1R$Lmdyfji}X{_q! zo8XW%f%REoQUdp_m{m|zP|Pf!5(OZutV)!Dta8hN9j&gn6P+4h*s?Wb*t_pZmLbAL zd38q0$KhNPT2}bkcZN>)qxI9z&M%*NUOkO-tKu?V`1v1#KQR-30m?*)N>T0qk!q}2 z&3}|M`)mOe+AB);P(TkxV5S5&^hw^vuiYES(=S&i>LfXtGf&`@we7DNgSp$_1!VxJ^uX?O4jgj0A2>39$pY8_dw%|d6|e)? z_mc`Od|0JNbgRF)T0yVXs)!woOwuSygd?RRrQf2~4=539STkl>iC#lz%}I%5!=eJOs2F_X^WU2y`-|^T7}x^YPAf)f7oFI;}c( zS}KbIN6`qpUI>8IX;jd#9zdIVw-pynnwpg1&`sv~Fj<=9ZvOr>LS210N;tL)Xm)JI zbx$D=_u`4OK+VwuShGJ-=9j~GezR5;EdsJRk-+-B<2gSiH5W=emp+5cl_EXYQ!;a- z#B+1X@LrMz;}sIQF6xvkNHw+6E_uo-swaBw7z>K5qNt`rO^3)Saj!1H*_)x{Yr*w% zk3vKuDoDn^x;0kn`yBxJtDn0F>8Lp?#DiFeP(}&J1~CnxnTVq(i$V}%g{0WAgl-K| z6-IIB#NmP!C5n=k#qfZSN^GIxO;EBm;&=y8pVfjm1N;GS(4XXM0LK#uof*;?&!Q{XR?~i)b*D7>W2)IskJC&-#RQJ! zFvoH%#c`O6%~*s3+%pBv>m`}sG*OyV_w^Epsfl(+r1^Sb(I^R`GVZOt9)R6Dqo^YF zjrcWSs}b~M4c#s|%v{ww7}qdwVBZ4n;dB69=smDL>;dM6m%!06m_|Z$2KpRy0a!wp z;K~RTpbF3=M|A?jXhvNyJeWRg00`kk&>R@Mn&3zy{0It2v~RWx?!mb0n4>67csC>W*tj3xLpA}FfM^%*p7 z*0Pn+tE%$(k)FFs4chgMk2S37@*=0r+G(%-MrCQDp~>}$_jJk6xy;C=7%j~Vn>Kcz%nizLO`0tQ=MVxu^6K1`w_B!G>ISN#$(WH~qxJlmz zBPJ3|!jOhJ{E>}jED$gU)i4`}-N|eWeQRU1DuOX}2hFgukOx6k!0z9^^3=}cJe%qn zjf(YxE3K!wo>f*`?-vkPSd=ARhUHmx%a4|?Fh?{yiQ_a$WKc=BOt07k^`ZoPGlXi4 zEdqMBl&xrGs|5EZxtw!u+H+8NU_Gtw31bpM$Qgs1e(K*p75HFIA+xf|jvXg%y!Z(c zR#GVfsDrZ|y5k_=YHLaL5Q#JeVRT>u=0B=P!0@?l3N0xka+IjiqQ@vRX0GxPSZVcK z$yIy{sSn7VaIR`(v^xVgw7X~Kxp)whp(?y5KhB?9>$u~WJu%KX0j_nXo3U3v-y+B9 zc6Ot03lMmQkSe@xrU3L!>OggHu+X+D5GNqDcnDitFFS4E9&IkCZdXABsEWflx#Nf* zxa2KAWs3pvJXFQO{v%}bbKH@OL~izgE1l`ah#$4-0%y61#Kr-3bf%80^bu)@ahckBBAwluv}bg7^n-GVQYW%09W57lX7cThdzx~$!+@$AHpj|a<5L2 zXlh-D-2GF(7g@hR?vZJYDe8)W-1XCeJhbHnId0P-sh>@vFGI*BO_McYEIQ=kY4R-0 zhQZN4L4QB$e5vEEu_EKSHa}{LMO8!SRR$;2FQp6z1BA!YhW2PK9tz;V&;j$qW&ld;!aw*QQW^cL@~$6?JCLdBXu0z30pk zvSNhVeBtaZt*r7Ysx-DK0Xt1G%JJ_?Hmr`nJrI%4@4M}ROspeX0t*!rSucJ_##1yeB%(=h`xF$*hTHs`-3L-JsKZEVwJwY{tq^+3Qrdu5eZ(d#Pvr>fpm z-M`gTTV4P44T8BSh7nl78j)inMzVN*OknR~WHUeCXQAr>9Vta-IddqWkMhU%u*cAO zChHLc|C~BFTMNyx4$Eu>Hb!03k(wC&e(u3JN+h<-Q$ySW%hWPmHa}5u=>Gtm-t&RqSKN~=n2&hjZkE)% za6xEsjbFj_XV1DPURQeLNb>f}S3f9;FLGBN%7=M7;Z^*hFq`}G(Y!xi$5C{|sW=4w z62C{=#P%4xe27^fCf|B-muzX4VG(%ns$0JSQh4oODJy4v zTk~sSTS;r9b!PWUH~9vS2j3dDk!^w#wzpQRrnj@;dhu-+xvjV7FW9F#*;cyww;}mA zePkPxu3&$*T6o^!u`ZO~iw4-S1QMTbckeV(9$E6p}}?OT0*fPC4d;b51(zysI8a5=)$OK){JG z!*wtVH*{6AXW#t}_FX$U^lIe)*^Xm5L*Ozc*C@MA(G_ZLQg_P|4{5q>vHSEqqU8=l zPZ@Z^*fU1{W+s)X6pnJ)6SI=Z!ArK%S$M%oK4*oBxGLeM%nGI4l@qD3(mz(I=H-nl z-u@M=iJ$)jX%ygDS*y!>J=Wn!1mrqPiZ6xo^Tz6$c+rksgU}p`)|AXw(c6)oS^&YwgM@7Fi>L=eEGUJFjzYd}p7xQC$t@l%3&r*Hb_?MP=}24`r7XJkfaY{uu^yq^#AaXy(Hz~V2qcWS0*rbBcK z&UYv9vxM+Jp;kc`0oX8&Lb$ zj-2=42FT_k5L9A-5Ivm*D0L$K+JetMjXq2*ju(iHj%pBn5byi`GdKil`toYjf&wOGHSEW4M~X<2q@m{1vfHx-exN z*07z*ma98CS@v15-E^CEe9=Qs6%a^9lMy8)Ve$8=STq5P6(xF%j%KjsF-%9I0l|CGVz6?PAXPcBpiU8efkLJl z0OwZc{g0)9DqwdQhXuY;HbfC}6BrBq9hyE>XFlKcff5@nHTbs917$*zL{V>0!Dp|< zOsPShlBL){g`z4CEa7o`$Y+eQiiR&m*`fuie7lz#|2)svDZSW_K#gy=)7#xEg7a&A zqjjAPBigrCa(YM}sl*Hf_1KE9WGM`pHi_WfN=O6fBZAgcMaE`S04;It+)S zIDFaa-4%b23)ga>$%ctZpv6W$w6;#Qj?QUao!5H0p!Ic8lk|)x>sd|FbJYP&cRBV(O$_urmnf>Nwdh8~N!8rYCGa|#tuof6oTFHRjRv%h4%)FI#f;%R9)gsf3 zYfZq^A_XzXUCvY~Y3>DQ)IC;j!JKPggTUS)kubdF!t{RwYcNjF>|vY1LvnhV3RU z9{~ifFRB0l8x)3f3R=b9f~_#A4YNH5)+%UdE+Ayt3D!RhY_9jnwl$UjK`>mrl^t** zlzS@9Q>Wg%yO3+vqbC23=#9ebiJfcCYSY3_?qTej09P*xUvNvy^!2ms-!(^~}6M@Ql_d$pTIY)n+pJU6y& zPQ2}f5Q^jaZ7}8B-4TBLEjib*s0HqB?Yy5hpmm7LO%GGj_uAvBm|mDVEe94v-Mvih zx5Fbh%0J6V^Em6tQrs-P;Wp*m`yCT_8T)92Mr z9l3+JUD2sat?r9s)a7kGHoOk{3%Go6CDw*RSU#~mN+=k25KKU+PsK2p1qkLqZ7~Gr zS?y&)!K#B`4b(Sc7;FOsJD|27g3GM-A)(;dL2v@b)D~=`=5*7@eSaCF9LYnn*lEUdEjEt2G6|?T%X*| zJ=nI$&>uM3I$j}D98ght5#9&^akHdhkW7fI%Re=dwizCwr9~{eQ7Bb*&LvWKcpT{i z6L{t6`e;?-H;2;Q->>weKucMHn4hY~!ejyGH_p%~5s!Z7h=_Mx1MQ2*c<8f~D8{G? zuLyC9JfBps8WyJXdSptb(EdpnO2vAvhsR|&=)ujB@zu--w-TbEGfQ*GB@OD0Qbu|( zRdegkrM8w@8%O<=^SGS};+cz}pew3B6p196=p#-B9(fy5qrG7(lEpM}X*7}tS3|X% zTLVz-N^E)j;URj7qhxcq`pRCM?Fpw3FnVU)G|WP^k*}+D9r2T*C!+L*jc6Hbp;HkC z5fm&p)_(XXn}v0g$;R6134xW{gU1w?yHhG*75Y6&Ut+b1*I&O&43eh7W}_NX+JH3z zn%g-5IY7q0rkJn&+LZnMay{txQh9d$Fj-mbP>eMW9Lq znw8m_%d3-`33L4|Zfb1vT-({%@px-6YSmgg)U@$NIWB=&R^C`8_29w6^}K|g%e6$S zDCM7$GT@K!Z|7JHK|uqn>zj(^aP&^t(6V;v>~#EL#8-N&R?_i!b*z8_pp zg6QCN#kG!&_Qp0PIux0^vch?mZDv%Qi!sl!{Bl;fvyJCB%il9dk{9H=#|j7EUbU5` z3HIkxVO>{VNQht>A7pWN!kGCc-n>V#P=6vr(#el024tDRdq~$iEa>;knxKkcB8+F5&+-O z{&r-J^ioz3C6Yn-vx<;*9O7i9Fbgr0+ziN+5)q98f&#N*zE6ul@{ol_KOGwwKIU@F zmHcd1fv5 zOuUAJt?Oq!m<=7T&%!l`L5wou!RI#JfqC5yVJU5!0lQmrH|p*(qLzSGUbq|JNEV5V zgG8aA2eb96=nMbq>ARjH;wzz+q06emnZqSCY}73!x{a1wVul!@`f`?)T%NrXd!#K% zAUX<`ZL{1AbPGX%x-_Bcg_hIsnK3Ib$0{<7woptwif-3Jjc|G0XS~9NAkaML$?|>$ zZStqBiFr=1lC$S6`Igc++TgpygB6=bSiVXNpHH+g3x{#eHrvt2%mBOIV%q^Eq#1r- z94G#E&O$L~xl%mTR0FM?wnIRzn1IUuka z`sw-C#wXOzMMzT>pjsliVGMSnmtouL$erUDAutatR^2-?$`RQdt;BIV4R~KGZQ$f{ zE|A@W8n{Q-e74#$W6IS0I+-@zx-N4!dwR`qf9w9hU^k2`zlCJ+No=CcrWdhmjfR}I zSyx#wMYMp)`s|)wAY3O9*>;)CcWji~X#DB1o}mxLinZ>A?1*LOKuT0mOZl|LMv}55 zn4)qQD|r$81dqB&o;)%+h>7(;DR}}3`*KOX=Mc?B^>7;0T3?>JfVbW*O>d;dhRP9~ z;xUg>>j(Bho|~DrOCI^~QRrfgVlo19@vPeff+v--T&3^YsgTVxKGs3YnQz>yImWEww3fteWBxPfZ8da@OgeJ*?E|b%A{cVMlM_ie-b|C0 zc{iw{CCxc1)uNvXg%sV-4Tv}t=uhD{(f7pywM7cZBXV z?@va7&j)>|Bdz?|W(QWteY1t@Q{ac{@ro8igFyMSy^Az4JbH|88Qn_7b7Yro@K&(l zj^-M?Q}|`_`Q^?~H{B!{gAMCs-kKQbb}*MJKFu;I85h3kN29J801+Dj4Z$f-2*Dq% zqg&yZnL~;k{|8_*Ll04clAjamr()OZSN}2Z3daeEZe(^%v)GNEZX5N>ZApe#l-!8! z9(5uG1Q9btgA&Ga)_F}$gQ~qm&5&V5meee4q-x#X)(`T-5GVHUe}HJtsbe8l4qzUu z^QU+aHnpK!y>L=f8K4+@Im?_}s4$C})3hazqgPhpns~*Rp)3#x=3_*MPU?9o)8Ir4 zQ5Nz%vRddo3+W;bMmf6ZMHR_~L*C*+(8n+L!fqKv_?C=C*iq1Y#!STJAOyXAjDBOb zgf?_y-|vU$OWG*$#VbwBX5v$#Z@K&U0tG;y33Q?&T<<#F%ZAZ+;MMx&>1F^o&99tV zl3JfSV6{Oh$QcqnaZadpUa3BC{Ilbb#PIAO!UbCiFmy)}N8<0;R(~frsQ6!nP^3btF&NPpvO{jD z38Ivnr~U#RF!NIOi}V@aT0bkdpddBBTKSlipyWPXE&pW}7TGRISTpI*n!Pi#Y=)D< zdFf5}H{f3|c0&CP7l*3PmlFRZ6~Ue(7zUO8692-xh3B87A?+Nf1(TXo=ksVTFJlZ5 zN_17&!fSvPJ4EPUu$BM7OLuq=-W(1TWHK=W42HpgDOrWBu+}SbI-qM4wN0U;txKax zzXxfeNzI=R7Y}>GTuL;O<7(>>7ZOwhh8VI)yGaV$xwbu~-K3Elejet-z-hF1b^>>d z@f#t>cy@IM{>~{4Z&kgru(5@+kSA}k8Hy}1E;uO8ocu``cuPdd)KJ-bYu8KXF={f&+NGMPj9)69=+U3hL zJh)Z+#V2gv_$>M%$Wb&95tvy*0m~Uyz~fn77y?TFQ_#>?#Iw*psH8Ic0sAYzx~HOn z<%R_xJdA*-HsT#O#kyT26MTu*Fj|ljVs$y7dj1m@(Wz9ra-2kbHpO>ZXRASxg-XsEa*|yr@cBdUHL5j#^6(7_F@6SbF2ABz_kvB$=W=Zi_oqc7U!hHf6)wBoB-hrN^TfbVC$$w?n~2JMphjZkYRV4j+930m z*NQ=YMX^FOKgYRsaag5iwDF`NstLi0YPPdCx0x~L6=n=zdvXcQ=<3$tbkk05XnVSb ze7XdDJzp)ZRFmxjIZ?I?VTJ29y(!OJGAuN7u(-(R*?ESN)ut{}PvKIcR)l8Rpj~n@ z`S%!v|FDS|V^);5axPRe3LiSB6&>-ZVs!L0vYei5Zxlpy+ov~w{ieVtkVwkX`YdaY z(MT_Z=a3VB*A*XwVI=Ghjm*k?7FPLI_LnUkC>S1v3>&w$RR$4(-vdrJqS*!ZI6iWO zj_9|kcvbb>wQda5Dbm-;RvWO#WN&dK;Zj1-n{DXlDlzd>xI?V|zzA z4OHu`$KLR9csbxCGRbqC+YS&CBUJlEy^hKkSXq@+%yDniK0Y%%k^THJGvR=m-D9Z~ zs2yqz>j@0ONMGhXBg~}R0T(kflaLgzfY77@wf_*#H&^6Gs8@-tkp)7v4X-d^e3}2t zUH41*Q~W%$KnXpyEVCs!guYWWHuJvzCJCP*9XYp;g{YQiZU`@wVw(`Up=y(;i9$og z*z+}<51euA0(L`GhdaLTu7(>F;E~^U>k+Ck`HOQq(?!VcXq_J4F_V10%FsGn)hjI*398%q*``;%E_*GaxO$O-s2Z^ z1sp&y){U(PVaAIGn|w_GaD;ChAL*^#CY~#cl6PAm_6|g|b)!c%Oog;@kLJ3?`OX7j zBf85W^wAiwXqoIy@Zj+I_>uzKUt<<|ML8I(`LOI@zHemihezwv93%%I)-GnxTTfmd zgD&<$>~ZzrMp2?pTLLtS@-1%mYKCG|McP5rajbPT+SJO`uduy{#istgtnE79Kksfb zo`>w?<{w|b+#YIUd6=NU5Z}i0){R=W;!_s%$J@FWH&*+lnr7L0o?WFjGyGXsTdDKH zEor!>v&DJsJ@8(&z^~f#@O?1vYVWOGhq`fy6PUN4IC}7TyBy!pp9AY*P=HO7j}ucJ zNRGyrUdm^TB%G_TuD#2&^U$XM5F&Y=0tI&s2yP`{;1wekHSGvEsCM_JNrC8-+(82H zMRX;nM8UDikI?RFUs@z40$qbAcVT3)ub-ZPE(33>{#&FX5C8sfo*o!#AaI^UAN)Oh zH)=r@4y5lD?F?e8BTx#6wLgAcNZV&4x^C%#xSkCHbVivpYju1g*jiJlLBNQVQJhkXFG`9Ca+`a8bYjMpE+d6{z z=yuRvxFGIM0Xw#W)`Hi2whbaWwn!ePM$!=b6l;5uKx#<;>F6b3Hp|6ZfUEQPM&t)W zBy9^hb31b6=?%|pu5wWEiq*bb(0FOQKC}94NsW~)~9S}x| z9NVj6rgM3l#$6Y!e$X4s-oMV;#>SHrH;z=$BV)P$ti`^>8yy(u$p+^cBjjxKrRDhS zCGs|8R*z$GX*P{(_$}<&U>hPcH($OKUR-or7syk1i6MzEzj>Mq7uWq&QWE*o<%ldK zo)eYSTapg)WZ8WW?GHCLuPtu2r?k}Yjrh~bo+4^lSJEOQd<2Mt(ll4O2hFuaaZ3!> zM{nq)-pG>lfg+*w+}{11sR?d~z5%t(mXxO0O<(pU!QkxtdgFZVs6X}Wi*3coR9KzJ zurW>AoYFn}Ph?z&OSYh=dhupk*qo_LpE>XQK*;g%W(RMSa$BV#HnBhu$`#dO#J>DX z;Uk7Hk60HkQ2!#aj}YPOfwCc4tjvq`%kfV9UsL6mC8uT0>&gy{YBh}=mDQL|w`m92y-J6U|zjD%AsxSWfBvgfD6la7~ zt$+axTWHuU+q7w-%T)V9q-^TO+<1yufzxbRhpN*{t%4+VSi+5_(5JN;P|FK@2e|Sb zCRG-yJ+aI;Mx9f?^#`@xemXjDBBAy&?RMMpM{JFhJamagpR4HK#~UTA;)a7%kgw^* zhs(wg1~%x^a#7>-T8K6Bkla+}vj6cz2cKLD#y?1CNP=0Rd_i?@!*;tZ)}ap=v>B#=`z$ z!xZ~X;#4*ibmbnF;mDI&jqhe>gzW=9(;bqoRA5S#;CWFH4jp~(E>owG8<*sK&Shdy ztc}Pj>ezJ4>2XQyiYEE2otmk6`t~GmQtopjrSQW4zPj|~k>rTHNoDGl;Cl~`l+9Y3 z&2;JsQGAGr{ZMg3D4*`Sdp!d_SD+83{TFE@G1d-zqsp6X2 z&hv`ry2Y4%qrT5x)rK-tavV4Hu3BU`43er$rF>)tAX;KpO1X@mY0ULlnfS|Ksc;+R zlVqm$XH7brG}A2E#{^a?F1mXcS&3efF8#^B6wS1GF}ZEB)Ll}*PGXBmhH=qqcKbtb zoX;c8>6TN&F(-7s)>p{Uw*q?tZ~c#&ul2PDafi0RM5f=Hr-R3|!tPVVO!sjUk@bZoQnF^g+Akytm`9wOVTSgAsDj5I{UAGGAQRzHM2VZUYkg`4326^&O<$1qTLyj8ng4D_8|h`&?d{$x0wHV{8@p`$eVE$Y|XxcKYv09 zu><#fiM1ccj>#5Y84V~Wc6Hk_hIy7|hXu{3MG1KE6 zQWZIba!nqOM>3m{vz8!T zfBK&&%Q*zVh#>^a7~pZX==B}&{ZI&DdkDv0pSa^g0Oy%@`t1d9yAU)!@-A&2v1NCd zSZlssQH9efS>-$~06t3l?$Ljw@wCe5c`Kf(4e?D4gWW}s`l+gLw54w}=(Xcd-5HR4 zwfKgP3-Ry86K;dAli~??2P`Bg)7~LLZmKWI{&I5@+i{4I+pql&uVSqE$2dZ}cT~o6MUx?* zt)==DjE9&avKrLBg15KBm{{j$HN@^N{>y8Ol_$+>8}UBZ7yfImH|V-Xx!kMM!cp}8T)pgJ1^Gixc;=)_Y`kYBWY2|j!oQ)!CYM4aT;~;IFVq>G!k_mChf)f9I`Z9y6En)%2 zR=_R0NUK*^;s3WlD4oKi-&gb3=D2Ww(ml0YbxH+@!dlI15=s2Hf!}@HV=*MR%(sU; z6lrDCKwZLF5kjsePpL3jb%aHn-5o$mtnrNe1d`_xIkw%vytb(4R5a^(g!&xVSb>)W zq&Ea01P29_9|Vv8KI3nV3zSb}bLSIVE8xH1KIsMvoPD)fqz1hV7L6e`C6Nl#^rwsQ zq$cQ^X3~-ytvb+K?g-lG|F>V1r$I!5C;*!?^c4Y_=Wvj^=9ycYJZ_Y&#!DJp^n#d3w)9#6hKS@WsC-U-*LA z;zISKdgFi}KF{~D3t2KFXXN@W~&uEDs&#uAdt6&}~rsn9~V3Zeu)-O+in%x}Y z1@djTM+1g%;p#F_6gvwI2Gv1Okhg!RrA6ji3nKbL;<}qct#XUOhBARkrN9&nwz(Gw z-0f(z%%!Ce{F{6>f-?p7c<5hE&p!@4KD zujqMPnOTprgoIsOV>Tf3Fwtf}v-$gO4%cv;fxD%u;GI5G%FT@<9ZY{9_;JS6u42k_ z%Q#n8S8!DS#FOQRpX4)ZUQW59;Y6eBkfPFk+H_1XOK5CZA5;&;TEskZ<3vM)#Pk5G z;FJiSUa&USInlD3?L^}X?Qq`*@usG%rD3A6Q3UP;ssv;A?ZTV1+Ts-Qa>&G8s4=}; z6n@||H8eC%pz4rFRQ))x(I>Jn6P?Je7o5s4L^0em;lF>z9l+;dVE{8!T|a zN7LBiG(zeBc9ln2P0~z`wvwtA-nyBT02@XWfEG_7DUDKybd0oc?6=!Y-zfJOjQC_K3l{#q_tBvaM@*ES)LjfKpKz*ITpQGY%%BrIKs&;cBZLTCotHq+@ zUXafX*leTZSWYxpKdt+)0AuoUtQB=4+8E_`NBlDyFE|#&dAw}-BP&RVt!v*is*g<+TF$L2_+E#9+d^efh)%y%}$_VcuqH;{hcA4=)j_euCB`< z)(Je<42LZo;}Un{ zQVpT1AG%3`Q=D1w4N5itrVh+rDDkZ#bxZX6FepdcHn5}=Q6L35TPzf+#pGapbFh87 zND^xMpO!Aza8_L05`ac$MANgRbb8FcmC&3{!<8c~x_#w*Zh5WD5D}ayH=0Bu4Xi%( zm#~y!{OH1B=ni;3sXGjJ@Xkvc3TTQtLjmxD(l@U0yRQL4egBOio(vZ@aUdSAgO~@( z{)?TCKf;ea62BhUl6n{?#_g&DA^nJe;wr@Y*|U^3B1APXA+_BZitZpJaeQcO`h}dc z96dVPB#1qFEU5|MM6V+>NAxp(G*$$irXb0_=+APbx2QcU*RDhX%f#g;WllQSN<*bm zl9LY`^-uumj8MZSk%Z%r<|=Hg7u8Y1R(g6E+jwQS#m5sCaGPye5}rqrt1Ru~In1>I z-kkJmp#7o45gZ74%eVp$Jdj=Ba0EA_C;s&AvDxAsU@< zmh)*&HX#7>p9c=G&Q=xKgXeBDld8tSfa>syDEZ9|?<~F_l0@@6`w_1AT(ie4`oSxW zryTj@X@9HGX{6`SG6rv!^icRD>P8Tn2?&X1~y*{{)M>NW+?{g4YTUV9HRZVMbS=Yw4? zu{x|afZ0p)f1}oz-G5{tz+VLkj%^O0`%9ElH0ZP|y3P5Ztc5_vV*b?`3V=`O6Tgps zU1;t0HRf<@>SU&`Z&ZX0CdK&79FBeS6znfT0Z_o^we zsX-X=-mzN;^}u_#;F^S1KnCCvuP_-DUtagrB?)~kP4)LV_y*t3P{|DPN~ZJ|2*7vT zq6QuR(D6&yE}djJT}5d;8uZ@(^v22gpm?on9(u+m+uG}K)fUI26t49b9v4|pRL!FO zpy#@v!xk$uHLKVAVVxPSL3#=z(Bv7vY9h>yPN@I`|1EHB*9iHxxAPb#E|ZA~jrAGc zA^#|LT7(P)wm_p-B(Z+EqJky)eHZ7`*v`gCCib7Lvmh*! zyqf1yc^@K}Q0cyx+9rUJnJ+CofL#$A#5^sm@U5ApMA`*$YS(>Bkm4$YdaL#Nv#~U5 z9KAOn&O_V!r}cVjlyG2b^{Z~O#$Jmv%6e<$Y=N;f-uE0MyHdQi0%b^qB?|(9O|2NC+xF?DL7(->3iw2cpN)kAV8XN2H(&1| zCcH@$h2Rk5_Rn^dbW)jj&_9ZSR(bm4#T2OZiUO5VVSr2d+D}cd#ihkRuhTEi-CwNX z7{ga06|t_#$&@}CD$f`Ao14l)+o6CtyyN=nFx}N?9q8<8+fdZY&89)hnj@h`X@diL zM;FS3ltTev_EfIQsN_$`tUA4KHTG?PQ1Z)vNrm6wx!|5uC|4rSB-9h#4sm?+u=q_r z%Ml#zCE{ZKY9B4vxPFpN9JctS)d16>wS!OQrC{ZdS9j`^ti2JD!QdDF60^$Z(W- zVFS?G-`itr3$ANRP{$S0yGo4-;Njb;B6Ri`=A{*6nu?c1-;WEy)S=OJn24LN`+&IZ zyR#-;r>VDU{W2u-NNh!KKMeSLSRmMA=JHu~2DT7~{8<^}cTL$kwxB`3&sQz}f0-&p z9=vbc7^!W(%Ej#`FeAX1*VLUNQB^Z({t*KaLWu1Vk=NbiK0Z*IpRIexc_}eZ zj2M@XYLCHa8fD=}=05RU;b8lf;&#$&!gIl!Dztv_m)*BxvGPO2*K`fO=s9U0zTrFs zUCB620kCpP=xSY2CRLe1e~EZBL(MVvTC4Rq?3%bcz%tFzokzl0gyIf=1~*2v9|_Cy zM#S_cK3DtV+{bk;mt&&O#B;SaT-+1Jr#7ihZs(n4KU1l9K?b3pvnKY8K>^5D)3X6M zu*rGW{aOXpfjuSe^=~F1FpmE03#bz$+I!^tENBI9AL5>BMesBimgg?!jz(}No@IA5 zk@j5I-YeQGr(X~uIY7GEoGm@%{!)%Ozk8=}V2%3l%l`%+nGdZZ+wX5|{-F5j^8;VZ zbST9v3PkzBS6qVmSUmu|cc>^BSP|K}_W9Pmt(B21lIC;(2m6fnq3cm7blq70a5l%< zyOl!ML2+J?w0@*-^u0pnzJ1ueTxKtF|6MC6(g5Uf=C+!r16Yl$D=D)TypH01KVG(r z#Y$}|kh9PI54@&SO% z72T>U&te;>AbO&ibiygW5v4GgPwpgqK^kFA8o7b~YaaRNwXrhi4V% zSKDfrw5CRhh?AMl?chb6p84+&R;iW{Dovw0jkQNx0^`|u!(98z6Cvt}vMG&j+zSP8 zBB4@05Tdz@&$DmDn*kf!R`DZCB&&w%aOfcwR@;93nH!0bu=iXQFn1r|1xptR;T$#+2kFadn;_`y>DeOnHfZ3j~_`*l`NM(k*Wo^nIZN|iUuIgNT; zbuaHQ<=4t(<>7(oQ2R4fTy=(xz2UlYveKT)nM#8q{pDsS@-%>3s; z<;z9TJqq4e54}L#>p67%Ju~w&gi{ck2&MjhkhkVmMvrTxoM)tf?9I5mR$;(#X%7t5X z2Lh0eYtI`y6ydYIBC+vSU_XHovV$pJhLgTv>?B+aTRx|J<_p+Bw$A}C?L9Tif;fYg zs5dk!@m`%uEZnI2-;ARv`Me#_DrYEz_Y|;N;LOtTrgP<(xLNg+Ky}Cvd6TPpm~+{z zavh`NMWSjIN(CV8^U_i?^b~GK{8r870`QFSzK}imJIFLrV*G|@qrZfe5#iYpdZHoj z!Ud;lHKO=bg66XzGIWijB01f`%l3x5WFpni(g0Ei4o^s+0DRYIMPE&<$?S zPie)Y&h;M}7|f!;p&jSojVHO^IqDtillYw(3K0B?PItb`YC}3xjR?EQCW#C@kHN?n zRmoClr?P+2t7_Yk-5@6#6!mub*B83}7l!UhBL%c)*P~V2*^k@Pf4FyODY)?+w3djY zz}9MxLR5YT!5EU}$}5gNgY6(~Ae!ct+g18Nuo;Zyu^PO0_&*mpT4P`n_XMMi#Z1Mn5V}kk{osfe?(6yCxZ-(~KSC zcq}AYKVL)GvzJG)7kUqlB6^ zgB$C;!)4)Z@zx+*ljV24lcMELvt38SQs8cY?x;R~c;W}WFu)pRYLC8!%BK#y}1Ewzmnej!y8H`L#&NF{QYe*Rnu^?`AF@^8PtMNVlcNoA#=m7Tnv4Iup-4)ai z$x?Bm-u~TV<1*JHi6x~Gf>!nJT4yS-)F6xF6OstXBD2?Gws^;zhH!uj6q*TV4OZ_a{Hc>qMq#Ag?a6cRg23M=JOt)?&WJK|G^AjDNS$W0xc z{$ho^Rw+4qArXh5gU88;Thz&wI+DN+;+VYWE7PQUmrBvUqXG&bQLfs5F$B6DFw?CZ z;0&o^-<5Y>RCi6KQd!Z(HHxPUVNoamnx>}AYkDz0apAVqfbM`kgOWKY0Iu@)&n)W( zwFso{hyZ0SLQ}!DvOK=pV>c*0Hg(3E_GJL#6E9Ld@$+Si^BW9N|9*Lks#O4cwI;Z! zOJvsFr*1g6MJZsEzj7KtY`RVYsv@jl{92WCJ)(7mtQm%7t$wAAo^MEJ=s0YK){vgb zSp4R6S~e$Br%%t6Ze9Z8zG=l)Lt1Jxqk-E9c3OGmNiS1#SxSp|E zU-NimZZ5-AA1m?Xz{-jqZeGsIjvNlxF3XkMb9mfQNUn93>2q?*v^xC&v|F#&EX(u6 zO}o}PMThXMkTl9WX^KTY4Ho?XHHh(ahL`ucY@mJh_@HM@ZNN~nbw-)*St#zF&I^;q2Q?X#2NJl$j6 zTLWIG*Ob;~^WH_p`>OK(g<5aWdxn{0llmB3Q=v)2DtK@83j^+-O#;1O@gkclV_W-W zLg_1_#i*YjFj4oupH0VlCf zEvYr=2%P{dyCbRq6OovVbjvenG&)nPD4Zg~W;Q6(m0+?CU{k&0)6?mp8u3;{GH7d? zdVK}@VWk>?`p&tr;8X+S?vNx9a9_maP`byH79-AIkBhw4fDrRnTw+%{vUoR;q>o5Y zETv1eitO~S=Pz%CRzN@;bC0b#qGhL{Lq{%siAwr( zQuu@(dDEPn8W;a}VzdY^qjEPwx0m>E+_4C!vQeq_Q6x&4Amxwq#;cu297<{W)~3S7 z549;*k^)OkO^5XqBzBeT*-K)AgGh8FB-)AYqSxO5v7%y>x!As#i#Cj1gLm!S{b9UYf~(Jm*3b}(ZGDlTER@&e)+JnXkh+eFKbJ2 zlm(!J0x&={FKC$)Lu%Rt#Eg-}sj)LEG$VG}df#2Q-`MzaQ~^t7k|{Z#C=|d726Jdqw2RO#vk2bv~RP|0NpWX82|0U6_94+n18D0 zrDjMX2n ziz1SX(wZKa!jIk{yFv-AVC`2Bk-E_`N~V8jYFQBlxF( zuF_+q8R^~g6oV?i7(hQ1z%h7yI)FQn9S2yUw?e5eE~HLmr%wp+HW&-M9U7QZSH)ag z@|wI&Dho*g>J(#X#>7{*Z6iuy8Us#K-~cV?#XIg-aH1VHwZO)9;Od4vxxJOlD@zYr zQsXK&4P+ntbD@EI=)F(9wIR{!+6Ytp;1%ZL1$*A>;6Fc&2P3$~Q>^SZ(M@0+1I%jv zRdB1@XXbejAHBB&`2G)hz$cwPF zaUf5;P#uNTo?`P%0v33fK)~C@Tg3u^cD~jyHGj&$D#-E%axd@O`GYPY^3ki%cPem& zXwrs--P`<_3!``%b%VZYnA^HF=m z54NAn^v5FPl>}bdzw@bLeP%DxNr=aLvna98km59LijUbMi&J42R9LZN+O#GSr+y*u z7ONR7#lY~K;9V*#t#=5BJyt^S!%#2GU?DQuB^D0;UT6YD4v-Wi5D+l_QA?9iqe6~q zkWTatEhvJ^?-&vy@8$>dDCfx*P5_?rnw$_L-(5^OU_R#mqna?Jkk81cJ0w`VH!Cf6 zF)e*>0S7n9;^1r=V>WCv)ysjKJk-TDVrh=@xYW}6M?0Z35d0f7IrvFU0D31>asD-e ztf=g9?q15#fsj3|Af{+>XJX$$s;5?>&qL-7Mq2e230p-E9TcJGloX_MN&e79D3q`F zHekWJQ?)wH0Tdsb zLa{v-`!x-G9sF;LWIts(E!xZHTay4JzP@I`^^oOiQ%hYX*!gZ<-5}vG_~l-{aZ*I3l?_XaMmMepyOh0_Uy-6%TnB^x%h<7^VX2}l>SmI1xRo4IBr@&` zd-<@p|6m&Fe2u@mlKhLFW$&z_wbfj63o`Qji6U)=j`(%4E?^hA*6g1Hv z2q6){NOE-vZORHZ$0ZPaVAnSqagGHr=7ApN^5;qNMCiyfpuSG96&2m zd>?F%r(&nm8X>l*5J;um$^=;zEX1RPiImR%*&d5eDy~fifdur?nlRO)(UsZgvU33* zBk*$SFzW4XA6)5_K$T1r_F`FdS|Ia0Zq0sj*F&=K(O5EG_|GXz(x>~dhBQVOSsEyx zz2Mx#k4;*6ezxGE?FnOd5of5`o*<2(<6j_7U%NfwKezpC_|cHKxvPjXR+m+3&TSw1 zn9cF-Q@AG)rF(^n8mZHdTj6w2%tp`F3eRlC$PSkcxD#v9OwoU-4*9@ZL!jM%n0bV` zKU}aDFDXF`;N#P0`aD-pMDScWV>|1^b3U6Z__rnS0jKVOQa#`1tlKBMgR(!hJ@Y$y z$M#+Ta)%js#}pcDSZl)*S#Y5eqxgP#0J6hm%uxb|E`23{G^QAOSRig_$C)+c`ZnZ( z23)T372OXQKCif^VepAXBYR`?nm|+hosRJk5)d8w#gpU2&%-JSw~;F7{-Qs?=?dQC z*DbD)W8Vp>?1)Uor0W(zCZ9Wo6aEN}&c-pRg1~QGH-5gyiIDHVaNT@P86$Mxmhj@D z<)Z$d(i<$uyrOz5?!;z0hKd>0&#wSU>YB~qFgVl{OR^S%Zn*aRd4V0T?)!FzZUA#W z_dJCVO#lw<|0><{;DT@cy=TH70DBRVS0gwC4u3EwBy#?0E$;tk1K2wqzJ;mK!zsd^ zX~hR^XU)%WuRZJMX@lsj#rl?LYUl^Qq?AMPd#2+F4?SG&HefI8KM6_m;LUCcghwf9 zejwsI%STd2#pxIt9jLAHV*&k7gZj(g660d-c(^;@2m)et$w|}TrD@3z^<(&(b_7ss zz6jqti2$A#Zf*B=wr8}wTx%8Q6j&KL54o(;659qP(gG7*MN{Q5W%NAQl#;GfSZPeL zQK#D?%>4+FX+AYWVNKJd!3r}2GP}2h*JnE-xfM2RY2hXR6J|%+`6UiZnVXMs`@c}d zgwI1i_Q_2B_;r#M5P|=*GQDl|>_g$XxC<(TR`E&^W7f(WSvqo2Q0aH{6f$Z3jMj~h zq?r*g6Nrue$3vv}bEao;8N7cOiIZZF+NgZ5--|b{W|yVWm}&jY+Lh1``Pg~xLF=x5 zmaX7an8$vP+~ONt*P=R0P&q4gqQ`s_VS%%r`&>{*^0U3iTHgX&bRL9O5f!C%z_83! zHcF@UsDb>8r|=SP99`Q^QQ!9`-Ov22=l=$cSCP5Qd$YcEJ4El%Qjo%H?g#zk^Qo{Wcl*~|TyXXjbp1}JfxA75Rf~_l)3;iMjx@Z<%Qv;dxjl}f zbYP#bd|+$yl@}52v~j+DQK>YNz6AOuFF(1tJ?;y{S7V8mWcLdXyWO_h$!0!Y@7qTi z#o>DV2X7*=dh zg3g?q>AJ>~apuCNs;a_fGx7iTF(1 z;w?i%%KYg19pSe?BMPA4lTor(I)bTDDw$dyhoysavP|q}$t`N&NQxv1qen&gD%iwe zu}lR_kQ-Ef_b6!KKmqzd;|ON@t0(+Nyw$%v52%=2W+)q!*dw>l5&Zf-V< zHTOrZQ@)*$)CZ@Z&xi^?w=prP_t#HzIuugyYQ4%=s;iMD^Uzgqn|y=aI%VHhPfyxy zwmEsz_WUXAVr+01A=M}pvi=*J_=YqU2(5sKQ;Czk8Eh{BDI_#zXY@{r7a$@CK$Rhl z-@xJX40o6+-mVbD@f`0UN&E#$!lzxIKBeC6AKYU z5n3cA{LO>3n7R31pp{^FM_TTkjcZJREkB0bu8-a{58}c37W6*sDo!m|XHZ}oP10l@ zy6R3-E|5s?mEyvW4jp|eXk|pvtsAOsn?r^r?H1w7tI*4xp;csHE9X z|8ju*uvm+pw-%jS&}K{lfq9Rn7*~B!zP=R(A*6Q`HT2vt#C<AC{os?GSljcVq(XZ(iFrr8)5G(w!DU))|^|byK(vs(zil5(zg4 zW@ZTmO9}iBbOx?sATqTeyOqkf0to>S0Tqp=&s!rjt<}fHj5INiAvwkRd*4UW1#zsPKTk?dn9jGdrHDz_GL<@WXcw0%4?4@ z5Hqc$#Y!HJJ=N{=)CO5GKQ;56mE(Q=YJ0D3vnMQ~jz!LMsE@??5K7Qn2YEQJB z2u}=Seiz@Mmq{8SaGFx-v`CytB<@IDyR#rkt7a|Vmq`A2n}E;eeSf)-_wU1A^I$nR zkq9yysv?G2MAa!Jp}?0Axj>&VfZ$ZFum?*NyHwFNhvJJ&k9I;75PS<-;(e-s`$hO= zaZ2oYp{o+!TC#%6@IL=!yz~2Ex=CeoXwC=QOK-0FgG{(VVzcx=sN@*@ z!Kh|YKbj}eW|XBg!9pRt+*jz-!h*BTYr}IXnh;AkF)5)vvTfh0bcU&zxz@@efKwTg zvE|kFw!GRE2=-+#gO35Gd{Y0%N7c-;&KuKA0Uk?KXI{l`TKvMZ@WdZ?v9zl}ku&k( zrFiu&#AiWsaeG#v6mWIubTr*Ee1f+h?A8t9bi}UO`o-iIreP#IbW3L2Mp%UZF>s{d zxM&9TWToi0a;%Dm8cXFmnBGPpW)k!wyLjJK6{<;hf%=hj(Bh1(=$ zpNd%)tyWY|8L3WDY*j2-`d&h}&Tb&y&uz@MrCDCVDOYx3`QwEyR!Ve{z^W-5fQQ?{ z!!0q!4bjJqXBc-x1OI=9czbk+qXkmpBYr(@jZvagwuMXP4XKF0lr%D^E`-}=0=LFY zY{3mtv1Fd%#;M{RBP0C^sTz<}JK)Y~<&tS86A`$9dAMnA0=JD1Zkf%vVK!pPVB9!5 zxMRY3`>ds9%Ai8aEkY)_*eJZtC36ff>TFh0pJUCSq0=?;tUBy)3AbiXon^bA_R}(a z)E|M{65^K3siFN`;Kmup&Fzsun?kb3@0LK%Sfh##SD)Y1iRoN3(LQQVOU{(q);dzN%iS-l6`(k|T4Hr|*4 z9c48bxFs#zkUDRiPWmlHwE}LP1umI8kg%xNwUp|6vay1(}gFh^Y5_pYG7k|E9ZQmXGMZ$kgQ zDOILasVq{sr~02vLbZd)4VvRGrrKn8n0d7{sqb04Abp@P@FZdAp2G06w~ahW zyEtZ2(u{-SPXuQ=S?GPvtp0zq3xpBsHB@xcvn0w5{}7WNQa>6lymDkYdrsILel(t| zsDM+d@1<{o^fAJ~bA_RY2*WR!H1fQRc+7Qgyr|@~R%n*+u+%F&;9ou@gXS$3Jw-}M z@BStXJYw+B?E%gPDXzGJQmX&P!DkIR4TJ}rP1s2B0%=IpxUrFGj<_rqh`l(>ljWKX z-WV-sX$X1(@z}rwB7h&<1e^`|qf9n-%fu0EaHmw#TrquuL)fyQKQZc1LU=E#>DWwD z5ym)$RLkNgI)GOct57&ymc`+k96h7VAc6*vsU~G8IfF~QvQ_)j z8`uP_UeDo-X$@D*NiSKp{5cI>x%xIGvzb@SUFyjY{0!v(&Aapm7^81Nka@l2j#^63 z?}<2=2Q>M+_k0^%44h4eF6^WFe5%X~mCfKp$TsbLJK>x}URD%!O4XVYs74g&%Jz&w zb)*QYX-tZ44FAGakcyL&t-POFUX5dnWOCjbnDKYLkr@=z=u|p4?}8f7J%CYR4}j_ z+y~GkJy{L?O?{`arm@qtrtwot)7#TU-{|S`B;QEM^0%b#Cs?r0zrxesIcM^B^;h5Q zbH9N0k9Q3G`RmggPbO^TY<>FCJ^IAk5mnc|a^4)hG0VF5^n4(lf0^`;s6PiGK>hRjvgvBG-d{;otFQD7XUXqbttkJLtC+Y;ZFq z{B&D~0@mwSALpIf1$n7R&}#uP|EBr6z`)?hR~q8rT=+l=#W1&Zo2P&Il(g=3=-(`S z6%))wwAx89*G<~9V6L?s_k`9T(P|HYA29B`-^MVvXNf3x20{h2NHgag8vRBO6>vF8&1?h8K`tYz$JA#u3{+ z{fk-+v6>%dv?>^Q4=9(f3vD?V7+}M?FI)*z(0{HtM=&PW0=)zd2PQWH-5Os!r5Qp4 z{XWw4Cyy1C1@?fElR zd@t5B$l<5^{pL}mGJX)^eLz>uUC#Om#}n0%v1*cz$07+eily^IxT4aC*Lc`c zqfrz&9gO>ZS||-jO1nT;!F<(KK+=XPD~)k8z*r<9gV^x??iJ|=T}Tfc5=^e0Dh?bH zOl}0`cVKJkIl8CwA4iscg8$S=GknVMRQ@MY_}4k|S&;3!dh;Q(Dgiy>b5H~H+@7wu zDv`kV4G@@1YoO6Yu9F6;Hae};#NcKu(xWM$!{Go{BaBXcE|XQ zS1dCr+@DDM&SuuCdYx{8(Z0H8R9ca8+_bXzM!H1xq9~x{V+O6!1aqNv1`3FPZ|RA$ z1OLi;caa}9PBuZ0Q6%^p_o`IDI*tr#Bsc`tD2W+1fuqBs;cce%d5I-n>>Ls%jriYB z;oc&JAzsj8KmF*i%D;CiAp)wqm|nN2ef$3wrL^>;9y%GBTe^%cn1pvrTPIPKm+}RI}P}qRdefP#zFpI_D zOz6^<^wLoc%W&I7nM%Hk|IdEqXE77bn1 zvrDf6rojO!#FMZktndXAMgYf0*f}bh$8rFMOkb|VkT0I7#+gK0QT4-9D!sU14C9sm z|3kKeP+G~hrPUI(T>wgfTY6LIHNzcHjm3siVkCmd4{oj9NY@?rVLF0p{P(9|$m+-I#KIS^agAaoHfg7zK9;01Z`z=+#=n)ZDcS91<(>yh=Kd{+a@kT_&_r zcM5IQo74?W>$&w{e1!kc%cpUHKL(wcyB7_J10pDF0gmv+nApdTJ9@tIfH1)kheqbf zRD;9+8QZp{={& *&+6*5dg7YNr)7FcyscCLTY;vKfe4N@ar9J3hdV>2N5wua=gAB( z3+>oc;N#g^E@`u;4$!Go-dxDp>RRFr7vQ$)TnO#N@*U^ZwAl@ZA_ir0UIY>zhLXjk z7580Vw6rkLZ1fZa8O+HD$e{_`CdLBi*y_DnLg~B%wfDLS4{KM^7eweo>Vi1_A8*2xIhf_hckCV5cz+Pi7$p zBKGRy2Na1cpV4eu-=Hq;0*cDC2QhR2G^FVe&OY?W!zYJ74dTVz9P#aPOF$W-e( zoGdK{Gh{pZQ~c_K_uhG%YTNILfwN=<8@L3phrhY%);_f1z3nmOgx?)m8I5$ z*m;LUr8#=Us+PEro%=ji3ycR)kkzMW8}gVOAPjnoli|3FQj!aRDdRvmI>s()9zRor zfJ-~HL_-(v18z*#dIZuY3rAz{(8&-i^maLG6SHT>MpsJ*D>cBy?y(<^0mVAJwx|x+ zdu=1f>Hbyf-4``Q3l$`P?=&G#7RpknbTI=hrY!tj$%U?ML$ofbgCN1&0@$1V#EC7; zk7D1)*drKa6rVxE&jEgyU%l0Af^C!vr@8Bf{h#u^>l*lN#UFi{}kEyfpjs-fWFHdFG zaY@yBZ0Fml?^;gJr>D*J=E(L~vyxt5N`!q)(puFzGhM&Gn|M^7w2Ev>kfVK)k`RGK zRKSLOM%#V>Y{DU!=BjHEKr5qKNl;NN^+)-x0QD;Cj7my?*yc?`MA#%r#dUn<U3uqTj;p%fsC*)AkS2`(S)X2hbmyN-?l^Fg$hNTz+oJz;oHurc9Y&c_&lD(r3`26qk+~K)-KR>Wt>8#9P}+3 zTT}|e7ZoKchb(Ia>rO9#>HG8`ig&^|OzXx}ZOmceEjWtSwox!#g-*#LB+FnbTrmM= zmKGU;f!-2WMMQne&pJ3zIC&IQTy!ev%86*q$h$0BtsC*YNC3(6@Joz9%seE*RgT*m zg02R57Jw8Wc(^l+wE#efFM?V@FP0Ki^~xi<-+6CDc@n7}{Ecbw!BdMWN7$HTg);sz zCnHC#lZVtKe^e?Makz`-WdmyKOu`ZnhH~s%2=Ki^N#medEB%?wqYt#&9@aeon`xoR zI~s$AL#_v=#tiqYu6Jooo2j`+%SAXaV{G%%!BP%)mAq^~1DIy})3$&9yS* z;o)4aoLPv5>5K|+?FQ0}o8h8LlA#-1)=BnJ00lTS$%rxe$-v{lLMfxI?aO*8Vyh<` zX^40B@d{obxeIx+@dc~Kvrt96LXx)?_gvE;#r6hpV;m`?RFbn!V`e)6vTC?;shmh6Zm$=7^L5OvS$C91 zWJ(DgK7JK7C}>+6yv(5E51L2GHa6)6v#J*_?qKi{qw_o1|pKFushTPS=7NeMpMw!pknnD`>*1ZIq}`QF4-z zCFDdck!9HW_e9Y#&PYd@n=mpqfYe|KfK`YJObnH6wwy0Va0MKsxsfgR&lIq(IN9;( zK+ZH*QuO_KOENmY>ct&5HnuOS*76``&$&>&&>k^j%EE znYr~d9OTkLnSsEw}m1p zHZYm_WeAeRssxDOB-p!~!XA>ogLU)RU0M}z7q8l1Nk@I+js@E_HI{ONj2;zK;#5)s zCB{z}E2C+yfjAVV6g65v;^L%qo5l+a%6StvG+5uKA})pRxARA)z`K`axgGHhT>j#cRdeGi`Oxw0S?F*6G{;poPYtfa%`@B%bf+6;ROa&L(Fl@ zf<#h!1PmxJ97GrBjiP0AE*S0~eh*E6o6x3GgL^~_!Gv;^VyrKV66&P;(qu z6={Rl@6eDzVHh#dnuBnqrMVkyL$Eo>bn>b&Gdsm|y*E-Z4NKstXI=OEXJv9x6wZSz zP-((_e)4kEfWdjAu%HFrWa_AU{`$UciQdEKen?Hy@A`rjqXO2$DL_r30E03$1Bhov zDN*SDLW!n)QFck1<1v$Rkx_sPb20&f4KiJzvW_%mlE89A9_jf&qTIScrS8GPL#GC{ zsG1fQKy+{NsV=hw8$R%ildJ7`2R6_l+3lw{_QHteW3)ut1GQwSxka9ef#88eC__Dk zHqIQ^(|F$vj%({ChgP&sEe)8*TS#gkp_-Z+706&CG8Q`chyfTebYX5m5>so!BES2| zppcLUib)klg^rm(d>yHEwQVJrczNIl>T>AJV;XNjI!s2!-S$n16xi$)o!u?k+pHmb zAAZQd$wCMaSt9`axU^F~BU1&0p=PzLCz61G4WxNg6q77Wn%u%9&XE%Nco9Maa$31n zGMsTi;Jsr5MYd@&3IAV+tG?IVMel5rh?G!lp-kW2G+l?aD~-2y0~Sva2p)}d*OspTqbrGJY+aU*;SZQBS5p}6mP7}nXnQSd_s(I+V~rx|TS z?U~z6glTo=Mh(_G>?Jl(#}xna@Fmm1u&hqKrcD(UQ7#1!d9c%`xl=Dm?c0NB2Lz%v z0Q?zrEW{v2MK+Wi-H%DuVQuFvvA6W4ZqIbN3^x!974l^`(WAKuV%K4}cFzQU~)}#EqrO?BD-4yw_(P9!vf+JIt@}bq~(k z(g+hv(d|qHlD1Z8WwjO+iX1?d1QEz^bH&73`V9!h!yRpWgF<;^{t8;&i1ye*-x^Oz zW(>@{d9*!Q#460{1S#=g<%QK&(MxN*2ynIpk}7>Hv8uCsY;cCu!2!@wOr)t-Cp5p^ z$`1J2hzA@3CboQGQFc5GG~1_IFV)FyEJqI|ZXQdxQ3a`BS!9JHf_=5PD*$}ETr>C5 zkAB6S&%?;YUeO&ayqgS8yCBkab742fLTPX>R*Vxbr133rWv#mrAaadrFJ*zUdoOkA zbe=e4n+s3_?_icqtQ#Jcj1N<5{T&rIZLLsqfw$q2Nu zQhAdev?*V5-R67>S!2xwPy9n=2-ss@SV2f|mV`K(ji!$4_H_vA(ogQpZ$|K0Vs1-5 z>$cyJpNo&@;Y|9gUue^6j9HxD%Hh7en-I-!(4@y`b1#&VNI3}PPc{c*6SZWWF&@2c zdr8Dmbm7Nqu`ZWl-09Z9B|JN}h>m@$jZ(O8*2Er%cM+Y3>yku7{cOv09HJ5*vHYty zsY6%fWik?YmRP;*Bmx!LnO#R{YEYumEj-geHO^}F>l@N?1IUdNU3W$A=sV(v9TP}Z z6Vz9x2s{I>ZvnDHxqHG7T27r!4s4!0;1WGB#*HirKJ(@!R?f|Zl>#__KtfNpUXRPj zE-4hOM?n%2msUPmrj_YZXIe0!Qd=}Ygjxo`jHytsM3h@=e{!f)iY7~6!8MKnN$f~8 z7816$Dj8X#6)jWU0dsJI0;s%%qyyicpY;uo{E1a)K43Be)cO2TR-%Z(b|tGTHhDn2 zQTiFzKcs*tob5`b7-GIrRTG2(zA@5A8>?k(uesGVv|6T>>q??2v;=astlzupf>|V~ zOp;~38BE|T%?3oPT#~e(;M&dokqRgBhi(F|X2ccOi^W(=2bP%IT0Ms(Ia=0BCadO{ zx#M*=6`^8@xsBDilzxBpnL-y9N}zBz>cJRB4^d%;Bo(o3fL+L{$WR{i0`uiS*wr-2 zOqowja#(V&swCO=Nu1Isw2$_|Q@b>h!O~ajYGp3=D`WEXZxO@A)|-1bO~&GZdkdSX zayEhR@}ryC~@!vrJHh|$L9$&1S2@WHG-Dmv7=j_eYM$f>8-)i->;y!3K59{5E^ROFNdgsi1$ya zhL!PfO?>jE`OGE(1rY>vXT<(mJC}jVGnHL`gEDq90Z59}03 z$%cqPwX5#VrD=?}<`KBUak1&uUIAd{R!$hxG|79R4&K{KyLSB~ZkHwF2YjvHM-u@7 zJ|rKFvvm-l3z-#G12AFKx#SGPGI#s#JhI-NPsI>_=#)L^e=t7Wq4J==Nsr|AQ-*(a zJS1at-@cgU`xuS*kp*KkN}VUon{1)o8>0>l!$aZ&2$yb$!|ERZhzM;V9kdtr=$z3J z*`L#T7u^v>c|8Z#4?Pj~RVWa{q??IC0%q$b;(H+F5ItoQk?H~&03wmigvVGDA>3<< zT`b>e-D7O8h?`ivIo#`rNa0{TqQ>=QeNQg1AB!0HexDD^OA2Jk(+b2>SL)CK!a@Jm z=i*2a8U^V%AIBRb3Q3Aa{|UEAj~3T;1=JRHX{(&#P!}c4!3e<0ntO&4!)yvdH{9dV zhop2}9`PvS5PEcTU%Y~;074WrXbu9Msk zzip2G%;$3-w2(>v>v1Nqb+baC)0)9sOq{%A`5m2RE%T`C!_ zn_uf*6eHjC{ZZEDqih0;TSZUfYSq{Sc;L>AzF+Y!6itWxF)bW{;n zv3P;sDZBwWTx(q5O62c$8KiJJQfu!Z|( z!kpPXs#YG!6N7R<3(5dex_sU+#Y}arvrDLA8s~XV0B460bJlY5V*mImn)7TiW^xJ^ zK!AYsWlfJ%+q2AZMrM$RpZ(d47S>6M{Q9KN^L}z~u)di#<{)O7*12kuGhN~5gsw2# zrLP8#){~7+cL`?bjyB6IQpIRbVFNJxYe3GnMpRf)_HS%@l;fG4CTmp;jj%9j)r$Ji z{`CeRg`4B&i*?I7jk}CS!g_41tVYE>d@Tn9#?NJ0^pLp<-f#54jr*EC$YvT^Ge9dv z5r;a(FZ7ZIwZZc+s2`w)r~1D?pdLQseJKNQ99{ai0-xIpX$0*jql!X;HU0HE;v>s4Ay03p@@$XLpKdJ0fL|I&q!2k`Q&9V^64Y}~V3 zWw1ovTeh*7bq{#aX-xC#k|=Xt(sLhFuj3}iB6Ov2s;5G`#yWyf0DxFi*7pbpxBUaj z#+{kbDem*OvcTd2r?a;s7sg5^`pjJRp{UP)^Zayi*Yk`N6l_f%``f$sf}HKHnH_f5 ztT>Q;!Tc!w?~!t>WytB=1RZHB+uY{kf@lK&L>TEU);r8kO?}$IKa1#22aAd+3^8MQ!rt`{_$Rf3YnF}PT_k547wJeh?p8|dFaiDXuJP7xZ z|GeoAc+X>g_ZwE(zeLrp;K$Lx#~inqgK3;Sm+h`RgG;W}tT-FbPfLP=5NE&{zfcxE zuBcNpsej}!zlF?76c#*20Yf6#*=zxU!C=TxF+|%Zm{G9U2EmbOEQJjFmyV=9`C~fC zpS&=c#_A{gmm;klSr%x5nKtu~3i2FPS?N0u6j$W!)38<(>Hr;7=^ehQf&tfa`P49P0Qm zaPlqj!nK(j&4zJg&#X+IGxGD&i>$5!zYoHb{A8kKxG9Q11vq3P}ZlR3PZA<|*we zP*aB?)S*NMqyhRW?LtasZXcemLOdu8sBsw%y*1=d`ng#U;e{*oZI!e`acO&%b#SKF z;kXITQ-Cc`+b> z#`Vy@mJZ$W--xF$YLV=K@r+AB##3GGM#9iJeJ~r-L z5=!0HH#N2!m$<`AJKIKdw8Ha*7UU&y4n92aXkcf@vqFBsa6Vlhes#3LHIYM#30}f$ z>BWZN5OU0*#a#6t+(>7FbO`^;PCXTXiPRR?e}lejUEj9O9EBI!C04XLDNvdQXS!}N zvRDMaAo)c5xSoF>z5Djl;jS<58c z^wOz(z)8}MP2Wd8vR-pdwybp=8mOeedy0|{d79|DFi0Er{7?J!)mw;Mcj~|~oicI< zCrFsAm&+m}E9ScEbGC4XaysXQmXX5LV0M)Ix z(lN548nY-#jjx{d`*t9M*cvA6ic{OfpVwf+v$6)nzhtVF%md zJ48Dq+O!Q=c@6>eFAyMKniNEWk3mbbYO%hLSizFasY17y@SRJ4KW*L<(rvq+9$$2Z z8d%ro>lfXN^o&p1vCvm34No$1WZD%f>bhGb^9Qcp$t(MmL9DY}-WHQ%DWZJV?#^De zCie}B78qFJESowrd?zzJ&i~SC&!Jrm9@nO9K?EMwph)&)OU@LuuCy6{;PSwFEYo#9 zUtp%YZ_FJUa#9f6o48^3%6} z`~6o0*<3}y2#~QI$`|=;heF;Ibd4BvUmMAq$D)*Bzj z`+3}(q=__36gQva;1JfM}GtV)W^L zUZ+yC`?$61>Y7@+^M$TZ>Xl9V^%&>pI~oD1WFe`VtGx$^-Dc6&Y|W`?=nOu9$UsH8~` zs;};V)%)r&pTdCX;YYnI=mMM!ZN;?q|60=8zvsXKp3>wT<6rFdy~|FTwykLuKAX`J zGj|GOD>&jcj;7-(Ph&YOG)?(Gd;HHFK?9lzl#DV{ci6dh^NdNae>R)rgomdyP^Az95~3Gs@Gr=Oy(MK`T9lx$_%xj*h-RJlIv zPgf^>7yr0jsh#%B8^a~(fBA8=qY9@O0-%OwDbHf20zh;?+E_A}(IhU5F1hc2!Mbg47Qg;i>HNDxF{9aU^t~)4s%|dzdO=;<5 ziugc3tQ6KY_{`*jJ@Fk)3CJX2s#%e`V78hw1G>pty+hjfEhF9<*V;K&mOQd^Z%)9Y z)F|`S>eswrx;MKv>}$gt;fmOJe_G65-J2$k0juBD`LG|}nrnB7>$u7=tk?IF&yP{R z(qsmbFv0z$k?o%*6{#PlbF_oQm_*uLH?I4}=lZi(edN#14;CK*=Jc?!wBSu4+a3D$ z+rZnOz5Rz%Y{jRz4eFwwm*MK5NVCmNMWl$0pxf(IRnoLn7$!Z#L;C~1;;d00_He(_ zg#QdZxHUQLS604tOsDe43>NKH;uzy2gA%ep##m|IQmmd0MVP}4H2|_e38ZtL5TMT+ zDmAb9raT)Yj#v0qVMSEQE$C=1dvP9VeUI+5yQnC4UL=0Vasenlf8o|OYio})jKJz| zlE8uO*opw6P2-Wea?Ch0ALdYj%plc*Txf$k0e!eqA!n~0RkCp5%)+BPhNM{7l)BUQ z`R3f8ZG^h!vpv6sr62;`gSN7qy7T6j-2}rscH<{SL`!yZJr^2@W2ZE3PFz&T4`_udsw2M|5aA(QgjP z9L{6Tn1n=6Jf8Tt@obSxMbow0wv@}zQqWXKN|F`jU7Pzf#zY)r#u&(qSm?KydwlJC zU>*gI#9w_a4*59-{W))*Q;zVqE+I0em1C+QGpC*+F@5H}A$xfa`nTg5h=d)95Lz+p zLVm!zs#aevw&fsgPZ}ArS!Pt`disr57c;;I&bE4Sw= zjU@EgO$IQyZKSSKXRIG z`hjB$M)uDF);8b>yZQ$FmuI{4?E@zxdMT{_4-G)NqJJ1&w*S0+jQb+OOV%NjFLHN8 zwwH74agnXyI`R}5J#3JM5Bzn`jaNjnnz+hDh^z;IU>bKqWP%Xj5MjO!AtJ4K`e-T= zxinrlhr&|FSl-14|5eUSt5{$!v-WUpoyewA@K&Vo2i?jzR!yxuS`Okv=d|F@>{g3c z8q+Uy{ZyNx^#MJMKEyOjFIj{1zsR}xMq?A}Vx5R3%syo{u~}`%VLjsn6;MZX72hg% zfq+RO)cF{9PMT!uRc0a#&R-;e11IVKcwi|z3S+nDNbtQajs_oJ__`*;HJDHK57UXJ zy88K4jt{<^O;aTf*oUmw*_O{2Z*4O}d`R0*(rBJC)+mqfPzYw~(l<+Gn(>OM*h+k6 z8MGIP-WRe&n$c)~g!zZjBE3bhJj5nrWPqgcv6*^yy)TW4?D=dQ@Af{G{ypltN52*Z zeIpWvG3h*&KI5;%f1OKieT#|&T{Mvk?RccpQdmnu0d^y;?^B1>rqd| zk8x_8^+@1w&*R$?*uRN81$CKPdwr>$KFaU1xI~P$i(J3jwe9QC;EJcFiJv3>3v1zS zN=@Cw0~~Xid1poGpi-elztsA}y*cyoxMm6zSQADtyw0(Xf zONL$Lu_Xl5Ry=G|k-?5^mi_45vtFBZJCSPL+<@Lur_@$ z$NA8zjOrTVasy)Q`I#jIi8DICrP zmK?)B(kk+X+o?H`L)U|CW9L%bnV>EMHT{bxNd5z-sr>=xcDmfhLDMGJOREJ-I3o>O zF-uf4v#N+mEwpnotAu4p&}@if4*Jtd-xs_oprx@I2*vhz>_L$8j=3GegmytNn_dMqzy`lx`s(WlJ;&8C>OH{m;gVQYG zH%hZ6{v|W&D7AIr@Cx2NVY%hxp`A(YduMTu!7Vc5DBu%UE1BuJzIs_FI2KJS3F9SY zhr86rVkQnV#>YqgyMFuP`J6+|Nn-77aDG{KK6aLYQ#RNg;Pe@ONtYL^z#aomnQac( zVNeSKoYaoJ26j6*)yQr+?JE~h%F;ac{3hA_uV5Zy_x^BrIq|k-JlZRE{U5<)yy3W< zM+a_a%Db;w0sHNJ_y3KHw|?vsWAWJ;2j9274V8-i|IbX5FI7w%f4zIhWQrq^;dW@Eq(eO5j*`aT;!Pm#|1y zcS)Dkefy=TPbmW07yuqUJ(mt)PF06-M$!>1=ZlV{UMNbUp(fQUbUNkk81x$ISnS*1 zDRAuiE9}u(`ILKlIc&E#Jon=I9mrULZoBgXb{1ii3cA56@D;T{p2Tv9zfydICOH+l z&33!{@4p2i_wR#myi$J={fndnhDhw;o2lO+Mn}XT@CgHo+M?g3eEGhC6{-KWTF?FQ zHx09K*wlP)RqQ4HI%iXC)%RgkwzCvrFrWcjuH>l#!mWyqH2R1oBwu0xdF(dYj%To} z(SOr6`?DPx{PnhXn&sd(qSN4SaZL44SFcu!GN2}%c4!9<)l%4E$jlYRtKuz39GVh0p;X{xcwl`rF>6&J4mwnYDIX&M%d zBY9Kvow&-@3nMWh+iK-j3QRhzIt)PrR315OxdQhr$Bz(AbfnQc4o!2(Jj}(xxp0^$ zj%Oq-YgtOx+*vZ2saBZmz*{z$Qqg3Li0Z){Rh=tp5`iaKfDx!Ee_KleaSUj>;7+W#X=x2esbnz{=CRbt7mQcG;|(JfD!ckI|RHDBYj9jflV@89;&;r z_d7Y_)D8!6!HBWh;Z4LuGMT7}W;z6QqwGKRzG*-O zPRVQ%m`@^$NsiH~8E2=+zAj47=vb8;OOi zk?3K|w2GH3b)TIhtF3&+%2oO}^{+N)$UyLDYaQq{?6^=r$XBp#{RV{_{ny{Z={I(! zk9*73Z9GP{8}p~%y@PLRw<5)R_U_xSM5%`doI0rNkpIaCOO!e91^15g2k}G>L;Mlq z83YhQ^I$*A@%BMZb`XBk)O5qNY{&KdAdKQ9&GMqG>Za}bVVve=-S*?W?&tmfbHMdX zudZ)y@9sO@UVkvu)*2_=OmvNx`2$H-R898`rZ+IA)oG^1YyMJ>WQE5`n&qO9EYq}- z)9KdMH#WDncXogCjF{MdwFZiPG=tG(w&ZEC*En7I*i3IxvGz0->{+g+)>~KKfX}q~ zFrG-r%6X#VO~Z)C2}Lu7q0In2f8$3+#{fVO7y^aC5l9pogH>uKD^wbtLDhUZZ4Q^m z7j%>>5Jh8(BvP53V_V_1Q#5h^GhpmvRD8N{=4d7@0wUk%_gl1$T)AOUP=0cmY;Gy1 z7jW+4x#f8w2e0Mwb%(WhE=7q_{}6jASDv4>uTya)m9jUda9lB3m7dZ!olfM_N~{LQ zClg-Lap}_ze<0j&-8FyvQL?MLOef9S?X#)*5)Nmt>HrBW!d$wQt+LQ~ryw$7SMcq8~*~yFb=xDl`W}BmA z4{pBiEhG=R-G%W3$lz+rnJ51B!_B|_=O^Ta(uqudN2gIt&V3a6F?k2Trw*l|=)CIelN|@yNQ8?L$ zTQBzOoSh;2DYM`2{kh59n% zRa&cDMu|FP6vm#>FVs3hT{eUo>wsVeK`?7_CSy7_V<&;em#^q*2vDFh@8)WpuSht1 z8*HC8N+ceoWe2Xh#AV&YjcXRc|H67T#*{UV1A%AD`tfTlftsr-&%!TSZXyOnOSW~QnX{p!%l{OP>K{gknFp^}oMa&2wa9WZnCCwle4Y4GdQ`Qp? zn~D+$aw;U*Y=g?)IMt**1Pbqhw23S6o>196iK?tS$0dAJf_L=-gL4+BO>z%4+N?wHV`Y9IrZHWQ02$mT{A zMv|<`y21<)xHXbwN=Y+FMFW;3bIN++VN+28fTNIPvkj>!n^Gkn3WI{CO@dC@1Z;{j zN`o%$SyW~4Vi0s?VfYZFCTa{65Ok&{;Y$Gsy0ZAjKmk#*8u~;-Uuft8hAwB2aSx^& ziUFLU(MgKIWXa}>D2$*OzzG^X@;>tS?HLq<$&#(?;$6T9iUFKPSH)in4CUpo1Q^9| zf<`C*bKU%Z)Oi2!C^4{Lj=G9Mn=j|d@Ab{k7p2iW>!&Y8Eib>G@X9LjSzW#P@%XUV zMjy{&_hFXx=T{-BrIZ&w{|cnT&Z4zZ7(=L6#?Z7{8f~pGTG0xlh0j!>!|TOxwOLM_?RtfpQtEh4w$KJdUM&2RTfPTcTXzC>1oJC z7sGcoDHiH(MG*!*nWw3>nZ;b35X$MW;(~J&L)Sv|ma}p?BuHPdhiWY+xsmgby``9a z?hhK-MLZV|v_f;K9j+dT8xC9yy@a4kF@O_vlG3DoFp$YOKP4^1pXuhI3SUKi1o1z^ z`iV=Ap5sX5Z1rQv|1HiR>_3jcs!p^NX%XpY0b}hqFuoG70Ak^+FjPqa>qnX}g%}lv z^RJcS<@ Date: Mon, 12 Feb 2018 17:59:36 +0100 Subject: [PATCH 4/5] Add FormattedVal component and use it in BalanceInfos --- src/components/DashboardPage/BalanceInfos.js | 25 ++++--- src/components/base/FormattedVal.js | 72 ++++++++++++++++++++ 2 files changed, 86 insertions(+), 11 deletions(-) create mode 100644 src/components/base/FormattedVal.js diff --git a/src/components/DashboardPage/BalanceInfos.js b/src/components/DashboardPage/BalanceInfos.js index b585bfeb..44886ecd 100644 --- a/src/components/DashboardPage/BalanceInfos.js +++ b/src/components/DashboardPage/BalanceInfos.js @@ -6,11 +6,11 @@ import styled from 'styled-components' import type { MapStateToProps } from 'react-redux' -import { formatBTC } from 'helpers/format' import { getTotalBalance } from 'reducers/accounts' import Box from 'components/base/Box' import Text from 'components/base/Text' +import FormattedVal from 'components/base/FormattedVal' const mapStateToProps: MapStateToProps<*, *, *> = state => ({ totalBalance: getTotalBalance(state), @@ -31,21 +31,24 @@ function BalanceInfos(props: Props) { return ( - - {formatBTC(totalBalance, { - alwaysShowSign: false, - showCode: true, - })} - + {'Total balance'} - {'+9.25%'} - {'Since one week'} + + {'since one week'} - {'+ USD 6,132.23'} - {'Since one week'} + + {'since one week'} ) diff --git a/src/components/base/FormattedVal.js b/src/components/base/FormattedVal.js new file mode 100644 index 00000000..6e468dfd --- /dev/null +++ b/src/components/base/FormattedVal.js @@ -0,0 +1,72 @@ +// @flow + +import React from 'react' +import styled from 'styled-components' + +import { formatCurrencyUnit } from '@ledgerhq/currencies' + +import Text from 'components/base/Text' + +const T = styled(Text).attrs({ + ff: 'Rubik', + color: p => (p.isNegative ? p.theme.colors.grenade : p.theme.colors.green), +})`` + +const currencies = { + BTC: { + name: 'bitcoin', + code: 'BTC', + symbol: 'b', + magnitude: 8, + }, + USD: { + name: 'dollar', + code: 'USD', + symbol: '$', + magnitude: 0, + }, +} + +type Props = { + val: number, + isPercent?: boolean, + currency?: any, + alwaysShowSign?: boolean, + showCode?: boolean, +} + +function FormattedVal(props: Props) { + const { val, isPercent, currency, alwaysShowSign, showCode, ...p } = props + + const isNegative = val < 0 + + let text = '' + + if (isPercent) { + text = `${alwaysShowSign ? (isNegative ? '- ' : '+ ') : ''}${val} %` + } else { + const curr = currency ? currencies[currency] : null + if (!curr) { + return `[invalid currency ${currency || '(null)'}]` + } + text = formatCurrencyUnit(curr, val, { + alwaysShowSign, + showCode, + }) + } + + return ( + + {text} + + ) +} + +FormattedVal.defaultProps = { + currency: null, + isPercent: false, + alwaysShowSign: false, + showCode: false, +} + +export default FormattedVal From 068668b838f82f1cf185c57c0c5c474b84f4a59c Mon Sep 17 00:00:00 2001 From: meriadec Date: Mon, 12 Feb 2018 18:02:41 +0100 Subject: [PATCH 5/5] Fix padding on BalanceInfos --- src/components/DashboardPage/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/DashboardPage/index.js b/src/components/DashboardPage/index.js index ec69d4fc..0c09381d 100644 --- a/src/components/DashboardPage/index.js +++ b/src/components/DashboardPage/index.js @@ -140,7 +140,9 @@ class DashboardPage extends PureComponent { {totalAccounts > 0 && ( - + + +