Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » Java2D + Mac + SWT?
Java2D + Mac + SWT? [message #452949] Mon, 28 March 2005 21:42 Go to next message
Aaron Siri is currently offline Aaron SiriFriend
Messages: 33
Registered: July 2009
Member
I am aware of the various issues with AWT_SWT on Mac. However, some
people claim that BufferedImage works as a way to get Java2D images up
in an SWT window. Is this true? Has anybody gotten *any* type of
Java2D rendering up in SWT on a Mac? Right now, performance isn't an issue.

Thanks,
-Aaron
Re: Java2D + Mac + SWT? [message #453084 is a reply to message #452949] Wed, 30 March 2005 11:13 Go to previous messageGo to next message
Andre Weinand is currently offline Andre WeinandFriend
Messages: 66
Registered: July 2009
Member
On 28.3.2005 23:42 Uhr, in article d29tp2$5kh$1@news.eclipse.org, "Aaron
Siri" <aaron.siri@efi.com> wrote:

> I am aware of the various issues with AWT_SWT on Mac. However, some
> people claim that BufferedImage works as a way to get Java2D images up
> in an SWT window. Is this true? Has anybody gotten *any* type of
> Java2D rendering up in SWT on a Mac? Right now, performance isn't an issue.
>
> Thanks,
> -Aaron

I haven't tried Java2D rendering in SWT myself, however IIRC BufferedImage
should work in SWT if AWT is configured to run in headless mode.

However, in 1.4.2_04 Apple introduced a check in AWT that verifies whether
AWT is running in the correct thread (not the main thread). This check
ensures that AWT cannot be sucessfully started from an SWT application
(which launches the Java VM in the main thread).
The problem is that this check shouldn't be performed if AWT runs in
headless mode because in this mode there is no AWT event thread and there
should be no problems running AWT code in an SWT application.

This bug is fixed in MacOS 10.4.

--andre
Re: Java2D + Mac + SWT? [message #453086 is a reply to message #452949] Wed, 30 March 2005 11:31 Go to previous messageGo to next message
Yannick Saillet is currently offline Yannick SailletFriend
Messages: 24
Registered: July 2009
Junior Member
Aaron Siri wrote:

> I am aware of the various issues with AWT_SWT on Mac. However, some
> people claim that BufferedImage works as a way to get Java2D images up
> in an SWT window. Is this true? Has anybody gotten *any* type of
> Java2D rendering up in SWT on a Mac? Right now, performance isn't an
> issue.
>
> Thanks,
> -Aaron

Aaron,

if performance is not an issue, you can check the simple technique I've
described some time ago in the following paper:
http://www-128.ibm.com/developerworks/java/library/j-2dswt/

I've never tried under Mac, but I don't see any reason why it should not
work for Mac. This technique worked fine under Linux/Motif at the time
where starting an AWT thread from a SWT application still caused a
core-dump.

Yannick
Re: Java2D + Mac + SWT? [message #453103 is a reply to message #453086] Wed, 30 March 2005 16:52 Go to previous messageGo to next message
Aaron Siri is currently offline Aaron SiriFriend
Messages: 33
Registered: July 2009
Member
Yannick Saillet wrote:
> Aaron Siri wrote:
>
>
>>I am aware of the various issues with AWT_SWT on Mac. However, some
>>people claim that BufferedImage works as a way to get Java2D images up
>>in an SWT window. Is this true? Has anybody gotten *any* type of
>>Java2D rendering up in SWT on a Mac? Right now, performance isn't an
>>issue.
>>
>>Thanks,
>>-Aaron
>
>
> Aaron,
>
> if performance is not an issue, you can check the simple technique I've
> described some time ago in the following paper:
> http://www-128.ibm.com/developerworks/java/library/j-2dswt/
>
> I've never tried under Mac, but I don't see any reason why it should not
> work for Mac. This technique worked fine under Linux/Motif at the time
> where starting an AWT thread from a SWT application still caused a
> core-dump.
>
> Yannick

Actually, I've cut-n-pasted your code into my project and have been
using it! :) However, the AWT thread exception is thrown when
BufferedImage is instantiated. :( I've tried running in headless mode
(-Djava.awt.headless=true) but it didn't help. I was hoping that there
was some other trick or property that could be set. Looking at the
win32 version of BufferedImage I don't see any AWT event thread stuff
going on but it could be implemented differently on the Mac (I also
could have missed it in the win32 code, I didn't look that carefully.)

Thank for the help though (and for the helpful paper.) I'm going to
install the preview of Tiger and see if that changes anything. I'll
report my findings here.

-Aaron

-Aaron
Re: Java2D + Mac + SWT? [message #453194 is a reply to message #453103] Thu, 31 March 2005 09:37 Go to previous messageGo to next message
Andre Weinand is currently offline Andre WeinandFriend
Messages: 66
Registered: July 2009
Member
> This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--B_3195114086_196107
Content-type: text/plain;
charset="US-ASCII"
Content-transfer-encoding: 7bit

On 30.3.2005 18:52 Uhr, in article d2elim$j8r$1@news.eclipse.org, "Aaron
Siri" <aaron.siri@efi.com> wrote:

> Yannick Saillet wrote:
>> Aaron Siri wrote:
>>
>>
>>> I am aware of the various issues with AWT_SWT on Mac. However, some
>>> people claim that BufferedImage works as a way to get Java2D images up
>>> in an SWT window. Is this true? Has anybody gotten *any* type of
>>> Java2D rendering up in SWT on a Mac? Right now, performance isn't an
>>> issue.
>>>
>>> Thanks,
>>> -Aaron
>>
>>
>> Aaron,
>>
>> if performance is not an issue, you can check the simple technique I've
>> described some time ago in the following paper:
>> http://www-128.ibm.com/developerworks/java/library/j-2dswt/
>>
>> I've never tried under Mac, but I don't see any reason why it should not
>> work for Mac. This technique worked fine under Linux/Motif at the time
>> where starting an AWT thread from a SWT application still caused a
>> core-dump.
>>
>> Yannick
>
> Actually, I've cut-n-pasted your code into my project and have been
> using it! :) However, the AWT thread exception is thrown when
> BufferedImage is instantiated. :( I've tried running in headless mode
> (-Djava.awt.headless=true) but it didn't help. I was hoping that there
> was some other trick or property that could be set. Looking at the
> win32 version of BufferedImage I don't see any AWT event thread stuff
> going on but it could be implemented differently on the Mac (I also
> could have missed it in the win32 code, I didn't look that carefully.)
>
> Thank for the help though (and for the helpful paper.) I'm going to
> install the preview of Tiger and see if that changes anything. I'll
> report my findings here.
>
> -Aaron

I just verified that the SWTTest code from Yannick's paper works fine on
MacOS X 10.4 (Tiger) (see attached picture).
The Radar bug for the exception thrown in headless mode is 3867646.

--andre





--B_3195114086_196107
Content-type: image/jpeg; name="SWTTest.jpg";
x-mac-creator="474B4F4E";
x-mac-type="4A504547"
Content-disposition: attachment;
filename="SWTTest.jpg"
Content-transfer-encoding: base64

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA8LDA0MCg8NDA0REA8SFyYZFxUV Fy8iJBwmODE7
OjcxNjU9RVhLPUFUQjU2TWlOVFteY2RjPEpsdGxgc1hhY1//2wBDARARERcU Fy0ZGS1fPzY/
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX1//wAAR
CAIaAikDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDvvMNZ+s6ymkWiTyRvK0kg ijjTALMegyen
Sru1/WsnxFFay6cItQs7i7hdwMQRl2Q4OG45H196GCEfxBNbJbnUNMmtTPcL bjMisASODkHp
SnxNai41WEq2dNTe5yPn45A/HiuZh07Vbnw1qcBS8aGGRXsBcJiUhTnp1+lV joepvNp0htpd
+phhfkRkbAZQ/wA3pxxz6Yo6gdPL4muoWtll0S6U3LbYh5kfzHGfXj8a2rO6 muLcST2z2zkn
927AkfiDisfXba4l1DRWiikdY7rc5VSQg2nk+grc2v60AP8AMNHmGmbX9aNr +tAD/MNHmGmb
X9aNr+tAD/MNHmGmbX9aNr+tAD/MNHmGmbX9aNr+tAD/ADDR5hpm1/Wja/rQ A/zDR5hpm1/W
ja/rQA/zDR5hpm1/Wja/rQA/zDR5hpm1/Wja/rQA/wAw0eYaZtf1o2v60AP8 w0eYaZtf1o2v
60AP8w0eYaZtf1o2v60AP8w0eYaZtf1o2v60AP8AMNHmGmbX9aNr+tAD/MNH mGmbX9aNr+tA
D/MNHmGmbX9aNr+tAD/MNHmGmbX9aNr+tAD/ADDR5hpm1/Wja/rQA/zDR5hp m1/Wja/rQA/z
DR5hpm1/Wja/rQA/zDR5hpm1/Wja/rQA/wAw0eYaZtf1o2v60AP8w0eYaZtf 1o2v60AP8w0e
YaZtf1o2v60AP8w0eYaZtf1o2v60AP8AMNHmGmbX9aNr+tAD/MNHmGmbX9aN r+tAD/MNHmGm
bX9aNr+tAD/MNHmGmbX9aNr+tAD/ADDR5hpm1/Wja/rQA/zDR5hpm1/Wja/r QA/zDR5hpm1/
Wja/rQA/zDRvNM2v60bX9aAEWeZlBaGNT6GTkfkKXzpf+ecX/fw//E1mahPM biO1gcoCNzuB
yB0AFQTLNaqJbWed2XkpK5YMPx6UAbXnS/8APOL/AL+H/wCJo86X/nnF/wB/ D/8AE1FFIJYk
kU8OoYfjWTG8t+zSyzTRxE/u0iYrx6kigDb86X/nnF/38P8A8TR50v8Azzi/ 7+H/AOJrJtZp
ob0WzyPJDIDsZ+WBHOM96s6hcyW9vmHBldgi5HAPr+lAF3zpf+ecX/fw/wDx NHnS/wDPOL/v
4f8A4msbyH8rzPtd152M53nbn/d6Vc0+4kuLfM2BKjFHwOCfX9aALvnS/wDP OL/v4f8A4mjz
pf8AnnF/38P/AMTTc+9GfegB3nS/884v+/h/+Jo86X/nnF/38P8A8TTc+9Gf egB3nS/884v+
/h/+Jo86X/nnF/38P/xNNz70Z96AHedL/wA84v8Av4f/AImjzpf+ecX/AH8P /wATTc+9Gfeg
B3nS/wDPOL/v4f8A4mjzpf8AnnF/38P/AMTTc+9GfegB3nS/884v+/h/+Jo8 6X/nnF/38P8A
8TTc+9GfegB3nS/884v+/h/+Jo86X/nnF/38P/xNNz70Z96AHedL/wA84v8A v4f/AImjzpf+
ecX/AH8P/wATTc+9GfegB3nS/wDPOL/v4f8A4mjzpf8AnnF/38P/AMTTc+9G fegB3nS/884v
+/h/+Jo86X/nnF/38P8A8TTc+9GfegB3nS/884v+/h/+Jo86X/nnF/38P/xN Nz70Z96AHedL
/wA84v8Av4f/AImjzpf+ecX/AH8P/wATTc+9GfegB3nS/wDPOL/v4f8A4mjz pf8AnnF/38P/
AMTTc+9GfegB3nS/884v+/h/+Jo86X/nnF/38P8A8TTc+9GfegB3nS/884v+ /h/+Jo86X/nn
F/38P/xNNz70Z96AHedL/wA84v8Av4f/AImjzpf+ecX/AH8P/wATTc+9UhdS C9uoyGkSJEZU
QDJJzn+VAF/zpf8AnnF/38P/AMTR50v/ADzi/wC/h/8AiaoxajFKyIVkRmkM ZDAfKwGcHB9K
H1FFhaZIppY1LAsgHG3qeTQBe86X/nnF/wB/D/8AE0edL/zzi/7+H/4mo1dW QOG+UjIOO1KH
U9HB+lAD/Ol/55xf9/D/APE0edL/AM84v+/h/wDiayri5lGpeQ92bVML5XyA iU9xk/y4qC61
O4t4ZBw0sdyVbj/lmBuz+VAG550v/POL/v4f/iaPOl/55xf9/D/8TWYZbidr mSK58uOI7VAQ
HdgZPX34/CkiF49klwb4gtEH2+UuM4zQBqedL/zzi/7+H/4mjzpf+ecX/fw/ /E1mQ3Lw2cVz
dTtKZlXaioAdxHQf/XqT+04fJR1WRnaQxeWANwYdR1x29aAL/nS/884v+/h/ +Jo86X/nnF/3
8P8A8TVEXrm/W2+zybWjDluPlye/NSzS7Li3TzCPMYjG3OcAnr2oAs+dL/zz i/7+H/4mjzpf
+ecX/fw//E1QOpIrSLJDMjJGZMFRllHUjB/nipGvY9+yNXlbyxJ8gB4JwPz/ AKUAW/Ol/wCe
cX/fw/8AxNHnS/8APOL/AL+H/wCJqta3SXSOVDIyMUZWAyD+GRUu9c43jPpQ BJ50v/POL/v4
f/iaPOl/55xf9/D/APE1FLIsUTyO2FRSx+gqlDc3CTWguWG24jORtxtk64/L P5UAaXnS/wDP
OL/v4f8A4mjzpf8AnnF/38P/AMTWZDqB8sSOGkM0jeRHGoyUHfnH1/GnfbPO mszEzKru6yIw
wQQp4P0IoA0fOl/55xf9/D/8TR50v/POL/v4f/iaqR3sUggK7v35IXI9ATz+ VVxq8TbNsFwR
JkIRH94jsOf16e9AGn50v/POL/v4f/iaPOl/55xf9/D/APE1Q/tKLyYnVJGe UkLEAA2R16nH
H1oGpwuYRCskpmXeAoHAzg5yRQBf86X/AJ5xf9/D/wDE0edL/wA84v8Av4f/ AImqtxM63FvD
GwzIxLcfwgc/rgfjVKTU1jtr3fcIJ4mcICPTpQBr+dL/AM84v+/h/wDiaPOl /wCecX/fw/8A
xNZMct3c3EkcdyItkMbj92DksDn+VPS+lOlyTOFFwhaPaOhcHA/M4oA0/Ol/ 55xf9/D/APE0
edL/AM84v+/h/wDiaoxzS/2ibdnBRYFfp1bJB/lTvPf+9+lTKSiNK4s0ZE6z hS/y7WA649qW
ZhMhSKNwx4yy4ApfIl/5/J/++U/+Jo8iX/n8n/75T/4mqESxqI40jU8KABx6 VXtwLUGN42Kj
7rKueKd5MmcfbJ8/RP8A4ml8iX/n8n/75T/4mgBoTzblZdpRUzjcOSTxTrqI yxrtILI25Qe5
o8iX/n8n/wC+U/8AiabsOcfb5c+n7v8A+JoAeJk2bfJl3emz+vSi2iMSNuID O25gO1MCMW2i
+mJ9MR//ABNO8iX/AJ/J/wDvlP8A4mgCfPvRn3qv5T5x9tnz9E/+JpfIl/5/ J/8AvlP/AImg
CfPvRn3qDyJf+fyf/vlP/iaPIl/5/J/++U/+JoAnz70Z96riKQkgXs5I4PCc f+O0vkS/8/k/
/fKf/E0AT596M+9QeRL/AM/k/wD3yn/xNHkS/wDP5P8A98p/8TQBPn3oz71U x8+z+0JN3Tb+
7z/6DUnkS/8AP5P/AN8p/wDE0AT596M+9QeRL/z+T/8AfKf/ABNI0TqMtezA epCf/E0AWM+9
Gfeqyxu4yl9Mw9QEP/stO8iX/n8n/wC+U/8AiaAJ8+9GfeoPIl/5/J/++U/+ Jo8iX/n8n/75
T/4mgCfPvRn3qDyJf+fyf/vlP/iajx8+z+0JN2cbf3ef/QaALefejPvUHkS/ 8/k//fKf/E0j
ROi7nvZlA7kIP/ZaALGfejPvVcQyEAi8nIPcBP8A4ml8iX/n8n/75T/4mgCf PvRn3qDyJf8A
n8n/AO+U/wDiaPIl/wCfyf8A75T/AOJoAnz70Z96rCNiCRfTEA4OAnX0+7Tv Il/5/J/++U/+
JoAnz70Z96g8iX/n8n/75T/4mk8mTOPtk+fon/xNAFjPvRn3qDyJf+fyf/vl P/iaPIl/5/J/
++U/+JoAnz71mSWU1zJeM7CISFFQH5shSTyPQ56Vb8mQ5/0yfj2T/wCJpfIl /wCfyf8A75T/
AOJoAorpTC2nh+0KpkcSoyRbfLYY6DPTinXGkrKsKJMqxxxGLa8e/r/EOeG9 6ueRL/z+T/8A
fKf/ABNHkS/8/k//AHyn/wATQAsMRW1SGZlkwu1vlwGH0pYreCEkwwxxkjBK IBmo2jZBl76Z
fqEH/stO8mT/AJ/J/wDvlP8A4mgCC9tJrxXha4QW74ypiyw+hz/Sh9NjkvJb hnOJYfKKY/X8
sCp/Il/5/J/++U/+Jo8iX/n8n/75T/4mgBlraC2sFtRIWwpBcjqT1P61JHD5 dmlvvztjCbse
2M0xY2bO2+mOPQJ/8TTvIl/5/J/++U/+Jo3DYgn09JrCG1ZwTDt2syZBIGOR 3HtTWsXNn9n3
WoBbJH2b5MY/u56++as+RL/z+T/98p/8TR5Ev/P5P/3yn/xNAEMNk8EsDpcE iOLynDrkuOxz
ng1GUuHu7ZH3v5JdnmKhQcqQMfn+lWPLffs+3Tb8Z24TOPX7tKYnHW9nH1Cf /E0AU7PS2tbh
JfPjYKhjYCHBcHuTnk8daE0kR2csC3BJdgQzLkBR0UjPIxx+NW9jf8/035R/ /E07yJf+fyf/
AL5T/wCJoAi0+zaz84GVGWRt+Fj2hTjB79OKlNramTzDBCZM7t3ljOfXNHkS /wDP5P8A98p/
8TSGKRet5cfQKhJ/8douAl7G88HkpyHZQ/8Au55/Tj8aTULQXtsYfNMTAhlc DlSO9OEMhGRe
T/8AfKf/ABNL5Ev/AD+T/wDfKf8AxNAEUtnxbm2lET242pldw2kYIIyPQU2G w8toXM250kaR
ztxuLAj8Kn8iX/n8n/75T/4mkMTj719Mv18sf+y0AVrfT5YpYC91vjgLbEEe OCD1OevNSxWX
lrajzc/Zyx+797II/DrUxtplBJu58Dnon/xNJ5Ev/P5P/wB8p/8AE0AU5dKS SOMGRGeOR3Xz
ItyncSSCuf8AOKW40154I4TLAqr3WDBU5zlefl/WrfkS/wDP5P8A98p/8TR5 Ev8Az+T/APfK
f/E0ANSJzfPM/wB1Ywkf55Y/y/Kmm0za3UHm/wCvLnO37u6pPIl/5/J/++U/ +Jo8iX/n8n/7
5T/4mgCsLGeOZpLe7VN0aId0W4/Lnkc+9O+x+WttBGS0SSGSRm6seT/6Ec/h U/kS/wDP5P8A
98p/8TR5Ev8Az+T/APfKf/E0ARz20rXK3NtOscmzYwdNwIzn1FVP7LvP+gq3 /fkf41f8iX/n
8n/75T/4mjyJf+fyf/vlP/iaVkO7RP8AnUEdtJIxk88gbj8vPr9an/OiFmjU qygjcSCD6mqT
sS1cjlhdTncpBIO7nI6j+tQ3N4ttLFG0M7mU4UoARn86sSvJINuxQMg7t3OA c9MUpAOMg8dK
iKtcpi/nUcM2xUJDEGNRwM+tSfnVMJKAitCWCrg/dIJ455q0iWTySF9xwwBK DkY/ip7ttGRn
OQOT6mqsaTABTEwBcHjGAOM9PxqxMrNGQn3uCM+xzRYBrTMI9nyZ5yODzn6i nI3O3+E52kNn
gGq269/55j9P8algE5k3zAKACAB/+v2qmkJNlj86ZLu8s7fMz/sYz+vFP/Oj 86gozYQ0iyOJ
ywEvzBxjcw6dhjoPx/W1aTtMrb2QsvB2HkfUdvzNRtZ5lGxnRdp3ng7yTnp+ f51YihSJVVQe
M8nrz1oJVyG2vFuZZY1hnQxHDFwAM/nSahKYrfjPzMFNWgAM4B560yaJZoij Z56H0pMb2IGi
iOmxzZWPC556GiylLWpOGbYcADqeM4/WopLS4kCRs6+WgwOv54/+vVyGJYYg i546n1NTFWZK
vcis7tbxGdIpowp2/vABk/nTZWb+0bdWXMZ7n17/ANKtAAdARTZI0kXa6kiq auU1cpJNEL8+
SxEXQsTxVyWURQtLtdwozhOSfpVCW3uo5ybVcJjjn1xnv7Vaskljg2TZyDgD 0GKmOmhfIlG9
x1pcC6gWZY5UVugcAE1P+dIAAAACAO1L+dWSRyjeY48kK74b6YJ/piopBKt0 lurIyMcmERja
sfTJPrU0ib1xkgggg+hpN1xv37I9+3bv3NjGf7v/ANeqTJaCIbTJGCSqPgfT AP8AXFNmIXe7
lgAmUOcYI6jPbPFPjTYuMkkkkn1NSKkZJaTkjge1S3YpIqhUBCmQPgAnIzvP c/y/yc1NGpVA
DnvwO1RQwssrSOTnkL9M9T71Y/OpS1uPpYPzpgY73BVtqANxyT9BT/zqvMsh c4jLo6gN0zwT
6/WqtcQyKORYXlKYBZztfIODnn9fy/WygIUZ3ZqAJk4Fqq+7BcD8qnRAiBVz gUOKTuJPSxTu
ZVKXAbzTjjGDjpUit5jgKGG4g5YHIxn/AB/x91mgkYS+XIBv7MvfGOtPSJxJ vkk3ELtGFx/X
2rPlbZpdWJJG2Ru+CdoJqiWgWKGW4DyvNkgjt9BV8gEEEEg1UEFzENkEimMH K7xkr9OKtmUr
j7Z/MY442jBxnJ5PXJpEvFe8e1EM4ZBksQNuPrmpYIfJU5Ys7HLN6mpMDOcH PrRFWVirt7i/
nTXbYjNgnaCad+dNkXfG6ZI3AjPpTYFG+hkMkbCYYxg5YL+We1Q208vmxooP XBAbIx34q8q3
C5JRCx6nef8ACpEViQ8n3h0A6Cs1KbsmOUV3HkgDJJAFQNOpwT/qu5B5Iqxg EjdkjuPWormF
Z5VONqY+Yd29Kp66AtAjXkNlsAYGepqX86Pzo/OmlZA3cPzqC7uFt4S3Jcg7 V9TUrlwPkXcf
c4/pWdPZXU0rOWTJ6ZY8D06Um2tgINJkaS+kZ2LOyEk/iK2M4kXkj8fcVDa2 kVsvyrlz958c
n/61SPuDqyqx45x9R7j0qkJkW4tCGMmN6/3umQPV/epYmLbgTnBHI9wD6n1q uYZAhVPNXC4X
DsMccfxVZSNY87d3JySWJJ/OqdiVcf8AnUZZhPHxhQc5J6nB4qT86jlEjKVT HI/j6ZyPTn1q
JK6si07DoTksGAwHOGB65JP6fjTHl8u280q77VyQvJNSJkKoOAQBkKDj8KSM ERqDkEAZppWV
hXuyK0uBdQLMscqK3QOACaeRHM7RtsJGCQ4B/T8ev+Q8AAAAEAdqY+4SK6qz AAggYzzj1+lT
O6Wg1a+opkV43ZcHAbJGDzj1xUd3cC1gaZo5XVeoQAkU9EPkrGxPCbTj6Yp5 AIIIJB7VS21E
Nhk82JZNjpuGdrDkVAnnteMpZhHjrxkDnH9f/HferX50113YIJDDoaTvbQEA SRcgbCMnBLnO
M/ShWDorDOCMio0hJGZC+4kn5XbHWpQAAAAQB0AqYKXUp26DQgmj3FsMSCuR nbg/zoO9GQM4
YMccLjHBPr7U2SIP3IBILAjIOKcsUaHKRhT6gYpKMrhdWIHvFS8S1MM5ZxkM ANuPrmrX50mB
nODn1pfzrQkPzpMg55PFU4YXURNJdcOm75i3t6tjvU0XMpUFTsHVCTuyT7// AF6UnZqwLUn/
ADrIjvb24jWaNoIo3G5FZCxAPTJ3Dmtf8656PjRUP/TsP/QaG7K4Iu+fqH/P a2/78t/8XR5+
of8APa2/78t/8XRfRwDULWyitreNZ1djIseGUrgjBFMiLFWDNuKuyZxjOGIz +lGqdmg0ew/z
9Q/57W3/AH5b/wCLo8/UP+e1t/35b/4uqQvnMcsoiUpGSCN/zDBxyMccZNKb 4eZNGke5kZVX
nG4n/J/KmBc8/UP+e1t/35b/AOLo8/UP+e1t/wB+W/8Ai6qpPcu8ii3iyhwf 3p9Af7vvRFdO
UaSaNI41JXIcsSQcdMUAWvP1D/ntbf8Aflv/AIujz9Q/57W3/flv/i6h+1Qn ZhiS+QAFJPHX
Ixx+NLHcJJNJEobdGcHKnH50AS+fqH/Pa2/78t/8XR5+of8APa2/78t/8XVc 3caqWkOAGYZA
LAYPfjipPPiPR/49nT+L0oAk8/UP+e1t/wB+W/8Ai6PP1D/ntbf9+W/+LqOK eOYsEJyuCQVI
/nVfUN4MDedJFEJAH8ojdzwOo55PTvQBc8/UP+e1t/35b/4umSXeoIY/3tuV Z1Q4hbIycD+P
1Iqtc291b31tDLeF5SS5CKEj8scdDkljkd8D+c9x92L/AK7xf+hrQBe8vUP+ fm3/APAdv/i6
PL1D/n5t/wDwHb/4urf50fnQBU8vUP8An5t//Adv/i6PL1D/AJ+bf/wHb/4u rf50fnQBU8vU
P+fm3/8AAdv/AIujy9Q/5+bf/wAB2/8Ai6t/nR+dAFTy9Q/5+bf/AMB2/wDi 6PL1D/n5t/8A
wHb/AOLq3+dH50AVPL1D/n5t/wDwHb/4ujy9Q/5+bf8A8B2/+Lq3+dH50AVP L1D/AJ+bf/wH
b/4ujy9Q/wCfm3/8B2/+Lq3+dH50AVPL1D/n5t//AAHb/wCLo8vUP+fm3/8A Adv/AIurf50f
nQBU8vUP+fm3/wDAdv8A4ujy9Q/5+bf/AMB2/wDi6t/nR+dAFTy9Q/5+bf8A 8B2/+Lo8vUP+
fm3/APAdv/i6t/nR+dAFTy9Q/wCfm3/8B2/+Lo8vUP8An5t//Adv/i6t/nR+ dAFTy9Q/5+bf
/wAB2/8Ai6PL1D/n5t//AAHb/wCLq3+dH50AVPL1D/n5t/8AwHb/AOLo8vUP +fm3/wDAdv8A
4urf50fnQBU8vUP+fm3/APAdv/i6PL1D/n5t/wDwHb/4urf50fnQBU8vUP8A n5t//Adv/i6P
L1D/AJ+bf/wHb/4urf50fnQBU8vUP+fm3/8AAdv/AIujy9Q/5+bf/wAB2/8A i6t/nR+dAFTy
9Q/5+bf/AMB2/wDi6PL1D/n5t/8AwHb/AOLq3+dH50AVPL1D/n5t/wDwHb/4 ujy9Q/5+bf8A
8B2/+Lq3+dH50AVPL1D/AJ+bf/wHb/4ujy9Q/wCfm3/8B2/+Lq3+dH50AVPL 1D/n5t//AAHb
/wCLo8vUP+fm3/8AAdv/AIurf50fnQBU8vUP+fm3/wDAdv8A4ujy9Q/5+bf/ AMB2/wDi6t/n
R+dAFTy9Q/5+bf8A8B2/+Lo8vUP+fm3/APAdv/i6t/nR+dAFTy9Q/wCfm3/8 B2/+Lo8vUP8A
n5t//Adv/i6t/nR+dAFTy9Q/5+bf/wAB2/8Ai6PL1D/n5t//AAHb/wCLq3+d H50AVPL1D/n5
t/8AwHb/AOLo8vUP+fm3/wDAdv8A4urf50fnQBU8vUP+fm3/APAdv/i6PL1D /n5t/wDwHb/4
urf50fnQBU8vUP8An5t//Adv/i6PL1D/AJ+bf/wHb/4urf50fnQBBCJofLxB FlU2khyN3Tn7
vtUg8xpmkkULlQoCtnpn2HrQzlCN+3B4yrZwffin/nSTAPzrn4kZ9GREGWa3 AA99tdB+dZGm
QNLp1sykAeWo5+gpgRhx9v8Atr2947qCEUsm1MjnHzd8U+DdsYupQtI7bTjI BYkdPrV0WchI
G5fzp/8AZ8395PzP+FDbe4kktjI+yM8xkmdGyhT5UwSD68802HT1ieB/MLGI EHj7xPf9TWwb
CYY+ZOfc/wCFL/Z8395PzP8AhQMz44tjytnPmNuxjpwB/SoXsw9s0Jfq5cHH Q7s9K1v7Pm/v
J+Z/wo/s+b+8n5n/AAoAxnsWaNEDxoVJO5IyCPpzxUjQyo88kUgHmYONuTkY 9/QVq/2fN/eT
8z/hR/Z8395PzP8AhQBgmylnjbc/lBy/yMN2Mng8Hr+dWBZ4uPOMhztxgDA3 Yxu/Ktb+z5v7
yfmf8KP7Pm/vJ+Z/woAyLS0e3kZ2lD7lCn5cE475yfWpLi3eaSGSOdoXiYkM qg9Rg9QcH3rT
/s+b+8n5n/Cj+z5v7yfmf8KAMc2J3xYupzFHJ5myRt+W55DNkjOecHmp7j7s X/XeL/0Na0f7
Pm/vJ+Z/wqOXS5pU2+aqEMGDKeQQQR1HqKALn50fnVT+z9Q/6CMn5J/8RR/Z +of9BGT8k/8A
iKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn 5J/8RR/Z+of9
BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+ z9Q/6CMn5J/8
RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKAL f50fnVT+z9Q/
6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8 k/8AiKALf50f
nVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z +of9BGT8k/8A
iKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn 5J/8RR/Z+of9
BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKALf50fnVT+ z9Q/6CMn5J/8
RR/Z+of9BGT8k/8AiKALf50fnVT+z9Q/6CMn5J/8RR/Z+of9BGT8k/8AiKAL f50fnVGWzvYo
nlk1OQIilmO1OAP+AVBi5yoOoXS7mCgtb7RknA5MfrQBq/nR+dVP7P1D/oIy fkn/AMRR/Z+o
f9BGT8k/+IoAt/nR+dVP7P1D/oIyfkn/AMRR/Z+of9BGT8k/+IoAt/nR+dVP 7P1D/oIyfkn/
AMRR/Z+of9BGT8k/+IoAt/nR+dVP7P1D/oIyfkn/AMRR/Z+of9BGT8k/+IoA t/nR+dVP7P1D
/oIyfkn/AMRR/Z+of9BGT8k/+IoAt/nR+dVP7P1D/oIyfkn/AMRR/Z+of9BG T8k/+IoAt/nR
+dVP7P1D/oIyfkn/AMRR/Z+of9BGT8k/+IoAt/nR+dVP7P1D/oIyfkn/AMRR /Z+of9BGT8k/
+IoAt/nR+dVP7P1D/oIyfkn/AMRR/Z+of9BGT8k/+IoAt/nR+dVP7P1D/oIy fkn/AMRR/Z+o
f9BGT8k/+IoAsKVnkceZlAoPDHByT6H2/Wgh4ygaQOGO3hcHoTnr7Ujx7m3K 7ocYJGOfzFCx
YYM0kj7eQDjg/gKztLmuVpYk/OqOif8AILt/9xf/AEEVe/OqOif8gu3/ANxf /QRWhJoL94fW
snxZI8VnZyQyPHKt0PLaMZbdsfAA75PGO+cd61l+8PrU7IjsjOisUO5SRnac EZHpwSPxpxdn
cTV1Ygs2untLd76JIrkjMiI2QDj/AD6/U9ai1Z3WzCRuYzLIkRdeqhmAJq4e q/X+lNnhjuIX
hmQPG4wwNJj6FGQ/Y5LawsVhg8wMwZwSOMdsjJOfXsabfx+SkF+CgukdFZox gSAkAr7jnj0q
2LKFrdYLgG6RTkeeAx/lSGxhM8Uh3FYceXFwEQ+oA7/XpQTYsOSEYqMkDisS 1aK10dNRjVJL
qVFDyuerMwB3H0BP6Vu1XFlaCSSQW0IeUEO2wZYHrn1oG1czm1C9W5+xj7O0 3mBDJghcFC3T
PUY6Z9OlIusSRW8VxcxoYpA6howfmkUnGPZgOKuyaZZyLCn2eNYonL+WEG1i QRyPxp8tmsss
JaQiCIgrCoAXcOh9ePT2pCsyqlzqUlyYVS2BiEZlznnd94DntzzSpOYLjUpJ UjLQorlo1ILL
gkA8npWiEQOzhVDNjJA5OKje2hd2k8tFmZSvmhRuA+pFNjSMO5vbqYLExtnf dBKqpkBSXGFJ
yc9ucVNc3V80BUmESQ3aRsylkDDKkevHODVyy0qC1ZnO2Rm2gDy1VVwcjAAA znnNXGghdHR4
Y2WQ5cFQQx9/XoKCUn1FiLmMGUKH77TkVnS28Da7CzICxhZzz/EGUA1oxxxw xrHEioi9FUYA
qNrO0efz2tYWmyD5hjBbI6c0dSmtDlJPM+zsqBonmjYKwkz5jeaBkjtj+ta+ kz3Nzqc0tzG0
WYECo3BGCQTj65/CtNLK0QsUtYFL/eIjAzznn8am2Jv37RvIxuxzj0pLQnlM /UESe/srec5g
cOxQ9HYAYB/MnHtUVzeS2pnjtRAkNnCrlXzlwc8A546YzzzWnPBDcR+XPEkq ddrrkUxrO0Yx
FraE+UMR5QfJ9PSgbRTS6vpbibykgFvDJtbdncRtB/DGR/nq3Tr+6uJ4UuBB ia384CPOU6dc
+uf071peWmHCqF38sQOpxjNQ2Vlb2MCxQRquFAZgoBbA6nHU0wsydHSRQyMG U9wcis7WEgmV
LdoVmuJAwiDHAX1Y+mOPf0rQiijhjEcMaxoOiqMCmT2ttclTcW8UxXp5iBsf nSY3scvfCZJp
gjl7i08rbM+eFCrgL7sxP5U62mlW9hu0Ri/myJKBnfMcMSAPRQFA9zXSmztT JHIbaLfEAEbY
MqB0A9KVbW3SdrhII1mbhnCjcfxoI5DK0WaV728+0ed5rhHIaNlCcH5RkduP rjNbdNCIHZwq
hmxuIHJx606mWlZGD4guZUmgSFnBgH2hgqk7sHABx0z83X0q3EIf7aE0KqPO ttxYD73zDB9+
K0PLTczbF3MMMcckeh/M0z7Lb7o28iLdEMRnYMoPQelCE0VNPjjivtQSJFRf MU7VGBygqfUL
iS1s3miVXcFQFY4ByQP61MIIROZxDGJiMGQKNxHpmnOiSLtdQy+hGRQOxmXT XiWwN2tq4E6A
qEOCpZQD14IJP5UmpalNbPOITAq28SuxlyS5JOFGCPTr71pyxRzRmOaNZEPV XGQfwqjd6TDd
OpZgkaqE2LGnC+gOMgfSkJp9CpDcXUFzMUERge98sg53EkDn2xx659qmsJr3 ybtnELlJJdo8
w53A8DkcCtLyYv8Ankn3t/3R971+vvTDaWxkeU28RkkG122DLD0PrTCzK+mX ctwJEuSBPHjc
gjKbc/ic9DyDS3txcpcW9varFulDktJnC4x2HXrVmC2t7ZStvBHECckIoXP5 U8ohdXKgsucE
jkZ60DSdjJm1C/SfyUt0Z4o0eUDoxPXBJGAMHnmpVvrhdRaG4VY4mZhEBGW8 zAz94HAPB4Iq
7Na207q89vFIyfdLoCRSLaWqTm4S3iWY9ZAg3H8aBWZlRaretZy3b26CPyDL GemCP4Tyc/XA
qzJdXtogmvVg8nzFDmPPyKR159D39PSra2VorSMtrCDICHIjHzA9c+tTOiSI ySKrIwwVYZBF
AJMxn1S9fyhbQLumV5UyucoDheMjk5zntnpTLy9muAEPlQok8CsjHLsxKtgc 44z75wa2JrW3
uEVJ4IpFX7odAQPpSGztTIJDbQlwAAxQZAHSgTTZFqTodPvUDAssDkrnkfKa dqH/AB7p/wBd
ov8A0YtOuLWOaK4UKqSTxmNpAvOMED69agaznkKB5bYKrh/ktyD94Medxxkj mgsv0UUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAY7XcoeUCGQYGFU4 J3dyQOccirMc
8UrFUfJHb29fce9U2WW2mZkRikzbVUHlcDIx2xwePpU1rFOpZ5GKBmz5eAR9 frmglN3LX51R
0T/kF2/+4v8A6CKvfnVHRP8AkF2/+4v/AKCKCjQX7w+tWarL94fWnz3MFsYR PIsfnSCNN3Qs
QSB+OD/KgCQ9V+v9KdTW6r9f6Uy3uIrqFZoGLRtnBKkd8dDQBLRRRQAUUUyO SOVS0bq4BKkq
c8g4I/OgB9FITgEntTIpUmhSaPdsdQw3KVOD7HkUAPzSFgKjkfFUwfN+eT5l P3VzxigC/wCY
KTzRWFeanZ2k62wtjcXBGfKhjDMB6nOAPxNLZ6nZ3U5tjbG3uAM+VNGFYj1G Mg0AbnmijzRV
FvJVSzRxAAZJKjisr+3LRwz2+nT3EK9Zo4F2/qQT+VAWOj80UeaKy7S5tL23 We2WJ4277Bwf
Q+hpl9e2WnxCS4SMbjtRFjBZj6AUAa/mijzRXOprVmJUjurGW08w4Rp4lCk/ UE4/GtXbH/zx
i/74FAF3zRR5oqltj/54xf8AfAo2x/8APGL/AL4FAF3zRR5oqltj/wCeMX/f Ao2x/wDPGL/v
gUAXfNFHmiqW2P8A54xf98CjbH/zxi/74FAF3zRR5oqltj/54xf98CjbH/zx i/74FAF3zRR5
oqltj/54xf8AfAo2x/8APGL/AL4FAF3zRR5oqltj/wCeMX/fAo2x/wDPGL/v gUAXfNFHmiqW
2P8A54xf98CjbH/zxi/74FAF3zRR5oqltj/54xf98CjbH/zxi/74FAF3zRR5 oqltj/54xf8A
fAo2x/8APGL/AL4FAF3zRR5oqltj/wCeMX/fAo2x/wDPGL/vgUAXfNFHmiqW 2P8A54xf98Cj
bH/zxi/74FAF3zRR5oqltj/54xf98CjbH/zxi/74FAF3zRR5oqltj/54xf8A fAo2x/8APGL/
AL4FAF3zRR5oqltj/wCeMX/fAo2x/wDPGL/vgUAXfNFHmiqW2P8A54xf98Cj bH/zxi/74FAF
3zRR5oqltj/54xf98CjbH/zxi/74FAF3zRR5oqltj/54xf8AfAo2x/8APGL/ AL4FAF3zRS+Y
Ko7Y/wDnjF/3wKNsX/PGP/vkUAXwwNLms4nyvnj+VR95c8Yq5G+aAJqKQUtA BRRRQAUUUUAF
FFFAFPAyGwcjjNL+dczbz3H2mMiRmYsi8yNzz0PtzWk8iza5D5RLeWrB+Pun mhagzU/OqOif
8gu3/wBxf/QRV786o6J/yC7f/cX/ANBFAGgv3h9azfE9pPfWltb28HnM0+CD 90Ao4yx7AZ/w
ycCtJfvD61Zpp2dxNXVinBaNHp8NpcXMtwwXY0pJVm465HP659STzXOyC8ud CtYAb5ZY3kEp
AdWOEcqCe4ztrrD1X6/0p1FzSMuU4gCaG5S3vJtSMbLIwRC5eQ7Yj27bi3tU 0i6kkZW6N4b8
Qw/ZTGWK7sfNuxxnPXPautMMZnWcoDKqlVbuAcZH6CpKfMX7XyMG106a5vbu e4ubyMx3J8tR
IQu3aOg9Mnr7UeHohby3EDveecskpKy7tm0vkMDjGSCP1reopXIc21Ygu4Un gKyPIij5sxyM
h/MEGuWkuL6bTdOMn9oSJJp4dTbFg0k5AxuZenHPJAPOa6m7s7a9iEV3Ck0Y OdrjIz0/rTmV
UjCooVVGAAMACpIORkk1RXhti1wYrpY5WmbIMOAN6c8gkgY/3m9K2bdz9ni3 ABtgyB64pl+2
Aagilbyk/dTH5RyImI/lTBHNLbXMms30glZHMzdDzjPy/pihra5j1mxkMrO4 mUc9cZ+b9M10
E1vHNKJTFdRy4xvjjYEj3yCDRDBHDKZRFdSS4xvkjYkD2wABWXI+a9zt+sQ9 ny8vQfrm6XSL
iNCRu2gkf3dwz+majtNPlW0CxyMEA4APFWDIxBBhmIPUGFv8KjRDGhSI30af 3FQ4H0ypI/Os
cRRnUtyswp1eRWsVtEhNrdX6A/uyyH/gXOf6VW1i3kutdtyGIVYfk/3txz/7 LWpHiJNkcE6j
Of8AVOcn1PHNJMqzhRJBcZU5VlicFT7HFa+zl7PkvqZVXzttGVq+nTNYt58r MgGeTW5YNINP
tRMT5oiTfn1wM1WaMOV84XswXkLJGcfkFGfxqbzW/wCeM/8A35b/AApUKcoJ 8zM4RaLe+jfV
TzW/54z/APflv8KPNb/njP8A9+W/wrcst76N9VPNb/njP/35b/CjzW/54z/9 +W/woAt76N9V
PNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N9VPNb/njP/35b/CjzW/5 4z/9+W/woAt7
6N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N9VPNb/njP/35b/Cj zW/54z/9+W/w
oAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N9VPNb/njP/35 b/CjzW/54z/9
+W/woAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N9VPNb/nj P/35b/CjzW/5
4z/9+W/woAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N9VPN b/njP/35b/Cj
zW/54z/9+W/woAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoAt76N 9VPNb/njP/35
b/CjzW/54z/9+W/woAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/AAoA t76N9VPNb/nj
P/35b/CjzW/54z/9+W/woAt76N9VPNb/AJ4z/wDflv8ACjzW/wCeM/8A35b/ AAoAt76N9VPN
b/njP/35b/CjzW/54z/9+W/woAsSuDE+fQ1Pay7gKzZZW8p/3Uw+U8mJgP5V PYNkCgDbU5FO
pkf3afQAUUUUAFFFFABRRRQBxs8NzpzglyGccMjEDr61vae8r2UTTbt5HOfr x+lS+fD/AM9k
/wC+hR58P/PZP++hQBJ+dUdE/wCQXb/7i/8AoIq6CCAQSQehFUtE/wCQXb/7 i/8AoIoA0F+8
PrVmqy/eH1p1zeWloVF1dQwF87fMkC7sdcZ+ooAlPVfr/SnVSGqadIT5d/av sBZtsynA9Tz0
5H50+LULKb/U3cL/AD+X8rg/N6fWnZglfVFqis6fWLO3u1hlmiWMo5aUuMKy lRtPv81O/tBv
7SgtRErQzozxzLJnOAO2Pf1osVysv0VUt71Li8uLeMxMIAMssgJ3HOQV7YxT ob60nneCG5ik
lTO5FYEjHWkKzLNRy/donnhtomlnkWONerMcAVnXOqLvtDbrHPbXL+WJkk6N z2x7etFgUWyp
qP3TV60OLKA8/wCrX+VZerXdtC/lSzxpI3RWYAmtS1/48YOv+rX+QrHEScKU pR3Sf5AlqiXf
9fzo3/X86ZRXy39p4r+f8F/kb8kR+76/nRu+v502ij+08V/P+C/yDkiO3fX8 6N31/Om0U/7S
xX834L/IOSI7d9fzo3fX86bRT/tLFfzfgv8AIXJEdu+v50bvr+dNoo/tLFfz fgv8g5Ijt31/
Ojd9fzpKKf8AaOJ/m/Bf5ByRF3fX86N31/OkpCQASSAB1Jp/2jif5vwX+Qck R276/nS5+v51
mNrFszFLNZb1wcEW67lB934UfnRnWLjottZIf72Zn/TAH5mtfrmL+1K3ql/l cXLE08/X86r3
F9aWv/H1dQw/9dJAv86qf2Ssv/H7eXdznqDL5a/98pgfnmrFvp1janNtaQRN /eWMA/nT+v1l
vO/yX9fgHKiD+27Jv9QZ7j/rjA7j8wMfrSjU53H7rSb5vdvLQf8AjzA/pWhR T/tKt0f5f5IO
RGd9s1Rvu6UF/wCulyo/kDThPq5/5h9oPreN/wDG6v0U/wC0q/kHIigZ9XH/ AC4WZ+l43/xu
k+16qv3tLRv9y6B/morQop/2lX8g5EZ/9o3KD97pF6PdGjcfo2f0o/tq0UZn S6t/+utu4H54
x+taNFP+0Kz3f5f5MXIitb6jY3RxbXkErf3UkBP5VZ/Oq9xZWl2MXVrDN/10 jDfzqt/Y8Ef/
AB53F1aEdBFKSv8A3y2V/Sn9eqv7Vvkv6/AOVGl+dH51mbdYt/uy216o7Opi f8xkH8hS/wBr
xRcX8E9kf70q5T/vtcqPxIo+tYl7Sv8Ad/kHKjS/Oj86bG6SoHjdXRhkMpyD Tqn67iP5vwQc
qD86Pzoop/Xa/wDN+CDlQfnRj3NLRT+u1/5vwQcqEx7mjHuaWiq+uV/5vwQc qEx7mlx7milp
/XK3834IOVCY9zRj3NLRT+t1v5vyDlQmPc0Y9zS0U/rdbv8AkLlRXvP+POfr /q2/lVDTvuir
97/x6T9f9W38qoad90V7FNuUE32IZuRfdqSo4vu1JViCiiigAooooAKKKKAK n50fnVabzN8v
lsFPljqP97vniksy5Mm99wzxhs9z7n2pN62HbS5a/OqOif8AILt/9xf/AEEV e/OqOif8gu3/
ANxf/QRTEaC/eH1p11bJcxhXLKyncki8Mjeo/M+xBIOQSKav3h9as0AYesWZ j0O9JJnuZU/e
Ptxux0AHOFGTge5PJJJrnSb4v9tSK2jmWWJkt1YhdqAjG7HX5vTtXRHqv1/p TqfMy4zcVZHM
Jo+pxzrctFZTTEzEhmIVS5Ugjjtg1dTTLm0fSvs3lyraRNE5dipOdvI4PoeK 2qKLjdRszRa3
C6xPcKsf2eeFULbyGUru7Y56jvTNGtryyhjs54YPKhTasyOdz88ZXHHvz1rV oouTzO1jP1a0
muo7d7fY0lvMsoSQ4V8ZGCe3Wq2oQX1zb2kgggSeGfzWj807cYI+9t68+lbN Ry/douCk0cVq
+n3jXF0yCDy55I5CzMdw24+Xp7V01p/x4Qf9c1/kKpaj901etf8Ajyg6/wCr X+Vc+L/gT9H+
Q1K7Q6loor4c3CiiimAUUUUwCiiimAUtJQzKilnYKqjJJOABVIQtRXFzBaxG W5lSKMfxOcCq
P2+4vjt0qNTF3upQdn/AR1f9B71LbaZDFKLidmurof8ALabkr/ujoo+la8ij 8f3df+B/WgXI
vtl7ef8AHha+VEf+W90CoPuE+8fx205dIilIfUZZL5+uJTiMfRB8v55PvWjR T9o18On9dxWE
VVRQqKFUDAAGAKWiioGFLRRTAKKKKoAooopiClooqgCiiimAUtFFMApOtLRV CM6TR7YOZbQv
ZTE5L252gn3X7p/EU3z9Ss/+PqBb2Ef8tbcYcfVD1/A/hWnRWim+uoEFpeW1 6he2mWQKcMBw
VPoQeQfY1Yqnd6bbXTiUhorhRhZ4jtdfx7j2ORVf7Tfaf/x/p9qtx/y8wp8y j/bQfzX8hVcq
fwiNSio4ZoriJZoJFkjYZVkOQakpWAKKKWmAUUUUwCiiiqAKKKWqArXv/HpP 1/1bfyqhp33R
V+9/49Ljr/q2/lVDTvuivepfw4+iMnubkX3akqOL7tSVoIKKKKACiiigAooo oAzpIPMZyWYB
kCjBPv8A40lvAYS5Llt319Se5PrSyXVvEdskyqwIGCwzzS+cu4DDYLbc8df5 1MrKzY1d6Il/
Os/RnVdLtwzAHy16n/ZFaH51laV/yDbf/rmv/oI/z/nI0irsluxqpIhdQHXO fWrdZsX+tT/e
H+f8/wD6pr6++xeTm2mmErbA0e0BT2BLMMZ6D346kZbjZ2Qky0eq/X+lOqha 6gbq6eD7HcQm
LBdnKFQSOFyrHnHOPTGeozfqWrFbhRRRSAKKyb7XIrK4mhNrcSCBVeV0A2op 79akfV4fK3Kk
nNwbYcD7wzz16cU7MrkkaVRy/drF0zVpb+0t4JBPb3M1uJFnKLhyMbiB+PpS PqNwPC8d85ka
Vo8vJGq5Xr82DgfhRYbptCaj901etf8Ajyg6/wCrX+VY+r3YhMcSxvNNICQq 4HA6k54HUVrW
ZLafbkqykxKcHtwK5sV/An6P8hJaolooor4k6AooopgFFFFMAoorPuL2Wadr PTQrzKcSzMMp
D9fVv9n88VcYOWwia8v4rQrHtaa4k/1cEfLN7+w9zxVdNPlvGE2rMsgBylqh zGn1/vn68egq
zZWMVmHZS0k0nMk0hy7n3Pp7DgVarTmUdIfeAdOlFFFQAUUUUwCloopgFFFF UAUUUUxBS0UU
wCiiiqAKWiimAUUUVQgooopgFLRRVAFFFFMDOn00xytc6ZILa4Y5dcZjlP8A tL6/7Q5+vSn2
moCaU2tzEba8AyYmOQw9VP8AEP1HcCr1QXlnBexeXOucHcrKcMjdipHINap3 0kIsUVlR3c+n
yLb6m++FjiK7xgE9lf8Aun36H2PFatDjYAooooAKKKWmAUUUVQite/8AHpcd f9W38qoad90V
oXv/AB6XHX/Vt/Ks/Tvuivdpfw4+iM3ubkX3akqOL7tSVoIKKKKACiiigAoo ooA5+K/t8yux
kdXYPtYpxgD39v5VdKyECPYcCTdvyMYzn60vlTfZ/J8yPbt258s5xjH96p/z pTipWCLaD86y
tK/5Btv/ANc1/wDQR/n/ADkav51laV/yDbf/AK5r/wCgj/P+cjSG5Mti9F/r U/3h/n/P/wCr
QkRJY2jlRXRwVZWGQQeoIrPi/wBan+8P8/5//VpU57iiQwwx28ccUK7UUnvk knJJJPJJPJJ5
JNTU09V+v9KdWZYUUUUAYtxpD3ep3Uk8zpaSpGDGhH7zbnIPGQPpT20GFrrz jdXHliYzrCCN
oc9e3Na9FO7L55GZp+jx2TIxuJp2ii8mLzMfInoMAeg59qaNJSPSZdNa5mkh dSgLbcoD2GB/
OtWo5fu0XFzM5fVLAssTfaZRPCCBLhckHqCMY9O3atizBXT7dSzMREoye/Aq nqP3TV61/wCP
KDr/AKtf5Vz4r+BP0f5AndofRRRXxJ0BRRRTAKKKzJ5ZNRneztHZLeM7bidT yT/cU+vqe316
aQhzCCa4m1GZ7WwkMcCHbPdL1z3RPf1Pb69L9vbw2sKw28YSNegH+eT706GK OCFIYUVI0GFV
RgAU+qlK+i2AKKKKkAooopgFLRRTAKKKKoApk8yW9vLPKSEiQuxHoBk0+kdV eNkkUMjAhgRk
Ed60ppcy5thFHTdTS/aRPIlgkjVXKyAcq3Q8E+laFcVpr6g8ElxodtY6fZSM cPO5LNjjk84+
natzw9qVxfx3Md00EklvJs82A5RxjqK9jH5Z7JzqU7cqtdXu1013W/S7sZRn eyZs0UUV45qF
LRXP6Lqd/eX7w3KjaEZnTyWTyGDYC7jw2RzXVSws6tOdSO0d/wCv6+8lysdB RRRWAwooopgF
LRRVAFFFFMAoooqhBS0UUwGSRpLG0cqK6MMMrDII9DWUHfRCFmYyaYSAsjHL W/oGPdPft345
GxSEBgVYAg8EHvWkXbR7AKCCAQcg96KyATokiqxJ0xzhSf8Al2J6A/7B/wDH fp016bjYQtFF
FABRRRVAV73/AI9Ljr/q2/lWfp33RWhe/wDHpcdf9W38qz9O+6K9ul8EfRGb 3NyL7tSVHF92
pK0EFFFFABRRRQAUUUUAZplYIHYgA9Af/wBf9KcJlO3qA3Q5H+NMhTM2xwQV QDg47mo1xkoO
SJunfHFcvtJKVjXlTRc/OsrSv+Qbb/8AXNf/AEEf5/zkav51laV/yDbf/rmv /oI/z/nI7Ybm
Eti9F/rU/wB4f5/z/wDq0qzYv9an+8P8/wCf/wBWlTmKIxztwT60nmr6Gib7 o+tQ1KVxtk3m
r6GjzV9DUNFPlQXJvNX0NHmr6GoaKOVBcm81fQ0yWVdvQ0yorh1jiZ3IVVBJ J7CjlQXZmajI
Np4NaFrzYwdf9Wv8hXOXTlYZb2VT5kuAiHqB/Cv1PU/X2robHcNNtt5y3lJk jpnArlxf8Cfo
/wAioO7RLRRRXxR1BRRVTULtraNEgUSXUx2QxnufU+w6mrjFydkIhvp5bi4/ s6ycpIQGnmX/
AJYofT/aPb06/W7bwRWsCQQIEjQYVRUdhaLZ2/l7jJIxLyyHrI56k/54GBVm rk18MdgCiiip
AKKKKYBS0UUwCqlrqdleTyQW1wskkf3gM9M4yPUZ7irdc3eQjQhE9iJrq6lz BaQyMNsYJ3H0
44HU16GDw9PEc0G3z/Z7ed/T5afcRJtanSUVxk8+o2d9arJrDXWpSSqGtIRm NV7g+nHf/wDX
XZ1WMwLwvK+ZSUu1/wBUtOz6hGVwpaKK4SjiNU0/TP7VltdO0WW7uVw0oWUp GmeR/ngVqaJe
TWt3HpN1pUdhvQyR+XIGzjrnGefcntT9Y0yw+2NeSatLpsswAfZOEEmOBxVH TLjw3pl7mG9k
uryYhPNfLnk464xX2E6ixeD5UpT07TbUrb3vy2Xo9Dna5ZX2OupaKK+SOgp6 rPPbaXdT2q7p
o4yyDGefX+tclb3l1LALiDxbB5pGTFcRhAD3HP8AQV0HiDUbixjtYrV4Ypbi XZ5s/wBxBjPN
cu11JNby6jNo+lz29tL5dxIgw0jZ+8PbkdjX1mUYd/V+aUV7z0+Ft9Le8u6d rNMwqPWx2GhX
8mp6RBdzIqSPkMF6ZBIyPyrRpkKRxxIkSKkagBVUYAHpin183VlGVSUoKybd l2XY1WwVDeXM
dnayXM27ZGMkKMk+wFT1zmq6pcT3N5p1rpQv4YUAuAZQpO4ZwB1/Ed63weGd epa2i1eqWl7b
uy8kDdjYsb5L1JCsUsMkT7HjlADKcA9iexFW6xfDl3p1xbSR2MTwSI+ZopSS 4b1JJyen6VtU
YqkqVaUFFq3R7ii7oKKKKwGFLRRTAKKKKoAoopaYDXRZEZJFDIwwVIyCPSsu 2ZtLuUsJmJtJ
Ti1kY52n/nkT/wCgnuOO3OtUN1bRXltJbzrmNxg44I9CD2I65rSL6PYRNRWf ptzLuewvWzdw
AHdjHmp2cfyPofwrQptWdgCloooAq33/AB6XHX/Vt/Ks7TpBtHBq9qj+Xp15 JgnbC5x9FNc1
Z3txGsijyZHXy8BcgAs2ME5r26PwL0RjJ2OyilXb0NP81fQ1gzPfoLUOYAxu MZVmUMMHAPX/
ADitZCxRS+3djnacjNbJInmLHmr6GjzV9DWDbT3EMxAEfkSXbpjncepz7dKb Hq119na6kt18
koWTHGDnABOTnrycDFLQXOdB5q+ho81fQ1hjULkSvblrd5fMWMOoIVSVJOee cY9RUESo9raz
t5byC9OJFHq5zj2NFlcOc6PzV9DR5q+hrGnvroX0kNvAHSLZuz1bPvkYwPY5 rTp2Q+YjaNWI
Y7gRxkEg/pSoiouFBA60786PzrOyvcu4fnWVpX/INt/+ua/+gj/P+cjV/Osr Sv8AkG2//XNf
/QR/n/ORpDcmWxei/wBan+8P8/5//VpVmxf61P8AeH+f8/8A6tKnMURkg3AD 3pvlf7X6U89V
+v8ASnVF2irEXlf7X6UeV/tfpUtFHMwsiLyv9r9KPK/2v0qWijmYWRF5X+1+ lQ3FskkZSQBl
PUEZBq3Ucv3aLsLI57UoFIy2CVORkdDWnacWMHX/AFa/yFUdR+6avWv/AB5Q df8AVr/KufFP
9xP0f5FRWo+iilr4s6RkkiQxPLKwVEBZmPQAdTVDTY3uJX1O4Uq8y7YUbrHF 1H4nqfwHam3v
+n3yacOYIsS3Pvz8qfiRk+w961K2+CNur/L/AIIgoooqACiiimAUtFFMAooo qgCquoafbalA
IbpCyhgykHBU+oNWqK0pVJ0pKcHZrqhPU4zTBLAs82j6BHLbbmj3tPiVwODy en0FaHhKW8ji
nsLq0uYY4WJgaZCPlJ+7nGCRVme10vRbiXVpJpLcOSGQMSjMfRfU4/SqsN7r Guskmngafp+7
PnSAM8mD2H+fr2r6ivVWMpTailB29+TldNdNXLmdrrRGFuVnS0UUV8ubmZrW i22s23lzZSVA
fLlHVD9O4qzYWMNlbxxrFCJFUBnjiCbj64FW64qC9u01K1+0XMrCDUZbZwWO GDAbcj869jCU
8Ri6EqSn7sNbfJvT7vvZnJqLvY7WiiivKLKmoxWMlo39pLCbdSCTLjCnoDnt 1rMPhvRLi78+
ONfkILRRPhMgcZUVJ4phmutMjtIYnk8+eNH2KTtXOST6DgUzwyjM2p3TqVM9 2+3Iwdo6V7dB
VKOCdanVae1k9NWv+D9xnKzlZo3aWiivGNClq18NN0ye9Kb/ACl4XPUk4H6m uR1O4T7Qt1cz
PZarHgST2cZeJVPKh+eTjHTP41193JZTP/Zt06M1xGx8onllHX/Pt7Vz6+Gd RtEuLXT9ST7H
cjbIs6ZZRjHHqcfSvosqqYejD96+WT77OL+TVt9Lau2uhlUTexf0bTrsXz6r f3FvNLLCI0Nu
uFZeu48cnpW7UNpbraWkNtGSVhQICepAGKmrycTWdeo5P0WltFtoXFWQUtFV 767Sxs5LmRSy
pjhepJOAPzIrKEHOSjHdjLFFVNPvftiS74Whlhk8uRCwbBwDwR14Iq3VTpyh JxluJO4UUUUh
hS0UVQgooopgUdTtZZUjubTH2y2JaLJwHH8SH2I/I4ParFncx3lrHcw52OM4 IwQe4PuDxU9Z
Q/4l2q46Wt+34JNj+TAfmPetVqrAatFFFICrfgGzuQeQY2H6VkabZwKoCxRg cdEHY5H61sX3
/Hrcdf8AVt/Ks/TvuivZpfAvQyauan2SOaIxzKsiHqrLkVKluqIETCqowABg AU+L7tSVpdis
iv8AZIuPlThtw+Ufe9frUY061Du4gh3SAhz5YywPXPrVyii7CyKX9mWnlmP7 PDsOMr5YwcdP
509rC3aLyWiiMWc7Cgxn6Vaoouw5UVJLC2kdHkhidk+6WQEr9Km8n/a/SpaK LsLIqfnR+dH5
0fnSGH51laV/yDbf/rmv/oI/z/nI1fzrK0r/AJBtv/1zX/0Ef5/zkXDcmWxe i/1qf7w/z/n/
APVpVmxf61P94f5/z/8Aq0qcxRGnqv1/pTqaeq/X+lOrMsKKKKACiiigAqG5 kSKF5JGCIgLM
zHAAHepqqamkUmn3Ec6O8TxsrqgJYgjnAHOfpQBhzXkF5E8luXKg4y0bJn6Z AyPetW1/48oO
v+rX+VclczXhs7hlmmkitCrxyzRGFpQM7kYEDPHfA5x6V1WnuZNMtJCrIWhR ip7ZA4rDFfwZ
+j/Icd0T1BeXKWdpLcy5KxqTgdT6Ae56VPWZdf6ZqsFp1itwLib3OcRj8wW/ 4CK+PpxTeux0
Mm0y2e3ti0+DczMZZiP7x7D2AwB7CrtFFDbk7sAooooAKWiimAVmrqytqH2b 7PJ5ZlMImyMe
YF3EYznGO9aVU57CFmmuYIYkvXjKrNtG4HGAc114b2N3Gqt1ZPs+/wDV/Ql3 6Gfd+IViuZob
OzlvBbAtcyIwCxgdeT1PtWxbzR3NvFPEcxyqHU+xGa5C20+/m0+LSFtH0+1H zXtw7DMh7hT6
e/8AkutNbmj1GJ5JDDoaO0EMixYVsABQxPOBjr/9fHu4jKqc4NYa143vrdtW 02uuZ2bSWy3M
lNrVnY0tM82PzFj8xd7Asq55IHcD8RT6+cs1ubDJYop4zHNGkiHqrqCPyNZ+ 3TNCQCOMW63U
wUAZwXPT2UcfStOqmp2MWpWE1pN92ReG/unsfzrrw1Rcyp1ZNQb1s/xt5Ca7 EWj6mup2zuYj
DNE5jliJyUYHpWjWJpGlzWchvryYC5eEJOqH5HK9HJPfGP19a1Ybq3nkkjhn jkeI4dVYEqfc
dq0xlKmqsnQ1h+C8r9r7PqTFu2pNWZdLo9jKJLtbdJJ5Vcbxks44BA9Rnr2z WnXD+L3hF+08
clrcP5HkFDKu+Fg2dwHrXTlOGeJr+y5mk10/qwTdlc7G0u7a9jaS1lWVVYqS OxHUGp65Pwdq
EV1cX2Sizzt5xiiQhUAwPzOa6i4aVLeVoI/MlCEohONzY4GayxuDeGxLo+m/ n/W4QlzK5Q1b
WbfSvLEsU00jgsEiXJCjqT6CpdO1S21HesO5ZI1QujDBXcMj/PtXI67JrN06 SyaVc2syxtEz
w/vVdG6g46fnW14Rile3nv7mSRp5isZV4wm0IMAAD616mIy2jQwKqt+/5O+t /K6ta/UzU252
OjoorD17V7ixljtrP7OsjRtM8lwTtCr2GOpNePhsNPEVFThuat2VzFvLLULr U3huEaO51Byh
deVhtlPQHpk//rxmu0jRYo0jTO1AFGTngVmaLqkl8rwXcXlXkKI8qqCFG4Ej GfbGa1a7cwr1
ZyjSqRS5e23k15Wtby9SIJboKWiivOLKrX9qt+tgZQLpo/MVDxkfX865OK91 SbT5dSM4uxG7
Je6fJGAFXPQfQf5OKf4sjUazBKvnC5a2xbGEZbzVfIH0wTT9N03UNQM9+bl9 M1EyNFOFg+Rx
9CcE+4/+ufqMNh6GHw6rSatK26v3vayuk+61TSMZNuVjpdM+xmwhk0+NI7eR d6qi46/1q3Vb
T7OLT7GG0hJKRLgE9T6mrNfPVWnUk4u6v13+ZpHbUKWiipGFFFFMAoopaoAq tf2q3tnJbsxT
cPlcdUYchh7ggGrNFUtBFPTLpruzV5VCzoTHMo/hdeD+HcexFXKzG/0LW1cc Q342t6CVRwfx
UEf8AFadW0BWvv8Aj1uOv+rb+VZ+nfdFaF9/x63HX/Vt/Ks/TvuivWp/AvQh m5F92pKji+7U
lWIKKKKACiiigAooooAqfnR+dH50fnQAfnWVpX/INt/+ua/+gj/P+cjV/Osr Sv8AkG2//XNf
/QR/n/ORcNyZbF6L/Wp/vD/P+f8A9WlWbF/rU/3h/n/P/wCrSpzFEaeq/X+l Opp6r9f6U6sy
wooooAKKKKACo5fu1JUcv3aAOf1e3huEAnjWQKdwDDIBrStf+PKDr/q1/lVH Ufumr1r/AMeU
HX/Vr/KsMT/An6P8hrcexCqWYgADJJ7Vn6MpktnvnBEl4/nc9k6IP++QPxJo 1ol7NbRCQ95I
IAR1Cn7x/wC+Q1aCqFUKoAUDAA7V8ltD1/r+vQ36i0UUVAwpaKKYBRRRTAKK KKoRV1KyTUbK
S0klkjSTG4xnBx6VkXGm6JoVl9ruITN5QxH5zFyT2AB4H4CuiprxpIu2RFdc 5wwzzXfhsbUp
JU3J8l7tJ2v8yXFPU53w3Gl/NJrNzPHPeScKiNkW6dl9j/n1rpKj2CONzBGm 45IH3Qxx3P8A
WuTh1XUY9QllCStMMfatOc5YAcb4j3Ht/PqOx0Z5lUnVg7JbJvZdF5Ls9r7u 7JvyLU7CikVs
oGIK5GcHtTq8ixZjeJ4JrjSwkUcksYlRp44j8zxjqB79KwNJnNpfJf3sRsbW CN4vOnXZJcDP
ygr3IAHIz0rrtQ+2fY5P7O8r7ScBfN+6Oef0rkbrT7q21OCJojqWqXC7lubn /Ux467V9vfpx
gV9TlVSNTCyoTaS16626vXRLzd/JOxjUWtzt1IZQykEEZBHeub8Q20Vk0M9l pllPdXc4Qm4X
d8x6Hk+1ZUEmqWWpv511cXN7DPGJkR90TRvxwMDBBx+ddTrlrZ3WmSi/LLDF +83ofmQjuPeu
eGHeX4mneXNGXa+vbS6vumu5V+dNHMXd74g0+5eKW7s7fy4DcLHFGNjgHleR kHrXZ2swuLWG
cDAlRXx9RmuL0pbCSfEGk6neJdYSS4ujwEyO47cCu3O2KL5V+VF4VR2HYVWc KCcKaglLuklf
bom3v3FTv3ONu5Dc65qTNrr6Y0LKscTPhWwo5xkA59KseGNU1K4uoIb26juE ngaUDaA8eGxz
gdDVYvqWqpHqFx4dsruKQZQq4Dhc8AnPP5V1Flp1pbym7itVhuJY1VwD90AD 5R2A47eldmNr
UaWH9lOKbtZW5XZpW3XveevoSk27obrn2caPdG6llihCZZojhuvGPx4rjZy9 1ZIbxm1ewi+7
dW52zwf7wP07/nXQ+Id12YPsJgvJrKYSS2ZcEsMdx6j+tc7ekm/a+tLW40m7 cIlvCF2tNJu+
bK46Yx7H35rXKKfJRWuur9On+JXWt1pbdOwVGdnpOnQWEDNE00kk+HklnOZG 44z9K0aRc7Ru
xnHOKxZtdCjU4VgaO7s0Z0jk/wCWigcMMdq+fjTrYuo5LV6X+en3fkaK0UbT EhSVG4gcD1ri
3u9SudVjLJv1EZMNmjHy7VTxulYdTg9P8QKn0vV7wTwXM15Jc2M7JCS8AXdM 3ZMY4Hcn0OM1
1axRpI8iRqryY3sBgtjgZ9a70nlspRnFSbWj1+ad7P1Wj6Xtcm/OtAVNwjeV UMqjqB0PfFPo
orydywpaKjmmigjMk8qRIOrOwAH4mqUW3ZASUVQvtUjtVt/Jia6kuSREsRHz YGSck4xgVYsr
qO9s4bqEEJKoYBuo+tauhOMFNrR/1+j+4V1exPRRS1AwoooqgCiiimIp6rbP dWEiQ8TpiSE+
jqcr+ox9DU1ncpeWcN1H9yVA4HpkdKnrM0r/AEe5vrD+GKXzYx/sSZb/ANC3 j8K0WqAs33/H
rcdf9W38qz9O+6K0L7/j1uOv+rb+VZ+nfdFepT+BehDNyL7tSVHF92pKsQUU UUAFFFFABRRR
QBU/Oj86Pzo/OgA/OsrSv+Qbb/8AXNf/AEEf5/zkav51laV/yDbf/rmv/oI/ z/nIuG5Mti9F
/rU/3h/n/P8A+rSrNi/1qf7w/wA/5/8A1aVOYojT1X6/0p1NPVfr/SnVmWFF FFABRRRQAVT1
S6Fjp9xdshcQxlyoPJwKuVQ1q1kvdJu7SIqJJomRSx4BI70Ac9e6nlLhJ4lt 54lBCySAK27O
3DfgR+Fb1pzYwZ/55r/IVzd/YXc0V9JdeQs88AhRI2LKoAbkkgE8t6V0Vju/ s+23jDeUmQDk
ZwKwxP8ABn6P8hx3RUf9/r8a9VtIC5/3nOB+it+daNZ2l/vJ9QuiP9ZcFF/3 UAX/ANCDfnWj
XydTRpdv6/M3QUtFFQMKKKKYBRSSMVjZlUsQCQo7+1chL4gvZNG1CVjGWWFP niRk8p2O0ocn
qOuRXo4LL6uL1htdL73YiUlHc6iG+s552ghuoZJUzuRXBIx14qzXF2tlDaa5 pFlaRKZ7WBpr
qRPvMSOhP1/RhTbbWtSJsL+S/jkW8ufKNkEX5Vzjr14/qK9KpkvM+ahLS19d /tW2vuo31tui
PadztqKopqUL6vJpiI7SxxiR3A+Vc9j78ir1eJOlOm0pq10n8nsaXuFQyWtv LcRXEkKNNDnY
5HK5qalojKUdYuwHLeJ55BfRwXDwrYmAvsmB2zOG5XcOQcYII/rTfD+qx20E NvKsyrdzsLOE
/OyRdie+3Oef6CujvmKWcrrbfaWRSyxcfMfxrlbmHUdM0+TU5YzJqd38skwG VtE9Pw/L8ufp
cJOlisKsPJJO9lru+9undvVv4VvplJNSudF/bOmi/wDsBvI/tOcbPf0z0z7d adqemQ6lHGsk
ksMkTbo5YW2sp74NcoLC1S7j0S1vzc29xG0t052nymABVwwHHI6E9D712lrL FPbRyQSiaNl4
cHO6uPF0I4KUKuHk9e//AAytfXR306u44ycrpnJ6SZUuJYPDtsTEJf8ASb+7 OTIQeQP89+3W
uouEi1DT5oo2jljmRkBBypPI6j3rFuvDjy3cwW+e20uU+ZJBGxG5j972A7/0 qtaanMthfx+H
dPVra1KpC3LF2z8xx1PGD/nFd1enHFyVbDy1TWr0tf8Amk3q79FoknYS912Z HLBrGm2MZ1Px
DFawxgKqxxhmbHYcAk10tzc2Rsz9puY4oZo8bmkC5BHY15406Jf2d3rK3klz 5w89bmLEYT2H
U464x+FdJqujx695GsaVOkrBdqxzKdjgE8eo7/8A1q6sZg4KdN15cq195RSj fotF5XuyIy35
SgkWiW93Db6Zrt8jvKoEcTFlJJ9gB+tdrcmcW8htVRpwp2BzhSe2a5Pwu6xa pf2tzZiyv5cM
iCL5VUDHHtn8DWZJea1pz3VvPq063sTDyomjEgnBOAVJ/lijE4KWKr8inrGz 97Xmv191bdG9
fVBGXKrk9naWUzpYX8NxpeshiY7hSf3jEk5BHX/ODXa29qqJC0+2e5jQKZ2Q Bj6/SsPT7+aD
URaa/fWLXAUNEqrhlY+rYABwenfNWvEuoXFhaRmJGWGVwktypyYASOcd+M/j XLjfb4mvCiuu
u91rvytpO3lrroio2SbH6xfXEd3aabaMkU14HAmkGQgA7Dua5/bPdXH9m3E6 pr2n821xn/Xr
jO0k9eD3/wAasvp0jXUOnXslzfWFwfMtLxW3SQtjPLen6f0sWGh3Iv4XuIxF DbTNKJHl82ad
iMAluwwBx7fjXTSdDC0tJK9r37vX5tP4ZRtpv5id5Mv6ZodjbtFetYRwXhXc yq5ZUY9dozgf
hWxTZH8uN3ILbQThRkn6Vnwa3YzaSuqNL5NscgmQcg5xjAzz9K8Oft8S/aO8 tbdXvsu5orR0
NKlqnp+p2WpxNJYziVVOGwCCPqDzXG3UV/e3klvN9v1WWJ9rIv7i3Uj37/p9 a6MLl8qspRqP
k5d77/jZfe0Jzsro6jWJdTNxaWmmDyvPLGS5Me8RAD8ufeuWuL6a8j0+bV/L ntrW+e3mcDCS
cDDEdPWutv2v/wCwZTHF/pzQ42xnOHPBwfbNYujaJqTWCWGqJbR6fsIaBOXZ ic7i3Yg+h/Cv
SwNWlSo88+VOLt/eeju09+qS6aESu2JpGn2/27UtBvIlntYHWe3V8naG9D+I /WurijSGJIok
CRoAqqowAKoaXo1ppZka38x5JMBpJW3MQOg+laVedjsR7epeLbWn321dul2V FWCiiiuMsKKK
KYgpaKKoArMuv3Gt2M/RbhHtm+uN6/8AoL/nWnWbr3yaabkDm1kSf8FYFv8A x3NXHcCxff8A
Hrcdf9W38qz9O+6K0L7/AI9bjr/q2/lWfp33RXp0/gRmzci+7UlRxfdqSrAK KKKACiiigAoo
ooAqfnR+dH50fnQAfnWVpX/INt/+ua/+gj/P+cjV/OsrSv8AkG2//XNf/QR/ n/ORcNyZbF6L
/Wp/vD/P+f8A9WlWbF/rU/3h/n/P/wCrSpzFEaeq/X+lOpp6r9f6U6sywooo oAKKKKACqmoz
tbWFxcJGZWijZwg6sQM4q3UF0JGgcQuqSEHazLuAPuMjP50Acfd6lKtlBczX FpNHNKF3wqdo
UqTjqcnIx/SujtJF/s2CUkhPJVuRjAx6Vz1zpMiTvczzRGRpVkZYYdiHAYdC Tyd3X2Fat/IY
vDNw4zkWhx9dnFZV1zUpLun+Q1uh2hKV0a0ZvvSJ5rfV/mP6mtGo4YxDDHEv RFCj8BUlfISf
NJs3CiiikMKKKKoQVFdW0N5byW9zGJIpBhlPepaWrhKUJKUXZoDITQba0sbq HTS9tNOuPO3E
sCOnPpWZZaDcJqSanqy2aLbIWxbqf3jD+NuOveuqor0qeaYiMZRbvzbvr2ev pp5dCHCJyfhK
4mubu8upbKYG8kL+ewwgUdFHr1NXNX1qe11Fbayks3dFHmQTOUZiem1j8vT3 79K6Cq15p9nf
psvLaOYdAWHI+h6it/r2Hq4t161P3WrW38uvlppYXK1GyZFpd9LfwM81lNaO jbSsnQn2Pce9
RLr+mG+Nl9p2z7/LwyMAW9MkYqzaWENjY/ZLMGOMBtuSTgnJ/rXFf2Zqix29 rcrcx29u/m3M
kkgeMBejJ3HGeK2wmEwmKnUfNypbK9u+ut2/S/XcUpSikd+CDnBBxwaYGhnR 1DJKpyrDII+h
riknmg8O3uo8i91efZGB1AJIA/Ldj8KbYWZ0rV4Y7pYrWW2tjO0tsxIlQdQ4 Pfg9P14xosmS
U37TVXtpva1+t93a6v3F7TyNPXdOjtYIILK2+zWU8mL2S3jy2wdBxzjr/nrL p2otPO0tgFg0
KxiZSSnMpAzxnoB/nrxq22qWl1ZW1w7eQl0dsaTEKWPp+NZXiuWHT/D4tbdV gjncRDYvCqeS
cD6H86uhUnXccLVg3Ju13r195+cklZO+iWmoNL4lsVtXvNU1fQbNrCykCXef OVG+YKO2fQ+v
+NQ6fYa/aXUsmm6fb2MMqKpinm3jI/i45zSaXZ6tK0kekPNp2lOQVNx8z+5Q dRn/ACa7JFKo
qsxdgMFiMZ962xWLWCh9XpqDi76atq7v72trrbq1YmK5tWNjDPAouFTeVG9V 5XPfGe1LFFHC
myGNI0BJ2oMDnk0+ivnbt6dDYQohdXKqWUEBscjPWsvXNHXVI4nik8i8gYND MB93nofatait
qNapRmpweqE1dWZyHiq2jh1GzvZbNbxJ0Ns8ZO3LdUIPY5zz6CnWGn3ukxQQ anqdqbGcFJLa
fnGeioSef5D0NdJfWNvqEAgukLRhg+Accg5rnPGhtDNpcd+WW2ZpC7L1Hyjp +JFe9gsVLExp
4Xyd9LvRNq3Z+lnsZyjZuRvW0NnounrCbjy7eM4DzyDjJ6ZNU18TaZKLoW8j SPbxNLt2kbwv
XBNc3bXst9pU2g6ksqyumbKaVChkwflHPfjH6fXTi0+41K00W9S3Ec0K+TcR ygpuixg/pnH+
9Tll9Kk3LFtttvW+j0un/wBvWa8mJT/lGjWtYSXS768FtHp12+0rFyRuHG4n 8+PQ5rMvrG7i
ub7SrFcvDOt/bIAOV6EDPHGRx7GlvNFuczaXb22pTxxt/o5lYCFMnls9+M8e 5ru4I2SKMSEN
KECs3qRXRWxNLBcs6STv0Xk7xb36NpiUXLRnPeHLa5XUrm7e1uIopYxvkuj+ 9kfPoOAB9K6a
iivBxOIeIqe0at/wDSKsgoopawKCiiiqAKKKKYgpaKKoAooopgFRXcAubSe3 bpLGyH8RipaW
qQjItpjceHopmJ3PaAt9dnP61Hp33RSWKmPQ54+cRtcIPoJHA/QUunfdFerH ZEG5F92pKji+
7UlMAooooAKKKKACiiigCp+dH50fnR+dAB+dZWlf8g23/wCua/8AoI/z/nI1 fzrK0r/kG2//
AFzX/wBBH+f85Fw3JlsXov8AWp/vD/P+f/1aVZsX+tT/AHh/n/P/AOrSpzFE aeq/X+lOpp6r
9f6U6sywooooAKKKKACq95KlvbSTyZ2RqXbAycAZ6VYqG6QyQOgdoyykb1xl fcZ70AcdqOrG
a0trqGKVI5JguPkcupUnjaT3xWlqJL+GUBVlMiQqVPbcyjH61Sn0eG3d5TNL JK0gkZmCrkgE
DhVA7ntmtC/GdEtRzzLaj/yKlRU+BjW5q0UUV8adAUUUVQgoopaYBRRWZqOv afps4gupW8wr
uIRC20epxW9GhVry5KUW35CbS1Zp0VmXuvadYiHzJS5mTeixKWJX+9x2qRtY sV0v+0/O3WvH
zBST1x069a1+pYi0ZcjtLRabsXMu5oUUgOQCO9LXOMKr39ol/ZS2kruiSjBZ Dg066uoLO2ku
bmQRxRjLMazoPEemzpMwkkQwx+YyvGQSvqB3rsw9DEO1WjFuz3S6ibWzJLvQ 7G7s7e2kVwLZ
dsLI5BTjGfrwOtZV94anNjfSRXcl3fzoqB5SB8oIJUemcf8A6qNa1+SKaxS0 uUtoLmLzfPaI
u2OwC1Y0rXQdI+16jcxSjzvKWSFTyT0DDHB/+tXs0oZjh6MKsXdN6LVve9tu rWqT9TNuDdir
Z215e65YJd6e1na6dBlELBlLcAcjj0/KsvS9ak0mwnW7sDPZ/anCPuHyv127 T9M5rsJ9Ws7e
5ltpHbzYoTO4CE4Qd653R9ItvMm1y7ulnslZ54FGcLzksQe4x09q6sPXjOlJ 4mnaPu8qV9Xq
9Hfdt31b07kuNnaJ0ejzX1xYJNqUMcMz8hEBGF7Zz3q9UFldw31ql1bljFJn aWUgnnHQ1PXz
da/tJXjy67dvI1WwUtFFQMKKKKYBVG801Lu/sbt5CptCzKoH3iQP8KvVV1I3 Q064+wxl7koR
GAQOTxnJ446/hXRh3JVEou19L+uj/AT1OXTXp5fE6tIqNpnnNaxOUU7XwOQ3 Xk4/A+1b+o65
aaddpaSxzyTvHvRIo9xbk8D34Nc4/hCVdGWNL2f7YF81bYyDZ5nfA9e2a1YL PUZdf0/ULq32
BLPy5jvU4fnI4PvXv4mngZtTg1aKate12tn536vqzJORZHiTTjpP9pbpBEX8 sJt+cv8A3cev
41EfEUF1b3sVqtxDdwWrzFZo9pQgcZB79DWJfWFxYaQZLgxwSpqZuIVkbKuM cDI4HTvjpTrW
S61PW9VLRwiaXTmRY4ZA4BOAAWHGa0jl+FUXUjqk3rfTRrTzVnqw53dJmnae JY4dMsTeCe6v
JojIyQRgtjJ+YgYAHFblrewXlkt5bP5kLKWBA546jHrXGjQdUtfsVwto87Lb eTJFHc+UyNkn
O4HkdK6fQrCSy0aO1mjSGQhiyxMSFyexOea5cfQwkYc9KV230a21vp0tpYIO WiZTHiq0OP8A
QNR/8B//AK9T+I9QubGzgWy2i5uZlhRmGQue+KgHheMHP9r6t/4Ef/WqfxJY XN7aW72Sq9xa
zrMiMcbsds0orBfWKfs9tb328t+lx+9ZmbHqWsJBqti8nn3tm8e2aOIFijHk hOhIHatjQpry
exZr3zCwlYRvJH5bOnYle1VtBsr1b7UNS1CFbeW7ZQsIYNtVRjkj8K3KjG1a d3ThFdHdW3sr
pW6Xv5BFPcKWiivOLCiiimAUUUtUAUUUVQjNZPL0+6XnkzN+bMf61W077oq9 dkGzuMBgNj9Q
R61R077or0ofCiDci+7UlRxfdqSqAKKKKACiiigAooooAqfnR+dH50fnQAfn WVpX/INt/wDr
mv8A6CP8/wCcjV/OsrSv+Qbb/wDXNf8A0Ef5/wA5Fw3JlsXov9an+8P8/wCf /wBWlWbF/rU/
3h/n/P8A+rSpzFEaeq/X+lOpp6r9f6U6sywooooAKKKKACq95IYraSVY2kKK WCL1bA6D3qxU
N1GssDxPna6lTgkHB9xyKAOJvtVmureCRI0WUXAVoYpSTyp4bKqR9CO1bN6W /sC1Zxhg9qWA
OQP3id6rXWmWkGXRJGfcG3ySs7ZAIHLEnoTx71Z1Tjwyzc/JFG//AHyQf6VF T4GC3Naiiivj
zoCiilpgFFFFMDL1XWBp0qxi2edvLaZ9rBdqDqeep56VgXdxbx6p4ga5dV8+ yUw7+CwKAYH4
4rqrvT7O9KG7to5ihyu9c4oudOsrxka6tIZmQYUugOB6V7mDxuFw8V7ju17z XlJNW+7y+ZnK
MmcWr3FpPo0trLDDdNYEM1zxHs5I/H/61SFYx8OXaPd8zAtu9fMAOPbiuxur CzvFVbq2imCf
d3qDt+lK9layWv2R7eM24AHlbfl46cV2POqcvZtwd1JN7bJvTz307EKm0Q6R fjUbMXCwSwx5
wnmjBcYHzfSuRl07UTI+NM1Mgk4I1FR/7LXeAADAGAKK8/C5j9VnN04K0ujb 0+5otwurMytS
tbu50Bre0Zorny12gvzkYOCfwxXKzaZqHl3l9dxXEUcVmyf6TOJWZj6Y6Dmu /ps0Uc8TRTIH
jcYZWGQRWuCzWeFXJyq17+fS638uoOCZyMMF+j6HqFpY/ao4LJQw3Kp5HbPf mmNo+pvo15IL
VUuZ7wXK2+8cLnpnp3/SuwVYba3CrsihiX6KqgfoKz7TxBpV7efZLa6DzHOB tIBx1wSK6oZj
iJpzpUrqO7s3om2k9bdSHBdX/VrGfYW+oXPiWTULzTzbQPa+UAzq3cdcfjXJ 3WmpBfT6MqSG
6e5VYG3Hb5Z5yR+X6+leg3ur2VlaLdyS+ZC0gj3xYYA57n2rFm1yzh1aQX2k SDUYjtg8tRI0
inOCDx6n867cBi8VeU409LJJLTWOi3d2lf3vxFOKtudLbwJbW8UEQwkahVHs BUtc/wCFLue8
g1CW4Mu77W4CSEkxjA+X2xXQV89iqMqNaVOTu0axaa0CiiisBhRRRVAFVNT1 G30uye6umwq8
BR1Y9gKuVia7e6PA0S38a3NyjbooUXe+fp26d66sJS9rVUXFyXZb/wBeZLdk clbXv9oa9p2o
3NyDcSXWwW65/coOg/Emu2n13TLW+eyubpYpUUMd/A57Z9ay4reLxJHp2sQQ raywzhn3KCXA
PI3Dr04qld2l1ZaTrF7e2we+v5fLRV+fah4HI6cZ/IV9DXjQxdSMJ+64+7y3 V0+b0tZL9Opk
rrU62SK2vbfbKkVxBIAQGAZWHY021sbSyDC0tooA33vLQDP1rj4o5vtc2nz6 tLYwaXapjypN
pdioJY+oz2+lWBrWpf8ACI/a53H2y6l8q32Lg8nH58N+lcUstqpKEJ3Ta01W +qfZ6avsNTXV
HY0Vj2muacs0WnS6gkt6oEbnaQGfoecYzmtivMqUZ0naaa+Vr+ZoncKKKKgA paKKoAooopgF
FFLVAFFFFUIKKKKYFK7bdaXB5+44/nVHTvuiplk8zTbtueHnX8nYf0qHTvui vRj8KINyL7tS
VHF92pKoAooooAKKKKACiiigCp+dH50fnR+dAB+dZWlf8g23/wCua/8AoI/z /nI1fzrK0r/k
G2//AFzX/wBBH+f85Fw3JlsXov8AWp/vD/P+f/1aVZsX+tT/AHh/n/P/AOrS pzFEaeq/X+lO
pp6r9f6U6sywooooAKKKKACs7XpZYNFvZrckSpA7IQMkHHWtGo5fu0Ajjb1b bTbOEackZe6Z
UErHIY4J3se/AP1rYljNz4aeLcHaWzK5UcElOorOuLbSJI7iO0hsnUt+9WJV I3DpkDvW7ZgC
xtwBgCNQB26VlXdqUn5P8hrcSzm+0WVvP/z1jV/zGamrO0LK6VFCTzbloD/w Bio/QCtKvlJq
0mjcKKKKQBRRS1QBRRRTEFFFFUAUVXvL+zsU33lzHCO25uT9B1NL9sthZreP MiW7KHEjnaMH
p1+taqjUspcrs9tNxXRYrO1HW9O0yRY7y5CSMM7QpY49TgcVDa+ILK9vltLJ Zp853TJGdicd
yaztesr0an59vbzSWtxFsn+zECUnsCTnC9OnvXpYTAr2/s8VeOl90n+O3UmU tLxLU+oQ6u95
o8Ix5tr5kM2eJAR2+h/rXMwTXUGhpqsepyJc2kiwm1Jwm0YG3b3Pf86uJpt3 otno188bGaCU
pNGg3HY5PHHXGT+JrpY9B0tLqS6+yI80knmFn+bB68DtXse3w2Cjyw96Dfk7 tXUlrspKz0+R
laUtzmmtLyGHUdFj06eWC8cS2zgYSPODye2MD8veti40Se/0W0Fwyw6pbIPL mVs4Yep9+Pof
13HuIIpUhknjSWT7iM4DN9B3rIvdRnvLe4GiTD7XZS/vYXTlwOq8+vr7VyRx mIryi4RUbO7l
ra7VtelnbXpcvlS31GaDBdaZpF3LqTRQzySvM7Mw2gkDrj39Ks+G9SbVdIju JWBmBKSY9R/9
bFYP9kW2u239o6RcNHI8gkmtZ2LxtIOcMP8APFXPDv2631XURfWQs4ZQsnDD ZvA52nvnr3xi
tcVQpVaVWd17S6bVrNdLWu7730b2Ji2rW2OoorjPD2rPZXP2acytplzK4tLm XqTnofr/AD/T
Zm8RW9pq0lhqEUlsuR5U7j5HGB37c/h9K4a2WV6dV04rmsr6dV6d11XQtTVj aoJABJOAO9Ut
Su7m2s1uLG0+2sWHyI+MrjqDg57VixeMLCaE/bLK6hjbKszR7k9xn/61Z0cB XrR54RuvK1/u
3G5Jbmrf6lpnkSwS6pFAzKRujmAdfcVx90un2drNd+H9RMs7D7PMsiktIXzy pIBB69PT85dX
tNMsv7MvdEghle4yqW8ilxICOGw3cGuk0PQ4dOs9tysct1MwkmYqCNwOQB7A /rXt03RwFFVI
uT5n8Lsr2dndWe3ruZO8nYgkv10G0sNKtLc3d3tUGKPqF/iY/rWxYX9vqEBl tmJCsUZWUqys
OoIPQ1n3mnyWQvb3SYDNqN2wG6R87B04z2HXH9ABWTp095p5ubHSrRbz7Mxe 8uJpNvmSnqF9
+Mfhz78jw9LE0nOn8XVtpXvvfoldpLq/yrWLt0DUvDF/cySxpNaTQyvkTTqT NEuc7VI6j/PF
ad1oTzXWmCKRFs7CMhUOd2/GFP4YBq5BrWnz6Y2pLcKLZPvsQflPpj15q/G6 SxrJGwZHAZWH
Qg96ipjsXGymrct1t1tZ/OwKMXqjgLHRr3EOlyQ30JE3mzOY1eEkHgq3UHHv +FdN4k1RtPig
SG7jtp5GyGljLIQOoJGcZyOfatumyRxzRmOVFkRuCrDIP4U6mYe3rRqVY3Sv ovP1TBQstDH0
PVb2/cx3VpGFC5FzBKHjc5xjjofam6nr02nXMgfS7h7OHb5lzkADP90d/wA6 0LXTbTTxcPp9
tHE8vJA6Ejp9B9K43Ub1tXl0+O4srk30Uv8ApVsqt5flqSTx3J/z2row1Gji a8pRh7n3W633
8rb2206CbaXmd6HVkDg/KRkE06vNdS1O416eG0kn+yK86xizCkbF/vOxwCfa t6/1O/8AtV5a
6PLFb2ulwbpHZA25gOE56dMfgaU8oqQ5U5JN6vstUlr1u3bRApnWUVgReJIx a20k9tKxaGOW
d4wNsQc4BOTnr9eK6CvPq0KlH41YpST2CiiisxhRRRTAKWiqup3BtNMu7kHB ihdx9QDiqSAy
9PJfw+8pz++E03/fbM39adp33RVgW/2TRhbc/ubYR/kmKr6d90V6EdkQbkX3 akqOL7tSUwCi
iigAooooAKKKKAKn50fnR+dH50AH51laV/yDbf8A65r/AOgj/P8AnI1fzrK0 r/kG2/8A1zX/
ANBH+f8AORcNyZbF6L/Wp/vD/P8An/8AVpVmxf61P94f5/z/APq0qcxRGnqv 1/pTqaeq/X+l
OrMsKKKKACiiigArO15Zm0W+W2DGYwOECdc47e9aNRy/doBHB3WoxNBJBpPk JHF5CJInzcMc
YYYGCMHj37V1tiCthbBmZiIlBY9+BzVLUAAGwMZq9af8ecHX/Vr/ACrHEfwZ +j/Icd0U9P8A
3Oo6lbYwC6zr9HXB/wDHkb860qzbr/R9Zsrjos6tbuff7y/+gsPxrSr5ietn 3/4Y2QUUUtSM
KKKKYgooqG6uYbO3e4uHCRJ1bGauMXJqMVdsDLv/ABJZWN3JbvFcSCHb50sa ZSPd0yc1U1O9
1K71gWOl3qW6i0+0RnYG8454GT0FZ095ZR6pfSzSE6ZqsRQybCNkijBBGMg/ h3FSadpt9c6N
pGo2jKl9ahgolyBJHk4B/Dp7GvrIYPD4aMarjZtW97VXavqmtLNOL7XTMHJt 2RQnS01iGydY
FTUNRn8ueQk4j2Y3YHYng/mK7BGs9Qs7qwtgjrb/ALgq6ZVWHTg9cECs6y8N RyWMiaqqNNJc
NcDySR5ZOOAfw/zitnT9PtdNt/Is4hGmcnnJJ9Sa5cxxlCaUaUm3B6dt+/ZK ySt0uOEWncyL
Pw44eGXUdQlnMTBkiiAjiUjphR/9auhooryK+Jq4h3qP9F9yNFFLYKZNNFbx NLPIkca9Wc4A
/GpK4rUtaurmAm4tIZbKbcWtNjecsQP+sJ6LzyPwrowOCnip2Wy3/wCB5/gK UuVDEgupPEE1
kzx21+0jzreSRiQunGxUz04z09ParNjY3WqXEs73RstUs5DbzzwLkTrjrjgZ /wDrcdMQJapP
JBompyOCMSaderwWTrtz64/p7Z6+zs7exh8m1iWNCdxx1J9Se5r2sbjPYxSj 8TWmitbvd7p/
yv4WuljOK5n/AF/XzEsbK30+2W3tY1RFAyQOWOMZPqa53XJ9Mn1IW2vWU8MS 8W9zvOxs9enA
5+vvipZ/Etq4uEuA9tYvuiiulb55GHBKKAeB6/SqMVtqt/YGzs7621LTJjt8 6YHzIh7jrkfn
9KywmFqUZutiG4t9btPzakrq66xfpuOUlayLTeD9PuLZVttQu/s7HciiQPH9 QMVnXqarq13b
tDobNb28bRKt2xAbPG45wc9K7B1ttP01gCLe2hjPKj7gx1rjp55bSJJNL8VG 43OqCKUB35OM
gHPT6V0YDE167cm7taRclK2u+serVtyZJJGloenatoVneSz7ZoxGXitInLYb rgZHH4Zqpp/h
24nQya7c/Z7V5TKLNZMDcT3OePp19xXZSR+ZC8ZZhuUqWU4IyOorzi9i0Fop I9O/tG+v8/I5
BODnuMDj8KeBxFXFynJPllJq7Ub2+d7LrruEoqKO4vbIxWcZ0u1tvtVuMW/m D5UzwcfhXL3X
m6XqNtcPqb6hrZcKbdBlNp6rgdP0+ldvCXaCNpV2yFQWX0OOa46We3W8jtfD 6x2c11cyxzXU
i5KleSBn1zwPp0rny2pKXNCSutbvy1bu9Xbd2Su2OaVrnXXkUk9nPDDKYpZI 2VZB1UkcGuPT
T9XuLg2ccd1ZfaDm/lyvlOehZOM5buPetTQtRZdUutIuNRF+8YDxyhMf7ykj jjj/ADwOhjkS
Vd8Tq65IypyMg4P61jGrVwDdOyd7NOz67PX9dmh6TODu7i0Ai8+3kj0ezkMd takYa5lHVmz2
HfPr6kiuu0zUxfPNBJbvbXMG3zInIOARwQRwRUWtaXLfPbXFs0P2i23bUnXd G4YYIYVHpmnQ
aHa3F5cNtdow021mZUCjouecdePwrfEVaGIoK3x9Fq9b/qtW9230tYSTTNml rAtPEcbXgiu1
SO3nObS5RsxyD+6T2b2P+Gd+vNrYepRdpqxaaewUUUVkMzbnRbO71SPULlTJ JHGEVGxtGDkH
61gXOh6uz31hAsItL6586S5LfMFJztx/n9a7Glrvo46tS217X6W2t6EuKZnP oumyNbPJaozW
yqkZJPAHQH1/GtGiiueVSc7czvYdkgoooqQClooqgCszW/3kFtaYybq5jQj/ AGQd7f8Ajqmt
Osx/9I8Qxr1SzgLn/fc4H/jqt/31VxEWL/8A49rjr/q2/lWdp33RWjf/APHt cdf9W38qztO+
6K7I/CiTci+7UlRxfdqSqAKKKKACiiigAooooAqfnR+dH50fnQAfnWVpX/IN t/8Armv/AKCP
8/5yNX86ytK/5Btv/wBc1/8AQR/n/ORcNyZbF6L/AFqf7w/z/n/9WlWbF/rU /wB4f5/z/wDq
0qcxRGnqv1/pTqaeq/X+lOrMsKKKKACiiigAqpqf2j+z7n7Hj7T5TeVnH3sc dferdRy/doA4
O8fFov2f+1AGdBcmZZS4GDnbnvnGdtdZp+P7NtcBwPJThzkjgdfeqeo/dNX7 T/jzg6/6tf5V
jiP4U/R/kNbor6vBJPp8nkDM8WJYv99TuA/HGPxqzbTpc20VxEcxyoHU+xGa krN0r/RprrTj
wIX8yL/rm5JH5HcPwFfMrWFuxsadFFFSMKKKKYgqve2kd9bNBKzqCQQyHDKQ cgg+uRVilrSE
pQkpRdmgKdlp8FnbtCC029zI7y4ZnY9zVuloqpzlUblJ3YkrBRRRSGFBIAJJ wB3rJ1fWlsQI
LSI3V7ICUiXoMdSx7AYNP02T+19Aha9UP9oixIBwD2P0rs+qVIU1WqK0W7ef rb5E8yvYgi8R
Wst46oALKM7Gu3YKhkPRV9e/P9Oadc+HbS4u5pzNcotwQZ4UkwkuPXv+tMtP D8aXouLxkmWE
kWsCriOFfXHdvetyuqtXp0J/7HJrTX+u/nprt3cpN/ENEaDadi/JwvHT6UrE KpJyQBk4GaWs
TxFeXEBtbeCc2qTF2luQm7y1Vc9PeuXDUZV6qgn/AEtSm7I5mwdoLxbrRmN7 HAHH9n3HyzRA
nLBeueR2/Kuk8MWrrFc37wC1F64dbYdIwOPzPWsPTbKTWLlrfVW/0oQrcQ3c OFkQE8B8d+hw
eR612GnQXFtZRw3d0bqZc5lK4yM8fpXv5tXioumn7ztfzW612evWyl67mMFd 3MDVdavo7+9h
gt4ZoIfLgWN/+Wkj4IJ9hz6f4RadEYdbt7bVtFsIppQXgmt0wMryePX3qTxV pukAre3ttdmS
Q7We1wTwOpB49qpaLeaJb6mLttbnmPlGNUu0OVyQfvdO361tTjCWD5qMHqra J3va26dt7t3W
oSvzanV6vdvYaXc3caB3iQsoPTPv7VzButRvb2WB9Wg0mOCGN/lUYkLLksMn pnPf0rsJY47i
B4pFDxSKVYHoQa4TV7PR9FuTH/Ys9wOCsks5SMnrgHv9K5Mp9nNOny3n00T7 fzNLv95U77nU
+Gr6XUNHimuJEllDMjOvG7BwDjtxiqWoeFlu55tl7JDZzyedLbqgOX9Qx6Z+ lQeGbu9uXX7L
Y2FrpoY+YsT7nzjjoevTqK6qscRUqYLEzdJpX6aO2u3ZNeWwRtKOp57Khto1 tr3/AIk1lKcC
2gG+4nHTLN6fXj2rsNBOm/2Yg0ni3BIwc5Dd855zWZrejXFzqguoIUlWWNYi +4K9uwbIkUn0
9OvFaGi2UmmWkjX9wj3NzMZJWGAu9sDA6e1dWNrU6+Gi1L3nrZd/Nb3Xdu/y ZMVaRq0UtFeI
jUxk8PWkV68sWFtJfmktCoMbP2YA9PwqfWbm8toYzYy2Mbsxz9rYqCACeMd+ K0j0ribuwvLS
xtrPU1tv7Ns5xI127FyybuF29cnOMdK9XC3xNROrK9uj66P73su7+RD02Oo0 fUBqmmQXuzyz
KDlc5wQSDj8qvVxOp3Gj6nCjWOn3008cZS2MEbIiHsR2GD7Vu2msWtslpYal exjUTGqyKTn5
8dCRwDSr4KSXPCL1b922qX46ebsJS7m1RRRXAWFFFFMApaKKoAoooqhB05NZ miZmgm1But7K
ZVyP+Wf3U/8AHQD+Jp2tyObRbOFiJr1xApHVQfvN+Chj9cVoRxpFGkcahUQB VA7AVS2Aq3//
AB7XHX/Vt/Ks7TvuitG//wCPa46/6tv5Vnad90V1x2RJuRfdqSo4vu1JVAFF FFABRRRQAUUU
UAVPzo/Oj86PzoAPzrK0r/kG2/8A1zX/ANBH+f8AORq/nWVpX/INt/8Armv/ AKCP8/5yLhuT
LYvRf61P94f5/wA//q0qzYv9an+8P8/5/wD1aVOYojT1X6/0p1NPVfr/AEp1 ZlhRRRQAUUUU
AFRy/dqSobh1jiZ3YKqjJJOAKAMXUfumr9p/x5wdf9Wv8q5y41hbi0ludkKR 4+TdOMsecAjH
y5x710Vkc2NuT3iXvnsKyxC/dS9H+RVmnqT1mar/AKLLb6mvSA7J/eJsZP8A wE4b6A1p02RE
ljaORQyOCrKehBr5iDs7mo6is3SXeIS6dMxaW0ICserxn7jfkMH3U1pU3Hld gCiiloAKKKKY
BRRRVABIAJJwB3rIvZ5tUiWDRdQtwpbE8yPueNf9nHc+tXNVtXvdMurWNtry xlVPvXGNcQW9
smo2yx2GrafiO5tuEEy5APHf/Psa9rLcIqq9pF+8nZK10uzfk3pfZPcznKxq aI1va+GpRNLt
SWaSCORxkjccDOPfmnaXDq7NplpJayWkViT50nmDbKMYAAHX+lW4fDlv54l+ 0XH2Uy+eLQn5
A/X8vat6tMVjqac/Z+9zNvXpe6087N33V9iVEKKKK8Y1Csr+0dM1I3NlNtaN ZRAfNACSP1wp
7kY/l7VZml+22l3Fp10izpui39fLf3rE0jQpYNSj+0R7bWwTEGcfvZG5aT/P t6V6WGo0lTnO
rLlktls/6vb8X0Ik30N2w02y01GSxt1hDnLYySfxPNW6KK4pzlOXNN3b7lWt scf4xt3luGe4
ime0js2aMqflWbdjJ/Mf5zUnhfT7eeC7ElsZtP8AMH2b7XGC3T5sZ7Z6V0F9 qMNjNaQyq7Nd
SeWm0Dj3PtT9PvoNRtEurYsYnJALDHQ4r2ZYyssEqfJZdHf+tdH17mbiua5Z rnvEmlzX95Zy
JbC5iCvE4LY8ssMBx64/z7dFRXn4avLD1PaQ3/zLaurHN+FdNvLRri5u7aO0 MqRoIY8c7Rgs
ccZP+NdJXNWPiK4ur6wieGKNLiSaKQDJKsgyOfxHaulrpzCNb23NWSTfby0/ QmFrWQVyPii3
l+3ItxO32K8ASNmPFtOPukegPQ/U+grrqZMsTJmZFZE+b5hnBHOajB4h4erz pX/r/McldWKm
i3F1c6ZC99A8NyMpIrjGSOM/j1q/WFea3bzaLFdRXclgLptsczw7thB7jpzg 1P4av59R0pZr
gh3V2TzQu0SAHhsdq0rYWooyrOPKr2trp+nlvclNaI1qbIiSxtHIiujDDKwy CPQ06lrkWmqL
OdubOTw/pOpT6bNK0ezdFAeRCf4iCe3Oce3esOG3t7yCPQ9JYXLTFZdQvsZ7 5wCe/p/+uu+p
kUMUKlYYkjUnJCKAM16lLMHCLcleV7387aX723XnqzNwuY9rrTzaubIxxBN8 kYVZCZU2fxMu
OAe31FbdIEUMXCjceCccmlrjqyhNpwjYpIKWkpagYUUUVQgpaKo6rdSW9qEt sG6nYRQA/wB4
9z7AZY+wqkgIbX/TdXnuzzDa5t4fduPMb8wF/wCAtWpUFlax2VpFbRZ2RrjJ 6k9yfcnmp6oC
nf8A/Htcdf8AVt/Ks7TvuitDUDi1uCenlt/KsDS7y6ntWuLazV04MQeXa0g7 npx7evtXVHYk
6uL7tSVQstQtp7CK8MgijkIX96QpVs42n3zxj1q/TAKKKKACiiigAooooAqf nR+dH50fnQAf
nWVpX/INt/8Armv/AKCP8/5yNX86ytK/5Btv/wBc1/8AQR/n/ORcNyZbF6L/ AFqf7w/z/n/9
WlWbF/rU/wB4f5/z/wDq0qcxRGnqv1/pTqaeq/X+lOrMsKKKKACiiigAqG4U PEyMAQwwQehq
ao5fu0AchPpzQaGbPbGJjEUZl6E4PfFb+nhhp1qGGGEKZweM4FU9R+6av2f/ AB5wdf8AVr/K
ssR/Cl6P8irtsmooor5c1M3VI3iMepW6lpbYHei9ZIj95fqOo9x71oRSJNEk sTB43UMrDoQe
hp1ZVv8A8Sy++xtxaXLFrc9kfq0f0PJH4j0rVe8rdUI1qKKKkYUUUVQBRRS0 xGfrH2v7Iv2P
zc+YPM8nb5mzvt3cZ6frUVjp6TwQXGqWsUl6mcSSIpcAE7ckcZxj8a1aK644 iUaXs4q3mt/T
0Fa7uFFFFYDCqupvcRadcPabPPCHZvYKAfXJ4q1XHeJ5dTku2tHikn0ptssh tozuCg4K56Zz
z+Vd+X4b29ZK6Vtdfy8/TQmTsri6VGnhrWGtru5Cpd2yyGWVsKZQTkZ/E/pW 74evp9S0mO6u
QgkZmGUBCsASMjNZXhqWx1rSjZXcaXX2J9qGReSn8Le3HH4V08caRRrHEioi DCqowAK7MzqL
mlCpH95dXfont6q33EQXVbDqKKgv5/sthc3H/PKJn/IZryoQc5KK6mhl63pt 5eX1tc22wrbQ
zbVLYJdlwPbHSrmh2j2OjWltIu2RIxvXIOGPJ6e5rC8N6zehF0/U2BuJYRLa SSN/rVI4BPr+
vWtnQNRm1KwaS5jRJopGifYcqSO49q9fF0sRTpexnbli1qut72fpv8zOLTdz UooqO5RpbaaN
GZWdCoZTggkdQa8uKu0jQx4vDsMdy07XD8Xhu0CgDaT1U9cj8q3BzXCaVqer LpIfUIJdT064
DxOY8tLH1BB9c/161t+EI5o9PuA0U8VsZ2Nsk/3gnFexjcLWjFzqzT5XZbf1 ddVbzMoyV9Ed
DSMAylWGQRgiloryUaHE6lpyaRc2cUMtzftvJtLBuUU+pPoM/wD1+tWoL7V7 HVLG1vbi0c3L
bWsoEGYVx97I9K2tV0hNSaGVbme1uIchJYWwcHqK5iygliv7mLw7CC0bFLjU 7w7ue4Xt+n19
a+jo1YYmj79m0ne66u9tenyXM2YyVnod1RWF4a1G5vku4ridLoW0uxbmNdqy cent7eordrxa
1GVGbpy3RondXCiiisxhRRS1QBRRRVAFLRRTEFZWn/8AEwvH1RuYVBitB/s5 +Z/+BEcewHrR
qTte3A0mBiA67rp1/gj/ALufVun0yfStREWNFRFCoowFAwAPSrWgC0UUtMDP 1VPNsLyMkjfC
65HbK1gaRePb2ISe0uDLAqoVjjLB+wKnpjjv074ror//AI9rjr/q2/lWdp33 RXTHYkakV3aa
GGazinuproSmBlLhS8m7HHdc9emRmuiqOL7tSUwCiiigAooooAKKKKAKn50f nR+dH50AH51l
aV/yDbf/AK5r/wCgj/P+cjV/OsrSv+Qbb/8AXNf/AEEf5/zkXDcmWxei/wBa n+8P8/5//VpV
mxf61P8AeH+f8/8A6pr6++xeTm2mmErbA0e0BT2BLMMZ6D346kZc1dijsWj1 X6/0p1ULXUDd
XTwfY7iExYLs5QqCRwuVY845x6Yz1Gb9Q1YvcKKKKQBRRRQAVHL92pKgvJo7 e2knmYJHGpdm
PYAZNAGNqP3TV+z/AOPODr/q1/lWDfakDAZJbO5h3ECNXC7pCegABOOnfGK3 LElrG2YqykxK
dp7cDjisq/8ACl6P8hrcsUUUtfMmwVBeWsV5bPbzZ2t0KnBUjkEHsQeanoql pqgKGnXUjs9l
eEC8gHzEDAlXs49j39DkelX6p6hZtcqktu4iu4DuhkI491Pqp7/n1FLYXq3k bZQxTxHbNCx5
Rv6juD3FaNXXMhFuiilqQCiiiqAKKKKYBRRS1QFHWIbm40m6hs22zvGQhBx+ GffpXEQtYW8L
XGm3Uukalbr+9tp2O2QgdOeufT9O9ei1zOmSnWL1l1OxtptkZY77YgwNuxsJ brxzx6V7uW4h
06M7r3Vq7db9GmmmtOtrdNzKavY1tISCW1j1FLWOCe7jV5doxnv/AFrQo6DA pa8mpPnk5FpW
QVleIb4WWngC2W6e4kECRPjaxb1z24rVrnfE91DLs0n+zZdQmkXzdiNt2AHG 7ODzn/PNdWAp
89eKaulq/wCrr80KTsjCv7q5ZhZa7oUEkNogfNqxUxRnjI5PHHT2rtdOtrW1 sYYrFNlvt3KO
e/Oea4uwg0+Vv7Lu7fUtNuLphl5WyZQM/JuIHHPp2HtXeRoscaxoMKoAA9AK 9LNZKMY0kmut
tbPzSu1vfZmcN7jqKKWvENTiNS1G7tb7UltdRttOjssGK1Ea5mJGT+f+fWpP Ct9cT6r5Qvrm
8ja33ziYHEUuegz+NXPErINQs4Laws5b6cErPcgYQL/Oqf8AamraffWq3Wq2 N6Z5lje2hA3A
E4yCAD+dfUpKthrRiryXW19Ouib3Td21qYvSR2dFFFfNGwVz9x4VtriaXN7d payyGRrZJMIW
PJroaK6KNepRbdN2uJpPc5o2moWOpxW2nRTRWSPH5ax7fK2f8tN+fmLdcV0t FFVWrOta61X4
+bElYKKKWshhRRRTAKWiiqEFU9RvfscSrEnm3Ux2QRZ++3v6AdSewqS9u4bG 2aeYnAICqoyz
seigdyarafaTea9/fgfa5RgIDkQp/cB/UnufYCrSAm06zFlblWfzZ5G3zSkc u56n2HYDsAKt
0UtMAoooqhFK/wD+Pa46/wCrb+VZ2nfdFaOof8e1x1/1bfyrO077ordbCNyL 7tSVHF92pKYB
RRRQAUUUUAFFFFAFT86Pzo/Oj86AD86ytK/5Btv/ANc1/wDQR/n/ADkav51h 2t3DaaVaNNIi
s6Ksas4Xcdo7noB3Pb3OKuGrE1c1Yv8AWp/vD/P+f/1aEiJLG0cqK6OCrKwy CD1BFYlnfQyX
iWxuLaSYncpgcFXHfAySCPT2yP8AZv6ld3FnGksVvHLFnErvKUEQ7McKePU9 up4yRU07pCWm
5Yhhjt444oV2opPfJJOSSSeSSeSTySamrOsry6ubmRJbWFIYzt82OYuGfnKj KjOO59eOoONG
s2mtxoKKKKQwooooAKr3kMdzbSwTLujlUo6+oIwasVHL92gDkr/SyIQj391I Y2DRM5TKYBH9
3ng981vWC7LC2XLHESjLHJPAqlqP3TV+z/484Ov+rX+VZV/4UvR/kNbk9FFF fNGwUUUVQBVG
+s5HlW8smVLyMYG77sq/3G9vQ9j+IN6lqouzuIq2N7HexsVVo5YztlicYaNv Q/49DVqqF9Yt
LKt3ZuIb1BgOR8sg/uuO4/Udvd9jfpdF4nRoLqP/AFkD9V9x6r6EVo4p6oC5 RRRUgFFFLVAF
FFFUIKKKKYBS0UVQBWTq+hxanJHcJcTWl3GNqTRNg49DWtRW1GrOjLng7MTV 9zkLK2jl1uC2
v9fkvpbWQtHCYSoLqP73QkeldfWZFoltFqX21Zbg/vGlWEv+7V2GCwGPr371 qV142tGtKLi7
pLslr6JImKsFFFFcZRS1HSrHVI0S+gEoQ5U5II/EVzOoxW3hy/j/ALMsYI2M e9HlR5WlfOPL
U5+U4/nXZ0V3YbGTpe7K7j2voTKKYKSQCRgkdKWiiuQYUUUVQBRRS1QBRRRT AKWiiqEFQXl3
BZW7T3D7UHAAGSxPQAdyfSmXt9DYxq0u5nc7Y4kGXkb0Uf5x3qvaWUstyL/U cGcZ8mEHKwA+
nqxHVvwHHW0gEs7Wa4uF1DUV2ygHyIM5EAPc+rnue3QdydOilpgFFFFNCCii iqQFLUP+Pa46
/wCrb+VZ2nfdFaOof8e1x1/1bfyrO077orZbCNyL7tSVHF92pKYBRRRQAUUU UAFFFFAFT86P
zo/Oj86AD86zNJZl0232sR+7Xof9kf5/zkaf51laV/yDbf8A65r/AOgj/P8A nIqG5MtjQR3a
RAzMRuHBPv8A5/z00KzYv9an+8P8/wCf/wBWlTmESNUSJI44kVET5VVRgAAc AD0qSmnqv1/p
TqgoKKKKACiiigAqOX7tSVHL92gDD1H7pq/Z/wDHnB1/1a/yqhqP3TV+z/48 4Ov+rX+VZV/4
UvRjW5PRRRXzhsFFFLTEFFFFUAVUvrGO8CPuaK4i5inT7yH+o9QeDVuiqTa1 QGbBfyQzLaao
qxTMcRzL/q5vp/db/ZP4ZrSpk8EVzC0M8ayROMMrDINZ3l3umf6jffWY/wCW TNmWMf7JP3x7
Hn3PStLKW24jVoqvaXlvexGS2kDgHDDoVPoQeQfY1YpWtuAUUUUwClooqgCi iimIKKKWqAKK
KKoAooopgFLRRVCCiiiqAKKKWqAKKKKYBS0VDc3MFpC09zKkUS9WY4FUkImr Pu9RKTGzsYxc
3uOUzhYge7nsPbqewqHzL7VOIBJYWZ6ysMTSD/ZU/cHuefYdav2lpb2UIhto xGmcnuSe5J6k
+5q7WAgstP8AIla6uZPtF64w0pGAo/uqP4V/n3zV6ilpgFFFFMQUUUVSAKWi iqAo6h/x7XHX
/Vt/Ks7TvuirusFV069Mil0EDllHcbTxWDpcwfVbf5YmSW2Z432kOoynGc98 5/CtUI62L7tS
Vz0GqXv2y7CG3uLO0VzI0cZVtwGRGp3HcfU44+vSA6xqjaNdXU0McQa3WSGZ AAELHB/iO7bk
HdwD6UAdRRWU+hWH9nfZVTYRlxcA/vBJj/Wbuu73pLC+ubjTtJnaS2VrhV83 zCQX+Un5PfPP
0zQBrUUUUAFFFFAFT86Pzo/Oj86AD86ytK/5Btv/ANc1/wDQR/n/ADkav51l aV/yDbf/AK5r
/wCgj/P+ci4bky2L0X+tT/eH+f8AP/6tKs2L/Wp/vD/P+f8A9WlTmKI09V+v 9KdTT1X6/wBK
dWZYUUUUAFFFFABUcv3akqOX7tAGHqP3TV+z/wCPSDr/AKtf5VQ1H7pq/Z/8 ekHX/Vr/ACrK
t/Cl6Ma3J6KKWvnTUKKKKoAooopgFFFLVAFFFFUIpXemw3Ev2hGe3ugMCeE4 bHoezD2INQfb
L2x+XUYDNEP+Xm2Unj/aTkj8Mj6VqUVafRgR29xBdQia2lSWNujI2RUtULjS raWY3EJktbk9
ZoG2lv8AeHRvxBqPzNWtOJYY7+IfxwkRyfip4P4EfSq5U9hGnRVG31aynkEP neVOf+WMwMb/
APfJxn8KvUWa3AKKKWmAUUUVQBRRRTAKWiiqEFFFFUAUUUtUAUUVTutTsbRx HPcL5p6RJlpD
9FGSfyqkhFymySRwxtJK6xooyzMcAD3NZ32nU7vi0s1tIz/y1uzlvwjU/wAy PpTo9HhaRZr6
SS+mU5BnxtU/7KD5R9cZ96q3cBn9pT3ny6Rb+Yp/5eZgViH07v8Ahx71Lb6W iTLc3krXl0vK
ySD5U/3F6L9evua0KKoAoopaYBRRRTQgoooqkgClooqgCiimebF/z0T/AL6F UkIp6kqvaXSu
u5WiYEEZBG2sqytreVopJII3ki+4zICU+h7VqX7obe4w4P7tuh9qoad90VYG lbabp8U/2mKx
tkuMk+asShsnrzjPNPi0zT4VmWGxt4xOCJQkQG8ehx16mp4vu1JQBlnRomsx ZNd3jWueYzL1
TGNhbG7b+OffHFWLjT4Lh7QsNq2jiSNVAAyBgduAPbFXKKACiiigAooooAqf nR+dH50fnQAf
nWVpX/INt/8Armv/AKCP8/5yNX86ytK/5Btv/wBc1/8AQR/n/ORcNyZbF6L/ AFqf7w/z/n/9
WlWbF/rU/wB4f5/z/wDq0qcxRGnqv1/pTqaeq/X+lOrMsKKKKACiiigAqOX7 tSVHL92gDD1H
oav2f/HnB1/1a/yqlqC5Boj1Wxt7eJJZyrKgBGxj2+lRUjzRce4I1aKxz4j0 het2f+/b/wCF
J/wkuj/8/h/79P8A4V5v1CXcvmNmisb/AISXR/8An8P/AH6f/Cj/AISXR/8A n8P/AH7f/Cn9
Ql3DmNmisb/hJdH/AOfw/wDfp/8ACmDxTopBIu346/uJP/iaf1GXcOY3aKxF 8T6MwyLxse8T
j+lNfxToqH5rxx7+TJj/ANBp/UZdw5jdorD/AOEo0bft+2Pn/rjJj89tO/4S XR/+fxv+/b/4
UfUpdw5japaw28T6Moybxse0Tn+lJ/wlGjbQftj4PH+pk/8Aiaf1OXcOY3aK wm8U6Kpw164/
7YyY/PbR/wAJRo2/b9sfP/XGTH57ar6nLuLmNi4t4LqMxXMMc0Z/hkUMPyNU v7IWH/jwvLq0
x0RX3p/3y+QPwxVVfFGjPnbet8pwf3T9fypf+Em0fIH2xuf+mT/4U1hpLqHM Wc61B1WzvVHc
FoW/L5gfzFL/AGq0ZxdabfQ+pWPzR/44Sf0qr/wk2j5x9sbj/pk/+FH/AAku j/8AP43/AH7f
/Cq+rPqFy2muaUx2m/hjb+7K3ln8mwavRTQzDMMqSD1Rgaw28TaJJ8j3ZYHs 0L4P/jtVDqPh
KVi7Q2zMO7WZz+q0/q3mHMdVS1zCa34aiAMZjQf7Nqw/9lqyviPRQPluiB7R OP6Uvqz7hzG9
RWA3iXRSdrXbHP8A0xc/+y1E+teHJf8AWPG+R/FbMf8A2Wn9XfcLnRSSRxLu kdUX1Y4qjJre
lRnadQt2b+6jh2/IZNYa3/hItvWC2Dev2Mg/+g1cXxJocChY7kovokD4/Rar 2HmK5e/tdZDi
1sL64z0IgMY/OTaKPM1mf7lva2a/3pXMrf8AfK4H/j1VP+En0f8A5/H/AO/T /wCFH/CTaRnH
21v+/T/4U/Yhct/2VJN/x/6jdXA7ojeSn5Lg/mTVy1srWyQpaW8UKnrsUDP1 9ayD4n0gDP21
v+/T/wCFIPFOjN0vX64/1T/4U/ZPuFzoKKwD4o0cHBvX/CJz/SkHinRi2Bev kf8ATKT/AAo9
kwudBRWB/wAJPpHH+mvz/wBMn/woHijRzn/TX4/6ZSf4U/Zhc6Ciue/4SrR8 Z+2Sf9+ZP/ia
cPE+kEZ+2t/37f8Awp+zC5v0Vz58UaOCB9tfP/XKT/Ck/wCEp0c5/wBNk4/6 ZSf4U+QLnQ0t
c9/wk+kc/wCmvx/0yf8AwpP+Ep0fGftsmP8ArjJ/8TT5RXOiornv+Eo0jBP2 1+P+mUn+FH/C
UaRux9tfP/XJ/wDCnygdDTYf9TH/ALo/lWD/AMJPpH/P63/ft/8ACmyeItLm iiiW+2RlQHxH
IGPsPl49zTSA0L2682KZIioiCOpc/wAbbT8q/TufbH0pad0FVZtSsjayCOcM 8kLxgRQv8vy4
CJ8vHOOT1x+WZaQ6iV3l7kSAE7UJxkbMfzb8qYm7HcxfdprXMKwibzAYywUM ORknA6e9Kq7o
yoYrkYyOorCigl/sxrUNdiZZVyGj4X97ncpxg8c96AbsdFRWBcR3kO+JHuTb Lccsd7tt2A9R
8xG7PStbTxILGISyPI4HLOhUnnjIPP50CT1sWaKxJhdnV23SzxqJE8sJG7KU wMjj5euck8il
jGpnzYQZAbRHEcjH/XsR8h98Dr70rhc2qK5yBL14lVLi7G54g+Y3DLydxy2f xxwK1f7Mh/57
Xf8A4FSf40wTuP8Azo/Oj86PzoKD86ytK/5Btv8A9c1/9BH+f85Gr+dZWlf8 g23/AOua/wDo
I/z/AJyLhuTLYvRf61P94f5/z/8Aq0qzYv8AWp/vD/P+f/1aVOYojT1X6/0p 1NPVfr/SnVmW
FFFFABRRRQAU1xkU6kNAGZdxbga5+8syxPFdbJHmqklqG7UAcTJpxJ6VF/Zp 9K7NrEHtSfYR
6UAcb/Zp9KP7NPpXZfYR6UfYR6UAcb/Zp9KP7NPpXZfYR6UfYR6UAcb/AGaf SmNpCM4dogWH
ciu1+wj0o+wj0oA43+zT6Uf2afSuy+wj0o+wj0oA43+zT6Uf2afSuy+wj0o+ wj0oA4s6Qhfe
Yxu9cU7+zT6V2X2EelH2EelAHGDS9owqYHXgUv8AZp9K7L7CPSj7CPSgDjf7 NPpR/Zp9K7L7
CPSj7CPSgDi10lUOVjAJ9BTv7NPpXZfYR6UfYR6UAcb/AGafSj+zT6V2X2Ee lH2EelAHG/2a
fSj+zT6V2X2EelH2EelAHG/2afSj+zT6V2X2EelH2EelAHG/2afSj+zT6V2X 2EelH2EelAHG
Npe4YZcihdLCDCpgewrs/sI9KPsI9KAON/s0+lA0zGcL15Ndl9hHpR9hHpQB xv8AZp9KP7NP
pXZfYR6UfYR6UAcb/Zp9KP7NPpXZfYR6UfYR6UAcb/Zp9KP7NPpXZfYR6UfY R6UAcb/Zp9KP
7NPpXZfYR6UfYR6UAcb/AGafSj+zT6V2X2EelH2EelAHG/2afSpY9OIPSut+ wj0pVsQO1AGL
Z2ZUjiugtItoFOjtQvarcceKAJUGBTqQUtABRRRQAUUUUAFFFFAFT86Pzo/O j86AD86ytK/5
Btv/ANc1/wDQR/n/ADkav51laV/yDbf/AK5r/wCgj/P+ci4bky2L0X+tT/eH +f8AP/6tKs2L
/Wp/vD/P+f8A9WlTmKI09V+v9KdTT1X6/wBKdWZYUUUUAFFFFABRRRQAmKTa KdRQA3YKTYKf
RQAzYKNgp9FAEbBEUu5CqoySTgAVXF5YFZmF5blYP9afMXEf+96fjUl/A9zp 9zbxkB5YmRSe
gJBFZd9oSPp0EVnFDFNC0TYBKB9mcKWHI6kg+tAGg99p6QLcPe2ywsNyyGVQ pGcZBz6kVFqe
o2unW3mySRF2x5cbSBTJyOnr17VRtdDZbmG4mggXZHP8nmtLteRlO4MwHYNn gdaqf2DqSW/2
eNrNg9rBC8rs25PLHIUY6Hrnj6UwOhFxaG6NoLiE3IG4xbxvA9cdaal3ZSSN HHdQM6pvZVkB
IX1I9Pesu10aeDVDK6Ryw/aXuFlNw4ZSwIxsxgnnGc9O1H/COofDx08LDHdG EoZVBwSSGOTw
cEgZpB1NSO8sZYBcRXdu8JJAkWQFcjqM1LBJBcwrNbypLE33XRgwP0IrFj0S SXY1zbwKftST
yqbh5g4VCByyjnpxjtWs8UtvHHHp8MCr5uZFYlQFJJYjA685oAHurOOdYHuY VmdtqxmQBicZ
wB64I/Oj7TZm4W3FzD57Z2x7xuOOvHXisN9MuLzVtRAghjge7hd7hs+YwRUY KoxjGR1zxk8V
fh0WIQXglWMTzzSyLMg+Zd+QDn1CnFHQC5HeWMqu0V3busbbHKyAhW9D6GkF 7YG0+1i8tzbd
PO81dnp97OK5qfRbmDTkjksoJnDW0IAuJJFkVZBwylflXr/exk1e/sa/SWO8 QWj3BuXneBmY
RKSgQEHGSQB6DOT0oA15L7T44VmkvbZImGQ7SqFIzjOc09rmzS5S2e5hW4kG UiLgMw9QOprJ
sdBKNAdQS2nEdvJCcDIJZ8kgEcAj/Ckk0Wb+15Z9kc1vNPHPlrh0MZUAfdAI b7uRyOtAE2m6
wL2WBJLN4FuI3kicuGBCkA59Ooq9FeWE0RlhvLeSNW2F0kUgN6Z9awYPDNxB atAk0Y+02slv
cEszbCSSrJn64I4B69qmj0KaVALq3t1JlhLj7Q8odUJ4wyjHXgfmaAZrm+08 WgvDe232YnAm
81dhPpuziorXUrSWysri4lhtnvEVo43kAJJA4GcZ61Qk0i+jvftVqLRz5szK kpIVN4XDcDkj
aeO4PUVWPh26WKBCsNwDZR2sym4eIDbnkFVO4HPQ46UIDoGurJJ1ge6gWZiQ sZkAYkDJ4+lM
trqKeGSfzLfyFchZI5g6svHJPQH2qG00qKK8vLqaKF5JrgSxvjLABAoyfX73 51Wl0q6ls9Us
2W3EV1IXjbec4OMhht46diaANFbyxaGWZbu3MUJKyOJBtQjqCe1V7rUoI4IH swt5JcvsgWKQ
bXOCSd3O
Re: Java2D + Mac + SWT? [message #453213 is a reply to message #453194] Thu, 31 March 2005 21:18 Go to previous messageGo to next message
Aaron Siri is currently offline Aaron SiriFriend
Messages: 33
Registered: July 2009
Member
Andre Weinand wrote:
> On 30.3.2005 18:52 Uhr, in article d2elim$j8r$1@news.eclipse.org, "Aaron
> Siri" <aaron.siri@efi.com> wrote:
>
>
>>Yannick Saillet wrote:
>>
>>>Aaron Siri wrote:
>>>
>>>
>>>
>>>>I am aware of the various issues with AWT_SWT on Mac. However, some
>>>>people claim that BufferedImage works as a way to get Java2D images up
>>>>in an SWT window. Is this true? Has anybody gotten *any* type of
>>>>Java2D rendering up in SWT on a Mac? Right now, performance isn't an
>>>>issue.
>>>>
>>>>Thanks,
>>>>-Aaron
>>>
>>>
>>>Aaron,
>>>
>>>if performance is not an issue, you can check the simple technique I've
>>>described some time ago in the following paper:
>>>http://www-128.ibm.com/developerworks/java/library/j-2dswt/
>>>
>>>I've never tried under Mac, but I don't see any reason why it should not
>>>work for Mac. This technique worked fine under Linux/Motif at the time
>>>where starting an AWT thread from a SWT application still caused a
>>>core-dump.
>>>
>>>Yannick
>>
>>Actually, I've cut-n-pasted your code into my project and have been
>>using it! :) However, the AWT thread exception is thrown when
>>BufferedImage is instantiated. :( I've tried running in headless mode
>>(-Djava.awt.headless=true) but it didn't help. I was hoping that there
>>was some other trick or property that could be set. Looking at the
>>win32 version of BufferedImage I don't see any AWT event thread stuff
>>going on but it could be implemented differently on the Mac (I also
>>could have missed it in the win32 code, I didn't look that carefully.)
>>
>>Thank for the help though (and for the helpful paper.) I'm going to
>>install the preview of Tiger and see if that changes anything. I'll
>>report my findings here.
>>
>>-Aaron
>
>
> I just verified that the SWTTest code from Yannick's paper works fine on
> MacOS X 10.4 (Tiger) (see attached picture).
> The Radar bug for the exception thrown in headless mode is 3867646.
>
> --andre
>
>
>
>
>
>
> ------------------------------------------------------------ ------------
>

Did you have to run in headless mode? I just upgraded to Tiger and when
headless is turned off I get the standard SWT thread exception and
when headless is turned on I get the following exception (which I didn't
get before Tiger)...

2005-03-31 16:16:24.866 java[427] Apple AWT Couldn't start headless.
SetApplicationIsDaemon returned -50

Anybody know about SetApplicationIsDaemon?

-Aaron
Re: Java2D + Mac + SWT? [message #453214 is a reply to message #453213] Thu, 31 March 2005 21:45 Go to previous messageGo to next message
Christophe Avare is currently offline Christophe AvareFriend
Messages: 28
Registered: July 2009
Junior Member
Aaron,

you can also try this library: http://www.holongate.org

Its just the tool designed to solve your problem and don't use AWT at all, only
buffered images and Java2D.

I am specially interested by your testing on Mac because i have no access to
this platform.

The library comes with a "pure SWT" implementation and native acceleration on
other platforms, but i can only provide the compiled shared libray for linux and
windows for now.
Thus i am also looking for somebody adpating / compiling for the Mac (the motif
code is pure X11 and should be a good starting point).

regards
--
christophe
Re: Java2D + Mac + SWT? [message #453215 is a reply to message #453214] Thu, 31 March 2005 22:04 Go to previous messageGo to next message
Aaron Siri is currently offline Aaron SiriFriend
Messages: 33
Registered: July 2009
Member
Christophe Avare wrote:
> Aaron,
>
> you can also try this library: http://www.holongate.org
>
> Its just the tool designed to solve your problem and don't use AWT at
> all, only buffered images and Java2D.
>
> I am specially interested by your testing on Mac because i have no
> access to this platform.
>
> The library comes with a "pure SWT" implementation and native
> acceleration on other platforms, but i can only provide the compiled
> shared libray for linux and windows for now.
> Thus i am also looking for somebody adpating / compiling for the Mac
> (the motif code is pure X11 and should be a good starting point).
>
> regards
> --
> christophe

Yes, I have tried that library as well. The problem is that on the
current version of OS X (10.3.x) even BufferedImage seems to trigger the
AWT event loop. I'm working with Tiger now (10.4.x) and will see if I
can get any further.

-Aaron
Re: Java2D + Mac + SWT? [message #453216 is a reply to message #453213] Thu, 31 March 2005 22:26 Go to previous messageGo to next message
Aaron Siri is currently offline Aaron SiriFriend
Messages: 33
Registered: July 2009
Member
I take it back. It is rendering fine on Tiger now with headless mode
turned on (my code had other issues.) It is slow as sh*t, but it is
progress!

-Aaron

Aaron Siri wrote:
> Andre Weinand wrote:
>
>> On 30.3.2005 18:52 Uhr, in article d2elim$j8r$1@news.eclipse.org, "Aaron
>> Siri" <aaron.siri@efi.com> wrote:
>>
>>
>>> Yannick Saillet wrote:
>>>
>>>> Aaron Siri wrote:
>>>>
>>>>
>>>>
>>>>> I am aware of the various issues with AWT_SWT on Mac. However, some
>>>>> people claim that BufferedImage works as a way to get Java2D images up
>>>>> in an SWT window. Is this true? Has anybody gotten *any* type of
>>>>> Java2D rendering up in SWT on a Mac? Right now, performance isn't an
>>>>> issue.
>>>>>
>>>>> Thanks,
>>>>> -Aaron
>>>>
>>>>
>>>>
>>>> Aaron,
>>>>
>>>> if performance is not an issue, you can check the simple technique I've
>>>> described some time ago in the following paper:
>>>> http://www-128.ibm.com/developerworks/java/library/j-2dswt/
>>>>
>>>> I've never tried under Mac, but I don't see any reason why it should
>>>> not
>>>> work for Mac. This technique worked fine under Linux/Motif at the time
>>>> where starting an AWT thread from a SWT application still caused a
>>>> core-dump.
>>>>
>>>> Yannick
>>>
>>>
>>> Actually, I've cut-n-pasted your code into my project and have been
>>> using it! :) However, the AWT thread exception is thrown when
>>> BufferedImage is instantiated. :( I've tried running in headless mode
>>> (-Djava.awt.headless=true) but it didn't help. I was hoping that there
>>> was some other trick or property that could be set. Looking at the
>>> win32 version of BufferedImage I don't see any AWT event thread stuff
>>> going on but it could be implemented differently on the Mac (I also
>>> could have missed it in the win32 code, I didn't look that carefully.)
>>>
>>> Thank for the help though (and for the helpful paper.) I'm going to
>>> install the preview of Tiger and see if that changes anything. I'll
>>> report my findings here.
>>>
>>> -Aaron
>>
>>
>>
>> I just verified that the SWTTest code from Yannick's paper works fine on
>> MacOS X 10.4 (Tiger) (see attached picture).
>> The Radar bug for the exception thrown in headless mode is 3867646.
>>
>> --andre
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
> Did you have to run in headless mode? I just upgraded to Tiger and when
> headless is turned off I get the standard SWT thread exception and when
> headless is turned on I get the following exception (which I didn't get
> before Tiger)...
>
> 2005-03-31 16:16:24.866 java[427] Apple AWT Couldn't start headless.
> SetApplicationIsDaemon returned -50
>
> Anybody know about SetApplicationIsDaemon?
>
> -Aaron
Re: Java2D + Mac + SWT? [message #453223 is a reply to message #453213] Fri, 01 April 2005 08:30 Go to previous messageGo to next message
Yannick Saillet is currently offline Yannick SailletFriend
Messages: 24
Registered: July 2009
Junior Member
> Did you have to run in headless mode? I just upgraded to Tiger and when
> headless is turned off I get the standard SWT thread exception and
> when headless is turned on I get the following exception (which I didn't
> get before Tiger)...
>
> 2005-03-31 16:16:24.866 java[427] Apple AWT Couldn't start headless.
> SetApplicationIsDaemon returned -50
>
> Anybody know about SetApplicationIsDaemon?
>
> -Aaron

Having to run in headless mode is a pretty annoying constraint if you are
developing an Eclipse plugin, because you can't control from your plugin
how the JVM is started.

What is exactly the test being done by the JVM under MacOS? Is it that the
BufferedImage shouldn't be created from the main thread? In that case you
could workaround the problem by modifying the code so that the
BufferedImage is created in a separate thread and then make the main thread
wait for the secondary thread to be created.

Instead of creating the BufferedImages with their constructors, you would
need a kind of factory which can run in a separate thread like this:

public class BufferedImageFactory extends Thread
{
private int width, height;
private BufferedImage image;

public static BufferedImage createBufferedImage(int width, int height)
{
BufferedImageFactory factory = new BufferedImageFactory();
factory.width = width;
factory.height = height;
if (isMacOS()) // test if the platform is MacOS
{
try
{
factory.start();
factory.join();
} catch (Exception exc) {exc.printStackTrace();}
return factory.image;
}
else // for all other platforms use the main thread
{
factory.run();
return factory.image;
}
}

public void run()
{
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
}

Then you could create your images by using
BufferedImageFactory.createBufferedImage(w,h);

Of course this assumes that the thread restriction is on the creation of the
image only, if you can't do the rendering in the main thread, you would
need a similar technique to do it in a separate thread.

I'm just thinking loud: I haven't tried this code, and don't know anything
about the Mac platform. But would this not workaround the pb?

Yannick
Re: Java2D + Mac + SWT? [message #453332 is a reply to message #453213] Tue, 05 April 2005 13:47 Go to previous message
Andre Weinand is currently offline Andre WeinandFriend
Messages: 66
Registered: July 2009
Member
>
> Did you have to run in headless mode? I just upgraded to Tiger and when
> headless is turned off I get the standard SWT thread exception and
> when headless is turned on I get the following exception (which I didn't
> get before Tiger)...
>
> 2005-03-31 16:16:24.866 java[427] Apple AWT Couldn't start headless.
> SetApplicationIsDaemon returned -50
>
> Anybody know about SetApplicationIsDaemon?
>
> -Aaron


Yes, I get the same message on the Console. But since it is no exception it
doesn't terminate the program. I've added the message to my original Apple
bug report.

--andre
Previous Topic:How do you increase the mouse scroll wheel rate/increment in a ScrolledComposite?
Next Topic:Why isn't URLTransfer public?
Goto Forum:
  


Current Time: Fri Mar 29 15:03:43 GMT 2024

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

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

Back to the top