Skip to main content



      Home
Home » Archived » BIRT » SWT equation chart example
SWT equation chart example [message #31908] Wed, 27 April 2005 21:45 Go to next message
Eclipse UserFriend
Originally posted by: jaakko_dot_lindvall.pp.inet.fi

This is a multi-part message in MIME format.
--------------010704070705020207000605
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi all,

Nicholas asked me to post this in the chart tuning thread, and I thought
it would be wise to create own thread for it. So here it is: a
standalone SWT program which plots the inputted mathematical functions
using BIRT. Source code and all the required libraries included. The
program uses GPL licensed JEP (Java Math Expression Parser) to parse the
functions, so I guess it's GPL too. I didn't bother including any
license, though, it's just a test.

Fetch your copy from: http://koti.mbnet.fi/verkel/birt-test.zip
Size: ~3,3 MB (required BIRT jars fill most of the zip)

If you're a Windows user, just run the runtest.bat. Linux and Mac users
need use a proper SWT native library and start the program from command
line.

I tried to preload the chart so that when you click the "Show the chart"
button, the dialog is drawn very fast. However, this doesn't work
perfectly. I'll further discuss this in the reply below this post.

I'll include a screenshot this time too. It's pretty similar to the last
one, except the axes display floats, plot fills the client area (thanks
for the helpful devs :) and now a grid is drawn with the blue gradient.
The appearance is just what I wanted.


--------------010704070705020207000605
Content-Type: image/jpeg;
name="screenshot.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screenshot.jpg"

/9j/4AAQSkZJRgABAgEASABIAAD/4R0tRXhpZgAATU0AKgAAAAgABwESAAMA AAABAAEAAAEa
AAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAbAAAA cgEyAAIAAAAU
AAAAjYdpAAQAAAABAAAApAAAANAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhv dG9zaG9wIENT
IFdpbmRvd3MAMjAwNTowNDoyOCAwMjo1MzoyMgAAAAAAA6ABAAMAAAABAAEA AKACAAQAAAAB
AAAB6KADAAQAAAABAAACAAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEA AAEeARsABQAA
AAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABv3AAAA AAAAAEgAAAAB
AAAASAAAAAH/2P/gABBKRklGAAECAQBIAEgAAP/tAAxBZG9iZV9DTQAB/+4A DkFkb2JlAGSA
AAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwR DAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwM DAwREQwMDAwM
DBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAoACZAwEiAAIR AQMRAf/dAAQA
Cv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEA AAAAAAAAAQAC
AwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIG FJGhsUIjJBVS
wWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePz RieUpIW0lcTU
5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYH BwYFNQEAAhED
ITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcm NcLSRJNUoxdk
RVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//a
AAwDAQACEQMRAD8A0ek9JyeoNsdRQ24Vu2u32GuJHtjaHblJuAHUtubjAscC RD3SI0du9/ki
dJowH4YszLrKi+99Vexu4aNZZufDXub/ADm3crQs+r3ob29Ts2AODKwBLg1p sc2qv0/duY1W
xlwRAEhG+GP6F/o+rVhMMhJIJ3P6TR/Z5MxiEgFzSQ5xEsOx4nf+a5OOmuP/ AGkPkC5wJ5Pt
9/8AJWiT0ZtfrM6je9hIaSxk62tdYN26pv8AO117/wDtmz/CVI2JjYOY31Kc 3J27Q8PftaDu
dbX7S/8AP30W7kff5f8Adj/iK4Mnc/4zjfYPcGHF2l0Ruc4CHH02/n/vpOwd jS9+IWNaC4lz
nDRs7vz/AHfQctO0dDofcy7qdtbscltsjjbtc/3Nqd7Guds/479GiPxulxYD n3v9F3p2CBAL
mOt27nsbXtfU397/AIxL3+W/dj/iI4Mvc/4zku6c5sl2JAAJLt7ogAuPu3/y HIXpY/8AoR/n
P/8AJLaNXSmlzbM/IrDAC7eyAJe+jb/N/wClrs3pun4nSOpVl+HmW2bfpN2s DgJc1ro2fRds
RGflusY/4iuDL3P+M4vpY/8AoR/nP/8AJKNn2Ot7WfZy4uIbu3PDZMef5srp /wDm/jf6e37m
f+QUXfVzEeAHZF5aHi0M3ewPH+F9L+a3/wBhEcxyfWIP+Ar283f/AJzz78fD bsDRU5z3AGsW
Weo0OJY2x9W3Zs3N/wBOoZmKynHZa2sBt7XPoeHE7gwBz3bPzdjnel7/APCf 8H+lXR/83MWW
n7Rf7Xb2iQWh2p3emf0f5zvzFW6j0HGx+n5WQy65zqaXva1xBbLWem3Q/wDB j0v+LTDlwSnj
GMRAMgJiUPmuXT0MmOJEZ+4CTXoqW2nX1PMJJJKovUkkkkpSSSSSlJJJJKf/ 0Op+q9vodGy7
gw2Gu5ztgME+2rQK/V1Ou0trd07IY9zRua6iWtO3fsdZ9H+R9H/0YxUPqoxr +mXB26BkuPtc
5hnZX+dU5jlsfZqf+E/7et/9KpuX5vpH/oRTHb6lpt6lU9lt/wCzLheGVy11 Tf0gJs+z1NvJ
2v2bn/8AEfaPT/nPUUj1JtzbxXiXVmlrotvq2MLm+kNjGvdus9lv9T9GrX2a rxs/7eu/9KpH
DqeILbHt7g22uGmurTZtTLSlc1oe6Gt1JkwJP9bT3JnNa4Q5rXA8ggEfipFr yZIMnyTbXeB+
5C1LANAgNAHgAAEobMhoB8QAPyJ9rvA/cltd4H7krUskn2u8D9yW13gfuStS yqdZ/wCRs/8A
8L2f9Srm13gfuVPrLXfsbP0P9Hs/6lPxfzkP70f+kiWx8nhUkoKUFOCFJJQU oKNqUklBSgpK
UklBSSU//9Hq/qj/AMm3f+GHf9RWtpYv1R/5Nu/8MO/6itbSbl+b6R/6EUx2 +pUuPONn9U6n
1S2zrg6e3Gy349ND3Fo9OtrCxzGC6lrW+79z6fqLsCuXw+g9Fz7+p5mfQ+64 9Svpaa7HtJG5
grYGMexn5ys8jkjj92ciY+kREowhmkOKX7mXhiw54mYjGrs7GUof86Dz9Y+s d2PXdT1F5dZW
230XWvY4Bw3e3c79J+5/xrL/APQp7avrRVW+055LKg82EXu0NQtfc1onc/ZX Q5//AIF/Orqj
9U/q4xwccHJY4e8H1ngjbH6SftH5nt96dv1Q+r7Z29Py2yIMW2CRztP6f6Pt Wj/pTl70hKr6
4MX+L/PNb7lLqR9Mkv8AvHlPR+tm3cMxx+jxkExurGT7iDsb+id+9/4H+kTv p+tDA6eoHewN
L2eu7QOLmN959rvof4P9/wD0n6NdT/zQ+r0bf2dlQTJHq2RImD/P/wApL/mf 9Xf/ACuyv+3H
/wDpdL/SnL/uS/8AafH/APBCvuUu/wD45L/1W8kw/WR/qAdQcDWbGt/TPh7q jW1zGWfQbv8A
W3Vep9NQzbvrFhNd6+e8vY8VurZc9xG71S18/wA3s/QO/P8A9Guw/wCZ/wBX f/K7K/7cf/6X
SH1P+rw46dlD/rln/pdOHxXlbF45kdvYxD8feQeSyVoRf+0n/wB48H+2ut/9 zL/893/kkzur
9Ze0sflXPY4Q5rnuIIP5rmudtcu+/wCaH1f/APK/L/7ds/8AS6X/ADQ+r/8A 5X5f/btn/pdS
f6X5H/MZP/C8X/fsf3DmP85H7Z/96+efa8z978Am+2Zn734Beif80Pq//wCV +X/27Z/6XS/5
ofV//wAr8v8A7ds/9Lof6W5D/MZP/C8X/fq+4cx/nI/bP/vXzv7ZmfvfgEvt mZ+9+AXon/ND
6v8A/lfl/wDbtn/pdN/zQ+r/AP5X5f8A27Z/6XS/0tyH+Yyf+F4v+/V9w5j/ ADkftn/3r559
szP3vwCsdPutvzK68lzvQO42bIa6Gtc/2uj95q7ez6s/Vll/2f7FkOt0hrch wJJaLNjGPyWW
PcxjvftYmZ9Xfq61ourwcsNBLRaMgxJPpFu/7Vt+l+i/6CZl+K8lLHOMMU4T lGUYT4MXonKP
pn/Ofor8XJZY5ISnKM4CQMo8UvVH9KPyvNdZw/2bkYzaLnPL76mvO7c0se+y myp//DM9P9Mz
/tPb+j/S/wA4pLS690vo9XShlYVV1VtHUMfHeLbHOhzbGNf7BZZU/wBlns/7 4s1Zpyy9oS9y
XHwmPucI4v52M+H5v3HS/U+7/ND2/wDN/wBb2/m/xn//0ur+qP8Aybd/4Yd/ 1Fa2lg/VbJxq
en3Nuurqcb3ENe9rSRsrEw8hbH27A/7lUf8AbrP/ACSWSEjKxE/LHp/UioEV v1KYrJ6CwP8A
2lMw3quS6B3gs9v9pX/t2B/3Ko/7dZ/5JA+qbmvZ1V7CHMd1LJLXAyCJZwQn Y4SGLJYI+Tce
K2RHFD6/kkr6P0ylhZTjura5pa4B7jP857nOfvdua2+5v9v/AIKn09L7U/8A c/L/AHILH9W9
cBzK3VtbbJ+i1x3H7N7t1tjP0ez1P0b/APC/8GgftTqdjK7cbp4srNddjy+5 rC/e0PdXht2u
9Wyvdt/W3YNT7P8ACf4SpsccpGhIf4RjD8ZriQG79qf+5+X+5L7U/wDc/L/c mxs6nKqZdQd1
dgO0mQQQRW9ljHDfXbXZ+jtqf+kqsZ6diJ63GnMd/Hb/AOTSMJAkHQjQhHFF h9qf+5+X+5L7
U/8Ac/L/AHInq+X4/D/ySZt0gGOY7+O3/wAkhwy7q44sPtT/ANz8v9yX2p/7 n5f7lMXT2/H+
r/5JL1tQIGvn/V/8klwy7q44sPtT/wBz8v8Acl9qf+5+X+5PZlMqrdbYWsrY Nz3ucA1rRq97
3O9rWMb7nLMt6/lVVDPfgkdL+k+42fp21QHfbH4Pp+3H/wAJYz7R9trp/wC0 nqfoU+GHJP5f
L9GOv7seL5pf1VccXS+1P/c/L/cl9qf+5+X+5TbcHAEQQYIIMjWD/FIXT248 0zhl3VxRcHqn
TMnNyn2Nqx7ant0F7rmuBc1tVoHoM2+5lbfduVQ9BySWk4nT/aAAN2TEN+iH DZ7/APv66n1t
YjtPKcWSYj8UuAq4w8X9YcS/E+ruzILDZb1PHuPp7i0B1tTWs3Whtj/5tYS7 D6//APItP/h3
F/8APrFx6kI/VAf3vzijr9f+5f/TYtaTJaCfEgJtlf7rfuCkklZUx2V/ut+4 LsP8X4A6VlAa
D7bkaf2guRXXfUD/AJKyv/D2R/1QUkf5uf8AgrZfNHzP5OvQzrAsZ6z6yxrb d/B3Oc4Oxtu1
jHbKm+3/ANLfzqXT9/7OwpifQqnmPosT49XVxY31rWFjW2hxidznODsd+1rK vbUz2bNzP+u/
zybA3fs/CmJ9CqdP5LPNMCp7Nahv2TrDqWQKuoMOQBxtvqNFeTt/e+002UW/ 8ZjX2/4ZX/dA
45b+WtUOsF1WKzNaJf09wyhA12MDWZbW/vb8G3KY3+WrxmBBBEtggaHWvXlS z9UYz7jgl/ex
/wDrv22O2Q3acf67EzN0N44b+RiQ3acfd/U80zN0N44b28meajVa7d2vHI/J WkN25vHH8a0z
d2vHI7eTPNIbtzeOPDzZ5pKto9SH2q7F6Y4BzLnC/JB1HoUmt3pmf+5OU7Gp 2O/nMf7UtCXx
Mief+pWfgA3ZOXnaEPtbjUmP8HjO9J/+dnPzf7HpK/7o7ceH9XzUmTThh+6N f78vn/8AVf8A
1NVtDpIOO6/pg0rw3NdjAzpj3DfRX/Ux7WZGJV/wOPUr7d2vHP8A5FUMoOoz 8HM0DLJw7zEC
LQ2zFe/97Zl1fZ6//D1ivN3a8c+H9XzSy6kT/fFn+/8ALP8Axv5z/DVa/u3D jg/lCk3dvE+K
h7t3bg9vMeamzdvExz4KNQOocL6//wDItP8A4dxf/PrFx67D6/8A/ItP/h3F /wDPrFx6cf5s
f4X/AHLJ1+v7H//USSSSSlLrvqB/yVlf+Hsj/qguRXXfUD/krK/8PZH/AFQU kf5uf+Ctl80f
M/k7GPidTrsa6zLD2sbcC0t3b3WOrfRa7VjmfZ9ljPR/4f6dfpMUcDd+z8LU T6FU6H91nmpY
+BlVvb6mU57WC2He7eTYWua5299lX6GHfTrs/wCD9Cr9CoYAP7Pwvcf5iqTp +6zyTBujJ8qa
JcA6C0iHCOQfT3DlUujlzen14znA2YTziPkGT6L2VVPOv+Fx/Qu/64roB3N9 x48v+D8lRx5q
6rmUl2mQ3HymcakRh3/5n2bG/wC3a1NHWEx2qf8Aing/9SMVt8btNR9x/kea TN0N1HA7HwZ5
phOnuP4fyfJJkw33HgeHgzyUarU3drqOR2PgzzQsvJbh41uXYZZj1PtcANYY Gvge7+SitnX3
HkeHgzyVHqYFpw8Iun7VezeNP5uiM62RH0H/AGavHf8A+GE/HEGYB+W7l/cj 6p/81QKbp+LZ
idOxcV5G+mupj4BPvHp+q7d/Kt3uVn3RyOPA/wAnzTHcQCXHlvh4s8koMfSP Hl/J8k2RMiZH
eRs/VFtfqOLbldPuoqIF5YHY5IIi5my7Fdz+ZkV1ImJkty8WrLqP6PIYy1kg zD2ssHf+UiNk
bTu8PDwb5Kj0dvpY92Hu1w8i2rt9F7hmY/b/ALi5VKeNcZH7shL/AAZ+mZ/5 uJNt73buRwex
8R5qbJ3jUc+B/vUNd30jwfDxHkp1zvHunXjRRqB1Dh/X/wD5Fp/8O4v/AJ9Y uPXYfX//AJFp
/wDDuL/59YuPRP8ANj/C/wC5Zuv1/Y//1UkkkkpS636hAnpGWAS0nNyAHCJG o1G7c1ckut+o
InpOWJInNyBI5HuCkj/Nz/wVsvmj5n8nYo6bkV2Nc7KeQwWhpE7ibTv3u9R1 lbnV/wAqv/tu
v9Eo4Id+z8P3H+Yq10/dZ/JUsfpbaXtc29zm1i0M0buBtc11jjYP3XM/7c/S Xepao4Lf8n4e
p0x6tf7LEyO63L8v1SgO3N1PHl/wf8lUs6aczAy5O31Di2HTRuQGGs8f9zMf FZ/1xXQPc3U8
f+k1V6njWZHT76qSfX2h+Of+GrNd2N/4PXWpsVCYvQH0k9oz9Ej/AM5hBbYD tPcfw/k/yUzA
7a3U8Dw8GfyVDGvrysenKqJ9PIY21n9V4ZY3/qlNg9rdTwPyNTCCDR0I6KtT Q7XU8jw8GfyV
SYDf1t759uFjtrB0/nMlzbrhx+ZRi4v/AG8rrWkkiTyPyMVHpH6Rl2WCYzMi 21h8a2urxcd/
9V+PjVPZ/wAGnw0jOXhwD+9P/wBdxyKBbxDoGp5b4eLP5KeHRyePLy/kpiNB qeW/lYlGnJ4/
uTEWu0OgangeHgP5KosHo9Ze0EgZtAf2+njObXY46fSsozMf/wBhldaNBqeB +QKj1MCpmPmk
n9UyWOef+DtH2LI3H9yuvJ+0O/4hPxayMf3wY/4X+T/8c4Egt6HbuTwfDxH8 lTrB9Qanny/u
UC2HRJ4P5Qp1j9I3U8qPooHUeYcT6/8A/ItP/h3F/wDPrFx67D6//wDItP8A 4dxf/PrFx6J/
mx/hf9y2Ov1/Y//WSSSSSlLrfqE0O6RltMwc3IBgkHUjhzfc1ckut+oTQ7pG W0zBzcgGCQdS
OHN9zVJH+bn/AIK2XzR8z+Tr4/ScGu1j2PcXMbfXXDtpDbnVuyR+i2e5tlFX 6X+er/0ijgtH
2DDGumPV3P7rE+NgdMbax1N252y6uoNsAO1zm/aQx1W2z9Ha3979G/8A4RRw mj7BhjXTHqHJ
/dZ5psd1mb5fqlDRubzx4n/g08AQddC3ufFibb7m88eJ/keaRboOeW9z4s80 5r20+kNFdFuJ
rOHfbUNTGxzm5eNH/oLk0tV1jRtbzwO58Gqi8fZ+rVP1FefX6LtT/PUB19Hf /C4rsrf/AOFq
VdY32t54Hc+DfNSZdZcX744/8I/P/wCOcaSWt1G6zHwb7KP58xVjyTHrWmvH xp1/09taNj41
WNVTjVT6dFbaman6LBXW3/otVW5pv6pjY+uzGBzLdSfcR9lw2H+s52Vf/Xxa 1d2+4c8eJ8We
aUtIRj39Z/6MAf8Apf8AVFXoFy0QOeW9z4tS2iO/HifJMW6Dnlvc+LfNPt07 8eJ8vNMRamtE
Dngdz4BBy8RuZh5OI5xaMit9RdJ03t2bv7O5Ga3Qc8DufAeaZreeefE+XmkC QQRoQbCrQYGT
9sxKMpwLLLa5tZJ9tgOy+r/rV7bK1bqA9RvPPiVnYg9DPy8Mghrz9rx9TG24 7cpg/lV5jH32
f+Halo1CLG88+JKdliBI0KifVH+7L1RC4fMPMOL9f/8AkWn/AMO4v/n1i49d h9f/APkWn/w7
i/8An1i49MP82P8AC/7ls9fr+x//10kkkkpS636gtDuk5bXCQc3IBHkXBcku s+obWP6PmMeA
5js3JDmuEggkSHAqSP8ANz/wVsvmj5n8nXox+j+swVOa95ba2pu8uG0u2ZLW 6/vs2/8AntRw
mtGBhiOMeoD/ADWIzK+l22hzWte60WsbIJYYcRksg/ot2/fu/wCvf8IgYQZ9 gw4Aj7PVGg42
sTYbsef5B5pQ1u5unb/yCRa2Bp3b+ViaGbm6Djw/qJEMgaDlvbzYnta0HUMR 2VhvqpIryBts
xrHfRbdWWW473x/g/VY31f8AgfUYh1dW6c7CdmWuGO2iBk1P/nKbBta7Hsqb +kddv9lLa2/r
X6L7N6vrVK4AzwH3f1UIYuI+2vJfRU6+trQy4saXtAH5lpG9v0lJGUeHhmCQ DxDh3/rR/wAL
/mJEhWqHptFkW5eSz08jLcHOqOpqraGtxcU/y6qz6l+32fbL8nYre1u4adv4 sTNDNdBz4eTE
oZuGg48PNibImRJ/DsP0Y/4KDLVctbA07t/K1PtbHHb+5RIZA0HLe3m1PDI4 HHh8E1Vrta2B
p2H5Ama1uunf+5M0MgaDgdvIJNDNdBz4fBJVtPqddlZpzqK3W24Zc59TBL7K HjZlUVCfdZpT
lVV/4a7Eqo/wqtYed0+/7PbRfVYzJJ+zua4e+A5zhW2dznMax+9n+D/PUoZu 4HHh5hLGxcSr
LN9VFVd9pPqWsY1r3Tqd9jRvf/aTzKJhUgbiDwkdj+jL/D9S6MhcfMOX9f8A /kWn/wAO4v8A
59YuPXYfX/8A5Fp/8O4v/n1i49Rn+bH+F/3Lb6/X9j//0EkkkkpS636hNa/p GYx4DmuzcgOa
dQQSNCuSWl0D6y29Exr8U9PtyfUybbm2Mspa0tsMt9ttrLP+ipYC4TFgE8Pz SjD/AKfCtlvE
vduxMRrnXOrBO17XDVw22EPub6Wrf0zm7rPZ+kWfjZX2rJFVd9+OLA81UtZQ BW2ojHdW6W3v
3Osa+z+RvZWsf/xwLP8Ayov/AO3sf/0skPr+8EkdHuBOpPq4+v8A4Mm+3LvD /wANw/8AqxN+
B/xZOrfmejluoOZlfohWHj0qQC69766jW+ylm70vs1vqNaz3+rV6fvR8w2Y7 q6znZDXWOHu2
UEQ0Pue33Us+nXRZX7N/p761h/8AP58h37HukaA+rjzr/wBeSP1+e4Qej3Ee Btx//SyXty7w
/wDDcP8A6sVY7H/Fk7L8kM6e3Pdl5Ire0PDduPOv5u/0fR/4v9L+l/wSniGy 6u2c3ILsZ5ps
cGUe57Q3c9jGU2+1276Kw/8AxwLP/Ki//t7H/wDSyTfr89rQ1vR7g0CABbjg AD/ryXty7w/8
Nw/+rFWOx/xZOzi22X5AoOXkh1jDc1rmY42tBbSa37an7nepufv+gonJP2oU /bcjS04xbtx5
Ly1trbf5rd6bW727dnqf4X+a/SLIH1+eCSOj3AuMk+rj6mI1/TeSX/P987v2 PdPE+rjzH/by
Xty7w/8ADcP/AKsVY7H/ABZO3nvtxB7szIEMdcXbcct21uqFlXvqr2vt9Xax 30FK4uqoqtOb
eBkOrrrkY4O60hrPa+ln0d30GrCP1+eYno9xgyJtx+f+3kj9fnuBa7o9xB0I NuPBH/byXty7
w/8ADcP/AKsVY7H/ABZO7hmzJxPtDc2+G7muJbjiSwljnfzLmN3bf3/Z+eh4 Fz8x7mszcjVj
LhLMcQ20S2t22p/vZH+vprG/8cCz/wAqL/8At7H/APSyQ+v7xx0e4d9Lcfk/ 9eS9uXeH/huH
/wBWKsdj/iydYZe7NOMMzKltrsYg10CXiuvJ9RpdSHOq2Wen7a//AAKv1ETM yXYNoFmTe4Mr
N53No2OaxzWPpnZQ/wBR2/8Af/R/nrF/5/Pnd+x7pOk+rjzH/byR+v7zE9Hu Maj9Lj8/9vJe
3LvD/wANw/8AqxVjsf8AFk2fr44P6HjvEgOzMQidDraxcitP6wfWa3rWHVhj p1uPtyKLja+2
lzQ2qxtr/bXa+z6LfzWrMTzE8IjcL1P85jreP6XHwI63R37Hs//Z/+0h6FBo b3Rvc2hvcCAz
LjAAOEJJTQQlAAAAAAAQAAAAAAAAAAAAAAAAAAAAADhCSU0D7QAAAAAAEABI AAAAAQACAEgA
AAABAAI4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAA AHg4QklNBBkA
AAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAA OEJJTScQAAAA
AAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAv ZmYAAQChmZoA
BgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThC SU0D+AAAAAAA
cAAA/////////////////////////////wPoAAAAAP////////////////// //////////8D
6AAAAAD/////////////////////////////A+gAAAAA//////////////// ////////////
/wPoAAA4QklNBAAAAAAAAAIAAThCSU0EAgAAAAAABAAAAAA4QklNBAgAAAAA ABAAAAABAAAC
QAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSQAAAAYAAAAA AAAAAAAAAgAA
AAHoAAAACgBVAG4AdABpAHQAbABlAGQALQAxAAAAAQAAAAAAAAAAAAAAAAAA AAAAAAABAAAA
AAAAAAAAAAHoAAACAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAAAABAAAAAB
AAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAA BAAAAABUb3Ag
bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAACAAAAAABS Z2h0bG9uZwAA
AegAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAA AAdzbGljZUlE
bG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAM RVNsaWNlT3Jp
Z2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlw ZQAAAABJbWcg
AAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcA AAAAAAAAAExl
ZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAgAAAAAAUmdodGxvbmcAAAHoAAAA A3VybFRFWFQA
AAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAG YWx0VGFnVEVY
VAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVY VAAAAAEAAAAA
AAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0 AAAACXZlcnRB
bGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdD b2xvclR5cGVl
bnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0 bG9uZwAAAAAA
AAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAA AAAAC3JpZ2h0
T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQU AAAAAAAEAAAA
AjhCSU0EDAAAAAAcEwAAAAEAAACZAAAAoAAAAcwAAR+AAAAb9wAYAAH/2P/g ABBKRklGAAEC
AQBIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgI CAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAEN
CwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwM DAwMDAwMDAwM
DAwMDAwMDAwM/8AAEQgAoACZAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEB AQEBAAAAAAAA
AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAAB BAEDAgQCBQcG
CAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT 8OHxY3M1FqKy
gyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaG lqa2xtbm9jdH
V2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUy gZEUobFCI8FS
0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N1 4/NGlKSFtJXE
1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A 0ek9JyeoNsdR
Q24Vu2u32GuJHtjaHblJuAHUtubjAscCRD3SI0du9/kidJowH4YszLrKi+99 Vexu4aNZZufD
Xub/ADm3crQs+r3ob29Ts2AODKwBLg1psc2qv0/duY1WxlwRAEhG+GP6F/o+ rVhMMhJIJ3P6
TR/Z5MxiEgFzSQ5xEsOx4nf+a5OOmuP/AGkPkC5wJ5Pt9/8AJWiT0ZtfrM6j e9hIaSxk62td
YN26pv8AO117/wDtmz/CVI2JjYOY31Kc3J27Q8PftaDudbX7S/8AP30W7kff 5f8Adj/iK4Mn
c/4zjfYPcGHF2l0Ruc4CHH02/n/vpOwdjS9+IWNaC4lznDRs7vz/AHfQctO0 dDofcy7qdtbs
cltsjjbtc/3Nqd7Guds/479GiPxulxYDn3v9F3p2CBALmOt27nsbXtfU397/ AIxL3+W/dj/i
I4Mvc/4zku6c5sl2JAAJLt7ogAuPu3/yHIXpY/8AoR/nP/8AJLaNXSmlzbM/ IrDAC7eyAJe+
jb/N/wClrs3pun4nSOpVl+HmW2bfpN2sDgJc1ro2fRdsRGflusY/4iuDL3P+ M4vpY/8AoR/n
P/8AJKNn2Ot7WfZy4uIbu3PDZMef5srp/wDm/jf6e37mf+QUXfVzEeAHZF5a Hi0M3ewPH+F9
L+a3/wBhEcxyfWIP+Ar283f/AJzz78fDbsDRU5z3AGsWWeo0OJY2x9W3Zs3N /wBOoZmKynHZ
a2sBt7XPoeHE7gwBz3bPzdjnel7/APCf8H+lXR/83MWWn7Rf7Xb2iQWh2p3e mf0f5zvzFW6j
0HGx+n5WQy65zqaXva1xBbLWem3Q/wDBj0v+LTDlwSnjGMRAMgJiUPmuXT0M mOJEZ+4CTXoq
W2nX1PMJJJKovUkkkkpSSSSSlJJJJKf/0Op+q9vodGy7gw2Gu5ztgME+2rQK /V1Ou0trd07I
Y9zRua6iWtO3fsdZ9H+R9H/0YxUPqoxr+mXB26BkuPtc5hnZX+dU5jlsfZqf +E/7et/9KpuX
5vpH/oRTHb6lpt6lU9lt/wCzLheGVy11Tf0gJs+z1NvJ2v2bn/8AEfaPT/nP UUj1JtzbxXiX
Vmlrotvq2MLm+kNjGvdus9lv9T9GrX2arxs/7eu/9KpHDqeILbHt7g22uGmu rTZtTLSlc1oe
6Gt1JkwJP9bT3JnNa4Q5rXA8ggEfipFryZIMnyTbXeB+5C1LANAgNAHgAAEo bMhoB8QAPyJ9
rvA/cltd4H7krUskn2u8D9yW13gfuStSyqdZ/wCRs/8A8L2f9Srm13gfuVPr LXfsbP0P9Hs/
6lPxfzkP70f+kiWx8nhUkoKUFOCFJJQUoKNqUklBSgpKUklBSSU//9Hq/qj/ AMm3f+GHf9RW
tpYv1R/5Nu/8MO/6itbSbl+b6R/6EUx2+pUuPONn9U6n1S2zrg6e3Gy349ND 3Fo9OtrCxzGC
6lrW+79z6fqLsCuXw+g9Fz7+p5mfQ+649Svpaa7HtJG5grYGMexn5ys8jkjj 92ciY+kREowh
mkOKX7mXhiw54mYjGrs7GUof86Dz9Y+sd2PXdT1F5dZW230XWvY4Bw3e3c79 J+5/xrL/APQp
7avrRVW+055LKg82EXu0NQtfc1onc/ZXQ5//AIF/Orqj9U/q4xwccHJY4e8H 1ngjbH6SftH5
nt96dv1Q+r7Z29Py2yIMW2CRztP6f6PtWj/pTl70hKr64MX+L/PNb7lLqR9M kv8AvHlPR+tm
3cMxx+jxkExurGT7iDsb+id+9/4H+kTvp+tDA6eoHewNL2eu7QOLmN959rvo f4P9/wD0n6Nd
T/zQ+r0bf2dlQTJHq2RImD/P/wApL/mf9Xf/ACuyv+3H/wDpdL/SnL/uS/8A afH/APBCvuUu
/wD45L/1W8kw/WR/qAdQcDWbGt/TPh7qjW1zGWfQbv8AW3Vep9NQzbvrFhNd 6+e8vY8VurZc
9xG71S18/wA3s/QO/P8A9Guw/wCZ/wBXf/K7K/7cf/6XSH1P+rw46dlD/rln /pdOHxXlbF45
kdvYxD8feQeSyVoRf+0n/wB48H+2ut/9zL/893/kkzur9Ze0sflXPY4Q5rnu IIP5rmudtcu+
/wCaH1f/APK/L/7ds/8AS6X/ADQ+r/8A5X5f/btn/pdSf6X5H/MZP/C8X/fs f3DmP85H7Z/9
6+efa8z978Am+2Zn734Beif80Pq//wCV+X/27Z/6XS/5ofV//wAr8v8A7ds/ 9Lof6W5D/MZP
/C8X/fq+4cx/nI/bP/vXzv7ZmfvfgEvtmZ+9+AXon/ND6v8A/lfl/wDbtn/p dN/zQ+r/AP5X
5f8A27Z/6XS/0tyH+Yyf+F4v+/V9w5j/ADkftn/3r559szP3vwCsdPutvzK6 8lzvQO42bIa6
Gtc/2uj95q7ez6s/Vll/2f7FkOt0hrchwJJaLNjGPyWWPcxjvftYmZ9Xfq61 ourwcsNBLRaM
gxJPpFu/7Vt+l+i/6CZl+K8lLHOMMU4TlGUYT4MXonKPpn/Ofor8XJZY5ISn KM4CQMo8UvVH
9KPyvNdZw/2bkYzaLnPL76mvO7c0se+ymyp//DM9P9Mz/tPb+j/S/wA4pLS6 90vo9XShlYVV
1VtHUMfHeLbHOhzbGNf7BZZU/wBlns/74s1Zpyy9oS9yXHwmPucI4v52M+H5 v3HS/U+7/ND2
/wDN/wBb2/m/xn//0ur+qP8Aybd/4Yd/1Fa2lg/VbJxqen3Nuurqcb3ENe9r SRsrEw8hbH27
A/7lUf8AbrP/ACSWSEjKxE/LHp/UioEVv1KYrJ6CwP8A2lMw3quS6B3gs9v9 pX/t2B/3Ko/7
dZ/5JA+qbmvZ1V7CHMd1LJLXAyCJZwQnY4SGLJYI+TceK2RHFD6/kkr6P0yl hZTjura5pa4B
7jP857nOfvdua2+5v9v/AIKn09L7U/8Ac/L/AHILH9W9cBzK3VtbbJ+i1x3H 7N7t1tjP0ez1
P0b/APC/8GgftTqdjK7cbp4srNddjy+5rC/e0PdXht2u9Wyvdt/W3YNT7P8A Cf4SpsccpGhI
f4RjD8ZriQG79qf+5+X+5L7U/wDc/L/cmxs6nKqZdQd1dgO0mQQQRW9ljHDf XbXZ+jtqf+kq
sZ6diJ63GnMd/Hb/AOTSMJAkHQjQhHFFh9qf+5+X+5L7U/8Ac/L/AHInq+X4 /D/ySZt0gGOY
7+O3/wAkhwy7q44sPtT/ANz8v9yX2p/7n5f7lMXT2/H+r/5JL1tQIGvn/V/8 klwy7q44sPtT
/wBz8v8Acl9qf+5+X+5PZlMqrdbYWsrYNz3ucA1rRq973O9rWMb7nLMt6/lV VDPfgkdL+k+4
2fp21QHfbH4Pp+3H/wAJYz7R9trp/wC0nqfoU+GHJP5fL9GOv7seL5pf1Vcc XS+1P/c/L/cl
9qf+5+X+5TbcHAEQQYIIMjWD/FIXT2480zhl3VxRcHqnTMnNyn2Nqx7ant0F 7rmuBc1tVoHo
M2+5lbfduVQ9BySWk4nT/aAAN2TEN+iHDZ7/APv66n1tYjtPKcWSYj8UuAq4 w8X9YcS/E+ru
zILDZb1PHuPp7i0B1tTWs3Whtj/5tYS7D6//APItP/h3F/8APrFx6kI/VAf3 vzijr9f+5f/T
YtaTJaCfEgJtlf7rfuCkklZUx2V/ut+4LsP8X4A6VlAaD7bkaf2guRXXfUD/ AJKyv/D2R/1Q
Ukf5uf8AgrZfNHzP5OvQzrAsZ6z6yxrbd/B3Oc4Oxtu1jHbKm+3/ANLfzqXT 9/7OwpifQqnm
PosT49XVxY31rWFjW2hxidznODsd+1rKvbUz2bNzP+u/zybA3fs/CmJ9CqdP 5LPNMCp7Nahv
2TrDqWQKuoMOQBxtvqNFeTt/e+002UW/8ZjX2/4ZX/dA45b+WtUOsF1WKzNa Jf09wyhA12MD
WZbW/vb8G3KY3+WrxmBBBEtggaHWvXlSz9UYz7jgl/ex/wDrv22O2Q3acf67 EzN0N44b+RiQ
3acfd/U80zN0N44b28meajVa7d2vHI/JWkN25vHH8a0zd2vHI7eTPNIbtzeO PDzZ5pKto9SH
2q7F6Y4BzLnC/JB1HoUmt3pmf+5OU7Gp2O/nMf7UtCXxMief+pWfgA3ZOXna EPtbjUmP8HjO
9J/+dnPzf7HpK/7o7ceH9XzUmTThh+6Nf78vn/8AVf8A1NVtDpIOO6/pg0rw 3NdjAzpj3DfR
X/Ux7WZGJV/wOPUr7d2vHP8A5FUMoOoz8HM0DLJw7zECLQ2zFe/97Zl1fZ6/ /D1ivN3a8c+H
9XzSy6kT/fFn+/8ALP8Axv5z/DVa/u3Djg/lCk3dvE+Kh7t3bg9vMeamzdvE xz4KNQOocL6/
/wDItP8A4dxf/PrFx67D6/8A/ItP/h3F/wDPrFx6cf5sf4X/AHLJ1+v7H//U SSSSSlLrvqB/
yVlf+Hsj/qguRXXfUD/krK/8PZH/AFQUkf5uf+Ctl80fM/k7GPidTrsa6zLD 2sbcC0t3b3WO
rfRa7VjmfZ9ljPR/4f6dfpMUcDd+z8LUT6FU6H91nmpY+BlVvb6mU57WC2He 7eTYWua5299l
X6GHfTrs/wCD9Cr9CoYAP7Pwvcf5iqTp+6zyTBujJ8qaJcA6C0iHCOQfT3Dl Uujlzen14znA
2YTziPkGT6L2VVPOv+Fx/Qu/64roB3N9x48v+D8lRx5q6rmUl2mQ3HymcakR h3/5n2bG/wC3
a1NHWEx2qf8Aing/9SMVt8btNR9x/keaTN0N1HA7HwZ5phOnuP4fyfJJkw33 HgeHgzyUarU3
drqOR2PgzzQsvJbh41uXYZZj1PtcANYYGvge7+SitnX3HkeHgzyVHqYFpw8I un7VezeNP5ui
M62RH0H/AGavHf8A+GE/HEGYB+W7l/cj6p/81QKbp+LZidOxcV5G+mupj4BP vHp+q7d/Kt3u
Vn3RyOPA/wAnzTHcQCXHlvh4s8koMfSPHl/J8k2RMiZHeRs/VFtfqOLbldPu oqIF5YHY5IIi
5my7Fdz+ZkV1ImJkty8WrLqP6PIYy1kgzD2ssHf+UiNkbTu8PDwb5Kj0dvpY 92Hu1w8i2rt9
F7hmY/b/ALi5VKeNcZH7shL/AAZ+mZ/5uJNt73buRwex8R5qbJ3jUc+B/vUN d30jwfDxHkp1
zvHunXjRRqB1Dh/X/wD5Fp/8O4v/AJ9YuPXYfX//AJFp/wDDuL/59YuPRP8A Nj/C/wC5Zuv1
/Y//1UkkkkpS636hAnpGWAS0nNyAHCJGo1G7c1ckut+oInpOWJInNyBI5HuC kj/Nz/wVsvmj
5n8nYo6bkV2Nc7KeQwWhpE7ibTv3u9R1lbnV/wAqv/tuv9Eo4Id+z8P3H+Yq 10/dZ/JUsfpb
aXtc29zm1i0M0buBtc11jjYP3XM/7c/SXepao4Lf8n4ep0x6tf7LEyO63L8v 1SgO3N1PHl/w
f8lUs6aczAy5O31Di2HTRuQGGs8f9zMfFZ/1xXQPc3U8f+k1V6njWZHT76qS fX2h+Of+GrNd
2N/4PXWpsVCYvQH0k9oz9Ej/AM5hBbYDtPcfw/k/yUzA7a3U8Dw8GfyVDGvr ysenKqJ9PIY2
1n9V4ZY3/qlNg9rdTwPyNTCCDR0I6KtTQ7XU8jw8GfyVSYDf1t759uFjtrB0 /nMlzbrhx+ZR
i4v/AG8rrWkkiTyPyMVHpH6Rl2WCYzMi21h8a2urxcd/9V+PjVPZ/wAGnw0j OXhwD+9P/wBd
xyKBbxDoGp5b4eLP5KeHRyePLy/kpiNBqeW/lYlGnJ4/uTEWu0OgangeHgP5 KosHo9Ze0EgZ
tAf2+njObXY46fSsozMf/wBhldaNBqeB+QKj1MCpmPmkn9UyWOef+DtH2LI3 H9yuvJ+0O/4h
PxayMf3wY/4X+T/8c4Egt6HbuTwfDxH8lTrB9Qanny/uUC2HRJ4P5Qp1j9I3 U8qPooHUeYcT
6/8A/ItP/h3F/wDPrFx67D6//wDItP8A4dxf/PrFx6J/mx/hf9y2Ov1/Y//W SSSSSlLrfqE0
O6RltMwc3IBgkHUjhzfc1ckut+oTQ7pGW0zBzcgGCQdSOHN9zVJH+bn/AIK2 XzR8z+Tr4/Sc
Gu1j2PcXMbfXXDtpDbnVuyR+i2e5tlFX6X+er/0ijgtH2DDGumPV3P7rE+Ng dMbax1N252y6
uoNsAO1zm/aQx1W2z9Ha3979G/8A4RRwmj7BhjXTHqHJ/dZ5psd1mb5fqlDR ubzx4n/g08AQ
ddC3ufFibb7m88eJ/keaRboOeW9z4s805r20+kNFdFuJrOHfbUNTGxzm5eNH /oLk0tV1jRtb
zwO58Gqi8fZ+rVP1FefX6LtT/PUB19Hf/C4rsrf/AOFqVdY32t54Hc+DfNSZ dZcX744/8I/P
/wCOcaSWt1G6zHwb7KP58xVjyTHrWmvHxp1/09taNj41WNVTjVT6dFbaman6 LBXW3/otVW5p
v6pjY+uzGBzLdSfcR9lw2H+s52Vf/Xxa1d2+4c8eJ8WeaUtIRj39Z/6MAf8A pf8AVFXoFy0Q
OeW9z4tS2iO/HifJMW6Dnlvc+LfNPt078eJ8vNMRamtEDngdz4BBy8RuZh5O I5xaMit9RdJ0
3t2bv7O5Ga3Qc8DufAeaZreeefE+XmkCQQRoQbCrQYGT9sxKMpwLLLa5tZJ9 tgOy+r/rV7bK
1bqA9RvPPiVnYg9DPy8Mghrz9rx9TG247cpg/lV5jH32f+Halo1CLG88+JKd liBI0KifVH+7
L1RC4fMPMOL9f/8AkWn/AMO4v/n1i49dh9f/APkWn/w7i/8An1i49MP82P8A C/7ls9fr+x//
10kkkkpS636gtDuk5bXCQc3IBHkXBckus+obWP6PmMeA5js3JDmuEggkSHAq SP8ANz/wVsvm
j5n8nXox+j+swVOa95ba2pu8uG0u2ZLW6/vs2/8AntRwmtGBhiOMeoD/ADWI zK+l22hzWte6
0WsbIJYYcRksg/ot2/fu/wCvf8IgYQZ9gw4Aj7PVGg42sTYbsef5B5pQ1u5u nb/yCRa2Bp3b
+ViaGbm6Djw/qJEMgaDlvbzYnta0HUMR2VhvqpIryBtsxrHfRbdWWW473x/g /VY31f8AgfUY
h1dW6c7CdmWuGO2iBk1P/nKbBta7Hsqb+kddv9lLa2/rX6L7N6vrVK4AzwH3 f1UIYuI+2vJf
RU6+trQy4saXtAH5lpG9v0lJGUeHhmCQDxDh3/rR/wAL/mJEhWqHptFkW5eS z08jLcHOqOpq
raGtxcU/y6qz6l+32fbL8nYre1u4adv4sTNDNdBz4eTEoZuGg48PNibImRJ/ DsP0Y/4KDLVc
tbA07t/K1PtbHHb+5RIZA0HLe3m1PDI4HHh8E1Vrta2Bp2H5Ama1uunf+5M0 MgaDgdvIJNDN
dBz4fBJVtPqddlZpzqK3W24Zc59TBL7KHjZlUVCfdZpTlVV/4a7Eqo/wqtYe d0+/7PbRfVYz
JJ+zua4e+A5zhW2dznMax+9n+D/PUoZu4HHh5hLGxcSrLN9VFVd9pPqWsY1r 3Tqd9jRvf/aT
zKJhUgbiDwkdj+jL/D9S6MhcfMOX9f8A/kWn/wAO4v8A59YuPXYfX/8A5Fp/ 8O4v/n1i49Rn
+bH+F/3Lb6/X9j//0EkkkkpS636hNa/pGYx4DmuzcgOadQQSNCuSWl0D6y29 Exr8U9PtyfUy
bbm2Mspa0tsMt9ttrLP+ipYC4TFgE8PzSjD/AKfCtlvEvduxMRrnXOrBO17X DVw22EPub6Wr
f0zm7rPZ+kWfjZX2rJFVd9+OLA81UtZQBW2ojHdW6W3v3Osa+z+RvZWsf/xw LP8Ayov/AO3s
f/0skPr+8EkdHuBOpPq4+v8A4Mm+3LvD/wANw/8AqxN+B/xZOrfmejluoOZl fohWHj0qQC69
766jW+ylm70vs1vqNaz3+rV6fvR8w2Y7q6znZDXWOHu2UEQ0Pue33Us+nXRZ X7N/p761h/8A
P58h37HukaA+rjzr/wBeSP1+e4Qej3EeBtx//SyXty7w/wDDcP8A6sVY7H/F k7L8kM6e3Pdl
5Ire0PDduPOv5u/0fR/4v9L+l/wSniGy6u2c3ILsZ5pscGUe57Q3c9jGU2+1 276Kw/8AxwLP
/Ki//t7H/wDSyTfr89rQ1vR7g0CABbjgAD/ryXty7w/8Nw/+rFWOx/xZOzi2 2X5AoOXkh1jD
c1rmY42tBbSa37an7nepufv+gonJP2oU/bcjS04xbtx5Ly1trbf5rd6bW727 dnqf4X+a/SLI
H1+eCSOj3AuMk+rj6mI1/TeSX/P987v2PdPE+rjzH/byXty7w/8ADcP/AKsV Y7H/ABZO3nvt
xB7szIEMdcXbcct21uqFlXvqr2vt9Xax30FK4uqoqtObeBkOrrrkY4O60hrP a+ln0d30GrCP
1+eYno9xgyJtx+f+3kj9fnuBa7o9xB0INuPBH/byXty7w/8ADcP/AKsVY7H/ ABZO7hmzJxPt
Dc2+G7muJbjiSwljnfzLmN3bf3/Z+eh4Fz8x7mszcjVjLhLMcQ20S2t22p/v ZH+vprG/8cCz
/wAqL/8At7H/APSyQ+v7xx0e4d9Lcfk/9eS9uXeH/huH/wBWKsdj/iydYZe7 NOMMzKltrsYg
10CXiuvJ9RpdSHOq2Wen7a//AAKv1ETMyXYNoFmTe4MrN53No2OaxzWPpnZQ /wBR2/8Af/R/
nrF/5/Pnd+x7pOk+rjzH/byR+v7zE9HuMaj9Lj8/9vJe3LvD/wANw/8AqxVj sf8AFk2fr44P
6HjvEgOzMQidDraxcitP6wfWa3rWHVhjp1uPtyKLja+2lzQ2qxtr/bXa+z6L fzWrMTzE8Ijc
L1P85jreP6XHwI63R37Hs//ZADhCSU0EIQAAAAAAUwAAAAEBAAAADwBBAGQA bwBiAGUAIABQ
AGgAbwB0AG8AcwBoAG8AcAAAABIAQQBkAG8AYgBlACAAUABoAG8AdABvAHMA aABvAHAAIABD
AFMAAAABADhCSU0EBgAAAAAABwAEAAAAAQEA/+EX+mh0dHA6Ly9ucy5hZG9i ZS5jb20veGFw
LzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpy ZVN6TlRjemtj
OWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4 bXB0az0nWE1Q
IHRvb2xraXQgMy4wLTI4LCBmcmFtZXdvcmsgMS42Jz4KPHJkZjpSREYgeG1s bnM6cmRmPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJyB4 bWxuczppWD0n
aHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4KCiA8cmRmOkRlc2NyaXB0 aW9uIHJkZjph
Ym91dD0ndXVpZDo4OWI4M2Y4OS1iNzc3LTExZDktYTI2OC1mMTUxNGM1NTgz NDInCiAgeG1s
bnM6ZXhpZj0naHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8nPgogIDxl eGlmOkNvbG9y
U3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogIDxleGlmOlBpeGVsWERpbWVu c2lvbj40ODg8
L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlmOlBpeGVsWURpbWVuc2lv bj41MTI8L2V4
aWY6UGl4ZWxZRGltZW5zaW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJk ZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9J3V1aWQ6ODliODNmODktYjc3Ny0xMWQ5LWEyNjgt ZjE1MTRjNTU4
MzQyJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4z Lyc+CiA8L3Jk
ZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0n dXVpZDo4OWI4
M2Y4OS1iNzc3LTExZDktYTI2OC1mMTUxNGM1NTgzNDInCiAgeG1sbnM6cGhv dG9zaG9wPSdo
dHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvJz4KICA8cGhvdG9z aG9wOkhpc3Rv
cnk+PC9waG90b3Nob3A6SGlzdG9yeT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoK IDxyZGY6RGVz
Y3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjg5YjgzZjg5LWI3NzctMTFkOS1h MjY4LWYxNTE0
YzU1ODM0MicKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3Rp ZmYvMS4wLyc+
CiAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICA8 dGlmZjpYUmVz
b2x1dGlvbj43Mi8xPC90aWZmOlhSZXNvbHV0aW9uPgogIDx0aWZmOllSZXNv bHV0aW9uPjcy
LzE8L3RpZmY6WVJlc29sdXRpb24+CiAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+ MjwvdGlmZjpS
ZXNvbHV0aW9uVW5pdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVz Y3JpcHRpb24g
cmRmOmFib3V0PSd1dWlkOjg5YjgzZjg5LWI3NzctMTFkOS1hMjY4LWYxNTE0 YzU1ODM0MicK
ICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgog IDx4YXA6Q3Jl
YXRlRGF0ZT4yMDA1LTA0LTI4VDAyOjUzOjIyKzAyOjAwPC94YXA6Q3JlYXRl RGF0ZT4KICA8
eGFwOk1vZGlmeURhdGU+MjAwNS0wNC0yOFQwMjo1MzoyMiswMjowMDwveGFw Ok1vZGlmeURh
dGU+CiAgPHhhcDpNZXRhZGF0YURhdGU+MjAwNS0wNC0yOFQwMjo1MzoyMisw MjowMDwveGFw
Ok1ldGFkYXRhRGF0ZT4KICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rv c2hvcCBDUyBX
aW5kb3dzPC94YXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4K CiA8cmRmOkRl
c2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDo4OWI4M2Y4OS1iNzc3LTExZDkt YTI2OC1mMTUx
NGM1NTgzNDInCiAgeG1sbnM6eGFwTU09J2h0dHA6Ly9ucy5hZG9iZS5jb20v eGFwLzEuMC9t
bS8nPgogIDx4YXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hv cDo4OWI4M2Y4
OC1iNzc3LTExZDktYTI2OC1mMTUxNGM1NTgzNDI8L3hhcE1NOkRvY3VtZW50 SUQ+CiA8L3Jk
ZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0n dXVpZDo4OWI4
M2Y4OS1iNzc3LTExZDktYTI2OC1mMTUxNGM1NTgzNDInCiAgeG1sbnM6ZGM9 J2h0dHA6Ly9w
dXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6Zm9ybWF0PmltYWdl L2pwZWc8L2Rj
OmZvcm1hdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6 eG1wbWV0YT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Cjw/eHBhY2tl
dCBlbmQ9J3cnPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAH
zgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADT
LUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFj
cHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAAC
GAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2
dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAE
MAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHly
aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JH
QiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEA
AAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAA
AGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8v
d3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5
NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMg
NjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElF
QzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJ
RUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4A
EM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8A
FAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUA
mgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUB
KwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB
8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC
9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0E
OwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUF
xQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YH
mQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJ
ugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIM
KgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO
7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegS
BxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYV
eBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZ
RRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcd
cB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h
+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm
6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUs
OSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox
8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4
FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+
oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVF
mkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpN
Ak1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U
21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZd
J114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl
52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRv
Hm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54
zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC
9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGN
mI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyY
uJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+ak
VqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACw
dbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9
Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnK
OMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX
4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTm
DeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0
wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAO QWRvYmUAZAAA
AAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAM DAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMAQcHBw0MDRgQEBgUDg4OFBQODg4OFBEMDAwM DBERDAwMDAwM
EQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAIAAegDAREAAhEB AxEB/90ABAA9
/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcICQoLAQACAgMBAQEBAQAA AAAAAAABAAID
BAUGBwgJCgsQAAIBAwMCBAIGBwMEAgYCcwECAxEEAAUhEjFBUQYTYSJxgRQy kaEHFbFCI8FS
0eEzFmLwJHKC8SVDNFOSorJjc8I1RCeTo7M2F1RkdMPS4ggmgwkKGBmElEVG pLRW01UoGvLj
88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFhoeIiY qLjI2Oj4KTlJ
WWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNtAQAC EQMEIRIxQQVR
E2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSDF1ST CAkKGBkmNkUa
J2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZH V2d3h5ent8fX
5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oA DAMBAAIRAxEA
PwDYquiilmr6SNJTqVBIr0pUZlQ0WWQsDb4R/wB01SzQiaJV10zUG6W0n/An JfkMvd/sof8A
FI/MQ7/vXforUv8Almk/4E4PyOXu/wBlD/il/MQ7/sLX6L1H/lmk/wCBOP5H L3f7KH/FL+Yh
3/YXfovUf+WaT/gTj+Ry93+yh/xS/mId/wBhd+i9R/5ZpP8AgTj+Ry93+yh/ xS/mId/2F36L
1H/lmk/4E4/kcvd/sof8Uv5iHf8AYXfovUf+WaT/AIE4/kcvd/sof8Uv5iHf 9hd+i9R/5ZpP
+BOP5HL3f7KH/FL+Yh3/AGF36L1H/lmk/wCBOP5HL3f7KH/FL+Yh3/YXfovU f+WaT/gTj+Ry
93+yh/xS/mId/wBhd+i9R/5ZpP8AgTj+Ry93+yh/xS/mId/2F36L1H/lmk/4 E4/kcvd/sof8
Uv5iHf8AYXfovUf+WaT/AIE4/kcvd/sof8Uv5iHf9hd+i9R/5ZpP+BOP5HL3 f7KH/FL+Yh3/
AGF36L1H/lmk/wCBOP5HL3f7KH/FL+Yh3/YXfovUf+WaT/gTj+Ry93+yh/xS /mId/wBhd+i9
R/5ZpP8AgTj+Ry93+yh/xS/mId/2F36L1H/lmk/4E4/kcvd/sof8Uv5iHf8A YXfovUf+WaT/
AIE4/kcvd/sof8Uv5iHf9hd+i9R/5ZpP+BOP5HL3f7KH/FL+Yh3/AGF36L1H /lmk/wCBOP5H
L3f7KH/FL+Yh3/YXfovUf+WaT/gTj+Ry93+yh/xS/mId/wBhd+i9R/5ZpP8A gTj+Ry93+yh/
xS/mId/2F36L1H/lmk/4E4/kcvd/sof8Uv5iHf8AYXfovUf+WaT/AIE4/kcv d/sof8Uv5iHf
9hd+i9R/5ZpP+BOP5HL3f7KH/FL+Yh3/AGF36L1H/lmk/wCBOP5HL3f7KH/F L+Yh3/YXfovU
f+WaT/gTj+Ry93+yh/xS/mId/wBhd+i9R/5ZpP8AgTj+Ry93+yh/xS/mId/2 F36L1H/lmk/4
E4/kcvd/sof8Uv5iHf8AYXfovUf+WaT/AIE4/kcvd/sof8Uv5iHf9hd+i9R/ 5ZpP+BOP5HL3
f7KH/FL+Yh3/AGF36L1H/lmk/wCBOP5HL3f7KH/FL+Yh3/YWjpmoj/j2k/4E 4fyGXu/2UP8A
il/MQ7/vaOnX4/495P8AgTj+Qy93+yh/xS/mId/3qU0MsNPWRo67AsCBXpSp yM9FliLI2+Ev
9ymOaJNArMxW12KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV/9Bk
v2COlSFqOu5pmXocYnmiDy/4n1MMhqKc29/FaxRqZUgSnwBiF2HhWmdMYGR5 W6jLKMPqIijk
8wWgXe9iA/4yL/XIHTy/mn5NP5mH86P+mVY9YaVecMwkTpyRgwr8xkTirmGy ExIWDbjqVz/O
ceANm7v0lc/znHgC7u/SVz/OceALu79JXP8AOceALu79JXP85x4Au7v0lc/z nHgC7u/SVz/O
ceALu79JXP8AOceALu79JXP85x4Au7v0lc/znHgC7u/Sd1/OceALu79J3X85 x4Au7v0ndfzn
HgC7u/Sd1/OceALu79J3X85x4Au7v0ndfznHgC7u/Sd1/OceALu79J3X85x4 Au7v0ndfznHg
C7u/Sd1/OceALu1+krr+c48AXd36Suv5zjwBd3fpK6/nOPAF3d+krr+c48AX d36Suv5zjwBd
0Qbp44w000gYhWKxor0DAMtSzpvxIOAY75Afj4J5KDa1bL1muf8AkVH/ANVs sGml/R+Z/wCI
RY8/x8VOLW47hpEtppTJEvN0lQJ8FQtV4vJX4mXBPAY1YG/47kjfkjJrowVW aaXmpKuI41ZQ
w2Iq0idD/k5COPi5Afj/ADVOyGfW7ZdzNc/8io/+q2WDTS/o/M/8Qix5/j4t W2rNetxspXdh
IkTLKojYNJXh0Z1o3Fv2sjkxcH1JAvkryzKgBa6mNd6pEpX6KyKf+FzXHXQH 8LsY9nTPUIeT
UIVFTc3H0Qp/1WwfyhD+a2DsqZ6x+39SWahd+rbckkM9tIWjPqKFYMoBZStW HRlP2sz9Lnjk
FjZx82kOKVFKLdi0QrvSq1O5+Ekb/dmg12MQzSA5f8V6nIhyVMxGTsVdirsV dirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVf/Ra4qAPFl/4kMzuzf7+P8Anf7i TXl+l6d+WPln
QdYivxq1hBfeh6Poeugfhz9Tlxr05cVrmf2nqMmPh4JShd/Sfc4kMEMhPEBK v5zOR+XPkQGo
0KzBIIJESjYihH3Zqvz+f+fP/TFs/I4P5kfk8w836bY2Hm7UraxhWCBRA3pp 0qYVqc3egleI
E/0v9lOUpf7Jxs0amf8AN/2MIwj/AKWMeGP9FOdQ8v6cr6qiW0cUVpCJLeWO Zml58A1HjLv8
JNftKnw/8FlcM8vTv9R7vSzMBulc/l15biGKAwQqLFbuSYySFHUGhk+JAyFu vDjxXLo56BJs
+rhYmH3KEujW8ehvffWFeZLo24VORQgCu3w/aP26148P8v4cmMpM+GtuHiQY irU9O0G6vofW
SSKGMyCFGlYrzlYVCLQNvhyZhE1uiMbX23lu+mRnd47cCf6qBKWBaatOK8Va u+CWoiPPbi/z
UiBa/wAPXn88f+9n6P6t/e/zfZ+x/wAN/k4fHH+x40cB+3hVLTyvf3U1xDEy GS2keJwRLxLR
9aOE4b9uTK2RlqIxAJ6pECVWPQrX0NHmEyyPfyMskTl1Q8WACgqhZf8Afbt/ M3wfB8WA5jch
X0p4Rt5tP5XvZZpTF6MXKWdLa2MjFn9EnkIyR8XGlKvxxGoAAu+Q4j/WXgKl Z+Wby7t7eaOa
FTdCQwQuzB29IkMAOJHbxyU9QIkij6UCBKC0/Tbi+naKIqnBGkkkkPFERerM csyZBEWWMRaZ
aVotrLcXcU00U6rZSTwzIz8EfYKW2Vhxr8SsuU5cpABAI9XCzjEfYoHy5eC9 S09SNmliWeKR
BLIjIxoD8CMw/wBkvHJeOOG/Ph6I4DdLh5YvRLeRyzQQ/UTGJnkZgv737NCF OP5iNAgE8S8B
38lO+0mC30jT71Juct36nqJvQcDT4aqPs/Zep+19jkuGGQmco19KCKAK+HRE m0RLyOXldyXQ
tkg3APIbLuv2/wBr7XDh/l/DgOap8J+nh4kiO1qh8p6j68UUcsEpklaBnRyV SRFLlXqoNeIP
TB+ZjV0f5yfDLdl5dhknvIp7uOttbNOrRFmFR/N8BICf7sWnqfy4J5yACBzl wqIc0l4nMlrd
xOKu4nFXcTiruJxV3E4q7icVWapOy3Lxg9I4P+TCZfgj6Qf63+6kxmd/x3JF ctLWtTmdABql
JFeXam7u/H6qf+T8OY2tH0/1v97JswmwWYaJqVlZarrt5eWMepRWaTMtrMF4 lmvIo61ZXAI9
Q/s5gZsUpQhGMjAy4fVH/hcpN0JASkSOKv8Aikw03z35Yv8AV7LTz5OsU+uX EVv6p9FuPquE
5cfQFaV6VynL2fmhCUvGn6YmX8X8P+eyjqIGQHCN/wAdzC/J4rPKe/1qyr98 2Z+v5/5sv961
YDt8Qnvli+0p5zp+q2huLbUFSBZ4gWuIHJ+B4gORPxfaULyb/L/upOPJ2ery QI3HRHeZND03
ydpc1tdRDVNY1QSR29xIjLb28CtTmletyfhOzfuv9T/emsyZYZnLKx6Yx/2X /Hfx/Vhca10d
SP8Alpn/AOTUOb7sn6S67tP+8HuS61/uR/rN/wASOa7tL+/l/m/7iLRDkq5g snYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//0q/aT/XT/iQzO7N/ v4/53+4k15fp
LONB8weYdFjk/QzWim44+v8AXIZZvsV48PTmg4/ablXlm31Wmjlriv0uvjmM CaTb/lYP5idp
dI/6Q7r/ALLMxP5Nx/0vn/x1n+bl5JFdTarqGoXWparJA93clARaxvFGFjQI Phkkmau38+Zu
DEMceEcnHnkMjab3WuQyzXtxHbFLm9i9F3aTkqoQFPFQq9QvdshHAQACdoni ZnLzNc1P9ND/
AHz/AMeH6P8At/8AD9P+F/4bD4Hn/H4iPF+7hQq3SfoltPZK1mE6SBqUbjwI K0NRT3XLOD18
XlwsePakRpWsfUbV7Vo2eJpPVHpyvC3KnEgsm5UgdMhlw8Rv9HEyhloUiNO1 eIvFbXUdYvri
3McpkoY2LbliwbmNzXkchkwncj+bwso5Oh71zaxbQXNxG0AuY1v3vIXWTiOQ NB0DchTEYSQD
fD6OBfFon3tw+ZQkqSvbBzFNNLCBIVA9cksGFDyI5Hi2CWmsVfQf7FRm8kGN TiEenoIKfo+Z
pYvj2Ks/Mqfh67D4q/7HLPCPq3+sMfE5eSJTzGFcSm2Vp4ZJ5LV+Zon1gksG FPj6/wCTkDpu
l7Hh4v8AMT43ko2WtC2/Rv7nn+j/AFv26c/Wr7Hjxrkp4OLi3+uv9iiOWq8k Jpl0LKaRjGJY
5omhmjJ41R+tGHTplmSHEPd6mMZ0q297a2z3Bt7bgk9q1sVMnI1elXJ479Ps gLkZYzKrPKXE
kZK5DoiRrqmH0JLflAbaK2kUSFWb0SSG5AbBuXxL/wANkPA3u9+Iy/0zLxfJ bfa0l0t+Pq4R
r8QhzzrQwnr035DDDBw8O/0X/slllu9uaDuLqObTbSzMdGtDJwkDbESHkQVp 1r/lZZGFSMv5
zAzsAKlrqP1ewW2WMF4rlbuGTlsHUAUZafEKD+ZcEsVyv+jwJGShSLutdjuJ opGhl+CQyuv1
mWlSCPg6COlduOVxwECrH+lDI5b6fa0+uLJeSzvBVZrU2kg5gOwbq5bhTn/s MRgoVf8AFxr4
u/Lokvor7Zk21W70V9sbW3egmNrbvQTG1t3oJja270Extbd6CY2toRtWs9I8 1x3l7ZpfWqxR
kWstBHIDbCPqyuvwP/k/aTMgYzkwcIlwSs+r+b6+JePhnZHEP+Oqnmvzr5e1 jTktrLQ7bS5k
lEjXEJj5MoVl4HjFGaEsG+1+zg0eknilcsksgr6Zf9JSRqMwkKEeFJvKg9W9 vXG8QtuBftya
aMgV8SFY/wCxy/XEVH3/AO9LDT2AUwbWLPT9X1uC+heWC9MkRWOQQuFNwk6O rMkoofTX9j7L
ZX4fHCBiQDCv6X8HB/Oj/ObOOpSsc/1rbPzB5Usb+2v4rC7aa0lSeNWvYuJa NgwDUtQaVHjk
p4cs4mJlCpDh+iX8X/JVh4kQQalt/S/4415IFXnmbaI3Vpxc7A8PULUP+TyX l/rZDtAiwB/N
l+hlpthv3hFeXvNA0Brp0t4zqZT0re4l+1bN0dlQjiWK/D8X2f8AU5o/F7va ZYCdb+n/AHTk
86v+hr3SdQVdStrnlLbtO5MkFyxqZkfdtyWLJ+03+vL6lcrZjEOISB4f99FA WMZOiKWFA9xM
6V7rwiWo9uSsP9jm/wCyARA33um7WkDlFdyTwfYP+s//ABI5gdpf38v83/cR aoclTMFm7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//Tpuq/66f8 SGZ3Zv8Afx/z
v9xJry/S9H8v+TJdS0qC/GoGH1uX7r0uVODlOvNf5fDMzVdp+FkMOHir+l/x 1xoaUSF2mf8A
yr6b/q6H/kT/AM35jfyz/Q/2X/HWX5Ed7j+Xsx/6WZ/5E/8AN+H+Wf6H+y/4 6v5Id63/AJV3
N/1dD/yJ/wCvmP8ALX9D/Zf8dT+SHf8AY7/lXU3/AFdD/wAif+vmP8tf0P8A Zf8AHV/JDv8A
sd/yrqb/AKuh/wCRP/XzH+Wv6H+y/wCOr+SHf9jv+VdTf9XQ/wDIn/r5j/LX 9D/Zf8dX8kO/
7Hf8q6m/6uh/5E/9fMf5a/of7L/jq/kh3/Y7/lXU3/V0P/In/r5j/LX9D/Zf 8dX8kO/7Hf8A
Kupv+rof+RP/AF8x/lr+h/sv+Or+SHf9jv8AlXU3/V0P/In/AK+Y/wAtf0P9 l/x1fyQ7/sd/
yrqb/q6H/kT/ANfMf5a/of7L/jq/kh3/AGO/5V1N/wBXQ/8AIn/r5j/LX9D/ AGX/AB1fyQ7/
ALGv+VdS/wDV0P8AyI/6+Y/y1/Q/2X/HV/JDvd/yrqX/AKuh/wCRH/XzH+Wv 6H+y/wCOr+SH
e7/lXUv/AFdD/wAiP+vmP8tf0P8AZf8AHV/JDvd/yrqX/q6H/kR/18x/lr+h /sv+Or+SHe7/
AJV1L/1dD/yI/wCvmP8ALX9D/Zf8dX8kO93/ACrqX/q6H/kR/wBfMf5a/of7 L/jq/kh3u/5V
1L/1dD/yI/6+Y/y1/Q/2X/HV/JDvd/yrqX/q6H/kR/18x/lr+h/sv+Or+SHe 7/lXUv8A1dD/
AMiP+vmP8tf0P9l/x1fyQ73f8q6l/wCrof8AkR/18x/lr+h/sv8Ajq/kh3u/ 5V1L/wBXQ/8A
Ij/r5j/LX9D/AGX/AB1fyQ73f8q6l/6uh/5Ef9fMf5a/of7L/jq/kh3u/wCV dS/9XQ/8iP8A
r5j/AC1/Q/2X/HV/JDvd/wAq6l/6uh/5Ef8AXzH+Wv6H+y/46v5Id7v+VdS/ 9XQ/8iP+vmP8
tf0P9l/x1fyQ71WPyJfxLxi1qRF68VjIFfokwHteJ5w/2X/HUjSV1X/4J1T/ AKvsv/AN/wBV
MH8rR/1MfP8A46n8qf5ynL5BvJaerrDyU6coiaffJhHbAHKH+y/46g6S+q5P I2oxqETW5FQd
FWMgD6BJgPa8T/k/9l/x1fynmu/wTqn/AFfZf+Ab/qpj/K0f9THz/wCOp/Kn +coy/l9dTENL
q7Ow2BaIsfxkyQ7ZA5Q/2X/HUflPNePI2qAALrswUbACNqAf8jcH8rx/1MfP /jifyvm4+RtV
P/S/m/4Bv+quP8rx/wBTHz/44n8se9J/Mnku4sNLuNSl1Nrp4uFVaOhbk4T7 RdunLMrSdpjJ
kEBHhvz/AOOsJ4OEXbza1JMRJ/nk/BzmF2l/fy/zf9xFvx8lbMFm7FXYq7FX Yq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//Ua37P+un/ABIZndm/38f87/cS a8v0vW9O1r9B
flhc636P1n9FWV7e/V+XD1Pq5ll4c6Nx5cePLi3H+XMftMf4RL/N/wBzFOD6 A3/ysO30u9l0
3zbFDpOoj6sbZLOWa/in+uLdGCKNvq9vM1050+6VYBb/ALxvq8cEk08/orgV 3NzvNX5jaVpu
j69Jp8vqappllfTWhmt7gWU11ZQSStbpdcUt7iWMxSevbwXHrp6Nxy4ehN6a Irac23m7QLjV
zpMU7m65yQpIYJ1tpJoQTLDDdsgtZ54uEvqwQzPNH6NxzT/R5vTaVCr5/wDL BtpJzLdRyRuk
f1CWxvY792lDshisXhW8mVlinZXigdONvcty/wBGn9NpUi0L82dLuIXbVA8c kl1PBZW1rZ6h
LduovtSghD2aQSTRt9W0qSST4uayJP60FqqxeqTFbTjUPzJ8n2FkL2e6me3E L3NwbezvLlra
KNnR2u0ghkez4PFNGwu1hZZLe4j+3bzLGOEraF88+fv8M6npdh/uMi/SUN3P 9a1jUv0Xbr9U
e3T01k9C59SWT6zyVKJ8ET4gWqBvPzJ1yKedYPL6LH9V0S4tI727ktbn1Nev BZRQ3UAtpvqz
W8iz/WOMlxx9OPirNK/onhW0VqfnvXLLyvr2qDR7WTUvK7yjWbE30iwenFZJ flrW4+qs8zGC
aBeEttbfvfVXnwjSSUUrK9Mk1OSyjfU7eG1vjy9aC2me5iX4iF4yvFbM9V4k 1hTi3w/F9tgq
KxVifmvz5Z6TPBYWYe41J9Q02ynpa3M1tCt9eQQyLNcxJ9Wgn+rT+rFHPOj/ AB27+m6TR+oQ
FVX/ADJ8npby3DXU3ox+mYmFneH6ys00dvHJZAQ1v4mmngT1bL6xH+/gbnxm i5vCVtVbz/5Y
FtHOJbqSSR3j+oRWN7Jfo0QRnMtikLXkKqssDM8sCJxuLZuX+kweo0qrrfnH RNJ06x1We7hO
k3nqSC9VpJFNvFZT3xlh9COYTfubZnHxRo0fJkkeT0oZkBUTovmTStZ9ZbJp kmt+Jmtru2uL
K4VZK8JDBdRwzelIUkWOXh6bvHKiPyik4ghUDZeaNRvl8wR2mkP9d0XUBpsF tLPEgnLW9vOt
w7rzWGDjdeo3H1rhbdOXoNc/6HhpUAfPl7DpS3VxpHO4j1q10O7NpcLLZo1z cRW7XEVxIkDz
xQPP9XlVLb1Fvo5rVkVIpLlWlVb7zvc22r3MSaekmj6fqFnpGoXhuCtyLvUB bej6NsImjlgH
1+19WR7uGRf9I4QSelH67So/VvO3lzSdTOmX00y3iwx3LrFa3U6Kk7yRwBpY YpIlluJYZIba
Av61xNxhgjklkjRmlYn52/NhtMsmn0D6rdMlrNdMLhbj1FMenatcKksJWD0W S60j0ZY2l+sJ
/pMM8FrIkcjkRW2T2nnjRpp47Qs8t5LdXFqIrKC7vFjEF5LZq9w8cA+qq8kE i+pcenb84rj0
Z54oGnwUrIsCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpB58/5RS+/55f8nkzP 7L/xiP8Anf7m
TVn+gvDbT+5P+vJ/ycbMntL+/l/m/wC4ijH9KtmCzdirsVdirsVdirsVdirs VdirsVdirsVd
irsVdirsVdirsVdirsVdir//1Wt+z/rp/wASGZ3Zv9/H/O/3EmvL9L1vTtF/ Tv5YXOiet9W/
Stle2X1jjz9P6wZYufCq8uPLlx5Ly/mzH7TP+ES/zf8AcxTg+gJgPI+h2s2j nRrS10e10rUJ
NSe0s7eOGOaSSxnsjUR+mqtxuFb1OL/3Pp/5S4FtzGL/APJmwuZNbEUmn266 smplL8aXC2qL
NqyTLL6180nKWCNrqX0ooYrWb00t4HunjSb6weJaTSb8urmeRrV9YeDR4rrU dQ08WkRg1GC7
1RLpJpPrhkeNli/SF09uqWcUkbfVuc0noyeuOJaSvSvykudM1GTVrK60jT9S je1lsYtN0g2d
gsltFewO9xbLds9w0sGpyryS4t+DRQN+8RGjc8S0itC/K650/XLPWbvVkubq C6e8nSK1MMck
kkmsSMEDTTNGvLXfh5NL/vL+1637pMlpJ/Nf5f8Ami10/VbDy031ubzXDqFl qc81vC1vBFd3
t5dwks17azQ+mdWuElmig1JnSFJFtEZfRnIKGa+YPL+uXeuabrOjala2N1Y2 t5Zul5ZyXkck
d5JbSEgR3NmyMjWa/tP9vIgpY635SclOnSajDceXRZaFp0en3Fn6srW+gXYu UWeUzCGb6yGu
Ipv9FjTjJF8P7p1nPEtJxL5Ato/KuveVtMnSw0TVrW6gsbVIAVsZL5ZRcGPi yc4Gkl9aO3PH
0n9ZEm+rtBBai+qsikt71tTt7hLvhYxwzRz2PpqfUlkeIxS+qfiT0VjmT0x8 Mnr8m/ukwKhd
PsNbg/Rn1zVfrn1Wya31L/R44vrd2fR43fwn9xx9Of8AcR/u/wDSf+KUxVIt X8jand6ncSWe
qQ2+l6hqen6xqVrNaPNcNcac9qVWCdbiFIYpE0+BSsltO6u0z8/jSOMgqgYf yuufR0m2udWS
S18vJZ2uhrHamORbS0vrK8KXbmaRbieRdLt4vWhS0jTlNJ9XfmkcR4lp3mD8 qLbVdZu9YZ9P
urq4upZ4rbV9OGo2kcc9pY20g9H1oGM4bTI3juPVXhHNPD6L8llVElpHea/y 7h1zytYeXob3
6nDp8M9vHN6EZqs2l3WmD91D9WhTgLv1uESRx/u/SjjiVvgAktJ7b6L6Pma/ 1v1uX16ys7L6
vxpw+py3UvPnX4vU+ucePH4fT+03P4RapFJ5P8zej5pW312G2m8w3sN5bTRW cqNbJHHDbSQu
y3aySetaWscXrQSWc0UjyzwvG3orCbV2oeUfM155XtdGXU9MtJrO9srm2ktt LljtUt9OmiuI
Ldbb66Sv76BKus/D0P3SQo373G1RWueRdM1vzNp+sahBZSJpvoy27fU0+v8A 1i2lM0P+nli6
WqORL9Xhjid5V/eXD28k9tKgq7WvJX6T1a61D656P1n9CfuvT5cf0JqUmofa 5rX6x6vo9P3X
H1P3n2MQVYxqv5LfX/0h/uZ9P6/9d/49uXD67+mv+LRy9P8AxB/s/qn7Pr/u TxLSaQ/lpNFq
1peJqEMK297c3st1bW0kGpSLcalPqP1M3kdyFaw5TrFPaTW08c3GSX91M8T2 7xLTMNOt72C3
dL27+uTGaeRZvTWLjFJM7wxcV2PoQtHB6n2pfT9V/ifIqisVdirsVdirsVdi rsVdirsVdirs
VdiqQefP+UUvv+eX/J5Mz+y/8Yj/AJ3+5k1Z/oLw20/uT/ryf8nGzJ7S/v5f 5v8AuIox/SrZ
gs3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9Zr fs/66f8AEhmd
2b/fx/zv9xJry/S9x8gKH8taeh6M0gP0zPmP2kP8Il/m/wC5inB9AZCTbA04 v/wQ/wCacwNm
51bb+V/+CH9MdldW2/lf/gh/THZXVtv5X/4If0x2V1bb+V/+CH9MdldW2/lf /gh/THZXVtv5
X/4If0x2V1bb+V/+CH9MdldW2/lf/gh/THZXVtv5X/4If0x2VKbbVWuNf1HT 1jCQWMVs6sTV
2af1C1eg4gIvEU/m/wBilUxwK7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7F
XYq7FXYq7FUg8+f8opff88v+TyZn9l/4xH/O/wBzJqz/AEF4baf3J/15P+Tj Zk9pf38v83/c
RRj+lWzBZuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV//12t+z/rp
/wASGZ3Zv9/H/O/3EmvL9L3P8vf+Ud03/Xf/AJPtmP2l/jEv83/cxTg+gLfO f+I/0dH+g/W5
+uPrv1L6r9e+r8X/AN5Pr3+her63o+p9Z+D6r9Y9L/SPRzADcwSy8663p+o6 xqUTza1oukaL
b3WtfpK4jtr23e1vdVS8WG3tLb6jPdJ9Ve3bg9tDN9Vg/wBKljb6xkqQnGtf mjc6XYXurPpK
S6PG+q2unyC6IuZbvR4buWZJoTD6cEEn6NulimS4uJP952e3X1JPQAim0da/ mPZXXmNNFgt+
bSam+nJNzYVijtbx2uOJjHS+0q/sPR5cv3H1rl6MsPqDhW0i8yeY/OfreZYb QQtZ6d5g0O00
2Y3T20vKeTSXe0kWK3f/AEWb61P6twZZpOMrw/VniwgBUVqf5qajY3H6JOh+ t5iimniu7aB7
26tFW3htLhnjms7G6u3rHqVp/eafBH6nro0vwQfWXhW2Rah5quY9K0Sey01/ 0l5geOKx0/UG
NmYpGtZL10u2VLl4Gjgt5VZUhm/0jhF8KcpUFKx3TPNXmbT9d199Ts4ZdJGt adYTPHfSyy2t
xf2OmwrFbQPbpHJard3SyPKZ7Z+Mk831b1P3cppVK4/OJob2e2TRnvlkeFtG ltHuFjvbeXUb
Ww9SOa9trK1dm+vwTQfVbi7tZfi53kMfozSvCtp75T1nzVfeYfMdrqcFqun6 fdQwxPFcM8kM
z6bZXEluifV4fVgEk80i3UkqzNy4fVkTjxBCo3Sv+Ux1/wD4w2H/ABGbAqf4 q7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUg8+f8opff88v+ TyZn9l/4xH/O
/wBzJqz/AEF4baf3J/15P+TjZk9pf38v83/cRRj+lWzBZuxV2KuxV2KuxV2K uxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV//0Gt+z/rp/wASGZ3Zv9/H/O/3EmvL9L3P 8vf+Ud03/Xf/
AJPtmP2l/jEv83/cxTg+gIzWtFs9XtxbXcl1HGknqBrO7ubKTkAVoZLSSGRl +L7DNw/a48lX
NfbcgF8j+V1sr+yFl/o+p2X6N1AGWYtNb8p3YSOX5tLI95dSS3HL6xNJM8ks rv8AFhtVW28o
6Bb6udWigcXXOSZIzPO1tHNMCJZobRnNrBPLzl9WeGFJpPWuOb/6RN6jaqmn +WtE079GfU7b
0v0PZNpmm/HI3pWj+jyj+Jjzr9Vg+OTlJ+7+18T8haqd35R0C7v5L6eBzPM9 vNMiTzxwyTWk
0U8EzwI6wPPG9tAvrtH63oxJbs/1f91htVK/8k+XL24nupIZoby5mNzNeWl1 dWlwXaGG3YCa
2lilWJ4rW29SBX9GR4IpXjaVFfG1RN95a0S90y30x7b0LOz4fUVtHks3tvTQ xr9Xltmilt6R
M0P7l0/cu8P907pgtVOPyjoEdtLbeg8kc91aX07SzzyyPc2At1t5XkkdpGZP qVty5N+99PlN
6jSSczaoCL8tvJ8V3HdLazFoOAtIXvLx7e3WK5gu447a3eZoLaJJ7O2ZYoI4 4+EKQ8PR/d48
RWk4h0TTodXn1aFHjvLlAlzwllWGQgKBI9uG+rvPwjjj+stF9Y9FEh9T0l4Y LVL9K/5THX/+
MNh/xGbFU/xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KpB5
8/5RS+/55f8AJ5Mz+y/8Yj/nf7mTVn+gvDbT+5P+vJ/ycbMntL+/l/m/7iKM f0q2YLN2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9Frfs/66f8A Ehmd2b/fx/zv
9xJry/S9t8lIJPKNpGSyhxMpZGZGFZXFVdSGVvBlPJcxu0/8Yl/m/wC5inT/ AEBv/Avln/fE
3/SXdf8AVXMC253+BfLP++Jv+ku6/wCquNq7/Avln/fE3/SXdf8AVXG1d/gX yz/vib/pLuv+
quNq7/Avln/fE3/SXdf9VcbV3+BfLP8Avib/AKS7r/qrjau/wL5Z/wB8Tf8A SXdf9VcbV3+B
fLP++Jv+ku6/6q42rv8AAvln/fE3/SXdf9VcbV3+BfLP++Jv+ku6/wCquNqj tJ8v6VpLTPYx
NG04QSs8sspIj5cRWVnpTm3TFUxxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2Ku
xV2KuxV2KuxV2KpB58/5RS+/55f8nkzP7L/xiP8Anf7mTVn+gvDbT+5P+vJ/ ycbMntL+/l/m
/wC4ijH9KtmCzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdir//0mt+
z/rp/wASGZ3Zv9/H/O/3EmvL9L2/yL/yitj/AM9f+Tz5jdp/4xL/ADf9zFOn +gJ9mA3OxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2Kux
V2KuxV2KpB58/wCUUvv+eX/J5Mz+y/8AGI/53+5k1Z/oLw20/uT/AK8n/Jxs ye0v7+X+b/uI
ox/SrZgs3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q//Ta37P+un/
ABIZndm/38f87/cSa8v0vb/Iv/KK2P8Az1/5PPmN2n/jEv8AN/3MU6f6An2Y Dc7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7F
XYqkHnz/AJRS+/55f8nkzP7L/wAYj/nf7mTVn+gvDbT+5P8Aryf8nGzJ7S/v 5f5v+4ijH9Kt
mCzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/9Rr fs/66f8AEhmd
2b/fx/zv9xJry/S9v8i/8orY/wDPX/k8+Y3af+MS/wA3/cxTp/oCfZgNzsVd irsVdirsVdir
sVeC/md+beqy+Yb3QtGu3tNP09zb3E1uWjnmnRh6n7yiyRLFIpi/dMvP425y RSKq952F2Hi8
KOXLHjnP1RjL6Iw/h9P8fHH1+v6fT6Yyi832p2hkEjDGeED+Ji8HnfXKVfU9 Sb/t4Xf/AFUz
fnsvTf6nj/5Vw/U6U6/OP45f6Yon/HerAb3+ofP9IXf/ADXg/krT/wAzH/yq x/qR+fz/AM6f
+nksbz/qne/1D/pPu/8AqphHZOn/AJmL/lVj/wCJSNdn/nS/08mv+Vgap/1c NR/7iF3/ANVM
f5J0/wDMxf8AKrH/AMSn87n/AJ0v9PJ3/KwNU/6uGo/9xC7/AOqmP8k6f+Zi /wCVWP8A4lfz
uf8AnS/08nf8rA1T/q4aj/3ELv8A6qY/yTp/5mL/AJVY/wDiV/O5/wCdL/Ty d/ysDVP+rhqP
/cQu/wDqpj/JOn/mYv8AlVj/AOJX87n/AJ0v9PJ3/KwNU/6uGo/9xC7/AOqm P8k6f+Zi/wCV
WP8A4lfzuf8AnS/08nf8rA1T/q4aj/3ELv8A6qY/yTp/5mL/AJVY/wDiV/O5 /wCdL/Tyd/ys
DVP+rhqP/cQu/wDqpj/JOn/mYv8AlVj/AOJX87n/AJ0v9PJ3/KwNU/6uGo/9 xC7/AOqmP8k6
f+Zi/wCVWP8A4lfzuf8AnS/08nf8rA1T/q4aj/3ELv8A6qY/yTp/5mL/AJVY /wDiV/O5/wCd
L/Tyd/ysDVP+rhqP/cQu/wDqpj/JOn/mYv8AlVj/AOJX87n/AJ0v9PJ3/KwN U/6uGo/9xC7/
AOqmP8k6f+Zi/wCVWP8A4lfzuf8AnS/08nf8rA1T/q4aj/3ELv8A6qY/yTp/ 5mL/AJVY/wDi
V/O5/wCdL/Tyd/ysDVP+rhqP/cQu/wDqpj/JOn/mYv8AlVj/AOJX87n/AJ0v 9PJ3/KwNU/5b
9R/7iF3/ANVMf5K0/wDMxf8AKrH/AMSv53P/ADpf6eTv+Vgap/y36h/3ELv/ AKqY/wAlaf8A
mYv+VWP/AIlfzuf+dL/Tyd/ysDVP+W/UP+4hd/8AVTH+StP/ADMX/KrH/wAS v53P/Ol/p5O/
5WBqn/LfqH/cQu/+qmP8laf+Zi/5VY/+JX87n/nS/wBPJ3/KwNU/5b9Q/wC4 hd/9VMf5K0/8
zF/yqx/8Sv53P/Ol/p5O/wCVgap/y36h/wBxC7/6qY/yVp/5mL/lVj/4lfzu f+dL/Tyd/wAr
A1T/AJb9Q/7iF3/1Ux/krT/zMX/KrH/xK/nc/wDOl/p5O/5WBqn/AC36h/3E Lv8A6qY/yVp/
5mL/AJVY/wDiV/O5/wCdL/Tyd/ysDVP+W/UP+4hd/wDVTH+StP8AzMX/ACqx /wDEr+dz/wA6
X+nk7/lYGqf8t+of9xC7/wCqmP8AJWn/AJmL/lVj/wCJX87n/nS/08lOfzxe XETQ3F3fTQtT
lHJfXTKaGoqC5HUZKHZuGJsRxg/8Kx/8Sg6zOf4pf6eSBGt6eooIZANzQXE3 fc/tYZdnYpGz
GBP/AAvH+pRrM/8AOl/p5N/pyx/31L/0kTf81YP5MwfzMf8Ayqx/8Sn85n/n S/08nfpyx/31
L/0kTf8ANWP8mYP5mP8A5VY/+JX85n/nS/08nfpyx/31L/0kTf8ANWP8mYP5 mP8A5VY/+JX8
5n/nS/08mv05Zf76l/6SZv8AmrH+S8H8zH/yqx/qX85n/nS/08nfpyy/31L/ ANJM3/NWP8l4
P5mP/lVj/Uv5zP8Azpf6eTv05Zf76l/6SZv+asf5LwfzMf8Ayqx/qX85n/nS /wBPJ36csv8A
fUv/AEkzf81Y/wAl4P5mP/lVj/Uv5zP/ADpf6eTv05Zf76l/6SZv+asf5Lwf zMf/ACqx/qX8
5n/nS/08nfpyy/31L/0kzf8ANWP8l4P5mP8A5VY/1L+cz/zpf6eTv05Zf76l /wCkmb/mrH+S
8H8zH/yqx/qX85n/AJ0v9PJ36csv99S/9JM3/NWP8l4P5mP/AJVY/wBS/nM/ 86X+nk79OWX+
+pf+kmb/AJqx/kvB/Mx/8qsf6l/OZ/50v9PJ36csv99S/wDSTN/zVj/JeD+Z j/5VY/1L+cz/
AM6X+nk79OWX++pf+kmb/mrH+S8H8zH/AMqsf6l/OZ/50v8ATyd+nLL/AH1L /wBJM3/NWP8A
JeD+Zj/5VY/1L+cz/wA6X+nk79OWX++pf+kmb/mrH+S8H8zH/wAqsf6l/OZ/ 50v9PJ36csv9
9S/9JE3/ADVj/JeD+Zj/AOVWP9S/nM/86X+nk2msW80iRQW80k0hCxxpPOzM x2AADVJORPZu
nAsxx1/wvH/xKY6rUE0JS/0001bQfOPbyrrRH/GO/wD6Zi8PZ/fp/lgcofnP 9s/6WLG0HzpW
o8q638vSv/6Y12f36f5YFrW/7Z/s2OX/AJh1DRr54bm3uba4hIFzYXRcNSnQ iYc42oaj7P8A
lcsdT2VpNRj9IjH+ZlxcP+89GT8fS36bU6jHOpHiH8UZ/j0swt7iG5t4riFu cMyLJG1CKqwq
DQ0PQ553kgYSMT9UTwvTg2Lf/9Vrfs/66f8AEhmd2b/fx/zv9xJry/S9v8i/ 8orY/wDPX/k8
+Y3af+MS/wA3/cxTp/oCfZgNzsVdirsVdirsVdirsVfJM+ltqv5rarpnqCM3 /mC4thIQWC+t
fNHyoCK8eXjnquln4ehjP+ZgE/8AS4+J5PWw48/Dy4p8P+meuj/nGy9A21mD /kRJ/wBVM5//
AEVH+Z/sv+ONn8gS/n/7H9rG/wAxPydk8peWzq7X63LCeKHgqsu0gIPUnuMz uzO3Z6nOIVwx
o/o4f5v9L+H1f0f4qdV2UMGPiJ4jY/q/xcXp/wBL/H6fV6Z8Xoiei+RLzVtH h1Y6jZWFtc6h
+ibZbtpw0l2YvWVB6UUqKrJX45HRfh/1c2+q7ThhyeGYznLg8X0cP0fT/Oi4 +n0UskOMGMRf
D6kuvPLN9YLqy6nLBp97pEkUU2nXEnG5leZ+H+joAwmCf3jsrcfS/eLyXL46 yEuDhuccv0zi
PRH/AIZ/M/m/1mB00hxX6ZY/4f4v81KMy3HTbyr5av8AzNr1rolg8Ud3d8/T edmWMenG0rci
qu32UP7OY2s1UdPiOSV8Mf5vv4W7BhOWYgOZShHV0V0NVYBlPiDuMyAbFhql Eg0W8KHYq7FX
Yq7FU1Ty3qfpaRc3Ijs7HXJXisL24kVYj6UixSu5BZo44ncc3Zcxjq4XOI9U 8Q4pwj9fLijw
/wA7ibhglUSdoz+mX8KAu4Ft7y4tlniuVgleL6xA3OGT02K84325RtSqN+0u XYsnHESAI4h/
F9X+cwyQMJGJ6KOTYOxVNdC8u3utJqj20kUaaRp8+qXRlLCsFsAXCcVar/F8 IPH/AFsxdVq4
YBEyv1zjj/zp/wC9b8GnllJEf4Y8SVUzKaHUxVG3eialaabYancw+nY6p631 CYsp9T6s4SWi
glhwdgvxLlMNRCU5QB9eOuOP9f6WyWKQiJEemX0oKmXNbqYq6mKupirqYq6m KupirqYq6mKu
pirqYq1TGkupjSupjSupjSupjSupjSupjSupjSupjSupjSupjSupjSupjSuI 2xpWUflfIU86
20g+1Fa6hIh7hksJ2Vh7qwBGaP2lJGgykfzR/u4u47BgJa3ED1m9cTRE1mwu 7nTlilv7Wjtp
oX968NPikT+chjTgPi/2TRrJ44MXGCY/UP4X1k6k4ZRjOxCf+U/g4/5svx/v uEh1Hy+YPLA1
q/aGyN06rplk6kzXKftyAD7EaghlZvt/5POL1ceeKsfHL039Ef5/4/H8LnYt VxZvDhc+D+9n
/Bj/AKP9KX4/n8HK/wA02eSHy5JIxeRtLZS7GpIj1K8jQVP8saIi/wCSuer+ xlnQG/58/wDc
xfNvaUAa+VdwZH5a/wCUc0r/AJg7f/k0ucrq/wC+n/Xl/um2H0h//9Zrfs/6 6f8AEhmd2b/f
x/zv9xJry/S9v8i/8orY/wDPX/k8+Y3af+MS/wA3/cxTp/oCfZgNzsVdirsV dirsVdirsVfK
9teWmn/m/eahdv6dpZ+ZJbi4kCs3GOK/LueKgs1FHRRyz1jHiMuzoxjvKWm/ 6cvI6mYjqgTy
GT/fPoj/AJXp+Vp6aw//AEhX3/VDOB/kbVfzJO//AJQwfz4sI/OH8zPJXmXy gNL0W/e6vTdQ
yekba6iHBOXI8pYkT/hs2/YXZ2fFqRKcTGLr+09ZinhIjIEsL0u10jUfy40/ RLvVrHT5P8T/
AFy6W7u4LaRbMaeYXlRJWDyfG6oojR/j/wBlm7185YdaMgjKQ8DhjwxlL95x S9Dh6GIy6WUL
H95/sPSyGb8wNO1KXztqEN9FBbahrXl6TRbPUJPQSYW13BFNIIiS/CSO2Es/ GP1Pq/H1U+Hj
mrPZ2TFDAJCXFWaM5Yx64+JH0Q4v86fB6vqc+OrhOeSjGgIS9X0+n+L/AHHE ntjq2n6r+b3l
O5ttWS/uSup/W7CGe3vYbIiGQBEuYFBZJas8Ucx9SKNePCL+7yrgMNFmjwkA eF6+GWPxPXH6
8c/pyQ+mXD9X9P60k8WfHK+fH6dpfwH6ZR+qH4/opJ5Y8z6bH5l/Lh9Z1i0v dZ02xvl8xast
xHcKnrRstnFNeIWikdFaQN+9fjy5t/ec3uOnyTwZ444S8OXheHCj9ceDxeDH /S+pjPJCOXGZ
mPHc/wDSerg/3q3y3deX9P8Ay7k0OLWdPWG48sXCSLf6mWddYPKqRWpk+qxW 8L8iLmKLlcc4
+Ej/ABNJVnGbxhkMJCUJw4eDH/yHiPqnP65S+nijKXo+n0tuM4jExBBjLi4u KX+Uv6eH/TcP
++X+YfNKv+V/6fHP/EPmWGDy9dPQEcLQyvPPUcD+/g+BqfCsjRf5WZWPREa4 YB/dYpHUx/z+
H0/5kvpcX8yPyxyn65R8L/SoP8r9c07SfKsyQ3tnY6wmqxXF39dvYtLjnsVh osUlxLb3fqw+
ry5wRKknxcvUT7Ml3tBp8ksolUpYvDMfTGWXgy39XDGUOGXDw8M/pa+x80OA xsCfF/pofjiT
Hybq1lLplrbaLfWOj31x5vjn1KziukiFzprzH04LR5BA08W8CekkcTTIkiel +89OTD1+HJYl
mEpw/LHgnwy9GbhP95/Nnxf9JOTpckPVHHQl4v07fRY4uH+jwrLO606Wa4gu dXsrCXTvzHut
UukvrqO3LWkUkkfwCQj1Pj4qqjIkZBGEuGcoz0Zw+iJn65cfDH/cs/QZSjcR KOaOT/N9HFL/
AHSZeS9f8pW+sT3aa3ZtZapreutrRvdReOExtPItp9UtRIltcrNGIna5dZvT jR0Vvsenj6nF
nnijcZejHj8Awh6vT9fHk+uPB6/3f+xbYSxRnKiN5fvIyPl/N+n1en1MasfM c0dh+VMb+YYi
dLvriLVljv1UU+sxpC7RmRXkthZfWESXh6Mdu/p/AsnFtl+W48mcmH99g48X o+vJ4YlPh/2z
xfVw/V4nr/hcM5uGEAJf3eXhnv8ARDjlw8X82PB/sfSyHTPN3lhJBdtrmnR+ XBqfmZ/M9k8s
Zk1ET3Mn1Awx0Z7xfRp6fo8v2V+LNZLT5uEExyGZhh/LT3/dShXier/J/wAf pc3jx8RAMaEp
eNH+dGUf+kEv8g+cbKws/wAutIvNXtbWxe11t/M1nLNEqKOZa2+tcj+7Xk7+ lz488ze0dJOW
TPPhlxiOGeLaX+1xyeH/ALLicXSZoDHjAI4TOcJf7Pg4v9iwn8pb22tru7up rm3sdUudGuU0
S/ugohg1GSNTDIzuHSOnx/Gw/wAn9rN32xjyZNNHhBl6oSyxh/Fi/i9P8X8L rdDPHDUSEiB9
UYcX85PdE8yX2l3XmXUtV8zWl3qkXlO6gsdQjuoZuNyOBgt/XHwT3Ycb0ed3 f9t812uwY56e
IxQmMf5iPFGUZf0uLJw/wY/9J/Vi5mkyTGf94Y8Zxfq9P9KSeS+YtEudXGqp rNr/AIlt/LGk
0eXUHsbZruSeU3n12e2eJ/UhRIZfqrSI032eH2WTDnhyxjPFwH8uM8/4PEnj x/5Lw45P4Zf6
p/snIhPHLgycX72WP+dwxnL+Li4f4v6P+x9LXmnzfY6VP+Y2oaBrdlHdajPo B0drSaF3f4kS
5VF35SgGZ5FUMyI/NuODT6aeSOnhljLhhPLDJxCX8XDKH/HU5MkYHLKBFyhG cf8AN42H+btU
e9/LzyNYDVBM1j+kI72wa7BlDiVRZl7cv6six2wlWKT02jhT4OSc15brSaYY +0MpMeETjHw5
V9fpj4vq/reqf+ndZmz8ejjRsxl6/wCh9XB/V/o/6Vhn1ZvDOhp0/G76s3hj S8bvqzeGNLxu
+rN4Y0vG76s3hjS8bvqzeGNLxu+rN4Y0vG76s3hjS8bvqzeGNLxu+rN4Y0vG 42zeGPCvG16B
w8KeN3oHHhXjd6Bx4V43egceFeN3oHHhXjd6Bx4V43egceFeN3oHHhXjd6Bx 4V43egceFeN3
oHHhXjd6Bx4V43egceFeN3oHHhXjZB+X8fpeZvU/lsNUP/ctuM5/2qFdnZv6 o/3cXe+zcr1+
Ef7YHqPk+/0WwhbzFf3fK4sm4WOmQuUmllZftOR9mCh+L+b7L/76m8W084RH GTvH6Yfj+H8f
1vXtfiy5D4MB6Z/Xkl9EI/8AVT8f04BvO+paR5l0seYvra2uuWojt73TJHYr KpJ4yWtS1F6l
4/sr8XL4/juMfWZY5Y+JfDkj6ZQ/nf8AC/x/x+7s3Bk08/B4ePDO5wy/zP6G b/ez/GLkn5hJ
6uneXJB/1bJfw1W+z1z2FF9nE/7ZP/cxfOPa08PaMh/Rj9zIPLn/ACj2l/8A MJB/yaXOU1v9
9P8Arz/3Tbj+ke5//9drfs/66f8AEhmd2b/fx/zv9xJry/S9v8i/8orY/wDP X/k8+Y3af+MS
/wA3/cxTp/oCfZgNzsVdirsVdirsVdirsVfJOr2Oq3vnnzNFptjcX8w1XUHa O2ieZgounBJC
AmgLL/wS567pNTjxaTEZyjAeFj+s8H+TH855DXYJZM0hEWUTF5e85KN
SWT equation chart example: Bugs [message #31950 is a reply to message #31908] Wed, 27 April 2005 22:33 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jaakko_dot_lindvall.pp.inet.fi

Sadly, there are two things which don't work as they should:

A) Chart preloading

As you can see by looking at the source (the source is in
bin/birt-test.jar with the classes, forgot to mention), the main shell
loads the SWT device renderer and builds the chart once before the SWT
canvas is initialized. This is done in the BirtChart constructor.
(Wrapping getDeviceRenderer() in Display.syncExec() was just a test, I
forgot to remove the wrapping.)

So, the BirtChart constructor blocks for 1 to 3 seconds, while BIRT does
its magic. After constructor is completed, calling addTo(Composite
parent) displays the chart very quickly.

1 to 3 seconds is a lot of time, so the preloading should occur in
another thread than the UI thread. The problem is that the preloading
code accesses the UI thread, so it must be run in the UI thread or SWT
crashes to invalid thread access.

"deviceRenderer = getDeviceRenderer();" accesses the UI thread, but
takes few hundred millis, so it could be ran in the UI thread

" Generator().instance().build(deviceRenderer.getDisplayServer (), chart,
null, dummyBounds, null);" is the line which takes most of the time
(about 1500ms) and it accesses the UI thread. If it is ran in the UI
thread, GUI becomes unresponsive for 1,5 seconds and that is unacceptable.

But if no preloading is done, the chart dialog takes a while to show up
and blocks the UI thread while constructing the chart, and that is
unacceptable too.

As for Display.asyncExec(Runnable runnable), I first thought it would
work, but it doesn't. AsyncExec() doesn't block, but it DOES lock up the
UI thread while the passed Runnable is being ran. It seems there is no
way to run stuff in the UI thread without blocking the UI.

Thus, I think the only solution would be that BIRT made the few UI calls
it needs in the UI thread using Display.syncExec() or something and
therefore Generator.instance().build() could be invoked from a non-UI
thread. Of course I have not access to the underlying implementation, so
this is impossible unless devs decide to support it.

Or is there some other way to preload the chart? I just profiled my code
and moved the costly calls to the constructor, but I'm still a newbie
here. I just want to provide a smooth user experience, without UI
hanging up for several seconds.

B) Resizing

Works mostly great (although flickers a bit, but that isn't critical).
The problem is, when I resize the chart dialog to a very small size
where the chart would be hardly displayed at all, the program just hangs
up. No Java Exception or anything. I guess something is being fed with
illegal values, but I'm not sure what and how to prevent this. Any
suggestions?

And as always, thanks in advance for any help!
Re: SWT equation chart example: Bugs [message #31987 is a reply to message #31950] Wed, 27 April 2005 22:38 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jaakko_dot_lindvall.pp.inet.fi

And forgot to mention this: you can verify the fact that the UI thread
is locked while preloading the chart by trying to move the main window
before the label says "done in n millis". The main window doesn't move
until the preloading is done.
Re: SWT equation chart example: Bugs [message #32166 is a reply to message #31950] Thu, 28 April 2005 11:11 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mpadhye.actuate.com

Jaakko Lindvall wrote:
> Sadly, there are two things which don't work as they should:
>
> A) Chart preloading
>
> As you can see by looking at the source (the source is in
> bin/birt-test.jar with the classes, forgot to mention), the main shell
> loads the SWT device renderer and builds the chart once before the SWT
> canvas is initialized. This is done in the BirtChart constructor.
> (Wrapping getDeviceRenderer() in Display.syncExec() was just a test, I
> forgot to remove the wrapping.)
>
> So, the BirtChart constructor blocks for 1 to 3 seconds, while BIRT does
> its magic. After constructor is completed, calling addTo(Composite
> parent) displays the chart very quickly.
>
> 1 to 3 seconds is a lot of time, so the preloading should occur in
> another thread than the UI thread. The problem is that the preloading
> code accesses the UI thread, so it must be run in the UI thread or SWT
> crashes to invalid thread access.
>
> "deviceRenderer = getDeviceRenderer();" accesses the UI thread, but
> takes few hundred millis, so it could be ran in the UI thread
>
> " Generator().instance().build(deviceRenderer.getDisplayServer (), chart,
> null, dummyBounds, null);" is the line which takes most of the time
> (about 1500ms) and it accesses the UI thread. If it is ran in the UI
> thread, GUI becomes unresponsive for 1,5 seconds and that is unacceptable.
>
> But if no preloading is done, the chart dialog takes a while to show up
> and blocks the UI thread while constructing the chart, and that is
> unacceptable too.
>
> As for Display.asyncExec(Runnable runnable), I first thought it would
> work, but it doesn't. AsyncExec() doesn't block, but it DOES lock up the
> UI thread while the passed Runnable is being ran. It seems there is no
> way to run stuff in the UI thread without blocking the UI.
>
> Thus, I think the only solution would be that BIRT made the few UI calls
> it needs in the UI thread using Display.syncExec() or something and
> therefore Generator.instance().build() could be invoked from a non-UI
> thread. Of course I have not access to the underlying implementation, so
> this is impossible unless devs decide to support it.
>
> Or is there some other way to preload the chart? I just profiled my code
> and moved the costly calls to the constructor, but I'm still a newbie
> here. I just want to provide a smooth user experience, without UI
> hanging up for several seconds.
>
> B) Resizing
>
> Works mostly great (although flickers a bit, but that isn't critical).
> The problem is, when I resize the chart dialog to a very small size
> where the chart would be hardly displayed at all, the program just hangs
> up. No Java Exception or anything. I guess something is being fed with
> illegal values, but I'm not sure what and how to prevent this. Any
> suggestions?
>
> And as always, thanks in advance for any help!
Hi Jaakko,

Can you please enter Bugzilla entries for these problems? That way we
can ensure that they are in the queue and do not drop off the radar.

Thanks,
Milind
Re: SWT equation chart example [message #32201 is a reply to message #31908] Thu, 28 April 2005 15:33 Go to previous message
Eclipse UserFriend
Originally posted by: nicholas.gauthier.utah.edu

Thanks for your help Jaakko!

Nick.

Jaakko Lindvall wrote:
> Hi all,
>
> Nicholas asked me to post this in the chart tuning thread, and I thought
> it would be wise to create own thread for it. So here it is: a
> standalone SWT program which plots the inputted mathematical functions
> using BIRT. Source code and all the required libraries included. The
> program uses GPL licensed JEP (Java Math Expression Parser) to parse the
> functions, so I guess it's GPL too. I didn't bother including any
> license, though, it's just a test.
>
> Fetch your copy from: http://koti.mbnet.fi/verkel/birt-test.zip
> Size: ~3,3 MB (required BIRT jars fill most of the zip)
>
> If you're a Windows user, just run the runtest.bat. Linux and Mac users
> need use a proper SWT native library and start the program from command
> line.
>
> I tried to preload the chart so that when you click the "Show the chart"
> button, the dialog is drawn very fast. However, this doesn't work
> perfectly. I'll further discuss this in the reply below this post.
>
> I'll include a screenshot this time too. It's pretty similar to the last
> one, except the axes display floats, plot fills the client area (thanks
> for the helpful devs :) and now a grid is drawn with the blue gradient.
> The appearance is just what I wanted.
>
>
> ------------------------------------------------------------ ------------
>
Previous Topic:Report Integration Help
Next Topic:Comparing Jasper,FOP and BIRT and others
Goto Forum:
  


Current Time: Sat Jul 26 01:40:59 EDT 2025

Powered by FUDForum. Page generated in 0.05705 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top