2022-08-27 22:04:55 +03:00
|
|
|
|
#!/usr/bin/env python
|
2018-10-06 15:15:06 +03:00
|
|
|
|
# encoding: latin-1
|
|
|
|
|
# Thomas Nagy, 2005-2018
|
|
|
|
|
#
|
2008-05-31 00:17:01 +03:00
|
|
|
|
"""
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
|
modification, are permitted provided that the following conditions
|
|
|
|
|
are met:
|
|
|
|
|
|
|
|
|
|
1. Redistributions of source code must retain the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
|
|
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer in the
|
|
|
|
|
documentation and/or other materials provided with the distribution.
|
|
|
|
|
|
|
|
|
|
3. The name of the author may not be used to endorse or promote products
|
|
|
|
|
derived from this software without specific prior written permission.
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
|
|
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
|
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
|
|
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
|
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
|
|
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
|
|
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
|
POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
"""
|
|
|
|
|
|
2015-05-02 14:18:35 +03:00
|
|
|
|
import os, sys, inspect
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2022-08-27 22:04:55 +03:00
|
|
|
|
VERSION="2.0.24"
|
|
|
|
|
REVISION="c88b74123ce8b9d1a27999f7cf96dff0"
|
|
|
|
|
GIT="c140c3f538c4a21f3d88bab9403b42c696759dcb"
|
|
|
|
|
INSTALL=''
|
|
|
|
|
C1='#/'
|
|
|
|
|
C2='#*'
|
|
|
|
|
C3='#('
|
2008-05-31 00:17:01 +03:00
|
|
|
|
cwd = os.getcwd()
|
|
|
|
|
join = os.path.join
|
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
|
|
|
|
|
WAF='waf'
|
|
|
|
|
def b(x):
|
|
|
|
|
return x
|
|
|
|
|
if sys.hexversion>0x300000f:
|
|
|
|
|
WAF='waf3'
|
|
|
|
|
def b(x):
|
|
|
|
|
return x.encode()
|
|
|
|
|
|
2008-05-31 00:17:01 +03:00
|
|
|
|
def err(m):
|
2012-02-09 19:12:52 +02:00
|
|
|
|
print(('\033[91mError: %s\033[0m' % m))
|
2008-05-31 00:17:01 +03:00
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
2015-05-02 14:18:35 +03:00
|
|
|
|
def unpack_wafdir(dir, src):
|
|
|
|
|
f = open(src,'rb')
|
2012-02-09 19:12:52 +02:00
|
|
|
|
c = 'corrupt archive (%d)'
|
2008-05-31 00:17:01 +03:00
|
|
|
|
while 1:
|
|
|
|
|
line = f.readline()
|
2012-02-09 19:12:52 +02:00
|
|
|
|
if not line: err('run waf-light from a folder containing waflib')
|
|
|
|
|
if line == b('#==>\n'):
|
2008-05-31 00:17:01 +03:00
|
|
|
|
txt = f.readline()
|
|
|
|
|
if not txt: err(c % 1)
|
2012-02-09 19:12:52 +02:00
|
|
|
|
if f.readline() != b('#<==\n'): err(c % 2)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
break
|
|
|
|
|
if not txt: err(c % 3)
|
2015-05-02 14:18:35 +03:00
|
|
|
|
txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00'))
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
|
|
|
|
import shutil, tarfile
|
|
|
|
|
try: shutil.rmtree(dir)
|
|
|
|
|
except OSError: pass
|
2012-02-09 19:12:52 +02:00
|
|
|
|
try:
|
2015-05-02 14:18:35 +03:00
|
|
|
|
for x in ('Tools', 'extras'):
|
2012-02-09 19:12:52 +02:00
|
|
|
|
os.makedirs(join(dir, 'waflib', x))
|
|
|
|
|
except OSError:
|
2015-05-02 14:18:35 +03:00
|
|
|
|
err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
|
|
|
|
os.chdir(dir)
|
2012-02-09 19:12:52 +02:00
|
|
|
|
tmp = 't.bz2'
|
2008-05-31 00:17:01 +03:00
|
|
|
|
t = open(tmp,'wb')
|
2015-05-02 14:18:35 +03:00
|
|
|
|
try: t.write(txt)
|
|
|
|
|
finally: t.close()
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
try:
|
|
|
|
|
t = tarfile.open(tmp)
|
|
|
|
|
except:
|
|
|
|
|
try:
|
|
|
|
|
os.system('bunzip2 t.bz2')
|
|
|
|
|
t = tarfile.open('t')
|
|
|
|
|
tmp = 't'
|
|
|
|
|
except:
|
|
|
|
|
os.chdir(cwd)
|
|
|
|
|
try: shutil.rmtree(dir)
|
|
|
|
|
except OSError: pass
|
|
|
|
|
err("Waf cannot be unpacked, check that bzip2 support is present")
|
|
|
|
|
|
2015-05-02 14:18:35 +03:00
|
|
|
|
try:
|
|
|
|
|
for x in t: t.extract(x)
|
|
|
|
|
finally:
|
|
|
|
|
t.close()
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2015-05-02 14:18:35 +03:00
|
|
|
|
for x in ('Tools', 'extras'):
|
2012-02-09 19:12:52 +02:00
|
|
|
|
os.chmod(join('waflib',x), 493)
|
|
|
|
|
|
|
|
|
|
if sys.hexversion<0x300000f:
|
|
|
|
|
sys.path = [join(dir, 'waflib')] + sys.path
|
|
|
|
|
import fixpy2
|
|
|
|
|
fixpy2.fixdir(dir)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2015-05-02 14:18:35 +03:00
|
|
|
|
os.remove(tmp)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
os.chdir(cwd)
|
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
try: dir = unicode(dir, 'mbcs')
|
|
|
|
|
except: pass
|
|
|
|
|
try:
|
|
|
|
|
from ctypes import windll
|
|
|
|
|
windll.kernel32.SetFileAttributesW(dir, 2)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
|
2008-05-31 00:17:01 +03:00
|
|
|
|
def test(dir):
|
2012-02-09 19:12:52 +02:00
|
|
|
|
try:
|
|
|
|
|
os.stat(join(dir, 'waflib'))
|
|
|
|
|
return os.path.abspath(dir)
|
|
|
|
|
except OSError:
|
|
|
|
|
pass
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
|
|
|
|
def find_lib():
|
2015-05-02 14:18:35 +03:00
|
|
|
|
src = os.path.abspath(inspect.getfile(inspect.getmodule(err)))
|
|
|
|
|
base, name = os.path.split(src)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
|
|
|
|
#devs use $WAFDIR
|
|
|
|
|
w=test(os.environ.get('WAFDIR', ''))
|
|
|
|
|
if w: return w
|
|
|
|
|
|
|
|
|
|
#waf-light
|
|
|
|
|
if name.endswith('waf-light'):
|
|
|
|
|
w = test(base)
|
|
|
|
|
if w: return w
|
2022-08-27 22:04:55 +03:00
|
|
|
|
for dir in sys.path:
|
|
|
|
|
if test(dir):
|
|
|
|
|
return dir
|
2012-02-09 19:12:52 +02:00
|
|
|
|
err('waf-light requires waflib -> export WAFDIR=/folder')
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
dirname = '%s-%s-%s' % (WAF, VERSION, REVISION)
|
2015-05-02 14:18:35 +03:00
|
|
|
|
for i in (INSTALL,'/usr','/usr/local','/opt'):
|
2012-02-09 19:12:52 +02:00
|
|
|
|
w = test(i + '/lib/' + dirname)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
if w: return w
|
|
|
|
|
|
|
|
|
|
#waf-local
|
2012-02-09 19:12:52 +02:00
|
|
|
|
dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
w = test(dir)
|
|
|
|
|
if w: return w
|
|
|
|
|
|
|
|
|
|
#unpack
|
2015-05-02 14:18:35 +03:00
|
|
|
|
unpack_wafdir(dir, src)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
return dir
|
|
|
|
|
|
|
|
|
|
wafdir = find_lib()
|
2012-02-09 19:12:52 +02:00
|
|
|
|
sys.path.insert(0, wafdir)
|
2008-05-31 00:17:01 +03:00
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
if __name__ == '__main__':
|
2022-08-27 22:04:55 +03:00
|
|
|
|
|
2012-02-09 19:12:52 +02:00
|
|
|
|
from waflib import Scripting
|
|
|
|
|
Scripting.waf_entry_point(cwd, VERSION, wafdir)
|
2018-10-06 11:51:14 +03:00
|
|
|
|
|
2022-08-27 22:04:55 +03:00
|
|
|
|
#==>
|
|
|
|
|
#BZh91AY&SY<13><><EFBFBD>#(<28>)<><7F><EFBFBD>#(X<58><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>(<28>(<03>0<><30>0<><30>b<1E><><EFBFBD>}<7D><><EFBFBD>#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(7n<1E><>F<EFBFBD><46>#*<2A><>#(<28>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$<24><><EFBFBD>ҚJ<D29A>H<EFBFBD><48><18>Wլe!-fg<66><01><>Oy0<79>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4l<34><6C><EFBFBD><EFBFBD>`<60><>=!<21>F<EFBFBD><46><16><><0E>R<EFBFBD><52><EFBFBD>H<EFBFBD><48>s;<3B><>_<0E><>h<07><><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26>6<EFBFBD><36><EFBFBD>_|<7C><>os<6F>p<EFBFBD>ܛ<EFBFBD>#(=#(<03>CA;#(<28>uN#(O<>#(<28>ճ<><D5B3>#(<28>Xh<58>֪<><D6AA>ր#(<0E><><EFBFBD>P#(#(%AI#(()"<22>C#(<28>QB<51>(<28><05><><EFBFBD>J<EFBFBD>$C@4Pv<50>MU@Q<><15>OV<06><><EFBFBD>75<37>F<<3C>^<5E><>d<EFBFBD><64><EFBFBD>{7<>V<EFBFBD><56><EFBFBD>G<EFBFBD>MbR<62><52>uw<75>[<5B><><EFBFBD>ޔxov<6F>$<24>><3E>N<EFBFBD>z<EFBFBD><7A><EFBFBD>x<EFBFBD>v<EFBFBD>k<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޞ<EFBFBD>v<EFBFBD><1E>|<><18>{ޯz<DEAF>ۺ<EFBFBD><DBBA><EFBFBD>H<EFBFBD><48><EFBFBD>]٪n<D9AA>bTr<54><72><EFBFBD> <20>( P<><50>{;c<><63><EFBFBD>/xwkC<6B><43>4<10>ʩ"R<>l<EFBFBD><6C>Z#(<28> <12>#(Яo@<0B><>U:;<3B>=z<>0<EFBFBD>k<EFBFBD><16><><07><><EFBFBD><1A>su<73><75>h#()<29>st<73><16>}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v<19><><07>{<16>^<5E><>pzQ<7A><51>Y<EFBFBD><59>w>^<5E><><EFBFBD><EFBFBD>m<EFBFBD><6D> {<7B>5<EFBFBD>8<1B>G@%s<><73>_v<5F><76><EFBFBD><EFBFBD>9]<5D>:<3A>o=<3D><>o<EFBFBD><6F>e<EFBFBD>kr[u<><75>j<EFBFBD>n<EFBFBD><6E>h<EFBFBD><68>s<EFBFBD>\<5C>,<2C><>#*p<>c3<63><33>_'<27><><EFBFBD><EFBFBD><EFBFBD>\<5C>,w<><77>><3E><>&<26><> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QG<51><47>ko{|5P<35>erg}<<3C>]<5D><><EFBFBD>;{<7B><><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>]<5D>[)<29><><EFBFBD>ז<EFBFBD><D796>A<EFBFBD><41><EFBFBD>#*'<27>ݎ<EFBFBD><DD8E><16><>y#(<28><>{y{<7B><>v<EFBFBD>;<3B>C<><43>#/(#/<2F><>(QH 5<><35><EFBFBD>v<03>#/<2F><>-k48<34>{<7B><><EFBFBD><EFBFBD><EFBFBD>69<1D><>=<3D><>m<EFBFBD>:<><C299>{<7B>rQ-<2D>]*<2A><>r\<5C>z<EFBFBD><7A>#(#(<28>yv<79>p#(<03>9y.C<><43>_o<5F><01><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>^<5E>q<EFBFBD>f<EFBFBD><66>{<7B>{W<><57><EFBFBD><1E>;{<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>qB#(uB<75><42><EFBFBD><0C>{<7B><><9<><39><EFBFBD><EFBFBD>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD> +<2B><>i<><69><01><>kO{Z<>Q<EFBFBD><51><EFBFBD>k<EFBFBD>7<EFBFBD>=<01>}|<7C><><EFBFBD><EFBFBD>vۤ<76><DBA4>b<EFBFBD>Oy<}ݷ<><16>]<5D>.|^<5E><><EFBFBD>k<EFBFBD>(<28>c<EFBFBD>{1#(=;z<><7A><1D>%#/<2F><>ڑ<EFBFBD><DA91><EFBFBD><EFBFBD>^|&<26><><EFBFBD>ݘ<EFBFBD><DD98><EFBFBD>O{<7B><13><><EFBFBD><EFBFBD>n<06><><EFBFBD>u<EFBFBD><1E><>Q<EFBFBD><51>ƶ*<2A><><c<>0U<30><55><EFBFBD>膃<EFBFBD><E88683><07><1E><><EFBFBD><EFBFBD>[Y<><59><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD>}k@#(t(#*#(^<5E><><EFBFBD>pu<70>qJ<17><><EFBFBD>猺<EFBFBD>FwZ{<7B>y<EFBFBD>}@>\<5C><><EFBFBD><EFBFBD>296f<36><66>{<7B>#(r<1C>[<5B>c<EFBFBD><63><EFBFBD>ۛ#(<28>#(#(@*<2A><>v<EFBFBD><76><EFBFBD>#(F<>\{<7B>=#/ؕ<><D895>ѥ<><D1A5>m[U<05>#(4#*,<2C><>:<3A><><EFBFBD>V<EFBFBD>`<60><><1C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$<24>W<EFBFBD>4p<34><70><EFBFBD>|<7C>|C<>ĺ<EFBFBD>w{<7B><><EFBFBD>pĈ<70>m<EFBFBD><6D><D<><44>r<EFBFBD>+<2B><><EFBFBD>ͻ<EFBFBD><CDBB>wp<77>T<EFBFBD><54><EFBFBD>.{@`<60>ݻ:<3A>z<EFBFBD>S<EFBFBD>g<EFBFBD><03><>ᦈ#(<28>#( b4i<><69><EFBFBD>z4zd<7A>j<EFBFBD>=F di<64><06>Dɧ<44><C9A7>Q<EFBFBD>%4B#(@<40>i<EFBFBD>i<EFBFBD><69>i<>HM=C#jdzF<7A>#(#(#(#(#*#(i$Ѐ<><D080><EFBFBD>C <20><>6<EFBFBD><36>d<EFBFBD>Қg<D29A>~<7E>yOҁ<4F><D281><1A>S@@4#(#(#($<24>JH<4A><48>h<EFBFBD>dOM&<26>(<28><><EFBFBD>i<EFBFBD>=@d4h#( <01>C<EFBFBD><01>h#(#(#(I <04>d#(CE< )<29>`<60><>Ȟ<EFBFBD>$<24>5OQ<4F><51>4<EFBFBD>#(4<>#(<28>=C&<26><>$D4<><13>1ODO%=<3D><><EFBFBD><EFBFBD>6<EFBFBD>z<06>ɡ<EFBFBD><06>#(#(#(#(#(O<><4F><EFBFBD>XRQ?<3F>%E<10><EFBFBD>#(<28><EFBFBD>=%Z<>lĒ<6C><C492>S=<3D><><EFBFBD>d@H<>6#(<28>P2"<22>#(!5TJ<54>"<22><><EFBFBD><0F><><04>eρ<><CF81><EFBFBD>~<15><><EFBFBD><EFBFBD>s㻔<>^<5E>{;]<5D>ީ<EFBFBD><DEA9><0E><><EFBFBD>*<2A>+<16><>T?<11><><EFBFBD>+ܳ}<7D><>@ <09>#/<2F>W<EFBFBD>D$<11>DN<44>#(<28>%t<><74><EFBFBD><EFBFBD><1D><>x닕<78><EB8B95><EFBFBD>+<2B>.<2E><1E><><EFBFBD><EFBFBD>U<18><><EFBFBD><EFBFBD>U<EFBFBD>"o<1C><>^<5E>h#(<28><>k0DH<44><48>x|<7C>/Ȃ<>m<EFBFBD><6D>*<2A><><EFBFBD><EFBFBD>U<EFBFBD><55>X<EFBFBD><58>mV5U<35>j<EFBFBD><6A><EFBFBD><EFBFBD>ƉA *<2A><>"(b H<><02>`$Dl<44> <08><>*Q,EH<45>@<40>@<40><14>B)#/<10>V<EFBFBD><56>j<EFBFBD>}U<><55>T̙%<19><><EFBFBD><EFBFBD>Ȁ<EFBFBD>0H<30><48><EFBFBD>D<EFBFBD><44>"X<>ԥQM<51><4D>#/&h$<24>J2Z<32><5A>Q<EFBFBD>h[Fi,<2C>H<EFBFBD><12>j2R&Қ #(6<>KbʛF<CA9B><46><EFBFBD>-<16>(JYi<59><69><EFBFBD><10><>4Q<><51>Ƥ<EFBFBD>F<EFBFBD><46>&<26>Jl<4A>BjcI@<40>h<EFBFBD><68>H<EFBFBD>R<>F<EFBFBD><46>"[M<><4D>j<EFBFBD>4<EFBFBD>Ic3&d&<26><>Y6<59>m<EFBFBD><6D>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sm<53><6D><EFBFBD><EFBFBD>$<24>E@dY<64>14Y(<28><>E"FЈTY<54>m<14>#*X6)6a<19>DAR<41><52>F<EFBFBD>!#/ %<25><16>Dd<44><64>"d#K6<><36><EFBFBD>"b<>$a<>,<2C><>fbD#*%<25><><EFBFBD><EFBFBD>Y664X<34>aE<>,<2C>$h<>SLbJL<4A>2<EFBFBD>4d<34><64>2bARQ<52>J#I VAM<41>E<><45>fR<66><08>`<60><1A>؉1M͂ab5<62><35><04>V<10>$<24><><1A><>-%<25>#/H<>Q "Q<><51>EP`&d<><64>0<EFBFBD>Be$<24><>Y<EFBFBD>5<><35><EFBFBD>RD<52><10>KJl<4A>!E<><EFBFBD>Y<>R6d<36>M<EFBFBD><4D>؉<EFBFBD>")Fl<46><6C>2<EFBFBD><32>$<24>YJa<4A>Q`,<2C>i<EFBFBD><69><EFBFBD>"5+%<25>6(<28>R"<22>I<EFBFBD>&<26>a<>L<EFBFBD>cI<63>BI<42>%<25>e5L<>6<EFBFBD><08><>(<28><><01><>Pi6FB1d<31>Ț <09>R%F<><46>f҅&5<06><18>H$$Rf0"ł%<25>a1A$ʙ<><CA99>m<><6D>%3!<21><14>)<11>+(QRE`<60>L<EFBFBD>l<EFBFBD><6C><EFBFBD>d<EFBFBD><64>jf<6A>#)!I<><49>LR2<52>i<EFBFBD><69>"0DQ%&<26><>4̂<34><CC82>Q<14><>Sb<53>5*R<><52>)#*<2A><>2)<29><>H<>(<28>HR"<22>E$<24>$<24>JmMF<4D>"<22><><EFBFBD><11>ʍ4țA<C89B>c0e<30><65>L<EFBFBD>cH<63>2 <20><>)LR<4C><52>,<2C>!-f<> <09>J<EFBFBD>`2Hi,<2C><>j<EFBFBD><6A><EFBFBD>$MaH<61>!<21><>ă<08>#*IcQf<51>(<28>1<16>4<EFBFBD>Qja<6A>&e&(<28><>&Ȍ<> <14>F<EFBFBD><46><10>ɔ<><C994><EFBFBD>*<2A><>(MLє<4C><D194>ҊI<D28A><15>Ԧ<EFBFBD><14>E<EFBFBD><45><EFBFBD>2<EFBFBD><32>ʛ4EE<45>V<16>1!E6"<14>&<26><08><12>_<EFBFBD><5F><EFBFBD> Sz[tD<11>#6<>1<EFBFBD>[<15>Q<EFBFBD>e)<29><><EFBFBD>$ѡ<><D1A1>-F<>6I<36><49>Ȍ5#*3FH<46>L<04>"<22>f&f<>l<EFBFBD><6C>F%%-F<>R<16><>a55<35><35>acR#/e<><65>2<12><>#/<2F><>i*l<><15>e<EFBFBD>T<EFBFBD>Y*aM<61><19><>[,<2C><><EFBFBD>L<EFBFBD><4C>S,<2C><>J<EFBFBD><4A>JR̋l<CC8B><01><><EFBFBD>)<29><>%<25>2R<32>Z<EFBFBD><5A>F$5<1A>d<EFBFBD>(<28>d<EFBFBD>J6<4A><36>TT<54>F<EFBFBD>M2FرF,V<>a<EFBFBD><61><EFBFBD>l<05>Ʌ*<2A>4<EFBFBD>J)ѣL<>J<EFBFBD>؋cF<63>XŲE<C5B2><45>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>* <09><>KY4IR1!M<>lY"<22><>Y<EFBFBD>1Jm*<2A>R<EFBFBD>YaZ<61>DF<44><46>K"e-MM<10><><EFBFBD><EFBFBD>k,Xl<58>k+,<2C>l<EFBFBD>$2<>I4E<34><0C>`b$H<><48>hLb<14><>P<EFBFBD>J<>5Ed<45>h<EFBFBD>2i(<28> ,R)<29><>4l<34><6C><EFBFBD> <14>S1(RQ<52>L<EFBFBD>1<16>L<EFBFBD><4C><19><>LQ<18>!L"<22>dHQ<48><14>Xi<58>#&<26><><18><>1<><31>f<EFBFBD><66>S"<22>h,<2C><><EFBFBD><12>#(<28>ѤŘJT͒Qh<51>AfmFR<46><52>I%FB<46>Ŕ<EFBFBD><14>i4F5&<26>aH<><48>d<>P<EFBFBD>X<EFBFBD>3h<>fR<66>RR<52>Va<56><61><EFBFBD>X<>F<EFBFBD>1<EFBFBD><16>Tl<6C>#*<1A><><EFBFBD>i<EFBFBD><69>6̤<36><04><><EFBFBD>c <20>bJ<62><4A><EFBFBD>T<><54><EFBFBD>$2&k Jj5<6A>l<EFBFBD>f<EFBFBD>ɱ<EFBFBD>M6b&<26>Q<EFBFBD><51>#jȍ4*f<>K#/$I6Q<36><0C>5M#b<>5<>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>JHH-<16>a*5<1A>1Xţ2<C5A3>i0<69>I<EFBFBD>Bɑ<42><C991>QlQ<6C>%<25><><EFBFBD>b<EFBFBD>fQ<06>FLl<4C><6C><EFBFBD><EFBFBD>D[F<><11>j<EFBFBD>Q&<26>,<2C>( <20>Rj<52>A<EFBFBD>B<>1<EFBFBD>R<EFBFBD><52>6<EFBFBD>Ji<4A>B<EFBFBD>4IL<><4C>j<>b2<62><32>EJ*<2A>cI<63>"ɢ)<29>BԢ<42>̔ISbQ*<2A>F<EFBFBD>*dlY5FŚQl<51>+֓<14><><EFBFBD>"[&<26><><EFBFBD>*IL<49>)Qa`<60><><EFBFBD>(<28>4I<34><49>m<EFBFBD>$5<14>0A<30>2`<60>B<EFBFBD>Jl͉<6C><CD89><EFBFBD><EFBFBD>2<>m<EFBFBD>B<>I<EFBFBD><49><EFBFBD>(<28>P<EFBFBD>%b<>I,l<><6C>4PF<50>IZ<49>-,<2C>m<0C>Z-QV2<56>m&<26>D<10>cRQb<51>M <09>L<EFBFBD><4C><EFBFBD>i<EFBFBD><11>CS6I<36><49>Ib<49>5%K*ɭ6<>[<1A>(<28><><EFBFBD>QL<51>i[Fѱ<46><D1B1>+Rf2<66>BY<42><59>KQ<4B>ŚTmDm*TR<54><52><19><>i<EFBFBD> <20><><EFBFBD>E<EFBFBD>$<24><>m<EFBFBD>b̩"<22><><EFBFBD>d<EFBFBD>)2<>h<EFBFBD>!<21>-<14>Ѵj<D1B4>e<EFBFBD>b<EFBFBD>2<EFBFBD>Q1%<11><>4lSI6<49><18>6Ѷ-<2D>i<EFBFBD><69><EFBFBD>kYi*he<68><65><EFBFBD>m<EFBFBD><6D><EFBFBD>BړMX<4D>2<EFBFBD>"4dm$<24><>a<EFBFBD>Ԛ<EFBFBD><D49A><EFBFBD><EFBFBD>DP!Q&$<24>)&Ddb2<11>Kh<4B>-<2D><1F>}<7D><><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD>ʙ<EFBFBD>f<EFBFBD>ș<EFBFBD><C899><EFBFBD>*<2A>k<EFBFBD><17><0F>#q=<3D><><EFBFBD><EFBFBD><EFBFBD> <0B>td!<01>P<EFBFBD>6#%ꊍw<EA8A8D><77>Ƹ<EFBFBD><C6B8>M<EFBFBD><4D><EFBFBD>}<0F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*#*M<>$<24><><EFBFBD><EFBFBD><EFBFBD>v3Z<33><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>-Z<><5A>ɞ<EFBFBD>Ȱ<EFBFBD><C8B0>?<3F><>2C<32><1F><><EFBFBD>{~<7E>ށYa<><61><EFBFBD><EFBFBD><EFBFBD>e<><65>%<25><><EFBFBD><EFBFBD><EFBFBD>Z?7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ?<3F><><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*<2A>{<7B><><EFBFBD><EFBFBD>7<EFBFBD>\<5C><><0C>7<EFBFBD>?<3F><>:_fh@!<07><><EFBFBD>,b<>P<10><04>L<><4C>9<EFBFBD>s,<2C><>cm<63><6D><EFBFBD><EFBFBD>C<EFBFBD>YP<><50><EFBFBD><1E><07><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>昆"*j<05><>3<EFBFBD><33>MK<4D>(<28><>a\<1A><16>#r<><18>j]uD<>#[R'<27>ׯ?<1B><>j<EFBFBD>l>N<>2V<32>3t<33>T<EFBFBD>oY8<59>b<EFBFBD>XJ<58>I"F)<14><><EFBFBD>P<EFBFBD><07>T`"ot<6F><1C><><EFBFBD><EFBFBD>#*<2A>#7<><37><EFBFBD><06>J#*<2A><><EFBFBD><EFBFBD>A<EFBFBD><41>2<_<><5F>0?<3F><>=C<>%cDh<44><68>t\<5C><>דG<D793>X_Ob<4F><62>"<22>(#<23><EFBFBD><7F><}Y<>}_<>/B|<7C><>E5<45>q#/<2F>'<27>ۅ<EFBFBD><EFBFBD>i"<22><><EFBFBD>>*<2A><><EFBFBD>Gy<47>'<27>$<24><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><11><>L&B E<><45>
|
|
|
|
|
#<==
|
|
|
|
|
#-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCgAdFiEECzlystnjLqtCPS4PIr4MYv+/pUgFAmKKPjIACgkQIr4MYv+/\npUjn+g//e7jdxRv8RZO7ZkxklWuhFzgs31owc+2m7DiJovmBbi3/j6OHVFD6KH5b\nwGpqpbsji1Mj5L384ukPXnuMQSH73kiR4BhqZf5fllhLyNxr+fnGDBV1njwWY0Oo\nK81l5LW4kuPDrXBV+2ztnLJcDrYgZsU3J/L6DEhClwrHL2pL2qdpeZRzCKNnEfJP\nRrtkatTUgKnV+C/gWihzwUQlQbJuJA+qEFsJWrydMyi2d+QkoiqGFl6DWcD9yI++\n0JZ997+zGH4CNmCy1A1BMU2dtOHXQxcmKTwlIg4oSi0zfrbtw9MRr1mzUnVLEZkQ\nxQQykZ4fOT7S8kIMSjdeRUb3Q8SW+DcsSQxSWyQOK+W+oc4Z73d3qnJvciVflqbL\nqmqmTQm0FQN3vB18FbLgHswIw0RBI8/EjwHA6FEnh+f8t9LtN/QCVpPFRGktdAFi\n4A6UNggcawARZuwgvd5ygDOkWMVC0XKH/SjDMgFx+N94tsvmPHFtebYcrQvQA3jy\n12+PpGofCEgyD/KX2vcRWp7S80DQRwkHrXk1W2ED8z9T5BbwUeu+xzl2OkDq/q8X\nZQ8Gc89EjQe1YY7Mq/KCyLel/tsQhgUmTc0p6KBnFna3Ino5sxml7EUYhWAy+D/E\nKT5ifI8/RvdL4zhUNK2xF/VS1b/P9veJEC0xLiVBtFHHiZh9uI4=\n=jb/1\n-----END PGP SIGNATURE-----\n
|