summaryrefslogtreecommitdiff
authorTing Li <ting.li@amlogic.com>2016-01-21 06:06:03 (GMT)
committer Ting Li <ting.li@amlogic.com>2016-01-26 12:16:39 (GMT)
commit4802906ca4a5c2fc472038856d0f12da759faab6 (patch)
tree116a995160883b42be9d9eb8e02f370621a2654f
parentfed0bf6faab2ca608d317b1818cb7fce4e1f628f (diff)
downloadOTAUpgrade2-4802906ca4a5c2fc472038856d0f12da759faab6.zip
OTAUpgrade2-4802906ca4a5c2fc472038856d0f12da759faab6.tar.gz
OTAUpgrade2-4802906ca4a5c2fc472038856d0f12da759faab6.tar.bz2
pd#118388 fix bug of backup&restore file copys
Change-Id: Idee80f9d34fc2637a1c825e2a15d67851db7b972
Diffstat
-rw-r--r--[-rwxr-xr-x]libs/libotaupdate.jar257
-rw-r--r--[-rwxr-xr-x]res/values-zh-rCN/strings.xml8
-rw-r--r--[-rwxr-xr-x]res/values/strings.xml6
-rw-r--r--[-rwxr-xr-x]src/com/droidlogic/otaupgrade/BackupActivity.java48
-rw-r--r--src/com/droidlogic/otaupgrade/LoaderReceiver.java4
-rw-r--r--src/com/droidlogic/otaupgrade/MainActivity.java11
-rw-r--r--src/com/droidlogic/otaupgrade/PrefUtils.java34
7 files changed, 212 insertions, 156 deletions
diff --git a/libs/libotaupdate.jar b/libs/libotaupdate.jar
index 0e29656..0aeb237 100755..100644
--- a/libs/libotaupdate.jar
+++ b/libs/libotaupdate.jar
@@ -1,81 +1,56 @@
-PK
+PK
P\ = nK-pǭ4>LuC`n$2}WUT 5N Ha)mw8k
-6
+6
 RVClE+JQ #r>Y+JZ9C&I̕KWŻi6LUr˹kFT-KBd`-.Mmv,ᨠZN騝:
jfߔH
/q0&2 ۧ2F0t5Ue"gTfE15!{ʠJ2u#oqq63A8,V%Cc4k}kaCt_( R1(.J-lXva&=3e\
FkarF]5\gg'}),&<[3Ǝl-i̊~$83UXF<ɘqЋLcQƤ8`:ܕ{ d6hTKe+^cG*beDv#nS{*2V JE by$㱰[%^Qz!SҚ'\Wm_۲^A*{w?UV ^;ONnh?Vr.cVۚHϠ XpWB&Dyt=P>(!Eyq>d}(剕h:bI%2FO&0(O KOi_k{wCL;\ZMHp"`-nqƛX.4G"_bˤpʁFunHM{>uCK_aW1s!uu.l1RgI9ybTbؗp֫Z<F=V,Ǡ}
+{SXKQHZc^c]mBۃn7Pa P~1<bvVm,uuoOu+!y!v+v% q0U3؆鐏xMїg8h=HyO;
MW\-͉p=3G>_}P<`ƛ 'Cz_pM_p/xm_p ~s /PKF
-
-N.%>\ 0դTp@^5 JBI2
-J$-U,˭l'I*WLG)pVCh;5>2 `L"2K0ԩ /֥*m$ӆˈYɤ +rSJU4a.dr~9H,K+$¸uDxjC3kk:keXOXQj61 h%-QKUp;%҇d\&sfYOvFúJWj@n
-㢾&j8e>hcNKVUE,V'}mlK"٦ TL`TfBfEJӐkj.%)O%}`:6U'*`rZ,u5}ttVщdbĬKb2XŒE
-Vq8 ܠFiw4
-n&N-̄dCcJ%iRfCLܘLj)+1DW9BFw{p/3 iZֲS|
--ѡF^av!)5[[|Ño22-G|Ȧ"]cV,=Wvk)0˻P[LkɒW2'T<)"R4Tzg#"Z*GBmV
-J%p-U8 <yR
-^f2JXވ͐28=c{S7|>1`5jVC- “=-Ë#  1i9SO1`[(au}?Vf_`ќВZ*:[Kp]rZKښ
-)xA~e_Uc-AfGyy87|x]Wq޶>ĚVr$,q~YOhy-h
- h]iLUcSGHua{٪DnV-'v~gj+!'_xO& "XpwzyN}BE>lU:/{xF֢0dmLnXWc=3r19|f ‡_W]˯=YY|7,ۆ2Eeb&{{G19:0:حbNCtQ|?G^QÂ.88a&LEݨގKZmnBacX *9ВQ2Oo 2pqPF8j+dTfnCcc/gc3K+mBR?s|DNLBuc,ز㚭^~
-،sLL3O[2ɢWND]gW".m
-z+_Vc42 0錽,Q֣sg#'zrJ4đٸޝ#g4sйrdƻI$ı]}6NNNu"%nܵV؁+i]x<xawuA맃.z}+WӅH^= sޙz'ӫh7kphKx,*D1 :շkQ\åx.†L6l nڎU~wD7vws ^+[9l<~wì
-HGx r
-r |)/
-t㕗 ͢P?qRpaU廲*(oJ*_..CubS܅wNQWXfnG^OwxCc
-Q*j<
-1 ɱAD`pY"\-*jT#~[1f@eh#b(Ӫq >"fӸ| bn&u^TnC?}#>3~l
-[bC;*гI똟n^,>SD6JU6IRUHNr+ӫTK_%U(JŨ*/%jK"~M̨<lCxLQ_E&~jbZʣA_<hc⁝Md᡼,{W},9z
-.iathALK>:Fj?<E]־3Lr(G8O7cVSXOf$p9r&E !Yt˦3> @xw
-[!w΋DCuzIbZM;E?ɩ"JZ_d"17:h"t< ִ/i>8ԅI_ҿ`Mu~rSijhfO "ిI_#Gr
-Iy@ZUg#xÓa4|'P>
-°?^!"_̗|_)2 ƁR>18Wm0IY*k:xE4Gi6Q-g > *t Pv7F
-ĕWaJ:.M~Cߥ}h/MƹeFBA'&xA/ |A?
-DóE:p{HUawE0VU,h1GMQ!Wz&`Tˡ1`d2IEpԠ?jɤa]?H)ϐ
-bğP]zDP 2HIio,^ Ffa,)e(`05o*B:sH8PR
-3L+Eio;U Vek
-09qDTX1Oga کUCyD2kHH… ka&fYsja&>]C$F>4W!Q,As0=So5Tu#G >Ыʘ~ɩ&PC&N5: A_2<T Y8E@H0T3Q![aKd8 rб{Hcz>R}XX8ө ]"ujAq,8g'9Tu*;'jBAc
- oS TyJDž{<NȺs #MP2\9' B
--j6Q(/J\b:Q2&] 9
-xȉWd:MIo8]K^uNb0:NSH m!.MFO
- $X&n.pa/+/WTTaٔ0(.P)x֙<z3U\P)Z Y&u5j֦|iWj:+d`ox\Ai$Y9^@x?Bo E>X/EdTəxwKx X(6Cm$E1Py MpV$4?5Fa rc>1\Sgo}]%YnKޣ:E|pʖ#F"d-8< gId g@JV=i@my$$'ctQS6
-ah)H=aǵ^w<u0]-^y—f.*s
-=K>gN_ "@m||~y
-Q%D_p778Fo:5Ko_I[|}};}y>cHK~^þ_a1}}c }l;U}DDMtIoYKz-"{dz_-þSVcz;Z8 yO#@RTޥFh!~ƭ3@0?9H&;GcgwnrASD<豈&Ϧd8脆
-wcS6_>?u`*MkZvt&QHm HԷV'9Td-ֈ1z5SF.-Q՚,XNriRUTfuu+NH(OvG)5ZMM(KyϨ .2}d ȷgzRKкhL|-NU,וTnB5/ݙ7іyh[!d\eJ'qhRZ.iR{Ws=5Hv$_k ܮ{p..ޡ|Lw~=s]rvP0 A
-ì_Gn"W  v՛PgvNBv%O uf {9ʥ7cSMPDޜDP6$F;j
-M)>ޠ@rm'`9\u.۫j@7m/kԵȱ+mϩ6{ԑ1ۃ,/D i*u u3fy@F۞&}*U V6e^Upv TF,Ph$wc^=ER؏ߣWPQ 2 _J\+:P":Fp ُ0%?'&fV6SrK:?'Ɠ wl9-|%MA ?I!ww`to՝okoHYܓI1 V$Rt72)lޔ13|JҺH9<hS&IEة|8IʪLiVxE|9NDI=YN@8(߉wwgULA#[UN$E`
-މdH2U_n&PH i*JDQf,?
-1(2D㝱5\pl927?p܋L<\Æ넍a*PHX
-?' -P}Bo[wu($n,\#Z'Sj<k-kGw[Y:\;eh6\*:{0Tcw?S:孺u!>:4;ia[FQ
-k PK'P
-
-{>qиDv~7Ls*6ssg 1LN9˶S\u}{VlWi{[#ZP|l^)^o
-g7,ob[ЪX##զ*2E tDС!N*)iнhUR._Ccr{ 0ֹF4Wt$%^~F?0):p!MSxA6쪾e]jnbH lum.
-qֲ^QP#:F1+/N%X6ϠdĪ<14yԂXH5μͭ|;
-JA6\gV>(l8Iv];UO-io²R<+GAS~x\-EhEEf?GԼ~@ XCz! t{Ϝ@;h4M(!}ǸrE.Qw_!^Z][vw;tO>BO_
-FЇs Fue!0i<"C2`J7CJ#1~LX%gUfHE]-i+g&ޠؿ5#Y3 q=oek afYbN!
-:SPK'=S
-XjmE+Ԫq%ĊjԵjֶR-ޗCG޹眙o̙
-&,d|Bɥ%'.)>V&+Bz*$.EqeQW
-G⁅;Ч(m*Fq{E\gFU>,2C3Btxx Y ^eEh6IŰSA{!ǟZXaxx3<.AW/3nE V
-#a K%vzi
-cbBG0&˯l'N|;  MA|Lũ5DWt`B0R&8 =0OŹ#Xc
-g*ܝa8Z` \
-VXр̓F|Q ֆ 3f"2:3.&hb<xrF;"΋I)&D̨h$*>.ykL@ZٮnGqّpi"f(
-9 HJFlW0+Cq2;`G0-/NEPd-lam|ϻM
-y];%(,ogkYڬN^^ YxZ&E|ģ͛sow['cKy:8hǰBFˮ%i8!.O*:NWagr:%~;szgdǜbUgM_cnMgFby/Hf7]sRs+C1$ RtoYV4)hcٓ93˃6)ǜ勢宐l1JqآIe)iK͛&^#fg!g&ޒ
-TMQydR)#5B'TP1nђ`$l o,KM4%jj"Ѹ]HGăTH^䗔_)
-&NA29kYE8޴cy';7if_23uFȞr!V?G9ws
-UW[Psp: )؏as:sH~7w9w ;h`kIFQ (Bc
-glэ&P91dajNQv*1.rM/PiIqə0 13٨_&tX븚eo&UZҢZ~V;9wP9[;5M;_dݡaq=B뱴 2P-{+-k^zq^l{>zxx5ՓjZy7"^=߈Hm 3@v$.ߏJetdm%xPӁj 9Rl<VH5IKU}oLjK ͠}إvp. [܅_ su $3MgJaIjS${ }xB fiOqPPD3RrŎhݵrdJ2$qi`/欔iU`6|ʦc".n%b.%_P0_ 6f,mwy',>3 _%o*y"a~@P<Xp< ՙXBP@HMR5i|`_Bw 仁|[ɷ|ss/ 7\}Vi.r9v<Z_\Zh>Favʰ^F-Mjl֮-ڍUی-6l6Z*A<J9@y!O96:6]Y[U- lՇa>cq>)XZt/zrWa87g;qj88OY_C>ҿ݆ZÃ{ '>Toc4!c$6b13JqN˔,d1S%McT#ꐻF&s/܈ӾDgvc=`P]1e΁QV#)zcKeUHEC{~V%m% mx骤Ŀ؂(D7l-YϷ4 ;"r <ߧْ=fHWz՛do5J*MJJIk<.;r&-'9IM2_I$$|\О8yIᯎL_Rfe~p#27e4vj|x$>ɍ{p︐fr7S矩q. K_7IhFeވMiL5i y>% EV-Jo:35>jhP*@){.g}ʡf
+
+Uߔ o1PeHUC:8f@8CUͶS6ۂ!W,nr_RWe1ĹG맫"t:kk"|y@狥꟮B_US8$ QnY"ZywCi[xC.h80=Hk"TոŭojJ#mس.]J2YjA+#7P\GMugJ}Ui^󞺶5k^۷D|1j]w]Wl>ydO*IfwEh%;F
+
+~PKӤ"
++,mae,ژA0m1j=HVᕥP"vಈ>vDmѻb@-
+^Jh!< ImF(N^9oMr!5>p\2oE1' XH\h3A8z+# ? 5<MDӠ/f9V._4fWIپ7!nf[AL3GNLC@:I狗hu3)qIah %w]3a9PcW("e&]BӜP̏MBvD}e᠟}eV*$KcҨ/q3~
+V6 k:KG t=ÑNWuV W}p[b1ք'']G7ȭmMNӇϏD<jr#t+Sy:Ѡ/U,DzOЧ2?qc~Us] !Q&NNZtcW
+&K<mmi60I'9t,Ll3 n|^0iа'AwSp@㕥GLꓥpHp'01Y
+LYIOPƤ=,@[6_D3YY~QR">&[7zI ^X$bҫGUS~LzSu5j2I@舅- Fy{Ǥw8$259 ='7i|Һ2qMH;
+wYB퇆9f
+bvXk Jo xsrǏ?:EѶ( VEZ޼hNm8QOHX/e<D
+6`Bcd:l_Yk[<lt<·]6ȵȖG0{RFf:Qf;
+Rqc">yΈ:/*HX:Cgճs$jImC{8x1BOhbᾭ4P:QP#pDuI"Hd8O4xY2k.7z}Ln&`a#Z̑HxT6y\Ɋ+IfԡW!?QA}p:wmB5$ϐipZ.;QC1 -2ŀH#l+ݟI] KmDp
+6B)Q1/({ĉ:!+.3rMH/E|DOLJ<3CXZ'_ jzJ/ = 1[&o[@W*PgrL >:ޔقtɷK,
+[j5 b+h! (vJfpWB߄+8o7})#mb. D C6Z 8=؛&|u[Ow1 w+]aVT]A8K"Z,xc&?AGzo%NI-O3԰ &AP^H H&'.koHH.fx+~s+H}SUdEI.U|AG
+MJqmS9UUe/
+aEDŪPa{!]2vQo8DXCL5Zj<?ъ(*), kq<j,
+a)W# u8d
+Tx$$Bk0Gf3Jw&fBK$5b8YzDdq,< "+k],D;SUPf4ߝJQjRC P
+A_6ly%kBşc;)oyjEߖqXyY(.4b9ZbG|LK?BVkޠLZ
+ڵ뵇Z՛A~8zl:gObɡ\l)4M\Pvک
+IKA4) uǻ$u) %+TBi_0'JQD񬅏jƽt` 51NIW(*huB %Z< SEת\
+:9j6(âp,7rv+DLS}_ 7EblS@0n㒣5fBR{6 gUpĩSKN}3ZS].J.Y9GD]: $6+˖p,;W'*:hJ| 8]lL|6lx>Iq( hWr[_WqےW!)^(eGR#úɔ[px@hN?g@%EFTP[?j$g$'cxϫXSI@~_EPqQs3<]Q؈M=`tIԋ=zPWLQI1;Ҍ)epPi4PSRzSLS=*[j=}p0Փzi~5Sg^SFMkSs@_[(!')Sђ{4xd`;]Ht ?<4Q AYDR 9';!E٘ ȁr1vIyK`^2/O1 #i~@3:PǤb~Xʼr29)%8<Ƨ;)2d= T
+)FQqNl*Ni=z!ZO􍐮 - A&IvV_jy|j8}4}tjŸM;h-~ACAsEx)Dg%9@$Lj:j QK[K&x" 9pSv
+l,B8fɦ c:։x
+ mhFpQfW
+U.@Gs!%NȚY/Z7j8s|ٿ9Xz2)Qte/][C-}ttsݔ>eum=uBJkz0mJ[Po/{ᴥG{'{WiK{鴥gziKҖ^Z]^zm'`cn+vm&N-W;KSqe*]Y~\bm{_M11%N?ɏO֗ҿSwn>nbO9YI"n1]kd`KWӷYveD$?:I~7<-I԰ufJVY\y=8,pAM=4z$sѻvY(fw1ωܦrм\M˒Eb>A(wpM7*i,=JM]587 b+ŦsLmU̓G uǛpH<CX< 1g|]J/e:oM?<Gҕ<~etOX<bm1]'ҵc/]ϧэ|ė| ·ӭtN;sOiʣ;Ewr,K͡
+G{FOG u=m&ڮnVizzQPR/uzDCq>R@"B|bx$IA|
+J6>C܂,y|{B6;_Σ}}zע)q).
+ c/\*b ju[0SaPՌOZV5&]1<`:Zh 墝^i/ b>hS,T@SH=5b5TO~n%-y^YYٶYF_|?5w+'7uVvIp90^>?.N˝UhnrJ8[b2\NWn\=T}[0.Twu_܎̎䨮ݔ+xV**F -/h6韩\uAQP<1W~_쇋L+O_%\ y+?yCzSOIjZu]MZ/y1)VB5n:Bz7g zt7a^zX}0~BoЫ>3<u΢?IA4x[|8'\<z$C|9JFϦ\/oĹO /^
+}I?ׁ>'xF_*}
+ku}$PM jߪ>U'gjN^+oΥ:Q#
+ #ރj.?Ϳh~#;=Y-n xK|?pkC%pK~9)~rB~&ϡĨ耆E>dNNI$F,]-m4h )W͈|W`p_㯨`/G&p*'%?@ П!)
+7o)|W.amftnv +)إLԽ]XRv]2KPL
+ JqU$RM. 5O|N}; :Zk</гSRzMJb7ZVveJC[S4)c";[ lTN!и ==HP.g
+h]b9pRL};cQ9;gp12Nu`\Rfsr7M:*WAva\]Yquˑ\Y[HlnX2@8Eh5y4CɅdyFH~,qJ'PX8:ѐIzMF5SqӨGQHe- +e&JY(;ٍ2d6gs9gI<+yv*^RF^v4Au\&h s0̵|
++zχyʉePxcn/xjy:WFU=Qgq6nSS۹]=k ܡ^ wt>Sp@}Wx~AC\ 3l.<娭cx]*hkM5|4<[>mgy.cϵ]˛mmw`|'gχ^`{/=ٞmaϵm,Ҟe13|}"_k٧,o/+f|7.ђޢřݾFTLޜھVרkfJQd8;9g#l*7`D3JZu 4^˾Hl9jriEh%F۳&u3rۓ4fۥnS-rm]~B6Rmnoԝ\ k/h:Fe[¹E4y{@e(4r{2zF%k?eϠR-~( JPl(ÀY}Cо6T |!ef?7*D3 KB)9%Mj/ɤ4K{9ES?t4+S_Ѥ1(hiA>Evȶ}uxbk7v twݙ> L)GY| |KкR^9đw1q()r7ʣOe\K=M5@pq؎r*84{xKo^;f9ݞz:]pćQ&L'
uގHsr-FVq^opyf
&Z&:R
RHu&3^}*m]wOUü4}`Ѓ2bPK%r>K~Kj+<>2. s7[oԾ4ɰ.csOi I/a'g2.c w\3.Qlo3<=$Zo.4KAN^f\L3\ߖ32[oWfʮhaY,e {~]Ny/dB>SP$`L8i
;R!Lm<eNA7U*梐WE> ť
Fh]x
-yojm,W_0\p>v&* ;0 e@qbE[lӖPB)HhD%qL"ژE)VfXiYY @0Bo8S$"K(ϘK%;e<$ X3PK' Z
-Įb{ZPNf X ?Sa4. 7ND;sp -!7]r ojܩy@w_GO'jIiPPKơ
+yojm,W_0\p>v&* ;0 e@qbE[lӖPB)HhD%qL"ژE)VfXiYY @0Bo8S$"K(ϘK%;e<$ X3PK' Z
+Įb{ZPNf X ?Sa4. 7ND;sp -!7]r ojܩy@w_GO'jIiPPKơ
,8d4FHcf8%w{z:{[}=-mWt_͊'SF<oDӦ!>ۃ`hw?$¼}pP] Z݃-w@B=6_N{r,5mvI5{Cl`H2*kFƎH΅X>hYG ,ju WnRH|dK<Y7A|Bk0y[_]&Kax<3Z,ԚӶ`WWKw;c|<B?PŠ 5R<՘bfL}V:6X6#DJd_ʢ4A怍jI5]qf(p,MZ16,Ϲwx$SQ[Om֐z4j Peb%}C˰1Sx# ՒWYP[wKƷМnlÒG#YXMG3kGF˪ٞ뗼бnC@b\rhZisՙMM-B˥]:V
"q;;`&BƁ)ahhyfqY .WrXErtO%h5hX]s$fWcrsHrN6 VҮ$~R#Ijy!22S'̑H2GTûcL1A31u]0e})#.c4㻊,mY!/F$qگPl F82IsmWKw݃wcaG cd/DY$
mg[4o +FotF'aI2ǥ}"u>M :VQzQf- {k7L3%o-/fRQ[Bp%2|VN `.瞔b3^?iR#u0UW)nŇ4|6BÊtT`(lD^0Hq\bTlF<QF:4D$uSj`D2y;u܅Rɂ՛9/{ .l3ތqXTWR~Ռ+͡;lOx,+f06~3F29d"(*0O$BҍGGfBf:>2H}fPD3̳sy9#ywqڌ_T$fo:]5
@@ -86,10 +61,30 @@ mg[4o +FotF'aI2ǥ}"u>M :VQzQf- {k
|ɜpLa>xꭜc]KwץhK9;c_“'+ISkuM~v}:[UCV01
xxUeUW&P(J35L€x&ORyԤZg,\$6'ȹ{g˯oulu9܏EoAB?{J?h.97{J/r3f}O* ծjΛ?**a6k<YM$^_:&jJjI6TZt{7x}沚I .
Ǎ>i5qT5H2vN0|(~="FIW_L_ݪ&=O1cRZ-S֮m6
-ؠwk̄W _3G:o->6W8wrA)ƗE xZ(39Q|3\J*5QPpHPptvQ%]^ {(u6b ^Q#.&Jw03<RX*&ke b+8z~R|刱\pBXt4ZaVixVB@ldLׄp-teˢPs&w1תȈ:ȂW%b/_ϔ\9Fk٬6#6quf%oY1Y?-V`!u<_%(kP"֢L\zNfsCy&'^ 5$(Wpf:Y- [.ً)v+< ɚ9;G<??b]}fX/gz%+C[lT-r<vfTty%+0HޙMruXŖ u.H4߭luMb!n:rPKH
-ĩ5j^Rj4 xp֩4[FUč1Lݶ+Xb(djì Jr}z;j+H"S8 } j]aU/z\0њzw[xmm Y5v{XcԌd:kF.;w ^{&<r$SZ0SLXtgCQ?0--Y]/67ʦ^|nTfeRo,[lIýlSbj׼J}VlshndY<JYNfޞ,fvR^:]/X%󠂦'l-ICyR0CK!"8q]qq:~isq{9\UiN 7%=ΐ4lAldf
-OtEYJ?̀a>40ĩKGEzw.*P=vS*<!c!ܪICU}0V^'9XGA+Ӷ Ȳa=+'yFC@勬yO5·w<y%[n3Ī%_y!Uulװpob +_(N#)4"H'|lB4<;+NRn蛤 #͇`P3dejw`#jwEUO!V(%s,vH tq*Hb0|xU^3{K; (~ ;3%J.`1Ԕbwc{6` *ݗ#$oRcU=EH+C#t.N=|ϥo~f4} { fc6NMS˲jN)3CeR2E eZ
-zeJ%"Q<E$-Bh1<#$5iXzF#>VxM2Bs,*,7dvj_PK
+ؠwk̄W _3G:o->6W8wrA)ƗE xZ(39Q|3\J*5QPpHPptvQ%]^ {(u6b ^Q#.&Jw03<RX*&ke b+8z~R|刱\pBXt4ZaVixVB@ldLׄp-teˢPs&w1תȈ:ȂW%b/_ϔ\9Fk٬6#6quf%oY1Y?-V`!u<_%(kP"֢L\zNfsCy&'^ 5$(Wpf:Y- [.ً)v+< ɚ9;G<??b]}fX/gz%+C[lT-r<vfTty%+0HޙMruXŖ u.H4߭luMb!n:rPKH
+< -P}Bo[wu($^,\#Z'Sj<0kmkw[Y*\;E,i6\2:{0Tcw?gt[uCjCԇM7RoF]+`PK>[
+ӊvj4A͘<-C
+?I~IA
+M2zaOHRRHc(2ս$R*3"]5i+g85-Yuq=of8(Ӭ5`sXf62wq/s?PK;
+ .h
+CkC ^_C T|Q;%2*_d ‰)HDIrJV_[ E
+=&/b.jEEy²U+f-[6zRIqTUSOEC2lVY2Y%(; ږŷEUQ`]8R0o,aNZ³_,x`.?HB4ibi5"6)HIp`2⾑3;&뭨 ٯƤ9
+I3q&O~LeW?h[t%"T T~R ̘ +̨tI)݈LLX1 q<"bEá8)51Yvfe`Q$
+gCo*%KF: !'I.HH3 г!ΌG"Wҝ6q.d"G ,b|[eZ&<- .&b} ,,7! ucEiJ
+P+ Lu6cC^UVcܭ^-.
+j-QlUEz!Vre}+/Xq W(i*ؙ ݅ʓ.LTn|4bĈG2ʥZp\
+T ŷL\i|VN2MIA'⸈"7%6aVI%Kvĭ"jK};CH]C!-:7 Yɨ
+qt k{b:+`E,4N 2"YjĘ,TxU-yf"G NayΊ%?RX<ױ$tY4xƞdwaN7vl10sB }UXXyvzO%58{)xƅ* <F/bgr?{TjkH`.M<';4=VlHq{/pqh:' >/$ v/0srvrFyh9FDPiRXhuX.nl+lg%IgvkyNZtd
+K}NM{wm3G\J˽0U2jY´qLS1)Pbni A!6UoЭO
+]ЙD;0d]<8ӘgVbZ˩;s!9JA+<9D,*ճc~i0qҐΙK&pDVb.nvj7Ӆ.ٳ#5{dl=?M^y>'sv=
+f*m6.ZµZ5Nzܪ݉۵mؠڣب=+Bk^IB\Nu0ܪmܮwQ_z#+U_+pk 78>A~_"M>c"y4Fnc(ǽF3~xЈ!ca;b܆Vcvpt x4^үj^|:#F+fp7,ɯ˰-re=^.4a]˛s=!^?f!mssJSx?ô#԰=<ޅ69xs;x?EnvvQDN'},wH?&D󲀣4!x*SC0f3m3:AqQmzK*P:w?8?ЎpʓI,%̓“zYB{Dy@dz2(H㗖d+<wЇpxv!_8y8:GJ%yUjw%k^0Ѥ
+SDR=Me8zK:׎A ۭqC"Cb\@~ǓLPK 
+mAAV\ҵZֶmWL2!(2s=?
+# ѝ&=!_L 땥߱e:
+PHECvd@;jccKPTTynN‘5 s':.g`yu 19ZV4b =y*=lSU/;K;lWQ-0\喦FEޥfW8#:H}B4ߛ$GXX`\|HKJu:VRɰ.~A0W2SfۭQ&<3W1ٵ:ڑH443 +RZ#ɘLY SjҢ4tgys&ChXϴZTJn6;f}>Z=dSa6l(ϳ+)E-$ zۃL?.Dw8df_G'hyOle *\zAޔJ x3ADӐ-('#@tÇ1n̈LS22v[taRA?[spփQŎ!u1iZּ!mD礆SJBoq >LV#G z4X֢V6N]2p:;>`ƺH#`̈́! LjVз./d΍D!!̃K<U)_w/>(JSϓ5|ZW+c=-V{9T{Ln6f.v1eߴD4|.5fme.1e䃾.Cױ((<fARp n$fGikD,6=pg8DVI +P2@2G” LJ`deƮpSd0j\٬xp U<%09'd(3t2
+5im>?8J7 WpU~!L*u7gw1,%ej aGa~)5RfLM*sd*D9Yrd@e/؅ >Q,h-<ų\szpM'Xދ5=ېe}_SEֵf)^R$~^0^ +@{חsw.*|5,8 -G4^+6Z*6o^]8}އ͇+?ICu9ݔ\䤡·P>0+|$}ffE\?Z(;/_I%TX2*o%櫮mJ*rԣ ho i#r#8h2" W.;eF`:Bi$ͱ]HjwQl;5yn׼B<g}ůُ5=?tqyoWfYm=ٵKS>;yr߾}1_؃{rñ[{੐JUk'2E.B()܍)%1Qrlꢣ8ƠtG|OhuQzOC[Ξ9;ř$T"%A򦧰#rNSk/#Eq#|^\>\cMmx-UW }6ڪ^WF<jsxvRKXXR`jI=j%=V=#e(J8C+ֆTUNTXJѽspff{&ϙ[Cj3#`1_+Fz-}kpDzZˣVN(?{Sˢ=-b*v.~1uU2y ŵu5t3ZDOroֳ |qzF"&,N i:&w;]a3Q&w#=b/w#݀gv5"x-|g,<EgD >+q[D.&sw
+Nw0(vn-v6|I|=G—+>B'U8b8Żأk8V&%xP `2 )3RGOYG5r= O=ʝV;QO{ʏzq4(g<)/Wy}8QmSq}@ˋg\8*8횂у']U%}5בވ\גB7Ezgl?ž9دb-%&KX#F:d(v"Y0VpV b*g*c]74By1֊ib:D]`yB\*fK+Urvڞq=+{6wY%ٔW_-槟*b)?0h#G9/)VǠ~v9xRū*>x3rTT¿i'[b\L]YhGa$_NRooslVtlWsSD؊#
+`uc m*@D*piH $ElEl\Záp'>tݛLBP+0%׫D :l׳Wvs Oy=_bde_WykuYoR)r_m׉{goob7~ 鷑~w=?H?FAƹj:cG=FO#s.]dw#e# uiY3p+ai-"E4қvN}yCv]X-o1;ߦM]*OwVw_KbL~墎x].sj$+ PK)sm
M{>^JKhjKF\:fd\6hnt
6 #9Һ{*pnj=7Yڡ@Y8=F2fV)Jf[Sn&xf+Pbf,CGžxˍ >c(a*IE~ÊoGYQ?v }pc[=3NfF2Job禡hVq d^#x[J8SI ]h22fkD#{zH;tVvmf"mZ>Bx;X`1k1E^U(Q3mUeTP?/x<Ȅ)dxr᠀ŏXE+3AT.olX2)+652GFM DgueP~܅I@8'gZ'lefqF,LܣcesY_9:jK[$Aӏ.tʒP aŏ +92d9-HeLag;M0Lr9VȀ&qT(*},-ؙY\Z3 wHe7jGMlz$oO<#H,jw4wե%)##0;hpPG?\nÏp
O$q3^þ_Jɖ`
@@ -101,35 +96,23 @@ imCoz!C8B 3\M,4x{ (1-@yٻ(3 
/!MβB!ΓyQvI>+uʾ/В`cv
l)~/N{'UM?ZyI-Y]t݉q Nu]hd.y@݀c[(Y'-:m?sw¼^I #qIZ3ըgT l.+βi+l(5@z2!=X:?V*ħW~*?DfJFT#!O8 ,s=7c'8~!"kr|kQd}؎4yK4>%G n99T{X2A Gr<B 0^zbgX@7ʴ8Ɉ"pdz"3 |PfFA\ߝqѸ6{U[dΛؽCoU{-?w-o,{AK.iJ_a^<P ^@ޤYr ]or]%Cz$nU%vMS5GVDUycԁbnyh6WOTVlW$D}-զp{ˌn)/ULv
h,,Zfi Q=^'<yOx%4] d7:ws:% ]sҴ͎I}Jm%|
-8yYV^KTd_ 4e**njVݞ; RPK^h
-`'a G#QE.J\BqD7lɨ
-KMͶn)[0,}_͜Ue?T]rT%Jrx(Y,?%pKzo"~
-Y㗫*~E6r,ҿfD:Šb}=Ț0 縳@HL|-VLEQfOゅgHHyxX+x@V`ZCܯy'T]p,Fz2{K4í̇ά2Y#5,[=4M V
-lV3<R]'o-<-<oagBmEf>W,dNKx=w8m|@vm7l>d+U)gV8',|řu'
-,8bw n>>cY|[\3I6E _X̖|tZ`koUiWmmqRBdS9km<'46l>҄C5G\$ӟFmKGZ Jk) ʩk-=466iu{ 1W*)Y566kbFӡjHkh
-I6lh:)=1!h՟XēhmVQG7͹/=xȡ7]!|z*h0Ky?"N~i7u80y(=FYڌ=A$K!o%IȆZv|%ۃ:P -q6Po$*}G+sJTVN ,3E$RΞ$!IecvDOFv%S<<IJF&nȿ( oݍyA;u#m/o-;F+ YWy-`kFJ?h䟗7ne.sLDe<ecx)TϠ4PW7L`w%LtPKcJ 
+8yYV^KTd_ 4e**njVݞ; RPK^h
+N<D>`0u<y#(u<ECϤBP`)S;.LgB7:.-ǃq^bσ?ƃuHJ`˓?9j-ৱD)HA|30ԙ_c:elw=> duI
+ *MJ(%X֑3]IҊF%dˠt'5I ؟s-v<-q@V./V.wuc.؈ :yB=iNiؼT93w,w*A<> R
+1ea=JoX+T/*^ J@H{ ]\+K1E 0̿oeYL|[qEFq2s~
+yEvG37kvG%5S~
+h?g!\O嵟[JھT$(u8AM\s">lK*B<dRqL.㷸L:r՝XZ<?Hw3%2rMI0-Է '䘹|Z+5Ӹ.Ef%8EuG
+C
+q< z !
+\rS #Tq?4X:wHFn{Bv;U> v#-~!;~uS~c_KDw$bGy
+I~bءGH"J(zf \w+>l7b< ]hjg*-\cT]"~C*2`,c^vM ;akAN.1K= fY~9K+V\ee)]O(~3,g 32ROT'oxEqᑱ*\geƝEQph-Yz+xuWW_/j5͗
+^#%X+(^ߝgÕ2Eb4Y>cA%z&Z< jP, ~һgȪjKde"[%O?B{XEhL:~@QhQﰖx?5oMע߿KIBݷGA`o4CRQxhG˃2/eڿ}V~UL+Im9wTy3\Ż{+p|%\ஒ~9rKJ}iRbPKo
[^>S_˜@*
\qU5\';ޞѨ |,(AnKY9K
-nR)KE4WipFJtIoyE`2MFׯiJM[icmucmucm5LMhvjpT4*,[:!~Zi >*+(ГxbRLb&A3H%$i!4&韫N7. [H"v7$ K7SjKR [ n}2Tc|.!)w-$BŤ7\skJJnAO_0GS~@@rO.䌟<H. 9G Lо,18}\IӃ`|i .0^tqnwq>!` 2nb] 2Y"&ED"m`I*U=HokZ+X=D+iJIk-҂2~-]М_kъ˫(PPK*k
-7fml[PҴ;ne@0ރĜʭhJZcQ'mjt]9uh:lf-5Ŏ[y
-7l6SJkLK.ΆXcZe٩삔U@ݗ
-5N5QB邜V2À<%i`BJe`< %mmJw[fxNԌɘLTdwxIIP\PM8 Nˍ؉twiM++ְ*cJPS5 ERj>WkDr-1{ +*+q/#|_ޚ@]m` Xk<
-Vު g`ɘpe;#V:
- (3=JKY <z=5rf6h,ߋe:֢@3ZnPfeKO:u\$2۰]ǧ3Ǵd:ڰïrM;},jشL+]v)Pn^&uؒ תY1ӣa>2|{ehW?]د#ƣp7p
-3; {~7IZ)8ϒ}Rя;*bafVPTQCEOs6g$AqR$L0
-e2e
-"f9TnzUXq<I$/Is0HFs1,昻䬮x33נV'8QO.K>V{S 0S')N9ij@;;l@hoSP"^F9
-.\Ə8`p.ʢUzAWJh=X}3prA8*v ,}vUq 'eDeǒ@\j,C<ZRB׎k'NlBg]̂!ȗ٨x'*2*2[ R6Y)YCr/*<"UxY<%kWIޖ 
-R4Yl
-nRkSd54%Jγv}Aȫ5|8\"mĎX<C%nu5&p$*ZuɻS^/-X~L%cqbchR 6N#/
-cQj[#K,l:wDŽ+~lj&*w3NCUͯ5Xvcq|_hTy[*o7Rop"R61Stt8UG&Q&0͋z(uAC 8׋ՂãF9/onkL/Gb6YwPRV -lyC/5̌p"#!+\{hEuبd?(]а}x~{
-30`~<~ϛ9~AK
-tSvdh"0Rb 5u7CQ[ 3&n1`"^F?^k^ʲnT刉kb6i#x,Lɚ@ehh&PIkSBe}Csɏt].͟Te?
-x}P#ᅱA0b)n]=ݝȮ&Nt*=wTZ&6c>aSV=© ejG`$fvj2CVűLstS| +4s7")DQx_&4c_6g x."r[-Mb'W2&dmW9252]NʌQ4*PSfjkPl-vrLT TڝRilum [H*iW8>m.[)U5T~P!g<E[YCb̗tV("[;lTKm- D5Lgm˟m9n:o|p,,G.ՙRAK84ekզts)MJB KךNע5awT@dWg䑎T)sB!i7e&_3eўBq ;'[L V~Gf1ck+Ɣ"5E۠0TM:lL=֥i;PY$.J1,uAJ.'/4%.dաMd䔊*);iX#R
-YighQ2%)6C[Ƒ>l<)Gozx:ĔK2Ʋ;;j\#hIEBv+4b}DP51|rwWL46 N+CCkNKem0\cʵ^VVr}q,!ڝRE]~NnPOiu|#zĩ͋(|epnVϛώH,Ag|+7G_n)ȭt'ZkBxhˆM>5HdyhlwWevMShit f2L </Te::ʟ^֥w2seb5a4 ;qV'T8Ӗrc7 Nr6.>ȋJa3F:#)k|LmiK6d{?λExtBXRGTJ]JSZDl'I%x~B^L݉d[}iSxg<L%U#SFK8la`e輻`ΐ;CP1ZrZRdT4V@"a髟 qJpi8q8q!__c~N>3͙|||E9+F 'ℜIOI97ST2rS0ݞ|'31U>Tk͆^2=n7Kg栝E4+G6tW6vwip,F|#4*>Cb fyHS͡qGa^gKe/+WJGK*gt,{*P~lM^Ck{/b9 /J(u<gսJ꩔J
-V9rQ{5EAsJa:gb9=HZ+M>, =ݶ) 8?P>){s?&u~lYU@ߕҦ8^nus=~:>b_BuWuaH֯U#7pG4-oq儽=裸^i37բoQ'0p74 OmQg;`?tE;+mObxq7qi([>y¤}|I;e`H>UWKp@Ušjw{==8Ǒ =x݃oӷ:|t~0wtϵOq/~:?/7've}Y`8 yŸuAk$6Cx~Fo9r?AqB3[% SICN.nEv1t R2RQ\AȏU\la@D%X@]aɹxRL>s(wq#,xECI4xZ/[yLb*U_NqaKZE⢠gH|ckL~SqPa( =asaJۻSɿ鋘E,yS#`bXUG5GN0+gʉ$Ye$؇|>}2WU*K<唽]׸iTdXEfQY.iW/_K<7,ЛJIH>0p'ׂO5fP,.5)fqޒ5=E~c=wVcxnƕ%kܡYq
-]'\D Oӧ!ts-s$WEoz7@ R|>Yr"KeW_es gGU$Vv&;[| wx&xQ%˲**k4㫲_8([pt$ uWnaq܏C<kkxHxpQc 3&qc0)#1ijƧck܌7ύgCd<2^5׌??\_W!^t%x5 *4:/J7s|]uQ.at݉?Ÿ]M x]K7I{2鞅ݧ"]cnqZw)uMA0e{ %i}#eȍ29$`j]Sf$ȽQG;rp҆k>jBIKq|ͧKZ8φ+1y
-a)<١0ž' #Ogf&hC#)Rމمɲ')|=sԩ9{gfy@~8 J|a ?=K` /ʢZ~j7u3?PKG%F
+nR)KE4WipFJtIoyE`2MFׯiJM[icmucmucm5LMhvjpT4*,[:!~Zi >*+(ГxbRLb&A3H%$i!4&韫N7. [H"v7$ K7SjKR [ n}2Tc|.!)w-$BŤ7\skJJnAO_0GS~@@rO.䌟<H. 9G Lо,18}\IӃ`|i .0^tqnwq>!` 2nb] 2Y"&ED"m`I*U=HokZ+X=D+iJIk-҂2~-]М_kъ˫(PPK*k
+ĩ5j^Rj4 xp֩4[FUč1Lݶ+Xb(djì Jr}z;j+H"S8 } j]aU/z\0њzw[xmm Y5v{XcԌd:kF.;w ^{&<r$SZ0SLXtgCQ?0--Y]/67ʦ^|nTfeRo,[lIýlSbj׼J}VlshndY<JYNfޞ,fvR^:]/X%󠂦'l-ICyR0CK!"8q]qq:~isq{9\UiN 7%=ΐ4lAldf
+OtEYJ?̀a>40ĩKGEzw.*P=vS*<!c!ܪICU}0V^'9XGA+Ӷ Ȳa=+'yFC@勬yO5·w<y%[n3Ī%_y!Uulװpob +_(N#)4"H'|lB4<;+NRn蛤 #͇`P3dejw`#jwEUO!V(%s,vH tq*Hb0|xU^3{K; (~ ;3%J.`1Ԕbwc{6` *ݗ#$oRcU=EH+C#t.N=|ϥo~f4} { fc6NMS˲jN)3CeR2E eZ
+zeJ%"Q<E$-Bh1<#$5iXzF#>VxM2Bs,*,7dvj_PK
VDPd"ǣl*1Pֈ'B[cɄ5
GFBHr<{5ԌqSAS܊!RPM'E#Os+*"TfHأg(
dP ) m ~X7HlWvbP7"ͦZ4
@@ -148,32 +131,7 @@ N)qZu!'Ex@i,
JWɒyn& e>(]7pPbjV'G"r?,7o]Mɫ.{+OyY=^A~BgW
g֞q?nճ™OQ
S'e
-~s&(9LԤW#o,s{ E gn% *>/ֈrCʳ|Lc=~t'<WɂCڋBNo͏{QW3Ufz)
-j'W,pE
-C[Y"URUxqOYUR*ȇ%a
-NELڏ2xEORB )'aDq#),7n
-0iB6<6FսUWBtN/sb|XBEUIß+(=+2beGQ-Dͬ3l%)zc ߠӤ-q[^\ǡ`n4
-_篏A^|.}l=](Xe-<,{)O1ci8òHcC}5.9 gqr[z|Ʊr]C{rx.~E~8ړ__='C?cesrB-Иpѻ$xևZ +y:Z1BCޤm>/cYbF̃K|23-W BYfp!(Nps$N1OqʧzE(n*1:pY<g\yyPi9/W"J{>n]7q!*@p,ዌ!r9|6Tu!1UxŭR D‹01ȭ#y }Hm"!QLc;}a;=m#ۉFd؅O"me^n=6^Ǚ*9^u2'r򒓱j,wT ؙ:-3uTd3/L0Qځ QӇVS#N(e1:H_EBZE@ˋQZôw0Ee]6jQ6Ae2Z޿ ynv_h)"ǯ*QF|_ ՛()ohoD{|+Sw${bEaBQeYHx &Y3Lhɑ#Ѣ-1" I,qޥ<v_52_+EA$x 8A/4]/`wCbGj=X.\ÏlZ' UDUx}&ܽHS m>~;XEE3,)nK t\Š\ DglUЯ ZbH8,@uқyH定ܴljR~=@V1, &%$He O=4ͤu4dz<(geȞ,9y')QY(e-(k
-l|wrlɻZt  M\nt\zKxJYy+-x
-ҴǞӿAiHX`w}~W>nMK +3i+e&…Ťnmñ>n 7%=ֳM#a+|ɔ3AޡD̚)j[
-g>cA5&
-9#wYK£q=g環vH~ ҧ`;cK b>GN7`8hVUjxqy֌PqIռ(L{93y=e)#okxGIv$ltLu/*R2Hv`3>฀is8[5HDC (}%7"K#G'WA$ouš*$NS2go'E۴̐[sz~N
-?^e=nMsް}e橊ʃn/GT$k)#'2>agqR삭>Y8OָVc`F΋vnP>CT8)hVŸbR\d#ؖ#ʑt;) , б3;P"J4U5b=Yf鏨p/*P<]*aD)Z<cX CrtU݁ԩ+9Q6\2P^`nDw5UEȌHh5QsvL_J<H,Ӳ#=Y |X6/b){|Dū[Ʋs=V8:'Dɾ|!x)֗Q Ҽ3I/>GeρM1E5y;'80e䖤jFLܨrlUɡ2%6۶ŷfZ\,c~9Pw8g;wwnpE<et3+*3[@gg?uL>ŏ]?OUdk3[3cexqe-3~sB[=1T9Y/~:2y"\RgDX?md,{wI] z.E?TAAߔU%q*/ a_f w*wCtWm\xD<KyD7lڄSOhM&}||cܼx;*b(+~:ZX.u4wP~ƿۋT>iѣ8g˛AqZ>)+85n+U xC[ǹid= ELq+1.8CGk&( D!j~$_1 q#h&NBt \E'wч[|W1A`
-p/qOKsD7Cg[H0By=0
-/RX`V g7ΚhwWY5ipW8! ϋ; V9Tx*;"?P7R}^I~6PmE|vlEqO檷"V$+8A,cr
-++{eQs8>,;B#>YQ %gYqY>/ND h8_xe~_*w
-{t* +6{'<怣ys=&"w_7J^/ ';bJD:a4l_`%r|,JVJ]$f>Vz71{/%/x KMb>Ȉ+ڿ_
-ycsk(Y5 t2a {:E%iDhAV??LAtY Bx;7"oPKR
-N<D>`0u<y#(u<ECϤBP`)S;.LgB7:.-ǃq^bσ?ƃuHJ`˓?9j-ৱD)HA|30ԙ_c:elw=> duI
- *MJ(%X֑3]IҊF%dˠt'5I ؟s-v<-q@V./V.wuc.؈ :yB=iNiؼT93w,w*A<> R
-1ea=JoX+T/*^ J@H{ ]\+K1E 0̿oeYL|[qEFq2s~
-yEvG37kvG%5S~
-h?g!\O嵟[JھT$(u8AM\s">lK*B<dRqL.㷸L:r՝XZ<?Hw3%2rMI0-Է '䘹|Z+5Ӹ.Ef%8EuG
-C
-q< z !
-\rS #Tq?4X:wHFn{Bv;U> v#-~!;~uS~c_KDw$bGy
-I~bءGH"J(zf \w+>l7b< ]hjg*-\cT]"~C*2`,c^vM ;akAN.1K= fY~9K+V\ee)]O(~3,g 32ROT'oxEqᑱ*\geƝEQph-Yz+xuWW_/j5͗
-^#%X+(^ߝgÕ2Eb4Y>cA%z&Z< jP, ~һgȪjKde"[%O?B{XEhL:~@QhQﰖx?5oMע߿KIBݷGA`o4CRQxhG˃2/eڿ}V~UL+Im9wTy3\Ż{+p|%\ஒ~9rKJ}iRbPKo
+~s&(9LԤW#o,s{ E gn% *>/ֈrCʳ|Lc=~t'<WɂCڋBNo͏{QW3Ufz)
&#D&/l[FphuuӠ kP8s0#f2rrKtOx}N:8M݀&7VZ}Ww;O>HGtrP2S ( p2S ,`,Of@7lp&B".BSbXC v.0~& !Ц3xktx[8&## 6Q96& T< @ 8 AcK]qcS+Pu_4\(p#6k(,z1=%1IW0f@**COEF /34AB.Fn= J*aa \wXh`"k.ۖ>W)F$a09á(T?[l"IFt,ѐfL#KP3Ob2uy<0'{QSFh2|},Y3UdH.a\Hi8+]j(,YhH&-:Oh= \FYZdO3̈́E#|M =;:4\k(L#ԁD; 9qK4=7jEAi7Q( <d>(6!ɌY!/VbG,vh%6 _GIۦ N _ƝL ;/ JhsѳU{orOS۶z6A ʘBpc 5Q9M|<5)_|{BF2ea?ڋ0\xp
Ltzs,roISxH4{m*4LI0Wb2ΑDTfvyJR|Co[zw4lQ=֫ˊҝw b ĥ)?CzQ/PZ:$޴WpG8Y,ɥ}E s#2\峲5FkI$;0ڙ$Dp0#L3#YQjUHіβxG}+2ҍN:z.ʞ iJ&fLt ˧1dkm`0MYfx2 wnVmU2anaK,5.4OõQL66&ZEbh'|E^x\~ɀDh$kSbXm}[BI4| 0'
%kCa^d8řɱR}X 9@/ns GG.Fey3Z8+9Qq G[ƵϷ8^`/xeqefx-W?~|_BOI&?>S^y|.^͂XX1{b)|c[u
@@ -182,8 +140,51 @@ n[>El0:)ylr^[oAshn_@;hrs?e1Oi 
\w
zv]IEWQՌk,ʬM#*Ʒ:q-Q'׉m(ͱt3)ݒҟ?4Ǟҭ9/v1.n';rPq&fgB;"9n0~ḿ;:;4yr@ޝ&h2GJ;V.ʇmAi)+ ]
gJ{J0ޜ'lA
-rك<e a2{sq([L3ljŸЦ}M2!,PUycS7&=cS]0&&qJE/qeR}2]e*ut9yHOTW="WxQԫ8D-OGz7^TgF)V5d=*gEˢoN+Ldz+{Pti+u>.8ߛPXR!l =;%@ˋ$s+ok.353E?&uAnȊ(T-'l'&&&~޵8l4]!{lBEJJ%PK6IR
-
-
-
-
+rك<e a2{sq([L3ljŸЦ}M2!,PUycS7&=cS]0&&qJE/qeR}2]e*ut9yHOTW="WxQԫ8D-OGz7^TgF)V5d=*gEˢoN+Ldz+{Pti+u>.8ߛPXR!l =;%@ˋ$s+ok.353E?&uAnȊ(T-'l'&&&~޵8l4]!{lBEJJ%PK6IR
+M*T=1+J;MתJXFsΝ7јҝNAY3VՑ'(#efG(KԩnDdRU ΌUwQyqRM7-X[x#I%V cञAMѣz4Tx3y|dXSIDNzh|"cm|IWB+Z:Ӛ
+6(Q ?ksxir->WyWI$Rq7 xAiSoĊQxb/SƑ- 3b<7l?k-GUu_q~N"/22%H3E 7 y:V/^ /)'yW׍Dpe㛂x e)4qMe,yƳYǷk6L\%GYƦ16Q_Ae̲\vi&bfҭltO;_"&}(-Vvo˱z̍3u :nвy7 ?EضDLZRgo9[7ؕk3FEȮ(,T]7Lz<eK12W.Gi~̪, cNein?]$w.@ W
+0AqMTR)<ȳP'(QʻR<j!=̥GP[9T^¬47h5oh\(Ê}X]}@Պ47gN&9
+r",f+}iI+\Ü5{2\it^wfɥiHˡO),+Uܿx(c?cEO+x<I+8kн0xO=s}!PC}B[_mQ+E<_'13Md e
+fj^i'E Zfoj;u<;hOT3J^}g]Ti2$)ˣkj~--O5[Nu5j5v״ci sl2!s=A)!Q -@9[UfvYY6YIYCRn<.p)ʜm^Z!p"[wωU&˽QJd̔2WvH欍-{$N*){qF8,'ENNyFZ:nMr#A$MNmҊeV*miV.5W}Vn'o+yevy;#Q>Dy#S=M޳='^:ʟv>S4yﲼ%,G:~H.~H*g7XJX~,N)~F8I,՚R-va
+Bya4n E#Hj[Y2[[TH0) VbepCRsDDH2{eڏMmJƝI
+NLUͯ5 m]p蛛,l##F%?˄ :^(nH#ުVqu 8YG皨:3Q2-4QI^40c2?وX*0H0фe4ֆ+׷
+&aN/V N]"ܹ mjO[iˏ8_oBV6Vb`0/SQIhJHhG=(ُvT66.
+&q!.b!67q13@툩;rH9z!.'OEL|*' E ;"ԢKi^֋ ـHF1،*{V+FDg,=6ros0HhXܔO\"_)>!-`0َ^蓇2)Kh#TE救+L\$xb_mH$|dI3c&G7>\Oq=FmǽApL܈xRdjoy :hz̲)X7Y ?fħcyTVj{<UfZYՔO%Húzyb6̠4 f^ء &5}
+.fOJSiDOة Yr˃#}h/~)RLF`JZ'=Ie-@Y9kdH$v379簉[N6eVJY^#lbr)
+9+UrE V-Zbw>blO`AEY2U[b݆d<NeOގfx}L^9ߋL) !+NQY_UVwD{:5T0jrr̷;E]ٷb'Sj) ުDTLYKtk冷/1Q 5by4檅 ȔP
+\n
+^p֥"l7Z&CkV*YYyd"jGsaYk}*nYgErrGvʦDvM !:\\1>Hj噋:Aa1Q`{Q-}{M[횻IOء~"f #~:,/$ElҢoBrE6SϰN
+MN&r$5τ~nlTgF~ASY(mӶl;$RYwlsIi0oWѧjdToWΟ j;I:S<gZNϚC?tJ51jafŇuÌw]Yr,KNx:>CeAjdśX &zoyI3rsFs>2o>y1S2ㄼq{b$~&d{<᧜\)l+p*i8;+9S<Q641SUqphV?ܾߵ__ۻ l<{Ù8683b5|*f񐡲 ǡB͏n>[P[-0}5:W=ESa~CXPݍgX,:%XBs7Zۺ ma\Љ`4 7YTl*uJYL/<& G:
+S5bT=3ܥs]))]زlj'{%
+lSΝS[j%HID9'OyԔNljC9UAߗMx5]wq}|Օ9^1b,Y(sФcvucO`iG1bZ'>V{bE'a`7^}K<Jʓ$n^9w3\M,${zŋ=^Bt`dJcOC::B
+[L}3Ynm^o><{̃8ǡ1]8pwON|g/c|xm ]xqB'~܉Kk&uD}Yg8 ŸtA6wʼ
+%[!#qQS:S">~OG~~OG&)U8z0
+YZo55S)NLVE>:e>Fv xK?n쯞%'K^ƃ(S&rOUy]af@WqQm3y:&#>2 v}la9YYze&BR(~㛹fRZ3`f)Lʫ.`*+"z3G(pi]0KG*
+ep,?wH tҀɛ/ NiYi`uERZ";"mXp*}hυY_aR d^<Ƨ*YYklRqUF);]as,܇eK[[".#r'(`r[[hzyK;}lsQz5t]:lӳmನ>,jmp.jVBBԢ7鬀 ؟Ź1ݶ8Pݲ풛jmu}Rg/fgb+붚n0;=,SJpt*@w~EsN Etzgo<ekcƫ2Ek4Ge>e>WpM_
+Dp> ԧ55GƹVB:?=`wK1$[o#Gǘd_&_0 3ōLfjˤz/A܅#=Wb S;>)2_8&xY,«I+^ ~ +ىUxPnCr;~<,xD<.yِ~_uo<iT)c6eDq5sMq'c|5Ǐ~fc/q U-f FuW:v7o]8:/f9xՀ\Kw"BBm&4aWGzv]oQ{'*}Żx}YE\ ^/;͒+J˙2+ܘ>E*2y.Zyq |cOfD2=0
+e=nGKbRG ŵƕنRrSl"yˣ0)R&٨#iΈwFhv97z 1J5q̑]S{Xx3?b`3Wd\GWV:95qx],Jw08fgq%4l!pWaiBȒ"Rw X۫D["dhƃAO)<WLfbLd'5}h֔iT\af:7sN#XP]z? KK5 RA(xv Ju[h"=jGNyF۽]m7RR er9&ȕy'ܷٝ0'ߓ;G_;=lsAgsC~h ?;&"/s?PK2 ?M5
+ҴǞӿAiHX`w}~W>nMK +3i+e&…Ťnmñ>n 7%=ֳM#a+|ɔ3AޡD̚)j[
+g>cA5&
+9#wYK£q=g環vH~ ҧ`;cK b>GN7`8hVUjxqy֌PqIռ(L{93y=e)#okxGIv$ltLu/*R2Hv`3>฀is8[5HDC (}%7"K#G'WA$ouš*$NS2go'E۴̐[sz~N
+?^e=nMsް}e橊ʃn/GT$k)#'2>agqR삭>Y8OָVc`F΋vnP>CT8)hVŸbR\d#ؖ#ʑt;) , б3;P"J4U5b=Yf鏨p/*P<]*aD)Z<cX CrtU݁ԩ+9Q6\2P^`nDw5UEȌHh5QsvL_J<H,Ӳ#=Y |X6/b){|Dū[Ʋs=V8:'Dɾ|!x)֗Q Ҽ3I/>GeρM1E5y;'80e䖤jFLܨrlUɡ2%6۶ŷfZ\,c~9Pw8g;wwnpE<et3+*3[@gg?uL>ŏ]?OUdk3[3cexqe-3~sB[=1T9Y/~:2y"\RgDX?md,{wI] z.E?TAAߔU%q*/ a_f w*wCtWm\xD<KyD7lڄSOhM&}||cܼx;*b(+~:ZX.u4wP~ƿۋT>iѣ8g˛AqZ>)+85n+U xC[ǹid= ELq+1.8CGk&( D!j~$_1 q#h&NBt \E'wч[|W1A`
+p/qOKsD7Cg[H0By=0
+/RX`V g7ΚhwWY5ipW8! ϋ; V9Tx*;"?P7R}^I~6PmE|vlEqO檷"V$+8A,cr
+++{eQs8>,;B#>YQ %gYqY>/ND h8_xe~_*w
+{t* +6{'<怣ys=&"w_7J^/ ';bJD:a4l_`%r|,JVJ]$f>Vz71{/%/x KMb>Ȉ+ڿ_
+ycsk(Y5 t2a {:E%iDhAV??LAtY Bx;7"oPKR
+j'W,pE
+C[Y"URUxqOYUR*ȇ%a
+NELڏ2xEORB )'aDq#),7n
+0iB6<6FսUWBtN/sb|XBEUIß+(=+2beGQ-Dͬ3l%)zc ߠӤ-q[^\ǡ`n4
+_篏A^|.}l=](Xe-<,{)O1ci8òHcC}5.9 gqr[z|Ʊr]C{rx.~E~8ړ__='C?cesrB-Иpѻ$xևZ +y:Z1BCޤm>/cYbF̃K|23-W BYfp!(Nps$N1OqʧzE(n*1:pY<g\yyPi9/W"J{>n]7q!*@p,ዌ!r9|6Tu!1UxŭR D‹01ȭ#y }Hm"!QLc;}a;=m#ۉFd؅O"me^n=6^Ǚ*9^u2'r򒓱j,wT ؙ:-3uTd3/L0Qځ QӇVS#N(e1:H_EBZE@ˋQZôw0Ee]6jQ6Ae2Z޿ ynv_h)"ǯ*QF|_ ՛()ohoD{|+Sw${bEaBQeYHx &Y3Lhɑ#Ѣ-1" I,qޥ<v_52_+EA$x 8A/4]/`wCbGj=X.\ÏlZ' UDUx}&ܽHS m>~;XEE3,)nK t\Š\ DglUЯ ZbH8,@uқyH定ܴljR~=@V1, &%$He O=4ͤu4dz<(geȞ,9y')QY(e-(k
+l|wrlɻZt  M\nt\zKxJYy+-x
+`'a G#QE.J\BqD7lɨ
+KMͶn)[0,}_͜Ue?T]rT%Jrx(Y,?%pKzo"~
+Y㗫*~E6r,ҿfD:Šb}=Ț0 縳@HL|-VLEQfOゅgHHyxX+x@V`ZCܯy'T]p,Fz2{K4í̇ά2Y#5,[=4M V
+lV3<R]'o-<-<oagBmEf>W,dNKx=w8m|@vm7l>d+U)gV8',|řu'
+,8bw n>>cY|[\3I6E _X̖|tZ`koUiWmmqRBdS9km<'46l>҄C5G\$ӟFmKGZ Jk) ʩk-=466iu{ 1W*)Y566kbFӡjHkh
+I6lh:)=1!h՟XēhmVQG7͹/=xȡ7]!|z*h0Ky?"N~i7u80y(=FYڌ=A$K!o%IȆZv|%ۃ:P -q6Po$*}G+sJTVN ,3E$RΞ$!IecvDOFv%S<<IJF&nȿ( oݍyA;u#m/o-;F+ YWy-`kFJ?h䟗7ne.sLDe<ecx)TϠ4PW7L`w%LtPKcJ 
+
+
+A
+
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 404de88..b51e131 100755..100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -96,6 +96,10 @@
<string name="copy_failed_restart">"复制升级文件到:%s失败,重新复制"</string>
<string name="prepare_copy">"准备复制升级文件"</string>
<string name="start_copy">"开始复制升级文件"</string>
- <string name="scan_title">扫描</string>
- <string name="scan_tip">扫描中,请等待...</string>
+ <string name="scan_title">扫描</string>
+ <string name="scan_tip">扫描中,请等待...</string>
+ <string name="backup_result">备份完成</string>
+ <string name="restore_result">备份已经恢复</string>
+ <string name="remove_hit">"保证外设连接正常,否则备份转存失败"</string>
+ <string name="prepare_waitting">"数据准备中,确认您的外设中有备份文件"</string>
</resources> \ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ccfc786..0e6927c 100755..100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -96,5 +96,9 @@
<string name="start_copy">Copying...</string>
<string name="copy_failed_restart">Copy Files to Exteranl Storage:%s Failed,Restart Copying</string>
<string name="scan_title">Scanning</string>
- <string name="scan_tip">Scanning,Please wait...</string>
+ <string name="scan_tip">Scanning,Please wait...</string>
+ <string name="backup_result">backup finish</string>
+ <string name="restore_result">restore finish</string>
+ <string name="remove_hit">backup will save to external storage if exists or backup save fail</string>
+ <string name="prepare_waitting">"prepare,make sure BACKUP file in your external storage"</string>
</resources> \ No newline at end of file
diff --git a/src/com/droidlogic/otaupgrade/BackupActivity.java b/src/com/droidlogic/otaupgrade/BackupActivity.java
index d65b453..3e25211 100755..100644
--- a/src/com/droidlogic/otaupgrade/BackupActivity.java
+++ b/src/com/droidlogic/otaupgrade/BackupActivity.java
@@ -18,12 +18,12 @@ package com.droidlogic.otaupgrade;
import android.app.Activity;
import android.content.Intent;
-
+import android.os.Handler;
import android.os.Bundle;
import android.os.Environment;
-
+import android.widget.Toast;
import com.amlogic.update.Backup;
-
+import com.amlogic.update.Backup.IBackupConfirmListener;
import java.io.File;
@@ -35,12 +35,14 @@ import java.io.File;
* @Author
* @Version V1.0
*/
-public class BackupActivity extends Activity {
+public class BackupActivity extends Activity implements IBackupConfirmListener{
public static String BACKUP_FILE = "/data/data/com.droidlogic.otaupgrade/BACKUP";
+
public static final String SdcardDir = "/storage/external_storage/sdcard1/";
public static final int FUNCBACKUP = 1;
public static final int FUNCRESTORE = 2;
public static int func = 0;
+ public Handler mHandler;
/*private static void getBackUpFileName() {
File devDir = new File(PrefUtils.DEV_PATH);
@@ -59,8 +61,9 @@ public class BackupActivity extends Activity {
@Override
protected void onCreate(Bundle icicle) {
//getBackUpFileName();
- super.onCreate(icicle);
+ super.onCreate(icicle);
+ mHandler = new Handler();
boolean flag = false;
String act = getIntent().getAction();
@@ -86,6 +89,10 @@ public class BackupActivity extends Activity {
Activity activity = (Activity) this;
startActivityForResult(intent0, 1);
} else {
+ if (!new File(BACKUP_FILE).exists()) {
+ Toast.makeText ( BackupActivity.this.getApplicationContext(), getString ( R.string.prepare_waitting ), 5000 )
+ .show();
+ }
Restore();
}
}
@@ -96,6 +103,29 @@ public class BackupActivity extends Activity {
finish();
}
}
+ public void onBackupComplete() {
+ if ( android.os.Build.VERSION.SDK_INT > 20 ) {
+ if (mHandler != null) {
+ mHandler.post(new Runnable(){
+ public void run(){
+ Toast.makeText ( BackupActivity.this.getApplicationContext(), getString ( R.string.remove_hit ), 5000 )
+ .show();
+ }
+ });
+ }
+ PrefUtils util = new PrefUtils(this);
+ util.copyBKFile();
+ }
+ Intent intent = new Intent ( MainActivity.RESULT_BACKUP );
+ intent.setClass ( this, MainActivity.class );
+ startActivity ( intent );
+ }
+
+ public void onRestoreComplete() {
+ Intent intent = new Intent ( MainActivity.RESULT_RESTORE );
+ intent.setClass ( this, MainActivity.class );
+ startActivity ( intent );
+ }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@@ -134,11 +164,12 @@ public class BackupActivity extends Activity {
private void Backup() {
new Thread() {
final String[] args = {
- BACKUP_FILE, "backup", "-apk", "-system", "-all"
+ BACKUP_FILE, "backup", "-apk", "-system","-widget","-compress", "-noshared"
};
public void run() {
Backup mBackup = new Backup(BackupActivity.this);
+ mBackup.setConfirmListener ( BackupActivity.this );
mBackup.main(args);
}
}.start();
@@ -147,11 +178,14 @@ public class BackupActivity extends Activity {
private void Restore() {
new Thread() {
final String[] args = {
- BACKUP_FILE, "restore", "-apk", "-system", "-all"
+ BACKUP_FILE, "restore", "-apk", "-system","-widget","-compress", "-noshared"
};
public void run() {
+ PrefUtils pref = new PrefUtils(BackupActivity.this);
+ pref.copyBackup(false);
Backup mBackup = new Backup(BackupActivity.this);
+ mBackup.setConfirmListener ( BackupActivity.this );
mBackup.main(args);
}
}.start();
diff --git a/src/com/droidlogic/otaupgrade/LoaderReceiver.java b/src/com/droidlogic/otaupgrade/LoaderReceiver.java
index 4c164aa..835b789 100644
--- a/src/com/droidlogic/otaupgrade/LoaderReceiver.java
+++ b/src/com/droidlogic/otaupgrade/LoaderReceiver.java
@@ -106,7 +106,7 @@ public class LoaderReceiver extends BroadcastReceiver {
}
private void afterReboot() {
- final String[] args = { BACKUP_FILE, "restore", "-apk", "-system", "-all" };
+ final String[] args = { BACKUP_FILE,"restore", "-apk", "-system","-widget","-compress", "-noshared" };
new Thread() {
public void run() {
File outFile = new File(BACKUP_OLDFILE);
@@ -160,7 +160,7 @@ public class LoaderReceiver extends BroadcastReceiver {
}
private void backup() {
- final String[] args = { BACKUP_FILE, "backup", "-apk", "-system", "-all" };
+ final String[] args = { BACKUP_FILE, "backup", "-apk", "-system","-widget","-compress", "-noshared"};
Backup mBackup = new Backup ( mContext );
mBackup.main ( args );
}
diff --git a/src/com/droidlogic/otaupgrade/MainActivity.java b/src/com/droidlogic/otaupgrade/MainActivity.java
index d05aada..3759952 100644
--- a/src/com/droidlogic/otaupgrade/MainActivity.java
+++ b/src/com/droidlogic/otaupgrade/MainActivity.java
@@ -80,7 +80,8 @@ public class MainActivity extends Activity implements OnClickListener {
private Button mUpdateCertern;
private CheckBox mWipeDate;
private CheckBox mWipeMedia;
-
+ public static final String RESULT_BACKUP = "com.droidlogic.backupresult";
+ public static final String RESULT_RESTORE = "com.droidlogic.restoreresult";
//private CheckBox mWipeCache;
private TextView filepath;
private TextView filename;
@@ -247,6 +248,14 @@ public class MainActivity extends Activity implements OnClickListener {
vg.setVisibility(View.GONE);
}
}
+ String act = getIntent().getAction();
+ if ( RESULT_BACKUP.equals ( act ) ) {
+ Toast.makeText ( this, getString ( R.string.backup_result ), 5000 )
+ .show();
+ } else if ( RESULT_RESTORE.equals ( act ) ) {
+ Toast.makeText ( this, getString ( R.string.restore_result ), 2000 )
+ .show();
+ }
}
@Override
diff --git a/src/com/droidlogic/otaupgrade/PrefUtils.java b/src/com/droidlogic/otaupgrade/PrefUtils.java
index 17d8656..c742bb6 100644
--- a/src/com/droidlogic/otaupgrade/PrefUtils.java
+++ b/src/com/droidlogic/otaupgrade/PrefUtils.java
@@ -268,30 +268,34 @@ public class PrefUtils {
}
}
- public void copyBKFile() {
+ public void copyBackup(boolean outside){
String backupInrFile = "/data/data/com.droidlogic.otaupgrade/BACKUP";
String backupOutFile = getCanWritePath();
- if ( new File ( backupInrFile ).exists() && backupOutFile != null ) {
- File dev = new File ( backupOutFile );
- if ( dev == null || !dev.canWrite() ) {
- return;
- }
- if ( dev.isDirectory() && dev.canWrite() && !dev.getName().startsWith(".") ) {
- backupOutFile = dev.getAbsolutePath();
- backupOutFile += "/BACKUP";
- Log.d("OTA","back backupOutFile=null"+backupOutFile);
- if ( !backupOutFile.equals ( "" ) ) {
- try {
+ File dev = new File ( backupOutFile );
+ if ( dev == null || !dev.canWrite() ) {
+ return;
+ }
+ if ( dev.isDirectory() && dev.canWrite() && !dev.getName().startsWith(".") ) {
+ backupOutFile = dev.getAbsolutePath();
+ backupOutFile += "/BACKUP";
+ if ( !backupOutFile.equals ( "" ) ) {
+ try {
+ if ( outside )
copyFile ( backupInrFile, backupOutFile );
- } catch ( Exception ex ) {
- ex.printStackTrace();
- }
+ else
+ copyFile ( backupOutFile, backupInrFile);
+ } catch ( Exception ex ) {
+ ex.printStackTrace();
}
}
}
}
+ public void copyBKFile() {
+ copyBackup(true);
+ }
+
public static void copyFile ( String fileFromPath, String fileToPath ) throws Exception {
FileInputStream fi = null;