PKClN:! tensorflow_federated/__init__.pyuMo@ܚ-jdW4Z#vw gi.hv}y U_J̦Q=l@#wVF,Nr_5e%%:^NWvT@*E %5v@rꆄzrɄ1qPG'X-X9*u <>sf>#mLlNJKVm^0x^6h-ۑZ@82f#zPDesNyސ#Y dct>p0N!ICI:g$!mSa&Yrx{şgmJZ8uqfN{׆S{ʀ/Y=jl-E˛?]1p8M,Ѡt02Pݘ S7pPuT鷩ҕ"XL@ U_/PG>yhPKClN&tensorflow_federated/proto/__init__.pyPKClN)tensorflow_federated/proto/v0/__init__.pyPKClN60tensorflow_federated/proto/v0/computation_pb2.py]{S#9>E]́cY7fvkLn`\E.ӎ1\OҫJRa#KIJT{S40|eH>L&Q,z_\߼j$d=Dcm^ۇIL*E+/_Q|vצ,CNJh>Zݝe3MVӾe`6J7vN#I{澇,3k7J@<*86g>f8(|Scn  jcC9e;,F3~@3YF#!1Cr4m4@"@\& D)0qsV `&T(ί*ޯҖê9ˇ3.U!NrhWBJ'FĔI,.x.p#bv#h*'hhiȂ}OQi Q4#0sFM9u{"z~d\%QȜ=:8ZVmSgI%DqbͺM=OO6t)6UA8 )??vC{YT,`^LuéA\ XOH4")9/x9Ɯ97c59ԧG43G$ɶAԿgĩ0bՆ:(7xo™ճkA3j>Р KƱ7_Vc5hu4]sk t+@C:s<[lD3ڢvN2 N-CuXl 'B Iz/^X@,Ӑ *#65ѣ2 0M2qiދ:93̿e$W}5M;ѪW4Aˁ?})D2bgQ*B=G9>Lr|kǤpCb ;?: ghd=S܏@,x*~@Z"XR Y*{3 @K (lAߐo+* zSv:uxwFoIȷJ wJaoKK SwyR GSoLg* A )3A%!ðw%ػ%Tz(XoPϓٔ2Nho gwhɗ_q1*4W,g{g%T8߱D츄2$><2I?IdnS<9PVI'GVKrmfzɧeҲ/nhGR曞=*@@^r:IUZ')>T&6LdǤ>T58EaO*؅p4D4&+xA8zyD]#ꍃH}8+ٖ ]ۉJ ʮ)xaaV)Z%tB5X|qJUFotu9d`}#2lJuQ;{७Rrf-䠦4m~?>AaUDClmDCF"ki%qyO"e#E~p{NmwYoUQ^~.WFW9tE'ΏEg'Q҅JPr`t680S:FP>VnQ4ų/N/>Y 9SmU?rSX9ۦ,Vdzs_|La>j !!9~^`Hۻ1 ZnL{3|EtkItIUǟ?[Cܘ`g |͝0W6^>" mQQSw2tAC}_=?mް@+$ǭ?%<icP֜Q6uR|63|[]w}JP.?w̃.Cu \찵)ÆM!swֻ s^e|$-ez]k[tR f6pY-y=s$xvMKIѡ-<߹h9Y7ۡLF9lh-rJ6_UlGݿ~X1V-=oCwXeكD6Z<Ķ/1Yát!P~%ѵ (Q[mۿ_Ir' !Ns0 NVmf0JePr3@ǨwZ1Oefo"N.?_}ÀH_톷U@ۅ':ro6ɔmUy},*5tB3=O%h[Eo1[RW>Lܫphhi/8/'MGYG۩,P" lC9ppڤu8tn28j[Ov V`+6AL}KUĠs;[l-R%8kP[ =Ȑ*qu败Jp#A~Reؠ ?j *l]_ 3" bvH.I˪ oeH.dP[Q93 ܨdʠ7CV@׿rdxSߔ6!Z?zF#& 5MZYxnB@m}"r"|9w,"U[Y \r8V o3pd"%stY.F6Zx ;ِκHa8@Ƌ$-1 " }B XU1Vo*Td ĄԊwu}9L9*%p9lիjBVUZKPTD|\#r} &#mq)Cy V\sB5>O[k(CqҎWI;:"qQC?y Sw}RtJ -EtLdfxVT$Fdʂla'D ʵXVI!=`/s10 ?zz1z+yClE/_nRf[)ALUqQiY } ʙP+`N^G-\~@EfJO)yJ(3\13¦,% `i:I3% ěoy |ɯO`H6@*V]p=e!6#:9V q{)3)9d&wܦ㷙$}VdК6d%$C2*d2MfՏ`<^GwΦ1Yx֐RF:x5Xٓ& ;x$ҡ] =kxBm2|?Z;e蕃 gRpP4 8Pe(%Zw}v]mtH}q{)z{`-*XN4@i`FY w[.5Uَi,%7VًiMe͋IX%Q>]FG?o4:d=.E5 ͊V{D9b釖 ^ԙi//Y;V#vEpop\5ꦆ5}H j *g,$r #; +3o5PYxqɈg]OҖIaҏ@ )b'FǛ*(- P&m ۓQ;^ymjզ,.7cwؾRz]or67Jׇ%*j)v(J4_|q&&ōh㌅IIuKgh58 [7gcgxQ('V*"󂪳\2>PKClN3tensorflow_federated/python/common_libs/__init__.pyPKClNmF}5:tensorflow_federated/python/common_libs/anonymous_tuple.pyZnF}WzDN4{h`M[y/u@"):IPU"2DfK%j"`CjHJbqBV0Tn]$(/n^zd/.߿<,Ue) {uq/ -lN䅐7·*'J(uu' *dQW,{=8:G⻳ hr~Ϗ?]_>}::)>~o?^;:xWw+, QHiJy sPSd,!WvS%n[UdGTMJ@%MI%+~*eyvRdrK w&Pė*q2U`I&neZcڐ@k4ZV뺪 5@yQ (CVmB+lIKF2OSůJL ~D[hDHvvP&ymo^֬=* 6ipwQϣQJfh]@wy9ohJlSi5Ap:duO(ah{f߀eMRYtB[VmdEHTmy%X(P%-f$3pCiY% 'de%*aD!%; VT)RUK`EdNhiRK8MyYLӲGl\Ej6u BJ@2ۚGj!J5"ܢmZ%\)T=xq$>f8B[2rOcZe5QIYg: ֶMN2 dX>ЈJ LK!5qk:|<'Dyyÿ Y,$Jʂ}(NODxFO75=pA0^Dw0S(>X%.EC~5KEC:b"6 8:Nh+@VmXSv;ҢL#亜"2jѾo5[^*L4ueNW9%AsY(ILY13$lJIV+ET6u3>eriűjB 9`7eW%)6}?7e.Byٝ/w듓ONޜN;`+owMVed۵AK!>ď9G!@RӶQ-͗Z JR15JCܼH`P1\e%+?ۂ,Tz|/{V[K~_$Pp`RST֛w.a>,8IXͥڐ:0\gTP"7ȑd*#' ZaES?Q|1㜬AmRrLx-L5skK 3YhVE['Z~vX&Jc9dv+ 11.YN qr"o QH,}>M8 R1eSG M7<{GM!޳*)u=-U ō}r I [xxpVV8 d4R((zy݆$+$6zbVo9 :)4Oe%|IVlL`GʕFjYt\sC3nZԩVX|Ej3=PIk-KRy;@8;B!O8 ͰI~p*OE"08u@賺/\D<snr@ Fũ6e<c–VTK"Zb?M6-+:FֲNT(1\i;Na4y\ rxm`jW6e䫼iRJ&}ݡ@\{gHr]-8G5\!uB31UhU(ɵBsԪP,njro 4E =3 &}j?e5 HQ}u-! -u8В~/+@@4{K@lGS+L0[i287W2x%ggN/\Fm:_ٿǕnl,Ug宏/@q`m i ?u HyPs&"-6[jQ_DQE-^,=U{:c 7-ras}T{vxB; r|{?{ŃV鱖p6!IUIOFˍW치x޵ih6`>`'r\,VJeuJG@3fí)UH dJڡsYCr >O>jr {K7*"vBƺ֘*T▱=؊MWpQu)!OT[3dg6 62qVYŁ#|mΚ%Wd]DC+\ێYgY0e~Z}{XX7X[2ZF2vDA5l_Tq+PysM $i - 'q}˘SxևÕԛE߰q^#Y":Tx,&/զў$_y>,~`^<)j:YYEsATL=#J ^ʹlͧE"Pc S5 K}ʰ?%3|bfLO> va&k;xFܘdzt`W;}3yvh׳fz#`CV}D4)O /3&!4o}#Q2.j+wũ 0/{R0|H;5iG\ްƋбgItIMS;a`x'`Jd]3ti~CO[:vRl …,&6/6qmrQ~MKiFE|~W>r 'L;,-F}eW(u 1sB%.噾C Ǥ+"EQS+Idg4hQ|qhA]xwk&DL Rvbn'BVv~\ٱ5M#ލ:t {yx)]Rt.TWRzS/Wh2vd_S}`i 9.A%حc d4Ct ېd>#]>2Zv5;j_PsK<U{w[O L_՗% ">%a`sn%#6ץ0ϜbsKU?ei˜tŵ:(0`~5tzQ3^5E-tt'|z2[8o1p O1HA89vVg"%5[pXG%ץ0TMK!JauJ*}v y-3oG'!_5I]W$hZymkӔbVU 6~l.xhBڴ ? IypOIYf׬z9})-"I?A4m&"6 <ߏ[?>$lDr"~{!?ܫ-d(\m·VCM M<cAS*y6?({n4P{-5x.}#wxڭ a3M?m :H⦁e/z^]6?)Mt"iuAy{}Ja}g7pĤKbp߁w_큌(SF??ȑsr)rez">8 .!q/s|޿k$0~8_m];&h=DAo%#4-I8]>2xd>L\4j<8ἴQƗ:hVuhݫ"xl\{y_D5B2;b*X0uS$]o4SE8g%0s;%_AV`T+Q3 N9P'{v]X+|5h;LyS/$rK]_%P(Ez' 1d i\d8Q3O0pp16)g.-L]'ю!mDenEv5uMo֥F(YAM{64;WMyIp(rφ\j9^_ ߮v?PKClN,,tensorflow_federated/python/core/__init__.pyAo@ӜT=PVQ#,QNhwK%GIrA;7owKcf9;5=BV+;7`JH/bJ:sh(OwqL56:bAjjD4`[RDcN&O' Sx%j%z+ROӷ.}Gj 7tdJՕO{tߎXf-PVJUfz0 a7#pI7spbg*:*3 })0 BgI6dkx]`&Kv& ~'Pc/4Z 6G gJK7jerm:ĥyʛ wPiXfs<;1Hj؃*i%HV3X-RZ)ݎ*WW>Gvi}uE}@.?PKClN6 0tensorflow_federated/python/core/api/__init__.pyn0 y ½l@t= )KSX ۢ'CiG-i\/{v%X{H\4E]BOSH7)JM: sXuel8\CV4׌c=+Bja[AkB)jQ;jt-padr(QUy 9y6.dPjVvv-q@wdւ_0kIg9ɬY ϩ^pgUA:#UY%}@byQy%Sb :[Q_ov.YF8hyd%ĵF_ĄyͩaEXyhGg3<@D' >V/٭/M1ghQ:O</Zô'w-U46HOn}#+Ͳy(ۓ2Nr}\Et(giL^99qx=PKClN8tensorflow_federated/python/core/api/computation_base.pyTR0+v%0: a)MfPG׶-'JqBh"iWg0QzgDY9u a*P0G搴RYt}pt(ь+ 0߈aZhrZ$ a5n9jBW iz/=Z;FhFxM᫜7qu1 jceqGc:ΖKR<Za&AIf:PXi;#*\ K.3bݺnQѧI$KHKrDibVt Ltgzd?4'7mA@F. .YD(r@iiI^N,hc.D)*=B q wY ̑^-Jncb¨h]k0|98Oj-ۯ?b#!Yܧ#;?έ*\hZ#+2H?8qr7I(O _& g^[/@E*S4ǂĕeCu1 fJKkgAHʍz${ߖb$הmC*0W~(%ļ'}›*ied;M|Wuk柨p@/_3dM[;t_*dVvQgS?F5L$̧(PKClN8Tu79tensorflow_federated/python/core/api/computation_types.py[s@ÖiSJTSGXJ2ECD  pjwP V/Żb)B7_Ez!ŵ̫<ϊ8SY&JNiEY/^@kCP0tLď"GEW)jL6"/+ $JL y?+%\L*K|":U bgMF'0~f8(~J_^qBE9wgWg@bCɪNKXx#4I fEQd^JS .SHTLRiZ2ת-#,JrJ\\ߞ^]\E@㧋|ZtٕIx%|;?^\]y*Q~2E=)*JʆVr +\yq'#V\fMJ.S(jZT|ŋr',*l:ͦH;I,As6+Y@`VK1jUr8ɸ*2ڐ w)׿*\ |Y&yJGE2CoI*fZ`<'Wp<^0KǕ]M^eQWCU2,=>JeY2K Rci"^/ 7ko@]q2R%d7>wPكb+:<>64mVe2B@D$ˬ5EMA 23t@E1֩90d6#AͲWosEFI .uY P+RNʲ(w1)  Dy/BRlQ4OϦ"dtDT0 F@D aK2 a?ךQE( ~nba<#RN85%AE`ӝ,3B:.)S x>[r^kiB2 09JzuYH<<< @ jC)! uG^]$ H@DV:f=/𼚺#)9F)[x?y*6tաC.^c&sj3SD٨JCf֓J2hJO5y~ GL4|k 3&2q݅w ,tF8K.6h6&C70[0Ϩ,aP-;)^;<8p*̌B{lȖ14h sN}'V >dqu<38V25bkO0\ آ#~GlVW Jٍ);(h>ƀc@1ꓣ2og)hs7o0z?p#VIQa0OA}yo14aF32 5OѬi"WQ:=isqɈ\vPm6 !.^[~2K6o\I/@_%%8BفL=ˢ-}ĔFݎq;bBW?xӃ9cj (]i 5)}a+ Xw+f}؈W_w3rqW,n'2Qm>;c ȗm 15dÌϩ~2c_r>Y23"74YܙGwțB:&̯=&Xu롮?YjÀe[cbp +uJ;UbNX]nJ=^I>lݺ9v{_'Ͱ<~J1h=|!PdHk\E D"6t`VŨWi_JQEI{&P9ѫe=eTNW$!=ÕDh *"!<l]вk_lܞak)c.-b!w..D̳bLuh@$z+=XIZOZi%W 5TX*~F*1:1%EFwɫ+{H [X^X2WSi㦺횵؆ZRҴz0V: Q˞fA3[mGUnms?ı?qx:<\ã7_^IzO]^l< RXVY_d +́^! I¸&zawwgtƎVZ~PI|yd͠qR74= ;ߺƻt+wg?<<<>>|ehm9 ͸;i5'c[9g #@^Ft[=>Y ||*zK0}o޳,Qۯ[R8> CmnE7 DVp`0!49Zzڂ'}sI5{ÏHKm?,663onÐp&4|F:@!kt]qyf N2Fl?%T@T;OJO;NŲT4q'ՠTED ) j8SVMOt/2N㠣$LbǮ̄>uϺ^LS ɶ^`5<͊#~xQEo3njQ۸ƀQp0+j5= 2zu~`P~lTRο ]6:p *X.pPKClNNQB =4tensorflow_federated/python/core/api/computations.pyYn9}WCv,p6z1f,b I2!ٖ{HZLfm bթS?r>^{%]v%T ]ΗggG] > .·?+5uy.t$=:9} kۉ\ c輂E[%SAh#*XZJ& $΂iK `ayqvZJ֖xҟxɴ{ovl-Ur3[ 9w ς%WNm +g]V6'D_>Nr[v%.o~?\|,F=-#5Q[ hl4/U]^fɹsuRMjHiBKF!B~ST> U1qwu"FمL.tNM&t낐3o[k?v֏>| l` ?i27ee*ɗYM4nEѨVc3nO/FB ſYώ =;i[A_/fp4SZ50!!U^8-s ;BP2UnIKmVOnBmi'聼$D*o |"mTZd+b:3RJY93!'$l$IC!0WХL| hPCCڈ\>4'{B|O Sܢ{nRBԞHzq9E 8-%?0QWA EL}ƾomSb8F4a|' Ke!QYrS8Dr'ԺiW +sxnb:9(YdMoRe&$ni["B`l>cפRɀ 8ɨ}H˙e \TNl.\EGbi8$jjK!2$f͈/l",!Rn|ȗ hAPp \cFaEVa(/kO#6<ǽ=^ѣ "DH:wI*H I$}: ńh‚(9#HS;Mjl~N9kޠīzaPy24AJCvD[qMo2[b.3⥚ eSm/Mb9X SoTr *kG&|eGXO8_RAKUv4wيsۚzw!1hbC9}2pk"tCei Sfb/ËPDsM:ܼ)G e>X HŮ~ROm; ISjɊa)0u"Α}3m}9cs>;a(˒U!^˿|y f+DTLG=-` [ ^ ϫ*Vty=B|ʣvd}Dʟ,q1D>ɼ `ԶPm`X.3oLuǁٰsjz/X(1ԸKKMQ$؝$SagޮCEr"m5\=/8G-'?k܌zôJۡ~WDq3ԋ:#Qp]T_?><1o;:ΜG lvR쨨>]pƧyO?.SooڮllͻG czm7 -gJ 5ufNܣrޕp`KÆudϢ3@cgR ,WP*/y"g_ glqa>)0}hSANRg!hLsુh֖-iO/X*w%wgIқg`BK'T}%eCM3%Ť̚kX`v^ŋkӣ;TCۑEIyM!6s[f`;mռ~V]|쎘{8pL| Q&,%xHȜCquժXS=5t('YoX/{QDaDĭ$!^;Z+SZd>KSYG-bT_GʎK;CY:r8C?Nܣq/&t$;ZhP2ImNk}J@b;8wPp#H3>4\ߧ|gngQ?նDnPKClNxo?2tensorflow_federated/python/core/api/intrinsics.py[YoF~_Ѱ_$cD;Y( I4'E&L7d}O^QY#C,͐U_}ut){%*6w-{⋿/NToKeoE.oEκN*,. Og-t ,BBeOWO ;ٱX-[i" E)eE2Y5eLm2V~"mi7:~ڶ9}|&M_޲_L`Q?(YEFZt#b]dz`y/T aPUћAJYTE[ddɓb]BU`s.2MKgFk0BXͺk;%nnpRjYns}:}߀^-|Zg]%7^$J$hJ'!u+>7ԦBn 2Ot%RaaP ũˍU9P! " NۢS0+Zf9NhkoG'nm 0NA\zUx% {ހbZٜ^hM,@ @+, PHnxcPvljKC@S#nt Y$eh/G|j^u~ >*.chI!*0((kLvlPA1DpDq%i @QHPe8KkR*aBE ()>&>%);{@:fo۔<3>J>P#N U<)TDcyzj*#-ͩEꈐ@[.Bg6,"v?߹mSP(%Ĥ7Ix6?;-޽fzY-T6Erƒ \VS!6V JyQi'>(}ŠBTmxzw}]~g xo FFk]ֳq|zd`F =ZYo~Tp]V:utUU⾴Tbgc$dg͸N'oG=}tp>rr顑!m.qd@ҍjm,6 A|9'fCY P%CNjE[hWy[Svv+8tu_[,sRvvQO^j9W&hR1kJ}j6'rB_Sn>u#smijùNh(AdV";ՈH qZAgXuCEƢ"Oi_ٙBƍ6g)[%yZkttXOk3e>)S6,KW'Qr82#zϏ:I61 pJW ~:>֖ޞS4 ^&vu9'}D zhKCdɲ^\9{c>J*L|2qxWS,Cc2\>BEś#;ѹYKCOưbDlOݐȷ%ÇCGБ3yGGXFNTUqOҁJ>Q\,))-q[CJý\x+6GȺOL(p?%M ]1s>˜-Mth=NfHxY=rC:в0N 3"fjƑy"H=+.65z8iXԙTTܴyv0\0L|jNB@&G$cHR[hWU u]1\R9l|[1EX[:?̝CgĞGAW@KXcw B(FS</T^nN]!\G7ư86p RXP-'Ɋ8k"IL!'Spȵ셢y]6I+݌4N`b.آ3ִy V搠uf :T"m3AO/1-_G3/db5ٸҫAվ i_N>v񳖇Aĉ#=QoMcRÌ~Yît!2٫o}<)LN)[M]Fz VD:+efo+8`=Ő1+&ѽ*@; Y(wۖ W~Fd2ÃhH0G;L&^[Е7Owxwztu ^eANSnuP]7:h6 s/3 u 6j׺k{hN7߁8%!:To '#E0΀:ֽ+ oz#l~>cjyc9厗^{{ WX4E|4_85FAF0Vمs oio,1BZIJ Ltܖ6'yQ5Zuzfgi2)(S5Dz;ĒEV2c 6?ZvԃsHbX|>~ (1[P1]2wX`&@9\k 'eNY=|:{8= <cLŚRc̙.ؿˈe8l>;k;kqSZbGp7"?%H}| :#anvl9^H>p&m"3 w"̊o8 ƫЮVda>l ;M*|O$x^n0ZYFF Uvu"8&!x>z=cGUlXCU7;V}PuUUAOWsLX$Hu{ap3WkGx5 `BcNsx ZFȀtS:}(0LkQB;`p.9fXc)7WDLl[js1uƙ8(0]Nl??l;MIk&Z\}9z[$0*;!{kT|H;a S`  N5>GM PKClN*K02tensorflow_federated/python/core/api/placements.py}Sn0+ʥ9ͩhу*4KI@K+EʊKY4/ÙY,=9no|Aq@(P{  !`O d5ׁQjESe4nT?g'ІC#>Wh tVI+AaHLӳY$ oi*8^b#50Î*Qa(Fz{?'LE3eS,C?7s+`<`uR*HNj4@;P6Hw@'qL_.MJc8JQ yTl ~aWړДDl)rF2/ZVxD< b WK-ȸijԹPKClN8VYT4tensorflow_federated/python/core/api/typed_object.pySn0 +4li vW*6h%MG)ibm"# Xhs\]~2bPrڮ:= kt.. c8:(ԈSf:\%0ߘ&2t_*4RA{I*Q>9 xM3`1اCZe;%m~6T  %?d\҆2[եV&cZ밌t A_:; 5ފ8R!ꋓz6nqRz4>x){rwroH 9hjM֑Z8^Bxtf'oVk7Z[zHz?z)CL>0>?Nv0'4j8Gx 9] Ԣ#"ڄ ¶|͙.t̢Q ]3Hjv(tP!Tz+.aL< a]u, l`J9mOӛ< `IR8[lV4qH<:5W8ʲC\<\sLNm:A0FLGܚr% ["!xo#lIJic;ZrTڅ8v|X` A!J?HGhжe D!'fe(L՜<,Woc ) h1G V="?AJSN>}m|`; #'BLjqy;[SZz;^k75JDyxd](q.mWhߖ0bis\XfCe=e,YQwCMttqY409grn]u6EFUUkXZR%>YgcT%ˉ-0N~UKu'^ΰdBL#bIdutC V;4/.l`+%'0z~a lo[`Xysnʪ4轲qboT~-I-JPKClNS$y .tensorflow_federated/python/core/api/values.pyVM6W 6uj P[j4 '6TIj}CJ6^CGo v-wLK6޺+v*pE6 }%b5X&*[ ;w[nb+:ZπО6f璛@PiM):6hз®BB|0T]pUd[S8-gSV;>j@TkЬՁ#u`6#o7>8n zzHzɂ }.2`|.^d/hHt9@7s:ˈ Ԣ#W"ڂM|åymL[ jjzЫR*7J*]\\FFI[SK*k彼ŮVו^ݴh@On@6iڴuZI:RkokȶJϯUI MX\']~'U9)l*Q#±aa &JMd;u-,/s* uRFa1?+ffDZ~m=& \G6  N!aI I4½B *YY9}@: K cASR k =~pyRNsYOBqCz[Үe"۽<;T8B>K۩y2q[4L{r d2bm8g(2NB{oe,9m%AуqYHO^6ȏJPV*EB%F2~@Z%{ޒ[ Ξnn=04&h= a1 tC3F9G-(]L/+#v|6cu:[ClQN\:pQƕ"UkANէKηyJE"Ns7ʼn'vIv`?㜦xUYu:TRcA`QdXGt tؗICq198<|_9_k/^GPKClN1tensorflow_federated/python/core/impl/__init__.pyPKClN::tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6WɡNL5Ki&'$A hY} P2Ȏ ۯ1]vmbKIskVxYҤKc]::U@>y(MZQIOi2.3Qut+,MGX6:'aB9T-I>4ik%t!i2 қ0oV H8`YFJuWJLB:OV(X&N:zIC|\)l/M{S{z;)ri.IGj|04B9napOW@vUyӄ.A%٠(+P^D?3;ᮗ*.+/7>L{'CVA.Bǃ^X!zu_jAb|3-]vL?!2ﴖ]-.JU>vKh٭D#킷_Hјݢp%G4e }@%PKClNt`hqmDtensorflow_federated/python/core/impl/computation_building_blocks.py]F>E ~"?so%$)RKR3V߯$=qC"_UW<ݡ֛F<}Hq%^x)SY%LžٔU=<{(^eKx~\4b,D]VuViXуC Z,B~^]#B,.ϒb)MlEP$E D4nMqYf߽8"u-*}VX쀡e6FH֕gM TY뉨UsTYTbx@^I!\/]_.ۋW/މ7oų7_^]y z).^C!AVЍ`2C9NJU ;VUZuy-#vf5f @%϶Y4KgPكI B!@}->eEZL 5!^$~qsr+վWr>U#E] 94ΐ*+X"'ggR5:8jh`WzĻl r[<I-vcҊmt\eq؂~;&{#$,,4$S= lſ'KQ5n>0׊F+}gg\9 uʨ,dy1 AtOτ7K1(3wH4d/rFH![ȴUMN_TUY/. ,nkŸΓft&ԧI8IV6mVo|㳟$9lҏy4ru2F7 ЅXe) LH,Y@`*+wH)6eB#WlPϊG7OQSDlD-˗D-`M'NIraF]K.Ad(ahԈ,1cfM+d6[oiGo[*bu#|2騥$e;? APsPAs&@X2BPAKS%˦ECuբLceLZʍ=Wo-=yݓ'O0i*r[jEOV g8C(D.C4f*o}?O}wdaI1#?[ŋ~?E ʤp ^{_%Eh!R]ЁwhM^̴qh㉷غ A+жzsU5\#l:瘈?H`J1Fa2rhq^ITC7+w($7b~pbeXb3Wh!XwKt̲*TDF2Q i:{P1Z LeLxgH x]ezfՖs(-GSO5 dT%+v.F+zHGL܏c-΀TgF=gPԷ#o 밵 6xPoXˇxͶ'^$hP3#?/&ľ܎r4a%;."dПY' )ȱs/tj_npqǂKYv'Ew2 j.<@(Rl4%,)"1ԸoWg̪TzBÉQ2WKHl[pU Ll6眅Zc֏hFOtF̎Do4FOEyS8DW3z`ڰ#I{ϟ.9=*ijOZqÈ{ \x"\jrTg45Pv_c7g`錴-p 3RC' 3#?g׻5` t!^Ba qIw?wdFr`[v,r "VI)pki{&TLiBPsXhr 4!ӬtN[89GqED?ZqWz0m(kNoQҬZXz~m9,5, CrSţYrZ2nfj"Zy`Jz@:5-B=eR\qm[iPZe2PLRhWYhg(v0%KV( p"4kb ės#bN"[Z*rc-QVT-ΤKr:yl;WsZĭ2cW):uCqIlkKcpu(>1jfEc'By6&SO鬎0ǎb[:SM>|쑤WWul@~s]<WffN+N[9]qSzڍWc1cvիYCD+œq8&3.XF3 ηЎ߅(C=gZmvg[Ppoַ IX㏄'g^vvܪ X8,QoKyPGf O 7=i*m'|M mOOERSmY }_WmD;@vHd*s_9WC!g%3$_ cw olIJBԖko-Z3`~q+)j 9髩*P#6%Yw1-2e.hߪ,hR{>^<JSN9Y.e]Su%&4 tץhi7 )2~VdQXpIJOPR$ҩA*Vl93ZV[8KYs[[3jD)9ZVUk VUF"")z:V5"_'|*2Mogp6!k+yXtdF<ކg0mu,s'w@lS#1ž#ML1CRdCO<32\$*u,TvCkr`5'dO*P#m\n4HY޸[Kh(qԘlwhb=3Ru(9j)&%ֶ|7 ٹeKƇSKzCK/}&nC9?0r$ІfȿUw(ʣq2e!JiXh~ / 5}>?)_6/_Pi|o"E$fV?33mtZUfkRq:>~շFenI-j'ih30*DvT:} Q7H>EE>u,G FV0jLjf7t+&b>NĀÚ>|n^-PRm  ̍[ =!}Nr](NOtFdruOD0Js>{ӧY~T)kRZ3p:~}M^@GV5R-iEr{-3G-9l?rOc~Yp) OwRT*VLf=~Y(iQ!+;P[y-9slPy8*!_d):}SF(b<́b\ ۝0#rz"8[c mѤYD0iXj㣰A{&A1H g!t9BB3}(~7.-^b2+9c)s)q0i;'sr_m*yh)>>e<.b)H#Jv&\l?jBIӼ|n&:{Fwk6ւmlP`d鈅ڎFn|dA>NtVa|~Qr6DIw` \q4k ڭ-5kw[D>v:7nH0L_7#L<t'9 O{%`حl5 3|vja_˶xlj^4)I+ Z4ĝAHr6a[{rʭ;v :7%DpZ(&=/0_9FKvvN>+?  ˦u |c{tHz5a*o x%¾QUxלק@PЅ |y^%epWьd%9ğ3>S"k}?WW+t]1-tQV#?a~lsWJ,m5:Ĕ<өCaСBDk,NԳu'4b]m [6YMZ9g6g~Cwe|)`A;7EN)_}LtnP';/pYT+cI~5J7L9W`$^_W/+<w˞PQ+CARՔ6RA`8BvB=!癜+1O+Rf-Eӂ(^TQ^i6ZWfPh3O2MٟDIxg1K0:IgYTȉM"wM{M}_xĦ_[}va;b;x C%LĖ$,iۏXmt,TxwQh]̮;`][: di7N*W*R Z4؏zzzt"$2k=Hs$j@ZX^@$KRV'Nb-Pao6_$^dIڅ7sK31Xmxշ%̎SAzxʏ8fK%)^{%G&sl .Ět.ȋ+މ$C&xȩG"N)X`I*,r:eq'Jm(, Ν?7hT9R8q72 F[WHdˆ,Jikx_ hEP(x;b?ҷ$'ϼ9r9&N["Ӷ/Xf*[?r,cy aH%H[P}"'H h+y{|HrezSج̓o9N/ݮ2MMM{cxcŗ >2w[|),үgbDAÖr )K-Xbգëg9q߈:eirHM|rW抏 m1c0SkYK9F>\Yi܀>WXJiؙXDs5hl^4q4󉶅ߺѤĉ=0&1ݧԻob*N >T򇿟z໔i_#|f(S~3`i;KFǑ'y 9tensorflow_federated/python/core/impl/computation_impl.pyVKo6W (JS"@]'A."v'F2aTIʊwHɯq! 3|`/ưX",PYmns4a-It]I{pd4?M B+Kna`!ltۀ!,B"ځPuUKGh[7=р=#mF5C=`.?Km&ڔ7Ӵ7_J`FzkV!2)Y + ҝӞpkµ :#EkK}@b 9Lc#dkޥʆ^QTlZpɣh0i Jn.U:gzWÜ9PKC 1l08'w8N ? zij13MңW%۽#~0= k9 gB C+>(EᎺ S.%vDplJAé}?_%dMQE3J}P[}ӃWv{卟b/LK|}z<$`uC`p{gbŗy|ħc&Y=:LiTAzec~cV:&b~LK2vZ$ *lY9k^ ;Wi𝡋Mkfw?-*YZ>V+!hx|+ڋ-91)f~PEm՗oV¶kp -fd79Ίͨ>PKClN3H<tensorflow_federated/python/core/impl/computation_wrapper.py\moH_p>H0d|a}c" & "[/a7-k߯x{%z}:xީugvoޚtڙRnv6==S uHTVm(PSUp+F*`CEHn 6OiG ޹)mv5i_w<_X:[_uY#0T Yj;wkEO]f)nIwu]@Z=XtzK7棺x h|/w?߼}QY~ۻ[u/O~̔YkñC hJGc l[fMQmz3jޛ娣EmZ`*uuvŢ/A u}Q)Z)0$ B7mp%p|9Ͷ]{Pնw}gV+\O97An+meu_!]?vUV|Gcݎ)+u[3X2 V~Pb{ȪA&{#`XMlƆLyGNOi VR^! =.~WtE~ 85L'z=̕r6 ,#h< +պl۪.k!V=CA-3񴿙v,`[hQcX'0dTGGQ6 Q V?X2 ů"  2i$;w9!!zmRR&"g>'%~ꫲA|,YPDے[lݎ0H!t;q) \`و&b-^CV%g艿a ЯAo$N 3XKs:\*aXC$jXļ@L;M׵ݵm XD)`Qi2- Ŵ14NIs +WwO\3{R +θ\ &r0 Q(OpI^oR|G_}6"ьRЎC{po ,drR̜_HuETzUүF&c.ڮ0@nD' _7P}~uf 9F g}"`{hO5o){5&L on+3:uQF*_ʶ*E{wE0\ /N3BBS1bֽkp+`A5V\ H$w5U ȑ*H 18RszW @Dڹ O > ~qRq<#_7$2SԱ./X[`I`0\hvgN 3̀~ybQʬςqL^[C~Hf':M1+EOy.| EdjB46{|c6nR #}F_>E% _BM;I\)y 0N vz_ĕvoܛ>SX3Ē$X7}UI˸b TM{on[(:)9  e%꠻ Kgq5]/")#G: 5=$LMP(pCJWJs4Mň[gA<VϠhe7%)EGw&v ơu)y pτ+,Х@`덫ȸЋm߽wAIrƢ=nG !4 .4TcNsՔ6`v5"-jZkI 0>%OHMe=WSZC͇[lc!qGj p*jw#RtVe*o҅(qd(uXĽ#7*VBǭ4Xjt7Z4 _KŞgjTbb$7UEv+E|3$X-3IBwՖH&sZO mQsw iz7Ṇ_;30s4k8(B=窩. b=YP[]RSp\GEAc"l]|Q"c(NZ(YzL2Di6ƈnHmx-4[_Q\RHRMEݔgy^oKØ{ @&}' J}t*w =<$V_4!*e c7aL.I9<3vdk%SQ 'yl,AQ la<0oncx2l (b ~T$,eADom,V:*≠"o:M0 rm}O 1{'A2 su5"W$ \A0/PnZ?x<1'"c_SY Ohf6IsNsd$]]HOBI4xS~u19d?b~Nu2C~Z/7q;oM'l05ߔ }PH`]kh7?:?-< "G3Yc]т -%7%d%r+ƧdMVP&U2ryp!Pkc5͢I'+!O>qk&RX:1%>8`5C7BPK%r* eX$jkAY&5D*㒂Z=1vR>N^1ףȚ5 UX{'U G5n~bUpkXRxԤsqw@tVRd\G| C1K ]"t4'ļZ#~&BрAe?RtJKLn.ypiDs9 R؅(,M53J9֐vT rSWx+12ÜVFZڽx8R%%wS,[:K S4J dÝ?/VihLv/bo+jU2 pg+@xr˜Ҧ{5H~p,I?"-wu踏 ח; MOc{}M; oir.dh\C c~T%,0*$0gIi8ҏZ7a?$1s%Pm(ph'KB9 djE\)N^,8:"DBs%5m 8Ό?Lsx/ _$[M+@BvXOd"Uʵd ٯOwobJeė4ԜQIB$pq}!;jG_YTLC<46:t֛iZYT6.bw\<2So5BOov.IQ`*|nky8B=$zZIM"!5-u8m׳@WKn|$'] p1_m6=m$H:? =-T^~;"0-4nC*ݞҊ mn} ҈#ā+]6R!8-^-NXw;^:<> Lٖkrbsꦆ6҄f^G8=q4GF! 5 ɲ]cph0:Ly!Љ~a%'EifH#@RC*,;od,;f.5t<汩dQ8Q= ހ vhk| `#I ,r/+s[!URMp˷i?$M@b?$di~5QSijlel(PF`*84LD0Ț(s,{+ڸVpݥv4xGVrxk'0>C2רR{X/XF;@a>ƙazν"ՑH)᯿aJcgsqƔpӣ6^_!3;v#I4T7 |ژzԱ;Nxi$:`omkՎ5Vc(6+8kʀJL[FetL~Գ!mCWK(K2gNo0Lu?b#YRcj"iPKClNC55tensorflow_federated/python/core/impl/context_base.pyWr6+vCNs긗(343LND.)4$d}$E;Bv߾}^еiNV{Oo^{59*-Z7%QmqXhTG72?:mjzL.fdZԉju (%?x5jJ>lӁ AW0[>Gʇx<&*D[\qY߼Ba͗d߭uw" Tfd,2ƼV{]sr&Ge(v]ՇbqO z_ρu˚.nv~^ޮor~N ?4VGZxLHg~@nb@T:E^uѪ05ҡmT! (W>|!drqqs] u*=|zR,~Td @InMEMf#I)&?7--?7Xu*AL&z:d2yGlSWibRxw f 2_ՄIܱԂkḟ+'1U};L/w"kc|K7eᠬfZAm'P<1:+zdZ攵VA(Ngh.ڙ,XڀFq Ȃ^󦡒\T . ST xUY*2fhA5 ,:#s0p8T_2_j2\E@UT葖T>5 9m"Zu7TyD@QK;JotάL.ũ:V=s^,*+Uבx{u`6E*4dkAs1uqSPE4W7u M ǂJ>`״Ӈ 6r~]TG :q bQsy.OĞn|+_؛ _QeX@lSe>G#s7b2Lr22e pJ(1-fp0))P J ރj\Fҧ GVFxUGAm4bHhd1e|s I<87Bskp$儢ge_0^:n6f3m˒ޮ xStzT8\r3!i|#la 'h1;إcU.eyP խdo^Bl!^'¥'FЅx8!J‚ M_^Vie/an5̅pe=lMm_Og 2 CkJjQ11IOV:FLUgOOt:r;C a_SNdNf\Q mGR$,HxNXD8J)xxW]?p|xb\zig}7UHACbLVӮ>-d4֝jmۮpoIq8vm4 p* 1V$n663!sPv+Jt`q.Wm/q0PKClNx*;tensorflow_federated/python/core/impl/context_stack_base.pyUM6+jN2YjBD OhYF(5b{u0/(w3cLl++F)Z$$| 1sm(H~T#,Y,l9DQsEJ>0}D L#d䣳. &x4)Ɗygƺ!Q-cUi"DHFb*;L tŘ 1~Ws7_7@܍L`IUr]}FϕrP=(vn?7QU `< ;bPKClNqC];tensorflow_federated/python/core/impl/context_stack_impl.pyTMo8W 8JS+lEQ-l4ɒTm}dWYECbg̼ 5sr 3ZmVqkv"pM6lyv][YVVT7ov^M4jr:NtM3 F*&>TlIMY%2l3h¬ũp!؛~67nszO_,8ż׊'_[#aAkTbOƑ8]0 fF4a/>8nój!%4MK*z3_0>?߯iXKz|]*8=|*w3b $e#ױhKg+ yM+6LF:dWEɝ "$YRy6L=UJXܦUR턖UU/wz /9qfGeٴu\1 7 *jMF?NPie`x(>ZֱQQH`:80:bwFw2t(/qE'>;pJS)r-,cK>p,K J_ dz`>}oIL%MFuR:X ؔ!*E<[k1zz@7RPSϪI17k }tO3y N2zOG`w =1?3!ux Ӊh&s;~zyBnwLcnLctDLX>6qT8Qo:-:Fwu7C;ɪN Nc k,: 5R2PKClNuǡ4tensorflow_federated/python/core/impl/dtype_utils.pyuR0+F+Q[f"]%]ۄ;"eU-<3o< 6JF4'_rVmb; I[( C^R] 5/T| %1x -%FCGAo(Z^v $ӭD;mB'4'w;90|V(Ӭ Ү_MdRqkoaIGR8w E[g6ͤDG&2jud5%%7:4h4kZWK+:ḛ3 0RY.knh0VAQԽ ŤShUK~3X%bY]!ee9I`lI˾5f,ߥE(<,Þ,wlZG} f9eBjt9ԭT볅!VR J41|=PKClNp; Ftensorflow_federated/python/core/impl/federated_computation_context.pyVo6~_qpbciP`^` }RhHFRqHJb+:?X yw? Q^bkݛŰrXqi+kf*m""Cm$Ei2>qm.ycwDث*,4#0xmAHTUɌNح3@| jmJ3qYGWW.amtqUzIsa~3[,g"cQFhuV#fv4Bs<ﴰB1Q6X-֍DN0^LhrNe竿?aXgK|5_/|qXRk$őo(hKr g"% ̵DwiQJQ ˬ9r*F^2C9X nD!3yWk&'EViF4%h-Q%F.sb,Z iqWfd2¶/ucGˤcGVJXo=t˳ R=A Å9]3,{Y6V?3+2dX,9M:ؖX*B c<) nP?Jܫu GQ?Jө.!5􉻭5I&'Xy8:lbi" pC68 Tv)Ps |.pjَx_HhzEovQy.GcL\X≣RHD[aByLڔoQW>nƖ3qX"3F1'ŷd=e)]ng"%Ie=6h vS_: cߩ4TNf3nC 6t'i {xcT1`۞egPq1wN\H $PpVx}sf\Y){jCƪFg끞A7a'Vn5ǧuqEZ)>' gyQ?fHUcBKz8.f1b|-?]Y·t]..g`: P+F<#II:DSr+w' dh#l,2-W".ґ҅CRQ: (3z qdE|mBܱTKJ #syB.EQlCua.Yˬc. ou+ >vB`n$w0SI֍J0CqMh.'w[D&WA^EQ ~cmb3vSp÷ FS v4#K[n6’lz&t{a6GjPY UnE`Eꬰ a+,%pj6v♑PP=ɄZ F6qLq8 H$hK|+>WŽbź;-rQ#%y-_Ԫ,*ânH]n_3y >;`-^wlqNj Rp7.HY7gηfbԔZ _I`-'+Jgmp$2\dlDjOi/```!Ne&Õ^K-é,fA1H.74a7!'BNsLm^0$x;igi"S| * sovh3׵c#'"?nDR^mz)էu,4 c{e3 x6"W`U*L%9?:OatFoPKClNF5xol3tensorflow_federated/python/core/impl/func_utils.py=koɑ+$wGc{JD'$kmap&5 3`ի_3CS|}۪o6Q7Fݘ7ESoLfjݚL]umU7ӳށ] ߫]mo7S7yUoj/<~U6zʪU]cDިU^e>/ͶUyf[\[FZ>n amųg.ՄmZgieaF]^Z{R/BTU+ |Vۼ\'VNdyk#jY` @/]'W'W'F}7ׯ߫w߫޾~>QWorU 15HHG!!fk*_ºuF{S5&op7@/(E[ғҳ'O44w{`RrI;fB7'p uљL/[ÛV/{ށXNtL=fgJ2-Ja 5$0~**{we+,ݼIKUn"λ e_-XkuaPj-b !8Lp7 T;kUPo,Z!]עޟFHnSuջً{oم2;QoDH㿫 z{/;I²kSXy ևi: LcD?-4PB7`g@@b< (6u3{5EV@c;4J/yIU5)Hx!euQ-zK ݆$jP7aE˛NW{BhuWZmKuu2E5GK]ed]eo V09J]DvK\ 4ր*G( tvH(k2")bb^(H4mYj^#[MNR6}! UNgð\Ow ~ƌc7yyK+_MgLNkg sT7竻f{ `,,Q*ܞm < *olT ܡf"abllD瞔vh,eyLi-\ ϘfIE-5/_'; _3L ( Xza7 584,? I(Ox9u{NDh;/bV>{}F!->fxVN_ z.#}4돴{K6vM9S_FCJV׵v,zXTrO>g3q4-X]09QkbB ;4g%/E;‹@u}Vp.dn&"h+aҖ:Vd$T }ǟ`p'zA,{58g=DP 4;51Gv9NL"3# T*$uW3uPb.= 8 HX̏M3,pGsLY`mjHO1;V)Z78&"6a6 Fէ׹2{К#X3K-:NuI 3ܔ+7=LBC>Ur z8\[AaȖ  Y֚񖖽JMz:ۊm׬o#{h tΆs*h%,Q/s29' :6 w\ PpQƹF-o0g^5%+fXMRԠe`O8& 5Z ZeE!NY7hdxe =.2)_'>-0if1Ƣ(· 'i豝b!Dq_ÍsFo[U % cXށ.kfQEakW5"B;;8#ka0 MA+ShJ?V$$օ"9V/$jI,Y"u):nPR[EO624A`~XPEq.a'B)Ncki<rIaJ pf\( ،c(- T5L-}uGATDL` AEzүʮNIp)DOILi K>o 4/#3c '[ވ3"nᨷPXg F[VT/Q^Ԫ^MaGݛNʓ?C}NAxk?x,rSdovtCw5@7@:t ؃Vj+l}1AC֞>j+yِ `)cOq|IT2y@ ާ"4?|N) 1#9MElXv{?@3~d 99<!>hqveׁ>tb'* A!VJF'd[Q4D_Ic }z;Da}9, n%#tN5 3Ajk8F/kܘV>ZQ=eRBQlV)̄GkuǮmaWF. (q;q(&m!8". 2MvETG|o .{jN;nWM"x,ߚ`Lc{Dɕ[8~k%6Qtel0]/.FWj8 NkCC(cVJnz"3N%3 $Aަ%Ͱ~ԧȻ͌,rxXQ&8(e e8L fY[PV$OA׏aC^?8cǁlB>޶b2Lb/8?Ѫ?xT00>%4ӏb12!+V\C?Eހ6V !>H˙ˢ∯{J;5sBB IJRܱf`ԓO+ٲgZ#@-nq0O܌͜j1:z2НEg:>xodi7rmc~Z]P.m|xx+zpu zɀ9!q#$,Ҵ- aIp)⚆`%2UDĨ[9PX3|(l&l ^HYiPO|1f,p=ɘ5̯`0lň6x%Ѧ :u_"3s"+H=øi)D Rqsf 2OmZb|AQ:cMfqJ吓_=/<B&^_+Ym=򋊪-eu!Ç%'0{ ҏ3<葴[Ј8pDJ3sd585H |{<,JV>jGD㡆GT_|{fV]+>{uf!)QVh(`A/Wv,_T]qCYYO5˝k4;ԾnY}iz./ՋYo9ABG9DAa#V`$1 H}hpǾN?<6A(T[¤ή7۶.xD9y=kOc un8={:1šW0H7Aɥof=Udb(dv\[ƄTf'{(g{0Oc=]s2u59hfD|n{Qe~ Vn;@'F[O6 iGL5_8D gQ7al x@.:NLȆc:BS5o@ۃBu`\>@.# O8=5Nlrg?e'zK`Ic2F kf`/r69&w\nboxKm_DP{x>iCenI)a\j*TS8ز0+rq Й0FpBnGdNv#-^@б\`%_MC޻^}c_^00֤(ԗܸ*_" L ^(B'x}PDx]b>,<'r,/ `-x|^C52?UÑCxq# ®1hc 6ukzqLS7iSJ,!JqξE$€z<"X.B怀Q]Р@eo9E3.Қ o[ # Y~S#$|EFwؓ(/N.S2a'MGse&Q:euNzn!{ޫn~m-#;BG \KԼÓ ԋEVt qe?obyac Y i(QA /͵q"]kY.2>8/IUKhfGYOb`2hڪ%R7Lk!ޅ{=5~wN-EvRf!ifMH:ukW々qGKq#]{|\;Iad‘/ *-=X>R,}tru2ގ?i/ֳ3\k/O_J-,ηKU R?^ty;OSl=Ֆ|-r_fF :28b;{tÐ'wp|wZ<>vG u=Z{W#X<ª[ x3J3OBaT|ˉcq-\KozcSahy;[d-bGBO F4wSU|svڗrqՔ ؛[m 6IUAoF7cw7YX)s^w<eN>'iN)Lݘ:6x;IΗvID mӘx%xB**㇊H:G 5(Ӈɀ'tzΪtT?;{gaN=Liۿ4Kk>偏"-_< 8bPKClNʆD"{4tensorflow_federated/python/core/impl/graph_utils.py=ksƑ+&".lw)Tu{]ZvC 0x]ׯy EɛSu[wIzzzz=WjۻV}uuՕ.~[TkVgN[&R0J]*_D}&JyOOStʪU]DިE^hzժTj*k;FQF0~80kɧ8%l㪾ͧ;ͻ7cz۲Mj.aJW<EVUZomۉjENk Pi|ֵ zh+-'g ^>|8{wuR]|P_]|zV0~\Ո? #uD:@`Q1BJE>u]zmV^ feȗy֢'|m@ y͑8W]ҷꮉhJEvN\IU*5UKaY#ڻ~_Հ|[q)|=BW*۪*;miʕy&G5fwSnD Y:YꪭϔEzxOs{~繌%tniQVf°zӥ^W}FL/TӦUJ7$/:cU OLD'#\"8nT$PLYo- 6 >֌H&d"뻪7 @,jxbkX)6 ­lc igj; c'$py HB @Aʬ4l DtK!ɡTHmMw{ Tc%ptz)/G<2v2+=՘hmcǷw:/ 2K4Nk;1VLYڰ@)˜OXnCZo@'ķDeFTF_Z jH0QӾ֋ɄKʄ4`L3LI\[Ž4r3 &{ȻB9ѱCӊjKͦgF|Pǀ,tYFMFT`'7⃴`}РHJa3fZ5~H p*DU#zOBPwx`R:2pb&#&wO:$u;qZ17&G](p0 AӪEF"GwŰ y ayOK|ɀs[{3LQuê^ЌR*}f+wx<47u]'gJn$-3Hwix̋L{hN͘KZ,hϳ423cDx[ }O'NV}tø.w)bldjM*3v,?*̰F4?/'ި.E_p+NÝg9jo3i8iFsiF3ٴ@zict=x 劷k OX-9Su}_H7MLc6&E8<K/G1LLۭs?cJv3FM]f1>:aCff: W g3} gB4 !eu)Ǜ- Y N^03d;NQ ڟL76u, *k^Duc&o(t-ko ި<'cUBmu@^كF^ѼHF]ji1gjqUE2MM"n1 PhqUY?C%t+*B0_R/2C 9qv=@f^[X87CAO% uZgn42b03y)4ćRW__gq|g_F`^uE{  -b8kA74}Cmm cWЁy V%و(a4A/UM-+(/Z9:9;>Nw{MF 8;*%pkpt7*{ 1zHS@ Tm45q8KdHOtP0y$F +=][cg>ު"'.N;XѶfA=gV]C><!sUWF#vxhWoz&lz|\bQlh"ha/A-kTLi1v G2d+dk%aކ3{>C *fW:rVcAJ857Y WL#-1A,>ɔs2o#ƙ>:|s|xÛ70N\%踷IO?D;T/05(-$&E,9PrxxgY#f1!~Eʞ) shPb^5È[z`[qG yWhhhLͰH5dSӭN/'J3e&󤬉u8n?x%L+ jv!#O.)ysLHL‚4HdiX`>)W6([3"gh~0݊%#L@9Տ 9LH1 wWFZ@5w QPRu=2JnO0| n!h;yrNw; й:'hW꼄ÚqpS*o6;˴EU7^Zh$%x#ˍgv/$JhhXhOL@~)v*<,r]RC# VF {Qvцl99/5k bE**,qS%p[ 0eEXEe KY=)78>bX+8cvTrzFlܿz5?ql{ [7HMIvFS2qz.59Vtoz )9èsiCdkibT&[vԆ^r&plz㞨(l KOZ ۘ|f`qb~V\C=i'ۮ, L7..-n Y^gP(?A e A~J_l$#ـ=@1z/= {D #PۙEt zMӰJm]eDm,!"<&ܑÎy6܌%Zw LBYL!Ռfx|ŇA [ǩZI9I!X҆|,(ŌGvVro"_\3CLi J-wF?:o}œqYܗp"P[x # ;gJ]bod%Q:tN!:AsENfK@F( D-LC w86YU0lq/)W#5x p@UzD_֥p*X.DÙHLchB)۵&DZ+1@e )tz^MO8I\~n]7e&[90s:g͡9$9ay/07%^^/`ul<e|H؊O@ k{Ig&G!6AgGǝA!pxt=g}JC,x'+D $@#B"QdaˎY)cϳ uHtcFIgQzxCg-<$T !ᏆL6𱓩v;ٍl؀Ʈ3>2|F9S@n쥶Uzޅr{ .~/?r33#'5cC=v*JT3I5s3d8.t'2Bә})%##( coִG!VQhƈmpÂ/xl3/>.[d34i״4wsxYsI@{N0s 8钉 d83USשlS Qernņtxv: t;`+1pz[xq&0Fwwo"6/>k뭉)w/ړ ϫc, s&G( ߕ3MOAi)oM~ݘ(}w T|*b|Ztm}+A/Y6HLG1 Qhe;bh3ʫU]m&UtB+/33e]JNߒwOd%ȠK{"0 <_w=8|B6a'w&EIDzgoޠ9.ĈR lϿLBD6vhF=pEݿW[s 6f'ij0".P:rR>`ni186Qݧ+Z{ى*r:Snpݟ d,A; ۷goh#ϿD/vZ5d7IG!+"0ֻm>ūp 0 [ @ާV}v!5wazS %lG ~ ̓ t&$K[u lI0g%~LŘ`g1~qx9}ґnd[H7tzH |i'j6:Mو\W֛k5xH6lnp$6S,Y?V@sG(C9~0| f`KM7o۔1LNB6^V8Z0SfG^lan=7 sNIRLc#еT/?"k5ib}R< @ϔvڬFʦ|0pt>Qn[?ܙ B6' 6jAůUJ [9^)Q`CP~ptΘczwNC~۪ -`oȶOV+.6,J;#ci>@- YLӫWWK"9|GétSul&ZKm-bjwmd9󆀜S95czG\tBF+ ox4B!Y=| \&gW<) i֊ئWJ&UL*QqϊsCg6[|lq|J+Euj8Ma]4 ,DfbOӿ3掲?S(~`, f4~OWfU&[||9俐p7$_q^8%y@[}#QepP4Uv'4-WSXF}c`0P1Gb lUL1>0_HGn~OvAأ)ညtsb2h‹/o=:~βQ9Thҩ3ţx6BсEvһ&2mcPZ><$ݯGjg7ӑ#7-1-tة;牺0=,: A2u)s-ٕ(UE2hEs`lY }x5jyj/Gutm6äH@5 Txm_AF)/.(>E7bs@K S4\cHk 6r,oMsUǪ.;T3pSDAk)z6zgȵQ($b~`7S7Оd s)Qm3@Oƺc,Gl/!7E1j$r캌T6n *FC#v- %~mS Y;bЭ0MwB<{p^O-GGk.B5@oˠ̓ I'5Xi-<7_w A>rg &H,t9I6/ҙ'zyFvOt?؊b.ЯZH 0(xp)0t`_FN1:-#y;PH`i=&u3vM68umZu#TȞ b{7{5>]E6:ÀyA&A Z(kBFH{&(5`R6у%ס+_ժ͗ܣ -k@f7@YOS{#^ܸ7D W xFOoMGd,_j%IS\ M*?C/*nPY ,tOzЀeQXqm.7=`f$'-0Xde5%>cCSDvA~ mv~?!O<*kl.eM!p󾪤?vs_W> ]bǛ^u=ECoP=r+Px@.0$,56oXtblW$YJV$zֈsEmmf^Eߒ2^[-RC]xV7\vB՘XM ]3-Ӣ vΌOwN$d4k>S] Wddcdzey-r"+Y[(H`OH)6v']fcؗqtY͖;;4=d6b[ުW?oo ݢb[8۫Mx}\"^ȋsy51ʾΚw2C^a%cPvݦ@M9(iZ"q*MINkXPXM F9[PPKClNkY|v9tensorflow_federated/python/core/impl/intrinsic_bodies.pyXao6_A$_AQ[xk0V2u̖[t 2m$$UwGʲ$+]'ÇǻG]owܼC#!˔wؓ;fj&^wB*wٻ$<'_!T\d}E8|t1 )=LhR(\ OaO15E'f1#{wfh%Xi )צ>PmN|x}]jغBn;R]O?]W,)E$Tp k]́PLW@3{"$[Hx/!JlJ(kB7uxь\x ,.[o,?͖!4 h6a0¯;M?ӱC aOD@c`A`#,!ox ʶ2`9$g2 wS5$J!TEۃ*#&bL&75&)ccܑ5- k@erg e2.I8oonswC@PM@ P7TC!'(R]bkɚ J2 JHS42\*:cOCRUνmQUvwبkiTLgo!.OHp NQdfHLlU=AF%v]0<19h iٌEsLai/G410@̣+tXYbsئǬ+7fU+{,onp'oHkjIz&gWx"|̧tT^di{!a鄷W˲04>^Oŋrߺ:a;]cED^NW7M75-*G2ϲp iphO#hEĔibt^AD(rrWVߩ6Jy8B} `~X!%69$8cD ٕaW RU,񍐅3|AMSOXV,"1 "1`F"y?K۲U=w^AjOm[esr6%ٖ Sm ڙ|"^&ǝIcXN~PKClN4TPrdF7tensorflow_federated/python/core/impl/intrinsic_defs.py[msF_1| ٭Ky.3e,(0 Ck1h&~O ,,7,Ni\eŷϿw•ӷao\^&bg8UoN55\d4H<G(SđxVtiIOs"3+  B~e ~N|)6Ab4?,u˘`ʲgͦ18]> Jbt6b3BH,'6!Ӯ<$#`𦳂 K ]ZVڋNi yO8z3{'U^Ϯu_u{u^dHTƾ`P[ŷSQZ.I6pY@n1KY`%J]-_a{waob x2Bo'uOYH3U^4`y䥰b$FWWٳϿ{R sM<)1N\0$Bl b*XlU_*Qqm.lr(˾C`T> )zc`b%&ǔX.9JһsŪIE1S(dž&Icīlk,n:XUֶ 2ڻڶww}YpS%ܺSso^Z{u-ӕP0OlZ@iESŧ\e˔r?yB^ &d R+hKuXc׉%K Y`WG ,ek^eRG5*KTC]y,R/ݖԨ:}."C\bϚS [x\^ǜ13H<-j.KVq2YFEVB@kӡ(=tb*yć p3/m"mOKgI^}g+HA62E>X#&GT ςogtk"e[JVxܷi 慱5 EJt菖wέ=M&dbɸ\p Bqr=WRD ʐ{FHBLG)UlW='q>d!0 OXi1V P܁A|"Drve4Tbp=5HK/3e ZGSEH)zW-s\|n:z9r&m .&pbh88:I(kQbg#ivS/Rlp8뎺)TՐWvkz"/a-+GV|#[T da'z@BEa])?t1bJu0"`Ԟj"]iK\z"CnnwyJ1Z; ]lƺ !}mi=Y=2bQE͜ʦR܍;(E@҉x㬲L㎱x𥜥/ڢ񁹧>GD )qLvG]əm@]~&0C]&<˷ L"E#/ѯһdp;<ًyކ9@I|h,+X EjJa,Ώ[гUFԀII5FrL.|4pwề{5IGS-Bz z8it":ftkIcK R胼nZe;UE#H9Pt.@%^cacX* b눯926ďM/g |#m.L^W(o5Z%iܶRLYL*4q'o1xnO87+:- ;H]p?o#Xl=6fX︝^ϩ;co3itkkMs4ɂwNMGp+B,jUde1&0k*[_-fq1=g=mMh͊dN-i!n*]½q|EřX)ߢFr ڲg /n܁(0t\j,fd@r,GR VD]z4U_|lG=9wz{ -~׊u@lMو{0l %aR=$ .۵|\uQ7I7߱2U}jE7-ۉ$ 5S? $NnYJ|rv0=ӫD7%b_TnviHרf¨~li{ hfcI]{qaʶLjb_b2i!]_4-`+C;* =mgca&_/JdΡHKg?1zUܩb̓\K÷%R*c%[$Pȍ\9e%?y= *!AEwݱE Eq51DXajD\(ŊwqeřxC) ҳYB-SI8gNBv&qɷ>+nӷJzsi8z{vRIY"6q岅 ^).R4/{꺖$_:R>(982R(܄3NX1ܢU)08B'4Rh_5 Qſ?~[އ7Ggяc\닟U׫!^//aX2=Yj:灤kM\Q] |!k#GsDɵez|؟jI4~Ӹڊ_B~t'"EmL%y,EeEzܥ86H/,bKEwSƲ-[@ڐN|/V4Ct3X,VJTAJd{y&^|ߛ (}dWPɞS]A.| /bKӼq--іʫtay?@,SU$]~?2<+XM~d򈾔Wwp~P2j*߹l]Ӊ{Yt^ͤug‰w<>pwn}>=dxy6?= g'm_:=8aVj6Z9P H޽${#v$- sG*CH#he*Rz!;jQg!jGZiQnbߌþPw )SY};ۗ //KPKClN9Bs:tensorflow_federated/python/core/impl/intrinsic_factory.py]moH_|tPs8f45.kl%a-%L&iE;~U曢8-uWWWUEsv;"vOc6l&З\މ<K6;_ֳϞ c؃Y&͘}2t|X鯎F ;?fc8@ q_lDo-։hM`j"0Z1sE/ۭʼn[˗뗮pv:=i'aȤGHbx |l||Z .t"[Y询-,0" J؃Mǎ&W<:_f4cL./'糳dofg;691 +XF| $L:(GD] Q``+@ʱa_:klBnO3@u6N#)ф`^!筏qUeY)[@ٳ7l>_Q,|{e"]\]7l<8xKB狵݇( 2ˈc1Oٶgߛ"=m8Gqhy}R~;HL؟Dr[l1/xi0"v%h|}WNԼH|a}YJuy}3+`1Z4qN?{Z3aS&?'hcWq8}:r$kAxq1:. {/f( bĎ-uw%߂G0 vvk!%8>pD0j\Tb6pqTٚ}F'r*:H5E8Foaؠ֩Bpּ0)NM*œ!­W-#R1qێ7 ߎF5#I&3P;ح-!x!(,=(lNQòmtL0N q tkù`%=]JV"g^95g{{_(5ʜVX4\$a~8հ~?7@]=HIfSJS[Tgfjrì^9].^t||rO wAdf_tDtfyl%n m-RאP_@׵&QӱͱHwCgqā*8i,5*g-)D`T+O,̝a4|?bjYL,n%ua 3-:2dBNgRw$:ACMIfVL4JYoyh'2BåuxoXR/& 249K8ojwo~}[]a @MK F/ѰQnv\i% ֬&oޱ ~rjzyz9f3x4.yr~b+0y:/ʮv&Xn qGH-ذ#6 pwPcfu+fIe\ 'W$'SiΞB\ܺ\(9 sNF.BRȎ*g?a'Y\x0wu!@! αU.tsO'0Z7Ʌ6): B&z6HUO Z]w.s7N%frXxEA ɍS(7(F7Kк]h*39y+H+ w$KB0< h-( tR5/qi_B|i0?LǏ~<*{6VP@J;!?/Rm+o(Sxx)\ s\(55pF+ VIlr#;&)HQ0?F*ֈ`eIVݦ'N)m#M)bP%ގ FUf/ӳ#\ Orj-[s^xx4vQ Q4k N+CvE]. ou] M#qWz.YZwT2]jO\$~aKBꮿV$q[rbxrBXFj.6Qc'g`(B`\%]8b!*8#})=8HT,67͚7ȡXE23d]Kw|y1y{:̘#W\ꜧ.Jש8֍UK7 +³E &JO/>|>y@#~W^GÄ eR ӳPYQ& .~OACJ"/h 0e9z\?Gs8MbIҗd3RJlk@/U([JZ1(N$iZ)f9d֜V5D>*CV@s#,E] P4 )"Äi%L0#iGI{KH%ԵU]]cvnXf޶4h5nO׮W)FwMFk!yujCb$up$=J|?}nD)kEFg|EQ[q7.=;ت` ݨa75I<O R ^BY*MI,DhܜC!E^AيF!lC׈LEA|M\OC mXCd%Ԭ YdHOܯ&v~^?z~S= LD[h!6?9ҝ^۪ao7em%T>tBFjJ~,uiFb@ ]&^ :ಖ܆ʜTAArjdov :Yu&` |` G|Bd݀7O> qײdZ,'&f>bv|r-57CIBn3j}I0m/l9xʌ?"Q8!ʩd4La -/lV1)"JIUW 5azLJO^?9D?`Fpd>]:;=.I$ *m}@F5L!nF?(閘Z<5oxUE'6+EkV:Epa[E;~)f]))7Xu߃ͶASpySI TXCqFlӯ :R|懏-Ȏ~r_N.{B3-[B[3g8̌?MO{5T_iCD-Fvi*L1uںFVSVyRnɬ\.'D=8(ۄ|5k BX rಱ-7H"2jC~(}kiJ4AV *fuʲΓ@F&ң{3[aIm15BjԹ. $D6{w CjRc'M- gCƪXo,y B(=T S\W5vaIpWm$̓ 3!|EmSW0Fgo S lyRYh 0P  - ֕@he[N՜kWl//.ڶeܳeJ/\\,cs-+44MZxM ͊4FnBC0-H(+ayc#ч0|8 [9N[XD4$0_x>|F;_SH^2xWkǟH #i RL(EAkE-IԨ¸4DoE( ˭y$ڊJF}[ɐ{PHK# è-JeecY+mFUQl%n#|MklGjX]2VɬctȮ 7HqnØgB=FވjEFfyIw637Y d ˗p^dDCSXi^q˫' x?UF;.ܳr7-ld1t:`Y#6`?q nw5R^h鲣:aV=_8"|oaknܱR@U.qCzd2ýgrx>t?CB^1_D}&x9oXE8=s/aUc~7u_]wy7=04:赼KtBK/KCI ~O$0nL u@ PKClN, ;tensorflow_federated/python/core/impl/placement_literals.py}U]o8}ϯIKeQe[ЎF3$&x7ہaW hy~TӢ\Yi4(P-=kfyAƮ6It]Уȁi#a'KÚk-1=smt\Q:jhv$pPCKQqs^[r+di+ʻiI >ja oc1r&̫M./4h<bIV[#4b]dVlKJ+5*'xɨ2RcX4E1b:69}N<h2>1h8L8r7{~.pIqBRAXqɲa%Rmj¸j+R|X\Z`-Z2ޕ+u[&8FSB O!Z)˖m42Җ¨ kBlBZܹ(ut/MDUC+A>MIoR VU;rUJZ"G.bsAgYjdk OE ɵAA#Nqx1vZk]+y3͑/y%{rPy9OW,{RϯwAlv(rJxt{ɋX%x! W̬Ά /bIoq92\oލQr،~ODZǓ21x_B`˃0WJB2]O/|?ϣ[ww>Dl`5M"t6fEwh̪VԵXIEKgtOG{6qJg^ -M)=sI Y;}r{W~?PKClN(")q;tensorflow_federated/python/core/impl/reference_executor.py=ksHr+v?XۛRJ),Tي$֞NEA$H!"Jӏyc -g7j0ӯi|/զHwxտ]".̋QMIWT( ދ : #ߌOIQy&^G/|'_}7WboDWb]&"-,]$"y$J"I"ꎆ@ V1 D\sWU~x||b6ʋ nY |IY":-`I| h.G" rDH4DϪǸH4-"]Wz0i+wG;񧣋Ӌ?]Ϗ>\\7?_oч_~x3 IVHHdDHYd +y"CRd0JeZj,eZ=M*D *)^̒"LɺʋhoW^MItAsčڌW,1"qZa{'XuVJʪ$ bd`q1وUm"-aJTS'u VRwz1'؏;Twq%uVA%L ^;ѿit*׋ =Ʀ6pXd-'^ ͊|)ٺZx o|6濛MӇWlcǓ|HQ'J=*' DK`R-w@Ei u&kgJjE H,-lHo58˳2_j |f\m`%>O*4o r{ERYD3a]aEP*Y#le17[2F׽F9迯}B(" D#4އm&xߕ;/E@XdMygDإ,Q|?%=$?1(3@G g E%Ȼp<0z4 >q:C 잖M(Rv yd DM1A0 `д\OF$yۇ:I4$RҮqs=(*Dh >}nv%ILV_/R5J81:@ П IsP Ҭ["] Nɇ#taǗ\HYD:}FZ1/O\ <[sF+VJ 5lXd]4 6tb-=1HY hsQ́Yb7=vCf)d=*dlj>R$XfJѢh0g#։aMZa/@:nAK#`XLjA`-݅RL`dDsS`⋛F:r3"f8Ƌ grsYGn"6@*T#lH,Vk$k YL,,(1ArjƕiSU"lRMnu?$4fom礌/Ohw%(+&f~3,Z"m6 jvvre"g`&X}=MM5>(,|_eB4$`oR:@vS.{8s]l$!_bcH)a|OzNx/^LbM֞8&ϜXg$e%<$U^1rR MBFV)ZƁآ6O6`8h@I|ޏĘFQ%qT mvc _d[~Z$>8@|tG#Hh᩷Zas䝦W yp6':6񯮵fi$6#0=ĉ$0EHn& aJ`NW4Dn v2¼נVr_|r2طk0!з(9KsG$~b֖ߚ9@!vr5jC J[c]QKjgM#(^a~Pc\x 62%A|8z᫙тx'rmBAE85KΊ|%oi`+J@sKP46 ~Y]Cg$H[i|Mk2m:'9Z$VKIAN zOӒ aj"w<Ч9=H $c3;ܠHf1{f'qi щ[-ӑZH#'@[Aoٙ Zu$L=?zZg/zn`:N1Ga)^y&-wQ>;9_q o&-3Oyќ86D7-?2"ZL=D3sTрJP gZ}w 34bG.?OBqMm_FC=ma4z)YW}udV]Ԥ>L@˒5!.100pz4N#m#NC3nj.!1e^)v?i)M07&.,܃9v?GWRD8 tGGTc!%TQQۨfܔcRv[7'#Py*Ē3ٚXroPA5>pCi8tq7-Eq #LnŘVLwKMֶW$1 H$[E\,g> ) -r<ױB RRe|QɌAЦ5+jW9Mb"hL[IicTΤX r6&&.FxL@dp Sv1*(%9o^1ra 0J zh)eP> 0}@kOu Z87.)9osK :9VrNЉ07k@J'iuVb։kvaէrWobr#:C6<4i>jSy(t^'1ILT)Ҷrѡ=un:(?ZW9Ƽ:rK@5 T%mj+Px{DWL 794寒]$##|JF֩gV&4 ؄ȷ8i @q1g`yU2NIP l*1ivm#tWJ^$9<+ftiY5}ZEreC:s*!Bɣ̩`JB׌p8?S%,>y^Z x7ir8=(%QY3Ln-|b53Yc)3W꨷M]O8gƶpތk9G nxWqx θFөJFQ"U58.ei|ը-C"yH4@-҇ VW ]BaQEP_v yeAhqq$߫W?;╏xXkX${H`c[=z>UE2_G=HO˻>8}0ǣ7G@o0-Ňh`cĚ\xN]8KCPuʴܩOI Ѱ^$L]cSHIL83fѫ<Ǵ ++ *㦙'z5+ x*XmyA(&\֧i^/Pǧ̔S5~EP\a8 gq- g<ƕ]b0Q 'b 7"4fAP3 mYjb~`̼WS s$70GYk)+A B !gQ#$(؆0i86AY|ᛶ-DgRIӔ:5w\GuuX|'|scIת;?a5M e1Y-rHZ;Z5GٻߊHHu]hǵ~qA #M#"~n5i%}S߾gv݋̨GE7Q"AJ3eC݇,ќ0S-پ'uQP)'9hYoQ3*Vi3֙0>m]Iȗu i})dXif(vfj5y{~'0NVmgV}mPJ-RuY<7SidydAd lmU]O%x:Qz}k85vdnF7ajz;mt{o1iltĥLy'/lEmTI("lMzXa_[Z"Ic!-vfN~+ImjP0o݂6 V_;3Lޠ"4D Q+U o,FW:4aLo? @N_LL>nh ޅQ]z<ܰ3z'?9V.*nA̱Q chcve:^1 bTA=R9k-6tU;\jcp'ֽ2 8&֪[.͇f`cW}%,MZUԏrfgِzUYpV_{kTӰ͵Xww"TSK3ͷGnfj/@qT4-z܀]1]kvZ{Wȁ狳-<9$&`-VDr#5}it_ۦs@oO :5TԽn`hLR]Biwb4(g_0Z=6Vz$?NxwmT?PH|D|A T:^# ~7vpTG׹jK{a>5Bi)dQLF=m9-J#=I~+1C5 ؟*G}OSL[lg GuL L( Y--subo♬7Gw6R*vc!(}He(&a6c,j@ux$|0YHWͳ  ][ ZTyx FCdKL2ik=mN[3Wy9wn8=x$.UMKQXVT?puƱt*U׵Kc#9ߎt/x72Iv_:D6,fWPiԀph9u ¬ `-h,8ಚ3ؖ].;. #x7N7هٗj|d3GK.ئ>eVMT^|?EkrӇ:GD[cTwށJRz<,ka k{svW_7R63sF.^A_q᷵ZkQX 6ZEDhce3 N}۞_z ^t=OG+ѦOftr"o 3!vwb5gg'ѷNcǁɀ_EWG=^y桇0--+^ua~mQ=5634ﶪ얔7,QlEI2{Ld!hcEvc`Q*nBHFdAbpbYHS ZcL&Xzo:5_;ZOnOo>6~j:egͩ[}?dTrgG ; x0B>H Pc r@ff]L+9,;Į<T^؎fw 9;tuC暼' w\iBEdMe"ɥР[\mv͒l =BG5r 0mNpb]c_塷L _ 5&@K)IC'5/GM;ByNwR{u^m7nZt۴yluMH1(7ܐ(ye7oIr]3nvySSo-t\N[awJT{KHйn8ahOcԮ4uL;>6MJk 72oPKClNpCtensorflow_federated/python/core/impl/tensorflow_deserialization.pyX]o:}&_ۧ\M`&mqdZl"%);ngEj|932֋wo\,J,UReWX~k&sNoChQ5+sYYM)EoŔ65Kg?`jQȃ(SPtzNT.Eb*ײLkc%0Cը0k/[blOHg}u~$[y͟W7w7bT9akm d cX5o^p&{iy׵E5N7 ^gGqx&>,ovOKe[<quw}GKz.bcse~)*=*52 3 WDg:_妖%6fl wDleZr]h/=9q*}:G0R2_I_M&w˛K`a?*I5Xy X0+J M\I*7[(^zIEo^T!,'_ =SJ= Ujw&\%]PrrwNfY]&|2oq'Qgc2X/ڙЊkRӔ+KO&kDZj7iuͬ%ƛhU3LU~G 9N HzTbƷ*yVEV|cek4<* LlG,DyI$<7_7{*W ͗$u :'#2HG:aPD9#_E+gФUR7˧81]~1vBR,<3]VC(M`J( s{wy4]G]2N1&aȐ9;:Ug㌧DPP"#zlD+ &1Q`ST\MHRTsչ>w٘%K!1נݗ)`>J]k)N4/H.8!zA<QCIvSet?NP_ ّT [E-5)9cj+ATh>/q 5%Kqloqݶsho J ,z :)A2ЂCcaߌ/?X5O+3 *{qE 02pqkN"$߾G/'f?#ʢp_.Flv-,(B6{Po]r9s@4xN>cV,;a#Lfl:;`',oz>[t>K6^M_TGD̈́)^![Bdvuׂ0 a0i1[RnV ;Y3% VK+r \> +7,Ws\!7FcKF_|79I7h/A cKjS]3Lۼq.e7|#0|ŬahȆx2oPw7Y[d˘rN^('{(EP5/ˀZځo46ЅZǚT6S^/ ږl]>r#umكTK _iu$gM;Z@ǒ>̀=[c}w6@[_]< yV]?ݵV.-x)pnh ;,h*aJT]v 6łm)Lq}/qqO-뽷K' +lc6K@c,uQo'?O)F - KFEIxdg}k>8i@^ZRR /W(xI( wz9ƙ$X d>94' 3G(i2u:w@XbljV@Tp҇\{W-7]iuʐ+p^ 0L!1ڜw#x No2$> /=B+׊wD2qCz!uV}7ooFoOONO^%lTpj>sE[BWuwD)C7g1{*q쎔XlBiAsNLJSiߡvC1~jpɇ2t9bTL_ hiF6د[6~>?Fܖa1X>VУ$LQhF"3f>T^c IP +ÿ ۘ63Q^<]hROٰdaf 3FFTV'~/tٱG=M82ʻSRܗ|!$BY+=mQ8/S=n$K[&4\ -o}n#]ˉÍnE#)\'i53AJo(+?T- vI2q$ضqlRB/i) L3-3XUAÔ7 'f0;켌5=!q^K9PAQ{B;-+ 0|t6n\<4@w  "x#Y`,B,"N+3qEtWn؊-v9ڔƐeK.5nຌpNśL@UW7'Wtb]./n^D'(!xiy'j.`e]K]/ wuHT?k_&^Om{+CBG%Z6UC0nh3$Ƞ kG GOIK/KZ{ǧɱX)F0 @Q@51 l?d}ZjSbK>cJqQw /^.~ؾ p8:3cBEM>Ӑ1tg, }oBBϺ߃^ROb5]d^C٧†lݠL !8mz8 LxyV*xEvX[H4!@c@~$d),^^=V^/ M6]/c8ɷKB]ϦXйt/Ã)PKClNIon?tensorflow_federated/python/core/impl/tf_computation_context.pyUo6~_qp^@S>  sMXN2QSߑ#i"~A XT#xǟr6huktEO;|]dAUް-:YO':,f?3G0C4>V(wZIS!D2s[Lq ) Qw}uu8 ֵWz@f7F?rcAܲL-`!H6o:HR+ONm{:I=pb z.:gO_6ayz_nʻna 9 c~BI[# h wXFUi{"pCW>TӳY+oUd,Qp{42T&>RHX(;'m+]7X>̒e{w(Dഎ@n՜21_A/; 񭩂,K  =Pdע9Ey.L(ia{r[I*VzNoQWQrV\GVFA!dYUZroj9ƺ4ϧڋtyyl/䛱/][S;5^W/F¾j:߫jTk50V-MQTj)L^εښ枖 fMOZϩ!i6~nͪzmOo~㇛_֪Z55uW3@ȷU5|T6)Wceek P6MB-l:~蕗Սy^\ߌ_oէOWnQ?w?p}{^]}?Z2z@ vubFa_WZG]X0k }rlŋ+xfV51$/ yiai1uVх)ue]dl֓ lU& ǾԦlr ߚ`ѐv,A;&KfQf*'uQ,rZ;iMc4{`н? ƽ$m[ƞ Ƭ5b2+󠕍5,g?1kS` rMeX!G@n SPy Q{_Do6E>'Mcq1M"z(]5|/ ނ?N186`<$z)8EAF^67 lM^kԉ 9q],32nA{_:o]MW^?)D V #^t! ȇF6<A@Ma91%saf关]bxK\11>1}xFӱUt9%ݔ@"iALj 0?]0)"8\wHy,zeQ;ٝKX` 7T&Qd/ j!~@,T)uMdN| ~c<3SY`i+ێ)tj Ǵ?Afu9m@T1" T}++ćOh d!j{X c]W5H.tFDX}[Wځ/c|kp d M5;Ɨrl0)`-wa܋{GADHƹYSM\T {oȶ"HѺzs2 abZ*:X;/ {.<]$)_yޟ?S૷ƫ2F}7T$|Fv܃3C/[8LChލ3& eNj}~1 y CTzq48, y3=D%)vT pkZ` |[\"3"0y S@$tk%ϕZW 1Mtݬ ,F;sA#t,FHZ֭)]~^{![C#6 vT wcՀ:KgF{#_ 7֧]c!&lc6|:r˱(*t "51.s~?~|rja阅;p{KӵOv.AM6U )*`8P xOwɱd7 $^|ܺ! Ibذ5Xo 3} J.O[Lh?hʔRq 2a$dks TGRS yAUwT(KHR<7EEt VkZ"dK_r[-m ; }tCa !(Ëۮy6[۰p{ѻ8/:VKCd$>Y8iu}.]_/q= tJ2ĚUcduDȣV%6.uـ@_PM HJ9V$w7 w#\`/ZBViRGl^_ )aNҳ뺚Tp c]ʡU$/zHXk/lZi,ʒ,'>uAdvvQhޝw48x,y,? JSOZ e>7ḣ ]>,rjf0Kλ٦jp(殫G8:ܛ .$-~Zif+ܙ5 \yݥ}k 7fJ2lG=1/E\j)V .vȲ*ߎOOeV:Q~]?f`[&K M! = ٥C BsAYIJ"{N5ERAg _aXg,#Rb1PAh! %[B K-؝ያ[&tĖ8q(! C\Ơ Chl!h$/ `4X2Xv3QS@aD#\>s`@ IJoi[b]{V:g_?p>Z.oKYLSinYG+ya~m0gfWjځ3M1́0ťMiP)obYU eJmv5St$>㶛%]P^l:2de@A}QIC9]J0l3βjSMsk;e=߸9mW&^n ^}h)Y0adTx -D/}s69`Q:bLHbN &tUT3dHp< 5'KeIdP?a)hIȌ al,zPX3]\Ҝ[ $4w'#E'rf":]A_oH( v9iN2٨rXٟ,;\8Qmuٷ|ߏ./a-GBohK8cqy]+)Xp)-n/ ihC%XtxNF\mQ͝ ^oAcH,3fR-ffIT2Nu$>٦At˯1pj!Y\=f Qg ~4b":A7%XlɕK&z^ :^ )f $(jנ:%Oz0V/}BXN(J`1x=ž` vl R0$n!_hMZr9۰c[W ڼYX2E˺,9bg}*FﰥI%B;[ݯ DN%[2:*|̜+7Q̀gQ v\dN]vI LXEi& 5ԙjx̩$J֞'} Ng1y*X )L883XuH4CJ_KFDCn%AElG z#Gcid6l%WzvPk1@%i؋< @,<󱄛AI@_CTAw}!|H"h-}2W{lЮ\_B{aMBNqRN.efOaB<찁ueΊ l'BF Zؽ/?`NvVZ`bhɜE ky|7WNP9jXk bv9{(Ê}GNZlj4֋3NG `@Q`=Nc{h]Sԁ. V4vZk/%[`$*ώ0־$'-s'LOPጄYvC1(1 z#S tL f/׎'?[PѶ% L?@lH7rˠuAr9yezL.TNf!Wˆ* YK _7^ kڪ1L 4Ҹq'u>(by6Xd`id<[E.V3jvΰX<1Gw*7WL6Il,~<ѐwf{?y0VT9ZUOEgIu菍 顠82q_E!{-_q.|^@N yugOŎZsbzM'aƳhO1!3hi7'2IX?Qa3FH;TL)9AR| :U| CgLp3?l0W(9D(%s.b|̀PEӴa309iv~ ؈.t"+^- |+{Y\ ˾m2Kl?]~侚њll2}{NK4`cݴ36bW?;u݇jSH9JQ$A=a@Yv'tڇ`2<6A@ `Y 1 iPzxÕtZWQ.4Π`F]i3|{@ל!EJF#CM}snNDP'uBxv?PϲGr즓]vmPG>`ʃ8j qn癌MEMԹB5HK&hnq$ljSc\0]_naSOD3xJ:U*-ccD$RVMfsHݫ֥ksDSoC*ۉVEޓeFLݭ1#4zpoޱxb QnřP:I^qa0T {! 3ɱwxhh(ʒ CLTlrimhV7i*N|6c0@׳,^O.݁)BC8s=U*NC94.ƍ%W !]ك@[p<@ߥ_|=ZqÃ&K;,.B:aH6%fiOqΑ)ޖOl7Ù[Bfy8:'^\jjXx`(we @t~-4O0L]3?']=<=+x*x!gTVp3]V ;غw2}hdΥږq-ϼ7 Kg*4F/Ad8ֲȅGom# ;\veT RRC_;©YBoY8 !U@Zcuщ]ᗯj7c\Y{x-#CAf|ѫsY]hwRvoXNKJDs&3rq3nQйҗ0;=oJ_u,;\CA]v欎l _/tVS&t.4tJ3V NYۖD2(5*\g8;4$K S<$Wyz!\5'&(_/ski]a`TC~H. ek=p 3-GXL@&2F%~uG:\ 0?dD'1](W.Ds0̤p&)N,%altO V?E(t4I;8݉)5,;yQՐ1Ex8}*,jo)N ULT#3GR>ArjKѸfpQ~_:@#P(et^H@b!DL͐Fs;Ac=&#vy,fb?z.oLX@e "r &n4yupY%JevvM5;Ey?[(:H]0}A"3%tL|vGޫqn 8\o佖.E!zI̩Ҿh^){`B2Ea^̷Dj i}ZZŸh6Ahq)*-9O!RcPKClN  :tensorflow_federated/python/core/impl/type_constructors.pyV6+ދhiN6 :6btl9A-lȒTwHɖm9n[aWo޼!u#!o^-BjR&F !V(z7 beE34OGC؆Bm&R=LGb|KݚeY֠+u&PVD`5l挰k /7h)$5FUe:УOH/V Zt1tiqh>ft9gqF DOt.$h*O$Va*tBo0B*&,'2V,M ժjC\$I^JaX&B`+- 8i [/ܚ[R$nƹ7'&ܓ{0 c|Y wC@UhUp+ Hɑܶv:uh %BhNeA:| 7p~z߻>`[&Ž}2CJr6D5ԯrL1-vHML |Ae&t{i]†yk9Zފt \[+M K#CwEDq]Y5iŪ4kJK +^2D7 :͖v':˳Ҧr@獧Z)ώf&Ѩ(ڣ IvGso{Qt!Hi ž7\we讀!+.IVU'"*vVh|v~x;zg}nlHi$ͰSAxcȤbM-hWUɊ>vܙ_\]}uu^'kHC\d*-}d>>ӳ%'%!vφB فkZ_V4dIۏѼҸ8%$GZ9JTCCϟ.A.gGAjk=q F)EV)tBC{[MN/?_E\ȩ|磁fC~d&-0|NO`^mb0y8oLLzY Mpխ'd'Q_wCo)3~d hǃסT՞WD,GBr\:'͎ dG௿EQJ vcԃTi٬3}sDeetƵn m{GfU_/*re$鰻q籆ʜ^zY_ӥ 1Ȁrn:p{\EUH_qc`dG9]5Dzڮ(#YE:oUfʠJ16ԬXYg K*P7?\Q+Ƈ: KHpzС?e5Q>>\y)В~6r0)˱hfo3ʜ1Fo%;5l: վ,o@˽Z2Ƴgߴimר;9q9"S"1 )͡}$,GKl/8!|#)e8DT锦SKFrUV(,PKClNAn=@x3tensorflow_federated/python/core/impl/type_utils.py=ksq+&Q8r}VDE0 6Z" Bk^@98{zwPZHݮyUob.Z/^e? hOw9W5t& GDO"W/8^m5<8H/,"T53xʛ2iVP{Iӕx{c`MOtnA&y6Ůֻmc{"(5px,U6/:ݖb@{?&NOIu/2{,Fr[B v+:8)&W#niE\}-hC@jY(-ԪF3G$ͻI Ŷȳ&e&|B K3z$dYf`D+(Av%HL =a%P>?C^\^Wtc/2U麊$MZ@/ 5NE[B[#e|fF"^gzhXb_Onl2a0:PQH:E*O6ziXɽ/!5O4Ɩ*}T^)(ūm_q6 zVD3^J#Z'[=*F>_/c#~+)W<`5֚Ҁ0*hj=ᶓ^Z=6o1lߡ4P߻k 2' ۇ4t{DU3UnvBI%^ ?W 8 f',;#zB:@Zo* ;Z NHVS02z9n_"wcaDsr&yjUW 2=goY`q$stb IbɤBkX֟E]"5}y)p>~@y3Y711H Ϝ/b砲j'PhAu^S-\$el}g<~u1Ǫ_Hn u`@ea3/{c\7ptGC7@HDPTZ[w@]tͷ=pn47j~!HGOg-)|D;XM)N]Wpɰį;=5-հ|a.6Hߔ%eU&)ؾ_|GdH_Ġ6I$H{:.ǀdm ٔxdL{#&u$eQxF9H[hYπwڪϸɎoE]JT " 4GI6aa# zE i`x -^ 1 ϑDB7DD"4PC aOQY=-۷ F-37h[GPcXrF5hAy%t)Ȧ1|@] :R*C^.w LRٜ&Yi4bf59nH4ehִL{_^S5]) `ZéNGM3j?x h<j\7_ =T|*| . $h&!c'h GVi4FzC#L/CnN!D d|Ab3HwΊ CDJW{7y4[imXWE*58kj:Yꆕmj`r9#~T`|64_K^~LW'm_~0MR02 @~!k%h:bucDxdIg-36hkM`mRBguݼneA) {tYro]}a92l@&6.[emB3&17;j- 1:. %e' BoAaN9SdZL|QvҼ.U(Ta9BezŲ 3Ch~ \I^xx{T\K{4`z'+.;7/t0 ǵ2JDT`%M<\Ps3h,K.Bd]MbtPa-p-a['aRD$K)[oɒC,ͬ;ans\ТӃ0̺0`vȾ`y=rB02g'{MIay?Q̗[K> 1Dq8npͤ:5ϸ#qcZIGlt-z6z3/s|{)F gC6kNBNnܸ)@:(!tO;]eAsiI ibu9 9/1ykLh7Ӝ-fL-〹q \Ɩ=[~E!hSgmAQ>CRQella.VFnXQviO s``BԒ,i^_`U'NĖ2G@.Dq%~R7y5+x*-&GRU^@k\qy':u~/n +%7Vׯ;eXa/pZW1nCwٗcA56. wرx<챓wl!LGTWEQ9J y]O2Խ!x>1#Fø]-Y$ Hp܃{ӥ4dݵ>ב&>CSKM,i3cNLg6^Oغ)xZz4Fb8lrF=v?hX#EMyfRL._^ @Ќ踤!yGWS Ni6B"kqUWb\ 6kl; W6[Fy ^\kb[yk̆U)Rt蚫&wh>O{z sц[: f5b'.{ʄ:<܍q sd ()ixdp7_ y<рtF4gbZ1t0iqw0\<BoԬYlҚrkTDJuDmmhT$hK*O*-ƊtST4K`o#|<{o:z^S; Lی@`vr&Yȧ~4bqʂ!>!B2ʼn9Gq" =[يX)Zt\leu~,,"v=-ͩW٧c#vN+̅8 -[jҹK9u&|[5TϽRKRpxH0Ġ yӕ ]R1 xhg6=gtkgVMԐhM$_Xr=>߼`4.-p֥5uik`14/70ξYᗰ/07qO40 00ƥ=Z DQzӾmKgؖjMچ\.p*qua\> A&x!~S5J#mwHh1Y]*f?0Va6VIՎQ=tNQK>1]hahb a B:L}r-x+!ǽ,N$x1ց.{.x9٘+ү=l`T+]pBIG7Ә>g o|175Sw}d}q x~;N"㳏o![>%zы d]N +4m֧Iu>F(V>yF22G_ [,veCнx1Tu 3?Bl%*\Z$W0~ֵζM.FBi.(ZfTI-Cr'>k񉈧@P,ׂȜK€ Ʒ -F)tSZU4HLگ@/bxĪ9PC:dw4 =c l;yd,PwcVfȶ,A7klc(^ Ͷ>$)UWL5)@[2:$|O̅*;nOWw6K&&yun`L _93f? LONj&|-811ቸےAHv5kw}+xVS;KXcA(ʠpnC k\M]H R6t]ah8)A]Ԅ ) zGIЙb":gVVnŧ|0%|cg]،TYJCm,TVn}='S9+!3-^!3Z!i {t~|LP + eCg -!ڨ1_*{ٞjWo$SJjU>J#vr@(d (BN aqOzw$IܛɤGؖv4qWr]CunUg`Mgr=6.;Ejjn,[/P3XբLxuL ɳl(Izl'!9b͡T&'LON?B%ISw3W6[zwZ\~V՚7u C"0I ) EQ@";{eHAȲ+ܒwC!H$_lK$ LN9c{3"6FG`w6`jHNLJiqPr~WW05ypZ%^o|; 4 :Ѝ"`QL=D[v8{ѿç̨cW@?wY= Vc` 7NЫkU:N"9Ƥ#ko6caٓJq>o|cj4"ް+XOHeq3_; ͯ;jn50$"xlN?C Ox3'!.}XƇwqMd~rv cۛ sS.r䤶 }Lc~]8~ ndaϐ,.8!87h [O ʁ"SȎffFb1Sbnc% ݌>q%s3Ȓ.kPX9/pԗ+>^i+)-UIQфV=1C;0t?lc49#vq:qO PKClN&7 M=3tensorflow_federated/python/core/impl/value_impl.py[mo8_Ab4 Eiy%(73(z[`%r8ׇ3 vL97ߏl-L*Gɖx.B6)u)ob}E Y&)?f~I̾aCpd^ vI6|$g@B*`.id̂dFǁ`[iC`"0-q0<=yzzl:#gӳW1GB)2.vPfķ,_e 2d.՘doy&J(UEפUvx̎&Sv>=b?N1|O3jr1;?+vzy|v~y޳/L`qf?0)Q"DM1L4C*\ l܊,TdP J$729=ilÒb#rQ _fyEڟxTO[/8P"2K6E^dq'I#${װPJd}4RʏAE*Z;M>x*e ;QɋE\|i6S=sy+7IGraI8wP~^DE#!2!&-I1Oh;(dQ( n夋ZvgE^J?]7Sy.Ћ=ytJ~(!F0X@XD&y$C:} JfxڍRCPƒр(AwPz8:0tV"&@ZFe*C$}DӰqiQZtz2䭈iހFO\IȠLƺŰ>:O$xSck0.F3D:3>*A%,|teI6t_M!"$vL)Rb$Ak'<ٱK v-59[n[16RX`}{@z"hT==>Xϭƴ{  IxTnxZTd!w8d Fl"2m2 -* ک4AgU؊8QPݍ-4l,p:r>@@.7L42~X󻎬uhN4Mpjt#v&1`X~z Bw`w fn05fdțlLފ ^3 h_ߺX&@P5$sZQx ] @0(pFKONk-P>)JYR?<őޒ(}-e4}*?| Wւ9΢<[^߲4Z79oFrʫHi@;iJ Hut!vt 3Lfm'PH[vmc]_X IφT8ݜTq7Ts(L-.U,jh,ȌZ1Vm /)쁉)6}|Ն½gƑMv|ZY>i9J$xqFjشΌҗlHϢ=у{ulx<> vnȁ4XZBЏOyLVbYdZ7ۣ<7r?mFZk.ήO>M"MGwݦ5s.$ZA|ѽ96>qT:qvtt3LQN# YIUR7Bh41 W"3p|&1 njcH'fVWҜH5 o+98m {=~?s >5ejz7ò6@fҦ"YrX%&QiMTd~ ıNph!R0Q[7BCk ±U^Q'O9smh%a} `% h w!)ms- o4!4Xh%`qy"c^e/&\a2Cm:a˚!uե9M,n].^yݛ7w#$"$Bծ']\P$y盫ˆ9xzg[ЭQ2PʫD/ Eմ28EtREjʹ5.V0]H*@JOu:ݥB[91@#츜S32zy'D 1lyRҪ8f{% 6?DA&z$/ Mp:7zߜ#r G_{4^9$9۩FZ[Na!iO&ϑeݿ^' KKuVU/v$~ Yyl ܙ"w}I/ jd';&PBE&ItH,Q%mܳ cy㎕7 Ǿ![ǻD839P8}X$I4o8PE X #i 4C{025DIWJ +-ZAȔXryrSH2gcV%"MAxYOD8ƤVK" тb-iqB8^*8!e6eRF̐KhU;jTM2_bm+G$z2( <4W4QMW;ȶ.ܼ`]I:U,.No\)<{Awm[; msOV/MSJuXv~MnZ"u\oƽE.1`Wi45$<)9zQŦ: Q^ԩUUڟ9;kjX>k[*9rJzPKClNF~ 4tensorflow_federated/python/core/impl/value_utils.pyY]o}`PEC6pY$޽ h,ۻޙ!%џf!%r8s8sxyǮbtŇl8l(2W7i`7"kng*λ;v+0Vg&u >?MUU^(e6 XO+VYj%G^Cvv^{!{ vwϮݰc`ˈepR""AXs`BD!lZ`E aPsYn^VR9kzT999e `̤f _xZ̖_QiZ!t&*(TR"0\iGehoX"_$z}d5Z)/Q @@uD:bՑ~>l5lw)Q"&o1E[& IWYDz(#@ԙKcP  "5ggdXP˹@@v`?C&cWK攀€l_:38U=bq4N|.! -f9HM6yUj6Cqs 1OK0faHP>b("ra1"hĈ{t &.@2@[>[0)֐-PбG \TdƁ4P[Wop_3+vMU |kƂ$ < \O;zU W*ϳ=zpHа_{b_ּ 67&ؙ/x,F<7[kW\ڈlWmѸih"ߋ:?{B|}LgH}c-S/oD9) wa>ZC:pS?W3uDik\&Rފ0@ɓd& cE~eOz5|H OodG?#}Gn,#?&D;"CkFت>2t V[(CE;Ll3/qyh!He[1Ǐm[gWPkA}+CWU"9pblM#/[j6 '_r ,Sߒdᔤa3<K6-he쓻Vp ˍsh]f9&d/a-2itD{|(+Uv_6 ˆXo\nm` 9-/mgkҕd*lu m`nhkԡN4Bj&dhY􁜅s#WprFub@=qb ڍ!e5‘xۜA|:CT+d?řp홧//c2̕]}u^?ν5x/ $jQGpQ%GOLvXAp=GA(6#z"a,-YoJ0>ֻowq}w-Mo77oV╴O$%KmL(L'-Հ0z+r`B?RH BC#󓨪(@}zo#NJMiZ+%R($84R Nh]Q{Mt:Ncdn|,A_ bGtT@]TFE}7J!PUy@N+ҖQbA$rʟv8} wmil8be5/-1JnAD{2>4M9zl&g$vͼ~,fԹH,=w<^P$O*5ن3hwZRK7O47 7)= $u2tW^0?=f[$ A{*evH]jޟXV,KY)PKClNe;tensorflow_federated/python/core/utils/computation_utils.pyXn7}WLKNV:6*4 [iŊJlVZQ{gxً%B^-9gg G>kUX-|o0_ssi-ny58w"=&OX/\$|!m8 KgajذHe6!BWLmR0q vnҀB-- Wfan slWi.Mof7y/Kn hg-4uV!-fɶ4fja\n戒 cXֶH݀b&0}8&Ӈ1b|{?l>y{Χw3t Gi:{;B7s?GS8('d*Bdx.يJ=r-8Pqi^(ˬ{wdpvvBr\vE-3^i!mIo@ݧE}RP2A%R,MKö٧S4oQ `lQ dUi<c{ 4:|FѱRG aCvš i"۵e%XCtjhv9b-+*y* j_>ZJ ۢYr˂JW0 pol7Ӻ;HsKZ&iP L٢GB~< t%Jhg@Ħ.r{deLxH񶢃6NH^ T|le5jրK#M* cvxW{"mTv 3Azs%D$Qko'<|"'Y9[QŗejJ2i~ 6q)4=ħBkz}:x6!U]{dyBSzDHA?3/PKClN?phT>tensorflow_federated/python/core/utils/tf_computation_utils.pyX]s6}ׯ6Wח>mj+右7w7o8I9?uu$QP&VY=Kbm%yÀVy 9SVrU?V N ^Bfa/?Oӻ?чO49Dp9s*]\\|_*?RQ,JprG!uc8ѨfKEQł]1֓X9S"de)U/ZlQکC\( ‘/D׋HZA‰ыR\W}ܚ-|]O٨ D62{VU`ƍFHk.b+>m4岠􋝰ލ5V$\2 yJ_)`%pPIlFc=\p`j'5-;kt#SXccD|uV+}mHeQys$^_TÐAr`d"YVBP3ߧ =QAk-֢BE & o4$m#y8GyDr'\H\ROu뛨H<,OCX%Geg/hooIPdY?&-NpܐWmE.VǤ&R!^ ;_ <]ꍵ^^ $sSD><Øtids7 M{^GjNFCϸzw&/#%o0`Kp>lhPi&418 rqux +q&月8>im+Yy1t>'5~Lq|lKh3% IBc f*!0=AC@Ƚ,Vjz;F&'\*?~}sz&**F\a0N}M>A)c<LE\ͰcI-)<4' 4uSybAdh7Vr#vi, aZjļTA;g0p@7+uέ~qe {_ :Q$O=/z m?[$7v%<*7rC ,f+aٶ jޒ17f/ScSO^r)$ʐuc{ԴmNmX3.S!QKz?+l` t?ޏWWWz557TE/UE+jj5u5~3Uɉ[Q-` Oh@*wp9tdž8"?/R2]ĸq|œuNK\ok:&-￐47uGPv9 ID籧d5"Q [2Qo%.lwohJ_@I@d4"B7Mp1vK LxQފ0nmʄUBY;p*=scO|S :,8NEH5?ÆPާq}i򵊇LEELJFd<$( >hH}ܛ6CP^՘Bdt/Y6D(FS iI^N,RQ#ݤߓ.Mr %V(Ŧ*}B^\6" (qA}qS*}\,/ve/4ds( H hs ( UgMq[|i#=`ڨjzP\j/#1Sk_#u4q4z Lb˺c-q<}ceitf~IJ?{:h{^zjvE)ĶʠD}.[թ"3>ܪe8:W׋]׻}~[]ֈM?n)\{3PKClN/h ;tensorflow_federated/python/learning/federated_averaging.pyXko8_A"$"u&3Š(ڢlm%QCRv<{.Iɲd&y{^KYU6_v28>B(T7\ōHذ6 t ^O g.\V|>Y(ɒDҁHX˚|JiXDdY.xʰd3YTy˙`,/f_959W+cX˜hZEZI5?I}ity};~ 흟\h͔|`ЌOafWL*JdJe&+}ejV\ HI2mT6VtKv0}G>d|M>4a_zh2_7lx b5Rd?("2 ]Yf3Uk>l.BpUBlj@J>yT KUtt|N x>ݢ.t}('ISA0$3¯ح0+JJxyd^qLj}PLϳ|>ȋR*`=/3G^TZgp^fC5:bx2Nz̖n|d~8yO klcTܱ́$[fW*+ 3^VyJU53iNɛwg'9wxX@!5Y]%@&7lj>rlDQF~$+&T% QvG-מ&SC5Nsِ=4dd ?ȟ޵U) x['k-^cVg(;,P{D>Ndb%6HW ƭ˂(jC/( K[Ґ^ 3.(QHXD,AQ?2nQD\P/=ܭk;B[2d;IFǭ?spg%Pq=sL')`P hX$Vz"B{^͜ӄ|!Oh}f+mCmh}19OE|T(yV(m:mg޾DhIG+MQj6D  D_Y^f\QWBD"3BK?MMܣ !+麢jŽ>ikD;9>>96;;3׸6EȪʙ;XҫiM'Xi0P Ó"z̐-=^ﮕ*<~mZ}AGtbY^o7!o"_0c.d' З\v"ǣ-RIS}0@9|Ш_.'77@HojƋҖKxXZ*Jټ$0V-z]^<.I]CQ+ `=9-j&ϔ?$ֲmL~^ر-̱s[Eahgz.@dR_Ԁ&f)7E 6GFy#f/=P o8j:юnyOYO';EF$׽oQZ;6wC=m^-t`p#`>ݣ E.kkp Ѡo_)z vMf!Sdz!3 ^'hX45V }X߶ݦ>ңlW9t2t@dpz<8%DN d8kRf ǍlEPC`󤏞URD.lC @4diun%'sPJyϦ к|-7ͥ͝M]W4id,4w۞JMvZn\^tBSq [ݛP8iI< 6BP&}?+7)dmw?^M#I11.LӾOtDm]݄Tjwj68Bc)_s56+ =x讹`a¸b,0}=h#'tiz4H,3;vhJރ#  řB6QVl`گK[zQ9 ;޴/Vâ z?^q{8R2+[/5>-y"9zKаwqt8eǼPKClNgX<tensorflow_federated/python/learning/federated_evaluation.pyWmOH_18t )/w@"i'{g{}7 d_y{e.u2j6wp|l9KMp)0aXZKGLW3Oh%#^VBj,d*G VT .\2AX*7fr4z$toYHsr{+=0_ eւje( dE%rJnr ڀ=QNX4H(Ψiv|cp<h |o'1h2o70n+2+)'m@CDe*Y-g3@SR8P)jZr/%\IW~J`*zX`sy p!گ eFYjqwq V生8|X|j2tZ&lkfȸ5&Q1Jؠ wg"x8WSе]M{#G:<) rL2YRz3*O[踭Kಲ"֗{rs[nJTUuK,Ð4ZuLAxnyaǛ*ByC?ؓ m=Jr)A>NIeTrF1WIUv#bڑgq'ׂ~S(N7̔SF6:ɾzW$9y0BI49W;mOF_]E×''oa"A(#U.Ȟ'bֺK$[㥬d.Ke 6FA&0G}!mLn:wQC'}sQߡyRQ_2pBVqH7IKǟ\T_3t 2Js a` "FLTd˱pXLV>7;"%1ā`Cʉw5*$43H0w7Qim|NRzPKClNv. `5tensorflow_federated/python/learning/federated_sgd.pyXko8_A"*ʣ;3,$`d{:([I]OÎku,y|V勥ag'B6[ 6꺐v-R)f)F/F/ػ<<+g&+˿ t.+vWBV֬[VIj- ", ħD +rUJfix!0EȹXͱ~_Yl?KcVǛ&HqVw7onWG*L?\ Jf|äb|IoTnj2-3J@Jkymv՘ /^ɔLfBo7wojٛ˛-~]7!ԈO+EȜ(R T2 +YjQ` ;l%Tkʦy)yn'NEIeRTnaQ_./A[h4#s-)YFodY@B2؜C{'z.X[a6R=j`QKn 6bRD}/yz//y1 힩r%V.x8N5b[6Q LgٔhԠO~\}y|O<~ghd6qLA0, -KuNyzJ*FQs?!ų˻`~|z^{Q,>[AU lv֮#gI Zm#UdGreg Sh M9ۗg YRVqu66[@z)o (ݥLsg 6ys)^ m#w=BFІ] ӈ]E)h4J xSP*43$ro.Eau5>ā_@ ~d΀ 0ͫqB `eԛ⬺j"0Qub]$N/5S#yډaN96уݽYɲ#@@T$YIaq[BS+u (AHcz21,zؖ!ܼ^G ӳ d>pm$ Iit4?IsslO&SSlSҚ D/L N>::-w{@3stx |h* KV0wHR;{2lWB$6i,!H-*OM=kOvGO:"O 퇒6dv5tή^ȞA/~qgl`hZWW⺣7zO,~)%1k8TFfя D@о3%| [ਐQom.[t}Zm 9Gt񭗔Eouop<#~kh4 zwn?POz$k!Ѫ(Gh;.'lw۩Mњ&;H7eOʾMkba[hmY魚X12=->G v 8{4c:KJ,@h%~FUA#0v)i[!4:ٵgf~gkBt~W8gطC[L-8b^m{{A}'tGOx 4D'* yc#_G;K }+7^qz;zBkd,z{~x>tP[BQ3GQzd"/2w0ʪO wqĹ P c{L/NSownЕ_Q4_VޤMTDz' 5B+yb ;c˺݃C\Optly]YoώqE&"LMͭkG`Y$+9DHqd<E@d:^`^g]n߸W[Q.r'Nݚy`kTDX;Z&\o j1л!E m]5AOarUv;>VTk^l ;PKClND,n !-tensorflow_federated/python/learning/model.pyYnF}W4KL'yZx x[ X,ْ:Cݤ5&)Yd2b[dWԩP\f۪oos0upr{ukJukJuݵ[C6bzo OUC׍.#>jM g $\ >\ yo1YY&P6 ߪ tY.w)"]}>Hn;`(gLX.pٛ7 K8@UO*"}w|Ny [Wu]1:I0C3NAJ rNȋA8iuU1f8N~~&5e;Akd%duSzjFBB2[MGQd $&8n\]nj|٪.{킨'~&ՅbV5À<{[Nb':4? y#z5a~~5T09)j);$A_SY!`ly]ݮWzaD -;+ pS.Ĝ͢<ۋ >+>Zn_A8ٚ`ƴBz{9*hbϖAX z+a '/o-UP[UW3|"Qg rAD-fL(a,R4x{OD̡#$ >$[K!woRzYx9||w*<ڕvkY"rxiѣkh-"PJ TZ|Gc\CO:CgP:](^'rbTv|R A|裺iғH(g" _.I2Qo6s lU打wC 6u!--ntElR/':z)X|O?fs*~|GJ* Bj5L dw(G'WR\X! q4V! S ^ɠX50zt T,t<"jcZAB "I}-#wtGX`_Dt4!/LG#E2IDZz1L_dY43h\ =󈙅z\PAh,&5zr f&<$jdz|hv)? ZW|1+%d|9paӜ߄(z^W8/2ф8 p ar@ K^H=t; 9 +Mݚ|1Ãh{KK:zI/<ౡTuy//ĴBbrIYǤ'H(bKaThPovOKb"'ȾG*ji+3 ,Om?gOu#W<K1F^K?^GOO%1l< #3z4 q8*R!C"%Co M-L۷H+W%`2K ݗ-J~pLvS <8>!w$.>zw"uS5^Dr4x"TIxMv;CqQkjߺ˼<uxS!A75xiU QBPZZ",t}gedWzwl8~_4ÏT7UwbEpit|48ӰSz>d_g7oz夞 > L0R^HEP&9*҇B^iyק"0ڍ͟BpR~=[JX6~9-\RiWG7۝! D`sbymw/7 ~帷 o_w ~OK4.zM%B=Q*}7,PrC0/PKClNP3tensorflow_federated/python/learning/model_utils.py\ms۶_?J6q߽^O{'vPP$l=oJ["ppppWP,m[uuumԕ)~IM[M{]M|pxp~0\0 !O&ꭩ,Q\E8xɯmgV M:eaUejr81.*IvS$u)sY¿ K z^Y·7sp _/<7UcZSe7nP1YAZ[VA-msԍj ./?>Vo P1°@KXXmTjWoV̋w d]|-\OdiA('0pce1خM*7E&,>>L 7֊ @4g>#ZWG}X~C$dT0M \v0/k6xSb|vppp/:~3uDLTeaJyY`򆫲$5F_7:vA'ØfT{pV}ifր8&q 4%< wO'$F; Ew^y>F))e]?Gݘ={>CuR?e={=-\6HoFهժ @p&/utgimkV,MjSduޔjnm {]`9|Dk UTn? Jīx"7AYE3X!;A" %JE2zl8o3S$Uu  &rpi-GHgn[c __G$y .~HSNҔ27#$H * BtnŵZhQl M&/HOU4#^%Ian$Z 5()fnF2Q0}[ZN-q[&%I]#CN8"@q%tμ(|?Q)'d9|ctJxjoHнOMHeZWƭӬ3Yi@Mi T? iL1Bk7 "=қ<c( KN8+ ?)ZG<ާOW}!ɉEɗg@7.N d,D=/ii,Nf&D%$߃ 6nrIx|bˮ/bdv.fc灌1?IXyyUgW^9B_ DlFer'$+e% %jBot Hwl68@vG8'SiN(:K5D{F1ݞgJ /19@27+rBw,O;6q%^1^@Nܹ\ѾDž/'J(0qxP7 ?NU×|N8|WYPWfIɕbj'^YO@tY{*q(W̺]oCxI1rK.O:~w-dX<;WڛgG!wӮ< t^on# )6[cPn?Cξ3o)0uvOf 31ϖm u׹^0XfOiIڻ+%4׺@-}|9Xixٰ1K 7RP7D)7)9lU2/njB*lGmd5Yǒ2f|&T-f3XW9VE~3iʸ5A_=2t7"f:[*ZX0Q68o&*Pܫ6p:k83JJ P=xG7DV7ߟQ3+ɚ>FyVǘEřla&}h>P(xc;կ0gXFvvhzci<X55}3yH2Z%sKGpԔv>SK`+k s28o侖l*Zt@g[] z4/<RO:x9Tn>EU7J] 9ci/EUpq׺AJ#wFM{ &ю5E)UmVB@bs ]*¦F^* mi-Uz1[^rvz~u7=8=*ӢCDYKRŐg0 1Rt69Vf+HxoF-02$ܙq,8k&)  _2`܆T=2Ft!/h$Kdmg۴lka! 0]*]/#lI'$Z]ej5Yh6빩}(iU6<2Fk;_B]DaֺJ_^SnTt)ˊLob9SF:z?|H5/~x$I2DbXlNT׫4{1oIu|k8kbnK` 8iӔ@YͳqC~y 3eVQXK',J2sG"\z.fA‘Xb#UE5QC>˵WD?jA&Gr=+8>* \G8=ɆvZ%yCu~qux,sP:*ݠK_`17%TM˰R1$Zv,VaMh)YM68zC faZ35%]>FP5BxvXN9YcYؽWeKPUYc9֋lLU8pyMǾS0XЭ7dKO-C3~0pM^-79,`͓dmn2dL.>:r/\M ;`{hx`$ѷĘ̍}G^zꁳ'z)\  wˆL;$<&ukvi)3R]pp?,G5-"cڶc]UH MJ,i($58Hf# pX|{|h_0am00C]> xunk *4rFA6{걨Vv&p4`Pցñ s!]C1M'jsm35ubb[4W'-ˑ[B,k']5GG?&B|Ǭ_kj[-nb"~U!PP[xYhA82EO]N 1< 5.b1RTsE3<7CGm(HZ!FxzŮkBj]6 DԀ LE+grVMR'VX$J,77IB̌vL."=lj .NMэ03oPk) ̟ѵU ր]*t:zSY' v c5\*bz?}K/FoDK~4[G7\UrZ*jB጑ yۯJlǝ'T\ ,luNgG@_A0#h=Mv鈼~j<{@FǑߧJ,.ȓkh gSC'vSǃedg=1`v!tg^Z[84:ࢮA2wcf@|t4 5$qhP^ay;'al`-];BqSoNe&vM@]:zwbW&qN("pf7IQ&.V&{V `! [#P2T~UkțKSq9Gc靉ykqi{W`5Yh9NtUNUR77R,:&!x%>bOfPQD|Z\׾3<'˵Crrc[('Ay_|W˳n 3%/y\xΈ:+z=c(, NurBYԽZ~?=ysx䗳: V={Ip"yQK ݷLO>ޣ0ؗkY r#ؾA{sl(Xܮ>'R}Kk4'L:v!.liL6ޟեB9oԓGp+z$A8Lv04)CѨٝ4km-` n%/Ы]T6H"7fa2D`,o+h#rϸQ$I.UG|>8 %EOsD 2oi?<5D<϶ 񆦡S4ض~cqVa}2 ĵӺ܏8bӂH85B+6-VM_i`ɖC>?58OgӘ #uIRm.w-sRc+o*pB2u f]oV)Gv e/$Ɵd{VdZћŘ}07bEAA;[We&PW38)IĴWuǺ]m=j3Veׄpn`;Hֹg0>. I=]~y\[YUڿ[/cqbԜ¤~}i 4t|MtUV?y[74(۩~}OH^0K|_^Ƚ< nF9[r.y-]ʝ46`e癔vƖF @<W)^Bԗ fK3[@nȧklտMՋ's >Ŧ&AY~q$N(bi Fq9"M5ՠYY=j<Wd\^pmhh⽦Ѱ1r{ X5%&Hʥwüېp ߽9ȑsT`HRx!{KqJRbN )h.t(pC5u v'hܞFtYG'm%AzP>xB",]^+Sm+ ˥(ĜqDM1czz1{^' f@} |fǙ{',[e%L2Ⱥ ^wNΌ'NO<}ٳQ$Y侩;83Z=>F=AokB?ɉjPKClN.jC`㲻.wj4Hٙoٙ3X)7i\|EPZe6B sXAܻVg|%ŐG?Ś9xJEt|@xp^б=H堷HBޗp LwB4 (QS8 O~\mLS]~LVm~A@kDdle5'<l`UfP*nEfjQяH/&!SHi.&3mS]jLd-|H @Ҋ6?^Gh)@&BVck^R]YШ;4wPcnUTa R ɘTr* P( %ȦL4l;XFuuzy+R+\> kå#,}Iln  =M<ڰeGJ;'w\#tsQ坪P:FԡS[Q6@S3lLW4P # h4*A^EA*P~ۄp167Nm34U8zCo/PKClNVZ?Atensorflow_federated/python/learning/framework/optimizer_utils.py[ms6>g}gm{u(~S]",ũ-g Aj4~ݍ4IT!F愽ͮ-W뎝|.fwkDd[Ie߭e}_f05gLlx71"ZUʚ%/YWvgcX(+J0񐉦ce2iי`۲[2jHea4 |*qw09b&MdzQW?^~|ӜJ(ZK_جɖU+]'m[veE*y\] -l5{vyˮn.onct~-\O_\]Y2i`D9v+D@!5CYY^|%JދFRi*`/*U);ѓM%gϞ fٗU4̾*Zp:%JVިfE+7,M[ v/@X|hX^ޗM[<3\|6s3g&J[^A? HYzԑh>\0[NI[zN$# UtLZֻUM%~fv;PȾ>M\눙Ҿ++dρ~lj:v"fk4hFle5w3Pǻ7ūWoξͻ95%0*.E\fFZ{黦OjX1'F3DSiL6c]T"MWh($Sp?_-ӭ@\V)YD 5N>=lj#AkWM+ZH`Kgh<]Fj < W$Q(j+  LMUqT_5Dĕ<6I_ʆʤ S?`sY kTG뵾SaH}&Wr#aAƾŕ@lYs8UAki vMf4Zv\d]@a06j㐢>'۝Gmss2`d@{L^EcORprk9)hi$Z ;E501;?F]S;¡bj- P(mY0d.ەaL~0zCRDL?TPD| b{̾6HbMPm Ԁg7kGTL y(<+AY M~${<ң)L X,FSMJzY_㠰 [wUyFf!#!ecbM JpG16Vjr\lG:R7Š(e>6Z6`uT"v4P" w#u|cmG'͇"[TwN>v|gp3Y 9`p}(3 .N>+dl&ݪ\l)0cDiLqjd0mBXPOU >X&JW6#x緯_}2\1f+ѥ <Ŋh@JA#d}ۂw Z4 RFb?OleɪCdU8TZ9@`d'#{z؈'E!D%JӆN6qL6&uK/H>ܖqEK tm今/|KpT0-vX(oќ=N >ضN[cM(L1ߧK‘gxVkg\!0Fع'e331x-me֝'H#rOFG3Wk>O)AbF}(N,-ua;5p-OG&uxԡNsL @D<3C@k #/nbE헔#WD [M[< :d u5: #թuw>V&!KyoC9os} 4eRXgi@R,h˒ntὮ񽜲p5'hqzZl 6dhP8n>3Ym7W6TQ(͚hˇߗQ9lڵY_ɕkhзg9,eS 0\ىn"E*^*1ŵY\jh?ҁL.LްO0`ܠ5]¾& vSEC @O(,:]JL3 Bh8$ѵ$- ;2𣎻.FTe.P8 zS٢IiOڜt_ 7]?,zDZ<aŎyH+ޭx.0~b\j[jv)E[/h}Esl2ARȠ/L删M{"ߍC2zf &i9kcU`M{~ ߟ$ t/"N4 ꋂ"(cu󗏟IÄ Xz >N1&$,/عPN6b-4Wέj9{-6 *E2[1 #VTi,zz^7}X~ aB#NtwIv.Yrf<ɒՒO 3Y'ࣱ^?Gi)  rKY˒RM/F?Ut5˫$Ac俦 C?G/-*۫~ŖɮoCAmuy^[sߏpeJ>H/RGU)wl4@;?)̆w@E( r7*MМ#oB{9o͏.-Icȗ;! x0:~cAoۮcKhPyPenr :a6rԙ}esq]~'PKClNUJ 5tensorflow_federated/python/simulation/client_data.pyVMs6W{FӜ:%?&rRɉȥXv촇jcX}vc"7?4i[w]sNh؅u>ώcK`3اCV wv^[Co7t"G@XێjM<B{u%.F+S2tXD7=hЗ΂}zߎToB{~vZrϚd>.Ɠ8diXgkR-jZu掱^9:cTg]x =o|)CG &G~8M<~4x:-]܌/Go4_F1r7|:Zȕ$m@m!rk]".3ԜinC-RMzPA(<;:BgN5-|Ońip#J%*$^/&bY6{"*Q,vJg.c` gK0]<ѥds`WtK1g؇Df;[=7\]{_"SlJYd,VZ#ZϠYBDaM)DX)j&n('ڴ]"miwAz.}4˓ _Zmc=vvIEQws\"* 5xY(VM)Dl^n|+ND1ɗHωgD&IPISPM:گ-+t<&xDBDvBo'PKF"3@eH+BHPl=VPZ꼍w(j?[H`GpG"Bӓ} u.U+W(z{Zۦ'C7 vc#qoWڭٛvz[vkT|ȃ,=PM'JߑIA7ӫA X}z?i@3&A9_H'8}lױ'cʀ/>'k*)rfȑ)| H5.ւ)=K"9s62;9ܵHC6Jjc,%CѧZ3f@bO境DQ5;ʻArny\u yx/N4`]/xԝ˨a|/,kDrlxٿ5tmb}@+CRs*\<ȅw1LCr"!҃}>HG5Nz9F^3Vq\كpKSSIFmW^])P e\ߙGePKClN,z Ctensorflow_federated/python/simulation/file_per_user_client_data.pyV[o6~ׯ8pjiP`nl E1ȴDYldR#ưsHʒS9&; TbSXxscX\oJq,`RBiGg)i-,*M*p3\$/`Hp5-ۃTjф0ʂmU &S;a &A9PkP|0Oamuy~bJoK/iϮ׈˒U *5,";-1dX-ֵ=V `dMm|-_§d]/nrv;_70?f8 o&RPyFI[p~ Wx*rb\rS zZb8Pqi^VJYw]Pq4 folBYSf5R k8ҒbZm!I֚' Wڒ*1K}J,OeJ(+~+fÍuӐ406$o$8$2*bmnc >lm]5K\a^Vu1㤶4Q  mqwq{<FXټ#23sYa*OsmhFE<#GɊLФ$ϓQsxR$^&A"3]sLGb$Kr;W؏Vש%_yLx qu \W&n${NұKeai-Мa>ui5ph]M\ 2w{-va7EzEHTpʚ_kU Ь`[c{$3ʂ̦F4{䴨qҺȩ;đd%;-&7ͪb-IX]IEk8| ş`_Vu1AwoTLN+J+3"qB=uZEjui#KV:}~q;dU]dBci0m<˛;*ji]-,PnUՙu $,5"41r?z=Еd[q* qiG^1#LE0CtN9@"UzNhMz!a ^gw/lYK#o 6]퇉P[x᥆K֝MdDii!*!/Hqnz\6r軨C(L뇺D cf}c9l*SΓ@.# :LO G 1PKClNm :tensorflow_federated/python/simulation/hdf5_client_data.pyVoF~#LzRҐPp )bmrCw~77.dUn69TPxO=2/?bs[ SsE*lRH xe0%(M<*@|9L}m4Cq7Y|.nts3.&sl:,&)=]h ~L! qEs,~-Zt xBuyr\>*P/,aƝ** ]k,XHu^Ҍazk682VZ "&o[to+KCebzq"@wgY}y8EdVLć8 %$2]2|8&'|] c-N[6׆ F#b[shIк':{ԭ,MBrYkR[MG= ]Xh4x"`M ◑P@d](M%Q+7^9g],*=${=ɸAWů,I4= e(QH,&sP@L =c;x:X–H.WU *+F,XuϷ<qS/cBe!2nڭ`˿F|r9of_w,;{iqQd!iv6Un\ RQ(pvG=Hgns>kٝ/]۬G3Jͥ[Q랃NBZF -#cScB+!A7:)X'1M@SdC[j`a5z "].gɸһ5BJ%Cr7hZ[RT -i !tJ5 )=͜T.=9UG=V*_{;1 bIG&m]c]h}~;, PKClNهBtensorflow_federated/python/simulation/transforming_client_data.pyW]oF}ׯ 2zk` 8@(YbD);3-{ IQEqǹsyFou7jvꛘ֒dey_-4ɜ[kc> 2xT8'y-2'1 U7%E,0m^7{JP UJL֎TEԥU&iڻiԚK' - _ʑpvnhmVeooo_*d/2u'QP&Y-iCbe$Μf[V1Y]0VreQeȗh:=_ǰỏ?ЏOw{~{xX|{DYܽI"Wp#wa82Kye !jՈ~B8TKQi/RmοyT2Nq '86ꌨ,?3 t& iѸ4e8KK$( cbzRr6rx[er2i_/Po. SUw:!iŇ_Q-H' Qb[-ׅv9bhJAVtA{L䑐uI#Y=PERm9g =keO:8 /`hך9vDܩAئ!ď`)JjG(j& - R$gYN1]=5箍A˒)ey<<➼mlo_!_KJV&wEu 2{]Z5zL:dO9zq#sy7 ѐ9Hc.,03"Eܸmhhvaa%fip7UqL&V V+t(pg6^Y ;‥Yφ6YU[ P`m-&vMO#L-:0MԮ=x0$㣈Z cIW7d*QjКPKClN0#;tensorflow_federated/python/simulation/datasets/__init__.pyn@<_Zinmu54 avwwʩ\찀GǴ%;޸ p:XA8DhTF<|ZUk,;:OFero SOp4=t0ł<"s4-)]" ćl"8[=+Q+[9:P<ρ~\aHH׬IWz_{ݢwONzAY*^0[5qcGLY75ʡTѾ:I9dy _<˗nwݥ]vU˶9@yoj (2l]H s* -G|P [,RM<Xtp^*qi#Ve@|))Ot^  aaІ`C'>5h VII~.s2a x8Y V [>u/u h=\NӔ65_/պ(xszq@1w92xrI8dVzrr7ҫi=q/m +G^\%<+.O~a؆:sɆ(z<XtkzkEA9_SiiGϾ;*Сj ZA#|/:gna]xCd|uRGuOh^> S/Qͭ'Lʈgs ;Ӛz5qRBq=lkvFy %N_PKClN6Ctensorflow_federated/python/simulation/datasets/emnist/load_data.pyWKo6W 'Xe;.rp7 6bXȔDYҢJRq_JrmO!67ofw^-p\z.9yej-w r-,~wpO&HAq9m+ djBdWmؖV=r];PsiмQ ˬ)prN5ӂH52í0bHjIR4 "yHVJ:QLU -UƤ<,0Q={`]B8zu݅:uk~r-Ѳ6RD Za>SC.Mc_3,xl;ʐD®o0h$8V&IĐ,U$>\scƶ6P7D|-U9 ģk$H΋``F6hPd9m}6!YDmP`%dKtPvxit?a{hGKNo4ZUM. 5swEP2y|WN)Lț%v&Xs_z)o\n`f\jj~ML̺V˜cXuմ<ΖWNɂp"-3=Zh&m|v'b/X#mru|psP:=P\8u:.i*v9UyOpC UH~>aF&Řt2ʂ<q:%' \Q-5RT-CfβSx C*}Evv^X!HP4>@m{Ia$Nm"w a%JꝜڗux-<㘩6}e_eyA;7Fc@^nvj#Z`=ΣFflˣ(* մ2%e (gq[np__uqQy.VK9]B|(6|Hs&D|=PpXSK2ݠ:ޣ7bBAQ+"ʒ4MfVE!3Sz444U@rPUǪgP`Lڟ*k"[yɰDM-l}u$NdAO~f³L[T1H"4MF=9ΒJiiMv_w5=OPKClNi  Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+Trdž|ŁG 5*0;5'#lk",$0~_ƐMޖRu'>]d-3"+c";Y2mld 9áYc;K+uFuɠ]o{^l,׎V,J01Xo %y .aj'~.qXsxKOwd~ۅܣ Uei3r%eF]J\{ 01m= H'MNݎ/uUI^_~ydgϳn|9z==`_珷ˆ~TGPB -D,S#|S`*LtX!VZ^Jǝ_TjF DXdEXQ,,[^PL ^r[*>V+5zˢ(-]iDQ>8V+-gWI_;1ElemÂyw~*R nKkX$,<XE^+ ;33 ^{M(c|q32UU[S>3ܱyF%"nlXGyF4z{(UW4$UES1$|>lː[}g*{TAƇ7$X4"]P_0Az"{c#ȥQ=9XY K*J /M6|2Hne 3uKuŖ8 x]8wԣrS_*kT^ul.9tVR*W 12UfTFuFՉV3hۄu BUlMz7rxZ&CJHv =)/4~=gߚȲ$v`:'{Jy ~Ѧa%˃MqQ//,T6PONc:nQ琡?3O;aHWszQ( Tg5왗_n)~qM;x-z.#!9JOǗ|^(\?F2Ǘ'˶SJk4hAҔMA[뭿Q]~KU _{f\2BzTM;=u(c~PKClN7tensorflow_federated/python/tensorflow_libs/__init__.pyPKClNFHp|9tensorflow_federated/python/tensorflow_libs/graph_keys.pyuAs0rH24I얉kf I&` V }WM6oJ'p+减H7) -ռ̱D f# ЦcW&Js)*3+K'rZ! ɂkx/vB]Ù(n6 aB憑Qufm鮧ahi3*tΖ삈ݞѠ֠W՚uT06Tjf7\в2SH.%F7Gi D7a%xүC Oj.h@xyQ3G˻ eEK,?Ar#6#/.QFrCrm $0f+*|ĝv'raha=ipy^d YVWe \ˆR{oEoSCy^0Jbxdpί=I %T m}qDіjµWd,E> 9]<c›,Y_k_э ]ĆT;x7B\&8wc4$ǫ̂q-邆 >)Q錢LUzPKClNkS ;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXao8_1~j`IlIiyElk{C$._bQpͣ^х.O~a%A6WҕLLiRW+mxjޫ9l0ZxO&M 1ǿMD)<> NW'?5EC.%\*$wsYTru)%mU˴NѺгJZӢoGۿUU7om,l67,߼xws5"s~3YdZu֐(\f& xWixkTeD^T[a$A|xt9L~_G/={ۛ<]2"\a+ Ǐ Q{)XhPYȹZ9/kirl i֪,^ /ZJTvɦ2p2+!)ܯ\Z䪨3ŞE]tc`0zMI$hS:CY6}aT^a4s(A;}b0G×]⸹}#شec@̢G? K~y+.N:փ^`v0?K-T!4ED6HrFv .vzGȫE`'g;+4XtUTB2Rdr$.W9Ͼiꊜ) +]g)S:\ZNZfUL8?ZCLafvh kb/ns+##Oit$jS&9BS<ҵ#gɫHˉ*/jˤlqnXs Vɛ. Vۋ)_‰ l6^x E?뢂ڃ~uĔ~[֏we0,7ҁqgrup~wP^{g|{K>OV,.C>6^>x~L@ 9ᖈXno;k,(z m!lCgq|:S 0Ys C9OV Ʊj9ШKy{1ars FV|+ L2=r$ aT,c T"UL/[U'jيJZዩR 3 E-a0e]=nOQ7)h?4D@9yz{˞3WQo/&OmY^ApTO8|J8ǬO)-|]V%`*e2Y=oJ/uvȜY-VR鼕?V Nw/xfx>/?ޱ_Ʒ㫻dήonv}_S6]]2XPX(R \GV ȕLJ B\:ʦV̥>m-v)\QWWcv1 )n.dkv,1O- hu4>=Ov;V䨠md SBn'8\,n?}[+F7a˜N⓷풓aa'ZX럣h8|0uQ66w&  MY7p eˍ:W:L4{a7h4S+ beʧBXt%2FNeE5/uޏƠԨG; sFևw#[Z4W=U_VbqPP\2FCug1 N.F8S˽a7ͬ +=ⰏֆvHNEäwXEv j3rV)iBbM(:$|ojW} @z>;n6M7o^3};}:@4}R`ȝ8Nr~F;W [&(mfԪo9.%Nb6Ov@ZU ׌p<`FU=_1_6ЖwfWFfF/_~2;3*]iF;fچmbh674+ʮ~K{.,wڕ-ab?}J8HOT;qϮ}ǭwk$vU(н貆BٺUZy:94>_|'q.vÈx[LJc/*; V|Pq=V&]:f;_W^p؈X(D [̉oik'Ӟ\xtϯ'_m _/_?'G2:β'f>?~avJpG2s'ZŴ@GX_^.PV*ВY;)):TqΤ:{3w0-ܧ/`ҀTdA-`K[Bl+HT]YB("r"2xb퇓 ͒q2iN54_Y" C!X@[jG/µzw] Fv3`:5S]y 0lÎv$=i[NUym=H}H0a\mF gNi6>a࠘]ZL-6lwB'\~UK"@O3,[MQS82},{*ӫ,#鑾Īʷ0 UL*hzFՓ "AAݎVi)KkeaDi|ϐA S[=s`h~k4&$GUy}$C|7)2/-t` ;@<41R"/FJ4_v$qMg{D ɜČ_֦`d:>ܤ̮5"b/z-$u vXJC~5G)j`c1{F|#4+љRVdE?O| qSXʋH&4 O^tәm*v ZÜN;{}{7 f_eٿPKElNxMB_n*tensorflow_federated-0.2.0.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKElNdd2tensorflow_federated-0.2.0.dist-info/top_level.txt+I+/J/OKMI-J,IMPKElN4 !+tensorflow_federated-0.2.0.dist-info/RECORDIز@]f(J8aыҷ§nMEW~u~k\oW5$2l*qm |5$&؎MǖgߣXB1Nj@6dm@_?6G%ڈ]XG//âwhZXV֡:y+P:ryk(L8"=2]a+B)TSp1fl m ԃ"$swiyվ)f}D5tv&I)q9p6W+Gxj@WdG# <\rztiI7LnB~N* YMv\Ht\w|4nѦ$N˶~ڮ>{$ s(lx9w +6P~A{ow`Ok4)mkexiqW]Yί_ q>| eyL,? s!-IWZ4[fcR[%vٺ6<VRC8Nݐj]5%|Лnz2gcL(%7K$ZelaE{+ TL#8At4ѯkX6ŃPզ E61A.I. Z",f mc>IOo|!FF%c`lw]]64lqp+ 0=]y9C<[0951gA Ne=C@ew肪O4} ɼf܌3jχ*(lՋ"5[/[V;{fzʨBfLi/N] Jpܛ jVe#ߐĐ1e+y,쉃OLL?6Ws}->>T!vFJ|2~y^?=Iw7!n %(DҌqCfvV'GiQ. u_NsrC-?_e? bqIb|Ht\'>Z]/!B k<ਸ਼قnrWC@beA'J myK(S8Č>4w]xdyHۉ9amg$v,IUOu/!;;R( NeTCxg;详.l`vyl]h lza0w1_(9؃NǕ; ̋L"cgۙ$~WR5{C؉qvJ'/rP7_@,~. ӝ!"쮰>RGk.b"yLz6ﴲLgu3x[hrdoւ$a0P}LBw{ʲZ%4а2]2'k~z {ˁ]P&sݿ AG8B'Ƨ)gQ$xٺ+li+s[#߷_ f|&O\<T[/hUj%Ee˱_,d;Dt8ʊ-.{<]:~,Gi(cPQq0?5!%(!"a\1ާ3U`Gm-͋;|.E {ҹE 4?zW݊(1$c>^8U<V20M8sˣ#G\pFY ?i}5!2f:]Gsy7׏Kd 'O/K"]ָb|v Ryvq4ňhoWU_ax`RŽÇ6VnD]ؿZq\A >9~=gi"btj1Nͦ _4eJ¢sqŅ,x/ݾN%;qmW֠e\J gV ]b4~'-w~#3{'y 9ntensorflow_federated/python/core/impl/computation_impl.pyPKClN3H<tensorflow_federated/python/core/impl/computation_wrapper.pyPKClN6 4 F$tensorflow_federated/python/core/impl/computation_wrapper_instances.pyPKClNC55Ntensorflow_federated/python/core/impl/context_base.pyPKClNx*;tensorflow_federated/python/core/impl/context_stack_base.pyPKClNqC];tensorflow_federated/python/core/impl/context_stack_impl.pyPKClNuǡ4Qtensorflow_federated/python/core/impl/dtype_utils.pyPKClNp; Ftensorflow_federated/python/core/impl/federated_computation_context.pyPKClNUr,!Dtensorflow_federated/python/core/impl/federated_computation_utils.pyPKClNF5xol3tensorflow_federated/python/core/impl/func_utils.pyPKClNʆD"{4vtensorflow_federated/python/core/impl/graph_utils.pyPKClNkY|v9Ptensorflow_federated/python/core/impl/intrinsic_bodies.pyPKClN4TPrdF7##tensorflow_federated/python/core/impl/intrinsic_defs.pyPKClN9Bs:4tensorflow_federated/python/core/impl/intrinsic_factory.pyPKClNEz 8Htensorflow_federated/python/core/impl/intrinsic_utils.pyPKClN, ;TLtensorflow_federated/python/core/impl/placement_literals.pyPKClN(")q;Ptensorflow_federated/python/core/impl/reference_executor.pyPKClNpCztensorflow_federated/python/core/impl/tensorflow_deserialization.pyPKClN&w 5Atensorflow_federated/python/core/impl/tensorflow_serialization.pyPKClNIon?ڍtensorflow_federated/python/core/impl/tf_computation_context.pyPKClN{ f8tensorflow_federated/python/core/impl/transformations.pyPKClN  :tensorflow_federated/python/core/impl/type_constructors.pyPKClN ;tensorflow_federated/python/core/impl/type_serialization.pyPKClNAn=@x3۹tensorflow_federated/python/core/impl/type_utils.pyPKClN&7 M=3itensorflow_federated/python/core/impl/value_impl.pyPKClNF~ 4tensorflow_federated/python/core/impl/value_utils.pyPKClN1$2Ltensorflow_federated/python/core/utils/__init__.pyPKClNe;tensorflow_federated/python/core/utils/computation_utils.pyPKClN?phT>tensorflow_federated/python/core/utils/tf_computation_utils.pyPKClNc6;0tensorflow_federated/python/learning/__init__.pyPKClN/h ;tensorflow_federated/python/learning/federated_averaging.pyPKClNgX<ptensorflow_federated/python/learning/federated_evaluation.pyPKClNv. `51tensorflow_federated/python/learning/federated_sgd.pyPKClND,n !-tensorflow_federated/python/learning/model.pyPKClNP38,tensorflow_federated/python/learning/model_utils.pyPKClN