Skip to main content



      Home
Home » Eclipse Projects » Eclipse Platform » Dependencies on Jar in another Plugin
Dependencies on Jar in another Plugin [message #293669] Thu, 27 October 2005 18:05 Go to next message
Eclipse UserFriend
Originally posted by: do.not.email.me

Dear All,

I have a third pary Jar which I would like to share between several
different Plugins - some written by me, some by other developers.

As well as sharing the Jar there are also some common functions which I
would like to share, for example some custom Dialogs and Views.

I have created a core Plugin which contains the third party Jar and the
dialogs and it works fine.

I have a problem when I try to create a new Plugin which tries to use some
of the classes in the third party Jar.

I have specified that the new Plugin depends on the core Plugin in the
Dependencies -> Required Plug-ins section of the plugin.xml, however all
imports of classes which are in the third party Jar are marked as "The
import xxx cannot be resolved".

What do I need to do in my new plugin to use classes which are in the core,
third party Jar?

TIA.

Keith
Re: Dependencies on Jar in another Plugin [message #293671 is a reply to message #293669] Thu, 27 October 2005 20:24 Go to previous messageGo to next message
Eclipse UserFriend
Keith,
If you use new PDE (MANIFEST.MF0 you have to export packages in runtime
tab (in plugin with jar)

Keith Smillie wrote:

> Dear All,
>
> I have a third pary Jar which I would like to share between several
> different Plugins - some written by me, some by other developers.
>
> As well as sharing the Jar there are also some common functions which I
> would like to share, for example some custom Dialogs and Views.
>
> I have created a core Plugin which contains the third party Jar and the
> dialogs and it works fine.
>
> I have a problem when I try to create a new Plugin which tries to use some
> of the classes in the third party Jar.
>
> I have specified that the new Plugin depends on the core Plugin in the
> Dependencies -> Required Plug-ins section of the plugin.xml, however all
> imports of classes which are in the third party Jar are marked as "The
> import xxx cannot be resolved".
>
> What do I need to do in my new plugin to use classes which are in the
> core, third party Jar?
>
> TIA.
>
> Keith
Re: Dependencies on Jar in another Plugin [message #293673 is a reply to message #293669] Thu, 27 October 2005 18:27 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: automatic.javalobby.org

Well, you have to replicate the third-party jar in every plugin and add that jar to runtime section of every plugin.xml. Thats how it works in Eclipse 3.0 as far as I know. Classpath for a plugin(bundle) is the classes contained in the supplier plugins + classes in the runtime section of self. Classpath does not include classes included in runtime of suppliers.

Have a nice time ;-)
May be there is a nice solution.

Thanks
Venkat
Re: Dependencies on Jar in another Plugin [message #293697 is a reply to message #293673] Fri, 28 October 2005 06:18 Go to previous messageGo to next message
Eclipse UserFriend
> Well, you have to replicate the third-party jar in every plugin and add
> that jar to runtime section of every plugin.xml. Thats how it works in
> Eclipse 3.0 as far as I know. Classpath for a plugin(bundle) is the
> classes contained in the supplier plugins + classes in the runtime
> section of self. Classpath does not include classes included in runtime
> of suppliers.

Just for the record, this is the wrong way. As Haris Peco pointed out, the
plugin containing the third party jar should export the packages to share.

Ricky
Re: Dependencies on Jar in another Plugin [message #293701 is a reply to message #293671] Fri, 28 October 2005 06:31 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: do.not.email.me

Thanks for your help.

I've looked at the Exported Packages section of the Runtime tab and it
allows me to select packages which I have written.

However, the Jar 3rd party Jar and the packages in it don't show up in the
runtime tab?

How do I specify that I'd like to export the Jar too?

Keith

> Keith,
> If you use new PDE (MANIFEST.MF0 you have to export packages in
> runtime
> tab (in plugin with jar)
>
> Keith Smillie wrote:
>
Re: Dependencies on Jar in another Plugin [message #293703 is a reply to message #293673] Fri, 28 October 2005 06:37 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: do.not.email.me

Hi Venkat,

Are you saying it is not possible to have a single instance of the Jar file
which is available to all other plugins?

This is an important requirement because the third party Jar provides
access to an external system via some dll's but the dll's can only be
loaded once.

If I have two plugins which both use their own copy of the Jar the first
plugin to use the Jar will work fine, the next plugin will fail with
messages saying that certain dll's are already loaded by another class
loader.

Keith


> Well, you have to replicate the third-party jar in every plugin and
> add that jar to runtime section of every plugin.xml. Thats how it
> works in Eclipse 3.0 as far as I know. Classpath for a plugin(bundle)
> is the classes contained in the supplier plugins + classes in the
> runtime section of self. Classpath does not include classes included
> in runtime of suppliers.
>
> Have a nice time ;-)
> May be there is a nice solution.
>
> Thanks
> Venkat
Re: Dependencies on Jar in another Plugin [message #293707 is a reply to message #293703] Fri, 28 October 2005 06:48 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------050001090207020102050709
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Keith,

No. I think that was bad advice. You need to be sure the jar is on the
classpath and that the packages are exported :



Keith Smillie wrote:

>Hi Venkat,
>
>Are you saying it is not possible to have a single instance of the Jar file
>which is available to all other plugins?
>
>This is an important requirement because the third party Jar provides
>access to an external system via some dll's but the dll's can only be
>loaded once.
>
>If I have two plugins which both use their own copy of the Jar the first
>plugin to use the Jar will work fine, the next plugin will fail with
>messages saying that certain dll's are already loaded by another class
>loader.
>
>Keith
>
>
>
>
>>Well, you have to replicate the third-party jar in every plugin and
>>add that jar to runtime section of every plugin.xml. Thats how it
>>works in Eclipse 3.0 as far as I know. Classpath for a plugin(bundle)
>>is the classes contained in the supplier plugins + classes in the
>>runtime section of self. Classpath does not include classes included
>>in runtime of suppliers.
>>
>>Have a nice time ;-)
>>May be there is a nice solution.
>>
>>Thanks
>>Venkat
>>
>>
>
>
>


--------------050001090207020102050709
Content-Type: multipart/related;
boundary="------------010409010005090006040209"


--------------010409010005090006040209
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Keith,<br>
<br>
No.&nbsp; I think that was bad advice.&nbsp; You need to be sure the jar is on
the classpath and that the packages are exported :<br>
<blockquote><img src="cid:part1.08090902.09090304@ca.ibm.com" alt=""><br>
</blockquote>
<br>
Keith Smillie wrote:
<blockquote cite="midXns96FD75D4B27E4frunobulax@206.191.52.34"
type="cite">
<pre wrap="">Hi Venkat,

Are you saying it is not possible to have a single instance of the Jar file
which is available to all other plugins?

This is an important requirement because the third party Jar provides
access to an external system via some dll's but the dll's can only be
loaded once.

If I have two plugins which both use their own copy of the Jar the first
plugin to use the Jar will work fine, the next plugin will fail with
messages saying that certain dll's are already loaded by another class
loader.

Keith


</pre>
<blockquote type="cite">
<pre wrap="">Well, you have to replicate the third-party jar in every plugin and
add that jar to runtime section of every plugin.xml. Thats how it
works in Eclipse 3.0 as far as I know. Classpath for a plugin(bundle)
is the classes contained in the supplier plugins + classes in the
runtime section of self. Classpath does not include classes included
in runtime of suppliers.

Have a nice time ;-)
May be there is a nice solution.

Thanks
Venkat
</pre>
</blockquote>
<pre wrap=""><!---->
</pre>
</blockquote>
<br>
</body>
</html>

--------------010409010005090006040209
Content-Type: image/jpeg;
name="moz-screenshot-3.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.08090902.09090304@ca.ibm.com>
Content-Disposition: inline;
filename="moz-screenshot-3.jpg"

/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CAJfAYwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDc1q5mvr6SNmPkxOURfccE 1rQeCre4s4pE
1NftElsLgW4jBbBH+9nGeM4rMuonMl08ab38+TA9fnNWtNuLL7ZZT3NzJEfM EcjMfK2AQcAM
COMbcHPOepzyOlenKbeiTFz2ko23aMW50+W0uHgmQpIhwQRj3/lTBZu23ahO 47VwOp9B+Yrb
vd11fzSytM0x27zLEEOdi9RwQfbb0wc1Yt5HL28JQYWRee+Mr/8AE/5wMY0a jqQUrP56Gk48
srHN/ZTtDbTtJwDjjP8Ak0n2f2rqDaq8UKNFvTcNzkn5AUTJzn+fHFQCziMy KIsgRqzDlixK
joMj1z19fpWtyDnvs/tR9n9q6Oezgg2nyC2X5DEjAwpxjt1I/wAagntEj2ov zHklumQenH05
/H2pgYJhIeONYpZZJG2pHFE0jMcE8KoJ6An8KRG8rbPC0uF2HzYVZgm84Ull 4UE8AkjNaxAt
7uzIvotOlabEV7K4VYG2sdxJ4PAI2nhs7TwTWr4i1bS720UWTLYxG83zWUka wtfO7KFnUDly
DyVbDDO5gCq5AKena7cWxEd3umi4G/8AiUf1/nXURyJLGskbBkYZBHQiuR+z e1XLC6l098YL
27HLIOSvuP8AD+vWWhpnSUU2ORJY1kjYMjDII6EU6pKCiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKAMKKHe
Zmx1nl/9DaoxpNsJRIIFBAwAPu+mcdM44z1xxXT+FYIZ0vfNijkxO+N6g4/e PXQ/YLP/AJ9I
P+/YrVNrYhpPc87jso4V2xRqik5wq4FP+z+1eg/YLP8A59IP+/Yo+wWf/PpB /wB+xSA8++z+
1H2f2r0H7BZ/8+kH/fsUfYLP/n0g/wC/YoA8++z+1K0BdizcknJr0D7BZ/8A PpB/37FH2Cz/
AOfSD/v2KAPPvs/tR9n9q9B+wWf/AD6Qf9+xR9gs/wDn0g/79igDz77P7UfZ /avQfsFn/wA+
kH/fsUfYLP8A59IP+/YoA8+jjntWL2z4zy0b5KN/gfcfkatpqRXi4tpY/wDa jHmL+nzfpXbf
YLP/AJ9IP+/Yo+wWf/PpB/37FJpDucZ/adt/03/8B5P/AImj+07b/pv/AOA8 n/xNdn9gs/8A
n0g/79ij7BZ/8+kH/fsUuVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4m uz+wWf8Az6Qf
9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+w Wf8Az6Qf9+xR
9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8A z6Qf9+xR9gs/
+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf 9+xR9gs/+fSD
/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR 9gs/+fSD/v2K
OVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/ +fSD/v2KOVBc
4z+07b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD /v2KOVBc4z+0
7b/pv/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2K OVBc4z+07b/p
v/4Dyf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc 4z+07b/pv/4D
yf8AxNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+0 7b/pv/4Dyf8A
xNH9p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/p v/4Dyf8AxNH9
p23/AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4D yf8AxNH9p23/
AE3/APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8A xNH9p23/AE3/
APAeT/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9 p23/AE3/APAe
T/4muz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/ AE3/APAeT/4m
uz+wWf8Az6Qf9+xR9gs/+fSD/v2KOVBc4z+07b/pv/4Dyf8AxNH9p23/AE3/ APAeT/4muz+w
Wf8Az6Qf9+xR9gs/+fSD/v2KOVBcwvCH3L//AK7t/wCjHqP4javfaD4C1PU9 Mn8i8h8ry5Ni
tjMqKeGBHQntUnhD7l//ANd2/wDRj1H8RtIvte8BanpmmQefeTeV5ce9VziV GPLEDoD3rWlb
njfa6JlezsVdZvdV8KajoUzavc6naahqEenTW93FCpUyZ2yI0aLgqVOQQQQe x5resNftdQ17
VtHijmW40vyfOZwAjeapZdpzk8DnIH41iar4Umsrqz1zQWmudS0/fttdQvJJ 0njcAOivKzGJ
yAMOuB2bIPDLay1XRfGGq63FpFzfW2twW7vFDLCs1pJEm3YwdwrAhidyscEE YIwTo1GUfP7u
v+ROqY8fEbS21RdNisdSmunvrqwRI4VO6WBVLfxcKd4AY4A5LbQCaNX8YlNC 8QR29peWOt6f
YvcJa3CxeZsK/LMvzFHRT1wTgqRjJAPM6B4R8RW3jaw1S+05IYU1nVLuZkuE dUSaJFjI6Egs
CPug8ZIFbniDwxqmq+MtUuYIkW0u/DEumxzu4CidpCQCBlsYOc4x+NW401JL +tybyaILrxXq
SfCn+2rn7fplylpaSG/FvbzmVnKBmSMSYwc9G24DcDIxW+3i+F9e1LRbPStS vb3T/KMwhSMJ
iRdwId3VeOBgkE54BAYjmdW0fXNW+D7+G49EuYdSgtLSBUmmg2zMjJuKssh4 AQn5tvUYrf0L
SL6z8e+LdTuINlnf/Y/s0m9T5nlxFX4ByME9wKlqFm/X9P8AgjV7r+u5APiN pbaDFr6WOpNo
zbBLemFVSEswQgqzB22kgEorDqASQcXrjxfCLq/g0/StS1Uaf8t1LYpGyJJg kxjc6l3AAyqB
iMgdeK4//hENd/4UN/wjX2H/AIm//Pv5qf8AP15n3t237vPX9avWvhi60bWN b83TdY1C3vr5
76GfTNUNsF8z70bx+dGNykfeG7cCOmMU3Clrbu/0FeR3Wm6lZ6xp0GoafcJc Wk67o5U6Ef0I
OQQeQQQeatVj+FtOXSfDNlZLpiaYEUt9jS5NwISzFiPMP3jk89s5AJGDWxXP JJN2NFsFFFFI
YUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQBzXhD7l//wBd2/8ARj10tc14Q+5f/wDXdv8A 0Y9dBcTeRCZN
u4ggAe5OB/OhAS0Vm/abz+/B/wB+j/8AFUfabz+/B/36P/xVOwXNKis37Tef 34P+/R/+Ko+0
3n9+D/v0f/iqLBc0qKzftN5/fg/79H/4qj7Tef34P+/R/wDiqLBc0qKzftN5 /fg/79H/AOKo
+03n9+D/AL9H/wCKosFzSorN+03n9+D/AL9H/wCKo+03n9+D/v0f/iqLBc0q KzftN5/fg/79
H/4qj7Tef34P+/R/+KosFzSorN+03n9+D/v0f/iqPtN5/fg/79H/AOKosFzS orN+03n9+D/v
0f8A4qj7Tef34P8Av0f/AIqiwXNKis37Tef34P8Av0f/AIqj7Tef34P+/R/+ KosFzSorN+03
n9+D/v0f/iqPtN5/fg/79H/4qiwXNKis37Tef34P+/R/+Ko+03n9+D/v0f8A 4qiwXNKis37T
ef34P+/R/wDiqPtN5/fg/wC/R/8AiqLBc0qKzftN5/fg/wC/R/8AiqPtN5/f g/79H/4qiwXN
Kis37Tef34P+/R/+Ko+03n9+D/v0f/iqLBc0qKzftN5/fg/79H/4qj7Tef34 P+/R/wDiqLBc
0qKzftN5/fg/79H/AOKo+03n9+D/AL9H/wCKosFzSorN+03n9+D/AL9H/wCK o+03n9+D/v0f
/iqLBc0qKzftN5/fg/79H/4qj7Tef34P+/R/+KosFzSorN+03n9+D/v0f/iq PtN5/fg/79H/
AOKosFzSorN+03n9+D/v0f8A4qj7Tef34P8Av0f/AIqiwXNKis37Tef34P8A v0f/AIqj7Tef
34P+/R/+KosFzSorN+03n9+D/v0f/iqPtN5/fg/79H/4qiwXNKis37Tef34P +/R/+KqSC6m8
5I5tjBzhSikYOCeck+n+exYC9RRWaL25lAkjMSIwyoZCTj3ORSAzPCH3L/8A 67t/6Met29Gb
Vh/tKf8Ax4VheEPuX/8A13b/ANGPXRSrvjK+4/nQgPLLbWddvfijr2lrcao+ m6fLZbI7NLQR
xrJGGfzTKPMKkgn5CTjd7VBB8WftHn28eiZ1Kwtb641W0+1f8eX2fIUb9m2T e2Blc7c55xXc
t4K0k6/Prca3UN/cNG8zw3k0aymMAJvRXCsABjBGOvqazLz4YaDNoEWl2cH2 X7Ja3dvYyb5H
+z/aFZZDgv8APncThj9MU7iOZm+LP9n6dNc6nonlyHR4dXtktrrzRJHLII1R yyLsbcy5wGGM
nsAZ734mXGm6jNpdzoPmalBqlpYSRWt4HRhcRs6MjuiZYbSCrBR0+b039M+G Gg2eiiwvIP7Q
kksI7G4nuXkcvGnOEDO3lLu+YKhABAI+6CLa/Dzw+rrI1o8sy3kV9581xLJK 00Q2xszs5Zgo
JAUkqMnjmi4HI6Z4x12PxN4sbVbVF0zSLO1uprUTKZbQtbGR0j2piUlgRlnU DGR1xTE+K80X
h681i+8MXsNtFYRXkEsfmeVIzuqCIySRIA2XQ5XeCu4gnGD3kvg7SZ9Wn1OS 2zc3MQhuQJHE
dwgVlAljDbJMKxA3A4GPQVUj+HuhJpkumtFdTWEsH2c2txfTzRLGMYCo7kKR tGCoBGOCKdwO
c8Hahq138QfGttqj7Ps/2Hy7WO6eaGHdExOwsq4zwT8o59etc94C8W+JdUTQ tQvb+6urCWC8
k1ma7s0gtrVYziJ45QiAk4wRufHzZAxken6R4P0zQ7u9u7FJhc3uz7TNPcyz vJsBC5aRmPAJ
H/6qk03wppekaEuiWdqi6Yqun2aTMilXJLA7iSQSx4PrRcDzuT4wQWtrqEt3 pDk2+nJqFubd
5dlwjyCJeZoomA3Oh3BWBBODkYMfjTxffeF/E/hS/wBdb7DZD7ebi2sLp50n AhTywwKJlt7Y
AIwMg5HOOyj+F/hdElRrB5kls/sBW4uppgsAIYIu9ztAKgjbggjIxVs+AtEe a1muIJruS187
yje3U1xgSoEkU+Y7ZUqMbTkdcDk0rgc5r3ju88P6ZbvdaVanVDZy3tzpqXcs jwRpjndHA4xz
gs2xQQQGIBIzdS+LPk2Gp6jpuifabLTbWyuLg3N15Mh+1AMgRVRwcBlySw5z jOMnrZfht4dm
tLe2a1mEdvatZIUvJ1c27HJiZw4Z09FYkDoAKxvEHwistZRbSzuk02weC3t7 hIElMsscJ+QF
vOCMQoCgyRuR1yeMFwIbX4izXviWbTrTw7e3FlBqjaZLdRLI7RsowZGAj8sI GIBzJux823tV
jwb4/i8X6pfWa2sFnJa799rNO4u0w+0b4jGFHTna7bSVB610UfgnSoNTl1C3 W6tppp/tMq29
5NFFJLxlmiVwjE7RnK/N3zmpdM8IaZpOoyahbpNJeSRCFri6uZbiQRgkhA0j MVXJzgYBOM9B
TuBcoq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxS oq79nFH2cUXC
xSoq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxSoq 79nFH2cUXCxS
oq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxSoq79nFH2cUXCxSoq79 nFH2cUXCxSp0
IzdQn0Yn/wAdNW/s4pVh2yK3of6UrgTVkRDbCg9FArXqutuNo+lCBmF4Q+5f /wDXdv8A0Y9d
LXNeEPuX/wD13b/0Y9dLSGcfDr+rXnja/wBJiuIIbW0u44gh0e4m3p5EcrZu VcRIx3sACOML
wcjMln4+srm1sbifTNSs01BIJLMTiImeOWWKIONkjbQrTxEhtpw3AOCBoL4d kh1u61K11vUr
dLu4S4ntEWAxOyokeMtEXAKxqDhh3xiq7eCtNaw0q08+7A0uyFnayB13LteF 0kPy4Lq1vGw4
2nkFSDigCPUfHVhpup3VlJZX0n2PzWupo1j2QRRRwSSSnLhioW5ThQWOGwpw M19R+I2k6VEi
30E9vfGV4nsp57eF4yqo5y7yiI/LLEcK5Pz9PlbaDwTpk8+qwXWs315fXtpP FdNI8IkEdykU
W7akagcWqhTjGQ+c9tC48JwSancanaajfWN/PK0jXEHlMVVo4Y2QLIjLtP2e I8jdleCASKAI
7Lxrpuow6jcWUF3LaWNuLiS6ZFiiZWhjmQK8jKMlJM8427Tv2gqWz9N8fxa3 rOm2+k2Ul3bz
pcrdCKWF2tnja3wxdZTGybZ8nYXPIGMhgNj/AIRWxFlfWqzXeLu4huvMaXe8 UsSRLG6s2SxB
gjb592TndkHFV7LwfFZX/wDaI1fUpdQa4aaW6k8ndKjJCjRFRGECEW8XIUN8 vDDJyAR+G/H2
ieKdRkstOl3SCIzxHzYn82IEAttR2aP7yfLIEb5umQ2M/wAWePrXSk1zSbeX 7Pq9vp9xLaye
bBJmVbdph+7DtIuACcugU7epyu7oNG8PpomyOLUL6a1hiEFrazOvl20QxhVC qC2AqgNIXYAc
H5m3YeteENGuXNnfa9d2tpcPcyRaf5sCoJLhXhkdCyGQktdHALEBpFAGNq0A SHxJqNp4Rm1M
R/bbpdbeyWIKoLxnUTbhV5UbgmACSBkAk9aNP8WXSa1qsGpadfR2aahb20c7 eQUtWlgtysLh
XLljLLjKhlG8fNtBI1P7D019OudDW6k3/aG1A4kXzYZJLh50kAxjAlBK7gQd mDuwcg8L2xt7
mKa7u5nub22vppXKBmlgEO0/KoAB+zoSAO7YxxgAp+G/H2ieKdRkstOl3SCI zxHzYn82IEAt
tR2aP7yfLIEb5umQ2LFh4sgvtRW2bTr63hlu57K3u5vKMc80JkDqoVy44ikI LKowvXJAMmha
NbaU7wWuq3d1BZILSGzeVClmm1WEeEUEnb5eDIWYDGD8zFseHwbbJa3C+ItS kuLOa9vHis2k
SOCM3UsqrtYIshdknKYLkbpDjkKQASad8RtJ1WJ1sYJ7i+EqRJZQT28zyFld xh0lMQ+WKU4Z
wfk6fMu6xofiSW+8Qavpk8c5niu022+1CbKE2kMn71lOOZGcDBYsd23KoxWM +Erf+1DPc+I9
Sm1iREe2uJDbCWFYfMUlEWIIwxdOrFlb/WDodpqxP4K027hvFu57ueW8fNxO XVHkUwxwyIdi
gbJEiXcMdfmXaVQqAU9O+I2k6rE62ME9xfCVIksoJ7eZ5Cyu4w6SmIfLFKcM 4PydPmXdXufi
poFisX25J7SQ+YZ4p5YEe3VJZImJBl/efNFJxF5jfL0yygmt+HF0uzu9dn8Q zvqUfkeTfalc
29qlvsMiD5lgKDK3Mq/Mj53DGDgixpHgmWzsYzPrN9FfTeZ9ve0dF+0q80s2 wt5YI2meQb4h
Ex3E/L8oUA2NK8RQazqN7b2VrO9vZyyW8l5vi8vzkIDx7Q/mBgSfvIAQMgkF SebbxhrEj2DJ
pF24Ou3ViVt/IAvIo1uwAm+TKlTChYtsyQduQcV0lr4dgt/EM+uTXU93fPE1 vE8yRL5EJfeY
1KIpZcgY3liMcEbmzHD4Xtob+G5S7u/KgvXvoLUlPLjlkSVZCDt3kMZ3Ygsc HGMAYoAz9T+I
WjaRYWV7eiSGC4eZJPMmgRoGhfZKCrSBpCrbhiISZ28ZyudDw1rV3rMV811Y SQC3vbm3jnyn
lzrHPJGCoDlgQEG7cFyTxkVl3fgnTLtdR0631m+tJLyKUX8du8LPLDPLPIAw eNtqhpZwpXaT
zksVGOg03SU0uW78i5nNvcStMts+0pC7szyFTt3fM7Mx3M2Oi7RxQBx+leNN bv8A/hGbl9Bv
pP7Q0qa5mtLc2w8xh9lKzIXl4j/euACwb5uV4yNCDx/YXFyIbKOfUprqUfYb eBI4Xli+zQzl
gZpFDYE6nHytz9whGatTSvC9tpNxZyxXd3Kljby2lpFKU2wwOYsRjCgkL5Kg FiW5OS3GMtfh
1pi6KdF+3XzaZL5QubZxC63KxwwwqGJjLL8sCnKFWDEkEfLtANjVteOmajaW EGlX2o3V1FLM
qWhhG1IzGGJMsiDrKvTPesvw54th1nXb60SaSeCd/tFhIIwqi3FtZuQc4bJa 63DIzyQcYAq5
rOg3up+IdNv7XVZ9OjtbS5hd7YRmRjI8JAxJG67f3TZ6HO3HGarweBbCwYSa Te32mTLhY5IG
jcxxeVDEYgJUcFSLaE5ILZX72CQQCO38fWV3b2d3a6ZqU1ncPaRyXKiILbyX IjMaOGkDE4mi
JKBgN3UkEAvvHmlQTWz6fcx6vBMjqE05o5S0vnW0Sr5hkCqc3K5B6g5yuMNj /wDCJiDVNP0T
RtXji0+2e0mvIHvI3llktfIILReSWzsS2BKyoBuVthzh+s1fw3Z61f2V5cyT pJaY8sRsADie
CfnIP8Vug+hbvggAIPElm+k6jqF3HPYLpm/7dFOoZ7fbGJDnyywb5GVvlLfe x1yBl6V8QtG1
a3uJ4hIsdq6fa2WaCdbeNw22V3hkdQmUYHklfvMFT5q2G0Cxlh1qCdZJoNYc tdxs2AQYUhKq
RggFYx3zknnpiuPDQlt3g1HVtS1GOV185blo1WWNQcRMkaKuwlstgAvgKxZP loAp3PjaC1ll
8zRtVEFvaLfXU7JEgtrdmkAkdGkEnSF32hS4GAVDfLUk3jXTbV5pLqC7g0+N 5411BkUxSSQK
7Soqqxkyoil5KAHyzgnK7qc3gmW61a88/Wb46VcafDYyQb0d7lFknLRyu0Zb bsmVAysHPzFm
LYatAeE4EvDPFqN9HGks1zbQL5RS1uJQ4eZCULFj5spw5ZBvPy4CgAGfe/ET TtN06yu76znt
mvtzWsU13Zr50ShSZVkM/lFfnUAb9xzkKQCRoaX4vsNc1MWmkxT3kKxRSzXS GNUhEsfmR7kd
hJ8ylSCEI5xnKsFr2/gi1s/39lqV9a6k8s0s2oQpAJJjLs8zchiMQz5UWSqA 5TOcsxa4vhe2
Ot2Wpz3d3cnT0K2UM5RxbkoI2YSbfNYsuc73YEnJGQpABTHiyW31PXoLvTp2 tbC7itreeHZi
V5I4CkOC+fMZ58AkKgBGWGCa0IPElm+k6jqF3HPYLpm/7dFOoZ7fbGJDnyyw b5GVvlLfex1y
BHeeF7a7uL6X7XdwpePHPJFGU2i4jMflzjcpO9fKjG3JQ7eUOTmSDw3ZppOo 6fdyT366nv8A
t0s7BXuN0YjOfLChfkVV+UL93PXJIBh6h4q1C21zSkmsrvTILhHR7e6SGVnY 3VnEjDy5CAMT
uPvcZJKtgAx23xU0C+WX7Ck93IPLMEUEsDvcK8scSkAS/u/mlj4l8tvm6ZVg NSXwfFeTWk+o
6vqV9Pavujkm8lTjzoJtpEcajG62TtnDNz0wQ+DbaG1hs21LUpLO2eA2ls0i BLZIZUkRFCoC
4zEi7pC7YBwwLMSAV4/GE9x4lsNLg0i7y6XC3sD+V5to6G2Ksx8zYU2XAY7C 5+ZcDIYVqeHv
EUHiWzN9ZWs62Dc2927xFLlckZUK7MuMchwrDOCMggRnwvbLrcmsQXd3BeSX Bmd0KEMhSFHi
wykbGFvESR8wIOGAJFR2fhOC0lvLk6jfS395LbyXF6fKillWFgyI3lIqlfvK cruKsVJwFwAd
BXn9r4x1S+0pppPIgkmu9MurMwJ/y4Xd0saLJuJ/fbVkDbflGV2nPTtNW02H WdGvtLuGkWC9
t5LeRoyAwV1KkjIIzg+hrDk+H3hsX9veWWnQabJDtyLCCOESbZ4Z134XnDQK PozdzkABpPiS
VPBHhvULyOe/1LU7S32xQKivcTND5j43FUX5VduSo+XA5wDj6v46vXs/EP8A ZllOi2eiSXS3
O2PNncqbpHWUM/zYe3CjYrjIYklSDXSf8IvbJoOk6Xb3d3bnSUjWzu0KGWMp GYt3zKUJKMyn
KkfMSACARTl8C2Elnc2yXt9Et7aS2t8yNGTdiQysWbKHaweeVxs2jL4IKgKA CO/8f6fpFvId
VsrvT7tHjVbS6lt0ZxIJCjCTzfKAPky/ecH5CMZZQ1jRfGum+IL2G102C7m8 y3Fw8yopiiUv
LGQ0gYqSHhZflLbsgruUMy2NS8L22oao2qC7u7W/CQrFPAUJhMfnAModWUkr cSqdwIwRgAgG
rGm6HDpt7NeC6u7i4mt4oJZLiQMW2PK+7oMEtM/AwoAUKFAxQBqUUUUAFFFF AHNeEPuX/wD1
3b/0Y9dLXNeEPuX/AP13b/0Y9dLQB5/ceIrqPxfqVrF4g3XcGq2lrb6J+4Pm W8kduZZNu3zj
tEkz7g2Bs5+VSKx08cas+qXMUWpwG3uIvtEkbXEUtzpMf2mCN/NjWFBA0cc0 jMJDKAYuThW3
ekA6XpV1dOZ4Lee8kFxN5k2C7BFjDYJ4+WNRxxx65p/9saZ/0EbT/v8Ar/jQ Bwltqhg8VzXd
trf2/SP7PsmvNYUwytsWe8xny1EYjyNjyAHYo5Ay0seenjjVn1S5ii1OA29x F9okja4iludJ
j+0wRv5sawoIGjjmkZhIZQDFycK270v+2NM/6CNp/wB/1/xqOfUdJubeWB9S twkiFGMd0EYA
jHDKQVPuCCO1AHmk/izVfNuLex8WWk2lpeyxrrN1eW1up2wWrLEJhbvESWmn O3YGPln5hsYH
oNJ8Qanc+LrGy1HUI3llt42ax0wx7YT9nDu11FKguIgXPyEHHMasFJ+fo9Nk 0HSbdobS+twH
cvI8t55skjYAy7uxZjgAAknAUDoAKuf2xpn/AEEbT/v+v+NAHKan4h1nTNe1 ISLu03TpUv7g
5QbbBokj9MnDi7l4y3+jbMYkWuLebU5desU1kRjUori0S62xxqTL5miM+4oM MdzNzzxgDgAD
1/8AtjTP+gjaf9/1/wAaP7Y0z/oI2n/f9f8AGgDhPFWqHSfGWsXFtrf2PUk0 S1ey0/MJ/tGV
ZLorFtdS75bauIyrHf1yRixo2v67d+OZLS5v7EQ/a7mGTTfPDTRQIXEcvkrC Hj3BY23vKUIk
4ALoB2f9saZ/0EbT/v8Ar/jR/bGmf9BG0/7/AK/40AcY0t7puveIdUttRnWM eILG1eyKRmGQ
SxWUTMTs8zcBJkYcDKrkEZB5u11qS+8P6BDqGtR2U63GifZNJjSCFbyIm0kM oTZvIDtKP3ZV
B5WMfK2fV/7Y0z/oI2n/AH/X/Gj+2NM/6CNp/wB/1/xoA8om8R6g93Yalba5 Hda0dHlN7ZyP
Ci6Q0lxZCYELGWiEYMhzMJNvlZYNhgdzRNR17W9RsLB/E22B4ryVbzTDDcee IzahcyvbrG+D
NKMxoBwFJLK1d3/bGmf9BG0/7/r/AI0f2xpn/QRtP+/6/wCNAHIXVzd+I9F+ H9611JYXd/cR
3DzWipmNmsLhyFEgcY5I5B4PrzUZ1nVk0z7Zf699ksrjW7uzkuxDFGLC3iku QjF3Vl3M8cUZ
ZxjDKAA5Lt2f9saZ/wBBG0/7/r/jR/bGmf8AQRtP+/6/40AeeR+IdeuppHXW Z0hi+xwQmOGE
rcx3F/ParcklDljEkcilcIWwdpU7a6A63qK+B5rw3GJ4dQeylvCi5jgS8MDz sMbAyxK0hJGw
EEldo210f9saZ/0EbT/v+v8AjR/bGmf9BG0/7/r/AI0AeYapq89p4iW+0S/j 8QT/AGKJre4a
OKc3DrBqzKq+UqjO5AnybSQCueTm5pmta9qNzY2C+KIJre51BYft2mzw3bgf ZrmRo/M+zJD1
iiO0IXGSScOteh/2xpn/AEEbT/v+v+NH9saZ/wBBG0/7/r/jQB55YapejX9T v7jW4LO7TT5b
W1+2mOKC/e1uL5N0p27jsURyP5RXG/JAUgV0nhjXZJvCt/qMkupaqbV5DvXy J/tOxASLZoFR
ZUJyFJAbduDBSMDf/tjTP+gjaf8Af9f8aP7Y0z/oI2n/AH/X/GgDyiPX7zUt RtYb7xRaGz02
9guX1iyvbe5FsJbe8jIeXyEiUFljUBoycy/eJZQvceONYn023s4bfUY9MeZ2 c3txdRW0ACgD
yzJJDKN7bsqu0EiNzuG0g7/9saZ/0EbT/v8Ar/jR/bGmf9BG0/7/AK/40Aec eBNSm1nxrHql
wsaz3tlLcSLGCFDPaaQxAyScZPqap6lqd1oWi30lrqudRg1XVZ/sc0UDtY5h 1CaJ1UpvXeAr
gsTuXp8rEH1P+2NM/wCgjaf9/wBf8aP7Y0z/AKCNp/3/AF/xoA4TUNd8RaNN fra3s+qzWt3N
YQW89vGTOw09rxHIiRSZN+I8LhSnG3d89U4/FGsR6Ncyy+KtGktEuIQb2PUo HkwVkLxRTNbx
25l+SMiNlJwXLMoZGX0f+2NM/wCgjaf9/wBf8aP7Y0z/AKCNp/3/AF/xoAg0 bVIby3t7cvd/
bFsre5mjvIhHOqyBgpkCgKHJjcFV6EHgDFalUv7Y0z/oI2n/AH/X/Gj+2NM/ 6CNp/wB/1/xo
Au0VS/tjTP8AoI2n/f8AX/Gj+2NM/wCgjaf9/wBf8aALtFUv7Y0z/oI2n/f9 f8aP7Y0z/oI2
n/f9f8aALtFUv7Y0z/oI2n/f9f8AGrEFzBdIXt5o5kBwWjcMM+nFAEtFFR3F xBaQNPczRwxL
jdJIwVRk45J96NhpNuyJKKzf7Subn/kH2EjgdZLvdbr9ACpcnp/Dt685GKPP 1v8A6B+n/wDg
c/8A8aqOdGvsJ9bL1aX6mlRWb5+t/wDQP0//AMDn/wDjVH9o3kXFzpNx8vLy W7pKgHqMkO2B
2CZz0B4yc6/pMPYT8vvX+ZpUVk/2tJeXP2fTmsy+zc63ErxzRc4yYSu4jkHk rnPUZBqTyNb/
AOghp/8A4Av/APHaOe/w6g6Dj8bUfW/6JmlRWfFf3CXEVvf2iwPMSsTxS+ZG xwW25IVg2FY/
dxgdcnFaFUmnsZzg4OzCiiimSc14Q+5f/wDXdv8A0Y9dLXNeEPuX/wD13b/0 Y9dLQBSi/wCQ
3df9e0P/AKFLV2qUX/Ibuv8Ar2h/9Clq7QAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFcl4u/5Efxv/ ANeVz/6SrXW1
yXi7/kR/G/8A15XP/pKtAGTqHhzwxZfapT4Z0Ty4d7YXTICcDPT5faorLwto ltHcb9D0gtdE
GZBZRGPgkqAu3HGcZAGcZPNaevcLcOfux3CyufRVkDMfwANTVg9Za9DoT5aV 11bX5f5mJd6J
4SsLV7q80Pw7bW6Y3yzafboi5OBklcDkgfjReaH4VsLG4vLrw9ocdvbxtLK/ 9lwnaqjJOAmT
wO1VvE9vf6heaXYW2nW17a7pLi6S7kZIJFVdixthHBJaQOAR/wAss9sjldRi 1W48K3FnrMGr
vcJpL2lstobmQT3SGaN3fywCyuFhYeaNpDHGfmrQxOzn0PwrbTW0Uvh7Q1e5 kMUI/suE7mCM
+PucfKjHn0qf/hGPDn/QtaH/AOCyD/4iucSGeXxTpj3MeqPfxapcvKzLObZL fy7hYiP+WIOx
ohx82Sc8lq6q11H7T9i/0O8i+1WxuP3sW3ycbPkk5+V/n6f7LelLUCD/AIRj w5/0LWh/+CyD
/wCIo/4Rjw5/0LWh/wDgsg/+Iq9Z3P2yxt7ryZoPOjWTyp12yJkZ2sOzDOCP WpqLsDntY8Ne
GI9A1SSXQdKgjjsZ5Glgso4nULGxyGRQw6djz0716Zb3EV3bRXEDbopUEiNg jKkZBwfauD8Q
QyXHhXXIIl3SSaZdIi5xkmFwK7PRreW00PT7eddssVtHG65BwwUAjI96I/Ea v+Fr0enzWv5L
7y7RRRWhgc14Q+5f/wDXdv8A0Y9dLXNeEPuX/wD13b/0Y9dLQBSi/wCQ3df9 e0P/AKFLV2qU
X/Ibuv8Ar2h/9Clq7QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFct4mgmuvCHjK3t4pJp5bWdI441L M7G1UAADkknj
FdTWFqGp/wBiaT4k1byfO+wrJc+Vu279lujbc4OM4xnBoAwp9bs5biSRYNYw zFhnQ77uf+uN
ZyX4tEVLVdTkhQYWGbQr8EDoAHEHAA9VJ9+eOhfXfEqOyNpGhhlOCP7Xn6/+ AtN/4SDxH/0C
ND/8G8//AMi1DjFmkKko6dDBOvTKpY6XqDAclY9Lvyx9hm2Az9SB7iov+Eq/ 6lzxP/4Jp/8A
4muj/wCEg8R/9AjQ/wDwbz//ACLR/wAJB4j/AOgRof8A4N5//kWp5P735f5F +1j/ACL8f8zn
P+Eq/wCpc8T/APgmn/8AiaP+Eq/6lzxP/wCCaf8A+Jro/wDhIPEf/QI0P/wb z/8AyLR/wkHi
P/oEaH/4N5//AJFo5P735f5B7WP8i/H/ADOc/wCEq/6lzxP/AOCaf/4mnx+I 3mzs0XWocdft
Wk3i5+myF/1x269ug/4SDxH/ANAjQ/8Awbz/APyLR/wkHiP/AKBGh/8Ag3n/ APkWjk/vfl/k
HtY/yL8f8zkten/tHw1q8D2+rXE81jcRwWseh3oQyNGwTloRkhiOSQOhwCM1 6zXFaj4t8Qab
pV7qEmi6NJHaW8lw6R6tNuZUUsQM2oGcA9SK7WrjFLYznNy3CiiiqIOa8Ifc v/8Aru3/AKMe
ulrmvCH3L/8A67t/6MeuloApRf8AIbuv+vaH/wBClq7VKL/kN3X/AF7Q/wDo UtXaACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKK
ACiiigArkvF3/Ij+N/8Aryuf/SVa62uS8Xf8iP43/wCvK5/9JVoAku/+Pyf/ AK6N/Ooamu/+
Pyf/AK6N/OoazKKNpeiWDzmuYJlW1FxMYkwIfu/KfmbJ+Y+n3T17Oh1Bbgqs ETSyMwGyOSNs
ZVm5YNtHCNwTnjpU720UkMcLeYYkgW3K7/vqF2gH8yfUZOMZOZ9zM8ck1xcz yKxbMsgxkoy8
KAAB85PTPTninoGpUS8EgTZBKzybTGnALqwYq2ScAEKx+Yg4H0oa9jSN3ZHG 1cheMuQxUqvP
zEMMccZI55FSrbxoqBGlRkjijV1YZARGTuCMkO3UU9YoUe3Kq2ICxXcwJZiS 2W4wfnIbGAMq
vpRoBXW9ie9e0GPMV2jwHUncudw2g7gBg8kY469M2aIQYVKie42ZYrCJMRgs SSSAMnkseTjn
pwKKTAy/E/8AyJ3iD/sFXf8A6IevQ6888T/8id4g/wCwVd/+iHr0OqjsJhRR RVCOa8Ifcv8A
/ru3/ox66Wua8Ifcv/8Aru3/AKMeuloApRf8hu6/69of/Qpau1Si/wCQ3df9 e0P/AKFLV2gA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKK
KACiiigAooooAKxrnTYdZsfEGl3DSLBelreRoyAwV4EUkZBGcH0NbNcl4u/5 Efxv/wBeVz/6
SrQBYPhS8ZizeLNYJPJJtrHn/wAlqT/hE7v/AKGvV/8AwGsf/kasO+8O+FbS eXzPD3h+KMSF
VL6dAB1PGStNXw14adA6eHNCZWGQRpsBBH/fFTdDsb3/AAid3/0Ner/+A1j/ API1H/CJ3f8A
0Ner/wDgNY//ACNWF/wjHhz/AKFrQ/8AwWQf/EUf8Ix4c/6FrQ//AAWQf/EU XQWN3/hE7v8A
6GvV/wDwGsf/AJGo/wCETu/+hr1f/wABrH/5GrBPhrw0pUHw5oQLHCg6bByc Z/uexoXw14ac
ZXw5oTDJGRpsB5Bwf4KLoLG9/wAInd/9DXq//gNY/wDyNR/wid3/ANDXq/8A 4DWP/wAjVhf8
Ix4c/wCha0P/AMFkH/xFH/CMeHP+ha0P/wAFkH/xFF0FjXvPBEt/Y3Nlc+Kd Ya3uYnhlUQWS
lkZSrDItwRkEjg11leU+JfDXh+Pwlrskfh7Ro5I9MunSSPT4VZGWFyCCFyCC AcivVqadxBRR
RTA5rwh9y/8A+u7f+jHrpa5rwh9y/wD+u7f+jHrpaAKUX/Ibuv8Ar2h/9Clq 7VKL/kN3X/Xt
D/6FLV2gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiig
AooooAKKKKACiiigAooooAK5Lxd/yI/jf/ryuf8A0lWutrlvE0E114Q8ZW9v FJNPLazpHHGp
ZnY2qgAAckk8YoAivlnbWIzbv5brPKxcoXCjy5MnAI+nUckVUe2kRLt4Xmkk jhHlk/KrzO0z
FiOeQSAASe2c4FJPrdnLcSSLBrGGYsM6Hfdz/wBcaZ/bFp/zw1f/AMEd9/8A GajUoc8UYuY8
R332JpQsanz98p8uUk4++RxF04/WmNa3TMoY3SMYyYo0gkkZSZHwTh1xhRH/ AKzPXnvSjWLQ
MG+z6tuXOCdCvjjIIP8Ayw9CR+NH9sWn/PDV/wDwR33/AMZp/IRI1qqGCSUX cgNzMxw7lgmZ
UQKE5wSV6ZyD/dFRyW93I4DG6RtsnlRpBJKQ3nSc8OoAACY35Xn60f2xaf8A PDV//BHff/Ga
P7YtP+eGr/8Agjvv/jNGoEqq8M17L5E80SB2EzCRTw2BGi52OcD7y9cH6meZ nh+0boZD5ABb
aM5PzfKPU/KfzHrVP+2LT/nhq/8A4I77/wCM0f2xaf8APDV//BHff/GaVhkX ipGTwj4iRhhl
0u8BHv5L16FXmPiDUYrrwxrNrbWesS3Fxp9xDFGNEvQWd4mVRkwgDkjqa9Oq kJhRRRTEc14Q
+5f/APXdv/Rj10tc14Q+5f8A/Xdv/Rj10tAFKL/kN3X/AF7Q/wDoUtXapRf8 hu6/69of/Qpa
u0AFFFFABRRXPeKb/wDsnTL7URCkrW1v5uxgPmCq7YyQcZx1xQB0NFeIRfFq 5kiRzolpGWUM
FacZweR0hI6VIPipdHpo9j/3/wD/ALTXT9Sr/wAv4r/MXMj2uivAm+N0qOyN 4diDKcEeenX/
AL90o+Nsh/5l+L/v8v8A8bpfVK38v4oj2sO575RXgw+NUh/5gEX/AH+X/wCN 08fGeQ/8wGL/
AL/L/wDG6Pqtb+X8UHtYdz3aivCx8ZJD/wAwKL/v6v8A8bp4+MEh/wCYHF/3 9X/43S+q1v5f
xQe1h3PcaK8QHxdkP/MEi/7+L/8AG6ePi1If+YLF/wB/F/8AjdH1Wt/L+KD2 sO57ZRXio+K8
h/5g0X/fxf8A43Tx8VJD/wAweL/vtf8A43R9Wrfy/ig9rDuez0V42PijIf8A mERf99r/APEU
4fE2Q/8AMJi/77X/AOIo+rVv5fyD2sO57FRXkA+JUh/5hUX/AH0v/wARTh8R 5D/zCov++l/+
Io+rVv5fyD2sO567RXko+Ikh/wCYXF+a/wDxFPHxBkP/ADDIvzX/AOIpfVq3 8v5B7WHc9Xor
yoePpD/zDYvzX/4injx3If8AmHRf+O//ABFH1er/AC/kHtYdz1KivLx44kP/ ADD4v/Hf/iKe
PGkh/wCXCL/x3/4mj6vV/l/IPaw7nptFeajxjIf+XGL8l/8AiacPF0h/5cov yX/4mj6vV7fk
HtYdz0iivOh4rkP/AC5xfkv/AMTTh4okP/LpF/3yv/xNH1er2/IPbQ7nodFe fjxLIf8Al1i/
75X/AOJp48RSH/l2i/74X/4ml7Cr2/IPbU+53tUrL/j71L/r5H/oqOuRGvyH /l3i/wC+F/8A
iaeNckP/ACwi/wC+F/8AiaPYVe35B7aHc7iiuJGsSH/ljF/37X/4mnjVZD/y yi/79r/hR7Cr
2/IPbU+52dFceNSkP/LOL/v2v+FWQ92VU+VbDIBGfKBweRwal0px3X4oaqRe zOnormGkuUQu
62aqoySWiAAqO2upru1huYUtjFNGssZIjUlWAIOCMjgjrS5X/TQ+Zf0mdXRX MNJcohd1s1VR
kktEABUNney39nFd2yW7QSqGR2WNNwIB6MAehFHJL+mg51/SZ1tFczuuv+ed r+cVZd5qpls9
TiieHzLdHR2jVfkfYGwGA6gMOh4PuKOWW/6oOZHdUVj+E/8AkTdD/wCwfb/+ i1rYqSjmvCH3
L/8A67t/6MeulrmvCH3L/wD67t/6MeuloApRf8hu6/69of8A0KWrtUov+Q3d f9e0P/oUtXaA
CiiigArkviB/yKWt/wDXi/8A6Llrra5fxtbTXvh3VbW3TfNNaNHGuQNzFJAB k8dTTj8SB7Hl
Hgy5tdM0CS9eBXnkVIvMLKpRfLUjBPAySfyrE1Gayll+WZ2k7Dz4Tn8N2fyq 5Y+G/F1lAETS
JFzEsci+fAysAMcgtg/lVaPwPr0UxlTQJBIf4vtEP/xde4p0edy51r5merS/ yNHwvHpNp4LX
VNRXSolXxN5VxPe2IuGkt/LVmiX925BPJHTvyM8xaB4H0fxFdROxm0631i5u /wCx83G5/KjB
IzH5bA7Twd0qk4OOxOLJ4G8byW72v2GYWbTGf7P9sj8sSEY3bd+N2OM4zire n+F/iJpUDQae
b+zhZt5jt9RWNS2AM4VxzgDn2rFyhq4zV35mFn1iXLDRNM0DxF4Lj23c+oah 9hv/AD/OVYo/
MmHyeXsJOAMZ3jnnHatDxN4LSfxrBaW4mvL7WdRuLgyRzLHbpCJH3RhypJkU Alj/AA8DaxrG
g8M/EK2s47OE30VrGwdIE1BQisG3AhQ+AQ3zfXmlHhTx5/cu/wDj4+1/8fyf 6/8A56/f+/8A
7XWlzxvfnX3hZ2tys2F8B6JNZ2+rW19cS6e2m3l68UcmWdoGC7VkaNMA7x1j 42nrkETP4G0G
KxfVJLu7hsk0uzvDHNMMh53YYMiRMcALjiM5J6gVQg0jx+upW19dR3d7Jbbv KFxqR+XcMHDL
KGH4EZxzkcVa1Gy+IOo6quo+TLaTpbrbIbW8CERjnaWMhZsnkliST+FTz6/G vv8A6+8fL/dM
jTv+EZ0zx7CZZn1Hw/HNkSPCQWUrxuXgkKxGeOQp45xXUt4StNUkt72XWLW4 0j7BdXiTWunp
ZMxiZVZWCoSBkg52seGwvOTzw8M+Nv7R/tErdfbv+fn7avm9Nv3t+enH0qdt A8cSX0d9I161
5Gu1Lhr5TIo54Db8gcn8zVSnFu6mvvQkn1ib+j6TpNzoev6fo+otNbXjabG0 jIxMLtOVYZKp
vA6g4XIOKgTwh4cu/Etvo1nqs4uBeywzxHMh8tFY7gxjQK2UK4+YfMCCcc5U +g+N7tZVumvJ
1lVVkEt8rBwpJUHL8gEkj0JNTTaR45ufK+0TX0vlSCWPzL8NscdGGX4I9ajm ir2mvvXYdn/K
WNGi0Sbwv4jujpk5jgW12iSdGlUmRgSknl/KDxkbTnB554vXvhvT4tHXVLhp 5I7fSbOYwwiO
Eu8rsv3gnQY7gsc8txWaNJ8bfa/tZmvvtPl+X5324b9mc7d2/OM84pYdG8YQ SpLE13HIkQhR
1vACsY6IDu4X26U3KN7qa+8Vn/Kbdx4K0nT7lop5b2ffq8dhGUkSPakkauGO UOSN2O2fauP1
C0/s/VLuy3+Z9nmeLfjG7axGcdulaw0PxX3Fz/r/ALR/x9L/AK3/AJ6fe+97 9ajfwvr80ryy
2rPI7FmdpkJYnqSd3JpwqRXxTT+ZMot7RMhamWtNfCutD/ly/wDIqf41Ivhj WB/y5/8AkVP8
a09tT/mX3k+zn2M1alWtEeGtXH/Lp/5ET/Gnjw5qw/5dP/Iif40vbU/5l94e zn2KC1KtXh4e
1Qf8uv8A5EX/ABqRdA1Mf8u3/kRf8aXtaf8AMvvD2c+xTWpVq2uh6kP+Xb/x 9f8AGpBouoD/
AJd//H1/xo9rT/mX3h7OfYqLUy1ZXR78f8sP/H1/xqRdJvh/yw/8fX/Gl7Wn /MvvF7OfYrrU
q1OumXg/5Y/+PD/GpF067H/LL/x4f40va0/5l94ezn2IlqVaeLC5H/LL/wAe H+NSLZXA/wCW
f/jwpe1h/MvvD2c+w1alWlW0nH8H6ipFt5R/B+oo9rD+ZB7OfYVav3k8NuI3 mlSNTHGAXYAZ
2D1qmsMg/h/Ws++sdcvLgv8A2jZCEY8uGTT1kCgDAzubk47/AMq5sQ4zSUWv vN6CcG7ou3s8
Nxo948MqSKIXBKMCM7fauTv/AA9pXiW48I2er2v2m3TQmlVPMZMMFtADlSD0 Y/nWw+l6+9s1
sNWs0hbduSLTUQHIwfusOwFU7vwpe39tZ295caXcxWcKQwi40pJdiqqrxuY4 JCjNcns33X3o
6Odf0mZ6eE9E8L+If+JNZfZvtGj3vm/vXfdteDH3icfePT1rqNIMA8AaebqX ybcWv72TzTHs
Xykyd4IK4HOQRjrWHa+DrmxaVrKXSbV5YzE72+kRxsyHquVYHHA/KtZdO1i3 0yxsLHUoYIrW
IIS1rvZ2AAz9/gfKOPrye1qD5Wrr70S5e8nb8GcboOq6jcavpUOr6lqKaAZD /Y95KnkvqTD7
guHDZ6ZKAhfN6nJ+U9Lp/wDx7+J/+vqf/wBFpVr7B4k/6DkH/gAP/i6S30u4 03SdWNzcLcS3
PmTM6x7BkoBjGT/dz+NKMeW7bX3oble1jt/Cf/Im6H/2D7f/ANFrWxWP4T/5 E3Q/+wfb/wDo
ta2Kko5rwh9y/wD+u7f+jHrpa5rwh9y//wCu7f8Aox66WgClF/yG7r/r2h/9 Clq7VKL/AJDd
1/17Q/8AoUtXaACiiigArI1j+L/tn/7PWvWRrH8X/bP/ANnpPYaMeiisiw1+ O+ga8Nlc22m+
R9oS/uHiWJ48AhuHLKCp3fMq4A5weKgo16KyP+EisHu7YQ3FtLZTWlxdG9Sd TGqwtGrcjjH7
w5OeNp/Cd9e0eLT4tQk1axSylbZHctcoI3bngNnBPyn8j6UAaFFZ+l63Yaub pLSdGmtZ5IJ4
d6l42V2T5lBOAShIz1FFrr2j3sFxPaatY3ENsu+eSK5R1iXBOWIPyjAPX0NA GhRWe+vaPFp8
WoSatYpZStsjuWuUEbtzwGzgn5T+R9KZZa5a3FpLPcSQ2vlyXSlZJR9yCVo2 k5x8vAJ7DcBm
gDTorPfXtHi0+LUJNWsUspW2R3LXKCN254DZwT8p/I+lPTWNMkure1TUbNri 5jE0EQnUvKhB
IZRnLLgE5HHBoAu0VVtdSsL2e4gtL22uJrZtk8cUqu0TZIwwB+U5B6+hrPs/ FuhXmiW+r/2p
ZwWk21d09wi7HK7vLY5wHAPK5zQBtUVDd3lrYWr3V5cw21umN8szhEXJwMk8 DkgfjUY1KwaB
5xe2xhSBbhpBKu1YiCRITnhSFbB6cH0oAtUVSttY0y8vpbK11Gznu4c+bBFO rSJg4O5QcjBO
DnvTIte0ee0N3Dq1jJbBmQzJcoUDKpdhuBxkKCx9ACelAGhRWZYeIdM1Bbny ruFXtrlraaN5
FDxuJDGoYZ43Mvy55OR9K06ACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKA
CiiigAqrqf8AyCrz/rg//oJq1VXU/wDkFXn/AFwf/wBBNAHQ+E/+RN0P/sH2 /wD6LWtisfwn
/wAibof/AGD7f/0WtbFaEHNeEPuX/wD13b/0Y9dLXNeEPuX/AP13b/0Y9dLQ BSi/5Dd1/wBe
0P8A6FLV2qUX/Ibuv+vaH/0KWrtABRRRQAVkax/F/wBs/wD2etesjWP4v+2f /s9J7DRj1xd3
4UvdRa5mNlp2lvJtkkjsLl/9MkE0coaSRY0ZWHlsocBiPNYjphu0rEbxf4fR irapCGBwQc5B
/KoQzAm8E3dwok/cwOd8jxi+uJXZxJauoM7fPyLYjeACm5cK23Ju2Xh/UtMu o9StLeze7PnL
LbzahO4IkEI3Gd1ZmYfZ1GNijDY/hy2j/wAJj4e/6CsH6/4Uf8Jj4e/6CsH6 /wCFPUCzo1ld
act3bSiFrc3Ms8MqOd7ebI8jBlxhdpfAIY5xn5elcxo2ia7deHtIeZYdPntN JS1jjWd/MlDe
Szq52KYWIh2ZXcVLkjlRne/4THw9/wBBWD9f8KP+Ex8Pf9BWD9f8KWoGPpfh 3WdKv5dTihs5
Lh5JQLabUppQEkS3G4zvGXLA2/QrjD9RtwZ4/DOp2UF79huoVlvrmaScNIyn YZ5JUVJANyZV
yhA4UuXXDA+Zo/8ACY+Hv+grB+v+FH/CY+Hv+grB+v8AhT1A52LTNT8M3D6y 1sk80k8qLarc
3V2QkkduNxlELyEg2x4K4w4G4YAJofgy9tYtO+1RIRts5pw9/MohkhiiXZ5C Hy5DmEEOW4JH
DBQG6L/hMfD3/QVg/X/Cj/hMfD3/AEFYP1/wo1ATw1pV/pUEkFwyRWaqkdpZ JcNcLbqoOcSu
iuQcj5Wzt28HB2rSstG1jTINJMEVjPNplo+nor3LxrNERFiUkRttbMP3MMPm +/xze/4THw9/
0FYP1/wo/wCEx8Pf9BWD9f8AClqBUvPDEx8OaJp8E3nS6T5eP38lr522Fov9 ZHlo/v7uM5xt
6HNMTw1dx29gI4rFWsWe5RHeSXzZXkLtG8j5baDht/JMgR9q+WEa9/wmPh7/ AKCsH6/4Uf8A
CY+Hv+grB+v+FGoGCPDup65plxp91HDY2i3upPFOWZ5X81rmMZjKqAuJtwIc 5Cjj5sjQfw9f
6l4gs9X1KCxjMM8LNbpK0y7Yo7ja4ZkX5t86nGONmcknAvf8Jj4e/wCgrB+v +FH/AAmPh7/o
Kwfr/hT1AS10y/tbW4sxFYzQ/b/tUUkzM25XuDM+U2/KyBjsIY5YAnb0rdrD /wCEx8Pf9BWD
9f8ACj/hMfD3/QVg/X/ClZgblFYf/CY+Hv8AoKwfr/hR/wAJj4e/6CsH6/4U WYG5RWH/AMJj
4e/6CsH6/wCFH/CY+Hv+grB+v+FFmBuUVh/8Jj4e/wCgrB+v+FH/AAmPh7/o Kwfr/hRZgblF
Yf8AwmPh7/oKwfr/AIUf8Jj4e/6CsH6/4UWYG5RWH/wmPh7/AKCsH6/4Uf8A CY+Hv+grB+v+
FFmBuUVh/wDCY+Hv+grB+v8AhR/wmPh7/oKwfr/hRZgblFYf/CY+Hv8AoKwf r/hR/wAJj4e/
6CsH6/4UWYG5RWH/AMJj4e/6CsH6/wCFH/CY+Hv+grB+v+FFmBuUVh/8Jj4e /wCgrB+v+FH/
AAmPh7/oKwfr/hRZgblFYf8AwmPh7/oKwfr/AIUf8Jj4e/6CsH6/4UWYG5VX U/8AkFXn/XB/
/QTT7K8g1GzS8tJBLbuxVZACAxHXGevWman/AMgq8/64P/6CaAOh8J/8ibof /YPt/wD0WtbF
Y/hP/kTdD/7B9v8A+i1rYrQk5rwh9y//AOu7f+jHrpa5rwh9y/8A+u7f+jHr paAKUX/Ibuv+
vaH/ANClq7VKL/kN3X/XtD/6FLV2gAooooAKyNY/i/7Z/wDs9a9ZGsfxf9s/ /Z6T2GjHqf4e
f8iTZ/8AXW4/9HyVBUvgKRLfwbZxzusT+ZO21ztODM5BwexBBHsaUQZ1VFQ/ a7b/AJ+Iv++x
R9rtv+fiL/vsVQiaioftdt/z8Rf99ij7Xbf8/EX/AH2KAJqKh+123/PxF/32 KPtdt/z8Rf8A
fYoAmoqH7Xbf8/EX/fYo+123/PxF/wB9igCaioftdt/z8Rf99ij7Xbf8/EX/ AH2KAJqKh+12
3/PxF/32KPtdt/z8Rf8AfYoAmoqH7Xbf8/EX/fYo+123/PxF/wB9igCaioft dt/z8Rf99ij7
Xbf8/EX/AH2KAJqKh+123/PxF/32KPtdt/z8Rf8AfYoAmoqH7Xbf8/EX/fYo +123/PxF/wB9
igCaioftdt/z8Rf99ij7Xbf8/EX/AH2KAJqKh+123/PxF/32KPtdt/z8Rf8A fYoAmoqH7Xbf
8/EX/fYo+123/PxF/wB9igCaioftdt/z8Rf99ij7Xbf8/EX/AH2KAJqKh+12 3/PxF/32KPtd
t/z8Rf8AfYoAmoqH7Xbf8/EX/fYo+123/PxF/wB9igCaioftdt/z8Rf99ij7 Xbf8/EX/AH2K
AJqKh+123/PxF/32KPtdt/z8Rf8AfYoAyNW/1p/66H/0FKw9T/5BV5/1wf8A 9BNbWqOrvuRg
ymRsEHI+6lYup/8AIKvP+uD/APoJqHuUdD4T/wCRN0P/ALB9v/6LWtisfwn/ AMibof8A2D7f
/wBFrWxVknNeEPuX/wD13b/0Y9dLXNeEPuX/AP13b/0Y9dLQBSi/5Dd1/wBe 0P8A6FLV2qUX
/Ibuv+vaH/0KWrtABRRRQAVkax/F/wBs/wD2etesjWP4v+2f/s9J7DRj1N9r uf8An4l/77NQ
1keEvCWg6n4Vh1LUoJWlZ5zJKbyVFAWVwOA4AAAH5VKQ2bv2u5/5+Jf++zR9 ruf+fiX/AL7N
Zx8PfD9Z0hM0e91Zx/xM5sYBAOT5mAfmHHU846Gr8PgPwncwrLBbSSxN9101 CdgfxD0k09mN
prdDvtdz/wA/Ev8A32aPtdz/AM/Ev/fZrPuvCPhm2uXh/sudtuOf7QnHbP8A eqH/AIRnwz/0
CZ//AAYz/wDxVP5iNb7Xc/8APxL/AN9mj7Xc/wDPxL/32ayf+EZ8M/8AQJn/ APBjP/8AFUf8
Iz4Z/wCgTP8A+DGf/wCKo07ga32u5/5+Jf8Avs0fa7n/AJ+Jf++zWT/wjPhn /oEz/wDgxn/+
KqGfQ/CNtt87TpELZ2KdSn3P7KN2SfYUm0tWxxjKTtFXZufa7n/n4l/77NH2 u5/5+Jf++zXO
/wBl+Ef+gLqX/f68qeDQPC1whdNHuwAcfvL25Q/kxBpKUXsy5UqkVeUWjb+1 3P8Az8S/99mj
7Xc/8/Ev/fZrJ/4Rnwz/ANAmf/wYz/8AxVU/7L8I/wDQF1L/AL/XlNuK3YoU 5z+GNzovtdz/
AM/Ev/fZo+13P/PxL/32a53+zfBi/wCt0+eD0+0X9zFn6bmGfwq5/wAIz4Z/ 6BM//gxn/wDi
qE4vZhKnOHxRsa32u5/5+Jf++zR9ruf+fiX/AL7NZP8AwjPhn/oEz/8Agxn/ APiqvWXgfwze
QmT+zp0w23H2+c+n+3707eZBY+13P/PxL/32aPtdz/z8S/8AfZpf+FeeGf8A nxn/APA6f/4u
j/hXnhn/AJ8Z/wDwOn/+Lp8orifa7n/n4l/77NH2u5/5+Jf++zS/8K88M/8A PjP/AOB0/wD8
XR/wrzwz/wA+M/8A4HT/APxdHKFxPtdz/wA/Ev8A32aPtdz/AM/Ev/fZpf8A hXnhn/nxn/8A
A6f/AOLo/wCFeeGf+fGf/wADp/8A4ujlC4n2u5/5+Jf++zR9ruf+fiX/AL7N L/wrzwz/AM+M
/wD4HT//ABdH/CvPDP8Az4z/APgdP/8AF0coXE+13P8Az8S/99mj7Xc/8/Ev /fZpf+FeeGf+
fGf/AMDp/wD4uj/hXnhn/nxn/wDA6f8A+Lo5QuJ9ruf+fiX/AL7NH2u5/wCf iX/vs0v/AArz
wz/z4z/+B0//AMXR/wAK88M/8+M//gdP/wDF0coXE+13P/PxL/32aPtdz/z8 S/8AfZpf+Fee
Gf8Anxn/APA6f/4uj/hXnhn/AJ8Z/wDwOn/+Lo5QuJ9ruf8An4l/77NH2u5/ 5+Jf++zS/wDC
vPDP/PjP/wCB0/8A8XR/wrzwz/z4z/8AgdP/APF0coXE+13P/PxL/wB9mj7X c/8APxL/AN9m
l/4V54Z/58Z//A6f/wCLo/4V54Z/58Z//A6f/wCLo5QuJ9ruf+fiX/vs0fa7 n/n4l/77NL/w
rzwz/wA+M/8A4HT/APxdH/CvPDP/AD4z/wDgdP8A/F0coXI5JZJceZI746bm JxVLU/8AkFXn
/XB//QTWhJplppFstnYxGOBJWIBdnOSqE5ZiSfxNZ+p/8gq8/wCuD/8AoJqe ozofCf8AyJuh
/wDYPt//AEWtbFY/hP8A5E3Q/wDsH2//AKLWtitCTmvCH3L/AP67t/6Meulr mvCH3L//AK7t
/wCjHrpaAKUX/Ibuv+vaH/0KWrtUov8AkN3X/XtD/wChS1doAKKKKACsjWP4 v+2f/s9a9ZGs
fxf9s/8A2ek9hox6paA8qfCOdoUR3Ed5w7lRjzZMnIB5AyQO54yOtXaf4Egi uvAMFvMgeKV7
pHU91M0gIqLXi0UnaSZhO+q/29bf6LZZ+yv/AMtjjGV/2ev/ANf8er8HvO/h 5PPjjTE8wXY5
bI8xuvAxzkY54AOecCJvCOhfb4cm4WXyn2w/bZcsuVy33t3HA4OPm5zxjbsr K3060S1tY/Lh
TO1SxbqSTyck8k1jRoyhK7NatWMo2Rxvie8v/wDhJoNM0+S2gmngkuDNcQtK oWPyl27Qycky
g5zxtxg5yOW1TxVqdhptzqaJZtbmS9t4IDE29Ht0nYOz7sMrG3PyhVI3j5jt 59D1vwzb67Iy
3tpZXcG4OsdzGJAGAxnBBGeT+dVX8G2kl1cXT2OnNcXMZhnlMILyoQAVY7cs uABg8cCt7GJy
dprepprSWN41nMgvTp7tDA0ZL/ZvtIkGXbC7cJs5Ofm3fw1U8Q+L7zT7snTI ILmzhs47ySYv
GUlVzJtUO0qbMiJjuAk6528YbtrzQ47KGW+kgtmdH84FEy7y7fLG3jlyuEHc 5AqOPwZG0dt9
qtrCQ2xVrePy8pbbfuiMFflx6jB+gwBLveyNIxVuaWxy0+szf2hcwX93DbWt jBJd3flFtxiG
SEG0lt6KY2faeNycESjZl2Wsa5DqUekGytLC/nni3XE9oDujaK4flEuHLHNu fmMmTuPy8ZPp
C+GQvl7YrQeXI0yYX7rtu3MOOGO9snqdx9TVWz8D6fpz77HTNLtW3B90ECod wDKDwvXDMPox
9TQoJa9QlVk1yrRdlt/XqcPbeKdYv5NMtoPsMM2pLb3KSPA7rDFNDcSCMqHG 5lNvjflQd33R
jml/wkepjXLhrS0SbUbhYbD5EBXdFLf7nCNInBEJO0yDG7q2MN3998PtP1EW aXFnYtDaspWH
ylKMqo6IjKV5VRIxA7HpVqTwbaS2rWsljpz27RpCYmhBQohJRcbcbVJJA6DP FVYzON1bU5L7
4c6ub1YYL59OvQ0CyoxPlhkZsKzAc7cgM20ttJJGTkQ6tqNvqPiHV7d7YR2N o7zQSxySNMkV
3egKrmT5CQhGcMBkYUAba9MPhOFoEgNrYmFIGt1jMY2rEQAYwMcKQq5HTgel QP4H0+W7iu5N
M0t7mJt8czQKXRtxfIbbkHcxb6knqaLAcoNe1V9NuJglt9plv5rLT4YoTI0h illDFg0iKDsj
Y43AfITklggzNJvNR1mW5gs9O06wnt7QliQ8bGcS3EIU+U3CFoVY4ZtuCBvy GX0WbwnDcWcl
nPa2MtrIxd4HjDIzFtxJUjBJb5vrzRZ+E4dOTZY2tjartCbYIwg2gswHA6ZZ j9WPqaTinui4
VJQ+F2OU0W7u9Vee5tJbi3sUWNIoryPc/m4LShuckLuVPvZDpIp4UCux0jUj aWj/ANowrbRF
z/pAlDRA4GAzHBU+5GOgzkgVDp3haTTNPgs4ZVdYlwZJGy8jdWdiByzElie5 JPetzT7V7S3a
OQqSW3fL9BSUGnpoU6vN8av+D+//ADuW6KzU/wCJXcxwDiwl+WMnpA+QBGP9 lsnbngEbQfmV
RpVoncznDl1WzCiiimQFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QBhat/rT/wBd
D/6ClYep/wDIKvP+uD/+gmtzVv8AWn/rof8A0FKw9T/5BV5/1wf/ANBNQ9yj ofCf/Im6H/2D
7f8A9FrWxWP4T/5E3Q/+wfb/APota2Ksk5rwh9y//wCu7f8Aox66Wua8Ifcv /wDru3/ox66W
gClF/wAhu6/69of/AEKWrtUov+Q3df8AXtD/AOhS1doAKKKKACsjWP4v+2f/ ALPWvWRrH8X/
AGz/APZ6T2GjHqn4flaH4STusTykR3g2oQDgyyAnkgYHU98DjJ4q5S+CLWO+ +HkVpLu8uc3U
T7Tg4aaQHH51DV4tFJ2kmc26KNbt0/4R44Ns5K4jx1Xnr/nNdp4OkaTw7GDb vAEmmVQxXkeY
3TBPA6c45B7YJrN4NBvI5xrWo4SNkIPlbuSpGDswBwcjBzkcjHO5pmnxaVYR 2cLyOiFm3SEF
iWYsScADqT2rChRcJ3atob1qqlCyZS1bVry11G003TbKC6vrmKW4AubkwRrH GY1b5lRzuzKm
BtxjdyMAHD1Px3Nplld6k2lRvp6PewWzC6IlkmtkmZw6bMIh+zygMGY/cyoy dvSanotlq/lG
6WdZIshJra5kt5FBxld8bK204Ulc4JVSRkDGVrHhvQ0s9Su57GS4E0MwNqbq URM8ilW8uPdt
SR97LuRQxMjcksc9TdldnNGLk1FbsztP8S3OpeI7eHULO0SKC+k09Psl08uy 8WB5WLb4kynl
bgCP4iRtYYZbXiLxnLomsjTrbR7vUHjt0ubjyIZnYI7OqiMRxOC58t+JGjH3 fm+8V09P8M6d
YRWp8rfcW8qXHnbmG6ZbcW+/GcD92NuOnfrzTH8IaG9vaW/2SRYLW3S1WNLi VVkhQYWOUBgJ
kAyNsm4fM395sqKstdy6sk5WjstF6f1qH/CQNHqlzY3VrHbizRri7uJLhRFF bHf5cgJGSWKM
CpAC+XIScBDJz9r4/wBQvLqLTYtBjXVJbiOMR3E1xbxbHinkDbpbdXz/AKM4 wIyOV+Y8gdQ/
hzSJHd5LGOR5HlaVpCWMvmrtdXyfnQqFGxsqAiAAbFxXs/COj2N+l/HHdy3a OrrNdX09wwKp
Ki4MjtwFnl46fOT1wRRmYcHj28vm06Cy0aBrrUvImtVnvSifZ5op5Y2dhGxW TFs4KAMBlcOe
cZ7+PJ7bWruYWc800sVvZx2StLJGlwk1+szDy43cqRbNhhGSQE3BRnb0F74E 0m5bSRb+faR6
f5UYEFxKjtDFFPHHGHVwy489juByehyDxcPhDQyhVbSSN9iL50VxKko2NIwY SKwcOTNLucHc
3mNuJyaAM/WNaub34W61qyQXem3Y0y7ZVcPFJE6I43LuCuBldykqpwVJCngY dv4t1S31jxBq
Ig+1aZp9o0lyk95teJIru+RmiRYtrMUiGASn3UBZuWrsJPC2jS2f2WSz3Q/Z J7Mgyvlopypm
3NnLM5UEuSWJyc5JzXk8FaDJdPcNazhpdwmjW8mWOYNLJKyyRh9sil5ZDtYE YcjGOKAKZ8YX
J0m/vhpccflXstjaRyTu7XjxzSI5VYo3fG2MtgKT8r5AVd7V9M8cX2tmePTP D0k0sFkbiRZb
nycyiS4i8kB1DAmS3wCyr8pJYIVCN0Evh7TJrD7EYJEiFxJdK0U8kciSyOzu 6SKwdSS752kc
MV6HFGkeHtM0MyNp8EiPIgSR5J5JWceZJJyzsSTvmkOTyd3sMAEei+IbfX57 h9PXzbCOKB0u
sld7yJ5mzYQCMRvC2e/mY4KkVzcXjm+FzdwRabHcR29x5LSz3mx98t9PawqF WLGzdEuSTlVP
SRh83SWHh63t9BttMvG+1tHKl1NLgx+bciUTtLgH5cy5faDgZx04oTwto0bz OtnhppY5pD5r
/M6XD3Knr2lkdvxx0AFAHM33jO5vbLVF/siL7Jptm1xqMovissRSa4jfyB5R DsrWrshYpnKZ
2846PwmL8aEf7TmWa8+2Xe9kZmUD7RJtVS3O0LgAdgAO1Uj4E0l9aur6Tzzb zxKjWa3EqRux
mnmkMih9squ05+RwVAyOjEVe0mxt9L1nU7Szj8qCULeum4tmaWSUyNk5PO0c dBjgCoekkzaP
vU5Ltr+n+X3G1RRRVmIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF AGFq3+tP/XQ/
+gpWHqf/ACCrz/rg/wD6Ca3NW/1p/wCuh/8AQUrD1P8A5BV5/wBcH/8AQTUP co6Hwn/yJuh/
9g+3/wDRa1sVj+E/+RN0P/sH2/8A6LWrJ1CR/migRozyrNIVJHrjBqyTJ8If cv8A/ru3/ox6
6Wua8Ifcv/8Aru3/AKMeuloApRf8hu6/69of/Qpau1Si/wCQ3df9e0P/AKFL V2gAooooAKyN
Y/i/7Z/+z1r1kax/F/2z/wDZ6T2GjHqr4bujZfCmS4DSKyLd7WiViwPnSAH5 eRg457dTgCrV
J4MtBf8Aw3WzLlBcfa4t4Gdu6aQZ/Woabi0ik0pJswX1GH+3bXL6wT9mkAO6 fcMlM4PXHAz2
4HtXZ+E7w3ugxuzzuySyoWnVtxw5xy33uMDIz0I6g1mN4X1g6jDONYtSFheM sbRsjJXAxv5G
AecjGBwc8dBo+nNpWlx2bTecys7NJs25LOWPGTjr61hQpyjO7VtDetOMoWTI dV1oabcW9pDY
XeoXlwjyJbWpjDeWhUO5MjouAXQYzn5hgEAkcz4q8dWGn6XNcz2V99hgvAqX arGUnlgl3SxI
N+8MBDLyyqp2HDcrnptV0UalcW93Df3en3lujxpc2ojLeW5UuhEiOuCUQ5xn 5RggEg854n8A
2eqaPewPdahJZmSS6SxjKYikkLGZ4js3l2Ek2FZmXMnQALt6J/CzKhpVj6r8 zXsfFkF3qcdh
Np19ZTNKbY+f5RCXAjM3kko7fMYv3mRlMHG7d8tV/Enj7RPC2ox2Woy7ZDEJ 5T5sSeVESQG2
u6tJ91/ljDt8vTJXN6PQLCbUE1WKeV2e+GpKVdSjObX7MMccrs569ec44qFv Cif6OY9Y1WKR
LSKzuZlmUyXkUe7b5jlSwb55DvjKNlyc5C4sy2LkOuQz6odNW1uxdo7eajRg CKMZ2yls4KPg
BcEkncMAxybOfs/iVpepBI9Psbu8vHuFgFpaz2srfNHLIGLrMYgMQycF93yj jBBOxc+FbG8e
6e6mu5jepLDd7pcCeB1KiEgYARQfl24YHcc5eQvXtfB8UWtxaxd6vqWoXkTx sj3HkqAESdAu
I41GMXMh9c7ecDBAK6+PrKYWy2mmaldT3jxm1gjEStPDJHLJHMC0gUIywS8M Q428qMjOfP8A
ESysNSvLi7kkSzFvbRw2sjRRMt0ZbtJkMjsqAj7ORkvtPl/KSWG6xceARFLo TaVqd3aHTkt7
dp8xtIIYILmNCoaNlLk3HzZGMdMEc3F8C2EUoube9voL4bGW7Roy6yhrhnlA ZCm5zdT5BXaN
3yquBgANR8Tpe/DXVfEWiz7Wj0+5lgk+V9ksauD0yrbXUjILKcZBIIJy4PHE 8Wuau9xbXdzp
Nlb75ZoYokW0Ed1dxSSOGk3sNsC/c3E7CQqlttdBd+GIb7S5NPudR1KSKayu LOYtOCZfPxuk
IxjeMHbgBVDMAoGAM9/ANk014V1PUo7e/SSO9tVMWy4jeaaZkYmMuozcSLlG U4I5yM0AWH8Z
2SaTqepmzu1tdPuGtpJJmigWSRZmiYI0siqQCAdxIB3AAlgyivafEDTdRR20 2x1K/wBlkb1x
awrIAoaZCgYNtZ98DIApO4sCpZQzLoP4XtvsEdtBd3dvLDez30F1GUMkMsry M5AZShGJpFwy
ng+oBo0DwvbeH5rieK7u7me4TbLJcFMsfOmmLYRVAJa4foMYC8DByAXLHWbP U7yeCyfz44Yo
pTcxENC3mAsqqwPLBQrEf3ZEPRqw9f8AGsOm+FbrVLSCRpw99b26yoCvnWyT sS+GzsJtnxg5
5HTJxc0Xw3/Z/hy2sJJPs10ZY7q5exbYpkV1cxqcZ8kBREqnkRKq9qr3fgWw vpytxe3z6aZb
ib+zd0Yh3zpKkp3BPN+bz5T9/gtxgAAAFebxNey+KtH03yJ7DzpYzcWs8cZc I8N6QC6O6nLW
yNhcYxyTuKrvWn73XdSnX7saQ2xB67lDSE/TEq/iD+OI3h9f7etryO8vtQ1S 18sPc3HlCNCq
3AXzAirk7bt/lQAnbHkqDubprO1SytIreMsyoMFn5Zz3Zj3YnJJ7kk1HxNW6 Gy9yDvu/+Hv+
H6k9FFFWYhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAYWrf60/9 dD/6ClYep/8A
IKvP+uD/APoJrc1b/Wn/AK6H/wBBSsPU/wDkFXn/AFwf/wBBNQ9yjofCf/Im 6H/2D7f/ANFr
SwjbDGPRQP0pPCf/ACJuh/8AYPt//Ra1dW2+Ucdq0RDMXwh9y/8A+u7f+jHr pa5rwh9y/wD+
u7f+jHrpaQylF/yG7r/r2h/9Clq7VKL/AJDd1/17Q/8AoUtXaACiiigArI1j +L/tn/7PWvWR
rH8X/bP/ANnpPYaMep/h5/yJNn/11uP/AEfJUFT/AA8/5Emz/wCutx/6PkpR BnUUUUVQgooo
oAzfLudM+W0t/tNn2gVwrxeyZwpX2JG0A4yMKD+3tNj+W6uo7KUdYrthEw+m fvDORuXKnBwT
WlRUcrXws29pGXxq77p2fz3/ACKlrqunX0pitL+1uJANxWKZXIHrgHpyKt1B dWdrfRCK7tob
iMHcFlQOAfXB78mqn/CPaJ/0B9P/APAZP8KPf/r+mFqL6tfc/wBV+RpUVm/8 I9on/QH0/wD8
Bk/wo/4R7RP+gPp//gMn+FF59vx/4ActH+Z/cv8AM0qpXGs6XaTtBc6lZwyr jdHJOqsMjPIJ
9Ki/4R7RP+gPp/8A4DJ/hV63t4LSBYLaGOGJc7Y41CqMnPAHvR77/r/hg/cr u/uX+ZR/4SDS
G4i1G3nftHbv5rt9ETLH8B05o/tu3biO31B3PCr9hmXcewyyhR9SQPUitKii 0+/4f8EOal/K
/v8A+AZv23U5f9RpPl46/bLlUz/u+X5mffOO3XsfZtSu/wDj6uo7aI9YbQEt 6YMp7EZ+6qsO
MHjJ0qKOTuw9rb4Ypfj+bZHb28FpAsFtDHDEudscahVGTngD3qSiir2Mm23d hRRRQIKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigDC1b/Wn/AK6H/wBBSsPU/wDk FXn/AFwf/wBB
Nbmrf60/9dD/AOgpWHqf/IKvP+uD/wDoJqHuUdD4T/5E3Q/+wfb/APota2Kx /Cf/ACJuh/8A
YPt//Ra1sVZJzXhD7l//ANd2/wDRj10tc14Q+5f/APXdv/Rj10tAFKL/AJDd 1/17Q/8AoUtX
apRf8hu6/wCvaH/0KWrtABRRRQAVkax/F/2z/wDZ616yNY/i/wC2f/s9J7DR j1P8PP8AkSbP
/rrcf+j5Kgqf4ef8iTZ/9dbj/wBHyUogzqKKKKoQUUUUAFFFFABRRRQAUUUU AFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGF q3+tP/XQ/wDo
KVh6n/yCrz/rg/8A6Ca3NW/1p/66H/0FKw9T/wCQVef9cH/9BNQ9yjofCf8A yJuh/wDYPt//
AEWtbFY/hP8A5E3Q/wDsH2//AKLWtirJOa8Ifcv/APru3/ox66Wua8Ifcv8A /ru3/ox66WgC
lF/yG7r/AK9of/Qpau1Si/5Dd1/17Q/+hS1doAKKKKACsjWP4v8Atn/7PWvW RrH8X/bP/wBn
pPYaMep/h5/yJNn/ANdbj/0fJUFT/Dz/AJEmz/663H/o+SlEGdRRRRVCCiii gAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAoo
ooAwtW/1p/66H/0FKw9T/wCQVef9cH/9BNbmrf60/wDXQ/8AoKVh6n/yCrz/ AK4P/wCgmoe5
R0PhP/kTdD/7B9v/AOi1rYrH8J/8ibof/YPt/wD0WtbFWSc14Q+5f/8AXdv/ AEY9dLXNeEPu
X/8A13b/ANGPXS0AUov+Q3df9e0P/oUtXapRf8hu6/69of8A0KWrtABRRRQA Vkax/F/2z/8A
Z616yNY/i/7Z/wDs9J7DRj1P8PP+RJs/+utx/wCj5Kgqf4ef8iTZ/wDXW4/9 HyUogzqKKKKo
QUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFAGFq3+tP8A10P/AKClYep/8gq8/wCuD/8AoJrc1b/W n/rof/QUrD1P
/kFXn/XB/wD0E1D3KOh8J/8AIm6H/wBg+3/9FrWxWP4T/wCRN0P/ALB9v/6L WtirJOa8Ifcv
/wDru3/ox66Wua8Ifcv/APru3/ox66WgClF/yG7r/r2h/wDQpau1Si/5Dd1/ 17Q/+hS1doAK
KKKACsjWP4v+2f8A7PWvWRrH8X/bP/2ek9hox6n+Hn/Ik2f/AF1uP/R8lQVP 8PP+RJs/+utx
/wCj5KUQZ1FFFFUIKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigDC1b/Wn/rof/QUrD1P/kFXn/XB /wD0E1uat/rT
/wBdD/6ClYep/wDIKvP+uD/+gmoe5R0PhP8A5E3Q/wDsH2//AKLWtisfwn/y Juh/9g+3/wDR
a1sVZJzXhD7l/wD9d2/9GPXS1zXhD7l//wBd2/8ARj10tAFKL/kN3X/XtD/6 FLV2qUX/ACG7
r/r2h/8AQpau0AFFFFABWRrH8X/bP/2etesjWP4v+2f/ALPSew0Y9T/Dz/kS bP8A663H/o+S
oKn+Hn/Ik2f/AF1uP/R8lKIM6iiiiqEFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBhat/rT/wBd D/6ClYep/wDI
KvP+uD/+gmtzVv8AWn/rof8A0FKw9T/5BV5/1wf/ANBNQ9yjofCf/Im6H/2D 7f8A9FrWxWP4
T/5E3Q/+wfb/APota2Ksk5rwh9y//wCu7f8Aox66Wua8Ifcv/wDru3/ox66W gClF/wAhu6/6
9of/AEKWrtUov+Q3df8AXtD/AOhS1doAKKKKACsjWP4v+2f/ALPWvWRrH8X/ AGz/APZ6T2Gj
Hqf4ef8AIk2f/XW4/wDR8lQVP8PP+RJs/wDrrcf+j5KUQZ1FFFFUIKKKKACi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigD
C1b/AFp/66H/ANBSsPU/+QVef9cH/wDQTW5q3+tP/XQ/+gpWHqf/ACCrz/rg /wD6Cah7lHQ+
E/8AkTdD/wCwfb/+i1rYrH8J/wDIm6H/ANg+3/8ARa1sVZJzXhD7l/8A9d2/ 9GPXS1zXhD7l
/wD9d2/9GPXS0AUov+Q3df8AXtD/AOhS1dqlF/yG7r/r2h/9Clq7QAUUUUAF ZGsfxf8AbP8A
9nrXrI1j+L/tn/7PSew0Y9T/AA8/5Emz/wCutx/6PkqCp/h5/wAiTZ/9dbj/ ANHyUogzqKKK
KoQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFAGFq3+tP/XQ/+gpWHqf/ACCrz/rg/wD6Ca3NW/1p /wCuh/8AQUrD
1P8A5BV5/wBcH/8AQTUPco6Hwn/yJuh/9g+3/wDRa1sVj+E/+RN0P/sH2/8A 6LWtirJOa8If
cv8A/ru3/ox66Wua8Ifcv/8Aru3/AKMeuloApRf8hu6/69of/Qpau1Si/wCQ 3df9e0P/AKFL
V2gAooooAKyNY/i/7Z/+z1r1kax/F/2z/wDZ6T2GjHqf4ef8iTZ/9dbj/wBH yVBU/wAPP+RJ
s/8Arrcf+j5KUQZ1FFFFUIKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDC1b/Wn/AK6H/wBBSsPU /wDkFXn/AFwf
/wBBNbmrf60/9dD/AOgpWHqf/IKvP+uD/wDoJqHuUdD4T/5E3Q/+wfb/APot a2Kx/Cf/ACJu
h/8AYPt//Ra1sVZJzXhD7l//ANd2/wDRj10tc14Q+5f/APXdv/Rj10tAFKL/ AJDd1/17Q/8A
oUtXapRf8hu6/wCvaH/0KWrtABRRRQAVkax/F/2z/wDZ616yNY/i/wC2f/s9 J7DRj1P8PP8A
kSbP/rrcf+j5Kgqf4ef8iTZ/9dbj/wBHyUogzqKKKKoQUUUUAFFFFABRRRQA UUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FAGFq3+tP/XQ
/wDoKVh6n/yCrz/rg/8A6Ca3NW/1p/66H/0FKw9T/wCQVef9cH/9BNQ9yjof Cf8AyJuh/wDY
Pt//AEWtbFY/hP8A5E3Q/wDsH2//AKLWtirJOa8Ifcv/APru3/ox66Wua8If cv8A/ru3/ox6
6WgClF/yG7r/AK9of/Qpau1Si/5Dd1/17Q/+hS1doAKKKKACsjWP4v8Atn/7 PWvWRrH8X/bP
/wBnpPYaMep/h5/yJNn/ANdbj/0fJUFT/Dz/AJEmz/663H/o+SlEGdRRRRVC CiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAwtW/1p/66H/0FKw9T/wCQVef9cH/9BNbmrf60/wDXQ/8AoKVh6n/y Crz/AK4P/wCg
moe5R0PhP/kTdD/7B9v/AOi1rYrH8J/8ibof/YPt/wD0WtbFWSc14Q+5f/8A Xdv/AEY9dLXN
eEPuX/8A13b/ANGPXS0AUov+Q3df9e0P/oUtXapRf8hu6/69of8A0KWrtABR RRQAVkax/F/2
z/8AZ616yNY/i/7Z/wDs9J7DRj1Ks7IgRI4VVRgAQoAB+VRUVBRN9pk/uxf9 +l/wo+0yf3Yv
+/S/4VDRQBN9pk/uxf8Afpf8KPtMn92L/v0v+FQ0UATfaZP7sX/fpf8ACj7T J/di/wC/S/4V
DRQBN9pk/uxf9+l/wo+0yf3Yv+/S/wCFQ0UATfaZP7sX/fpf8KPtMn92L/v0 v+FQ0UATfaZP
7sX/AH6X/Cj7TJ/di/79L/hUNFAE32mT+7F/36X/AAo+0yf3Yv8Av0v+FQ0U ATfaZP7sX/fp
f8KPtMn92L/v0v8AhUNFAE32mT+7F/36X/Cj7TJ/di/79L/hUNFAE32mT+7F /wB+l/wo+0yf
3Yv+/S/4VDRQBN9pk/uxf9+l/wAKPtMn92L/AL9L/hUNFAE32mT+7F/36X/C j7TJ/di/79L/
AIVDRQBN9pk/uxf9+l/wo+0yf3Yv+/S/4VDRQBN9pk/uxf8Afpf8KPtMn92L /v0v+FQ0UATf
aZP7sX/fpf8ACj7TJ/di/wC/S/4VDRQBN9pk/uxf9+l/wo+0yf3Yv+/S/wCF Q0UATfaZP7sX
/fpf8KPtMn92L/v0v+FQ0UATfaZP7sX/AH6X/Cj7TJ/di/79L/hUNFAEkkzy qqttwuSAqhev
0+lUdT/5BV5/1wf/ANBNWqq6n/yCrz/rg/8A6CaAOh8J/wDIm6H/ANg+3/8A Ra1sVj+E/wDk
TdD/AOwfb/8Aota2K0IOa8Ifcv8A/ru3/ox66Wua8Ifcv/8Aru3/AKMeuloA pRf8hu6/69of
/Qpau1Si/wCQ3df9e0P/AKFLV2gAooooAKyNY/i/7Z/+z1r1kax/F/2z/wDZ 6T2GjHoooqCg
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACisXxh/wAiTr//AGDr j/0W1Wrjwt4a
S5lRfDOhhVcgD+zIOmf9ygRoUVl/8Ix4c/6FrQ//AAWQf/EUf8Ix4c/6FrQ/ /BZB/wDEUaAa
lFZf/CMeHP8AoWtD/wDBZB/8RVK2sPBF7am6tNM8Lz24kEJlis7Zk3kgBchc biWUAdeR60Ad
DRWQnh7wvK8qR+H9Adom2SKunW5KNgNg/LwcMD9CPWn/APCMeHP+ha0P/wAF kH/xFGgGpRWX
/wAIx4c/6FrQ/wDwWQf/ABFH/CMeHP8AoWtD/wDBZB/8RRoBqUVxHwzVEsNe WOKOJP7XlISJ
Air+7i4CgAAewr0K6urhbuZVnlADsAA545osBUoqb7Xc/wDPxL/32aPtdz/z 8S/99mgZDRUG
n+I7TVvM/s3WYbzyseZ9muhJsznGdpOM4P5Vd+13P/PxL/32aBENFTfa7n/n 4l/77NQNqzJf
RWbXcouJY3lRNzcqhUMc9OC6/n9aAFoqb7Xc/wDPxL/32aPtdz/z8S/99mgZ DVXU/wDkFXn/
AFwf/wBBNULKaWbxfrXmyvJtgtVXexOB+8OB+JP51f1P/kFXn/XB/wD0E0CO h8J/8ibof/YP
t/8A0WtbFY/hP/kTdD/7B9v/AOi1rYrQk5rwh9y//wCu7f8Aox66Wua8Ifcv /wDru3/ox66W
gClF/wAhu6/69of/AEKWrtUov+Q3df8AXtD/AOhS1doAKKKKACsjWP4v+2f/ ALPWvWRrH8X/
AGz/APZ6T2GjHoooqCgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK AMXxh/yJOv8A
/YOuP/RbV0F3/wAfk/8A10b+dYXiqGW48H63BBG8s0lhOiRopZmYxsAAB1JN Ytz8Qp5LqZ4/
CXiAozsVLWMoOM8ZG04oEdjRXE/8J/df9Cjr3/gFL/8AEUf8J/df9Cjr3/gF L/8AEUWYXOj8
QWk99o0kECeafMieSHIHnRrIrSR88HegZcEgHdgkAmuY8SQ3viArdaMl5abf IgaeWydHMn2u
B0fynALrEFkYlgFG84Jy+JP+E/uv+hR17/wCl/8AiKP+E/uv+hR17/wCl/8A iKdmB02ihY9P
FuLN7R4GKSRMS4L/AHiwkP8ArAxO7eeSSd2G3AaFcT/wn91/0KOvf+AUv/xF H/Cf3X/Qo69/
4BS//EUrMLnbUVxP/Cf3X/Qo69/4BS//ABFH/Cf3X/Qo69/4BS//ABFFmFw+ Gv8Ax467/wBh
eT/0VFXeXf8Ax+T/APXRv51w3w3guYtM1aS5s7q18/U3ljS5haJipjjGcMAc ZBH4Gt268UQN
eTlNM1h0MjFWFhJhhnryM02BrVmeILSe+0aSCBPNPmRPJDkDzo1kVpI+eDvQ MuCQDuwSATVb
/hJ4v+gTrP8A4AP/AIUf8JPF/wBAnWf/AAAf/ClYCprGr/2lpEkdhDqMamRF nmexu4nhXkhl
RfLkk+ZVUhDxvyeAQeftIdcudK1O8mk1druy05m07H2iEPIs11sJiLfOxRYP lk3Egruznnq/
+Eni/wCgTrP/AIAP/hR/wk8X/QJ1n/wAf/CmBiXY1BrXVBG+qJrJnYO2y4aB bT7QOYwpEZby
McRkSdcEPmn+HLW/XW7KW4kvLm3W2vFimntpYtoZrUhf3rvJyyyEeYcnBwNo Wtj/AISeL/oE
6z/4AP8A4Uf8JPF/0CdZ/wDAB/8ACgDcorD/AOEni/6BOs/+AD/4Uf8ACTxf 9AnWf/AB/wDC
lYA07/kbtc/65Wv8nrS1P/kFXn/XB/8A0E1k6HK93r+r3v2W6giljt1T7RC0 ZJXfnqOeo/Ot
bU/+QVef9cH/APQTR1A6Hwn/AMibof8A2D7f/wBFrWxWP4T/AORN0P8A7B9v /wCi1rYrQk5r
wh9y/wD+u7f+jHrpa5rwh9y//wCu7f8Aox66WgClF/yG7r/r2h/9Clq7VKL/ AJDd1/17Q/8A
oUtXaACiiigArI1j+L/tn/7PWvXOeI5dWW4SPTtEmv0ZVZpFuIowpBbjDMCT znpj+iY0U6Kz
93ib/oU5/wDwOg/+Ko3eJv8AoU5//A6D/wCKqbMdzQorP3eJv+hTn/8AA6D/ AOKo3eJv+hTn
/wDA6D/4qizC5oUVn7vE3/Qpz/8AgdB/8VRu8Tf9CnP/AOB0H/xVFmFzQorP 3eJv+hTn/wDA
6D/4qjd4m/6FOf8A8DoP/iqLMLmhRWfu8Tf9CnP/AOB0H/xVG7xN/wBCnP8A +B0H/wAVRZhc
0KKz93ib/oU5/wDwOg/+Ko3eJv8AoU5//A6D/wCKoswuaFFZ+7xN/wBCnP8A +B0H/wAVRu8T
f9CnP/4HQf8AxVFmFzQorP3eJv8AoU5//A6D/wCKo3eJv+hTn/8AA6D/AOKo swuaFFZ+7xN/
0Kc//gdB/wDFUbvE3/Qpz/8AgdB/8VRZhc0KKz93ib/oU5//AAOg/wDiqN3i b/oU5/8AwOg/
+KoswuaFFZ+7xN/0Kc//AIHQf/FUbvE3/Qpz/wDgdB/8VRZhc0KKz93ib/oU 5/8AwOg/+Ko3
eJv+hTn/APA6D/4qizC5oUVn7vE3/Qpz/wDgdB/8VRu8Tf8AQpz/APgdB/8A FUWYXNCis/d4
m/6FOf8A8DoP/iqN3ib/AKFOf/wOg/8AiqLMLmhRWfu8Tf8AQpz/APgdB/8A FUxLjxHI8iJ4
VnLRNscfbYODgH+96EUWYXNOis/d4m/6FOf/AMDoP/iqN3ib/oU5/wDwOg/+ KoswuaFFZ+7x
N/0Kc/8A4HQf/FUbvE3/AEKc/wD4HQf/ABVFmFzQorP3eJv+hTn/APA6D/4q jd4m/wChTn/8
DoP/AIqizC5oUVn7vE3/AEKc/wD4HQf/ABVG7xN/0Kc//gdB/wDFUWYXNCqu p/8AIKvP+uD/
APoJqHd4m/6FOf8A8DoP/iqiuY/E1xazQf8ACKzr5iMm77bAcZGP71FmFzrP Cf8AyJuh/wDY
Pt//AEWtbFZvh61msfDWlWlymyeCzhikTIO1lQAjI4PIrSqyTmvCH3L/AP67 t/6Meulrj/Du
pW2npd/aDIN877dkLydJH/ug46962v8AhJNM/v3P/gHN/wDE0gHveWtprdx9 puYYd1tFt8xw
ucNJ0zU39saZ/wBBG0/7/r/jVb/hJNM/v3P/AIBzf/E0f8JJpn9+5/8AAOb/ AOJpgWf7Y0z/
AKCNp/3/AF/xo/tjTP8AoI2n/f8AX/Gq3/CSaZ/fuf8AwDm/+Jo/4STTP79z /wCAc3/xNAFn
+2NM/wCgjaf9/wBf8aP7Y0z/AKCNp/3/AF/xqt/wkmmf37n/AMA5v/iaRfE2 luMrLcMMkZFp
KeQcH+GgC1/bGmf9BG0/7/r/AI0f2xpn/QRtP+/6/wCNVv8AhJNM/v3P/gHN /wDE0f8ACSaZ
/fuf/AOb/wCJoAs/2xpn/QRtP+/6/wCNH9saZ/0EbT/v+v8AjVb/AISTTP79 z/4Bzf8AxNH/
AAkmmf37n/wDm/8AiaALP9saZ/0EbT/v+v8AjR/bGmf9BG0/7/r/AI1W/wCE k0z+/c/+Ac3/
AMTR/wAJJpn9+5/8A5v/AImgCz/bGmf9BG0/7/r/AI0f2xpn/QRtP+/6/wCN Vv8AhJNM/v3P
/gHN/wDE1DceKtPiTbELiWdhlI/s0q55AJJ2cAZGTyfQE4BTaSuyowcnaJf/ ALY0z/oI2n/f
9f8AGqt14o0W0YLJqETse0IMuPrsBx+PWqdvJpOpXMcN9LNf3EpIRLm1dYQQ C2FRl2jADYJy
2Mjca37e3gtIFgtoY4YlztjjUKoyc8Ae9TeT8jS1KO7b/D8dfyRhSeNNEETm K6ZpADtVreZQ
T2BOw4Hvg1Q/4S2C4/1urpaI3VLexmkdfpI67Tn3j6HHvXYUUnGT6/195cat KO0fxT/NWObi
vrGYKU8YyZYZCs9srfipjyD7Gpvtv2f5oPEdpc9yl40fOOytHt257khu3HGD tXFvBdwNBcwx
zRNjdHIoZTg55B96dHGkMSRRIqRoAqqowFA6ADsKFB9X+LCVdP4V+C/Oy/rq Yf8AwlFvb/8A
H8IFXqZbS5WdVHbI4cnPohHIOeuNEazpbAEalZkHkETr/jTbzWbKxuPs87yC XYH2pA74BJAP
yg+h/Kse41bT7V2utNNzHIXDzW6WcgS45+YkFPv4zg5GTt3EgcPWPmQuSppb lf4fjt/W25tf
2xpn/QRtP+/6/wCNH9saZ/0EbT/v+v8AjVVPE+lSRq6S3DIwBVhaSkEHv92l /wCEk0z+/c/+
Ac3/AMTVXTMmmnZln+2NM/6CNp/3/X/Gj+2NM/6CNp/3/X/Gq3/CSaZ/fuf/ AADm/wDiaP8A
hJNM/v3P/gHN/wDE0xFn+2NM/wCgjaf9/wBf8aP7Y0z/AKCNp/3/AF/xqt/w kmmf37n/AMA5
v/iaRvE2lohd5bhVUZJNpKAB/wB80AWv7Y0z/oI2n/f9f8aP7Y0z/oI2n/f9 f8arf8JJpn9+
5/8AAOb/AOJo/wCEk0z+/c/+Ac3/AMTQBZ/tjTP+gjaf9/1/xo/tjTP+gjaf 9/1/xqt/wkmm
f37n/wAA5v8A4mj/AISTTP79z/4Bzf8AxNAFn+2NM/6CNp/3/X/Gj+2NM/6C Np/3/X/Gq3/C
SaZ/fuf/AADm/wDiaP8AhJNM/v3P/gHN/wDE0AWf7Y0z/oI2n/f9f8aZpk0V xNqEsMiSRtcj
DowIP7qPuKh/4STTP79z/wCAc3/xNH/CSaZ/fuf/AADm/wDiaANaisn/AIST TP79z/4Bzf8A
xNH/AAkmmf37n/wDm/8AiaANaishvE2loMtLcKMgZNpKOScD+Gl/4STTP79z /wCAc3/xNAGt
RWT/AMJJpn9+5/8AAOb/AOJo/wCEk0z+/c/+Ac3/AMTQBrUVkf8ACTaWHCGW 43EEgfZJckDr
/D7j86X/AISTTP79z/4Bzf8AxNAGtRWT/wAJJpn9+5/8A5v/AImj/hJNM/v3 P/gHN/8AE0Aa
1FZP/CSaZ/fuf/AOb/4mj/hJNM/v3P8A4Bzf/E0Acxpn3J/+u8n/AKMasm31 y/ezstalFsdK
vmgWK3WNhPEszKsbM+7axyy7lCjG44Zto362mfcn/wCu8n/oxqrQ+H7eGeP/ AEm5eyhYPBYM
V8iFgcqVAXcQp5VSxVeNoG1dsMpFabxlplvYJeSiZENt58ittBgJdY1jly2I 3LsV+YgAxyZI
2mo9O8a6dqs9rBZw3M007SKVi8uRYyhj3bnRimAsqtkMR1X7+FN1/DlgyX4U PG13Ok5dNoMT
oQ6lOMYEgMmDkF3ckHcRUlpoqW19Dey3t5d3UccsfmTuvzCQxk/KqhVx5SAB QB1JBJJpAUpP
FVq8Fk0CTB7jyWdWiDG33zxw+XKAw2PuZ174McnB2FTVsfiDomoS+Xbu7lmi EWySJzIrypEH
wrkoA0iZDhWwTwSCBpt4csGN0QHQ3N3DdsU2ja0brIFHHCl1ZiP70kh4LVCn ha3TT5bA3981
r5HkW0ZdQLRRjaY8KMspVCrvuZSoIPJyaATaf4jsNTu4re2Ls0qzurfKRtiZ FzwejCVHX1Rg
eMjMOoXt1YaC0tmYVuHv1gRpkLovmXQjJKgqTgOTjI6VdtNEsLHUHvLaBIma BIFjRFVEVePl
AHBICKfURRj+EVBNpqato8lo880H+lmVZYdu9Gjn3qRuBHVR1BoAz7vxWmge dba48L3UflFJ
INsMcwk8zaP3r7UYeTJkM+CFGDltgI/HFhPC1xb2l5PaRWwubm5iMRjt03yI xb58ttMMmfLD
ggfLuyM3W8NwvGrtfXjagsglXUT5ZmBCsgAGzZtCu427MfOzY3EtVKXwnJca ldGfVLxrG4so
raePejPdYeZpBIShKqRLgeWVxkgbQFwaAMuPiDolveXtszuzWizk7JImZ2hV mdBHv3ggI/LK
qnbweVzdPieNHNvLpl9HqJZFjsW8oySBg7AhhIYwMRSnlwfkPHK5Ljwtb3EF 7atf3y2V2s4N
qjqqI0wbe4O3cSS7nDFlBbIHC4mvvD9ve6g2oC5ube8CxLHNEVzEU80AqGUg krPIp3AjBGAC
M0Ac/b/EGy0+1VdZd47kz3LSK8kKNBCtxLGmRvG8gRkYj3n5e5I3a/8Awl9l H50t3aXlrZxy
XES3cqo0cjQ7/MChGZ+kUhGVGQvqQCW/hOG1X9xqmoxvJuF1Ijxq9yGkeTDE J8mGlkwY9hG7
rwCJp/C+nXVilncedJbrc3NwyF8bzOJQ6kgA7cTvjGCMDn1NAKt54sj00pLq dnc6fH5EsnlX
HlFmKvCinespVQWmA+bjuSoXmC08X6bql/p72WZbiUz2/wBmWWIkbVR2IcOU fAMfCsT85/uM
Bel8MR3Rje91O+u54lZYppPKVoyXikBASNVJV4UYZBHUEEcAvPDEeo6f9hvt Tvrq3kYtcpL5
TC5Hy4DDy/kACjHl7DnLZ3fNSaTVi4TcHdG5YSpNq2lyRtlTO/bGP3UmQR2P bFV9E8X3moeI
fsTXulXW7ULu0ksLWMi5so4nlCzSnzGyp8pF+4gzMvPQMfZIDq1lcFngYzhX mhO1slWVCcfe
+YqOQRgnPBNXoNAn0lYQiT3rQXc9zFdW7xx3A86UyyRurYRo2yQeR/CQoZVc OMmlqhunGXwP
5PT8dvy9B1x46sINM0m9Syvp/wC1bSO6toY1jDkPJBGqnc4UNuuY++OG54GY 4/GE9x4lsNLg
0i7y6XC3sD+V5to6G2Ksx8zYU2XAY7C5+ZcDIYVm6NoHh/WZoDYa5qV3b6Uk UdrasqIlrGs0
UyIp8oOwzbRrlmY4B5yc10R8L2y63JrEF3dwXklwZndChDIUhR4sMpGxhbxE kfMCDhgCRVxk
pK8XdEVKc6cuSaafZ6GPpfxAiv7S1Mek6ldSzJCiSRRwxLPO9ulwY0VpiVIi Yudx2jaQGY4D
SL8S/DcusWenw3PmfavICS+ZGmGmVWiHlM4mO4SR8qhUbuSNrbbmk+CtN0aO xS3nu2FlcR3E
fmOpyyWYtADhRx5Yz2+bnpxRpfg220YWsVjqWpRWkKQiS2WRAtw8UaRo7sE3 52xxgqrKp24K
kMwZkDNX/wCRhl/69Iv/AEOWuK8NeItS1LSE1W8PnxG2ile3ttJnhdS+CSjy ORKqjd9wEnjG
SQD1Ov6na23iN1dyZHijgRFU5aQFm2jt0kTk8c9eDjndK8OX9nYrYtrd+NPW 2FtHbt5XmRoA
ApEiIpVgBjq3cg5wRlKau0tWbxoy5VKWifV9fTuMs/EDf2zZ2Gn2z3mnzicr JGACiqYMOCzK
DEPObG0HKhCuRyY7f4iaNeLJ9kSa5ceWYY4ZIWecPIkYIAk+T5pE4k2Hnpww Gla+F7LT5Ldr
CWe1Fu7GNYypAjbYXi+ZT8hMan+8MYVlXApsXha3it4rU3989rbtCbaBnUJA sUiSKgwo3DMa
DL7mwDgjJJIqysxVZKU21/X/AA4xvFtss0VoLC8bU5JHj/s/dCsoKIrtyZAh +WSNsKxOG6fK
22MeLreOO4Z7e5nW1aZ7uWKNVW2hSaWMOwZ8sP3T/c3E7Cdq5C1PqPhW01MX kU91c/Zb6cTX
dsBGUmwkaBSWQsoAiBBUhgSSD0wyTwhZOs6Jd3kcV15i3kaMmLmN5JJDGxKk qoM0gBQq2G6k
gEPQzD/hL7KPzpbu0vLWzjkuIlu5VRo5Gh3+YFCMz9IpCMqMhfUgGyuoHVPD t1d/ZJrZHgcx
iWSJ/MUpkOpjdlKnPHPb6UHw/biCCOK5uYmgu7i8ikUqWWSYS7uqkEDzmwCO wznnLItHt9G0
PU0hd5JLjzbieZ1VWlkZcFiEVVBwB0AzjJySSQCr4j1q907VNPs7SRIluIJ5 Xc6dNetlGiAA
SJgQP3hyTxwB3rRGreRdRafcRTSXzbAPKh2pMMDfKuWIVFOcgtkfKOS6bzUt GN/fW15FqN5Y
3FvHJEr2wiO5XKFgRIjDrGvTFA0VDdRXcl7eS3cWwJOzqCFAAZNoULtfBLcc kgjGyPYAYMHj
2C38O6TfataPb3V/AJEiM0ESyDYhZ0Z5QoXLgBS2/n7vBI0bbxfZXc26C0vH sfMhi+37UEW6
ZI2jG0t5nPmxj7nBbnABIfH4Yjt4LaO11O+t2tFaG2kTymaGAhP3I3RkFf3a csC/y/e5OZh4
dsxBPCJbkrNd292xaTe2+ERBRubJIPkpnJJOTzzwaAZ48aWUlnbakEmh0uWR 9t26pIk0awyy
MyhHLLjyudy7v4duclZ5PFawzR2smj6iNQkkVFssweYQySMH3eZs24hkH3s5 XpyMxt4K064k
lmvprm9nnbM8snlxtMvkyQhG8tVGAsz8gBunOAALUHhuFL+C/ub68vLyGRXE 03lgkKkqKhCI
q7R50h6ZyeSQAKAIdV8ReT4XOq2kkNsftMdu7Xq5SAm4WGTeAwB2HdyGx8uQ SOag0/xTJNGY
RB/a1wZHEEumhFjuYkWMtKnmSbQqtKIyN7EsDjuF1P7Ctf7O+xeZN5X237bn Izv+0faMdPu7
+PXHfPNP1HShfTwXMV5c2V1CrxpPb7C2xipZcOrLglEOcZ+XgjJyAZFv4xhu rsw2Fleal5uZ
IfsyRx4iEUD7iZZFzn7QvYHnGOMlkHjW3MWq300L/wBlWzRG3vF2okgkihZE O9gQxabqQqAY
yRg1oaZ4X07SL9buz85NkZiSIvlFUpAmBkZ4FtH1J6t1yMMsfDEel2n2bTtT vrWMwRRHZ5TE
siogk+eM/MUjVSPu4ydoPNAF2WeS502GWW1mtXaeLMMxQuv71RzsZl9+CetY Wv8AiW/0zW7i
2t/J8i2so7rY9lLJ5pZpQVaZWCQLiMfO4wMknhTWtBpVrouh22n2abYIp4yB gDJaYMxwAAMk
k4AAGcAAYFM1Lw3Dqd9PcSX15FFdWy2t1bReX5c8SlztYlCwz5jglWU4PYjN AEOp+KrWy0SS
/VJl/eXcCExB9rwLMWJXcMr+4bAyCcjpkkZF74svYPDWsm3iubnUbVb6TzYl iC2yLNOkLMHK
7hiI8KGPyHI5GdO/8G2moCSKTUL5LN2nkFohj2I8ySJIwJQvk+dI2CxAJ6YA FF14NtLi3u4I
tQvrVb1Zo7owmMmZJJJJCp3o2ADNJgrg4bknAwaAbUn/ACFbf/rhL/6FHXF3 3jTWLbSdYdLO
2a9gnuXsmMTmE28LyK5k+bO4eSwOOAZYc43cdpJ/yFbf/rhL/wChR1Sk8OWE uk3mnsHK3S3S
NN8vmItw7PIFbHAy3/jq5zigCt/bt1/wln2Ly4f7N8z7FnB877V5P2jPXHle Vx/e3dsc1l6N
4q1PU9L0dZks4NTvZAsuImMYSS2lnikRSwYr8qqcnBZJADxmtT/hCtC3ed9h h+1/bftv2zyk
8/f53nY37c7c/L67eM96B4QskbR3gu7yCXSrY28MkbJlx5ZjVnBUhmUM5XjA LtxgkUAYNr4r
1q5SxDz20TT6XbXzGDRbm7G6YyfLiOT5QAijn7xyRjoJ08TatPLdFbpIliu5 4FRPDt5cgLHK
yD94j7WJCgnHQkjtXQaJ4ft9DRFhubmcpaQ2Yacrny4i5T7qjkCQjPcAd8kw x+HJ7czC08Q6
pbQyTyz+UiWzKrSOztgtCTjcx6k0Af/Z
--------------010409010005090006040209--

--------------050001090207020102050709--
Re: Re: Dependencies on Jar in another Plugin [message #293715 is a reply to message #293701] Fri, 28 October 2005 07:46 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: morincer.gmail.com

In order to export some jar you should do the following:
1) Add packages you're exporting to the "Exported packages" (yes, you
export specific packages, not jars)
2) In the project properties, in the "Java Build Path" -> Order and
Export check jars you are exporting

Best Regards,
Andrei Makarov
28.10.2005 14:31:11
Keith Smillie <do.not@email.me> wrote in message
<Xns96FD74C88DC8frunobulax@206.191.52.34>

> Thanks for your help.
>
> I've looked at the Exported Packages section of the Runtime tab and
it
> allows me to select packages which I have written.
>
> However, the Jar 3rd party Jar and the packages in it don't show up
in the
> runtime tab?
>
> How do I specify that I'd like to export the Jar too?
>
> Keith
>
> > Keith,
> > If you use new PDE (MANIFEST.MF0 you have to export packages in
> > runtime
> > tab (in plugin with jar)
> >
> > Keith Smillie wrote:
> >
Re: Dependencies on Jar in another Plugin [message #293717 is a reply to message #293701] Fri, 28 October 2005 09:50 Go to previous messageGo to next message
Eclipse UserFriend
if you use MANIFEST.MF you have Runtime tab with Exported Packages

if no you have to set export="*" or like in import section of plugin.xml

Peco
Keith Smillie wrote:

>
> Thanks for your help.
>
> I've looked at the Exported Packages section of the Runtime tab and it
> allows me to select packages which I have written.
>
> However, the Jar 3rd party Jar and the packages in it don't show up in the
> runtime tab?
>
> How do I specify that I'd like to export the Jar too?
>
> Keith
>
>> Keith,
>> If you use new PDE (MANIFEST.MF0 you have to export packages in
>> runtime
>> tab (in plugin with jar)
>>
>> Keith Smillie wrote:
>>
Re: Dependencies on Jar in another Plugin [message #293723 is a reply to message #293717] Fri, 28 October 2005 08:23 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: automatic.javalobby.org

Keith, sorry indeed for the bad advice from my side.
I have just tested it with a scenario like this in Eclipse 3.0

Have a supplier1.jar which is used by two plugins consumer1 and consumer2.

consumer1 declares supplier.jar as its supplier and exports all the packages in supplier.jar like this ..
<runtime>
	<library name="extjar/supplier1.jar">
		<export name="*"/>
	</library>
</runtime>


consumer2 uses classes in supplier1.jar by setting plugin dependency on consumer1 like this ...
<requires>
	<import plugin="consumer1"/>
</requires>


But Eclipse 3.0 needs a little more setup to be able to resolve the classes in supplier1.jar at compile-time ..i.e, build-path needs to include a reference to supplier1.jar; It is not just sufficient to set dependency on consumer1 plugin to fulfil resolution. "Project > Properties > Java BuildPath > Add External Jars" should help with this.

Thats it. Sorry again Keith.

Thanks
Venkat
Re: Dependencies on Jar in another Plugin [message #293733 is a reply to message #293669] Fri, 28 October 2005 08:51 Go to previous messageGo to next message
Eclipse UserFriend
Create a plugin that contains your external jars on it's build path and
in it's manifest classpath and exports the packages ... here are some steps:

http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/m sg06980.html

Or you can create a new plugin from existing JAR archives (it's an
option under New.

Later,
PW
Re: Dependencies on Jar in another Plugin [message #293790 is a reply to message #293669] Sat, 29 October 2005 09:52 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: do.not.email.me

Thanks for all the help!

I've now got a Core Plugin which works fine except for one new problem...

I've written PluginA which depends on the CorePlugin. If PluginA uses,
for example, a custom dialog provided by the CorePlugin everything works
just fine.

However, the third party Jar provides access to a system external to
Eclipse. To access the external system the 'Session' class is used. The
Session class loads various dll's to do its work.

There can be only one Session active on the system at any one time so my
idea is that the CorePlugin will create and share a single Session object
by using the Singleton pattern.

Other plugins, such as PluginA will use something like
CorePlugin.getDefault().getSession() to get a handle on the single,
shared instance.

This technique works fine for Dialogs etc *in* the CorePlugin. The
problem arises when PluginA tries to get the shared Session and use it.

A Session object seems to be returned by the getSession() method but when
PluginA tries to do anything with the Session I get an exception with the
following message:

java.lang.LinkageError: Class xxx/Session violates loader constraints

Can anyone explain what this means and how to get round the problem?

If there is a choice my preference would be to put any 'complexities' in
the CorePlugin and make things as simple as possible for PluginA, PluginB
etc.

TIA, Keith
Re: Dependencies on Jar in another Plugin [message #293831 is a reply to message #293790] Mon, 31 October 2005 07:34 Go to previous messageGo to next message
Eclipse UserFriend
> Other plugins, such as PluginA will use something like
> CorePlugin.getDefault().getSession() to get a handle on the single,
> shared instance.

> This technique works fine for Dialogs etc *in* the CorePlugin. The
> problem arises when PluginA tries to get the shared Session and use it.

> java.lang.LinkageError: Class xxx/Session violates loader constraints

I will guess as I have never seen such an error before. But google
suggests it has something to do with a class loaded from different
implementations simultaneously. How do you include the Session class in
plugin A? Is it possible that there is a stale reference to a second
instance of the Session class which is provided by a another library? To
say it another way, are you sure that the import statement of class
Session within plugin A refers to the exported package from the core
plugin? And not to some class declared locally to plugin A?

hth,

Ricky
Re: Dependencies on Jar in another Plugin [message #293844 is a reply to message #293831] Mon, 31 October 2005 09:37 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: do.not.email.me

Hi Ricky, thanks for the suggestions.

> I will guess as I have never seen such an error before. But google
> suggests it has something to do with a class loaded from different
> implementations simultaneously. How do you include the Session class
> in plugin A?

The Session is import'ed in PluginA so it can compile but the Jar file
isn't included in PluginA.

> Is it possible that there is a stale reference to a
> second instance of the Session class which is provided by a another
> library? To say it another way, are you sure that the import
> statement of class Session within plugin A refers to the exported
> package from the core plugin? And not to some class declared locally
> to plugin A?

The *only* place in the code where a Session is instantiated is in the
CorePlugin - 100% sure.

My gut feeling is that this is some sort of limitation due to the bulk of
the 3rd party code actually being implemented via dll's.

For example, if I deliberately try to create a Session in PluginA
*before* the CorePlugin has created one - no problems in PluginA but when
CorePlugin tries to create a Session it throws the exception:

Caused by: java.lang.UnsatisfiedLinkError: Native Library C:\xxx.dll
already loaded in another classloader

If I ensure that CorePlugin creates the Session before PluginA, then
PluginA fails with the same exception above.

It would seem to me that it is a issue with the different class loaders
that Eclipse uses for each Plugin.

What I think I need is a way of getting the Session created by a class
loader which other Plugins can access... or something like that! :)

Regards, Keith
Re: Dependencies on Jar in another Plugin [message #293846 is a reply to message #293844] Mon, 31 October 2005 10:24 Go to previous messageGo to next message
Eclipse UserFriend
> Caused by: java.lang.UnsatisfiedLinkError: Native Library C:\xxx.dll
> already loaded in another classloader

> What I think I need is a way of getting the Session created by a class
> loader which other Plugins can access... or something like that! :)

I am pretty sure that someone will shout "Buddy Loader" so I try to be
first :) I havent worked with JNI jet (I like Java for its platform
independence and thus dislike swt and jni. But anything is legal to
accomplish a task) but I do know that the OSGi spec explicity handles
native libraries so it should work without the proprietary eclipse Buddy
Loader.

And now I try to drive myself against a wall as I propagate things I do
not have any knowlege of. I assume that the current OSGi core of eclipse
is compatible to OSGi R3. The spec describes (chapter 4.6) a manifest.mf
header to declare native libraries. This may come in handy if a plugin
(plugin A)tries to load native code from another plugin (core plugin). I
dont know why plugin A tries to reload the libary as the core plugin
should have done this but it seems to do it anyway. The following is the
example from the spec:

Bundle-NativeCode: /lib/http.DLL ;
/lib/zlib.dll ;
osname = Windows95 ;
osname = Windows98 ;
osname = WindowsNT ;
processor = x86 ;
language = en ;
language = se ,
/lib/solaris/libhttp.so ;
osname = Solaris ;
osname = SunOS ;
processor = sparc,
/lib/linux/libhttp.so ;
osname = Linux ;
processor = mips

So I ask myself, why does plugin A tries to reload the libs; does eclipse
support this hopefully problem solving manifest header; and is there a law
against talking rubbish like this?

I hope I didnt left you more confused like you were before.

Ricky
Re: Dependencies on Jar in another Plugin [message #293849 is a reply to message #293846] Mon, 31 October 2005 11:06 Go to previous message
Eclipse UserFriend
Originally posted by: do.not.email.me

> So I ask myself, why does plugin A tries to reload the libs; does
> eclipse support this hopefully problem solving manifest header; and
> is there a law against talking rubbish like this?

Does it make any difference that instantiating a Session is done via a
Factory method?

>
> I hope I didnt left you more confused like you were before.

Only a little bit more confused. :-)


>
> Ricky
Previous Topic:swt/gtk-filechooser -- is there a replacement?
Next Topic:how to find all classes loaded for an extension point
Goto Forum:
  


Current Time: Wed Jul 23 12:02:26 EDT 2025

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

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

Back to the top