From b54a100125d9ea00551fb3ac00bc2d4cb46c9ba6 Mon Sep 17 00:00:00 2001 From: Shaopeng Jia Date: Sun, 6 Jun 2010 16:17:12 +0000 Subject: [PATCH] Improve serialization and deserialization speed for Phonemetadata.java and size of the generated binary file by making use of Java Externalization. --- .../BuildMetadataProtoFromXml.java | 2 +- .../phonenumbers/PhoneNumberMetadataProto | Bin 131067 -> 90306 bytes .../i18n/phonenumbers/PhoneNumberUtil.java | 3 +- .../i18n/phonenumbers/Phonemetadata.java | 493 +++++++++--------- .../PhoneNumberMetadataProtoForTesting | Bin 10428 -> 6201 bytes 5 files changed, 251 insertions(+), 247 deletions(-) diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java index 5fe69c772..272ba29d1 100644 --- a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java @@ -77,7 +77,7 @@ public class BuildMetadataProtoFromXml { metadataCollection.addMetadata(metadata); } ObjectOutputStream out = new ObjectOutputStream(output); - out.writeObject(metadataCollection); + metadataCollection.writeExternal(out); out.close(); } catch (IOException e) { LOGGER.log(Level.SEVERE, e.toString()); diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto b/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto index 13a506d200cde58323c06b1f5f206b2d4a7492eb..31a15e565581a1a70e33aee54e942f1427f66dea 100644 GIT binary patch literal 90306 zcmeIb`LC|omEZNA_YUXWp>7SgW|!@ZD_0>m@;JA2awV^S;1+bINZ1!lee%!)z8$A~S-e$XFf;;O+v$X-ZP55Z+TWdpy zHZ-}v@~oRPrl)lRbG@PU-96I=#I=)xxJTscm{o1IYO`*)&29KP=B3S9@czlk(8Hth4P) z$Bzu<*-Wk7W8I(PFdNhkfXD3?ff2K}xBU(WyKEYJew(Fj1sh>%z)z@f>@8kDel%ly zPrxL7T0K75@QYohlkr64QGuTOyr0qknJpmSMx)+dZ=1ayh5A{$(S8pl{1nT7JhC$f zlUKAedZiA)W&(rVVKcoQ6%0GSQ9<_Y+w+-`{gaE$4q&YKr6(QGcE8jhu zgPIQl!26T!VicS!dVYA|tY8LYUjj^Lfb5g(*xKZ{eR8q^@?yjMT0_MrMRZ7Bt>LYr z)88kM@bA%lvwI92K(0rNl|}%pbI9Pq$&$x&K7+Z8F7A8sNQ`?f$`8q@XI!Y20FBH$AmDzaUKh3zG7?ja5odUdJp-^4?`0;g6-3yNDD8IuL_p6`}A{c)89P8 zVh$(IAFn#*GTF^9_l2zXI2snsKf0Ik=L=F4DBYYB!%*a2N+Q5hAi zYZixgx$mt3osTL1Uc)!Od3;r){8!Dc|EqLq23f3>UELLL8TfPTEaOkC;8)Y_y zp+A~!9xqPjQvNj5OpN_xsisobR@Td7P!9!z-#%I*T6n4#W<5ZWt}D3l?(svxe6i-! zgA?uCjHx9q;PNNnw+7bu;%lr8Nu$+FpOxsZqt`^7Xw!iGIBRV}UJ8uSBB&F6#rESexJ% zBfu*khI)W()12qUq5&VhumWc@N+nM?f4M@1ylQcKP`!O-demPOX9j3C1bt6 z2cgV&X(U2c+dEhtyjwP(?lJ4a+Sn(lH@{A||D1OH`=!s`Ou3|dnbR}P<^ zqL$pW-+rG^$<=s*(=cf!xGuWM)>p)b$z&82Ztvf;3F`L+6DE_F&p?7+%csJDGRNsx z?alGQ?fztP;l@uUAKZ55*r#8AxYN>4ZbQr=V39VGuGQFlOSYp(adEO-o~%|U>vdRs z;vXQniM{E=Sn3g~1tZ_*FS>8(yjbr_^G2ZURy>nTqw$AeRaUJAS@})apYVRfauiHf zZ_lO1>*G=%0o=iR^Z08~^@%D0=S#D0_yY{sQdH6a)*(*8FL-%K89uCJa+?WMXL0MShvN|d}(eE zkxeV3fYaK)TUh!r5QE&S{?TT-eKt%J&wjm62#L{}LK(pc0R(3v04;l@Zy12M8JXl| zOY0fnoXy#;@eaFrYIby}NXh3rTWgIYQ}7_(1JwN%sQc+g&696XKi6=yqG3F?R0i-! z!D>1k%>_FEm%RS@V^&raa)GUDx?RpUCo6m$^ONmzVf5%h-WGH!G#KE!$Fm0~kKiad z@^czFInfe7K{xPsVJk+>6rQMrMrep8Fv;4Sb{cA_h{zTPBKENmKTP1`BWpZG{sIQ= zG>?ShtVFJgKrBO5Pw&KpJd}Daf5y&@Zl#H2XYpN|(H^2_B_%q!&8Oz9btfHLI1IQS z`US&r&0mEB3axWbZx?U8kR^Nq_vU*%#L_p_j1_eZlPBYdap2!6Yqxj35qGY{&FRl!U7)QCCAtINbCT2--Cy&f)?-}?eca0LXBx1 z(l>D{2T+Sfm`KoBc)V7$U`59`q94#D+&+P>T?8RymOa=9t3;~sT7zjV+E!I5+7_?% zM~>%@mLcK#N^Q^L#L(34(eg2_%{}-tMJK+iNJV*vhIrr{;$G1RQNMJX9A0$REc$RR zgQYYMguD$?x6Car>#hA~pBAge#F6vMj;(MV!^&qi&fud^h|s9`l!S|i>p)ac`5pSh zfi*PlS>A)cWxrU9m1T?FwJO{(ks*etKH^LHyL#TRL`tS_dDrM?xYc){$Oi*=!2RO_ zj|3t7BB9-Q0-$1BM7+KtLLI4!h<_Jvstx2n@gSLr8@7?(Gg+p@2|xi$KExBWjIfZ{ zkN{bw{8%h)u*nzhc^=qIhWUljsc+4NECo@8HlmA@?Y`$@Ox6KqRXOu9)+Cd`v%!yv zPO%R&WUbyLcfmoR6%=VE;20Heb-0rQvDaoN|Di%ymw|WN2H3xcQ1~x;oR zKoK@vgTgo5MD8a7P4MD=(>^ z)+f7#kZ)lGtEzIx%IUEP2FwyZT;2BzUjP)Ny05>_&3L*^AXI$q?>J`@?wUo8Qua52 ztO!_UIU*xsyy;bvp9Cm}@>g6PMb8QzTJ%i91w}9Hx!aSP6cGN1trf6jbWf4PW8JYm!inY~;ATuH0$(sW>3XyM2 zK7Jey_@vEF7D+@(B*`c9)&kl1=39tS!UB!E{-cf`^RA6N?M4`MC5{Z-!>w1H1s|8H z+3}IC^Z4{1qqUglBR0#TuD4A^d&3*m6WlrKKycpz$UDjG5-)h;IM{1W-TyUsnHz4J zYK8FK`k)M_hVe!=#=Fe3kaoA)BR2#C#Hs@sSYiGifgqWJmCOUs4clvWTHt!~7qgXf zEtv1qipA1ljpZbkA(0d^DkMhah)7uU(5%72iXknwT;?+vrOCLB!O=!2~PR}X+@ z)B(0i!pdF=;jEksLG)*&(`*zq)SE7Gnem?JmSF?q=@hleziC_1fjzzL+nXmRtMK;n z=jv^}zSQ%S{#^t^`2joQ^U2k&ZV5~u{PGCh-kjV&UbIx#2vaiw5iH6zqBQ-936M}q0ZCDmc(r_#O?#O;HT25Md{{CDSU1d$BNY zXDay)7R1V(51?SSS*LZ1syEht+x^;+=XQx#{md&7(pRr0FY90;4zIWICZ5lo3lJEC z0B<@6p{OmdC%Z!=w1UPp$;SnZ(6DhH!Mh>|0w+7guNLHaNZ`@yGaF?SK;7w4v1ljQ zX3aaqxFbO5wGh9@7#rnU$kt1EghIWUp z^Ldj7bQ}4@oKj+Xv-c7}?;%e2_>V>#E`gVEg;n0?{heBR!nezozVfAxcv|x9re6&v z;7#l89ebe||90|`ne

4*(2MDsMr0=Nv8QLD`;9sfk-TQr$MQP>|DC!C?8l__-GG zsSc&2P6)GZALFgVl5jvT5-_}n+WY5^HLU;;`blUf#DResZ{)XCyVq$ahfK*1E$YcY ztvD*J8p(g2!Ty^UE3r5EF_B5A=$k|@Id4%mrJVCg5ehlN6uOmb4Q+c5a_Mh0dD!Bb z-VTE-Xcw)7n|tX&_|RrD?Jez2M5D*&v?cGY&&OFfn))B4IRJksxz6>lcgVqG| z+|46kBS%8`tI*CA=&+8wQ2>q*jUM8WU2MxjI;_<)*2T2IF|h!{yxK6ceofOhD+2*h z&k3-}N}g|(yccRi(bG#BytV>($U4xAmw=eI*Pugmu}^qZw4DO3pi+#5pxA~>AI_!7 z6drATZT|i+X#z3V{=F)dMMP5)D(2fu=v=T+r@ot;0|gP=KxH=*umO*zX;>w<1>GdF z!cArVRE#7si$5aZ@lPax_gKCXJ2J6d#b--KCK>8-Ny~VRgcpUmXanmNQ7`}<(OqH3 z3sHn0@gy=|XL7L1tt#b1Z5%q>q2Oy)5l!r&LW!cmIp2x&L~#X$r3H(*9xmhtwVwE@ zMsj8vy5d%EV1>M=5E7UxT=ix#^6F5Xg%>7V>FIgW{{oCEo}Tp?{FUGO&R}z2#?hd( zsIl$Jol*kgWOCcPGo89;`QkX9y4; z&sQgN5^e+4geymh<3_A=Ha@ zi+3iOISc(gAKF60K3ecLWzA*+!M!Rlk%+zZ{(wS9z+fal|784i(QP_s%2TH5S6Z4( zf8t#u^{A5lVtV#=Pe{LmvnPfG=L)Zpbc_0+l5{G2?8_^>rp^S2myop&_Yx}+X{)ha zwfi{FboF2f!?!Pj`+D-f43M3#%-{Pi$^p|(E^u9qQi)Me-tT3u(K>K$_`y)uiMVxn ztuVW9OJ6Q9)7ysIAr)2@e-{rVsg9?bj3t-T{MK%}l}X;Wg842PafL+-m-aK8El1*i z*JF_1w<8f%&A!korNjPuNrVWD9Lj^&7cpOPqeJ4`c<@i-PDZ@jg)fueh~u+z~J2*#Wy6o@lB1BovccKoXmdO7wgaw|ONs@!Q=}6<{s! z_36}{o=9E zsBJh{giO@*4uKIm$|WA#phYMr_e32^89v2XnnOqUN(Ws*-893+c`k~`IWeZl9kZ=n zrbG@9cNC$)SUG@ywa1>OlQ$7G`A!ByCn02y^Va~xM2MEW21#+Ud^$Kcd(yypx?>Oh z!xG;Fxe@{*L;In?x`1ag1?D7$)u-GK{*#5WjqM#&5EaV?(u!mu2uuv!*?Z(@5?PnQ z4fcY(__EX*#}W<{a2gc@U4k}|{zQhunzk~UmdXgtGd~CwOr{8>?t-~#6p1oTM6M+f zaK@C9X>Xb`B^2|qqoA}yRTFR^Cgp7KX+s8K_y=$bh=Am-S< zkD3I=p$I?2gcP^kXIHVM-$EJDtYMMwG9$7vm(SSmEhU8)53$Ga8WfM4lBDx6jsB1W zZV|4f8pp`EGy&@vANNCZBuUI6hj=f9gG`y|`nKm4Z zh5u^?|ASdyA_h9zhHcZa%{?&yxe~~!2LFCwjdSn^_WOMeDR?_QaWk!^f4ZrOX&n63 z%9@jBzOOSV-+4W`HlObSRYA&bBAaV)QShdSn6N9bhXB9cR7plAaSJqv7=8L(EGY9%~3!f%m{Mz`lO@MR0X&0GHWdcE?aXdzQ2 zrYA}8tJ4OIIW%Vm(&9(O`yCzD?AeCq70s#oH@EyS&+3UCSecLPNJ{&r?pBmqCX~7= zQZ3-}bA6YfxJB$=RR?;{_1y@lE`PB8C*(5yTPn5*RLa{cFK_A-TMDkxz~>B${(*9x zc4-lCjMcIkB(c1+8a(2sD(b&j{%afYv9zm^epWFUQ;1QmdD6A@)@ft|w#G478v(o8 z2(KR29ukX@3QnK0>Fv3h-;X6Gx`>}UkVY#fG{y5p4c2nDXl2XomuTxq5${N@12h~< zu?nIJC7J|nqD&`G6fYY!DinU;Y>RXl4I>%Aqo`|QS?|+LVS;%^J}$d0*h-e8*x;J9 z#>E_g9WV{i#rBCb1iSTI@n|ErIrVa&3_cWd?ath(DXL+lKx693efe8AUOV<$?Y==8{g9w!DVMBI#^chs`2AW?(kU!yT1Fqx%S0TDU#9grY#62 zP$@@7x^fOM>z0hUC!XM3UvFlkY&clVq6(|TYVOwbaYmF9X%~}cb9Z5xwg z|72nqJW_?_5tIE~-hoLZ7wb~=4zfPfJIs@^0J*?4Kfjn?K{f}l7jv!BM=-kar4$2t zHO!zsM18ZO>I+k-SV{YmN&(=BritD%Jy@Upcri;o$?e_5TQ5|dTTw+K7~>8| z(6kzPA5Bo{l%RlGiHM8bfI{L~*E9|mxup*(Hd2^IkXdaCNky|!z4scAYg5G;qP2Sr z^y#}W25=tv0>WgUX9-O*JU$IAnFTi%>vbL#k_)9kLeHY9*a;i6RjG-KHK0|gnUht` zkB}&mw7Iz`)s7UjNgx4fb5z}>&NvGU2951r9N2&fwvgykhd_B}fK|=F{Y*C; z5&^cQ^n8&i(jaJ(Oh|`|%1~W04P6%%bwAvU#V?+dv3M(Ekf%WT93-}QEWb%r{8~8e zW)%4;u8W!gwZ2%i|yV;l9NJY)mt zWf2!Dx>TjjT-uVjT^RsuO+884`s>0{9|WYZ79_ltUsH%w*oKwtbY`A{Vsh*Fite~$$vbe zr8x{Iz@~KTC_Kr2;2Tvid-XVl%qMif({kffx3hYyefEC+m_4w3D(YAWLdF_QS{?63 z5FttayP^PL8!Ff))1UkaB1c~zz@$aGS1btxRn$D4RLGCP*y=&^9|Tui*Fn0Lqz4#R z90n2@KDtr_t8q5P1k3rB@C<81+EaKHz)ty1(_+Awk$GV>rrDlcL&*=-WZ=(@_$Hd% zMtOu%^@O1%mp?*6M-7U;!7DJBUSr9)3}6mYIyEdr$Xv|+nZ z8us2aPcyX*0X!zd!Ef!!o9jw=rn&}H#t?~3t47cI37%T3dkWxaZ(qc3*!R+bd_Cnz z&()F>u5pGSv9n#xa~uQ}BxmwSYva`6c?}&974~b~;*%6S{Up%~c&KtbrqJ% zqQbQ(7duKet{J7vDd7sCX(ph+uW}+e#SbpH)kY;lwJOO&Kk)a;E0yLBdMv$ao#KtY zEAnC0HB@R9Mk2mryUJg~^_+Go1QBB?Sv*Qj$edVJ?RZvEK@5iwMm+{uo!&GP3>Zky zJ4wuU$#vBtFs&R0h|Yt zSlKps4r{_DBf!o5waE}?tNM5*{ArZ%o1xPuFJyfH0Oiz#U7;<;qX!QndMYCk=CYW{ zaF!A!V3**>G^$0l>JFLcz<97@*FsV zAX-k}qdCj`$WAv5LcrVq5F%0#xF>M&3YIoK981}0zr;;tJ4q9-vb6-)CDiW($P=4u zlZt~hk@$^+jD1nMn{@~O@8END)S};nywgBsh6zsCTV^@e*~`BGU6nxn$sR9MUPo#< zg%c*~b-$v#*cm$b9q}YHQh}mSEl`{)=W%XaGJnB@Hgj<-ANyNYIa-ed*v==lvR1+p zuHZ=8S`dUSI7TI72;`4U7NRpzK<6FR<3$Y4{X1-Y=X6TjpIe!dp{49TYyGe{DlRZ( zFfUYh90pm5M&1GWB1josxMx>2NlV3q(tENFPT6XNSgzGT1@L&ZP^N-B5N4gM%8rDM zTmz01ieFMfGF=->txWo2X}DHSGZU#jXu*J6-Ux20k3^=KvG{x##ovYP0Aq7)L3ol?0dBr=?&$+Dy&7a?RPCjf zmCcySyb`>iriT~oM5fI3Bf$az{X_eLrP?ydKEaelEN#*$%}K%u zNOGuOl1EmbrDMcZ2@bO;5EUTC%Sc1hH_GM-tXh*p9MVrO3f=@_5^Y&u~(InbzkW-)UP5>e{Gaysw78H@q^SR^s6UCf(i5_NG+?1@2R+WYf1gT zB$&dxLQpTI)XK@%FjiG^!b2J9_^ub_VkzNh76)Jn?uXY+?h*c!(~Mz&Du2iy>casZ z!TvNUNZF6E9q5q*ElMc$*D~G^D{QzzqchVnnVji6RAyz>h3?1_P{)q=-Y>4udkvkl zL-&>N#FH7Ftk*hoO3j@I1|F7-N{Ng-AGTu97_+33SD_(({)|o&S-a8U_F%bLF{Wl= zT?RQO)1T5I-`_O3Er%Y5ETAl;V~J#fE2K>hyy|UDuNNT_(4M`46^KF_hoDp#W0EnW zQ%&!o_Ei9%6rU%`ueLii7`=Yi<7PZ+@Q!s!vGu!$>X;rFlPxc-c&!hl^KNdv5H~Qsba-oIA@c6 zyGd{9X75%l1IfrDyFQ~@Dk~HCpSNRKOz6o;F^D7u%dxmG0W#@I%51Wg59B1n z`3f!SXrcFJ2y2q9mk5HOxXTdsRZl zrAU-C&)>k*k%)Eo^oKPrOIFV5ENPC+Ozi?`jJRA_K~yD5Ee@@QotI8S#7JL=PkO=Z zj{auJwqRQMs;xbmZ9?Hb2M;b3wUg;jzYEC!r%Hs{fNAgiYqy21X?DXqBwBj?m>n8N zm7$BuJ_EY2VhNL!6Z%*jMbkeKR$P?NMtQ*%s24|y>4DT%eBZIHIv45fiG)5BywK|8 zlAw*AX)gk*s5xc==vsU)-*Cc~Unyt-y3G50#IEZsJdLGyt{u@(99ARx4{4o>xYGiZ zaNsgDP!{M(z)6juc`~hzk^D;DZd5+$>x^ebIi@Y%2@g$2jbR*?nrs=Q<#_GFtDH%m zG@+*yN*z1&qyjl}jgNC@FgWTVs|tlwRR2Fc7jn zTqY5+G`H7y0i<@sz;}V(ZzNJQ@a-i^YEUqgg(UDY^ojcQsr^k$g+}3ACxSh)hP;;}QPxf*I-M1H`^w3p-7Y z1&gIjwMi|%R}j-{xU6M5E)7>EVL%~~mL7oh>$m9X<+FOnR>LYPqcPw^WQx+jh+@IQCSsAMF?>H`Ml6bIsHB^h% zSHvOxUZWSgKx(H@(WFsB0o_!k?3euz_qFeG1?cbqU)qDP+3VmwIJez!S&`%P5N~ft zEFTH!Rf*AugRaZ%P-a@LvisF?^_$wcD#Gs{v-2Kty!AC6Cme9**_(0>9&k}NB-gmRFbFAe)SYzmtj#SR<=%Wk;9sdU9#)Ttxht&UC*~z z$!g`cw!1RK7KiI#C#+f)ZlwkZwBJNQZxC7%N>oQIdqW8se`R^U%V6$|Y#ghMW^Hl{ z$eSb)u-Q>%m>dNdH?AaDo;ZRGaD3MLWi29JXN7i|bFnE&fIku|kY1!PnudfUnAhSB zr3(4US~);)3*ktQl<2vt%EX5o;rwYGI2FuC%8|bac9JCH4L~E1f+?0D%}`dkw&6YA ze$EjL?SoEYaJ(9xogyA^h}*^iBE&BO#eNe>2V|olW_Jj`mDW#FJD(&n!i8Ldq02Cc zn^cA$)?O*|o_#~4X!pRL5G=y_VDcUT@O1i#yel;>$}{_9uDE3k!>_u{39$Xk9QOzK$t%(rM{AF|6yHXc_B7ne-I~PmO}{T>{%&Om(|f9`DNCaT7i~ znOQPzo z2YN*n01aPk9-y2q-J(Re^h|h0LxWoOl(IX@?_=vFN>dxSe~eSLuqjR3b2e^1A-R4VOxB z!YIZh*kN}>vXE$sGO2WwMu9x>|3gg6ZHH}9szKaQY!d9}1xAmEC4&~3ZUZ?506HfF^eJ~mEKKfoYMvGT)~Gz2Sxrx@>dIx{)3yOt zI$HN<2eA4ukJ$h8*O2eybtzQ`0k1AdRnmSUbNKEo!g4$)aWf&+&077AjN@TH9*1wC z1;O%^ zgkKP!f}EC1j?5y-oV8H=a0*e%4J7i6_6joc$)QP)qmZpVvHYcO;tHi317|lTwR1t! zSudAPkGdJ6G-qMZl{Ep#gr#YPjQnWnB}oK3wr-@?^X^6L=mHFGNEa+;o@-?=mSi<_ zvx~+r({+_wNkC8r5^D-8!y>zTbx2I_94%yqoL1?olSzkR4mS!LN|ovSA7L4y9>_s* zacYrsHqy3ghuOz5Gsa<ohuN1N)vi3R$BV20iVrR@VI>3iZStn{FoF|+_)S_jyTRDyso{MQ|p|+Uf{?c*|Qc8N$B` zG~I18m_yn_O%tui&cs*x3~^9|ZxTi4_~0KBzN|>5)34%g<?;ooR0WQ_YO;?8G9(^#~JFNRE7By4X#W_pc=xdnBXwd4I4tuJ($?|EtTs)N7c zmmc5f*MOT*TsMmQZADVumh;h7J6sS4)7a;swrOlC)5y}<dx_|f~7k9rketdmri-@ zR4us&I1&duQrEP5voo5CNZNl-M=%oPaoTR2U^)j#!7GvIcZB*Aau3r4(T#-+LW~j0_xk zeq>U>QN=&`OLmST{1L<;BUD3_lmtu=y)@nuolKT&a_HF^%Z^tGDlt^OY!xnzRU<0} zX(^p3O()M2L-?-pP??+$;1zi$D^9E-jJ>p@_T0H{zm}zdu8a0N$USM)X5`2l08*v^ zRYU^cHEgbqE{@S?x^QYb(>&iyt@L6(_RJDueK=?{GZ|}(0i4*NQvo6Z39`CTk}J2` z;bZ%)5vHWnomWR(PETT z+V3aRFDYL3dCK5}NGdUA4nJ!oszh?;Kp9HsrE+E_idg9UepD(|PXV>QW1 z?^N7SoB>qbEFfxsnovR=i_Mh1iM{ZaMV(P})^t_EwB@RFsz@fJlcnFIes~lR7f8D~ ztFXLR#Y2Blp-WjTyh0P7?`~;X9AThK(JE&RI=)wZ0N<@(xONAc{rx~nAtCc`$`mT$}VfefAoiYf86uYWg{O3yX(Oxe$!P-17kZtnvBtVWj?cn!PRCyB2}3gh9dp(mN__gTpJZmx zUKlGW6&iE)9ytdQlrV_`F@76a3oc8^dd=%1m(IErX2>G4$&{3Oq>f?c^zKQXd`z8~ zN=#=@P4@+0qAlE&|I3Z6o=6*~cFk!~sq=aD1gglUT1}xL#+Hm)v2$pl)+eb_tP+wU zhI8%Tp4_v*LEZ>Xk53C6TPuR#$mSRRPiB>YoEV^tqU!id%uM7eJ+7-oHvgyy*i~r) z8UyTy-AAu?d;{d%Edvvtq4p<$&knLeXvwI28x2$(bQBrOI%uj~GLj_JbUsY25Fcrp zLVFzoUKIP^EEGr;ztg^^Qh9sM*L7d1cMffiw%fMte%%KBzofX?MM3|nn4`HB=Yic8 zi1OpuuHRYd_%!RVItUQOiP?8>L3Y6Lv@M$tDlkhrFYLngk22#AnzKo*39j-k8gP6{jggbxfXtQoz=%9pG&sD?vt zRfa`oGH?%d093wN-bTami*+mAO4*PAXzq(5yiFT#Q{5?a8=5(4sn=!oaox4JwDlea z%n!aBNwCDUE|zsRD%-|lZ9f7E9X`--`h~3?`PmlunM;;=QL@u*kzl5K!q~{!9F7^< zb4G~5ToGXFShQ!~09`D{LrJU8&7~HWU_f?MSyV~s_VGtT1AvpXLi)LZRvE``rON6p0L5c(mQPfhf_6x|B;ROJm zl@%joY1H}_^#)gle<*@WYCk1u_Yj4k|sE0G-rGT31x+r>Vb?mhG!;-#A0& z7@gWtieet>?O>Fjxr{jKOQRriixfpd<$eMaE5#uA-8Y2w5Q@D|9S(=vAxA+QFINjB{SQdzx}JwR{_?S08MXozXI#m6T`fB0U5=vi zk8i*KdedK0O|S7>0G&^Dw5{_z+6IvSX=DFWdY>ZGMM;Os27|%#LDF0I*1_kM04mOF ze`JY6AghXeVmPi8P8X2;L>)KZR(4LKr+G_Kj;{TyBaHeo&VBm?y&~rgBtUF;n!7|zc_COKM4m%&>^Hg0i6b5g#-e4 zPxB^Jc{v!qNd~yRG0#fnViCaJPS~nzWsZS-hs}}F;&LzdyG0h1Yaz65e0%)MNi#*7 z@5d212HQMwIy4NZjY{{fmbt&vMn?*f)hINKe&ccv8zbx9D3o=LTmu7Xj^5sp&L5}C zg@U;8M_ciI*Q&xAEl4#oe#ltB2mk0e8;(Q>zmkbQ3~>L3n+VD;HLa8L$}8DuOI_Q0 zOshKPLvwxlszoF%rRPzNsj7@Jna z3bAm|9b}Eyb8A#|l4%f^8Q`LFG)FpD&e@^^Q!Ju31rvU_nSftDr(!I{T#einLUyvC$M_KpDlY&U>(6)8SF!xe-UFP9vv9&I8*NBoYqm5qsmq!$e>(0d$ zXwK24ZU*pbjOgRXXIud-HilAux{8QyAe3_cwRjrOckEc2~x#xLuu{Z zqro1Jn6~i%`=j>#bAXcnviz3_i+zI-*i625P}_glyXDf5-q%xG+bR-w>}-)3({40u zGvOWz39*AAe(+Ug#z*`8spouEpVyt^B@Q=g+6&dR32Y>yo?1(dM{z{{%N${td>vId zE>O<8FnmYGKrK#~s=+{#->MMGZM)d{aR}l9UJNSh-kLzl3BSDAg9)%yR$O-n5oy*zDQ9L zK-;PoSra&zB=XqL2988tkp_#j8=P`-^d{%AGgjQi2-Z&2=?4Obw17GhS|KYW@JB85 z0<;dNn{*>r)E7>FlJ>X{m5Q0WMqsB)% zxf#HYcb#XXYoD)`x)%)KbMy)}MoPm_-|Z>U&k6RljWdX~X+|-1_suA}x2Rt~Po_UB zdHw&edwB>nGM0tL*Hy2!F(LaUyLyJ>v&X8HkeJmno@y+%IWbb_JB95!cfXe%dghq8 zg!Z!EWV$B`*w~zRans8WOhfSsZAzX-o&1NuM$RyM`O=_-D=EJN^Z|+LQFnIBK?dx7 z2X5r+!sWEKTT@;D`NT~Nc0@ToKzfEAta%_c#m&QEudmr-Q%bZ~7)s7^eyN+)m^iy) z8;FCgJVb#|PbnoHQCE>G&|`;u=PfR8h$k49S-1BS3Vmo{0ATy1C?$$uMAtsLHF!ZP z)hRaFrlwT<05vcC3=VOQ_}X6>5rSD7X+WoD0)1k=OM!g{#-s`4UOVF>cpRaE4q=}2 z{@N=Uf@gpm>5mxk0m*<;86>Dw0T+HL8b#bi`SfB!Y^=TrZ@uFag1qvnP!>~@kq6=( z2I4SpdcH#4RUk zQcN-C(?|ci1kRm>m*64?ai{;x02gx>n|ugg6HFnFI4k>6ac~o{g_2^t7Pw~pY>Ko| zsS4zGnEY74ZE(oPG|CS9c~^-2Lc%%cB~Zu@p6NL#F0Od2J(D0i)42N7Ze!NNn_{El zIdD)^rE=LnY6_KiJ<_{oP7Gb}k?NHh`A1>^$KqgH6K1CX=AIWAlE8ZEbT7W&oz5d z?KO@p#~1_9oUc&R`25q4?3tXm-eS?(3#?eU*c*d?dVg|9+VHPNV3v}xWtxkR6?307euwJ$fC2Ht@4)PKI`DioN<7c zRxCe)24pYsd|?e^Br+&(gW{{WyIHD%o3hRNez0KcM}q}l*D1wpdbX}#)^m&2a_Uun z-F8VnKbYWfE`eD)j2sPI?Dy>+V&-Ylfq(l03p>mkD>FSk&5Yr;uymB8l-tl-I`WUrGDKmmTXCz2>0 z)my=QH4E-z3vac|hFGrjGjU1sa2O+ZsCE^QO9I`i?n+216be=$uPcgSc53rz+bMsj zLzv6V-44@E|B3!EXRiYif>iOFk~$K6*cOQNB(W1cl%vJ<)g=o0N^EkR<_ge{(HLK! zc^dv76k_~9Qp_boii|c}q zW8tVqzdlp2Ggh3|V)Gs-ztvn+ZZ<8R{%Fq6z6Wd% zM{BTw0#QBOuq|vC4ty#=XSEdS+STI7q~ik~?Mmmr*7+3e#eG5Fk4f3^`44fN*5;G7 zz4Lu1&n{4RBH50y3TJYfIFoz4UTi~aSJw?@Ey=ko}UvDAn4LOnAqMV5+_8(t&xc!wJj0-X(sFxI8m)8tk z1%9J1#porCY}+dtQ^h#LH!1{?s+F0h1M^VR>5G17h+2oW885dO6ozkc0ldjaMzNASDAeiQkk?De1C*GxRuDRx zCJQyrOf8Cd#bN#jk>tUovn_L}qPz0_d1=%iCvt$V#@coWD*4Y)6?9otr8Yi)b}u(p z_~I5ah3ZIV0#UhqSq9ge0`iz@WDZI2n1j=9%JJ&KjIYvnQC9%Ht5#cgB?Q}z^4Hox zNqqcj30;v;Sp`;Jb}pfF{}{jSIdp!&0j=0Rh%;(AXDAe%Y4t)%Z2b?kFfe_zjV?#tG}+-O~y+RM8EXe zg5ic6^!PM|z(}2!4C`PbJ!Aw-oy+Ey`~$r%C|o5HN#|!EGmWb@1^H7nhEMD=plRCx zCMB2MHkg2yf3kcI^sYDVtR6ecXu$xr3}OG}q%DxwrCIymUEf&coD6i@H(Xw-|_s1Eqaff9bV>U6eK#q7HCSxr)EDpvz7Urk$a2ZSqlF zE(yp7Bwc8Vz|G2^maS5zW?>6p`c61-Ryxm@jDqrn`l^Kn^^wzK`$=ie8?ZGcM@syO(YDlTbY z|IkWx@j`Fuw%OzWS8XVyzw;xs5?a8;l{iN8L!xuL=CeM758vipeoK89y~lyrd%nh* zlAscaJ0x_U4yrOl|FeRb^->zGh@baw_rCHj!~I9~jl11zXL+hO`3m~h!QV4@6ElHs zGF?3cheL?=5JR}~8zBX2S<3$s{v%3sO3nqf{IQY8;kQI7dQ?hfMyB!yFQqkBuXw*_LHZre7f* ze{f@D;}0aZ{Qj-jN*s{7+lnm!SaUAkzx^TPJpC6U?k2ygc1i!sAKpXt#^uiX?)S_D zDu6CP3(S;ZW|}X=(e(DxUa$i9O%u!$y zDo2YELsUR9P}>F}yic&!5oPwrwMG033y(N@@LJAi0-^_D-kC`#))n#}vf;{tj%=z< zScnF^5MkQvjkrUwS*Q-W3>z4)wa;KX*GAz#W_t?$JGxOVowc9YKuSAI{>;b*9$@Fd zF9K8pAdhK_g%}wA6@`xi#I8$YAFGp5#JNh!lMjr+ifmr#y@_O&cx>KzLS~H!PXKlI5Lo@AGUG+2cK!U}!e;-EQ zD}t&wz0QRy^-WuX7(j?~Aq&bH*e{Zt=Q(wJEJiT|J%`PB00fqWOA&+PD_$S*MFf$e8P>g{8M0S7}ITAm_SEb%MrirE*7eO zezP^-=WTU+l6cP!KO-JbxeX<-@g1UIE5DdFn-#d~!h1qPX-suA{0WQ|lG;o_r_DZ? z;WhGy>vaB#lF5bSnU0i9LEkn1p3ctVMCmjN^p0!BAZ{r71=k`o?qN9eeF2301TwOe z9$-HNpp@{uNIDGn(yw8M22(+1javG>AY~-)_c^|P+p0)3#y2RO9ri=fVndDCFYu?2i5S#h7xT$bR_ezGIqJ$oBFnsRz9WW#?->fM1a5WE=Fqh+J@=!ZNoaRc!uytR2*1Ewl zQ&*Jl-PdD{zg&=%+kaPy0U?-r^JP4p`3{%L&F-WBRh*VzQDxY_2rpU85}4XdF?K{1 zBPW7)@~~nz&Fc<79i`zXyY?@}62_U$u{Mv*K|n+dfn}9y;IYPsMKNiu^jGMnd&!JB7wvH4=B;NjUaku$U6?fQ0wPC5QU{27u+J;U=YeEbBsh&9Y_{4;=1WS^>6lLkh5^13U zYnnKEA+(Y(Lo7MjmO-RZM1&mzd$=PPe!%+(XaWYmPWO@ck<|xZ-oP!MX_AX` zrCUpT-Dw#8lr4P8i49$g;$Oa;0}>PBH^9+W6ABp+hLQ-kvG-z>n4aN6T|XA1BbQxi ztne4SrwIFPm*2BGY<`z6^VD4 zAJlaq#c-O8Wh-2FHn_`s{uG zB+>w30*2BmyPUU?!(%ewkFJr8M(sFA~o!ZmQ+v2rH^LqJYGvGSwTTll2 zD~dFJZbXy0Dc~9stu~Xu<*b2=w%v>t>A!hi?mE^(qXyAR+XH-cjyQ1fv}v^+H=yt;1XL>0n)$~KJa%YjXfQ6jsQ)g__5Ul!%I`sNm0Y9#59t~XeHg+{4# z9hrfr5Gdw+JU;_dE>v|vg!fQsr$z*T;Gb*2qIlyv%Iztg>09+;M_^W1>kT&$bYDEy zv7@$WZhdL$3(7q`5WJ&PGweiMzIr6wDo3aOkQ_{AyDopqI;HRX{4cIoI&r&#RW=8Z zqE;;ZXF5!!sxR}mMe4eWS~EOMixQ8#(t#+T-qv#%88)aB)}yhO%r9)*k3BuRyMF%E^q<5{lX>5ii`ESo@BF^ zYIfaOHRgWUnt=D&wu1CMbaRP*+vC!tG5DzQql*@LaY2g*U8GWtNQguj`O+*szysYtsV-93A@H|BX zWppT^8twXg^*ygR!VZ&+G5u!;JFMaT!`QcphmK@ne76StT!2-ZK<aSAt22NIH9OS8+H7 zRrO5msRF*T6GA+(#7W_^McHC&Kc{9h$Xi&(=Qzj8u>?HQX(M~2nXGuVnfpkMu(7Xr z?MhCEY_2=lSG2HG1ZK`hmFyLd*Ao))_xeY}N^gVDcS2bk8Q^x+*m`a$Mk3Q=@|WRi zvo_yF7;#J58Jp0uOP%vTuGF=ro0Y*UQR?-Gu~f2R46h#s0@>B)$u9#gc{3 z1|_Z!Z*R`2(-IcneFxV-L4U2kSKgA?tKl%oW4mANnmAs(&{k$AWo1{zuk;uKh^%b2 z8S7GXSo8D7Tso%xkq!42*$?Nmkm~|G$)$hS1CB^@r z=Wu=%S2gW-m;2PH-)Grp^pwz*d>EmGiOkTInGr6yQhtk~RgtzM4@GAWr4=J2zYC%3 zxP&OGZBuf96|-xvE;JKp9a}nmAeyJ$J!Jz2e-i?1@cZ4q~_J~RVdsx?oz0wER=H8Vz^z2plRq$|YZx5kaKD^yCjO0G}V z-(g3}hZaeGNJp$tR2hHaGLaBEVi~aak58Hz*w4!oe;Y*uId! z3++nUK*IDVCaBQIe=x!fbbe3{F}*Fz zD?+9pmZ1=io+lBtSxDpU?+bo52ceV%LUw-nINr1s%>!9F-G4CBgV6f)9~*$6QysxE z{o#KN{$2*WZ5u#MY;*cgojH%Q5<^OL9=s~0>~e(sq>dnfd}`GJ7~5-f3tT!`tY&+q z+DWU8u%aoD^XTP-;x{7p?88qWxiws?x@JvuH5o{`@@EuNE1UY`34R1HHzes3rM~!F zGG?C$r4(^1ejZ7}7oZvV4Tk?Eio@Lww|<=2)rc9cyJ}guufE5A{rCXTe3cGnli&!N z6&Khun6t8>g`ZW*P&^@=ys0{!iaK^Rww0zF_i8lEORVfvpBLc1S#5)x0VSx+1d7T= z{1kFwYu!2YFX*b}gEyl^($KwQZ+~fDbH8r*>z=4nbUDk3t$9=N#EL^~7^{`0S8ymi zes`h+&w3IkN*$~>Y&Ujoj5KW1q+Gtp@XBhI`vSZOQQA!;2||O^ey+sXCexoMC-d6B z;hooh>*xC9Zgul*8tJddvnnkIu^41xH^rADo56*cTnh>xglHyoC)u7I>hl(-mzf3o4O(c>_GFJjJ9AYIMGEcO3Hqm zbhUMubR#t*5_q6RzT+BLNGdXN%mgqgYzE8!A6qxayjEUPCf_i*j80ty9L6VKsI4ocN(Ux-_vCu_va#kvdU$iL(S&SX)n>Z(`4kuT|9VjrY0O^t)!POIAYLo%HzTKCE zrpKY%^&Xdu4IW=egp=vlbf*8iBZL>#%IkS%FlYpkZg>OFHdF?9_Zj&f1lMj8%f`v9 z2dJ=5_6C!V4XGu5yEKn#F%1U(Bs!Guk~~?hebL+OWD8ZYqfEz+fP~c`IvxE7qg#6N zbrAKOn*toEoNJ%LGbP;q2KcKCF;*?q37?A5RoZ-JLAxR$SfSSoq|zHI7$UP(W(WE( zmT|$B&heG3RNi4#ML+`UP7HkGLNWva+*URpI>dKHmd+Q2QbRX7qxzH2OqvhHv6@I z^BmZ#LRiVq=~Mkr+0M5aj|IP0c-cZjG%pqqgzm4T3W`Y8gx?UlBG01O9!V89q$u{& zk}zlxB_mz@Qd|NRTB^dx5polCp)?Kgf)W*WPh4#-0&Xo)Rwa#=hg*?%k7jE@xwE!M z-JFcx>sCb;Xss;%{`tK)VqD?b*B^S8w@Is|FnvCQf-dtt%OUA{`p3qQ$xNV~>*?kp zC2IOj=9w*ciIUyjC+AS)>gLB;nw#Y|A@NNC^{~4~=ne>G7i`m~XK4}8pjVOp?mglY zz8s{!{w_4}@Ai1Kj|k+dbJrwy!|b|+xnz(wAd&mrjP90aN~Fli*lxeTpMTv z^>U;tKBzJsqK207o;{Sy_jFd%TT;Kn2P(&n(mSX_Mu3(~X(;d%#o<@4Ltla+eM1EV zZVtEwm;(epfl~_IlDF(cm(-;0ubv>IN26Du9G602eZV~{n8?d*Hqd+RszCx3E*wl3 zd#_1L!>K;@wxDGJcNGQ;ZqsX1bVzxh&QJp?1bKdHn`;!D{uRQL={FRcIIfUHS$Okr z{msAiO%sd&I#nJpKq)r%xJ{y11E)aCrGux$`zgsD@bsyDTe;mXmU1HU9C}$Q1^jvnAqIB$|+whU4(t1B=^EjvS# z7r|&DFgbr=Aa$3GWaF|$Eried4CGb5=}Cn=hzO6;&kd#$JUgWAU+Qs>g`iwZ+eF(a zK2#lvH9%|>DD|VT1*(~H4?LZ;cq_W@Omo?4vc!3S${cRslG^m*ae-afmV#b4VvRdK za||$ShTz5Oo=;cJQC(IFQ_Nvn*W~E~Eb!Niib;y51tx*>2U(`;@yTCr=e!s(Ai%m; zeQt?#07?n-QIQS8{P0>DG-_i`i=+r3{+YXA|DBcCR%QVuL%!A<) zx`d1cQF`#QqVV_Z#ZD)`DK)%#8<4Fk2Qnp+A&6mgBNV(VDWXM{Z(Ed6&O)*Fd(ce> z&dw^_`bm5m{b=M_>i;`$Ey=Y7S#R#%Jbr8bKnTl3WY3DP^QL{idAN}Cug44*O;t4b zB@qO5>owV$3A8sx0S_AW7-9vHU>HVs?|Gp{G0e*F&iV{|P)jC%Rq8^m)0Ff$g&y@9 zfxy+((i$rAvFn^cRtROO=crWh*!H-50FbQqfL}T$(r}1tK<(s^g$3TBf9f<7=m`Pv zTOJWuoKVxIwXUF-ic&;u6B|pMluG&< z6T6WGz%EI*+gP6dDKJ7pVy<8USf=Q|B#g|iWVp^%fdeXLD3=W+5eeA<+>BBoa-A!dmGzq?(wPhqa*YH_oVFPBhiL$o*jmGm%c|Z_1yn^w=QP zzy{D}mw%UA%_wEE2nv)<&dWJVRwW;YK3WR{(WXD{I6H4>Y}*iCPb=DSclN@O4|Y-# zmVJdE#ib{btroqBWF8c~A(WVrLBK~jFn##L!?^S<-+)NM466mCdl^5R*cWP#Gy@O5 zwXa)XW*wN|V1d@+VWmCjrXkc0Av3xLsEm3h#E7xv2T**wH<*l{;L}R0v;N>?I5Ac@ z%(XTRFWRscQil|(YB@ag(OFTX+L#zjkStOFV`S(dPERwMH6d4#v?f#+={g>?YhPCb z(_RCc!qLV7QNWMiB2XT8uMXkFQtf%KOLg+LGL0prZ2T&nn9rhRtr$}zNLbF8X0MZ! zJw>J#d9x~D(a_7i195WXuuBVnhIPpybXs?4WDVEYgbi?aMr###HpTd z3-97Mv@*BAALniH8^{Yq?TZ&CbQk)OWZOKr0qnz^tg5>ccb~8&sz64 z@!Jzf6*`s!pS&{P1LJFfdMZ{F?$ zoSy4q6IEL^fIUxm47UELw9eIk#Fq*T&}F=9cc%afYiK+@9BbaUYx?nHxQ|l{%7U7G zV)F*eyBV!JdmUPMHZeog(;3;mt6mC+FH%j)l3|EFpSKuAY5Q@ex*7s%d`lPbZ9`eGT+0ti1iakBaC=Qi?Jr3TeUnczf22GAs9OB4@*p8B87&%~6Ra1jE#}%OgovDz z#upPP(YXjol%v0Hw(nMCD=--QC0|;}^nc$7ufB$P)HnCeq}ETsdBkFEk`Z?HZwmTL z@{`2DugZk@Yv@H2c{N1&(kP^I0II6Vk76R#i+A{T+KZwXzgRUe66C^xs~wZ>@0{Q6 zYe=RIcYM@S$b@icSVfDMGWbN_Bd{n{v%GIIm)!VIp(H$#&y^hNCQu(gs?g5=F^m|6#zkSW8DkE71LUs?sd{wZTV3+nkK8C~0D)d~13K zE<ch^VP$b>6jJJG+Pgs0h2ntW07QqO2>us$98E>C)aM zA0E+PidnGZy4LeQuhND;*v8A{9+(L%AwF-sI)Wvr9}4vH4ySKHdKJK~<63qfBo~b~ zFKdyu=B_l}m!Y1gHJk%kHD9;P&hlqJ+u})D=&aIJK~mfE@(Q>_l7U`aKU1=E{SJ@K z-8)Rj6%gMG4b?_3d8!TP1NVp-|Gbanpu+-P;mJNB#OdN9zawmVxKPZgV37gau^4WB z3VGCfzOQ+v6+l-7E&wIGJ^3F7*yO~+sEDulJBRZ$J3++#+P^a3ph8PYRJ}o8KAt)y03z4Iu!=hR zc#_e*FB8oK%9+<2ZkNK8qQ3A%yHaGuu=Dyg5T(`MD=dhF$WUUdf~yVFqu;Z52r%Up z#SQ>~TA!{~k|)VK#PMWw4VXA;4Hr2Y>PlaYU8CQMOh@}s=NoOUbwydZ+L;}>sT*#3 z3}26Y_GnyY_Zr7;*cD}2#g5FNivUk_3fHE%(Q{0+k+^1ALb4R}*{%z6KF!v?2dwT^ zJlCe4oukc`;J6YkwE4ds8KOA(Vy1xq*=1@!vRMh4@!;CX7n!WbFTkcDtt4Fl$LFG( zwhiA$Mhn-uV|??Ds-Md9>TOi~#FbnGI)S(gu`v!uK62D6l%B1rRZp3Lb9zSJ0n(OYzGG98IAo&pKKB~SE!OQkWcMU7L04A;8ETOFb^+0viUb7Z{# zlHgmM^f;B0(#nH7@&bjH0+tE9Avbk4Lz+6|pKKcqoEQoe?G&5>$dstIw}7KEP~*5h zlrME%x+h~0DQ>~W8PRDf2L4&zm^Tp8k~{LuQcYTLzyB&m2SPf4hEN8sH7 z2{#GP(V$879MPmgWAK?o5^rZSd2-ziwYk2fgA`vF5sNo2agf6H-V4W@a|4*=5I9m6 zP51&Y!_8=u67%`=N~fq4lWsf`)ek-D!Wzm|BAE(;^8gk+!N_4%Pgn$W9+rH z8?7V#y`VnF4z%-Nu9S&vxwVN_g>Rct1@2ivzatwyL!yD8AtJM8M*G57{S1I~ zF7(fh;^%>`tc*7(C?m}1P<1FE<7T=RvikgV`zOo)KOL~br`<&}0rBSE;(!H~_Vf>r zZl$j;3WHRPBqf6S-$(5D%BTGk&R7<<-ieGNaeTk`O(i!q1ArqnVdj#lU4v+a4+>O~ zbIG9Nx0Ig$-TtdNA!0P%G`3@tiuL{2Zlk>3g^W~1 zZ-x1;i=aXxA`QEj;s}kB=E$nE(NlEFIv9XrC>)TfT>nxI42wy-%DMnfEvZbUOo;>n zMvj=fL-DeVwFa&*rk)h?zq-PDy~^y}CTi||nfpUf>?@}ON#(r|^z&$iw#`59Bh$o3 zG5zPxq=S%^SiIpLE>$l@BB`#mkK{Q{W(Ku5w^5H9Ioq9axhNv=K4k5Ei>$qCziskd z)Dr*~e95XXaK3*4Tn|W(J@^6rHc%s*S(qu-X9t8n3`C+{9X+H3@JtyL!5X8YfeLiG z(oO-4G$5V06px|2K!I%nJ#HuaVw`aPOW&!eP{yQm|zQdgC{k{J)b!F27Yw z!8;QF(|-8sc2c^|RV=vAcl9{=6T5(ugQfL(*>D%ssO!<&x9m9B@v#tE_>q{apnti_ z>xTf7+z9N9{Brs&&m0)zoCJJ+;y5>IdY?Vvp2P`S5BX(2p^>ZpEv3n9b z6AGYMigJTsan6qCwtL!ao}4UP1Ix;+zL5@FhLXM2sIjj_F$uXbX|6m8Kn`WSbuMA#59S^Nua|8U0M$0$&9JG}zAeG~3}`@R9~vSV+g!)BE;_@5^_FzpqcTLDX8IzK}Sc&gOCAlcK9V8Sw%Y_uFRoys3 zL`M)g*Dq1J+KR#9NVQ~;>g7;{C|$c{ca3|y_NQv+M0eYiN;}hVlvZGJc(MA6>cZ{a z&d&R=WI4ZqJ2-E?N(b1gvSigClxM860?~(FpaTSJF%ytqL8qt`2URLEjGF(8e$1xH zYhYX{je4(88#R!b3J|sa$Oy`Kln)tYmj&?$sU0x@@1zl=py~tT7$y>-8c2DM1_{3x zJFOzqNlWd#nc0E1MK7drq%O;braOfw`a3(58o)vn#Svt*E7}rmEqwt%0#?H3%mc_Z z?-7sKUq_@15$UhvP_pyZY-@4oD%bH=D2j=>=8VKX7ImDh^({38gHp%%-=hW0!qM6P{?_^g9j|@$Gw;U#HOy1I z*tg$hA-}WQ+1ek~1)N3IRxFN!hOOJB?BWlySzC@sTYz8~DEgyfBB-XbafYtdew{9K zT+m#?ykrNZe+0=aT~jTV4kWA26oLeR|~{r1!;4;H&R?Q_tL6i0jPwsdw=G zAmVT9Sip~-L&Vzt#g(`J^K_x3`YyuqB3i<2XW9%Q(ppy*tgI7wb5B-#sie*T#lGq9 zHDfVK?)Aeu@-kAOjYX&)lA2VK+wW1}^k*pjt0x{>S_>0-=x)CmDsRX6fcN_nTdf$T zH0@K~wu8x!Emtyr0GMn<3?#?V0&aYNHNt$~27|w|E{dDw#(ZD{f0*@UzD*`}yDhDF zd)e$;=ZjFQL(qjhs(ebM{rf}%{6mk9W8o;@bLqt46VN@ld;wY5dw>~X1zUl}_*%g? zxT2i~w9}X2bxywlh;G&?3xZK>`=Yu_us-6HnZFIus*_I?h1n<(2|5ISBzx*&+0R9$ zR{CuBCuy#rrR)X01B-}ri6XHgtkt`m$Ze(Yos4QnBD`8t1}^BpX(+)kNsv1j;f zWE+W(g_UF*jE%^l?;P(UR^EDUx&yh-9haRs_SSTk`?bx!Ty3SONiMIr2gXILAx(5h8KE=P5LJV zZmGSzT{JF{dQ;x}BI8u``Hxifr=#KbZHDitnCd?sw%fY4His+swtW=PW11>k577sbRM86G@C3ZFtm8K;HFY=6UMv@0@(>dEa zdK{kj%g|NZW-|Q_X3g}EHwB9_c5#jRzO1=wk>$A2HNH&Te~zPOUacFo1V9l~KgfoR z)E$YhzN>3|nGFQqNZGNwJre!}Rh2r?qn`mf!X{;Z0a*MU%3bvb5koB%DaVCK7915{ zi*SY%Q#zOc!@-ynSSL4MR3)7_8QqIlv<}4!`Be+o_VZ-=i|Aw5{`G-ACS1D4woA_R zsCB@WUY37I4xV@|AnVsj$UWb`BN4vQvb3qwGUTs)RmE%lhAm?lOm#Eb^fu*;(oXl_ z7G{dlz=Ws86?{t%9J>JqM;liK?DHd1Z`Bf%7+no%C~+V>#%|1axAivx3X~II26; zy8s4@BAB5X;I_4FZ56 zyrV!`(ZJNai261>=rE62+l+=4&?JUueYNO&T0%W+{cMnhI+lL^vP}>$Xc$(L0EzxAc zH$LZztQ{Fe_Qr%7x}=xwIeP|nE7uxT%_=FKTFe4Zy_65TqzQ?+ekO~x4_!+Z&y|Rb zrJrnPX2Lmw?0CIJh{f&_o~)d8IFI-bP`F>gwyj`m0L4eDo;a30pn|JngDz-49KnVo zUuz1eq{Xqt`n4Ed@^qw%bJ7-*e~OY|0@rTZjA*+qhh3>5Bcvz=%}{O?Wl&%+y19Lk zz`vJ!N2Qb601?CCv#sU`)qx+dGw*9eT%taMc%0AETYk_*J`=iTa1iSv^jmgQ{r$uN zK^M3}_;58wjO30sc92Thw0Y&;!UI$TqWJ&u3vfRg%7i1bCFb9Q{g(}Noxe~~X($n* zNGgNK3XSm?uo{wTX)ppm0yA4k6`-j>g6t!wXB-9E`#&>Sh858vbYNw{vb$8uGH+SK R7P{^2_ZVI2SWnpB{|8o}$BF;| literal 131067 zcmeFa3AnB2b=SAgxx*RmJm^Z6WlM78 zBOM1PJvR>&%2PUor$Cxg9$L!K&{8N<2MV-hCWW?vLZ7E?N|@R*r2~X9koNcgulN1t zZ=ZdxuEMp$wRO(^_W9mvy=z|UUGIPVlY>)lzA^alcf9`U`#<~o>!1DH%kO_>xOnaT zpZ~7cUwiqrFTDEgFTe5T`#+(FS6@DO@ue3JUVO|?&!wlQU;o_aUjB}QS6+W@5dStd z2OG~0cJkZbb}+d3?03KTy)Qobg@ac<_vEv$ym|1!FMgg8ujtG7>&y2)^~M`7exLsG z#b5g8-u3JLE&;GVQ~JtUVQWE@|zb1XZhlzuYB?4m!5s)wU^`XU-$BBFTe5P=RWfC zo8R%m;1qv<=A{<~*Yx|fgO}fU?L`6L#m{}>jhDakl`p<9*x?V)z5ea5e2&(a`26w4 z-{0B#?xU~2@rf7Tc=MIlKKsJp;jX{F`r^R>fBoba)aScfZ+z;F7hikxJ70g})p$XJ zeuACTq(1IVjM-{}FTe4|%P)QH7Y|;`v(l4fqfV?m`r&qq~MaFvi^*0Y*7@XnxQy|Mn-*}l0ws`uM*I)TOYk6~3 zKi~H3U>A_aR)9-i^DG$fWFYF3LewX#i27s)qQ>&IaUXnkaQ3t1K7QNx41Qp6`q{yW zS6-sy%Ymeyd-1i;KKcB?8-SYEufEdWT{qi$c5sQmCD^igY>)o{>TkX3ozLCBqmCTq zM(2*+)q0__*ZHM~>Mzx{JHK)mY zSzgL$k~=-~W`PFztDS>{3Hggt-wQItgGhekiyQtYvfa@Cc^W|fA2=@km%CqbfYUDw zE`okv`^6Vu{ru-%&gAg`Uwu5$X?$0pvi|gm*WY~em2c0lr$0SAIRA3B7cT(ZxR!UK z)=}}-&v*3|fBoX;S?R&x^n5rPPo@WhotyK;tu zSNCpw;O2NTdt!O(aJbmNo?hM3tB)^ewE5IW__4na@E$HXZppRZeC%sq{rrKs@Av-~ z_y4}H`H_G3FK!M7aA*$`lNqPU>}sU?Z1mQJ#t%0=0lYWGw+FinJwL|21}ouN=I&4%^(-J_dh+Ouw_FTDI)`=c>Ksty+sVw?7|!R(6oh zIrZ4^k;g^{gRQhZ2GYUc{2p5~zI{FYGOXSyTrXQ}4AZ+8_t?^#`=eWadvg2w7mLkL zZ)|@2DSdjcAN`}cZ_BiArcxa{KpInr<`jzFHp)&Zarg#Uvr&qC~>3E=~;w zC;qgSq<>ZV)yq44cQDu<3B70Y#lheaVesgQ$!xy7#cyHz;cS2Z=4g7Wip}%KmyJ;m z1`qH)t(e&yTt8&Wd>rv218BvM4@aheuQdf|^!qAn+?jfX%;I2hW_ojfYSf;mHL8=1 z{bG5>@ejGRF#BY}Z2dj$-nRGqk;lddgLAd@91KqEKQ?5xd-?0U`N9Eq)xEZR*_f*L zrw<0#_F{JHHQTyrP)HGm0bW^5u!8BJ z>EM=ev=>cx5|%Fa4+eY2)9J07`{3vyM6FMgTZc1#fvW7SF>%&dULO2luq$lUsus63 zo$nBD{%AL5&P&WZHwPB;=zE?UHWBj|d7(ngjT&NFN)(7`AY^R3U)ZSWG_b0{V$`O4 zkMqLHH&#Mh63Y`<^L_13+8jPrlmN94CbB!4Ehe+XrryH?J2c@x?a27n;bLsp`DRy(jrJ8<3)H}{9aafyoR`|EAzWHL)4>w(d15_>ru-8x)K z3(7zgYhPy*e@L77Oz$R6M&oI0;*hbldE@EfWIj8b@_BsI8r9pt zvW;%W8g^{sI}!yREye$B0g(T04rhy7Kn*ImIhu&Suz5om&Go}Ee;)D~(gaf_Y!7cr z<`2bB1?eR(P1xMgZSR5Jg}?Id)H*Pnb_k~}`V*?&9J&L(ExYvi3|Q43rsxNCS~wWI z$2|*K=eG}M{E`a6uPLJLFl$Uwq^H&>HlKR7n_15SXRSuej5qEw^z|+^;y?FH#I3h# z+}b2naBJvi0u!0t${hRB-lV~+-A{+&FcZJ{gHjw~KI=8Rd=m-)c)I@`Mk(K2EP^b#H_HgBjosKCn*Cr7FJ&f35*p^Au+F*^ z)^o*Mj}M2iA1Ot=820Wby%7Z*8&YN<`}?us6OWCakgVFL{^-*YOuu(Jddl`V!Pd2<%=5e2)@`J^lfE~ z<&0Vk#G6sGUrNTPW-AzD+AlopZt@lwqXz2GAS#TpF;-@bMZ?y*)>b{NAnoGqPV%2v zxmX5|CZX2&je|)~jSHn>Av2{qOi3f(|`EWE{h18KmM8e)p|@N?a%uPEwbAkS}2kG2OBR8*@3YX!Yq0V0X7_)^CDK@pB92*=1B_j z3n>^vf)5jUFAL8Ne>6XqRGPqaEl7rA=|X15ZVZ=J8++8?(P}e2oQ)+T#%hR|k?_Sg zD^7oNL?_4>zlXDwCpbNhBZ~-g{@Km3Ubie|*LhcemJAwOz#tLS?`)L(bh$Grbdnkq z&2K8jRqq4ApV)#Dd-C&8CS!gZg@B=?amEF7Z}OJZkEh;Q`+u3 z_lA6B3#@L>H~J}=1861gm)f6I`axcA&qB9`GFXZxXl!G*NCWb#Y9$hKFOYwm&%z0i zC_GFS-1sASW$4k8QZuYj-FY4$7R;5@bRFF$_mh0BqTcrkUJDtFngg@EVdmo*=_xA~ z1=dz3v@^|#12B9(*B0UTps0=OK~dQs*>u2dO~e0oFnFKjAeNuP9u8?lSQa_CZ<`e% z1=eXo+0ESa4a;XVwWI)=;&gvklIPQ%l4on01ExB5g&nKWViMhoF^=MCl0UgeELu+MI z_VUDES-qD#Fvl#-e<@HDZt;H!Lf|=`L6Q94mk)td0SFRNp-2lHPl8?|U&4QqWdCSv z(^?T^+sN1L&_Du*dqCe>{8{Tk?VgEc9?qAwfL9Msc835>`7*41^QV4f)Y0tq^x$3AMA`l?fKx!wL$;75m6Qej}HY}UKQ!GPQZsi>{o1ou_57tL(9 z(ISE7Xq1|hXoH4OZ#{k-OslrfOz$$Ak~YDvNa!eab2)XBouOsasEuWA;vXxKX|?&b zvrxcDX;H}4gUTh#vl7IvhRC=KJr?H zks0&Wz|>Dw-*06km56>K&1&3FN|u?_kH~s|SO3IZu-bS2XW+I(s*kv;^@@;BHN>26367>iuCE+@)|UJJx7C zRVQ1Kk2`GsLb|;muYPb!*Hrt|QA4$_FZYyXcIx1vy^!E(-1@KM>11ePS^v4jJeL*a zAn$lH{YLmx$!7=!O*s(m2qqlq5PcZhXf8rJLP^^m?N6K!eK2^6IgX_JPnIZN!T@w$ zXRP41^7m*|Qp#{?@(0KTXVrdH8xE7DxhC7j@@-ji3(P+#g6YojB-13r?0rfdWS}W7 zDhUPYf}tFSz7^^HQnjX5+I~>0uLR8fSWr(#251!v%C-lChw7VNe_9&_dc<%a(>w0> zQf@xGnn`XIxeOnZAvIG1mq0ouVh2EREQCXosFV1Sa?R}hb6%Rj`uObj;Upq&JWd`L z+R3vaHQ9hICS75TalRs6Q<~T2hshZ2V2#_8q}D|a@xr|8aB1f?6J^|e0{=pqDNj=S zL^Rp4(q@#uquA=zE{qKhAA~RA%HF8T%zAa(iQ`US_}aX$ z@7_H5o?_%DXUZ5xY$X4`m2z^G?6e65-02>`oA*jJ=5FogKO51_#^9hO9E4~&<17~; zy^_wv&?ZS%`mOE7be{6-&+_pm{w}{#+Y)5^=Ev*1?WaCw)c3u%td*VpCCQ|O?E05^ zb`$w`bKp=hj~hHd0Eq}jqBFe01A!O`;I;+AWr(*o-Ebn{BfvJ-&`f z=p;T6bK+q^m_*^u12N2E9NO%`;K7)ZLbePj_r^F(Kas%C3IE3CzwZt79(MVjwhG6S z4utubTQ-u~j(zg!a~RF8{S&wbH$U9UQD!jsSDYCpx{(hJ7fl-ex)V1{NJo3^vjWK> z!eSmtbR5TV4-yxAuWIz&rSHW>zOfE;KlO2ozV8KEa+tSa^1@sDfwTV7Qg~W=`H4?x zjrsl7iVFaQ@GcAregF2rWH2vaa&*@5hh#4e2`TtI4Mvi4{uFqZS>!wnW#Q^*h!Q#Y z2C~lhD>t<`$wI;X1lMX1#DOaILA#_Z&l0n!J(AeE0R-ALvB9YrB zr;qAaPtiawe>TCQN~ zj9>kjMy{2nnARgV2NP0ILu)|}FNTqBrT9ZcAF0r$MT zCbBXDF%9o=!lC<6K+rvWWZw+P0WL3i9-IjswK_&KcWe$ij z*Dt8rjR?1Vs^cAd!+G$IU|FT*=+4^F*i&ADI=I#(Vr~4ACTS<5kS|b6-c7Nd z?o5&Gc{s2hLpF2SRf!qNq{ zrWN$p?=ff`t?93ZzOiKKRFzcnH!eOYwKoD7)g^oKLYyw=_uAH< z*~r^bz~d{FLdXtw6!0iE%S%XHr^N*Py;SSJTPIB+XElXpE35(h5wdfNe9SIBNR_e_ zt6tpZpj-KJC3g07E1Sb0+F3>oE2Tu;&&m*W7I_o|L7GY8l_^p!i~QteFQ!M|smP#{ znqD@Unt}DzqUe;@14K{Wuk`Y?I?J%*M2diJfm2m+bC^BDYE`&WvZd*j?$(w-%n&I!fn+0BYISBR*0i8%OOB&XBQXOYZH=%{wK0ApQZ1d?>bTv5NJRferg~oA+ z!hNM3rCmdrIr&0CHywVdx@{*@Kz6HGD8~dMN8sIZ@it@R-Ns(Mx2-fe&5Js!??#RH zWUG37cRv*lOt61nCq5jpS2z7!I2n%tq{X~Y#Ub2K#tonn5n~JD^~y;CD$*(Gr^NVA zR$pA?Ti~Qv6Qo9ulvdLQV%i<3I8&4;vb*-7;-2<2ZK*%9f*lw zI^vyib?B@D2Q^d4Sr@i#G~+dh*{?ziaEIZ$CH&i#j-(ycazrqy0yO z_JLEib{mjgg+VM3RlOhUXFd$8Fqt&{2YEf4J>4M|v|I^>Er$YZy;x(7nm8Zpnc{iepYT3rD>usPxK z+u_r2U-<2*_cFCW+Dd%pa*EH~7P+`TFjmCEDc9UtG%C^*!0m}nK$doz$CLp4NnYh2 zpLzsfk=A)0a&V=AkR!Dml4AA>HAV#!4<{V?3DGZU3w6H9n9Mpk&JkRM%k3ErVfPay zEtQ`<=N?0{jxl6{jp>fFt8T6O#>K3R1DQSwcX|){Y%a_{@QhyB%lK2`-0@Ihdy$R; zvl~8G6gtXJtg-!FIoSs7%C_3xZ}IMWgS+w|cJn!CwCs)lX{34ujvtH3<9UL?D&;_0 zgpUey^qj!+Jgn(dNv$la>iNOiB6!zis~p9G(wV((tJv{Dux zx)$B5Q=)z>dZtC? zZKf{5#4CvUX(=obNRPxD*-oWPiaAibVAS9=kVSMaQWfuz(3B(xP<$nEEhPJ=qTlXp zmovk3=F&yezET2H<-7#vxl~?M zVKQCa8`bNbkw)Gp3@!|lYHYkNy-j2$+t*^&0E?FdAscHK;Rw8#*g@m{ ziiE!eiu!!1&JY9ea$Jk*Bx;=x-Z5~cqb*L7<9@j1L0QDXYH*ww z4joC&%Uc6G?z!`m|5qJ5n&#vd1*=4b2ZK~1OlN*1GbI&uT*V>{Hy)DHa^GqAI=(Ws z%*ZMK&A6~#d8i{0wRNdezfhv;TQWH%h%z??n4>o0!QcY)sf7Qj3If1;z^_xkut2g3 zRTi?S!yi&`<+5SDfLWLu0!N?jhRQBoDGw4ZuY&?hKf zCvby*I~(2T9CQ8w`N?g^_EPZ+CvlYZgi_${mVtLh@Zu0wZ= z(59iNP}-p_E5de=G(&ausW;u?r*v%c=~hVJE83xaNk~Dikw6)4@vLlRovFU3J9$q@VmvdKXSw7Im5EgLwOUJx%Ny{LqI5I);3hv;Tx9LNtZ<-qhh|ditOrx1gA8M{vx~CHM7PIDlQ|fCJ1op;ZA^ia1u)V8 zk1ZYDKml7-9im{cU_(TeqSC+ehNuiCQ%T)OAB7vny%jboT!t--2FkAG^CWrV-2O&0 zr5|Y!d7#{ZO$}GNo9HkOi08k{oN%6!{yvI4)l)c|Hb2sRg8j_U$5m83kz~=i3<_*D zDqq`(WYEBCq=Y)0-zGRfXk0}tYy2{qnnr>fe^4oEpLuC0s5+O7+9-soMkIr99g3W%O7O;Y zH>Uq3`5-=`@2ybA->KifM!7Z*^su9hDT?GV-HG-^yDF_yovCb=LID6JQO*c(bxnQa zM`VgSJC{CEvE8BhDDwu9Y+&k8iymw~XI=wQSb}3HtDs-5Jtz+)EwjfmEL6qnQfn+k z8`rwjETzcMfz5kxM>cS!wHwKB=LLBg)Q5=C0YF*k?!=B_j4uADfUUFmJb9VsvY-{@ zlGoIoz$zI;%0@92O{>fpt)(aO>e|!6#yH`D-zFnMhT^bk zCua-y^w4gK)Z_|gW};xV5}DP;DEPG$*)SEE7OkRaS(wtTa)Z@YFzsS2K1YjA8@$r$ zEUXpELG*xMMRR44L=Rcyo7CGL^pg_eso4e67a0}jx7JseC`gfPKH^7C_fk|m7<7^B zxQYl+Mp0pNKEMN*9V*sOl|U{(8De7L>+0sdX-l*6Hs6!l`QVAw+p#?^T=5?S zUaA8Qe~`zKU#iG$rr|H`Ipq-tsP(@Ha|x!avWY@ygywd7N88qlb{g%d;*qsKyBp7hiU4E7dxI~#^VxiokHe375FPTL(%Q)< zjq1Jvuz_w5E75*7AWk}D*KcP==&mzQ0F<4)r{AOP?mJt`$fL{)o-C(B3LRV>MfL zJIP8!xu__@R;04pIWP8QZ&VIi1iw1OaUqE9XaVhojkY)a4nLvVNyh7kH@|7tQ1LT7pS1C0_Y^x zrJa+al5bBkIr4hp!9bV9a#;CpA@2&4KBC|CK9`H40_mBhV~-4*1#Ws3G~N8BI-2?^ z;Z)1{+xI&^K)o_ZLj(y6!6_w}0C$g>@8|X(P zfwbL@8;`Tu_OwsS0*ALSm4q@B8sK&UI1p3IzK&k2?N>l(dN{`ngx)H+q#=yISWLO|e$JA6W;I zhzlzv0`CSsd>t6ni61MAf{~>Zxab#Vx}8^Zlqx6jHTU;AhV1n9<*l(dN~L|H?Sy03 zY8q|~-Pc8OpuJoE8p-8zwjn%2WOiK|uFCYu*Q!5PpdrTAohH9i% z(~5WFbT~3nn<%+frz;5Kc=EC4lt_rZuB#x7oVVy~*!YUoSiH5Me9d@<>-Bo%UCNsX zhac_B2`h_7uCL@5@D;I=tZ_KI&Fnc2WqynJ6%_xfu&Nb$4stKfZeJP7rRNj2liMyx zm1Va8)rioa{@Vp!9qEF|de>$2qRgPABEjU=-o&?G5D(rH8`LL=canak^BCui*D35% zQeSYPm}uVJGM0()no}_em{iR!x-f<0`=Sc?ztoRs~v1 zXRS&M0!f8iEo4S$^FLiqCzcv>U+foppLEG6c$qNor>igGVaR@hGen!5bJX=7f}?mZ zSOE|TOiuk}7;8cm86;`()3J?xVWgd*{>cuw3?}WCgCI`!Ra+jPDts&9vy!g zDPvq7eM>}UWykzXu6C#ENfvTrB7hL{9&2W@3G<6no%LrRz0WSw;hYumvObdC$%r|8 zLNCrj6bI9w(H*v>tNW-+7xI^8$e-vDJ5)zBET{EX4a|7_nZEURRVLJMQkUX2#W~!$ zX5i_1%QRigADVf-mb3K0;bf_-0;2p#T4n-?f3sL+ZN_Sy#HiM8%y0sXy-y?Z`j{2q z<{O`Hy)IE#BN5Z6 ze&NuP@8*awi}(@%a64jaDe9?U7u~RD{7rE(m-28Aj)TbxN$u#{=^YAm#dS3GxpcpX z@1{9J6B)xXn8MPF+cE>?t4~uPO1;fT!aF%*G4BM&-SU`Z?G7b7w{&viqn!TQRosg@ zBoLYKpqk>elg}z5L$4^?pRV^A)iw;viSg2jnkMQk3)Jg4xtO)zt56Tb4OrnVA{|BF zGA1@c<2@IQoyTM-Ky^6Q(moVwvGLdI?KBxrTja>nR09k}?Q~L#CyIO~0iJ;<=!9g{ zr-=RsS4j#-DPzy6fRs%=)u8V4^OYS|x~VC}dI0R2O~s&zx7*Y5_fW^?j|6pOy~|Ij zQOlpx_r0*A6=S2va_uWW-An$UpQ?rEZ0MNrGeWXn><%*H0m*rED=Nhp;CJf~r3}bEYT~nVd4AWvM3K zM=_hXkvGbcv7fIdaw=xqmDb;f8Yv*aB{Y&n6o`c5v-BI8-gOWHlZB9rj{ z4K(3Xr;Gh`oD)14Jj29gm+3H*z17TL_5xp_yI>Q^mctam-r$348lw5KJ`|ET@PsbU z`1y{!c5cWerz!Bt^!A}-r6gteaDZ{XsT9c@Ke? zst9S+h(m~2!-2R8E%1*1COn88)mb^eu8_R`q#A#=1JxyaEf;tC6Ue61kh~=OeCo^^ zWrwOWKgc>)zN@>5T*$ z=(d`ej^}RweT<~Qn5aUAx0Yml&4jU^ybyF1rWJG)P!O=}6A{wOg@BdrnFA+Sf(=_g ztIxbbSvrQkfsigpOlKZhpWj!10i5aG9zpW1uFQqIXx_71)thDUY+*i+p4DR`|La zp&koN8K!)I$4sX}%!;|yuEs38&&eK=0)JF|j~ndj`iS}7?z}j@b};xg0<+fcdskDK z&zr-{n1wJ;>y6zo%&Iu;H3Ld9umG@l7cGqATx6#G4QRnK4G=m_DXe0%(SeV-%45S4 zWGfX_oSQ=a&zMh1$e(eR^~EaRDtsAme>+sB#g)5C)WfPw{0m2hL^{8Enx8daU=5^O zD~h=FXY1#1RtFO8{2VXlV}p}AwufVGdc_|Er7Tr{nEjm37V%*TVdNpInY6m8s5ZT9 zF1viICREMRoiy`qE3h~%24cfrt*FJx($fOUUp;_0!A-tt{a5z*Y`7iSYG=yDsBE*d zI%3e9_OoTMcR)WcZ*!gpytwDUY7$kmZfGb_tn7A;az+8$>wEG<*C1DcMV!2kDJc)O zww~raqLp@+qi;fE%-+bhYbT&xEcqR318S3edK!mKb=tn?MygR)qskPCFf$@S1+G9hOIh4T zTG$C8+AP>ibRUDO4hMh@rOm>o$$@j<1rSd9cNK=9LSrid=oGt*S4r{;{&4UUs83{UmtZgX+ zS}d}AG>z`WU-jO5`@3pJRPvBt0CGcWf@tqm8iX3Ch(oxib{|kmCb6AyN(Gvb%thl6 zpruf7D+$~ubS4@RxR5Viz|QG*WBitZy;&bs9ZR*K525^Rhk`|=G9%;~*5;GM)2z&E zkaJUb4h?)YGem(%Ws6h-LaJbhebI18Q~Jz7V2#lz<-0xe+$7{WZh@=DBAL{f(DuoN zEzfuCjpHu3mCAkQv*(pzfuI-ECX*R>xBbDCNs!oBkNmkZ5oRk1M4B8zjF3gOb+>TM z!%{JZf)#VQnKj-;%KZ2_Gh#12*&!AFdm2|bGfl0k*DZ7lqdJrfU=8wj`G`@)C@aheU}7P^^{KT%Kh6y9BT9jG^5*l?ikI z_erSmjN!jLBu03Y2D|+|0(jNiwOgbG{9IQL{zjmApWiVb9NO3v|C#D=oQz7E7&5siX7X~y*I%tK?*ybuw5 z9Yd<1(KswYPc+8Ff|w@EN>RTMOj86?6PJt20OGzo$uGSobndQ3x;>hQ{5lv6C2@J8 z&BVhK@4IohZ&hh_8(zVAG|EY@JY0^4TTNtS=W1`JjOWs|_0)7AX zc-J<5;aw6%1fA=yi7!b}wDG>X1dcD08xDWG4h}H3=6l65O!c=vyXT026N#Zv^HDj7 zVCYgRpXXm<-okTaC=1#34~iyz<`q4~Ai$|<3A1>$k8V#6EoT0Y4k>o>KR~xDbmu;ya`(Z9-SFRH^2nN<6?p?Y_mwDFekyReBR#OdWgJ{oLYcc& z=*W&XCB=NTetu2`$B62x-j4PAxVes%lzyX*9V%H2=yM>naySR5=RVdFmSChvluL!6`z3|dm|)Z7XRj6|XiKKpPv z)!ypS36T98f4@$Teo8peav1e}FBEB|Qh!M*`O;$bkI6f1;fLzx%;q`Om>TaquszDn zg+WaeJ61RZii|vA2O)G$Aa3hkCki3VEl5u;ysuMzN8&R=$l8{_^@#}aKB|7ZT!Lw= zHsX{Gs$jWC0}+FCF{T zA8+aVUO@d;(S}39nKl4U2`_(YB@gZ#==-(tyG;RUMm;%q$9x|aeBx69fj%UyT&1C^ z^g@z+V6JUXUEqzJJy|RJYEg^?tmeVnyBj8styP9W1#gR+W#Db+oh&V;rTFs9UyLJ=vaA$tiUGlXs$ z`Z4m^>Q|6szNNt3_(vdsA%`H(k{2B)or*0Y{`oG2KAdnDZz)`~@ec!cvLD?~2|-(= z(Dyy0^s$!By$&V)Hi6?FqNI&qT8D;MOO@SM%C}e>mwVor9xi{v$)WC>^^?IAv0SP0 zW4kf((T=WbXx_nFX5do-&c=8#^O6MlIFe`nW8JzmXUz+@PP-Uog@!f?Kl`Pv756IJG}FUby@~cRkZN_Hm8)~ zCeOT@xn^3^%iZ7BMP1bHp}h=(aIh;|N29k~>{YJ}pixCWwSTm)eL?cQD;B#*E3Q=% zY|J|IxXqbVGc`D~H!Hx})4OBSdiTCoY+Bdstlz3A^-rq?^I|qfoLVX@h0AuM39RJ6 zW}PN-shhE;vR6+srymu}4|hhG9mhPnw2=x3zGeQkhWXJZ9Tx_?hxpgvv9TrNidh4VinZiac% zq1W!@`hJ+Oml=}bIUh&dF4%28KBBhDMky_j-7VvnxLJo{(coq$_Z}N^1~RiVXraTr zue7%(uS{Brkb39cdRytCs^#cELU2oz)&p2vwUM$S1?h$9lt zJtL2#o-_w_42$dl z7k5Z2(_31Y>;3Y2%unTVQX-sgREo@c6*v)*Nec>QcmMH>mvkofpc zr-iBn3LOvqz-@Ml$hmNER{D%*)v_McCDeAY3g%GOr}p+u_0?p7R!!mD_CX!9VFeBx3drgtJbaCw64g(24%o9QwV@{-8$I#ZSO=-{ z+H%4IDP}A)n-jfCN}i3gxp$wE(KDRS%_?SWQ*FHbZnAjdZA7czZq2T){?JAWklNgj zg5i3^RffbGkH?UZ=~*o`JCTRCl~mlrMLJZ3`&czSXw9j5nidquhjM#_wIpZdi>uj^ zZV7Q+lELpm$hp*XX!aou<=CfAm3%qjwkNcMs!x)xNXhJDiR%sur13P8Vy2X|f}qJT z8s^j(dVz9b4dByM;Y)s#3ItaO*FCHof4@O>==;!IE{;~CF(fa>Go=L9B&c+Ln?N@2 zuB29S*1Q7Vlj%{At1N@fXS(an?JUxr&|GD3mh%UhCTS99H{0a+T?ILIl(nzOQCSk1 z45`x{D3-AwO}$D#8K1v0yz2&l;~qLqBe-QNDJ0DmG&<494I?BvpR(a&@0V1=j?wJ?Yz7L^_DgXJL7Pr2s8yhsLVJRff~7U>*$KGjukd)j8?4)O6rx z9(=X?$Sx6?I_o$FF{~2EaG^shdFal!v#o<5psafTt2=S;JT72@V!n7jd+W*qo+tjy zYDQLZ`Khq0h(vwW7m!rdEZ5)|J}@SZK?c%!%XCD#x(;t#)iJ%3 znFotFPey(u>j2DhEp7hs`wRZjAV%!|68p+^tg|2w^}RvX@Ev+#ShO!u@}EM9;&NBc>LpfC<$9IH z^1fUOdS92p9z{%fku)>INzI1MZ2w~l^5K&I*}+83bDwu5oCs#|HTCg)T8P!NzxkAm z@9?aVT!l(6sRy2s;;ATm4~3O9^A0ly&Uo6Y!QmjtF`f>3Zws$fX{IvX&b++Xb<1i) ziFtlaR?3mbe`k@mG=&H540&K6aRUvwW^(xM-x9%er;AZsz3l%i1)7$((h%Bk8a7;Y zyMI^QtV(A8JRe*T(N^AE%@B7}6230=Ie7!@;}jU||t!8589}YijBalThjRDb0PRT@gTKJhK{g$1mnB^IOMYnegy>u}w2? zQ?XNMsl3LCxomgq3^-dS31khH4$}vnt+g`;A69l@rI+%y=5nWzV896| zPg|b4l(*>Gdn642P7X2B&M&wUg>WO(8>&PI655D>kyfWQ@f?;&@=L^fRuu$sFIguT z^G2CgUe%KOcNp)vAxo~=giQ%WLgU7$*~y=6#|Auuc~Y6 zNRt!M)4luBIR@$j(jsN(tq=f3*)%*BIqs5zIGfM3Vq{idce9DC`^J8pu|+Z*0v8Ci zb(A@yB)`A|htjuJH)1bT^8k=@R1|vA`xDA~gF>tc(1bHc-R-+K@i)BZv;ypsb*!cdR8zgb0lqf zYNb1e>dKGEo%2wS2r-@@md-p>_X{6sB7STgX;T+ALBp0c%371hl-;ThUYbl&GyCnl zLUguB86!!Nn9XOt35;u}3hvGeJ%e0>qC{SiYb0%@VQ-%Ko^Sx}-Z(ofk z)gucolIVl8*-c+@Y~&%Ll%hjq&apr9E9GP8&I_t(msfqn83he(5rtA{CM4_C%6@gR z|Ep`pZH{1!*-1PqvRGDY9QYV1Y=X)uI~=t|JNm;(Wol_H_t183G`7>5n^@;@Qs$m% z-9rGX0E9A`LHUhMlDyYa<_2FC$j#il>-6jw2XYWK@_HvP@-`nkf_7Z2BBKku;O`DS z7uHq;ms^QCj8D(Gj*+q`UF^DubJ-GWz}1fha<48Ac8WNWIhD5K{yjehv*`(0RiY=g zw)a)qCe5QKHdSkOzS6AU8o6Koc#9SpU9!)htnnLvzWYu_OArRP9Se z==vPK#r!-qVB4U$dhO{j&ZZaQ%s^5YPaEqKOgY85fqg4!o`@H5!CfL(jM+9;)Fc_pfV>HXU-I>EY| zqh#Twg;(kgtmTHEj#FWIx#4;6Km}jOe*ZiI5vSxs^8!LdD%tGoyCdDyXjv9l@H`|F z$SxCHB!u}FBSL}WxizvCqVnvP*7eU_^A&Z{xT5V10Z|-@(sMPbdUr9O6*aMb5f5wt z|3@EoL0uh)N=`pH`$B7(T9x)TNpqAIp}?^nf_S2f3@CZc!g!TJJ$ zI`ymCm8WMP748ti={!fpghz2L*umh_#q2qRh=17?jHhBlTrvU**++?23awwB(4y3r zGS1|w6|KU$Z#nub>orZaP|?gaI)1F3gBrAckDj(V@kbJ>xaM2C9Pjol7!)%8svw2e zm~5QnlMPWD{iz@SDROUs?Y?wFhF8L%|^~$&A1X!3<*2y2 z@jAB8+n^&cmP_o}Qp$t2xmpS$-paWcff*!Y$T%kF%3h9q-D1Xz)THeAxY@0Z>r(ib;}b zC#I~TTCxK8LK<~3+oVw*=?F|Hpw;4q$XEVQILis;|uT*GE<0=E!9oBxZNTyF1m{& zC=w-;j+$wry-LzE*9AF?@*B`CIZN82y&W{myvplBF4Pf?8kJ{KJek22_>~{9PWWxQ z{9OfIb_kNpki)rF5+r!0&}9%tGebEyvQO>oe=3_qS+)t+`dI#gV!1+1-ghQ-LMquO z-6qdc=}3D0+#UgZQLEow+p)vmqWx!SKtj$%5hgiAQS7do2;4LXguWG%BU?$OByz=O zr6Wa(Zqb(+Yn}Nv`U3M#{I!I5Jz9&TLB@dpktr+mT%>!^~sXEL>_&r-U!xyV8l z>DmOxJt(JCjnikWiIDC`MW;er-hgC!U%VoYjbOp3n^= zSa9<*Gu3LUK#4K#vz;nH&L}e?5=dRA`}g9ZnG}6IMz}kyaKdYP5KN$AoawQ4C1Td{ zko!=~jCHpfD7>bJJM9nD+Weh$)bdlpgqDlD?|ZR|XZTSQsq9usIsVkz*mLiwAWwVE zW%D%f-6_McB5JyEE}+5OJ3ZuNrzQjEUD6NCs;ww0S33Z2pYIKrHh4} z`wGFWJKdCGC262t$k=rtTy5;!SCl|0KN&nCkB(v?g$`f79vZmidPxpz<8*tU?&|JH zKTIguw+p+A*^+py0CX^TFAr>mW${v8bcVbIC3nkrSPd_8*-?Z{7R`lE1qB zN3-QLZbUd3yg$Zu)>ou_X-o-a?y9xPFxPL`ZJIzL@NygKpT11oLaC(rTRr3b4VcHr zXD6Q&NY@7B&jKPhpdrMrx>L8)88$RzD}lLyn^O#&d@5BF{Vfw7$9&eNwFHul%t+SnJg!y#Dd!>NuK&p}^m3P0iDy>_- z$pS~)l>-TR9Wm{ytjFkBC*aN(XIP(|)z+m<3 zw4k*M?*MB#_qn}=aT z-}(`n&9O{Jjrx#anTAWhx;sGPWB|MHxScW5!JS#HbbPY>EHx>uPZF#%U?XeX2aYw^ z(T=G+#53aj?mbcy6hjCfeIzSb5%#Hc+gs>%5uy+>DKD1ojdW!pd~N9N)nQdIG$(6D zMjrVhVl5&e*?w1X9V-3?cfs(O5x5W5vZjqx*jQn_%PnR< zap@NGQscGN2XXwOY_30^w2&TG0lYiUR{@UU0(6tOubbN40S@KEn{!5pI7dRHdVIPm z_Y9qFu4zj8;JX=&cpFp%vN(yKu!fE?NYBXN5$AW#OQUpn<;-omZkef!jmOBJgC!@~x`-aZo>HUj)UU;IYx6@=lrfRT` z&I+=OLfjt=zMTiQG5L>_fj>c z_RC2CJf!9!M=QLP;fC+Aw~n@-`wK$5Z|%`|ndo@re4T^A*Tt;IaxZ{ymcqk8eS{=PG`UIQi#c8sk$a~1PRBvqE+@%q z8s@ZI_BFUx?75%RroYg0@0Dhg;spnTPii*te;puB=bBJQFm-esjV+#Y_Zh=Ppr3(I z48t2~#}mFvUght2n{i$ytYZR=>#@%LJ+t1n858U^Q~+fcS86_u z65{xhA6*VSN)qT*fgbl>e$RpQXP@enGm5-qQo1mLlH$~t`lo$Q!2JA`V&gj8bM>+% zo1;Qge`s%nUo8)jl_YIlL)a7^3}On-)zG5Ym-7!Or#P>%(ZSk#-?yuG>3i+(A6~t` zTg9bQ4{3XK#*aP27=dxJx{&PIJ=*puaf~hBdEsD4MVolG`=Z$Gc`@RHx)LY6_WZ`o zfMb}mWXEt|PD7VCKP+~9b+S3PvC9>mjWZG?{M^_pcUD?wWw_c9fW>IDv5`qV&)=-q z!)^(~)CJt41Z%~h0p-@l7}Gl>9=fKg;fW1aXe7JRO zn8mYwW6IV-BquMG4&jaDwLq?_v6x7;t;iUOr8XwhMx=C`=q<+)Td2V?w)n(jiB1? zwwBF-`m-R-(r*&zgKvwF64nRL3CYq51Q^0QaYK+RrF?oORhQXd=z3FasoMZnl#b~W z&>Ts_w6-fPBQrrGgd$o>ndUZPE68DTY5I8{1sYV!ofj;t!~Cg;nDcVC11qboi+npl zHQHGEKzbP0M$|c!xF%S;9;-TSzT}hyQjHO7f-ZR$ZrwfNS&E|tuY5$sPEI*)<(1=| zaB5e(ePVf4W1ZA4ivv7(d`i?6cu<1TEA0!Mgjr3>*FF{wTFM8PibzEya^!@{r7j%C zB0Q9ng3?&&NoW9G#ghnIHE;7C#*juHjQP~{^~hdU_j4KCWAK=x)~P=odj?jW9rf^7 z@zQkn*<1BlKiev}P2VL5)6O(S>A$7#*XC9|tLWXCW4cA|4ywnmYCGn^lNREA_Gmh zP|be1OW(7t8@sWseUhXSia26hxip5l4C4H@Z_fWAX#lPBQKnnmR#{2fkuSY$V`6Ch zD7LI4iW$D3vOzt2qjW#E0amtI&BNL)D-1{moddEuZy^suEM{_>-p~J`l^qNAZyZ5V z`9PGM>^QSA0mL;W1VuNb9A(lGTW%8?4xJFiu_1q68`6FBYCGsk<;qSYn$ix^pka%j z|M6loIu!i6Nq22Lw9NY?| z&)FW}3RnMNP_ zvZ{Z&ha}m?n{{wN;dM#YB8Jd^+XSY2vI4P8VHZvaNZ--~65XRiMc#%fEW{)5xp1Nm zq)Ikf+ug-9=_adoWy5fG#5@`jYHc|aQ!FjgoTl$Nu7{eLp+|tli7XdRtZXW!;(v*) z$V!Eu`Y^EXdjTCk^|8|eF1%YnyoV5T@aF>>Sr*?ZG@g6vXlRu9Q~z`ifn($Q?hbN1 zha2Mf$f4lUy@VVaU#LT)#kEot3FY`jgrjYK9jB8-L`7ERx)h5cbHw2zpU#W=Y0gNJ z@YE?i)wClaGm5FF^A%$qbihYY^8u>9c%8zP9EuK$plWE8nEh-&EQBC}O zt2Ki2+k!W54j(&Gdz18}7_k!~EaGH~I; z^$igcR}F_~+pS0((N>DY57cqcPkn5;?|UJG4)HF1eme7;mLAgH-|xKFDDqSt8cm8+ z&?HO6=S7e5eDHsfV=kW<*A_#5iix`FpU=4J{HyF*y?s+2FBJw9{!>g`&KvNp>ej07 zIpGlbs(5E1JLJOW1@WGY{dC#2)RMEX2x;iF%eH$*a{h(y^I$#dN!0?-ZsD>DLPOd2 zluTtw3r{r1)7p9pAa=L?saRuoVk=%T) z#k3M^eM3pNT-aA~h52{7;6McV{Dh1u#j)9~1hAMbq9YGOQ;y4af1Zc`sptDH!B2P*~{cxa5yjKRO9&iSO zQx^~YGdN2Kl17^@%QN@eLw(Zkf8r?gNi6bU@biT}{1@(FvgSh_p*AMkL~;;EHc4U5 z!wx4CxM^mG-Cht-41K3`OkMZ`!Y|67uU1FIsU41pl&nxgV8bx#h)s}K9j8MDEukoSZO^>6IY)2UrbZ9!aaTaTb7-5-`9wf*MyN~+!JP$;#TMkE?J6qyw~axn7zs+_7JMl-JL zst46{9ZM8mJf|E^f0fX=fi}6>6}%HIG^(kgof7H??u0JhuD zTkD19Ns`|~y6K5;Ud>gvM~keCJuE1x@OM<)E4qDml9A<wKdiGB^|oF5s6x4oGZhd>||UQ zIw|6i9Vy`!dGazSIh@-L>~Zwn1yvosoy!PY3NKr5n9m5)dr|~a%=BRJ7{nw3%i6k0 zFN!3%9D}tJ;qqr18{)@86n5z9g?3dobiQ$#V^WjKU-vNQ5+|#kJlvhlCX+a*Ple%l z08mo5*JVTBqs<}i-_3^9eNvI4dj-SP{oT*~zX$os#!Ep-Z<(*O!uVZ$g_6D{hVtp+ zzoy5vIdm2@YV`Iv+Xnx~5salM_wy}Df{K?!o~h6C!B0|DK8|-|l2eZu{e`cUPO3wo z)=WmXeNu+=Fu131s20LC652Y{pon1vzxg4dG{Nr^)E}yVkjY~Vj-v2ksQe?PBe~8C z!{|7T!xlL~X+dBk9nDhJmQco=EOPOO)Nds#(T}T`P`A<)vreq%IL1?~CAouH)mXKh z?8>L-eD8?f5gx@ z+T`?sf$1%6unzYW$AFW0&~Td+0vg@Q2I8Mo*WgnQ-beBniV4@i?Cr=Rz}LP zJ+-=q@fZeVt}pFM#rKjTFe$Js=#IylB9I;XgoZYL8@tLKYtt#!7=<5;xCMc4b-EMu zlh2=1hW2cLUVHiNJK>H-A*XO9d0tg*R?MdsPCO!negkRd6xvS6(FH zjYl=YkHRP3m18j14@w1toCp@~4vi2cuS6qKJ<$d!+ZWZk)Ku0JS}56cF^cAlUb=8z z>C#@XsBkQN*82*?ib(> z@JYae98bCS!mgijMh+Bw$+<^-%-CS|7-0}cGK}6V#tv59p+rRe3uDslb}O|iP(FJ%G+=L5Or8T~RO zP|{y*=!opDQYQ@p-X|AedP^8W70Qf4Cx#MpoBQQ~x&}cy8rngSB4kc~(3l%_S0a0( zhvU%XrIRTzP|DE;hO6_l`;#d%$;bBUM9Jbb$p?mO%(BtZ@n|v)bZw{^uAFa$zZDdz zm9D19tX!3fpP80_m_sEORnFH@szu7!5x?#{rCs(_?ICCFxCb6s&$>M*B=sHkW{ zov>(fjXT;6u{z#mq19+tF5K)dcS4*mE0Ue1Fc4OZ{KR8pUu(TRs{P8Ef9?OJxra2a#6 zQM}rws9G1}vWv4UnB_KxuDv}?w@!%aSW!Z&D%Hv4+6>x&N;+wSFCQk=V292pk%95olZ?5q^f5y^9$*tc|==z}gw zPE&sJ>Sa(JmH6T&3biPMqO#HONcYi^`QjO*cJ~RtInPmPS`W1>*zY4G9G9=jKOTQA7{P-&ncy{gLRc{RGv6M9U2 z%N@z#XW5expy=-Pe9`OV@t)xLHc?pJGO;Mv2)wf^uzA%|p2THOLe~lFG!`fQhj}5u zi1v92%~31L(&i!$d3ldAIF+4vJ4w5TWb;v}BL87)p>kE3;1f%Rus8pcI$`@Maf4Qj zuJ3zM$eo-nxb$DMN%xc|{;vi!`Xyj0y?-$HOp&GM8>>YV_&0<+*lhfSF7T(|sgOIx zHS2u3n|E{yuzbfZ8QxKh5VXncNz9=wICsft^l>@ozFhiI0lxbtsO@DD0X#>A06T7s z03wSY71(>d>~)C=f?;a!K2rQ^w5@WCy3=6GDck$`elX75$K*{Ki6F~g)qbi}wJ)kt z;@0K8{X3>Ab`_zwU)&|OwXd`Aj%r-`(S+5lG~@U_H7yBgKM2WiT-j9A^&9K>iisvAAs;djJ@OWWndnkw*Kt-dimv|Ct8Z^uVz7@HsGv;h}sR1bIrof*V@dWlnouQqm$5 z%2Kjdk9e4MN>^Z=QX^On&L7#+$*xZQkwq8UUbR>25nfbVC4Wa9f(BGTuT+`~ zj;n3Gyf+VyTLP_S`xd4zXnZD2-{eZ)VGLcw?a*g6_3hXJLKDmxnJ)9`QvWeja{7eV zz8os?)owm68|EL?xsRVxqZT*q`(9-I%+buaMUR(V^yXgT#Shn^ft;^JzIKvjBb)n! z&?{z5m}E*dAdm#@lG0@DMMnT40F^H*aZ@h} zhN*ntbaJOk+YM8vLYrTuB63)=Kyl=IZDF`*i>QS<;32(GQ5I+7UMAy|f^77!WtKFU zIIWkKSYb9}Tv|!(cK2qU&!WzX^LrgI&7n>#S_ z>50A*@|8GPMZT8S4=C6JY6j~X;ubNNkP3rS&<5?DWDSGF8dl}#t8_B!Y(J(n$EqH*r;89MizN-zy1{+WO z*}%qrl{fATz*+riCM7QGqBh`ToU;Za?Fkc$h?qE-X^2Xb%}EBX4yPD+AgUtAAZ$j9 zzGH_E@LEz{=eM~fP!Tv|V({a1H{9mO$)@hW$KBxvb7Vi8OKU?O zmgaA&$Y2_2QEzS0}{(d3;J*3=h{`R{B4YD2Un7LG511x#PgY_VD)t|B7ZA0tfHX#EzTWFWJb%?|jo=G~8KC*~w zE*mL$m;dL2Gj*pJ=|i?1vT2BjH@O%c*?t< z+MVC?Q*O34O9UnBmtd;MEc1^$AGA?NUs)Mm?wzDK>eS0+@Rvt|E_ZbQ<(~>d=~o>K zr|OxwMNkuNs2iC_M@neAY;X#`)Cee4T-o87fE)n*#v{+;;?0eYYD0_T^s0Ov#~AZg z7RO@G7V*zn_omy~BR}kgy&!z=c*D>sy3J183&c6`dZ>5M#e0Gn+`?=e- z5h=r4AXq0q--xFGs4o?O0`)P?54;Jjyxf!|L;Jl7KV4_8eoBpwBX~dY)E$VLD|=e? zJtTMs7Xj2mAb?*Gl-Tn9%}57{cXs~k=#^NIp0 zIO&~a;yRgFJvdCb+RW8G!XjFR4_>;79PhH>+K1;V4ktMcvep9CeF8syUCU#hyfKTQ z&%xkPrZc1dJHJpkobtjM);O`QL36Y~T_j43 zad<76J-RSgd6J0|HS#EgM3E5AbI}@ zb?*LQb$u8qiC4KhtR4$$G^u;kTqNbnuaTBtv{Q~$R=G80I(U0Y{H%sfj#K>aXKK{3 z!wiPQ#|eNQr7aCUvzown3k#4zenPtqHo3m@qBv}$Br*}c9rEe=ZcBiaDTW6v6?OzU z6m!XE` zDBUQXTk(thmFd}^uhD2uR*^%~D)u5qlqp?iPKSS7(UFSn40pfsTg7;~tAXtn)$6n| z4$8<7Q~|MGPVzeoPSRl-RZ*5|;?Gg(}Fc>kd%+kRA-LKob}=(qu@S5+zCby7FWE=(mMCG_X3iWfcm@`NWx` zKwaxi70>Dm_OSJPU=yAtR?V*-N_iJIy>_qb=6<~dRULtOIvyhK$ zvf@rjd|pu)UwPt0sVhHLe<{7?m()|oOXKo*?ABO+rQ4v6%Nwr_rZd~k@DD{h}uKbL^ zhOfV~JjKxi0lF(c)7YTmac!8gLRbMDvG6~?#o{;FjZH~MoPclTO3D-et-O#_*`+UdZ%T8ty>RAp7~MJHwjhZPX4U4stLWp?EgsZv-?bC> z7=>&;AMnVY3qSR(yYG7;GN%K{8CAK4<1mb8s_(b(poHIQOo7c6udd@t?|C2eIPu@t z(L)ThT32B!We#AX2pKcEx4m|{yvHdDRxhrKn|{+%O_oaMLeroQY#`VU3aR^LJy)ME z7PTfNhgYO*M7$mrmNH?yl$9GOmFjc=KI35%@H?Z~Xy`;b6gNIs zfZyh|MH$3kwBHTfKiP838~8i3vSO^y(kM!W-7v2+^R}dW(+le1s8!9}yO9miN8zft z{g`~ITgw)lM9iUnyezI)|f6l^!~?7WY` zM_0FH9|wDteWdP0dmqzTOf>lmg0*siEZQ0waYe?hoeKF@%Gl6fp$+X$Hrpw#+=iay zRW`I^@-%Bi&#(Sqv5g%DR>iR9Ovsp;sZ2WjXE@%tDU*$CIJ4YcJ8m8;byaV>OtlTa zrt=VfDO>|TiZ3tPn@M8!CKrv8LXM=YmOTLI42lNc|IwKOQ5ic$%)V zXmKshV}}Pd@@XR%u*vHiNZ0Z^rIg%pk+0CMdeG=XJZx(<-pX-VaL3=sbbS-AQhMxg zk`M&B8hn0;!+i_~BbBys1I^5TRB~+5+lEN|W`0;j2F`3LJKz9}4&1)zyvJ(G!1S z^^R^QOu^e5g}{QFW2~zhKQx=8IAi&tMXz@Cvq#qXv$~n1`}MWJjv;E}K*~gv)Z(Md ze?8xASL{?A(C>gr*-;w@067LQ^l?GiFY3xEYc2e^?>(M|l-v#hSlMdj04TXI3qQ1@ z_@as_{lO5YXx;Z!l2gmk$^c_!%nfB^2vQ@Wk{CH%Ud% zHvKxDoI9fh7EEPFPufYg!6C2V>OkZwzSP6!MLu<{Z1cAUCbO$P%<89vZ!H&J-}mr? z=efh}C=a2Dx8uj!p4L8UzDwVWRsX{(I50nXtXll1M?;wu2ZKKj4ar3~RML*bHiRst zPkyo__fZN~n3WkcJfRBp(ffvMf&%6>275e* zm5}r~)}v@iDBHnel@{O7x9|I9rUU6y9kmUrPD7faNQNijp}lmNJ=Y^D3KL-#xx?gd zs(0|Xa3xA`%EV;PeIk$FKuc)lv=i;#;ZoM#egBH`McF-{gSB>39Z1?vW4wwo_C8s& z4vnon7NrHMVX<`X?dnCpjnlcmI-O$QS8expM!~e8he@dooXm=9|C;Jh-gJ?C zp~E}(Mxi6Gj|gRBOvQHNesnzzXCY6zn0-7ZTeH3+pvv)-Zbj+~o%^zIfgn4nD{&=U zp?vQ*lp^L*Rh^S#JR8`!g1I3UsyK#wN|NrWEa$o<-FAuwse8&nRyj)hq}qilb|LBEXT`>Y>8zlD!c2H1sDU)hjKrAXuI&#mZMdmR2k;R*ZX11;Ho>Cb(&>s55KAzL$aA&ctCqBv%0NQDj!;U5q~sKy>?lc)twKmq@O(X_gG4S z!R)$J-cVz}G5N;>y_matYv9(k2amw5CtX_kk;gcDP~M*WK>haQUS+J(_!P)D6{EiP z@WFr@d3rh~0-o{(c&Q5<#0gMI+NVkI>v$*x-V``=&59rX8sI;_eQ5RzP8xKZqREc|eRg{vJn&`mn;V;@f1`s1*TV>%mpLq0wIh$Vb~eSiEE*wYrF zecuc2carUU?RoGk``+4f)E^@`C=Gl}k5;?KmHh}?|F?h!pE_$H?hqUe`Xle%fzct# zHV73eA!H!Dwf`@l257TQR9{Q(;F*ZH&F8r)x9)9b8VCuj@I2bD);ULA$^fpCM9YIq z>0vFxGeKs@7LlRpkPUtceLsumxoXIuwo0Og?^5=&rLBA!7@e{ka}dWql(?JBz6{@X zZa+gNbNd@^i#LQaTW*v;8OrNs54pt=8TxDU$Ybt!FTDi#xz0Oc;dqe!8Kz)Q=e1j2 zq7Wt}%l9G7)^s|;sKTN809!Vt6q_t|EE}KLF_Q`D+D@`N&s)mP<)tXUkhMG^%r|x- z3<}1asLKfPcZuQb&pI4V>l#~Qv+6t65h~4!P`c(S?bii79FmIGpkQeRNb=R>7F4k; ztR20twdD7I*0;0=HQ2+=#?{4l%mT^WuTwEt(FN^}@9rTZWbl8l=7C#C#jh9Mc4vfdE%Tx7-DP;NlkolZ9iVy(;S((LdkF6~{y`nkcZ_%6@@0W{C;n)F zqt`geX-PPbpOXCJKSdsH=zap-pC%tW@(|I7u#-?$SOUSwxALFLcPjUN=7ynGw#Bou z5rXZe$^qBN7~6cF6!1E6Gh5kllcH4Ip7e1Yft4+5SFVGhikHT%Z`ruX_EcN5{9}da z?693H)-9ZMT-e5PHY-d~GiFzm7&;{fvyGb{wJEHpM(a91uMF&LhHJEYV2@+w5rUEL z70OCp-Fu0^&ejPG5m1YMZ$#%j$=GEq30Kab$I$`A1MFcdTO;q=n20ME*-ezH6^w^-(9(@k{ZekXDD+zVqGxgA79B_S7-tt5MegAURe_( z>j4|Ouu?A1YDs~6ix&$u^si5k+nr68WJ<_`LFj-70LrstFJeE_{bJ{~0k9p`&8^$b zJ^&{dUivIGIAJGIu9Sy~=4BqoH&5uQav$Upw(1DHFZ|I) z3zO1u^RCU-cWY}NKl-^XEVBBbeZKmWFAy@XR@TE4=zKHuTb#0?U@aqJ)U}K`S9ZC6x;GJUlZ7LVyK=E{cjw zq9$TN{{c1@AaIaauwjdkSg}G#2q9Jc3oKCgUBC_`gwzEREMWtm@Ar4kec$mov60i( zYU8=%d(J)goZtJ|Oq^j0FI`FxZ^_nu-|IY9sMXZs##=I_t&SgO^wxd5Bw+rV-@lhg zA&=X{8nuyRNQ2WPfdo4jky-EnC;w#QL|f~8R*uzDYTqI@YgYJ^ud%vV$+jA&KVrKQ8MOC(PhDCSL~6C9m3m zla1hxoK?dmwoyKi%&|jgY?B}Pc)|u+)I>_fG>3;RuNZ4VX3efq1nJ9)MJX-(Z5;T9 z_wD2;+0xv;ytYwss60x;2Wz@5(VGx2s%0iAOJoQ6JvbvgD7Z2&Zdnia6(#8Klxzh=Lq+ z_JAj)2a>Y(7jE@WH?(d}=7rnlj(8RS)7TKh4^plahvNygfaJM@)KHg$FXrP&1DQf> zrpJr9`B(OHO#ssRTPiwJ)nW{XI-g@voL74?HE<)P95{HtoDPnKsl6J26@@OD%;w{* zpR5SOxc8@s{Ra+$MKD{a3oNdiw7insB#oyBXr4j)bAgbppNd}jDr-l}N3KsMBgx7d zc=NU{!qM;1Jih0FwnQTt`ZzeCAmMhc$#(ma_?V_tzxbr7dB%RYzb+AEba2c}-rzjL zO_dpKyvqfmy~E#USPp3RRRXtDi3=?s=2L0O8~*Z)wxi`!dn&hM?XR&Ny_`8QX4vA6 zz+X|A1G?V)HH<Mq+Wk0 zs8@%#u^Laocq!TI3%A(DYaJ`f#6!qmlCTSewSzy^&&5}dgS9O$S{qE;0?s?yww0CO z^B3}mzlz;p?N5}!a@cYawRgi1)A7#*+K$14I&g3RHF28SgsI34shc-ZdE{6lR)tcu zS>ovwu2T2_?9sQg30v<9XInlTo`;B1q?_@S%Svgq4M#&7!2w(UT86HL^y^K}!A;Mr z98G7XcsTURh#Ctm;zJPnQU;;zgj??>jOy{B$7saKLOZD@g`O~4x+xRrCxdP4oEEbM z>ZxWw8re_l~h`<+urzJ1p8k-_qnOt>T8`Y97i<4ZsuofjSkywibRUe%)Ajg81KBm0kLJbWH*LrPK zUi5p&4%b5k0fXUNbujSN#4eg3$ z)X=I0GsYLxknyFWy~23W!~a%JUYwlEsu^e#FM2MFN85^&pO~X`Ro}XK^6}g_@~D43 zJjCyFWe=AXHaERO;@h$MN@G67o{%o$UU`sQR6-rb{LxE!H(G3L`(APOCwU^t%*7VB<$~#nrtHm^N zNmOd_u_*yrcHS|f31KZrqEV*mhxXo@yLX|5P>-v<24L&b@d>aMo+F6B(cn|8Pd*|C zSQD|sZ@Iy-);NC%N4NM>hP$rLx>!YOQNG(hfY^NVOFHu(wJK?BR;r7>phr_fRl5_3 zhN;j??WNkFS0<7z2fc~1TzH0p+pq*-dcxS`3}c=+m+@5ou==wzq}p^?CWD;_tFO!O zC22+48ZmS1Bm{O}rY?NN_VDIRVfGex?=+RN#d&|fj^5$7SVk?--deUD$uFeN^tx4G%J5pbs+rRe+V1lTGL78Nk+NZ2ENq!gwnA=;+W z#;wr3T0}eNFM*t&S1XLgqkzEBwAnJ}BI5mU^_zp4aBKGHcx<+8bArB+6+!&H3)`wx zUVj&^;eH7!Z*p0u^2r)Hm(e0xVMItY<Y6dD)rAZtP$ZT zc;oix$io{?&CMPM(o#eb5)8G(5RAI0^2*Tm9FUhM$#$Y97iZa3Iio{wGW1oL&DA0$ zZ*erdEi~tU=_i4vSw$IhCh$PKeIr#~Czm1-dga2h%k*b()^PadCLq7ah~|li)N&pX z0L`O<{Tei#i(wFTU=}CE$8lCVL%psuP(9jx+|^kthT9s=Iuz4?OqU2UHnl*;ivmWr zcJ=AJ4@*`+3{b|?&8HXun^KVhjfd1QS6+eWQhg)57Kn4?1G@+X)R|Wn$uh?y*F^h( zwx(AKeNA(itYa{@;>HZh+g7Xv$|-B%f~2IFfY;Fs(hT*1dAuDCVPGO1g$Tf(9MNo#(pCcD2+FTJV_PiL!@yaFRmW7zS(Fl* z#iS2l{R3D(J*$Rkai1{y!!Tkv~%e8o!+CW3CAvQb8yDm&a1Hv57N%Cz=YL2 zNa6U#ffS1h6HWy9CKZKWD~t6#K-L%MblUHw5C1TZ2hi#axw*PGo0S;`zDQDdk89w{ z9>I8#)4HQ@zI$l9_2BRPQZUZfUXd=$za@f~pO)=>VL>ZzmydpL<_(88CX3kx+Gzp4 zetLI$zL<`~yLmKtoePkGYYUq>7cE)OksPIi>W+znpVfs8X$L!cD#Sy?8X;@^k$Hqb z3c=hEoOcz^eUW*%&&{E#v7~6)dlkWmt=@T2C)yWy%N)~)&^#J^E?&S(lpu#Rh#ZL6 zrZm6(B*l(Hr*;Azf0-0#R^SsmUlitCAU<&- zdW=C2yiRt4eSr&rRv0o4LlzNJ2ZFCCi@T2%i7N^A2L9vefz)N^di9Fs7i9}VsntDVTQpd1%gj!q&qhBllB2Pk#A44cFBk(VoVhQ)ii?+<)P z=#U9y1t0jRJkseNJs1N5?r^~-a>_CiVmy)sJRLUQTc^a7si0jo(`t~iUH}k{`?mgh zQ-}Mtp2IB{Qr<6gs&r#0E>}jec*k>)X`j4z(BLo~O;21dfdr-R`xnAW{zpBJde^Ar zBdOY0rxvn=f}^$wW0SDTuE@vuTCsnyFk6GUPhW-uIT?h(5c4_NB$&lEJB$I+>>pBn z&)u*R_f(|w-m~&a_P*Y>A0%3N!^nz@m?!N#z$6_DL>9*6^v@mN``qPwo{&W{V3XXAV8;K5a2cX<4?Qvyy!SyDxbt1R&(!KY{7r!ml^ zW09FE4gkx#Oedm{VMMWshHVgZ(@y}OqCy#sVQG5(f-+T~l1+?JOIPEbrPz{}g?+K> z&b8UWBt7E#?R-?4xp99X>|ydJmO)^IVMn$h1H$oaUj)Emqk61DLeg@xJv9l0jTKh| zz>xgaAyMOBAU#h<=%q76D=KC8>Wfqsc1`C^HVa~mJ;$18n<`b~lN=>^+cq_UoEvZ_ zhfRODR^w`V`jR=dh-sIt;zcx1fS@DY{WiU7Ly)9u)O2o>dYWmZ68|~~NC#nED1>exP`@3kGjIh*ac{}r}lB)BakxuZAFVxP~=w9@rb!iqa3-Ov1G!Mk(QhGW~peF$~o13T4MQ@Vjy;KSM8uVBUIHEVCHZy>wWiMj8beJM?cj z{UKPhMIN1XPEl<-9hG5|8gsei(5_5cZx9z*=RyGovmC$y3h-Hg^9W$qmH70Bk{VOkdu|C#QR3@^R%J6Ds7T8F6ckR5m@~H3 z`M@q{Mb5+l2JSFR^Yp%6oL=46>Zvo^TvyCcK0G2LTusMhuMrth95)YA?%OWN-Kr9M zo>VS&BzPzFPzv^$-hU}j=onAvNp)oufj38ke;8NgCkII*6ha1B*eBO2qCpP^mF7^H zURX`iwLz+A+u)#w#ogo4{4OXiM7KQ`^xM}6Dx{$?Ms&hx!F(kD*t-(C`-D-p$k`gR zn7Y5Yx^GES*J8%RN=S`!WB{>Y?jX)$9mSv}i*HMSi=`jW_sq!C46-WgEs_n$C0jQb z;9hR^EsP9rRn(%v+C-B~lHzYwjb|vXw-_uaCOWu--fz$=$NonF43ep5oEJ0J=4it3 zcM2F@uIO*5QKPi;49bLwV)3f-@A1q1>N5Rz^qR_x+&!`)uP}%P2XBtgDD*QWt8%h7 z=7`4f+4jo_U;}m_{66!Dhlxf2;s&P17FHM{>pnwM$QP~MhdrCab9Monbbwk=l#T>`uvw>r>WFyc1`5$dRf9Vcfqi>mM n)IQ{;1O+TX!s0Y^$s2TymvO5$zF5J^j6JhJR&>S&gYW+jgp numberFormat_ = - java.util.Collections.emptyList(); + private java.util.List numberFormat_ = new java.util.ArrayList(); public java.util.List getNumberFormatList() { return numberFormat_; } @@ -514,31 +414,17 @@ public final class Phonemetadata { public NumberFormat getNumberFormat(int index) { return numberFormat_.get(index); } - public PhoneMetadata setNumberFormat(int index, NumberFormat value) { - if (value == null) { - throw new NullPointerException(); - } - numberFormat_.set(index, value); - return this; - } public PhoneMetadata addNumberFormat(NumberFormat value) { if (value == null) { throw new NullPointerException(); } - if (numberFormat_.isEmpty()) { - numberFormat_ = new java.util.ArrayList(); - } numberFormat_.add(value); return this; } - public PhoneMetadata clearNumberFormat() { - numberFormat_ = java.util.Collections.emptyList(); - return this; - } // repeated NumberFormat intl_number_format = 20; private java.util.List intlNumberFormat_ = - java.util.Collections.emptyList(); + new java.util.ArrayList(); public java.util.List getIntlNumberFormatList() { return intlNumberFormat_; } @@ -546,108 +432,225 @@ public final class Phonemetadata { public NumberFormat getIntlNumberFormat(int index) { return intlNumberFormat_.get(index); } - public PhoneMetadata setIntlNumberFormat(int index, NumberFormat value) { - if (value == null) { - throw new NullPointerException(); - } - intlNumberFormat_.set(index, value); - return this; - } + public PhoneMetadata addIntlNumberFormat(NumberFormat value) { if (value == null) { throw new NullPointerException(); } - if (intlNumberFormat_.isEmpty()) { - intlNumberFormat_ = new java.util.ArrayList(); - } intlNumberFormat_.add(value); return this; } - public PhoneMetadata clearIntlNumberFormat() { - intlNumberFormat_ = java.util.Collections.emptyList(); - return this; - } - // optional string national_prefix_formatting_rule = 21; - private boolean hasNationalPrefixFormattingRule; - private String nationalPrefixFormattingRule_ = ""; - public boolean hasNationalPrefixFormattingRule() { return hasNationalPrefixFormattingRule; } - public String getNationalPrefixFormattingRule() { return nationalPrefixFormattingRule_; } - public PhoneMetadata setNationalPrefixFormattingRule(String value) { - hasNationalPrefixFormattingRule = true; - nationalPrefixFormattingRule_ = value; - return this; - } - public PhoneMetadata clearNationalPrefixFormattingRule() { - hasNationalPrefixFormattingRule = false; - nationalPrefixFormattingRule_ = ""; - return this; + public void writeExternal(ObjectOutput objectOutput) throws IOException { + objectOutput.writeBoolean(hasGeneralDesc); + if (hasGeneralDesc) { + generalDesc_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasFixedLine); + if (hasFixedLine) { + fixedLine_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasMobile); + if (hasMobile) { + mobile_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasTollFree); + if (hasTollFree) { + tollFree_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasPremiumRate); + if (hasPremiumRate) { + premiumRate_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasSharedCost); + if (hasSharedCost) { + sharedCost_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasPersonalNumber); + if (hasPersonalNumber) { + personalNumber_.writeExternal(objectOutput); + } + objectOutput.writeBoolean(hasVoip); + if (hasVoip) { + voip_.writeExternal(objectOutput); + } + + objectOutput.writeUTF(id_); + objectOutput.writeInt(countryCode_); + objectOutput.writeUTF(internationalPrefix_); + + objectOutput.writeBoolean(hasPreferredInternationalPrefix); + if (hasPreferredInternationalPrefix) { + objectOutput.writeUTF(preferredInternationalPrefix_); + } + + objectOutput.writeBoolean(hasNationalPrefix); + if (hasNationalPrefix) { + objectOutput.writeUTF(nationalPrefix_); + } + + objectOutput.writeBoolean(hasPreferredExtnPrefix); + if (hasPreferredExtnPrefix) { + objectOutput.writeUTF(preferredExtnPrefix_); + } + + objectOutput.writeBoolean(hasNationalPrefixForParsing); + if (hasNationalPrefixForParsing) { + objectOutput.writeUTF(nationalPrefixForParsing_); + } + + objectOutput.writeBoolean(hasNationalPrefixTransformRule); + if (hasNationalPrefixTransformRule) { + objectOutput.writeUTF(nationalPrefixTransformRule_); + } + + objectOutput.writeBoolean(sameMobileAndFixedLinePattern_); + + int numberFormatSize = getNumberFormatCount(); + objectOutput.writeInt(numberFormatSize); + for (int i = 0; i < numberFormatSize; i++) { + numberFormat_.get(i).writeExternal(objectOutput); + } + + int intlNumberFormatSize = getIntlNumberFormatCount(); + objectOutput.writeInt(intlNumberFormatSize); + for (int i = 0; i < intlNumberFormatSize; i++) { + intlNumberFormat_.get(i).writeExternal(objectOutput); + } } - public final PhoneMetadata clear() { - clearGeneralDesc(); - clearFixedLine(); - clearMobile(); - clearTollFree(); - clearPremiumRate(); - clearSharedCost(); - clearPersonalNumber(); - clearVoip(); - clearId(); - clearCountryCode(); - clearInternationalPrefix(); - clearPreferredInternationalPrefix(); - clearNationalPrefix(); - clearPreferredExtnPrefix(); - clearNationalPrefixForParsing(); - clearNationalPrefixTransformRule(); - clearSameMobileAndFixedLinePattern(); - clearNumberFormat(); - clearIntlNumberFormat(); - clearNationalPrefixFormattingRule(); - return this; + public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException { + boolean hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setGeneralDesc(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setFixedLine(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setMobile(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setTollFree(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setPremiumRate(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setSharedCost(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setPersonalNumber(desc); + } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setVoip(desc); + } + + setId(objectInput.readUTF()); + setCountryCode(objectInput.readInt()); + setInternationalPrefix(objectInput.readUTF()); + + boolean hasString = objectInput.readBoolean(); + if (hasString) { + setPreferredInternationalPrefix(objectInput.readUTF()); + } + + hasString = objectInput.readBoolean(); + if (hasString) { + setNationalPrefix(objectInput.readUTF()); + } + + hasString = objectInput.readBoolean(); + if (hasString) { + setPreferredExtnPrefix(objectInput.readUTF()); + } + + hasString = objectInput.readBoolean(); + if (hasString) { + setNationalPrefixForParsing(objectInput.readUTF()); + } + + hasString = objectInput.readBoolean(); + if (hasString) { + setNationalPrefixTransformRule(objectInput.readUTF()); + } + + setSameMobileAndFixedLinePattern(objectInput.readBoolean()); + + int nationalFormatSize = objectInput.readInt(); + for (int i = 0; i < nationalFormatSize; i++) { + NumberFormat numFormat = new NumberFormat(); + numFormat.readExternal(objectInput); + numberFormat_.add(numFormat); + } + + int intlNumberFormatSize = objectInput.readInt(); + for (int i = 0; i < intlNumberFormatSize; i++) { + NumberFormat numFormat = new NumberFormat(); + numFormat.readExternal(objectInput); + intlNumberFormat_.add(numFormat); + } } } - public static final class PhoneMetadataCollection implements Serializable { + public static final class PhoneMetadataCollection implements Externalizable { private static final long serialVersionUID = 1; public PhoneMetadataCollection() {} // repeated PhoneMetadata metadata = 1; - private java.util.List metadata_ = - java.util.Collections.emptyList(); + private java.util.List metadata_ = new java.util.ArrayList(); + public java.util.List getMetadataList() { return metadata_; } public int getMetadataCount() { return metadata_.size(); } - public PhoneMetadata getMetadata(int index) { - return metadata_.get(index); - } - public PhoneMetadataCollection setMetadata(int index, PhoneMetadata value) { - if (value == null) { - throw new NullPointerException(); - } - metadata_.set(index, value); - return this; - } + public PhoneMetadataCollection addMetadata(PhoneMetadata value) { if (value == null) { throw new NullPointerException(); } - if (metadata_.isEmpty()) { - metadata_ = new java.util.ArrayList(); - } metadata_.add(value); return this; } - public PhoneMetadataCollection clearMetadata() { - metadata_ = java.util.Collections.emptyList(); - return this; + + public void writeExternal(ObjectOutput objectOutput) throws IOException { + int size = getMetadataCount(); + objectOutput.writeInt(size); + for (int i = 0; i < size; i++) { + metadata_.get(i).writeExternal(objectOutput); + } } - - public final PhoneMetadataCollection clear() { - clearMetadata(); - return this; + + public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException { + int size = objectInput.readInt(); + for (int i = 0; i < size; i++) { + PhoneMetadata metadata = new PhoneMetadata(); + metadata.readExternal(objectInput); + metadata_.add(metadata); + } } } } diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting b/java/test/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting index 62a2f136bedd2d8a82fc6ec4a8794c88ab075b17..5418da9c9ecce1bb59f49f575bc78b1cf0b52543 100644 GIT binary patch literal 6201 zcmcgw*^V1U6s`7*GiyR1Ocum4h(WO>8&&n*AQTb>MTkWxArhjo!~?wYgajgGzKCDr zA2{b$Rd;pUlQ<~CO2+N3dvD$4+@YwmQ+by@6Jw5+_*fDQ~crZ|#! zf%%};_+5kZile2(Yvl}YtosnX|)xL1C)6^ycihWgS%8*#YWh zZ6`xBzr^s1^!y?_zsMN}gE-tKY487$)jjp5)n2a`8%%V)1~e8`O~mF4lLKCdcq|sC z5YV0=W^R?JoMNew_g8W}4qqLaS`)q{2xIt~Mz`9eCAS!@?E>GYK;)P(72 zX{*ZC_1rePOH6vMVof0NPoM=JGyK;npSdbqslXF(XR9_t3|6+mrp0P* zbMT~eJV=Z!b8I!Y1*DW2w$&*ML5Nhh-yQCk6_w43#^(4giYgFB;kYqWpBfM2bqIqt z-|i5p2T$lF6a}K!e^6}b+&&r`t`5Z&9;5pr45ox5Jz2vYEj%U&O4l}Pbq4pLCbks{ zF<0qW{MK+_vzpWFY(aEVq{zWz1`uX>Q9|MeW>#ROS=$O<_1c!GP{b!6GkjNT)Q%%O z7#(W!p+on`TQ}jYS!=Swq1&>?Z(-iSeGfl}&rDpWJ-V-`>#+}E*IZ4d5+~|*3UAOE zfMID{qDp)binDNr(y?eF&XYFFSK6}fHC>q$0kFWwD_y{pZm+4VcCeYvSWo1OlN4*b9DznkcKi$M*LE2qkTh3%8n=Q?LAw(*HP!d zAyZGy*pGrYt=qg>bqp?k*O1k2tU~jNLg>b-BRbB{Tcf;WzSh9D3%bw{4>xL#Ij$jD z(m4ic(d=1xnqDlEY&? zTZ|lb%Sk69A5J2k2t%+OFdlA7!Iz*TPoFqKTS8C+v)I@G%p_1NXmtDpf`hNxwOL zPK3fp_@NM^P^OF9;WxB*OL(te{yN|+3pieZO+lbLi&0qtu=Onn4uf~u2#d7};+ z9GFb{tKZ{os^f+GugG-N6vwyZNIS`br)Wgbo&rX0GMt&18de4;1OMl!sA+3hq-}=L z2F<#}WP~CM7tX_s-^q=1h@A69H;ehR2+j#O$5Cd=H{1|!5EG07%L0W68=z}2_WXs& zV5S0j*zY9Rf&G|NFg8)|rV?e&cTQcRlp-L?N4=%v$OByiMmQS z1T|o5VB9ov#5i}ADh1xL{dSe)JTF4K)AFWVcU>Uu&O7g=T=z;H$MdwiZ`h36aQqqi zt>@dcZ^*a1+t_kXC8_{o)lDv4mY` z6^;g!{a9+KPNgqaYd6|pl(!5l2cm*Mc$${y63^~D^{iOq@EKAY?>PxjDk6P|$2trH z$Nr=bIisoT*qt8B&6TZ9J#O}B`#%7spKY0X_tfR(UGR0B<}d;|)U`95Iiv^-XWj)Y z^j*;5l8vR~iAS*z?(tl;&oba^GPH#OJY7h+tKp3PhUAjh?;!>__ZunkY%f)tGN8Ch zptA=ed}U;Od%5lmF(ll literal 10428 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 EznQkcKL7v#