File: [local] / www / papers / portability.pdf (download)
Revision 1.1, Thu Oct 27 12:13:51 2005 UTC (18 years, 7 months ago) by djm
Branch: MAIN
CVS Tags: HEAD
slides and paper from my AUUG 2005 secure portability session
|
%PDF-1.4
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
8 0 obj
(Introduction)
endobj
9 0 obj
<< /S /GoTo /D (section.2) >>
endobj
12 0 obj
(Approaching Portability)
endobj
13 0 obj
<< /S /GoTo /D (section.3) >>
endobj
16 0 obj
(Platform differences)
endobj
17 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
20 0 obj
(Trivial differences)
endobj
21 0 obj
<< /S /GoTo /D (subsubsection.3.1.1) >>
endobj
24 0 obj
(Use of the C preprocessor)
endobj
25 0 obj
<< /S /GoTo /D (subsubsection.3.1.2) >>
endobj
28 0 obj
(Activating replacements)
endobj
29 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
32 0 obj
(Complex differences)
endobj
33 0 obj
<< /S /GoTo /D (subsection.3.3) >>
endobj
36 0 obj
(Differences with security implications)
endobj
37 0 obj
<< /S /GoTo /D (section.4) >>
endobj
40 0 obj
(Choosing the right API)
endobj
41 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
44 0 obj
(Conclusion)
endobj
45 0 obj
<< /S /GoTo /D [46 0 R /FitV ] >>
endobj
48 0 obj <<
/Length 2343
/Filter /FlateDecode
>>
stream
xڍXY~_G$Vl?P$%aBRs
PSS5FR&՛4N<M~6G"A(黲O$WY.qk|4JRq};mt'7O֩Dmf.;]0t>muT}oC oO FE>LC.$,AGJY߰55v$v4M= /_ZUC>GZP8eD~&$Ug~EKtꉬD cㇿ?ѩ(6q
3?-ٖ:ܨσ\-Ӕ./B8
E9+e~&pP9_H 1b)CKŔJD+f>(t2#Y*S8X/<muMTho:m%.hlхb"7{Lc&~QAߊ8҆6qxńaٓIH@R=GyX٩DlSG{?o+S
sobտ8ƥ
.SHk!_bS
2*BϖcEWa9oT,fdmq<KePzžmuS:Z[!M1^|Ѷc\_qFN}3_cnT@"`OBjj{Tx Lw`i#A֦~O,!(<k"\Sp8>^K3s$ikͦ刾v_N5Nk{H
W1X:ɗ%pÛKc3YW1m既hG:uQH,Wt1-NĹyaGvE< {*kHtqc"lb"Z<0 ͋ib
A4;U?(tyBxX*_Q,U?Tz?6ގ/P4#l;ٕͅ ȤȯJ)GH*g0crXDl!8Z' J i18 0EV-j# i^O#uГ
ET53d@o8n/܅ RzJF{Pm|.
ANP~y$HoB(yٍ8rtv7^0c~
k,ןNMn/6 2Y{_/Cǩq $Q}g: P#q*α^b1p-h4cТ]ϡף-NWB4<l >8/] +) `|Jydh7pn̪,3dd:v"`4
գc_#H("I4-ĩ\K. GsplT2yם6|u/Ƭ3ʋ]>,\nвrEj?q(kQh.)HAIz6Ed72ƅb÷+-
[vV871>bB8p_aw:֮`+OM=J2%+qV|IOrWrʝz}F0\vυYIzS̝=52rCI
mQh.?e|K^aDz
냃XRN|]tmtcfj0_gExuHm AJ#eVw_zB rɈ4k,^;h4o"VђȀg
E+fp) 1L{gЁLa4@F țAL@;OYZ-ǵtrUpz$MY퓈qfeBO~S3*lKC!XF@NeWoIHԖknOM r?#Z⠸(O(,U/_O϶.EŇ57\]Ɓ-:\o~maF%nÛ:BHZtW+v?#H1 #Xl6W{ھ
PMh%_#'-L#F+oQ0!J#nwq}0)tC}~ֹHf9|_M~4ݿa^{M՟ɿJPM7Xp#w2
A={+w_ЉP(WB 19+9oj_ډ*$7XJo5͎^wJ7 Pb}텒g~,F~;&9
Zendstream
endobj
46 0 obj <<
/Type /Page
/Contents 48 0 R
/Resources 47 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 67 0 R
/Annots [ 66 0 R ]
>> endobj
66 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [260.1479 384.351 273.8464 394.048]
/Subtype /Link
/A << /S /GoTo /D (cite.OpenSSH) >>
>> endobj
49 0 obj <<
/D [46 0 R /XYZ 72 757.9346 null]
>> endobj
50 0 obj <<
/D [46 0 R /XYZ 72 733.028 null]
>> endobj
6 0 obj <<
/D [46 0 R /XYZ 72 483.6548 null]
>> endobj
10 0 obj <<
/D [46 0 R /XYZ 72 183.5605 null]
>> endobj
47 0 obj <<
/Font << /F18 53 0 R /F19 56 0 R /F23 59 0 R /F22 62 0 R /F25 65 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
71 0 obj <<
/Length 3240
/Filter /FlateDecode
>>
stream
xڵ[[s۶~omK:FN'3mh
xJ>$$!LɌb XDr(?\d+o柮~G:?(nrq!R^$O'/Zuy-#MSK+뵾^xNiuv6-}֦u.OF3ׯ8DWuּLnK(Z0VvSP_}e)|V//!59A
ŤmEPYriy(gڿPq+CcTF㞦);fDA9M}_@5wL]}}ĉ[n+uF&EkhlO瞖r4|dBS
MܩPB!#Рi^6.;ٰr֚ƶcviQ
QЩ6u2b-_-YjpePuo_*|=0B!3g
G`LJa7ۏ#-c{Ĩ).;14
߯ntRvk{3SW5>/rڮc*ݩt65Q[Eag6n)\B\ic:`kͻL_Pn^$BVU#YeBP|?:knK54J
cOamVliJɩf-Mah5UvFaѱwu3AE2(ccLBf~!V\#|\y γʘkqhIDpz* 쪽Co~iB~8FJS!qk.c}-/==AJ)([$ob=ÙOQ5wwH}'B\J#"r:EDh-r@(Ffi.*@oÂ9 Qn[5Z(,hE#;csߧ%&x+y=8fBat@l`Z11!њ6e CK5U{fLZkF9*Vytc?"dOy26q@T1(hsܻ͡m{t1{91 {|ak|5O(o*qYkkJݝ{g_@[܌,WGF784g0]$qH"1߈W {#,J֎]|=0rW/O7<qSUJ7x@ذuNnRhXƐ Bsx藎nq;GwOՆL b/&qX%iNi7Af՟{5r8X<Ⓔ"IbqZ]>ڴ.a
؍8a(|*XO"WQ/Ax~2,xp+2Qx=sBJO0m>|33ͩ]IuA{焇ep28CKZݫ +{08rH)F;'#Êo3Uqw~*h@7
8zLbXנߑwX_ꚿLrJ*8#DgB|ѿ(,c)%J'J7\ ]Lvyȳe.OWI]NW[YD|LɳF57/>K_sń6/ 7K{6'z9~oUAKy<i10X^eR \
&!v)A-
: tU!pȑĦn
ȻZ
<Y)| L-o?8fhK} :P[<dҝ2~\qi@zUh
x2<M"&8swbPr-rw1-<@x҂?@OBWE1yoze}Z<gr*r1q-t͋;s_ßAu9Q_T*(>UU"X&T:)!f]6K=`cjcZ[0¯4_n(B`-])d0^!
^%"Pj3|OQ^"S@U|WQ`B.@ssLD'$@EYO7
\tcʪP1vOgZFm Zq4jxA}yԧu쪞T.4Hq,5,a{nD{SԿa==6蘙XhdRU0!I*1owX114pz)-ELa6i
[ S 9{2;:ārH.`;.l1l+NtYg?~~+}(-t#"!sx9G'C$5fH3<WSsqMںգ2riI)t)/k̩ug2uBhw1 3]_~0*R#=jG3rqb6dkK!
7Mrܜ0mIbax9Z,*N :gvS3ڼFc^%|
!e%&VLqK<s ,q&
CanRx C BiS0c3>kLS qiWh,x֘jn `fJ/&?cyP8E`7 e:?!93>ttV(`t"J%u|A;KjH"+^Ow6z2\NivPgf,u4cg* dj͑d6#=p気Q7
G9[^d)57X4$};&7^;p+eV|cxxޭG]NfW
je©)1A]B;iYsP!5zcȞn͕İz,p"r/cU~<mϡΜ
u'93Uoz[Z٦6KqL9u:ޏ{`SKTۛc0Mzӧ?niOi?;?3j,endstream
endobj
70 0 obj <<
/Type /Page
/Contents 71 0 R
/Resources 69 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 67 0 R
/Annots [ 73 0 R ]
>> endobj
73 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [212.4773 524.0047 220.3228 536.624]
/Subtype /Link
/A << /S /GoTo /D (table.1) >>
>> endobj
72 0 obj <<
/D [70 0 R /XYZ 72 757.9346 null]
>> endobj
74 0 obj <<
/D [70 0 R /XYZ 72 375.4144 null]
>> endobj
75 0 obj <<
/D [70 0 R /XYZ 72 219.0305 null]
>> endobj
76 0 obj <<
/D [70 0 R /XYZ 72 194.6482 null]
>> endobj
77 0 obj <<
/D [70 0 R /XYZ 72 155.1557 null]
>> endobj
78 0 obj <<
/D [70 0 R /XYZ 72 131.4375 null]
>> endobj
69 0 obj <<
/Font << /F19 56 0 R /F22 62 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
81 0 obj <<
/Length 2737
/Filter /FlateDecode
>>
stream
xڍْ]_UɖD)'QEʃ2e>}
PKgU;]8a;/lG~76\qm _y~Ё}QvJy8vO]xS{_O3CE*ح=P3oQT$ϔ0HzӘ{W9u{7rE;/OxfķDGR=x]e/h|
Ĩ^Fwlލ/h4/GX"%wj/*Դ#/LT?"{yyC?
y7sN=r4̜OMu^\yQOZL }ieSW{ܻqWyF5?FyU]F@DW IJ:[{6 >{ƀ(yD$
\GA8VZηEzR=bn[):R!TNYѴ{pMdHGY 2ڑZ0(R7[j͇a;HP
ה8:^(ńmú<8b#NWz]ك)cB#_BkO-
F݁@|QN""a^qgu@e6P-Nox 2A:"%M&勅|$9C^.m)T~1w*G|AA8D=a;)D:G.0\S4M (
6 &Ay$1iEWelm&=8?7W݂|EPgY!V4>AErӜ?F4)gj`OeDO4XppRy#rC|_h6ֹĔg9I8ߓ\P+FX6pEZ`yГ-.{5qɕrmbO-W{q][af$e0v$ 챥)EUˑD ,^ w?O֝ phĭ8'#S)t&+Rmr
CwuX@2+?B M-
Z9]vb x# M<U%T5b Ġ38_èk>S#OC^|FF)H`Q+TJQnBJjj%I(={}f8ΉRS%"Xq6=^]Xg|/
Bu_f3pXyNL&lk*HH
ٸ\өu%sCzWs`:skH`P
+Zv[~_#vƑg3gr_~OvQy Ԏ\V3Zyw}aD8<Ї+ӿk2SoR}@T#iX(Hplc1q$'9EgX2=? *J'e>p pCh6;lǀ
q%ȒpٜL23§?|뎊Qʻs&콦*">`Oq"
z#~fPR0tx0`K) KkVo(#lJVxpT]r3vG9p&
NiWĎaV:W0|T:_ݢ.VǙ>/FLTRv
(S9!(Gl;iu1*c1*{&V >̵l `ap4-j.mMW7o;Js%%{/El[g'CЂ=pSVqjρEu>wފhdG*̕>akk-+4o_inm.H*Y9tb@',$VdZkF//w谗`꧈A383~^F"KCȭ4`OCmy60MD1<-2Wy
{KClKC$ج.m:i
7lېJ.\11M#p[:c8,P8ߧz*T.B/>w6#b@pOYtO~liOE5S/2uKKTJ-눓lF
Ø8,b86$s`
lbݵ0x䢱@kP Af g)8;dc0{Ф!`7MYedK(Θ8zFÕ1yI 'Ts"-;,D\)ĥ5&z-Vos1#w-n'*`ڱLT$ZČiXq F)a#Ǒ]σ%R#aYh@c.o=-)KEi(L|WAƋD@Nv2QTsh=8$/ib*ʜ4
;"<A۩*3i"jhehB2Z3R{E3NQ(D}*^ˈq*U2"$CY24(zuq2z,)6/Rsf%Vϻ[1Ce$aOIyh: ,\)Q'TJLq5/-`sF2o}a]7IǓbPI1ЍrP_2ǒ^EoY;ry|P٤kkB`W#jU?d^gwdPm?Lendstream
endobj
80 0 obj <<
/Type /Page
/Contents 81 0 R
/Resources 79 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 67 0 R
/Annots [ 84 0 R 85 0 R 86 0 R ]
>> endobj
84 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [204.1543 443.6465 211.9998 453.3434]
/Subtype /Link
/A << /S /GoTo /D (cite.johnson) >>
>> endobj
85 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [396.1351 279.8856 403.9806 292.5049]
/Subtype /Link
/A << /S /GoTo /D (table.2) >>
>> endobj
86 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [411.1792 144.6842 424.8777 154.3812]
/Subtype /Link
/A << /S /GoTo /D (cite.spencer) >>
>> endobj
82 0 obj <<
/D [80 0 R /XYZ 72 757.9346 null]
>> endobj
83 0 obj <<
/D [80 0 R /XYZ 72 733.028 null]
>> endobj
14 0 obj <<
/D [80 0 R /XYZ 72 609.5743 null]
>> endobj
18 0 obj <<
/D [80 0 R /XYZ 72 332.9367 null]
>> endobj
22 0 obj <<
/D [80 0 R /XYZ 72 220.8154 null]
>> endobj
79 0 obj <<
/Font << /F19 56 0 R /F25 65 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
92 0 obj <<
/Length 3626
/Filter /FlateDecode
>>
stream
xZKϯ`İn>r8 n FR䘏WMQ5ʇ`e?zj*j$~xUo
Fim2.L1JaLS4VD(כ~ V"MGYjVO |ejO q#fGtq6݊YgaWDe~X~O?Dfh2v%~Aa+mhl5krˇ8ڧk9߯;dz[:Zy遍R~*u-M~>
+B)˦w\8|C1=O.B)H|u~TTvUC/pKJJ<0dgdw ö'^Q]G~LP6 oGEub:9`<Կ{:rhBt7O5~6Ēf`j!=%,N-"7?3cf"3Gqfnhp哑Rv$5P`-f͈Z$Meԕpт\+ !W>N2? #/"7bt&6DSjk߮3zv;+,$fXJ$
lp 'XmA W3/xs!˷!H ap37xAK6TcIX6y(X*AQx**e~QHsB5qHNϟAvU%].DNyY+>|0]p\0_v#d.0*%?+_p QMQ
_I2jJ|bQSy`G*jOs8&'guMEO,)WO?(?:33/[lf^_α)jRb!uƵ;%`
E
]ob
HHp]ӀP|Y:xPN(-ޖyThD1F,}KCW.ٯq@\ ( 0Rlܮv?:cĿn%p8WIjK%ї$I<N[}f&I|/EA+<6A$}ɻ8FDwK,PѵBgGf}"?1zeU[.z%ȞUG69EM?a㠩c#t%gTY'zKhv0GO!8| R;)V!;&Cyh:fLg!LAзBPf̍r
5>:awiCbS/tl?jC.V&[v=,\ߖ!FRY[%5
%C-3cBIn">ܦ@-;3A#2vσΡQUy-: h,_Sy(V3,2C?
KktqEJ.N$:0#wIE2q]5hJFA^A22s0Mܚ\&&r4ų̱w6
o8%o$ϙvI=&+=ynPXM3b]/ zMnMo=uxG\mn|I/ߔ%NFhrBjGN5UAWJX3c]xT]C+:~jt*zN 3乭' k[HFZ )Ŧ|RbVX.#x 17t'!i%5ѯΘe_G?9&W=cmؽ.'PBog}ق_SY]#*#mrƖw}#`azYZI6<<{*r
Ccӑ8ywrbPWuek)b#ܬYwx!&N"{ɀ;hgWQ"0lBV*:Q"Ut*Ka
a/r:G4iɴ|t؈7=_FMCzROY?4GSW}ky<o6oM.J!KOqOO+ .;2
{_OiH :4cs>AxG 4Aʗi)D
2;C@9gdD}<no;]eWmC"JsjWuГ͜,: ҉7:auZٌEɁZKﱾ[:;<ktF ͗:FňG/a葪'L}'5b3vl
Id蔰 .AkDg{e|},{Z&C*L9$3˫z2ha)1]xM]u`/}F\P?B0~"ID"I,!$IGI哴d,<zű+F:vYj=l WvGq
YǍ4?JLnGϺ[j+"Zt\=LHZ>{.շy1:></)TX~1$J@I+_Qdɗ{'mw` XvD(C ΎЗ95Ƕ6o#)&h6P'seގu
^ؔ`7xd?DZWVSl4巶,o@2`z$OJr:2P~y-:ˆǒL%$$@5i8+Ƣ股's<c{%8?)|"K&o4,?zKcշ{䃔˪lk$95;o\:qw§X*}"}"du#쥺d'~Hh.d88b4m4^\>M#jm-D+z+^ޫu|:KCFLOa ˽ FIh@Njz52>[Koͪ9ZBkő$/b]_qicg(fҽ{ԓڦ*dRLd;v 0{_:3wCؖgN6f0G,e]/j/sC O1ɍԷg̡xb{ڍ(I:䇖3%=KӹT*D
u\6<KSUX'/Pi!fq#©IPB&BX= -Qi1CB
BP5ΊјdFD]MTlZEdKAD}۴#E[W"lO^up1+`7fYxql
cY_#/ rVw1U[\tm8[Ow4$
ePTNS$h[%0ݠLP+W:Є>t\тvz{8^C0ѼY/^/Z,gڌ.{SE2':_8en.w]z6Q;+J]f^]KUJK@]iY$2쬗*/_endstream
endobj
91 0 obj <<
/Type /Page
/Contents 92 0 R
/Resources 90 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 67 0 R
/Annots [ 97 0 R 98 0 R ]
>> endobj
97 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [524.1507 481.5268 531.9963 494.1461]
/Subtype /Link
/A << /S /GoTo /D (clist.1) >>
>> endobj
98 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [204.7322 469.4055 218.4307 479.1025]
/Subtype /Link
/A << /S /GoTo /D (cite.ntpd) >>
>> endobj
93 0 obj <<
/D [91 0 R /XYZ 72 757.9346 null]
>> endobj
88 0 obj <<
/D [91 0 R /XYZ 72 552.7043 null]
>> endobj
90 0 obj <<
/Font << /F35 96 0 R /F22 62 0 R /F19 56 0 R /F38 101 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
106 0 obj <<
/Length 2631
/Filter /FlateDecode
>>
stream
xYyoFߟB-47
nl'.j;kmi`PH⚇w)RbasyߛĄ?1Fh;$_ !#kÿND8]ך\-%ӷUNZTw|S몜
-x'W?AO &qIjꚚq[Kup)EÌ 4 xxY7J.YƣT$Ucߐt6EܤeQOufjz#3}(>Q.BϰMˁc8vBX5ۡ%ON,0PHD_Ii]q7$mU<1g y܋7jJG٠=tcٞG*bsfRPT6SkH|Q`B#PS= I4ߠ\[vZTHi[0 )j#O6);c Ynd
Է@Nf)dHcK-
nOf[l$siym7#ei:Srf5nZ?Vr^`
îfj8 B
A꜏,!(N
Jˣ]Xɜ{K$NU5G! Qu b^C8]Q- N%0</yl;02;0Qas#plqW"!hKGP[ڻxhXӇS߳IRI
Z_DyݱQ҂JT$ꪬ-C/ecf9
M
7-_L%W]0{`]*B[h*]+I!ch%Z)* iѱK܆sY
Xd3ŵX:V@1 Jc+n!TTRm(7]
"R>!@,[=j5;iSa<k!u\֚#͕Յ$"0f0Q SnLtFlgW}nZ7$QէҌ[)$JwUt7i%( q|K?,H *T|k){EXpOwffVt\9,-;!D0qCyz~KEX;WK;H0+oM>sg^OTq劼DWzp;gvW4IDT"^OaZaz #-PhFL(dPdHeOtu*¶qlbEqpuiG;%>tW}?"29q8_]8D4K*||QoXgl˃`:&w+ӽ+yx-
'b"DTc7Ľ 1ĵ\x9.7' O{gw
lM=s
߇'f{86de{x T2d߆UaXN03׆1 Ƈn%\%.\-0M^:+lׇ!g
p
s1(˱08D@a`lg{̨ H%<~QCr|}AS
Q:%2\l=~]E=Bn^x
,aGzy4dte1?1_|"%/_Lv5@րD[C}S=cd:Z0+B"iZ0;' $\<i>0_A_; }A\Du+J̹;_ tprLd*z)FO5 A'oyi
;؆GAs_o%RFVi̳˨wM>ʇSPvw$@z[+
K僢XLCv}
Td8 Y
w_^'X
]x3~u}|:Kx^Y./xMsH`n-h`_5pqf5ɬN{'IYӳzZ&}xM@
Jf%q=?ٚoTH
!ȶEk&xCy~}FѬceS9QĞdzyMzs|N÷-j?7[f-te
t% ]zRtЮR"-MUX֊XxL !}ZPuEĠz5&*LK3dWNĕW&=x-4boh&cӆCIIWjИUe,|>k̳,3rSD.a\cP;=ڞC!0`wWj#ع*f=~!Hw|ӏ8'ӥuӺNVq>j@3l^o_lEuN Vr$uWZM
zJEp0Rxn 7A0-l/b}zj?U4ڧ>ix:sMOaKi#zZC1Z}bX{e
R]Nf߃-OQZlNi?w!L1`e>
ŷ[K
Ͻ#j2endstream
endobj
105 0 obj <<
/Type /Page
/Contents 106 0 R
/Resources 104 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 67 0 R
/Annots [ 108 0 R 109 0 R ]
>> endobj
108 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [192.3887 647.8474 200.2342 657.5444]
/Subtype /Link
/A << /S /GoTo /D (cite.rfc3493) >>
>> endobj
109 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [483.1218 587.0753 490.9673 601.023]
/Subtype /Link
/A << /S /GoTo /D (clist.2) >>
>> endobj
107 0 obj <<
/D [105 0 R /XYZ 72 757.9346 null]
>> endobj
102 0 obj <<
/D [105 0 R /XYZ 72 143.8264 null]
>> endobj
104 0 obj <<
/Font << /F19 56 0 R /F38 101 0 R /F37 112 0 R /F25 65 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
117 0 obj <<
/Length 3629
/Filter /FlateDecode
>>
stream
xZݏ<
N4L
Ɨ@<qub-H|;Y\h=g3Yx%_Dqz]~uet8N
jgqQE0 1Ͽ*"O#MQ8M,zwgp$q%¥]U$%'q>{>,894M]/0&>W^F55sM~K㭛rX&y^7h_]r-@tq"x*up+xiߔ;m tnVV7=`v u<d ڝւ
-av1^R-8']6? t%Sخ>) o}զ)ҤivBj|Bݞe}Oz4/s9KiX_@K*=~[P_Ր+"dsQ?jBKkӵi&`RY<R\:@%CLtZ ~Ww,!#¼+KSLצG&
\qf^[W8Liʼn?l%YuK3ޥ<1DaDz
c{C|\W`[VŕKi
}7wL20ļfE
&*^6\#Tt^p1Oڼmd;QyVTX<8HyM)nyF,n[g>^MvA9&)Syq2}XAmX?Mcnl0lWBcR2Zb
NOw [9sf~ؖJP/K6;Pߊz7NjW[kwVq0U%k+"D{n!X`fdA- vk۰A=
D{aD`?xyn ;&*;z'4u?%5iZun^ruSyJK,Nh
8Z7tyKʽ4EGRl8ʧ6Uߗ,C184
un;h!P:)O6qPxԐt0b5u>Q݆wx$A$v͓Ve#u?
u8ȄU<ݚYṾWV<nk' ;naQzxZ22V7+{=9ؕnt=k0ЊQ`~70,;NZK;]ŋN6SƔU!mK*Fv;ܳat߂ԲG(#0ҹP,%Ύ^USF#LCI,9rn̄
iEx-p'0ߔBedN')*xt5luk;/?(Pu_֍JgY
fNUW0Yan`%[ ;1.ݱʣj?z-+S )J4#j=lof`\S02kކ;v5H\.NvuJwna~/!ÂT-wI#8@}]*3(v~~`ؾveouбҎY-n1OhmXaO;3>jAA1dۡ!{h<laaھE ԯY((<*k=8*&/Sa˽ħ)irup*_#pN_p
`GOYw8n<w0<=R|%ĊyPu(R\Yy)PAS3U-1OV.R
KPzF6- 3t IzsFNQ,;;'%$Q[nVzDֆZ7A_R0W
Coh(ezt4aSu }jܧ"