debian/0000755000000000000000000000000012256515646007202 5ustar debian/patches/0000755000000000000000000000000012256515646010631 5ustar debian/patches/python-disutils.patch0000644000000000000000000000126112256515646015031 0ustar Description: Fixes disutils (adds a setup.py, etc.). Author: Ghe Rivero Forwarded: no --- /dev/null +++ b/setup.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +from distutils.core import setup + +setup(name='python-novnc', + version='0.4+dfsg+1+20130425+git4973b9cc80', + description='NoVNC python libraries', + author='Ghe Rivero', + author_email='ghe.rivero@stackops.com', + url='http://www.stackops.com', + packages = ['novnc'], + package_dir = {'novnc':'utils'}, + py_modules=['wsproxy','websocket','web','json2graph','img2js'], +) --- /dev/null +++ b/utils/__init__.py @@ -0,0 +1 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 debian/patches/series0000644000000000000000000000002612256515646012044 0ustar python-disutils.patch debian/python-novnc.install0000644000000000000000000000004012256515646013226 0ustar usr/lib/python*/dist-packages/* debian/README.source0000644000000000000000000000146012256515646011362 0ustar = 1:0.4+dfsg+1-5 * The debian directory has been removed from the upstream tarball -- Mehdi Abaakouk , Fri, 21 Sep 2012 17:43:19 +0200 = 2012.1~e3+dfsg * The upstream tarball constains four files without source code: ./docs/rfbproto-3.7.pdf ./docs/rfbproto-3.3.pdf ./docs/rfbproto-3.8.pdf ./include/web-socket-js/WebSocketMain.swf that have been removed from the repackaged tarball * file include/web-socket-js/swfobject.js was ofuscated and has been copied unofuscated from original source from http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js * include/logo.js and tests/face.png.js and base64 encodec images avaliables as pngs at include/logo.js.png and tests/face.png -- Ghe Rivero , Fri, 3 Feb 2012 11:47:31 +0100 debian/source/0000755000000000000000000000000012256515646010502 5ustar debian/source/format0000644000000000000000000000001312256515646011707 0ustar 3.0 (quilt)debian/source/include-binaries0000644000000000000000000000002412256515646013636 0ustar include/logo.js.png debian/novnc.install0000644000000000000000000000167212256515646011723 0ustar LICENSE.txt /usr/share/doc/novnc README.md /usr/share/doc/novnc images /usr/share/novnc images/favicon.ico /usr/share/novnc include/base.css /usr/share/novnc/include include/base64.js /usr/share/novnc/include include/black.css /usr/share/novnc/include include/blue.css /usr/share/novnc/include include/des.js /usr/share/novnc/include include/display.js /usr/share/novnc/include include/input.js /usr/share/novnc/include include/jsunzip.js /usr/share/novnc/include include/logo.js /usr/share/novnc/include include/playback.js /usr/share/novnc/include include/rfb.js /usr/share/novnc/include include/ui.js /usr/share/novnc/include include/util.js /usr/share/novnc/include include/web-socket-js/* /usr/share/novnc/include/web-socket-js include/websock.js /usr/share/novnc/include include/webutil.js /usr/share/novnc/include utils/Makefile /usr/share/novnc/utils vnc.html /usr/share/novnc vnc_auto.html /usr/share/novnc debian/novnc.postinst0000644000000000000000000000105312256515646012131 0ustar #!/bin/sh set -e pkgos_adduser () { local VAR_UG_PKG_NAME VAR_UG_PKG_NAME=${1} # Create user and groups if they don't exist if ! getent group ${VAR_UG_PKG_NAME} > /dev/null 2>&1 ; then addgroup --quiet --system ${VAR_UG_PKG_NAME} fi if ! getent passwd ${VAR_UG_PKG_NAME} > /dev/null 2>&1 ; then adduser --system \ --home /var/lib/${VAR_UG_PKG_NAME} \ --no-create-home \ --quiet \ --disabled-password \ --shell /bin/bash \ --group ${VAR_UG_PKG_NAME} fi } if [ "$1" = "configure" ]; then pkgos_adduser nova fi #DEBHELPER# debian/gbp.conf0000644000000000000000000000023712256515646010623 0ustar [DEFAULT] upstream-branch = master debian-branch = debian/unstable upstream-tag = %(version)s compression = xz [git-buildpackage] export-dir = ../build-area/ debian/copyright0000644000000000000000000000260612256515646011141 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: novnc Source: git://github.com/kanaka/noVNC.git Files: * Copyright: 2011 Joel Martin License: LGPL-3 See /usr/share/common-licenses/LGPL-3 Files: * Copyright: (C) 2012 Joel Martin License: noVNC is licensed under the MPL 2.0 (Mozilla Public License) with the following exceptions: . *.html, *.css : 2-Clause BSD license . include/Orbitron* : SIL Open Font License 1.1 (Copyright 2009 Matt McInerney) . images/ : Creative Commons Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/ . include/base64.js : MPL 2.0 . include/des.js : Various BSD style licenses . include/jsunzip.js : zlib/libpng license . include/web-socket-js/ : New BSD license (3-clause). Source code at http://github.com/gimite/web-socket-js . include/chrome-app/tcp-stream.js : Apache 2.0 license . The MPL-2.0 license text may be found here: http://www.mozilla.org/MPL/2.0/ Files: include/base64.js Copyright: 2000 Digital Creations 2, Inc. License: GPL-2 or LGPL-2.1 or MPL-1.1 See /usr/share/common-licenses/GPL-2 See /usr/share/common-licenses/LGPL-2.1 debian/rules0000755000000000000000000000100312256515646010254 0ustar #!/usr/bin/make -f # export DH_VERBOSE=1 UPSTREAM_GIT := git://github.com/kanaka/noVNC.git include /usr/share/openstack-pkg-tools/pkgos.make %: dh $@ --with python2 override_dh_clean: make -C utils clean dh_clean override_dh_fixperms: dh_fixperms rm -rf $(CURDIR)/debian/novnc/usr/share/novnc/utils rm -f $(CURDIR)/debian/novnc/usr/share/novnc/include/web-socket-js/swfobject.js ln -s ../../../javascript/swfobject/swfobject.js $(CURDIR)/debian/novnc/usr/share/novnc/include/web-socket-js/swfobject.js debian/changelog0000644000000000000000000000767212256515646011070 0ustar novnc (1:0.4+dfsg+1+20131010+gitf68af8af3d-2) unstable; urgency=medium * Do not create nova user and group if they already exist. -- Thomas Goirand Wed, 25 Dec 2013 16:47:06 +0800 novnc (1:0.4+dfsg+1+20131010+gitf68af8af3d-1) unstable; urgency=low * New upstream release (well, a more recent commit since upstream isn't doing much tagged release...). * Kill the wrong patch that landed in the master-dfsg branch somehow, and broke novnc (Closes #718889). -- Thomas Goirand Fri, 11 Oct 2013 22:28:34 +0800 novnc (1:0.4+dfsg+1+20130425+git4973b9cc80-1) unstable; urgency=low * Uploading to unstable. * New upstream release. * Added dependency on oslo-config. * Updated debian/patches/python-disutils.patch. * Removed rebind and websockify from /usr/share/util, since they are available in the websockify package. * Now depends on libjs-swfobject and use that file instead of the embbeded version. * Switch novnc from arch: any to arch: all since there's no built binaries in the package anymore (those are in websockify). * Delete the debian/novnc.init, because the init script is in nova-novncproxy already. * Ran wrap-and-sort. -- Thomas Goirand Mon, 20 May 2013 23:55:04 +0800 novnc (1:0.4+dfsg+1-7) experimental; urgency=low * Added missing usr/share/novnc folder (Closes: #705669), thanks to Denis Laxalde for reporting it. -- Thomas Goirand Tue, 23 Apr 2013 21:53:58 +0800 novnc (1:0.4+dfsg+1-6) experimental; urgency=low * Removes /usr/bin/websockify and /usr/bin/rebind, and now depends on the websockify package which has them. -- Thomas Goirand Wed, 27 Mar 2013 22:26:08 +0800 novnc (1:0.4+dfsg+1-5) experimental; urgency=low [ Mehdi Abaakouk ] * New upstream release * Change uptream URL * Change epoch to follow novnc version [ Ghe Rivero] * Removed depend on nova-common * Split config file [ Thomas Goirand ] * Added a get-vcs-source target. * Added a gbp.conf file. * Now using openstack-pkg-tools for packaging. * Increased compat level to 9, now the compat level and debhelper build-depends are matching (sic!!!). * Pre-Depends: dpkg (>= 1.15.6~) because of xz compression. * Reviewed long description. * Added a watch file. * Added a patch description for the distutil patch. * Added missing dependency python-nova. -- Thomas Goirand Sat, 02 Feb 2013 16:47:45 +0000 novnc (2012.1~e3+dfsg+1-4) unstable; urgency=low * replace debian/rules build: target with override_dh_auto_build-arch: otherwise it is ignored and fails when running dpkg-buildpackage -B -- Loic Dachary (OuoU) Tue, 26 Jun 2012 21:57:28 +0200 novnc (2012.1~e3+dfsg+1-3) unstable; urgency=low * Add a build-depend on python-greenlet. There is no actual need for python-greenlet at build time. But on some architectures python-greenlet is not yet available and novnc should not try to build because the resulting package will fail to install. This workaround should not be necessary but the maintainer of python-greenlet has not resolved portability issues in months at this time and we cannot assume it will be resolved quickly. (Closes: #665893). -- Loic Dachary (OuoU) Tue, 26 Jun 2012 11:17:31 +0200 novnc (2012.1~e3+dfsg+1-2) unstable; urgency=low [ Ghe Rivero ] * Bumped Debian Policy Version * Updated copyright file [ Thomas Goirand ] * Added a debian/novnc.postinst creating nova user and group. * Added a debian/gbp.conf -- Thomas Goirand Sun, 11 Mar 2012 10:31:31 -0400 novnc (2012.1~e3+dfsg-1) unstable; urgency=low * New upstream release -- Ghe Rivero Mon, 30 Jan 2012 17:09:57 +0100 novnc (0.1) maverick; urgency=low * First upstream release -- Joel Martin Tue, 05 Jul 2011 01:00:00 -0600 debian/control0000644000000000000000000000363012256515646010607 0ustar Source: novnc Section: web Priority: optional Maintainer: PKG OpenStack Uploaders: Ghe Rivero , Thomas Goirand , Mehdi Abaakouk Build-Depends: debhelper (>= 9), openstack-pkg-tools, python (>=2.6.6-3~) Build-Depends-Indep: python-greenlet Standards-Version: 3.9.4 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=openstack/novnc.git;a=summary Vcs-Git: git://anonscm.debian.org/openstack/novnc.git Homepage: http://github.com/kanaka/noVNC Package: novnc Architecture: all Pre-Depends: dpkg (>= 1.15.6~) Depends: adduser, libjs-swfobject, python (>= 2.6.6-3~), python-nova, python-novnc, python-numpy, websockify, ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} Description: HTML5 VNC client - daemon and programs noVNC is a HTML5 VNC (WebSockets, Canvas) with encryption (wss://) support client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android). More than 16 companies/projects have integrated noVNC into their products including Ganeti Web Manager, OpenStack, and OpenNebula. . This package contains the daemon and programs. Package: python-novnc Architecture: all Section: python Pre-Depends: dpkg (>= 1.15.6~) Depends: python (>= 2.6.6-3~), python-nova, python-oslo.config, ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} Description: HTML5 VNC client - libraries noVNC is a HTML5 VNC (WebSockets, Canvas) with encryption (wss://) support client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android). More than 16 companies/projects have integrated noVNC into their products including Ganeti Web Manager, OpenStack, and OpenNebula. . This package installs the core Python parts of NoVNC. debian/compat0000644000000000000000000000000212256515646010400 0ustar 9 debian/watch0000644000000000000000000000015712256515646010236 0ustar version=3 opts=dversionmangle=s/\+dfsg\+\d+$// \ https://github.com/kanaka/noVNC/tags .*/v(\d[\d\.]+)\.tar\.gz include/logo.js.png0000644000000000000000000005025012256515646011466 0ustar PNG  IHDR˦sBIT|d pHYstւtEXtSoftwarewww.inkscape.org< IDATxw|ߝdɶH!d)BK/om }nP6B ( q$$$v<-ٖdk߽(:I/4|;K=OueLCݝFn6ϟq*se걳9\5]s}tk2ӕ9rl~ =n&l|^ʝk;d㜞1{l;۲zl9Lgcf̄s1gLfC6><1Ĭ  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0i  0Ҭɲ*Qs]o$cbb~ @`0(7Lp8* M+|>$IR˲p8p8xǃ:L&Z~?|>AP%~6L(--M\0\.&&&+YC?It:QYY Q肹e^n?ۍ A""@J׫l[,HD2v#ajP,pzfSK$ {T dc#vt:QVV HDD&,_|ڑ l' \2`r/w>'LY߯?SvSDʉ=JzLB4s}}=JKK3R73f9^LNN*ۥ-h`o ?0!ax x llFKKKCtLc>03gޟ*we(s:8dzi..\F+SK&d;ΓL0ǚBV|A8^?01YB ` X|f>Ky :g~ ?|8=g!es8\\@vƔG]=F :l] \.LuJ֡z>t& :db<՞p8@ @ `0ȥrHACף4&|v G}BARirAe-Ecjj CCC+uN yglbh}" tp%%%p:ZƅaA@N]]AX|x0,y:+$)V][  2\.ڠ0x3dY :U &w~~fTTTn~D:@K "c"#"{.@-SSSJXbaA/u[2vȈFvGQ\.eA@QʏP~}% Zepo p\(//GMMMkIDjaԸD dx xK`(INgfU@Ok^T؎E=߯,aco:'K._~Bu`24H+5, %b4G| xL}jL@ˏLԖl UZ[ Xxݡ!F $ޮAR6QҐi_)e]t1Q,S\Vu&@g TvWqU1}uO7cHg >@ K Fz {Snxx?pIms.lDd-P>PR蠛AcX,W`ۼeâKE_ąN[SoOHDŇr|/K~ah.<l^BrEo:[ Ly""y n=XXT\ TD S-8X&Wb =5S`o=SgQak>[J!0ɲ 7W M "u$ D; qGOMK$g:;oMDŅF"\ cccH!s6gQn1R^i8EQq@"1i DI}g8s[)"Hf$*^ #`駓!pbb!Hl$@[kdzp\(e 60R^9V[|>D%&@{k,N0|>e !@*U,bzc$0\ܑ/Hr_)c~?C Q H3?(T,+:lE R8{{{( 磹FAh;_ĢK2=@-TpKF1=99^W"͑H TK:S|!HdLi`!`ti 055t"AҒjp8,@"/@*he X/FӃf"a67`2ӸLٌ=qVn~)@"m ^bAoo;RZr CDŋ]`ŷr[1 Ko|l$@*V$ HE%-\H )k}2d{|C=H&5l$yb쐱W1*g&k@@"M`$c/cYPa_,oB! &n@.C u#el-!^1Tfb(@HTI[ely,+C Xsv8fh֗*?@R-o!Vj\"ݍHD4J!qR4; ʳ] {\KcRpF"0RAR`N_.MTI:Ny9~^CX-, TزHTI.n߿WMf'p̷t$C`ww7a 4Qc$TVV2:rM@km"FH#-DETu@씱"Tsz@*Gd(#^t&`:8J>@9vB1R^r8i-A7bV9PqtzKʫVP3rHynG1L E+:T.Ce1Rd}!hv=@kv8yc *@=K:TL~ʷ.! cLT)I'70AU!r1һ3>` Qc`Zx{qt/P}Lz|փ@h`l6455)>`cE`t9.I5P:D4 TPV+~w!P{BzK׫MI8 jMk Ln۩~\)NL^)1DE jEssS[bحr>CɷR?&&&TiK20HDHb'11 %NWRZ4QqbfXN0SV Xg$R LD Hl69C0CxE4ԭ=$bp@ y[|N544H̅hhf@_Ia`cpoSv"Z֥@ǣz=8q"Z(@**& "-_{ɷ0@.MTL(1t![t op8zd]DEh<0*_/(sԜe`JT!`_1 ~l;_vH[chxEv@7 _Zq|¥Y^`$*FQ3 a/j-8*h!0-Ad$*>BT ӃH$Y6YQl1J4 @嬌⭀Xg@æҌDKh2\/?ȽLUHt3&*n )zJ XR`Z iN"Lx/z.pdu 4Qc$M.SB3 TlZDŇ4Kӥ@4/vPe iZ"fe߻I$C 巬A5@ D>yHB# Լ0 Qa$'lX}JW@?]h Dō((hjjJ ]OHx@/i@"#@$BjUu?%a׽ ? Qa$(hllL =n^)?d; .MTBE477f)z_$C1.CD Ht )-='aǟ)9 1 KJJ}$l^)W - ,ƴ1RNp@"Z!" ~mhh@?|>`2d)AשDL7 $!i:63cǙԙHDsH4 >-*Cpg3Meٳ'{gs@%BP .c1\%r]D4Wl$D ~S_Ű:\֮"~7 {Kf[.MT `bb0I_ư (͞/d5Qυ?ef[oee`>ZLT2eeeV[~,"507@ M dl5X8"'.CT2ʶg?!aA`$*j z+'˱ϳY,Xt*c:!05'Zv7@ X,Ϟ$6/?UWW]26C4N 'Z ݔy@ 3L y䌶PIQ`hCaZ3WxFEE=[FGC@gp̀c%Z0n>G:dD&? ƌ]HC`M?)M&205 41j\_Nl[PYYl{tsC`s2f)D!4Q1cԸԮW%^fh 𼕼`hwR}26Cğn`Н0uN 1?mߜgX 1`c{_^,c ,"""H26޸;a 3AO*wW5$*6 '©ltOƀ7䅣V.oZXIkp8>8uXfSlJ(=LT| ʶwߺuٗ$@MM [t:Bd ߋbU9m& *c= hLo-^BrKmɿV'q3]MMl2vYSh(7ƀK3;}]%`%cuo!^g5cX;7p-$T~t+ $H>ш欷N'zx%6N(q`!'9N,Wk21خOJ|>@h<>9@oV(=L`|@_<}nV+jkkU})//(Rڝ-D5k:@H/0'Ma0Dg}ןX,R,--e0Q/_>ml*vـ7$<% &.Y>!ۯL|A08>`ĻN'ʔւ>%%R7oL9n&3F; {Hv/,#n@A>B;=f>,E֮L|0@vv>} Ʉ U&#^zbppHdV3p8(//ɚ|%aQ< ծ{$<;'fXӕ[-eYyN6=87,  " "*7 p8_P-@{E8 UP~$C`!e?Ip+[gٕ l ogljbg}/_>Y7Pٞ?n6'\({lOԹ)/w>ol&=N8g0PYY2~Х>o>49n&!IxFg|hDEEGF?εp8%%:Ģ2"QkII jjj`0ftfk&zfX,1t:t:sjeԔ(rǩUTjܙcMW2 IDATna4bZavTT?>~eV֛Gcezw ?9;ť&iuݿGFFvά/U,^d(& Kx_cxn&R|-$B!(Ac 8ӣۻѵ7s8?h ӣ`h;֬yXҁ#gxWxAw~oɿŻu:z@Yg%\zG̻=1}mnnV瀖,A0XV{\ٷqMp%`ddDO41( !qF~=Ғԏ7HDojJe`0^8$O>\00QQXŽZ!(_<"1QXO<)!0D.'W^KIf|HDEJ#نB!@3nb1eee3<HDE%6<*T@-:'RP?E]QQ1y[ԣPW_˒!H==A~v_R׳/0Q:lq<&4 DY)~&׎d_a$݂= fݝ0eƫ&pO.>oZ2t<QimVa݅ "MMM0 Q ⅗‹cx1 ~t:QS{Sf0&47!@$Aoo/CFs ~H65CkL:8iOHDh[.@gW@i lnnf,rQeBehDcc#L&SB1D) &UX FA8D4^ݎ46_܁F`јQl6f8s*˲*YHQf(@"Ҥj#zt_;ޙdMe9k˓{.`"ҬJ#|d>@;8~`;Q`$"M0WbHDE44Wa ;d 9Qv0(+ĚaX }}} DT)-Wc!-DTRzzeխl1R^0E\flzm2ՅAb֐dJ SS1\zV1U!xopp! CLK#pll Ҵ!P.VFtlX^Y Aػw/-LiFcZ $\mxu/5+xDDaX,VJ#nm XnWcϞ=lY4PX‡>ۨuwkZ푑@" t '?f{zv n8%-L шf<%|o'FTwnhǷkUGFFv"ID lCEh=:^[O\Q 'Fs\K!-F"2xal jSGGG1:~$Q M+unBj]+/7g7=[쟘={x rkH`gT7֊Юln@"@VYYL&``0/ Wݧwr;}r5%2$I099R hO}~P|w)n##wK1ҴDQDSSr՞ οd3FF9فذLxp(BOO\."HkIܜ?wp=+_lƏ{xHu tPF ɻ3 /݂Qw~)]g18reEgg'n75l(I2wǿ^/| 70e`xXD] tHv[Xs.HR~%G+,EC}[$[X!01A|m'~Gu'o966HDaUWWp(cc\]8x._]~FcTE__5jxw^O~?i!phH *D= 4+NSmYm羴#76VqxNeGgg'FGG-A:.-u׿__uϏT4TH[iJKKh")dA>~nh~E@"Z@ʪDpcc# owW~x.r+:9>FtlX^Yܭ!`޽D,m%)kA@CCCZ;qaǨNNNhInʴngq'@~J#nm \aW!-L"(~n!S=a&C˥=80jRS/ᰄ[nƚ6džsXC;^xf n8X,Aݻ@~dsyn <2q%DQ?ZW7( P"=}Y+PRDDH9SRRvTUUA^{N{3Lǿq [쟘={066Q6x}w S7==RDD4W S ihT/oŪrXC[<%fJ!tuuajj*5LJ:e'?Ѩ!5< 21R^0 hllDsssZpv~a NEdžgB!h4ǵLK }dۈD W9C+Q^nDD))l6:[ 87qݷva|ɷT++QQHDHyGTTT`ѢEi,;~ªOw l-9҆'^?v)M###d~NpEYYS>߲%-UDT)oz444&IDklM._]]Ӣ5. H$5L?>W}-owX@"@{VN\bSg_3LY:|vlx8uf󡧧'5LEyyq凷!:(?1R(//G{{{ڸ+Y|VK8fkQw924LMMMZ|yּ i N:l6+ǣ[pʙo 9ᡭ;o6X|8NepU[15HDW *HmmmK߄O}~;9M"u]+xe-?*ա FEE+br! 2,Z( {` We9fɌx4[luu(B+oϗK0RtE[[,{N{/f;t'naeXUU*++ oLoHDHEl6듷ڹk \srXCҚʴF/οts.fNDHE- ƚ6[Ry^ҮC`fοccti %QQSS6Xu@ A'֞:;5$-@UUrϖm~x3@" @*j& ---hhhH ಫm@kHZt:Q]]lo{ۏ.h~V'⦟!Dpfv(0xf|GY><< ؾc]?5\VMS1>>jQaZaZaiīi(B[[l6?pOlO䰆娩Q9uv``pIߏatuuaΝTF@ш&|> # W3NwƵ(kCCCwwOa݅xUh7jEk" .zҜ2 Kز͏ d <6Iv;JJJvvnS^>ۄo~6n殬 `pp3]ЁYFveYgV3+f~ ͛,/2#`r2Y188P((wDQd0i D{{;JJJ[o6rXC*fUvp׊BTH82~~"elz{{񖈹$2DQ  D`0؈F!|3۱c25bUZZ:e7s/t*hVW^^\LDwwwk],C) D)JJJֆ*b+87孼(GZ }t! U |F.x@ p(QчUk7{o QF8+ЮwAYT.X_"e{tt4A8  )93sd4}i޻n#l7Yݎ IDAT:% H/5 ⳰Q(ӆ?hF6 mmmI~M/N=k#n'<enOk c݅1T?/yOl&A3}Ń<@YNi’$Ǫ7wtA/L WRR%ݟvgχpĂل?hNz=Ғ-<6_߅Sڈߘa XQ _[1RaZnEII;2儺LK٬H4EN_eg  --fK O_ҁ[8 +g~ Kblf$Zr+u Vчh47©Z}?06JwxL]xmǣ8ظɛcK1^*7eG']A2`3}ht:jkk 9y /7o.N: ʸK^Dzu|QlpWA$$z~-d81mpI}N}ﱬrg5ʸC=P"M2hmmEmmmڛqIV'\k+&dXRf/=0lZ3Zv!Zi!˷ M^%d2)! 71K/'?0V~f$ʰ2.|KZS[kR (7U&uYҊ0.\M( t:jjjښ&'cSs{v;&֍E|uD?nK[EƩ!pj*Kܚ Kd.--hI=^|Ya]O<5lZU\*67@,2hiiA]]]Zڻp[Boo%Oj(ilEQiřfxgr bAss.V @oZar\²~a$R(FkkkZf (7u__pX{߷d|Xls:k}E2>=У8|cf3[R! W}x~fيDd|uߧlE1(/2~t'07 /ۂ^L~TVVL{}r6p5(4[k2Y(--dB $/nQ<0ñk(/[7/_Y ֿؘټ&%%%|bd<N> Fn| <5Γ\z6 >,_'F8f{Q|?w$U09;pUEN($nO\; [,dr=d B~M uV8&IY@:L G (V83ge؆ oJeeei Tgl^A`Zz!2Q=:zfu#I2 ۍ_ޛV^ss󜗳B!C$b2^~e?j#Zrn@P¯nG>6^KYVt:lF4E(2s{PPBmiV ʝ0zz2b1k&U1\2{q/_>4=Yyޡ^<mهzls9t='ӯ|3cLW|yy#fL0VTKpY8X{l)zL7x lx};vNy ;rDϬuD}EߴZfw9=c8)7r!N Ǖَ::z^NcO10FLo>S3I-Se}9XҁUSa4q$Sr/ŗ֏L(++Cmmj g[8. ;t22΅"opa UVbLZh@ wX,8`˕en{ٴe;$IA,H*)%^fu\kr*qzJl8d#0! btttVAN1\n8c6{Y0/.\, 4h"\s6mLjIm#OOOt:9KUU#u=pP%[ k|&px10z}} OOO/h&bNS8N/_UX~~~ 1_41|-<>>_3!ߋ7(pPxϽ[F{6<|5^5[`#܀x=0kuR_ P|Gӿ sro @`3 +]׽Y~ @`7^7Lp+&{ @`һ{M.'MWMĻ{ o<XiBʖV+c\XC۶o"X 7,y @`1UU @`v&~l:@`ru]tayLY~" uhr{@nqW׵LmRU8sEI9~&nᯊ{@W ?8ްԻ8oZ@@be^WʟsKY "]uxs \K$`b?AW~ @'~c K}\JӾmM ?n!`6u8ƅ{ @XLȟ3c*.gǔ , g $ i0s=K0Ns[<k"C5p(`w>eDK7qVxOI&cOA?fI^v@V+_ڍs#F*tWU3`$Ew?wFO0)_z(г~8 Z !>`z ݳ2| wKwʍǴ:@ncn(ilހ\ _>K|M`{ !4l(Tiݺ@jaߺr< ر-By N =nH#(ب