PK%N*w tensorflow_federated/__init__.pyWn6+.M 8tjYj؅d0( (-%$Rq"olP(7Exz4?-!82Xz3E aU rk-sV,)e]tS?#C-KH 4Pj\CρʬAͱ9#A𵣐!Gxn>Gc\ҨuJDRmfonQq1LkP쟒+5(e RT@RpH+R<]bsmJ3^=^ErpV>x|_"/uƇg/;=j~vPV?Yl/gl" ]0NѮ<-I LhLe\(/F3ni3܅8}h#ETb(A&) C+R*tHK㗖[E/ }ќZi0Em,T*n]uek\F-=p+vŷ#+ b1F\|fd3E؛yauHw' 7a(a8iN/#)fŇ)+RĔh3B0:[F9Еte63\wݥw?@4å\y!e@z]࿋6+(lC5N񾁮`jeRta\Zîg6C5d6pĤŰuKL +lU_޶zwF$mJJ^oe붕 =\et\#M gh+\V\`}P=j~mK ))o]D6Y$OpqTi{h miգmT Q3ch@ jb\ly>J{>Kg74)@sh=q̄e& `\=;a?3l*flpeD{8sPK%Nej&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Ƽܙ^*qAPPK%Nej)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Ƽܙ^*qAPPK%N740tensorflow_federated/proto/v0/computation_pb2.py]{W:?"ww!;t;tnhH98ܜ43geK  >ĪROR$K?dPDӟ;OO"(G跠 rG4j6j|rQ>'g&QX/|7oL0o~l/KjFú \l1]Z[ܿM+e(~ M7^Rry7pE@2jl&TzY> ` 5E$c&~{?G#n:!So-}e]) 7Փ`o>()xV:&ȣXNWgË+X'z : _*}pgSWWP"!23>{0+s}x\Gѡ7߻YS)RG>(w7'5\^=v>.'ՔCL ]hfuO5´ ˋBgcӍ .d<|oN# O@oEtvDF42&>_' A*#H r+Jх gc>+mVs*_B!Kh_D#c})]j`G Bu/45iD )=OXL i@Als.6e57> Ѥ{aI !T7I9­$Z ]RڱKтxRx; 2ݯEhPS$"x} ATN AF}*w2 N58r.zCRAףAqBtYX%jJ fFҧNM"9.^S0: Ns7xDiþLX 8hQ@#0cygDbU0G}~g \K]c 0 q 07ѥ0"s7L( B! j=yĎ0t#6Ez~)uԟ1``X񞢋<KN40 ߅70Vj,P-f-"<XhO%=`0E0GB9q"Q:%XnӤNِKn@;I=xL&ХTA @" q/hrCh/7*JBl1CO3jB4"("࿆I;71ڎHE%_pw%l*wPFxX;(*肿Hٌu$$@JVwvT?'0L@TVwwT? wZ&-V}kGhHb2t ݵPQ0}wή:ܕ";BgW  ]9CBp#~]}+H\]yƸ5:;N]0 ]Gp?~-=d}WdǠx9fk/:zOfQS6 -iMnz`I|U-#O$=tjM{MO7 5J=fed؛&`{ERok=fdmT2|ak`gjЋ4*-6/s,A'(;ønH-.Fe$p4(qmBq|SU>Ht 銭XJL]Tv WpY-u۬m?miJvV"Q\}8%Z@.YdUm9%PĆqh@N'y'v07O*؅j4Dx{ T< AyD[+"ӯp%pB!?o:H|ގ0k QH[L5M×7&SRQzK|ysdrGo;ALPrQ𧙁Ů.+Iw[3FU 9۫ñhr(\כq]RF\Wsx,l^asfD8Vkiy߈i LYϲw~lj2Q?ɷ>X$VѨVѢA0}n^Sab/R*%4Klk`6cிAo`6kc٫ݝ7#?h=[=K meDVCBzx; iBff"J[tEMzSi!A͆/&"=gj# <$`SI ,{-a}D ?VnS5լ׺9o Tq"y RIV&N#2M84*&),Z:JhiOL7G J~ .hYDۊi4HX4 9ۀ(wTJuAɡ o2 `A!Hp(7c'nMvj:OBN[Os,^9L{0g}Nb\|@-P4-{Hp͎2ܩ;x0-c"#ߛ/vʾb{O>7nGZ#aGOs]i{Q>F ؅J#_9YoQ;A.hz%9uxsl JMmMӨͻP[ ${tyfL+|}gz/u֚ݸ7N8ֺuD"շQ5-VFV-[ESE)!A?Hf\:(gf RD~Q{X Pw]_p1bT-6P^mnT:tSg`r -_2/ -lci@7菔 Ӧ/ .?z&o c#xOU cic/Z KoջS\þd ' yw}JPlx]D@![Dɓ#mTGLCF'xεtG[ix(2~DiG&3?E-ZO/>_~`X W|amU0v)JBf2cE<>l$5tBلs=/If v-el)IYa>I 4溊lR>$|$?0ɂ%)h_m"ȁ+&{lŢs AP|F*X1@F vrl-˩("z*F2$T2.r0jʜ*#eQ2'괈F2p i-iU !5͠EB Zҥj0*HTkx)Ci!Ó}Sf{ xLN/1T𨉼p%}_BDWNE=|RyzZ"l$NUkX2%sT9Q-]ՍlJ^c vѳ!+9"=!]kXR}BBs%x@u(nqIkA! 3wVvcBTUKPlJt]if!St&O'0ea`8;ZM`5#N?;A9Q,"JU3)< QwYנ [u'U/a6pR ksKyk-LffC,uhH!).&1d'Qt lGY@ITϤK4dyh={Vz5y*YL|9!(`2P4YE9z8eL#5$F #v;de*wW/Q+lzMxFLNI1]t:2+tF!*=)#{ɨz ;a)T\)B)XNy crW;ؾ*J T}WW 9Toq j=Xyźp =Ǐ/lzw~H}ϙsn$#K%KCeÅ'hyʭA)c4 h8T*Q drђ<[ Rw!x&4u*膒1/W_&&qf86%1HRtiab E=4`EK<<2xTm3p;qtP$N 3<&N.Z&CV( VГ4+[g8 wk#b!)AjYR&pS yMD:eKRcfW~&}O N`g_5WY9}6s9op\Ko ]6'.20ʗBI|{9L\%KwbLSM!a41e3(cX5HS-VXyG[C3 4.++7(e<@eC *6 _atɭ6V<-<'UoBLy.HdMo!e2SKlҪW [L B\[D^[VH@u듨H v39|f>Cs▤guQT ] piy~(eVwdX93Gn8Pn .H wӿRDPK%NīQS5tensorflow_federated/proto/v0/computation_pb2_grpc.py 0 {%Tċq-McFz=?X"cA )1Ozv.Wa5DPK%N&H 1|-tensorflow_federated/proto/v0/executor_pb2.py]{s_B׷SiMڴNj,$\|C}IhCf=Y?~yOܻ}٫>x p"0zlHX]~v_\ów?A_Zcp;lZLVK?!g܁ =fxS:_7t??zug m o]@AX`:NBC``AC0I*|X}מ:3vB"~ (bj/ iʞ@or:U=q@FS?Q>'\VU w.#̄Z? ִ廏l6p뚮{ j*քdKg/8rJh>xs?a2\qKr88=}qv5U7QJ+=&wL!9,HaxDp qW{} }ޡs~0uO3QnXp DՁc",\Oł.!}H3y.evMz+;FyfpZ/խ37?ČG9N$^.`tGȮ PZ+T`n Sf·DB'Ql ꥲ@Yۅ<7_- @ ߊH{SpRxdC4D lՑ̪GA- y8αvkb`13ZLfvefIgy-4ScRI1- bآokb Ɖ.cpl2U@2Rjb'F]%69^lۃr!YFL>k._`KB ֞OyM 2" &O['mdq[iHѥ_pb :EN:v\]k7RwYbC1p OI6j'GTm8׏5B[ L Hhm/H@,LduuCt5ZUlFLz𯟆W\%+Dwąlv~1&wdB k:LR€R^{s֎PN!G+QGZFB7DV3aZA00:Є?LKj3.: j1[ ASg/&?TsN<=.DXz'>7>私F蟔|̓AHx KՉSg&(ɋ̚nSy? #'f瘻 f5?xq~5Tu*y M46܅(n,>R|me>sl1>szjj[j"~woQH*Cinp<CyT8[թx0hSqO:cIRtW%|=lOO/_:)nB~ٗn<ӠUE3)vcc:=4) q@\tbĀ0MHH+.Ug&]#Lf3LCCsQ~KFr|~GA܇}KCǽvC>~V9`J{jy/?{-;H*'E9^s@7Lc8{J!}}e}CFyCx?ڼ\sl?{<):&x8"qo<<^#@o=xփ/ t,iFHFU(KZ hlK ID`Z=Y/%3 D.AtRb_WKӐ*d\ ߡ>+ܴT7ߥ!cIX@Jʮԕ÷e%:RHHS衚&׌/h隲f- ^C_b$!Dҧ, k茒gM>Cb ,j ϐD'qTI7Q|Җፌ)fT`nď(ni(d8Km˪F&a2U^4[c3v5t^lʤH޾@U It14 D"e'6%mAW'cJגgjbxk KHywIYbkѕpR\= {2eˇ3Zu*.76HKoTŷ4En$fGbFmY;̘F9(Efj>4;)Q~TSȯeز텄_U0: Wsa Zrr=ʒXIt0b=!k\Q[ -wr E+AdO C֐55D ;3K-DaKW%Ţ>Um\'ZŚ ݰ|x%7CSZYPQv|OlX5.):1 INRսvq!n /9~{/pZmcNjqTgZ_٘=Yڛ}ܷW?n u{I~s% 鹣n\_miz9Bu ʒk!M tV VD;7n챜*@L"Q eXbeL d`RCۏd xIM,͝d$9ȜS&һ&.G"6KeTͳ((9#jtO8dqFxYaJ_ ՠ4&ujq^V66SI?;48 3vDIhP a€P2a" (u#|aBҔ f4'-Q!;y7+604ܛ5cRotI^rUe\RIBb^%%ӊZ TwڤQGWɰɡQLLAA{7\i|bҵ ^ ϽQ:Z 7$߇8nl C1^)yXW ؑ7z9ZJuLqY+D@y@Ol]xS0+0-GI5~qs;\=Bŧwm&˖ѥݘ)RL߫B=3ŘKXø+g`HCU8u:~xO6` q5&rg2L"SRBS8 DIL!YBna43Nͣ]\{+t &nWYaKnwʖ_ͶK6)_[>tͤhTǨV;R@h&sJ7FML')6ZKYC[nj_m;mֹKZV['G3ٙtSZhX{%;s}nJn[19t7^+uEr 8]9͞ßJP  n +y6k>5Zy끼;I)rHol5PK%NC2pj'tensorflow_federated/python/__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*7PK%N-S3tensorflow_federated/python/common_libs/__init__.pyeAo0 sН4ƌ+zT& KDf@bH||YO9uScmuP.ƍb@6HKj-]ҢJX2 YKof$R8Ln^M`Q,(BC_5z] )Fnyj"rpgVVrj@|nqLBn͛2nn_VB4lf~łsůLx'Mvo)G'lUK+% WNl],^@.fy6w;QohKllP/?m< }Z-0'CZrYn5woBSmdErXb@M.09+4?3Da-yM܄% ~ 6E1h[2Kp?fU)THNXy+:YR @&[lؗd"e o\&j6{Bʙ@ 힗ERې|)nPh.d*DT4r"®43z-B:.hU';Yb : B V`*L#Pԧ{ QS5k]+qrODt ;=71QUT'Z7N}x!FT{}rL |B2u/rWTρ<#.tc`d>d3lvN;E.lޑe ̈́,i[M0ץco*^\fNRjzwn4XܖH< RIZZƈ!٦lTW;?6dZ.Zqb[B&uG0LueǧF e&R>Yg 'c6We4{r*ovK [Ud l-LLv>j9^@DiiUõrPLeQ0CP \geK?+JoAMYUYdTegU~h~I3!askc)i*؏hݻ.Xx0ƂeQN2VR;r›"rي$( J$`gZ8CH9JUa 7"cʉEf@A/4,u9%˗7HYM*B6 U6d`i;fzQUVbmϑm«=,si$՚7tՠ \yEP2QVMojf{/1@*P8'mhleG@OIqc^ @0)(6["AcZP;% u Ugx&2[TN[e5?& Gn-AA*jf[l$ŐR+ fIK%2M 9DפvĞ~ vR6hSBTp1`eq=҉g"F 'D ѨbwfEi2{;c28&L==]k?'Cq{޿3pֆZ} !6ZIu =0DnZj5vʼny8\*+0׀lW6dO(i-42!1PL; ūkJo_kVSjPtW"9Ɩţe3IWc4Eҡٝ(f;=bXB ˡzDJv-&n`+T2$謨f=>M 2a (Cās6TX_,t9ƏOOK|.cc_Wԥ2OrPTd؀y:2VgK[l31>nj! <@2kӥNu K#u+wᒍ6lK295FY:jr@QEª#F+Z3.asWWhCr %62׍O |aR5SuZH.=[Mk}6*@q2otIn%z}Pvuͻ!IB+azA:mD/$b01`[26U6{5~)?\@>uPRWV/D3갗gP)iTc(p搱sAu Vc_! ō2.Tb,9ldg锟 X^11·C/<ǵ6yu*XRZ= TxIo0XN%[TÚ'Ճbl,sz iJlLi*S~F21 '[t:'m6 7]zAG.1Ҡ:lTc[ZAڥK)FөYa~^)t>Quy}DgJTw/fcCIءCnVw>c&Oy;KhLڣJP';y2ўe듛vl7MN<3615LkDq;kxX5=-f'6sJ썼'7m#Qr+ĵ׽<) a(dvF _5ЉFE:5S/ZJM ºfo j5)]@yΗymp+lVئPhPX`tq_y^8㥫5Ԃ~! ۲PK%NiHp7tensorflow_federated/python/common_libs/py_typecheck.pyYo8~_1>S"6W$ƽŢdZmʔNER%IÙ!gAi L!?]6xXo~`duZe!\ì) ^*A|[jfHˏD/Yix;y #CP1+a/3 BبT|HdnAiH}* ewWf^E @X6vWDؾJya%Zs>Tw uuAX8@VlF eF`=B2PҶUN/bv n~_~Z/g7~w7 >]W}cȇ HEqk ڝ-632Q_z[mE݁\{eMQK oN ...>Y*{M'G+a̓IL@\ "CoJ[2@Lblb|Nl(2x^ ʘN4ξ [cb*R kqȊb+mŤ.°dzyi9w$o0pXAt>Tږ[C)4oh|plSɎʆNJkD8-b-Tv2?9ڈ=;/CHB2QR9Ԝ.R ,Q^ű4.ŒBZ0|R{_RڼG#9N%RAP-jnL(|?^])!u`BFv f} ?cGeztTڰ&>; 21o4z bH~-ߓsl/ȇ`m&"21}$Lq08pa8 D*O% =}** "m gQRxO6^j B? pRljkX;r+YXhTaƶsKa\FN|!T/n Bj~P(e%|(q\_WzutVYh) ɢFTEC= L=uxRo:;N{[@s}t` ʲkPYlp[LDR=csCE**i;sTSwqgk1]w9b@ ,\SB P]i7nj(1?mי)h4}5^X5S&8g2n0Pԇ>xԑD*N~yط`ԣ|hfY3gLSf%|0fZ}TQ3wLx9~}4 ?3/L?|sö@I8]|mMŦG_D֮:vgӪ';Vid8H9dtA57-ܽC~nkw 91DO 6j̣EzX3>;ԄLjBu]`56SH<3*愻(<P"rf9p7"OaehZWTX[&|){63% TV*0Ip.~g CRnbAcf%h6-IZ˂c n&uϜ}mZ| MxOVSd Y lr`VTAqjD(ǧŘ9[]Wl i}y}XJE/2n[4.)s[Ɲ\d[غitLtensorflow_federated/python/common_libs/serialization_utils.pyUMs0W줇3Ar" I&iaGv֎$75 NhJN]}9+!-p3 %_GpFba7},&(җZ%Qssk: ԕ(vkIqt(xF_mPNK8r 6;~KaBm \aeAHԲ*J؅/ӂ Br_*,''Պqϖ)]!Ӝ\ .F؟?k״^D+PxbV9+-Ek$0V[jQҋKc{>}¸N>^O'pģb 7pv=:N#Z]B<> iEeҎ?NG;ƈ[r 3E BݣT87 ћJ)rwiE^ojEIb jKˡ̱SieUJHr$ymkIP75$ޗ614ڕ"mG?w ؼQ(U)A0e3%M"Buay}HpMQT 7H"˶H ٘ p~B\hDNXk3wikc,EϮ?Q>< qLgnc`΍Gо6zZWCtmԇ뾷-Onk.H`GπwݸeݱUQw̬zu!3ȸtؖnډyƵ\_-mo{~TgIzybX\SZGméCe !WtFmS; PK%N\uM0 ,tensorflow_federated/python/core/__init__.pyQo0)N&%iYjhm'dAlS>ΐJKC^;;QY`Tk7BV|c D+#u!5¼)x3u#8Po]8X4Wg;2;F .sx ۡODhe %kj2Q oʂRUv- x"dbY3WNpX.gi<֩gEoif7b))VBI L Yk1+F +|Ffa cHj,Z;yŋU0c2pB{?~^σ_Zb\ u bEo~)\1uA  d/("|D];P¸4$/%J!Jazqsh!J4ӭGFQe qնNԔE$ۯQ8Y+M OwRNYFlI \սqFSiUhv}h"u(^JW"tP>цYٵfyaF%:NF䱜ţ{hRΌeQ V25 PI]͇KSYQ8-f{{A߳*+-ne'1n>n4:]h꺎 uݾ;2u:>*Z^2y7P†.--pj ڱKWs>MX: RӷeMos#V@V PK%N_? 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 ecjGt0ktPK%N(O9tensorflow_federated/python/core/api/computation_types.py8T>޿~UgXiw "3.XLPֳl̀fhuS~U쨵VYڬ9@ɳU֤ a*9z *ƬTD+)[p#tU\!9 1g(p.wMQx^5!JfLo(M2!K@oVSiy B;rj}ؤ-e 0 Щ 1]Cy*5{ (ah5W몄J# KĞt-l2 ef&<[m9 ā~oAXD8(DDzn0@1<,`8WT[/t(yrNh@:o1򌌆c/q'y7៸SOСDJBE&7 =VVW8V'93iJ~8KP$A?eI;;i݀>Q2y\91:IL; }Հӝr]mMI }=ogi-!h }4.m9t÷r0;4J܃ A&!{@d!Mzw'v~+6^rx_w~ ,f[Yegt-gȽky l}JAZX}HQ´uaؽrn4aXEuB&LQa;gHܰЍ?eYs/W~E]=uu8+_?._]ŗ )5ilqL-b؟KB4X(~V7F181oMeODla՘գzVwVm5]OyySQbXp`Ж<<[̃vV.pg{,nE |IJ>wmOAZ(ż0ם& Q>Ⓛ\/)⩃n8i_oU"zѣ{K;-Vh>U>xŋ2'oc|ĔgW%)%;(f7tc'EkNlkzI$;K1p>=<;4cf#d,#ыt/˜@/ay P1rx #u]"Q4H%)Ln ˷h/TyE;Kf[S]z8w^.Exu&an !N2۠SꝕԱP/R{ld-JO8 T!ȤA85_v 6p|-|Nm jZ]GMnC tj0 u4-r?,Y(tܷ\:L郑nL|&ESu낉8wFB=538jwN]郘ZwԆsg×wԟĀ)Dv3nQnb זmG~s{Ѫ'ï6oF21YΓؖlL mKX(1bB=abiKrcWZOrYʍ{4ԛbKmmS\U%5J _y׊,sop-gjl/ZAy-P roGs$eqV7RoEy8¶#:w~֏D"}6NjH=a9T֖^1ʝM6(^Ma{MTll'U9wbVbB$:h&*&/wg>Zۺi[]8}ϵ3#Krȋ̧'R1L1.0r\m&dw$k|xWOP+ uAL\J* x/\daXC+xcXu]!s c!Y-QhGҧ`:'N6S;$'*/C!MAK~XgQGT"} a.gC-z[CO\17Nȅ0#wj[1g$jg/T3=N @G(=$,n"OC<np\{֍m 独ڙD|ph:s8|x^,9} PT_fP%_z,b4(`G)3\7 02_}bE'Y_, dy#-uVx`l% }4 UW1Ú&@ņ^J9#60C} p 7SڄG NAJkFO_\úo_Jn5F/Nd*f# ><_27aYC ౱~a4T)(7e6~ϬХ5C3jc8; O`\"8ZcJ9']/'?mCEX];Ff*4 x{GAO>BPp>Ȣ׎Rf[1ƤvOwkmŘ%9Y#tًF۠G9q0#Z~/eh}wBívp"hil@^{Bwb'v jkE:v|F&$Y\:hbO+v]R.SXY$nA+S˽=xƲvXg >A'|K|s%y |ry_#w:=_e'~~L`;o-ʚ|/s0!؟*'u Cv6p}^I'Vm\҇P  J%Ļ&o }v'|u]={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 %"Z72tensorflow_federated/python/core/api/intrinsics.py[YsF~篘r^$g/[QQV\%QqICk`Qc.BնΗF|13U])FQe2q+I&_[oO tQLϪ6.Wɗxazq5HVVQ "7bJTUKuUL͊B@  OKxsB60[5MufI$iz'ͫW/o/@cz,1Vy {} YB|5 rY+ѨΛ\Nыf#kR4u6k9``/Yv 2_n&_\\Ϯ.oŻWwqqSVzjю*C*Q`Y!S4_)\rR?Jܠ7 "_lɋ/~TT+MZ ]m= ^xgdQ뵸_M[{܆F`{}cYλ@>-S\Ү{YђV IHu٨42A7B$S`{-ǓGYZUBin |*֪^B!=#\zfH^ϗ7d/0#Ʃ,&d 0thBnUިmmGV5 RY b2,(eZkc@-@v-vdi^ɲ1vʪG tUN1<0 ;bs|x Q`SRd \e$=ZgaTȢ i 1M޴$qA(9I 6 c)i e }0O!07B=J>~H͙q9_JXZ&gRP^e$>iA*MEXٓ>VJg(D90gH SfN8EZ$l~BEko1ɆǬt[w j|s7}'ξw ^<0 @& BxWd(|"a\^>3YE@ Ɔ"c,NSkbaWiNs9ޞw$#O<8-0N:#.*e-V}`=Abo@1 &Q 0u UJml: *.$||U շč"Te/f U7࣢]26 f耡k c;jbѹg5CN ''[&/MD2[ĉZR1e @˴h<\(עFSE4$T?vHbMTp|Bꃴ.QvN"=OG@-#P„Z,bw@Q-p9֋6%v@y7{]R A%G)Ц;}Gzb`!ۻZlU;Sz D}RfVcA7T J1U|ŨH !>daeeEuHĮnÞݡnNȻl\q@)u9 @0-"=0HFӫGed-2e/Z@ΣZ+21˸%v6@K\QoUvr>y б5ʇr{([_cyH,! G7SDe>DFHeePLsPf>.AF$k n._]}4دm^>2aEkW Co/9? fcqqfdQ&vr(Csl{wP\ XbcEYJ.T6 P:ܿf^347 N/AU@fngIpn:I}QMJ z;s)kZ( K>+Vq7P휄Ƈ+1,®x\t>,dub'.XUuƠ/q;f3ۡI7{ aEDI?Ѹ{tu#Te^c^')eNQF\7\G`l7|[֋PYXsrđJoW.ӷ2*>w{v]osz* 溊+ÛD`)/NG"~GGF9Srq'*qeć rdp74 yҵ~a<ݞUq3뱁8 嬚ƫ2yw)aI[hWA^̸b0-JbLu~ub]{f'ܨm,Py^bTYlֈmD+wlXb-ej9'ˮGLpFr;铗)D~?w+\N(뺲JϨv8/`iEִyv ƽVB5s3a"6qOx2A]wkh?r~M3&5j}Tczxlp#8#Ppdb\sq oGS114"kZiK_퓼:<1PH'kb,uv%# d׎Lm$}_~ ?t펩}lݙ}LAm+6[.G{-V1I(wvkq+3sCו?QQ>:[lM3bkJ IBcoeA`߲sQN458ׇؓsX$>Ut!D8H8 vMG5PSW )҅Τ92ܱ澹=S +qWO1]'>d~>n #sƖz$x_7ZY*U?7a=vŽP3$U7TcgUqйgD> vU?T}cսCw0ӍskNtDt` ==Lv7 )>4G1 RSD!Nr} OkQB;bp.9fcَSoضE|gʱ3ArfPJ̳C MIk&Z.%}^>z[$C0jv×I֎ĉq%#r~ڧキ G!Z/tK;հec4PK%N"%(WC2tensorflow_federated/python/core/api/placements.py}SMo0 WeR.C|`Ƃ=M;dIhv+XKM ]ؓ́˷)7nL+ S+Z˒1|iqRbEɿ12t^ | | 'A+N A)Z*|.H iBPf$a4R= F [>կq h<|"{7}Aml\3Sgr-Ysztq˂JgJ`!$u3ojCf''q"~ `IAMgٔ9>dK6y`vHt N7) {eٺE#V ڜye} Bc4]+}gy(J4TM&R3l+:Y>l%ٸ*C|ލ1SEQL EQw9,Џq(8?U(Z.Cɱ ;PeĥqO_.MJcؤJQ y`TMȎ)? giOBSrgl ?L2Z4Lg\% W+[Kc_PK%Nx;Wfg4tensorflow_federated/python/core/api/typed_object.pySn0 +u!MX'WiG#i]?JICoE)_T Kt m+=S9*=B++H:...Nh8E%~uR+/aSj4 PsA-[|)H>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ܢdPK%N^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ֵ9t1b|O> LطhԽ{c6e^uoc+T!HI~62 ҙA6@F2sY*ffBZ % CuZvH` w"yt8y "чN~V+2z8RΠ ީ1gBy'IC`( UtV+'[ykv>"1¦h2C74Ct:NƶP'-DCQ-2hFMƼ@D b- 4"r_/aЛq5; `~nwe$Mm 0y9ᷣ;08|!GО:u?eҼT)p%gLC,  f[~(T<8,yWި;]ǏGQЛmFEwZbn֝.y<39՝ 7b6W7]2bO1Q|ey+cL5V?'MFX*T Ŝ YnŅ1Fl_wZm| ,''h~dH*Kc4# G/hڷ{B-Nü&d[x!O,CIRj"YK m2b,݈N wnn[d/; $s DsfEU!H]6{҂9aE[`| Edy'qF>։V.oJ^:`lLtXGy+q]JUSrVqT3#O>bHh_ij &̍e2Rg6Y'HmPl,=+eYNfzS=˫iT8[И{w>ɪl SprDI|`i ִ5,jVwe˹NnJv5 F9+Y`lXA(Zkf$rLUZ\’Gj+ ޣ#B'ƮHQbOTxY`>!B5mޚdV~p Zշr~l-xSUkT쟊 u 9vYۥtɯ[` 5]֚*!ֿPK%N;~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<^hWre1qUgW:Kz*iҵz.U=} V>j]7SǴP/f|j ܕ{MTQ6j_"&Sޮ]B.ϒba4Q.Z'~mv*ihs4O.ܲ~7߽ ̘ӺVU}VZw*V'7TrY]SoɊ˩MsT)@YguSe}aKvB}z+}ޝOw}T~To>ݻw_oR*\0$3cF}LSo'TUVr\겼Nvij(y͚OZߗv*xSaǰkeahʭ7f_9~uwWuvᔻUpbCF:l (2N4tx6xxZ5|#gjʦ]?0 [c @VYg,R8Y '8 c0,_UϗyPh+֦گBe?X{;v>mZy(!OW͜( oh"٦$F~)U$X/X$:§xXs#9 &=xjMM)ۥ,!1 z5q^0tŚlO3$<ۯjtʀKp|GmUZ  Z[V.p93蝽Y`~ ZFȴm,`[LFh܀B9 FD<m.MYqh +؂Yd~ ջ`S5-*S<-.C.ڝ5 m=Hﱇ.~.?CLZg5 icrq03̎1Q2PQ>SUud'qOX۸ewҳQGh Qv8'_L.+@%5.E*Pp\<G@uzʟ%}@Nx{kvh~drjU(_@_+qh(ٙ+ H;M@Gc#A/ZBvSeЀs?p!WK`7fM?=ޚOQ&=bw?@xpzFXzVǩJF;obeM(?qL"_C\A+g1t%CxN Ե*ꢧ`'T};:F%%ښt>R-v3h@M-#`K=XRTzݱ!=qHLo`s-4Y#>iB&( 8p-Ph_P+VW+h Unr1!z͒EhG$=þps'DSh׃Ԁ(nMGIuhG.L$,nHCq>@p@'zGM |ÄZ7( ;;1΁‹~L >.hC⇯vN׻ϐ3s~]<"X߈/‡>p*h,k@JbqWUωXݤmQ" t7I`(^8yBS ,@{m'e 6S{͡)mD1+xDZh)NL|V7ã)%2C qȽr'dmO!|t܏,*$K8|G]D\gIG`6[|q<6YUnBfPi %(iTڐo1@]8"SK;HwFj}|AVfdM*8IZDHa\c~zcRHP`bV1k_l2QP%wBEEt[ ̥9Qm39p3)+ILgEdy/cs88hoȆGHI"qGrS=&#|%psrKL4e NWt.Љx,doo +ƙ&M"z,:#f To#11J"%Y;;>HLr^U^gi K\&^IbNrLUƻ D-tw(U6(M|eRl!OΥ -0(m b5)A.w3v:mYV(|jٹC3eqJ.Pڷ%+t5?Gy?vDS!N;<[^@;0ko|t,V^ =sw}OI+["=h["NBi," fʅs!`)(K#&,(C2Alf>,Q%ahe+l̸F(v#JfbHo} 99>h&cTD"`?6.2wX^o4-(fIA>OtUNђwS Ƙ[YTi[{3 )`ܰw8'3_D8Z@c%4 tpkY<*fPu3tj6ȥS9GQ>onbG/,f/Z>od^dK"(ѶNLIAQѱY=&\=`Qwbl^$D Aa}=e= $m((mmw ;<룬v]_,mdy:y 4XtL/1E%T'8JL#=Npiư8TH =GU*ЁwyHHM mot-17݌8$b]Uȅ]Z]ah:d0B֎&%ѝ)tJ:PK9-tN Zuö>/;E+2ڔW ;9a%,o6٭ B̿TM:[5 0*)T\Lr%XVnG7Y_2uZ6ON&'|匝҅ Í*BK u){ Pon\p| eS^渪%9bjo^tc9'ݙBt4`ī\9%;Zdiav)C['PΐE38=QRLפ}̛5G`N7}Jx@%He| 9ƇZS@җ30}'=lGYNJeEH *ҕ?G-\r6ڙY6$ݥ,kցqNs̝PeGzdy ȕSiTp,;13F4)G B=$):qJ(#%Ө`Ks \U(Po 4wkhflrYRQCN]#mMJHaBF^Hq5QVXCk|݀f 9x1I=u%1C`67:;6)LwCB ِeE]mo_ 8sëzaOjJ쨒≇d~`NM"ݣ¨;hK&A⟁ccTI CI2˫^<$UHG+SlKBy?D#L8M5@2̸ >.1"[H\C(ERF%PBDA &"eAˡ b#/F8cxaezqxW絓ۅ!r<d>RL1*ABjL %k%ĺՅz( RBL%Eޥh7K `BxuCKG]~D?tUIFnpj~ !4/%CjhRF?z8M{M26kTC1K' -*AȨ#סNBoЙk 'fk#_r%M$u%ΝZDszkИZzDvO^y[‡C7EO)'B;D鱐{ž1޿bduKh:M?uBrqihÌ!g:aV9.q4?š{:tUb ;ګnz6gczUlgv1unI'^:8keI8 ZrG]s[x1r&qaLE[O\O2 #"ܻYR0e+G}P|| ű`)ZdLW]LkrmQ/Ό?vSR.h# hs8Ft E$~h-sБbH߉FѯKUA3GLygk]tTߞSQDDsЋ8]؀%3 d lVT'/^EvWpdk0d Y;P}U+t/AxkPduрJߴK!e%FU(0樾Q|RVFlOkG#0#4V(xf< x_Y8^t&3ask8M:-5s HZcUZ>Gm3+`y>Uu33ѫ%~ |s|"Xp1ĝ6/dž@P'$S<3]o5A5%r+4ha`uFђ{M(&H:Ô"x!b?!{hČh+%@af%twg:w ôVRC8~K>8^/ kfK8Of.qT<}~B$9 ]H{F& f0x}#.68d᡹6T@ԧ3uf8;Mީ4fր4A|˘ ?769mZMSnXNf^M%T?E T҈M]-v̩B\eCox2Ug>m:8xT1 ׯˡpbXb.޴K5N){P!z+)W]KLֽqn_E VMT#L"4Z 58:PF&6(htYƎ : q\qc[Ю8Ʈ)e Y@~LjxZ/}Za҃nRxt#/("1Q07< G& qA 䛤zQ\iWU&z녭9ɬ[r6u)2y^nZ1ҳaͦWܘ震`1 h1Q=HC=f5:x\fJvM$`:3tgj(T}[[rlbg*`Apq?n{rnWh#=#tc=60\D?Qp9*nyPܹOx5|Y,7"=?J[z 46F?/…tP᳗Xyw{Y,fU֜pIMF4^Dti܀lrDCq/$ м̏=hl9kӅ! xYKRJCFd;qt3e۹ʼn YeJ7Fqlv4+)gR 5ܒcB|x~W CX2s٫$/(Icͥ#Wu򬹳"SD2q[_$c=eb[ylUIWs̳g{3~R~"L^E8**_F^j%eۏ7?ؖR8l]f5uP/o-Hb:¢ī T@s]"y v΁DJ*~yt)wv8EGbLG{*MLiz+MPMJn{.Gd9&\|g4ߡ JmaQ67"&[-]:HUWޢ46O΢3#N HN#&L&7_ĝ%a*:VEuV:8jt!-\L2abV;G&7Ԗ G9sAS tdR*%ﮎӄcʹۚw/(s5rToSyxgJ^ӷo&7s =YnH0! Fޫ晟(ut;fJ^h ^Z4)SsovE=!Vg~a|oyo<1KO+bFUEUqW1l==Y{{]{le`]C߫ir3dqC;c~%)hH7I.mrt=|I&62OS _: Av*$+weʹ7R\TNɸ&Ek-_yuȻ7$>G 9Sz$9FˮG\+^/2B&A&#E&:N#I4<<%?9b|` 6=fW諎ީݾ5n.!mnz !);AD<3d+wQ0dV5ݤGnȯ1aD0|0x%DvG$!Ѳ:)>܎ ETCi{SK%Eqqs:XMvpޞ݅Z) օԯmG)MUebS^xSQ,71xY3pI6U."/b]czY#JyFqo-YCR ?j*UAoѯ"=EN+"9 "nka(f,$l}m剄DU=V^#^+@sH|TcQ~ 4P6R Kh7G֠юǘ]k&}[4 /-Rm}3HcθQPĀ\bT 7y:='p_ E(`q'9/% Վo@ t=xf%p=CVړpԯwC4ʪُfR;c?fIe-!U4E?i'ߤuh:O O2ubExDQ$XޓToЕpL 50lۑpYx_,\6Z{ >u+#+ED@(K2JyÀVy9QjUw P/`<ޏi_&_n?n|3\M.oo>Lf|}Wur!#Z[(k.T\/+ը y AZtSFVu VT>:88Sz* *C%]v8NX> \VrF5E3ʢ$δ(V_2Ճb/cUW %7Y~[Mpʠs5n-ܣd)!$YoNQK8ֿ9r6P(o;$4oW"& IG}'mu3fnʓwg~8;=FO:>3t(PWVT 3Cc J.ZZ̞mnFcGC~^9}/o `H,^Z64IsfY݋>{zwakӶ(mי3:^6:-y 'U SUMQZki;3LAkZ8R!U #57a7s?/7-y@z*Ș'<3D6DE--OPK%NcH-Itensorflow_federated/python/core/impl/computation_building_block_utils.pyTMo0 W2uXaGi#y\7~iv|a|||| \r h.:K Uo_y?tj 4aq)Ɗ脳)>m߃㤸97ƒVVS0_猰-lvZdPR96HAMMRM(amNr8.ƹfzvuЦ:H{v\^͗WqȹU5Z ddÄrf@As 9R.]' 2JAZZ=n8 F>d9aI6bj 7 Lf_3s28d 7gu‹D|D=!`N%ܗZY!TvA%i^(5mINhJDQmz:I}[ u -dYٺ`yڰWV׬L?Vyz7ϧ* hl~_Ǘ/%6(Q3L7EQ%O5e]cq]m)?Yh ]̵4S+qȅC+C+FYbSY4lZ{:.(BL!cA C|l{g-n#] {+R d՞*5- ho,P3Y[\^9)LH_'5hӡW&ӣ~:/LV\2q?'bpHS8߂ʷ2? Td~!$?k_]Rڽ rSH&uh2zqGŸPK%NRv+Dtensorflow_federated/python/core/impl/computation_building_blocks.py=ksF+f#K!jKVq;e-[٭+EEH <#9Ǽ1)T$fzzzz5='lEҜ}{]_BuWsBm䓉{V7yUgS1_G_ENl{QV5ʋLdwlۊj-\f6oi !AT6 ·N$-!Lm=8!l^]p_|1`L}~(iD.a{le4VTHu 6/T63M[]PKR|uNJ|{`p!qěśߝ_y ^!w`n[#dtR$ڻ,sXUP͖*_¼.Ygb]du ۬ f7yKgRW_}H *PJI5}^ N5Lq'EhUW1vf3QU//{_46Z.# }>fn>T ݦ*|7@F)J[O+OO*y[m`b?mmNʪgn[d! T ijٲ=7r kY-eжx L3@vmlČVef*j5vXkB촎N1!HEAH1?od=!|ֈuL_uUG/e ?aN@_Q$iGB3E@.Otd"n B">_~E ۢZL#Lkr/NX$0GBZD% ܋WFL -#w^6-Ά5"(y[Qj.@eq[?Z  `%PW;&8P2/!3hbn>A!P! BTFRw PJ()̷"!a#MD JFJ! qd蓔 r[Q^ȷY3 6U(AM6_j_Z)dGh8 u2oˢtA;Px&(ͼ4op%_qa4BTNSq 2 B"81.(I34bԷGd'1,괬J4R]`uZȇ&eFu՞+zJؽhY; `LKej)n:ͻSSeā]+#,Ɵ42F sfqcӘGeD3ATwdn8iln`c X wwKɈܑ %{ l5\[ϫk4?f фZF5gIV4'Mn1f[6=FS@,gldKrB4䘛YH9)((c% $#щ;ɞTp}ö9衷&Oܹ[[\㮦':ܞf'"ZYQ{LB3[عrr$  4ZemUsmMV cR"m/s#jOśތ_ٟ/w'eia=4`[ dwlD$7|&5|Q'=kf4Ƞfسwh8]CDZȣ 4[[0"1K(0aK KĖl$R>mqO&{U{YR9m9ܼ> Y#EY{IC&7IKюtB2)Z ^6ࠃնL&b_Ob)P R6}*X38cP]qGG|8MEԤq,`erُ%fқT44p8* ܁?*]Zd9҂>USL= ݅8~.V(#u>meB9mf.uDWb5NNI}kFSG5sKIBTCm}HGj2Zg+# >G솉"-cˊ3pF}͛3c}qd ="P-o,Cۡd}(Qn0#1A/z-.L$GmuTd$t "700~؀(8NbE.-_T r G, \˘q" \VȗEu!20b8i`c&d:EZcÊXgJd=Un+KnSv;[p؇.$ |GxXjzShljf{GZD@'I~ +~dqGpj~u3фl&HC1nQL讬ē&F#c ` 5-jDhcteDH')jd=@TpH9nhz@3[DszJKfeT+J|Y^925iKTO0/5EFz'%c 8]AM7@Q>̇.ԅ:p`nvVfhJVEg0j3ZP/Z$Rj,p'u:4 :tmfZ'&qǑc6,A{jV3~/cʸ]3zجc%mH3c7+ә(r4c|" =}(u?f v(5CJXSJ*9ʤYl"pDJ1LӨj nQAg۩ٶpFc[S>brFW WނQY06BIuDERb& ˬ51x{% u>5P{2侙;2`g^hTh+-6ODi#^&>6fKJ UY͓A1"a'{-pPuآ(޳rekBS?q tGS:߈"+Ǫu´%<ꡤ&Wpy-Gvxϩ˿[oQ* W34x>'OZ]/W !8'Q_8ڋ%ש#p9ﻮ~ P6euiCN u^Z*Oz{1{W^fu~ 6 ˱stnQUvDPn?)^ґmg;u4!zʺ6]s:b=P7䊜L3LD LY)-n:Zh)\&ʆ1`3!K8βUV5&XbUn4s>1B#~89QP3 s4TضXV"E{z>/gxCΰes ,3;s!u;cll}+7dPڀl >8F 32]CZ@(P*XA̷r<8֙[y# UA.I$١Hc!W4A3Ja)9$6j7ti5@!߇Z={Kd۾?N LL|T!Ɵʼn9㾗?2,?2l v @vROh({<y5x/8(;„RJi|JHjk@Uk iʛKDgFn;T31X7ST? T1ɖ}C*Tް$(cs*OTx|L:k~oQ x\;*F@|f TeC:6B|AX:iPҟz3\f>A>NIr$^>2V%qgvyIF +Ɛ FAG$1Yw);H樇<@zg7ҿ^<16tehkQ !@@pΌγdO(m5:S7mjXY1S?$%JSC3Ms]{7<J!HW`m'ǵClԌQh#y9U0|; g`A-9bls &fjD0Ӛ);B'AXHͅC!h$vΥ$b3*QoD%)|ˠuUQ]J1fd-vkRL0Rb6 r(R)<b 7E>DID&\ :Q@q53_~68E"Dogm xv-rkgh+Ԑ{$agGzm#=>Y oy26չdJ1.VqdyغDSOّE.{Fcp;Yt=&}q׉('@j&h*4 n`hFqQ{FF~xURJ\l/*앻n ]1oI2<}ӧ+Uе-hlr#(ko,Tbfќ_*qgHNį`ډC7^qҡB.ĩ†FznihܽFġG,*WIۗt-}6 gX K qA1ISe.C ]:vFf»нŬ7mW֗ym>s]c[6h9?[Jں?X-ڙ*Mza%Ϯ%̩+-"Kti4 Q22A6!>_vx419$͵$j=}GQ*X\q.ߜ2i\*_ZU;TkIAץU.+^{BVQTHtnJ0L@\ PV._}_VJYc9t*oYn 7D;ԣpDFGQ %MN%F ,ΑVa')9E6M̩<`nbLG06L~&܌6At-@|Dl4)[D", 26ez IR9Nnz4>U o}4`0!3NHYZ$xܳuug.@)h~RTYn WtLjj ΊjWf%b$Nʼ٨ Jz%ȗ2TxT/<6GUb;Ͱ*f% % #Rpܬm&َ&E]%2iZ ; {ΜmTȔDc)g>u?y͉KgN VP;g ;4ݾ\Bx&bTAxN$ݮ:A?aɄŬ,*$r[4T.J4-ծxSN@m-U"#,3X\ELdrm3>*&K=ÒcDpmP ծzbciEX{TIUO3;\Y6=,k8Kr,X1mv;ߔ'!W=",c?"M)9L|\iUG?;WEq!ldZ(WިP4e&VUloXwPU|F<>(j!&]XCH;DzS}U*a.4 7{39E7ஓ<8vN]y]SqyDk c BNkiUXN Xu~50)@zc`O"`BI‘˛QMRԩ2lsKS|]Zo&E̕d-K!O)L,y,[N~gw GRSxp@V`BwxaMnoM^rjJl)t;s&cշҠ |O;Y{54AhX 0҂KZ(ޱ`ˬ[>PvUU:=kȩ3JC:O쒲3)v;ˢnB`%xC9ruιY&qÔIm{β|;o*ICiɺ5ӽ?b!#lIcX8h<.ԓFXT6A)$g^/dhPӌ]>.5 DVB]YL8wt'rٖ`~ mxր0OmS;5;~5'v\'qj#yҙdBOiCV_b/W~6=^e²OEhU+`n) []Z 6QŸHs, T7$bڊW_׼zm 0NI$E_ɫ]qcKA?l69¤ '\+qeZ~>qYgc$N}WP?waݼ+RAu镐B[=<Ɋ٫^ HM_+)k%p_j,uRKYyzۻo/ՂtGC+P ~ *y2…uLSSn-ѪHGr] N}cNBK$%gǎUl&5=<7je[f|6=JT~lg%TI"e+ћ;ٸH168tec7Zk!'|mUI"5QS~wzu Mw *ҧ.&5қG)89"[}F"U6T|w1jkr;ٶ<}k8~ e!UUd\ၦz eXL^]XGزݒ40ȃve78Ѽ4͡%k(ݜ^Q]Ž\Ihi&fxsÞ?.Ǻ%-J' 쁩%wJs[JAq~b+ې_Y+` 2fѩޭ$A"v[&$0A䴪UǺ,|!xQvZ;I2@i꛿NC3`ƖYz UܭhoU,Tv8Ob-İ }aL焜?ՌO ^Ι<6[ڎ;wOpc1וǏ0>?@nM1 E4 -d߄(R&{O ;tP#zUO000*Vٲ8LmC 6< "6KqQG#*H\D@Te׈? X%rz)Jef0,LAuq%y-L[iajb*"tgxSf3O o$w;nѽMBvcȦTsl$س|>~ToluXI2+5C^3ZG& AdzHt`ի=lOE7(#Ge޹mz u^}TT=P vK-> 7Jm{nV&`,"bؘuCu +3: 0RLC\MCX>U*c)/ɩ6n #84`hz<0b:*i]ԓ ݡmW b),}w1 F=lMe3UXP@&+׭>=>\,Q'34lwSg"h^BY:EϋMXut3{Hs+ivmfKRY([e)^PdN SA/G )P*ې~LBz0qQ~) uA@楣ԥLhKLuHpgq+r }8I ͡!| Sěcyʑ웩 KTH9ıknhΑW&qbz{B6;@~m.ˉ<^+& _[,hhgEF2̐7^"_K$/_] Nx53xgxIV;`1:iqC/l,V~@KCҥ)~`q%[:UnC/$Z]2:\qO)yѕPi5m"%RqA-+w,f-vvܹ`"~#v\򺺥_demf d FZ?S~iJ: 67fg^+Bv 5[t%"ـJ[cpY{e9%"`"CrFC>܃ ީzhC nM~Z0U{Rj蝼vq;j"}\j}ylN̫;M3LޓG3Rʷ|FC:-L,r$(h5wD~KhٕWW[:fcTCfï]4yk-onr)T[RBnu96s(yjt{\ҞП/O +~lA⑻Wiz]&,9k}y$e@d(x/YS,h}A `D32YHDPس;?w;:&Ϝў۰X=ح\SXV׭ ME=h 鬉5EŒk0Y /_賜5YU>~ݣb\/Z{lU V+iO su% \Hf9œ[+d{^;3ǒԤ-ysu`+6>⼇JXYɔ  HpXF-tAmR7IpDy,#>K KMʀ C4lvG14i_Oers;ΙUY*\3,I:tO6όSZudp֎ N3TMHUF&Kez(IEe tMQ9o'A wf )@1֭5!3zJ6`ؙ PYjXqXr5GrI /-[7qZ BP CO?k|q:9%>x=vJ{w!F!w?4ѷ2Hp > VQA.#.LjJwwxf]!ٹA :(j̵'{pH\%oM9^lttt@<*ճ4_1f_&?:54QiImF MhotcƝ ީ aIUTWEu J>X l\PK%NE5e+ Gtensorflow_federated/python/core/impl/computation_constructing_utils.py}kwFw]=ܕG98rVg=זg\EIPĘ8(3~Oȉ tuuuuk&N 'b.iUXgʹ/+H\FIfgJQX-IVo.x. htG|?GY8|+KNbEbG"$E"EBĉ,Q$Vq1n$@CUHEoMDXoWU/$l{iv̿}socj)Ey.8"\Bph•H3d<+RDxE"O'*"2"¡Bm Gq+Njt)rˋ/./޽oۿxc "t-21&)#/QaJdT܃%YųF P<4S,TB(hf+1_@1ADr4qeMT i.yTtj6zÞH&Nˋ0+r{_BKpb RWΧ&Yޣ`waIMSPt;c$;u{ q\fK958翬~Q. azeLX h(,;j |@s2 XQ[SKA-e+F IE+4+fPoV^f7BkT!8vN,NIW杁aV^OHNfm%D3)@}$Nmi #KsuvA(nKE^7.[I`IIg2靎ӂP".=9x|GE!Nq<:%z3l~vXGlOD&֩;])3n@@a%v݀[fc\ź3$!Z\xK_ UR}.|D u8E;;5⁙p qWSx\%W($@OQHqi1@G gK)C"^Xp=ىЂEa)q3vGC?~  d蛷D* a ):OՖj]أ"UPfrV:IžP2DYI S%P1*h3J͗сWʾR, P@!͢8GH8,BBI %A,s(t&{cGY  KB19e1r};Qr&FzM[MSҾ"ǥM(svI:LD"9KX៍)<<`;4!%d+(Wඔk fQ[yc)K(%JAKģ~ڈ8?ů;B6=uhN9\Ҵ,=NE ]c'$246/8McJ8)ƹZz)qƜjAi)7#U79B^BH .]\Pªdhp ?&B!e/k\c-F d z`&K)`(YGh͠tì8o4+ =@(:с̋:i^8oS R:WgwB>̻#.Kjmcw;˜͝9b.AG9nA+KZ $ ƀ ;KRtIl\}YjEթuYHk=pE^V|l*F,oٺqyԩ W}r6['Ѹ KFEDSSPWƿi''gÿQ\Yp9Jeպ mj7̚|4qz(\vm;=T:Fг{ch,kD-qJb F걬4/P`lS QvJ6d^Xkp\Sǂ3T烕Cd9JH1o1snia#3 G|jHXYXNR h0Qg4F"fi~qvDy+:O>\G`3h_@$R-k 0_%Ѫ6zIÊzB@֓DD9U`iH ;0A;y%fiYiA S"ځ0+ʧ0ғ}IGG{)d{ 2,r(N .+Lxew81&B oFDbWiVr1NIqLL(4K#A^0+^7տ~|~{9:v)e-c>ty3ȁ&E)L4-0j#'BњӉckOL^HcڞZ0'`pT4aV YavѪpyNh6P,OLf>1,gH.!)? 1^J1ۥ_#r6, J) g&lTXbB_lXa:^ޅ*=3&.h`7pEyjHHCA"̙.#@5T>Q<H?l PaUj?.z鰆y F,*NTuq3,=V_i]ٺ.d6圪Ec$ZX1Pبz Ozc`d[PD14B$8#zep{KŨHb{,Z2x 7k $#6-Eÿ/""Nx"CK2ŀbǩLmDq-K%3%Wr}kN*瘝j['U#eeaq;\uȫȸmniqT@vf[wCe:${pK2^kp t%I:,_\ ` %2}c1K_̐@ƴ\C' wwJx]mo{z`gp\/{kUz.N*R#.^\\}ngzN&A@JzÖ oU :Gd,nd;R>A> )Jo.)yw׋mNl[Z N\F=Gt+88tyc cecm[F*ddaDrOl  #>&X16>8B46k%S]L lfY wl2@tb;Ùnz,boߖ^+jYOd <7Ē\h2YcPL4ɬ(2Kf၍݄] -$ZHd G2YB$Lx#%-Mt"ɤIDbP' I?J7oP-ܐIKEIVMZ`JE.x͈a_xaLd֧#:<*6?)XE=j\opJaHzW!R0Aºe6Cy/|M"1q-5ʎES'?k+ኛ [Jnx̹*0b!I#P[ VRF.Ύ^im5 ~:J[s.W"]KSW*Dôa7,gG.M#*L E,{0284c>Pj8Yji%h1t)T[=j:áӾ(6PQ6lN};V8(ƄXPsɲh9"FaRANOiuZf'3yۿ[caN*%R#O?MgXdUTښdn`jXm=L|D [\5@NR˺=| o'pχχ,L0sLGIeK&jK}S;PZZ%گsf+Sm"2fde\>I]ϑؒfۘyBA\=phǼGJ&"HEԦ3 ]Sֈ7/9__pٝF ˖7~0{Rxj0=bV?&ͬTPnY4#Moߟ+lT\˧4n ~,W6@:^7o?o 7!D̼j*Kݷ~GNJrt"vM!C++Zo7sH"d[u|ƙ:uT;7DGw"ezgֆ]%>m.ٵnڙ Ga+ꍦ9dY &|ŲL38K8"3jt:VcwTY=2{OR;jrVS-X0;J:qEҢm\b~~:L٘D}!]6ʑ34/2J/mx{3WQ th\4W`M4*B#t〡ynqogbk|1j77Yt3"5#ݠ|w)e7t|oFUo?1q% d\`6÷Jw^E]\}>H :YlpˡlQ(uk5?{|\VglR͔?ςxⓑzZ7*}BK1SཾpOvFN v#ʜaDhPre|]@HFmgl¶[/0Q(Vy$!Þ3P:˃ٙ'~DXLr @pWƂմHd=Mv4TJAZ~6%lk0r~w~pts啺DbgΖV|!~h_JI颍ᖏ[LGM{#]<'kɚ\NQO"!+C~?~zÊ$~Gw{nfWOzexQPdbqeC ?1_3)UiiF}F+oP2՝EfQZ&6/+Mw tga#uck=yx(}P-!s}>m8T[)7mDNsM|s8TJT#_jmf.gEa^PpyW:h-JW\W\W%w(}ShlȊE )QsҖDSd nb)'`5r;45{:LMv,շzv8Q _\=IgFsyҲ'g,u5qREAm s_ǩuv:TMGdJZ,%0'W=2c`W?_J1Ҏ l_5\kͧe_6B@UbSm7Fr F{qg5%:X^]OWXo֙eo|kkݱ¥{6"SVxIwx8JvWTE-Dia8˹p vq\%}@zCMZ)NڮT46#ڭLEZ#y1kMn،}91}%uB֭,H0,r h 誯5NA3HTjľ3jJ~2UT6R}ay h2e)l`wA`ĝ#RF~aNqJq _%|H${^1ah.G򥍪笋9oUG|LAO*Tha%9W&,$}bha'SoՃ+Y`f* נcXzX[ }Vv%jmoܥ\LEJb3Hx2zv "r@^*V\^Gc,-Ut.c"VFwDw @sv؅3#\1F(THGJtPs<4?S5ȿ<q SxM2ۺ#5ވṪʻG|TD;p? J4m`mUԶ*j9 7Q ;!L6]-{u LUN@OaK0c\ehj@#UմGk±45"U(z$V7,cQc%lIeOacVQ㺳;@H4[ue >}(Z+40HV{qJCi0ݕ}(͔EьC-[V*I#93;h3s.Tm0VW#f˞vpTM%)W?οKo;+W[Pvꎗ0=ЖJLv삹=F}nw'm?(R .˓&nmOymlYm {W:;.^Ilt\TQ yGw{H }m-ØUmbH %ds#X d,)CQW5Ӏ3=\A'Qf ~"6Pէic~0>6DWo. 2cV`GF[h:pW5pk[nuV6e![+ ѧڑO/Fe`VGjm98{7XlS.cUȔǫk%5|AcVWu^oxNy$/L3Tp[ICl?iCrQ\VumWS\s;~u\21brJQjg@s̷ʋi<)"Zwf>;a'{i 3W0q|{";cÐm~ƴ>3n`F[H0s2Ml, "lxqEw)@\H8bț;5X|UW{UQ*UM Pq#Ki 4mpVg75{&DΈKV]5Ff yaû#1h+Ėl\'V3`|_]2Fpr+>gJW<P 2hJV|/jduYoKo)V&EUQV9 t,E-Y5QLMY~x ʭ4Jygp 4ToGmf0u*\w$'^ ڷ8B %`eilg w"T$Q*璤[֏9DK:B'(D:lJma--4Aag;f61pU`bDkMYVD:ڍIBa~˕'b鏇T|KBRpFkPgU#^4ͣRzϖZ)^N`-K:cQ,^|*d\#GWzlhz^<-u(!@ǫ?Z1Yܳ?'lfl-bUhZZXH> SPߗhߥ8T 'Dwl*5DrNcrAf/u|5@ajO޴ L6;BEX :ew */r+l U[hk]rQEPK%N>VLV 9tensorflow_federated/python/core/impl/computation_impl.pyWo6~_qujҵ/3V8E(0@MU wGJe;^<$yǻ|aPnJ{gp˭˕y ͍ p"cy})jU>8r"?Dc.ClЯ_a+X-Ae \*|Jt HTR)FS VC d_Wkyg\9>?l6l#m*XO1>_ ւ4td $BH 9̈́7F:Y,G`u6 d:#uУCPD>6O#:]~e_'wwbz=;]M}d ήF+ OaDRr1;rS˔U,+DXG4J4ki6-EɵtCE~,uk,GsCtUND#ry*q(ڐ|%+/eQ2KChH9vy$8oF;=o3a.*ʎQ }0H یގxVQܑ "nc'\.xSJ;Tz58tq<`ѓ"͹.fhӑ)TQi7rMIۻJ<<,mCoNVTy put_v׀Vvo s^ą̻m`B)uА`"dh\(W]:w&Y\d]z}s]oV8E&ǤkCJ8#*^;<,[yi++T#&ʰ(hѺSoR͹o]Ӂ\?9#±E304k8Jwy) /XJB)ݬdLcͣR1q6:Ȟbt2z6Rk 7Mje\?VK1-_8Nm{QO߼93U{ݜ>‚ eN]gkqrU˔m;Tʺn-=@g@!+4}]"FiݬzóBPVm82%B\mL)د 㮺7Zo5oeHa z (!&}ԡUB؃rԬÇv5W[A2-בsjcMNEo4NI-j>[g$}^UHz% H m+;3ǝ'O,޵Y d:l]_! 7rݷ} +)+P ee+q!iul{@B5(3?6Z z_KP5aXhx Y+VpEr';/{{ p<"UKXt-}X oŇyPz\ ./m9!>|F?}2xO~>C- &|-э0&NhEG Ys.tܵbThx% ;Qb LƵT^uDdfB&YPxk"@Auؔgw}ex/ИΨ:&TNV- ^;c Ƞ|0޷"銍]=hnt s>1+]hl1QV'!OzB]O>~p$ι< $<097i8t};0 \iZ旘9=5m dYf9Ŧ#HP10+rŦx %f3xk'R/ }ꏯݛ:$q6VBJq˸_ TM{o$n1uzdAanxPiѱ0ӶIwCy3U$0tabtT`UNzG9DC -3C'Gҩe'6LS '5,5ޙpg|*8>]UdMq6ٜ1C pI-4q6R؟7]UB(iwo 'jK̘c m%,5 Έ@5TcNSՔ6RDZ#4ג9Feʲ)~bERdȻTvhlkA7nל0QR{ 0*c, b0.^,P4"an\WXS `zط9'Jo߷aR ,[&mKL̃Br 6dg z$4A<4f!VDŽע.>j78l6@V\m G.ca$ !&>/~jp+5o38| K@7P|)'UdlݞK’æ%xC}cnYg ʂ,̦.h Bt:/KE@wnŅX@ҰBD{vAb *,wX9tfz5憭 SYHQx,s;}'G34<G>EN,?/ 4 AE`9 󣙁ڥӚVT$_7cJmڒBh=N%{o٫ 54*VNL؅qX!NX {ogX',+2&}:3+{:M#}jFdHW~%*M4>BjsLwF`',랛J5 u 8`幰aEޒܸ^mM#;>Xmڢ=2K=ֺ0.}$PCdN>׊͗$1O˹/#)^ʇS#!0A2r">vQ]vx lZҌeER+h_\Wߔpa,}(n2`!oRZe+c&6fZiP,|l8ei3)~uesƔ}ccAQkLIke (rVi1,ւ^;t -8kQ *%jxH`/Țr5Zr *>|'k:7 p `U9k8Zlj!'qEqqq,z F/tA/hRO ĽTK\N%= $#[~n%t kg\\@ ׊`ٷ FD3 ss?(3}q0 e4͌|*0qR&%sX 1#UaޓMQ_OCIX:A,vM")sPPF=LS&%< =f ˰H6-bH?f3|9'{[ ~JTrmn0AAIi?sy$ zU:eRsUiFyضNsQ%Pm.>ˎN:/N F%A ٷ2iz S{#tSmery<V@ 4dʟ,9 44>BN@+rYQYI6;*[|jɅ*x# T-ɜIr`XC{j$!c5tZZȔ_ !W1-қ8vAcLYcDZ2`㊷.)ŪO[ͦS4hpAl7(j ٸQј)qĴɵ6V5@+:9Bg\A8NѬZ hIz를<=m5mr Ĩ_zrA⯃(|>!'?&|Ym9;>;H1-X4RfOR eC>ΆfiLQāiDC>BED,g#buTKG(A)0RcNۋz6҄ \A9=qLFk! 5 8`7SG5' &t"gn1d( )c$3+,٢τ}u e5~c=hY `T\dN8?J>y !!"k1b < ðǏ#.7 Z W,s/X- sZ%_AxG9`'[o|[&z-U>KTSX.EWu6V|B*D˱1Ќ!ЫFq eT5x(첮:b Zˌ)K+ǁ\4_ u$'#YHxl :aIZڰXw1r+u>mtU1Q@GoB^R;![s=&dz9zzS&PK%NuYFtensorflow_federated/python/core/impl/computation_wrapper_instances.pyW]o8}W\@b˪>/-ڊJjIn`gmk'BKjyž/swBZ+[T"[8}&(ҷZ-F9hNNdC}4xH?NBmp|3h[WBX|RY 0_B, Zd2DX ;)A|/!rdS\n=a[.ˀ{iZXӻh| 1>dƀƿs鬳|F4S'i*Gx2Q]r c嶡VE]7 ` q.O&8xx&Û1?z8ޏpt$5iǟH #FN1b@ B&P"s$ BQK:d¸hJ*rW^*hkd b$IBlrlbX\#cҔ3RR",}"U:۬2UEx$K̬1V̮Ds T5 ,iD"Y'I4I2(GH/Q0çc-XTnEz6UԂgt eLɣՊ0fJmˮ:ALهk@KΩO%FV/FJb@XVPuNׇ4OA;&;O"L=0kyԋOŖ̸a?P+4#>YԵnhG"#`#N 검'Xm"y4&pΔ@H}~(6M1`:%Cm9Jk`:yԭ}'YZ ",sfEf1j4"i= sO /ڗ ) 4h,9se3"/Vs\&}TOȨ/ҥFSbMqH-[jlfaH5ٵ+=j\jyum*S-Ap࠺(XLݟ#X¾ч}+8ztBi=72Ub|1xh޸S<Yu+]<-v(k0M$">T QL+no9[(UE5v׻Us+%/ `Q7v9[U4VyqwrYn]zWT{PK%N,ӯEt <tensorflow_federated/python/core/impl/concurrent_executor.pyUMo6W f=ԋ|F]Ĭ&U!E) >y rʽju.F[?]:ajs/u An`ZQ,9Z탣i3;c 3C`vPY$a!_3,ޕRp!mM!#Bt9.skƃZMq.avs7_BC̓h-r]$(k)y / Ҟ^pmչABXWV%?@~qf6]Ζc>[xZt-a7l5[l~;$_KH}č7mx ׍ [b&rQ^xP4ҁNXmEp܅wId0L6TVTrYwhJqJWVJ:QJ XFPIBqq׼RZv!I8:NYSjkU*B /ۓ [̞ ƶm[L$ܿ\Ã]M7)6( :*8KEYB+H]V.J3R߰YPW@.7M6ICV+/^5B~38jq/.\]^|M, ęmate⽠A3P"]+ihJ-ӕƥrœxnfţ6C %\-|3OY!<eJ]/!AE =}jTaS)pKv1ݝ=;VY9"wI'yh+q١&&ԎVW&#א{3=APK%N /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=݆Ao5GQxPK%NX ;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>*]tzE5oPK%N)4tensorflow_federated/python/core/impl/dtype_utils.pyuSMo@K"Q&:ja H#.&U;3o޼`[!pw'%O~!;!d(2Fu wXBR[PV!o+)B #>Ac<wL j{Ak(J4^v $e w$$3::NhNxMVuF~Z. 6P^6.j/xy Z P&A?̆w ŜwF8!k\ K)3غӺʣo4/. SR~ievIYNajDY@w4+* I0JMBTdV4,MKJbiY8FM((ZtVz6 cQgu<t*Czy1, ;ye1H`lvLg-HXF%y'tg0<;i? g^.850FhqBӣjG;>~a:Qeɍ?PK%N5~G7tensorflow_federated/python/core/impl/eager_executor.pyZ4wy.BրR.BEnk+Dxm^BWv/P\Mص,z@t%K^ܿuus??<ՇW7x{wWssn* QOu9Qeȴ{"V#kW*;Vb]=rDmQJoVGTzի+TZZ:EIЇri‼Spf޶T PմmARZZ]j<uSU0{QvLĬ^|űd3)lŽ"_h IUy%v$F}F-?VM.W&h>N!,>qH m٬ZC-w a_sx0Q;R(F֛gI2܍\EJR 'b تf2jM py[L2$gB[F(B"dž\ &v/˪lSfm⪄pAd^/ҷ<1Z_JbޮV0[ \( ޴1r`hg[Ex~P) %D Z6VAH8$~UM-eQP" nv;-%KG"T]7M\񍲱v~|M}u:Es>%avn8Ð=ĩ?0t:99~:H+DMSp [N (+`J Ҥ m2&_nB'fާ?ዻRUyܰ.Ź :=J=/d+%A鞣enEkm6 MJzIM=8@1N|iLQq#Dl4F̭`m3F ?iA]O&{'җ'#;ϙU 9 +JveJk^(v@R#Ŵc)”Nd+6^5Ĝ`̱̕P-lƒz#sNOWnonz!h&`b*Gs]jx+żջ$N ~E}&98dfj!`;F?6PqeFRit25 &` %U9 `.6 Ĵ TtBz A6 j2,j6B\3[kJn8B"BiN}'+jI@MAAF咦;y#Â@΂J3 H.HJQJg%&!giaeM e' EBJ{h!sr"hGe;Ua˛dwy Ic;}B@DL$_ m)ZC[QmZG3B3=썳ㄐ|L޶-^O !š}U8z :!ǂĭQ2˼PIbV\?'?PB}Z!d @"6Ϣ3:&H%q|aQ2@*i 5{H{fz>Jcw/#,j̄_ӵ|~JwNs5B@+6zŊ1uHkuZfi!Y ]O7SVυt'۞߰vz53ss I"୨ c3ڒstؐ"B)[ېڂ_]BAU8!@qk;Αi %[Uԁ̞.YWc+Ts^I%+v +KvҫLʱ}"| >Ic~m/+W4=A`>i2T'] z ; <;EENg1j/r%?U1ԉd[nL?ToX;%X,gh ̸,ݖ7WhOԮ@c 43bw4 HJ X CGk$s輬u}fcw.wK>%l˔MMSj-vyAnpQT5 <(_EwqwUxx]?9#duKssv_ug{{U(K|p3&D:cXG̪e p fzKY,wŎ<JR팮An_*)f)*)e`_U篜Nr0|Íkk~+LgtemuO3S[΂v])*^6יNoV!]۝nEavuGǎ:85@pШ7:U˝0x<>sk|U c Gl qC,trLFbg\ y 5II^IЩ#E5"UBW*ϐ?[@[iaSo8~? *xx -Q/^F?J,9(i<.l*Q-o2Z̨B"_d;^2W!El[dT0lvE82YdxK6rIyฌr0),6BHh#Jq{pmh%.$GbیNŏ`8.Y~?Mm ccwiФlWa &ЌBn qA*4|ys$IiSx7[4q*y<ttMK%啕O 7f8lp# 4AdfQQlb+ۂcMTE^@=U|&G/$={/v 9w]ݱI3fI6'7. ^QYEU㴐.cU7*;EáX^jLcCw݁^% Oc *S^7ɚܑGt"@#U6p*zuss?7:V4WӒt-y'6hl0 M6dЦЉA_GԒBdev 8H d^s-]IoaT( ֪#n#w50ɨ]/OaQ-XA}xa'AcD?x/3oCym{L@:(uW|Ĉ8GKGG͍[1j%$JtVGX=6;!wp:2djwT1vN hrpؘg絎Qn2p4K zbrOħy!Bn.4!7”&C 6yvo83  Pfѣw70[|uv$Xgc<T/HAx5p G|ϨUtvwRi, }7l}[QYĜPK%NE:tensorflow_federated/python/core/impl/execution_context.pyWMo7WLCv-AuTh   $»ZVΐ[$q9f8|r9[+7?l-`&}7^,N,`Tl > mip:JO='a ޲7ƿ VWP-(!LLe.l[ej_j=w9ڗ8Z;OΕgg͆qϖi:˃=0L~@ʅ`4| DB#͜o@+#pi"1IJp#e!3r^l50+0tF,a]Ԥ{'!Ԍ@HFcv5.wDah92+Vlaچ"Y}c W?꿔b{UU<.Pپ]ǵKwpK 3,z ]LXඎN}ݸ*>fᣨM66!:~qNH?!JQ.b"Dh˳@/ZDGzP.s8AL޴dX!]OaHaAx5CaY#%E',S}w3*ᄔ4V~HzHC%t>C'[St ѹāb!r8hGR  I# ,X]sxZ  ixmIQyU @'DsѾaL!S6 M(ERTxAEvN=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_޲V5eAiOBOGR0Ln@?TȲL]@Ghkq:?EŦ7& @:Ɓ(r[s,H$?ɏ!0)d$yuG lOG7{"'eG^gBV[UrK RӀ٩ CvOk6 ΄  Alؽ!&1U]aS6vBI[W p끔GO kKY׉(JJ\Uh}g?1͖d#.܁%l5<'yABōdKD;1Yqۇ9Щ1mɃ(#ϯ6!f@: FD u ݢKk{v[Q{EbuVmeE1 LK&5gyTC |.(Xj~ {n MXJ 9e FChܝ3 L}C.p=M'KvkHS}եO]g$zydV2%q&s7 X>yI]{W5} +=1!a_ŭ}XSXnMy6 Lx6sSx́{c|q+K{4z44e K#|#(ȡ"?|mΞlYiҧʟ#+r.QV:6R6dXdNfj4f-iV5U1)D+uc:_|]Ƴbub x-UdǦgH/_A D1A+-wæY3X+S=tf Yp8v-XBppB g³L `/f G*Q?RO-A@#hON~TН('G&/6~_)'vRӣĕp~' sX~2Zl2[T/|Pyc5GzMх{\ɣ ]""J/p¨!I'OsP={bhR+y(@hoHnz*W0uĄ-OƆgD%*}gQ[ͨ l6nsx,@d0CNKw/܆v>, 1ڿ%@ */R f<%3fc/aB++}=[2O{ߧN ^n#nw[Nju^,PVCLuEa!C}8WX4FXML\_&$n{b$|ٺN[@~u xwt|7[66\L=׈@JXhX+b)r veoۨ30B4oZR[z1*]\\/2vge.Uzf~$?Q5ְ%`ͬI@KЕ,+vpܰ,/_Y5F)^o`M jQͳ,_u{jٺ p'<.%0 g3%+$LʅS"Oŋt䇙=n9 njG5Lit1F$OϤJ0 M[5+3{i!3gD}))g$y?<IDGzcPs؈M\,kܥlUudRD7sNv[ &̘9<ה1u| xQ=GKA[,f ga y#FaEF hghN-Hqi23-sX XOTc"!3o@P|@p]AS;As)vx<܋HKP/וC数H0*]پ ؛ )c@%MwX%('X*MyqUz9,ԃF^ت]F s.kZqF/#[=>-Eunj uxGk1#BMgk[Qîrߡ-嵷$AC?pf 0c7F[u V9pT9 UtFs\oQ2='[Ci9[Ρ Jl]&zЧ}_$B? YIY?2Ҍ+˯vhn|߽}tn%6g+Ԃ4I Z{NX^,`2fT5xKs\wU8\)‰gXOMGfڻKkk7?/Tq)-HRw'}kL_E;|QumOϦ̚B#cgvyiŇb w ?8tTߝ8pT 5Ǹo3jmz{;1 ml3J~}wzBl)Sx_~ i4('V6mO#B\;Օ]OI6a?7]rܕ-/vZ]4'zK˳ϛ"?gHKa+lڞйۛy!wpI?~@mCqD# j,qۡD#<*v9wn{Cd24[6,2Lڪu)XaeS5r:*vL+;et)% dMe5#)D?I>uhzm@8Jq m<Վ!R1SΕ')7e9^],ӂ}i!L+<q$|$?;`&ntd4-o8|Ҋ#فDB@S=Kbkg{+>9S tʬ:åM4Yvt9Yq?Y:tHgxIj2m2C+ ) -(LCUB渗b˴5l5CRMz(YJ/||RIRГֹbL8T]8'k"p :š|tc7 RV2szX{@G,'Ac:x浵H08ED2ۈ TJ\1Ulĵ2P.9 ;Dh`o]Ƽ4sh&%8)b^;aؑ_L?23Eu;&.,c1 j`YKG),؈RQ6fx$n/Uƣ* $*uJT{ IQ݈(Š>$VqfXV͸mi/h5_f7WozCNؙZmމGMkx;х!;:.q?C6@\lf2LJr͝χ9h}{͌;?,3a*KZFr߿! DحP>HN?ͧؿW˙NGxZϧM"PK%Na5 <tensorflow_federated/python/core/impl/executor_value_base.pyTM6W h- TxQ[9#jdHu~}))EPY|据A@oƚ7 O?/x[{{q)B N{ H*zVxL7K kkucbZ.v/dl JhOnQIHR[F uhR`Ч-#~GkBoons mn#nٯ^qyoZ3h典 %`|&눏Npl|v:hs\u8TNCx @/6(/m_q}}@ݮ֫=mwtݼ[ |?֛wKh6ػ uQ(^ڎ|/JZ9|:ړ8:ԋ봏WJ;8Hb(d+ q5߉AoQ!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κ_PK%N Ftensorflow_federated/python/core/impl/federated_computation_context.pyVo6_qpbc/C3V8@B˔LD"5cwGR.`~IBZ`(~nT"XxwK.w_s,_äFm(RZ9XTT,O83F( +0 ǿ#NPHe6!LK+ BBʪLn4kP+P|+:n1slcKˏ|1;OƀB l4 UDx2n戲jm/Z =t+bCs-"2[ui _&r6]ogWw0g8 J$)(|MA[p#)OT<H/,琫g%ץ0MֈRRXfΑS`8RY^r%)3#iQ1hZk2F~`AU Iն@7o6PMQ=yC^|ړ$U5\uX9za4zj/#A="T2{~^}ݡ'C޺#ڋ? GvFxAʎ)%oZ0GqGzgGPMdU[ѩhonX2ţ=gA_V8#ue 5/'YZjjؓdo.E78HTos#82H9\[} H3IRkN3@9m:2ҺzHE켫 |7~OVzԒtC$ ߾ZqbZwe^&.>K2BF=rj"7>LPK%NV.Dtensorflow_federated/python/core/impl/federated_computation_utils.pyVn8+!60m7MPc=ɴL9DiRKRqܢ3HșǙ77:k=p7b+9 S\yxC 팽Rf Wb%,b]c z] mpԸWa4ޱ7'^;S†@!R (ug?%w"mWAwU $Y~ kRcSEH˾a¦rc?sz-K"0^XPڈ3ʸ}RuŇf"vF!\` B PxlTVx#2kJ&0 })*TXZy+_­PTk T>iH% ,fEtKCL¨7C:}AL";aϒҞ>9bͯ^wpt*N#Xar)]e-x61f,)UWR)X r +?Z_r%R\8Ԏs &3qG{#Cl9NIX7Ø Aw3g=t<X .>T[hgi*Zr AùwxvKkQ-)3\E,[n ٦7a zwu䀀caiF+!v{%‰su47YH_!Nc(kZņ*d77֢< k^I[e(ˍCh*ϸwIsq.W"WhW__x2}P6Ed{ ףK{jVtB=IAEVFIɂe!Mޜ=cG~ߦ[i!N_<(]V%/fgϠ(6J=+e?f~y {={\: ҊmKҒUQQdQtQ򁆑@ w "]}v;0=ev~,7/bѲx͗1%yQr  %{,ޕ)"ϣ2J6SVṛeU:R@ a_s_Lo׷[ϗ7W_اݧ׷ןnvyw7琉`5@2B: T Tdϖ@O2n[GBA 49lӪU`d9d1| Q\A<4e^('P3_ qO2" +> [ 4%= Ja-֩0 GA}#ޞ D,0Nڿ\I70p洘\1&3G#C¨1%_AFd*l cV6GIT1qhw9 h85< f]vFЯ>FɪE!A5 b2r"Ҫn1!)Me p4_[+k=_/ȵE֚uA}O흗wƨ*ɂcpa[m qp5%(ѥxWpxb `@&S k[%0aZ}.#^F,S]{i ?I["8`!b}HrQ-EҚIsvE !I6LIGBDbbRIj $Z$1H*Ċ2 ,HÈќGtC AFR@f~UI#ɟg-ty(B4^i\,m!̖fb| I2$1iķ){H-ec.Mq!%t.TX?v9@9VXN?#QPEsSԾQ\gzBR[H3K=K 0DmDYi B&,Ктτ`olhbSؠ<ʔ16֟1ڌ56™O-(0;]ɀhn49$ OV㝡`̳f/  I:Asі_yG" n*41mh | :#Fv,Enݠw?0؍;vs,bb;ydKZT|Mqa(R~D1UCv2yCpTB*ϡ#t||=<al69,޳e+p|d$ޣ=ǚY3oQ&H`Gʊd~Ieκș+ë xTB':OGC mP)|ÑR&2P]]fB3oR8T1&P8JLDdHsq>œxȟ_b [ұ!ɈIIָv!;#N7 [kMa%մ 2(TJrh%4@ 9kYtN'b%條y橠W2rFgٻW7_&b:|ves&Tnh+ԐM'-$lq$!/{ TL RA UKAtv_V3IllYBcOEy` BH91y.F|. tā(z&|;=RNBa JA٠?),PHkocehN!ȢaQ2%#&KuZCo5 :wX9CA  "b4$b9hXo<բVn9[qK/UFqET zpPґ~d9zg#4H1GOS It߲Qa1G S߱)ҫd oVL-xwnA/~@68 XY01sSLTMd(S'I&d&w{_h[@:FhM$s aM6YF,"u\w [HcAyXogj=EaҪN\#|ʤKsaNү Xh)!gk >,sQ˴et Wc!m5-AІ:u/j gRkOلLEٸG(sEKF;/p15 0zd>E9 -YlpdmX@CqYhoDQڟ=\ j00V"_"[́xw0pԹAfԤW~',KJ81dg8hb#v^'>D Kr-#h!#DBn߰DPAf?^4+J>`=$ uZ ~&pCA:Ti!'YG*?viء0NanTpaɽdVК=Qw9)ŃZȂ$SSr[QFTy9-I9! jVqs1:Mg ^N SwR>#{ג'@?gqK5u'n=ˍ)-3h+!mq7^މ[Wq=jI^ ʍɈ-+Դr!k*FAl]`(WK=3d "<n xR FhBm:94kvR/h fW9[ 5nXVS &4ٍWbzܺ0ȃ-e^o5e%Ç1NH˭ mD`S 'MosɬJ傦5Ti,cz0A׆IMؚupP|7Lm#2VmvE7˯/dMXCc*jA潌\hbֱ͇cvQ)P&(KgZd# ꢿgЩvy2ZAIokKnllk+[]ea, j}]~'%%]c;BpҶ)*Y?Q%VUñ\9j4 sn?0D:0vDt6A (M=p`EZ\Ӑ9[( BǦH$,>SYGXA^#W$EH;}Q;ut~+&7[zOWk/)R4jo͕k Zpʹ SN.*j1cbnI?omm4| 6Jߋ=c @C/':'4QG'NUmͥǰ{|ƚq{TjF{gR22qKLd6>zVҤat%;v3O[`ӠDB0ӞLx'+{~ *fs;ݴcsT9Xع 2ZQ \cPu{@{vt:\ON ѣѕڭUW\F;:!]koyVdjvzn޺ NINdtǼHX{z]/1^?H|t5['>3G8u)ȍ&HZN!wJ\/\"uk<X)?KO43Uwֶ_5hV&Bp_-~fn *87l*5@ٽsڴEnʚ_0i2Kw^ʡT(U*{z&nSiEۋ \! _;*P9:Y&OD_IZF 8룺h~5L#:ӄ29{;p6AkYzAw<7Vս^ikx$' >u$1nz8l'l{0Z"5>^G8,>YvZ.ׇWVh^qC ~ex*dZnrfLuF~.]ͲmhHeZqͭ4qWs<:G.|$dB-O_v ;7"ȢF¤Dbo #>DNUF^~j0Ya7e4hZ;waHTBϰB6">M)Ea%*sq` |a3xa]dL Ft 2/k/:I6?)%]t}}?UB!q;Mp m60ٔbimΉ ĊPo RɐNttl稬q[cCv ' JV7qn.7h/Oh &]k]-[z|/d?Mꛄ5擔o٭in93魔B _7ˠ()nh!YJDWZe'cL#Yy`<2X!YFi>6CK6p@BPe2>4uz* |9JC#B&?czjVSGՔZuȮ)o-$p(Zu-Kߢ,k<[w&\c vC qhӡOXg}g/LW`Eِ%.<,/nmeTuԞ.;N3U93ʫE,G,'!b~ڪ5K ; mt=dv 3^;8 q6ŗZ yk20ǻ{sЭ6eZBOg!5E:5݀O3rIOVJ 6KJЮCEbihҪnZq 9_/[Y b3}o܏A&+X}iF_e|+1Dy3 ~B^L婙Ebr'6<'Oo>(Au<"`UYD,_:&WBGǨ R ZS'ܖ9"TPa NtBj{\5weJ$mJ1Op }U埬ЕĬQ󴿝S"<{5ԓFXZO3j)O:.lq겚+=U d7ҵF\C2L&% RHZ$JӪ4u_h Bku +8]Њh!B<;7|D}`ʲxO:ڥD(OaZ_Kԟ1';l-}^ƒfzq5y.00\1v \t'>_s2ި>p:z4 3VcLPK%N hEop7tensorflow_federated/python/core/impl/function_utils.py=koɑ+$wqB(~,Z#gtӤ4a!zs}d# Y쮮wUoU9S]{U_xAUM긲fD.5*CR|>y ېYfQ5zev{$=70 yY[%pQ"[ސ0馁US%;PQQ (tS)SYw,v1QTLm1 @AK-w!Vff9Vťfgpdz z &ta=d%eatiI"=94B~MԌt%KzLDoM;נ`p:ECŪ@_6n:1OyBz86H  \ If$o[1+X 5 ~ BR%a\Iƚ|YPl0WjYb,ڝnJUxĦ&0l1!Vc<̓j!6~fCp|VN"$z,i?fXum24Z]sF?Ih׾ѵv, '˪R]짬LFݢgZT< 1z'x(;JA40BDxk;gLֆo "(667B|$TY#}?Y*4l^,{{aN6e=DPi/450N9ޭfTD6*_Mi?!5{}nWK^Rb"ibciMT3,L;w!>pY_"h'Y>O6( @49鳣md#PF\b Uk̓L#vynSbdCĪ/7竝kE&M]! *)z-DWjӁb[<r$,kMPKۆ 0cNèb5Im|tfHJ#SA,1lG2?c眄1@؀<>qV'4} L…GFBFt Ʌrp&EydW Ѣ Ŧ'mW "@.#X>30Y&uxĭ1l1(· NRc;B/C>} 7$joJ:/>\GfQEak+?LP$ZX7B>o;˕yZ+Bc4ZjO$h:B6HhfFH*>A4ݒhi}NM'TgD#H B"CE4Rب7z#h D6J *\nuGA$gE`^E|V$({6mf1,aK;d%ڻ0KCҀ屛- cAsmi3KMS)@[8x228U?O}:kN,Z]`u%Aa:|xy q@n(e ';p톜s>?H6QX_'Kfd^KBbѵ@5BnH+t(EϞ2)jq(RYbf`Uqţc6f+#cE"S"İm`2c<G\X?@iy Ԃft{便&{/i[S+iL}cz+2WTXʊpYo ]/k٫C5~NHZXy cQ~ƱaWbB2۔2dV?4Ґ E !? xT00>LV"|Q8'f îXbL ipA.ྟ"oA$|9kr)(8:SxfX#Wh=(w; X)^¬]Ao͑-iuv X}RVlT?Wiѳ,<;|"CuH{؉˵Y_:*b/vW%wi˕ƋG83KD !Lg٘(y ­kfHDF w%1%@ar^ez{l&'^2P8(ϲ|1f|lm=ѐ=ȵʤ͈6x'ѡI/w Ag13a^D5vEɳp7#haV4:v.l#$X&^AB]BO:(=J'eL]Uܤ{9mt`v@Qě;qEvzm:':>Rv.dtW!9'D|ȕ~}gA,=xLTs 9pHJ3s585@$>νnH%q_ڽ#a/#Xc2osUuErC}r w̺E6-Vh(z_PU]aCYYO5wԆk4׾nˬ>|U$N;¥}SutH8+lLH !R2BoFA>C>NB F)F)8'>lۺ;I=|dλ)L5X2.uz֕s^HVxr0I@]e{_.AJKW#V%Ӡ>/ixz^ڧEU0AgXԞAk>ld(x f43<̊/̅JDϿkF>WX a\ҥ7n&++pDiV+6UdÍAr*&~#ms4u59 ܆1tO qi)A4Եd`w[zk®SY}N6> Aw; yVȅ?RR] ٜY,skX,sjfOwd3hM<+R3Hkܙ %1/y:)gv&ZKbŷ"ovѡ6;8'=$FeZN-֠Z<QYJN}XmnAK_G-{^{wKHX;JGA(]ܣSf7_㻩gOq||-$IVߩ? dưP믦6Q(  WD QpVZ13D=9ׯN>ʌl&?\̊J2~׃.I:՝iZcK~תN0ww)Ae2n0qCOd= [l,J{E6;zЂp ͉"NzZyYU*ꮚDA{7\szp䟯0J=T s81eMB2J$ cͺLJ)RN@&mxN;8 \nYT7-Yʅ=|C\Z7 WoקzF#|!mATV| & ҥb*(O7<, ;`^Ym z$xSefٔF CKoՠA|$r ˟N~ԸH6,2}cƃoueiA,]Nyjn0D:?!9y'N] y0|^P t ZLn]0~*-[jqDE%zlfL\<M{߭wCW{q(< [~#|6u;Z*@O$i&!0x#;ӨF`7j .n\dNGPr 3)qVCYf!up#6_L'9wcUL(fmJ~r$7/G`ңGXO#\= g&\m(9|ܾ~ s I{$ \"yr9x i^I#aI,*ǷSSp$Kqú߂U Wzm̈b^rRƒ>h8-pvm5D;إF]|VxЮ{M)jG'Gg +`d]HĿGbHRFCxN,'=鎘[P?15=gᅟ{K!Sf$˜x]ЙRR[ IQd[It/}W`z/FhlQVv%@$wY@wcDW;z,:4LW:{02iu CBH4&3"޺`i,J 'I10Xֆ;8I`Ez*@7>hLlc -ý[Vq>)%4[pCk2A@S;@N=|ǀҭb[[GYUG}#Y?Ꜿ3pQoؑ@"H[FL5jԕ9:j%6 cGa` [9ZmǯD)9-k^TS{I$=s/CL8(x<ڠlR9.(mO|oF7ʂ}zpTAB}QÝOzг}vV׹ggaU+Vx4LD1\χcyH˗a?XPK%N&ߠ2p4tensorflow_federated/python/core/impl/graph_utils.py}ksƵw dɄ#QV[WgdfʒJ)Z"@ `PҌέU=8}yџ󲍒8Zoۛ|u4Zo^>4:ɢlMQEo46K |R7SM >:]' GLfuWe2~ydG6*FeF&y-"Enj]IȢn #Z'~ -vQҀm_|qww'4ڸ(eş~g0b滲Ț&nz5 h\0.(3xV8:oz5ղK yզÃI _I=9=ޞ=tzl 0{_;?wo_Eᅪ~o߿DルF 5#veYg|/`^&΢6KNUj60*ot&=y6/YC=-9֮כ"]t/^z/'ѷY2n6@?M +%0ufljWMUgP4qC5L Dё<^TEѣFQ*̃P=(k@m1irG+XFUf~ ..Wu]U|<2\7LK=1>[E~eU]UfnE(d3`y\LpY:~׸' LZޏEL2&{M9yM6IQ7uVx Mh tt% 4@qW/s&Y7$ hED[ 5`/!͖2ogqK] @3 a(_IDQcKc17Sdk }Pf- bR$z`j]50'1HpW..{Y;ka__{s={*V41I i#A PDCxj@@#/RGtlK^.|(?X,42:XzY=}P+6La$hl R@71jz9ŀi8pߍ$+4F$(h!) ɂ &L6cc[crvyU&kg}j痈V!>{9):.h" BJ <[UָzF޶@oi&LX`rIο Uu~ ʸ(VE%a?~f`ZljL۬S`>7ef3![y3c)_ Zб)EԹd1DX/]hѮc!7wQY%=?;&wfy iH' 'de#Y2YҤ$}&Hm1aSH=Kߑ.x8hr x̬_h;#冗s0( +c G;~N7^_~=Ǩ?Ec Nu{_~N6&7&kS^|Ջ/8:W7%t:OXc]ok~`{|^_q6)F(OKx|ZYjd)]}}zrJ 'pI]ʓeIxb/ZubHMU7: t!Ib2q m6ŧ#nS&ڢL37Xy Q3!n6=X&쮖7̐dou,temo)C$$ɼt2- 9a8ͦ,,< ]o`T%M摓c,n;1S z;in(O-^(YftYrݮܳllnhj|,Z^̀Ҝf0w,8XPDg hMS)yz1y(.H=t$vX|7cmOG滺Jha/q73|탽&&3D4!l(a\,rNժ-3 zÔ7 x^*%{=:89Zo;qyEu:C ́WO'Jfv9`mwuE$$/aC{:h ݖѩg(,})CRSC&?뎵!͹lOe"c+if 6c8dƷ/b畫$HWrZHx ~D'g^qoғK_gJ{zJ<3G;9S-r 88 ,|[-<{"W=m~jKܹb땳{O pPԗޫeէ0MJO ٹ6hs:4Gv EvdQCw"]NVW\yЦyn)MA\^Gϭ'eVLՏeUvT^ ]#Jw'õ-CWP#[d!U  OO:}?CL'D+\좂f+V%e=w,A3d@4^/f.YZ6ITVҊ]+ĩVPZzfK @QI_s $Kh&pث64rh4怑v{VNOքla"oِ @o.=\Yv;1 eEU}l"RA)kDud2م%*Y1 4x^|,vL R ^dL!Ɠ8a)WpB(F/^xpl̗h,nm|!gUߡ{G 0i.XD[:~+#q@h26@p{lU$嘇%zAo"f!M|$ ȘJ_Lb+xǬGçdҼ{fy ˨ȿu`bc]Es❓9+ifcq6w\m?V CD#K>Q/ ?%`;bpS|{{Bך:?krÑq`T쓀 bo˫O qg&xno\<1`mr%En1x2)'~4pvn'-L dc"o jΙGProNHsWhvϮB&55hd͢ίv8*!^Gu2WQ(: >*QU 6po,Kki-\Z%=<DsARItavxq:~cƵƱeN]Se90A:r~==v7^zG!?!;odθ.^^>hh#Ⱦޯ ^4H}*}k%m̦!pT2b3M~?ٚw=9OfF$g}$fX6 * vIdbky;t&Xٟ$ԩ_;{m밨PW(3^$ 9tl#R}Hle0̐#FI`=h Q3`\_GeJ>4Bd7'N~y }6`dJ^QL $S( TZ\;Uq wR<+&qd`&I+wqp d|R < CL@f gDGN.eTK=`9Mz\6uKjjnC+nբjTzV4aikHzZeOc9S#L σd *|JLX'mp ڙ<v~~n xq 7QG%OdJl&KIZc\8{xAvGU_*U sz;Ù}yD] p u͸ ?cM3dߟBsxM^w>:YlEaQu9Yr=2=^fwtX2#Q" Bw=!:Y**'sgFb}|g sSl?lrV4SI`,LCiIG&щAF&d<,?~b=[%k-jS/0י-okxꖤB~@QW|n'Ύ;Aśh) ƜRO(qDky)i/%>Ҵ sإT癖|S931iE;gLvL+Ch2bB" PԎܙi]r/esF'?1cH>1Dg%1J+p vLJ 9LDǪG8)`k޼3!6/ Brtă݁LaLzrF=8Ty\2"!){0@=@&FwBbO5cO'awc\Nʐ{Uؽr6i=c蟠-*g.OraW.c=GGǟin=ϩ#eׅ-b˄ҡd'q`w.s#=^u;U (J(p[4?Q= Ķ]ŀTҡ!Gf5я?}d%:@guش7!u-ɔZz?;HiQ 8}_OiOr^":MɀpLJKe]p$B=L:|ON\?=T2>ˇ|@`q6W.Wxb4:`gХ =Uy0 W0w7>l f[4dMxXt8 KY YA'\=Bt76&4~{LIt +Za:׹ow;٥]wJ*Fy?tz>`J9qJj!7H2t jֻp]Nq<&AȌ?482>ܴQP;虜92!x? nQ72zڭ]jwpCqzxb2ġ"!DaO5`V:^?q5cٕ]yA5q{/g*t ﷿)S,=uz9mf9نc8u>ŭ;Ncx.CypE=Zy|O^"hGtiu}~;;$( 6&if箋4ڪZE=G~N|;'K >{|ʤE5= BczWanќrlQsI[ocϰ̓ss8eU{@uH ;Muf脴3`i?0OAS@ yGRܩ|P+Dž!}&Ҋ%PR1gxT[ kGdu,(LJZ6GɐqqᏍH͊/N$'ME@K,z"a9WS䋬0ylȫQF'|[E&jr|UaB+,NmԳiDBS9knZʰ?WИ|ghbmTc^u7͜od"2[īґk7Lᳺ 93.5ptp33'=x;(HJhU%|K=Aؓ7;&1zZou獻І<6WV5 @'33޶ P!0H&K/6%HK\Q[;[k09"l^4,vPa^K]#9G߭oٔ1ov qx'Bha7&\Y`}/(™=8>KEHueD664?M6Uy?yk h1_|D Dv.k|ՋWTsrdnJQel9e_m̭ a+;R#oU]R&j(_cmn^|o?4PXM|k>ڌ-$%8>ՒeN>U<1fnU֛%9NΠS'w`_[nԿTBJ-&JGZڝګYLW?Zڙv!mD)?TCKQ'Vo4g//45 &<{M(`;O隆|߱;ޟ0~w#+\JٷA Jo!Y8l(b~tdADH3{2ӀF8hWW(@uI݈WP~ ||6kI~d-,tٓMFJmVlUZI-7/݂@wYQa^h)]"E c0GߔT7x5&_V/ᛴ}r#UU ,l# (ˌA"_n>ڬ2 pm^E#z̎R u`'.o=P+cy |ԱAWz093f>|߽3n9G$'= D0RY+aY]l7 |7}#%1 =>MX v cK;PUXn|eD_B>Dԑ'Gfף@Xu aA80eBHGi Sl(3T{rDۻ^s$"-p=wIQWK:h. IrJY+>Ts-IWvzjsjU!#7,JCn8A;#Yr-16dۂvЍ}Z{YgGXZRsw`1Q,0W=$,6iڴMR?Vߓﻺg:YA {/P+OO.c jCNOfb;f/+Pکy{+IFv8pe[ˇ*'YZ-XR7@h<F 6I7$:2= /)pwXr{Y< & &:Zl#3XUt}uGƛX 0*͗KPz(OFAW"|=1/+% MĆw`IUItLj+E-s@-cbbYGi-84FPٶ$,WReTHw +SQ90 ѡ@fLH["Gh=4+]*<(Qqߐwt8(={zPV"7lEEC)t=BEf̳Ώw=R`_SR\x6gXi3 \z{XeTϑԷ vθ tP7@(/a:lqK5~!iұ.JoJt 'NkI|)ߴ_Nɵy x.1+AK5ds,hTw"yi 6UhL ӭbcr*8՝IQ]SbH=88;>e?#ln)'4Q嘽WRٟ_{k= \NPbG"+dԉfc2Teǽ8Ȥef%`8uOщ.2!gļ[U _hoef"[S;b/_}̎yר^iB<:iOjvb9zxmtg_ `7g^y=}õj;ez:6r-;/mgzq<CMG&~i/EBrs2@9`k=A= C36Szɳ};) "wXv9UAD4\)d! ʽ,+YGԜ)y:=[g#U=u(2S+zɸ|x\=fxD9R G#>`ԟ5 CC5w!.y@kݥExC.1yVF \ѣ*u&Sg͸W| W62iF`FvQ=Ru<N;.>]㗫Bnذ;yyBldfY$s%_ (89 `ȶM1 XwJFU?{CyS#UR. Rd%Wc[sCD.>c9sm |&> /q(jBAp]X& E2GqU`_%*OTX2߯rĽ|cÀ/ܭ2ϱ&DxO?#\ dzyQU)z's\Ϗe9I701ѠHE KcCU=]-n V*,8F;B`ء^ˎjb=̀.bb8fS6^I6铹{!Ѝ;9:`s'930R 1.>' |Fwv]F1= JMKxfsY#Xrirf*Ў [ł sGzx?P{Ϋ;1` P.'zA:Ӽ3s2MgV3M#hG҈,MzS(9F HvehK4$8e7.YS$[~.Fq! Ӯrsfphg)Ɲz}摖)vLo4b~-N["B* =uOZ :P0^&sPK%Nv3 X59tensorflow_federated/python/core/impl/intrinsic_bodies.pyks~`㽚&n_7d`d"a"YMY@zt^af|')ßM>3!ykbᄃA{3)$\ak%)erxPH %GOS )OmVGhV?4M^ZVU: LFKXLIIqN7&@O@fHW$oiOy4g X.SYZVA0]9Ht@~#px>zao0#r>$烓>7B؄`NDr# Ph#jbMLgyF[&"`$L,DmJ /,!_jd)sppCp&Q`sG4JQIH}dQ*QuV H“9әxIlP0ht1l _E,@\0bzNHf`Z`*2G7|"*PXN0\;=hm3Mg+Ȝ .9z@warxLEo8Ί9%;CpԵk4HN~v9^\}f6Y#Kp+qo4pqxԎ=n›QH+0Jzf3 w6!g=-D$]89\9?|5T{(=h۪nO'UlGcP] 󍗨1 xq*7]!^"_\]Sߛư,b䎀Y R4- bY4ƚ2[RqOE?wʘ;sx˵2 M{Xo7M9$vDqP<P5g˝~by]fzo; >"'PwmwJڤrچ2+irA~_WջR):lT[@RA=YtߪnWvgQ]Qxɥ̘nL2بc ãü,eݐ)KWq@u}"{^m`!Y&"Ɩ! ,ߤ^yx1F^ŅBR7Y-Sb[BFܮ4LF;,h8z}J^l2KpG}D&cb?0ɻ{L0at/נvMW_ms)*"Ģ2r=qn P--Q5u,$Vb-I[5쵴oob㺾u 4 C"j)!^., .T؊Έ/7s#X_τ AX9g0ɭI Cl~Vɨ1&_4-$aXbuɎ6kZb;ڝM|N&FND!N4dDNBu`G R\]u;PK%N N7tensorflow_federated/python/core/impl/intrinsic_defs.pyGp^"`)d}>+\fޒet˓bDiJ oP'C[=:  D0JHQ(U`ʔZ$њM,>"Q;Ql-[{)|H]?Ɯ/@ }e1}PuN1vn{+o }F+ lEj`ྩNOH[e4K԰-{~j N4i10$$ 2o WL k !Ka2@] ͢,e"< ]qj X܈8ÃgOPߏqν@*C'x#ypXepw Ym/?AuೠW3q:8I~_'P%+ 7e)k >`Oi}D(]*YlN/\Q6E+A93SyUN:+|{h 5 OI"T p㶊+3" :/j; }NWZ}b\#')if.*" H:.R|^ x!)FmH'9Jp5z2b UqW=1:^8 1X\Za~d(YA{* %2\8뎺IՐVvJzQ"a%-Py/W ;CYyj|qh%$H&/}R8&ij(j0J[Db4tozH!t0(y}#,l*Ǭ`= 3WQ~y 4,ݢfC.Nm&EDH}=Z=2PZ(K9Mkw`E?)KYeOK>K< ʢsWu9RX0g MUM0]%Y`") y.~ Б{::%q> RR'{10k]^!/eiQbA$P~\2zJ ΋o.Gw8y3WT쑕l KjݡǏ`kJ'T][fنSdA^YO7-4yżaNA~@ u!T-bOScúmVxƮ"ZCQ9`CX|bG9ߦ2A7Uy [$~H+,E`|8CSR[횅mkvhGMZw^\_~fۇ.wKʛN` =?%m:%pvL;m:Ni4T=G,pHSr^H_c n%߯|ZE ΝDxZ61kd3H&]sTM⧣fvL 2{IWpf_Qq&VqlIy6ѨY.J@{낚|? ncbŶ2ƱhxwSټpkUrpP"S-&][U1쳫Qyeeil(fp|oҵŒe9Si*oۮ))g=>,5S=1 gK^U5귃cKʪDrn^F@5$3{褣:+^xl0D#.$ Sݧ%VcʴDzLm`:9\4|q.-^D̄D꼗hZZlm &煻>Bփ_bs4k%uo! =`2Fv#(foˣ kv;L:|LˆYl/Gt$ϗ7<;~@ޕEHvjqE]5lU_OAݝۄ~yFidZ\nT Jt2G_9'azhH?x8 אۆx1Sw 'e/(>uQ.ݬu&S&+D{82H/0#;1m󶏣5~'/^{ARY#( O);.g*Rѽ7ՠ URa+\?WBmeIcÜo_6{3V0#}Ȟ<uy ȜrOZ7NgC+)Ր#׉r]n+5+zUFȒ8աgryhn <;T}rY3\ޓ˚eaz{e6>l2tԌ+sphLtHТ)NuG_wn#TCCʻ>+WKk ">ITv$qnQhSE0e΃iZIiTxWශtw􍽐풤4D Z9,>D{[(PK%N@y%Yg:tensorflow_federated/python/core/impl/intrinsic_factory.py\o7u>H:(9z>QpƥNvREVfܒ\+jfؗvᠨm΋3?gyM:&BOE9BTϾ)#W,QBŜb#&f#rG05` |%=0$p;& 9 .8t_"#3 $S HpE;_f$fJȸY BS`(C`3s"$;-'>QbT22JK>tE[=<ErxrI.'g}޼"?\\_ .ɛ rٛs99e0,>&9ꑍPiU ːJY<IF'L CR&g\57*1qMdIi4I(b2 ^9;W76~8]d@(nh O ,kk6|Xbf1K.!dX}!L M룏Kt;!:f^4h;Zr+-/EQCV[R*dA3Dխ@8ι ߭D)\t$a"OD G p>*(T` k9u! ?0dk qPoe lT m y ̨03?mJIلr+l"+-xipnrݐ8gIKC.pjskc 6 'k 82"a!ctkud9Gk GE\|0iܕB5ˆG)S:cf* !}U>v).4{6 c%NGdz1p}H1m;>3K9? ݁wh9&|cƒO`@K A⇠=Gl)dsD(Ft,5[Lb:drxb7@B8 l|aS0cB]RF*r-\8Z9Q/;%YFUO1VSt%n3-[#j^*Z{i#k :z_! o:DamgrpCZ?}U4wr<aK)lR`ovsM ǀnE5x@y<QwFMisk̻۞3Vy,l 7xxBXC`D==։ saGHJ yM.<0 Qsr,ge S<Gp#0H1YA cA3px!_t=NGYQbSx|DlJPOGOx~T֢װNಏk't ?V ΂IϛA2{dmnS6$.0JG ;7p\ӝOɈ c=[ |JÆЬr[3a2ØČi`3d F01G /hY혰ݦۏ[&d)0)*EJqWŭ8/p+z{!h؜|uֵکYy+˰>UڛԔ,L^b_Uӏ >-W׍J": F1nl0KԴt7nLZ'ָ}HSjvz5sVAUN> Dٹ"2%-aL(q&0܍lDžS? 6^J!V=1]qfi[wtә6s5' W?uoȅ;Jv=woTJso| =";&~K& SxݭCMt * !nx>&-U1 ,Z:t:W3n;hD^Tm33nafg);&Y*(!^fS]@_RMu"j%f) )VX6ut6Q\;Anb` 1J*;C+ohm}ռ7Ӎ.ˣcM:*T= GpjJۦB4nQZ孛֝"˷?WA.Sm̸kV[_rJn+U-OPK%NHR =tensorflow_federated/python/core/impl/intrinsic_reductions.pyUMo6W PRdуMP.$H&"*IEGJ|l ߼yʑmFߢz_iaZ\7zk.%=D'u# Wå~&KLR+|a6f=bKJ;-BZdďwB]#*6!}k'-zGq;?;!mM}֌&/~pjZ2O/ r]oIt T5h6b mHԆastR1Y]AJ)3rݻ#vS%e]l[뒾ww|]-.o_ev;5W6C+x )\zG*=Ru/jZ?QH:6J4Np"$fBR*,%9#EvDHE-yջp{ڠ[V7&r+߲w p) }^j8 z*o1B p]܏^6%׍.ДG['{/Ng Q@] m/_R8=P;_[B{W? iht5TnLj9* `*.P~"vA4gjY0d V?Q8<.&ӅP{FiG|j[|?]fIaI>I4}Eh S/BTt;ݏwF?PK%Ng 08tensorflow_federated/python/core/impl/intrinsic_utils.pyZoF_ eW 6'k+j;R(+&s2Zp}{DCFX>23X$QBO)d2)ؿ*")X:;01f*b#8S+s/,@7l=:cIH4Ĭy '&_̓T#FpsV2+c'CyoD+W/(1V&`~$UA?Z?\CYԑ#pytKJ~ŸWkju(.D..+/Fq^8pB4kS*YȜzt0|73Qg_ƕP"(HEf̩xw(]dͶ.%!jI8O8 >"4Qln<12N_/Q0^"s~~71Qad7;Y{@1d^@ HxuTKkO+sUB@O*I+x(L *FKEu"SuU"Ov.f 1  jQ a(S :I <9YKF>h+FH N"%"da:Nu#sD{otzvvfAg>1=PE9`WxpS{hilsW&_3pć([Z#~4~US4l&&)Ft|DP9&1ZѰ}2Ú5";-SÿpܢSg  Dz^~0:F\94B e7܈B}[ 2%ٛ72|z~{nOhW,&- k:`;#*i_Y5̕՞uՠ:.//]O/< k%}nȍ7ͧI0;hԱ_@>A7Mt6GѠwq=!L3{qf]/Y}?pY4{L t<0m椣u+coQ Qsd#zk(Y< ZjZy:4` ۘ%mX(1X GMkm/cׄwP*WdՊsJP#olMo?=]6 6Wf@j2C.*u3@a⮊P-Rw^mnǠtpgVH L84n4K 2euM(WyfFCKۛ72=^s )Ǩf] pCst;\[Jp^EO0zN@" #X.&$19 9H~y;g"\hQ; 'o ro[z\Ё׉McPb拻7e5EXNczmP f ƀM.LxIz@lwɆs2^7oM-4AAO\$'.q X`4#WP %)\{[m=RR\s9C0N,CZe~H9;<|O@xg)iҾQŃ!*Ynԑ +eI]6Kqh_q1~#5NO>C@ /xgP?d;،."kJP:&36@ǵOM6-ԏQsflL۳c( zt֝xDcl6Qoq69K4ȲH^;p66Ϛa[uhfN:ml`8I*{.*] T=ؙL7' \k'`3șw/Q{Ի|sggcyQ %z=>(nЧ8`v6ǤcDt1P0PK%N39I8tensorflow_federated/python/core/impl/lambda_executor.pyYo]b< f>ԋ@n"vQMI#5EIdu}K PVIUɢnih{+qBt`z}_įW_] nߋ׷7ooo;quO7s!Wp\?  AJuU\&d te&H̀QrT( [4%u\7=UeSeU +8cXC 8 H$!LD=f$Le54Zk5 2pP[PF5*Q,N'avɢҐ,ώ)R$1\>PJG F@`,$]E/~+4 Dԡ8mSeŽ)@ Q%$Ni$&2|&[y>NrY.'ByhF2Dd+\GmBj쏁 kEIQT2]#;yZE,_䙤s.%,|l8WBW5:iqG%!9yBI om%t$tYg2>TPKv>8vDދd_Yu mc_!3Zx=ҨI-wU0,ۀٙU˻E#;w,B%caR'XO|_/@ |j{r-R*-=bl̄ qKU,~V'BAmy/.jZU  EkE@ v-˼ל.8CY-Fi5Np2d G(F,3%֣$%W2 ﲗ}  hEY 1<M٠AI+in]tR%kP>l\蒃`:RBlQDq>d)HA'gR<0}q4d03}g$gz biTI:.A2X7%@|4E,G(d&*iZ,mK ,|,/C|lՂXj!wԎ6on͙hх'!C&r !^bMXU >x,lvhxTxGb+Q&UEi&l rb "{ |ǜ],>ҟ Q2y:6W;EBcPU*09ҊˑV8rEUfTKPOBqP,C_fX :u@cv2H,dK.ϥ9}s1`M[æÇ^Sځ Sy%qJ*]C=T@iƸX5)Cn&sËXf]9ARAGQqv5 ֔nq"}0A}"Mm YRϴ~,UVn3|ɏ$C%pԴj tXtLrGFJ|UDts٧M=D¸(d $w~S$n ]PGK mU|rR >UNۄ]deڬ]Z  qe}T髎[(4 xz@nKVxd D [qĥK9-HXYBsfGwGYV3]Kca{D;u9]HpZ);'$f\&Nzcaƚu܀o#w9eI_e+rs)`&%y&mMbe2I j*jf0`T'OR%%HH.04PT3g=9RԱN8A6!:\t嚙N9.ʪO2*Ժ͞  lEPE9ZNDei>D$*3-~M5|> 88[H*liP yL(Ut3U1L3܋:ڭ {H?Τ%g844ףTc Ǿ@ \s`c Y7!:LdWG+fePO3 iI;Aσʃhy b4Mg5RBfl0/W{"7v"?gM9n.&m?z`²pal;>$n$=xwl%8WNodҜj[ӸE)͋=kNVxr H|,7z(#p:#ݧiH[uB0:j;(U\cE;+wUG[wkzġLOϻv)ǂ7G=IxnzQMm,=UIYJH /veL5y{xpIC?_"+z,%_5-{î/_RHAbU;Dx^ŃNTC6Iҳ`FYpϙ|G+Ϟ,؏JRs [G9N{F;6rX91vqu)V1jd[^vۆo/W16g37'EEbѨ[?Y>uά 隩es̶Nv͙{3M([b9"*3S4VmZ=b=a~U=IX('SfѸ٩P uP#FC{i! +T* nUckBb ]eŚ ZkrlX^nc/3m ,Q8ACAHzעh.ؙFy4LRsw6Xᇙ$@6k^p ,aGT[@e?kicJ \o^ [%+r8RQWܛo9MS,`+{56r\^b{| N!t.f̎pΎ1'Z^ 5k\5*7{JLy:Nj ֙W qsz3\NGGT'tWpWTgbCYkfyH _F*f}^Y#k/7Uzԕ92Qy}aޛ꿩E4!F M Pw/ :vazZw]K,Q68ӕ7u{cvpujTu,hD }Ͽt(tl5`,2,Dx{Si0j%6r)4K+(B.T58irVpW_:/::Kucg$lamJtm{J{֤6Џ#PhINDo=2Wy毝ݧ2 OX{5^G" ~W◬}׋Gv-8'Qܠվu*R@-6Zew{ (2-b||Ooﲡ`uyLuDANH%swl7+۹0cnQ#M-.C6\~R~"u.|#D23ȗ A 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#Q~JTIY#`z6_̒LL#.f8qW EZ" +# O54(bOwJ܃K|D"M߯ |Mq̽=4_,ԟ'J}TO ~d[% j9'\ֹx j36q}E'^z7q fH="&$h"UHSah* $fOwHAwfI3\J[ī{öY,@s9x', ʓ"/$Pg\XTв)]aM1cdSX' {BC&ٝ~6dN$P!Io*pr73d11cʚƢю$FusnPt)x㙘з7o$1&|*X@2*1(f9*8lKK'1 )hUfJWezinB)ж`R^F# ~K]X!Ji"AxLd`3E@Z#v#& ;*nK^ ȈI?9ڽ ]$OP!Y>S2y.+tJ4?NjS0#IzyQ&ИEhj>. ZeL`@NXbm\jx(aT1|(Gg9(úŠ`hU _S'[F( gqDcn d {[xis\?}B(" D#4އm&xߕ;/E@X'.!4hψvA;'K?Y~K${H~b~Q2 g<0/7@H 4 "< pK2ww  x*Ea:#i}t=-%aޡQ: @)8k7bf?`\6iލH"uhH ]l* <{IQUi!|)r-KQ`)kҕ(pbt?AߓYexD1] Nɇ#taǗ;;E7xtBc$=#>:R_>R$XfJѢh0g#։aMZa/@:nAK#bXLjA`-݅RL`dDsF:r3"l3l™L. HMFH% b ejc  1&HׯfW5L+acror!96| 4mhloK>'et}xyr౲6HJ5+o\( 2~]5RI˝SݎUbleLl nJ Pwv(Tj$Xuh(cf霾8\#9`ڻ`eFYə&b|-C"g=k5r!+KR̐UʡŮLOAݫ,pg\˒qT_jRU6x}[WqNpȈߍD77ͤ(~h$uP+XjMi9 U41RRiپRVc_'W Fa,ⁱZ>'ȒNRׂk>eg<ߖ Է~({qg{4FWYzD1zsJjzNBWCR'EЂ/d0=l;pbAe+1Fɦ =IH5 :>D70b^_;ݮ{( u0!k%uw"n!} E}4RBJ;>6p6S+.O`T8a#NEw&յl<^d\,_'Gh#a>Pr[wqetw&rW>^[me#ǔsh}aBQrxpWH^-a5-rBjN? mbg?uGcQ¸V =5nt.dT5Ul dfFIȕC%V:8 TQԆJeo.9+iRx.@]W *OmB2v(H1勷uQ3N_{etOlsHp,Ŝn,%3 D"xOuLF{$/~g@H(Ɠv ڑbH)#͊Z"(}t7Z#GNض8h93VPL{l9gz[EV{eضu&{GšO䃹h*8DE]Es۠^ddȈh1QkD2~.25z%xg0o#B%d+@tiaT: S(khkFKguuWwHlեAMC$,Yx!> GGcL4K624Լ>Z*CbcS>b7Cq_`31' }ױ_L9^L"ak=fz"X{$)JF5{fRʣ!wJm]PߜP@eK>ǣ fk"ʽA9f,mJ!뎻,- 7H.adzViȔ~Gdm{@{ÀLUErs=@PA".3jP]5/񓡑?VȐ G 2s18 M&%/1}g:4:WD4R0ܞk|I M%v{w0[ #83`D 4B_#+{}ڰBviR'50 14>ױB Re|QɌAЦ5+jW9Mb"h̴[IiӃTΤX r6&KxL@dp y1*(Q9c1ra 0J zh)eP 0@kO Z88.)9ȯsK :Á9VrNЉ07k@JuVb.kvbLX 7w]mˡMHiܴ3o_ ~R}Ev}?ңw n">kfpkmziRr%ǭqBdx4%p܏D-ˬ2)9mNϭP 3)l>T:Hi }&~*}[)h%|Afn@-V5J!pp$D@]?n `X- i[P؞rtMpFMٟjȫZc^sp`Mc9H% 6r=+^W^.yl Uri>WqslT Z[:kƂ/࿥%OْP1Z!~ ʡ 65eiWe<8ZP%9}tȕgtڍ⡌ڲ#佗>FG$^90Ar xH&Xř{PU4ˏ9˫qML[t`T;kU")\Qç3^_˪,r ۖM(Mҙ[WaHev T:Z3Ɋarݟ番 p,! T~09ۃR%e _@ä}14rwq V;%@F^B+=}z q_,[qfl b-]rsrB7Ρ7Y<#ӹ۠t/:%M%Egm6Lh KG#)KՖ_[c~4q:ID2ƏIХD )3A䋇d3Be9"ܗFs C r$ %)#$PH d K+aa®Oh4': 0uZ.uNjH6+.A!;<3Tc6c!kW84cTK^tMD0j#Bۆ5.˥]b$[nNc4~`-:6 5.cirPZ;-4e!̊usQ04 (!'#sY.I:6lEPnXέ/hXՋl1ag< "(U\L6 P jI++Ѻ!'uhٲLa|̩q$\83]ϬEVIIx/V,OJkQ`$(S0:-&Qќj1[)4P 1 B tyxl&ۏM .[hZCR6p]"wR>iS: esw;c8[#9Z}nx֊(\*02MfI5חO 5[ơ7Tppo|{B/X `05ppX|Hm^0#:k[2nCd 5I#"W>&$LUж# țw~tgU_*(JOmn(F>) |cH8x< o?iVW>u1P c|ߠa=YQXo 5xHWyEjE22|pnK.UҨEjy0K֦h7w !}3giz9):(bJ,"om̦ O5UCU $Y.t Vr.ASY+Z瘆 1tw8:T6e>M)4g f(vt%ʱt=Zkԑ ] O#! 4zIS2Ie-K#bܟX%UcQb}{ʦ:ҽU8TJ,da MAY)`qU?u6JQP T'.\'PK:mNƑ|/ǗAc5V=E~J3"Qdt#GfO|Xh6%U2ں&ze:7&8-/dL~`2uG[hZcO4g'oNΏ.Oތ޽;?yF"OFlcƷEr z=;{ DCp=9 mY`>xM3H'=2V}}tctб{??yl=@ \/{XW+ST_ n3b KC|r/wcoyz~IWۑHЗ@~yޝ|89?=Ԉm%tu܌'y# b'Ov*c޺y5ͥau- ekiXzg}QhS̥yۇag`Fr`dإRݍŸHYu:ߨ39*Z)БDu=KfsqìJk]cO|0o@9KĮғQv4JEiQ %a濬=ۍJ bo)RDPOuNs Bj^I,Uײ(j hE(6VX!Xok &T[y~pYQU;nRX`{CV1׿qLX4w=5 7J%p \Dp"e@B -ӱ{Qq zF1ٕx,QNNJSL)H[lv@i*C= "^ 񶗆$Ov? VF_MUiP[pɪ;j|Y0 }CQgC._rfU?p8Y}50RMO6w_M`UPW-ϐ6bv1 |QQӴ#|eӵfgh~5q8K“SKr9+`XbL$-72U'K ujm:tؠ:ڰV%e?%toNED틢&75GB~הTA?P!H|D|A Tm:^lh /Lމ,7:MlIy/اrZ(2E46պ-%^{;h5|Hihi' 3Tc~}A"SW@?{b;SzcJبe*utM[|^kAla=։ir.{G= l略T$H)ИŦ2 SpK|zM}5]ڪ^LQX U?pw֍cT8;.ˮ{F&r&t/x7P\щ)ai"O+4jm8.1wZa pYlD7gbwno`MghՀV9ܗj,gQa*&8}-% m喣BfjH/in]Eoȃ.Q*'cB:(eW٥;ZM,/h4ylZ+g>\VƋnm-,[g[QrqǨ38|6x]WA;n8@k^_ wߡͫvd m mDGp&.5({z=1E /`%qWQp 5'X B@U0wL8{ӫn˒̓պѥ1Dԁ'քKC.ODq(ƴexf6bߌQ`ߐ$BeY$ֻL~6.zQ1@y:*no2] Q@pW'|[v`mkXL?M˛w>~}Cs$3j e*.z[gFGJB*/ښېRK.,^1LELdC89ax9`Vb4t. w0xA2mV٪$hz;Qb4P+Q49i ǽpx?AD:kC g㵾"|b$cNt:#RNyq .rskܑ Ti \zN6oKQߘ咹t] rYnXxTM y<. 20[ Ws .whrpF,n%g>+$oc<&-+h B!R[ 4T+B"ӗdܞK4&\Yd1'Hl*BnhR\AAV7?Ue&#4ɏk`N 9iH/L/-Mr7XN D6ԪX=;+icdѥ6Eu3^KVb3)?gMAB.QOmxOs% ?Ovlv]e x3,u, 4!MGRJezrԣsY[pKDׯ8[_)=]HbߴPK%Nzk=tensorflow_federated/python/core/impl/set_default_executor.pyTN0+FJ%eCmE,:$H;v +zH{/9;!-03jo %3jE^X} a(}[nqYBTӈ6apFSwS֒`i(2?P. AW~^հc{Bm LƱ $pJ$Gh-6рBQ7>`j:4M26T:mųb5?'~Qh h[ MZ=q͒54\#լr-l4VEZzz$b ~Fx5&xk!Z 0[.nu\-Dg/nƀmovp>֙BvaԐS2)Ej-e8{b] JZ|$Vِtp_P:I !0hΩ녒8}89OIKxa@`z>a-{%K+= +?8*p1y@$$KmN%t4m)/rFsjtx=KW>eI8GSu"{&q>>tLt2knKxp$Rx2G?PK%N , Ctensorflow_federated/python/core/impl/tensorflow_deserialization.pyXs۸~_:fxL.}&v'V' "A c`Prs{]")i&9"]o]+/oL+qmoH,6J,TP2eW7.Gb6օм)iW"EYM%oĔ6\KߠaoQʽSPuzNU텮DjʺвJicZ%0Cު0+/[b|OHg}}n%[~]ǻ_`1| 地?uA\BBš7dju$NZ-vUG̃ Q=^ǻ:-y!?}/n'qps{1]& 1깶d?GQ`Us¯jȵkU;VԎ`^-.ߜ8O...>{]  rjYoo/Jqj'0?jI5Xz!tX0KJ MBIjti(ɓ^yIEo_L!&_ =SJ=JUj&Y$vH.w(99;F'Vz 7׫ț*哹8x=p$o|cUIƢWV_ږ魦^[0G?~ԧMP,A6doN0U-)Wߓ8+!Qz=0QO)%0io#z 槥Ƀ1VI`V ;IeQ$:AI :gv5((0-vxĔ*_/B՗ Fg8FyW\*NO0&u*1um_v$2i>yHwRdFX=PGdۈgO0k:zsJ dB*(LbHvki 9˺itA F #ruyOh {Q' LƵ'LƍVj5G'/o밸D C)  K L+ ǝQᡀΑʢ!3hR*mZS.svh!NP%GիzCC(Mb*@! VwynG]1~3n$!5{:UZ㌧DPP"#zlaW@,LbB"9_! b+SGk ? 5KWBg[td ۽"F6H>/;-dWYhHU[k6jP3ng|7~ĖFCaxtrStbHd3b9S;N^b&0J#pa;=77ƴo6Vv `gi XDˡŲ?=y%c>߄4)/oTF ([4VbFn꺡n妡&;ܸ0n@n6Wv^EQ.jUapվΝ9 . Z% -}5ɶ;!lc. :U:N1ѶBq0>ULH Gw'Q!s7UdYtZ# $DVDTdrϥU@oHH`id"E-@qhL$x0^mAuR-YY߱gBkY!Y7jk&^E;bVΣu UVzS-i=npz%Yڈ;e.9M@f>O{/ M"L[ق7@muYmE#S@wWH!KUs|iA@0ϷieڪFN{;yGn_)keB%l3rVE%9'Z%FUni;Z#йE /odS,6$$ HRȏ!~r h1֓3:@O-UX XfhiӶzHT) g=[v`vf C\9/%4vV-"}6vLeGɁAWLFCJwM@8*筃vVlGF[˶6F;vnf͖xOr' ).nV 41uęxq"s4gFݓT V@fu#e({_2gTOc}i捠Ё ]hD9X(00S#1-hD `E xT`v 1(AbTa ?xi2$a Q( Y8\./ Da u"-N2ή+7d)vchDmh A PM G]' l/,Ԙ>hg1W !3cIm3Q= qOn/Sx9$@<"Z+Gb OQ 6$wy)8JR8@t R adF8fomNuˊ9P^ ȡ`J*򮡴Y9j3*WmH`0++UmIAssiASQ&[rz(8htzc%7 2<"dA6tauV8HD"ԙ4bڈCou m2g.9Ֆv|Pi3ɂqf8?>=~8Ð2Sl TIo4ƭwO S ո0۸A;]VŒš#k8>\K9z}p yWn}R^S W/:`wsUU ] ⪤""͑͡+Mx0#`PG.pz8qCwFbԕqf͗]pOgq@QSɦb/RР#q!-$v"[,T~)3G ZgvI3B݁1ƭfm\#$9w(# ,\ýd"Nmw'!"_J.y ۋGpL\fƆo/SՁn?WtGZE/ *60EZqH\iCKtGUqkD4,B) qxa#(E `$(Syp  qPR[ AA#\4̱3&-=hT 7;n=+= $pޭ,@}7PGb$}o$2r#1 p  3]X ]9sȸ gh0(u%@V }Dh*K`vH"ʻ !SD0AȊe`(&z~(awgg'?矾.T6x0s $+< ʎxD]M|Ym^Ȉ9k8hk ,V;RmY8xL.`s'-K5!-҃DE΀%6v+Yz*v=y$^* P8rA iޣ^~r`.i8<-[k-4t*vveIaN0jOp@Shƀ=ʞch(eB H\*+ms49^DGѭߐC=Bܗ˔I#eO7bi{GTvi P]|5 xu!F\`my>vw yje[LjwX{p|IvA#'ȕQ2Lը7a1GVŏ/n^\^<}qy;Gpu|2AJ]B<ۥ&(a:71_>yVne3ɷN&.uګOUbӻŋ/Bx xmO/S*9]x\i8Ǹ܌nwNh^00?A<~8wt4{`D PQ3j>%?9(-݇+ڊ56`p{#. ͯђNSөF> oql_?jJn_oMzhNkyOEަd.j4Wbt4m JʋK_Q0*(7y'Qsc]^ =].ewGnOA6Yzw%.Ux/S,+VOPPK%NeOx?tensorflow_federated/python/core/impl/tf_computation_context.pyU[k0~8/)x./c,m7B1b;bIrHVjQ|w9sp{ ֭zT7[#ꕃ߼OaBXڜI3,p%LZzblЫsQn[Evph~%h fah~ naͷ"Q x[`@((a#*$$#^:NhNNr9>: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*PK%N.f&L=tensorflow_federated/python/core/impl/transformation_utils.py=ksF+$ڬ\Zى/)KVEP3p1I_? Yy*Dzzz=ŷE^'RZ<ɗcqJ^x)j 37 3m*BI=''܈tM%SĶÓ*SoR(DmL A__eKVۏT-,sku3/ F ~R[fr3]YM7e1,7eu`l=lZ.dᖾ6y%lt)n.d)}nK]cD`*v131[4And~/~6Vu#tz -A>E3 o!ːx ? cQ}2CY%+UM0%ͪl#O789,^WҸu6%<{g~9;";Bl%0@[57$Ram)GۖFaDNƞ&'o{rOPYT_jAf`91j4z7D{-PkQ!dy%8t9?|(&8 CIgUjY5YWl,%L8[nq4|6+9,# ^ h!jƟ J~8 wQ RV3KZEuQN)3qխ9&/W7a.6u9m}q%$Ȋ `kxEHy!װl~%u̍lVL: 2 R(eS#cYIÑ/ <А &qX5r@:!1-~L+bWyv TYKDS)跰MB.-XW%-T6m-u!0Jt:9~o*k l^L<%O'7YH19C @6f>#f/\HP&КL2uU=K2ʵNo+,auYJ\.1Q#~%oMPw- Q6¨ bBlh]vx:xHN@]?}4$@΂5i\]\&n\#u>h P;G\.$ēT .j8JԂU]'ٌ̃Mv#pqc9ڟ:bL,ED١;A{NّXUqYKh@Qs. iߍdf q1s-\#G*;M{f̜F_el~D}H{ GPqb.ƚ>L&@=$}f *Y@ϺUx%cT.ډlLJZQ9{և'mAu OB-Wj />?2p`:5Sx{ۛb2yO@:͌0bdc?A.'wri̡P4f%0P2 ΍f{DgY&&)i:npQ%`iv!lT fA52Ս,pApR0"(D߄">G*(}':WĹ*&Gt(.~;gI[S< ..XҚe!,-DqeX$%@*6+@@ܨ*T}xu^γ<;NjÔm0CD<(L75~ Đ-.lR#Y%6#l̄" mB|w }- 07kX*y¬>Nw3drp᤭D2/Il#%9\8mga!7̥Cq2 t SZ?vio\;u)U[ѹ&"cx3S|K@oI,9 uШSu#C"9`"&Q|! &/Ղ28Ţi)1IÎa2Gq1FcEї&;vmͣ-e[#]!M"`->ӽCds$ʳgT(&-ϼo}{s/dv^G@"p~_1|Jswy}>1n,r;MCc$"u='SC]Esh}V )X\^}Ķ.!u,liBh F_Lr}X=_sE;j5ua$'Q!ףU''<:AhBK3uIꦫBN.yssHX]q8)blpC)A„/vy5Lx*Jb[_ARRaTZN*UȠ>S5%LQ^?\BYQ&@ͬZ|d>CY|Om㫗/ˀ|:z2x-YZb'a% zJ38A?(My5[E6#m{bLJ4L2y?ɰ-25/="ZpVtpQv"QJ9VA|y_ܿ ʑ#%a|h>%50-R6 \B-./o䦬%sm(- UuOp{cR"k։0"eE  gݎ)NpL8KީxC'<'8"A)}$ @sB$-ԣK@'Cͩӱ#q~$EHy3ʎ6Q1]Nk/ c CvcUmPP1 &8#aLhWdkQoR0&kxIrݲ(A{ O"l=& Os!鄻n[2r\%gBV|v;;lȭ ؋ςR I\5V kH4c/NA>DaR 6`59@qADe[A/g4 0J;6sk䔿pPqJfYϔˬt+ٕ 'mk]A$.` 3>G^6E51tyJgiя]m%p =cP\pⶤl.` 7w`b푅dP|e@9t S +uC^CC'3w#:(@j}.%{71= @.s/o[11A0>؞P>| L6SV|Ks:DlVVlݡ:)y}iOqt`uڢo5(>X18/䎰L_(PJsc Gb赺 =lB)qK4pC l7[a{A)1h on8 _pͦINeuj3VQwGԙmqR-^`>=Y3*k 6rG,d;xuɣMc`:$k' pל8n~ sNAL"͜6{HV[B c㋠1vB=̗ӵMtaXzv|$q0 1C)"faF'x3(uw0afw(ݶY7rѶ4}8Ŏ@\\q"@t<Ʃ>7?oKib3"Neqd CGe\͌q?fgMM,y߃2E5fK{E\YA^%\exxv71ߑWB̄qaC4u7 ܴ=U_;(ljDF: UQ4W&Ɓ d4.^M(b8Y_R`8%{~tcWsa1Ã/-j;O^Pt.TorK,( ڣÕntljtnU)QBpo#~Œ́0\#I+q򛪩vb3W 6; V%F |qde=2n*==2IDmەy$;,ybn=Y-6 J+͞urLrK |&fcvMAF݀ Ĭkm3&V֔@p*HŎ(6ه=3TmD-]2 Wc\nfR Bq"p&&>aӈwo $=!Lp% >1 /~ !!?>c%n՟ uhGH oW'ΒEZǨQB}yNtQ3ɠnKr.gbc8;G~yFc7S'xvn"׳=k64zQz#B_{JwTٓQ7a* iN/X2v)0m׹w(&;628勥BDKMjߤ;m\ytGq.͢fOf|{]o)D:Z gN9|nK)Õc{^Wes) r2R!]˳M/+zI Id\,3ñ1j܌b]3LE(|"}j@LL.ˠ:~gfİϟGrJxn.} QZW80e9Oơ[g!3o~>_@{trp/=A˯ԢIc&ǦuZ=2`_`EﮤjdpBznך zS0].@iKyX?LB񋹮t?xOg|;9ٝwA8! %W:*5xM%AJH|ޢdݤ9pg> $Z}̓2wG.}uKƝ ]i&|6dʞ 7]eOm26\{z!7/$髦BLsa ټ#Q* !5!¹[PN\0/[h~FupFĿ{Cjs Կ1i7mxj` W]@FDF̋h7;x0kZ^C g_2$IYc}HTؙQ셞*8MmqC% ؒjxhCj`$Wx"> l>Woz3ϿGg@fƃ9%H,z晇2z;(;6s6l!{lcx|EwZcORi^޿q'+#{ Á`#TZzU+ Y;HMi,*dHF튑SS{K`:)83T ҂V¶ YLVթyȳ5zf]R5LqO{p(Dt]'BfIƞ}OJ-Ԥ>B`+e'a3D)R,NnylLm\F,vjva+1iAW%ݤC뭫OU<{_\⭤[ "DO9)"nƫŮ&'pmn,You4^QHrn!!DfGK ~Z4,ۅRi3}H_;] ~7CBMl~ FDVp^H>grWlNSEw"kӿ`$2W x=~ʽӕ:lclҕ0Aɕ;ʁcxf 9dkP7X;CY51_J31ڠ((r8 /a Vz`zZT l">hpwb Nֲ>\}iA}V=ixD4\Ӑ_Y>_qk8co nOѥ;tX4G&C\M!i *%i7jlsMuR|Tú5\$6sJw[P.,xQ9WF"њ!"|,.a3#ɴr}|[jF* Í5UmOҾ?٫=^4@& ġah'RѻRrȎE~~ 4+ !i>L|(xP=˟|&+i-Ӧfl=ƾPK%NI4S8tensorflow_federated/python/core/impl/transformations.py}kw7w\Y9ʹ-g}εə![dS5t7-1[/4lRcsg7#@P(T U/N0Ybmi\U<~/*KNEUM+0dyYzS2ϯ:Ƥ/\i R F.UZ'E$e +< ެ,hWe6Lx*@4#m/Kb#zu^ge]~S ^a*fvkԴfF3 0b1rَXU5WyzTaQɻ. 6Enz 0UGilfXa_*O;Gbn+ pz]&(ޢnQU0ɋ [}Q-ۦ'b4`9O'uw5k"Tڛ=s 'β:@{IRT;+G IaPaUr/(oI Ҳe&=wjN ,dYTuQ*k3+09i \ H~6lX-~ ;w39D3/)_|c0֪(u=d5IŰuoY, o&yAQ J=nM^00yR0e(vyk 0M>oWE=L~(xxu6Z2HRL/`b?F8٩®bmH;&#ͲI(I!La#̲2C >Ĝ^N4SRallt;|EhBlYl&Z`u<./CbQ$!sZUC*V' ßT4sZĮ5y8^U@L@W&cm!('Cnp_[{R7"p 9AD2S'eY!I<ǿj&ةԼ+޾0YZg o,2M,D\]KC\Ո'~.j8enjA6[Y=Nb6j.]/͑g% $r$o.JJcü6j9 61ƛBLdG"EC2`F'pWnEOX-Lʌ㷧2C;}Bo"!JP@[<) SM("(x $H8sĭ?ԃ#Iþ1͕1wE#Ÿn[B:XQ9CtЦĖjً4x}А^=vFbd'Jݪ}nUOݙ|Zk6Y[Q}J'D 6;DzȰKx_#;14 '{P ,PQ2(b&vVǪVKi&&WZ3b L~@[~ %xaRB[N\wyWpu9}bw؅;YUW\ ɌrH:slNr}e,bso|h$@w.KćLv;X6bd 5x:j8[$#^C\s M&A67}9OOw"4ɽ;7؃bUN}pTܭG2]vU%F̣Qyjux١gwFbyK3eh-6#-_dFNʠ@o1Nj,&!yǪr9`P{,Da+!j:( tv~4bUvY3#HWSQNh$UWQYY|annL[1.8}?'a6a-;Z%࣊le'Q#',Ŗ9<5L04F/|4^y @b(k_sbΏԺ0+, 6󭡃BP-t@YӄgN#Kg {m]O[evszfEqp9;|̝3ZmMS9m0 Nnc8D{s/GG x)akp{X,~9atc9bFd^ Xu`#>۟ . $^U1}@QY:<527~ĸ?hD_Y+3o7HKi6g\iݤw(dCa5)\yb:djbO?dC+Jd@yU qaLnF|T,#q64h |ƄH)A4=ϼTM+T[X,0]dEQځ*8T.}#Gtl8ɂPʨБXPvNh&jm;-!0N kMc?>H߹ y{U|}=M2UѹZ/*#. |)X \B5dכ&nioZ~X-=}y(['i7iK"|{ $uu`1G{Z(|GwwΞ;@y~wu߬:9=4`SR0ok7xCY{:Gk+6/wpzQE/¿Z" 3ɉn Zg ]AEoa#RJNƒd 9[6~ɏ'ZA[f?y})+T|V2 sLE6'vxh7+90 Z-sLX1nNl6:}vcTb}9$7v*W [qT^C \YAҕ~?nټiӱ]j6\ L}p?ڕaA;0NmektW.ew1f_)%9~ߏT/*mNjqC2m|=cX{] n.Ƥ&sG,ɭE])ICR/ӪrlX0rRno3 ̺"KQ )hW aWκ,|/c.kTq;nLꆍ5]?:[tF']q5׃[ANM yA:ZWiv},)ٚ2ϛt3Na56la?/Vov6-q^䘛%c?6?V~ [v绾E SX݄8924kֻf 7oyukTrks]oڴmH D`}?[tZf\ Խn6Gl2~Ä)3TWr><[AJiZΗA ֹצ*edB AlO?!W4P˵>І雵I]>+Cv?[T2(ВxY/T|5Å EFt Taf\WïE(RcRjC戗v.r k o `oӱsLGvW*r-nwM%;ՊŬI\M l'wޗ!vh7CZV^d/V%UJ|{mKEK[׬"k tc:YXs E mno~ +iwc[2D:ڐ: :5_p߶*s hśD^-(ۗfon]*<'BGBEp?'6JjCIljXtʺK7|}W&ΡtG jB-5׺8+2:+&ڎH9X紴]G %!9^RzE]CL(S~Sw@i`.,h:­c99ͽ[n1b Xv/RF?C矁:ai3ax A'y A!'Hnk=:~rt>~Cnioɫ'6%JŞ9͇fEP57Jr42U?Z# qD6UP$x~[kUSCxvVVH;i:tA:+_)v~:|y9J'Do~ɯ#8RK`2nY?j-w%JVX*JdQyq,Ll:iPبIVEPZG`WӡZlI5lE}VC +NId拏[, J5K<4$%qζp(ſb7|x'cz( yQ ZudM#( K]uQ.A.X؏nݿRI&~F`$fe0Y^qAT:-eq0U2G|7=w X \ǜƪ9W#I/W\5MBpk\ -PSiw+l0^kE;p]@[=+5&/l {H=p-B|@5r,4K@'£#ئv . xM~4APu6 qPM5)oiBfKvL HY_[0uKۯYYpB'h@dN)k<@G+heh;.4V@͔5 H ٚ:tG'w"Fa-rfe,sˁUqĦoO+>&$9hM@W sžo䭘@;H>p5_ P=zT_KqFb(hçX%B=rZh+-O-5Hnnt:Ā {OǼEw$3{-!^bB-σt=ZvrhZ, d^{.~˺;fuA|i 3幇9w'nRȖ{Hԑ~G.s Z(|])b{NqAqpv7&S{>)/"عlr-< 3<4M7<Ϝp6TY1Yhcq>ZB=6&?ȫc@DbZ `pУ\ u4Z6xi }" %w;fMhC  ^f(9P7BHV1PXrL@3H^WW|x+־"xL*{2&jHVL+mn2֩5#ۃ%y|UPYZS!–aqJƘE)_@h /CEA` r6nRc0θa+h^HF T%=!\%eJ{'4Dh=r9-j|!.[֎0w%7}:&ĈCfJ7R`=exUHltчQWKCM6Ah*]C'zG`i)RVrB0"  G UuN^mq|6`bUYE*UDV{=xٚgg.j.Č^60FO8P )ԱY9Όz7wiuv x*g*kZ!lx9TCF@SyG%-92 e +'\`fBN4;>"b㍓[񊑷z٘Q̊^Jg$P#aLۼcQ.(c]6lH:C_HD͹TO nTvSaibf"ϤGEG cXXyA]n.r0GT'4(nw, G8%h$pKONGuF!{f$;ϕRc)ؕﲀmͺSE07u7fMħAX$z,@-S~wmOUJvĸD"flkxL˔m-e/$ۍf!e`$lWA “++s#)=Z@yo5] ~UZ6.²6Z ;*d<0zUp~4A wdzߌHl6Q .(Hqg΀zyV%y Rgr,n,$ܒCIp)CFCt Ql:jc[)B &jltfU0"/GFR G<\ >jΊA~jkG@@jw(e?6ZKxvt7=Jxg,^|inT&7|@OgSGQrfb'\Gy]e(98AF$jErhi18hTnf@˲Ů`#Pc_l X[L<%qw6z,ce,ܿKB*Jlu)t*wAxma:ң.N7al3Y$1ix/3g)Y3zx1,t9 |FA!3 _D \W :sV`v2CRk^xYܞ'ww;.N;>vE/MJ4FQ.=zMܓrWpUT @~)E+<0Ȼ[iB Jx5 sFk(ArC w1|Ney^)'k Yw ,z u'(*6n…;9I7>m&b](~tdH~.%9F+,D~f _s!M6+$F1M\Kz-sirb:&[pic" xð=aiQ48v W ʦN !k_PUNl>mf$-.4xαHC74{Sa1P -(sLر-*& Ԙ$!fb֛Li&u2E*;'fQIRwv 2HDoZȸ|2QCp* JuAw`; ح\O"j؊R@@r BGPp趫joF7Gv{mA?6gUL:aMB6 xҿ۞iT~ѹJyEѽ]?Q|BN[ "P=͚=6qw?ZJe)J*n!cz4Zۀutg4bƧ-c,Wbߚi )uFmBh4z{ªAZPG*^(jsLF7 pDnsYΘ RRtJ֞_^&8 o@uvXNR?7OlQZyԄ6|^ 3ztw3NW1uKv l5rFu*T0e!J(tY/#fKM^0҉lM^]|gz̄PZĮ–p GYd/jeSZ0SoHI\ M'syHPD@(M|Ferv`LR_U0*Nh.m`.-!agbR1hN3]Ȗ?RԚSƧqZHF|8X5jm GTV7Fǩʍ]}O0lEոϪ QyFV=tNDi+#֥РWgE u)B6pl UBY5]&y U({eb+/3 %EsW[47bjPK%N?U{ >tensorflow_federated/python/core/impl/transforming_executor.pyVMs8+XsW-) N#m-Yl&uOK ̌쓒QE#X>!,Q=f &%hN끧dCwKIӤ`)'#JEtg?R%YRY( 7s)T L6>0hȚ}AWyb|zl"FJNEmiN7wo|\SI B)K`PJ#=hn\nFBɸ'TGI ^LBדt1"/K:y|̖ӻf>.]d nGT+ v$wum!)09O)/* a^PKJ kn\7 E5;oz~"̂L6e^hLT0wkFk嘓㼑cTheUrrSڶ1" CO@Dnk<1 RQŶj,+3͗w㚇c$: υ0.fE%\Fu9Knx`P=q.G!lyĔohn둰9(X3蕩Am1L eNO-K26n ţlXsP}Mn<ʝFf0n*N-kKW)l x)F M_&Bʷx%Hv~V^ vBxSPnwܳuHziԴM& Ho"緪hwC8'Xo! +(͙-АR f5d$ z8 )eJ*uP:)`Q 2lL%S?G uv x@qnnK|Jfjm0nBvo Z&1w:Ҙ*T"v S֚@q0"iŬģk!rUH>!8mdBcYm:ws:ڊIׯPhx߁A<4tnsI׫?GbfB4#NkyMg@5`  jQfTSCScз!PK%N#G :tensorflow_federated/python/core/impl/type_constructors.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[ع7NW7PK%NBDh;tensorflow_federated/python/core/impl/type_serialization.pyX[o"9~W$h+Vb:mz[( RU]a=>v]"tFs~;$L =L~2=*xsa=OT<p $C;$HY`i57C'WZއ70W*+J8 bvD4GBVDk eF%ka A37/B Cj)~V2~Ƥ26jw9J}i~6 -&/Iĵ R4hVhf xg5nZń)R6B%VE+7`XW9LWd>Q/ :y2[L>> =d}:X{hq95S[F]vv݁XhMmPJ$ba#" פAs%X$mr9KsLQHU2rLz"J#t߻6UXS g֛Q/y[F7ȪS'#G$V11^,HL,%mPN.a˭ bks 3FmF.$@*'5BUaK RP޳*L!غp#bmq&n5ɘ;ti(VD񧦁fY~PyF9c-&Xc=76q\: WL冡6tf~眽/sEl)6BJ&%&-5RPaoXSYv8~qٷCQTm{H:{\܏cvVK/\85de&gwf9@>ZV_Y2bvڅin6q"2哝OZ&`ԮOc)NdM), ZpKe+j7o$j eS80rN  pT^ G%Q95(1ͤ$W K[X9tU U ~`u}{PT}M!hgnUTArZ'w92pu,/M`s?kۆK5}t xSepqsiv60vչ ˞ JsB;-ct<ZMsԄjv6-!^)3~]|hT0"HZq k|8+{Su;W.T~!^EYoX҆O$h哬`^r͔<^u&]69tjJ9Ȕ7]08QŢhϢ8Zp9mjVEsa.w֯ nu,*[hz?i ڼs:}|VRAqݕ$9F{J7f*5Ѩ|(iw^G*$t N37i |P.NxxBU,_ˏ k?s1t]˞*SMJ=ʎmxWP[儣' Z7t$輕5T=.\r i;- 0Gū @#_{=I2<5TQY$l n_;88Bh<\ğNoE; |Kz%PGSV߫\ZDp Uݮܜhai ةSXxMz?OUs(A?YH.= _ p/WvŊbPK%N^%)&d$86Mɼ\oVyZ̳d7w4i$MBo௥.I05⫯v$N߾x 3>UVIuW֛}n`BJwIY%mwMUy..2o-5=X&~WoWWU~zՋɛo^՛$$\0MIlH[Iؙ:d_k,#퀮~b{α|p?JϼXfU7  UNVts(+\Zw[E~xmo* eRx^V}TҦv $IQG~{X|Sm5K ,eRʄk.* Ӣ,r[Ofc"i Pe@y1lL}<춘7 >}fӛ>hW}γu[$ mW̓Ed  vt1HWiM~%ӪhE@0MfR&W d^z #QV ! jlҪ3Y"AG-WR i[4\V7Oy[-p-MW(״X$I:k17A69J,Q%|]@[U6_$Lwj]iX"_^Oenz"`)KqRl,^5aYu[_Xqͻ|~ǒȀ) p>c6b . =Qr7Û>o"y@T.܇9pD2<`F9R+h9 HMY 2aVZ >r @ mU$iEtYKZ^ #N}Ji.dȔ|P!Li|=t>i3չըoo&.C,yqJ\,gt+nO6k嶁qxBN<PE'g+oѯ%-ؖC_.+@{TY2y^u֋4$60?8e>dAB48oM B[ $/ERH:$j@wE|!:wH} !$p4 [N$a>m3)( iǨFPH_Y) YC>'`//xvtfݱ 6hYd *hNe}UwyQ6U9lcИ=4_9LT)k?Nj;<r P6a, BF n}?Nڨo>ZC+7V.VH-`zK0x7$ݰHCdZމgH69Ĕy}iTd oVSB/ =DuUVb9a$S;/ uڸ q8k'h@Wl-B6G%-"bYl5)D4KHOYA5j$ih]ѡ`Reҧ%3@"+ vD:4uQ|}[NǴO%PdB#d<Z H{[(Wtݴ֤ j32qgrY^#Vv<r)> Xb;%oS0 E3#+Wb*[YqY"rP(j:Dhr(„rBۊo1Ǒ&GiN>hȓz^|=闱8u%f|~$J@z"F,v qNJV9 -A+hЛug3t1#3Ԓq# `i؄: H|uyezyk=NX] +Fhg;)ѓ#J,As*82-0|âL{vo]ڠ&:SJ\d*po,$xRm'&5EAtכXfDT絬A@m5Ycy-Q @aE qR`JVhޭ1)$k_9^uϝ{^F,@dS03]V#!Q8a(y rPb 5\7{ز-zY @f+Uͯ \sRFɈI~$Ts^I#-XA`+;YJ*yTDES)b-S7}U!vGD*FVS-q5_<)%]+C q،@r-'7 //twUnD4k&K+DF=[Z{ďRcP|FNy:ӁX!hdE;G٦+*݃]i)2e&en5$ѩ5k i5_SB+6(DF[o! `+iDVM-/Ln?SNٛ}Κcwł&K -H쉒 #*i-۴U RXZ+-\Q-Bt9$xs2zR NS)/~m PBIw^ރ~$Ԓ٧_#?4A]sf C>}e$.zCB\6*+Q]⓹!QΔ'J+OcNh['e1S=:Xf&d?"OY$wuɻ $@K]*Q]py".sDE7 K)P HoaH^dxMiʾ*#ko?׏<-auHFxZ_ZC-Fkb?+ d 91N*dCk^?<׻uNDupTÓmCwm(tv}O~nA {@91ףɶ ;eAMu=stӳq'({RҰgբd_"vi;ӚG*%fo:׸mjRda9I7AxE&b1WY2yfQ[fQ.ʽ0 2 [69gU t}x#M=3\>oV1/H@[:$dUtbg5`eg!RD:S,?*K`]ࣘY/tXgHZJduÁr=5Uל7o]#FAzt\\ȆGM:DjȞ ('Cvik6KJE˩E Ʋ}H,=5@/aEE}-*DrFf+$iӴJ[!$x꿡ziGoӺKyӔwuʒP%xoEoy'#񈝹ft&3KTꠇL ,I3h<>$ ta(3GقBXM$pc[A+y$PqQ|LJ| u JwF٣~ Fj N⊍vR 4IHI.%>kʴ,iOKYӓULbxs1_,nL6b2dtЧf۰乫Fk:J]$WT='?F~ly o0S[qΝPsW 0ѡ? fdB]t?MH^L'Y]q8on_*C/jVb8MJhl>>|9AhrO_8p#z`EpR0e]%;UZi9La)[?I@aSeues9Xg0c-fv籘 `!)ըl-\K-fY,vk9-Yk,?XPh,[mǮ+HP=t*U-a,,9@Hjȧ&|Qp$8Ѓ eU#]y>}yjU *"E="&\cCDOA$A0˽]km].2G̓6cpg/gQ{LW=,iee sLSpq&]P+lӁs8?h^O߀"/JG?'HꅊBuct?E (_P*\3evEh>Ҥ]U¢0t.lư)_!3{&,HΊJBSJXB%}@GZ54Q\ľ$}4E'}tԛݱw66rK>zޱVFD|p?:?z1 5E >Ӕ OƱ_]ţ"eݦ+j  >Q:8犲lgF#v_NȋM^(CT0i Bhϟ0V]lc]L'?7e¡DoU;o"@yb'$%/b0t, Sb !*(l싨V Rcg1kh,`Ȝh),b֖|eqi3]#"ʐ|)st+r|=";kfvGF!# zW5b5 ]Zl9嶚sb]M4Yp/; Vţ̑qfΛ pq1Ui[: UP9;<K$HF Pҽ#H=ֵZfqȚ[g7b-(]=^ӖM)ŋ|Ya8 ]`fH^)i̇~"lyl}?7|~>HffR&V)4=)!Ȩ8A5)@y+Ǻ7=]Gp&}h?\:ԯ=Viq`7JK؂e#8$D"z//m]бTl׆g*YC7FO[2oMxLSHsCo*?1:9Q&DoDi~D{j>)?Q Nc|xʊ"ǯ2^=< =$cnjJĞNaDEӳ.?;#A^֑O#heSd R`75|$@w5[WNdFt.8.͘(i@NைIt;N\(6U)Fm[Ɔdw1H$~z hu6s }O٭}SCtO[6Sn&0%E c`9E*B"ou|{^)tr}aLb4_{RV^d3Uqq}>勓N͈@Fj=\K_4 1+J_bܺ+ࣻ1g8ză"ySdVd+ ]ZR` $}Te˂"`Zi;Adޜyis`zt=pnzfna}ڜDTJlGs226Sʔ\5x]OkѱǣzK߯ $_r&3w\}sWZžjIGA %ߌL2bLKK0CI5ԖkgE0)o<?yW.T fbVN 3Eȥڡ#ź\PxBpaCf%v,Fփ K$X,NG{zI1i f86.b53HkCLgUW:ЫdkV^t nKA^IŁsPG)}ij+<+>T[/1zkjLNJX =藟V]-e V~IϿ'9YPN8)D=Cr>/ƛn%a=!OipVH^,˔42eތbR[4ckL~{m8V|H0W 8f!x8%?8b*CSAQ lx`ȂsMqbf&tmK0ˋk˻W**P}7+giJ1%%ʂ3Z2lT]* Lɣ|Q2!AGQP.80aa!FY2#0ϜJ*W9.@T  6Zm7*";,R2Y֓7=0ff](0NvDN|)5`pz2RƊ rhZuvYSt*knmw.[ A{QX=[LPȗK}h1-i}h߁S󺎼Vpb=)h}&h(F;Rl\~ ArETק_E *ku9Z~Cqᜥh*jB3A@`@2W[::I~ f |6 1b.G~j5i!xW=^ĸW1A$J;w+P &Ũt$9hAJavr;f3C?lK ?0 ?`0!\BIdT" rzZoBN>aվfǗ\GՅ% %C/`]4e]J/=g0:7VT؀cN#3xKvbxOEx[v@WFԊS qZѴܙؒ4sȈl{ԶG6ڇOPW,tC;?>Ow2E"Mu&{\t֡3Lrpj%d5ങit\t'eUbCw\A. rKvѱ֨~3} `K:9==l#ōi z\l-^LJezMr@ 3>)įz%ٽ$$͙h.#]SM(ºA%]'(xZe\p[qXxooxoy2&ۂd[˽4xI$ݎ*ġN|\h~vPB: @*0vAO0txoy [I4UlGĄ[x7ug) DПX+@4[J6G:Gq,@w`Ж"f%rҰ pA9edt7߮#Sg'WJF g{^ٯ)ݲTo$%T.?DYDD|t\脃:֢Y$bHZ r$ _F/\D:.;ʻ<#jv;w'Jj+\--˝ 0pZ)^ힸ_%vxލC (ϯoֺ$F2`u!-Txa4Ymwn1JW?^0/0*0о*o1aTzj 3z2i b3喨WK I_-AU|u0߱!Gz3! [뼡Z21-̂$lhW83nvnf!n .ܪ~ ݂P\ '%Yi fJ5z~ͰoμvD?*c,N_y rQ00;… Ckg q`{H>Pa;gbn&L9jz8h{f J|+գ%PKNdpL=x2;FtptfVH8(';*TZrr1e7˾5DOiIydf! R8F=f} ?k-%NZ$CQvv]' .tJPr!|p`Y6`l"\_IɃYH-6 ٝ2%9\:wNUl'[fyzH:9p |v;=eMΕm1aq3ɴ PWsY5Jt_I_BήXB%j$Hm "DbI)b#dSMꥒ#ߕ;iEDqfdRlB]'0 zdZ>\})3>?+Mv9a/P`qjZu{pkAM aoX&B^dTSR$NzcF[s}i`B1o S:,h:Flhe;;b|)3I W[kLRrz\-wCoǵy!~g:tJ/Naӹw (u9WءUfźX%rطU=iCD88-T[90t[,~{vSAQf.oK KiXwrOMZ~q5UG>D<)i9s4_՟0.CE,{ޒKP)t5Al^ĊdsFhi?zSJɈTbKŵ+p[sOp=}9 Dv1'Uam?Zztî݊1 )r$@ O( +i PK%N5'C3tensorflow_federated/python/core/impl/value_impl.py\mo_p> [8Nk4۹!P+r%mM*}R|l'pH>;;3Nf%ꀭ72Ͼ=czSŲdvJd*/ަ-{+QR$쨂) G`;xZe;+aњe~y~g~(ley*%Tl.S],%:<咖1D !J9_÷??˲\|y{{r6̋TT/ߝ]i·,JBua| |lBoe bT>/oy!J"UYYU6eكM@^<Oq|tqqtvuzr/ٛӫ3yzf w&%Q$(K! s͐ZXe _oDvZ+P KJ*W%=im*’b%2;ʨ`<葎/1Gl!2`,f0RK^b|oJg@Ye&( H6i!-J[7\a!oDF{ G4X(=v+@!p5b1?d"|0q6IR4:N}`2=B,P)3a7{ั2{ƃ 4tK.IMDKUgAg@0;.1#du_sYFjq]@"WrqdaƘ O2Z&$vXFf Cp!Jĩh}21k*c`v CG A$/xdǓ#+ڛ .77e?Uvπ5A0xxЫىsJ$WFKy("ퟯ1C1"V'Q#X~ڎa6rr;n](D`JK>/i4@ tr۱xu_q9$zx\vvbl0ȥ0'ZzAGs:tPdraЁ2hMgy&E4\зzp[+=-cņNa݈~w8u&f ,IЁ8[%4~ǰVR5osc o,kE;J:ѧx [usyƅ.Ӄwu-ߟqC(\bR޵ܓ`vV݇Io"͝I;~G ݢ\BAw8{&{wb+oEZY"ZÏ @0sjQk ;̿&V4`(e%H5vp0Ob:$_iP>nkQ,GT.9 OP>j]YZ(Ø"} ,%7's爏(ןqiUKQ JQ~Dw`'iBZH>ւ9AX?O߲uhru$Ә((D׋<%ExI3] kL_$!)ʈ.f Y dhh@AnCM=p,g!P 3K<ڼ xp@}BEhPF_S&3P NjtN֧s1F1=у{um@}BDTIsk13\O1ϐ)*B-qT:`oogY,s6-s1߀fm( Ķ}ʎ2 &XfHZ74,R]s 2 -u 2rVtcl[(&Ez_BMD6^h'}\P*!17bVaX<=L*N(O(bP[}Mk+YJJG ULQ81pvFRR."l th=[ mʼnC'_&QsbP単q kUQ30Lx7ts/X=AAk WZOڳ(УE7bJˈ( 뎄fu7iC1A0WӽoQQu{fMh}!IdM I; ivm`̞$CS2dPKA6:)z4`͐|̋1 >L.*N K !֚VQܿ)]JZWcڹfY uejBo!Me2q;0^9uUf8| orZ7P5(HB!K|Ȱv dK)Tn@| _[yZ:WONVU$Vh-:_P&D+ 9̈́WF:!X]0H(yUkC@ z)L=}4LC6IMf')\ueLcz(N/! Պ0")sѦ%dkd!3:Z4bhj4MKrB)e%p˳CEA׻ub`TަhT֦n&1̾Z_8sD8AP]Ak )Fꒊ﯅^2kC3nu9? @Zl jg&"QVZ-պҍM]S0uԃ%fwo0HlmqϝH¾?岨^2'٤RgwoeR/AX]5Ɛ  R+YЭ}9¬P3Rprt-бh]Q@pG9l$\Jy&3 )fXgA 3'=G+ F|\!d[CW"gq%iU9뭒FsEs=a:"XAEm]ESĎh[>mȺx*錢c3;g`0rԳj (sA}J׻6kdmqb$.jOS_N" yZP "|>RѸ;KBom|Ø;F[2P%z"x0N'}aCEPdxj) I"IJc=fG2wY>ShatBf`t/w>O E0M=JT\0vij2SWs[/o @dw\A/PK%Ny`F_2tensorflow_federated/python/core/utils/__init__.pyUMo6W K v{)؃6Bg;X@I#yTɡccIi.gSknOH^"@Ylo%~{/]|߮elKu:AIK@睳y0#d2JkpY+ hS'&)-2u&/)r-5&ڞOY$= J`=YbXabY$u 0#1zs5\<{~NM&IkS*6ۨ$ɰ.2l:A KΆavGF47 $+шc`]i0bU 7֮:*&`DE[DD|8\r(}F fcqf-h[OƧjRFɷg ^*~yB /pyrC1Хk1l*尧&6a >k(b >؄')>xTa)B|?}Y#ذɓxCe\Csik"vˣŽP2aTa8,T ee:DZ`\2RefmAb>TcrcQvC1VD2PPK& R!1"KdW7ϯT\H-Yx8n 9rW*;H&I`rܐoT'r\/21Xq Vuː Ja'β/ çER֤yT|5Ez@GRII Z@g Vӿ4۰eѽÝq1G –8;FOq 亵13[=@qظpChw*P߉8 `t~LY:-U~e ā4bSDP= OUFb}"*d:>qS'/ D tg"frpXE/\b%ںАЄDlvݵN5:y#j0̾m'.a!T+8e2$SA1Z@Q|`OW5 JbP}eD<C@9scdw S38StLLyҤ ͊<4l=l~[E/8wO؋7zrve$7qaҴ|1n;c2D8(*v笍xM8߯'!1t1`>l}vKXux{_i{I] %qFƑ,ߡ_\cq}Tp/ZR3 /bd}$ci}7'|-!I:ȪFwReD.J-Cگd:, )SlvQRQ2nr{ ]]%ԻDPOv3~n;iTpJui;֍Wi $UQ ZrsĘL$.]A҂n;6:EvA%e]cW@c:*P@r0!=rw5s.(jO22~t؁c7w|+npw=n9N/cTp}?s,LUb? ꘥zPSN{Cpm֝O"r*lgbxKy Cd&c&s]N&iv@!ﺮRcq 'ԯAOe//p5&Ưu;.y7D9h]P qC{T(:ڱna;U]A{w[ S7 [Z7{e>< ]m )-"Ckm[;v/,b"E7 i}BIB iYN7> `8Mxԥ#E^],7w{g>p>ugя[Ge۷hdښ%^6]-T>mS=q.T Fv!̝ ]ȕ8kAw CxaA}zQ~>D.z1e£ˀW@3ݓEW{[ ~EЧ׎ {/K?n/=W߯Vd# ͨs|$}h $55*62ܧ# ?NJ:)4Am 0@4Q;o PK%NxHZ@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@ _HPK%NO>tensorflow_federated/python/core/utils/tf_computation_utils.pyX]o}ׯ8ӗEn`( iE.vyw=KRIA2c̙3CJ{ʃ_37Wߏi4{[LZeF [K/J')5PBvʯ1_jfV /wבp///w]"eWw7w78Y9򿕲@T,;2JyÀwVyWcr&;a%dy?V.M.a <ϓ'www麟nir {z~L1r_Z(3vڃ'rR*W)WXIZסRڍrMxjaR̕P@yӰ2-)RnCīp+An͆9_XxLejK7zة}s.G>y"I̪=/ҵpчWe!0Di-ǯ1`%X3n0d2󭰊9Zl/4Ű95Ʊ``|^&Meja%qb<'Ӽ=pQ_pyyu۫7ߏfY|:؍s:4ZS;\BH_ue&H$jf^uUD9fbiDi=yx*~.Y@}:" '=~"< a7jM=LU)0βr&Mi5<%X,u -X@p*SN.E*l<)B59zRԥhr۩ oȽ"Dtܙ`?Wrb-#(bzOSU)q4 2Mo^jk-2cl&ŷ"~8% kтqvqۆqqv"4ʡai:c ^h G=ykeg? "߉I_P'dPK%NC2pj0tensorflow_federated/python/examples/__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*7PK%N@6tensorflow_federated/python/examples/mnist/__init__.pySn@#|I%8bɐD95 xU΂-%r/yޛesV_,9[n|C~@Q9m׭`ZAXAsuQ0㮍,÷:7FwZ]t 7^Jp=t JB:e TPδRat\HX^( 84 "sX Qmmh'[l*VYZt,e3ÂJg@[E+IfN4RIGV{zU~ ༄0 Bx$3K>vq' ;Xn$O)3I瀜^?>G|h;9eɾTӋGAIX^,$ o1aN"駱%[< ;%wԯ4r pHAmuEQ[, o@[~{[*y^Guc;[Uzi4>}Q_}4}'Nf\)^VԱ]J-υc)d0[X'MJDjV|E*It2eMRQTSfC$+CiAQWY*H&5k{Lfori+ c kcpZj5̜~]{ 힟LjMJY .$*%ĆJEb$LoTjb.JBKjem՚(d2gs:~-~yANnn&Wٻ9]t]_atI'XP)FGsR ](M~Z$ORp*TmjCK|T;990@\7>^ XfEě|z.^/QeNaԦV2 ٟRK]f[Ə駔lRHk2ˤһ9cMLD$Gd2V2X&)P]Fˤqy4 {DpFPsKIy߻^kHfb+UЃZiVHtpйMvxQ )e(kLr&O8/n}hN`ԒIE\D:̄Apj굨{?lrѩ+Ep2'H2 "#٧qnkM y Yx FWBiyJ](^(BvW%BǷDQDCeyҀ-Fh #B(<^3B,F}p6 {㏂k 8`Jcb#rEbP"'} B|q rQI5i6$|p2nC߂ nWpܿnɧvJ2Yn,3zpXH/EԐ?5[v1^Ă):8RhW, rˈj%OuA Pkf[Dlʦa~M -Bo;Y* o _zI:ݡ)eV.ЀLhHź !4wNF[]:xrLBAgq^{oތ^ 2.At5Q4Ɲ73.BD5TfρIߞGwX;(Xr]L>y + jX%͂' Φws>5OE%}-rZ{pdK4)J'h>0[O, ;v:ZuwsFl5vTdVw0Z7Sc}t#G>{^Pfq>:rҳ ]7JQ]-k2ua# nǦ x}򺵔p){;28B0>!KzH[VpzHʞvOUYՙmv*[6~mL8N:aƽ3 ܎|B7yf:DWItlFI  V=@㯍( :Bs׆XpᖐV{7t݂kZ;E΁ E,޿^BJ0*#$mo"/E'%}[1kpjXrfG\GĄ`<:"rm(N zPK%N.$0tensorflow_federated/python/learning/__init__.pyTMo0 We2i调뒡IW 6%Mf~ t[\ǠnQpJ/(߾|0GiT s 16 (Rd!k#b3[yFJQt< \arX$ a>d 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؟|~PK%N,5p ;tensorflow_federated/python/learning/federated_averaging.pyXks_#88eG)9ēf2XXtw!} J[$68޳RZ(ސ+Q%_,59?=6$%#SV*!or"7,eja [zo`-O` ￟Çt<ruw= H9  {$Arđڄ2aRKxȫ\tB<2YB:b T^ Vr^pMyT;::++XizbZ|!ezTY pqE׻EQWM@Xޖ,sv"ey\ko2I ͈JCkM޵^/)U >|\;"ޔ }ؖ\,?;Z&2uCH2`\qX$`b(qV^܉o֟d`Q.K֮YCPdHfP4EnnTr_C_X5L23>#ɐ8 cJP@P;d%#tزxtBM x/qf,g, 5:BCbe]A[{ w'VRyfHe[풏X10fq";h lt%g{,a>4)𐣵`wYshֳ\5Đ0)zJ({[䧟E(NNJPLCYY{Cy`v %5ARQSiP-zj4FWPM/qtJ'+LvƠ=Os}:;džYBS6.~߃/a7w#) GO@ii`zGQAuдNbzŎǾA_ 6 Z:.i1O)!E#G[؊g.6E`0;-T'7hdh[ME[/l!blG^WA;e|7:'O-a  $&;g޾ M}ëGMA %MK(!pnb1z&zK 6sƈ.`_ \.8??}vϠW)Al%HiΞ`>L!YR@z !a$CĨgUlT]03C%#qAe@g-y$ o%ք6?lې;V.ϘG?O֧>`#Jĭ%7%hzdO /pDT\%͂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/>];qrwP+XF= LjLRC`3BZ͒E2e-J,Ud@Xb(Л4Y%QSI+j3/iM^#<{Ы֥m@ EqPqd(m͓q{.i6C:xGyT<-2ydpQZTϻ_P $P-4xay*,~9'D`A<"!<ۮ򺌫zoN*zgJ@#Aʧ';\*\j rP*eoCO/AIcZ,p}3. }=`!"S%3u=CC4yN , „Fk =#BPl̿,$xYQA{e9 $ذ\ ":܄\z"" #_Fg:h*ZF#Dq:XtN l]W8܄9[d1O }u!W#kPˇ%!̻t(AlYkf H F 1J22M~UAL=V=دM4=Q|bY2{#q'+)@VwT."H"$ $HPL]L`d&N"/F"Y V76ewCJ3hStElh 1"}u?p$h[l)orCbtb'x;t=Egg`DZ㨘]6+\⮆^3x1bW[6K^PiKjoe5 kwiбF+ka+ăG I() 眙x+iW# x̪@G%v$EtQ[RarB=kBC#+j`=4^ksCqψ4/=L[7;$_W dvpx9eQwIpDILǫYÑqf@3h R9$MV#㵴،M\+y&9F#,F f|;%Rm$̶Xdg B#f2Mi\{~ M^ pb ZjJ̧CBU$qH-`C:H5 ElhE0)`ġdR"IQY +c1,Ѽ!QPuM覱p|6RGA+ڍeav3e2lQ oشAk" -K[tS- IL?,ONO VќR$4L&5$-IYpeФc =IkCH!gDxtl[k ò l"L6VْY!'vB_>үpu-0t;"0WS"6Sele&^Ƥ;T5lO:/BϬ=N|tgT>@Y{ur(.bb+FT:rLGytL0No>Ӷ-;O{ O?k|~d=)Gȵ!tP._Ή:`t:$CUFC/c j# bdVm!z R-_2ALƛ,f%V#."BKr6?pP&2 fE/恇Q11dƜGjiU#,b2"R0<[B|9=:pH!!y,%!WTZ)s2,ۺkxc]fes#cJ*bp}ߠ3m ],Y`*)8`t<658mjӰR&50`0+Fys"tAvlWpRessCoxJuZBIDOnnέT[meBugr:`t9ݟnndjk.Li3}9K!F m^x7j:Fr[*AT^쑼E^KT-UByM:Zp[+ht&kҟ}tS*أ2tR0tk crSSXm<4oE^}<7׎ㅰh#&ynE@ԋ !V{l>>*|iZhG v®g9lzUepi0#aC;-eOMYA bش-͒Xns{TΰXN'W^WO/[t 55Fad+[T* U)/NMCCi C#1^|8;D9ޢKgOݍ11r5xR*qe\+!Ý.5uғn#˟=`L‚+UlWcUͨX+Y~jc$qwxWp5=p3\A^:]GW^5$mvuAc'i&oshVfo]J{X_ru;aH" M ㇈~á6 i80|0??K8(g^~11x@҂X+`%w` S?k'GЖPcb8@чApE>-9O")k͔!KM5y'Zse<Ř){ 87\z/pkU{Iɑ=-N`PVVXbCqUXg,iV O~q9oAZPh-<ҧ؋EVЋ|}9L>]Fhqg@X_3NT `!npp/LīpaneRCgy[35D; $:oZNUgIʠkՓ|-(2[ 9NC $!9Qi `LU"z^[STh R=\9M(1`_~;$TX +SzQ`Yʥr8Y\0ݙ[pLĀ^򭬱np@ݐNM~oG WwxŊg {P#g =@c2IÎ~NHzKW؋!gc?j"!R(=WM([r z׃>+H]dsTEs`HT8Z3;+ ޑ:=:D'(Fye2{Qg:>e*6rR#I/?g4M8:nժO~I>5ܓhye7ng%dM B\i"o΅ЙfLW Mܯoc9;Vxy,yBimK|B_k7;]P1Uэ˹فKeLT(&~{~S}SZǮ# 1Ft/=͈xܾtzBoL؆74(,B_Өhmvmy}qznn< ^dӚq~`LahDc ̽e-l ؝娲 6(L"&əQ[.uJXTӦO|GY>*aϞ#5,e.im nMd8cjZ/{2MڰvɲIRLHc)jkb!!ד"Xb<Ǯ-acG<`K>7C}hr&,{#Ho{<#H2x h>OA[تGk%<P~3ߡ} lf6g l퐸bvٌ„lrĸ=gx1>O"eThצ؈ gp]u-F(sL]7*4i"ˈKX<{ANh7=;U&"U#/˫e 2'6UTdb_IaZgn2-[bȚL 3v-*ti1En?rێXjz Jc?4~!:c;'lΝl/(9}bAVCkctq̩>/Br}>O:C3{Cd.cKW蘮?*8|1{8Ʒw:4ء^[N7je_oNyݨcׁǷ}0բ!`gm1o! y؂=jwƻA`]pQHP'M5 n˗Ibo9ޝ>oPK%N6X ^!-tensorflow_federated/python/learning/model.pyYMoFW4&KL'ƒLlXb!Ȗ&.﫪nM9m]]^} ugVpvLP]f۪os0upr{ucJukJu ]UCW.#~3W+5įB³N?ڵ "lPk[e>iUvMeu]햯B5pVi?t m6>Ӭm梒'shg~+柝ut +xZG mm^{) =VRFt\=72~]~q{><]~_7WW|n<%-єGcX;Q(4k[zQd| sTcfz%Tvg['/&o޼Z*]#tΕ \Ud85۩rݵ7%<@ kɒ}xd>Yɤ^_ WUFd2)* omеMN'с;S]SYB/gJifBRpWWpnUe`:A*ow؏<@*䐡r ]+54Yuj3ϡyN*嗜ЕF GrY;&PY[I2$&jUm(9 „-!hHښBUvPN͒R#nLEtrr>v8Bv>\ ƒ`!o.خY&e\otd,;jɮ޽":8"S H}0nzk9B (KAO*А}|N [Wu]2M;IZXX3DN\A@IZ8e`p" YP ,ncjXOr\-ˆ?SHHfkH0#-ۄ׍[#nn*%>#>m qOvAlae?B[+:d@-bu 17:4? (,}9a~~1T9)=j)/;$A_SYsɃTly]|7(Z&_Q/2! bA,ʳhU5CDfL_!yǨ"(vli'f rȨ]}~Z uQu%1g~"L$ТIj̄rN@Y8du[|%b"ApcHp@2z&-7'G5TUGRԎrm52KSn/zt |)E >Q]4I~*zJqt/rRC9GYu*;Ud 6u!-mntE]_|;1h0[T;W:enTN`UkaҠ [G?*= Tmԕ V`JhJZ%%#Ef'fgɧs\AmV#S e( =j4O*#n;b0> .&; yf:D)ʕI2&w& a"꿚+aC?8:6:k 3ob'pjf2H ʳC7G豭9g. v;3࡫robi hCfA v;E [?UQ6!@ 4 tt`ϼn9E$ȋBs f`<p{Ouݑ^}O񰼱F\y [C'Ȓ>a;OA&Mlu[%Нdž&&nj'iꇌ+Loµ^TµX TEGyQ;Gw(FS\71,-'xњѮ* s&\FѣĉxÌ&dM;`lXUF!L@WXIlrIc~N5 s⏞uaF0u0;xlhG)=Հt] 1ЬX\RǟtnK*QMmV|u-Dl'!+v<}a!b{x~=ʧئR50[G}RIGC4>m/(GJ;£Z,d}L"C. SǏhb,7,lE]HD0O *Uø70A_B/f=YŢ> Ee?qg֕ 5,hL%UA[fĀL5j%uI; S~}ю:>X[i߮=x`^/ui}+`Iq7Y:Oc]} A2>U5Lgv2x{rV74B#*@*ٴ%SNem^74`5h Z:DS(KTɁޓH#Fk]~CCQRppxGrbqZ''zg@SGPK^vc# Dҩ3Pq ㆰF]2d˾Kyr~-˔`m#ʌ~4lB|;F iYܕN^/7Jd~Վ CF?/bn"vJQC Ǿ⪑$GE}SPAH+5!w7C^۳vE,m|-[Ri2r7۝ yߋrN#Mb/91ܼ;hG˃C59nchWD=a2u;!0zĠs^IFl/j讼lozuu 4p| PK%NP}'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 $9AOfPK%NKt:tensorflow_federated/python/learning/framework/__init__.pyTQo0~ϯ8e/ t4CZ1iɘ&"'$mlgYvI RTw.t9k|BMd-B*jVh ➮'t뒗C^]5+o4+ g)|G[CǶ "Ap 5Pv%ӂ3Y" ܵcр*hFN8`n$ CF2\Lv~,twn@kDdle5'<lf`UfP*nEӣ^LB!|$m}dp__,Yf}dfM;/fm<"ɽXyRY%yIuɦg BH*4[MK*B㎹WQQG/H-1MT(=#ZޣPG&M)hv6" W *AsO964d/i͍SPip=Ϩ6AҎD&v]\Ty*9}Q%ug.|<>ww#TR~ucyN_vJР@~p gR`mW(y_mh}8Bvh$x} ~PK%N“HAtensorflow_federated/python/learning/framework/optimizer_utils.py(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^'FmUgPK%N2tensorflow_federated/python/simulation/__init__.pyTQk0~8ܗ 2+Ff%)R}vIr$MY%}w \ V,8#굃ӯ&2VEzX`;,!花QpBEAvRyA~BI8NT;1lT-߀T:D!,TA!PnB/zْ xRqBsk:U8n0<n#ei3":]./xs' 넡Z pM ͆ {#\ K)3"ܫnQч)$i?4I'qdW x%)naZΓ,Y-鴀x|H"|'KߴJBTdVh$M+MKJbiD+wC俢 C?G˩[$ B#ZFL'j?a QϊkF2ƪu(C[Px~ VGͿ׆ւ[57@E;qm{ Egs7*MH̆М"b{è6ɰ# ܠG%F,~eQB_t|Pl]VR:å)liQg W/o #ƒMMBNg']]v7t<PK%N1jF5tensorflow_federated/python/simulation/client_data.pyVr6}W/֌JKǝDܱf@$$"-_߳ b˹4}(gl.N魱TvkgNҵou~yHZLƭ鵮WQW4pć<;ũ V;}84jU~gHh<Fg,po ~uR.R4 Li4Rҭ([jZXfЇͣ|š(S^\&IX,gF@^_R- *f6jMΓZz7吂[ĵ( ћyDkk>@єz5C`ܼh2_O.o&Wf4|_Ǔ!i j}~i8M~`%BK0%N-5-ݝPfyP2QEY9r*NNW~C+ TA$^5o]1UveU~@·Z%*Î;%W,,4-$rz=ެX|¨CLfl/ `Ѝ.>.\S]L;D,B+eg{pil*J Ӵ yضXKId9pbyKQտ3ޭ(]. &׀EXe 3s-X%e;rj[v5 2qeKl窪 P xoXdD+D?!.vM qTEmaBK̈^FĈ<0 n^T Z^h終(*ݪuZFiڑT[^#E\E{{])zM"UȔn&3zRC{Zۅ'_M{eR߻+VNv5z²|ȃ(}&jJ_LQ8&7 qҋ?߀)0wʇLJߡ+!vHQވ{lb ͭ.uPJqu[F{= k$[V#h<:PLڢ4ʰ*VŢ~Wu 5xhG4\M ЕZG 0-@%Lp ru8^B:)+K".Y=p@s֥ u5zs-uꑓ#NPf+k~W-@mq8J( ;0D?쭓ӢI"jNG=Ps_5v&f&bui&r) j[e8vܽS1;(_*p\>HA &`D[iZBoH%sY9ynj0X9Q2T;4酄%x9x߽TmZf-1 v&Bmᅗ.CBXw~_4M;Ī -nqE{A.l`$@F"Ur^wHJkvrngΜgXHR !%|. À] !ނk>C?ߎ]]Xx6۫2xګbuwɈ};U`FuӂP&6 { H;{#I.h/ r\Z2r[=rq;_ϗ >CS@sm~);VG 3YȌRFl vFSIi^YJYIoNhuUn[A6†ҦR`c Ҵh16,ۍ%r$ok;*s裨8 'ya:-MĬJMe"w}}=Ԕ>>\9EQV = $d0BEݵE4L)X0RIJӱŲ‘cˌ|P@z-͟x8WS7x _,w3Hʲ 6k' uUM061[PuX+a;d>=o “(u\۰ڻ}y.n/"4|_{Wmf0/HҾA:+Iߡb槾rS k>`/n} 87IGϭtyX]7T7ZN|ewa6,j;x|f h?e}bǓI>=%9&c<]p JY),|0V4G&u "Oن9HPbma}Ue%ŊWVPv:{r܋)K`,$WFMrן_/ }egOx 1R(i^Iz6Un \3HȨvp:qO4T)h?)MavK7RsT^B,dn yϱuR/PWui҈c)31Z/>5z{XGtŽZlnYLB͢SMjKjʶUB|FK l;TJBBF =** aخ߽SbI7~ ߚVZwL2k{ٌ A?{zz95b."cE&SjρI&.Ѿه~;, PK%N[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 PK%N$/;tensorflow_federated/python/simulation/datasets/__init__.pyM0RJuh>T(lWBl65jOy3 v${ % VJ ՍOs86GVmbF8,!Q0S;*Xû88>kQ4et yfv.0( 7|[GB.FkX |I%U#X7:OIr B@wЩ-0x АF {2PٮפL0o2{]h%񽜚qx s:㘨6]_g,_~)hI-^*LFTP|lɴ3Q9<;ZjZOx2/rH~,4mZ\p^dEau g<-U& Xdw+g2+) IaX刯=VP%}vP-Bkiztp^jQ+,5Dq_zaWYuhXi+H^5vPò ڮ2rw~+{ o{'o@ j<-|# _@Iȥ%ڪ '$Ӑ!W[#dW`ݢ׶&G+G='QZXß(+ZE ,b-8QB)D [oX۸XjX_HPKo5,XaY|z|yJ}ͻwgИ-M"Wq[(Hj&r+\eHmqEV \XyE[N=$d*^܋⇛xtǿ=n>}{}w/>~o>޽}xOwoBWv1Q{Z DQHoTGqe)J,'0GlT5z!$:.d+ό:/^\ҕ w,Vx]&N'ʳX,(sXYuS |,bRMDjN.ergУ{N5KjnRiQ`23 5̴kOSDSMS8bF Cza$q߃=Ӽa.a0ceT#c"pK1 K)xt:Dɐ4/xz@K.KU#-vh'mM&E6Vf$ d=q!S:ًS@EvΞc,ѽ?U?A3`;%#&q{li`L^>ܳ>V&_eA IM!4幅w;l9Y̳rCj')0HrOU>0:mUĦX/Nݼ7̿2W~!2Ol __w^ezuRA7*-q$ex֨aSɄ,o^P&m@2XQjWu"dkaHަfdR*EXMReL+8E|!J K0{X&k'`ilbUǵzE; F1r0,}nd/'&=w~k0 t[/$n8jb cx:-_o%P)0 & 5 9{4DU"Djt })NA{1̮&UJb8MCye Sh0M \&-$~Ds*VYrN#n*@ u&[ayI؂X$ud7MuY*0u,)Kb鉟@arV54J%Qh{kAr "DS/wQD.&[ф}2(n 1Gګm,ƺ&:4-W'_!L~nJt-fac'(y<ˠ#H<2v8ogEVYnC(?g_ѿ1}G_ Nr.TL~X%kඔ sɗ4rZ>n lLrdLR*LX#\Y*^\9U@!Gc zfp+ˠr'H!05jʪ?igDJ<$&'(5mbQwCDL ˤbPRBѧoLfPN*Ax+&[f)QtlyJܸB&K+Vy׼jWPۮj'&C(~$Yu#jP"Tt'k)ii*-z/z;[^hhah.tɘ=8E5[ȩ;X7ߤ7[ap<'-QNC.3{W 2NЈ%8|2AaR,A^g$!֋"[ZgvQH4|Pd"Wh?^/mtF}f3Ępv_ ෡jJ&31sNBBF[X3b7 #o 3^q^z_L4&m8OmU bds+Ehg؊Dm\6b0ʙyqU^kC"J{ܺ. BsG7P=!GKm>2xc^frB7 f4^Dg" 7͈nx0|[VR"Ǽ5 3C}dm!(g7Hl>C9sxJ -s+7'!~'zW&cӚ! NxTnɒlYj/nӫu@}ȕu$qc;ViP 1%︦J¡7; ؟&h7*GdNbzzr|;qԭq7D}h(2ABm7~Y,KW'&m͜3KM3˃ZՁpͧncդ.է{It_R @"~)% ^.Z=*(s+AC-@ޔ'xbffb[٘dA^&m|Pngz\:VsJw|+#WkcEIL)Ѹ3{(N\ ERڶK=`jgL =˛F/"Q6uVW1f7[!MI@keACxd*K-N8kBP@Z`i^U4Z+1?Y{<17/t]`u;0ձPK%N[eKCtensorflow_federated/python/simulation/datasets/emnist/synthetic.pyZ_o8ϧчM[jO R_#)dmᑟpes-֘oONG_S > ȐS'Ce3ɂ " xLH|ytE(5:FձQVo]޸mMnxun@1V>E\ُF2Gꩠu(}a L uـW0ɐ0|<@w |̄ʦ@<1D%T*5#1Y`VKvӵT9*cC&L(G4G<r2B FWZ bs)Cq%׫<ȔG rزfnTX J 1b.cxeYlQ$s @}:9&7p3:@'uLCj!BN#ZF?$kGp 38)"x*Q,3ÇTƲSp:0:$OAX#j(kQoJG;/Jj,ęFZ^IJ*WIŮZj8c_ 8ye:'U>>ij~ku;fPASQk.|!(O:?'3U YI&|W>L>J*k|r\T+X2o0sکc>b'7 p5ul501\!pV**ʬ3;'^?k :^T4WVM}a*x-749j~nA52sk֚uj>xzx}7]_voZu+/KkPp |u/9,~ 4g34g34gE~yMVp^u9r9A{ 7]t]ubwfzlN FޜXf^M339kΦ+}xZۿ7V8ˡ}UHqkh *x~R&OӔ9[t|/p~16krDzbUmz7r%5t9Ag/W9~&mn>-|wϾD&Ϡ.gKdr07{n/raͱrxuHYr$UWTKFR;Ug/􁬁ńtJW[0a(%5:2PiRF7S`^®YI|'e(߆ٝ8fjͬzWŢ S͍x7-('@Z V#X(1xdYI|p> $9bV"h(8Z|nPBg}O!AQ+n3%i͠ˍCfa=hXihIqPUǪ]eRVZCqߊ;/AnM-l}u v% z1C-eڪ$.RmOckD2BqTJKSlV A%%GPK%N3 Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+T"cB>䣖TRlk",$0~_ƐMޖRu'>;{s4sl<]*l%rͽ;v/ba18blS2 Vм~>K+uuɠ]o{^l,׎V,J01Ho %y .aj'~.qXsxKNwd`ܣ I o2#.A=E|6F`i3<3FK,3rSw:CҧY{de}/>||_|bnɞbxz=?`_}&P+o!)"-x  [H&2B^yZTT #Vi/%qW>$m4{c6V( V84SWܖʻJ޲0LJW6`jb* jQV^6(˚w"u\LjcXYL@D*BՊE”F0fsћjb*Uճ' Z0ջ\y{yCѕR-.^.ڳ>'>ssN-;n} aWX!x!*N=ti-&1SM9q @G #H"6/ u?']&FI&p79"(r9wp4ݪ`q&_6a0^_V`ov9˺Q =cQ{#@cDls;萏oJh l^DND5iQR *JZK)-AnN?:`Maݔ'-=s..PeZž5; Ag;9ϨZٍ+(BO֐POrf¢ h*O<߇MrcKX[%2~W*1pkVkʒF0HN$ cOAd$''+k]XC{)XGZ)O`7?n.a?^ ETWʚUˢ@Ԫ?:vB̰LwUեQ>'tu⭪ܤvmSAHA Ҁ2IUFVku64+HOKj'_ٷ*NߓW PbxNshӍl|f(N*kӭأ:`k9dLA,ZBZ@uVȞy٬3_M6zxm&jx=BC$|ryGe<ŗ$^6>]U .(hf+S7Q"oulzFua9RηK/Vjw,l}O;4yG٤H]X^©J]>PK%NC2pj7tensorflow_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*7PK%N$Ύ}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%*US7PK%N0V(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 DFL0PK%NZq7 ;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXkoF_q| 0V֨aHIHfHJb=w$._LkΜk$ m)G([֛ޞ-W~{z/SE-S5PUBˇMdvOW'>߮~~n.oo.nof7/W7I`7PjA*Q ڽG PUʥZ%.vRRoUŧY!V2U7G'''?ɨUPd{V,*X1fXg9 U,AFsi(7ŅtuBQ 7oR^qx GP%"Y\:K |]4bnJ3Jk|]7@drz|šˎMN'UR+?1hU4߃]D#ơ"Дv1?t|o'ez8n@6v4g~~i4tw5mVl@`60?Byy! 4 -)dzrd`:/rL5J H4UŠ]AAM?j ѸBNG/368N z,s->FFo*Q0 (O0k?.U)V*F ,Q4LQJST^6pÀ5>tFQjҞ2ݷoT S(0#: A0:&?vNP嶬1`Vi?:Cl$+֜4848tAC2{lX5c~}cg/ kXPZkY'dS0Ds!ѹ=Ebjjkyy{|^UfF f+gWHڳ1 %q`|{7Yfɗ'qq\xR)%*0U %)@3C2@.(84wF@S:3wACVKpv-jzS]u4c<"\?_mh8W+-g,Vqב't[?rLw|nŧX k쨛t6E2²њIXc4]=Z ;SMb|KaEYss"^nzٖ$nc𠇎aXB>0oj~uKH2U9Jd bՉb/9{S?iQn~}{>N>f?^_|⊧rljѶ.V>ycL_~{)E%GTs_^_qC=rG^vn?%_qS7аh .)|۹ߍ(X4c^ݗKۜ3mr3|Ye PGeEzDWk {,`;r!ֶR9'{H5Y|OEGxMzwjxqnw y>Ilg~ ("gPK%NVDe* -tensorflow_federated-0.7.0.dist-info/METADATAVMs6WlOq:et;j=QO@Xd*r$ϷoUT?NӓJ<68_WdkwIftaL1@ʒkNk}ƴ DږTxd[;&'*M5Η:X9?ߝ+ ӥ҇w63jTvPBgxg 'nmSŐ; yc.գ:kFU=w(>cFmȡ-oM>_UrnTЌv.x55H7Q6lFhBmK;~s;ksH϶0۾Cp%lzOTVx<+vo.q f[o\t]C-X([^wC7zr}`W{uζÈxMLc/,;VN>Xam¡gb. R/+{um,A ׍rqr5ic'՞B8#tϯ'oߞVNO{gÓig{gX]VtߞɴߦݱO'v>\o Y{Z/8a\w*N6-] *zd2LK }`uުc wP^Yz.~U}#gԳ0"{0hA ckGFuo$?tv}$$=җX/3 *5zF{EnXM;-0%,FܒS6Wʴ6 =BLF1L9mͳW{dЅu/(~BL04M`ˡQ=r4DzqC02c/zgKM@<^R]iX B_6 ghmg?/\k!aۈdU\3>".1sMAVP6S@h7'a%Z ɵoqHrq0 yG߰9n?-I-Ⱦ,>PLF@E|$,;lF<sq^^{yLCj>SjǩCG?>W2P* 1wexctQFm" 3> ~v4v*Ez^n\EН/igYmo[${~(퇦:M86r-r<{w[XSl_OB?gvAFƴzՆZ _EǁfDy#VmKe)}(y#׉/\Z6+[ϗ|HLnaXFe]w6 -ϼ>b+-6i׭WuQݖ{uBDdȥGA/ʄuaCa|cg`+&,Y3wTeDIdy1#c[0Z'`.?#AZtDї#IDH?*qIY5(\ w[MFz Np4s=е+V…}hE?V_Tv'Vw$N;fKNޛYcudԬ}`#]y??ϕv(I Y_p.S,-sP!v0&#N4aenkgW8֚eralK[1v{iwbxEezcn;*Z"!o|m%?tW)JiZ7%8B r6RW0͊;WՇs10YbtGA?Mܡ@\Kr`@@p9/c@?h۞n= m;p8fpPj;w 'm9O ΖgD-=i^ }ײ[|B>ECނ9Q}He(;}7'^b9X@ŒeFĭV_VI󖛃n>6ڶ6/Կck;_)1$QVT!֡e*ڶ.#[h л9$頌JrrE q|Xwc4Go]Rdػ~uRihF[7Ѹ d3CICcTFx!tUs D;NI;CF1j`.p=Vq8o:vkI52|v;_N^IWлtuR${;Bxr.$.ZD N*9Fa CZ%$$]v׈_KN+zr %v Iz7,ϳ 8t 3-X[8PsKe:0pj}W630#kO[^͋v1c%SnR@&Y=an^,4qyqmc(9\(ϻi835K$aY/]N<@.A=FRYk~zfXFFޡ{݅GHzCl@%qKf]Ap3lH:NWdh[A\y-< ?%`g~-]<}OdbC6Ro婪6*! |+WR}M<E[;-K:C#{orF٭jyglL"(<.(hkYUҒup\^0sk}&>Hi\. N p~4~^oH'cBXeZȁ D{$i*b#UaNnᅴPj~6yZz,aB"U!)u@ {e Oe H5G۫Qks$bO!KAP|Akc+ øJ^4^?-k;Dw5*ê\ʛ&F"[kV-0n~>/Lqe 5Qy08ѷ$ (,-4t)GNGռN1衘dA`;i,NsE18>6꫊ِsRyϮ̸M6a˝ma&!Pށ r?^a[|Ib 木Jқ wtݙy+;àO[=$ê[{ii%,fGc }=_ goSN4//r*W{'`&qlٻ '[\`lU$JjG~3D+ e UC.-/Z%[*>f ؜c:np$ҞȢ S7V/ҏ1z7\`UȚD>N!mI.[^uD"t?]2s_C@QD}Ie9r}}cH<ۺt|?<6el8s 9?8s5"Ձޏ$? Vڱ"vk-Y s⚋F<2=wzfOKTe#G)eZ[/84tߡ7}/Yk|pH<2BqOYi簯kɄ)Xr( est:N]1dvX_[}OKx2hPz3HAZ6kzM#IO>}~[a52/@_FAHTR󆢁{ñﱶg~@y5|sjEg]]iGZ] ,S|8OiMwW LPnlgKhƹB]޵JT&jbך{۟^D,q?~LpyFbqjN‘NAS"<E3DVbI'nk~M,6~:..bAnsG9I:qucMWκZ:eĚ(W%Hl&SQ -.fXY`/_[i-u ?`=. n}(jItgwpG9~^%U -5_^u>ߊuLl^|qp ~UC(p׺EGJb5K"qdIحpg2PK%N*w tensorflow_federated/__init__.pyPK%Nej&tensorflow_federated/proto/__init__.pyPK%Nej)tensorflow_federated/proto/v0/__init__.pyPK%N740tensorflow_federated/proto/v0/computation_pb2.pyPK%NīQS5tensorflow_federated/proto/v0/computation_pb2_grpc.pyPK%N&H 1|-d tensorflow_federated/proto/v0/executor_pb2.pyPK%N 2-tensorflow_federated/proto/v0/executor_pb2_grpc.pyPK%NC2pj'k2tensorflow_federated/python/__init__.pyPK%N-S374tensorflow_federated/python/common_libs/__init__.pyPK%N 8:@6tensorflow_federated/python/common_libs/anonymous_tuple.pyPK%NiHp7Htensorflow_federated/python/common_libs/py_typecheck.pyPK%N )xg>oQtensorflow_federated/python/common_libs/serialization_utils.pyPK%N\uM0 ,2Utensorflow_federated/python/core/__init__.pyPK%N_? 0{Xtensorflow_federated/python/core/api/__init__.pyPK%N&w8x[tensorflow_federated/python/core/api/computation_base.pyPK%N(O9^tensorflow_federated/python/core/api/computation_types.pyPK%Nk 4ttensorflow_federated/python/core/api/computations.pyPK%ND S>2tensorflow_federated/python/core/api/intrinsics.pyPK%N"%(WC2#tensorflow_federated/python/core/api/placements.pyPK%Nx;Wfg4ʒtensorflow_federated/python/core/api/typed_object.pyPK%N e 2tensorflow_federated/python/core/api/value_base.pyPK%N^V7 .7tensorflow_federated/python/core/api/values.pyPK%NӇca6tensorflow_federated/python/core/framework/__init__.pyPK%N;~Y1tensorflow_federated/python/core/impl/__init__.pyPK%N G@+ Htensorflow_federated/python/core/impl/compiled_computation_transforms.pyPK%Nl_:tensorflow_federated/python/core/impl/compiler_pipeline.pyPK%NcH-Itensorflow_federated/python/core/impl/computation_building_block_utils.pyPK%NRv+DLtensorflow_federated/python/core/impl/computation_building_blocks.pyPK%NE5e+ G tensorflow_federated/python/core/impl/computation_constructing_utils.pyPK%N>VLV 97tensorflow_federated/python/core/impl/computation_impl.pyPK%N,{7H<<tensorflow_federated/python/core/impl/computation_wrapper.pyPK%NuYF%Utensorflow_federated/python/core/impl/computation_wrapper_instances.pyPK%N,ӯEt <.Ztensorflow_federated/python/core/impl/concurrent_executor.pyPK%N /PH5^tensorflow_federated/python/core/impl/context_base.pyPK%Ng *=;petensorflow_federated/python/core/impl/context_stack_base.pyPK%NX ;Mitensorflow_federated/python/core/impl/context_stack_impl.pyPK%N)4mtensorflow_federated/python/core/impl/dtype_utils.pyPK%N5~G7ptensorflow_federated/python/core/impl/eager_executor.pyPK%NE:ltensorflow_federated/python/core/impl/execution_context.pyPK%N(vkȯx6]tensorflow_federated/python/core/impl/executor_base.pyPK%NQ 9`tensorflow_federated/python/core/impl/executor_service.pyPK%NTo?wtensorflow_federated/python/core/impl/executor_service_utils.pyPK%N⤢o8`tensorflow_federated/python/core/impl/executor_stacks.pyPK%Na5 <tensorflow_federated/python/core/impl/executor_value_base.pyPK%N Ftensorflow_federated/python/core/impl/federated_computation_context.pyPK%NV.Djtensorflow_federated/python/core/impl/federated_computation_utils.pyPK%N[P;k G~;tensorflow_federated/python/core/impl/federated_executor.pyPK%N hEop7stensorflow_federated/python/core/impl/function_utils.pyPK%N&ߠ2p4 tensorflow_federated/python/core/impl/graph_utils.pyPK%Nv3 X59I tensorflow_federated/python/core/impl/intrinsic_bodies.pyPK%N N78.tensorflow_federated/python/core/impl/intrinsic_defs.pyPK%N@y%Yg:Atensorflow_federated/python/core/impl/intrinsic_factory.pyPK%NHR =Rtensorflow_federated/python/core/impl/intrinsic_reductions.pyPK%Ng 08&Vtensorflow_federated/python/core/impl/intrinsic_utils.pyPK%N39I8ctensorflow_federated/python/core/impl/lambda_executor.pyPK%N:._P ;-wtensorflow_federated/python/core/impl/placement_literals.pyPK%N5|O*;{tensorflow_federated/python/core/impl/reference_executor.pyPK%Nn@I8~tensorflow_federated/python/core/impl/remote_executor.pyPK%Nzk=tensorflow_federated/python/core/impl/set_default_executor.pyPK%N , CPtensorflow_federated/python/core/impl/tensorflow_deserialization.pyPK%NX79Atensorflow_federated/python/core/impl/tensorflow_serialization.pyPK%NeOx?Ltensorflow_federated/python/core/impl/tf_computation_context.pyPK%N.f&L=!tensorflow_federated/python/core/impl/transformation_utils.pyPK%NI4S8tensorflow_federated/python/core/impl/transformations.pyPK%N?U{ >-tensorflow_federated/python/core/impl/transforming_executor.pyPK%N#G :D2tensorflow_federated/python/core/impl/type_constructors.pyPK%NBDh;q6tensorflow_federated/python/core/impl/type_serialization.pyPK%N^%tensorflow_federated/python/core/impl/type_utils.pyPK%N5'C3otensorflow_federated/python/core/impl/value_impl.pyPK%NwcN] 4tensorflow_federated/python/core/impl/value_utils.pyPK%Ny`F_2tensorflow_federated/python/core/utils/__init__.pyPK%NT ! -;Mtensorflow_federated/python/core/utils/computation_utils.pyPK%NxHZ@ǔtensorflow_federated/python/core/utils/federated_aggregations.pyPK%NO>tensorflow_federated/python/core/utils/tf_computation_utils.pyPK%NC2pj0*tensorflow_federated/python/examples/__init__.pyPK%N@6tensorflow_federated/python/examples/mnist/__init__.pyPK%N( p4etensorflow_federated/python/examples/mnist/models.pyPK%N.$0tensorflow_federated/python/learning/__init__.pyPK%N,5p ;Ʊtensorflow_federated/python/learning/federated_averaging.pyPK%N7!5 <tensorflow_federated/python/learning/federated_evaluation.pyPK%Nw  B5tensorflow_federated/python/learning/federated_sgd.pyPK%NK (cJ3otensorflow_federated/python/learning/keras_utils.pyPK%N6X ^!-#tensorflow_federated/python/learning/model.pyPK%NP}'3tensorflow_federated/python/learning/model_utils.pyPK%NKt:}tensorflow_federated/python/learning/framework/__init__.pyPK%N“HAhtensorflow_federated/python/learning/framework/optimizer_utils.pyPK%N2tensorflow_federated/python/simulation/__init__.pyPK%N1jF5tensorflow_federated/python/simulation/client_data.pyPK%NF Ctensorflow_federated/python/simulation/file_per_user_client_data.pyPK%NV2HJtensorflow_federated/python/simulation/from_tensor_slices_client_data.pyPK%N!i :r"tensorflow_federated/python/simulation/hdf5_client_data.pyPK%N[B'tensorflow_federated/python/simulation/transforming_client_data.pyPK%N$/;0tensorflow_federated/python/simulation/datasets/__init__.pyPK%NBB2tensorflow_federated/python/simulation/datasets/emnist/__init__.pyPK%N,'C15tensorflow_federated/python/simulation/datasets/emnist/load_data.pyPK%N[eKCDtensorflow_federated/python/simulation/datasets/emnist/synthetic.pyPK%Nd)GMJtensorflow_federated/python/simulation/datasets/shakespeare/__init__.pyPK%N3 HLtensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyPK%NC2pj7#Stensorflow_federated/python/tensorflow_libs/__init__.pyPK%N$Ύ}9Ttensorflow_federated/python/tensorflow_libs/graph_keys.pyPK%N0V(5:Wtensorflow_federated/python/tensorflow_libs/graph_merge.pyPK%NZq7 ;gtensorflow_federated/python/tensorflow_libs/tensor_utils.pyPK%NVDe* -aqtensorflow_federated-0.7.0.dist-info/METADATAPK%N &A_n*vtensorflow_federated-0.7.0.dist-info/WHEELPK%Ndd2}wtensorflow_federated-0.7.0.dist-info/top_level.txtPK%NMM/.+wtensorflow_federated-0.7.0.dist-info/RECORDPKjjf*\