PKGO\Gz tensorflow_federated/__init__.pyWQ6~WؗVbSʱjTat:"q{Nw!Zv gg }Em2yr YԊ{ v{;kLbDiorVDyA(~u#3xbJs{`'L鏿"C-KH 4Pj\CρʬA;٦#A𹣐!8d8i71]UUizRwVbY 5(w5(e RT@RpH+Rͷz/laYwfןq }۰Q$~duZ؉Dt(O8siIR<0q`*ަFy1qCLʛLӋ1"p|2I Ҕ)g@gܴUx0ͩUfQ ';t- @.LHtoo^6"m;V*$?6<*Ð㞍u\{#J6SL;;DG!8ߚd(,1,eRXlF6(^SCָ;0y%f<ϱG⊔$1%ڌGŖb,&FƺN,%.ut K?m~3 Fpzu A(Xnz_w8i¾q(0hi+@9OWN0 maG5d6Ga[h{A"}},+͕T߮[屾nUiЃC&-[#X04/^yV( *ʡ܏K )._Tx߾uI|ؿ;Sw'YkwכzƱ͟N8[aǶGKK5 ![^uNJ9ھ8򉱲KQtabo{!Gۮv`hoPKGOvtensorflow_federated/version.pyun@<J.vSR@[EdHń 7ìHҁG([NP8~[C (2V ppXBs#^r'Z|,5BcII aKFC'FAo-BE-Bu%! \3YL ;jzͷqNo60b 7Ui7h'&seւ=5Ah*DΘ@A95z VUn٥$ {3xkKHća%kx9h S)~FgeE!i#7YUTp_EP Fӑe]Z 7T\w"UFueUzY6A*[0=YIދkûί(=/˖,7.xPKGOej&tensorflow_federated/proto/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKGOej)tensorflow_federated/proto/v0/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKGO%ߴ0tensorflow_federated/proto/v0/computation_pb2.py]{S;ߟ›q";ƀ0N]溮v;vjh[ӐNUu~yH-T?~.CynoJ??EhѨ/Kb˫U)_or xk~9ʻ~0 ?|+ϗJ4vw+|~7pEeR(Z E r?fRGUx!wfe4FCRD?fRi0 ppm?%d,YJ%HCr42e gbP2h2IqVN9awK,wG>\zʷ**zD㯢$N?:<Ϣģ0;vݫ?(w7G }^?," ..G+}L ь#j29Oi 0/x O?!Tg7{94vQDqlbA$+Ʃzq|5p|;aPF "03Mk(D8-4xR-C:ūE1n5S8.0f1q`R͒jdSHa88_Pv)oB:Tl[[E?7;LρH%[ η%6a2Lp,C[p5/]IS7lQd~x9 n) W5*\~Zy lGhg4 f<a-уT$jzo9+](jA9 #B>ֹots )w%}bf\u nJ:D} =D.d<_РIDzlY g+؀U:BlI?8;;;Vi ~pڻIF<'_z]򨦣=;#ȫrDp@ч PMI'E2/{A*Nu]\(_ @$L,UaD 1{4N6>#pA14/da,LS6P>e|-τыcC(4AB(8&|':ID1 $W*a-" l8V2*|%c~npwEl}[f 1^h1}#eƍI'Qe š ) (@gYP#Ry~uau @ "e3Q?`@_o$$=Vqr PcԶ$s}V_g׷~o۫7ɪonza- KL6>?`l~6Ao[V4 = n~ -KE6޶!Yr!Ae&6ۖQ$X.7޶,cRn-F&(޶#LXsyeʚY-U5n"k[c8d6ΡU.czw΁-YnebΠe{_糋ĬC7pbxMGI)|֭18Z!TtB9ifBzt'糊LgqAU_'4ZiU}m/p(6ݢѧl@/ v̹/ _onuGPIzT 3:w)Ȱ7 Ћ4+%,7? Sw ɠ M%\- $d4(.`7ΖܡIiU?]HrωТ 3 YH"iZ(rTҾ?[ gw>g>%;.T$[=S"W+Nb)[2Wj & K>9-um?miLvV"Q\{8:@.YdU]9%ЧĆ 瀹@O'y'vj' cBQu ^}"iɅJ*v>4GP?~ 7D1\ɶP/N,TO0v]!J\iƦIw3bdJj:Tt=un{޷N}[ä?Li z+A:`S5 UF> Xǡ?PS!Caތtի dbCg3B+:L7*i7|GFT#=s3F-KgJuʈ*Jou}$ZQZѤA0}n^Sua/R*&Mhoנ.OWc஽m'퀷xʚ3 տk\޻]%\BK(K]:}K iT;4zEBț j 4DC.{c4[th$ZM%'-(_d_9rXu܆![IfzLZ^s1=lM@* '/ސB5ne$B^NI xV#4y=^u DY;To!rsȚEIKs x86TJ,tsA>1Bp(\ěۀ]Uiw?' e!Ի-GԹb*2'^@,Y_/W0PA_pH#p 3|hk횇7 oQi|-G7e_}Gm|.nRuE:~[G"s*ԯ_A!~{v@rӭ q6@aV@ssW&ZRۅZa 52hwjUxlcSt$x!g:HY6=\ֹ$Q0xt#tQ{ʃ+V$+t/K"X4ˏt^ߙm]%x/&3~7] F4&ḧ́zC_w _磓:v ~cXBZ#!Vo5t:|~QcF&+`*Id-NzW^(^D{sƨнllụKŅmЧ"s<"yLDA)WLX+~I8bϛþm9oIPh1Nxٜ_-ywk[ IߎѾ[ڠ%;>S}5fKRr?Ɉ7gum2^Vf~h=@tk[1UxuޱˮӇub5_/m_tcVU17ۇCt)JE(d(Ά8֯$rvx`%KNsZ>=IlNz+ /ePb3ُ#4:ȈȖj!$o_|$ۊ8`“w :ro6ɄmUy},*54BلS=O%h[Eo٤KlCW\W_p^MʝJ#,Qv* v+bD\A%\,:i=bHAw ,ZlhQ6C#i3e3ڿ6B8rwLVx6B2|1~dc`TgjP 0B7Ct! Y0j$F!|FC+^ԓBmFeгqLfBT2ePǛ{@72dxm`/!i #E#* UkYx 6K(؊T̉WBOKPdip.x#D2GJth]숡g.KurqcWt_ݣtf5rR2`P&6UA=gCƆP),B 4ym8UO'ea`8;ZU?Aj(pYC?X%sF~ϩAԭ4Lkh ; 'm.X^S$}ޘn><BS/Z6$DؒdzX,0iit|r(fGfSPP{"H13ǯrRrߢK 3x<&Rfׁ>WL6@V]hp:lQ{`[ysv+-2#2n6oD=DX/w6j,gLm]`4\EwN'H؛'7,ј𠼄p>+lW2݀HV!}WS T%o'5jX/źpwZ Ǐ0/Zg,N o /cOgW*Y(.8A@Pn2HIeNHN"U*%ً;R׉!xw;F nztGɘe_&7)Mna% ەؔ iJѥz1ha[.ZᱛQ`w@m09`I8A&%@gyMl8hI 9a'O&[y@OjDْ< jA4-\f  ũ[,% \g1ܤBglI{l6\*yOjؓ 8e9MgNsv=˜CsEN+z4׀0{#TMSJk8q፠I7Q'%JTK^Sr&iypV3\\8=J ] Jl w l!$Z`t\ 8E/vG /",ZV!GgL 'K.p1A9U cpA"F ))Fpfұ<Z`S(Wn@gN/(i})!w6;cH>0'fI:Va M.XZ"=OrX!%kqه+N0=ۀ .R*eD+PKGO_\(,-tensorflow_federated/proto/v0/executor_pb2.pysw:_lD 0L|6M&ޜ]Fk_'{Ǿp8[.ߛo~|cĻ{kΣ6zb|o <'3 ?5~62ͳKgv?/o F!FsP;`8O cr? B?8X 'ןxcFԽ\cw xPp?uW߯Tqߛw7ތI@8 &3ȃf?u!=C` `< A_BO;pCB{5 TQ?'^t@@P<30vZȋ=g@FG~OF_4`j V?%L\{hhL0κקW?.5sgiz=8*Cs!hxPE>s#Lw(?C,f`ƫ0vXߣG.!;Lv » Ranǚ}L+9#To[N ;6|\7яcpr$N1 4 1tӘ͒q S) HgD GOi 2!SDL9\B: Œ!BؤM~>"n7GNcLG8b64 ?m?[CxHBc,#vMkn,w17;r0}4| rnH9<dAsw ]A8&$)I*Ri=lHx֗毜}XN"2pCٜ$#MԡcV7E~L(42 6V,z@'hHϻ,֬V+O 1& _RܯjUh}G!6̂CmdiqKu$YxC3K̻tNu,tIҘ@ܡ$f0)dfy8H"їX"{`aqu=q \jBK8 JGpsCdog༎SȆ@ =O%XaI 5{01|_Q4tVD-[;N0-A:3Yl[}? .;'5bq,Q.= #;Cv?4TEr館z8Wf"'#Ɛ8JG;m@pʰ?]tPMIA }: H7Eu./w:mlȦ.vFFv$#ksԛ_D_g%Dx3qM2K%iŗ : v=4r+^VF``a ' LDFUwJ&T4L>xDBHT FbXY.f\b)f_4bG2{RX淩[#Fm̃J7)0M [1{"3i׻KA|XU˾<4J>g,v7qҩNH'͑WHhc(.qfQ1jbՑLh0AszB eLmUԉsQLݥ6x5\Yx- #Yk9ӻK$ݛiuFL-k&vDLI7~~^(m!E=}Ca~Du+F8h:TtLpWF'[+DϝʤSZY4범ְ$)OjJf I&/4;BJBe4Z54t- #.4iftPڽza,_pdfD5 )?;r{#i~&蛮6-sQ-[T&rЗ4OzզIS2߬rk++b׸E*vҨ)jbjgլiRՖ& >H{ͯt=gϸViHZ:{Z]75Z:˴NC6ɨ|UV%( ϯm'<l]yKwT+!}Qcg<+i9*E Bf9C\| ,Z* 1SyUf_@,VR^Bž,U [.`ʢA%Q U$ µR'(q*$rMJ\V2Wƽ<m[oJ֭hB['&v%$]-@vA$-,/$VLQ9h`-%S\*:CUTkOvrn^">XIC y%'+ ɷG2RɊ,(K#Zא5x>aW9^"V*{Ҩ |PH 5'J,<6pg4{U5J[q]QI҃J:V4ϹyK >J$SBtDإUUtE{F Y"RZv[K7 $ OZr4M : yr+!{Jo"ImqȠp>G M))Po J b[?OӏdOhUi㪕?3[>}TAaG#%pILLP7߽hh3Eédۼ- kEPb,?Rr1C`ۣD"ц8%iiRp罍ShJedn.V}'TۥX%gBBR@L骕D8J*ebVXE=. J~bZ@7 i),T}L+bl&ɾETs=kKྨ'Wima >k!ZvU2taeKĘT}}q!JA>ތe>-~;۹=IoZ}dG]GA@K:g,Ɠ5yI,8 AY~X<8(;&UtWa@ȼ 0#=yyddd登1תesK$p3-G?L$Y"4s(ښR',ɩw:ϣAYP,.КlaUP2^H[uEAC3hj_[BX[.ҥ107hD'Ջth \ aׁD>ƭ,$)p.'{!,$)!]bb Vi݀;>1?u6wye jN?PKGO<2tensorflow_federated/proto/v0/executor_pb2_grpc.pyݙMS8*cBZݣK;EJrfح!Q-?o_9P@F{b@f7Cr}oRFT."KϘ_MbK eL\BK5k<'Z:"a<|47RWBu5!*Τ];[Cjc;Nʩdޚ:q q5&r۷E:WR\"('FvMBɶpPY$ Cȋif[G5w>+׮C%l5)\~ W®C75{wrl,ygRTKvJ&WlkiS{Væ_&fʂKNWGCٰ-?Y#$[e`~!v5 ( @6(d͋:#N~j ؁=fu[R]5 +Ğ)z 0u@-57bM[DW;@7/~ԛFJ?@Lٶ#m!'ੜr/9BCDoҧp)JKJvUDЫ%:gZ&X 6`٫E?z(o>:鞃Rk|J{;>^qNO/>y/ޟD!G쌽GX'S|zB_N;}y_rp @SxF/3@Kx>xmueY e qj\hbcScW 0ܘcq5Iwcr ^z,H ? xaP | {xl4ofu'R*_2[q ljVVR Ol)̖)#8cd1eA~O"ODV&׈EN[@5:bxxًPEz!,r `u2ڋEÖPV*P5j{ Րr"b߃-~U6x%7ܵnTҴ͏NvzR^ȃ­nEJ&6\՗(G',5XE)U`k*.tcEk"ev|92z/K]igNY=QLyW5\G,Wqc.ltCV@ 7 PyC-5 ;z6(ᶺ_ ٸRrm`e6$ {*[͔KܳObmK6?1"{Gx k9鰁"&GgPE SnQDJqÈB*86*El^^NNOsyx[g9CR|lNtyq=vvQS}9nϊ>aEGo=Ԝt˵BrMIgsu2qYm& Wĉbʅ"fw!D0Ijg5Y{hzn MB#ʴ1-QoY < gNcy{S̖f_loAmu%RZ[+-.(ܞ?p%X~]:G.Qe F5T6M/U&*!*@۔:dzQ$^l?7nb֒kBḼ'\iE c %aw`@ ]H7&5AKchL3 Xz[(M(P%vڤHsySV؂Y p)9QHʖmZ:4[?ELpPA@i I `P׹KF<986" +}S]:rӈ&]9>뫇r;qcs]h7jVNL/b'w?ꊕ*Q1ĨЇz7tT5s&r;U3[lTFƛ@pU6 P tpjbF>lDTAUe65p'v:R^BڰeBkCʊȊ0;3M0vjk QOjFư1v=ho뙜Z14#G5\)) !e! `)~x%y9'CB=>JMda֌= ß#mf8W*&8ƫiQn})|CFIdZmɔ+RA I${Cl|ߐ3+aưu{To#ZTjSWy+rN)ͨ g}RJ8Xt~~Q0 3?t65 6bP*%Ln-( YJLN5/㕠WQ̭@i[|Zr ,kk7ovH\ɝyi5Zs\oJuE21G3s*%ق ޕ*JKD- elmE+N/&gϋm:~Lue ?]||q=\gpsq2\\\ \L@bpy-~4RQ傂v+eˀe 2[/Jª&KVeM-PK6 oξX+e3'G+a̳_I`[iF(-bilU4%:7EI)Scz=:+\:+)1)/ Jz tr%m.e~~]h9$o0p͘Qt>mQU\+C1\h̅_hiYn5 A.kD<-a#{44oPʟtvx|2o./yә*(ˮBt|bo2yNMΥ0TBU0vT@K"wOq݇k1ŻIj.)!Jz(.8?x<ыnPbrubۮ3 @SшijkIM Gi)UNy`kJӱU>xt T=<4h, 3)vORdܼ2LR.#zR$uy_yg?2 _'`Kb_ߎ_~[a$ûp>Mn[Sk<䣀o"W WɇiɴH)a>.ǎU=0'bK Z, /_O1R2Za P6S_x Ÿ2ՖA.֭stl]qw4:eE&/+^ <4^)AI#..NjM-z@ߦ[ʁ% #s N'vz'* f<&WW^`;n(zg|z kރ4uxp KO>`8דkni 7~!2d^]i%lb(yͭFCqx]:/૙m1fĀt -#)P vtT̮w8C>DRCK]z ~q9JnspB¿s188ZS8G}Fp ʮn^n5"GD?uHciN@tensorflow_federated/python/common_libs/serialization_utils.pyUr6}W(g*qzu&l,5zԒt:H-)$e.@]Xi gp%a/YVgV7k#˥/l0CeUz#\t8zFdN1*GF+r@Ᵹ&nkPAk BVc@*uTRa%ҧ@| tE o؏S7'`w_e^ M3(V|ƒ7 *fl(iߥ[D1܃pWbNpdA+'j=#BHLiC}> )=Mn$0?4tehx.k-mG+r\C}x-MFqanRtoyۈY'/SiߪF[m ^x}? ,+ZYti(2gX!IRSm59$EeO hw_Q'jF U{?O~S4ΞնPKGO[Of ,tensorflow_federated/python/core/__init__.pyQo0)N H]{BC<҉)EMq.YbY>=:$/;;+!0{s%''P388 B*sY.1G0ohf] N6HGqlGfp %pj] &9B+ܦ_f !cPcd^S8zo㜾8;k6`@,UXFseւ_0k$dVei)/5 Yµ QraYDk'>4x1 y a<8gĸ no*Y^2yP7.-p{*ڱ _Syt08U}.z[e1~2j(PKGO_? 0tensorflow_federated/python/core/api/__init__.pyn0 y "l@teNYbg=L;lIӏ4C∢>H B:`m2:[#ʍ_'lVJp90YCK Fgj)844LJEp:njmA*EB v $pUJ0Z66;ɀBe7#Msr:m6`@rZ v (^|"Y`O# ŚmiYF2+ւ2J4T'5 YNµ QraY^dI}@bƳx gqOq&?V7 YVk0 Wa0Rh|ԦO"EG̻ň/jd5rQNqɲa%BH 4Z4-ˉRZ8zAxj ͕B0FՐEiکT3l-\.;?b=&~ϓ,j$-,Y J5ҚUNp2QmFbIZlέ<*@~1 h z:^9|[>m9Z&ar17rA/=^F}~):ֈddj"yr\PK*jԕ04 K?E`0a&$g[qwuxa\vj;')2*H$q(m*ɶKN8ךdQTr2NoľWa}kdIvl릐+tđjLApG,!KӤB|CF |T ܸ_Nr&YsBT$P)ES.N\I24Xf#b:74\ RbSqex\꼩Hqmx;bNT+#'+h#!_*^o{B:y65Mi!\Up&+m rFM~g_Po5p ecjGt0ktPKGOӖM;P9tensorflow_federated/python/core/api/computation_types.py2\뀀e5=ϗU^m+Ϻ.a9juޠ4 oP|YKo=x^nykfy5 m^,<~XgeO]yF7)::ZZM&mdjYS ?HM F11dYs8B"維sߘǖ,g5] di *eLAU9)YcWVVn]mI`lvd!(!j Xam\5[T4wC$ɶ4[,&kf0==o">WU?AR%ʾ9z j $JeEaU]e-.P)zIL0RŒlHeBE F<!4]MxJi_F` })IeDR\U !|B0&B3p EAF_z[gz񺮫"nA79f t@A\ nћk^iruEܼ[Mt`f&!t" Be`; '@OU^GPsVhD AjvgXҫ4Q9؝%Ak5@prkXlW9s FK>ZYi}0s` ڒdG"q3{: nv$QXi"4fĐS)ɹ11jQGWْV矵ʡ_^mEFQg[!ſ!0,ZN&tK@6mUjg/A0mhV(Z8O)S4Qtp=$}E+Ieq *Н:'LA "9iY̌|A~ ` e.d-Yf JLv<姲.AuOP`4lGo/`fl-Y_Xhr7D1 &:O%EwEO=,&ùD5œtGN\k>_ E|Л@ڛj|7Yj>;(p#s^ ]ou8l%Ѡ=AS=m@iH@tsb:km>ɟqGa(aluI;/lV^#9K1ůᜊy3W%z Zڔ(*U#UmuXmM4"$p2v=c51g+^gG`T5?F%.`:b O:~@iCK9;ڝ8Ap?? i ޒs!ȴ\G8ꯉ5E ػzbCr;Qc/Jڇ?^I=@$6J9 S*x4&C \ޔ.ZyQ4q)Xl[̮.0x:{!@/YB/9;H $ *5{FMUG*L$ }Ш1=_R)TBDfTpLB1[yOzBO/^v u2e%#^c|+g.9(7P9pV[QԞƶ4$%D( ΃[&)NJ H \qX q7` wQHp!h%4!>,1+OTN:5@lKuT) PB^BjH氛k8fk {*q>1"xžM/O6Y^Gzej^C< |g S &' J;~z;H.t aHo~ 0/˽t"!:g8ٙwC]* N&;RF1Q7ơ2ݣNzQg0]VbԌnA}Rx/oש(PaPJ p¦ &BJT5xiwB<Y"[h(M}WlgE>W Yg6})eDC7W!Z2ݞU$n m(,v6w0ѐ`{8d-37(M^鶃?@M 1\,-x)MMcjLʒLr 괓Iy'YPZspt | R(C߲44sʧO}ʮ,٢o`~:h{a d5om]hH!M*vv~߀O/ l[(B!@%`Z9: Q!}fj 7!χx`GåO} Ɂ|=PW[ƛ18qrw?gatE6w9@v#7eIeH$n|9)n<[>52aćXXw\-_AZ"o8C)!BM*gҼ/skC_՟w;/('4*+$¾7L02P,PwA3TeM86zGy?MK 0ݙm|E!欈5=պn[`%Bj_$Zl#=ۏwsY ɲIKfBwȬXz< c;j5n1=Z$FE>S-XP"La{Hoяد*6]~auqU5ׇ QC pHk1&_z9YgQ]-0OU-jb6`f5s=Tw4iA b[#*"XD^.PJ^ |hL=Ƀ@CNR2wS ڒ9LH=HlS{)Ʌk[eimOt,Z\:LWYo\=wUEJ |ӫ >] ̥ 8fV6N\&ѭ)(J*~53<}鳧O7X3ƳcyvYcu+>(Hn++]- s?=Mnxb3ppz;.Au{`qĮ^['C{'cv&Ô-gve_OLwk3OmR|} s>:qg3t.S~vg‹qѥJ&b$ zWyUCj )(5w>[H?ZKmNiOx)!Ԇ->*bA-l:J:=WMNl̆ A6>lt=LZzu6]T|~.EUzT蒉@?,|kVkWI'1>:3oP-9oMQb_ҹڳGЃL[vj1vfVqT3dzkޘFI0Q|$*a`Kbֺ5Ndӟ"6i(7× XqJN^wrVTfͽNj]U7V]V4ˇGn٢s/3 Ȟ,>qs6zH ȶFmR{Or*x*\5Z|)a;4#'Olv@8H]07qx2sK{KW%4Mtv=U ڊܖڟ$$޲.0 DK^M4T` PM! ]tk"1b_wHB-C᱋ZpʯA<-N]l'r,7h (Iҹ@0pӭ{E;u0*}W|}tJ̢i*y*~`zr ״$ŔIamtOA9BP?Lڭ˲XwGQ>id-B35c^{=Jz [D9 ˰r:v/k vo˧}[^ャ%B=f-_cE08n1'z.=uKu9_}u^ 5h Bҳ~sWJ@aUuoeK`d!\>T d=LWO>R|nϭ7!m.gpЙ׷t?bY % ?Ha2Gy_^zEMw?lt:5ѝ'hE0n?h^#rvPūF=ϿW9W[1,E2G@JJ7_wH?G/t*lܥؿmn{ V{.|o!ҁؿ`73N8+}EPiZطfx֬!qOm[i[Cj2&PKGOk 4tensorflow_federated/python/core/api/computations.pyYmo7_A":/8\5pۢ,j+^-UkYrzKAbk3<}~mT:\&.\zzVo狨^x׉[ugƭSUW|(Fm5k\Et%KO&guzUPcZpRoTꂁ TmSiVQVnjnK6.xdn_ 75֯[=\td"z.4{[8?hde1Sۘ7u㬳+8TlZ9<^{m;JeCvŝhepKV]ߞ\^N`>t~Ix ~n~Uy7Q6i8i)@ġ2msNύG[G_@ p.mԑ?98T1:;;{gjk˘TeCOkJ%LFwKu_w<< AS*hSWpLE~ KQ:o e0~-NE Ѩ2c}?X6Vy8)AI. F:1p,Q rUG3CUѫ xKğl쁚G28[6L[Q$JI#LHa ']%9Y$ @`wm?rk#qxkTKWby.-1cj_bcJ=Y;PVY>$_ƺ.v?[q\q ޠ~ J#4!%3m)FjN*'J1*9; ӮΩƍ^*.Փ^|y7L^Ց Ȕ]DBZ ʼnb)6'9+PH S<`٩ vR4` p@ܜbsw٘f5c@yEDž P3}F>"28U+ 34Ad+)x,0a'dl$%GA+!Pp+BWbF^q4cu`1W}̩̉ƞЦ6_7q qu*h*pI1gPYtԵY:  (],;f׺]JXM|!Gm|WM BL2PĨ77E*[+Uĵ1n9E52I@'9u3rM* [&C vD~ DM??ޠR1M}jr M g.!g)9u6Ia?=DQb[BݍAHU'QD{ AҞ$@uI$Mr2(p]StK:Chm6u\5!3!\Y:Z R%?̤/v b zkp{/U| p Q,8kN72yx-a'$mTp :C{GF$Hp¾J?)|u\_RCK]v4lņY&dΑ|myOF*| rxIZoXEؚAn-51DCf_F r󶕋F e>X"Ii{e. 6Nɣ+āR`_wgBEk Ud }ƘVnFJNO^se ??铫nVY 葨ܾX!ĐSet7ey@`w:[KC,V (*M3~ JI v\98v`o[LO/<p 4CND4y[7L)kxzd6ٍL ħӛ,vX6Y2q ܨ96Y@2stLi=ςbD|s>ǻmx2kQvH&GC6ܻY86;*Fn쿥"-t;L5NWK7g\< 'Ȋ&ddL^ǣ@퇡f)#rFslC&oEߒ1n j]|#H#KnMiě4'A`K\ ,Q7FdܐnP-->'yKN&UҖ2lX ʧsWYNRV3ԡxʃ5!Ԟt}GCo}|[ӾDMЭ-`Nt:2ڶ։ه]a ?(')qHN2kWe:^cz!`Y=QC"z\Һ^*}i$2[uiW;4 %"Z7k$L&Zl>_M[jV9kn~5,OuxZ8!/sYb%IU-4\7<}Dm hid22fWxBgQ)imϧ <=0pi/[4enȥw?^. |<`\@3Сg9 ^kوm 'lXL ,ክ`]:9Y<3Ok5 ªY@׍LeFuMV*$ܦ-D ȂE+^1@sVj+lhtbc bS ٴ$8  ϤvbEIuCmJ/YLCXQOFGIAE0@àS+P]t ʋY ?ҔɥN"Ȟl1ǐ4\(fN8EZ$lqḂ;VbrIK%]+}N2Hsva׀tfWWQArPEw e*(z{t@P@e9P(e (rMj:Щٯߺv8UvI)M$b@[lZ~haY=Lj^ I=Xhe1?f^C`U@QDC,FF1HP.֥aGz$v]t)+Xu{j[F [b 3X"҃I3/gQ.a ftusG PQ-a*21KKl?-}=k<8VIб5ʇdYNq&!$HOYG#eC 0%#/@Ÿ`2%^CnLnckK"4&_-7֫Py_YCrXڙh9yl,.0|~]\,#nqcEI K*(^34~o'MֻFa1eILrC/ 8澅n//~#;%aOsyް ǚ-@0@D'xqt>:4bXU}XyXuƠ/q;f3/u =%aãqHNG؊)⽍I/+Hq1)ʨRsX<Lec|v-l$GIpDiyw; o_rf*k#b)/N1yHZtƩazmyv" !%;7>Sĭ^ZJNn`Q+Us˴G SUq6< 52;H0-Ы Re]1\R9l|[1EXZ:?:˱G=t=)|Q-1bMO[X{N- |dRy[ͶR䙎u'auuF2lԫ 9o^vd}"IL!cpȥꄢ\Uvolԇ{3]4N`bg!D]0nEkiSAA }p|P9ĴCDhD-ۢ[G-7x7[HۤSJ֗GU&v~p7Zo'~8Re G&5GTYךC=Ƥ]3隞e q]ÃCyG]ңǘ.ڊ.y+`Ļmo'IWg]ATVnh2i̭Μ}@uMz#2A>~HpwF8Z!B6 xMj5\MS  fE}3̯464Ou{*,n^/ cL-oXNөfޯ =㈴|/e Qowa/mt܆iˇoenulchim͟|fVܖ6'yQZu:{m׋dǼC FX4KFYɮ|$?tCNg1uޞU?C i#U_ui/}n fjvN19㼟 ) wtE!ط,GdS~7urGs;4nCy[樱sXĺ>ost!]Dqp\gs4k"R %I pǺBKܼg›h%6+>uawp _f#=#1ǧVyzjo_EaGtXGci۪/kN޶ꋛV}qSuU_Ty;۪/oNؾަ{HWFsk%Hu{';ap3k[x# `BcNs39-uubn觵(ufRJߩ3]mَSonerg@3Ar{Ӈn?/LL>r8 ]8J.{͉}EB5DžT[ؖLvDN#-wj}{p^.] OQ6FPKGO= ]L2tensorflow_federated/python/core/api/placements.py}SMo0 WeR.C|`Ƃ=M;dIhv+XKM ]ؓ́˷)7nL+ K+Z˒sĊcd 4n&ch;#L86GjDK 5J ]"2i0{-8~w wY53uu:_n5+jBN:uaYP),S8 wnMMp(侣7n]qӯ/adfdi6e41M.3`,[H|*!P o,/tAhvk,b%[IdZja-wE'U5:BvWa݈3TδPuGâ/ybߊJeQ:^ eh؁w/;&.8xf ԥBI"#v+TiB&8bpA(58VXx%+V U"͉eBH0Z0~AAp|6>Amm3kH7KuĊCͽj9b2[у #VTunZ[K(%n,ͦ79<$me-,64O7k Y?t};Yq|1g+? Z9eɾTӉh ߦcy IPc*F-RǃرAQZ]!vkW+(A,jPucEiKZ}b5tѡo@؆*!c5=d⇌@PfdLk4KaAZ[oG*D <=]שlSekO? nF0>Mޓ|CLATk1k6>y[r \ OCK &4`2y8}qJwwtx3]Gp<- F_O p ?N9&O%kt3eZ0-슝A8TlzˁRJAI׻Bq]$]2˹!-RRNe>XV4MhfuAm fsf^i~ &"ICv^?t,B1+ݑ f1jKoæ|f_9 tLJ7go.iBδ%䥼|SGHEq9Mx*gCNQ(yO&8>]&DPy`35WY2ʲKtns1e*ԦK#hƈH[Sn@2aY<1֜ }>}-1eP|h;ZbG*Bgii;[0^iI@#4Ơ#eQI2hL՜}m|`w)|dw-luH?M_Ko xF(dkN>Ezw+4IoK 9Vs.R,١粈i'껡Ԇ Q8)dlnq~uF?a39Gh:p"* !@++l9FV ԏJzi K6/4"Xv _G7`MF~xp>d_)9qhw_O9;َ[`X[sL*#M/z8M*r \LܢdPKGO^V7 .tensorflow_federated/python/core/api/values.pyVMs6W8q2ɸӃꏩc)$BJBC,Zֿ[贾4X$o[kH+jak;6Ї2ZlluwWT&->q>WD ޶ѤQ%t+}a5!Op-S26PZLRrH*2%^mܦ AUPVoƑ p ls6ug0|65{OnCJZ:RX Vl2v1P*ӫ6RK:i:?'<⏇ :yz9=tG7s:Ɉ Ԣ#W"ڜM|å^yM6L jjzЫR*7J*ZFI[SK*k彼ŮVוNݴhqwGϪn@h\u\J:֡W֐m o7XK۩y2q[5L{t d2bl8og(2NB{ge,9m%AуqY_IO4^6ȏJPV*VEB%F2~@Z%{}}OxdxT!nm:-!l's.IݨJJֵ95/q ,x8&M .7Xs;t k5,HevbC ZByi(VΓ[gyl%%4iY45sB{z Ƚ2l)g*д,E%ٗn" IHr5˫S7J8lPzC?OQDj O]xJߨk0Q5ıl?epcr㮕-XTV+[-S5?o@P6 HI!L ,f׃( [6Z!=lORtLu馾2/3 cѯ/PKGOSC?tensorflow_federated/python/core/backends/mapreduce/__init__.pyUMo8W K )Mb NbP)j$H.IGJnz!̛ތON@_=evBjw.icڲ-:D8_d'u$bv8Ks+$޲h(E MG`Ł 4xF Ql)MSBK TfJ~Ja -o<#م`NO}!¸#v}΃{rϠz$,IQf'd1΂Nۜi^8FZT5glKh7fɑraKvy=]W7rӂru+OE"\G64f-K(t;54!ˮW>FN*|Tf:$;AnG͠x'V)u)(a$GJȏk8.Fs4:ʍ pѬ×285m`J{ib~>'UpQޒ bYDqG c$yDᨅmZU 2 #r=Oa1 LI8Xڤ)ƅ ]MPCNpZ]dQ]uah8؉:k>:tjHgIz0X1 4Ln3e7Ա7 X$}UiRH pE聸mg$E.%Ofpv}~Q_rg/n$=6N䰱FIaƙʲ,EDM.QŹ޹uh<Ebtpol(ToeSuQVڮ֍u6N5uc2uWj7?y o}cSXn xx)#OOS;[s5Oѓ_¾ܪޫl aZ(15UlrSVQ;۬i!lDh4ְOx 1L:{l5q;/ճWg\^yw8w+r㜪ͿY{+`( `3;UJjϚն*Q\6;]Yvm:З.ԓkuyD:_w7w7o+u˛[uG^'ʀ`󱪑`ҢMJ6d\eR)UzeԪ7uКˀJn7 }s ɓ' ufj_A L{R'(265]c6nNNuQm-JT W根[<,{^m"[CQ(](WuٔMt-u[->M 9]ك&p + ᬚ$5XBe.-ʹ\bfvvԟj x +/ F7Gf\ ~!j1[jSW":? _%R졇ՠDgY{෢@|4!!mNL̐ޕi?kM2] `NKv(CU=ЍWRbL㿙Y-i}LHp@ /D ffi)ԻMψ gC'E)x5*7Ӈk[;dcK Y!m`2uKvLpk4bfDtV B+G~QHBQ0+ؠܱl.DC7ـ} 3)S5vc4'I箄 UZ/& 䫶9em5n 䀣V4HMhn D 4|FqNI 7&7 ĂHoDg6mȦPi/}m6 T9"` @Օm"\àU D YIUb,k5{ۢԽSIF// Z8v1H ;F դl,lj[nX2^r,0>{"Ʃ\}۷ $PaY+[FRrZ.ZhCވ=lsYC8R#\t 8f6ͷY/[LsT,4Hu"ȿ$weٸAA9%s`!S-)j9'.K f*Mx7>a`%s{8*0t!u|_=9dSH[rS0YeCZ+u]3@{Pe,(N #wgn%I$ޫ%X$1E96ۼ,X\pJDqs,N‚c /h0!pp  wGuk?81zMbPmX`dQ@9jԔe ; ա6#"{{!p"-wKeޡ>wnIb(4|s$b>Sᖋ=J]a>6w3I9CK!ef=Htlp{C^U^|6[JBS:>tu&eW"Fv¨C:#GZd ;q͡;Ü@1~$ym|]H=(zƀ"RC hgsu )`FWnWc@R#x^w%֎m]V9SQT4&\o΀eNeIh(,|踽'%C4 yN Jdҍ7f &4SE>nƥ7zVP6#-SXҴy-!Z̐Ws{%^R.`S.p4CH,_'zEYV8$༃%:h(`S" rb@ߝdkA@`n@"kP.f [K[s"P@ x[㜣(A15cIh&pf>%{?7eKrC`( 1%L-Sg%YAiR9]-`+ 8l9~=(B&jNWHp t0xbOzJ~{\ywsJR’%3š֩/3úz@+X<}|;Ofh#*pfQ,LCt-`ʓ\-q許*m@߸O[ǀ-<ĭQc6vD[ \3Aý:| v"D0ӲBG&4]p+:`YcCw<2R߼9968}HOw6}B M#z{C X_, (8T_jᒫ0f}^ߵFMNe-,2 IlRi9.q/sҚN6i^09 ,!+MmSy0qBk}Ixpès>Q[;8Cw_ǙC_C&v- e5؃{_϶CvN5'qڢmʡ?ȟ-硘߲TmdLg<rSoghu?`RMOkŴnˬ9:jV ZbpE[T'xu+ﯦ._ !}Dm^8EqSS ㉥Y-e\^g0>e<p~F8㮰nRT+*&T_mUQ+L>hE г~5vЁmS_bT.Lo,Rg36>6u;GC(+k!7i}+SvO&Sa6 4<[VNƭoV \ DJo=Fze8r4_XʳHO~J:z͊ߴ.3wy)*/4zFrLD^'6zLjh (Dq"7RMə]ہKSǀxy@ 9.%9 %QTT^Ju6=~cȡE `1N9S!mL%s9_y)TPoឥ? Ԇ67+0~HeeJ0YXxLm\3Z[xVѐO' BFK{gp/m}RlM_-z8 6Hp Kn?_t6}VARu<*JPQ$θP&Y[^~ /Jhu *;ݭKq”t nGCK%I]%s!N@Ӗ|A"'ŝr E;S)~-jeݠEv̥1js$9Nt8uu8L0nٙGM K~|&EjN 55;fקN۶FU,Xwr4b;~fvB) rx?}#LqI\(}Hjbxr>RJu`ᯤzȐB4u2xK)=r/GMtHy^H'5$~D<ĖXh}[3-Ms<Í]U٭M!ղ=[7T.ZSK-m2mzcΟh(LxZ[ߢd'Tg͟&.@'߽¨%IKN>81RϑuLBe諝:ģr`5xO>=ba]a 鯿Vtt"-Bryi%,ەX[yf%6kY YKi}| 7'J{ *E}6euJW:H(! va|/5BĊv%x!]pr@aܣx\z?g}:la6Zmڤ!yO7 vtaom9LqP=|Ẍ́zȃIhH6FZ:,_]ȨbkJ<L m|SsxM㔃bAK!W] Fa>_+c~/M&mM8RR{}k`O}S?Jɕ$?m[I~W;H9QA9t&4pyy4(~| }.ees.XH%xY5vG0D˃m"]Ehcc4; }({ v[ęJvn)Rώo/Xhu҃~z3J5bOt^DpĎgCi1 srf?utU}ۢBP5P o(@O`ƴ7OM?4fh-O1Ώ||(-כa֎{$^c50l? i)Guq0)oL_@'(c+"oxli !wh?L t0+F~ٚHdH(q; "e)G j`<"r-mx;F ǀT2œBpp9}jsx՟o#C;Wn)%h0LC>+ h8}VE-WGI|$_xtnlyxlvl}#Zm;o՝ *"3M$ }ob !{ixDObFnrߑ;} GZx2)m%TKӁZ}||]kl`/F_{PKGO~}Ktensorflow_federated/python/core/backends/mapreduce/canonical_form_utils.py]s6O DKܦ۽΍'CQ$sB:f.d\6" ,o %9 )Y=wi2srhqftN4q=WY#~p>8vQh L42T!Lg15βCJSrg97T`~8ͪ [ 3t(h"IԱ( f*fM¹D`Nj,KSr),c-K03&Kq~Ba\BSYQ_d_oWRQ v^'87͊ T*6@G_V+L?F-ڰ)E4ȱ iThdE{^u8|1f*;\AH*ׯM"M”F}@z+c)ffJ AAAx󗃡p`~>0%N>}1I{x%D5|Jȝ5xxK S9$s9,72 `Zs7*,pS]g.JttdΨp#GC?N<L %X2A%g?&R1j˳&/TlKP4S+ll(g9NӏN\~L$hrғ!Q3jGj+`u:`T-1nd*@*JPAxqJ@KU+auHB}a^AhU*7M2qYڪpDfLL4uJ[2oPTKv7Z(y]S LMu0홾쇢{s?YБ*?\qtśe"2v A|Zztj'U!)|}@Nn޿yߟG㿽<3@EV,t <~ (t#iLD\}P Qޥ8hz&rQ`^ދtHKz.N!@{!@W -yd9ON) <D{< a 7ze:0wde~WE` ʨ$S=.,JU/ZTОz2-l 'vڧl$!&B؅¨;-gSWm[[[GBj.Jtfp2}}cou٫fv0Pȶ)ŠE\duM-O:-f3&G 0q&5%C!^㢁zEŒΐ2GcrltXu./jX{ eCCqݔ1n;̸̽۵^,i;my$DZ-&ȑ)GmDОGmYiٲEZmr}nG#5mN/^)~|u,R0,0Cu69ݦnPРZA,R/,e+["2Qzz+4p[&PI;hHxP^hH#qke?o,AJ>VxJ)4S\D]q޼%SiT8 az'!+f6ڥҕNX|!*DNAu-Y[zƶzlU꒭ŰaS:L9$`fX_CC?% [cK }0ddXVtsGG:ª:yt\EU9l}ڽ=u|Veu3RW4︡9ylGAUS-vbk~Րi+{ ,ࣾ}@*$'#Z?P^RNwPH?`*qA0(F{pþĹo?Z`Ui$寶arT{ IigYrV [6)AVvܘDD@6BHvbdPb@${ZT~TK-SQ.b:l|Y$qO3; >m16t# TJC: )T58zxSکǕ$Y ZD+Y߯1 ˳uNV ʛ3d髌E $ s`Imw)T1c}O0s) _Xƪ}t(ME^o]p n} :8'9Yb^4f~Cp@B+wB9G8gEsZ.'t!pIg;ΒbPR\\3~Vށ,7,>R&FHS4-?A7,'inLS/$JYjSH| Ƭ[yseRV4$h4[/8̝Z ?#^ 'qBKq [k/?f w<ȿYΝfF>r°>*"W-*F[BRWY wf;0qp`p`igZKn*ʼn`HYrǪKC?A~йEcEoLˠ۵C Ǯ:&(Ɵz.u T/US]fV[+khKLur%95bOoy=ݓP_,TE+|5IF芜~pgqò{;Tź$lmw[v+P1;q,QoS]XPS.lRU&A\8PKGO -~Ftensorflow_federated/python/core/backends/mapreduce/transformations.py}ksƒw[c;{aǧVq佪8r)_ c%oHJ7{Qbzf{==_YѨ~,o_v_eF=}&UiQիUeZ%MT;x'Ow|xb,fVuVGa_&٫lԮNDVU*[FeZm%"UYsCU@&x~ TЄiϾvl'e:'__|fL\i]*]VZ{laBd̓[UV*YW)|ה8*kb=Vujn*(ˬnlkWDQNhzDD[gg/ཙZIA )BlV@^&Eom\$EA(zaf\@C(2Iz.]H06y +y1ciV f΀V06Eз)3,JD=C%y.`f0wAHAhZ_nzs>%1ARy`[ P1hr[92Imk#RŴ3Z Yܚ iIfG#،Lԫ^``d/C^ -jMo57vih’o&΀)--Aff͉L2ĄAWâYmi_&TJ_P. y.gh@Ӽd0ȼśTYZKeŋ&dfHĪVHC^ZȥaGZ H\g1rۣ#>=OǪLn[45bE^BHbD{4}$W,IF)]U:9&zދgZfeȟ *tݦUB̂1$mFfp\sNפftzd9Fois^KT.]o/__]~GH0A-|Vd԰AKV$sw9 سa͏Lp-'8眶VbVַmD o ϙ$! zJ&yM|GlOPQj\ #c(+YS8RκN69] yyX! y@YXaPӱ:l"}0 ;vH=P܀ԺC]!X]Þ/eq L?@M` eO '@h f\c-"fX7e-`٫aMAZiKRD˥5DuXuk$+ p!'p_Od?lOF"F ˉźGNP3EQG6&RQXޙ2[AYfJ˰2qaʎ6 J!cc+7h-0JT«MBَl!lz*B'\pkla-'JÌtعy6nw9ff2 'v}Wn3[`u`d`Kr[=զDo%P |J ?.943؞统!b7eM9C.sʯ:l@qdbvN0$.1;wAA@V1 0v.$lcɒ46\K]fkZQttqOurIi|OwcѸ(<Ѭ4 thƆg#'̈́O v v9kRIrNSrOnr>,B'j+pI }i<j=Cssyw?`Zfjb*BF,hwIF5MmY;؍p0APs9zo91 ӠMo!_cz))gF#xGL6Zۤhg#fdj7C5[OQœ%UrAݽ (DC@@yD>2,TBAMδj H٥tb'ACsKA`k$t8-!'7)`c+^ XRy%37XydM>ic{ A>]pMtcR4O:ݜB[` nJR(pfA]y_F2_h`.@ \D$YeΙ_zC_pW@aV'' %򊮧.W05-աL+%M36DHֈ[)B]ڣ_sC$A"RTAsjp +Q@ (C3-2ZNg"Ǭl/#lģ<g"m}+s=oaeab%:ԵcXFቱ [`.>kr1)ƅ=3Kv6n.$1EŋA:4dհغ|M\EfF)ͳ Sgvw*.YsD)][e@Έ <0`HWFfs԰w]WމiH]BH;2"&Ab|QoKM@N}*TȾ'2W-8R|k ( PnT)`@(զ+ɡ3-m"/x}zdzE),:^9 l+geI=%-Dq4hwp鴸a?T5EnⰴN[aYioɛv}'#{\5 $DuSbSTfrf%3qEK!tzs;uTrsĜ,?P?P4 qlF[iw &_t=V=Jqc2GoX{>]OIcY6K7q=٨s P5;*4El^nC֑9)S~JB)Ou`LFloO4Zrv]Mު ɞ{ ]s'wp^5c|.b3bk[s~$*s}C?D9 E5S5|E`մrmAsa0./s^n~>Қ 3qC1Ť-M y*3_F†zXN&l9恡 jqe"@nm!M0< ,-`sT4dVoIN!cůu0$"FEvz붢s q-M :|6M>{lݝ*;9{ڔq&bGԺy[zJ~W N_nڮn?p 巔%³ QC6y01[FOϢ m/&$\u&-j%^gL*eyZ H}zjlz'^4RbAW6ho41]WmO'-Cl랶@hGhax&*lP)C1c{L=RD.I&Jy l)J7 3jxXnFP`lF` wSGݰM?tcFj;q,;X-k稰?wp5a`^#$=񞐒ʏOs #^$'L,z aB}wj<뮥l_uu) x29-Eѡ 3q]dwOO^{"ϢOb:oRik9=>XLB8r@G "_alE@N 0p̺lmQCQ0Q&Q 9Vwg̾~ez:²N/ {xϥߕ_[bUPUQj7H=R-y@C==gDhEs$6ϝfVH#'Z~M4`ܠ~Z_<'7̤O;0MID ,;#c#(v*oc*{k~uSzCC#Ƙ.sZb8Yw11 T|m]ldY< %y%媢S4.!>qAGK cOp*lnAGGf bO{h[mVwxOo}!Cy0\3JTZ);%kn+jboxSR[`LMPYioQD  `T a$? f:삢:qK[itL۬ۜʙ}6WSqMNEaFvgjf~'Rκ|vg+w=3D$X:XHlRNv?5X?P?=b6`J~uHqΦB&jnxP5a.d"ʡGsմn {n3ک侬1V՚r5xV5kv]oM4Λ: 3f0ӗZ/63V϶ r7hil;]hDfAoEh'5kc-O 8c?m hH#yg|{7zړ {6%V#j-2nMO fhۤoTܭ%VǁVB d6F@F=+lX%ap,BqFĞ3r$M^P#}LFOLM+‡N:v p7EfZoU Wnyۈsz½`)S=Bߋ{Y#]nܫ^9B2-VqSn0HcapOݢBtW8bv#uϦa kA7Jܟ3{.0y{mA.5c" Zw#ʟ GtFG= ?qyG߁yw>7WoD'ciU:' %q|@d{S++p~'w%j3=|4Y((2AqNWD=+N ^3 ~-Ɩ x瑓t|(6#toͳG ia^.;[aߕY;[~}FLc{~{}ٴWڻ|]=%gf#PS2d-kt7 yIW]4c>4tTaW 4140SMD`>@jloN0L*[!KgӾ<X! 1zEٗ [9azHԾɤRFv/3Sz&`-݉9^с .A'h pĎ18*sV|m)W/wĵ-e+O N2QW%uY \=*[Zh`fFRo%?9 ]3^&NWN${$hzB&& 8|}uņKr@ >"s=11w~v5F[ᷗ\EJmŸvӝ)?8cuoUvJ:]&MϾ>W^oҿcevvl5,L#dxɺ_]mzh5sjYyؾ83gK08&JBіwhb 0ت?(CщN^h=BޑΰƵ=Fs"ǝќ}{ɸ֝Ttf4Ib_61_踳_ M^62TrM1tыSP)RxP3#{܁l;F hxaB$sO[R-!xH;>8Sm;j.]/o(nsѨ] 02,/{evNc%U~Gs{ XB; w6vJm1)RM\ʼ<1 BjVR,|O60~nM^[5M:ږt\,j^rrP07 B7%.rTbf>g>_3'hvr]hLpE[zܳ8+L0" #C>2 %n"as4`ZHs2\6bZXnNʛD-֕o=S|$ BGtl o7X:Jʡ&+S 8PHlyGVMc /n)]n~0M9͊1xh <5cw‹=;~FfX_d;6T"{_ymַxd>-օq'āN~vl$و>8i$rNð|9uܜ>L%=RxHzwL¹k/n3IeU4}M teB xpRf6^,l~/dĨe?=`mv~#c/7kVg83&xMeQS`Jc,w Q73',cl7wrQŧk]>&'Qo:pDCf𱹘{EI$Q*c{X!![ǺPt  <|j|<۾Cd7t~qz5^xN` TBUa+e-+;L󔠺?hūqkO&cW\Jg?đM?SftqxF*tDh]{S!הi{X.xj)FCsݳ{Ʊ;49(c:5jD-- 8jAAW}Tn|Y`k\E N5Y+?3tL>^Sڠ`}!:KHƌˆ5pP+a U1cE -b {z.vΉ+g[trބ@7rnAozGa\"3ƕB5?-å/0.]0tU{]~=+}皫o9) Dp>[V1BypzG1gsk -,(x/x"f-MZ٭ˮTdԨ[n(̂>=BsT_h(i:% L*S$96MBn6m$ê BuplU ˄A>'܈ N ?,V?N)F ' c>ߧ ";im͎]ۢf_c.fQ{!D^iѩb&bv{~SXB}@ 4asR= ,:/ WŞnґx6̤f8[fΥey[HN꺡yP^^9WLsS5fg^eޕ \`iB]Ty)e{hVX*[E/Yn^7UO†ND.\K fIz,,a,7_.G&<>3Z{d 􁒋m*|.,h^Q%hk` _RH|vx\^cs`4?*dEv)'Ÿ8ߢwͽ^Ql#2Ҝ:c}ދ1cJ`OpДc,HqM +kySP mn-6XhJ21!*|Dd: _̎Wŗyk?Ӗ͑li#z_i]o//p5>|>;ZNZtl1qj=g(=6Qtѐ zGeJ}"5PKGOA6tensorflow_federated/python/core/framework/__init__.pyYmo9_a_@jS zCڦ]hrIUqvg7z6]~[6K؂egό d䘰,N\Gvp؛W;e9)DV[|0Ϻ .1:U Rn,_&38[9R`-3O" u2AJ,6L44(Fm*V>]|<(@'6O萩PYә%RxV|HrO(>GJ 5xN+ 1G=X_PN$~$'"BӦ=;\Wxˍ|~&Co*$?~M"DI1`f{σ> j<\w'gA=.( ΈbOTcm1#ڑ:vr3ցfF qHq1`Y%"BBnZ\XklեYK +MLx\m4BToVw\Y\el@LqscXav\^xC35.ZQ&ed?B5jtҥ\8@<4bLQ^ ,*K/Es ZQ%5#}yhyGv$=," ҕcBSx1Kc،GS#L~6xkK)y4*e_ *Q'3`LjCp'V} E$4ɱr]N-.Tt!U6fe `L`Urq$K< M(4<:1fTLqtx3|1;}ۋ޾d0ir8Ӽӑ/i+M$k ;ee ޛ% S@Y~g3ΜQΙ;$] oNK\>ʛŌ+ҭY,'vKQqw5%Xp!+۸= Y3Ag0?Hooub*F)YQJKmZ7?u8FHQM"o棃cA|yq|,tV;]uQh\@1ȋaN[{hǿF܄hoؤX1ʣc=#citT/ liLh_v6j[sEVluc;敜U|cX37ac\M,vYZjVP]ɨx%!H_ۋZI&b+)Ռ$v]:h-yOȥP`jœxR!-f^b%RƻWl+ѝ.`5RK6wK`|ܖRu!LvYJ56]Cɮ-y]7;PPKGO;~Y1tensorflow_federated/python/core/impl/__init__.pyeAo@#|i%R'*+CdaP¿@\)Qvo޲ wF9[iu,p{ 3AI&X[ɣP i->ċvRF ڔ:tVV|`k6w _a=\pc@j"'*{q|D1jaOF;5u2Y%0 1δmҽ(C֛|PtxݳYO#S O&v< v62'u9S/oCh^h J ȊEV1+JxL4/M}Vf\w[H'+ Jg'~)G 7} *nҹLcK?䍎Aju‚27TGG_z^(lsEk<^hWrݟ 29tensorflow_federated/python/core/impl/caching_executor.pyZQs6~ׯ9z $խoM3Mx$$ɂev RdpsS?].~X 3xẙ^ vk% >d EV"WB$Bq-vZ* cO 3 B}*e7 p}u04-efU)@,LXɌH%bVR/h`ZTsa|f85L? WVU(WWY0:;: ,eɔ |/O̔X+t2gzŕ-,J/+6:`<]/>^^ίO%|`FB& V0x(FJH0hWB Ơ 6V%f %%K'NE qI?,ƀx1 oOLyM&󕴄!n'l{'M✂Ca?E= #Z,z"}0> {5i!Rb70p!a]Gcdz )uT*=0&i̛[~& [Z&\+d/@!/l%*u y~(X;Ńi"K*SpVx*m:&Hȃ*H>iȫ93Jmu3gd`9 khzɬxdYHpКy&+C p7NvNȐBX~zE4+m&bCA^AS+l6jXޚQݕ 3[gZkC}q&"-Q1 W-JY 1=:M-ME+d}H+b҃ؠHÈz8?Խus,rF 7]Cu;8z|vz||59h}}tt*}Vc5W{jBq|so߾[`<&Jc9:K {YAXk\;$mE^rRw+WxauyKf4[R~ GRQ©LS(n`G/48~8/4Z)Ǧ&5;TҺ?mdInOm nwHEd}gvoV&0eSryM/=R2;bwwM! CHh,Qk1=A{EXJۧ7sB6T=/ID80(.<ءOe;O\u>o!KA(MN [@tpwؗϓ֛u0_FnY -zaE# ,OEW α_e9B T%6lB*-1Nj `Y%e\iz7/ɅA*W"Ų63mXXeJk H$~q>&3Sd")@+~%]^/(fkP…` Bo96^m^9!}e; We&ax`+l:md 9‹tomW-}8Z^uV4:8>=4ؔvnt^Of{R l rf [D`8X3a=ߐgk&VxDNԺ!c. K\ؖVNH]qƮG2j4u8ќS,O؍˭>x%Xߢ1f42`LJ5s$cog`篻9}d4aS赘T{nû/=[yc,C~̋ڡa/lEӶ ǂ+mo\ȶ6tļ^rm-3cw}h};ﶱ'vn>ȷBRɂwmXrٹe~7ffLuP0<~etn!@A>}Lbv#wz)Wdt;qܭY 77!='&.}اݛ.IמNiQ<80 {t7x}󨬫 w'[$PUWef}ϊF% ouF=MuӢ.7yyޤJt^KUF_CO|jT%,S5_鯾^m{U)jTwtרPr˳X6ki A& _J0\7œ'f;+'9|w>|w 3>.U}UJv0Uiɭ*+\U)|ה8*kjr&U PYTrxؒP_~JՇ㧷zsӫ|ww_S`nWa1]#>7Mw*d+XWqORuUޤUQf5f [ ϽM= Zd贜\|Vp6GuU3/}3ƕLUlӳwe)uGO^gfH--X:§x0sP j.f#MJ<+DE@-` `ù*_j|NUTf_LBX Z"T)@aE;/ WI qreAh\(<P97"webM9Ȃ"pkidQ2zTKkB~*қ4Ǧ:ùEK E d9)aSWe @Ì&[?4z ;qz\ÄMť+ibǎ;2z[#]ߋ)mhL )5@^sC$`@/~):(gNcfFçmp&I>ݷI 6' >ynGfIz2oeO9U A6-P/@<gF01g;Lh\^^:0d٦ 84њ7HxziXaIEF `30Шio-x%05u'F4 -gX,T3 :[O=k8kiY\}~f> N{FǙ&{Hwվp gܱG&BӼaOn"0P$?܀X]?dWk )rveha[5fjV_*Fi%`Q̵i`4DW+J$sg;u+?1j)  irdvHO+jWzS/D[T3oNytZ0h6@}7A[`}Y%jU*ΑCq̎l\?g܃r^ vuI#nOwB;s Bi!ҷdqu)AŜJ}墬_WYQ0z?8cJ/FrpauZԟ[ m- ө]Hz\[3O-1I8`>A/KQ٤uz(Ț3.YkCqc˗t W۟r0xAW.u"9C '<=5;4ARp X?2p5quh&k?B@yR%_84:ݕuF&qE},uU2y9>;qGژ"O1ʤGN(^C}VJ*8TYq2S8@eG,NIdUC&h =@)8V7:F-%ڡ$3t~R-v3v*@Rq%#O.)uۃ 8\} L9y4y ΖY5`a_vȈiQ)oV} -Mbr\ۇU.qA.m E\2+7+ ur HPL7 vn1:E @܋HUvXSs3E/NO;9%'ac_}>0񎳼u>h9<ݱ.ͤK '7u0 AդmYV(1C3eB{J.Pڧ/&,c%q< +lkDOn]d6T%wL)ŴE 70bpp]䣟-:|If(ftR^p#,  6}r }0|ߒEM<yH&(ֹۛ͌%5x0; XbƵ+Fy)2Dmm~{r] } EǩxD>n"_h&,[P:#ɕA>OtUa F`YTiY{3)`w8'j3G D8ZzAw-\Nuph0"a#[FyB1:#zXGF}AaZa@pſ|iXe!эif"0e*yF`c˃1[Lv0I\W5fXWҁZzlFivT.>u600z_)LߦѦĿ \[/`~lbze28٪Y`Z dL$`ߖ,ao0u8-nL޲;$:l qB*]ػ]2p%D߭`lPR1 F W `_vxm\uM`ZrF9 A7Ʒsn=ݽoD LJa͕sIR*߯%ۜH*;ޙZAtu ] j;#~eHyl2J`:?@:YYo= =I\̑pVrq&x0nMr洹V:(K[IH)uCJ%稅KZ^i|y@tvn౅'Oi;Ɏ#CYB {k]ΌH+ѝɟzQb;XI!c8|!1Hp'SYu?%>4:[q@py[@+l(-lY!7%NՅ=l]nD!/$~ 2Aò`#4k`Wo;^ v N @Ѳb6MބX8h1ǟ 8M tON$b ڊZjBD]pO0X~UɊp_0*⻇Jʄ5Cx)ll)Uϻ/kl@# 9wˈLG7]6mƷk%=z\< &S1֞Q}vl6\bUuT - 28c5w>f5/.O(Muh <Ǐ%= _W19$6CYs ֏Xyz[<$ysQ3o`oxkOz ޫZ@ؐcMXXf[5[v~`?1ⰗtĎ'x@#';bKEl=-~ m21]9L8J;F D\1pe]C2ȯfLtsk'?w#L/u :[SW9" s2<7adIZ& LBtHH\7(EOFPqB2A&@GʡTa#/F2Kx]{q<x7뵓Qs<d>P 1*;B^L %r%אaĺyz( 䡻T:Z1nF! M-LD^aqQA5(kGQ3MRQ%Ң~;Y|v=AI0ɐohMaSbm]Eণjj?fDѢ:H\GVeec팏W;mt-ɅckO~yPAv.pV#ӥVfǿxr&qth-x6?$ *)XcrʕǣA~F 1]:i2UժT5> M^5 Z/=& .f8>?]4 k(J&dDk4h퀎>8NT,騐'T9P~,G{{:6E?_AьH}. 3a֥ ݐq.Z"mAv_~Ȇi]{r1T%iN:I Nl&:7G%znhb@ך#өZZ䷝C$`>]ՃO mEW_^S.1&BEOA*Y$_A \U 7 Hvn' 1ulOAvn߿F@10xNHCH-#,s hID;#To?ԂnY^ظ>3e"kvYa0ZIvY0sgOknGHR0饔waDm'7bcM`kHqA mO};Z׃mHm,#1x'͸o]nj`ax4؂oҚ^O[lo,{t[kgXM jp.bX pLBu^+駏A{R,R WEx7=KaMHJ}n3a Apnuێ}Zr&QrQjY6Mc-`J^$X?uk2,j)ZXԇg0ن i?03Y׎cQSҀ]J)͋;Lv: 3U\Z G07< GƳ7vw9dva֋&Y5eu?[U)L{{dBjk\vkQ񝗛Vhxuf:!ilZNpqt2n-@φ _p53Kyf"L)7Ue(y(j:o~b7pa!OF^W4G l@XxP-bw3Ŵ$-{+fsuV') ʟvyrQm-#Q軌J\?6&؀iq)N?Dyi7q+ \\QN##]s;p"v`=P6X)A{M2HJ1WJ+ҏc/Nix ~a.PU]Gc a^8ymy'xǢhpC{Mzî+F~\0_'"f/`V-w u~ _^3xr.Еl22$M :`c~xݞƻ$ dgW2攃On|^ڽ׉s4p/eH?etA _}̃˝px/>^J"b<ɦYqS~4Wt]-q8"'xT*R_yD~Ub,fb)XCBח)cG z*GgaSrٷRS3~MgP<1IʖT@.Mйe[[w݅0'kN; YǼb}7YTR p T>TAߞǑ2Mde8LHM)]&+$N]ww24'bjgiCSA4{NihnDLf7[N͑24"dǽEilfsSG X<=et郝BF&L$Mg;W+TVQ74087hAs)#YbH]sG *NiuԞ~6.ըNmEƖF9smAS tdR2!ӄWfozũÅ &5UHbи&$zu'dGw1S;tr>&-4f[c+m˛bg,JP|hЏuƋ@-hK}%p-#tfUb\1?W{kջM!Rʭv"A (c]V_PPuGR|gy[<`4fp:5Vh.5w';ކ?,|Q̰y&J}.\m~W &{9زrJ=Dj[~|Ȱ6ߏO}7{:yCgN̢"%!S`X_Lat}ەlMA̘wP &?]*WAv9]?x. }UMQ`m= \X4aAN/PM3yחh8i#=4)X'V'Ra$D_:+S<_l7~JFw5iM>Z OgH|qHr)}n~ V:xǴq@Sw! ^Ao*gQQVqLX#j}NONŸ\)_>J`3Qq$YoSG,n__"mK8Xw6-=L ]Q K ș(42+B'S7 qʘ vy#^&e] *ტcG)nюp:c;BP{`Q{=B7*cakb(  =$D*W$`ypl}C4G|3H~( ڏrZӝЬ<5Oפt ց s`(; w`#d2fzn*'uHzo0ܣϨ5z&OEMHhiSAԽ6 O/g,XK @_ Lgɹk=Bpo3`XUڠ|Y+rZ\\O`|8N7v2k,\ѣ)xu ps;׫*vH̏y 晌-g(\SZtW^d_fMa 'FiE~^>nxc55zoPKGOp.!:tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6Wl=NcO5Ki&'$A hY} ʎk!xv>*Is~i0ڪ/c/%ͥv^5fEWVxYѤu >2xkҤ%~ɘ),;C8HGGԊ5iw&Z5C);OJSiڮQBV/5`d^@Z@S-Go}w~|Z2f.(?N/.go8|֍tWkFX +q ^Y^əگR)*z@Ɍz?Mgc2~yN_&rF7tqsa:\&_1I ȇ2~TGYqfRM:YZK/z0jCrMx4U^?Ne u|b՗҅*ѰAxa6hT[R׽svXoL`)J+Fygq9꒡|(Cg5d'yW+AF q_K XUpZZg߿ʄ΋kqx+Ǻx{2NOWMϋƔh4*nHrRu/Yʖscjl9ܦ'ViHK{4k*$b]]EolTY1]H\ q2qtnr}.d˝L{ ~9Q[  :dA(]6}%]6 s4[5d}SFUKrNnCR%k@tMG1Z`6Gya*%zD04~:r I ۾.<YT a;.Q~ME˴{9(3e& w?<i"-v;wD]!Tn7zot~ɻ'yNX Oz{j._!d U7OqJuR:DtϾ/M>Cӷ3lx֔A Qp玲lأ`nA"P}Gr{>ɘbFaq|zϧ'G ^bYE-R3Y.%Di+einMq;0'MD 4ho`̃x w7G\UFǂZ >Kzn\mOlGZFNc}o%ǁбPtx i÷WXDwz g~XjlS5cQ8{Gwf#G_sƓ~z軨a=8ЈDr qeDoBnS%y$Aņ.d%~\pt+D3ʏ.d9,DnlLzߍT#˝e<SOq N"iHo+3`w?"C$|]gmN ʴwGqA⡋— V,rR+c3怰5pqc`HhM1 La'`έenr-ZT`(F&m_> cc!d6˿PKGOdii_;tensorflow_federated/python/core/impl/composite_executor.py%-.i[* MI NqěL*-r.<$.x%^vEC6EM"4>&t[4'Ifi'<C#DcX-|ZH\3]]o߾}xxcFmX_Yr P|3ZUӤ%ؑx %R$^PuR!.)@YU]6% 8'N+_WW_]_N//O/ϮKŧ39;O +@C%D(GD]Qj*8AՖ&*M|kJ=-s`liI+f-Jn:ٓSիW9@tS5\9ؔZP] }*`pPh?g|fHр4Mv)xXVhu_b),2ܚ݆,bPYxzfgl<#%DbB7 \%o"A+x8!J(:fhcI? ~YFXvkR,L|YxE3@ 9H(n@[&u\1p"Vkrjajx.?~[EA0n5+|uym5Ov,%+6 #.m8b$ܚ| l$’fg"*]ܑMS ٢ZH r8 PBkCs#?1G"$[n X54k=,S?8/v pHƂx[=-ձ€sB rH< bXb4;#ֈ?`gi.!ʤwxW^b1R %E%Fb9T7 \ tngӐ>{Ž igg4hLKӀ qn3Aejo8r+=@5lSm?xSDVb2ױh{+&γ7 +iĞFB0k_z ~5DJlh6 `\,ZWѪk5Bx3cݛù1\Q}gd5\=eO:{}sdkqukܣG(ޣol.u#9J8b@ plV,w~;u{@"! [i.[ŷ{'n=UY1l6c%XJ(7eK@ֻ)JYKjvOop=݂9(nz6XPDΖA3qa&tJ('.{E8-}+ VBIB}_~3RgercFś@ %fS . 07K!dP%PVuI׼VC*N B-9͢5, ,2+ȥm RSbAؼ*+OY(%!RvgFM8Uz"lYoR}8:<&\ˤTMlpJIe`g1ƭ(/Z Fefy7eouv0r,fGop,jsД1NJh򬼙o ;4\1+\=aZ}OZ\q!;c#WBPwQeu),iÈk&C%e-nD ֖Pm7m>]^}-P,5Qr=rH裤2aեV*y3(P^gll_{0o6Իf#vZY8g>"@˨iIX0\ϭsy"XWL,r&1JK ~V`*yHBFɤAs:AfXsm8ŢoZ/x8kS8L5) ,glij|5 6n9h$̟ƍA 9PB֚&|wàSuH&ntʸ +.oVrsݎڙȪ;bO0}Hb܄צ֕y쩅5 `{mKd>Rkc{}+4yCQ܆n8QZx[pɏ2^)6]GVA&grK{F'LD#Uslzjŭa.B5S?Mi0x{t0x1'37<9T`h|ŎF"|%4o~e!;$i6Mb={Zl#ixE_ d1jn27AOɞ`g_J#Aʛ c@]O`=W5xOsT^]=35>.wr?xy#3hɑ!rhiQ^x'#߷nBwV GKdÔ xS!~ ES4"R#?0P5StHSZ^aYFwX8LҔ߹22tAZm\@3@uoʤTWg{/(:'SSLvCʞ]*s("Uki#{K= IdE/(: "Zu)6T|kZEBgwj?LNL rYitȱbKuwwLGSg2ߊ6 - C}qO9Njӣ1yuDBOiȘЃsI=ԝTɱ`ykDǪafoC_cPyK%x›c^o}>7՟V'H^5Oz>KwQPUwL0?j~Z%Ũqt,N =9f&ϗQS7C[FŸ>!7:Q'$[[%w:'_CH@ي3nG %&PTWA,(47/F3d\quu`;.ԆtAF8kō#݄d7JUիqNZ'G1qqm˃>̋TD=7IYZ1W7⩈_;iqMдg-%qwتWx0`GɝK[1N|j͚=+zD]˥{yO3z&ݦ[ 8L1=3 Wx߿'}V3dO^Y\wrjNg0+v{!ڃLڧ4<(i;}ۜN-fUT@ uٷr4oj5c=m ,}2okb c2K Iڱs|GcI`sbXՈdw>*E=\~~}'@簥e48):aJ>#<1郱DS{ $E ,|qT%  fp]Q`BI'-$wGIJ]>$yû|a'PlZ?J[#Wk/~)aV n1E#0-ppF^dB6ZHOh9/`fk8B BZȤB 2Do %E Tҭ}hBN ];?kyUUlCmV窶fW7;b}> _KiDAM%* 9̈́+#WXJ$TZgd\^Zzt]ʗa8]l1_" ϳowyz?/g7 l9-L_:\Q|. ')'m#隐-0L\+~Bq@i^J(Jnί* kd֯sx`^{:M& 0Ȍ@e+ FhCV~,O_ Gy±h ?#GY+0L^(GE)Brې8l#1y[yoj`PΟ]dH#QX4R(?-T[Ն`(AaGk3+'68O -$q0/>oJ)fByQexD zo=6kgۄ KN$ A&d.],,/:lv9y˞LInV&:XQ~ȍ;8%mPח2y4xYm&L2߇pz}xB[ѯ^tuf ;^mO *xm7&T+wԎ_{Ej:7@MwMvnf2>~-~z>poW8E7I7hnpRGT/?{-_8Nm{QO߼93U{ݜ>‚ eN]gkqrU˔m;Tʺn-=@g@!+4}]"Fůzy8< !3D %6:N31S"նY^ϔ U{ӨY_Hhπ"ܷoA)ZP(=H͚|kWˡ-*oQkz4.z;Bh!~+?6[`F[ eX {A>UhqKjMu]$02H ަ3sy]ۘjæ;l hN{C/'Q}װor8@YVf~VǶ>(t] Ax#µkn@Rf)w4-U :Mנ((TAk-XADZiJ{'p'` ly}Qk?@fΈȠ"2-`7лloyF(UQ^/Az?\[zSi;D.29Xt7?U5ᨭ׭_a.G>]tV@~V^hF * ?kJ{ٲIi MXԉt$"қj; "+Gt9B rn]/v?p^ w_GZk0V70Fn~5;#YXGv$j |phG y:We{6bh kϺeſ麶V׀+rZ?,N "xZ1@Q!k5r 97+jW$SqGi C.B\E҇V|ڎ5Bޖ{xn's>k3Ԣ`wo2 AH cﴁVtzMny@?HAW](LM(W"%d\N]{JDf&duK~׽- d[M {vOٗ[BR~:cZd*3p GiL } u܊ nM 1gɱ8o6~eu2y$jZ,ޕ$sW L wM`9~Hyc {ƈC'S 0| %X-e~iX@%j6Sl:^.\I Z< H({mH?I{n?3D:p x ک*]|+Ĥ=pRQ wӺUEgy9H WԢA@Wj#yU%"/y~ߑ_ rЌ9: @چ\BPSTC5>UMiC,/J>"^MQy-ɞcT, '[$/A֎Kev̦ ;|^})UǠ9j+p.ց2EK,r6qoeÏ|A' 9)>>T!0b;r5jpQUE5a8'Q|](L_OiͧP8+V'u"&pK``g)hwX$pb!^2@եY W&bXP$Н[(A4G<2.,4K\2ࣰtg*-#cJFKMEeֻy^ LjP70y 0AM/u#In} wujd,[u5iW!WbP+vUr)q)`v~K3Vݩ` ķ_+O /FP xExb#bL#{ fp(xnTGy:QJB> +VCl;K+PxzTem16` JqԞ.N [I/7a8{6 w <$uG#a dK8;YTR;'ߤH{Ҁ&zcLճ`YB`oûa"faE _ ^ؔ460SBZf1p$gRzDO̲Th D>!MJsFvgaWi09" ;M !<$MWB4C(v.05bI- WP0> !Z x80b])% ӻYq L/`Z'1% VRO݊u3r[-SL&B -D7s[=N!Pu*s p!]RSR{F<w? \1t[q I*(,i8lZB[7>, @ձ x`oj,t' 1)qh_t @>E>wNz1@TK-7 Ĝ]m^Z-BfekW) +1Ȋrl ".V T 1A󂙸YK}hX\- +0*JzxgD); nRqOgv>Z<@mnʪЭ; ʩ '2wRq4>:IcSI@-tQT??]|5̶"*,S/oӖ44Bp*(G x^=HgQr==tf. Ivb+;:a9X頔1a֙X7phV7"Cbž3.WGnOE l-DR˰ec2uX7uCո0?fYlHP!dM`D\+υ o (we"Wohn<9ibl_օٷu#?$Ӻ)Vl$!y\m\p $xGHR> ̇)pp@DşL?ȏ?ldhf,+ZA"cxC!sQ q}*[˼7q&p1HRGf4dOKG@\I.3D'#c ZcJNZ/#Q=G BL`ڡchYؤb0T)Q'C"S|E֔k֒k_8Tu?0 =Yйaؔc[:9Xyתw硿 YmN .a˕6蛎Oll&5`➱&xagaBWSr[`z#jt` ^9ǽ;iGkݾkOWYړlN-_2&G5.~fY=9𱐥`S 9  NGE}y>30T!$I<b,R-s9I c0l UZK*h2ypCs; )^+e6i4<9ϱ{xj .Gj4H43BTū)cK5Ocr'<ČT]GjxO7CG)~bk:uEݗlO@m@/;:ؾ&:+DK)T0*gʤ4Oyҍ/ZGkSy^EN|T+#N#QN^l8HHhHod\g'3eˀ+D׻S=E*J)&qg ^8"s#T1 GW]6!NS / )Nhw]QA/O J|K9n/5t&fy2͓Sqa9tpD(<>T:~(ň&$ ?wz\LhR6\̽\c4!j_t#L0c\clբNo?*TIb,+RyOaY_X1Y/j@3B@F(q0̗Q;hv˺/t yD#hAD,3,Jsuӄ&٢FÓd! 3L~G$j kb]TɯT 6VDuOe- yIkczn^No(_< MPKGOm}KFtensorflow_federated/python/core/impl/computation_wrapper_instances.pyW]o8}W\@b˪>/-ڊJj 73k':(_ snoڈtӯa@J[0iQV݉lh4W4 2_9ӇXE T:%_r!,$B"s L bpM B4k g5'ޒpg\v~zZ"Fڤwëb|QYgkhJmiiOxe*Չ[q21]Cn@zq6\q0?Lq0M7cp2- F_HZ6ϟH #νhcDlHDLRiSTC8Y iޜPX ]yun1J i^,%HOZ+u6VbKrd̳׆vf$Xl. Ou|f( hTŞC PijH/bRcܚNwA?IR(ώGl,XT@[4K=~\t4ʐPfs6:~: *콑Q5K*Du7)Rp>d%:SQzꃢыV;oPj yse3#|3ސQiLĆlzU)޻կx(jīs6sܳJ9 wEΐ`rGGlw!p  }콖5#W)r6絤yIi6ءoeͣJjK^~oXmiJ!leF;(t ~+OD2׼^U^iE_%ԃyK2`c9d)~woqhVzօ,.#\,}^_PKGO}M|i <tensorflow_federated/python/core/impl/concurrent_executor.pyUMo6W f=En>P]J{hi$Ix}؎S, [̛7o>|\Z`f nF;ͫϟ.~! (BpjfYC.$y=l贑tf5+'jÕ';QM~!j`v Ap%cmKնvZ[F֌kz+YO6m&JW碳4'b}@c@ הz&B9[MZPXr[-U Fe jnZ==Jz߀bFW#ub:O[>u8[,fa1 iEa֎?NG,h+s^U*JԨܸjW[n'Jh4jȼHB@3Nj9FV+m;sײUJ!AYcEV[Kj:&!V* 6]fwИ8{>l FQ FŸD ä?L#J)% X$5sIDKIyC5~+dB7Y/~ 1]'.ݴ WIG^|h¸C+Is>ty/.\]^|Lᩮ4+Šv= qZމ=Tg8tFSohF5޼a(K2.ͲAQ! 哸!b^ÓE[9,c|$LA~7%W/7~.'[8O>>B .$;rcz{BYgB&۽iٝǤ޽$6d"`pĆNqpGBb9B.I CT78y/1j)d'bgwWN5ˌ+ћ6Z 8|@|@w24t? 5FˡpfuV6toJN8JB~2>w,r?. MO&ըO3t=b2n@d&c|@UigKJWx mh'%  ahnF5:'8cloe=?PKGO /PH5tensorflow_federated/python/core/impl/context_base.pyWr6+vCNKǽDqfr rI! % )ډ=>ړrWԜ?O^еiNV{Oo^˜{59*-Z,.:|mkǢER<9iSӛ5MeE7t1'RNTOc@hG.!Ɠ)5USjULGaal 7W1Q!Ⲍ3"k>%;GnEj0Ku$cI1|뺘3?*@ɴVZ><$=TM{Z_л~/oeqwX7t{G׷vX}ߗsbpm?#gB=rr :)VL95l+e@)uwI%]ձUz-5Xi+H<ɎAP &ܚ6F1:9SM|nZZBn_TLtdDe٦bR97Ťd|M'SljvqgW"$qR SB1~|| 8T|2z܉讍v,ݔQ臃}hni <1:+zdZ攵VA(Ngh.ڙ,XڀFq Ȃ^󦡒\T . ST xUY*2fhA5 ,:#s0p8T_2_j2\E@UT葖T>{^T!q9'`PQ q*H]^( {iG^990ҥ8UǪ5b˖Qer:z!8o,hyQCwF3ر?2l-{;h..nPqjW(~f?*ㆱ135wtX\욶bTFΏYB`gEpAzKD+ $ߊt&WT1qшl0 L/xe"!9\m0 u9kL̷xt BҢс)Ѿ'^dUQG%Dp%#YD1B΍ƚ4I9Yٗb0DLg۹䀷kC:,#LHZ&n#[EI(Z3t>vXpK~p7*Hus},\w~+/xSkD[5{RZAL)*B&ryU9?R|S=]?ND%\pdה"Ӷ%gmBѫ#K#;;RJh;zƦ018Gx'F\t~:ڦr+[9~F8]+/8wJo*l.IkOH%$R4 e]HгTVצrOLheZr>5' e-BKD=> Q1LONjEw4ht+2IiOcj0dI**4R~ I^_ {3.m9xqxcgհsdVZZ$ Ft-eywVz6r,tʢWlK%}b_o/%ϳ2\˜_f2뉲+& exol2U m|@p)kY/iņi*CNp*diNzMh4zZ*vձEyVj)ܓzGUj0k N7fu[%dscVUIr^_H,NN$G*jcmsc?`M s.N"  qSm lh}j\a;nX1֜3WSձVa.81Wnc ̴!"!WjYKםPP/jՀ9&&bPg ǐVW"lc4H?f' 9J*Q|ut̙wQ]pM6,".y L?8rX6r,F9Z `)0Iw!m&va4qnIj8Jf?$ :0Q Bddv4S|9r}d2bL\׍=P2CX_^%7 Wl-={QSQ=݆Ao5GQxPKGOX ;tensorflow_federated/python/core/impl/context_stack_impl.pyV]oF}"/ '}V*M(]V3k̸3}όlj mqNZ*GŽ:V?%'t덣~bô`e*xF8^ѸirkCZƕO'+9B/A״RQm.BLϹr$z[Ri'&NFz+]=.slۥ"MY=^Lf)Ϫdk_4uy QP.YiCbmgN{;#T!Y]0 /+iڽV IwP/7tޣ|_o>/n<[L'st1Ƴtv9$FR:m@@\2G^j]5ZgUlnZ[K) $J^wɅTl)/-j7(V(Y%)zY'0zKYVԮ6e> m0KKT+kޏw!; !ka%IG\1,VCDv؎h#m*n`m2w@q7?S.z³&d%J.!l)1y*gv$I₲x O.]cC(!o M4{fEFA?0wSN: "-u.ʀc;Vax˪YOH`D`rZYlQP&tYַ\!QxJd1h!LL};RqoyƴRfZqȱ8y߆^j0"Nجmۏhx'fݡmK0l㱽3u9O`=%Uy!jg&B%(FH"w m~eS:zpیlއJ ;ECAϳ.֮G=˯ј(wkJ=p5 Ǿ[q[HTGL{<;kI*V+oќ9sh\FK>*]tzE5oPKGOMH7tensorflow_federated/python/core/impl/eager_executor.py\[oF~e+UWU}l_}_aă*uռ)xRV⦃)N.>YOދ&r7 jt^ 1/̫ Ǫ{yeՊN+ kiVTeQ␷;Z6 jJ-a| p-1LڶH6ԟwKPJkѨ> YC6 yU#Q𮭐Cy]]eA6 n|ݵ,{pK{qw@㧻~Ãݻ;뻇델 @VzQ*EW*b !]MWVm#js^ T|'M%/^WEuM*UM椅>]SU#NMhz*U PBUӊۃ~em4<..5nJf.ZWǛX믐@>5|&i{Qkm)ɲ*{ɲ`˟D>.#`6>VM.WP>N1>k+pCNKjӞ9Mm| $>GeѩOrx"q2F aDjx۹lB[6-٪TeBנ`x0JH0zxC?WB@E*0` +9lS\fiW⦄eUW*1_JbfYVR^A Cms&?Z&i3Qʽ">ߩkJ-{ CͶ+Hį, ]H!le+)) Ӓ2$+nj]&,}|l=@lߒh4dd, Xaü//8/k+a~&޾~;[|_~J|:;Ea XUJ}c\-&*(:?*HCTew[A XL+܂7G"4;RUIfaPO1ؘ!G6I< a 'mS(g,'2> %%VC@LS\xWF ZRGFV1'Pxore;3"W Bb170Omlv4kq뒗=q^@8i|UaOm4K>VZ6rLNjUQ+(~:vsa?34`cF}?XMg WnIV: 8 O`a6 xOt" J@5w2jrNxOvT(dg/ T.SIVBĬdʼn ȇG s4L@&e<~ ~\x6Da ]!i L+T*H8GPџXfK78i“v xTF#JndeAx =ގuDytZ6Ys 0O `Rrqʺ¢ǃsD{ 396՗fŌf輶f EÇAZ o2p_s72'+jmm)u$uȎCMg[KjamUނOvaiK()T*ueKYP)>*^W/~Tl/yrt Hd*z:; XR&,GY7@!1bE4VI TlZο!hf_5QHQnUYQWPlTkEZ)j,0B0A!:rQb8ȣ\sɸ00]M *1Pi`hV#e$H 1.k2%[ub.lMd)fܟɵç7pOݶETO׿77,d6:x:ҧkˏA5h.C-*?D^'PHir#]W67S4KPbt,fr5/Lg1L bfXY'e*Fo:4 Z3(\*`fwkMb<_%ċ14s&>\ *%㹙 A\ -4.8OWSַ ח!13)όa,,yEfD I龏3r%`|$`Vl6wk{ʉ`W_E$NA2302]:fKceeq|ٚ)- .sZp;s_Xø{"tF>Ј/.60Dyn u/KE~A=iL(x(T'Mt%~Uc _+,(%tճ7v8;L캧N jΏ# S%Pvޗ xOlcY_8n)6OWѐeZt%rA@?X=g(ȷߘS=Ѝ.{y,v&,zC6JdoF©\VҺc6ݞ'OhǞOc 42b, HK$皵@k,k颬 Ca`qE|x1r_!?2$yIPں g3|QʨmVxx󆯽]89OiU{ ٙ{$-A#V;zuPE9o0ɵ)-U%4R_#};tew<{aR9s!v5ƬjjәF!i.r{@[{L Tͷl" Rϊ -2KJOΓcBƅB$Wa2ߢh=6P QI2D1/g;Y271En[T3} "EYg),rl $A)HՌdCq16= ez[֒pBfußdp6Bׯq+lw9„o$2tRSl]t~%6chw$s'?W'ֈ@q./1h>\sqG"#B}O c! #FwS/|~롌\{uaH9Ŋc`0DīHy7"y|wԏ\/y c7nf?G>D1| y2h5G{@W]t^ɴi<1s y4L|<tC',O%M+k];W*@$6ܞ9}~LxY NO{K$44] !ټ^{wL9pT2G#ů,0z^_(HwZ?_NIz(̼Дy/Id9Uo|`ތ-gP?ip {7ĺ2^ְjR?PKGO8#:tensorflow_federated/python/core/impl/execution_context.pyXQo6~iaKX ۢ( iLj$wGJd˩%;}wx)nOX[~<3]\:xٯ o\zb& wbUe'Rf(oKPiX U+ J9{  UKGohaKX5(MH s 2Q8 2,rU&`%ݭߦ20meBOGi>r?'ǫՊqi8΃=~9:;9{W*ւҠ5e|0sm/5 H'"nō@+3iuUC/hx#cx3IƛϫWcx3^G7pu gW/F%>]-5|X6Ca?G10-D&2CԢ  }/Bwf)-Ex3˥t7;NOC9$Sn?r*f3| TYG`]LSzr n>̍^^:kYHt*BmUi^Ҧ,rE6u[bLj!vյmL ՇPfV5tɗhl>XblwگZ/HC7u(V<%@6}ߝJ}%Ɲu;iqW|;gh_EMa*\>Ð{D)g.&H% +5j8T͢J'+;Z 4 /Zd !N]+4swǮ >f4pV^߉V(q^g1#XjkjD B|;6aǍ5ru^/͔*ǚ†~3 W?P9^j%&)>y@z-+<6@VQ9m&̀ ,i<8Dj32iSP)݅SEف_d}ݖԲxC!}2v洹u6]5J+EF;KhZ ݂n~Z66o>Ts&bt{p;G} <&@߿[y}WC#}1W(;B sOygKObmF8r8~Ga&3Oo"癟$Np~5;7C*tb!k + 凤xWO={ӟ9Q*4\k_ b<\=ܟ>*wv$[i;\TEsڽdUµUxnG)~7}!zgu624Cѕ:g s3ز11N?@`{ vdfIgzZkU2&|D}O΂.a`RM_rY{w%>4EƃPKGO(vkȯx6tensorflow_federated/python/core/impl/executor_base.pyWQo6~8$KMia MXkۢO-l2T()vmy-}ww'i@!Իrp W9ZxO , 4޺n t*`8N;zZ@F_Gt^[/gpNڥ agبHC+ϱ vSWZaZ´ D>vVo>PA:zxqnS%lSVU/MGb,g> 6QjI4+@ZLxtfe*Rh^6Z=JzK8a2?7dƧه|܌xMNٔ]h~L&T+ cDRs659eVZ!:C@n=^A(蠂<&tprr2"hTTy ®Fb=M`gѩZG&] %0nw6,m{zp> rhNjIUyأ*>4lJ造xH@ ˚|pt%6 /Hbvvx~^^q+ -%:dgw$n(</dYy%m 1̵D,'%%F)}6}Dʼn'P[rIJ M ,{:Lqˆ8;$_XN9R{m zP` C*䭤v*f"e/b eD":Mu(@&3%G;H-L]8FQDEa=2a[TU!ca7J=J:%!LgUC㐟RCZl !Oa&R'*m)QSoa!hF95+Z%m6m@4+p\(*qt.(`wskQQasGMSM$U[]Fn ad ΍;1^cip"d&LuE>N|qH_޲V5e;=>_ 5kM |m [f6D*Üxb@ SB%fiE+S蒜^.O/&b4\ r|>~w:9==":3v?G^`.9oKHy."E, WC\-X Ì}F)H0%A<5 l5D@b9\4M?SP~0sU.d*7R:<0KYr>cuxPע7]+>JR.Z^ʘCeL2ZI#͛<7]~岩Z[ d%i)f:ha+Y멩%*l!")f؎#3pzA'(ae^//Tʼnt6ӎhbZps_^JtEA{k|>99@vJ`&JK4+?Z!TTL|wGwfֶRߎf]kbv`:0ݧIײ[ 2t3vR0K߳"l[[Ѱ9S*ʼna" zf+~M6njUy]Vw եګ\Vy נk~^Ee`4$ {U$_:HWDƚ+K:, Z$Nܐ &\g6!88ρP~:R`C7`*li7D֮۬M"2)#Xȃ۰IÉ= W& GbϜB'Cr%lA~%hj- wZ`V]xm á 51vLT(8Y| y<;1*+|B1 X79j&0 w)x ^婃_jR5Cc#>nh:' ]p a}t@VMhHv~_L[|:*v6է@s<"7@$[ duV$\' Mwo&&u1҂XXuP; Mrᱟ⿿dQĵsԒ4;Jp,*Z4blǭ-P96&F9xP6cj&?:q [<0mc@&# WiՉr^b7;B/b {AkuQ /CfMs_+w bavo/ł7baקQZCY+/Y.%q}f'K [rNczܫtoҥCr|\p D]vMYx%HVQ6K|[fOÄ2Qtr/yK,i/}kpmz6ۺ:ֺX2}hVjЖEaolTt\XDuŢbj+&?Lv s4H$wc8Lإp_PKGOn 1?tensorflow_federated/python/core/impl/executor_service_utils.pyZKs8W`*-A۵S2Ԕ E2hE35}ٲ[Hϯ ck9+ȿ`o f߾z1 6*UVٕHZ$lZ c5=ӰiZ5og!UZ3,P8 *%D&_֢,ٺؕY`T1>ZJsXa} 6:51L?wZ/_q!/3R/1ygB)&* x N^:ͷcs)J*-UrtƮggl 4>\q~>L߽̯/g{s{sq=oWlzb _J)Q$ 6aHbn5ȕo+l[ 8r*TsMO:BŃ)SB1*f>I_ĺ҅\(!aW\HZ5kX/fyr=Rx7F;`f@PXUfW(Wߚ59߿r;*#wzFA9;8"KWfR ]x0X:iHFH=>`1xJʳ7R )bK%٠\Vb:G6` s,X#=Y'7E.c&3e@ i:d3X:[$Y}Φ%_bM+]Kw瓢"9&YQxF i'&S` twBW2O[6ƀzṈw-eK_4W SX'3tcBHl@GnҁMR%Sn4: |'3j/õH1re'XcޏDh90K.o6)dPc4楔<)eR aRssai>FAT9p^PNB[ߪ_Lp8Ȯǟ_N zcF#Hwܼ4{g.WQTiPbE.h߇}OֲGN]Ee'gd:FCFcQn +) pJġ2X-/3j9ںޡ,NgX0b іF.h(.+}) W ۧhnlMOs{?5H;I9u]91 EۄR=&zm'=1}]Kl@2*䇰h#>jH\c^lL Kq5 HJE`Qt5nE5ɢ~7(6!=$nf†IFb7Ft~c\j@^܎V/_sv8ZZ[])*9QydeQ!7, 5`nOVd=vYFvӼ+hHM^Ybj um2"EH=uCk6vưGiy:h>2k Wb8nk_/%K ;?kxbp;f|1OgŻ˷.g7)o/g+fIQBJ9W,+YWH1 D.Ŏ:6nRl& BzEA뉃'^@sI]BSd "vg(+{A>{?CWUBtDSC >WmJ#֥g(e?\G贑3.g]XH,vE"ɱI\gb4o PIw ˱<-(h~}I+HҒp!67oq(@NŮ[>n}<%oKfGz`@!lm(;|#4{PO0I]iD$&{zN'X'r\߿Q;;X 8zRG V8tBWÛ JD"U04,4=2Pl$mLĖI䵼E~Ŷ]CSy-͆IK<`#i0f/SpC#rb%<ȳ/rLi9jLّY\*)|4N#1j偍 Ū L4'˔x&Ybߤ2Pʠf'4cGk0 gͦ*MYǃ]7ٸh;ih_O?uz3}`ۙ'a-l }-ng5Gk?}(wغ`ߣ3AU4sL^xc'Qf &GŦ[@n̔4綣@aܸ~UؙD=r:M>"׃\O>!8vL " ,]zI8OF; gͻC;8ڡ`M8X5IZiߎ2F<.}1 w5F.wP] R7n*n;68uaul/~uw34) aPpnr+?f)NOa;k#k^PKGO` 8tensorflow_federated/python/core/impl/executor_stacks.pyY]o8}1tf3`3 I;M˔MD_+Rq}%)JML$u%]T3,u{β|[ZWӟv-حHUV {+Z,٤ĖBu!C2wis_(R*>-8r@6+Y·,4+X$cc(rd,cPk  -4j9:Ƶl''&mخT'g˛K 6{ޥP?,`bx@!_f7,+_tF72] "ᅀTRUO䆝MnoWn_]]7Wxz&_2_Ax (!ZRe$CؕJl="9,E"ESRbH͵ygT;:: q,BZC1 TeCF+h\(.EX#S*^B3%{MfFYTef`9@$Y:B11H"Bj{ sD 3%6!iXHHjMB'߯1OK 9P$*xzRDlfG h&q01.tApa߳\;}άݏop1xEu8M{6LK[NdBR Kj}t488^ތهŇ^ !6 5LO«Y*`ɧnoc#H +)/"W% G+tx@|Ƶ偫!,iVjؼZXRZ#jD ^z>EDLC1P+lxgfY_- `\:Ut Y*qŃh_}&=̹%&+DL"+"h`=b5)8~[(cty8o:8l =;: QCb!L ׍Ҡ69ze'ɤL*:PyΔkL,{ .X]Π=zZp"wg:@$@s~ 5Uq+ې5Ӷ6|g-hLDHR=ɬ5Ai?VmJjDU5X1+]N,Gc]" r(sT<2 g9gjg!/2綞fQ;<%*S ੆l{d`нlp8>g^cۑcL#~iW i.%tuu;) ZЙ9yi̝,V% -n23$ ArD8_rY"ի Jga9h}x9(7*@]Z 2K3cgu=WłN=K5IqEw?{h-dCF>S^W+LJS :糹ɭu75j^F^)nl37 t˫)t{Yդ%Os~$[y[Y:j ;HbRz0c8o*Sު8y5;N C]/\W.FԳs)vmZl<(mwU^QukaUc%Xڌ1Ɂӳ˧F!СT̆ *x"6YqOs(dZݜay,eWMt3GWT:R=^/NNbΛwo(:ߡig` xAj%ӓԻ?.6~w%t؜{+4kp7<{kM;BfdjPQ,k4si;؛fgXHh\䘲 ֠?o){7ψw*SU5uM(R^V)pQ9aIH*)k ym=pA_$/oǴj;1-,,bOX&ӻWC19\?35>.{° kλן? PKGO1_ ^+7tensorflow_federated/python/core/impl/executor_utils.pyY[o:~ ҇ UM'8_ VyItE\R2`%3f"<#q(RN%W -|(pO3J _J'/ːji\ߧ|ltu;zkYʤ$t-@NA̔.I. ߩ^ x6gjI. Jir\ o/o_j|9%7r|y}.;< lװ@AHvd 햱$ Al^9# ! .ћKK\Q)*r"29dcq0h#s<>+3C*z3/̅gX\!;1*Ƞvl)JljfyZ䥌TYY ЗTd ? SI2ejXVOIĪ"1`Bk u 0 @,S Mt~ydHF?4%pA3 H0z*}㇣OAa',EXTL*T ,$bE(%@<3JNde.>gJOf!I_&aO1) *A ɜG| |S3 Nz[bI&ph& o|4 {@eFfk2 >7zyyG,!wူ41Gd59%I8zT)2+0lM"&?J4+\ XB VA(@P-2R:Bׯh?ATr:h$Zx!ʊ|=ɽf Nа.)|؈F"on k(4)jӕ`p\:>)B}u#c@P"k? /^^Pvd{uA )@peH&}}KH2c( 6+i*!P] *$tDk07w8LwȆ _u q>*-Dz6\Q@@m<̋(!H7&0ܾq\.TK?X0) nNd@.Pt۔M]C2'Ly w ^v 2o' MةI r.8j6 ghe.~T9 w!YDU gݶqك ;͌aLp_9eQsty^=Ul9QW0+4 (6J&m.f#>gDSLjN_/r 6gBЭl̄XKCGi^÷6J+%\;+Ѕ؏܀v06a쇧FWŤ/K )6$&pK"]M8v VRs;mЄDfLq҆gfVdQ?ظ[> x#:nc\̡<T nRyR➴0Kԋ`P!ͼ[ #B0|siɋ% G Dۑ1bgo,}Ttt UG*-|i\2tlip) +M]C%\M]*/]EI+u"zl_ۖVQYT*g-Pyxom*`4+Py KPFOUJ8ܝLX͋_;yRaӁ ,\<xsnh1E]hgPjE,z W;kCwVbǕUhj[no!gKNUF?no Hjb~ Y~ RD< F[Ѷ̴7Z>kAI\洈:p{Ͼ/junG7F7{w:u&'lw ;-7o J]Em rkUҝiO͞/_>oQ!22TXM >OCC|٦K$pݟ8xqNbO|XbjqϾELnn?"knӚC적ꯂzh!Cę׬[*'au `leMlkZs&UɿEufЬN_J \{i^,pGJh5vm$fwPEIyP A< 1c9ՠ3.X$.c>'_E$"VMvL篗ۑjAS276C}'sA?ڍoR,# A+Zc tH Krκ_PKGOևv Ftensorflow_federated/python/core/impl/federated_computation_context.pyVKo8W CVȢzklۢ')DjI*Q IɒݢC gIBZ`(.z7iQl,}K.w_s,_äAmZ}꠴x&5'k#k(.Gjb;Bc8B(9LUu)8l87iV6C0vMc(]\^\}L|%74c]H(c+Y-( Ϭ"[-E Fv4G0VUcja}0,`l#Kĥj%*D@9FiǤ-jAǡI. FyP;uyfmz_$>^I7' H ;^!\FPKGOX6-wDtensorflow_federated/python/core/impl/federated_computation_utils.pyWMo8W Cl@aeEnI-zirҤEΐ")nlIy7+wS(?Wpjʃo_3區sep.6r/60:B >4GYsWR"F[d0F`*hr!B*.!7RIs{o65j9ڗxWtpx_NON=!ZfDEKwr1?=\cV9JZu}^b@9_cX[+p xoz3s+e#r]^0֋k0_l1_uxy _g׳lWpzua_]9.)n#JKc(6T4%wsqah4(Ts+8e-bU+Sy5h]I C$)Aeb,pœxFJSEJSSJIR?v.h"ƾ3:SrZC@nߟ`RI6m1`3!?ڋ;9ٚ;"TC*J3շmYG$QaMflfȐeY3Yv\4~JnNxa3/rciV8Ek0;Sou*tLDN BA] N!Knfn*fМ( 4G~iѕʼP2hj#rXPah^mPQk R>iHKRW̊taUXo Uj]5z߮* kd%GX戵uV,U+L (^-~׎G 0>(X*28ff}%]+=k :Mp`Z㊵%LC}T('p%i/j|g~؉л~\uEnJ+f~WCq4p'GJ5uz=H@M[_C8xV\8ƀCZRI~)!L7#@" `_7M8ua.IRN;4hu74ΰzBYB n| iI-%:%4#܍b 5w8}}l+z 6ya}vtin0?LJȓ_PKGOj/6s;tensorflow_federated/python/core/impl/federated_executor.py][sƒ~ׯ8$O1-yXjV)9e)IR(RX.Tvwg.,7[SV,,Y~ٷ}xP7^˒>pv2+>$#+e5t)[SAZpU"##,ٯ(,eoWl ^[/ fҬbuɁD\]pƿD_; +b>U|mhYw1%MxY  ,+X/8ܫ2d8/Yǰ@eUoʑb&m7y){qqîn^Y߮n/췋O.o.oOn>^ïo쿮\2a@ȷ(v`yp>;"鰜Dm$!Š4&x"xTWD?ys"h]rv4΀@=Q 4,Y;;Ȫ,8b/U-x_7H @HM(iY]:Oh5l1<@t㶹4G@{hן@B)z Qb_Wq9h0S@ Nf*pEqݳ(IO+ :=/.@Lg)yI;Yit1oNX1G1 n1wEc<*c m^i\' "qh"|ʊb D5< >ZvF0H~mm:GPS&2Dy; N%e (<wܻ&\?=IZLD>~/R}XrYoDʚI^=f 82BƳ6l ĤMՂ$YCr"L3h&(Ƀ82bFfЍ|$%CBH@WF8X~$.vp~OWgV LCN^b)GI{sfY5\͠!&" œd#hKb_As1b,=]CюKm~$N˰ܔRvnߣف zz!ElyW/z@D Nֺ.8`6u PPeen?-[hlXdQX# 8ۺHr'm(5&m/Tz[,,Rl1>^FIh.mI Y ڥ&gmZEhwz`2wWrImm)uR}v2$rMEhhp$T%`SEH VQzlBj/߷ kڤ@!F]%;-֕櫅| אBq>wŰtHޚfuG 50pTc;c-}IxFQ1DOuZ~YY1X A'~<[6ᵀJ?%N\2/[`r&(>a#]TsÒuViUv}^a~l/JQd͵ny'8j-RPRV%zStR u!;XʓaFp~󎽶e"j5J ?_RSzل|#zǟ/`MRjcg,r"yҕ/N= {Z쵅qL 7V֊:Y∂",ԅ*VUESvnX.b\[.|wcykwx0Z Q޴jma:=L,l^ʼnbBlw_6]M leѫEi֖D6BrX3̊Lgfpd3QSV[Rn-c agj10aGj^Ql&ZB^}Bev6x TWp1kpUL}ɈTdZ$+6fh4hO5,sam>YqGtQe[Lc@;,r jweu8\N"#=&Eп)/L:FSW9hz|~/ؿi>ap%?*@# iGB2F6o̅CIoZBhO僵Kd5]jӒh९8n(8AY5@bhO []8Μ Pֳ 5t瞇Fܱ u&co.%w{9{Gq=OͲ: n@z-gprnd,pNLK$#ϙD> 1YyFf.9h!DAL;#fk{fQᵞL=}ꡁ4/C~(IngIPRrdBmm ml'oq[і=ȘH%:F17~ǃ6ozfAEL;U9Y5 )m &_%8*i㮬YV,B6LO|#/l\s-j'ŇHADR#𞴾OIlYz-kky^ih t”=in*CǛ8R4n&sä́$;u} (QbܴҦP zD|}/ڈM[[NS*&v@j6hq;Zm\MhOR5`X/Qcopd !ƛ񉊹H[IE"[ǩҥqJSõd}Q}i6PV!ӇljvtD].˜ Ʒk:òл})PP"Dhj}&4;颻]ǠWivAqth bCʓʞeB!m2-^]"=l.EYaUL\{&|ǟzF1~*-Ͷ):!6XGT\= ǧV'^hgTGSml%>{.gg{2ͅdP[]xk(Ȭg~G';XY4"-!=$Vnc]KzRA$hDަ)4kH:Ekӹu#@:<3ڌX1:g>To);wkՒdIb29`K^6m ؼ#UԿTOehP$z&ϜMxHm|VcĞb# kvbu@"*¨k,>C4oP'eSDt!f;iX.!rƵFF?ńFW5 ]ӷ${Kwv,ϾdT: qӞN+0KTD%}?=YY79~P.pJd̢_~2$a`jpI"w,a.'Z#vo}H-Ǡ9moWoӬ\+m[:an+Ӵ-Uѽh Ǟ1~ӽJ{s u<*٥ j \5vO׫^i;M@[ Is촘Ĵeu|2}bo0&b<N2$Z1SbP%䁆5!X3#j({:Ҟ ԥ! 6^X;ke%7:9^jZ_IXD)E(ج)Zo hV.WUj-nS}Q^#:ډ0eMȯm3.jord#%G)߰@as *nPM&"Tg&uT0 vI_H]L>D ?F{|&5:+] ]2Yyzv {Ϡ Aگ/qߡ"J=yP(O`0fdi#ae(ڂƀBL)Cs9J|lEQ)Ț)G,0 BP|ZyL{y&~{-:!_X+oQ@0Z?ٙ}+y=t oGDm  a/M.q@sQ&W_\Y 9+706=mވ6#Lrkaғ<7Crd\4S7\ @Y8D# ea"qz=3A0+wɋKG]׋ͱVBZKߐ}z{Z*Чp S(#EbY˃@#;.ǷO1<깬I%UH:HHKиF{QTꄴK֨*.E3wb+2^htk+mۃ|BƗ6V2|>!?ЇYn7KQ~3rdc@ n^z^ `ɽjG\%5pa ,p( @فoiM}yX} u hl/PKGOg579tensorflow_federated/python/core/impl/intrinsic_bodies.py[s۸u>0̫׻5l&#z&xh$4HK߻ >$[ׇgK o`qJ|yJmg'[˔~;LLh,x5yOC*!g0F?_|B2Kbq{Y[d &ɜEM@|D̏J,]mr"ԇ>OܜGT1~ix^_qpxZ3#*% u%~  ،5 AYʑ`)6|}AJd*,Kk* /?&1`l/S4'wL.Grx> .=? 6+؆n HCTژs ؜ W% ~GE ␄hM @%b+i CF%Z|NX@f`0Q}l]8]6/$aIDYL vt4|E M/oL0Z!0_+VT:ISJ򚀝x/.cueئ~N^ތz8 iEخF]RJQ!0sEl1UI#{ȵv;fA1VlyAgt[+*_?>>>WcPQ®4& m[]=Cc[]T.KN>DzRLRKm?$4swY{߇U[?歫CuaH%NN {|xugk48,£|([nrjZX*Kp5toz]Ɛ7?aE4CЫXzǜ(uQRfǽA<bB5 Moݧe+kd?/ 6 '\;Kҥ9%N~+~>%kUO.]]еQ{U>M7nx\qz1\]|Y7^8 /'ngNu@Nx;4'IQVR:I{޷>nɌkx!RuQ}$Mmr_A,&c^,>޺OR˛Ix_=m_NT5pG4mo\+FLu)Ԟ{n7ɩ黷8{`wgAj4{~uq_ms1b;2v>ugnAۯ.0::YkIX4 n fvr]=pmzZE?Ot ,MeW xQYׯS#RQ+~]6o.nr,XB#ȄF[E oI 5deeMKUiƐ_@e5ƯQdVht~oOI{ ]Dh)$"c3>F,Մ'$44s=58"ّCMa4)5.#TͿ'<@ɓ؎TO^/c3m3dg\)0!9Љd\r͓I(1s*Pq%f-] 9<$g䇓˳>xv7o%ysANߜ<:{s"'?eT"$G=*풱 caR)G W2脑a2qH+M썀Jg\Sm>Y*88<<;*$J1|#4 ȩl'¨`tdj!ՌASVͤbhceF5'1ZQ "0i-W-]!S4 XVN6"`'`Z9ws4َ փA h̓C< CqLC]aMʰQ 1KKe+d9C GE@|D޳ g"+ ug>-T"9hOSEzBV/F¼a2`tY:/\. .v8. @,C2|0*'q379"G 3P b|v,X krIm#>o<-dh׎p 4&:-mrCWuћv|eO{AC)(J 5P>0!\w(q`R{.:-mZӖQoƾ|#q g)~qJnc ksv9iSL7/tO={ѳO Jڠ fA[t,SȘ券Q̍Y܊IL,VO>^#vHtMhu(T`?<Θ0l Eʠ+*\K*VlppzD;k>:hTUve:Ecb.vc/l z ]_94牬HVOg;90{Nz 6!!]_. Tf90x=`9JnI]omC+2Hӏ6gNPʍA'$%18Ϭk#=ح:7q@Tb< +lwyẉs51'zϏ}0?6cGl߸*8b# hrmjd!FOFH$31If#vC i!:2[wur x,&"EYmjY)bUpG+Aa&zEeI:8DU$ed+pTIKjJShw/0c1^Ҫґ[ZVz%^Z#* Kjn[m'~RXTI =5f+VCa0*+`3}OXthss"6%GRaL(qhm`75G<3θz"9.†Xʡ)^UbVP՗0GOI'?y`C PSnr?ZFh6${ [0ax f{mHŽj~bO[X[<*mv)woUZYf|]x<`?&~C6 e˫ frkܦ{?tܷ 2[f:. AXtlh?]w$4;>Sor03nAg˽sZI@w$$$6 PeJk^ "Ya0+ޑH0ϔj-n#{|ȼwoYV!}a3d\Ԗi4`!(tD&ݍBi65s&YLX"/qsÕ;29*@^]U.vne֎-{{w W@Sk+Fw _ =qT5Fi+ftNMZ,07O 6|=UxpP*uG npDe=wt׵A1cOȡ f;xebEY*]behRK>P5>[r{ 5S>Tzi-࿖_jC--&A8Yxlq .dd"d+FWu#U&Z~fOߩrr`)@1~k~~FwOJKbp^da0IBޠaQ؝:j`ٺWm|SEFܮ{E|+,EjoY1jQVO9) -I+PHUcU^ʒ+1L{ƺO~ 2)RnWok#kri8,ٷwCͤlԭ.+Y:׵6Uʳj >*3 ЦѥSl%ۤP c}Xp] &2<}z (7LWgwUAmn~٧muG7f]w;/,sIEQ-z0 WdeNNl.]+;c;j2^yKW/ݗhB;ċ˷}!E | fJa:;DU`*[.P-5sN2~A_pDq [f ZPY ӭ;s q(՚-plӒyA[]GGnַ/@m5PjBZ b2__EincRou̻U>dݰKXPBj]PjH?PKGO=tensorflow_federated/python/core/impl/intrinsic_reductions.pyUn8+ΥJ{YAI=ɴ4ФHNmsp,͛y3ړpl?36zbʹ`팽U[. %e-^.M֝,V#N/e(oNM.$#ؒ6Zǀ*ƓTMS':^3} d 7x^p[{\^\t]65P}\L7q|VY$* 4Xeļ ;+|',[jZ;z(eFٜ&]e| __5Ͳbr3]O?O)n)~'cbhk?Hʠ#A9\Ådt݊6l5ʡFMz%PH/|VG7 q#6œn)foct1B5r߽^΋!~Q#'evj*|L$)B% ˃)%w2!Bf iOmpd@r&@[0Lkpq`r?H:Lz!Nˣrk0mIBW! `5ava+b ucltCBJ`b>`4tZ–W7n-5R}kZ :j=ˁbՍMp.|(aD-Ͻa&(<z:SϏ{Jw{"@'0"tA:?=jU// F1&:HQO_4~OZL5-hW0|,Аݲ>0j$}fjnPM.Jy/(BeD"$y8< 增^ FN1ɬ[YEíp% =Bʖ&RD%YRGQPt찝i5~ygΥ_̺l|=,̅UD*!nC%HRl ( ER+z|w.~ƅw\P;$N$+F"P<ɨ+ Ri!(uxed&qk\]($b: j;Y7efvAh:6b`p%) }$D'thMY典 pYj.5Jqڇ-!!8B ײ` --%) ),w4`x,KPP@v/M`_ɭo_~A WCWBנ|.&s\ci%;Su9>}<( S O=ϤάWy qM)0vi`giHN2⩒u\Ifj2J ڳihWR!LTBp9/XY^ЪB%=-8QMޤKb3V =NLRKM,%LC @|Xlnjr SĊW/ qM*>$53 fP 2(Xg1#"q&Y*w:|x?ǻ)dul2v43f @ar <#pEϨ:121 ryǟ&KEEXȿ8ֱV9V{t j +F?#le4*A (+ihɖ\K+r8-pc=nM7},6M",|'1J T>3Ez 34*Ҍqj SܪMLr-6?jAs )$H `HH ie!-\JYg:ma1IYWi?,):0OL喌Q^"Di6ux©J̖eO}ԗ5dKbJ#`iA5ۖ@PV G.i%ۛK6C? 2*Ց+r#vOCz*BldKD|I7'&+kScl)N(Jcfx!]T6b6Om,6W;^P@9{]qs~/ @,~cr }C/Z'6"\,N?X@ޚT%M\pE:=C)6sܸrwS@Zp~qj} 9#B{'A%X\ ҞjM 3&zҭ^ptH4DrE\݀ݥ&S 6CƅtyuT >`aIB1 ~ص$)?N;R8!X'E^{@v#nCwn=Y :7e oyݛU FM7Z%v0iv _r/}vgVX eTBjZ'Ot%M g}' 1ic沐{=ZI՛!alj őԐ0zKr,>Wk}L~8yLa!5&D>Yȗ`єsѡ q" #i0hUuy"Uy-/"t\A &s)JLۃ j`_N_d֑礉?'m3ЄUGT^ԞV"LX65sGtMqyΚ'IyנL3E 3b0R?Z|Wȑ&2ǃ+$fլV .{Ѭ'9ڹJ!uiD*jc/{Id7Wz<1w>Lڱd&&fp_4 Z^5kO\5=+7{RLx:Nj VW qsz3\NGT'tW?YpT#bcZk8fyH_*f_}^Y#k/7Uzԕ)2Qy}ޥ꿽E42!F V P3 :vazZw]K,Q68ӧ7u{cۆvpulxu,hF O?w(pl5`$2,D;xSi0j%6r)4K)B.T5;BjVpW_:/::KuC&KlamJtm{J#|֤6Џ#PՇh觳ޑݝΉ,}]zd$IxtNʦ{՘O!6FiK>RGZq|_:e: _kD"OY5i/ =}[qAߴ}T;CU إZHm^,%D-W;AldZUAzb)rC3aj!Ж Dqݬl'޹E4]^JI|mM߂V:+}]_ZOu?PKGO{);tensorflow_federated/python/core/impl/reference_executor.py=ksHr+v?ص}\RtSg+[EEA$H!"JnAJT]KLOOOOfTwyv[q6E:ě_a$.qde^_}2MJh ]2z}L'3x/*t'|3?$Ex}/Mx#2i)f"$YU"$_iMVw4hJmCگ௙N!L?wU:(&lwOO>]ϗl(z ķ"~y!y*GJHzLӲ*uPKL|st!N/:8O/˥Ʌ|.?zwzy^}OF"Z0Ӫ@LhI 0rLY:yeu|%2F$N+샣=|JTIY#`zp/I& SX+m"-aJTS'u VRwz1'؏;Twq%uVA%L ^;ѿit*׋ =Ʀ6pXd-'^ ͊|)ٺZx o|6濛MӇWlcǓ|HQ'J=*' DK`R-w?@Ei u&kgJjE," 2ƋV<,u9;Xm6]2H@BK6.{ )ZēddU߾AdUJiw > 5|O6Dþe2^Wb*XAt%E/ҟhBMPt㍴`TPnb |'FNfb":LHhF㢝( B,%yk!6+y:ftB}unBc.j߷A Huw|B|etq¥|+.t0^ǀ'}L>MY(?ٔPY9'Az?cFa}X[F\YK?ثap_~~Z$>9R=|$F#H.4h!᩷}ZasQ򆉆"6if %,v&cV " L6D% @fƽVLd|P _h2,',| D)_o0۔X&D%a]pu.[b(NFDG7vhvhf}\ǢxABpUF{k 4V\k04;Z䍦œ<+mKdt$'VGp 4, ,$ĩ]rV䓤$xMt]QJ1XT6ALȘ Aĸޖ/Kn_@oZ;b`|iE?A"bbMrZ{d sT,cz1mE7!gفFkG6#p9-5+`K_%"2olLG2 k-S#m=6rF=fg*j|S ִ~/tc-N"SW+L2@MP[:}v6zEfŸ.F!mKn2J[2~dDt Sw)n6гe-ƛr"&X7ءM+/mҡMޞ忴@1@[& L_;ÀkҾjCrd *Q &q euؖES Q.jcU歀G>X%^Hc CyTGCr_`҄3qCo±p?=csؗ~%e@zH8*;8QrO򔸍j6MrgR[7\^KxlMR0(u 8lաR˚ЁxFn_bL@&+L$g".ez36 ŋTFq9TwÑ߅]^ ~L8?&ioHh4 پ޳L8l(A '^Cd퉂L\/w`|QmP.1ۻ{h %bs^Pˆx_׆"طK7JԢ0=Є>B `X?X5 \K)vgفT_4<ndRxE'<& 8{Xi۷a =l2(y 9ix9Uf`ar+g ҉f7~+.?<7o؁r\%F;FMk|ObM+x^N'i6·Y)VI*Fiy7]vn*Drc3N{/13:L e{>$<+y=rm[.6"Msu <zphGi}gG֛40"Dcb˺o11JDWŜѪȫ|dcpLLU$]dk[Kxn<]k ;Q@"%Nj\a_EKt%3VGD#O[Y%R>8lj'CH=Tzd DКou2yל)jVvL^!j"Vݥ>Cm,Qss%CGh4L9EI3Nj['x;uKUjSrJN;?~uS ؄ts f9J)@w:S8#'y)ht#va3lXj,njNq!Uq;9X~%tu?b? Ycq=NBWK6,pY>~)S1d (A6^UY=v#Vks3+40L3cPN:D#U|c6:#1+1^mo;zIE"gRv.ZjnLMJE=_ gD-$z, J(qz[l`rN)5`[Jst/Ns &uܾ)s ltUU"(aqd &~d:Eg3.!O>!RPr!rџԃ 9ņ2dZ"e~rLj5Ad^}nx θDFө:RTTQ"b|b<ZѱkEY-KcU9+m](□&G!+sW!T$_ķh$y~=`V9~k]zOT(Ia%pXjVPi GVIR03ǦZhǷڂυ]:syW A%)OEy/ɯ3ZE2/ˋx`j؇TIb.y:8K ȕ,# sLCM/Sumx*\2t"N~a}) V'7y [S] Z{z1u$ t{e`>\@"0KLRY5MĈ*"'tIuKjkZsPb'Xw~ɻ/=xHInhzG.:o7\c"EpAc]RǓXMmg[t} $wɧ/8ϓ,)f<89觤];t|Ҷ{Uͫo. coip-[K;20@e. 7><`Hv7T,3!.mo}D^=tgYU8~,۳=K#?ѡ!V{lOAW?arlZfOu{+ȁB|z>M*|Hd:C!:vgb''fbNØcǘVDc/Z·Gc]}nm[|sEqy6WmvC8 Y? mYKidWn~9.ZjK{Efk`4|7U dweW] Ui0]<#څD-a{m%w j%ɵ-%dY27m‹`[S2OXC~u~YˑŸ?7NWeISDTx˺a[ΛLXM*+7h(cFaCc:KNg{j_sJ~_q=SCY[iΆt*yL9LH(P5F cSܾY&vi ٛ"({%iD堄}HphNUM%|2Y ukÃċ{'X dD]CsP/=}fȄ2^S7&1VWΊҮ=ߵpb/b[kH0?:{;DHA>>k$xm`B历C ]B)TPhQ LC9kU%N w}Km>ߐx$ZW@56 {*N c0nI^9{Wg➶&,֡I;˜/żFΜNT'^}HWn0* p'[Uxiƭw޶*E-6a m̮L fAjv:ǫtT|/}bz.vlB= "^ !q$vxmxC_MTX)Ƙ f; ٻܚJ}v! y}i̲a~5q Pgm֯%Yqfau.ߧfvq<4z܀`,< ͗3W-7DCuz)ʛpu^ndI0s"Պt(o)oj| M?ʻVߞAIe;y#if‹`ɰMg*CZK8\ܔGn#:Υ_X] P4 v2hVzr1{ = BctUC)R[{F-Q4aۗ̽ւN'vJ>TTsv]VbNQw66vhcF=8φaks3ϔTGHȇitAui8lhe?={"ڜ[9CQln>ȯ3U`f¢;7k[=ڪ(]TE56 SW.\m{bli,l4jm8nWBa ~pYl-gb .o`MghՀV9ܗj,gQa*7'8= 5){Us-G+υl_P+fcݺ҇]&FU[CƄtP+ KǕa6/`5upB8@\ гiarZq/}ֺ4Ҿu&|5%7xqTo ‘3/P)Fu@,\oF|l]]X᷶9E*giɀGK\Vt{&+U)@GyCx)T1l"WZ1Y +(tOV+ORFZk`&}҄<OK;)2L AJK*ËYmMFӺԌIXq .c`5_+QW[=[~1c`I}Xuɟ& 02q'6 $Q]23:ybC܇f6:LyRՖsFg<iN*:4u P'Uafްo_&-2bFZյ^]yja n50%ЕUTj}&4鸁}?:)o *eOFB: j,F2JՀXp-{:Z揲N)*Js.*6_-, ei-MYB9SX lPA0p+94}LBσR?Rgu[_p@V W&6 {]whow3zji)wHh[+=Qx7\ m} J2Ho7Oh~<Y%(*{кqjGʳ8&\bxomQq@38u.ayzxT8sE}Dh8~w|]X3zR~6:^|'cBnHaYGPœ*/6Yq 0S @_E>ݚa8s.gƭ5,˖.)>g6Wg9>9Cs*VG>k7]l"/ňD<%bPQ Pc u@f]ԋ+9)f:~&?/PS1v;әnxc cl ś9q߭q'5}N /\ :5q̕\,|[XI.Jȡ>hҰ! `6duagkꮯÎN VgVc:<HQ_St-0CDLG0xj˒߀$j\qΠ7i7O|T,'!&sPKGO *8tensorflow_federated/python/core/impl/remote_executor.pyZ[o8~&XD\:녁cSEm %H.9DɒI3~H"<<\K6Nre%cowxo# ̊7Iv`oD$ DĦ%)?So2u4!2+#(dy,] YLR KķP) }< ;jG"hHdka79;ӧĭۧ)_n'1y&BJVʸYGs`(k`3o k*CEt;b2ۨ/Pbx],{ Sv1]8]Η#a0],7ln|57lzk~z &cԣPiK! l2͐EoJ% D8,>hM E@%ޜ...,BȾg ,R);8vû#.N +43d-g+E)Gjl< 6Eg p8U _x䱀z"@|'JHP:hiZljZc6M7(B,'bXWeꨈ(;ìT^t8?ؓRTE_8`Dt12 >gQaów~qdfaObYkm6U<9*]M*)] dD֝W"!DB,?Xw#쐱KP[# Y0%BEZֻ(^*@оr5bށLi b)~P}%+HZOti*#<˒尚M9T4ްO搃E Dzv-R&n bƦJo'84_먂2[c% ohc (e0N[]CUb1ڷaE(Ÿ.&X[ʽoiX`aVQߡe+ Mgȧg[bo>ϣ5ܣgB!muiofW#|?pwlSQ# nwcD:/$RH7Y*:̈C zB_o &`|үޭ# ނ`6 7iװV12oNFCw*gfyh}GCgqzƙ -Y.FI(RTS?Յ( @إKӫvMJAacͤl"vzjlԴ&(1("ddjtr_k!Nҫӽq鴱Iy8+ l$ǸE/x{r- FrY_h~r a?P@3@(! QHF6kx {7AS}9o y>vߦ%:sF"VL)”C. 2o-d%㷺39Ge72?~\yiO6]gFPϡg@WDz~TX2ݰЫm[`汿LjL we a#=f/xV]!o1gdch%"|U2u0!,fujBC@x-x(wVoz1{ٯnBxYQ~sa3 g1c=qBsFHh^<|Vo/_^ ly& f,t]Y)v4E2â +EvT(.I@MR%nhN8K{H1>j1l wo?V ]aB8hca96Pһ֫_0ieJ`=3L;r->╨FیKpKV+OW2QhTkdQfzk\I!r ޢPE^&l@0#34a 89ܨJD蝍 U3L{4j a [6x fmy/[2'8ul6o OmȻ&)4 q@ Pl,ΔAW_+ccB(Gw;f2qlww&*^Wԣ+HLT1oNcK[ v50'BHGOhq=wo1Ŗ1}xRpWONTȥuiMCs|iŸT͍'06c*V2U=~'v ÿ>Wo\ cn3ڮ2f=GS3v& w0{װc,Mpq&7!1]:D/2>+@ 29/ָHZYGPfQ_epN@-  a OzFI 7_airr\-:½yvﵷ 06gq~R+r]mjVh9PՓ5ۺ1mzbnXUߖ᭍HwhpV~7 ?w {{G#|19M2++Ni$Q.iL> ٳNl@;݇ G$I}tmNFC} kX9)'} yh߱ g=c5sgqi~5]4 U͠F~rIo֭<ޟ|廓2ۇDEAGG*5W.3>xt?PKGOep}!6tensorflow_federated/python/core/impl/runtime_utils.pyWo6~_qsuOs/M0cSn(dZ:l)R8^}w%Ώ{X'0y<~Ǐw3ځP_ܔ;+/_k ue2[ p%hՕL)FkMhѤ) 3G[IeN8`Wagj(qPWH)dTxb@jHMQ*)tn I| ) _ҷyg\9>;nhccgή)!kiU%bE0؂ iI2 %rUZxD@z !6O0]~n&77bz18.3v Gc:{V ޕH:bƢT\KkFX[@fE2ʢd!p~x0MQiI&b(RkaZ;;U"cZ2$yjI¸%Ǯ*HXX&o%|ldE4( nww!]cjwե%nGDZ$Hv)ʺ9FS%R,dS"E 2̡@$6ZМ$"F>O]6jVee#Ssp I-9f}w WNOHS?5{ 'ҦBRM|/T{<8y(( >p[1\ =3; WLedtH+v{Ŧ[{_qXx@EU/0/TYƁTVO PӺa)iݯ M1u/f4ez[#Bߴ(1V<4} a=~iδ1,./< >S'yQ< :RA]G I kpsNLٸ`Z)f/>! |Q xސIY#VƦQ{kawuӖ^BgA iemWևG!So5^8.h)J&Ԓ3Н:sS,V" 0۵1Aغ y2vZNͭ{7fBi&^ҽq[5q'HW:K%Gߘ~A:|o;ЏsG衔Tc^B6'>}m T,=#[|}I"Kpo{_dvIt G\jPNQPvht u{?Vm~rGH'XPKGOQ"h~v=tensorflow_federated/python/core/impl/set_default_executor.pyT]8}ϯ03J+V}`g@v@Sp X vv8ԮBb_{zHJ{nJ~ єgGOwǴ=2mY;ci{fXDCzV1X4ЬNLuhzHh`Φ86*ǀPrU0ғ$ͩ,ВVؤ@@v&%8!ޗɤD4lct|g]sdJYԚI $EX&Jbr& rު7jPu -7sYnb`|YnZҗl]7~i]WZl^bbh4Z$UБA ܴ\RJ.}ā`(J'B7R7+?D`FW <ͻ\T;76Al֜7a4mNM`i21é?`9 :ǥў_}꼐Ұ Ȑvpo06̈́(9iT+y<ݧBHm]{$®/4$jO1a+-sx7 U4?5\B:4o NJ?/n M= s%e_t<^28zd%7C [%øԪ@;tXW ,16CtCkL, CR8܃1JF-]LRvsp,#mzaR2n5+  R\'mvew}OiapkW%5K*izHB6 Pr}. PtXylF8e{A  \ DioEuB\IL5t}(0_Rr=ΨG?PKGOp= JCtensorflow_federated/python/core/impl/tensorflow_deserialization.pyX]s۸}ׯ@K3Z&tvZOS+1I(Ys/)ivu$8{W.JT5_'ĵVo^}bUbJg*+JŢ+ucӢ ie6xSZp<E!4^NB;\ ]Ue(~4 0C@X-§lNHk}u~$[yǻ۟`1\9ajm d cXgސ{.7sL*y׵E5N ^Gqx!/ziq}>w7s++KHMqT)Q J%: *7(1;eK#*e (@u͉S9*Fx~Q)LW ‚$Odby[mq갢ȝ)@ۤΥR0L0ϚzHҫgOsJ9R_UX3 ?iP҅wNydFSֿ^EV gɄCYkL2žv&eiK+ 'k ŵ]ԧMP,A6Vdoݛfjs"l+#Π8Uӟ%0Ao#8VEĎlÛɜ hG(cF4>^d1kTW1J>NdڙC i!~+j"yA<0&2VxDگx j  B$HP~+|^s8 \+Tqb2iB de,ݑ+"#PxG=4q EϞPr}֒D#": af>YxcR5RnkIL`TX8& kQLu}l9Bj+!11a(aS<}T_Q={8S! sFOHp9 <Q#H vC>!^KّT aD-?9cj+!Th~^U '1߆0.a^`{`Ρ5p+%IH(N;r2.d\~wZ׭Nxz9xzI`)_މ˾.C,oiV_r!2%;`WYwHMџЬ%7[d tJm|#zX-\ LV%VA%yr7XBqr:䶸\Wz]/H Ԥ,tr I0!rVygc65ӄHعEoTv#/Q޺ W3C TN,bZzw2ExLwq6׏vޔt+fs;fwTdK,lup#6}cYUS㐵x}Mw3L?Ŏtap#OSTtlwC3{uF:6HB|°8Jyuߵxz7#܀tz0*M ӓW>#9Ic&Fean?aPOre;…tw -4P/Two/n_$5 {ki7Yc(=X&{FE>=!lӝs:jhۏrM "pj'$Eݠ_{ʜGuYpn$Yg6?#Z.y1;e\f3}օ .e>1kM^?BH›6KoAgG)RHh!;t!0eP/.r9q~Jkq5;;*wb?C|T^EK]z=$j)7]MsxDYR폅ǎ*Sœg@frN4 Wn۽]Ck/)? - "_PKGORQHAtensorflow_federated/python/core/impl/tensorflow_serialization.py\msF_1>Ұ$o.^x{%eUeIۗu@R D.`P~ImeUIpA8+EOE+Upp(|WěR?siU\$j+.d$V0f=W0V.J4c~ײбĉ$<p`~:vi*E%XljJ楈3Riab״!l_ ,Cq",as][_ ^>9iΫ,ZBVua %[ n qgj]nB(e/%-l 3q0فx<]@o_ś˗ӫL<)<:_>obzl,$ &cPh3)[ 3s mp#F"\i45$N2,IoSU' i-8LH.ٸRK]a `E'32_C`w*sC#+2e H\^ o " CҷP#yZRVYI}2Δ$F- $=/ Uxut:,"iDU@p&lU$[a%X1k*eE@3~8[ s3oL74φf8$ b?#>-[xN_{4gqDa[pÉ Ipq$ށQ G4uu8< vܙƿRW0:Wy"B@ئeB&2Yi%giɓ*U؇!Y~g7P"yndXfN$uvF^ c \X0 @2CB1p-kA(6ڴ1S @1bB !*/|Ǿ|k#(Xz-axAnwraTxԖHumtӐqstbN!xЗ̊1GL! ]ki_SnsRU䀸uˣ$7j2'͌E#:[PaXf9вU^"7E1p[(cQ7^O& 1yB j~ɘ:bL<*LL(]T d ڡ(yd̝aϨwc }@בh5L9606OBC>_HbF XX`uI\6Dg+qe-Dk1&hpZiWD w+%1e"W0b *y"!F]0fT2#{ШiAnVwz_<.L GTpN _헝*~;oQGgBP;=HTyDUE$l}0`$eg]jV11Hn4+@똑q{N1f `@A!čEr].4xmȦ)g=֗>*nF30!TL.M]VXMLٮ>`)9ik֪9iߐBڸC :G5ƹLZUMc'{>Y!GmqMgCT`9^"FCաhU0d^ʂY1Z-s-:0(%plp*oBojRbJde6g$ g) 7BNkݬ!w(|n]_rJ[#6XjB,>\D])3)>w#8pjJ`ᥦ@JV{O{վت>*"0=.Ւc GHҲ߽r򺝫1)(%^l ƸBAW$r-0*ȈlTſec⅐lqcqKt8L{sjOAh=3ƈA3֓ ,aii {ӥibq*3c0644`HMQVjY)(6d 8MXݏFղw`hVvϿ9hC10֣"&W:!oz5OV_R|7v|C׏;-zv^qGa;pi4CcM7Sԍ 9ULbu%Y3oD:!Gw8,'$LGM}Sh&7nijCN!f0Tx: J9(p_ yjJ52[(Cv 뒇.arF)MeuׄBScf\6"/ !p[8}_rHmnaKvFnTS=$48%a#Ý=.DQ؏؈ln`Oʘh#{k.ph>@"Cz~EQ=,ѨsyӫEY?=}x4x=}y9}|6,x2r_x NYqZDЌ<4ZsS}f6ğB @{QΨR wnk%8Y7hh~``0` L{Goo_H( Oc1h_|7oGG}\|Щ¨YEc) v:l!7+葻x@QTYfS 1UC1gr 9j}ԢGV7TɭcئIK" HݠL/; ŮhZT]#hטzBj]䮐3spK7 |\nv8h"ނ.Џ_ew#US?ģfSrVwOW9vIqZ qoE6iH0*-8z!` $1A+10u!"^U jUa #4U3[K4a?pƺ28;z:M7dyy0_3#qOx»wd0O=fap=|x4:yۡDaљ+J#_S<VæҾzMF-S0Z Q _EvVTKwGY+ }*z{Vۑxe) *4hjoJ'_X{!z+g¼f-07:}!.%m,`+W\9G(,@T/57fKs$1k[-5JA"WlY! 2ݪռW[+|uթ2_5<5+%L~V='o)?=/|6Og濼}B*{}ǾY~6z?kuMH/ evƍRTPW/'_k+]79dƱ/}aʡr"%-vE~ چɍgWvrPҊȼwH\ɒGRn~7z1oscٵ~,9#٨)c362?X9]I~nҍ4>ޞ]q5ԩ?@[ɒLYͻC;3'BWka0PxOOƣ Fg介FwDsW`{o|Y3V*__o%}ڥkn{˱uWb/6}? dl_{jkj]CȞz|(p7 :i[yuUS8_lO:l6j3m#!y>=O_滒h- C.T%ɔ| i/xcNmAb)uF,[< z|q>O<%|&"?%L/f'" &kNR@x$Riy<Ԟ MヌPbEm$p-*fxaYqIٗ`,o:G24]A%_\MGRNl+ь*hSKy{0*ȰT8*PKGO#q,:8tensorflow_federated/python/core/impl/transformations.py}ksFw I;-mWq=ݾnَYHP6pP|*mʪWef}N:hѧb+ӫ:zN$:K(_e]*Y%e\'x ]j6zN>}TCM7觤"^̾WaWlxEm@UN$Jɦ?YRUQu0]oe| hf]TQ|U&]] weZ4u} @YU]Y-Ln'D?}??Ϣ߽;~svz>z.zwgo_7Qk$$S\d>I#TmeN0j_%Uq9L'$MZnV dMZ5}Ҙl'C2.yC8`R_u^&1h.h>_om8 Vl5[)Kq4:)*I3 ev S)0_ҍ̠5_5C89Kw"j^o7Y ݼ^'} T6T=A 0@0E ̷u <L-1f/->MR P<6N]ɡeQtnoJi/;:_fef[B nK"+Н`W1 7-8Ù7t_5,j_x"pNЂYp2Ag7:1D.a(ΑeDM="(.3Q&y|'gҹ&xd Ob6(%J$A;"fiͳ`yYjcYdY9μȟ ='05 ;X\%%S}çc´9w); b0+aT&eNEREd@L@w6%$E V} ~'6OAw2Y#V욦B|s9NId{;}s Xl}{p0| 2 C[n.lj͢l񞚜Af,xh ve+ajlX'<-HPb@XE(#$ j{Rlv[M\/f/w>`Ti&dk=1OKԷPaKPKa*^'(a$rX$q(-usݶ+2]%虄'k̦@߸EViNU/oh+ԕ[%5;HHJ[^/*2!WR0G;t3U0+$o#)¦*flqY )\'4Fo4#ϓUzu/O(%HgvqfNY {!&2/=yk0-3 ʶemQ8ASΕeÍVP,*b~/|e41눻ȒQ07Xl_6æDnm*^ Ze]ŊLͪ,49ѳ}^r ,9#qg*Y, y&tތq;}x3/ցeu2զ4[:j{," 1R"kݬkId+"0 Y)u/qw(Ld R9&P`yUed 2[ ,)W+6 C9BvN2s!#FҨOن'J#rZzu)Rqkؙڃ=IÉ Θ@擉]h R;k}7Ts܁yQmAOaC:wћf`­GrFFX>xeb.Rdnn>'@y+~a- ˄ (j]D-X_\BZWĆ2)ߺCzPv9{*f>qξGW[P'eD,{0" sBb!F03@B:(p1iH+3bՄh%`.UiQd`bV2$kMzH<~aUNp&Uz8H19"!9i 3 ?Fw 9~08d"hO?jоTn^Ule2Sc>d~>CžRd.(T1xXBf)'9k-|d)t13S'gCk3 Bҫ_!vC i\7ALw g7lm摋Ţ6:N^l{.}cNe'ÏPhh(:jMО^U}t:;LcNBlJlOnaVXbiHo<٧h!g<} 4=7On^>َ[`n[NDXmcM)>6$}dp/AO}h`??"rP3{25fKuVm!NV8г+)ĵM:=kCߠb,`7i9d >06Ft -uHA1@b.~G756xDPo %W(qpZ6h`Sހ3ŀ< h@Fcxp~/{KO $N8a\#m :8R ĖNrhQy FfKQX MwoĴhGt $4GӢqA\eφ_zerfhNnۄv虑C7C6t5>#睳T'Ikέܿsߣap]"fEO5% "Tx"7<ˤHl{#EQcorU'J2pQW=`BF.[ G?'O`ʶĿ@#aL ŕćJ%6@Tc475&\e/ӝ"q 8KqLrP$%ϏN, S bR%"9:Cb# UḩC;F}HJjjZH_L =x|0`2`GZ8:dN?{'FRJs{N lnD/I6G#OҠy38Yw&QKNCvDքBG(@8LP; &Jtň滱;쾑9FpUJ]1 X]l,4 v3 ĻW3~F*/iiПr 6c{0-]9=g4Um8J'VWZL`gGk7r\ mB=;.ҽ9j1W^e[h]zV +n<3j8NaI?arҒ礼J^^ZUKXT]qbm PZ<"v0#}]9K[r6P?KDO|6] nZ10q٨C @yIce"&gVdT H/ʭMuVafKޅT8{R)2;YRc01#]q杠QFU±yO9]5M)o"R+uA?DSpdXݙ-vqKhw@\XCBI/˳`b05o%=\ m5p]"=>2 :- v8TD+W[b+\,O`6bwN~ݤ5?:8%ԥ~  b;D )k7~f }3Բc =l1T-qt\n1I:Zq˂TW#d鑀w:g%ծlR.Գ5 ȸmҙW'ߝ;>;n~2ۖt?`ZbAx`^8XƐܫ w;ق9E"-օV[2RVM/Ŋ0IO좟St *0[\Cϴ p3F(©*! MO0`O y3䟭sitV_EZ{$hBX5NcWtLif&Hcw*T6N8pŇʾ4q1miD>}@_=VSSBU 6 ‘ޱ&9SGqCw幡c['E+iX°ј>3hNB᎚/}InqMS+IOwrt"S] ׺,-pWlv~cq #=M[$X_shЭz:/rJ@i˗//K\ͩz}0no_/|39~t3~eMx,ޏrD6ǒ6PhϽz쑷!M-g֯_X[O?\ji;7rzY#`n[)@ C%qvQJ#)vm<}56DLu\LLX}{@GZ`0K'sBC5M]X?) .\d|#\:rE=@TVPiQ>أe+giO 'hjkno.a>tolXqZZLyR d,IHzӻvN_QWT9}w/jަ:ޜF[q2(!Tݣw?eI a9(z ,h\:F5ISR잪.F|=<6Nd:;LFME$ k gYqKXКv>4$_M\l ȳ3do"9Ğ)4RML-?` \v32HPK/z1ע2YʚjTZq.Q<zaՊ(_9W2]8KA&*űȤϫ@åԅ)>㐫7Dk9$^l#CN7 SL9V^\ -^_A-,цi<4cPUK"BA:l^HnD`@ +N$o c0VSr  YLLؔ>Dz~8N;|t^uabb|͂}֫Ga{V#@o |Do[w^維jm!nZXqRѕs>,k9 y` %XGg/牟y"c4PuW[fHs:s/7|XAX;}Zzzw@2>ӱPJ ȝ{ʛ:] \sڢ2<\oHB1(>\6I`t_q8G =!!ZB;Pb$c#fjhl͟!b0sl̇~U44`&#CC[ѓUM޿XAC*R$MH]._'7|9TBi }(0wxJǿ9خD.p6 μ)Rч cAWOY@FnGKfPiD /=`Wh@qxqTz{7.Itg.VeUdlU[ԫ[^v39` TYh,%$@5z>j֚zty)SzOrN, :`,'(gbk";A5Po -Z m˚TaC6rN=m f`9j`$ӫkZnrsߓwV-TSqe?w0\vwݻ-ixuQl 5bOV#X~ZVnź9q\T,E Y5`BIÓhēʲdY(?Xj5)G:ia '<Խ`0sR }e_CcH9Jms C̰i]8ΌӨof77(W*.XK*GX6rMTԲU?RWfL{$ђ @i3J;K0`"/$W*`*Bc~`:O.c Peq,etu?0 FqlfF u:mHM?.U)Iɵ{i=?~z~~<~=_ ==y򤉔1_$JvQGH lw\hn 1=ʬ ܙ\yK/L.;N{I,g`j޳|b% 98Q)*ɥprͭ3P_l5u=5 s_&²ʜ=1uVI#%`ю.F ]v75YL^s˨^us9 ӷy~@N/ʪaeURTxz;OtD˫nX|gF~rxOwIH;o\[0j~CƠ:/7=]1Ѷ_&q'3%))PYO<6m[Ο=]8*RP ZAjMF&]UfCO#1O1EKTVۥ*g D|ѡC#nf:Yq%>me"VlwpRt @`1n M (+WQH )HH[:h0* ֗^JvZeىgg痜H2̘.%d]++VO[;\l,;G*X^YUců;Ni[3騀I.:(9vUQʊ;y6Q,XuLEID/]sESZzhUP55+Lv c!7.6n  78"9,PJ}N&90k"̃Yt =5+LpP @MMs~JNe~\f!#7|ÂпbjiiЂ#=EHk Wc]H"Y XU',K)60K>eS,r6 Db<\;O5[MT(WR ЗC\](p쁗|ږ,{qI4bx+b hXql.q=cW-n%tO=UOLA9γV9.Q#wN ٌJ,Q>fHHK\,U㠟HAJPQ R쾔Ķ9 o}bAmF?2!RADT UaȔ#n$za\T.bg_b1˧ގ/??/_brL#kT ܀B[Zpb%kK\1 (6یIl,$2ͼ[?`dۊnd^D"sLsq󥠑pr)8 MQ>Z|7;9 [ P**Jyfpt\^)(fԵ6ee E.:( tQ!xT._+58ꤤm7d ϗZB30P詯٫L.e)uŊ@w1TPC,1DxWWla%E<^*%_yd]Qf-dxlΤk߬o?d̟[bp%q:XZUOK`Y1'6J;[%x0'FUW7UtB.0- Eϭ RwJ+P+xܽvBQM.\:e"{SЭo!12Řo_nϭ6륵׬՗ Y*Τ^8R:S{WX&&h5Ҳ-Xr=)6 }`(x^^271~w>Y*Mc )7nQh -&/)X ^V~y'W16SWŶJ pQ7eO6[1^&9YTPypfetdxG".!fW3kHO{ha#)VQiY="z`p LWZ)#c?i{eE(+Ck b-Aⵣ9ZZ" HoqVp"L.ؠ Krɚ"- +#T,y>2i1h%Mmj:|]3 ftݝH{sF @,5d9SJ~ckR1 8Ch LfWQ@B.U&\f謟[lR{9?JjF{PݔHXGRĴ״kOaK)[7 ātTCkYȊ5s[EogNR:sl\\a2b"|o&orc ˽p$x=i_- _'6s FXkd#:)妔 磁<][NΉ \GesFǷM)度;(1< ,x &Yr#.~pɰ4@wNc{zk>1>ZwTPލ[xu,3FB<&O+>֬{=TV%i Oc'~S{QbIU>¤g)Iľ)IE za- g;({2HSR#2@P a3Jם8jG^ 7M 7f?Dgh &]s;D tnU&b*6T޾Ì$3+J$c-7뱟[KWzgRUs7GB jFrF' OQ_h"+69;%aDE e#د!}TwziI7 FG3WЕw[ 꺫-x]wq/ZfW\ޗ\H*&PtL%o()iq̹hBl|oz={s ]%Ȕ$\OjB>}KC2;( (;=4DVܚqj!vGxp_cu+Dȧ٬,:6]०~y<*k6Uj v/"I:=8yh S s+lI Z -z*{JܘSuBoiO*!307'1' ߱z2. sPz_WQ{!G*u}LS97s˄=0n8ȼXzx Àϱㅸư y IMtK%,h2yiPWN|2L2w@Ɛ]*v2:Wo2GGjߪPMwe#a:T:``pSBq`JOL|h3Xț !"aafBգ$dx 4g-VC#-Tk L|fm).cOv~x:zsE]ծ}kyjbw✔VBL͹ۖ``U 1 O̩g9C޿>"#(XK(ABAʯqbh :"(VqT:>wiuͻLon~QlB듦nP뇢SCJzr^ؤ#J;\)KCƾE,"v 6si+%bbtO7t_"CVAOUBjWek,-KFtj,{N6BZe ڸ ~Ǻ] >[*Kax)0&TEZ*BjqMKVn_m uwtޙM}X>.NaB}VVu؛GDb( tٱ*1Ʒ)kTg#('rߴ].=uo$s =*1D!Zkf1MˬrͮEu3ov( 43L0 .*FhIJQ.ZVAʷ9܏k/j>TbN ƀIyfɃ]}QV 0=gGs. Ùk9`'fع.VEqIMWch`=l% 5fL_u S 7wfHCԥk܏Z }qkArLpAkE.ݖ\RwUU1/8 tEPnɡWTjJ$rH) N1vaQ`脿TխB3#\Rz]+ R ӰV$B0N=|kPHᕵd[qȉ,7Կx:ȎC-k~SD;; `2 ~^ͧ^IߛBVP 'XM(J gLsAM3*h$(m +K5'%Ń X__3oa!hwmُFSB/:}lPKGO{ >tensorflow_federated/python/core/impl/transforming_executor.pyVKs6 W`=*=ԝ=8{'-%A2'Td[~lXNň0Oο-y2[N0~gtk:R( 'Wb@jB,nˇqñViҍ^~-W:y` a%a80(0&lw) #bK (f0љA0&3QGn7Kif PeMi4HZnFVNU?GnЊveE]p-M]m>X 'Xn:B4 VmpP`Qg Zax۠mj rq=v#81)0"CUwC8'3X嗛! +I_+-XӐRDI2HNqCJgdJ4m 0aAL0z3SOb)њiGt;@Zq5+)9 l͸ Q(/djϽpXɘVy"t 7 S֚@q4"ڥ pGU7ޏ{b h۟n%9RqۨN:GHlYv itšA6G}P`F:jСo>H:s>}3Dpa?PKGOoh?0D3tensorflow_federated/python/core/impl/type_utils.py}oG+zcD4;ٻr^g|g#r(39ÝJ߯g;HdwuwuUuUuU}Q*kʯFԳjwWW׭zo:WyTMu^䫼|KFW-tz˖f#*ٗj >>| fwZorQ4j]lr\VZVݦen 0 7Q]ΠZT҄mw_|q{{;hb-/7Œr7zyLh]47٭j]9|V8ۺhjjfuPVEvR}z3קo^^^o/OO髋ߨ?g_}W }껩W0LqWa1_!6Ŷhv3}goba;k{ oT>ΗhgQ:} Fڪ|ou>ﲩ69lU8^H>-H>^VMN5泬mk{d*wȃ/muoꬼuxb<۵,~<_kV1ẁ|U9dVVݶ7v'sB mw{&L ײB62氏@oi{6Zk&'8&#^ ŋLxj8Sh wPed6J^sx(xrsvY~é,# H UqZlo Z +E*Wfn@ifJ6SM6Snv ,&6l ? pr_A[Mu}y4BG" wray=%S (7NSUf|0m^˖W ai}՜Xiͷ,1P ,@z}^]0ExUH  ogL{u/=ѣ|ɹz@"܇e (Oˬ)Y (Cڀ #L=Σ^4ayS\M ] =D7L0l`~Pu')ř˯c;|3avvWiO# Y7s9pQ1e8W!y;hkBnp8̞/ϡEB>wfrSWL&H~`ManP gz3{,|Brq lY֠'DGuls2E 881 dwϪƼ]_.>PM@2=&oHP2SN 6 iW۱g.Rf4|5{vȢ1ΘvyJGVe`-Fb.}><(j$m~m|Xzh&@j[5[gub X~|Ѐ~-%/m 8'Lqxʠ.QC+@겴D(E)ӕ&HUq4TFlYHbV u^)zW"16ynGKԡGOOT*V@OtJA x)D&.1HcʋfEq6|eCؠC>'K}Ae鵈.:ݠnihkq* |)En`̏]e^Ӹfs֔S8}ƚ 4 *5πbɧTQ -FӔ &4ÿ́9Xo yMst5MC 4{#GבGGPbQQYZB7°_?D)ҪOetB`X6A X)7#5E5xFu",P-F 6 aj8YT4`]t\xKA2t)>mDKl9 @ZVR`X$+sx= ݕ8|X]gZ/LNThIjh}ͮ*WY>8* #9ЪinuΎY70yEH8 d)k6sr3 ^sRϹsCE,a$.wdIIh;ž ;(,.~1`@ F ]qPD@f9IЅg/,*M XC1 #pvZ =&"YxфbY]J p F*`K > 0;v 9Tw- ߹(=t2oVd2?Hi똃kHޜs*c6?ń]pB \wwX8wgG'/ :Mbt6&]'uw?ǃAeh: fۑgCߦ$x*Q¡ܷvTش9ڷy - y{1m]yoMC=6}iW"|E69@l{ʔ\yhӇ⛛W'Q {H]( $l3{/?D(z7`` NlJ!P drͰgYzoL{+1ϷGjfg݌|Ea!a,::Eόy`<pNWMHvI΋eZ;0yeÜvuùZq˖oFRoks|n28ݐ:֌rcFYWʢ:p*dFWN7C?=M 0 `WS rv~G9( +I+m_}$TG{[}4E5!1Q_>i%|Tc;>x1GH 9[6TrFIGQ|{)ɮSd;ʹ?0iB\1}ɇ "FӺ1qq<t+ZK8.5S¬dּddu®0\zN"O iZDWڦ/HCczPϳϳXe31CF.Ahs+MSC8;BMipc"9 NNQ) zжQuIQ) ͨ%uN,6+1cN݁X  IHcðֺ@YQ2nH[q\du~YgHmi-`^.d'gkMJ+={]"TF6LoJflr8ԞRR")]kנPKN0hUيr%)ȳO*Ԡ ou,i ^⩄˲@'qv05׼5WZ} eV3x;0!0wQ<;)>S0f|X괁Fu 2=G4{w3M: DzFM.pfa 9Rv}gD0{d# : k4"EHlK+ҝ!x5f,6b/281f`v`-p9kGwpV,d--'0f2Ff^H4!4:pj:A4N 拄]cz}gxn <ђ1gI?愡6TtYW@by.<e/W 1αp UЉΎ;X[<38_M?) fIj["yQ;Un10К BXա_uN3CЧ~ң^aQnM9 @9ӥFkUm _]G^r\,MY̜HN7X?!w"gzI`,w žma90O9Ÿm@){ Xj6T.aGsarԫUr5pBmU`#EsP[r *R`4%V ^7sfJ*KW/v~[Sl?5Ը<oy?y;?{Eak"̗V>8CؗDΜ.\%U+vOܼCb',[{1lNMQڣNWCdx iDvCvET[iߒֳioٌ?LY037&sSW i}FJ0%~SpHXu!" {=ao[0_l6VD|<xaTSښEKJG3<gO+CC 5Jb c&͢&HN4Q]Pe CԸjC= %o{|j_Wݗ_f0Ue~m-G֖dhm @'Nd[MwP%Z} cuzX<׾|:\,P) tаH|M_QYKKaCԃdY4M"`Xhb0-8Qth@$D>($|i*;  jb=@2hJps8}3 *$z;y>:QЩw̢m;$#gn\S\*W;uxm`LW:/iq[JVÚ=ѕk?μ8u71M|տ\)^+J9AgۅO (IJXL_9/zS С sUgU'5p(=/~ 67r@:c(rD 8+hm] .8zC$J>+ao`K]O ;dQ.و-BrX/?%'9c\C|m ~ޛ:)Π=b@vyLŵ@}[Z)Rq\{t[1E(æ*0(ю~5%e]f" y1LqEDEEtA|(J{-?4FX:G?} GO8eќЋ%Rw֡[XP&B%j T%C-v981yAU ©NX7 RIKDTJ\rjRF Y̎{Ln(Ua>lS °VjϘkᮽ}b|bAR@ .i]ab=;MpR'ZYy Zg|1l)If`bN^~s,<|>V{%_X›R1r[6S[  lؘ%=Y+ݬʉ=ũ`uP>:ImX.I1U֌+ f8 '43\bzE/MQ]T_3->ҝyw[ޜ4:Zx u[y  عH^;<ɽjuysvѩG>ztZة7z&DکnO*Cm띦N2դW/_bqgƊJMó-FgJ*VZBp謐ʠ$X}<Ŋy3VHp3oUcXE0흶aqE}Fp :|G Ÿe%WʕrʀK~m u(Tg:OA8M]nX19czYLU$|5nܘ}@z}\4dG.Hzj`g0z\wI4S]wxaWmſb6>y5IMTޛC+ICr_5 }RqC~kaŇ]f`Q \H',jkUd`iQE1)u CMJSI#J[trR<@-hڴ}Gڱ|.z6XЉ2qr"'Rp#Hh#㼤;.ϵf8c+׺k_v4,޻qDɰSd8fo܇/d_SMU׺5N-:%֤*Vd4](%u\3[ k7FΛ Ыa-)4ctqOLL^1s(Zx& 4r0ft1vl4m̝ >6c YyK`BbW~YDPfLI;>K,5Pgͮ*כB6y*C3Xsow٦Q;qUI0#bYZ8\)XJӒчFC~=8%g/v r'~Se U{dž8䑠CҚHeE;_X8kyGgo )n E&ݶN n ]0|\]pnAI9ӇW[ƈc?uX{_DYPk?Dzr`[ ^\/Ity"&~-;SEKOٟzu w^N@`3w$;/!'+IOGgK&&/?vԾ~J^^+7w2-w@)e,1AUwqMu'ʊ%"$ʈ>B/]GI";EY(h=tJ*J^I,^w{M7/T đDkBݟ$a} ݳ,'BjI>zu{{el$7 -00&("{i$!RP!lk @#hޗ k Eau0 /z{2[@GO1$e7fIpA_ 뽮fkz {BJG4BA|o#1bLjQt\>zOh-#(4 ZY2/ !~-l&LQ0?C#]y=@+`l}.5]*!g bz܏}G oju!CIE1Y[)d4MDDDa'Bh=jlh ɐ Z=)DdaH^ Vv)<_]4Zua.k|0>(=ڻ$1@ <ػjӂ9_5`Qp  N"/5^sp; 7\@3$G)TM"0|?$x%-Mui->}# zX]F5#]+/;`kyа˘@*n6 $pGNmÝt֡?$e.a'3Vb5E5`,l9;ba\6,Xt#6$1i4,MKf #ngLjVz qFЊ;57X<67׿x,ϲDܷi03V…9߁U @~ЃN=*)*6wx5q \F*TmAha1ALB1IOϡ_ %j6H~HV`VJ`(`HO~2?P>|$Um>(,}4 E)` 6[I5bopR TPCk-y~{oxk^1-[&:W;q=.9Ґέ_%tIu4~cGQuQTX dYb@NqW5>̤cڙ~)+|‘i21wy Z[~ oW}KCN}fDcvP Y^"Jѝߔ[?OS?rhʃ|(\pE0Qä͗|]/]紌utZf@IUk[JV" vKEOn7Pf`7jTZm:X5~m-"*D$ahG 6/tNVoYHU]8 f.x>K8</ArMs+wN] cN ߕ߰="iQjYhcP>vLV<ȵ-g3~29Jh[L &d;%`fi%=hHq*&~ţOҙS6;F1u$QP1}PKGO[S$>tensorflow_federated/python/core/impl/value_transformations.pyW]o6}Hm/s3V$CL˴MD5KҲd'i=@": }T#aTmJЕF-W~~ӯ MV&zC7r.prNGM{opʱuphXⓄ*];: 'I=RVBYZB|eHuU(Q6ʭ54K3'[`_>s|٤³MYa=8_cSYHkȿke`lK\@҆HsiZj u L,g(@c5z/ķ=T t-yO%XK{1'Dx 2l lz-?}؁+jK`oOfg-pXu ;Q(/ځ-&Oo @Y%Ib2B>ݏ㑰c1K#Vbx%K Y`Խ:Ѯ!rӱIn44JQ B!evm6-͵PA3XY\`'z689{3|-On,%DbyxuYљ68e-8utĠ3S8 N?DAo!_ Zr7i7Yӊb?hx~:rwhr $Nа4?(pK{S o2FƸl]TKroH4]E[ٛ?\x$-Xa(]9mz8 bHs7 t UK UU m( eOhRG)Z؎Ę^Rp{oU<@v ̶A Ňk{J-4^V^9О`R ;}PKGO{9\{ 4tensorflow_federated/python/core/impl/value_utils.pyVn8}W ܇Ȁ4K1bEQ2-Q6ԒT )vnmE \ i[V}UbpCɚC¥QzR Lx5 `8mX^@-li.VzVP/8ljd|_I[[רwr1tSW/3PKGOej:tensorflow_federated/python/core/impl/compiler/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKGOE9' Itensorflow_federated/python/core/impl/compiler/building_block_analysis.pyWQo6~ׯ9OiWlm]MX`ۢ( N6QH*wGYkQ`">~Q>ۇrVZR[#+?={ fX 1C#f0(88R VQҠ)fzZO39Doa+X-(HB. Ot z]Ra#/!qNPv ʹ~lb,ϋ:Ҟߌ.y  YIC{]lAD( Y hbif#TX0H(EjѦPLa4t4Ƈɻ|Ƴ&p9_fɘ0G iE}i?#f,@kBT2}e%K}FvDOP N8?hSqt9YX>IVu,*Yd (tkHr$aڐWVLR? dzKCƧQ2 [y[y$oEVI!vMܖ[a,) W$Xo1Q2bIbFҤ4 sV,ݓV!g2bFu-9ٕTM>\;T0'y,-#?!Okт > WѪiؾ)T6+<ʠnr'u5 ߵh.XC Eaqѷ[Kcc\t"|l77WI9 #Hh~q[Q>拧v\)zÞâ T~?} ڼOqQyUX' ZBhh. ˃2Y!·yR&eټ̒̓ɪtЃA/4]g'^ _^g_N޾=y}]{yEp_. bt-sL .#T,i2O0r]ev) 'XuRl ,뤌J6a`'y:N.@UAԮhJ3x<,b=VrR7ϳ`4af9,I-l#,IvN^O~aٵS^Er5LXVFFPϣ_edSh99BI[{Chv -DYVŨ\dckX"WN8OEЪLE8y [5 ㈖rf V"f^hJ{ (_B \{~2u%_ţ4Gqxyrw|0^k)3iAJ[7qdQ>w{$,J@)MZ42>Z(PE 1!5g޾@Ɓ,ar1HK,-`|Dֽщ0B(@%&E0" h֘=0q>hl$ WQMaC&1 &(됚"SF{W2.Gք4h/J". zÞHF~:,(/ {_Kqb @SAFz;92߲$3}ӫ bNG)W➀E`zgJƹeՏ9j7Ŀ" < Fef!W[m 4Z+e-` B%; %~i 5s=-@K\Cb @v7P9qf#KPVYq0hR$pBexp-I7qZ_6V_F=Ě7[Wuh#*r\NiA(2mE>5|Pr PIa0 `*~O<Ђ=v&;&YOX hlÊ!AþKfu"L#\!!BVԲ<=Rԋ"ܞj( @/h6n} !oJfO#dK|'Z 2I5  ƳeVXlA} OQ1Wq 9FG֌Y0nJXc1Ɉ#N<˟r$3QS4JQRG S.5lIY*,UV r[ҿ ;5:0+pDlbY# o8x35Ag/DbmQLJF  OB[?#?Ut-xרXٌrPGB;z92&iU5"{F{RY?]mt|͂IƱ8g.i+@dTE\ETU vfc k+ZS2]>< #dsWH,K&u/8JH3rIòBq6X$(Om\5GuU7qNlL۫ 0eCi_1cH6 ,X-'iDo, k>CR cfݾ10>;W@劻~Uya|A a(VKFG *J-ȷʀA+$QZ[8? }M%8\.t`1G9lV!L3ٺ<%A!Hy J/!ǔp)SM PSBP5WcTd;Rirp kQ3cH7n+go /D92ьʒ /pD淪j36 h5QZ @>!o?Fka=u4h!W;zE"ZqO^EYQf,oSlk\{}$'0)VyngyPvU0WgXg+qA~FycΩ xF;l L >x(^(In\fYjGT8Uݣ=VEQ|$l)Hnźu{4韗#X+bF:IY_1@V@,N+}\ML΀:t=5M4sbs҉ӻ!EMDh7y2u5(6]\qmGN{{]]uG+)Z)uӶ|o6`(zT=-&l(06DR}nHGJAA#u^]9 6,,`˶@J8,]kXs!l?^ %6l9U-?3xQf˄S:Ju&uAO[⓫ѻlUc*vS"<ԧs}w=7{YM,b*Q?/4^ް_ p͉)NQ:Bh,ؘߑWNde">(9TU};0 {>ŕ ?@~[bxOa"[dwlЖ3.rc۵ M0Jq?@&*iZGQfPS,#a~ʽ3 d:'|`WB2WJɗ_~o18Vf+Ad")K+z\ŋ%bdz*^Sb5c5ƥ.>KG!2װ1jEuӰ>S'e+S6ףl)G:yT?׽ IjA4#X`5<鍱ݓ3i qo:Ea8~O~hʳdbէ_ $#:_A"k﫤i-g+€7a@wh ezO(b cKe3[#֣CfZM;f ۡfYyމ+*IS1ohD"c '5{yAgHmF;7&eVSOdbpXI^pTp ;;/ΓnƘuw!j;b49߅İ8aK1eH"Glk*=+O F> !iY94颳rEWfkPq3Dʞq"cW`W)2q\ҪAa5Ym⿒d$ !$a5E}oɻhmKI2o,/)iv-z+Zj5 [O})T,qTrcdNh 2!<ސ2W*"҄P61~2ER ˔[B(s&I ѰE4=JRu*oY\ge"%~kU`tp:xA.U[ mOwU,1[ܓLa#@vA>,aKkW"V\GT)*#sk6#fvیRQ8_FHKR+]x/HzwUg(FRIiWzl셪q-9p;OQ96((!C !,wvޗ*g%i g 7ugq*'N .yI*HW"XCP,{?ht2,a‘NVsD>NqCT*FiF*˫Lpwbn'<)GUcmz`Js*aLg>ͮY`r0mDOSzi7e|-p=*x?9QhEc!9J(B??UY8=%Z0wY'MK/(Vtւ׃s_.?ha.SJNj$PL 8"&)0Mn3q \7!-BJZ M/%/SpMO7:TBSHEuiDLB1 -a`T mZ$q7pe#M+ź:g'yUx59/m^ݽ5Y}y1V<@TMaa1 X9c:ujmt\{}=!}?5E?lɍ&am1Еiʨx Fz؞kדG5517- _5k6*ނ;:ق,*cw8!71Zv!WZ5EỊɖ%,DP|:H0RfoRy`gy8zb`pǥzB.V^y)Q Ͽi#21i~I<QRhW#1 ̠:#Ь<:9'  nCDH#.@MZH `w/a݃@H*@tHr|s?J^7 #t mt8M*RG̍+h}dddTCȦi KnH<=_xmOaDH$M_!PN㢿Sp6}RT;{ 4ו9fM)>pqBCBMc] iQ!#Z@}~YX'Q2+r?ë~I~>dž1Bvωfd@Rao࢝m no)} L,})7}TzIç:"#/kilzWgu"U2JrF;2aZZiy|<9h:p(`靈F7zLu%Ḿp/,IדlŤحsbO)E福 bzdj|+8rV-}-"5)V IH[ݻ ]@I.`zsE΁Erz!6ϋA>u$4V5B՜ Eî$:I< ̛vаb&ƌ./),L,D|u²!%9b9-Z|aCh1A_*)RAҧ",\•PRc+# t/XI`q 51dC76N@6/{g5D$?7> vdOv>^>Dk.pla-nV[IZ:_(Gn}k̹Q4+R.2L e* ;m+ZТ2Xx;Gr~B[]IN tCȵ]+䨚W^ YuQ/O~ ܚdͭƍe`[j,D$Fz [/ өgXf"2TyKU5n$z95"= }RuWvy=&2<Ռ7Fnt`y:9 R}:>fos+FǓWOG'g#inOeoqӵn{}Ƴkk| $mI˿YY5R J^GC6iZTF3JtN%QW U$oE(QCp'rFV I0EO1S"hnl }B #:M 褠{E6{6F=)(r/ժOߢ Eę G0At(-_MC No-o>GQXrn5ai<_8]m:jf"Φұ}xah-i:7.* i5sVF֐687xoW̠Dzm4R?B%9{GV-ϫy0@Kf|ر1 gQq/ހٸmOsi_ȧKKV׍ 'b!6:#_ЄĨ +&#ol7Wx.O"ӞNr\ؓNuK`zK#wuZet-,ϖ솥 ƠeFA +Qu *GUp=̶) 2oIIpzi\ 75Ƕ>zN" ,] KH"aww>ajVs(B+,%t|DY2'&8Rn\#p)zu¡mgtR{J{R,*t x˕Ј/ X %k29_MMU)o{$Z#4U㪳ѝw*B9hrjGʩFGDO^MESͨ%őu: fDmpl_L\PӞg;[Wվ-DT8Yqx̎Լ:^>#gO{Ғ0XGEMH$r}L7A(X4.$8(_3viif%$ZԲ_Mo⛯xw/<]=&ɨ/rMq 4Ffw*M`鐉mo U:"IU$̾ Dv؄KP$mu[Hei=q_ E>{p{zM'ӽG7x8ڠ-]DtĘ==I=RF͡BǶ~lޣX wklc9b(L ;O8C6G{ 2ܡic>lW8Ud4 qDtx$y$N~d|oPէmc~2>6xWL@Ѡg$`ChVqsxvtUFEPk/S*g\S[w=>h ZP[^ebbu Es9QҀSΏ^έ+(U ݵRn&.n+1MHI~>($iV9V1hZ!2ZQU54ycR퓝^`Ras0DBC,$+bJa9mgtJ3[zKʺlX+ UHIˆbPJaT ͎wlg++xf`Աڄ}6n 71! dيbkiS! m}C?/ɒ4'MYA}\8"^3cݰ@wr8X%ߤ݅MPY ݩ{u|ڋ<#,z- ֓Ǭѱ]Y"q:Bn]ɩ`y2:-~퍮ާq ]XkS*4"'%W62$xxz[!_q.7pSn:w8;+ec<+J(ĖL#{FدU>zf:r&֨QZbj̳U:V&țl!Վҭ| Uն`zFվط]z,\xfEvc|GuSd/R7LX#Pb(QY_$)*Ქ8.Dlď?ՂVpDNenq|EzsέgY6y<94$_['Lh~1Vd/\:1?/k,3PmexwmBq`pϢ4<bt"Kv-DA2s8}ʾ]j l߱c^Ag\B:kdN4[S]daJZwzD09l1^X-ҁ- J(1 JotaKS Ƕ}XkL,_] ~睴U,LX'E2lzI=hR>Ϡd!˖A5d{=<ȹ^a,YGQ 2^"'Ͽ"8z:;VOB,VIr[GIhV7PS"\WUi Z)]&ٜ;Gx^JX 3)FX4_`ŔQ2Jr(*ªu~xgNBHe/Xg͂?UB-BPBʒ!$.FanHtv\D;|FI"uo(VC0\eiӶQY\"ڊF;iuUӤKU_p+قZْcuVSi,E-UNS"jfٔ;8t2&m#s3!t\ IFGt(CЉUy(U"!ˊ|XNvԀܓc6e0a7/Yy2M N~ԀsQNQHsXMUVO$ mE̳eul=$H)oέVزp ZhI}/2sS%.J./Lq/0*'Pg>ͪ(Vȍ6|htX@*0a7bI1bu-Wŕ! V,0x.&;c@^G_(}+zgyC25(!a/I?y XĆߔMǁu"vͧ{[w5m\ӧ%tԡ]n{zun%Ufu5ŘSuŜ{mG$Y9VS M[JM6Yk;2PKGOb?,Atensorflow_federated/python/core/impl/compiler/building_blocks.py=ksF+&qՑإ٫RB*}:Mm)*$A k_?HI*LOOOOH̊F$6e#VOy$.SquYk"]UҤ q.U<^/9_< t:$sG>Ux?Cl|e @-b܊lĶNDVe"FdM%<YsIH QΚZ'~ߖv;40]6㄰jU-^>{CXi]*6`[ly24ZHVU Ϛ&+V#Q:RfơB&m7z%8}쯯<?ys[xg_?~$R l*̐6M%#Toy0bMVXWiUt&YYz gI5/|'5XE\%UVnk.+5V5\@*K  *b2YnmN&8^ef*Co*k1GL4۵` `:%CntXV@ YA<]f*7axnJE1/\B[p@`{f?3FйREce6|M -@`H Q%Ⱦ3yUp\v sB$bGI3<{Q(@XLiQFA'=O¢w,_./6Lj5}AdbS%F#D)~W%ًV$;-uo*4)(U]]s)T+Z5h)T8Zc 8Q :gb{ PZ,)6ascHx,Wp[ n Z B|*hˁf4Ydxn?m+rJ&94H0_Ôjfӿ9=Y%s|lM76:)"؉0h:0h_'{ %G>:z?g;}b]*,ԝ C-o6k(ްCf#\AERͪeK Mcr䫯vBtb/D6<+- #c Ro %>:l Ii2l`Ԟ`q" pPK&U+S:'"QR}CaǢp t_]Gh;ʪH <)BY% mA 4y 0Axt@ 0b,":}FXQjzYRMq#2VZ<l2[XA0OcZ  jQSdw\qMla4.<6vG6:PNJmYˎ -]!2Hx$p wq PXU6eՄI( wg*Ei9g:P(`0leg@3Œ=]ѤY`{vPV{ 9Xh>SÎ;,ID >z(WXSJr9lDJ1)+ nVBgۏ6jFJb}~7mT%%b0;P`lBECHgIĺ/r[Aovt\\( %0BSonf,W+vQ S? 18CU2 6tj-4KRVJ(l d!!2YNPք#!cՖZ5%/3/Dhs+p F_QL9gp}]؉*XȤjTCɧxk4SX҆rMlenǾWbC~$NлW-.kV4f!'8S$E=uxt,[[Pw_u9'8GjS .q|h/1rYcOK:)U*1^6)`]K0y՜f?Pǖݪ.bNJ1vİ}ND퓺ݱ.#`KUy"Bg/ =ΕWξYy޺}k׎!`ʕW~>Nk';u41zj4hmq b{N$-9 Gc&G#tR_䭛Z aXLM:lcn{Gmq)MݔqP(cg=}>DDtN$BФ)R)Kz`*Oy lSJ]zm@Ssz:7]E4A=BtoѪ}#Ink})iLa.!UEN]~gI(t\O L xɾ[=b^|nfp\A/XOxdfdI R];1C d>GE*Kġ$K tKe3!lEOOFL3l32@ْ"|Vֲ;_ uH.L/ie*CR<|o`=0 n DX&W Ѽ\F /xtd .\6~h l٬J?INX"+tL&g(}AȠ؊2|pl Q&.P ~AԢTo:q {nĠjtq+[>%I`:z;xhM޷Qp@f^Ho0]}/_æ1+y#-5`߅,V=sd?]zt 쒴X(G9(DBV?u9FЩ r@zFɀ Q~T. ?I`䀡!);Ipa 7Ek_z9%yWbhRrW;{x0$R-1)l Z{UK3 aSGh͑(*dt}K2( #(eyp#?<Pq ҅ia}QQ6*eC5_3@r\{VڶJ(~WRB'AM[tk!~1CıjǝM0iY $+PҲ5}ܮWݱc35/?Ia0PS 2ip={t"͡Xɝ?kҽ؇9.|вhic/ßealZ?bo06ȇ \ AǑך9j=MeȆA՚5ʑc:ɜ^u@ay7S,@%< ʛ6S@w;sף`"k+)EgԇګQ,!h#e9VBd|am< ǬEBSX:vvj SpkoWޝA)ͼs _tLEv^"6qBdH;,r=Rł3eHsO --,!"mWb].LՈGisv&ix%'=KYr)L.bHc7N/O6c__Vt"*Ί t"э뭹Ȏ<B`(ソ$NXLa vXV7 ^.7L2c30,/[)t2<89a7eGg~ pt;;2C^03q /HM*,KW] =.a84|##6H[.f}$ Yp\w.w6SeSv]/ȅ̐E ́"Ei *b46ΟeWfB*cfќ_*qkHv/a;}מqҡB.ı̆:̗%{kMCXMz)lR3g‰&*cJhty6lcB׆w{wYcg6%/s]LFtsJ:dw/H=r̩.:l~rkv8$1#(g|XH@Kl֟K)6Q[!Qk4#Hvhc|q^L]p= 7p|vuӽpOU%9ԅ)Eӛ.<5S: 2ָGzU!M60i,N|gwdFRQIol=Fѭ*$(Et +`'cѢĩpB $JWg( {87 ՈNL u &@:cLa !fYqUl*Nh2aJyJ.ԯpB6֩no%9mc/&X$Vl[-VmNsT9h$g[*VjcO`ud"k瑅&Ȯ Zp9-Xe,Z( DV\Yzﲹ7~2 t~!t'v`Nk{YYJ^M:eQBc7r!wx2h**c oadmgT~7EIvơ w95mdV.Sotl=Yǰqdߌ5'űF9lBNHpc 6X@`ObC+K#mN Z.CΛL%kb>VGBбoFw./2]<@C&>vV8 c.U *-Icl0nЊ$%P3OUZQ04tKuD↞TTS]uK?pޓ )AfW>Ye~ڰt/rߑEl28o'̑Lȕ4g#J6Y3N;7;D^mj WtPnX=% ]*qpp^yҗAxOw}V_b/Up7?:~6uL^\O;T+`n[[Z.Q͹s,NbT"Ԃ$bɠlWߨLoZ\u `KfH*&u#W(6dr$ԝF2ObWʴ?q'C$Ìn-(!߼]wshJn{ڥSB O+wZNzo=~類}I~+%Hy ~o7StQ_5 (X8t>W52Y+XU d&N1Wg Q^[,:lD- :|i.$%cɇUl&5=@7Xje[f`-= w _zbJA5VwW% ө )tpLpJ%riMoH`̲"Q3+U(.H#hnHm qjn!?+<^T; OԋG/3ysfŀ%d#lts#S/>P{} -^Y^٭\I{J&@fxS)>}*:?$8BVr'39j9wZt󃥂0'LH|!K sMV㥓ɡέ$Av[&$0Aj该ǺnxO+-¸䬬VvL7,hw1[, _8f5܊ ;uBAa\ǽ ]yUt(gxsw:`X "l.4_))Eٗ;iɬKYXT!%TQs #f"g6HS事.J5^N s+OHMɳhf'q/S2Re`i`հv [uX 1l}o_"1n./%Ɂbyۭƍ̓'8ҩa\$­q9f)<ˁE0;\dwGЃ.] #v|DX(bwC*EmH`['Z`}A[W2{b).h]^=Q^2!NQ -{0\84먋aa +ha` M evSTG_ #Øaa|Rx#1qshvt4cG5gd-X,^e9f. b#g8tM:V&}rG[EVlcC.3mzE u^]TS K-> طJm{jV&`,~ݒɘAܻ: w0RLC\MCX>U*js!Tu;ꗷ{ +[|r_>{~>9N|Xʌ27 P˲D-BLH.P=ZoY\ikme2tѐw aw2#ud[ߚR,՞E:zkݢcn܎AZz;r=[s "27D_ cyt|!xNl.u:*i2 Z 9_;~v񖖥h[64MfKk;30J8KJH[Í=HZ;Zd#/<ϱ M''9# Q`P-${~O\e2 6_-Ǻ>G2YDߊ.[i9H2%[uAy=Sc9aN+ ;Ճ5U?E nuTڃΚh^/.*tM^+οEuz&f%B\̪L;5]^^8+AP*ӞXJXɐ r9VR纽vf0%H{K5~(Zl| i9Ate)+ A }/^Z^s2ڤjͭ߶͉XF>4]8FZ ;!h(bi>o)Ӈz)&v3\ )`ÛsU/qϼ,E8u=?5):60?m~ Mo)*uMΤ@e4n9*{me8[3Lzlxrwt4}NZJV&gyhl%d0otLMnq`s5BE/;pJz7km|M܁VW1TcN{7D ^]w(:s wZRbUdUW\ 2c=P ?ˢ'-,h˙t}ۣV__ Z̓]$ÞՆZR9UW7X{Bxȣϐ;% e%l8NrIu? DۏB+( ]:&5ۇ;L<ᶐl]p-Rfk&s+ڞreJ.dDgG~/]P{ NPEP9H6:C|;QT.0{}%fBCOL}A"XByDBt >ݱmaS] vU' '"#^Eܻ#m'gtUrɻ#kk\rͦ{L{\ W5Yds6}?J<*E_t/cqL8yO )|${%+FNer*zltvE Ezi?L$'g G:`-$Bi1SS(\X2TRT 4!~1 I֧׬N9LyxtZudO1PL{Fq$X :Y `dFJ$晄gy2x UI2U:Ԥkܲ _A,w=ϗ#_{-.l./7wxh4CH|Sdڵ5f S \R̓pl4JSySʃ>:Tѣ39S ApXDBGZrم,Kb<yO2P܉N"`Ә޵lnҺy Di"uXOsN?Ϭwb$Gj8_2pL)u`V} )Rdς0Ou5v grZ/_ZVN&ay0<25IgIŒKYv[GeY}cj ăE1g 3p( Ӥj⃊+Aנ@8j/*s*.ƺ%da2-ǍSDH ˇ# AWq[h8X+21cD?PB8h?B歂 G(E Yd<079w4^uk]n389+i=IJ-0- (}+k[_ T}'[#P8@kFZ``P~CXgϿ{y!zөEJv&I byAZWELBX Y`tW* \μXzPv]@8RC8-62xDH#u<E$< iǶ\&yf D|m,%FVi/4Hiaxִ.J06:y-:G5߿sGvw7*֕A  $5+9yr*+3^YW "AV((I>):U6Xa { cXHht\D݀` XBNL2f]7ADeU2M$)fF+J =vdg=G9sYۧ)2`HlFx8&n ˄(XC^HTa 0 KNq1Y, - =ݍPf  O^S, czBW_)9UbɆ'!?NdyDp"!@aà5_AJ t]-z;Ag[ͽ @9cfl0Ԃ~5U FtbQfl;z9Rt&}\L.`qpI|IhGРvV "߳ςXa á΅nL]ӋԇI@=_p7(T{oKYYj|Vih$ W>H4]5 `5R5g*ӹG2>=/cL $S:3 0 lFb3 l .1+"VO5qL91<4tn[d[TL0a@Eiۦ 8]C#C 55Kl;rq6QH^;U}Yrd<\N}-Hko0w89s41`)8-NK& @ ͮ*0F^[#nt޽ #GMCl@ 'By s$=$$q - 7'^z&j+a11wA{oo{#Gc-BYT{TIMM-Չ#F74@U*>kƕ&XVcYU?y߫h<(.Đ%^cabXM* B19r6S c H~x[_$6~vOe*,&!)@m-A G8jʑG;toL o(g}h #m? x5Hv66P\uڲ{>djKE@rRYno~v/7%,.{P..+!ʮj̢r))-V6,n=EY7Ӑ~ 4 M֢s[ч޵O'º^ԽuAؾŢ:!cdyg4Fϲ!Zeӽ1b1MG(׆ 'TW&#;lNt߰LMT<+owEpm3}׻ڧ@þ؇-]A**{(ǮOB %u  +V!NXc,ZP>jVq|w~ڗ `)܋w[sQq&iMvZo6L\i]Y%?_p:U=; `)vBvD]gXpӁXR2w<,,׃!/+mN&L"rkيʨ[lF:03 $ nl%CetٞC(o

D' v_CjOJPš7Ia)Amq|e:pk 5rʗ#/lﹿߍ/|/~zy؜w!9բ렅&_UOFdIn% Uh:,t;o%Ws+He*zy# }aL9ə9kiőoa> ?Kɂx.m Jg[G]1mnJpdAd/46 ?7\giZ]Ϥ\NYw|72 <+(! ƿVc.iV^9/8>^sѲtu>U+Ї6z,K*df2nFBUsJkYTf dSYqaW.~O {g$+,&7*S߿'-Τq"ڊ b>玉IA7t{G]輦*vfatwr,n?hsI &EoCIRT[x"N қ`ÛWǧ3Eev|Pi[ݶU?CYUg%_Ǻo;;^P?k'߶oZL㝊CmjvOZ7(+){|5\9_!6U+MAjlmBw !qaÄ{&9gMB a0XzjAǁjZ?TഩiQ[m1 \Nv+j5cK,K>˸?T5q˂oX&e*o7iZ5yRyҗXtKcEXl_wxeK/ޖ"ePKGO:._P Dtensorflow_federated/python/core/impl/compiler/placement_literals.py}Vo9~߿bDnBRQE:.!:tTIU]O+k-l/h7㽠!-13jkWJ.VU[-%+N FRm\3s0&.` 2ඖѰb5=qmt_Q)Q5ےTjBZʒuU &3NaW>L0KB-,6~PjpylbJe4d>zQ[-4r]lU`lCJ+4*xQKaK.bQWC҇ i$Ѯ(ՂZ*VG\i1\H5֢礬.m )8Jwe2-*"rVq .{pw+7;J+n\\|GNs\`S- )]Wn!LPy^1:BՐL劣e߿_} vX;R9^q58̔ҹIa-yG-tv7 F 5u"ca<$sP>vc)iG|r9sviC< ޠ]i6j$pOϢIt}AnYU+3B{@Q3UKiӥkt g7e5edn\D9$=ƱcP&p :{M ԘsXYJ ++F?5$m(i𚓌|Q{Tswm82Ssrj4%ǿ OQc6H.+帀0 EvvI1*ǼwINc-w~*VBۻ٧Y{l]+M͝7uMY?oZ6E+⪃G=;Z{CWbo⯲Ѫė|bd <֝[i UJ!_z+UQxPMcoDl ] lj%mw}0+Y~VHٟ?1=CUJE#ѩֺ|ZK@,D݈ⶑ][#jUu;޴E#ZQˮeуE^E%>ϯ?O_OƏo}Í^+l7)* 3mѵBI=ggފ|ӵ]#sĶnO.*s{hZ+Dm]LV+A__WuYJVۏT+KAcP7y^l vYSKhhhGo9=XTu;=o]) q>Vիc4rag=BYv\̗ez2`@J7'ř7MgR,pqr/GF^oveBvҭj;Y 7N§Ȍ佒p di{V9[8Sbk}K@lT[v݂ (][ IB#8r3#񛜖pV}Ww% j j OYG!_jqf- b  M)$q.h;y?Z޶4Bfr64E"NQ6X?S KjY"Çc2ĝċ/^|}!W8mV]Y4SxVx3}=YLŲ _^0y@8 _ J#aN*>7#Z-^FUq8GeVִV9/(WϞo \tX?GGRkE +q|OX sB|GB]0'i98~.'d;޺klHI1߉HH8(& [tB4j[W8nRl%`z \[ⱬgX Jٴ#xt t|C6-k@Ok ӝX4\  `3oRH&B2mu {&?x f/9XrGy 76AW*PGX 6j;Q8HH(@5o' sb hW`VWZ|74{ Ʉ7՜o\,sLa^Kckp;GC\K37̞0§ *c WͯQz4#P- GŦ3h.O?Ge`x)G)3136;Pf +1[z`cԇ.G2!ٛavHЀPP{QW$ASI[<Ժ#v͵{wv.D->5EeH7 x0Lq?DfF=YфfT/@*D}/lü\4ޣ;H_oB,N 9rCm=xv4cl 6c 9=׏e]Η*T:)0^`B?`,?AqWׯ#kSűh, >q^r!}[ˢLU0_LfQ Ӎ(\Fbq@5AMlkN6 mJnv#}+/ У5qZXy¢=(vxϐ=Óɼ&Ij!؜ƟGa Jm: 9Mn˒%rBrϩ;s0TA"| ffz( aF2ШwGYd|X #30^}57_7QַjE9/Va:1ˬhߡrv`I-`̼aH0~p&H;9',O$v@~pщ,Oa$:V}nJD2tnޗZCfڇ4hSuClf)6dȌTn6bh2%un)={# ð02okCUƮIG޹vwIyagv/c/5>/+a8Q sv* ^/xp 8$br}rl岄0I&Fm˂o1jAOg$|뛩68‰] aBMINRR7sdAw0( EApA7B5fuG5$y^,2{>kosS Dx-E1WK'aݜ;  ׽)4Irh[CGQGH[jq㉆IfffJ8b'Dvhy3L ?uˆz 5ԜG}*ȜZ> +#NsCΞq!)α^Jps+uýM+Z".sacW:L1-5!=LR[EMTYSc@1z`KшsW^)!9j#JWψ(ݒH s '\Ln8mcAq'5 . iN{)_=ezOQ](Ln.ev]a%FA~=Woz\/-0_L'jsF* t 33k% 45b5p<$Gvbw K> A& 'iv`cĦ`u(OR,'YPo ˴mmTOCNaQQ llP]+qNA¾R:, +PKb0)T|@`T&rwqE <fgƎGx6(Ⱦ}- {v5^25N HA4/'Ej@rAO/@F|đ@io3ǙvDvҰwfg!Ú>a-W^MÜ7mhؖs:"cIN p'"/ߍBgG&3C|lDžErPaVia SZCd '?S[nV]qkac(F X*X[lwd] +SĖޖ𕎫 mQVT8l)>A#IzЃ]EEUGEFh-(3|6M~#д޿޼(Tn(wbQZ .7K< T\,u]ޛj50AE؂oAƒseb[Tp/ŞEm2bKkr8-rX{52gANk)Y{ ]!>k*S7aJYhVo7nZBxv :4k)#фFݵZ>dȼ2Aֶůub8r&oL AW7eE0.1X xf <[ ]Ӯs'8",4B#I|R|@ *_ ,+02niH,iž q#UrO)@j8}{- "z3Cys q/ E/^EG@6n[nkVꆔ9g؂YoD]A|4yrm3yHe#"6 & O7F"4uÇs@{-,}ȹ zˇ*)ģB+c2 %>UMێHoWdň)Y,qgCBi ]kp2fal4hlzY0ygoWszB߅lm6A`V)V--e eŃmnZ| {w eGm/lȁwd"L \j4uA1"iÀ`iAxWʾh`dԊGc=¹C>{ 7)|^ :ls~Ll.PRD0={Z T8""ئvx{|$QVG@{e4 K$9C[!oކЕ0GP:l=iC${И\3u"emuejNf-$ok/%\K?;qt$' @04s 6͎Y3=5vXjuWfSQY _`7_pR8@()Czp3%EF"7|"M|[2T55!41tJTPc:quw]{]WU.!mHib GcBNfY(se஑xdRcID\3FŸˮ%(A<.@1bSn l fPvȒ4|0k;"F`%Z)wQNvIx&}JD2,:B+67u^aG&ѳOd{ny UZ0Qk:sayB[߼MHYlэ.K$2ަ?}QdЮ"ݚg|\jނ6Qn?19p䶨u!hg*k`0G7+WIc/, d6dEʣ~PjT V5{F|6de;Bd|=2IDmەxs捆s<#9[֑PH3^d9k!^I\AS @VOcd)mA@"W -`nՙ\stɥƮ#!zOL^(A !~@8T{m6Rx}'2lh 'I"G5ذ70btLn;*$ >!?yB]k8,4wy0=%>>[$ulR@ >+0AqTcJQhcLl(|zO^RqLUk."!Ě_n2J>"qD~#FG\!ǡpu[pg0c"?Xt xL#!Ac/ Z)}Wx /M.ѳLpT͘Eڇ D @?1?L~s C|<'szd~rjAdHɧxؙiZaۑgœ^DthdPc=Ej=%Pr3lƧu#7q4vmxx tD8;lI ,HZQqD ծ"_+„-'Sk,>j z΄ɘz!x6.t9 AE6FD*Ȼ$4<*y65ĩ9qǥ8=`50CfOq:i:mpsmËZ{z#Uzຽօitc`~#ժ47G8WbQOA!~H95>C< wbڙi~ ፵tQ2ʠ.&wGꔋ@1 #?<)K?]~"I?遵Mx{@QYLgxV:W `vu.D҇^ у6oO0NgwS^uw/] r N/RR?]^,X) X5@ky@݁Xg Q,sJl_@Ěee*Hհ!W5f3 qppDt\〝۬>YQH:dW]tz~A榓a8y7mdXߣ`F ´ Cn>"6-.\J:E_ޭ+W q}se8'T)~?qwjkۻnqHJlT@jWl g^Xz ia 8K-x&&nN70+(H[9kJ7:Z,V$TsK51}'i.ܡ͸Mb,*j5ڙ\kbtN4^"WjՎÈQcu:0⏻{}TCΟ{.dQ; p?+NR9@imy< ,.յ4w,B;#Ξ\ &Z۰j,ݝڱNn딣\ P$+Xm%3 aiK gQ12h딸$yӬQNeZ1%ӿe᏶4`-#} Kp밪cAr4'Xȕ01|p\Ag۫X/,ℍ2{_0u,|o7/*ß"N҉ց\#Q@&.D0`)a8f( l0jHp5,C:xWKTÓ [Rjv_s6ar_-uK4DQ٪a:[DĐAIr'wW/(-Xm7;JE{eMAg> 'Zo}nzD6^|ǽ`Դ,%_*"74a#;Dx5CJPYUJb*>XK`Bž *Sn( \e>랂5o_?gbO-,O^J? -17wl%(NgDu6ׇ>xatW$|z$U%TDZ7WynZm =L7bZŧ y( #[<wb؄U(hYח$cOMsqUnO˯^}\~ 3gS/I Nڲ[9װ;W1\~¡ ᢷ pQf}Lx"./=T7Иw* |qLH+ q/0|BbH~NƉ੃Ip4[, 7(]d_hF.,2tceP9\3sYA/S LK ' .IfjPԾ+Kz]WT|_Ģ` `+g\w; jQsQ`䇌)<!]PPgW~߃ëܕe?چu"2)8յbY*W eȦ,5GQJGi>n""ddTCnKH=4`c"8݀\O2*a WeWX;)ڸ> `YF&*BsU5].C,M<{N틴'Omxkt1nls-jŐ7 akMgh Ezo @cBzG: hFg soWac;:/c d:d;Knp{#"-?GC//Vq]VY=8^UE7Z+@u)aS!`!p 2C1~-FFZqwkHؤ+5ѻѽ]n<5 ~5Nfzh(yG0.$|w̩P\Uգ@%ޞ]C2K5߯8tl?rZ;I yV; S%ﻊ5yaŠ:!O,of~sMEQ8 XH9>=hqv0q=P n6ݺnQƿfvYc+m43ۗ:/M$9$ѳɡ3ijڂ;g(Pmr9-d\2P9ҬWt I^Kջ$/I{Q\jY:}HnBvYA~| QUwFx1ahaCPxNֿD%W?N ;ӿuxzuK;/{3}ћiX['.-نX*VHȂ-e,xDLXnX$l+՚1D !gkc\Y+|nNiz˫z2zӞI,R |x E|l|ҜU.Jm.LVVK* Y\KUӖexN6x2ӿ|ût<;vqs}9o6u|}9`tLj,GIz TDT3Td"K\ɪ+Ve"Y{ ˍT\ѕ=sA \^ sDzZs"y.r.iNgRC%EBвYZvi .:bpM [hBE1r'nRG@"7LnK/b >44}߷X37z>(/ylS薔,@ 9zwd#1aD?u:(AUho.C3^Ae z]i;Eqm=J(1`0 )zGK-wb 1b|  DH[k3|* .\2 x/ZU QH#= umo!VFٚ06)4i/%|R"^4R҉~2ѩXk)^-щ*9V :V:g _KZ?\NBdD;,'k;hgC:yCC& 裶1Ս8$W8[#br,&R[j Aak3!^6DpgK"CS}- "341g|q}eԎĖZWEpr1P^zU"PPz\gj&Ď tEj'ӗ L(31v>Tk6C/6<{Qc8Yf {1Mqyd[Un JK=/j՟q9 ,Ϗd9*0USm0@Co-[4}v%GnQѮWHxvbS,GEv, U pY\yTu^zLuCZpK* bC-LBAo92lχuG&;QvA f831 Pu_޳Q3_1z&ϓ\hgX ^l'O ASTSJ7Dj%3>чUzVkb5?gz R+ײG4V%X&B{c7Qf͑7dx2T(!9^融70ӭLa}XֹWi%ogJϘo.{Э"kėżqM5:e= jb!!$A‰1xUD7SۊbKEaك09Z?5pA:PKGO#G >tensorflow_federated/python/core/impl/compiler/type_factory.pyVQo6~ׯ88/(]2dkQ͵Qarb$ZlȑTUߑ-J$}$^+ } `vѻŶ;ϟSɎBBK-ԌftC1tQ)JfݱciU:L$_[4%<ڥ3"D{rR4E`Si䌔9ۦAkC0`Ļ<qog:$m(7.L52v9SA?+DB9Y#MNj VQ\33Eaj(l6+SH>@H h rFx ƻ8ysJ]XD$.~8x7h~nC?Je#Ifu+g{f!Fo(ʼ +! ܖ+kd6s$!By^ҴLhZ&BZp8m?a5֥BCGnƹ@ѽac0b`Q yކMB7;ՒGb-(r~Edҡu8eU뗰CHmMb4g2?DGkO^3A.'7bOqTf΅ ]>vY۔5mY`z+vӥ*bFrc/6ËX.T"L크Y;(VA?4PD$ s}׆6$ xD!E*z֞Ax.vFOnاWx:OUvbi!Y0d̞^Q/62wXLV!bGQ[ع7NW7PKGOby[sDtensorflow_federated/python/core/impl/compiler/type_serialization.pyXmo"9ί(e>@Kl'I#NN-9 ̍VQ0`vN߯\vwni@]U~U8H405is|L7sXD!J7\270QE>5j>hTdlɥi+u-bv$Ր+&8< Xq 91€ߜtJ3֗ 0Fׇ!d6L:l~"&/Iĕ 2f+Nrө|Bd7nIV6Bi)VEN/d2OCuN>9<~b8o01Vx =?&|c6`Z@*kk+lar;q eD"iZ9q*]]]}"`pE'(.Ŀ5,(׹5njz[ư\nsK\ORwx#߻6U]Ădmܲ5)[Z^n34|)L~d@:OZX$MqγHī~ĀXɅ&u3h2,gYBؚ"6| K.I:dIx+5OBܰV0VЈڳRbeE8(S!O0 +OpH`8\>T:vB5%&rlKL#Hi3D0Hc>ٹ'f9ͤ=7* #&32[ν,M6f}# ߌotP]n<S0 LDCAx8()R=)3( h;+{7rhۉU |ǻ>%AydÜ)yI8*ZݝvMP\ct空iUxNj45.׌; j8w}K6_mm~~@n7N`3S S@f`pյJdO9 1yK9jm禓6NhPErJ ǃkh&ڠ&Yؑr?-QWv$^Ʃ{Y=6ݰEX(NJ`IhRHfMՉ4o"#?Jn݅3 }I$4 Mt(N'sis]eyiVDŽ]~(4>]7?kO7n%6֧vǷzAU#QkUGiK7t<}pv\ѩh  A(Uixah+0~`CIpGJrgؑs$})[ mqF+qt"tzSi0SJjj^>s.(Xщ=6 E}ecus !0 Z(~5o}iu:`#3񪜜)ܴ(%p͕!ѹXJXnJ/S/E#rV_6MUyB*/;4-ܠkt @C`:3 Z>;nm _xDE?>b*}?oGO|ɉ:[.lVF" *@tUcрEWצl -% 5~t hPQmWh`K@. ݀ WyQ\; (XQX1ʶ7KS79QUj(s@y]#)xޟҭIE J6o&ӕZ礴+t6̥:{ԫe&R5zevkk]!عgkCnфx0AH@;at^Uj-)9 sg T< 1z');_N @l7;rb]XN"3&5!q 7;C'tma'sawO< \Osn)!H;ɽ9/!n4K"2J_sJ  IݕgL'x3wvno݌ |9aS ̰<0ݒܦ:ñ %BVb]c$Nɹ_8F3L&>=Ũ$<wZ rtI()n1xd4 BJ_B(2c к5A$7WJ;PlsG@ɲ֔,ii}fl0Kb5Im|to=0L. WA,0$n&mιm-k@Zվ&ţs!/#_"apY \b܀thN{Eyą'V Ѣ8IFdL'co ,NsS6uzдcvދLxd3<ƌ X)}NRc;B/CΈNþ{Klp^aHXޞ/ʹ ̢ȋG ֎W~`|=kaD&N+SkєQ B kJc4jĒ-R\4D IE "' 0?,NΈ"RdS3rJ)NQ{w%Cꍠa,A+`3<`0P `M]m@oZ'xJF< h[ 6 ܩy#S`\ ѓi8Цiu8a Xڡ%}X]0]j NE iSUɈJPaw`F Kq$u;Oy`-F\jx1L. 0e^)2~;gGM@5>b1(!+Ly?i~iǃEĞ4C .@\Rv.dtC2#zwDȋf <$e/xpr(Ց4]Iav!kd\U]D9!>y[ǙL:mUJcP(*DKl_]~C_Y6YO5wʆݧifWi)o|h)zkO&J).ٛjE4D^%c @:yR yT){l菠>}MB C) :F)8&g۫F9$`> k@{u[n{ñfª;k_tׄ ^z{/&+|ܬ@ ,w4D9- #ǡN~8Nc]Dې*(O4K:2- %,{d7Q6;obo3ew O^QuEnr_9 ha ٝ~ SMvL9M9e"✨kUl 93 H5'mg}o-.F^r zOO~nw vWUqy5ävJU[T܏|%"Fvbq]>OL_P^0.bx nam]Sq ţ}~ڨe=bD)SVHgvñ:euj΍ma<o>·S8U +<3rp.~?-䢸M&mCfpE>T67,|NP.t[ԁ?ˋiUO4Y=}8:XyI@GbPN-oA~dZ`Km`o[ztZy&?ا3PprO. f(q2Q)lP[sƣ")x8sΩGϪV!aؑ;\eT)/w7hD9S0eIgSU1ok@`/ǜ'e5ECӗ1aߦ"zL_S^VǤ³-7x@T#ZH; $9f'KvbAG.Yœ >ݥ3L8lu+}U.5ҖxŽ+5!2K`\U$@dT KD┺o)M8t՟ĤJEH(vSL7_L]ͪzD5A@\&}OQiV_ME c݆n)#~ zV8HЁ H|i4s/:gr+7-^W2PQxW-┭8/JBr@B nd5U=^ePRc{+GG~ {tJʼ7VbYS~i&!0Ęi?H FkQTX9q"+w]*VLecU΃ @{Zh "~ջʦ2}m@/:/<]*Gt}rV_2%H ^?Gi:#0aSAG#w6>2u7sI';a{uH#,8h=r)][Pf`ܽ}z$GkĂϤ e|󝴎7pGIFtFtXpOό^>LZG#Ɖk< s00K]_S| wO~ 3#rښM1\~ށ`nm[GNB0oroQ~#SWfP:csBl/o0hR^x9Hw L8pSH&{醝FC F{4޿DK^&=:;˟ɕqg7g| l//Rc|$5\{y;Sl|6 3JH&^kmx=(DZ@|ũQ"?Wwߪ:ZkM)jO;GpYq T{0S X*/hωtġkyU MU35j.bp/hFw'YXC8&w{_k>Rht*o`]w]|˪9Y}3nhs-ymi?Th'J\{@çq ($vEqueC6ڿcbQ:_ވzÖيbRPfUccSn6XD8 syԺm[JqqyILK')G7aZ-f>{06bx &6f<%2MC≷V~_)oP=ezWF`ptϰz& }? KS)sjȧI?> ,NDY2G`O/>xPKGOR%1Y?tensorflow_federated/python/core/impl/utils/tensorflow_utils.py}sF+$4w򴧻:{خHԖVGB(a \Ĥ_L )ywuJ,yFIsMU<:^Wm_ߴыgϿF7YtMU-mfufijM|t _9_@x)}G7/YUEclD^= lMJQYѦDD˼Ȣ~(/EZyR..oohDU@گᯥn%-!L?7m>뻻8!l㪾~7Oc懲Ț&lz5 H":J ޵"|Wm^^OZwI4o:ڴ z0h蕔ѓWgѻ'џ^;ߝLJΣ_}ޜE^xw_oWw￝F 5HH,EebuȗU^o,nD^ fWy3ɓ'?yh00we =U[E~eJʪܮM3k7"{vnnŧC׼o,9.mEqLD#stt|ٛpiVi4>B t}$Q fo@LHI+`4mfH'6K6Qu|Y/2M:N&H@*PdUWW~@{Xu ww/n"fy7 AGQ+d"j0˗/_&'ǬI $ZYvjFm @H%,ؼldŒ: @3Fo@ϰ]/ )U \F#j2fJty7af-!1Cz=g0utH@KD8Ft/ NuIjV)OY9 ϚVbR s t[^eRTרsM3M^H}Wׇzf۷l@!DZMFW^,,H8ccآ*A9,4t@#n@<ICӧ@e5t?Έ'e]"r|nVY6!v~}<'я7  RM@FUvBfA04hKͰ%l5  Oĝ2w"z#ÛSO=>ޡ@ +R-fX#f -K$]Ɗ KM00y!&XFd^e9.6bK1F<T)3vkZp OCLfuQlҌ3JRL /+;eBYd l|o؎B!0n!9Ylxf cd%Y]f^22&@P+I? Z>'Z/.ϿL̈́?]؈0+슖3X;+5"9m6WѺ;BRZJ8+k6~f8 H$k9h%)6ٛj7ѻ%2m̤e2H _"V$Fh{x`;_YJ8z[q)hК z ,!gG`C}LC6`J=d|1vN\WȤhw 9_DO>EmagaZwFQm1ءQ*)N-\uGPeo" p‡v 30_/ǮO7p#D\ ĕ'E9R,.jƊBRA<p`{jukLѿF L_ݐˍ3 Ɂ --L^N;9;ؒ@i5ڎ(-$Nhqܳ].)7lU_DFff4Np%ፋ 8)t-Kc )g .v_[ EzG Li0V"]s=Vjnr-6s\ Z%8 ⧀DdWSpӛH=MZ OS8^O"?CyO{v\k?g]yۊNxɄ(Ѷ'{Q Qu,i)t iFً& XrH[Tkᨉv=W[i/8A !l5Gƌ˄Ւ9Rm )>]95vbv^\KHAN)(=Kj;;l]o+X6HX L"攐GN)qkTAJ. `Pއq+4[.%:[[9Z%)Z%(3Wy#iNxܠ80QDL=gd/DfT4H< &vGD|7gmOG懺&>Вf_DQ8&SM(" Q't#mzÜ7 x^2%G=:Zo; yGw :È yӫgJfv`mwuE$d/,ui7-ZvҝpaP%1}K]L-Cywl gl& 1fj3u:vZ7 6}WHؑZHy S~T'57ɓ%*If\1hg4gK=_2SGA$P ,$+ iXJ 9"%$~ 3A+ GN 5J7֘!(Hz( ֜2 KxccVs"H/sM>>qXmNų XK̂O$hO>ݶ=,I(Da[ӀHi e`~ /TdKъĻ>k!?i3>P0;'KsYruޑ}hgyJyN;:7Tc>?8g}&qdfnvq`% ާ#;Mb$JHgc{Ih&*xeg*)bƽgq:V)j+: ˙m(ܚ-$dy㢊4.?9穒{`{v|]i.ƙٕrhڙr@cd;vZzP8` jCJfQWrMLjt 8򘀃^90m^N&q6s7u+Yp^&m7sh y ~Jg$H!]p:*?M'w[p lDŽF4r|a}*&tDz4lXi//afP$g|7 ^c6Hmvy;`ؙexc-b3%cٚWEνDEU}$)EX4b9Z0uiveLARMr(pC$r_!ߪ]ԝy&igTgI<>R[{?f|T_P¨''A`$Ԭ%EFdfNJؕpHNq>.vM+RB?Ҋ,X;-oQw߁(TwQĠaaK8z >)X&ƺB)/opw=Hp."1id lJborUmZK b^<zV7{ÊrאtZ%G$Ml*|J ٧#l)딎NJ\F1JZ?69t9([(M\"[,(6GZJmE%ֻnsuzeq"¢r"r w$Yfgٝ1WcqzB-ʆȜlf&`\$ЉKNϭ=W.,3f.*EOPW 5K5#M ڤ\;WƶLLVʑ>լv>$z凙潓7Y3('5fs?5ml-k(+~iSc2mG>$l3Oɺ@d7u{2ѝ#;顳 :z?3Fn4Y0o^ Up ŻbA D;4!c`z>K_OYrf7fL;uɀ@!eK#6i)058S^'+*(#:!fK?TtPtzTxNiYBӽ+OO\iOσ3 >0e?BHe_J歫M0kt)35u}"ΗiGsDoӳ^C*%NlYB}01t)1q_G_[ᩔ=X7&xTF&p2<}KJ9|949j83ǫxMAXn+AY6H@7rBT Sr=D&bӔF~~^&Eҵ+%<^#Z:꒍[H)% 8WOfX|rHv.߉̫]71tIw{= M颁ѓbIbm{9apjpʰaF @rOƨ9MA(U]hl6!ӽݬPpM%ms'#rrS;M;l>/L0=tzYϕ 0U#?xTަwkO"@П*]h@px!T$G?I_&D6Aey٦(d|y-[2 zEdӭ(]f :a{iJOU{D{^4Þd ~ dr0Y]ypA)-w g"tW%(A[ b cb"=I=nW2_tᾰh3pӉEEo Ei-#2 L4ښƷR$2ah~?'7ɕ!~%?O5b`8 Dzi49Lwy*WVB SB4v$5(\73dCLRݎ'§[$!žaSfv̙:z]0`.d \~e8S88oj")J7yS,:[8H0sal9*ԅ(Ss4lE6'@Ӏ t W_,6+:[OJ_N@r#PpzWDj&`N+;̤HpJL{d禰r`%6D~$9ɧ0# &< X)&zfbMtVqͦqIA0O՗OFuC:Gv &RvFxyX:e􅋙%9 _ޒ3+A-@+,*F%hL8ԿFXAޚt&ۜ.O ,~WGT )r#􁱑Iߡ#ulйH4(BJmPUxljŞ< J~)3g}K)]tPXo'0"Q+!\Ƞ;m&t "-ʰ'.7z-yb7٘7Q:=Ul%X@ A䨄{RhJ̅6 M3}K!:jr sy6 dO{v߽{e~xb)r3ifX~9iՌRix[|f"g[H:Q?ʼ :*UR #pbq2 )yvcJwͮw ™?>^tG*\_?Fj*޵1|C]>O-}?x 05?t&w{Ayj.D Uj^9 [(J祚~wlrRm#hEYOa"#D)DtKrɯ o!) ҍr/rJޤ#ZwAJe|nVN-a+@ⲪK¤ "ӸX'l8yl|>o-ô*DbAו)ypO|Ik40pzUH;aTL0пf]E=ɬx o-0NFc17V> ]¿cr;gudH*DaOe|<1Gq㎪*?6SAqk 3AY%n5U-"ٕl;|#h#9h;ƽ98Drպ~DZ(bl5n~d:[eJh`I=J$qn`11-\<;y(qK qʄʶ(#ciS((kF4;)Lh@6 KUЕգ]1kcB{{C׈WY><J0Cb7 ]6¢T)77yz63kJ5:{lYg}#J+J`]7춴8D7gXi3 /\G6mXC65wHyʆj \@oC:[`UԗR OmN#9S8!´PPĠ{|>J&:8+'ߗ_MgH1Id$eXʨP)7l cx:m1V>ӵT"jM9 ,.IQ]SrGe6b26||jϝCZ^橞C_W43`IF 1<-N- sF>\))J3k8yO7d:"]Dv+uZ%s%Iz/ex*{ ==BB; nvw#_}|ݹ~Ae%5I}]3T%^_Jhm77U;3Mu&޷ʞ4H;^U+^K:9q cCF&i?,GEX@BN|rPNfrOϮ97ax63hS(֏^}(F![;Cr@2Ǹ NEkP]eY)?L k܁Xu D:Qd3&zٸkrx{6qʁASHUcPwpHVWi퓈q?(La{r4(O\m*-;nUbd%1MGJj|VhD&8pk{F)bPLh0"մ HMPI{"jf^˸8h.~3 n/KT A\<>]h2}4,g9PIcTa=y gaq+|bg `'46o v((j=~|J\۬tr2Yռm-"W3̱z[1 ||=\͌oPy7  `< XX8h-{=jlp*;Pz!)=Lt~"sRͱ)b"F *R2F?}$Am 7V1' Ɩ)e>~BZ2euQP|spݿ6P3 h[^6Cl_ Ǣ1eeU>듩wnDUk?)pbgKd[1> h>gt ecԔ$gw5-f3S*p-P ]qV9wd[٠`@G,.QbwH$6akPW%=dT@4!J@]Sh 3#:KHdg7*)&>ՆTi IFsu'+S<OzQAHhs"6&\T~|2C|0Y_inU&GPKGO4b/ 2tensorflow_federated/python/core/utils/__init__.pyVQo6 ~ җ ea^+CpCiG,y4~5 K+D~H !;Z[Sv79ծ ޿)+4޺[cN0 |<[wJr [a?_Bg xbd| #lNX!Fi|(vVHuzfi=HpOaJ 5Qz"e[^!_7qh4zqD IQqZl:C o"e)xV8dZyr t֘}| >Ζr_o+2{x-V~X >a OS@抟9Iy:DuLj)NCR[lv\ubz2F Y7-3DL=D%ʲ H,r8Yϥ*_ԆZ6cSa䒳Syk+;jˠ.وMг.>⟅XAQBIr{R<s|XHő;q_@}|=SVۉW5㥢I^؍p*~'ϛVuT3iZ4iWҩ_} ~?L]3ydSИĪ(D]:B\4r+xW:ץNcQr-sR"]We -l98܉݉~r78?Mno'׳坸oLgӛkv%&?oBV?(G!hwJXPP/tJ\*LTvD.КXt)Kz)oprrF-tmc]nĢJB+̫+2ue$z0}0XJ*\>!{EV>5,>!|``i+=eυh4+)F#ƈafViz^6~Ur4(`X}w[߭D"Q>xq @ XD @>,!h9 p4 \`X|lMЬ`4$?ofXk%Y4*.IE.{mm\hHaĢLrݶV5:ijd0Lm'6_/pHˁzxIBih5 A00΃+%1Tpxf(>E,WH! ͺ1;V?): ̴&&L8|q& ͂k=4l=l~[5/8O؋7zzvU$O*Ĥi^cv6'e{@t X'IyMpRpIa``|ࢃnLtR,,Y8=GLu}0:2-,Hg wSu4d#яo|?xƣwgHGק>iurddBgl{h±~=9nw_bcM e'TUs:nΚm}(E4nnwHcY-}<^5wrzUk^rtXcJ(NG0,׷HȟK&S$eU{ѾfKu0Φ:t&tT%IvCl)T (Hu7GObH!~_snZ"AֽpMw' *Rt"\5e.M˺"YkǢ**:4>PRn"NL6m҂n5;m7[E.A%m^cWc͇Z*P@r,0V>=5s.(bBex-dH {.ES~qAX!K^ڎQaoXUI|?c苺tw74x[蛴n]0GYg'x◻Vd#HKӺ}"36̢ٚra몊Kߴǩ7TSú^=}߉2? ތZieILGjswBkT$mC"Rq8jʮmU9{ wַF:md:g Ld#="8探q?˶x1g;Xk6ZC>1k:]ꐧ@%z4 >!#&^BK1F9B/'Z 582Ďs~ۑ>(o"֦h%qe*/7ۧvru}0쨰cm2`rSp tensorflow_federated/python/core/utils/differential_privacy.pyY]o8} ҇؀Fmӝ"4 nm-ICKMT5"\)[N,I,s/g샬 ;Qի3NջF7]x6bˍ`KQijnD&nD-4:<é2ww׋nwub5[ݐ0RREFAb`@Ae uׂՃh*jєRS65 4'GNœFVp'U4ZxWR7򁧻&Q%K5m#V Ҫ@tԶL>H2:TUOS+8Um%ꆙ<ڹت?~LN"Fк'vaT,嶺/?].ɕ*E"ӕ(PSJ/Zq>@c!W ov$rۋ/FTo"7-2cրCeĔzY-L&EWSmv9al]/ݤ庲ĥ(WV ܘf?Lc`0MFVS^!q 51==[߭LN@h}pbV50T re6jl)kI/i*dZ& \VJvynK& yUDQٙȀňy j%УWCXȒNLFMlDMg 4bO 8N#0Jv"LE3ѷ$}Ě 85l{/ey}v!)/ T+t` % h8!F3oj+(sQ7AfVA`G:̸fۍL7 V-Ρa'g$> "X!T^Rܼ1#/r k"FaY` Ϫh6G;65f][]ϝ S͘@<8~Esw16 Eb3dyIr|@jVPzWۚsL".G۞t dJ|384:8]~/K0EԌ8OWtXs1IDl7>6{{([!grZK^༂i;q`Eڠ, SuQT}{iTb"E UʹnSa{eM7&n"UB ,И.\/qb9&j .ύjOJm#zCwpZx k &KRHɥoP@J_A& /n#Lb_GQ̩>v[ t]2Q>6|.f4h3r  \vRmY16]=+&5V_(383 oXsES8. ]oR* zUXr-=)_ <crWn0 A.< ,So<ɿH9Hџ< W#mխ {E*=GdttW+&=L%Kc}׉uti((Gr>;9ҽ$ԸX [nr{U;,@ZԶ/ ?jgo& omBx ӫ'x7o.t׻Ri'ìV1[y9]+YEk@4@.a6=<60BVpu9@fG'Gh[(q:u"RjW;lC찓N%)x*hJ_YۊZkd,umWTۇhnSiilxq3*2}ht34ŇK$v$4r5kb$5Q =уh%$#gRO}3fSBuhC.Ɲ'ߓsh+{BFJM מGFqK`` ]5K&xDC iMIb1H؎Y5ZjXZn݌YqF,O$‘# xZM,Y)8(;s#OO0hO./'̄ȍp >H4:H\L[U+t7W; 9_zx=2WϠҿAJӸ=1!] j}ip:؅+x5u+;x-= uF?2J&PKGOC bG8tensorflow_federated/python/core/utils/encoding_utils.pyioF; A2[/TM^DNEP#r$HCZv~7gxHmQ$_3geW3VE{H2]*r什\f9/Y%/XJZLjR{^1uI&_M@~f%OO WFwEMEEjD"a1T$I\7YJmZ (ż ZϪ6goې jâ\>JųW@&di A1ݒ$tY2xWHL4_jKKPWe:+GZ<`^9y0dz1 ۋ_&o'_O./Χ5yvu~ _O@VnJLQ,AMsX aqHc+_tȲae +)Gmr /(YN+Z'Bo4a0.04KԼ,hS^! Ho EuKpB, \z޵1Qрl $Eg`fyX9#qFAdXY% ҴȦ,~eqxQ GkE#@[xs0U[r gbt&y(ZU](B%m΋ l%%M ߔ "-uS"˘TyF"Y`dT Ef8ZE T[oQ5ojwd'DU5TK <e[tn` #`k0,*68AC.(|fѧ1q!^yz3~A3eFtHbQsљGX* O8P~Z-"Kb|, H’% h0#x'Ww'L< `AuWԛdqTPVݧ4uXrd(sKBH3l"/G+9LLL&#TYF+"7clW5y2UBΨȐ `5gdb )(fⰴ#MOmR4ÊɍCt XYܿf8W ڮxEf9E \Hs_.Ȩ A#=RkL˥Ջ'Y&ൗVC! B"y2>/ˢ<# ìh$($Ut}!5!WXXcSi* U՛mjb !EH}dzcM7JE^Fm7g$j KI#$S3@N a!;־4fvHdp߸ӷU $6<˜ uYQ4ЁƮު7WZKI#aF?jH8Xf4ӦH% 9e)H(6-g(vCjs ^l#0tp=ϬiZ;0zd㶙DŻqrt%S/Jdd#p'w U36Hv'se-'B(T {e bm,P4)` NY11g4%|r'g,tj@@֍wD2Ex.q= 00ظy΍{E^`A2 y?8G)'?.??)W,,_=%Bm~.DjU1*tikF;!'h nm3Ǹ6{,p'0.uQj[&8-Eջh]k?1Ͳ;o EĈ8ݤ"Hn0"N?8|;l6X*?PXLwfs@S[%?Y3J?GϑߣbB$YA@7U lML@%~cRV&tC5A8aXGz,t5 ˋu J-c ~lXTWhÖ=m888nQDf;UGjDӁL0,K v^z^ ﱚQJmMzBУQ&צ?M ?j6-@ Z I[5 l\\C$RI"ID!oW Ud#Mpj~!H#"j'7{I"_x%-t9Pp,搈魕> ؍*pN&T3FIݵi[qWG9bUST:Eؒ!@Xp6d@ 8Y؋B U}0HqOYe 4\oMT+H}L޷H\_=O~{zߎ΀5XņaT=Z88x EH%DD/6L$!5 -c#6 8HUC> Dy2R.5C 94 iG.꯷ߝ70֩>1z:kj5*M UMOc9)6O/^.KSL fIaG 'k*!3%ƺ-#􆦙hҜC.bq_|AwSI-G0QL2&أۮW'w0C۔u6Y!Ґ, a3==%Of丧)mdyniDi_i!nXp t+!_QaWϙ--G~k3 4#sv A[TS r,p ??+Ft> wkb`_ҹ`zֶ&  z̹;Q9haπ4 (H}tKfkz*yPt{챺}~2dj?1WElr"*3:N'6:4 +JkmnVŵ3;kxvnNۭW=x-V0bX;qm6q#=woWɿ![,/y9qӺ{Z8J^kSxO#1kyRr$D|Gi(RCqM'd0QsQ.‹rڐC1u2 AUHM:7GFy;ߧTLR b@Jהk,o^NIA8V}ed:mt;G^Od+.\DܣazJ z&PH g6*"O:˗`Y1YEJ"*HY<+Nviߟjڽ PKGOxHZ@tensorflow_federated/python/core/utils/federated_aggregations.pyWQo6~Oڧe(0/M7cnbdZlTwݑeM0`yp$xwTڃpgPm'pnUϾvׅkVxQ[KzOpץPWkQ%2 ᭴N ϓg'djؚJm0 /PZ|oyWgo}ufI{zZIr|~1^|7΁Y[:Y  be%~X^ oejQh5᡻/d4~M!x7tfFףl|1k8W|{ {y`TVe]R(rcG(L{^\7Q.;78QPG~B=ǁ- 2 |19D٫̣8!Ka~{f¾ $q@ _HPKGO9~L>tensorflow_federated/python/core/utils/tf_computation_utils.pyXo8~_1Hbt_>&8hX6-Q6/2#)آ~CJlv$73|3+'FTz)V-W޽qHӕػlNf /3Wb]{]U5xZi'MRU:e4KR\ԯ.h-IPrUHTԬB J* F~MX-ķg}9nhcWE\>N?޾']HUŞD @Xf!d,x Z^əo)ZT(Z <8]x MG<^?Ǐ!l2)2i|?>'zpa2<O? I"V8FJRqeA{@n" WT*_zYHҮl:`PkOΜJzd[ W: B8;⁷UQ]xUN`˭YlWr6cW,~ڲLmҢ"f ^~ԮӇZȹ#׈gyS"INjZTn櫲F=ӷ,WNd2Sj%6*kFsbH_?K7a@Nz.v/H 2p!Cb+IZn a tXGD!ɍ B l^kAJ<%v7E£Q˜+ F_tE 8xM0t?71!.X[LRU`Oub" ŋrbo5v:Y,NsLXc;%R+IUKeԄAK9ě]5xᐎ[8fk'[ac <uX`Wߥ5$4r+q8| [kQx"pS6ծ,Ƴ@lYLB.52FQ }sÕЏ;]~reivh 5ew6zld|.? Q@ ӄvVb5 V6.luhS`,Zj:̍~k\"=vM!-}˃`p_6]d9CMq@syl*&S;J10&{`O2IQYݴN>vDž\ OaWՓxZ6&W"ZJw:(\=Y =F鴨2niJ 6MG[ɍ߅ApCw';u(?z!,t)GYgJ{EA9|<air cGi hKpk: da ByS7ݴ| 0d+5c+>|x/~wnw!D`jǕ)rdiMU_ P ֢b pyDfv9t>'q9_҈L{TsX|U.Y2h ϖ%EOzvExN36TE nE9 ĕ 7vD϶L`)7geyH\m?#'өo(egE&ljDnxhHr{XI.잗ȝ"tCL|0-!Se\G:dd u%Z] ɀJ'4'bu9}<mNmL9z_&R\ ?at \$-(4H>'d9 rĒ HխA ~q a% 6^?d5f%ˆG#hjakZK%j,a9MJ݂KҥUx"JXXOȫRQ+* j`h\c1_24ɩU߻`^.6d/hu;P_hsEP^c߇Fkf^nХri2zҽ=vyD.fr}hk5NTvHci$/֢fvӴrbNԥxfѭ3~l^xNK%n?=?öʠDI-TQC>_ppԛ:c;`}Wtqv!6veѰcO؟|~PKGO!v {;tensorflow_federated/python/learning/federated_averaging.pyYms_}05/Rul=M}vRrf2Dr$e%]PDε7\.yv@ސ[^jBՀTkr%䋥&g߆dddJ%M.V䆥LRR2aTQ j]waӰ 径&%9NIGQoa-jR5)&b+J^DUi0zi8%ѩsMA|8l,''*HIn%jt7͞˜)E$O%:_ZC 9]! ]Hߴ@Wk^.BDWT2Вr%z+[=-%9NxrD.$ӏOn:MOw ~$]A {$Nr#K1iƶȄuHU,O rQ# d ᐊɂ+DS{)hy5fe/wtt4,UV z`ZthezTDpE׻EQyv[F1 PI!-iTcD.%+SH]2$#Q|BwiYNh͞ ~EH_CB k2 U't>y)OЍ7@|sWLUgֵdq*uDCb)Ρ2znY*ϰʩ":snlC~&$'{qOE\2\5c-Ye.Dr-v"lء% u€}vK:VuNMޠjhC۝Zb8͖|36ˑowA v֮ptvk]M5FAiVKrg]ipƦwO—\daG/:8=$E! )sjwXcS9 ]a?dNŲ8N:d xlc-z h S..-,KW&y@cOs,庵3sptk¸;5T;!u{#w76؏nS1S⵶|k3'Q^3~GN_sC]yo@qa7ZBVYA9vwevu-ovD{ycMX8TC7[I7I!LP櫊&|`uuN ]>Υ){kbc#S=+3;Y_Iawfzyo\LA}G^_8[f>@9gڲd Ծ$@h,a0fOѺJWatLF?B{$|>yӲѭg&23jgdmAyw<\*QfhS>| ʽ\7nRh Y&>zn.yK/X7G1v _@ڡ"@}3W>dplcN<쁲Xc>#-aeas{x'[/i^$o'ma{|NboكWL3aC_)`{Ɓx;_g򏆽o*fl\o$D°k>s PKGO7!5 <tensorflow_federated/python/learning/federated_evaluation.pyVmo6_qp>T\%͂vP`nbo2EQȴD$R##eI^'{-TWܩEp} l6\j`S)Lkt&]׃HOkӴb iLF( d0n__j(P@& s+ BBʪL&a.L 4C v5C 0i9e-n\Ϟ#cVZhuwV!fPX97ZX! نi(0V]mO:ä0aÛz >>Nl G[-jOs.?8jaJ$)HGhkOd2OD&K59k@u) U Q Q ˬ;"h4`(*wyɥ7d]O'Vj"Yݯ뛛W^^"}@E%]eE=iZ5Q%-'{&))_Yf>#fb᠝#.Tﮟ0^r21収TJ(wD1MYxu8;f* I5R,aQ/Lo7ևqix\q!eO&? >:@Vo1lJ'0[8-cQRIN%2gl3W8%Y9˕!oOlɌWZBnϸbgdRt >ӺdRWZȊ$a+kR-!Bh!",ׅ`UF㙀B. ί[=G ۟1ӣfCՖJ<*I}fz44?Wך(Z(u%l ljlC"l83(aD0ŁK&QbQz`tU`2%n23yrw7]_N9]+2"&|bZ@? 6弧@.BzS쪖5[r\U`YsU Ԡ^\ Q Ì}(::88TV*/y5邰b)iF3LS y!* ht.˲ e: A>p9 7%GQ_@3l)wWxcXK}RA_Jܱ|[)\|ʵp]q,%2Mz:̦XU}ҏG`3-wǐoͿkU6IԊ' :Q*(څH;q~i4-i BAP 2'i'y'u>GHCKY%X4JBRxz2"DS2x#6_OLsJȵjײ:=LF`P&tE1ԽaWR=|!P¤6 xi$*a$c*Ԥdñw$yuv#+n8A Fթq:赇"Gxڱ!N)yޏhn7+R 4A9 u@KcUvAAƬAxgH'@]!3o'ܶ#Yl/CC[ Jt;N&膗S̑ԧ!2ȇAE1$eE/;`dl(k9 [lW+l}8PG&qǥ}lyJ6:S0K0BYĊ_*%Ux bHQSDa|Q¼^bam}YRjF l̙(j[l2 @>#lJe+T1&?BB7[_L 4D[gy_ #f)LNnsA :&&!> ߉ˎWdv{q-NNޞ99~|J8)gLm -S_`YEAWԆ^8K?j)X|v48\5tahȳC/&0 1d ޹:|N"Ja4kzEc;>~ԅN6s+#TZ-у C5 ZC|'ӏ*0$T-sy̥5ƝR75 <ڌSaCdv01=$ھH,~ ~CkcXQL~N뒜/>xtl x#Jٞ[Ã>lv=L:?Ikk"fS(H ʨwL;@C6{ {wǽށv  P&vMS8=H ;tk|x[`dOrOY'z ZɔCnZ(8 r7iKS =pѴy)EV%abRa = %Y=C<4.v귰E]Gpk]aDۛ"5s&M7C3+9Tj$!Df[z (4Xxk7|O;%`u%LD(ڙ%\82; mԂn5_+ *E&N5wDKk/0+LI8rU= ismӴ&zZa/3F)Wl2Enqzy.᫨/ofƒ1y2klO󸵃-۹8_=cHhA\e3}Ap=] 2l[XȾsPk쿮m,;7> 2 Joګga7kw=[\4{ rR;j/YzbӺc/ꯚT_5S=ىsnOfδ5Hxל}.ϹwMė˓镸o/>];qrP+XF= LjLRC`3BZ͒E2e-J,Ud@Xb%7(iJ*Yѓ*Ij+V f^:GxAJdZEa0XJB1 eb6OĹm  YQR󴴃EFjS=~M@ED/hB6+,,N[l2u zW[;5@$ˑ*E#!+sXr}߫-`R,xrx Bbs=Dqh   *QAڤɻwBO@c!h&d4]Uhɶ Lz`ee!Aʊ ,!A咔ghP&dj#X|=Q2?!@S2!v ƢsZd*Q E^W&D(i޾EWrtڷÒpI:o ,5 PNv F 1J22M~UAL=V= i"X ?'Ųd8Go`KzK0Z 9rP*dZ+*#a@)33Av#2_hME^D@,):6tYbh ~ ~!&?_|7?yŖb 뚩@/;A.F'~C0^_{Vjٌp60<&2ڏG{e5hSKu:F|Kgʂ*^fwsMt=- h%ױ5?8 TBŌ{.@Bd"XCdّe0h\q M2У6n0A GhZSp7x 8]0݂҈>%cx!y# XSL# s5%Ȁk5UFy@ʘt*Ѡu-IAg4ECw5qljh#˖`"ZEVLsXC(o#Bi]i'br"%@JV7Gr4\2LGiE#9qX =Pdhz(mL7GCsd$8dUza!0:YUJawH#ġ^DEo/{~%ӯ0Y*i%g6?pP&2 fE/WgC˘#L54ɪj1lCRY~)g -Yc!>8 b,+*9m5nx]jԥs#bJ*bp}ߠ1G7IʮQV,0tf0:a^48VR0  fQߨQ'1'Ba1Zvy'U6'08G=Fwf'7 TvGXc*\~-b^!_39zRJ[6< `ũt~19Lo_R1hA=V0*T1Jb,,^BbFhᨂ23!LoՂ_A3q\죣R' |[[4dϟrfoL܍,1&A?/ #um _Y,bg) ^TUR:WaԔ=`Ө;aN.$hᛃ7bB-&!P#F4[$˞:hOƒ,İiU%Ģ߁$%֩ao?OWO/[t% 565$4nǯ:nBS="i)TYT07]JH'( Đ zIwSH{'3LsE3fZ*ccdA QTok>B;]jk'5a^~1mU3(x@Z,;R05qt#pNc.:kLq99_<0ã3ȧu-;P 0E_hkKL"4Xw8WPSsåGg_ZĒ)gzU^RB[aCO[X4} *P~8KU ӣ_/&,+a@Sg[8y"xخ41 =shO[Zϖ|b~ı>fB=_WZBpeRCy[35 w 'mIRC=@.i JePUI~$síLO` 9NC #Qi9oJC*S='|f/ U4@T^),XrN!if\$*-1`W|+kl[q҅ op*N6=oXxl#ab cS5XLfǰ_S 8zU5#+.}\)!J(f&& -G9MA qL'8"Oq4UC6w#:!;T2`%fÐ"6f7RgjLŦ@@I3'SFGaٮZ)U/2G6J][{{<# I04[c ̽e)l ؝刲 6(Lm"&(șQk.uJXTӦPx+̰Q \Б* V$CODf::-]D3RoBg#jX!AH jpa^,W6RX#ٚ>|xlzHa# >Vű-l@Kvlg~Rxfo-4Rdextgi-Zϓpk<8Z(a-#^;_'"wh?A.͙݇8Clqxvb<^Fd7 <ND):0!1z /18BʲvF~{m؏0 z|fUWUP'lb;'eߩo#M©emp(K^䉼WiGxܩN9uT副^ߕ6f[y8! Eh\/PbԠϹR(M@RbGf{[ RXŊWUXUhB+*=HH "TuǜR ,(ҭ`q$,I߼>Gir ][bOn䖾|A50|;dzezfN,Y D +Z*z8'~R0Ձ=^}>]\ư">;?|8FԬ\tPCk;iU0YKZU|_b.&{9@0hעBSDq;(>.<`&N\8כdw7ؓ&f-3yGM8.ہsg5xg" lNUZg* asj墊Jt^z?tx? 61#PuhEu9{ǀ\<JdՂK5S ^-oĦ`ɍz{awb\u5@GS&dzsPlfÝm=h<3(+5cCйO_6ӘLbz)Hnڣ6Ug+fޑ%%.(e6K*?1kJ8ƷӲ:١^GN#k:zUFα`[3@MZ>jQzF3v'7PEzۂ=jqwƻcy^pgQhs;vMcO'' j]8ȡ޲(;:/q.} PKGOb !-tensorflow_federated/python/learning/model.pyYMoFW4&KL'ƒLlXb!ĖvxUUwM9m]]^} ugVivWW|ͳ]bgTv7e}P70NPW8M;3jqkG㼭+MoWofo!^?nU DX64|^URzߔVWk5APxZm)ݲo׶p4kn{Qʓ943?W^9:غzVBk>)uߵ5)|pv|iH)o]u[Q==|ҕzsnߨwWsvÇꗫvqݨ_n￟+_q?GS)E!ߘ5쪶`j[OPm[Q͛7W+X] SzuA$`F5NM&WrΙT@u -+%=_q|ZbI4vϓd]jxn׻]ttB*7E5 kfBUl&uݪ]]PuZf%Hϳ DX\_D: kuQ+s蘓%_R#H tyTK|7WlmCyϕm)ݞM(E,*5ƬE'+ Q+OL ;j;vm;]ܨf)VѠQTc)C*ӪB *ן(ReLeA] dیCnq8F׮2s" (ŲA,уhr'QQ(paWތiBȃ rjEWڋ1!vZP[ˮ V y@$?2@*Yhd3%*n\ 'i9[liŃ! Ry^9s(`9/ԏS{Q;ʵ,Om: ѣkh-"{PJ LďdeǸdR GBbh S ^ɠ?Y0ztÃT,tZ*jCZAB y" I}-tGX`lSj#Qđ\$cpg$-]TFk\aPiP yĸE=77C&e=9S3JzV@Qrj/ۅL yڣ1ظw$vz7vmD+`h8:bMjy&^rHąlGxP ׫v?LjשvGza=ayCo PxAsONW%}+Ew ʟ(?A㟽LcR붨^kU˿ IxR{e&!'pM? [QWx:P!Rx)ÓJz׺jv&HKh%լ'[wh04u!IT,JKE<^ɨ/IE0]DWkr4#eQ.tn M~rW_L}tV)X[i9mWŽPefDƛD~28٤ >\(΀|D0NiW ɪx=XwmWu^z w _2KJeåc|LɆ*8*8: OTOށ]b\uh$7a.NUdg75!X.]Fa ȝ /bJZ~*3`q+ ABXn,-P--n=j42+=IN^/7Jd~ }F?/bn"vJJ NMx!)'-GHp' .IX&9*sZ B^qOG,݌)߿1g펋^Q^.XL,2r7ٽ y I_RǑ&Ĝn^Zrys&m pi{ęAO *87 mdr q*{VTDwd/}ӫ#nXcC0/PKGOP}'3tensorflow_federated/python/learning/model_utils.pyXmo8_A$b\u{r(n`kCX -Q672%)_3CJ9męg_K^*Ǹfmit`zث~-7-ܖznE. w"gXMF^f@okӬN0Vj^%?1\ɿkc!-+d)1XU)K!1`r9WTt;R6U/_6뗥/,o^IZf4`x e|j|ϴa|m9 tRK\ծF=0:&q.fl~S2_riɾ>~-{v[/w xeůŻ)+#V%%Q{!z +d+Bf`Z|-ZQ`JѴ^(JybT2d)݁mMnI^Gģ`&ȜMf4*޲4-jWh6+KYOr'QS畁*CcF:e)mYգd α ȟjYUU2Wi"L ˷Z\\iuڦJ0CԍX-L|#:9E@jS12ŷB+11kc9%/˦ ʲ7g!ؚPMHCV%HMZ+8]ߧ-[8x=RgNᐜ28j2f%b'+lA()Yp+_wf̡>=(6A] 32Ny9=I`3pY–L({4Adh 5d*+\2)M2^ZV".a&P7P`7P@6 =*u2 gD*6N1*Rc_*T-DSbGu4^e40la2d,6'PV@0x98+B(j#+< $YKY@ ,tDNi%PJFM#Ffa؂j;j5-N9b\a4v_֕Jt6-h\m'5 q,xT7; ad:V3S V㣖:N†;B_$o!d! ,VkE]n( W.,(Xonz*r-א(&Vtuc6O΁(VgO4"% }8`?pzr$yI@'q&Z * >kՄ)uzlEYL8ñqhs͝Y$yBA|n$1itOM{T4F춏P xwT頚(1B f$^x? q֝p{sCD6xw!}1>JE6^)>x<_ ~<'x8,)~j (P vl=/at8& uBJU3ʒ+ ʺS3?ÈbtкeӄRZ1Уz+1)t5q6qN4Sy Q#,VXK|CѰD.EjSٱx!50{ ٤&M0!8rmDY%v 3nb:q1 \oY8pЬ?c1FnF?sȰȢ{@1#7*q|SݮMme~,tQCsN|'i#v5㌆=H[.iv*3’nmŇItg~+ x1qdy3qR%$!lFn\ĞGjH {A Q⧷I1XG1=7yZA3 .ۤD&>޶b=9&qAE߁RMgC RhSogœ݌ШS $9AOfPKGO ~:tensorflow_federated/python/learning/framework/__init__.pyUQo0~ϯ8e/ t4CZ1ZvLB\6zI56TMwracPk[J;Tk͋#X+FY%[aY l6w@NyJ6`RXJ6|Emp 7.;bXj!-4y)* \@*kUq&R۲ !!pefWtwql'+Uq۶RGi4ΗWs.*44l\50ER̊ 5B#t[-m4Kƍ[꫋n 6fsQvz=-'?csJ HCgM j"hbڀ5H'fVn' J.32mI:zt T/`0^t9t9"կ/j:Y|ٛj: gjEicm?\G̹hKl,dFRFl6@i^N(οPq4 ,h}eP"τu DţmH^P4* pӨ2(ZȴFSƇKESܨ'ܯa·f Y)d㲆?0smPP0LS YlbJUH:QddZ}sHq$jCeK.I+Ix~l[.%3yl6dIW(j_#<‚+ZIB<̴S|1&jh2=}-f~DFWԽ2("}oų._={ ޒyL!|6P+}X-cbMPⓜT֣ë#Bdֲ<<妾`.$@x^ysȈ#1 a^4b#I9BX>@tc=;eϩ ̦Pѡ:5צ Q0q㷌Lx<,ESmDٖ|{p*E.+p&v+jX i;$+ƺ*ÝÂOё )ܓ۶[ ,BMCsޕT OǐtEt'hsh#2BF>ꔽaRxct!~aq>ՖAa A*ŕ(èL,X!#qBzgO1܃_ɘ~crn0˧=',3ŝXIzrSwf>EeUPOdQ߃E (QjeJ#mYZRI C1M忿%o9+3==}_{ ),O&GBnUZ7Ջn-؝(kY]r.E&*ވz/` WwW7钝_ۘ #l+̑"C  z+2_UW䃨JۊjJo7wdٳ mۼ}!k:nieJn bXIzS'2YVrt6m%/!+Z@T}[9b<~[.rO&E!mm_~I6@%ߚE Շ׬Y꫸ǩ@#+,ݓ,i[$x)FuڴB*}AbqJFDM^ԏod(8HpܴͶm jǟѝrO:-hyyG9/ M.PH4 q',=PB +C2(A))ػ,^N0GX#X! _>U׍3[ xhD1>Q RkÛڃo%++K*H=K$^ ^[qR[P2\x-Z^D. yATe52/cD +Q2i]H HX4hNI\T,#y/; "EUVhd.m-MDCY~ c9\JTbIgQnQU:})lIv,Efm#t_-]x !D(prkdO56r6ZQoCH5 T=J2tJS"MLn 25-I!7Qn=9rUk AvB%qns ZY*hO9-ŏ[l冼6*c8iI5C ,EC <:4`zh H ؽA>RL D AvKHDZ:/'|7&xJ|3g3 ՄTZp]*v9[Ԕ(Fk~#[yv ApF%DHnx{"w leH<-Qvd<#)lPb$ii슓 {#IkЗF n̂ߌ *)P[]̂R/1{8eKHPK@eC\}?]'oLus#؉(އb(YLlhTbLDMr|l5DeLPHA8n6{!⢟>a+I;mʟMAL8"x {e gqۛ仓׳S"+d+Ѥ@ >#1[o&AZ1XU_gL-]-.FR%ZxGU1bM[Z>cܩ8GJbӿʚL$?!K.]6hbp NFX yڶn_ {e\jDccyn'0^{|hvJe׷l,g$zKur#%>ime"FO,CJ>JN',;#HW$6R&=2Y"glPV>U/+ɳxm5ѳ3-N&5Cs>sٗ.g:0+ w|0B\'-M lN/|dIĐrͦzz=s^:HLY#Sz;V4F!!~J2&]zy)@oAfrTv^߽z^ʳ=幸/%/}Huؗw ,ɖvGb ȱDSѧd7HtEa*5 @._b!x4c9 #,>wU%h^fR3?I88qLaO 5}vKutI TYICؕw# ~شU>>PUR@C i /ZA!O,?ԁe Q32d6!I "%/v,xSHALw?0_$*: MMp]ɏ4x>%OpLuܜ.*(iBX'ghc <{ t]L) ʏA@ֽ7Iŵ|V"ـHu읗f`(\Hu>ûKl$E*WA9XgYM1I|?>Tf0(1V:N" QO4Pe)T'\/uagft`'.z m;M 74p\c GDJMgI)yI ,zr *Ɣ/఺ {R%N$1<;?܇1gVSt+#vѸ7Δbeݵ¢iۤ%:& ~٥F;ZpYFDXֈDR؛bQ3vXiۙ!v^S)Ne; R ,M0`NJ?fcD;;/#ٰ2h]PN]ήj0;uŒTdbͱqJ?#`Jjde"W1F?QXUUϫ% G-1Ů8mޭeat2-yvȏpЃ )vQe S T70|wߩ0Qr9|1^C2m4R#*~V7 \Nuhb5ޮe|%<D%04yM@SƱC~v(;6ס/fP r ;Hb81,aL1C^bE1Җu/а&{/`Gvk(LX:qtE56˶87ein 7hÙS<{c&CnkYBmD))_hF!h K .6t|c}:~ FLi2zNX4>52U~$(wcΆžh Xnx~G_Wn Peq`^?u&@<pZ!W@8O5Λ8UڛZd{u3E9?f*Vf `Hѽʘ2/ӘSݚq~PA3J$@%6&43WPXn YUعQdjѨ+7Cr&;tOd ygh(C[:ivE)yL9mTss?o"=3oZ|x[1؍88Y8{| ILO@Fe&y+^ݠ' L]{_ 2HgkH8 r:*A_}T*G׃_5\ +MAݢNEˣnp |2%SN?KA< !A`\51E{Z:ltvL+=FSy!e!y} (Ncq ӒW%#՜QSXun't8c`ye8w8%vNH]xwp>Ҋ%&:L + #hījT" sbJh~zSpB-3kh< Z5lA!71a]}MWuLxͷxahWN<1el|iˍhwTϷQ<>aL]D=f3~w/N:dk"oD6]"az1P*2/ysn9͌j &/#wwyIlݵA* '*d YJS/>jD|qu"Y'_|5 § nLà $ܱ?kfc~G5[YN6#TullÑk-xZ;2I_?`9clT&{oѦS_#RcG=j[6^'FmUgPKGO@-ԝz2tensorflow_federated/python/simulation/__init__.pyU]o: } җ H 2!i`]Rm K7~GvmIR U"8]m(V.riɕf*uCSqh\㊱ap["E .+ӧ_X]_m]߀5lCJ;- ɉr$`*jlA@:q Nq1nVUilCm"~vs;n`yR[K_ Z Rd iC0>='T's0Á Hj[;z(8bzfQG߳iIǏrvnl9[qxL?fI8z42?H GE"뎐x*r.UԬT57 PM)M zP(cUTz=?GU[4~i@Qr0djՂ u(k١ 8]mxz$'VK-oeb-<_3|$pt=s\( l<{#ǃ"ŝpۯ*GsoѦKV1k_=vߔLTpa  b) 6s0X~g9{۴x;Yyw*;wʵ;Z PKGO$Nd<5tensorflow_federated/python/simulation/client_data.pyX[6~ׯ &v_Y33A,fEQȴDldQKRv~sH]l-îdt!^OB QTK^KS^?lLU؏ىPVzUI-֥+sӦ{iR⛱EYM%~HߊsZp_ {ӈ܋x8ډ.P_rU{+M]jYJ_(0oQYxk- k7ov]*mjMV771*sª7^rRB;ojX8;iy?V F_g{1?&1d:tL:̦N\\Mg}?7Wc+Q_jKRUANW@V^vUFX( H)F{ɉQirv`/{QH±IK.9MS4In ?) F.wrĞ^@ e hYY&aKOf`ڡ.rzCK z| C~-P :UN(-J`KrSQ'Y[AIaٶdFYy n*~!-=UvDH:9}[,|n,_SL5e7Ve%pDfejʠ@ htj6(o u/gdeP?͖ei~)TYCA\s$!?E!e^J(|'~$.9pWpY<]$Bg|GI6eSXĩ됛|Q_$U.{'S*{D)x^v[ w \^LUl."9і93Z%)5L;nܙefg].4QeJӫ bN5A SjƪsO'vh+vwOz(~DAw Xu& M[CQLQXqZx)L&}"˩7;j^~C}a쐸Nor>_i,m>=(qˑyi[-zh&ҧrx4,dhd0 aG *8ȎӢx]@</5=Iy&m# "e ́ܽoj`,EuԹnngڲSYqV; "" `xئ3_``nLP35r,S+ajA\6uOd(Mm'_D 43W 'eLc1{ R&qI (4%rf,۬MI)9b's!n bL#/'ZꙠ5b}DE]EjJc_varう~͡s؊ٲфTPd_׳MzK jѷ84z`Dft˘r}l! Gzϐ*/݀|}N^j\, wbghԦ -t,hL"@6 M^C3C;d\m8ln#&:~<&~8œک=M|) m_Ǣ1.xЅt871Q+/z!@QJGhoj0`3?5#n.U@(|_4^,o5"(ā,G_ fώ g!kJ ҄1=Y7jC-qʃD eS0bxgA)ѳق!zt(EċRIrbӻx흛x6hp+H۞^.y~c4@4x:G#E_b=>J|KEO9=?$%J PKGO  Ctensorflow_federated/python/simulation/file_per_user_client_data.pyV[o6~ׯ8p*v/Essٌ;-iȤFRqa}琔%'ʥ9ΝGQH ̜Bk%LU;-Vk oO޼|aΥQT[95hDGQd({4Xf6BIx@Lp5;UÆ@* ! d $djSɌVص3@| jiJ3Wѕfa:=>n slWǥ4'gkdtndɍF_;`il J[iwVV*i(0VemC/&a0d6d6BϓW7s<O瓋\]|2\M%_|cfJ$)(<8? P(OT</يJq-C4H/GRle֝+`Y=1ˋեM(Z">'߆_Vu1-9f7>+ ŭ^$f/RX[6݅jy;G diÞ8r[3 4W댯PI'SЬ]sQ40ntc =={&?Ji.4 Aak)Y(0sZ =n S-#&|-b[6 CJ w+}ݙZ +i*j#t`=kic p$+s'ʂ&01G6jV X EI{A›>Fky/D6jGFjUJVp%qSQU)dj~zs0Pj314;g|FPKGO| Htensorflow_federated/python/simulation/from_tensor_slices_client_data.pyTQo6~ׯ88uGIz(0-q0c n(TZ:\%R#Ova}GR] $wCF_ ukzC,7KTVRs40c肳d1(>⤤|@cV& tG_ T  !-D k U]J2/Ӂ0 A _8Amngk.C~Nf39UւiU fBX1R@k|FIRG`uA;aQriUCGjK($ .{.Fqc~ dN0ngd F8LR:1w-:5f֍X#vFSIn2QJYIwN`uUn;AV†ҦV.ƜEiPc0Mymض+K) r+׆gwUGQxvZٝVi)WMe!7}{jJ/byҜŊ(+_=Ä\xz8`% ؇m;i Kn ǂJR-\f䋅r2MF{AŒ r |l!)}fp?y<]E~,V5Yd߰ i'xZlB?l awR󽸹`Z?%h($2=m0-DҾA:+EC߯͏|>`3 |n5AvqJE&i? ͗꺡!ֺZP}T\3a;gFZ:cjsA6vM2fwe?=/*5)9ϓqjo.=vOK@νu&sY_ż 흕O>5t7JPKGO$X.  :tensorflow_federated/python/simulation/hdf5_client_data.pyVQo6~ׯ88/i>,Àyq"vA %qE⸿~GR%IV`~H,x;Y3O j+Y^hp-\lTMSxD;S,\KFI__T*&Jo 3lE kRhLA8J+!3R&6L& €/M  Wuh ~ pDĢ̇Eb:xےS@ү5Xj B@ Y!LN6 $\RHYD7DR̒2%[պV  _h~'sMf ܌f7p>'lO0~?&qks% ~ 45)Ȅ*%XW$'*K,**Ln*bLmW+*kZ(ӕOˏ"#ypJ=&Dykֵql R])='fн_I=yr"8vI֊նsU[GdD8k9oE(޵(cVjc-\kk[i{xg-ǵfNP"5{rp`FYց׉Y 6^)]ˍ#.݅Md,EBS'!`IQZ¦`IQԨW6X#jTk& $kd`2nQSLd+5K4<ʧ'0f''J$EcY~@e-s, eXbm`fƪXp ƍ&Y.t=Db(a!2n̔S~\Mߣ??__㫛g-v?LDZ(B(clT]XAlh!-kQ:`$sR@?q"Co&RsTdg7uD ub lBp(Da ݴv)<@K} 6kmٷڧ-- wkEI<#:?/^1=}յ:ԫu^IҠ{#PKGO 8s 6tensorflow_federated/python/simulation/server_utils.pyVQo6~ׯ8 UIaKShۢ( O6TI*W9'Z*ŽٹV$OB7;#WkgOaFڼ^pqK)fz-KV{p4nDI7)CcVp€⫣-lvZ$i5ޕ8 Jij)Tn D>Dp7T@8O[;׌NNm&k5{co*We(KJ8 <ֱ{5pV9~Co8F fݾL]<𕥬/_ǒ$|= Gں}gMs88}}z9nqp0.1B7>ALtw'2qJf <.PٮksnH Dfkf90ߦ5w]]{n?PKGO[Btensorflow_federated/python/simulation/transforming_client_data.pyXr}WtiC~bH\-JR < D2.NRv6zAwn &n)?u~5xCY~b/-֜ -;Pi* ( 'yIf<, 9^kJ#A?&ff)nYk^]v;Y~&WWTWg·4J?BX@![fvIb+LgN -ҕG*I+PZe;ѪRNi<Lgl|?[|aAO&lLOt8-fs|zG#XϥđG&hϜwęrX+]lipʹ e/Dlfڞ9tCT=.NpՒ|pf| ̶q Ƀ$Jv sbxD4 ͕Ay9}%1P:x-IbCHǥVsw|G7 f~_pW;ܿM`!E/;LV!+b_2T'}ǒOqt[(T/zKmRʿ0!sW+^m3A[u:R04Ehhh?jWU+Gy"h`:re\3-8ul^i7:k<VٖSZlH|v-w VE:DBnYY*R 0<)Oi6vvjͧwi }D0˄t ikSs%CժHq:,W6yfrRk=Xr4M<,BXŠV$rͥFyiESpNX20l|R"7!z  XY~GdinƘKEYY%37[X͊1qT(Z36 Un!^aA\[2̼Ʊ@G_EjG0UNĝG&tʹ0_c?)^-qu@FG慫f,F]=$,s`nQ]K#zkfH%Ξw˼T? OS#.Tm-avcC6ֶ^zthGz>PFgHT[L25Tŵ64~c=ô-c-E/?T5nK_![44Ze_5(rEEMxH^a”̦ji]ik[UݣBlzDmsyEА &Pz JxZc!:jj]\9U[pG} sH^FG8b=ogfA<-E_u<[9j3Fmb3[v0J;tKCw ag;Jx:q.tn09/^_ЗTi;c\z1YC+9 WWkd;Z>~0Tzu=p9ڌo!г<ڌKIGln+$&1BG[Fž.]wQ45q ylK_ ݷP]!k!h.UnG ?KՒ}HÏN|;1i%VZ#|&f[Siy8;j=eDJ䵁s=YYB[(k+F՚}U5 PKGO']{;tensorflow_federated/python/simulation/datasets/__init__.pyTMo0 We2mv NW`6%Oߗ,\,H9ڭhunꍃ㏟f QYm.K4a q!FG-` [;~p3h,i'1p f[PAg)BE lB7$ fH#apйoT@A8מ}GbPiS刴ErvL/>!ZI pD˂ L)zDm}N{!GՕAf):CytkE_BA!|$1M^M|u/E +8[-ϓuZ-|O3@x,|MK(ȶXPEץNGh4d4-+ERCNOQQp¢Cө6-Pܬ 5tr $*Ȳs,h;[-cx~ V=y/[wܰoVMzDʩ6* wȃ*';?=_Lӟs$yG&WCooy-$fR(dodxc)2}M6ގwԨ|P hrͼ_g_Csx^l:,t8{6 PKGOYt&@tensorflow_federated/python/simulation/datasets/dataset_utils.pyW]o6}H^lQi2MZX( (,j$;q5D]^{xGO郪 {E֭tnt5jr1W沶ڼBdA[MAj[;9l4"O2J&!O'a[Z-Qk%\(K$ɧ\6TM^7u.i}.t};+皫f6fy^K{azn u%%#mAٖD@҆H|sor^mR(ZVA d@Ӈz;y>t9}Oft>=MfvL\y R@*Ue+QP#ZYM xTjp~EPdue6K2)-AiҴl]kd2^m 5B=*@Xs<eU^ʅ`PȒVUEZ|Z=S6&6Fg"SrՀsuLUm!%8eIF$ .&fi4XGɂ׌p *܂zXVV2wޢOCFJB,Ģcؓ0Gki_Ys=|d/}bxIg/y-_ݺUUUot; /*f#®qC0-ΈXNzNKaM12U96%m8ܡ]F^:Eu}\Y5Gd-1G{ymq bD&.ɇwLa܎qw~aSF[ {Qˍ+end赕^r@ϔ*hvjQఊ_KC~MЏڜ˞2޹G?b$ȯ@x.``SaG{"bu8 \ֳxvDy JģdU2kj{PTBMu̻~?'xJ ӡ#.ONvc2@{1^Y]vڿAQ =A m:cv(P@`IŵAexei-y`:?.z1.<<&vB2_A,cڠh?Z}ɩu=Or@"7CknODƨ{s50ye6 TaBE-H^ոȹD6S/v^k/biYq098ݏ`,S Sѯ\a]]4Sގ#=ŏ]tt7]EnS iptBpkt{ΥTb\-K oߘKjIY_ϑlIQPAQSoNJ?PKGOW[q9tensorflow_federated/python/simulation/datasets/emnist.py:iSH+2bv>0PLx#k15LlGAȒ[)a7v2SLtW`] ]ݩsg36[f$7^lIz[]MLOQ2g/R 瀒J><,~c k!+U@alʗ,N2K$Bɂ0L,<1X3/΢Ǟ`0M`?iq? xF$fg$HAϣ/.?Ą8RT)]2><$e| x%(< 0[L&A6*~(4t-#, 1{u~Fػѥ4~]W_/F/ٗї /~b]|](?J&@(Lxazx`^1,D: %|0=Y[x 6My Yp Syƥ@<"6 7ALyqpI $M9~އ(rl4c/"Ay4rlbN=&^VЊ)#,GUnϳ`}7C7Z#BrfeH+u.l ;n|Dq#O!pBqRK0)fVዀE 龕qUCPQ:Hb>k0 l!(R rx<6`b>Lr-oYQ TAdFDix) @t%2̒t (-pB,yhW<莧{Je; lDdry[l& !łC$@(X'R}}#Љ䙒i.Rfr3vމ؛LyzG~_*Rd;+fExO!{څ=!H2欮%?0>Dd ~!p啅gLנH޹7A ;Q@x7؊xl(n7Q.P]H+ bL Qyhq AܻC`ȠsD'P,e@nRDBYP0- 5(PBT6fjʛ-VUC7J)C?dƞ16O<6.ԄZGo0(Ŗ5]((m( M7O?cݑ~w;\1/ D:rLQ:=o uV}T : 㓮58lfxrbk r`1$O> XtV@hd(R0 !zi"Cr8{:`@, ›+EB.!T^"IHD*Tm*zu"DTlh*݂@ڏr *~Om/Nw 6r 'zs[)/)?%\RHӸ:dk7N,QרcVN6gBDy{U-.LU䷊ЭI}x93{X $X+$C^R*Ap`J*K&HJlJ9>rx4vd:lMZ,2tag<&Pcq؄6kK=HWZlM jÇO& ɟ0nVʖmO6D[rlFkMye ^ n #=#;60Sa Ɂ&# ayf̣S]D$ ^,4ע" 8ZyJbj,KW@x =rL, [ eMQt+@Fb P!VHn%Р+z\I@ rJRELMz6pwUy ܧ賋T=?[IYbVUCyyWuUnͨXky)vpL`ypbת\?,I;Rj4%.\Zchџ^xwdBѺ"xfN(W &~G5FT|l8PV/+53X;A5F5Fuj<W?գr>a,OH*dB!M!@(ìA ^Nk,,qJ-=U+%q m.r70TkѲ]sw3!,VVCW-tsRE͔&< @upf&3n\ݒ_ 'ѯ8 䯻ЅuYǾ)W!`VY0 H-HQZu"-m]i@|2.ÙROV4j"l*< n|nmc$+C(zl5i\95Ȏ"W KwxSLdB#pmg+96Q) $zDsA=Ntp:Zeb$V=}__m W s>Qu1!^SV<+VGmvϸwj qw k6kbsmlС$8q#%%t (cdG#:IP..Ym$е[XmhZ3[-aVVzo{BPD-&Gm]IAQ2.^U7^ŬU .H]2R/z$NQr\a앐Ƭc,+ <l^n._B;Z>tt)u/=Tϕ*'$6vy)2.e>4y: rk3siA6nV)ŚFGϿ6 -2.eеx4 KǤ%PMs7s#P s[GF"3*-5vƐbh.ԡTA VEy!z/Vv*5hΟUHX4g!!9TBߖaR04!xvC2åNe/:RoJ#*Kj(=Tkt|]<F;WR>BqKJaJV\U46 ڒ]7ʞc>|SJS9P"401&TmA/jiSYNܫgd1^DeEDrTpsnk-5NᢕBKhcZ8d :B{Ha*͘.:QH_of,uPly 1R%Ck8zx`:hA%zCKi:b} Wz!kȵ~dޢTuٵVfS2):&:|-~H'<]2T^Ư#Mc 魪T߰ĴG٭ `+&.diʗ-򧋫>^;F]]:ία c'6POф #joKjq>)[bmp% Yk6VNi[=h]LcL[>Nju;v:9)>dA ƗO.dz }*  ͐hlV7%~k=ҟ8O:v#S\G߆{֫ 6 ףVW 6o$x=z耿r{y>@yp= k~\{{o?X.#?z,G_^j/WO@&7},W*9k˝׋Fg=끩<}Gylc=ڪ30{mzc?^4>k3'ϜTc3'WOX*oy*g^R{RYS͞?CϘ_jE}z*}ލ~bz,G]^gR|O/1qh}ۣ]^u{{[}ۣ],GOh1|̾?㻟U=|Xo~ӸiPKGO%C >tensorflow_federated/python/simulation/datasets/shakespeare.pyVMs8+T"cB>$jRIU`vjNFز}-C6;{[`KݯeSV]F{#̱ptgLȭ6wJ؝Nl^∱AN6X-s3CGwOa9C%v{]-߳\;VZҲD*k$ d"-y$ṄQaa_-9cy9WLnp6&7π؟+a-3R3^P7ixj&;#>:q;n:#7{S<$}jzKX٧r>z?<>.VݱupgBZ(b*R7]d"#䕧%OK09a0[ibxQr+w~]RAF7)lag0( V84SܖʻJ޲0LJW6`jb" jQV^6(˚w"u\LjcXYL@D*BՊE”F0fsћjb*/ Z0ջ\y{yCѕR-.^.ڳ>'>ssN-9n} a/WX!x!*N=ti-&1SM9q= @G #H"6 u?']&FI&}y~7esIQs(kKhdmUUxma4J(%SI4<_('+qx.h6iEQ-Q6YTE:^3d;d[m &3ϼ=]ܒ0gTlB;ŦT󅥨4YHCA&V&4ZHi;R1dʱOF_O4J-:djа+Z HPRIcYXR9zYdJ䱤 gRKBϬ|o zCr~yIsr5c vgLCcJ:ې((3ĚtIb^JỲץ*dtjעВ(cK5[gѪ}Kt0ݍyiw$F~rT[35]Ȣ K Qr@шb \Ԇ\(ۭNւV|hHT".J yW-8Z`ʐjs^C0 I H4($}|"Ytfxҭ\pJowCP0|ERT*gJVi#2I]( 4F nYb9b{x% e-'YBE&bk.c`I@9nqsKiK:rێu|E $яU*Iݚ풉u)G "{جe??7?x}Ecǻ|sƯ߶2Wk)W^e\:vV/2^AOn*,R.pS? ~eNHwT"OSg \Gl.bmckkou+c8//|7Z47ӧ.˒o_YgDo({tLͫ6!#I7?Rl|.[hb.e=1|nޕgN:?R.ߞ^ѽGpq4mGѰcd8İu;ٰwhŰ}ڑa7jGagW -ګwDr8vW.d=P}qg*w9vhLy]@eW0lPKGOoE9tensorflow_federated/python/simulation/models/__init__.pyun0 z ¹l@tiv3%@(m!`K$ۗrR,P_ 䯏lHyZ}3Xj3Zj>~p@]z5Vh KŌ6Tr(192_hi 9 #(w䠦J4HA;ӒT%@8sa x8KKΖoxU_770 hcmE{tM\m&jT΁ſ=YA*e@[EyKT3k?HR޿rL`( "di6g}wwdOtn6=-֐lGW| >X2W>9%Tr_eG#n1^*-u䥟vk*QndIRʻo'٘% <-Opt~[i=R~+n,?Ue8Q󶟦` nj0_N#RT.+-\UƮW-PFB43PKGOrLa6tensorflow_federated/python/simulation/models/mnist.pyV[oF~W%1!u۪"g0c֞qgK7cCLT}x.|sLL])uLh\Y:;}liƥQ*Sk M:ƭ"dqiXz'6BI:N)pꭣwQ%lCRY* a('’ +k-B-i9bڢynV4ݏ/2ƐBX@ f֤4س^ka\dTjLsHYcv[[x0ybSOt< !/3exs3ƗSh<_OuEɯx2 WP p~ ){RU2OD*%%[rZ\KC׹0.\Xf3P^">Mj3JK^KiATjS-5cgQW߇-W/4"bjDeKff=Adlj/+{ͅ*:i;0QD2[D=tlÕi*|ÍG eOaq`x$Ym܋7!-h;}c@A)/}[|bwD;NX 46H^Vܽ HR5w|4(ɽ%ɿТOhO)L7+V׹={`[k&R3785Fm@o4=0|1 >9=Urnۅx@'N#bA{;}W_(ƠpLSgu5bߛ\,UzؕปDT3;Yj26J$+{lC nsȪz$$5 2M &0;n&3ʖX]-wlc?uB{`d 貼on6\2hyA3\rݚn ig}o-GpMâ7gM6?မ# aEj/t--zwh;P;=;{-gJ0aѹQ|WLCPG>:/ŹMFz6i/PKGOC2pj7tensorflow_federated/python/tensorflow_libs/__init__.pyeAo0OɥXm/mD@сF"64+Z_,{<ožuch[1vtܴ7D(ZBÀUT I/-NjtZҔXUvDCγѸop5 8Y&$QsGlkl;V$ `baNAZʩ 3z= Cfظf}(znY&sϓ{8۳ PN٩A5<8aPĥbeZ$gKi,iCy$iT99H9GlcZLN;$ ~cY3f/<͑ih9|yK%\J.!4敜8WKg*7PKGO$Ύ}9tensorflow_federated/python/tensorflow_libs/graph_keys.pyur0<ŎsH:4=՝HbL\1$,X-HT!~mI~ku+. 0=ngR|NZv;뭁ˋnRZe#Xb,!)Di;/HCs0tQi.\pf'ʰ=lB5R > v g@ٺ2$27ԌC0okL7͆agͨԳUx9;Ѡ֠WuT06Tjtf7\Sв2SHYJyoGM /&`$& 0R0ߥA5\MqD%#܆2)O5-A<;,x K=jJP;Сj , oaהM&Wg'HsH[5ky! ۧDW)BUfF*\ˆ\[?qyv+y^0rbxdp=I 9T {kqDQHBN5LYTKtlYb>^3e:ؤe-Y`WE;ֵ/D{,!^!\?# ^-ufA8 #`~_g8%*US7PKGO0V(5:tensorflow_federated/python/tensorflow_libs/graph_merge.pyZYsF~篘DV`jU#,%KE`g}{NcwĠϙ(VuUu򘽬uÞ?;1bWkήx* ϹL>*<ފ m Yi3o"JT%{?cS\ȼz4{U6鞕UZŁPl) .uDɲjS"-3ζY60$E ױ!o4ӧ6N۸^=,RLB=Kk`(KfnY%Y52*bZ6Tr Hh,{ t%;|~vy~ϯ+gW/ٻ廋WW. ;U8 Z"@=vyeR5Rd Wjga5К ˁJ!6Ie T_M+|T`PUJCrq+Ck >1L&* ?{%v3WU)KQwRhH+KJXL&Y:`?.j/av2a 4*k-w"Osmc6q<2? )ŹdFI2כ7-ؠWb䒣.8lR%̈́5 G0YrQ3˫D=S39"lc<%B *-gG!!\DA|tL0gl6; )f;snD4CN"B/q%#;"!(.lbQ0!E׬ ~RpyP7O@\ʺ@6|hw"{ 3g@ ;I`30(`̻! }f.>_ppjIluv/^jܨ-p\ y+l cw3nL$1zto?ُdzk kr,$Ԯ{EGZ RIj*"ՖnGFl*6/ JْUPV"^B]EjY ةn 3TU)J`ه Cf=whסԻM`R5_졒Sb1|J:VS$$N.`zj=#uHdA2Cs[8 Z] O-#鰐uӗ\qP}ij7nc-X/{bT|uPVΣkedAFCE87>0O s e$2$ 4jH*UPE`H%bҊ}qwŽ>~zt#3b:&fۨ xb-u9}Ŷ#45Ojke@tԂ(7^ᚸS>Z4}06:ϐ,LGjPz1gvKA1Ÿ!TPJ0@EkcIU<2袵EzYzxҏd߀ #ڲ4KcB잠eF& hwr4 "OgH].Rs~׽Pjz>< ga?!Ca::>ˌuu8 aӓ4h`pbihXcHݍa;jDuܝDM Q ؔǫ8NP=׀7^h Ys<< jү:6?EH.][Um>hG84{f#}VgLض7tl#C-,pިLtgwIC)Xm.uP&&rxن *FZ ʌv#g>RV?>.lLt+h&K z<W)u qǜhF Uza(66DAк4Ah~eI:tJXv!aXSZ ̟: vvMߧ4VOKﮅzƘANm eUz&\V!(V\enw|rgɓk'`E_Nw=P9bxS7n*C6B^p\:wALzpO U衮Wlnbu00*WTnp$KM_y^b:xӔ`fnI,| =h}1 TNsǏhi>B1INWz^sǹ]mWЉm򗾬γ:5Wy+N3q{EϮًnS޺gJAsQW9*u˯9sr`\2>"g:_z_1ѺS9Wwa\wWux)SဂfT3( J=СG޺ZTϼ>{LuLC>?s0 ?=_@bX DFL0PKGOh}(3tensorflow_federated/python/tensorflow_libs/nest.py=ksF+hIvxRlyZGYʦR*3 PM_Imrgˢ~MOzRGRL2/,{unB}fIq̆ggm:LYR )'{Ri A_ZƏ*+.j.[$eiSW4p"^&z`j^KuF`YSd2_&/!/;ĈTq>"- FA((DZ" d9Īq\Ol /*X ]2Tg@D6 < {Y=,a66.^4«5CRgLz!!(׫U^TH ID23{]gȟ8j%.J#-~\{0D.z":٨y`:C9L,m@$^,Y!4E~if)O|{Y|i5hQ;I[GwWYzz*~f^OE;|W8~340~H+ݸ%>ռ׋.=yۓ'o^G;B. $'E3)JK4[+tU>KpNAh%sjwمG,xph<̀l-ݩ#5'@MEhZO ?C N@8}$Xl1ةZ~YmVǀY"IMAtp 8M~ >.Q0XL}ityz~C-Z\QqH^o𯎕䇡jԅ\/ 2d|W #HiB*> k#k:]覑R  lOH0}\dQN Ofrh[Q,IJo.NO^p5,O?kЁJm~=T#&0}[YT,Ejw66ϳPBSXE~s|h H*z$a&T ڟSjj`٩`ְiT-Ғ.S,= pZڃ1b:_IB0QVxNJv42IVh@.Bz9h`t<[Vd$ÛaPW^dc i\+gr (L`([\/*Pm1@ E-1xLb 9e#ou F~1jb:X_ʋǁc2v5hfW7ϖ"f [GTwA=Cʠm`ri_mD35F}_] ^#" pls g@Z=.Gx2U;f؏:(9"t"  wu 5~vXa ў@nFm?tZ]Dtm>H##Sz'\ď uC!=cs7!@ǂ)bGfhpPV4Hm3–Aq#e$J^BC=jR8\5\oj#>9Ovq͟w 86?L`̇ȏ/}?68sB}7pYrO pj-( 76Bm!U777y#_tlԶNhb2Be~B4 ehm":q]0#uX9CzGq\THz?4Eg7.D@f(6@Z0{ n$|BzLG&qW[ʃ5ްV?8s9Fr%) )h4y+eZ}L[rsLj4R/L4$BW\|E{R"J$:+L^cfd,N 6l6`r-㪡\]|2X?C#`=)agP/y` ~EcH8(//[} (6md*5yNqlhh |E }8fdH};{QW&;&*nEMrW_}wϛNH16%?ak1˵Ql TW!?ƼwH`<̨h#DR2ǬC\Ock"[נ< Ud^PnSĤ+2OE2oJ2S?)bJ0tI W>և\>1pkk,N$Zo91\8SiV=ߟֈe+s>ns2xiey a?ޥtÇs; 9 !:5ͤ$H@I(n쌆q@ӳEZe^EUnMRiZl? [;S5l41jv YGq6{kdHBkU )d%9D@=Ĕu"*v4(DOnOZzh/5]4#'뗚MnjZc#ȨbN|NsYJ02^UE?QPJHݬsϹ:u $ P1,RM=Ya-<,b< I!.a0 nm 9xut )]^lR"͎l?Ȏ%_2WZ ti.0ÁOH,:1i>;LgV .=MK=8^vY<&IұYg}\qCؗs..-GPsr Osdw&hl/CRꈹ=԰4 0U:+̯:c;>  ㈬LBbֱӧz$=n,F) &ʔ|qAF\ wCs|;Q9\Os,y dVRA-Wn''(/4bб]@s {rYE0Ȕ53sP+{@e>ȅ#4ys3|!G?RlOPBm3sF[y5i2|\鴌&W|q՟aF.~ Qg]+v] ^ߐӴIvH>>VD(Uv[& w&,A;0 h p:BF? Д&٬]QDjShZA扔l))x_|!IfrGMz9di՘iJ_r0ܸ@9h] )m7#}zBTҨc͊|E7P7<6yMksw#EⰫh:Fٌ궺ZkZDDC˜zs/~L^gBKP PkM+5L = ԨaC֑XTEٿi)1lR1j. i|̇vYQ[imwָED^yO?>aNj2)=%K#=IQyœQ1V$>}~d<+X&ܩtiIs5AxK[eݺS kwaWj l 6 8&pq&zA[Q`tXۣoE:/gkͧ٣9;e.bErֈ* &päs6AOqg\|-?=Gɾ N-Gj|e\ܰ|8q/* b/11C4M#L~U4M;>C|Ӻp}YFVLB}Pb +Mdž`8|qL8X,0'b!CWW`s]E^\㇫7uv=~7lz䍶aKׂ@mM S/ 6Z&o9I8wm\%w;='xkO)W$co[!$ߔ ݵ{B+v^E?OLZ]O(.h+):钥c)X|+/[4I՝ xk. DWEi)!}krieׇҚZӪYOR`/SMM @?c՟LLJNW3tlf+6t '"1'x|/ G%Wūx7ջN'ҶrS!Xd{5 0C+^2Oԯf̱$Z,1ig_BKSHaQ!Y&DZaYU ?4>a;k:M_A7S8r-F.xn~M"ѭy_$]mQ`.Qk61eE"%r2HC5hr^v8$nrWM%jk?݄fZ7o : 8_c ,HLJ䈟nJ #~P?(7˟ï+28p1C)pHn*=@*||6{f6`zB+~jLG?O~u%v%SXz3jggª{ edo,;mw$ Qu"@R' NT̔Gfs(C0$ܼͤ H4'wQ-7Te+|fUbu 3%z{_,JJacW+na2:`rSMJe=9@N%ڤXK ա ' Tj#~=5Jkv6־R:w0l _QvP}+PȬx5|Lq}W*ԦOrȭp,[bWAyҗS^K ֫hQ6l:8ɫ}۶G5`[B[^O^In)p;3X}B^0/!!bהmT,e/ewB)b^aGr,]$D!Lגte_9ovвvo0f"ױ82+ڲͣyq):4WpqW#$IׂoO)"k%Ü~kpbNF=>tqmYW/]z"y{&!WeԞ 23^ѷxr4GKWvx7 | f]ر=\ƻ8eKY uVR0T™A0Cf+Xr,RfJNfU` &,WN1\SQ^hl3&aɩ~xfL0;im K7VYKCvWxm/eˍT﹜?Rt<9=Zi6]gT3J p[*y'& gWt(V߽ S|M1]J]Y^}pb0=-7 Uf|FIz1G@>x 9{yo"ˣ@'男 ct)ۮ(؎"[Y$s}og?j7E\,6@㑫?;Cqn||>rP/ؙH_{,O d^C;\riSǮ7P|ؗ]6洞NtC&;T66q}쌳W|l+h `kw)(ˋ}H֖D0Lm/K-xɅgDEDqG}˝Kܦ o>&Ɋى ',S+sYv;u`O1(?TIV4az#3`KXәzG?z%bYeʺM".8~9){YPk<^z?=O53{FCG:7'RLSG.(`n op|xʗsTʼnE2Y+}"^ p{/h; _{r#va ux5&zL~9&1M퍗)>>Dt6JϳPKGO;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXmo_1| 0 U lp j%).%%>˥(E]Q;3;3/R^+{C: \O$.[sYRi\A0q >dZeاJ\DQFŗ@ZW5eHP*$w32u*$mU4FژR@Z@>ۢ+GۿUYËv mE$Ňۇ۷*J&áTlI$^mJ-#2zQnE!aeLYiUåKd?s6~`؄i%6zF^ƛ7"XA\eah7T(TZsEieEMyEo[(PB"=txG->sXFXQAN݈37ca,ʄcb'Bg$Mv4jylm[^x"!g9jCn։ FU0F?kmZn:: o1^\{?pHO2c :و"s5+g3:ful`Y`di2M 䫜@p4@L"zk|QmbQk%H/XmZiXB /(rSʦN|80#P g WT\enbȠg1@~-yF-ݘY#w}N+*8qZW-~۱M:nZ$hIb2hmQd ]2%3x)muPY^ٚQ}h>t: wu*)# gpw01=uP3}=DtKoz+6˾wr:{K­Kspsʓ% i5oX2 `U!h?6H4<8Wܖ9جE+j1 C{^("pCq=j#fz rGdtCSa̩ r{@H8AT,cK͹Z;^^Et'i*#^̷]I;AuY%lc$_,l~k<EiGW[nI ̐ %?4Pш,|V1[:1rA-@ʸ6|hnEwq?IO 7@_nb?j&M{| "PRef Sf39 H9]¿crA~Tb֞O,`;ac$}ݿY"8Im{C%;/Жq[ug6`6<k%yԦqIrnDEPKGOɹnx -tensorflow_federated-0.9.0.dist-info/METADATAVMs6WlOI:|L=vz8i%1(9-hT$2.sTj'Q~]g+֓K*rmk$9i1&HYr-Ip/ȰVۚ*hkoU5/clgC!..Ն 7J뮏B'X2dgnmSNj!v@Ze ׌xaUw#2lC[ͮ͌>]evjT 8gbچmbh64+ʮ~{K;JL϶PJH?9TܹqϮ}>ǭw+8mvU\+ӝ@YCBٺCUZuTo?>|΍b[7[CiEeO*.6QWO|Ij1Fע~o)/+ky~ڈh(Gg [ԉo(mw=əqFj̤?o_9LpφmJ.9}[h7a,_oy8W{d޲L ȣѸāFIe Nuz~cHjbu?Qۣѕf>bl!pޛڰ.3mv1 D%cEKsB Z@ f1pIQ m4s&P @|YEYkQd/^J+Rl/5eR臒jTa^* m \0\H-~M1d\s7SMk%/,Ѕ{G-i pX/6M]ke/H (zv~v\wÖv!ldOCDymـ>I8ƘpP\Ό\A K66,E-i,$Bibtia29LX/)tWמGYezTcLD= #"LDn@`? E慳DtD<)AQIl%xALbtV8np fTElm HZ1ڇdfWB؆b&n I_ΖC䚟MEv6XBrT1hL)S2E?Oe(0ǠД1%%!`&0<Ҡ 6n46=OW@0+$dx 3#p ǦA,PKGOF_n*tensorflow_federated-0.9.0.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKGOdd2tensorflow_federated-0.9.0.dist-info/top_level.txt+I+/J/OKMI-J,IMPKGOˆ}45+tensorflow_federated-0.9.0.dist-info/RECORDIZ[+fPPP@DFz7ό02ZU5e(.(۪ j L:W=o؁1;g@SsP?qr{lP"{!hڤ*Ke>_!/ /vIdء 1$uSuիvJ]Ng?3NCZ]3G"xUQӭ[d.ɑ֑αOS8UM" R;`6Smp"oHx}W50}2Οoz`rf=\TJlYO!O P0vNۭؗ=bi9?IV\SXvCPj|esOd0iS[d[gyMXvph`ߙWMm_gk X\Nҹ&|!gF9eUEշvyD,3׃{jL%Lbn% bDnpfֳuŁ=< PoΙD/vjgC { $(TmA8yK u6v钅Rvc_/EIgfx8,t}8]&N b[3 j-RIP)A ЗqX\͐8I´ojqJlE^Te>V z>IRfjŠ#K o -[Vݷ2kEB7W |ʳ19 "Q)zm܉YdL&I1R EjDjfk֍./ކDoXRvMRjKr Ej2m+jKa|QMQ^#"dչEPvϬs]Mwf33~B#SV4xP!V8u2iA7pNdz@iVAg`w,+5@(x?XfdyCNНJÑ,u1!)Gd{#@u#״KǢTI~L:o+C+Z-ւ3Y>3Nk 6bף`IIi('d,՜MuC-mr=gruB'j.x\o iL2 9 awN$/ֆ**l'd+~Vp#LttvGu`Du^qq+FJ}|&ل/n |O9Kȷ2 J͆n4:2gO0zba@fx;R{la$F{࿜!%cnLh A*dC8wc{w5dZŠkلh΁#gU|*· NH)"yuw]/IIt"MZ)Bn7qҝp/)mQsN(9ؗœC)' 7~9˜M?qkW9$3w偽>~0ȴ8GUR`Dt}ӳ Y8Jy%,tfFwi$!D dJKysuXxG)}?\x :޲bm,FکLXne _p~\!ڎ3&c_fa`Hh-6_*5Ӯe/q`ht60jW7jn }v/ss[!יRbxHEdSL2 -P ;PI sU#P;]HJH4)xS8LD 4Sq#H z>}~> "h,5riRMc`kU}WEij{6CcE/Iz{`=|ua{i@a}$]or?:ݚqdlk| p6b70AÐU$J$y^<b]+EWnj*57ggHUXSD.ǤRSP]QD~KRXs#b}rX$ uȻx]?gT—rsqE/`nآꄊw'uuBލ )zv&t`m%7nDS) =0Ewj1~V{E_g,=K` yPbr7z|h~It$ڦ9m[4d^,r:k)AOWoY?< f >r=R0TȥjۄP8*8fߠ|>y gU|#w l]KK>굅;k=/09AIdxsoHxYӴ`Vk8Q8džyJbI~?_wٟ%%p!sRD72X&Suk{@q]-=v{^;u ,MxTOwM7HP>9f^4A!! k=~eZv?Ô!v!"v|XKpp}[ @0 Y{؛J2&׾zQ'>3L'"&8#S)`'U>/` #_< =GT cQ)elIVKrcQ2\ؗKQ a rc'p5_u#[黟3s*Vq8ĻSO.wU:][wd'*LYFۉ\\*jǸ E u evQko(2DzՌadX@wg7^~wuu 2ՠQLTuM Q ьW pS8iC ^W1gR#2N/1gĘB!xVm&wQ8Qѧlm{_mK guRe5SV{+`Q.b@R94P4kv^*hP&[E{BkY)/m?gZ٢4@ffa ]6,PAzK ~3IO 8.Ro MA6d6 XYybamYr ~?aEMLXiRK9--Ysu| S~Ć|HkKn7GX>4+Փ0kT8m뷧D2kTsEAv[zл\]R$Ky>ӞV-0rY Xcf$&5p@}WԽ^af2,9#XMnydYIeǐ CN2:vI,_) D26r5SŲAiD-\8WAgR݃Q\D΄phIѳIF{[k73 w6O/=:}K: 6Deb_ OA]'{ݡ&2"[tnjEO>@AV.q qr<.z.a0/zYz"&C~Y%Qn:gyBkH|83m0ۺLt/EUjlp ݝGNlN~Epn[E736 W]}MBV#b%D5\+&gG<H|;ИEJ &} /Cw߯_ݝ߼5NY0# {;iJ0<Kn?ߌ_Qvp{F;yW쏧@fQe7],_ aG f;0fNm5E&JSW}L< {1 \|4oC1G/n}࿨W2Sb5zGkOӹ6Qݿ(11 !S߁Y©0qz?QrYxQ͊ДsƁn#aw[=^G΃aUVi}=U11: Z hlXv++?PKGO\Gz tensorflow_federated/__init__.pyPKGOv(tensorflow_federated/version.pyPKGOej&4tensorflow_federated/proto/__init__.pyPKGOej)tensorflow_federated/proto/v0/__init__.pyPKGO%ߴ0 tensorflow_federated/proto/v0/computation_pb2.pyPKGO_\(,-!tensorflow_federated/proto/v0/executor_pb2.pyPKGO<23tensorflow_federated/proto/v0/executor_pb2_grpc.pyPKGOC2pj'e8tensorflow_federated/python/__init__.pyPKGO-S31:tensorflow_federated/python/common_libs/__init__.pyPKGO ͞A::<tensorflow_federated/python/common_libs/anonymous_tuple.pyPKGO#G7[Ptensorflow_federated/python/common_libs/py_typecheck.pyPKGOU8 >Ytensorflow_federated/python/common_libs/serialization_utils.pyPKGO[Of ,^tensorflow_federated/python/core/__init__.pyPKGO_? 0btensorflow_federated/python/core/api/__init__.pyPKGO&w8etensorflow_federated/python/core/api/computation_base.pyPKGOӖM;P9Uhtensorflow_federated/python/core/api/computation_types.pyPKGOk 4~tensorflow_federated/python/core/api/computations.pyPKGO*I+?2tensorflow_federated/python/core/api/intrinsics.pyPKGO= ]L2htensorflow_federated/python/core/api/placements.pyPKGOx;Wfg4tensorflow_federated/python/core/api/typed_object.pyPKGO e 2͟tensorflow_federated/python/core/api/value_base.pyPKGO^V7 .tensorflow_federated/python/core/api/values.pyPKGO9q*5Rtensorflow_federated/python/core/backends/__init__.pyPKGOSC?Ϭtensorflow_federated/python/core/backends/mapreduce/__init__.pyPKGO)nMEtensorflow_federated/python/core/backends/mapreduce/canonical_form.pyPKGO~}K<tensorflow_federated/python/core/backends/mapreduce/canonical_form_utils.pyPKGO -~F1tensorflow_federated/python/core/backends/mapreduce/transformations.pyPKGOA6 tensorflow_federated/python/core/framework/__init__.pyPKGO;~Y1tensorflow_federated/python/core/impl/__init__.pyPKGO>ݟ 29tensorflow_federated/python/core/impl/caching_executor.pyPKGO <+H$tensorflow_federated/python/core/impl/compiled_computation_transforms.pyPKGOp.!:Ptensorflow_federated/python/core/impl/compiler_pipeline.pyPKGOdii_;UWtensorflow_federated/python/core/impl/composite_executor.pyPKGOVLa9ktensorflow_federated/python/core/impl/computation_impl.pyPKGO઩ H<ptensorflow_federated/python/core/impl/computation_wrapper.pyPKGOm}KFItensorflow_federated/python/core/impl/computation_wrapper_instances.pyPKGO}M|i <]tensorflow_federated/python/core/impl/concurrent_executor.pyPKGO /PH5 tensorflow_federated/python/core/impl/context_base.pyPKGOg *=;Ùtensorflow_federated/python/core/impl/context_stack_base.pyPKGOX ;tensorflow_federated/python/core/impl/context_stack_impl.pyPKGOMH7tensorflow_federated/python/core/impl/eager_executor.pyPKGO8#:Otensorflow_federated/python/core/impl/execution_context.pyPKGO(vkȯx6tensorflow_federated/python/core/impl/executor_base.pyPKGOi~z$9tensorflow_federated/python/core/impl/executor_service.pyPKGOn 1?tensorflow_federated/python/core/impl/executor_service_utils.pyPKGO` 8tensorflow_federated/python/core/impl/executor_stacks.pyPKGO1_ ^+7tensorflow_federated/python/core/impl/executor_utils.pyPKGOa5 <9tensorflow_federated/python/core/impl/executor_value_base.pyPKGOևv Ftensorflow_federated/python/core/impl/federated_computation_context.pyPKGOX6-wDtensorflow_federated/python/core/impl/federated_computation_utils.pyPKGOj/6s;tensorflow_federated/python/core/impl/federated_executor.pyPKGOg579_tensorflow_federated/python/core/impl/intrinsic_bodies.pyPKGO7iS&h:%tensorflow_federated/python/core/impl/intrinsic_factory.pyPKGO=d6tensorflow_federated/python/core/impl/intrinsic_reductions.pyPKGOl I8|:tensorflow_federated/python/core/impl/lambda_executor.pyPKGO{);Mtensorflow_federated/python/core/impl/reference_executor.pyPKGO *8wtensorflow_federated/python/core/impl/remote_executor.pyPKGOep}!6tensorflow_federated/python/core/impl/runtime_utils.pyPKGOQ"h~v=atensorflow_federated/python/core/impl/set_default_executor.pyPKGOp= JC:tensorflow_federated/python/core/impl/tensorflow_deserialization.pyPKGORQHAtensorflow_federated/python/core/impl/tensorflow_serialization.pyPKGOeOx?Utensorflow_federated/python/core/impl/tf_computation_context.pyPKGO#q,:8*tensorflow_federated/python/core/impl/transformations.pyPKGO{ >tensorflow_federated/python/core/impl/transforming_executor.pyPKGOoh?0D3tensorflow_federated/python/core/impl/type_utils.pyPKGOJs~"B3u"tensorflow_federated/python/core/impl/value_impl.pyPKGO[S$>2tensorflow_federated/python/core/impl/value_transformations.pyPKGO{9\{ 409tensorflow_federated/python/core/impl/value_utils.pyPKGOej:>tensorflow_federated/python/core/impl/compiler/__init__.pyPKGOE9' I@tensorflow_federated/python/core/impl/compiler/building_block_analysis.pyPKGOۄ\:4#%HEtensorflow_federated/python/core/impl/compiler/building_block_factory.pyPKGOb?,A:{tensorflow_federated/python/core/impl/compiler/building_blocks.pyPKGOL@tensorflow_federated/python/core/impl/compiler/intrinsic_defs.pyPKGO:._P D%tensorflow_federated/python/core/impl/compiler/placement_literals.pyPKGOܐx G׿tensorflow_federated/python/core/impl/compiler/proto_transformations.pyPKGO+&@Ftensorflow_federated/python/core/impl/compiler/transformation_utils.pyPKGOY}#6 .?tensorflow_federated/python/core/impl/compiler/tree_analysis.pyPKGO#G >tensorflow_federated/python/core/impl/compiler/type_factory.pyPKGOby[sDtensorflow_federated/python/core/impl/compiler/type_serialization.pyPKGOej7tensorflow_federated/python/core/impl/utils/__init__.pyPKGOJ"zs=tensorflow_federated/python/core/impl/utils/function_utils.pyPKGOR%1Y?g%tensorflow_federated/python/core/impl/utils/tensorflow_utils.pyPKGO4b/ 2DWtensorflow_federated/python/core/utils/__init__.pyPKGO}3 L-;$[tensorflow_federated/python/core/utils/computation_utils.pyPKGOJǾ >gtensorflow_federated/python/core/utils/differential_privacy.pyPKGOC bG8qtensorflow_federated/python/core/utils/encoding_utils.pyPKGOxHZ@tensorflow_federated/python/core/utils/federated_aggregations.pyPKGO9~L>tensorflow_federated/python/core/utils/tf_computation_utils.pyPKGO.$0̐tensorflow_federated/python/learning/__init__.pyPKGO!v {;tensorflow_federated/python/learning/federated_averaging.pyPKGO7!5 <םtensorflow_federated/python/learning/federated_evaluation.pyPKGOw  B5Jtensorflow_federated/python/learning/federated_sgd.pyPKGOc ijK3tensorflow_federated/python/learning/keras_utils.pyPKGOb !-rtensorflow_federated/python/learning/model.pyPKGOP}'3ltensorflow_federated/python/learning/model_utils.pyPKGO ~:tensorflow_federated/python/learning/framework/__init__.pyPKGO,Ի@tensorflow_federated/python/learning/framework/encoding_utils.pyPKGO“HA6tensorflow_federated/python/learning/framework/optimizer_utils.pyPKGO@-ԝz2tensorflow_federated/python/simulation/__init__.pyPKGO$Nd<5|tensorflow_federated/python/simulation/client_data.pyPKGO  C tensorflow_federated/python/simulation/file_per_user_client_data.pyPKGO| H tensorflow_federated/python/simulation/from_tensor_slices_client_data.pyPKGO$X.  : tensorflow_federated/python/simulation/hdf5_client_data.pyPKGO 8s 6&tensorflow_federated/python/simulation/server_utils.pyPKGO[Btensorflow_federated/python/simulation/transforming_client_data.pyPKGO']{; tensorflow_federated/python/simulation/datasets/__init__.pyPKGOYt&@#tensorflow_federated/python/simulation/datasets/dataset_utils.pyPKGOW[q94*tensorflow_federated/python/simulation/datasets/emnist.pyPKGO%C >y=tensorflow_federated/python/simulation/datasets/shakespeare.pyPKGO8@Ctensorflow_federated/python/simulation/datasets/stackoverflow.pyPKGOoE9Ltensorflow_federated/python/simulation/models/__init__.pyPKGOrLa6KOtensorflow_federated/python/simulation/models/mnist.pyPKGOC2pj7Vtensorflow_federated/python/tensorflow_libs/__init__.pyPKGO$Ύ}9Wtensorflow_federated/python/tensorflow_libs/graph_keys.pyPKGO0V(5:Ztensorflow_federated/python/tensorflow_libs/graph_merge.pyPKGOh}(3jtensorflow_federated/python/tensorflow_libs/nest.pyPKGO;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyPKGOɹnx -tensorflow_federated-0.9.0.dist-info/METADATAPKGOF_n*tensorflow_federated-0.9.0.dist-info/WHEELPKGOdd2]tensorflow_federated-0.9.0.dist-info/top_level.txtPKGOˆ}45+Ģtensorflow_federated-0.9.0.dist-info/RECORDPKyy0ٸ