Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » JFace » [Databinding] TreeViewer with items that contain lists (that should appear as subtrees)
[Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514553] Mon, 15 February 2010 13:36 Go to next message
Philipp Kursawe is currently offline Philipp KursaweFriend
Messages: 135
Registered: July 2009
Senior Member
Hello,

I have this kind of item that I want to put into a TreeViewer:
public interface Results {
Collection<Result> getSuccesses();
Collection<Result> getFailures();
Target getTarget();
}

The Result looks like this:
public interface Result {
Target getTarget();
Copyable getCopyable();
URL getLocation();
long getTimeStamp();
IStatus getStatus();
}

I would like to construct this tree:
|Name|Time|Location|Status

where:
Name = "results.target.name"
Time = "result.timeStamp"
Location = "result.location"

So the tree should contain a list of Results and when you click the "+"
sign on each of those Results items, it should display 2 subtrees for
"failures" and "successes". And each of those subtrees should contain
the Result objects.

How would the ViewerSupport.bind() call look like for such a construct?

Thanks in advance,
Phil
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514556 is a reply to message #514553] Mon, 15 February 2010 18:44 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

Just to understand the request. You want a Tree that looks like from a
structural point of view:

---------8<---------
+ Result 1
+ Successes
+ Success 1
+ Success 2
+ Success 3
+ Failures
+ Failure 1
+ Failure 2
+ Failure 3
+ Result 2
+ Successes
+ Success 1
+ Success 2
+ Success 3
+ Failures
+ Failure 1
+ Failure 2
+ Failure 3
---------8<---------

So you want to add a "Virtual" Level? I'm not sure if your problem is
the setup of the Structure or the creation of the ObservableMaps for
your LabelProvider.

Tom

Am 15.02.10 19:31, schrieb Philipp Kursawe:
> Hello,
>
> I have this kind of item that I want to put into a TreeViewer:
> public interface Results {
> Collection<Result> getSuccesses();
> Collection<Result> getFailures();
> Target getTarget();
> }
>
> The Result looks like this:
> public interface Result {
> Target getTarget();
> Copyable getCopyable();
> URL getLocation();
> long getTimeStamp();
> IStatus getStatus();
> }
>
> I would like to construct this tree:
> |Name|Time|Location|Status
>
> where:
> Name = "results.target.name"
> Time = "result.timeStamp"
> Location = "result.location"
>
> So the tree should contain a list of Results and when you click the "+"
> sign on each of those Results items, it should display 2 subtrees for
> "failures" and "successes". And each of those subtrees should contain
> the Result objects.
>
> How would the ViewerSupport.bind() call look like for such a construct?
>
> Thanks in advance,
> Phil
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514569 is a reply to message #514556] Mon, 15 February 2010 19:17 Go to previous messageGo to next message
Philipp Kursawe is currently offline Philipp KursaweFriend
Messages: 135
Registered: July 2009
Senior Member
Hello Tom!

> Just to understand the request. You want a Tree that looks like from a
> structural point of view:
>
> ---------8<---------
> + Result 1
> + Successes
> + Success 1
> + Success 2
> + Success 3
> + Failures
> + Failure 1
> + Failure 2
> + Failure 3
> + Result 2
> + Successes
> + Success 1
> + Success 2
> + Success 3
> + Failures
> + Failure 1
> + Failure 2
> + Failure 3
> ---------8<---------
>
> So you want to add a "Virtual" Level? I'm not sure if your problem is
> the setup of the Structure or the creation of the ObservableMaps for
> your LabelProvider.

That's correct. The problem is the setup of the Structure (using
ViewerSupport.bind). The Label provider would be setup via
BeanProperties.values("results.target.name", "result.name", ...)?

Currently I am doing:
items = new WritableList();
IListProperty childrenProp = new DelegatingListProperty() {
IListProperty inputChildren = BeanProperties.list(Results.class,
"successes");
IListProperty elementChildren = BeanProperties.list(Result.class,
"status");
protected IListProperty doGetDelegate(Object source) {
if (source instanceof Results)
return inputChildren;
if (source instanceof Result)
return elementChildren;
return null;
}
};
ViewerSupport.bind(viewer, items, childrenProp,
BeanProperties.values(columnNames));

Which does not work, obviously.

Thanks!


>
> Tom
>
> Am 15.02.10 19:31, schrieb Philipp Kursawe:
>> Hello,
>>
>> I have this kind of item that I want to put into a TreeViewer:
>> public interface Results {
>> Collection<Result> getSuccesses();
>> Collection<Result> getFailures();
>> Target getTarget();
>> }
>>
>> The Result looks like this:
>> public interface Result {
>> Target getTarget();
>> Copyable getCopyable();
>> URL getLocation();
>> long getTimeStamp();
>> IStatus getStatus();
>> }
>>
>> I would like to construct this tree:
>> |Name|Time|Location|Status
>>
>> where:
>> Name = "results.target.name"
>> Time = "result.timeStamp"
>> Location = "result.location"
>>
>> So the tree should contain a list of Results and when you click the "+"
>> sign on each of those Results items, it should display 2 subtrees for
>> "failures" and "successes". And each of those subtrees should contain
>> the Result objects.
>>
>> How would the ViewerSupport.bind() call look like for such a construct?
>>
>> Thanks in advance,
>> Phil
>
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514651 is a reply to message #514556] Tue, 16 February 2010 08:39 Go to previous messageGo to next message
Philipp Kursawe is currently offline Philipp KursaweFriend
Messages: 135
Registered: July 2009
Senior Member
Hello,

> ---------8<---------
> + Result 1
> + Successes
> + Success 1
> + Success 2
> + Success 3
> + Failures
> + Failure 1
> + Failure 2
> + Failure 3
> + Result 2
> + Successes
> + Success 1
> + Success 2
> + Success 3
> + Failures
> + Failure 1
> + Failure 2
> + Failure 3
> ---------8<---------
>
> So you want to add a "Virtual" Level? I'm not sure if your problem is
> the setup of the Structure or the creation of the ObservableMaps for
> your LabelProvider.

I tried the following:
items = new WritableList();
MultiListProperty childrenProp = new MultiListProperty(
new IListProperty[] {
PojoProperties.list("successes"),
PojoProperties.list("failures") });
ViewerSupport.bind(viewer, items, childrenProp,
BeanProperties.values(columnNames));

But no items show up.

>
> Tom
>
> Am 15.02.10 19:31, schrieb Philipp Kursawe:
>> Hello,
>>
>> I have this kind of item that I want to put into a TreeViewer:
>> public interface Results {
>> Collection<Result> getSuccesses();
>> Collection<Result> getFailures();
>> Target getTarget();
>> }
>>
>> The Result looks like this:
>> public interface Result {
>> Target getTarget();
>> Copyable getCopyable();
>> URL getLocation();
>> long getTimeStamp();
>> IStatus getStatus();
>> }
>>
>> I would like to construct this tree:
>> |Name|Time|Location|Status
>>
>> where:
>> Name = "results.target.name"
>> Time = "result.timeStamp"
>> Location = "result.location"
>>
>> So the tree should contain a list of Results and when you click the "+"
>> sign on each of those Results items, it should display 2 subtrees for
>> "failures" and "successes". And each of those subtrees should contain
>> the Result objects.
>>
>> How would the ViewerSupport.bind() call look like for such a construct?
>>
>> Thanks in advance,
>> Phil
>
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514970 is a reply to message #514651] Wed, 17 February 2010 06:38 Go to previous messageGo to next message
Philipp Kursawe is currently offline Philipp KursaweFriend
Messages: 135
Registered: July 2009
Senior Member
Hello Tom,

I would need that for my "CopyTo" Eclipse plugin release, so maybe you
could take another look at the problem and give me a hint how to
contruct the bindings?

> Hello,
>
>> ---------8<---------
>> + Result 1
>> + Successes
>> + Success 1
>> + Success 2
>> + Success 3
>> + Failures
>> + Failure 1
>> + Failure 2
>> + Failure 3
>> + Result 2
>> + Successes
>> + Success 1
>> + Success 2
>> + Success 3
>> + Failures
>> + Failure 1
>> + Failure 2
>> + Failure 3
>> ---------8<---------
>>
>> So you want to add a "Virtual" Level? I'm not sure if your problem is
>> the setup of the Structure or the creation of the ObservableMaps for
>> your LabelProvider.
>
> I tried the following:
> items = new WritableList();
> MultiListProperty childrenProp = new MultiListProperty(
> new IListProperty[] {
> PojoProperties.list("successes"),
> PojoProperties.list("failures") });
> ViewerSupport.bind(viewer, items, childrenProp,
> BeanProperties.values(columnNames));
>
> But no items show up.

Tried some more things, but no items show up. No errors occur when
adding items, though. I have looked at the problems view, but it does
not use JFace Databinding (yet).

Thanks for any help,
Phil

>
>>
>> Tom
>>
>> Am 15.02.10 19:31, schrieb Philipp Kursawe:
>>> Hello,
>>>
>>> I have this kind of item that I want to put into a TreeViewer:
>>> public interface Results {
>>> Collection<Result> getSuccesses();
>>> Collection<Result> getFailures();
>>> Target getTarget();
>>> }
>>>
>>> The Result looks like this:
>>> public interface Result {
>>> Target getTarget();
>>> Copyable getCopyable();
>>> URL getLocation();
>>> long getTimeStamp();
>>> IStatus getStatus();
>>> }
>>>
>>> I would like to construct this tree:
>>> |Name|Time|Location|Status
>>>
>>> where:
>>> Name = "results.target.name"
>>> Time = "result.timeStamp"
>>> Location = "result.location"
>>>
>>> So the tree should contain a list of Results and when you click the "+"
>>> sign on each of those Results items, it should display 2 subtrees for
>>> "failures" and "successes". And each of those subtrees should contain
>>> the Result objects.
>>>
>>> How would the ViewerSupport.bind() call look like for such a construct?
>>>
>>> Thanks in advance,
>>> Phil
>>
>
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #514971 is a reply to message #514970] Wed, 17 February 2010 06:38 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi Phillip,

If you have a simply runnable project (or even better runnable snippet)
I can use this would make it much easier for me. To come up with a solution.

Tom

Am 17.02.10 12:14, schrieb Philipp Kursawe:
> Hello Tom,
>
> I would need that for my "CopyTo" Eclipse plugin release, so maybe you
> could take another look at the problem and give me a hint how to
> contruct the bindings?
>
>> Hello,
>>
>>> ---------8<---------
>>> + Result 1
>>> + Successes
>>> + Success 1
>>> + Success 2
>>> + Success 3
>>> + Failures
>>> + Failure 1
>>> + Failure 2
>>> + Failure 3
>>> + Result 2
>>> + Successes
>>> + Success 1
>>> + Success 2
>>> + Success 3
>>> + Failures
>>> + Failure 1
>>> + Failure 2
>>> + Failure 3
>>> ---------8<---------
>>>
>>> So you want to add a "Virtual" Level? I'm not sure if your problem is
>>> the setup of the Structure or the creation of the ObservableMaps for
>>> your LabelProvider.
>>
>> I tried the following:
>> items = new WritableList();
>> MultiListProperty childrenProp = new MultiListProperty(
>> new IListProperty[] {
>> PojoProperties.list("successes"),
>> PojoProperties.list("failures") });
>> ViewerSupport.bind(viewer, items, childrenProp,
>> BeanProperties.values(columnNames));
>>
>> But no items show up.
>
> Tried some more things, but no items show up. No errors occur when
> adding items, though. I have looked at the problems view, but it does
> not use JFace Databinding (yet).
>
> Thanks for any help,
> Phil
>
>>
>>>
>>> Tom
>>>
>>> Am 15.02.10 19:31, schrieb Philipp Kursawe:
>>>> Hello,
>>>>
>>>> I have this kind of item that I want to put into a TreeViewer:
>>>> public interface Results {
>>>> Collection<Result> getSuccesses();
>>>> Collection<Result> getFailures();
>>>> Target getTarget();
>>>> }
>>>>
>>>> The Result looks like this:
>>>> public interface Result {
>>>> Target getTarget();
>>>> Copyable getCopyable();
>>>> URL getLocation();
>>>> long getTimeStamp();
>>>> IStatus getStatus();
>>>> }
>>>>
>>>> I would like to construct this tree:
>>>> |Name|Time|Location|Status
>>>>
>>>> where:
>>>> Name = "results.target.name"
>>>> Time = "result.timeStamp"
>>>> Location = "result.location"
>>>>
>>>> So the tree should contain a list of Results and when you click the "+"
>>>> sign on each of those Results items, it should display 2 subtrees for
>>>> "failures" and "successes". And each of those subtrees should contain
>>>> the Result objects.
>>>>
>>>> How would the ViewerSupport.bind() call look like for such a construct?
>>>>
>>>> Thanks in advance,
>>>> Phil
>>>
>>
>
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #515013 is a reply to message #514971] Wed, 17 February 2010 13:43 Go to previous messageGo to next message
Heiko is currently offline HeikoFriend
Messages: 43
Registered: July 2009
Member
This is a multi-part message in MIME format.
--------------000002080701050908070309
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

I think I have the same problem like Phillip (and maybe some more ;) ),
in my datamodel "car"s contains "tire"s, "person"s and one "motor".
What would works fine, but in the tree I want to see/show
a) a virtual "grouping"-level
b) also single childs (references)

To solve a -> I haven't a clue.
To solve b -> I show what is possible but I found also no solution,
because, as childProperties for treeViewer I need a IListProperty, but
for a 0/1 - value isn't possilbe to create one, or?

As attachments, I put my two models:
TechTeamExample.ecore is the real datamodel -> RealDataModel.jpg
and
TechTeamExtExample.ecore is the model, where I can generate the
ExampleEditor that shows what I want to see. -> WhatIwantToSeeAtTree.jpg

I hope someone of you have an solution to these problem's.

Heiko


Am 17.02.2010 12:18, schrieb Tom Schindl:
> Hi Phillip,
>
> If you have a simply runnable project (or even better runnable snippet)
> I can use this would make it much easier for me. To come up with a solution.
>
> Tom
>
> Am 17.02.10 12:14, schrieb Philipp Kursawe:
>> Hello Tom,
>>
>> I would need that for my "CopyTo" Eclipse plugin release, so maybe you
>> could take another look at the problem and give me a hint how to
>> contruct the bindings?
>>
>>> Hello,
>>>
>>>> ---------8<---------
>>>> + Result 1
>>>> + Successes
>>>> + Success 1
>>>> + Success 2
>>>> + Success 3
>>>> + Failures
>>>> + Failure 1
>>>> + Failure 2
>>>> + Failure 3
>>>> + Result 2
>>>> + Successes
>>>> + Success 1
>>>> + Success 2
>>>> + Success 3
>>>> + Failures
>>>> + Failure 1
>>>> + Failure 2
>>>> + Failure 3
>>>> ---------8<---------
>>>>
>>>> So you want to add a "Virtual" Level? I'm not sure if your problem is
>>>> the setup of the Structure or the creation of the ObservableMaps for
>>>> your LabelProvider.
>>>
>>> I tried the following:
>>> items = new WritableList();
>>> MultiListProperty childrenProp = new MultiListProperty(
>>> new IListProperty[] {
>>> PojoProperties.list("successes"),
>>> PojoProperties.list("failures") });
>>> ViewerSupport.bind(viewer, items, childrenProp,
>>> BeanProperties.values(columnNames));
>>>
>>> But no items show up.
>>
>> Tried some more things, but no items show up. No errors occur when
>> adding items, though. I have looked at the problems view, but it does
>> not use JFace Databinding (yet).
>>
>> Thanks for any help,
>> Phil
>>
>>>
>>>>
>>>> Tom
>>>>
>>>> Am 15.02.10 19:31, schrieb Philipp Kursawe:
>>>>> Hello,
>>>>>
>>>>> I have this kind of item that I want to put into a TreeViewer:
>>>>> public interface Results {
>>>>> Collection<Result> getSuccesses();
>>>>> Collection<Result> getFailures();
>>>>> Target getTarget();
>>>>> }
>>>>>
>>>>> The Result looks like this:
>>>>> public interface Result {
>>>>> Target getTarget();
>>>>> Copyable getCopyable();
>>>>> URL getLocation();
>>>>> long getTimeStamp();
>>>>> IStatus getStatus();
>>>>> }
>>>>>
>>>>> I would like to construct this tree:
>>>>> |Name|Time|Location|Status
>>>>>
>>>>> where:
>>>>> Name = "results.target.name"
>>>>> Time = "result.timeStamp"
>>>>> Location = "result.location"
>>>>>
>>>>> So the tree should contain a list of Results and when you click the "+"
>>>>> sign on each of those Results items, it should display 2 subtrees for
>>>>> "failures" and "successes". And each of those subtrees should contain
>>>>> the Result objects.
>>>>>
>>>>> How would the ViewerSupport.bind() call look like for such a construct?
>>>>>
>>>>> Thanks in advance,
>>>>> Phil
>>>>
>>>
>>
>


--------------000002080701050908070309
Content-Type: image/jpeg;
name="WhatIwantToSeeAtTree.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="WhatIwantToSeeAtTree.jpg"

/9j/4AAQSkZJRgABAQEAAAAAAAD/4Q5QRXhpZgAASUkqAAgAAAACADIBAgAU AAAAJgAAAGmH
BAABAAAAOgAAAEAAAAAyMDEwOjAyOjE3IDE0OjEyOjMzAAAAAAAAAAMAAwEE AAEAAAAGAAAA
AQIEAAEAAABqAAAAAgIEAAEAAADeDQAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEA AQAA/9sAQwAG
BAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAs ICMmJykqKRkf
LTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgAeACRAwEiAAIRAQMRAf/E AB8AAAEFAQEB
AQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQEC AwAEEQUSITFB
BhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5 OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Sl pqeoqaqys7S1
tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E AB8BAAMBAQEB
AQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYS
QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4 OTpDREVGR0hJ
SlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKj pKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/a AAwDAQACEQMR
AD8A+npLedtSinW4ZYFXDQ9mPPP6j8qyre31ES6h5NxbK5yI9rcj5u/ykZxn nB5z26dBVI2F
nB9rmW2VmmBMoI3b+Dxg0WuBztnb6v5cU8viW2kSQLFbMqKqO/GSQc7iQJOM +npVp01KGFHu
fEFsIlly0rIiYAByPQng+nQ+lRTxaZF4YVhpcz21vJ5iww7lJbkbsjBP3jyf 6CsfWI/D+ghY
m0giDyIztO92xlgFC7skgsx9i3qRTsOxtCHXlykmvWXmYUEeSoxuwoP4nOPp jvxJdab4hlMi
prESKVwhEQBVumTgcjknHsBn+KuYtZdFtdaJXQZ47mDmKba7hiOflwx/u+lb P/CbJmdVtnaS
GPzG2jKY4wN+cd/0PtksFjSn0/X3EezVok/dhZAIhy2OSDjjv+nA7xtpviJd yxa3EUJOGkt1
LAbm56YzgqPTIJ74EOgeLotZvPIggkQrjcXTAHTjrweRwa6qkKxz9zZeIXES watbRhQodvs4
JbG7J9Bn5fy7dDANO8TiR5P7ZtjkYCGEY4YkHOOMg88ce/WunooA5qDRtah8 tW1qSeNZA534
VuFxjIHIyN2DnOeaV9N8QkSga3HtKnb+4UHJPrjjA4H4dcc9JRQBzcWma/5M qzayrSMgVHSI
LtPzDOMH+8p7/dA960tGt9TgM39q30V1ux5flxCPb1z9e35VpUUAFFFFABRR RQAUUUUAFFFF
AFXUhcm0b7E6JN6uMjFRTQXLyWh3W/B/fbo8luO3+f8AA3Zf9W30pJf4M5xn nGfQ+lAHPzW2
vJdzfZjpEsJ8xkWaNgy8nYuRjjgZOPX0pVt/EDpKssekR7kYI0SNlGwdp5yD zjtTrj+yzq2p
+YbkXP2P98fm2iPBzj3x/wDW53Vhwp4axIIdSvof3qZiEjsEbDAIOCDnn1Db RjIoKasaoh8T
RyOIodD2hxskKOCRnliB3xinK/i1rhlaPR1iVR8+2Q7zxnA3cd+vtWLqEHhZ rOyubi5u5Yk8
oRT7mYj5jtJyOd2WOcHIz/e52NP8L6c1vDNa3moNCyq0f784AwMYGOOMcYoJ Okg8wwRmcIJd
o3hDlQ2Oce1PrH0Pw/b6PIzwXN7MzLtP2icuO3OPXgVsUAFFFFABRRRQAUUU UAFFFFABRRRQ
AUUUUAVdTe4S0c2kSyy/3GbaCPrUc0moCWyEUEJR2/0gs+Cox2/H/PcXJf8A VN9KSXHyZOBu
659jQBi31zrkN9OttpNteW5ICSGcRHbxkEHdnGW9KiupNX81mj0SzuEkAYq8 qoynbGpDH5tx
w0vOBwmO4rTj8j+1JyLp3l8oBod2QB6gev8Aj7isDSktFSMQ+J5Hj2cRySgM BuXs3zD055+Y
fik7gdJaIZ7SCS8tI4ZygLxcP5ZOMgHvyB+Qq0AFACgADsK5vQFjWdyPEv8A aOY0wgkQ7Rkf
Nxn73A/Hjk5qrox03T9UR5PEgvJnj8lInmGNu/5RgHGQTgE9Rn04YHXUUUUA FFFFABRRRQAU
UUUAFFFFABRRRQAUUUUANl/1T/SkkOCmAT83QfQ0sv8Aqn+lRzyxJJDHJMsc kjERgkZc4JIG
evAJoAiR3Ooyj7JtHlriYkfN1+X/AD/hXO2cxKrt8LG3uMddg2A7k74BPr0H 3fxreikRr+dv
7QjeMKqGEMuUbcV5x0yQR9QR2rLisdVhWK3n1tCj/KuVAkJBB4J5J2h/p/JI CPSZY4b8Ja+G
pbQSYSSXy1XhQSBwOeQAOcc9agt4oh4h2J4Z8pdwV7tl+UAE7SoGeeeen1wM 1o2ttq638fn6
vFLGmWMQiUFhggE4GepB7dKh1TTvEFxeqbPV47e3KuTiIZVtrhcLg7hlkJ5B Gw9dwKsDo6Kb
EGEaBzlwBk5zz+Q/kKdQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAEAjB5FU rvSrG8ubW4ub
WKSa2YvExXlT/nB+oB6gVdooTtsBi3fhbRbu4aeexRpXYuzB2BZs5ycHnmo7 jwhoVzBbQz6e
jxW+fLQu2BnOc88/ePXPWt6igDM0nQdM0iWaXTrVYJJgBIwYndjp1PatOiig AooooAKKKKAC
iiigAooooAKKKKACiiigDldX1XWI72UaWtnNb5BBmJUjG3IGM5z83Jx6cdS3 +19b8xsR2BU4
xncNvAyOvPOcHjtwOlZMuptCJHVRMFDbYfLcM2AcfPuxyQO3eqEvimWEKH0O 6MhUnajlsEHH
Xp7/AEz3wC2rAa+o3GuDUZGsnSS1ecAB5nUrGTy2AR09O/A45NQ2lx4gfcb0 xxgxgqIpnbD5
HBJPTGe38uc9PE8hnVH0O7VH24feTtB2/e9CNx6Z+7WpJexSSY+ZQGwNpcHG Ouc4607lXCyu
Nakmk+2s0UHHl7JmL53DOfmx0P6H8YoLjxEktskxieIgedILhww+9nAzg9F/ P2q7ayQz/Lub
eO288+45qx5Ker/99n/GmMxr+fxGkwWwkEkLEnfJMwKjYMDGf72Tnnp+dlZt aeC1ZpfKuNy+
egmZkC/NnBzn+6a0PJT1f/vs/wCNHkp6v/32f8aLBYyEu/EzWjlordbjICj7 XJjG3k/gadBN
4gW0Q3EgecFifKkI+nBbp1756dOTWr5Ker/99n/GjyU9X/77P+NFgMWC68Ue UglS3DgAMftL
kMcckc9O3StewmvGtwbyWVJyBuVZmIBwMgc+uaf5Ker/APfZ/wAaPJT1f/vs /wCNAE3mSf8A
Pef/AL+t/jR5kn/Pef8A7+t/jUPkp6v/AN9n/GjyU9X/AO+z/jQBN5kn/Pef /v63+NHmSf8A
Pef/AL+t/jUPkp6v/wB9n/GjyU9X/wC+z/jQBN5kn/Pef/v63+NHmSf895/+ /rf41D5Ker/9
9n/GjyU9X/77P+NAE3mSf895/wDv63+NFQ+Snq//AH2f8aKAEnRIWg+z6ba3 MPkBnYzbG34J
9/QDGP4uvHNOK7eXJHhqKJRglpLsdN2CAAM5Ayfw+ma6eFNQlUSK9vtcbhlz 0P4Vkw+A/Esd
6rHVLY2u4sUPLHn7uSOmM8jH0pWRB39vZ6XJbxvJbwROyhmQuCVJHTrUn2DS P+edv/33/wDX
rk/+EQ1L+/b/APfZ/wAKP+EQ1L+/b/8AfZ/wosgOrOn6Qesdv/31/wDXpfsO k/3Lf/vv/wCv
XJ/8IhqX9+3/AO+z/hR/wiGpf37f/vs/4UWQHWfYdJ/uW/8A33/9ej7DpP8A ct/++/8A69cn
/wAIhqX9+3/77P8AhR/wiGpf37f/AL7P+FFl3A6z7DpP9y3/AO+//r0fYdJ/ uW//AH3/APXr
k/8AhENS/v2//fZ/wo/4RDUv79v/AN9n/Ciy7gdVLY6UI3KpAWAOPn7/AJ1j 64RZyY07R4L5
CFwRcBTkk56nsB+orPj8Jaijqxe3wCCfnP8AhVe/8Gatc2wiiuLe3YY/eITu 4bPp6cUWXcV2
dJpKWV5DK93p0VkVcqiPMGLLgYbjp16e1XvsOk/3Lf8A77/+vXnp8B+I/sqK uqW3nqrKJCCR
noGIxycdjkZJ9qbe+AvEzhGtNVtkkChWLjIJ7nGMDrnpzjHHWjQZ6J9h0n+5 b/8Aff8A9ej7
DpP9y3/77/8Ar1yEPg7VEiVZJreRwOW3EZ/Sn/8ACIal/ft/++z/AIUadwOs +w6T/ct/++//
AK9H2HSf7lv/AN9//Xrk/wDhENS/v2//AH2f8KP+EQ1L+/b/APfZ/wAKLLuB t+Ra/wDPCH/P
40VS/wCEfu/WH/vo/wCFFHMh2OqsiPscHzf8s1/lU+R/eooqADI/vUZH96ii gAyP71GR/eoo
oAMj+9Rkf3qKKADI/vUZH96iigBGI2n5qXI/vUUUAGR/eoyP71FFABkf3qMj +9RRQAZH96jI
/vUUUAQcf3qKKKko/9n/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQ FxQYGBcUFhYa
HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMo GhYaKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/ wAARCAFsAboD
ASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QA tRAAAgEDAwIE
AwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jy ggkKFhcYGRol
JicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqD hIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 4+Tl5ufo6erx
8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QA tREAAgECBAQD
BAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLR ChYkNOEl8RcY
GRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 goOEhYaHiImK
kpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna 4uPk5ebn6Onq
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6prLS+vrgyPZ2lq0CyPGGmuWRiUYq 3ARgBkHHPTHT
pWpXCa54GttVvXlvtC8OaowZ/Ln1C3V5QrSNJs5jbABdu/vxmmgZ2WnXQvLQ Tbdh3PGwByAy
sVbB7jIODxx2HSsq+EUuuXgu5rlIILSGQCK4kjAy0u44RhnhR+VaOi2kljpy QzMrS7nkcr0B
dyxA9QN2M98dq5Txosrau4WK6EX2aMkpBI8U+GkzHIyghQOD8xx83IIyDE4p tX2E5OKbW5oa
ReSR3tpJaztcaVqLbYlllZ5ImEbMSGbOQdhGM46Ed87Gt63pWg2qXWuanY6b bO4jWW8uEhRn
IJCgsQM4BOPY1xvhoyvrVhIIbwxSTO5QwP5UP7qT955mCm4nAIU9W7nJOn8Q ItVa/wDCE+h2
EV7c22rPIyTSvFEqGyukLPIqOUGXAB2nLFRxnNTTioppBGbmk3/w/mWj4y0q PUb9bq8sbfSb
XT7PUBqcl0iwSJcyTInzH5QP3Iw247t4/GrrHxF8OaVJexz30UklvpI1qFYp Yyb23KzMfs4L
DzCFgZjjjDKc8nHMw+AvEFpJf3Nvd2xa98uW4tIb6a081jdX9w8IuY08yNVa 8iIkUZfySrKi
uaq2Pw78QWfhnX9OjOmtLrumXljN5t/NL9kZ572aEiRoy0+ftgV2bYRsLfOW wNBndaR4w0qf
TNIn1PV/D8FzqjvHapa6ok8Vy6vs2wyFUMpyVBAXhjjnqbd/4s8OadG8moa/ pFrGj+WzT3sa
BX3SLtJLcHdDKuPWNx/Ccc/418Larq11rq6YbFrbX9JTR7qS4meN7NFNx+9j UIwmJFy3yFo/
9WPm+bKmk+C57CTSZEFikkHiPUNaumjyDMk63ax87fmkCzwqc9AhAJwMgHVQ 63pU8c8kGp2M
kdvdCymZLhCI7gsqiFiDxJuZV2nnLAY5FZ8nimxt9d1Oxvpra0tLGGJ2vJrh VQyss0kkJzgB
kiiWUjOdkgYgDk814Z8F6ro1lYRyDSLqSDSdD051n3um+zmkaZ1G0chZA0Z/ vqCQMUWfhifW
tWj1e9tYo418Uzao9rdxnKpBayWMLpkfMWaKKdTgYDcE7QWAO1h1vSp9Zn0i DU7GTVrdBJNZ
JcIZ40O3DNGDuA+ZeSP4h6is/wD4TXwr/ZX9p/8ACS6J/ZvnfZvtf2+LyfN2 7vL37sbtvO3O
cc1xTfDaZ7/UUu7S21Cwkm1C6jNxrV6qzNdCcGL7Mv7q3wLhkMy+YcAkIGfK aGm+HfFunXVj
qzTWOpX1sl1axWF5fuEt7eY25Ci7EBeYqbbOXj3HzTuclNzgHdvqVinnb722 XyZktpcyqNkr
7Nkbc8M3mR4U8neuOorPufFnhy104X91r+kQ2LOkYuZL2NYy7xiRF3FsZMbB wO6kHoc1wmn+
Adc0TSrXQtPk029003uk3k97PO8EyfY1tEZVhEbhty2YYEyLgyYx8uW0NC8H 6r4X0bwd/Ytt
pE99o2kyaZcWrzvawSPL5DyzLIsTknzICcFBu8wsSCMMAdrDrelT6zPpEGp2 MmrW6CSayS4Q
zxoduGaMHcB8y8kfxD1Fcrq/xJ0rSPBF14g1GWxtZCl7Jp9pPepGdRSB3EbQ sR8wlURupUNx
KuN2QTiN4T1Dw1f6jrkVh/aq6dNqGs2iLql48lxLKJ3EEdn/AKmJv37J5g8w sATsDSZQ1TwD
rll4VutG0GTTb/7b4Zt/Dks17O9r5XkpMizKqxy7932gkoSu3YPmbd8oB6LD relT6zPpEGp2
MmrW6CSayS4QzxoduGaMHcB8y8kfxD1FVW8T6VH4uPhqe6ih1ZrWO7hilkRT cI5lBEYJ3MV8
li2BwCp7nHKaB4FudO8XLezrFLaQahealDcPql25L3BmJRbMkQRFROy+YC+4 KTtBkJSbVvCm
uaxDqSX0umpLr/h9NI1OWFnC2kqJcfvIEIPmqXuSNrNGVCA5YnAAOlh8WeHJ 9Gn1eDX9Ik0m
3cRzXqXsZgjc7cK0gbaD8y8E/wAQ9RWfoPjrQ9X8Qaho8WpaaL2GZEtIlvUe S9ia1iuBNGnU
riRhkZGEJz2HNWHgjV7S9g1uG1sU1a1uopY7a41u9vhOiQ3MWGuplLRgfa3Y KsR5Q5J8zMer
L4W1W7tdXa4NjDc6hrum6t5cczukaQCy8xNxQEnNtJtO0ZyuduSAAaGk/ELw rqPhWz8Q/wBu
6baabc7E33V3FH5UrIH8lzuwsoU8pnIwa2ptb0qDWYNIn1Oxj1a4QyQ2T3CC eRBuyyxk7iPl
bkD+E+hrzpvAetJpXhmHZbTy+H7KTSYVg1u70/7TAVtws7SwpuRv9H5gw6/P neSoyX3gDWhN
otpbS202m6fNpjQsNTu7WO1htXhZoltBvjmyYnZXlcuDIASfLViAd3pvizw5 qkltHpmv6ReS
XLyRwLb3schldFDOqhWO4qrKxA6AgnrVrW9b0rQbVLrXNTsdNtncRrLeXCQo zkEhQWIGcAnH
sa4DTPh/qtrpOm2slxYmS20/w9aOVd8F9PummmI+XoVYBfU9dvWtXxToPiPV msLqyexstbt3
u4YdUgvJI/sdvJKuw+Q0bx3BMaRl0k2jcvyMpwygHSy+I9Div76xl1nTUvbG E3N3btdIJLeI
AEySLnKqAynccDBHrUVt4s8OXUZktdf0iaNbV70tHexsBboxV5shv9WGUqW6 AgjPFedeN/h5
4k8RXd4v2m2lV/t5ju7jVrkKVntLmCKP7GEMMezz41MikswjLEbnYVL8TfBe q3mg+LLqzEU7
T3V3qMUEW9pZEbRHsgiqF5kMpBAH8PfPFAHar4y0q7n0QaHeWOrW2o6g+ntc Wd0kiQuttLOc
lcgnEQG3I++D7G3D4s8OT6NPq8Gv6RJpNu4jmvUvYzBG524VpA20H5l4J/iH qK4TxR4B1zxh
dz3mqyabpctzD9ikitp3u1jiFpqEIlDNHHuYvfj5MAARk7iWwD/hBNUWGW+j 062TWhNC1u7e
J7+aS3MSThZRcSxvux9ocCAxbCGcsXDbQAdB4s+IVj4fSG4hs7nWbKSyW8L6 UVnkPmTww26q
oIDeaZXKncMiF9obBxbh8eaHN4qi0SGfzPNskvY79HQ2j7niRYhJu5lPnwMF xyssZz8y559P
DWsaream17ceZe2s2h2jXU8JhW+WymS8luVCjA3meRAgyA0X3uSFNd8B2Om2 09xaQXL6bbaZ
qe+KxRTe+bLJbSwfZgFxuiW2VIu6eXCBnbkAHS634ti0/WbfSdP02+1rUZEm keHT5LcGAReS
W8wyyoAcXERA5JDZxitW31e0ktfNuJYrSRXihnhmmj3280gQrC5ViokPmRgA E53LjORnzrUf
h/fXE2h319ovhvxFepDeSanDqkzLE11cPbvviYwSFljEJiTcAyxhFycV00uh 6rd+KLDxBcW+
kRXNqkcH2ZWeTejL+8k80op8yMvIsXyfdaYEr9oPlAEuk/ELwrqPhWz8Q/27 ptpptzsTfdXc
UflSsgfyXO7CyhTymcjBrV/4SPQ/7d/sT+2dN/tr/nw+1J9o+7v/ANXnd935 unTnpXn7eA9a
TSvDMOy2nl8P2UmkwrBrd3p/2mArbhZ2lhTcjf6PzBh1+fO8lRnQ03wFd6do F3pdvLYrG2ra
VeQCPzFRYbRLFWXDFmBP2STaCzdVy3UgA228daGfFT6NBqWmzfZrK7vL+ZL1 D9h8h4UKyqPu
Z81iSxGPLPB5xoTeLPDkGjQavPr+kR6TcOY4b172MQSON2VWQttJ+VuAf4T6 GvOrn4d+IL3T
tF0q6Omx2Wg6YljazwX8yTXrR3FlKhbbGpt9ws8FkeQoZMjdt51dH8Ia1od/ BrWm2emyak32
lJ7K51e7mUrMLUbzdypJJIwFmgx5aDDgfwZkAOgi8a2MXw+0jxZqqfYrK+hs pZAZFK2/2lo1
BZ22japlBZuOATjtUumeOfDmo3urWsGrWKyaYizzF7mMBrcwxTC4XDcw7ZlG 84GQfYnFtPCm
uReBNI8Pyy6af7KstJaAqz/vbq0lWSRGbHyxP5MSqwUsNzkqcBTDrHhDWdTt det5VsY49Wur
PV2MV9NG8VzALUG2V1jDCNvsvFwCHXfkR/LyAdXN4s8OQaNBq8+v6RHpNw5j hvXvYxBI43ZV
ZC20n5W4B/hPoa2q8lf4c6ikltqUEEX24Pc+daJ4k1GInzVtlDtfDdLKQLRR sKKuHA6xhn9K
8PaamjaBpmlxCIR2VrFbKIlZUwiBRtDMzAccAsx9SetAGhRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFVL29FtJFEkE1xPIGZY4toO1cAtliBwWUdc8/Wrdc94t 02a/EXlRXUsf
lPE62l21rKMtGwIkV0YD93g4YE5xyCaaA0dOvGLRWlzbz284i3L5pU+YFwGI IduhZfvHPPfm
tCuQ8KaHPY3m6SHUIbdEfH23UZLuRmZozw7yOwUeXyuQOehya6G+0yC902ex me6WGYBWaO5k
RxjHRw24dBnnnnOcnI1YEZdl4ssbvxfeaBGf31vErLLn5ZJOd8Y4xlRtPXnL D+A10VeRWPw6
mbX20a6Mi6BYhLmG7jVUllLEbU3BQAwKHJXBA2EY3Ls9Zt4Vt7eKGMuUjUIp kdnYgDHLMSSf
ckk96c1FfCxu3Qw/DPjDRvEvl/2TPcnzYRcw/abKe28+I4/eReai+Yo3Jlly BvXONwzrXuoW
tlc2EFzLslvpjb267Sd8gjeQjgcfJG5ycDjHUgV5p4c0jxPN4S8I2A0f+yNS 8MWStG+pzRSQ
3N0tjJbIgEEjnyt0rMzHa2FUBW3EpzWmeALyK9LT+Fb678OWt1bXf9j6hFpa G5kEN7FI0cNu
Vt8gzWzFpCrER9TsRakR71XPy+MdCiufEkEl9iXw7Clxqi+TJ/o8bRmRT935 sopOFyeMdeK4
qHw7rY+LFnrb6dcxMb2cXt7bpYx2stn5EqwqXGLuRs/ZtyvlN6sVG1UI1l8D /wBoeL9S1XUU
8pE1pLyHnd9pgFpZ4Xhvkxc2kL5IyfI242ucgHa6TqFrq+lWepafL51leQpc QSbSu+N1DKcE
AjII4IzUM+qwQ6/ZaQySm5urWe7RgBsCRPCrAnOckzpjjsenGfJfC3grWbCz 0K3vtDzrUH9k
tDrHmQN/Z1vBDbLcWm/f5q7zDcjbGrRt9o5bDvjPk8A6xNBaQW3h2XT9Rg0k 2msarE1nv1mX
7TZPKVJZjKZUgucfaFVW8zEmAzUAe1T6rBDr9lpDJKbm6tZ7tGAGwJE8KsCc 5yTOmOOx6cZ0
K8w+HnhK+0TX9OufsV9baZHa6gixXklqHtzK9jtQRWyrFGGMEz7Y9w6szBnK j0+gAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKbLIkUbySuqRoCzMxwFA6k mnVS1uCS50W/
ggXdLLbyIi5AyxUgDmgCuNYtxO7SC7jh2r80lpKiqcnJJKAKMY5Jxx2xk6te dX0WrXVxdmPV
fE08VwJVSxmsoEtxvBCruFurhVyMEv2G4nnPoCxOHDGeUjOdpC478dM9x/3y PfLasJGf4k1+
w8O2Ed5qkvlQvMkAPHVjjPJ6KNzH0VWPatWvLfiLo2oWN4dYee51q1nkW2js pQB9meQlUCYK
rtLMqZI3cjLHqvZeC9DvdB01oL/Vp9QZjlUcDZAOflQnLkcgfMxHAwFHFBo0 rFfX/EtroStN
q+qWen2plMSSXUqRKW5IUFsAnAJx7GprXV3u7aG5tbqOe3mQSRyx7WV1IyGU jggjkEVymvSn
R/HF3q9/b3lxYTWiWlu9rayXTW8glkaUFI1ZlEgMPzAYPkgMQQm7lfEt/rE/ i7TbzTV1S1QX
FlHDCtjfSLc20kkZlkkwwghIWSVSs0ZkXy92Vym1iPVbrV3tLaa5urqOC3hQ ySSybVVFAyWY
ngADkk1VXxPbPJp8a6rZs+oIZLNRKhNyoUMWjH8YCkHIzwc157Hpmpf8KIvb e7bVL7W7zQHa
ZLotJOZ2tceWFxkEHC7QMk5LZdmY1tT8DTJrelBZ7wWovp7azltXO/TbSSyu ySh24hIllCLj
5dkVsvVeQD1n7fc/89f/AB0f4Vm33i+wsNSt9Ovtb0+21C42+TazTxpLLuba u1CcnJBAwOSM
Vx/hp/EutabJrCajp9rc3PlQxq1vLcWjRRKweWNPMQ/vJWdlk3ENCIcjOas6 DeDQru603VLb
UGv7zUZ51uYbGaeKZJZSYi0yIVXZH5cREhUqIv7gVixnc/b7n/nr/wCOj/Co 7rV3tLaa5urq
OC3hQySSybVVFAyWYngADkk14c0nim51d47abXLM3rwy3kUNpef6BL9vtcok 07SRSBY3uATC
qxsqsSpXaF9B13TpY9OuI9RvJH0KFITbR2tlPc30M0bxtHKZN8hlKuobBjOe N24BtwB0Wk+L
7DWMf2Rren3+d+Pss8cudm3d90np5iZ9N6+orS+33P8Az1/8dH+FeOXlz4nu Z4jDJrk+lIky
/aXtnt7ie28/TzKzxqiFZQhvVTaiyFVygJO5o/C9mdc8X3tpHc+KP+Eftprs IJr6/t3jfyNO
KK7O6ydXuCqscYLEDHNIR7Xb3tw88atJlSwB+UetbVcL4Env7nw34en1kSLq ctpbvdCSPy2E
xRS+5cDad2cjAxXdUmJhRRRSEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB R1HU7SyKpPeW
0MxKnZLIqnaWwTgsO2efboelWreeG5hWa2ljmib7rxsGU844Iri/EGo6jp+p 3senarpemtJP
5jDULF7jzV8qJVKbZo8AFXBPzZPpg51vCct3dW1zcyTwStLOpeZISqSkRxKz INxwuVcYy2D3
ODltaXFc1ZNNheRnLSZYknBH+FQWtpZXUZktp2kQMUJVh1Bwe1Gtw6rNp6pp dzDFcj77Fdu7
12k7tvfqD29Oec8FQ3jSGXTmFtpYfEsMyks74GSB1BxgE7uSM4PJaHNp2NEr q9zqP7Lg/vSf
mP8ACj+y4P70n5j/AArmfjDB9q8EG3+y2155up6ZH9mujiGbN/bjY52thT0P ytwTwelcVrp1
3wXDZ2dreaJ4Y03UJri7ZY7+O1s7BkS3jjtopprWSP8AeHz5ynkoS28g/Ixe 7k3PV7XQ7K0t
oba1TyLeFBHHFGFVUUDAVQBgADgAVJ/ZcH96T8x/hXmlt4g8UTaF4o1K+1/S NOksns7ZEu0+
xW1u8trZSTOZJUZ1OZZBEJE+VnxIsnyqmfdeNdRGkG5h1zUrOWPTDd6PBqMd mJtduvNuB5BE
aFZl/dW+0WxVmSdTuJdCC4XPW/7Lg/vSfmP8KP7Lg/vSfmP8K80bxB4gsbVd VXX4pGvtW1fT
kg1RIY7G0S3F80Tl40WQBfskYYs7fKXOM4ILjVpdY+Bnjqea+vtRaPT76L7X cPbSxTYtuTby
26IksOSQGKhtwcMFK7QXC56PdaHZXdtNbXSefbzIY5IpArK6kYKsCMEEcEGo tN8N6ZpdlHZ6
ZbR2dpHnZBbosaLkknCqABkkn6mvPb6zvfBejajdwW+keFY9Re3tYodMu0is LJ0813upppLb
ZGZQVhyYGyVhXd8wKZ/h7x1qupXXhkXut20qXEzWy22i3VrNc3bJezQ+fIkk QMlsY4VZpYPL
I/etsC48ouFz12PTYUkVw0mVIIyR/hV2vCv+E21+TRJXg1+2mla9hivtXjvb T+yLNWinkItr
oQPs+dIY2W4jdh5sagkusptjxJ4nfSNd1STxB82heH01SKKziiktr5hLfbWk eSBXdXS2hy0X
lK2WaPCspCEe1UV4r4g8a6zZ6iW07XPtHiEXuqQjwt5cD/uoLe8e2fygn2j9 55Nu+d+G835c
BlANC8ReJ9Ru9M0+28V6bd295qaWx1Cxli1FlU2l5JJH5q20MIYeTCyqFZkJ 3PuR1QgHtVFc
B4Q1+8v/AB9ren3eqfbvI88rFp01vNZWqLKqRpLhBPFckA5R2ZDiQqeNqd/Q AUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUU
UAFFFFABRRRQAUUUUARXJxGMBj86cAsP4h/dGf6euBmpagvV3QqNu795GcYz /GPY/wAvxHUT
0AFRW2PLOIxH878AEZ+Y88gdev49T1MtU4PPSNxFDERvkI3MUydznps9dvPu Tk4ywBcphljE
yxGRBKyllQn5iBgEgeg3D8x60xmuRHKVihLhT5YMpAY5OATt4H3eQD1PBxz5 RqN9rp8WRTXE
Xl+I4/ktLOP5oniO7/a+ZSASWJGNvbHDSua0qXtL6nrtFV9Pe6ksoW1CKKG6 I/eRxSF1B9iQ
P5fn1rx2w1PWNLttc8TQ2mtyxaVe61cXs17qhe0vLaGS6EdvDEZX8pg6wDd5 SYWN/mIOHRm1
bQ9qoryq38X+NRqNjo97p2m22pXd7HCst2iR7Ynt7uQv5ENzOfla1BBZ1EmW QbNpkFvU/Gmu
adrF9Z30NtZXE0yQabZzWTvvje8gtVuzcpKY5FBnVzBtjkG4KSBiRgR6VRXm tv4k8VX3iw+G
ba80SC9tPtX2m9k06WSOfy47GRNkQuFMfF7tOXfJjyMbsCLxRqeq+KPC3w81 DQbiXSr7VrqK
9jiFy6xs/wDZ9xcJBMygF4TIiBxj5lBxg4wAen0V86+LvEHiCyl8RXs93qVr LqumC+gtXuJo
jpqmx1dogkYYeXLstYDIp3Dzd7DkIV7vUdZ8R+H9f8Tahf6hY39to3hyHULq 0jtZIUuHD37L
5OZnEJIjQMxEm7aPu4FAHdf2Bp513+2JFuZb0coJruWSGJtuzdHCzGONtuRu VQcMwz8zZ1a8
qt/F/jUajY6Pe6dpttqV3exwrLdoke2J7e7kL+RDczn5WtQQWdRJlkGzaZBF e+PfEdnBqV4x
0iS2tk1i+SEWkiubfTrnyWhL+aR5koZCJNuE2n5H3DaAetUV5B488f6xp8et PaWX2nQJIdQt
La68s2+25t7WeRx5qXPmtiS2lTiKL+8snyqXNY+I3iezh17UotHtl0i2/tOC 0kuPKVTLaJcE
Nu+0eZNua2bMYhQgMTvIj3OAev0VV0v7d9giOq/ZhetlpFttxjTJJCAty20Y G7C7iC21c7Ra
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKAC
iiigAooooAKKKKACiiigAooooAragcQLkKf3sXBKj+Nf7wx/X0wcVZqC9bbC p3bf3kYznH8Y
9x/P8D0M9ABVbTzmBsBR+9l4BU/xt/dGP6+uTmrNVY5JYkYG3mc7nYEFeRli By/sP++hwBkK
AWqrvZW0l/FevCpuoo2iSTuFYgkf+Oj9fU05ppBHKwtpmKKSqgpmQgngfNjJ wOuB8w98eW3/
AIm1NvEiambaS3uLTNsmkvu3yq/Jzhc7mwpGAR8g692lc1pU5T2Z6xUVtbQW sZjtYYoY2d5C
saBQXdiztgdyzFie5JPemafcSXVlDPPay2kjjLQylSyfXaSP884PFeUad4y1 Szm1TVrq91vU
bLT73VjqNq+mrHbW9lbPchGt5vKQSS5igTb5r/ffIGCyIzatoelaX4c0PSIY odK0bTbGKKY3
MaW1qkSpKUKGQBQMMUJXd1wSOlEHhzQ7f+0/I0bTYv7Uz9v2WqL9rzuz5uB8 +d7Z3Z+8fU1x
Vn8RtWuHtLU+E7kahd3q2cIdri3gbdBPKG33NvEx2/ZzvCodqupUu37urdx8 QpIdS1S1bTra
J7eZbW2trm7eG8nke5jto5TC0WBbNJID56NINuPlLZRQR1+m6JpWlx20emaZ Y2cdskkcC29u
kYiR2DOqhQNoZlViB1IBPSpotNsYobGGKytkiscfZEWJQtvhCg8sY+XCMy8Y 4JHQ1xUfjXXL
nXV0Gy0HTX1qH7R9sWbVHS3j8pbVx5cgt2Z8rex9UTBVhyACdC88TPqmheFJ 9FaW0XxO8aQ3
EiKZLWN7WS5LbDlTJtiKjOVDMGIcKVYA6WTTbGW/S+ksrZ71Nuy4aJTIu0OF w2MjAllA9BI/
945qWfhzQ7L+z/sWjabb/wBneZ9i8q1RPsvmf6zy8D5N2TnbjPevNfGvivVP CGqQWlzeXOqr
pOdUaWRlgku4msNTfyJfLUIcPaZDBAMFMqWQs3VaX4yvpfEEWl6rpNtbMb06 XJJbXrThbr7K
bsABokzF5GPn4YOSuwqN5AOg0vw5oekQxQ6Vo2m2MUUxuY0trVIlSUoUMgCg YYoSu7rgkdKl
k0TSpI5I5NMsXjkSeN1a3QhkmbdMpGORIwDMP4jyc1oUUAYt34T8OXmpzale aBpE+ozo0ct1
LZRtLIjJ5ZVnK5IKEqQT93jpUsvhzQ5b++vpdG0172+hNtd3DWqGS4iIAMcj YyykKo2nIwB6
Vq0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEF6SIV2hyfMjHyAk43j0I49fbO QRwZ65HxBrkF
neTpfz6wkaTCOJNO0uS8HypG+59kMm05fjOM445BNanh/VBeW8pZ7qVBIoie a3aOQqyRt867
RtYGTGCFIA5HBNFgNqisfxFr9vommC8mhnlDD5FWMjnHAYkfL+PPXjg1z3gz xRPLdHTNWDy3
cjebHLD+8UK3O1scjBPB6Y9AKVyHNJ2O5rOn0azn1y21eSPN7bxNCjezd/qP mA/329an1SO+
lsJU0q4tra9OPLlubdp415GcoroTxkfeGCQecYPnWkfEK7sPDvhrVPFTxXDa zp6X4h0rTJMx
iSWziRQDM7MVa75CqS46BSu12aJtbHp9Z9vo2nQaZc6ctpE9jcvPJPBKPMSQ zOzy7g2chmdy
R05xjHFcrcfE/QrXxRbaBeiW11GR4IJY5Z7ffbzzKpSJoxKZHP7yMF4keMbu Xwrldrwd4ot/
Flg2oabaXK6W/NreyPC0d2uWBZAkjMuNvKyKjAnBAIYAEGn+D9GsLm3uYoLm a7t5hcR3F3ez
3MwYRyRgeZI7MVCzS4QnaDIxABJNEvg/Rppr6a5gubmW7zue4vZ5Why4f9wW c+R86ow8rZgx
xkcouOasfEXiO0uta/tzUNImttP1ay0lRZ6VIjyPObQhzuuSAMXJXHOMB/mx sJc/FzQrbQNI
1ae1voItWQzWUV5Jb2byxKkZaQGeVEwDIq43bm5ZAyfPQB1ek+F9I0m6hurO 3l+1xJLH9omu
JZpXEpiL73dizk+RCAWJIWNVBAGKlXw9pa+G7fQVtcaXbwx28MQkbdEsYHll XzuDLtUq4O4F
QQcjNZWgeOdN8RauLPQIbm/t1hhnnvIzEkdus0XnRb0d1m+ZCpBEZGWxnKuF 6qgDmrjwN4fu
dI/s26spbi2LyyO011NJLI8kD27s8rOXc+VIyAsxwu0DG1caH/CPaX/aP2/7 L/pf23+0N/mN
/r/s/wBm34zj/VfLjp3xnmtWigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigDF1XRo
5p3uEvLi2aV03qkiqrMcLn5lbnAAAHBwPUmr2l6fFp0DxxPJIzvveSQgszYA ycADoAOAOlS3
rbYVO7b+8jGc4/jHuP5/gehnp3ewDZESWNo5FV43BVlYZBB6gisnwxollolp NFYFXEkrMz8Z
4JAUn/Z6fXPTpWxVOC6gjjcS3ESkPITukHA3P/tHsrd/4TwMYCFZXuXK5Bvh /pRsvDdqbi+8
vQbWG0tjvTLpFNazKX+Xk7rOIHGOGfpkEdULiEiQiaMiMEv8w+UAkHPpyrD8 D6Vzk/imIanG
0RDaSisJptpyG5yQOpVcYJHTJ64YrMpKO4N2LD+GI/7dm1G31PUrWK5mS5ur KCRFhuZkVEV2
bb5o+WOIFVdUYJhlIZ9x4a8L2+h3+pag13c6hqmo+ULq9uUhSSRYwRGpEMaK du5vmK7sEAkh
VA3LeaO4hSWBw8bjIYd64nUfGGs6drPiG3vNI0iHTtH0/wDtOS8bVJiTC32j yyY1tiQc253A
FtobK7yMGtxm1c+FLG4/tLfLcj7fqdrqsuGXiW3+z7FXj7p+yx5ByeWwRkYq r4Kt7fStBtNL
1TUtOuNGshp9teweS8xg2xhkYSRtGdxhiJIQHKcEAkGUeOfD7R3jw3stwbS6 aylS3tZpnNwr
OrQqiIWeRfLdiqgkIA5AQhjbufFWiWnh0a7d6hFb6TvSNriYMgidpRFtkBGY yJDtYMBsIO7b
g4AKieD7Q+ItN1a5vb67bS0KafBcmNxalohEzCXZ5zllzu8yRgSckZClelrn 18YaMb+3szPc
pLN5Y3SWU6RxPIAUilkKBYpW3JiOQq+XQbcsuYr7xz4f05rwapey6cto6pI9 9azW6HMqxb0a
RAJIw7oDIhKrvUkgMCQDpaKitLhLq1huIhKscyLIoljaNwCMjcjAMp9QQCOh Fc/r/iZNE8S6
faXjRR6dPp93dSPsZpDJHNaxxogXJYsbggKAWZtgXnggHS0Vwt746iudf8P6 bozSqt88xuGm
0u5kli8p4AYXhAV4CwuFYSygKqhSVYOpra8B+JofF/hXT9Zgtbm0+0wxyPDP DJHsZkVyFZ0X
zFG7AkUbWxwaAOgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIL1tsKndt/e RjOcfxj3H8/w
PQz1BeruhUbd37yM4xn+Mex/l+I6iegAqCybdCx3bv3kgznP8Z9z/P8AAdBP UFku2Fht2/vJ
DjGP4z7D+X4nqQCesOfw5bSaxFdKsa2oGZbYL8kjj7rEdPT/AL5XrgY3Kw5/ EdtHrEVqrRta
kYluQ3yRufuqT09P++l6ZGYny/aE7dTbRVRQqAKoGAAMACuW8R+Ef7a/4Sr/ AE7yf7c0VNI/
1W7yNv2n9594bv8Aj5+7x9zrzx1KMrqGQhlIyCDkEVyNx43NtrOrafceHtXi XTLU3s91JNZp
B5P73Y+5pwQHMDgbgMcF9g5qxlTVvh7BqPh2DTp5bG6kttWutWhF/Yi5tmee W4YpLCXG8Kty
wBDL8yq3YqdBPB8cfhCw0OGa2t1tr22vSbWzSCHdFdpclEiTARSVKjliAQWL tktq3PiPQ7W2
uri51nTYbe0x9olkukVYcyNEN5Jwv7xHTn+JWHUEVbXUrFrC3vlvbY2Vx5fk 3AlXy5fMIEe1
s4O4soXHUsMdaAOPvPh5aXHjeTXwmkM091DeSyXGlRz3iSRJGirDcMcRx4iT I2MwLSFWUspT
EtPhJ9n1i2vf7Q01fs/lDzodK8u7u9l5a3O+7n80+dKfsuC+1fmldsfw16BF 4j0OW/sbGLWd
Ne9voRc2lut0hkuIiCRJGucspCsdwyMA+lFv4j0O5mvIbbWdNmls5ktrlI7p GaCV32JG4B+V
mf5Qp5J4HNAEut6JpWvWqWuuaZY6lbI4kWK8t0mRXAIDAMCM4JGfc1geO/BE Hi64tpLqeJY4
LWSEQTW4mjkc3FrOhkUkbo91qFZONyuRuXrXVWlzBeWsN1ZzRT206LJFLE4Z JEYZDKRwQQQQ
RUV5qVjZTQw3l7bW8s3+rSWVUZ/nRPlBPPzyRrx3dR1IoA5Twl4Fj8P6rZ38 cmmxNFDdxPba
bpiWVuWma2O5EViRgWozuZyS5+ZVCqNvwdo0/h7QLXSJbuK6trFFtrNlhMbr boiqiyHcweTA
5cBAc8KtQw+MfD7f2VHdaxptne6nDFPa2c97D50qy/c2hXIfJ4BQsCRwTWLp HxQ8OX3gi18R
vqFiIylkb6CC8jlOnvcuiATHI2hWc7i2OEY44xQB3VFRWlzBeWsN1ZzRT206 LJFLE4ZJEYZD
KRwQQQQRUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBBeruhUbd37yM4xn+Mex /l+I6ieq2oBW
gUOFI82I8nvvXHcd/f8AA9DZoAKpwWsEkbmW3iYl5Ad0Y5G5/wDZHZm7fxHk 5yblVtPCrAwQ
KB5sp4Pfe2e57+/4DoACQW8IEgEMYEgIf5R8wJJOfXlmP4n1rnJ/C0R1ONYg F0l1YzQ7jktz
kA9QrZyQOuD0ywbqKzp9Xt4dag01s+dKhYN2B5wD7kK35d+cRNR6idi7bwx2 8KRQIEjQYCjt
XHeLPCl9rH/CafZpbZf7a8Px6Vb+YzDZKv2vLPgHC/6QnIyeG46Z7WuaHjbR zrN5pSpq7X1o
jSTRro94QEG/DBhFtYN5ThSCd5XC7jgVewzmr34fXB0KKO2W2+3xeIL3W2SC 8msftXntcqoa
4hXzEZYp0yQGz5ez7pyNC48Em4+Htt4dkgsSrahBeXMEsstxE6fbluZkZ5dz ykjeCzY3sckI
DtXuqz9e1WDRdMe9uUlkUPHDHFEAXllkdY441yQAWd1UFiFGckgZIAOK1DwL c3Hje61HbFPY
3moW2pO8mqXcQgeBIVCfZIyIpjm3VhI7DBcZVhGA3P3fwz13VdUt31trG9gj SOK6mutTuLoX
+L6znkb7NJH5VuGS2k/dRkrl1X7qgj2C0lee1hllgltpJEV2hlKl4yRkqxUl cjocEj0JqWgD
P1vSLbWbVLe8kvo41cSA2d7NaPkAjl4nViOTwTjoccCs/UdB+2+OND1uSO2k i02yvIU8wZkS
WZrfa6ccfJHKpOQcPjkE1rWWoWt7c38FtLvlsZhb3C7SNkhjSQDkc/JIhyMj nHUEVaoA8Qs/
D2u+G7XRvCUNnFqDXV1ot9dXUS3Cpb/ZBaRyqr+QYWG2yLjfLGx34CE7d/QS fD/VTofgu2W4
sTc6BpMNs4LuEmuIp7CZVDbciNjZupfGV3g7W5Fd/wCHtVg17QNM1ezSVLbU LWK7iWUAOqSI
GAYAkZwRnBNZ/h7xXY659j8mK5t/t8Ml3Y+eq/6Xap5X79dpbap8+PCvtfnl Rg0Abdo07WsL
XkcUVyUUyxxSGRFfHIViqlgDnBKjPoOlS0UUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFAEF622F
Tu2/vIxnOP4x7j+f4HoZ6gvQTCu0uD5kZ+QkHG8egPHr7ZyQORPQAVTghSeN 2Z5SS8i/LMw6
M47MfU/kOBgAXKgsgRC24uT5kh+cknG8+oHHp7YwSOSAOECASDMnzgg/vG9S eOeOp6e3oMcj
P4WYaitnEZDpk4MsspI3qe4Bx1JCYJ5GDjoCnZ1Vk1C3j1KGxd8XMqGRV9QP 8/p9KicU9xNI
ltYFtraOGMsUQbQWbJ/OuF8a+HtU1L/hP/sVr5v9qeGYtPs/3ir5s4+25Tk8 f66Pk4HzdeDj
v659vGvhVb+4sW8S6IL238zzrc38XmReWCZNy7sjaFYtnoFOelXsM4DVvAF5 L4ZlUWVy01x4
gvL7ULeBreaa7tWnuzBGq3O6AqDNFL5b4VTvYAS9dqbwlcz/AAv07QJrKW6U ahaSy2l9JDKR
bLfxytG4RViAWEEeWgKKF2IXABPotVdU1C10qwlvL+XyrePAJClmZiQqqqgE szMQqqoJYkAA
kgUAedXfgV4l8WzWOlRKbjULL7Lbo6hJtOiishNbRoTsQSCCSIqdqvtQOdgU ipovgCK+8UW9
xrPhWxi8NKl89ppV5Fbypp5dbBVURKWjUs8F1J+7JH7wkkM5Feq2lwl1aw3E QlWOZFkUSxtG
4BGRuRgGU+oIBHQipaAPNfhR4a1DRLua68RaRv129srR5tYZopZAUtLWGS2k k3eYW82F5OAy
EEHduOK7rTbC5tLq9luNWvr6O4ffHDcJCEthknbGY41YjkD5yx+Uc9c24bmC eSeOCaKSS3cR
zKjgmNyqsFYDodrK2D2YHuKloA8K8J/D3W7LUfDk2q2upfbbSHTRHPBLYiGy iht4EmgaZka5
XLxz5jhPluJcFl8yRht+F/AEWiWvw8ln8K2M0mnaf5N7DDFb77e/kFoTdksQ rFPs7hpFLScr
tDc49Va5gW6jtWmiFzIjSJEXG9kUqGYDqQC6AntuHqKik1C1i1W3015cXtxD LcRR7T80cbRq
5zjAwZY+Ccndx0OAC1RUUNzBPJPHBNFJJbuI5lRwTG5VWCsB0O1lbB7MD3FS 0AFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFAEF6u6FRt3fvIzjGf4x7H+X4jqJ6ragMwLkqP3sXJC n+Nf7xx/X0yc
VZoAKrC1ZQwjuJYwSxwqoMEliT931bP/AAEZzzmzVTTNRtNUt3nsJ1niSWSB mXPDo5Rhz6Mp
+vUZBBot1AmETgSfv5DuBA4X5eTyOPcDnPQe+eKutEvhrKWv2iWSSb96uoHO 6ILnjrnIzgYI
GHOR1D91RUSgpCauRWsTQ20cckrTOowZG6tXn/jO21Vbr4h3WlQ3wuZPC0Ed lLbI+9rhTfkL
EV5MgLxnC8jcvqK9FoqxnkGraf4kXwzLcDUdbjNz4gvBeF47mdrewWe78hYo bd45tpcwENG2
4qwyTEoUat/pepah8KtNsL+TUr64fU7EtJ5MttcfZxqMTBsCRpY9sIB3O/mg Luch92PSqitr
mC6jMlrNFNGrvGWjcMA6MVdcjuGUqR2II7UAea3el6zar4tlt7rxA9vBqFla 20JuJnxp4isj
dPCf9ZJIUE43As4ZW8vEjPuqaLpF7rPii3t7iTxTH4UVL6SxMl7fWkuAtgF8 5y6zE+ab3aJT
nbkqNgWvWqiubmC1jEl1NFDGzpGGkcKC7sFRcnuWYKB3JA70Aea/CK2v1v73 UPEsOrxeINUt
bS8k81J0t2X7FaRyFkGIEm86OQFSBIAOmzFd/psWqx3V62p3tjcWzvm1jt7R 4XiTJ4kYyuJD
jbyFToeOcDQooA8VtrLxVZ+GfCBa58SXE0+iibWmlklaZSZ9OEyYGCsq24uQ gQCUkOy5lZmM
XhTSIfEXj+6RZPFJ0Sxe+ihkuL3ULaeEtBpLiNpHdZgGYzMEY4OCwBABr2q7 toLy1mtbyGKe
2nRo5YpUDJIjDBVgeCCCQQai0vTbHSLCKx0qytrGyiz5dvbRLFGmSScKoAGS SfqTQB518Ira
/W/vdQ8Sw6vF4g1S1tLyTzUnS3ZfsVpHIWQYgSbzo5AVIEgA6bMV6fRRQAUU UUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAF
FFFABRRRQAUUUUAMmQyIArbSGVs89AQccEen+II4qNVufl3TQnpnERGfu5/i /wB78x6HM9FA
HMeObPxJd6H5fhu+t4LrafOHllXlHHEb7sRnr1BPIwyY3VwHwgstYa7e50Jh p3h5XWO6gvIy
5mlVVD7FAUqwA27uAMAFW27I/Zqjt4IbdClvFHEhdpCqKFBZmLM3HcsSSe5J NbRrOMHCwrHH
fGHT7XV/BB03UIvOsrzU9Mt549xXfG9/bqwyCCMgnkHNef6nBrugeLbLWtXv M65Ppk+nz3/l
Rr5FjFfafC1ztGY1+WS5u8sCI/N2vuWOvdaKxGeNaZqct/490S6uPE8r6PbP eWFhrI+zBNV3
/wBnSLAZBH5TlpPtCARBGP2cgHcrk1Y/GfiCaw006b4giuNUvks21OCW3hlT RLuS9s4jatGg
R0BE9ypSVjJ+54dWVifb6KAOQ8b39zomkaLFJrUthaS3S22oa1KIVe3jEErC VmdPJQvKkSEl
Nv73CgErjx/RfEepadbXo0PVrE2k90RNrlxJBAFhfUNZYTNciGSNQ7xRKMxs mZSECmQMPo+i
gDyCx8Way2peFoNT1y2mF1sVbbRZ4HubvNzIgnkjnhVpbbykRmmtxH/y1dVM ZVo+f0/xL4i1
yxtRrepabceZe6TPd2EFwJptOuP7StP3LIlvH9nxukUxzSSSEpgE7JCff6KA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigAooooAKKyvFN7fafoV1c6VbfaLtNoC+W0mxSwDyeWuG k2KWfy1IZ9u1
SCwripPiZY6BpVu/iDUba/v7maVY4YbZdIaNY1jLCRL2ddrDzI2wWDMsisqF QWoA9Korypfi
3pNhLqVxe3f2u0ur1DpSeZb2mbU2NnMW3XDxL964B2s2/wCfgYU7dbW/iLG3 hjWtV8L2FzqN
vY6ZJejUGVFto5Psn2mNJEZ0mO5HiPyoR+8AyCG2gHf0VxUnjhoNVayudI1J NQlht2t9K2Qf
aHkka6JHmicxf6u0d8FlAC/eZmCLFJ8SrBWuWTSNXktrG1+16lcKINmnoJZ4 pBIDKGco1tNn
ylkzs+XdkZAOuv8AUrWweJLlpA0gJUJE8hIGMn5QfUfnVb+37D1uv/ASb/4m qviD/kLWH/XC
f/0KKvNfDfjK81HxL9he+0e83aje2Umn2kbC6sYoXmCTzHzWyreUi/cQZmXB 6BmkNI9U/t+w
9br/AMBJv/iaP7fsPW6/8BJv/ia8v0/4o6LqColnbXlzePcJbLa2rwXTFnjl kQl4ZXjAbyJB
yw24DPtQ7qL34qeHbTUdTs3eR3sUuS3lyws0j26O8saxeZ5qkCOTDOiodvDH cu52QWPUP7fs
PW6/8BJv/iaQ+ItODhC9zuIJA+yS5IHU/d9x+dea6l43uoL/AEyyh0DUF1CW 7WOfTpTAZzC8
Fy6SRsJvK5e3YfM+cI3HKk9bL/yFrb/rhL/6FHRZDsb39v2Hrdf+Ak3/AMTR /b9h63X/AICT
f/E1wVv4kmbw6dQuRHG/9stpo8uIuCv9om1XguOSuMtngknacbTmN4/kvYNE vdB0a8vtO1C+
NvFIr25N3H5Fw+6H98NpDQrkS7CASNu7gFkFj08+ItODhC9zuIJA+yS5IHU/ d9x+dL/b9h63
X/gJN/8AE1gy/wDIWtv+uEv/AKFHXJXuv6zpOv8AiFtTutPl0TR9OXVHit7B xcPE32jEYdp9
u5fIBztw2cYXrRYLHpf9v2Hrdf8AgJN/8TR/b9h63X/gJN/8TXmmu/E3Q9Cl to9VW4tXlh+0
ulw0MDxQF2VZDHJIrtuCM2xFaQAYZFYhTZ074haHf+LH8PwS5uxNLbo3nQnf LGGMieWHMq42
P8zoqnbwx3JuLILHoK+ItOYsFe5JU4YC0l4OM4Py+hFL/b9h63X/AICTf/E1 zkazN/aq2skc
dwZMRvIhdVbykwWUEEjPUAjPqOtcvpHifUbLwtqmueJp9PuILa7mtUS0iWzx 5V09uWZ559nz
FVYAsuOR8xIosgsel/2/Yet1/wCAk3/xNH9v2Hrdf+Ak3/xNeTWfxFiuNUvb +3t7y88OR6XB
dyzQeQy2RE10k7ud+6QDyf8All5gPlkrncC0SfFDTNFjeDxDdbrkXd6XbzII vJt0vZ4o22u6
tJhYiMRK7/JyMsu4shWPXT4i04OEL3O4gkD7JLkgdT933H50v9v2Hrdf+Ak3 /wATWDL/AMha
2/64S/8AoUdcle6/rOk6/wCIW1O60+XRNH05dUeK3sHFw8TfaMRh2n27l8gH O3DZxhetFh2P
S/7fsPW6/wDASb/4mj+37D1uv/ASb/4mvNNd+Juh6FLbR6qtxavLD9pdLhoY HigLsqyGOSRX
bcEZtiK0gAwyKxCmzp3xC0O/8WP4fglzdiaW3RvOhO+WMMZE8sOZVxsf5nRV O3hjuTcWQWPQ
v7fsPW6/8BJv/iaP7fsPW6/8BJv/AImuMl8W6bFrDabKZEuFvhYEttChjBHK H+9nZmaGPOP9
ZIi4+YE89ofxAl1rxFp1vpun3F1p97C0xAijjltlMNjKrOWmwygXbbto3ZwA p2lmLILHqn9v
2Hrdf+Ak3/xNH9v2Hrdf+Ak3/wATXnPw58VXGtaHoUWsWl5b6nd6XHeLNOId t4AsYkkTymba
N0iHDBD84wOGxe06+1nWrt7vTrnT7TSIbuW1aGe0eaebyZWjkYOJVWPLI4Ub X4AY/eKKWQWO
4/t+w9br/wABJv8A4mj+37D1uv8AwEm/+Jry/UvHIubGwbToLyyN7cWUtnPO kZW9tHvLeOR0
AZioKTpxIEb94MDIO29d+PdPg0rRb2Oy1C4/te0jvLWGJYw5Dy28SodzhQ26 6j74wG54GSyC
x6F/b9h63X/gJN/8TR/b9h63X/gJN/8AE15zL8QbKOFmfS9U81nEUEOId1xI LiO2lRT5m0GO
aVEYsVByShdRuqSTx3aLcQWK6ZqD63LNJD/ZW+3WdTHGkjfM0oibCSxNhXY4 fp8r7SyCx6Cf
EWnBwhe53EEgfZJckDqfu+4/Ol/t+w9br/wEm/8AiawZf+Qtbf8AXCX/ANCj q3RYLGn/AG/Y
et1/4CTf/E0f2/Yet1/4CTf/ABNZlFFg5TT/ALfsPW6/8BJv/iaP7fsPW6/8 BJv/AImsyiiw
cpp/2/Yet1/4CTf/ABNH9v2Hrdf+Ak3/AMTWZRRYOU0/7fsPW6/8BJv/AImj +37D1uv/AAEm
/wDiazKKLBymn/b9h63X/gJN/wDE0f2/Yet1/wCAk3/xNZlFFg5TT/t+w9br /wABJv8A4mj+
37D1uv8AwEm/+JrMoosHKaf9v2Hrdf8AgJN/8TR/b9h63X/gJN/8TWZRRYOU 0/7fsPW6/wDA
Sb/4mj+37D1uv/ASb/4msyiiwcpp/wBv2Hrdf+Ak3/xNH9v2Hrdf+Ak3/wAT WZRRYOU0/wC3
7D1uv/ASb/4mj+37D1uv/ASb/wCJrMoosHKaOuXVrJbT2Q10aVdHb++hkh82 PkHhZVZeRxyp
4PGDg1yy6BokcgvLbxdcwa2zyPNqqT2hnnEixKysjRmEDbb24+WNT+6HOWct oS391HL5X9q3
jy43eXHBG7AeuFjJx70n2++/5/dW/wDAAf8AxqiwrFA+HvD8N7LfaX4pudO1 F3J+1x3kM8gQ
w28TR5nWQMGFpAxZgX3KfmwxBml0Pw4730X/AAkMg0vUITDf6c17HJHeZgEB eSVwZ93lrGMr
IuSgJySxaz9vvv8An91b/wAAB/8AGqPt99/z+6t/4AD/AONUWFYoTaBok90t /P4uuZNZjSFI
tSM9oJYzGbnDBBGIiSl3NGcoRtwQAw3UJ4a8KrpmuWX9t5XWdPbT7yU3cW9t z3EjyjjAkZ7u
VjgbRwFVQMVf+333/P7q3/gAP/jVH2++/wCf3Vv/AAAH/wAaosFi5qd1Bfal ayWc0c8cUUiu
8bBlBYpgZHGflPHbjPUZxYvD1gug3+jzLJPYXz3TTpI+CwuJHkkXK4IGZGAx yBjnPNXvt99/
z+6t/wCAA/8AjVH2++/5/dW/8AB/8aplI56y8GRRa9DrF9rGqalfwvGyPciB QAkdxGq4jiQY
xdSn1zt5wMEvfBVrd22p2b6nqiaZfJchrGORFjje4D+bIp2b2JMkjBXZkBbI UbV29D9vvv8A
n91b/wAAB/8AGqPt99/z+6t/4AD/AONUBcyNX8K2uo6s2qLd3lpqISFYbiAo TAYvPAZVdWUk
rcyqdwYYIIAIBrVl/wCQtbf9cJf/AEKOmz6rc28TSz6jqcUa9XeyCgfiYqSP WJ5EV49T1JkY
ZDLZgg/+QqAuYcPgyJBPE2sapJYSX39orZsIPLim+1i6yrCIPjzARgsflYjr giKPwJaLcT3z
anqD63LNHN/auy3WdTHG8a/KsQibCSyrlkY4fr8qbej/ALVuf+gjqf8A4BD/ AONUf2rc/wDQ
R1P/AMAh/wDGqAFl/wCQtbf9cJf/AEKOs7V/DNnqv9ufaJbhf7X05dMn2Mo2 xL52CmQcN+/f
k5HC8dc6H9q3P/QR1P8A8Ah/8ao/tW5/6COp/wDgEP8A41QFzP1bw7Hf6kb2 LUdQsJZYUt7o
Wjov2mJWYqjMVLJjzJMNGUb5z82QpBp3h2Ow1J7iDUdQFoZpbhNP3oIElkZm kfIUO2Wd22u7
KC2Qo2pt0P7Vuf8AoI6n/wCAQ/8AjVH9q3P/AEEdT/8AAIf/ABqgLi2X/Hzq H/Xcf+i0rKk8
K2p06K2t7u8tpoL6fUbe6jKGSGaZ5WcqGUoRieRAGU4Df3gGrU/tW5/6COp/ +AQ/+NUf2rc/
9BHU/wDwCH/xqgDk4vhzaRrcxnWtYeC9heDUIm+z4vUeaeZw5EQK5NzKMxlD gjGCM1eTwVaw
Tyy2Op6pZG4eU3f2eRFNyjzyz+WWKFkCtPKA0ZRwG+8SFI3v7Vuf+gjqf/gE P/jVH9q3P/QR
1P8A8Ah/8aoAWX/kLW3/AFwl/wDQo6ztX8M2eq/259oluF/tfTl0yfYyjbEv nYKZBw379+Tk
cLx1zof2rc/9BHU//AIf/GqP7Vuf+gjqf/gEP/jVAXM/VvDsd/qRvYtR1Cwl lhS3uhaOi/aY
lZiqMxUsmPMkw0ZRvnPzZCkGneHY7DUnuINR1AWhmluE0/eggSWRmaR8hQ7Z Z3ba7soLZCja
m3Q/tW5/6COp/wDgEP8A41R/atz/ANBHU/8AwCH/AMaoC5l6p4S03UbnVLmU SR3F/brAZYto
aBlORNEduVlysJ38/wDHvD/cFRW3g3T7LVRqGmTXFhOJg4W3EYQReVBG1uEK ECMi1h6YYFfl
ZQSK2f7Vuf8AoI6n/wCAQ/8AjVH9q3P/AEEdT/8AAIf/ABqgDP0jwzZ6V/Yf 2eW4b+yNObTI
N7Kd0TeTkvgDLfuE5GBy3HTB/wAI+YdS+06dq2oafbNN581jAITBK5bLkh42 Zd/8QRlBJLfe
ZmOh/atz/wBBHU//AACH/wAao/tW5/6COp/+AQ/+NUAc5B4C0+NbSOS91CaC x8lLCJ2jAs4o
pophEhVAWUm3hBMhdsJwwJYmOL4fWST2JfVNUltdPSOKxtGMIjto0ngmVFIj DsM20S5dmO0H
nJzXT/2rc/8AQR1P/wAAh/8AGqP7Vuf+gjqf/gEP/jVAGDN4G02WW0kae8Bt ria5TDry0t7F
eMD8vTzIVA/2SRycEGt+CbLWF1KG6vLz7BqdwLi+swsLR3GI4YwpLRllAECk FGVgSSGBC7d7
+1bn/oI6n/4BD/41R/atz/0EdT/8Ah/8aoAWX/kLW3/XCX/0KOrdU/7Vuf8A oI6n/wCAQ/8A
jVH9q3P/AEEdT/8AAIf/ABqgLlyiqf8Aatz/ANBHU/8AwCH/AMao/tW5/wCg jqf/AIBD/wCN
UBcuUVT/ALVuf+gjqf8A4BD/AONUf2rc/wDQR1P/AMAh/wDGqAuXKKp/2rc/ 9BHU/wDwCH/x
qj+1bn/oI6n/AOAQ/wDjVAXLlFU/7Vuf+gjqf/gEP/jVH9q3P/QR1P8A8Ah/ 8aoC5coqn/at
z/0EdT/8Ah/8ao/tW5/6COp/+AQ/+NUBcuUVT/tW5/6COp/+AQ/+NUf2rc/9 BHU//AIf/GqA
uXKKp/2rc/8AQR1P/wAAh/8AGqP7Vuf+gjqf/gEP/jVAXLlFU/7Vuf8AoI6n /wCAQ/8AjVH9
q3P/AEEdT/8AAIf/ABqgLlyiqf8Aatz/ANBHU/8AwCH/AMao/tW5/wCgjqf/ AIBD/wCNUBcu
UVT/ALVuf+gjqf8A4BD/AONUf2rc/wDQR1P/AMAh/wDGqAuNvL2bRbK3isrb 7bcSy7G++C7b
WLOdquf4emMAYGcCqya/rTgkeH5CMkfKZuoOD1hFV9Sv0hvLKWRXaJLhi+2N pMDy3GSFRu5H
8J69utSQ6/p4Q7hNnc3Wxl6ZOP8Al2P+ew6CopW2Mm3fc1rbWkOlSX2oeXYp EJDP5r4WEISG
LMQMAbSTnGKNI8Q6ZrVs9xo+o2WoW6t5bS2syyqrAAkEqSM4IOPcVwviySW+ +HPiaC2hmea4
s79YYljYO5YSbQF2g5ORgYHXoKy9U0jVpNb0y6u9Wnee8uktr2TSontUFrFb 3bKrZd2G6SUg
vuHVNu1gGMPctbHrn2rryKPtXXkV4L4qv9XttN1y4gn1qHV411N7uTfOtslo Ibg27RE/uQ4/
0U5j/eZ3bv8AlpUmqTapJFKnh+51238OmW38+S8iv5rgNtuPM2qXW6K7vsf+ rYL97qPNBQz3
K61GG0tpri6migt4UMkksjBVRQMliTwABk5NC6jC1zJbrNEbiNFkeIMCyqxY KxHUAlWAPfaf
Q14adN17VdG161ubzVrrdoDQ2UUwa2inmka9RSyu7HcI2iGJHLYZGlG8Aqa3 LqkkuzQrnXbf
QTFaebJcxX00oXdfb8LvW5LeZ9nzsYNt2ZzHwQD3b7V15FH2rryK8Ss5tYjv /Dy3Vzq2qY2h
bdoruwEaee5895VdkfEQQeRcMXYICSHdkf077WPX9aALlr4hWe3tpDa3UM13 GstpA4XzLhWG
QUwxB685I2jlto5LIPs2oQvdQwNY3XmSI3ChhIrlW3hSVflT3PXggnNZ2ka2 kejPB5d+kd4G
ku5I90Mlm0i4KwoVyxU/MzDGWJZdxO0N0u9DWMYCCNELRoBGYgVViqsEPKgg AhT0BxzSTA2I
J280wXG0TAZUrwsi+o/qO3uCCbFY00ySptYkYOQwPKn1Hv8A4+h5uWF75x8m YgTgZBHAceo/
qO30wTaY0y7RRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDmyckn1pK7 rw1/yBLb/gX/
AKEapaz4w0bRtVbT9QnuUuEhS5ldLKeSGCJ2dVkllVDHEuY3yzsoAUk4AzUE HJUV6bRQB5dc
wRXNvLBcxRzQSqUkjkUMrqRggg8EEdqkr02qseoWsuq3GmpLm9t4YriWPafl jkaRUOcYOTFJ
wDkbeeoyAeeUV6bRQB5lRXptFAHmVFem0UAeZU10V1w4BGcj2PqPQ+9en0UA ecw6heQgAmO4
Uf3/AJG/76HH6VZGsrjmzuc/8A/+KrvaKdx3OD/tlf8Anzuv/HP/AIqj+2V/ 587r/wAc/wDi
q7yijmC7OD/tlf8Anzuv/HP/AIqj+2V/587r/wAc/wDiq7yijmC7OD/tlf8A nzuv/HP/AIqj
+2V/587r/wAc/wDiq7yijmC7OD/tlf8Anzuv/HP/AIqj+2V/587r/wAc/wDi q7yijmC7OD/t
lf8Anzuv/HP/AIqj+2V/587r/wAc/wDiq7yijmC7OD/tlf8Anzuv/HP/AIqj +2V/587r/wAc
/wDiq7yijmC7OD/tlf8Anzuv/HP/AIqj+2V/587r/wAc/wDiq7yijmC7OD/t lf8Anzuv/HP/
AIqj+2V/587r/wAc/wDiq7yijmC7OD/tlf8Anzuv/HP/AIqj+2V/587r/wAc /wDiq7yoLaZp
ZrpGAAilCLjuNitz+LGncLnFf2yv/Pndf+Of/FUf2yv/AD53X/jn/wAVXZXu oWtlc2EFzLsl
vpjb267Sd8gjeQjgcfJG5ycDjHUgUaZqFrqds89jL5sSTTW7NtK4kikaOQcg dHRhnocZGRzS
5guzjf7ZX/nzuv8Axz/4qj+2V/587r/xz/4qus0PVYNZspLq1SVI47q4tCJA Ad8MzwueCeC0
ZI9sdOlaFHMF2cH/AGyv/Pndf+Of/FUf2yv/AD53X/jn/wAVXeUUcwXZwf8A bK/8+d1/45/8
VR/bK/8APndf+Of/ABVd5RRzBdnB/wBsr/z53X/jn/xVH9sr/wA+d1/45/8A FV3lFHMF2cH/
AGyv/Pndf+Of/FUf2yv/AD53X/jn/wAVXeUUcwXZwf8AbK/8+d1/45/8VR/b K/8APndf+Of/
ABVd5RRzBdnB/wBsr/z53X/jn/xVH9sr/wA+d1/45/8AFV3lFHMF2cH/AGyv /Pndf+Of/FUf
2yv/AD53X/jn/wAVXeUUcwXZwf8AbK/8+d1/45/8VR/bK/8APndf+Of/ABVd 5RRzBdnB/wBs
r/z53X/jn/xVH9sr/wA+d1/45/8AFV3lQafM1xYW07gB5IlcgdMkA07hcp+G v+QJbf8AAv8A
0I1zGt+D7nXfGmsy3l7fWuhXmk2ljPDbmHZfASXRlikLI0ijZKoyhQ/vDhsj 5aKa7eWaiCFs
Rp0GfXn+tO/4Sa//AL/6mjlEUD4Kmt9I8240P+0zL4gvb7UtOaSOVr61aW7N vGBK4iKq08Uw
jZlVSHbHmEg8q/he8m1jWtMPhr7RrT6LH/ZV3m3/AOJB5t5qLW3zs4aPylaI f6OH2+ThchUz
3P8Awk1//f8A1NH/AAk1/wD3/wBTRyiuchrvw91u5ufFcsdrqU+qXsOqBbrz bGO3uYp45lt4
PMCfapNokhXy5WWNTHkNiOMN2Fx4B0r/AIS6YXPh2K+0m90ldNS53I0lpzdN cM8jsJczC5AL
oWZm3lyPvFP+Emv/AO/+po/4Sa//AL/6mjlC5o/C+C6u9KPiLVLz7de6pDAk V15Qi820iUiF
9i8L5peW4wQGT7R5Zz5Yrta85/4Sa/8A7/6mj/hJr/8Av/qaOULno1Fec/8A CTX/APf/AFNH
/CTX/wDf/U0coXPRqK85/wCEmv8A+/8AqaP+Emv/AO/+po5QuejUV5z/AMJN f/3/ANTR/wAJ
Nf8A9/8AU0coXPRqK85/4Sa//v8A6mj/AISa/wD7/wCpo5QuejUV5z/wk1// AH/1NH/CTX/9
/wDU0coXPRqK85/4Sa//AL/6mj/hJr/+/wDqaOULno1Fec/8JNf/AN/9TR/w k1//AH/1NHKF
z0aivOf+Emv/AO/+po/4Sa//AL/6mjlC56NRXnP/AAk1/wD3/wBTR/wk1/8A 3/1NHKFz0aiv
Of8AhJr/APv/AKmj/hJr/wDv/qaOULno1Fec/wDCTX/9/wDU0f8ACTX/APf/ AFNHKFz0aivO
f+Emv/7/AOpo/wCEmv8A+/8AqaOULno1U7H/AI+tR/67j/0VHXC/8JNf/wB/ 9TUjeIb9bWOb
zfvOyY54wFP/ALN+lFrDOi8cafdX2hGXS4vN1Swmiv7NAwRpJImDGJXJGzzU DwlugWVsgjIP
mvj7wNrf/CN6dpum2lzqd3p2mMtjqFjDYpP/AGiwJluJnuiXj3uIpA8DeZu8 1mbOw11f9s61
/wA8bj/vhqZLr+qwhTMHj3ZxvBGf85pWXcVzl9R8MeI7HRfG0FvoVzqEviGy vrK3W2uLceQz
XuoSI8vmSJhWS8iI27iMMGCkAHV8NeDdRsviPNq15FqTXBvbueS/32aW81vI ZPJh3qhu5div
CPLkKxqYsqSI4w1//hJr/wDv/qaP+Emv/wC/+pp8oXPRqK85/wCEmv8A+/8A qaP+Emv/AO/+
po5QuejUV5z/AMJNf/3/ANTR/wAJNf8A9/8AU0coXPRqK85/4Sa//v8A6mj/ AISa/wD7/wCp
o5QuejUV5z/wk1//AH/1NH/CTX/9/wDU0coXPRqK85/4Sa//AL/6mj/hJr/+ /wDqaOULno1F
ec/8JNf/AN/9TR/wk1//AH/1NHKFz0aivOf+Emv/AO/+po/4Sa//AL/6mjlC 56NRXnP/AAk1
/wD3/wBTR/wk1/8A3/1NHKFz0aqejf8AIHsf+uEf/oIrhf8AhJr/APv/AKmu htTfz20M327b
5iB8bCcZGfWh2S1Glc4e6/17fh/Koq7HTfDNtqFlHdSzTK8mchcY4JHp7Va/ 4Q2y/wCfi4/N
f8KOYLHCVwWtppcPjKObztF1PUmubcfYLiJZb2DJRd0Lbsxoi/viuw/xtkbs r7x/whtl/wA/
Fx+a/wCFH/CG2X/Pxcfmv+FPmQWPm3R/EV0NJ0TztZSwui2lw2+mpHBGt3BK tv5jhCm7GZJl
zGVUeXgAFTnovBeoalJ/wj/2/UZr/wDtXSGv5POjiXypF8jhPLRflPnNnduP yrgjnPsN38Nt
HvL+G7uZ7+SSHbsjNw3k5U5VjFnYWB5DFSQQCDwMX/8AhDbL/n4uPzX/AApX CxwlFd3/AMIb
Zf8APxcfmv8AhR/whtl/z8XH5r/hT5kFjhKK7v8A4Q2y/wCfi4/Nf8KP+ENs v+fi4/Nf8KOZ
BY4Siu7/AOENsv8An4uPzX/Cj/hDbL/n4uPzX/CjmQWOEoru/wDhDbL/AJ+L j81/wo/4Q2y/
5+Lj81/wo5kFjhKK7v8A4Q2y/wCfi4/Nf8KP+ENsv+fi4/Nf8KOZBY4Siu7/ AOENsv8An4uP
zX/Cj/hDbL/n4uPzX/CjmQWOEoru/wDhDbL/AJ+Lj81/wo/4Q2y/5+Lj81/w o5kFjhKK7v8A
4Q2y/wCfi4/Nf8KP+ENsv+fi4/Nf8KOZBY4Siu7/AOENsv8An4uPzX/Cj/hD bL/n4uPzX/Cj
mQWOEoru/wDhDbL/AJ+Lj81/wo/4Q2y/5+Lj81/wo5kFjhKK7v8A4Q2y/wCf i4/Nf8KP+ENs
v+fi4/Nf8KOZBY4Siu7/AOENsv8An4uPzX/Cj/hDbL/n4uPzX/CjmQWOEoru /wDhDbL/AJ+L
j81/wo/4Q2y/5+Lj81/wo5kFjhKnutx0ePYMt5kuPrtSu0/4Q2y/5+Lj81/w px8J2jRrAZ59
qEuDxnLYHp/silzILHF3t1Y/2NHAYZJXFxczETQocebKZMAeVN03Y7ZxnHpy Pi4Wg+GXiD7G
ZY2NjeGW3NskMaN5RwylYIS25QuSVPTA6c+wf8IbZf8APxcfmv8AhR/whtl/ z8XH5r/hWrrX
i0zGNFRkmj54vfD19bazoUa3X2f7HczafpE3lq/kRNZ3Dh9ufm2/uY8Pyfs+ 7P7w10Wk6pru
pwXF/bWNqBuS2WyuLrYsbxhhOwkWNiSJCYsFcHydwOGFey/8IbZf8/Fx+a/4 VX0/wDpen2Ft
ZWctxHbW0SwxJuB2ooAAyRk8AdayubWPF7L+wf7Xb/hJ/wCzP+Ek+3SfZvt3 l+d5fmn7P5O7
+HZsxs437s/PvrnW8XavLqbQWOpWoN20UiQzSR3E1jm8t4/KliSOMxnbOysj M7ZXAcFST9Jf
8IbZf8/Fx+a/4Uf8IbZf8/Fx+a/4UXCx49r8c50q7tdXurK10lIo/wDiY3Ny N0rhk+WeLYib
HOVZQ43AlQBu44631IafNEujRaRb2qrOrahplpHHDJGZrASXMf3gojSSQMSz Luhy2Qu1fpL/
AIQ2y/5+Lj81/wAKjuPA9hPBJC9zeBJFKEpJsYAjHDLgg+4IIouFjwDRNSvt Z8RS6bZeKrq4
0+NrlkvLdbV2lCR2RClhEUIDTy9AD2J4rtfDF/LqvhrSdRuFRZru0huHVAQo Z0DEDJJxk+te
haZ8PNJ0yBorSa8AZt7vJKZZJGwBlnfLMcADJJwAB0AFXP8AhDbL/n4uPzX/ AAo5gscJRXd/
8IbZf8/Fx+a/4Uf8IbZf8/Fx+a/4U+ZBY4Siu7/4Q2y/5+Lj81/wo/4Q2y/5 +Lj81/wo5kFj
hKK7v/hDbL/n4uPzX/Cj/hDbL/n4uPzX/CjmQWOEoru/+ENsv+fi4/Nf8KP+ ENsv+fi4/Nf8
KOZBY4Siu7/4Q2y/5+Lj81/wo/4Q2y/5+Lj81/wo5kFjhK9D0v8A5Blp/wBc U/8AQRVf/hDb
L/n4uPzX/CtCKFbaNIEJKxAICepA4rOo7lQJPDX/ACBLb/gX/oRrTrK8Nh/7 Ft8MoHzdR/tH
3rTw/wDeX/vn/wCvTJHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f ++f/AK9GH/vL
/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9G H/vL/wB8/wD1
6AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8 /wD16AHUU3D/
AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHU U3D/AN5f++f/
AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f ++f/AK9GH/vL
/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9G H/vL/wB8/wD1
6AHUU3D/AN5f++f/AK9GH/vL/wB8/wD16AHUU3D/AN5f++f/AK9GH/vL/wB8 /wD16AHU0f61
v90f1ow/95f++f8A69MAfzW+Zc4H8P196QyWim4f+8v/AHz/APXow/8AeX/v n/69MQ6im4f+
8v8A3z/9ejD/AN5f++f/AK9ADqKbh/7y/wDfP/16MP8A3l/75/8Ar0AOopuH /vL/AN8//Xow
/wDeX/vn/wCvQA6im4f+8v8A3z/9ejD/AN5f++f/AK9ADqKbh/7y/wDfP/16 MP8A3l/75/8A
r0AOopuH/vL/AN8//Xow/wDeX/vn/wCvQA6im4f+8v8A3z/9ejD/AN5f++f/ AK9ADqKbh/7y
/wDfP/16MP8A3l/75/8Ar0AOopuH/vL/AN8//Xow/wDeX/vn/wCvQA6s2b/W v/vGtDD/AN5f
++f/AK9Z0v8ArXz1yaiRcQ8Nf8gS2/4F/wChGtOsLQLh00mBQFwN3X/eNaH2 t/Rfyqrk2LtF
Uvtb+i/lR9rf0X8qLhYu0VS+1v6L+VH2t/RfyouFi7RVL7W/ov5Ufa39F/Ki 4WLtFUvtb+i/
lR9rf0X8qLhYu0VS+1v6L+VH2t/RfyouFi7RVL7W/ov5Ufa39F/Ki4WLtFUv tb+i/lR9rf0X
8qLhYu0VS+1v6L+VH2t/RfyouFi7RVL7W/ov5Ufa39F/Ki4WLtFUvtb+i/lR 9rf0X8qLhYu0
VS+1v6L+VH2t/RfyouFi7RVL7W/ov5Ufa39F/Ki4WLtFUvtb+i/lR9rf0X8q LhYu0VS+1v6L
+VH2t/RfyouFi7RVL7W/ov5Ufa39F/Ki4WLtNH+tb/dH9aqfa39F/Kk+0vuJ wuSMUXCxeoql
9rf0X8qPtb+i/lRcLF2iqX2t/Rfyo+1v6L+VFwsXaKpfa39F/Kj7W/ov5UXC xdoql9rf0X8q
Ptb+i/lRcLF2iqX2t/Rfyo+1v6L+VFwsXaKpfa39F/Kj7W/ov5UXCxdoql9r f0X8qPtb+i/l
RcLF2iqX2t/Rfyo+1v6L+VFwsXaKpfa39F/Kj7W/ov5UXCxdoql9rf0X8qPt b+i/lRcLF2s2
b/Wv/vGpftb+i/lUDHcxJ6k5qZMqKP/Z
--------------000002080701050908070309
Content-Type: image/jpeg;
name="RealDataModel.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="RealDataModel.jpg"

/9j/4AAQSkZJRgABAQEAAAAAAAD/4Q2MRXhpZgAASUkqAAgAAAACADIBAgAU AAAAJgAAAGmH
BAABAAAAOgAAAEAAAAAyMDEwOjAyOjE3IDE0OjE1OjU5AAAAAAAAAAMAAwEE AAEAAAAGAAAA
AQIEAAEAAABqAAAAAgIEAAEAAAAaDQAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEA AQAA/9sAQwAG
BAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAs ICMmJykqKRkf
LTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgAZACgAwEiAAIRAQMRAf/E AB8AAAEFAQEB
AQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQEC AwAEEQUSITFB
BhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5 OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Sl pqeoqaqys7S1
tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E AB8BAAMBAQEB
AQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYS
QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4 OTpDREVGR0hJ
SlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKj pKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/a AAwDAQACEQMR
AD8A+kVgsjLP51ojv5h5+zlv1xTvs+nf8+Kf+Ah/+Jou0ieBhNPNCPPbBi6k 4PHQ8YyfwrNv
xbS388J1K7h3pHHhQ2DnBG0j+I4HT1Pc8ccoXkyuhAdPDz3QS0MW5ZAjvAWU EsNpCgZHGaYu
nXieYB9jcDAjzYkEjI+98noO3qfbDsadcpuh124EJbHyufvHbxu/Lj3HrV7R 5LEXUsUGqSXL
3D+ZHHIxJQAk4Ge3UfRe+DQqdguR6bZ7GJv7e3kBzgJaHjpt52Dn72fwx3rQ +z6d/wA+Kf8A
gIf/AImsG80/TVmlia6aOUuW3orBgW+YdW9xyAOwGO8jmylMc9pqdwgeUTbZ DIBsyFxjGeow
PVmx1o9mFzTjjgEerCKFUjEYIXy9uDsPbFT/AGfTv+fFP/AQ/wDxNNWRJk1O SM5R4FZTjGQU
OKmkSD+0dxuJxIOPLH3M7enT05xn3qqkdIgiP7Pp3/Pin/gIf/iayLixVr+Y wWRRDnY5gOwf
u8D5cf3uelS2lvaXi+XFqsrSNGrqI3YMBhTu6nIwP/Hj6ina6bC8n+zXE5V0 kC42M2GZOAAD
nOOnbJxg1HsguUJNLvAJhEbY5ZTGzWZHAxkEeWeuPXufUY1dNtIEtsX9rFJO WY5S0OAuflH3
Bk4xnjrmshxpbvJJDrc6Oi7ZBlxgDjPsMnryPmHqMutEs0t/Ol1Oe6V2VeVd 4lZpBgEfxDcC
v0GOtU6YXN8Qaaelin/gIf8A4mo44rVdVtRBbLHlJN37kpnp6gZrBaCwUiKL WrlFh3yEQ7i5
B+boM845z/unHrv2toLXUbYhtxm3ueCMHYi9CSR92nCnaSYXG2kFgbWEvZIz FFyfspOTj128
1L9n07/nxT/wEP8A8TTQkLJYGS4mjcJHhU+6eRjPHGTx2rIuoLX7Zc7dYlgj LOGVS+UdnJJH
bOQQP9045yajku2AQ6cjfb1a0eMurCJ2hJAO5sEYBwMYqWGwdL2MtHbNaCR9 yGzYsUwNnOzr
nOfwp8k+nXWmpZveu+5UALxud5D8cDk5KkDB5xwajuNMsbURTG7eNJN6J5OQ G8xeDkk5+7nr
jgcerVOwXuav2fTv+fFP/AQ//E1DNDZrc2XkWqxsZgMiApxtbjOKz9Ku7Ozu 3c6hM8CwbsTb
2OCwGSemBt+uWOe1ast5b3ctp9nk37Z1zwR2cd/cEexBFVGnaSC4kxh8yaO5 efHmFggt96/U
HYf50x/sLzLK7TtKpyrmzyQfUHy/YVt0V02JMDyNM2Ku2Tap3AfYhgHjn/V+ w/KmQ3OkxX/k
wzTJdqm7CWeGCnPfy+nWuiqGe1gnIM0Ssw6MRyPoeoosBkOmnOSX85icDJs8 9OB/yzprw6a8
LRHzghXbgWeOM7v+efrz9ea1PLubf/Uv58f9yU4YfRu/4/nT4buORxG26Kb/ AJ5yDDfh2P4Z
osBlWEKpa6hFaiYwrCscW+MqcBCAAMDNSmW1MvmGa6MmMbvsvOPr5dbFFOwG JF9hiOYmnQ7d
uVs8cen+r6cCkZdPaYSsZzKGDBzZ85AwDny+oHFE3iKKNZP9CvC6pvClVG4Y yMfN7/hz6Gr2
k6kmpxyvFDNGiMFzIF+Y4B4wT0yPx47GiwGMbfRLksil28qUb1S0Aw4AOGxH 6EHB9qstFprI
qMJSi/dU2QwOc8fu/Xmr+mQRRXeptGgUvcAsR3Plof6mr9FgOejttMQkgTEk 7smzzz0/55+n
H0qzA6yanaeS9w6Ijg74dgXpj+EVsUUWAxIngEUAnkufNiUDBts7CB2OyoRb aWC5KyszszsW
s8kkkk5Jj9Sa3Z5o4E3TOEGcDPc+g9TVdpp5seWBbRscB5R87fRe34/lSsBj XEujWksMkzSR
yFlSN/sXO7PAB8v1PFWnNi6KrvcMqY2g2mQMcDH7vtk1pRWUKOJGXzJhz5kn zN+Hp9BgVZos
BgiLTRnAlGRtP+hDkZzj/V+oBqOK3tY9Qhks/tBeWdWkBgKLgK3P3Rjkn866 KinYAooooAz9
U0uPUXiMssiKisuExk5K85I4+729aw/7G0xb0WDzXYaOLfvaVRkAKOeMnjB/ P0rrKMDOcDNA
HLJ4Wtrv5pftVrEAUEO5d2Rhd24Z4IXOPUk9TW7BpttCkyCMNHK+8owG1TgD gY46VcooAqeR
cQf8e0vmJ/zzmJP5P1/PP4U6O8RnEcytBKeAknG76HofwNWaivNgtZjLGJEV SxQjIOBmgCuk
V4t/cSb0a3fARS5BXgZ4x65+ufaprFZ0soEu2VrhUAkZTkM2OT0H8hXOeILf xMkdu3heexhZ
ZAZYL52eN07gMFLKf0+la1zqU9qiGe1QuULMI5cgYxnkgetZ+1h3HZlmx/4+ dQ/67j/0WlW6
4/QUl0K81+e+vFlivL83CmWRgkQKAbNxXHG3HXoB3q34hPie5ksV8PtplrAX 3XMtwzO+z0Rd
uM9eSaftY9wsdFPNHAm+Z1Rc4Ge59B6n2qv5lzcf6lPIj/56SD5j9F7fj+VQ WwEN5Es8W6aQ
MBKz7245I6DA+nFaVUmpK6EQQWscT+Yd0kxGDI5y3/1h7DArP8S29tcWtst5 FM6+eigxLkqW
yuScHC4JzWvRTAxdL0yG11Sae2WQxMGYSGVWUsx+ZQMZGMCtqiigAooooAKK KKACiiigAooo
oAKr6jzp9zzj9038jViobyMy2c8ajLPGygZxyRQBRaR1uzBvvuP+WnlJs6Z6 7fw+tYV3qFhf
zxRXC6hI2xmXHlj5du5umOw9/wBa3dz/APQP1H/wIX/45TCgMok/sy/8wDaH 89c49M+ZWKor
qO5na5DaxzKLhDOzMT+8KAZUA/3SMnI646Z7CnW+smVygW+Yh0QMgjKsWBxj IBxkEZIA4plj
qzXd9qNumnajm1cRg+Ycbvc78HqOnv6Vo2zXH2eP7Tp96J9o3iO4BXPfGZM4 o9kguV9Nvo9R
vLWaGSdkV3QiUIDnYG6L04YcHn2roKx7a2I1CGSOynt0BdnaSRSCSMZwGPPv WxWkY8qsIKKK
KoAooooAKKKKACiiigAooooAKKKKACiiigArK1G41aOV1sbSKVdyhWcgDbjk /ez17Y7e/GrR
QBm6KZmfUDdIiS/acYXpjYmD1PatKqGmTxTXWpiKRHMdyEfac7W8qPg+9X6A CiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAyLi+u4rW2mXyGMxA2lSMZUt13e1Up fEJgXdcPEqhV
Y7YyxGQp6bs4w3X2NWoLWKext1ms7iVdinDSgjOOoG+rKwhVCrbXYUDAAn6f +P1z2qX3K0ON
0O/stFudVns0maTUJ/t1wDFu2MwUEcOf9o/gR6A7MnitEneIEMyqT8sWRkdu HPtz09MgGtry
v+ne8/7/AP8A9nR5X/Tvef8Af/8A+zp+/wBxaEsE8v21oJjGw8sOCqle5GOp q3WXZrt1iT93
Mn7gf6x92fmPua1K1je2ogoooqgCiiigAooooAKKKKACiiigAooooAKKKKAK X9mwDhZLpR2C
3MgA+gzR/ZsP/PW7/wDAmT/4qiigA/s2H/nrd/8AgTJ/8VR/ZsP/AD1u/wDw Jk/+KoooAktr
KK3laRDKzsu0mSVn4/EmrNFFABRRRQAUUUUAFFFFAH//2f/bAEMABgQFBgUE BgYFBgcHBggK
EAoKCQkKFA4PDBAXFBgYFxQWFhodJR8aGyMcFhYgLCAjJicpKikZHy0wLSgw JSgpKP/bAEMB
BwcHCggKEwoKEygaFhooKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgo
KCgoKCgoKCgoKP/AABEIARoBwAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA AAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEH InEUMoGRoQgj
QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX WFlaY2RlZmdo
aWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6 wsPExcbHyMnK
0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEB AAAAAAAAAQID
BAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2Fx EyIygQgUQpGh
scEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVW V1hZWmNkZWZn
aGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4 ubrCw8TFxsfI
ycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APoj xDptnLNpMHkL
HHNdlZPJJjLAQytjcuDjKg9e1J/wimk/88rn/wADJv8A4urmt/8AH/of/X43 /pPNWjXJXclL
RlIwv+EU0n/nlc/+Bk3/AMXR/wAIppP/ADyuf/Ayb/4ut2iseafdjML/AIRT Sf8Anlc/+Bk3
/wAXR/wimk/88rn/AMDJv/i63aKOafdgecw6bYzNcFtU0+02XE0QhmmnLqEk ZBk/aByQueg6
1r+HtB03UNLWeZXkfzZo98N3OEcJIyBgPMPUKD1NVNL12G1jvIH8RaFZsl9d gwXQHmJ/pEnX
96v16Dg1u+CZhcaD5yzRTq93dsJYvuP/AKTJ8y8ng9uT9aiLnp7z+9lyt2Oc 0UaLqY02R9G1
qxt9SUNZzXN6SsxMZkCgJOzKSis3zAD5SM5wDfsbTwfqCSPYalBdJGyI7Q6q 7hWdtqA4k4LH
gDueBVKw8DgfD6OwdZ11h9INoFu72WaKCZoPLJVSzImMsuUHCkgcHBqXvh7U 9bkjfUbbV7lI
2gjaPVnsdrRG7t5JQEgGGGyEk72HQABtxxtdt/EZmwtp4PZLJ11KApesUtWG qvi4YNtIj/ef
MQSBgZ5OKk/s7wp/av8AZf22P+0/+fT+1JPO+7u+55mfu89OnNJ4t07UJr+S XS7SeSS6tltp
GVoHt5dpfal1HKN3lDzGyYsuQzgjhM1/7O1P7L/Y39mz7f7X/tD7f5kXkeX9 t+1Yxv8AM3bf
l+5jd32/NSvL+b8QLNlp3hS+uza2V7HcXIiWYww6pI7iMgEPtEmdpDKQenzD 1rQ/4RTSf+eV
z/4GTf8AxdZWh6Bc2Gg+BLVbNIX01le8RCoEbG0mRzwcMTJIMkZyWJ9TXZUm 5LZsZhf8IppP
/PK5/wDAyb/4uj/hFNJ/55XP/gZN/wDF1u0UuafdhYwv+EU0n/nlc/8AgZN/ 8XWZ4h0Sx0vT
PtlmkyzxzwY33MrqQZUBBVmIIIJHIrsKwvG3/Iuy/wDXe3/9HJVQlLmWoM1Y LKzkgjc2dtll
BOIh6Vi3WjWN94iuoZomWKK0gZEhleIAs8wJ+QjP3V6+ldFaf8esP+4v8qzY v+Rpv/8Arztv
/Q566611B2JW5U/4RTSf+eVz/wCBk3/xdH/CKaT/AM8rn/wMm/8Ai63aK4ua fcowv+EU0n/n
lc/+Bk3/AMXR/wAIppP/ADyuf/Ayb/4ut2ijmn3YGF/wimk/88rn/wADJv8A 4uj/AIRTSf8A
nlc/+Bk3/wAXW7RRzT7sDzTTdPsrzTrW5k1jS4HmiWRomluMoSMlT/pI6dOn atVNO0eDwcuu
31vdFUsPtsyQ3c2cCPewUGT64yfxqr4Y8QwReG9JjbxR4dhZbSJTFKBvTCD5 W/fDkdDwPoK0
VtJ9S+EQs7NPNubrQvKiTIXc7W+AMngZJHWog5XXvP72XK3YztTk8Nad4TXX 5rTU3gK5+ypd
SG4DDO9CnmY3oFcuM/KI3z901p/2d4U/tX+y/tsf9p/8+n9qSed93d9zzM/d 56dOareJfCk9
zbeIjafvY7ixuDZWm8BVupoykjAEBVztUhs5zNOSfno/s7U/sv8AY39mz7f7 X/tD7f5kXkeX
9t+1Yxv8zdt+X7mN3fb81bXdt395mVbC78C3tjLdrqkEUEU7W7NLq7Lhgzqp /wBbjDCNmX1X
mtNtO8KL9n3XsY+0eX5OdUk/e+Zny9v7zndtbbjrtOOlUrKy1XSdZS4/si6v IrZtQUG3lhHm
i6uVnVl3yLwoTa27B3EbQwywseDdAubDXtQ1G/s0je4g/dOSrPH5l3dTtESC cECWHdglSRwW
xmht73f3gav/AAimk/8APK5/8DJv/i6P+EU0n/nlc/8AgZN/8XW7RUc0+7HY wv8AhFNJ/wCe
Vz/4GTf/ABdH/CKaT/zyuf8AwMm/+Lrdoo5p92FjC/4RTSf+eVz/AOBk3/xd H/CKaT/zyuf/
AAMm/wDi63aKOafdhY5/wVHDfeGrGa6t7eSUxqGcxjLfKOT70y60axvvEd1F NEyxRWkDIkMr
xAFnmBOEIyflXr6VJ8PP+RTsf9xf/QRV2L/kab//AK87b/0Oeu2tdQdiVuVP +EU0n/nlc/8A
gZN/8XR/wimk/wDPK5/8DJv/AIut2iuLmn3ZVjC/4RTSf+eVz/4GTf8AxdH/ AAimk/8APK5/
8DJv/i63aKOafdhYwv8AhFNJ/wCeVz/4GTf/ABdctDptjM1wW1TT7TZcTRCG aacuoSRkGT9o
HJC56DrXo1cLpeuw2sd5C/iLQrNkvrsGC6A8xP8ASJOv71evXoODUtzb1k/v ZS0Rb8PaDpuo
aYs8yvI/mzR74bucI4SRkDAeYeoUHqazrSGwuNXbTj4Y8QwzosUkrSX6bYkk ZlVzi5JIzG/A
BPy9ORno/BMouNB85Zopw93dsJYvuP8A6TJ8y8ng9RyfrU1rZzp4u1K9ZMW0 1jawo+Ry6SXB
YY68CRPz9jVQlK2rFK1zFjsfC5IWa4EErTm3WOTVG3M/mOigYlPLGN8Dr8pB AIIElpp3hS9v
5rGzvY7i9g3ebbxapI8ke04O5RJkYJAOe9ReDtAubDxFq1/fWaIZVkSCYlWb a19dykAg5AKy
QsR9O6nGf4S0HVrWXQLTUjq7x6OoAaeSzFruWBocxeWvnMPnO0Pt+XljuG02 29fe/Ek6X/hF
NJ/55XP/AIGTf/F0f8IppP8Azyuf/Ayb/wCLrdoqOafdjsYX/CKaT/zyuf8A wMm/+Lo/4RTS
f+eVz/4GTf8AxdbtFHNPuwsYX/CKaT/zyuf/AAMm/wDi6h8IW9vLbXsMtvFI tvdzRI0i722i
RgAWOScAAc10dYHgz/mL/wDX/P8A+jXrfDuTbuxMteJIEubjRYpDIqteHJjk aNv9RMeGUgj8
DTv7CtP+e2o/+DG4/wDi6frX/IQ0P/r8b/0nmpviaO6l0h1sY55JvNhJSCUR SMglUuFYsuCU
DdxTrXTugQn9hWn/AD21H/wY3H/xdH9hWn/PbUf/AAY3H/xdYTW940tt9j0n xBbyC5hZpbjU
1eNYxIpfcv2hsjZuGNpq/wCO5TDpELtepaQCceaZbmS0jkXa2Fa4QFoRu2nd /EVCfx1jBylv
oNpLYvf2Faf89tR/8GNx/wDF0f2Faf8APbUf/Bjcf/F1y3h7xDBZXryapfTw 2k9jCtklzOZT
cOs9yGFucBp8r5O1gC7o0RbJYZ5/Q5b26+HniHWLjVdUe8tNMU2/+luqxudL gdnwCNzFnLfN
nB+ZcEsTpyvuI9J/sK0/57aj/wCDG4/+Lo/sK0/57aj/AODG4/8Ai65rW3Ph zUViFxqN3Bea
fcSXRnvZBmQS26CXfnFuiiaRmaIKFXJC/IoHP2eq3dxBqtpY6g8Fus+k+TcW mpS34BlvDHIy
TzINwIUKVG5AVYdS4o5X3A9F/sK0/wCe2o/+DG4/+Lo/sK0/57aj/wCDG4/+ LrknW4sbjUZI
dR1Epp2tWVjaxS3TyKsUxtfN3biTKW89xmQtt42bcVn+BtQvrvVNG86+tf7Q dS2pwLrE91Nn
yWLK9qU2WxEuzOCoUjYD820nK+4He/2Faf8APbUf/Bjcf/F1n6qmgaP5X9ra xJY+bny/tOsS
xb8YzjdIM4yPzFaupPAt7pInup4JGuWEMcZIWd/JlOx8DldoZuccovsDzHjS /wD7N8XaHN/a
+l6Tusb1PP1FN0bfvLU7QPMj+bjPXoDx3CSbAtzXXhaC0t7qfxCkdtc7vImf XJAku04baxlw
2DwcdKvw6fpU/wBn8i/u5PtERmh2apOfNjG3LriTlfmXkcfMPUVz02qwW9zF qa+L/D0FzeWy
RPcz25+y3CRyS7fJPngblMjhxvf+HhcjPN+LpoTpceuTTPpjjStVSC5tLuW1 hmuBKjRPGFcA
mbDyhctvGMl9oNVyvuI9Jl0nT4niSW6vkeZtkatqc4LttLYH7zk4Vjj0BPap P7CtP+e2o/8A
gxuP/i65L4jLcaD4Yj+wajqPnyNdySTvdOXdhp9y2euFG5FYKoVQQCAKPE63 GhX9rb2uo6i0
F5AZb+Wa6djsW6tEkkBziECKackxhAoOeNi7VyvuM63+wrT/AJ7aj/4Mbj/4 usfxbpVvbaI8
0cl6zrPBgSXs0i/65ByrMQfxFQ+DLixk8TazDo2oXV9pqWdo6PLeS3UZkZ7g MY3kZgRhVBKn
GVI6gitbxv8A8i5L/wBd7f8A9HJQk1JAbdp/x6w/7i/yrEuLGK98U3nnPcrs s7fHk3EkXV5+
uxhnp3rbtP8Aj1h/3F/lWdD/AMjTqH/Xnbf+hz10VPhYkN/sK0/57aj/AODG 4/8Ai6P7CtP+
e2o/+DG4/wDi6qeJIbt9QsXitNRu7NYphKlldiBg5MewnMiZGA/c9ah0SG7X XI5BYatZ2Ytp
Fk+3XonDSFo9mAJXwQA/PHWuLmle1i7Kxo/2Faf89tR/8GNx/wDF0f2Faf8A PbUf/Bjcf/F1
g+IrnTl8TSw+JNWfTdPWzhe0J1F7FZJS8olwyOm8gLDkEnbkdN3J4dudOm1u UajqzjxCLy6R
bF9RdD5SySCP/Rt4XHkhGB2cjD8k7q0syTe/sK0/57aj/wCDG4/+Lo/sK0/5 7aj/AODG4/8A
i64rwtaXF7b+FIbvV9XlTU9Fa9vCbx1aV0FuEAYYMYHmtkxlS+BvL857Pwde T6j4R0O9vJPM
ubmxgmlfAG52jUk4HA5J6UNNdQG3Gk6fbW8s9xdX0UESl5JJNTnVUUDJJJkw AB3rIi1HwhKk
rxeJoXSFd8jLrzkIu4Lk/veBllGT3IHel8QvBJ8I9Sezup7y2bQ5TFczkmSZ Ps52uxIBLEYJ
yByaxPEPiCK68HeJ0n8V+GtRT+yrgCKxQRuGZdqkkzvwSwXGOSy89i1Fgdjb 6Tp9zbxT291f
SwSqHjkj1OdldSMggiTBBHeiLSdPleVIrq+d4W2SKupzko20Ng/vODhlOD2I PeuS1SV7nT/G
2t22q3sn9n5n07yLthAmLGGUMFU7ZFLEHa25PQfM27L13ZpPiHVgl48El1qo knjutYntIzaG
zQ+aXBJjT7QqoJFHUCLIU7aOV9wPRf7CtP8AntqP/gxuP/i6P7CtP+e2o/8A gxuP/i64LT79
Ge3XXNZSDw47XJhuINYnMQdVttifbW8tpTlro43EdRz5eFzLbVZSQl7feXpi +eLR9V1660xy
Re3Ssu7BeVlRIAVc5T5eBuNHK+4HqH9hWn/PbUf/AAY3H/xdZ9omgXt/PY2e sSXF7Bu823i1
iV5I9pwdyiTIwSAc965rS7PWtU0PxLNLqWoz65DAILVI53to1nbToCWCfJgl 3Jw4AQ8gIdxO
vqGpaRqdtpmneHLi1kv7a8tXjtLfCy2kSSr5u5ODCBF5iEMF+9s6sFJyvuBr afp2m6jYW17Z
3OoyW1zEs0T/AG+5G5GAKnBfI4I61JBpOn3CF4Lq+lQMyFk1OdgGVirDiTqC CCOxBFcN8Pru
z+weDI9I1p7+/eCOPUbdb3zhDCLVzgwg7YgsiwruChs4BJLNuzxfzwXD22o3 6Lp8LXCWsmo+
IbjTyzLe3SMBIoLTFUSEEMTsG3H3zT5X3A9N/sK0/wCe2o/+DG4/+LqODSdP uELwXV9KgZkL
Jqc7AMrFWHEnUEEEdiCK5bw9dwy6hGni7Wni1pWtVtYWvZbIXANvCSwt8pvD TGUfMmcgoR8u
0afw6tbSxt9UtYbidr2O+ufPt57ySZ4kNxMYmKOx2b0Ibdgb87iT1pOLXUC9 8PP+RTsf9xf/
AEEVJcWMV74ovPOe5XZZ2+PJuJIurz9djDPTvUfw8/5FOx/3F/8AQRV6H/ka dQ/687b/ANDn
roqfCxIb/YVp/wA9tR/8GNx/8XR/YVp/z21H/wAGNx/8XVTxJDdvqFi8VpqN 3ZrFMJEsbsQM
HJj2E5kTIwH7nrUOiQ3a65HILDVrSzFtIsn269E4aQtHs2gSvggB+eOtcXNK 9rF2Vi62k6et
wkDXV8J3VnWM6nPuZVIDEDzMkAsuT23D1qT+wrT/AJ7aj/4Mbj/4uud8Y6Za Xfi7SXv7690+
OexubOO5gvpLbE7SQeWikMFLn5yFwd2zkNsGMSfVLy6j0vUfEOpvo1vPqCWF x5N35EIEVpP5
y5LHaTcGWMsCCRFGVOQrnXlb6kne/wBhWn/PbUf/AAY3H/xdH9hWn/PbUf8A wY3H/wAXXnV9
qki3Qjh1FJfDAnnFtd3WtzWkUhEVqVAvF3PId73QCliDtb/nmAO/8FyXEvhu 1e7nS4ctLskj
keVTF5jeWBI6q0gCbR5hHz43ZOckcWuoE39hWn/PbUf/AAY3H/xdZFhdeFtR u0tdP8QpdXMm
dkMGuSO7YBJwolyeAT+FbuhvA9lIbW6nuoxc3AMkxJYOJnDoMgfKrBlHsoxn rXnHhHUINU8E
afo154n0Se2n0gW8thZQFr5U+z4KriZyXUZyBGc4PyjsJMDrtLk8N6tcNBpe ufbZ1XeY7bWp
ZGC5AyQshOMkc+9X7fSdPubeKe3ur6WCVQ8ckepzsrqRkEESYII71ztlrC6t qllZPrOg68kz
SKRpSNHNZjyZP3+9ZnKj/lnkbTmUYbscj4Y2UM9xBapqeosmnaVpzz2S6hKV hvMzB1dd2UK7
ADFkL/eQ4XByvuB3MGk6fcIXgur6VAzIWTU52AZWKsOJOoIII7EEVJ/YVp/z 21H/AMGNx/8A
F1x3hmCbXdf1iHUdS1Q21vvKQw3skI3fb75AdyENwkaqADjAGQdq7cC41sXf grU7/XNYvYde
/syOfT47e8lt3kBsopPMWGJlDr5zSkvtIG1gSFTAOV9wPUP7CtP+e2o/+DG4 /wDi6P7CtP8A
ntqP/gxuP/i61aKnUDK/sK0/57aj/wCDG4/+Lqj4HQRR6pGpYql7OoLMWOBK /Unkn3NdHXPe
DOur/wDX/P8A+jXraje7Ey/rP/IQ0P8A6/G/9J5q06zNZ/5CGhf9fjf+k81H iaO6l0d1sY55
JvNhJSCURSMglUuFYsuCUDdxVVF1BGnVe/vILC0kubuTZCmASAWJJIAVQOWY kgBQCSSAASa5
Vre9aW1+x6T4gt5Bcws0txqavGsYkUvuX7Q2Rs3DG01c+IlpHeaDaxzNOqjU 7DmGd4jzdRKe
UIPRjj0OCMEAjKF5bqw2ktjesLuO+tI7mBZ1jfOBPA8L8HHKOAw6dx71YrzW 3uYbeSKOPVro
+Jo9VFutjJqMryG1F3sybdnII+y/NvKkkfvCc/NVdWu7PwB4Xv5NQupzqK2z alcX2qS20Yj+
zOy5mUHyRv8ALG5QC52hixYk6cgj1KivMfDy3Or61Z2k2rTtpTxXskaafqk8 yOi/YwF+0sqv
JiR5TuU8ZKbsBkqO71jdZwWd27tLbz3cULz61c2LXCrdSxJHH5IZ7mRViUEE FvmQ/MXNHIB6
lRXlLahqV9oF5q82p3y3Vp4Us9TjSKXy4zdFLlvNZVwDygyn3GH3lbC4seJ5 73SNWk0+O/nk
04/ZJ7yW91F7ZR5i3gZmuFBMKs8MGFQKm7CgAOQTkA9Oormfh/NNPpd273UF zbfaSLVoLyS8
RY9iZAuJFUy/P5hzyBnbn5cDX0x4GvdWEF1PPItyomjkJKwP5MRCJkcLtKtx n5nb3AXKBX/4
SfQPt/2H+3NL+2+b5H2f7XH5nmZxs25zuzxjrmnweINFuNTOnQavp0uoBmQ2 qXKNKGXO4bAc
5GDkY4wa43wrrXk3k9j/AMJP4dt86xeJ/Z80Wbo7ryX5QfPHzNnj5O44Pc0z VILKHStIs9Z0
TV7W3ltrWLSjbFb5EV0UM4MpIeIASNmJceW3CdVfIB6FBNFcIXglSVAzIWRg wDKxVhx3BBBH
Ygio5GS6iuoLe62TJmJ3hKs8LlQRwQQGAZWAYHqOCDXmPhnTLY+Jo9GTVNUi Yf2rNeWaanNv
2i8TyCwL7o9yPvDLtL5ySwZs6gW41X4i3+nXGo6jHYI1yxhguniDBYNOKrlS GUBpHb5SpyTz
hmBOQDr9I0cafcXFzNe3V/eTqkb3FyIw3loWKoBGqrgF3OcZ+Y5JAAFTxx/y Lkv/AF3t/wD0
clcfYX9tNeT2/ibVb6G0g82DT1S+mgkuGS8uomRTGwedwkduMfO2SD1cltUT S3Pwl0Se5leW
eW1095JJGLM7FoiSSeSSe9NR1A7a0/49Yf8AcX+VZ8H/ACNOof8AXnbf+hz1 oWn/AB6Q/wC4
v8qz7f8A5GnUP+vO2/8AQ56uWqEadFc/4lhu5NQsXitNRu7NYphKljdiBg5M ewnMiZGBJ3PW
odDgvF1yOQWGrWlmLaRZPt16Jw0haPZgCV8EASc8da5m5c1uXQuytubyXkD3 81ksmbmGJJnT
B4Ry4U56cmN/y9xViuF1yaWHxtqQkle20ttOshfXUTESQx+Zd45GCiE8NIOU HOF5kjr6pqOr
6Xq93H5jtp+kztqk0skhZjaysmd+D8yKGvyqAZH2aHg8b9eQk9CorM8Mw3kO g2f9ql/7QkUz
3Ku+/wAuVyXeNTk/IpYqoycKoGTjNSaG8D2Uhtbqe6j+03AMkxJYOJnDoMgf KrblH+yoxnrS
5QKcHi3w3cOUg8QaPK4VnKpexsQqqWY8N0ABJPYAmtOwvbXUbSO60+5guraT OyaCQOjYODhh
weQR+Fee/DjxDEnh/QYLnxX4aaCHTozJZogS4jVIckMxnIBUDLHZ0U8L2j8A QR67aaZC2p
Re: [Databinding] TreeViewer with items that contain lists (that should appear as subtrees) [message #517451 is a reply to message #514569] Sun, 28 February 2010 07:06 Go to previous message
Matthew Hall is currently offline Matthew HallFriend
Messages: 368
Registered: July 2009
Senior Member
Philipp Kursawe wrote:
> Currently I am doing:
> items = new WritableList();
> IListProperty childrenProp = new DelegatingListProperty() {
> IListProperty inputChildren = BeanProperties.list(Results.class,
> "successes");
> IListProperty elementChildren = BeanProperties.list(Result.class,
> "status");
> protected IListProperty doGetDelegate(Object source) {
> if (source instanceof Results)
> return inputChildren;
> if (source instanceof Result)
> return elementChildren;
> return null;
> }
> };
> ViewerSupport.bind(viewer, items, childrenProp,
> BeanProperties.values(columnNames));

One thing that's missing here is the ability to treat a sequence of
value properties as a list property, e.g.:

IListProperty propList = new ValueListProperty(
new IValueProperty[] {
BeanProperties.value(Foo.class, "bar"),
BeanProperties.value(Foo.class, "baz")
} );

Foo foo = new Foo().setBar("aaa").setBaz("bbb");

IObservableList fooProps = propList.observe(foo);
=> ["aaa", "bbb"]

We don't have something like that in DataBinding at this time. Would
you like to file a bug for this?

Matthew
Previous Topic:model/TreeView synchronization problem.
Next Topic:Wrapped text widget anywhere?
Goto Forum:
  


Current Time: Fri Apr 26 04:44:21 GMT 2024

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

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

Back to the top