Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [EMF] How to create an instance of an ecore model
[EMF] How to create an instance of an ecore model [message #427157] Wed, 04 February 2009 17:51 Go to next message
Miguel Angel Garcia de Dios is currently offline Miguel Angel Garcia de DiosFriend
Messages: 22
Registered: July 2009
Junior Member
Hi,
I think my question is easy for us but i have spend too much time in it:
I want to create a simply ecore model and then i want to instanciate it
and check some OCL queries on it.
My purpose is to create an instance of an ecore model which contains as
instances of a class named Person as I want.
These are my steps:
1.- Create the ecore model. It is compoused by two classes:
-People, which contains an EReference with multiplicity 0..* to the
EClass Person.
-Person, which contains only an EAttribute named "name" with String type.
2.- Create automatically the .genmodel file from the ecore model .
3.- Generate the Java code aotumatically fron the .genmodel.
4.- Launch an Eclipse application from the project.
5.- Create an instance of the ecore model.
My probles is in the last step: I begin the model with an instance of
People and hten I desire to create as number of instances of Person as I
want but I cannot do that. I don't know the reason. I've seen the
EXTLibrary example too many times but I cannot get my desired result.
Being more exaclty, the idea is to be a EClass which can generate as
many Person as I want. That class is People. I've tried many possibilies
changing the class properties obtaining different errors.
Can somebody tell me how to create an ecore model that has an EClass
which can generates as many instances of another class as I want?
Thank you in advance!
Re: [EMF] How to create an instance of an ecore model [message #427159 is a reply to message #427157] Wed, 04 February 2009 18:06 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33141
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------060801030103030800010203
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Miguel,

Comments below.


Miguel Angel Garcia de Dios wrote:
> Hi,
> I think my question is easy for us but i have spend too much time in it:
> I want to create a simply ecore model and then i want to instanciate
> it and check some OCL queries on it.
> My purpose is to create an instance of an ecore model which contains
> as instances of a class named Person as I want.
> These are my steps:
> 1.- Create the ecore model. It is compoused by two classes:
> -People, which contains an EReference with multiplicity 0..*
> to the EClass Person.
> -Person, which contains only an EAttribute named "name" with
> String type.
> 2.- Create automatically the .genmodel file from the ecore model .
> 3.- Generate the Java code aotumatically fron the .genmodel.
> 4.- Launch an Eclipse application from the project.
> 5.- Create an instance of the ecore model.
> My probles is in the last step: I begin the model with an instance of
> People and hten I desire to create as number of instances of Person as
> I want but I cannot do that. I don't know the reason. I've seen the
> EXTLibrary example too many times but I cannot get my desired result.
The lack of there being a containment reference is the likely reason.
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will *not *change, so you'll need to update
those as well to support children and child creation.
> Being more exaclty, the idea is to be a EClass which can generate as
> many Person as I want. That class is People. I've tried many
> possibilies changing the class properties obtaining different errors.
> Can somebody tell me how to create an ecore model that has an EClass
> which can generates as many instances of another class as I want?
> Thank you in advance!
>

--------------060801030103030800010203
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">
Miguel,<br>
<br>
Comments below.<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<blockquote cite="mid:gmckjs$qfp$1@build.eclipse.org" type="cite">Hi,
<br>
I think my question is easy for us but i have spend too much time in
it:
<br>
I want to create a simply ecore model and then i want to instanciate it
and check some OCL queries on it.
<br>
My purpose is to create an instance of an ecore model which contains as
instances of a class named Person as I want.
<br>
These are my steps:
<br>
&nbsp;&nbsp;&nbsp;&nbsp;1.- Create the ecore model. It is compoused by two classes:
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; -People, which contains an EReference with multiplicity 0..* to
the EClass Person.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; -Person, which contains only an EAttribute named "name" with
String type.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;2.- Create automatically the .genmodel file from the ecore model .
<br>
&nbsp;&nbsp;&nbsp;&nbsp;3.- Generate the Java code aotumatically fron the .genmodel.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;4.- Launch an Eclipse application from the project.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;5.- Create an instance of the ecore model.
<br>
My probles is in the last step: I begin the model with an instance of
People and hten I desire to create as number of instances of Person as
I want but I cannot do that. I don't know the reason. I've seen the
EXTLibrary example too many times but I cannot get my desired result.
<br>
</blockquote>
The lack of there being a containment reference is the likely reason.&nbsp;
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will <b>not </b>change, so you'll need to
update those as well to support children and child creation.<br>
<blockquote cite="mid:gmckjs$qfp$1@build.eclipse.org" type="cite">Being
more exaclty, the idea is to be a EClass which can generate as many
Person as I want. That class is People. I've tried many possibilies
changing the class properties obtaining different errors.
<br>
Can somebody tell me how to create an ecore model that has an EClass
which can generates as many instances of another class as I want?
<br>
Thank you in advance!
<br>
&nbsp;&nbsp;&nbsp;&nbsp;
<br>
</blockquote>
</body>
</html>

--------------060801030103030800010203--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: [EMF] How to create an instance of an ecore model [message #427161 is a reply to message #427159] Wed, 04 February 2009 18:47 Go to previous messageGo to next message
Miguel Angel Garcia de Dios is currently offline Miguel Angel Garcia de DiosFriend
Messages: 22
Registered: July 2009
Junior Member
Ed Merks,
I have the containment property of my desired container class in true,
the GenFeature properties are also update: containment=true and the
GenEdit properties contains children=true and create children=true.
I hope you can be more explicity with the solution of my problem please.
The last error I've obtained is when I create My.container file from a
Poeple object. Hten I click on it and I get the nex error:

Unhandled event loop exception:
java.lang.UnsupportedOperationException
at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
at
org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
at
org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
at
org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)

A lot of thanks!
And always sorry for my bad English.

Ed Merks wrote:
> Miguel,
>
> Comments below.
>
>
> Miguel Angel Garcia de Dios wrote:
>> Hi,
>> I think my question is easy for us but i have spend too much time in it:
>> I want to create a simply ecore model and then i want to instanciate
>> it and check some OCL queries on it.
>> My purpose is to create an instance of an ecore model which contains
>> as instances of a class named Person as I want.
>> These are my steps:
>> 1.- Create the ecore model. It is compoused by two classes:
>> -People, which contains an EReference with multiplicity 0..*
>> to the EClass Person.
>> -Person, which contains only an EAttribute named "name" with
>> String type.
>> 2.- Create automatically the .genmodel file from the ecore model .
>> 3.- Generate the Java code aotumatically fron the .genmodel.
>> 4.- Launch an Eclipse application from the project.
>> 5.- Create an instance of the ecore model.
>> My probles is in the last step: I begin the model with an instance of
>> People and hten I desire to create as number of instances of Person as
>> I want but I cannot do that. I don't know the reason. I've seen the
>> EXTLibrary example too many times but I cannot get my desired result.
> The lack of there being a containment reference is the likely reason.
> And note that even if you change it in the Ecore model, the GenFeature
> properties for the feature will *not *change, so you'll need to update
> those as well to support children and child creation.
>> Being more exaclty, the idea is to be a EClass which can generate as
>> many Person as I want. That class is People. I've tried many
>> possibilies changing the class properties obtaining different errors.
>> Can somebody tell me how to create an ecore model that has an EClass
>> which can generates as many instances of another class as I want?
>> Thank you in advance!
>>
Re: [EMF] How to create an instance of an ecore model [message #427165 is a reply to message #427161] Wed, 04 February 2009 19:32 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33141
Registered: July 2009
Senior Member
Miguel,

Did you mark the feature as volatile such that no code is generated for it?


Miguel Angel Garcia de Dios wrote:
> Ed Merks,
> I have the containment property of my desired container class in true,
> the GenFeature properties are also update: containment=true and the
> GenEdit properties contains children=true and create children=true.
> I hope you can be more explicity with the solution of my problem please.
> The last error I've obtained is when I create My.container file from a
> Poeple object. Hten I click on it and I get the nex error:
>
> Unhandled event loop exception:
> java.lang.UnsupportedOperationException
> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>
> at
> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>
> at
> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>
> at
> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>
> at
> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>
> at
> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>
> at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
> at
> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
> at
> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
> at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>
> at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>
> A lot of thanks!
> And always sorry for my bad English.
>
> Ed Merks wrote:
>> Miguel,
>>
>> Comments below.
>>
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Hi,
>>> I think my question is easy for us but i have spend too much time in
>>> it:
>>> I want to create a simply ecore model and then i want to instanciate
>>> it and check some OCL queries on it.
>>> My purpose is to create an instance of an ecore model which contains
>>> as instances of a class named Person as I want.
>>> These are my steps:
>>> 1.- Create the ecore model. It is compoused by two classes:
>>> -People, which contains an EReference with multiplicity 0..*
>>> to the EClass Person.
>>> -Person, which contains only an EAttribute named "name" with
>>> String type.
>>> 2.- Create automatically the .genmodel file from the ecore model .
>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>> 4.- Launch an Eclipse application from the project.
>>> 5.- Create an instance of the ecore model.
>>> My probles is in the last step: I begin the model with an instance
>>> of People and hten I desire to create as number of instances of
>>> Person as I want but I cannot do that. I don't know the reason. I've
>>> seen the EXTLibrary example too many times but I cannot get my
>>> desired result.
>> The lack of there being a containment reference is the likely
>> reason. And note that even if you change it in the Ecore model, the
>> GenFeature properties for the feature will *not *change, so you'll
>> need to update those as well to support children and child creation.
>>> Being more exaclty, the idea is to be a EClass which can generate as
>>> many Person as I want. That class is People. I've tried many
>>> possibilies changing the class properties obtaining different errors.
>>> Can somebody tell me how to create an ecore model that has an EClass
>>> which can generates as many instances of another class as I want?
>>> Thank you in advance!
>>>


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: [EMF] How to create an instance of an ecore model [message #427180 is a reply to message #427165] Thu, 05 February 2009 09:29 Go to previous messageGo to next message
Miguel Angel Garcia de Dios is currently offline Miguel Angel Garcia de DiosFriend
Messages: 22
Registered: July 2009
Junior Member
This is a multi-part message in MIME format.
--------------050408040500070401030408
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Ed Merks,
Yes, I did. I marked the feature as volatile.
I think it cannot be so complicated. Maybe any value of a property is
not correct so, to ensure that I'm going to attach screenshots for
everything (it is not so much).

I am really concerned with that because I think it should be easier.
Thank you in advance!

Ed Merks wrote:
> Miguel,
>
> Did you mark the feature as volatile such that no code is generated for it?
>
>
> Miguel Angel Garcia de Dios wrote:
>> Ed Merks,
>> I have the containment property of my desired container class in true,
>> the GenFeature properties are also update: containment=true and the
>> GenEdit properties contains children=true and create children=true.
>> I hope you can be more explicity with the solution of my problem please.
>> The last error I've obtained is when I create My.container file from a
>> Poeple object. Hten I click on it and I get the nex error:
>>
>> Unhandled event loop exception:
>> java.lang.UnsupportedOperationException
>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>
>> at
>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>
>> at
>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>> at
>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
>> at
>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>> at
>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>> at
>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>
>> at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>
>> A lot of thanks!
>> And always sorry for my bad English.
>>
>> Ed Merks wrote:
>>> Miguel,
>>>
>>> Comments below.
>>>
>>>
>>> Miguel Angel Garcia de Dios wrote:
>>>> Hi,
>>>> I think my question is easy for us but i have spend too much time in
>>>> it:
>>>> I want to create a simply ecore model and then i want to instanciate
>>>> it and check some OCL queries on it.
>>>> My purpose is to create an instance of an ecore model which contains
>>>> as instances of a class named Person as I want.
>>>> These are my steps:
>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>> -People, which contains an EReference with multiplicity 0..*
>>>> to the EClass Person.
>>>> -Person, which contains only an EAttribute named "name" with
>>>> String type.
>>>> 2.- Create automatically the .genmodel file from the ecore model .
>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>> 4.- Launch an Eclipse application from the project.
>>>> 5.- Create an instance of the ecore model.
>>>> My probles is in the last step: I begin the model with an instance
>>>> of People and hten I desire to create as number of instances of
>>>> Person as I want but I cannot do that. I don't know the reason. I've
>>>> seen the EXTLibrary example too many times but I cannot get my
>>>> desired result.
>>> The lack of there being a containment reference is the likely
>>> reason. And note that even if you change it in the Ecore model, the
>>> GenFeature properties for the feature will *not *change, so you'll
>>> need to update those as well to support children and child creation.
>>>> Being more exaclty, the idea is to be a EClass which can generate as
>>>> many Person as I want. That class is People. I've tried many
>>>> possibilies changing the class properties obtaining different errors.
>>>> Can somebody tell me how to create an ecore model that has an EClass
>>>> which can generates as many instances of another class as I want?
>>>> Thank you in advance!
>>>>


--------------050408040500070401030408
Content-Type: image/png;
name="ecore.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="ecore.png"

iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkR MiAkDQoAACAA
SURBVHja7N13XFX148fxNypLVJDlHjgwczQcmebImZliKZqZflsOpKWCuQEt V46yqfb92q8y
V9ssN4gNpdQy9wIERcAZyryX+/tDOXKVcQEtx+v5fZwH3PM553M+53PO7fv2 8zn3YmexWCwC
AADAHaMUXQAAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAAAEQAAAABEAAAAAQAAEAAEAABAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AAACIAAAAAiAAAAAIAACAACAAAgAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAIAACAACAAAgA AAACIAAAAAiA
AAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgA AAACIAAAAAiA
AAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAEAABAAAAAEQAAAA BEAAAAAQAAEA
AEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAACA
AAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgA AAACIAAAAIqj
DF0AW/0ds4NO+JfYl/eUJK1f+6MaNm0ur8rV6BTcEJHrvlW7rn50xC3KzbMy nQACIK4vizmL
TviXZJ5LkCR17txFGzas175dvxMEAQDFZmexWCx0A2xx7uBPdMJNwL68lyRp Y3gEIRA3BKOA
ty5GAGErRgBhs2xGAG8KGedOSJI6PdxBG8MjJIkQCAAgAOLGsJisA+DWTa8X uH2rjhPptBso
/VSsOrZ/SJs2/3TDQuDPS/oVWN5m4AouBAAQAHFbB8A8RgC7jAjPc9tDa17S 1k2v64H2r9Fx
NzIEJsfo4YdaKfynrTcsBBZ0jX9e0o8QWAI+9Rsq+tC+674tABAAcd1cPQVs stgpO59HSB1c
PFS7TmNt2zxTLR4aReflo1Lzx43fE3//2uay3NKSo9XhweaK+PX36x4Cc65x p2cWGus2fjzU
uMY+dRoTAgHgFsT3AMJmFnOW1WIyl1K2RXkuDi4eRgjcEvH2NfvmXio1f1xt /V9StinTan22
KVMP9X1RlZo/XuD+t/IiSRaLRRaLxeo8KzV/3FifV99fvaQlH1X7B+7Rvl2/ K/nk8esXAC9f
Y0n6+fMRl/4hkOsa27t4qHadRtr4fwMKrMenfkN16f6Yrv7MmcViUedHesin fkPeYADwD2IE
EEUIgJlWr7MspWQ2W2/Tq0cXfbd6vdybvGis++tAt2v2vZqzo73WRW5T14fu N9atidyusk4O
eR77tuxfi0V2dnbG7wX1fV7Sko6obfNG2vL79RsJzMq+co3bPPW+JBmvr77G hSnr7KxN4RHq
1PFhY936DZvkUrYsby4A+IcxAgibZZuzrJYss52yJWPZ8dvP0uWfuddnme2u 2Tf3Ikkjnuqu
dz9dZbX+nU+/U+DAR41j9w6Yoq/X/WS1TdyJk7qn54s6//ffV9qVlaE33l+q xo8GyOfh5zRs
0nz9nZJilGdmpGvyW5+oUffhatB1qD5YcuW4aWmpGj1toXy7DJFvlyEKmr5I aWmpRnmV1k9r
wdLVut/vJVVtM8im4xW0HN+y2Ah9OcEvd/izs7PT8S2Lbaor25yltKTDeui+ BtdtJDAr+9I1
/uGjS9O+P3w0VNmSHnlhobHkXOPCDB3yvD5YsMhq3QcLF2nY0BeM1/0GPK3v V/9gtc2JEwlq
2bqdUlJSjHUZGRkaPWasGja5Ty0fbKsPF35kNYpoNps1c/ZcNX+gje5qfK9e fnW0Ll68aJT7
1G+oz5cu10MdOsn37qbq0etx7d2336p8yefL1O7hLmrQqKm6PtpTv2/foS++ +lodu3Q39jlw
8KCxT2ZmpsZNmKwm97VQk/taaPzEycrMvBLcMzIzFfzaeKPNCxb91+o8C2sz ABAA8e+MUF01
7ZhlLiWz2WIsoaGh6tChg0JDQ63WZ5lLFToN2v2he3Tq7Hn99ud+WcxZ+mX7 bp09n6JH2jQ1
jv3y0901b/G3MmddmSqet/gbvdCno8o5lTHWzf+/77Rrf7TWLJqoP76eLSf7 Mnrj/WVG+ez/
fqWD0fFa+9EkbV02TScSTxtlMxeu1MlTZ7Xls9cV+dlUxZ88pVkLv7Bq6449 h7Vm0UTFhS+w
6XiFLfERC61CYO7wFx+xsMjTymlJh9TmnrrXJQTmvsaS9OgLC/XoC5eeB/y8 wyOXg8ula1yY
7t266syZs9qxc6ckaeu2KJ0/d16PdO1ibBM4Yrjeeuc9ZWdnG+vmv/u+nv3P IJUvX95YN2fe
20pJuaCfNm/Uj6u/1e/brf9KzfsfLtSePXv1/bdfafu2n+Xo6Kjps2ZbbbN1 W5S+XL5Uf27f
pm5du2j8xMlW5T/98ouWf/6p/twepd69HtMzzw9VRESklnyyWLt2RKnHo49o 7IQr+8ye+5ZO
JiYqfMMabVr/o06cSNCceW8b5fPemq/TZ85oS8QGrV71tX75dWuR2wwABED8 8wHQlGW1ZJrt
ZM62yJxt0dcrPlGHDh1UvXp1dejQQV+v+MQoyzTbXbNv7kWS7LJNGubfSe99 /qMspiy9+9kP
Gt6vs+yyTcax293nq7JODvp2w6+ymLJ0NPa4IqJ26xm/tlb1LVu9RVMC+6py xXJycSitcc/3
0g+RO4zyL9b+oimB/qpcsZzKO9krZPjjRtk3G6IUGvCEPMo7ybO8s6YE9tU3 G6Os2jp52ONy
L+dk8/FsWWztc1uXtJMH1bpxzRKHwNzXWJK++eAFffPBpRG7pyLWXAqAl69x of+xKVVKLzz/
rD5Y8JEk6cMFizTkhedUqtSV/wy1b/uQyrm4GKOA0TEx2rxli579zyCrur77 frUmjn9NHu7u
8nB318Tx1p82X77yC4VMmqDKlSvJxcVFY4JHad26DVbbTAmdrEqVvOXs7Kyh LzynPXutP2E7
beoUValSWU5OTnrumf/o4sWLmhoWYrVu9+49xvbfrlqtyRPHydPDQ16enpo8 aYK+XfW9Uf7N
d6usykMmTShymwHgeuEZQNjs6k8B39V2nPb+8asx8le9enXVq1dPkhQfH69+ vbspNDRUd7Ud
p+zMPwutu0+nZpr7f6v19YZt2nf0uD4Kfd44Zs7PFwd01vSPVqlH26aa8/Eq DffvKMcydlZt
O3nqnDo8O+Wa0bScbZJO/63q3q55frH1qbMpVmXVvV116uzfVtt6uZUt0vEK U6vbq8rrD/Lk
PBMYu/atYl2v1JMH9eDddfTrruI/E5hpLiXTlcE44/cv3nvBal2m2bZ/S/Z5 orfemv+uVn2/
Wnv3H9CCD9+7ZpvAgGGa+eYc9Xi0u+a9/a6GD31BTk5O1tfp1GlVq1rVeF29 mvW5JSYmqXO3
R6+5Jrm5ubkavzs5OclkMlmVV6zoZlWe17rc+5w+fVo1a9QwXtesUV2nT5+x anON6tWtyova
ZgAgAOKfHwG8KtCEhYVJ0jXhL+dnznSwJH08pkehdduXkp7t9ZBGvfmZRg9+ RPalLFc+KXv5
Z+cWDTTn4x8087/fafveaM0e2e+adnm5V9DXc19UZQ/XPNvv7V5ex46flE81 r2va4VmxnI4d
T1Ttqp6SpGPHk+XhVs7qGEU9XkFqPxp8zTN/OeEvdwiM+eHN4oXAhANq1aCu thYzBGZll1Ku
2Vjj934vfWSsW/HOCzJl2xYAHR0c9Nx/BmlU8FiNevVlOTo4XLNN504dNWfe fL05Z5527vxD
s2dOv2YbDw8PHT9xwghc8cetRzm9vDz19crlqlTJ+x97f3h4eCguPl61a9W6 dO/Excvd3f3K
veVpXR4XH/+vtxnAnYspYBQpAOZeQkJCFBoaqoiICMXHx+vw4cOSpMOHDys+ Pl4REREKDQ1V
SEhI4V+Fcvn34X0e0qFvXtfwJx7Ks1zZJgX2a68FX0Toxf4Pq4xdtizmrEtB 6vI2Ax9pqXFv
r1RMfKJMmRnafyROL07/1Cjv0/F+TX7/ayUkntL5v1M0ZcE3RtljDzXRlAXf 6NSZszp15qxC
P/xGPds2zbMtth6vsHPPHf6iV01T9Kpp14z8lOSrZlIT9uuBeu7Fmg7OMpey mgLu99JHRvgz
ngHMttg8AihJw4cN0aF9fylg2JA8y+3s7BQ4YpgWLPqvXgwcLgcHe0my+pBH r8ce1RvTZ+rM
2bM6c/asXp8206qOp596UmMnTFLssWMymUw6cPCgXn519A19f/Ts0V1TXp+u U6dP69Tp0wqb
+oZ6PXZlRM+v52N6fdpMnT5zRqdOn9aU16f/620GcOdiBBA2u3pK86c1c/X0 qJVavHyNNq76
TPGXRzTi4+NVvXp1LV5+6Rmxz+b6q+aDzYtUd0HldrKodlUPPdG+idX6nN+H PdFaC77M1sAJ
HynxTIrqVPPQi/3aG+Uv9W+r6R+vU/eX5ssiWZWNGviwQhf+oPZD5kiSHm3T SCOf6pDncXIU
drzC5IS9I9+EGfsc+SbMKgSW9O8wX0zYp5Z16imqiCOBJrOd8T2AS9563lg/ 8NX/Gs8AZlsu
bXc9lS5dWj61a6vP473zLB898hWNmzhZrds+rPLlyunZZwYpcstPV0Lm0CGy 00caOPhZJSUl
y8entl4cMfyGvj+CR4/U5NCp6tDp0lfi9Oj+iIJGvXpNm9u066jy5crpheef VcTmyH+1zQDu
XHYWSz5/ygG4ypGvJlm9/mTrLg0etdx4/cKA7urQoYMiIiL00dIfr2w3t78G t2p63doxbMYK
PfZQI/V8qBEXpYjKVqqv32LT1LBpc5tC4LxZw6yucX4+ndNfr7624Lq1c8jw QPV67FH1fKyH
TdsfPRqtZ54fqsjw9Vzk6yBy3bdq19WPjrgFuXlWphNgE0YAYbOrpyzN2aW0 ePaVvwARGhpq
LLnXS6Vseh6uMNkWi1Zu2qXYhDN6tFX961Lnnebiib1qVt1X220cCTRnl9Li OQMkWWSx5IxW
5jyfKF16aSfp+owAZmdna/nKLxUTG6sej3YvcNupb0zXyy8GKisrU1OnzVDX Lp24wABAAMSN
9swDDaxex+f64MLVZddDg/6zVM3LVfNH+qkUn44strTEg7q/ah3tsCEEBo39 4B9tW90GjVS9
WjW98/Zcq6+HyUv16tXUscsjSs/IUOdOHTXq1Ze5uABgI6aAYbPDK8fSCbcR B9cq+uOUk83T
wbhzMAV862IKGLbiU8DAHSrzfILucb+gfbt+V+S6b6/Ln44DANwamAIG7mBZ Kclq6nrpy4x3
leALowEAtxZGAIE7nCn1rEypZ9WkXDKjgQBwh2AEEIAkyZxxQY3LXhoN3L3r d+27PCLIM4IA
QAAEcBvLzkqXJDVyjDPW7dklwiAA3Gb4FDBsxqeAsTfLh04AbmK9nhpGJ8Am jAACsNnd9tF0
AgDcBvgQCAAAwB2GEUDYrG5jpv8AACAA4g7D46IAABAAcYflv2z6AAAAAiDu rADICCAAAARA
3GH5jxFAALiZ2dEFIADiBkTAG1ZzZFxageXtajjT/QAAEADxz+e/GzsF3Lpz UJ7rD615SZFx
tdSuulOJj1G66asy73qr2Ptv/v2w/jP+M8WdPFeienBnKel9d7O18VY4HwAE QFy3/HfjpoBN
2aWVbbHITnaSLLJIl3+XHFw85H0xVpHxtdS2msO/eh5j5nyn+eP6qGeHRkyJ 46Z5//wbbeT+
B25tfBE0ivJ/DzdsMZnLKNsifbJqpxZ9+Zve+/xXzf2/SGVbLHJw8ZC9i4e8 TDFaH1PSdti+
f5l7Rl2zbvfhE3rkoQY3tC9sXfYeSZBvjzduirZwvtfvvvv3zlXF3jZ3e8vc M0pNH595OSBe
2cZiyVaTx2fm+b5iud7XEWAEENd3eECbfz+iTi98YPMuGz8KUPvmdQvdLstc WmazNODRey+P
/l36b5k5W/Jo+qKx3dG1H0iWzBKfR3G3Tc8wyb50qZviE9Hrfz2oLg/63jGf zr7lz7cI7f7X
zrWY742r2+vs5KDVm/fqsfZ3G9t8F75bZZ0cin4cAIwA4t/+P7BstW/mo42L hsnT3VXh4eGy
WCzXLOHh4fJ0d9XGRcPUvpnPpe8PLGTJMpdWtqS1vxzUD5H79fXG3Vr64x/6 +JvftGD5r3rn
sy0yZ0tZptIF1lPm3iC9uXiTqnYMVYVW4/RCyDJlZGRe2ebyeciSraNxp9T7 lf/JrfV4ubQc
qx4jFinp9N9GPZJU5t6gS7/nsy49I1PDwlbIvc1EubeZqOFTVio91/HK3Buk tz7drNrdpsr+
vmBj3Ycrflb9HtNUtsVratrnTf2846j+79soNew1Q87NX1Oz/nO1++CJa84t 9+sNvx5Q5wfq
53scs9mkCW+vVpWHQ1T+gXF66rVPlXIhzdh/zU971bTPm3Ju/prqdn9D//1q q1Fmy3nl1fcF
nXdWVpaCZn+ryh1C5Nl2kuZ+EmFsX1hbrz7fgrYPfP0LffxNlNW+i7/epsDX vyj0uhf3+hTl
vivquRanPYVdv4yMTD0/eZkqtBqnap1CNfvj8KK1Mde2V7dXkoKfaa9ZizdZ bTPrf5s05tkO
xr4dnntPy9fssNrmWMIZ1eg8RedTUm1uS0H3VXHen7Zcn5t6AQiAuO757/L/ 2jWvo2Uzn5R/
n96KiIiw2iYiIkL+fXpr2cwn1a55HWOfwv6XaS4ts9mih1vWV9fWDdSjfSP1 6XqPnnqsuZ7t
00rDnnxI5myLMs1lCqxHkrbsOKqdK0fq0OqxSjx9QSEfrLUqz/nd75XFevmp h3Ri02Qd3zhJ
vrW9FDRnlSyyKGvnzEsjkztnKmvnzHzXTXp3jU4k/6193wVr77fBOnbyrCa/ t8bqeFG7jylq
6SvK3DHDWLdx2yFt/GiYkiPDNKD7vXrspf/qx5/2a+2CITq1JUx9uzTRsKlf XHNuOb9nZJn0
884YdWhZJ9/jTP/vJm3fF6+opa/o+MZJcnK019i3Vxt1PDNxuUICuujsz1O0 6X/DtXVXrFFm
y3nl1fcFnXfYh+u150iiflv2ig6tfk3xieeM7Qtr69XnW9D2c8f00v9995tW rPtTFlm0fO0f
+mTV75r3Wq9Cr3txr09R7ruinmtx2lPY9Zv8/loln72gQ6vHavvykQqPOlyk NhZ2Lz7eqbGS
zlzQL3/GyCKLIn4/otPnU9W7YyNj33HPd9TUBRtkzs426pq6YL1eeqqNKpRz tLktBd1XxXl/
Fna8m/1/AAEQN2Z66PLSvpmPls3obxUCjfA3o//lkT+LzUumqYzM2RaFRx3S ul8OaPXmPfpy
3Z/6/PvftfjLrVqw7KdLAdBUuuC6JM0N6invii7yruiiuUGPadmPf1iV5/y+ 64uRerhFHTk7
lJGri6Nef7Gb1v96MM9t81u3fM0fmhv0mLwruqiSu4veCu6l5Wusj/fmqB7y citrte6DiU+o
RiVXlXUso5efekgpFzP07vjeVuu27423OlbWjhnG71v/jNFdPl5yK+eU73EW f/2b3h7TS9W9
K6h8WQdNe+kRfbNpt1Hu7FhGJ5P/VvKZC6pZyVULJ/cp0nkV2Dd5tOez77cb 7XEr56Q5ox+z
ua1Xn29B2zuUKaWlMwdq/PwfNWH+j5rwzhotnTnQmLq35boX+foU4b4r6rkW pz2FXb9lP+40
2lvJ3UXzgnsWqY25t82rvaXspNGD2+nNxRGSxaJZ/wtX0OB2KmV35b8lXR+s r3JlHYx2HY5N
1vpfDyrwydZW91VhbSnovirO+7PQc7/ZF8BGPAOIIk0B59a+WW0tm+Ev/z69 FfjSq3rvnbe0
bIa/2jerXeSpiEyzvUzZUpv76+Uz+njpecBMs32hddeu6mpsU7uqm06eSrHe 5/Lvv/55TOPm
r9EfB07oYtql5wrt7Ozy3Da/fkg8fUE+1dyMdT7V3JR4+oLVNlU9y11Tj0cF J2NdWcfSea4z
mfOf0tmw9ZA6t6pX4HGOJ51XoyfmWO2X+/xWvDlQb3y0SVM+3KAK5Zw0N+gx PdbuLpvPq7C+
ubo9CckpVnXmVlhbrz7fwrav5F5WTz96r15ftEmzRj6qSu5li3Tdi3N9bL3v inquxWlPYdfv
5KkLVu31qeZWpDbm3jav9sqSrUE97tWUD9dr2Y879dehBH0192nr6WNJ457r oHHz16hf18YK
+3C9gga3u3R+RbiPC7qvivP+tOncAQIg7qj8l8f0QrtmPlo6w19dhoZp/cIX 1K6ZT7GmITJN
pZWdLW3947BMpmxlZpmUnmFSRmaWMjJMyswyafATbZRlKl1o/dHHz6huDQ9J UsyJM/L2KGe1
T87vT479XG+OfFRdW9dXBRdHpaRmyrPdlDy3za8fvD3KWR3vaPxpebmXK1Id RV2X83+6M17t
XuBxKnuW108fD1dV7wp51tmsUTV9NW+QLBaL1vxyUMPCvlaPdWNtOq8ypUvp YnqmyjrZS5JO
n0+9pg3XtMervI7Gn1b9Wp7XnE9hbb36fAvbftfBBC3+brtWzh6oV2atUs/2 dxnncj2ue17r
bL3vinquxWlPYdevkqd1efTxM0Vqoy3tdXAorcABD+rZySsVNqKLHBxKW00f S9Jj7e9SyAfr
NeGdtfp11zF9FNqnyPdxQfdVcd6ftpw7cDtgChhFSIB5Tzm0v7+2zm6ZrPb3 1y72tEWW+dIU
cIumdfXg/fXV/oGG6tauiXp1vl/+PVpqYO/WxjOAhU1/BM39QclnLij5zAUF zVmtAY/ck+fU
VXp6lpwcSsvJvrRijp9RwOtfW5W7lXfSwZjkAqeA+3VprNGzVyvp9AUlnb6g UbO/V/+uTYo0
jWzrOodmEySLRWfPp+pg7Cm1alK9wP2H9mmpgNe/1tG40zKZzNp96KQGjltm lD89brn2HUlU
VpZZlmyLTGazzefV1Ley5n6yRalpmTqReF6Bb3xj3YY82jO4x316ddYqHU88 r3N/pylozmqb
2prX+Ra0/cXUDD0zaaU+meovvw4N9d7YXhrw2lKlpWfadN2LdX2KcN8V9VyL 057Crt+T3Zoa
7U06fUGjZ39vcxtzH6uw9o75Tzulbpui4P+0zbPc7vIo4JxPtmj88x3kUKaU 1b1uS1sKuq+K
8/4s9NyZAgYjgLjzAmD+UyAuTmVKNEWSZSqtbIu0JWrfNSN/A3o9ePnf3nZX PgVcgDb31NR9
/efrQmqm+nRupJBhD+c5dbVwUm8Fzf1BxxLOq6p3eY16uo1WrvvLKB/5dBu1 GvS+LqRmKvO3
KXn2w5QRnfTKrNVq2HuuJKlP50YKC+hYpKnSIq2zZCvityNqc29N2ZcueLp6 zH8e0pufWNQ1
4H9KSE6Rby0PjX++g7Fdr/YN5B/8uY7Gn5FvLU99PKWvUVbYeX04wU9Dp36j aR+Fq6p3BQUP
fkhfbdxTYHsmDmmvsW+vU7Mn35FF0vjn2xvbFNTWvM63oO1fmvGdAvu3Utv7 akqWbPVo66vD
caf08ozvtGjy44Ve9+JeH1vvu6Kea3HaU9j1Cx3eUSOmfad6j81WeRcHjXy6 jX78+aBNbSzO
vVhQ20uXkurV8NCgHvcUub8Ku6+K8/606dyB24CdxcI/GWBjSPt9yg2re/a2 JurXp/vlmCfj
uwCN7wS8/PvKL37U6FZ/5VuPQ4sQZf4Wdltfh8Dpq3SXj5deerLVHXHf3Qrn e73uu1vt2l6P
9j4x+nP179pE/bs14T+y14F988l0AmzCCCBsdiP/9JPZXFpLV67Tpb8YcPmh 65znhSzSpZd2
kkoV2o7b/U9Ubdh2RIH9W94xf4rrVjnf69G+W+3alqS92dkWLf5up47EnVHf znfzp+UAAiBu
4v+Hu2FVj2m1vQjt+PfaeTPY/9VLd8R53nLnex3ad6td25K017nVFNWq4qYl b/S59PUwTEYB
/yimgGGzzCimFgDgZubQcgqdAJswAgibMUUDAAABEHdeAqQPAAAgAOIOS4B0 AQAABEDcWfmP
KWAAAG4HfAgENsvKTKcTAOAmZu/gRCfAJvwpOAAAAAIgAAAACIAAAAAgAAIA AIAACAAAAAIg
AAAACIDAP2xws1dum3NxcHTmggIASozvAYTNbpXvAfx8cITMWVe+tHpvwh+6 u8q9xuvS9qX0
1CcdCq3nwIEDmjQ5RJGRkbpw4aKaNGms4KAgPfHE49ctzGVmpHFjAbhu+B5A 2IoRQPwrNkdG
ysHR2eZlc2Sk7UE13azKd7urRnNvuVZ10d1V77V6nZVuLrSOw4cPq0uXburU saP27N6t06eS
9PZbb2n5ihVcPAAAARAojvbt2mn9+rXy9PRUeHi4LBbLNUt4eLg8PT21fv1a tW/Xzua6LdkW
2Zcto/LeZeVQzl6n/062em3JLnzQe8rU1xUUHKRhw4bKw8Ndjo6OatmyhZYv W2psk56eruEB
I+TpVUmeXpUUMCJQ6elXRkkdHJ21cOEi1avfQC7lKqhFywf055+7jLKcciRx SwAAHxpJREFU
n7mndaOjo/X4E33l7uGl8hXc1LOnn5KSk63qtKV+STKbzZo4cZKqVa8hVzd3 DXx6kFJSUqz2
f3v+O/KpU0+OTmW5KQGAAAj8MyFw6dIl8vf3V0REhFVZRESE/P39tXTpkiKF P0lKN6Xp7xMX
lXz4nC6eStex80etXqebCp92Dd8ULn//vgVuExISqoQTCdq7d7f27PlLccfi FBoaZrXN5shI
RW4OV1Jigvz8/BQwYoQkGVO/mRlpVtPAvR/vo5dfflHH448pPi5Wvr6+Cg4e k28b8qtfkmbM
nKUdO3YqattWxcfFytnZWeMnTLTaPyoqSlHbtiojPZUbEgDuIDwDCJvdqGcA N0dGasCAgVq5
cqU6dOhQovA3uNkrqla+liqVqyZJOnb+qFFW07WOJCnxwnEdT4nVJ9vfzree si7l9ff5sypT
pky+29SqXUcbN6xTvXr1JEmHDh1Sl66PKCb6iKRLI2wnE07I3b2iJCk1NVWe XpWUejHFKC/s
GcDU1FTV922g4/Fx1+xTWP316jfQD6tXydfX99J5JyWpebMWiouLNfaPjTmq KlWqcHMDtwme
AQQBELdMAMwdAgMDA/Xee+8VK/zleOux5Wr0QAPZly2jv09cVETUJnXv2t14 ffRAjF79vn+B
ddSoUUtRv21TlcqV893GuWw5XUg5r9KlS0uSTCaTKrhWLDDgXR3gri7/9det Gj9hgv74409d
vHjx0pvUzs4YoSts/9zryrqUl8lksn7D51MXAAIg7ixMAeOmkDMdHBYWVqLw J0mZ5gyrZ/5q
utaxep1pzii0joc7Pqwvv/yywG28vb0VExNjvI6OjpaXl1eJ+mHAUwM1IiBA MdFHlJGeqlPJ
iSruv9EqV66smOgjxjRzZkYaU70AAAIgbr4QePbMqRKFv5wAmPuZP0lWr20J gJMnTdSbs2br
o4/+qzNnziojI0O//fa7+j85wNimn39fjR4drKTkZCUlJ2vUqCD17+dvczvd 3Fx18OBBq3Xp
6WlycnKUk5OTYmJiFDAisNj9MHToEAUEBOro0aMymUzavXu3Bj49iBsNAEAA xM3FxcWlxHXU
r3mXdv21S7//ul37Du1R4oXjVq/r17yr0Drq1auntWt/1Np163RXw4by8PTW K6++qv79+hnb
TJkSJu9K3mrYsJEaNmykKlWrKCws1OZ2jhw5Uq0ebGP1yd6FCxYoKPg1uVX0 UOcu3dS69YPF
7ocxwUFq3aa1unbrLlc3dw0a/Ix6+/lxkwEAeAYQtrtVvgj6aoObvVLgBz4A 4HbBM4AgAIIA
CAAEQCBPTAEDAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABStDFwB5+3Rqq0K3GTRpKx0FACAAAreTgZM+ybds ydTBdBAA4JbE
FDCQj2yLXYnKJcnB0dlYvLwra8BTA5WcfIrOBQAQAIHi2hwZaRWyCls2R0ba XLfJLFks9rJY
7CVdXixXfprMttWTmZGmzIw07dnzlxwdHTUiMJALBwAgAALF1b5dO61fv1ae np4KDw+XxWK5
ZgkPD5enp6fWr1+r9u3a2R4ALaW04uP3tfzj97Vs8eXl4ys/TZaivX28vbw0 d84cbdiw0Vhn
Nps1ceIkVateQ65u7hr49CClpKQY5Q6Oznp7/jvyqVNPjk5lJUlr1q7Vvfc1 k0u5CqpXv4H+
97/Fxvbp6ekaHjBCnl6V5OlVSQEjApWenm5V38KFi1SvfgO5lKugFi0f0J9/ 7uJGAgACIHDr
hcClS5fI399fERERVmURERHy9/fX0qVLihT+JCkru5T6PztET+azZGUX/e1j Z2c9bTxj5izt
2LFTUdu2Kj4uVs7Ozho/YaLVNlFRUYratlUZ6amSpOeee14hkyfpzOlkhW/a oG1RUca2ISGh
SjiRoL17d2vPnr8UdyxOoaFhVvVtjoxU5OZwJSUmyM/PTwEjRnATAcAdxs5i sVjoBtgUiDLT
b+r2bY6M1IABA7Vy5Up16NChROFPkuaNa69Xpi/Kt/ztcUM0cvrmAutwcHRW ZkaaJCk5+ZTG
jhunc+fO68svVkiS6tVvoB9Wr5Kvr68kKTEpSc2btVBcXKyxf2zMUVWpUsWo s07d+goKGiW/
Xr1UrVo1q+PVql1HGzesU7169SRJhw4dUpeujygm+ohR38mEE3J3ryhJSk1N ladXJaVeTOEG
B24D9g5OdAJswgggbhu5RwJDQ0NLFP4kKdNsV+AzgJlmO5vqyXn+sOHdjXTh wgW9//67RtmJ
EyfUuMk9xjY1atRSUnKy1f65w58krVi+TOvXb1TzFi3V4K67tXr1aqMsKSlJ Pj4+xmsfHx8l
JSVZ7Z8T/iSpbNmyMplM3DwAcIfha2BwW4bALl26FfmZv6tlme305tyVUj5j 5CYbA2DOCGBe
KleurJ+2bFbVqlVtblfz5s309VdfyGKxaM3atRo2dLiOHeshSfL29lZMTIzq 1q0rSYqOjpaX
lxc3BgCAAIjbPwSePXNKLi4uJaonK7uUxo/unW952Mi1JW7r0KFDFBAQqHnz 5qhmzZrav3+/
ps+YqSWffZrvPk8PGqwJ48epbt26slgsMpmvjOD18++r0aODtXDRAknSqFFB 6t/Pn5sCAGCF
KWDclkoa/nICYEnKbTEmOEit27RW127d5ermrkGDn1FvP78C9+nVs6f8+z0p t4oeGj9+oj7+
+MqngKdMCZN3JW81bNhIDRs2UpWqVRQWFsoNAQCwwodAYHsgusk/BHK9jXmx q6a/c2kkzfjw
rkWS3aWfY18aplnvruPGAHDT4EMgsBVTwEA+zJZSGj0iIN/y0qUYQAcA3JoY AYTN7rQRQAC4
1TACCFsxhAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAAAEQAAAABEAAAAAQAAHcYRwcnekEACAAArgZQlleS47z589r9Ohg1fe9 S2VdyqtS5Srq
07efNoWHFznYZWak0eEAQAAEcDPIzEi7ZskxcOAgZZmytH7dGqX8fU67//pL A57sr2nTptNx
AEAABG4tn05tVehSGAdHZy1cuEj16jeQS7kKatHyAf355y6jPDo6Wo8/0Vfu Hl4qX8FNPXv6
KSk52Wr/BQsWyrdBQ5Ur76p772umn3/+RZ988qnubtTEqHP37t3GPmazWRMn TlK16jXk6uau
gU8PUkpKSqHtLK6IzZs17Y3XVbt2bZUuXVpeXp7q27ePNqxfZ1X31SOHDo7O env+O/KpU0+O
TmWvaUdhfZeWlqbnnn9BbhU9VKNGLc2eM5cpZAAEQAAlk24qpYGTPsl3STfZ 9jbcHBmpyM3h
SkpMkJ+fnwJGjDDKej/eRy+//KKOxx9TfFysfH19FRw8xmr/jZs2adPG9UpK TNCTT/ZXL7/e
+nHNGq1b+6OSk06qT58+ChgRaGw/Y+Ys7dixU1Hbtio+LlbOzs4aP2HiDeun 1g8+qIARgdq6
dZvS0q6dws0ZLbx65FCSoqKiFLVtqzLSU4vcd6GhYTp//m8dOnhAO3Zs188/ /8JNC+C2Z2ex
WCx0A2yRlZlOJxTDW+Pa6eXpH+VbPn/cC3p1emSBdTg4Outkwgm5u1eUJKWm psrTq5JSL+Y9
Ipeamqr6vg10PD7O2D/hxHF5eLgb5W4VPa5Zl7vOevUb6IfVq+Tr6ytJSkxK UvNmLRQXF1us
fshvVC0nzJ07d16zZ8/W96t/0NGjR+Xl5aXefn6aOHGCKlZ0M+q4Ovw5ODor NuaoqlSpYrUu
Z7vC+q62T12Fb9ogHx8fSdKRI0fU8O7GPEeIW5K9gxOdAJswAgjcYCmZZWSx 2MtisZd0ebFc
+ZmSWcamenICjCSVLVtWJpPJeP3rr1v1cMdOqujuKQdHZ7lV9NCpU6et9s8J ejn757Uud50n
TpxQ4yb3GFOuNWrUsppWLo6CngF0c3PV669P1R87t+v8uTP6YfUqXUy9qKee GlhovbnDX1H7
LjExUTVr1jRe16pVi5sWwG2vDF0A3FgXM8to9IiAfMudypT8bTjgqYF6c9ZM de3aRRUqVFBK
Soo8vSqVqM7KlSvrpy2bVbVq1X+8z+zs7NSgQQPNnTNb3pWq3NBjeXt769ix Y8YIYGxsLDct
AAIggJKZ8c66G36M9PQ0OTk5ysnJSTExMZo4aXKJ6xw6dIgCAgI1b94c1axZ U/v379f0GTO1
5LNP890nrylaW3Xu0lXDhw1T23Zt5enhoYSEBM2ZM08PPNDS2MbNzVUHDx40 pqWvh/79/BU8
5jV9+MEHkqSg4Ne4aQHc9pgCBm4DCxcsUFDwa3Kr6KHOXbqpdesHS1znmOAg tW7TWl27dZer
m7sGDX5Gvf38SlRnQd8DOGHCeC1fsUJNm96jcuVd1bZdB11MvajPP19ibDNy 5Ei1erDNdf2U
bmhoiMqVK6e69err3nvv0wMPtJS9vT03FYDbGh8Cgc34EAjuBAcOHFDPXr11 8MA+OgO3HD4E
AlsxAgjgjhcUFKyzZ8/pZGKixowZK79ePekUAARAALid1apdS40aN9bddzeW q5urQkIm0ykA
bmtMAcNmTAEDwM2NKWDYihFAAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAA AAAIgAAAACAA
AgAAgAAIAAAAAiAAAACuhzJ0AZC3T6e2KnSbQZO23tTn4ODorMyMNC4mAIAA CNhq4KRP8i1b
MnUwHQQAuCUxBQzkI9tiV6Jy6dIIXM7i5V1ZA54aqOTkU3QuAIAACBTX5shI q5BV2LI5MtLm
uk1myWKxl8ViL+nyYrny02S2rZ7MjDRlZqRpz56/5OjoqBGBgVw4AAABECiu 9u3aaf36tfL0
9FR4eLgsFss1S3h4uDw9PbV+/Vq1b9fO9gBoKaUVH7+v5R+/r2WLLy8fX/lp shTt7ePt5aW5
c+Zow4aNxjqz2ayJEyepWvUacnVz18CnByklJcUoT09P1/CAEfL0qiRPr0oK GBGo9PR0o9zB
0Vmz58xV9eo15VbRQ0OGDlNGRkaexy/sWAAAAiBwS4XApUuXyN/fXxEREVZl ERER8vf319Kl
S4oU/iQpK7uU+j87RE/ms2RlF/3tY2dnPW08Y+Ys7dixU1Hbtio+LlbOzs4a P2GiUR4SEqqE
Ewnau3e39uz5S3HH4hQaGmZVx09bftKOndt18OB+JSUmKSxsSp7HLuxYAIA7 h53FYrHQDbAp
EGWm39Tt2xwZqQEDBmrlypXq0KFDicKfJM0b116vTF+Ub/nb44Zo5PTNBdaR +1O4ycmnNHbc
OJ07d15ffrFCklSvfgP9sHqVfH19JUmJSUlq3qyF4uJiJUm1atfRxg3rVK9e PUnSoUOH1KXr
I4qJPmLUv2/vbtWtW1eSdPjwYXXp+oiijx6+5viFHQvArc/ewYlOgE34FDBu G7lHAgMDA/Xe
e+8VO/xJUqbZ7vLzf5IxcGeRZHfpZ6bZzqZ6HBydJUkVKlRQp04d9f777xpl J06cUOMm91j/
qyzXKGFSUpJ8fHyM1z4+PkpKSrLavnbt2la/JyYm5tmOwo4FACAAArd0COzS pVuRn/m7WpbZ
Tm/OXXkp9OXBZGMALOh7+CpXrqyftmxW1apV8yz39vZWTEyMMcIXHR0tLy8v q21yl8fGxsrb
27tYxwIAEACBWzoEnj1zSi4uLiWqJyu7lMaP7p1vedjItSVu69ChQxQQEKh5 8+aoZs2a2r9/
v6bPmKkln30qSern31ejRwdr4aIFkqRRo4LUv5+/VR1Bwa9p4YIPL/0eNEYD nuxfrGMBAO4c
fAgEt6WShr+cAFiScluMCQ5S6zat1bVbd7m6uWvQ4GfU28/PKJ8yJUzelbzV sGEjNWzYSFWq
VlFYWKhVHW3atNZ9992v+r4N5O7hrpCQycU6FgDgzsGHQGB7ILrJPwRyvY15 saumv3Np5C2v
ZwDHvjRMs95d96+2kT/1BiA3PgQCWzEFDOTDbCml0SMC8i0vXYoBdADArYkR QNjsThsBvBUw
AgggN0YAYSuGMIBbGOEPAEAABAAAAAEQAAAABEAAAAACIAAAAAiAAAAAIAAC AACAAAgAAAAC
IAAAAAiAAAAAIAACAACAAAgAAAACIAAUh4OjM50AAARAADdDKMtryXH+/HmN Hh2s+r53qaxL
eVWqXEV9+vbTpvDwIge7zIw0OhwACIAAbgaZGWnXLDkGDhykLFOW1q9bo5S/ z2n3X39pwJP9
NW3adDoOAAiAwK3l06mtCl0K4+DorIULF6le/QZyKVdBLVo+oD//3GWUR0dH 6/En+srdw0vl
K7ipZ08/JSUnW+2/YMFC+TZoqHLlXXXvfc3088+/6JNPPtXdjZoYde7evdvY x2w2a+LESapW
vYZc3dw18OlBSklJKbSdxRWxebOmvfG6ateurdKlS8vLy1N9+/bRhvXrrOq+ euTQwdFZb89/
Rz516snRqew17Sis79LS0vTc8y/IraKHatSopdlz5jKFDIAACKBk0k2lNHDS J/ku6Sbb3oab
IyMVuTlcSYkJ8vPzU8CIEUZZ78f76OWXX9Tx+GOKj4uVr6+vgoPHWO2/cdMm bdq4XkmJCXry
yf7q5ddbP65Zo3Vrf1Ry0kn16dNHASMCje1nzJylHTt2KmrbVsXHxcrZ2Vnj J0y8Yf3U+sEH
FTAiUFu3blNa2rVTuDmjhVePHEpSVFSUorZtVUZ6apH7LjQ0TOfP/61DBw9o x47t+vnnX7hp
Adz27CwWi4VugC2yMtPphGJ4a1w7vTz9o3zL5497Qa9OjyywDgdHZ51MOCF3 94qSpNTUVHl6
VVLqxbxH5FJTU1Xft4GOx8cZ+yecOC4PD3ej3K2ixzXrctdZr34D/bB6lXx9 fSVJiUlJat6s
heLiYovVD/mNquWEuXPnzmv27Nn6fvUPOnr0qLy8vNTbz08TJ05QxYpuRh1X hz8HR2fFxhxV
lSpVrNblbFdY39X2qavwTRvk4+MjSTpy5Iga3t2Y5whxS7J3cKITYBNGAIEb LCWzjCwWe1ks
9pIuL5YrP1Myy9hUT06AkaSyZcvKZDIZr3/9dase7thJFd095eDoLLeKHjp1 6rTV/jlBL2f/
vNblrvPEiRNq3OQeY8q1Ro1aVtPKxVHQM4Bubq56/fWp+mPndp0/d0Y/rF6l i6kX9dRTAwut
N3f4K2rfJSYmqmbNmsbrWrVqcdMCuO2VoQuAG+tiZhmNHhGQb7lTmZK/DQc8 NVBvzpqprl27
qEKFCkpJSZGnV6US1Vm5cmX9tGWzqlat+o/3mZ2dnRo0aKC5c2bLu1KVG3os b29vHTt2zBgB
jI2N5aYFQAAEUDIz3ll3w4+Rnp4mJydHOTk5KSYmRhMnTS5xnUOHDlFAQKDm zZujmjVrav/+
/Zo+Y6aWfPZpvvvkNUVrq85dumr4sGFq266tPD08lJCQoDlz5umBB1oa27i5 uergwYPGtPT1
0L+fv4LHvKYPP/hAkhQU/Bo3LYDbHlPAwG1g4YIFCgp+TW4VPdS5Sze1bv1g iescExyk1m1a
q2u37nJ1c9egwc+ot59fieos6HsAJ0wYr+UrVqhp03tUrryr2rbroIupF/X5 50uMbUaOHKlW
D7a5rp/SDQ0NUbly5VS3Xn3de+99euCBlrK3t+emAnBb40MgsBkfAsGd4MCB A+rZq7cOHthH
Z+CWw4dAYCtGAAHc8YKCgnX27DmdTEzUmDFj5derJ50CgAAIALezWrVrqVHj xrr77sZydXNV
SMhkOgXAbY0pYNiMKWAAuLkxBQxbMQIIAABAAAQAAAABEAAAAARAAAAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAABAAAQAAAABEMA/wsHRmU4AAAIgAAAAblVl6ALgxvp0 aqsCywdN2ir/
gcO0csmCO7J/co8uurq6qnPnTpr/9tvy8vLk5gEAAiBwa0o3ldLzYR/nWfbX T1HG72279dCW
tavvyD7KzEiTJCUlJ2vMmNc0IjBQK1cs5+YBgBuEKWDgBruYee2/s3pO26ee 0/Zp0g9pemLY
JElSZc/qatutR551ODg6a/acuapevabcKnpoyNBhysjIMMrNZrMmTpykatVr yNXNXQOfHqSU
lJQrITQ9XcMDRsjTq5I8vSopYESg0tPTba4/t8KOlV/7beHt5aW5c+Zow4aN Nh/PwdFZb89/
Rz516snRqawkac3atbr3vmZyKVdB9eo30P/+t7hIfbFw4SLVq99ALuUqqEXL B/Tnn7u4kQEQ
AAHYLiWzjCwWe1ks9pIuLavGN9Wq8U01tkt5fbVgqiTp5Kn4AkcAf9ryk3bs 3K6DB/crKTFJ
YWFTjLIZM2dpx46ditq2VfFxsXJ2dtb4CRON8pCQUCWcSNDevbu1Z89fijsW p9DQMJvrz62w
Y5WUnZ1dkY8XFRWlqG1blZGeKkl67rnnFTJ5ks6cTlb4pg3aFhVVpL7YHBmp yM3hSkpMkJ+f
nwJGjOBGBnBbsbNYLBa6AbbIykynE4ph7EtdlW7K+99aTmWyNeOddYU+A+jg 6Kx9e3erbt26
kqTDhw+rS9dHFH30sCSpXv0G+mH1Kvn6+kqSEpOS1LxZC8XFxUqSatWuo40b 1qlevXqSpEOH
DqlL10cUE33EpvodHJ2NadrCjlVUuetOTj6lsePG6dy58/ryixU2Hc/B0Vmx MUdVpUoVo846
desrKGiU/Hr1UrVq1ayOZ0tfnEw4IXf3ipKk1NRUeXpVUurFFG5m3PTsHZzo BBAAQQC8XTg4
Oist9YJKly4tSTKZTKrgWtEIJWVdystkMlm/ue3sjBEx57LldCHlfL77F1Z/ 7pBW2LGKc245
KlSooE6dOmr+/LdVydvbpuPlbluO33/frjemTdfWrb+qQgVXzZ3zpnr06GFz X1xdX17rAAIg
bmVMAQM3yJKfL6hW1xDV6hqiJT9fyHObWl1D9Fu0Sb9Fm1Sra0iB9cXExBi/ x8bGyvtyQJKk
ypUrKyb6iDIz0owldyDz9va22j86OlpeXl42159bYccqjpx6TiUnavmypUb4 K+7xmjdvpq+/
+kInjsfrrbfmKiAgsEh9AQAEQADFMj7sTcWuC1PsujCND3szz22+WDBJfYdN Vd9hU/XFgkkF
1hcU/JqSk08pOfmUgoLGaMCT/Y2yoUOHKCAgUEePHpXJZNLu3bs18OlBRnk/ /74aPTpYScnJ
SkpO1qhRQerfz9/m+nMr7Fh5KckXSRfneE8PGqx9+/YpKytLFotFJrOpSH0B AARAADdEra4h
6jtsqvG677CpBY4CtmnTWvfdd7/q+zaQu4e7QkImG2VjgoPUuk1rde3WXa5u 7ho0+Bn19vMz
yqdMCZN3JW81bNhIDRs2UpWqVRQWFmpz/bkVdqzrrTjH69Wzp/z7PSm3ih4a P36iPv54cZH6
AgBudzwDCJvxDGDRA17surBrfs/tt2iTEQK/WDBJLXzy/mrOG/0MGs+4AbcH ngGErRgBBG6Q
aSHBxjOA00KCjSCY+2fO1G/OVDAAAP8ERgBhM0YA/z2MAAKwBSOAIACCAAgA BEAgT0wBAwAA
EAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAADuXHYWi8VCNwAAANw5GAEEAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAA ARAAAAAEQAAA
ABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAAIAACAAAAAIgAAAACIAAAAAgAAIAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAQAAE8P/t1rEAAAAAwCB/60nsLIoAQAAB ABBAAAAEEAAA
AQQAQAABABBAAAAEEAAAAQQA4BK0HTRLSWOoTAAAAABJRU5ErkJggg==
--------------050408040500070401030408
Content-Type: image/png;
name="genmodel.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="genmodel.png"

iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkS MZIAD3MAACAA
SURBVHja7d13XFX148fxNyhLHMh2izPTMkvzK5aaMyvDUtz2bbgA85sDLSc4 c4+mVF9balr9
sszKCdJSvqZlbktAEGS4Itlwf38oR64yLqCm+Ho+HufBvedzPp9z/Jwjvv18 zrnXymQymQQA
AIA7hjVdAAAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
QAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAEAAAAARAAAAAE QAAAABAAAQAA
QAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAIAA
CAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAcEerSBegPDl+4Bcd3r9HHbr70Bm3sKTTp3R4/x5169FT WSnJdMgdwqaK
qyRp6+Zv1eze1nLzrHXb/RmcXD05kSAAAkBZmHKyZcrJoiPuEJnn4yVJXbt2 07ZtW3V4/57b
NggCBEDgFsLo360vb/SvyyOdlHk+jg65I4NgnLo80kmStD00TJIIgQABEMCd IpfRvztWxuXw
3+WRToRAgAAI3Dg/ru5XZHn7wevppJvIlJstU/a1AXDXjtlF1vtX56l0XjmS nhytzh0f0o6d
PxACAQIgcGN08w8tcP3x717Uj6v7EQJvZgAs4v6/os7Trh2z1bbjJDqwlNxa PaGkfV9f923L
FAKTovTIQ/9S6A+7CIEAARC4vrJNVso1mQoss3V0Uf0GLQiBNzkAFjQFnHee ujwbYqzb/v4I
4zx5NWih3Tvnq81D4+jEUirJ1Lsl23q0fsp4nbDnC4vL8ktLilSndq0V9vMe QiBwE/A5gLhz
AmCOtXJNKnCxdXQxQuD2DwYW2Y5X42bq1vMJma4KkyaTSV0ffVxejZvR2ZYE wNwsmXKuXfLO
kyT9uMb/UgjJd55sHF1Uv0FzfR+2vMD6eYtH66f0sO+Lys3ONFufm52ph/qO lkfrp4qsX16X
S+H7+m6bd/2bTCazfvVo/ZSx3pK20pJOqGPbljq8f4+STp/iLwlwAzECiDtG lslaOTnm6558
vJu+2rRVzveMNtb9frRHsW1VcnDQjtAwden8iLFu67YdcqxUiY62eGQpW6ac zGvPU+6V89R+
0JuSZLy/+jwVVD8/BzsbbQnfre4P3W+s+y78F1Wyt70cSDLvzPBdgj93SfvI ZDLJysrKeF3S
ttIS/9TDrZvr+z2MBAI3EiOAuHMCYI6VciVj2fu/H6XLP/Ovz8qxKratEcNf 0Fsr3zFb91bI
Oxo5Ypjxvt/AIfp60zdm28TFxetB7w5KSUkx1uXk5Gj+oiVq3ba97mpxn8a8 NF4XL168ctxZ
WZo991U98KC3Wj7woN55b5VRlpmZqVemTNc9rdronlZtNHnqdGVmXvlH1qtx M7236gO1e7iT
GjS526L93bwQcmkK+OolK/fSefrm3UvTvt+8O0K5kh4dFmIseeepoPp5iyT5 D+qp1z/aaLb+
tY++UsDgxy6H0Cz19pupL7b8YLZNTNxptew1Whf++stYl5p6US/OfEsNOj+v e5/w1+sffaka
3kOuHHdWhua8uVYtHvOT1yPPa+S0FforJcUor+E9RB98vkVtnv6P6nT4t7r+ e7J+P/KnWfn7
n29R2z5jVbfjs+o0eJJ27TukT74OlXe/8UadQ8cjjTppaakaPzdETboNV5Nu wzVh3jtKS0s1
ytPT0/SfWW8bx/zGx18Zf25Ljjn/tkUtp75fZYS+vOCXP/xZWVnp1PerLGor NydLaYl/6KFW
TRkJBAiAwPUIgNbKyTEZS1BQkDp16qSgoCCz9Vk5xf+16Nmju86ePae9+/ZJ knbtjtCF8xf0
aPduxjYB/qO07LU3lJuba6xb8fqbeu7fQ1WlShVj3Ztvh+jgwUP6+sv/0y+7 f5SdnZ3mLVhk
lC9b8YaO//GHNn31hb4P3a7Tp08bZYuWLNPphASFbvtOO7Z+q7i4eC1eutzs WH/7bb++/vL/
dOLYIYv2d9MCYG52gdOA+c+TJD02LESPDbt0P+CaTo9eDrGXzlNx05I9H2qp 5HMX9L/fjsiU
k6WffjmgcxdS9Gj7ey+H0CyNGdJTS1d9qZysK1PFS1dt0LA+nVXZvqKxbsE7 nykl5aJ2fTJP
2/47QxG/HTPaMOVkacUHX2n/kUh9985U/frFItnbVNScNz8xO56f9h3Whtcn 6dDXy/ToQ/cp
cMEqs/Lw/x3QZ8vH69DGZerdpY2GBi7R9p9+1bolY3X46+V6ouP9Cpx/pc78 kE91Ovmcvv94
tsI/nqXY08laEPLZlWMO+Uxnzl3Qz2vnact70/XDnoMlPmZLp4tjw0LMQmD+ 8BcbFlLiqeq0
xONq37IhIRAgAAJlk5ljpZxck3JyTfpi/Yfq1KmTateurU6dOumL9R8aZZkW jABaW1tr2AvP
6a2V70qS3l75joYPe17W1lf+SnV8+CFVdnQ0RgEjo6K08/vv9dy/h5q1te7T zzRj2hR5enrI
0dFREwPHacuWbUb5/23YoBnTpsrT00NVq1bRtCmvGGVfbtyk6VNfkauLi9xc XTV92hR9udH8
qc2pkyfJxdnZ4v3dvBHALJmyr13ynydJ2vDWMG1469LI6qCw7y4FwMvnqaD6 eYskWeVma6Rv
F72x5luZsrP0+sffaFS/rrLKzb50DNlZ6tCqiSrZ2+rLbT/LlJ2lE9GnFBZx QM/6PGzW3pfb
/6fpo56Sc2V7OVe21/SRTxltmLKz9Mmm7zUzoK88q1eWo20FvfLCk/omfK/Z 8cx50VceTo5y
qGitkX0f0cHjJ83K5780QDWcq8i+opVeeKqj/k5N19wx/c3W7T8aZdTZsC1C QX5Py6WKvVyr
OGhmQF9t2B5hlH+xbbeC/PoY5cH+fUt8zEX1cUF9XuC5LkEb+Ze008fk3aIu IRC4AbgHEHeM
ux5+RYd+/dkY+atdu7YaNWokSYqNjVW/3j0UFBSkux5+xaL2+jzdW8tWvK6N X2/SoSNHtfLt
N67ZJsBvpOYvXKzHH+uppctf16gRw2Rvb2+2TUJCorr2eOyaUZM8SUnJqlun doHHcObMGdWt
U8d4X7dObZ05c9ZsG3d39xLt72aOABb0hGlmjrWyrwyaGq8/e2OY2brMHOti n1DNzclSny4P
aMkHm/TFtt06fOKU3g16wWx6U5JGD+yqee9u1OMP36vF72/UKN/OsqtoZdZ+ 0tm/VMO1irGu
pltVszZOJ59Xp+dmXtOv+duoWsnWeG9X0UrZOblm5dUczcsLWpe/TvK5FNV2 r2a8r+1eTcnn
/jLeJ539S7Xcq5qVl/SYLX1iuF6Pl66550+6ck9g9OZlpbpOUk8fU7u7G+jn /dwTCBAAgVII
Dg6WpGvCX97PvOlgSfri07XFtmdna6vn/z1U4wJf1riXxsjO1vaabbp26azF S1do4eKl2rfv
Vy2aP++abdzcXPXFp+vk4eFe4H7c3Fx1MiZWDbzqX1Pm4uKimNhY1a9XT5J0 MiZWzvlG+wpr
r6j93bwRwII/BzAr11r5Zs2N1/1efNdYt/61YcrOtS72e4RNOVmysZaee/Ih jVv4scY/86hs
rE1m05uS1LVNUy1+/xvNf+8r/XIoUovG9rumbdfqlRUbn6i6ni6SpJi4ZLM2 3Jyr6oslo+Xp
Uu2aYyjodWnKr17nWr2yTp5KUP2arpfO/6kkuThVvnJM1auYl1+nY75a/ccC r7nnLy/85Q+B
Ud8sLF0IjD+qfzVtqF2EQOC6YQoYd4wZM2YoKChIYWFhio2N1R9//CFJ+uOP PxQbG6uwsDAF
BQVpxowZFrc5auRwHT/8u/xGDi+w3MrKSgH+I7Xynfc0OmCUbG1tJMnso2KG DBqgl6dMU/TJ
k8rOztbRY8c05qXxRnmfp3oreNZsnT6doL/+StGsOVdCZK/He2rm7HlKPnNG yWfOKHjWHD35
xGNFHnNx+7vZAbDAewDzTQH3e/FdI/wZ9wDmmpRpwT2Aea9H9XlIxzfM1qin HyqwXLnZCujX
USs/C9Po/o+oolWuTDlZl4LN5W16PXyvZod8pbPnzuvsufOaFfKlWRuDH31Q ryz/VFGxCcrO
zNCRP2M0et5HRd5PZ3YMxZQXtO6Jh+7RzJUblHz2nJLPnlPQ2xvU6+F7rxxz h3s1K+RLnTl7
Xslnz2nm2xvKfMyF9XX+az5y41xFbpx7zchyWT6+JjX+iNo2cmY6GGAEECiZ H75boiHjPtWq
dd9p+8aPFRsbK+nS9G/t2rW1at2l+8s+XuKr+1qEXLf9VqhQQV7166vPU70L DpEjhstK72rw
M88pMTFJXl71Ndp/lFH+nxcDNG/+IvXs5SOTyaQXA/yNssDxYzU9aJY6dbn0 0TWP93xUE8a9
VHRoLWZ/Ny0A5mYV/EHQOVbG5wCuXvaCsX7wS+8Z9wDmmi5vZ8EUsKXlVjKp fk0XPd3xngKn
QF8a2ElT39wo7+cWyNHBVs/2+pd2/nLcKB/5tLdWfp6rwVPeVcLZFDWo5aLR /ToWO51akvKr
140b/IiCQr5Rx+GLJUmPtW+usYM6GeVjB3bSlLc2qv3zl455eO/2Ct1ztMzH XNh/diTpzw3B
Rp0/NwSbhcCyfvfzxfjDerBBI0UwEgiUmZXJVMhXIwC3oa/WrFSH7j4Fli1d MFLPjFtnvB82
sKc6deqksLAwvbv2W2P9h0v6a+zEldftmIaPCtCTTzymXk88zgmSlHT6lA7v 36M29RyUmnD8
mvIPd+03O0+F+Whxfw1td+91O66Rr67XEw81V6+Hmlu0/Z+nzuiF2WsV9tZo TupNVsmjsf4X
naZm97a+6SHQydWTE4BygRFA3DFycq21atGVb/kICgoylvzrr9edEbm5uVr3 6eeKio7W44/1
5ARc3T+F3AOYk2utVYsHSjLJZMobWcq7l0y69NZKkpVF96cVexwmkz7dsV/R 8Wf12L8aF9nm
nA+2a3Tf9srMytG8VVvUrU3j63IMKJmLcYf0QO0m+oWRQIAACBRnwstvmb3/ 9cCRy6HCdE3Z
9dCwaXPVrlVLry1fYvbxMLjEdPmjWK72bNumN/U4mvZfoFpu1bRirI+si3ka urZbNXUbE6KM
rBx1ad1IL/V/iBP5D0lLOKb7azbQXkIgUCpMAaNcKWoKGLeGvCngVh7Zyjgb Q4egTGyr1dCv
yfY3bTqYKWCUFwxLAPhHmHKy6QSUWeaFeLV0/luH9+9R+JYveUIYsBBTwAD+ mQCYSwDE9ZGV
kqR7q126nvYzJQxYhBFAAP9MAGQEENdRduo5Zaee0z2VkxgNBCzACCCAfygA 8vQsrr+cjL/V
otKl/1wc2L9Hhy+PCP4THxkDEAAB4OoAyBQwbpDcrHRJUnO7Kw8ZHdwvwiCQ D08Bo1z5as1K
OuE20dwuhhCIf8ShLK9S131y0Eg6EOUCI4Aod+62iaQTbgOmXPoA/I4A/ik8 BAIAAHCHYQQQ
5VezvvQBAAAEQNxJuL0VAAACIO68BEgfAABAAMQdlf9EAAQAgACIOysAMgII AAABEATA6yHB
qmaJ63iY4jghAAACIHATEuD1D3/WtVTf00mSNGjsarOyNUsHF1ov6rTkkcv3 kgIACIDADc5/
N34K+Mc1/pKk9oPevCWOBwAAAiAIgLf48TRv/bAaNqivL9d9KCsrK7Ntn+w3 VCcio3Vwz/ec
TAAAARCwKHDJpP/9sk/PjfyPxXVWrVyuNg+0snh7S0b+8h9PQezt7RX2/Y/q 1KG9sW77zu/l
4OBQZD0AAEqLr4JDOU6AJrW5/z6tenu5nJ2dFRoaKpPJdM0SGhoqZ2dnrXp7 udrcf9+lewcL
W/LJu+dvzdLBxutBY1ebLVcfT0HtPT90oN77YI3Z+v9+sFovPDPQqPfv4aP1 7eZtZtvEx5/W
I48+pb9T/i76mFlYWK7fAhAAgVs+/8lkklrff58WzZmhPn36KCwszGybsLAw 9enTR4vmzFDr
+++7Lr/73+06QO92HVDo8VzdXtdHOujs2XPa99sBmUxSxJ5fdf78X+rSqYNR b/hzQ/XWOx8o
JyfXqPvWOx9oyIC+cnR05N9lFhbyH1AiTAGjHAfAK7+tW9/fUgvnTFefPn30 +eefq1OnTkb4
Wzhnulrf37LU9wxePdKXHlP88eRnZWWlfw/pr/c+WKMVi+bo3Q8+1rNDBhj3 BJpMJnm3baNK
lRz07ZbteqxHV52MidWPuyL08vgXebgEAEAABAoLXK1btdTC2dPUp8/TevHF MXrttRVaOHu6
WrdqWaYQlf/jXwaNXa3RRz8pUQA0mUzq9VgPvfnO+/pm8zYd++OEli+cY2yf 93PYs0O07I2V
6tH1Eb0RskrPDR0gOzs7AiAAgAAI5EtW16xq3aqlFs6aphcCxum9N5aodauW 13Vep6jPAix0
PyaTbCtW1GDfpzUleJ5Gj3xethUrXtn+8s9OD7XTGyv/q+VvhOi33w9q1tRJ zEkBAAiAgFmu
KuTp2Qfub6mfd2ySg4P9dX/CtqgPhy5sX3nrn3tmgJ57ZsA12xqvraRhzw7W pGmzNGPyBFW0
qcATwgAAAiBgFqyKGB2zt79+U6dXh768B0CGbfvEouMp7jjyl1tbW6lunVrq 1bMbU78AAAIg
UNJgdT1cPeU7aOzqEj0EsvfHrUUe59XlX3+7VaNe+Lesra0JgAAAAiDwTwTA gpT0IRBL5Oaa
9OXX3yomNk7dOnck/AEACIBAIYnrujdZJeWootS00PK5kx43ex91+rxRryza dOihmp4eenXm
FFlbiYc/AAAEQKDg/HdjQlLlv46U/FjKuM894d/d8D8XAIAACBAAAQAgAAK3 WQDkI1IAACAA
4k5LgARAAAAIgLjD8h8BEAAAAiDuKK28u9AJAAAUwJouAAAAIAACAACAAAgA AAACIAAAAG5L
PAQC/EN+OpxQ4jrezTzoOAAAARC4XcNffU+nUtUjBAIAyoopYOAW83LXieXm z2Jr58AJBYBb
ECOAwD8s7D8/Kycr13hfq0o9bff/0XhfwcZanZa3K7ado0ePatr0GQoPD9ff f1/UPfe0UOCE
CXr66aeuW5jLzEgrUZ2Sbg8AuDkYAQQssDM8XLZ2DhYvO8PDLW47Kz1Hnnc7 q05rd1Wr6ai7
a95n9j4rPafYNv744w9169ZDXTp31sEDB3QmOVHLly3TuvXrOXkAAAIgUBod O3TQ1q2b5erq
qtDQUJlMpmuW0NBQubq6auvWzerYoYPFbZtyTbKpVFFV3CvJtrKNzvyVZPbe lFv8V9rNnDVb
EwInaOTIEXJxcZadnZ0efLCN1n2y1tgmPT1do/z85ermIVc3D/n5Byg9Pd0o t7VzUEjIO2rU
uKkcK1dVmwfb6rff9htleT/zT+tGRkbqqaf7ytnFTVWqOqlXLx8lJiWZtWlJ +5KUk5OjqVOn
qVbtOqrm5KzBQ4YqJSXFrP7yFa/Jq0Ej2dlX4qIEAAIgcHNC4Nq1q+Xr66uw sDCzsrCwMPn6
+mrt2tUlCn+SlJ6dpr/iLirpj/O6mJyukxdOmL1Pzy5+GjV0R6h8ffsWuc2M GUGKj4vXoUMH
dPDg74o5GaOgoGCzbXaGhyt8Z6gSE+Ll4+MjP39/SVemcjMz0symdXs/1Udj xozWqdiTio2J
VpMmTRQYWPg9jIW1L0mvzl+gvXv3KWL3LsXGRMvBwUGTp0w1qx8REaGI3buU kZ7KBQkAZWBl
MplMdAPKi6/WrNTdNpGSpHo+QTdkHzvDwzVw4GB9+umn6tSpU6nCX95TwC93 nahaVerJo3It
SdLJCyeMbepWayBJSvj7lE6lROvVbQsUdfp8gU8BV3Ksor8unFPFioXf1luv fgNt37ZFjRo1
kiQdP35c3bo/qqjIPyVdGmE7HR8nZ+fqkqTU1FS5unko9WKKUV7cPX2pqalq 3KSpTsXGXFOn
uPYbNW6qbzZtVJMmTS79uRMT1fqBNoqJiTbqR0edUI0aNbjQ8Y+xsbWnE1Au 8BAIUEL5RwID
AgL0xhtvlGrkT5Je3bZA64duUPO2TWVTqaIaxNVXWMQO9ezeUzaVKuqvuIvS UenFLwKKbMfF
2VlJycmq4elZ6DaJiYny8vIy3nt5eSkxMdFsm7xwJkmVKlVSdnZ2kfv9+edd mjxlin799Tdd
vHjx0v8qrawK3b6o9uPi4tTinpbm/0O9qi3CHwBcH0wBA2UIgcHBwaUOf3ky czLM7vmrW62B
2fvMnIxi23ik8yP6/PPPi9zG3d1dUVFRxvvIyEi5ubmVqR8GDhosfz8/RUX+ qYz0VCUnJai0
kwqenp6KivzTmGbOzEhjqhcACIDArRcCz51NLlP4ywuA+e/5k2T23pIAOH3a VC1csEjvvvue
zp49p4yMDP3vf3vUf8BAY5t+vn01fnygEpOSlJiUpHHjJqh/P1+Lj9PJqZqO HTtmti49PU32
9nayt7dXVFSU/PwDSt0PI0YMl59fgE6cOKHs7GwdOHBAg4cM5UIDAAIgcGtx dHQscxuN696l
/b/v156ff9Hh4weV8Pcps/eN695VbBuNGjXS5s3favOWLbqrWTO5uLrrPy+9 pP79+hnbzJwZ
LHcPdzVr1lzNmjVXjZo1FBwcZPFxjh07Vv9q197syd6QlSs1IXCSnKq7qGu3 HvL2blfqfpgY
OEHe7b3VvUdPVXNy1tBnnlVvHx8uMgC4AXgIBOXKzXgI5Hoo6qvgXu46Ua9u W1BgWWEPgQC4
OXgIBOUFI4DALaaw8AcAwPXCU8DAP8C7mYd+OpxQqnoAABAAgds4BAIA8E9g ChgAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAOAG4ZtAgNsc XykHACAAAndY
+Kvv6SRJ2v56x2K37zJ6p1GPEAgABEAA5cDgaR8WWrZ61jN0EABAEvcAAuVG rsmqTOWSZGvn
YCxu7p4aOGiwkpKS6VwAIAACKK2d4eFmIau4ZWd4uMVtZ+dIJpONTCYbSZcX 05Wf2TmWtZOZ
kabMjDQdPPi77Ozs5B8QwIkDAAIggNLq2KGDtm7dLFdXV4WGhspkMl2zhIaG ytXVVVu3blbH
Dh0sD4Ama61//02te/9NfbLq8vL+lZ/ZppL9dXd3c9OSxYu1bdt2Y11OTo6m Tp2mWrXrqJqT
swYPGaqUlBSj3NbOQctXvCavBo1kZ19JkvTd5s26r9UDcqxcVY0aN9V//7vK 2D49PV2j/Pzl
6uYhVzcP+fkHKD093ay9kJB31KhxUzlWrqo2D7bVb7/t50ICAAIgcPuFwLVr V8vX11dhYWFm
ZWFhYfL19dXatatLFP4kKSvXWv2fG64BhSxZuSX/625lZT5t/Or8Bdq7d58i du9SbEy0HBwc
NHnKVLNtIiIiFLF7lzLSUyVJzz//gmZMn6azZ5IUumObdkdEGNvOmBGk+Lh4 HTp0QAcP/q6Y
kzEKCgo2a29neLjCd4YqMSFePj4+8vP35yICAAIgUD5CYFnCnyRl5ViXqfxq SUnJmhAYqM6d
OxvrVq16X8uWLVGtWrVUpUoVzZkzWxu+2GBWb9HCBXJzczXe29s7KP50vJKT k1WnTh2tfPst
o+yTdeu1ePFCubu5ycPdXUuXLtYn69abtffaihWqWbOmHB0dNW7sS/r119+4 gACAAAjc/iEw
KCioTOFPkjJzrIq8BzAzx8qidvLuP2x2d3P9/fffevPN142yuLg4tbinpbFN nTr1lJiUZFa/
Ro0aZu/Xr/tEW7duV+s2D6rpXXdr06ZNRlliYqK8vLyM915eXkpMTDSr7+xc 3XhdqVIlZWdn
c/EAQBnxMTDALRACu3XrUeJ7/q6WlWOlhUs+lUwFl2dbGAAzM9IKLfP09NQP 3+9UzZo1LT6u
1q0f0Bf/95lMJpO+27xZI0eM0smTj0uS3N3dFRUVpYYNG0qSIiMj5ebmxoUB AARAoPyHwHNn
k+Xo6FimdrJyrTV5fO9Cy4PHbi7zsY4YMVx+fgFaunSx6tatqyNHjmjeq/O1 +uOPCq0zZOgz
mjL5FTVs2FAmk0nZOVdG8Pr59tX48YEKeWelJGncuAnq38+XiwIAbjCmgIFb QFnDX14ALEu5
JSYGTpB3e29179FT1ZycNfSZZ9Xbx6fIOk/26iXffgPkVN1FkydP1fvvX3kK eObMYLl7uKtZ
s+Zq1qy5atSsoeDgIC4IALjBGAEEyonsy/cASpLx8K5JktWln5ZMARc1gBpk wgAAF6VJREFU
/StJ1tbWmjQxUJMmBlpcv18/X/UrZFTPwcFBISvfVsjKty1ur7hjBAAQAIE7 Ro7JWuP9/Qot
r2DNgD8AgAAI3Pa8m3nop8MJkqQ+oz8odvuo0+eNegAAAiCA2zgEAgBQEswJ AQAAEAABAABA
AAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAA3CB8EwgASTK+ Uq4k+BYSACAA
AriNw199T6dS1SMEAsDthylgAPiH2do50AkACIAAcCuEsoKWPBcuXND48YFq 3OQuVXKsIg/P
GurTt592hIaWONhlZqTR4QAIgABwK8jMSLtmyTN48FBlZWdp65bvlPLXeR34 /XcNHNBfc+fO
o+MAEAAB3F62v96x2KU4tnYOCgl5R40aN5Vj5apq82Bb/fbbfqM8MjJSTz3d V84ubqpS1Um9
evkoMSnJrP7KlSFq0rSZKleppvtaPaAff/xJH374ke5ufo/R5oEDB4w6OTk5 mjp1mmrVrqNq
Ts4aPGSoUlJSij3O0grbuVNz58xW/fr1VaFCBbm5uapv3z7atnWLWdtXjxza 2jlo+YrX5NWg
kezsK11zHMX1XVpamp5/YZicqruoTp16WrR4CVPIAAiAAMomPdtag6d9WOiS nm3Zr42d4eEK
3xmqxIR4+fj4yM/f3yjr/VQfjRkzWqdiTyo2JlpNmjRRYOBE8yC6Y4d2bN+q xIR4DRjQX0/6
9Na3332nLZu/VVLiafXp00d+/gHG9q/OX6C9e/cpYvcuxcZEy8HBQZOnTL1h /eTdrp38/AO0
a9dupaVdO4WbN1p49cihJEVERChi9y5lpKeWuO+CgoJ14cJfOn7sqPbu/UU/ /vgTFy2AErMy
mUwmugHlxVdrVupum0hJUj2fIDrEQvmfAl6/oJvGzHu30G1XvDJM/SZulSRF nT5f4FPAtnYO
Oh0fJ2fn6pKk1NRUubp5KPViwSNyqampatykqU7Fxhj14+NOycXF2Sh3qu5y zbr8bTZq3FTf
bNqoJk2aSJISEhPV+oE2iomJLlWfFDaqlhfmzp+/oEWLFunrTd/oxIkTcnNz U28fH02dOkXV
qzsZbVwd/mztHBQddUI1atQwW5e3XXF9V9+roUJ3bJOXl5ck6c8//1Szu1tw H+FNYmNrTyeg
XGAEEICZlMyKMplsZDLZSLq8mK78TMm07NOj8gKMJFWqVEnZ2dnG+59/3qVH OndRdWdX2do5
yKm6i5KTz5jVzwt6efULWpe/zbi4OLW4p6Ux5VqnTj2zaeXSKOoeQCenapo9 e5Z+3feLLpw/
q282bdTF1IsaNGhwse3mD38l7buEhATVrVvXeF+vXj0uWgAlxucAAjBzMbOi xvv7FVpuX7Hs
vzYGDhqshQvmq3v3bqpatapSUlLk6la2zxP09PTUD9/vVM2aNW96n1lZWalp 06ZasniR3D1q
3NB9ubu76+TJk8YIYHR0NBctAAIggLIZM3PjDd9Henqa7O3tZG9vr6ioKE2d Nr3MbY4YMVx+
fgFaunSx6tatqyNHjmjeq/O1+uOPCq1T0BStpbp2665RI0fq4Q4Py9XFRfHx 8Vq8eKnatn3Q
2MbJqZqOHTtmTEtfD/37+Spw4iS9/dZbkqQJgZO4aAGUGFPAAG66kJUrNSFw kpyqu6hrtx7y
9m5X5jYnBk6Qd3tvde/RU9WcnDX0mWfV28enTG0W9TmAU6ZM1rr163XvvS1V uUo1Pdyhky6m
XtSaNauNbcaOHat/tWt/XZ/SDQqaocqVK6tho8a6775Watv2QdnY2HBRASgR HgJBucJDIKVT
2q+CK+whENw8R48eVa8ne+vY0cN0xk3AQyAoLxgBBIDbzIQJgTp37rxOJyRo 4sSX5fNkLzoF
QIlwDyAAeTfz0E+HE0pVDzdfvfr11LxFC6WnZ+iJJx7XjBnT6RQAJcIUMMoV poAB3EhMAaO8
YAoYAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAAC AADgBuGr4IDb
HF/hBgAgAAJ3WPir7+kkSdr+esdit+8yeqdR71YMgbZ2DsrMSOPEAgABEICl Bk/7sNCy1bOe
oYMAAJK4BxAoN3JNVmUqly6NwOUtbu6eGjhosJKSkulcACAAAiitneHhZiGr uGVneLjFbWfn
SCaTjUwmG0mXF9OVn9k5lrWTmZGmzIw0HTz4u+zs7OQfEMCJAwACIIDS6tih g7Zu3SxXV1eF
hobKZDJds4SGhsrV1VVbt25Wxw4dLA+AJmutf/9NrXv/TX2y6vLy/pWf2aaS /XV3d3PTksWL
tW3bdmNdTk6Opk6dplq166iak7MGDxmqlJQUozw9PV2j/Pzl6uYhVzcP+fkH KD093Si3tXPQ
osVLVLt2XTlVd9HwESOVkZFR4P6L2xcAgAAI3FYhcO3a1fL19VVYWJhZWVhY mHx9fbV27eoS
hT9Jysq1Vv/nhmtAIUtWbsn/ultZmU8bvzp/gfbu3aeI3bsUGxMtBwcHTZ4y 1SifMSNI8XHx
OnTogA4e/F0xJ2MUFBRs1sYP3/+gvft+0bFjR5SYkKjg4JkF7ru4fQEACIDA bR8CyxL+JCkr
x7pM5VdLSkrWhMBAde7c2Vi3atX7WrZsiWrVqqUqVapozpzZ2vDFBqP8k3Xr tXjxQrm7ucnD
3V1Lly7WJ+vWm7WbV+7u5qbFixdq7SfrCtx/cfsCAJQeTwEDt0AIDAgI0Btv vFHq8CdJmTlW
l+//k4yBO5Mkq0s/M3OsLGrH1s5BklS1alV16dJZb775ulEWFxenFve0NNs+ /yhhYmKivLy8
jPdeXl5KTEw0275+/fpmrxMSCv4cw+L2BQAgAAK3dQjs1q1Hie/5u1pWjpUW Lvn0UugrQLaF
AbCoz+Hz9PTUD9/vVM2aNQssd3d3V1RUlBo2bChJioyMlJubm9k2+cujo6Pl 7u5eqn0BAAiA
wG0dAs+dTZajo2OZ2snKtdbk8b0LLQ8eu7nMxzpixHD5+QVo6dLFqlu3ro4c OaJ5r87X6o8/
kiT18+2r8eMDFfLOSknSuHET1L+fr1kbEwInKWTl25deT5iogQP6l2pfAIDS 4x5A4BZQ1vCX
FwDLUm6JiYET5N3eW9179FQ1J2cNfeZZ9fbxMcpnzgyWu4e7mjVrrmbNmqtG zRoKDg4ya6N9
e2+1anW/GjdpKmcXZ82YMb1U+wIAlJ6VyWQy0Q0oL75as1J320RKkur5BJX7 P2/+r4JbNq2X
5r12aeStoHsAX35xpF6atVGSFHX6/D/yVXB81Rtudza29nQCygWmgIFyIsdk rfH+foWWV7Bm
wB8AQAAEbnvezTz00+FLT9H2Gf1BsdtHnT5v1AMAEAAB3MYh8HbB9C8A3BqY EwIAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAALhB+CYQAJJk fKVcSfCVcgBA
AARwG4e/+p5OpapHCASA2w9TwADwD7O1c6ATABAAAeBWCGUFLXkuXLig8eMD 1bjJXarkWEUe
njXUp28/7QgNLXGwy8xIo8MBEAAB4FaQmZF2zZJn8OChysrO0tYt3ynlr/M6 8PvvGjigv+bO
nUfHASAAAri9bH+9Y7FLcWztHBQS8o4aNW4qx8pV1ebBtvrtt/1GeWRkpJ56 uq+cXdxUpaqT
evXyUWJSkln9lStD1KRpM1WuUk33tXpAP/74kz788CPd3fweo80DBw4YdXJy cjR16jTVql1H
1ZycNXjIUKWkpBR7nKUVtnOn5s6Zrfr166tChQpyc3NV3759tG3rFrO2rx45 tLVz0PIVr8mr
QSPZ2Ve65jiK67u0tDQ9/8IwOVV3UZ069bRo8RKmkAEQAAGUTXq2tQZP+7DQ JT3bsl8bO8PD
Fb4zVIkJ8fLx8ZGfv79R1vupPhozZrROxZ5UbEy0mjRposDAieZBdMcO7di+ VYkJ8RowoL+e
9Omtb7/7Tls2f6ukxNPq06eP/PwDjO1fnb9Ae/fuU8TuXYqNiZaDg4MmT5l6 w/rJu107+fkH
aNeu3UpLu3YKN2+08OqRQ0mKiIhQxO5dykhPLXHfBQUF68KFv3T82FHt3fuL fvzxJy5aACVm
ZTKZTHQDyouv1qzU3TaRkqR6PkF0iIXyPwW8fkE3jZn3bqHbrnhlmPpN3CpJ ijp9vsCngG3t
HHQ6Pk7OztUlSampqXJ181DqxYJH5FJTU9W4SVOdio0x6sfHnZKLi7NR7lTd 5Zp1+dts1Lip
vtm0UU2aNJEkJSQmqvUDbRQTE12qPilsVC0vzJ0/f0GLFi3S15u+0YkTJ+Tm 5qbePj6aOnWK
qld3Mtq4OvzZ2jkoOuqEatSoYbYub7vi+q6+V0OF7tgmLy8vSdKff/6pZne3 4D7Cm8TG1p5O
QLnACCAAMymZFWUy2chkspF0eTFd+ZmSadmnR+UFGEmqVKmSsrOzjfc//7xL j3TuourOrrK1
c5BTdRclJ58xq58X9PLqF7Quf5txcXFqcU9LY8q1Tp16ZtPKpVHUPYBOTtU0 e/Ys/brvF104
f1bfbNqoi6kXNWjQ4GLbzR/+Stp3CQkJqlu3rvG+Xr16XLQASozPAQRg5mJm RY339yu03L5i
2X9tDBw0WAsXzFf37t1UtWpVpaSkyNWtbJ8n6OnpqR++36maNWve9D6zsrJS 06ZNtWTxIrl7
1Lih+3J3d9fJkyeNEcDo6GguWgAEQABlM2bmxhu+j/T0NNnb28ne3l5RUVGa Om16mdscMWK4
/PwCtHTpYtWtW1dHjhzRvFfna/XHHxVap6ApWkt17dZdo0aO1MMdHpari4vi 4+O1ePFStW37
oLGNk1M1HTt2zJiWvh769/NV4MRJevuttyRJEwIncdECKDGmgAHcdCErV2pC 4CQ5VXdR1249
5O3drsxtTgycIO/23ureo6eqOTlr6DPPqrePT5naLOpzAKdMmax169fr3ntb qnKVanq4Qydd
TL2oNWtWG9uMHTtW/2rX/ro+pRsUNEOVK1dWw0aNdd99rdS27YOysbHhogJQ IjwEgnKFh0BK
p7RfBVfYQyC4eY4ePapeT/bWsaOH6YybgIdAUF4wAggAt5kJEwJ17tx5nU5I 0MSJL8vnyV50
CoAS4R5AAPJu5qGfDieUqh5uvnr166l5ixZKT8/QE088rhkzptMpAEqEKWCU K0wBA7iRmAJG
ecEUMAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAwA3CV8EB
kCS+Cg4ACIAA7rTwV9/TqVT1bsUQaGvnoMyMNE4sABSCKWAAAIA7DCOAAMxs f71jkeVdRu/U
f0aP0fLXV9yR/WNr52C8rlatmrp27aIVy5fLzc2ViwcAARDA7Sk921ovBL9f YNnvP0QYr/sP
eFrzl/33juyjvOnlxKQkTZw4Sf4BAfp0/TouHgC3DaaAAZi5mHnt/wt7zT2s XnMPa9o3aRr9
8mxJkqdrbU166fkC27C1c9CixUtUu3ZdOVV30fARI5WRkWGU5+TkaOrUaapV u46qOTlr8JCh
SklJuRJC09M1ys9frm4ecnXzkJ9/gNLT0y1uP7/i9lXY8VvC3c1NSxYv1rZt 2y3en62dg5av
eE1eDRrJzr6SJOm7zZt1X6sH5Fi5qho1bqr//ndVifoiJOQdNWrcVI6Vq6rN g23122/7uZAB
EAABWC4ls6JMJhuZTDaSLi0bJ9+rjZPv1cvdquj1V6dKkk4nxxY5AvjD9z9o 775fdOzYESUm
JCo4eKZR9ur8Bdq7d58idu9SbEy0HBwcNHnKVKN8xowgxcfF69ChAzp48HfF nIxRUFCwxe3n
V9y+ysrKyqrE+4uIiFDE7l3KSE+VJD3//AuaMX2azp5JUuiObdodEVGivtgZ Hq7wnaFKTIiX
j4+P/Pz9uZABFP27y2QymegGlBdfrVmpu20iJUn1fILoEAvlfwp4xfReSs8u +P+G9hVzNWbm
RuMewKjT5wt8CtjWzkGHDx1Qw4YNJUl//PGHunV/VJEn/pAkNWrcVN9s2qgm TZpIkhISE9X6
gTaKiYm+dO7qN9D2bVvUqFEjSdLx48fVrfujior806L28z8FXNy+Sip/20lJ yXr5lVd0/vwF
ff7Zeov2Z2vnoOioE6pRo4bRZoOGjTVhwjj5PPmkatWqZbY/S/ridHycnJ2r S5JSU1Pl6uah
1IspXNg3gI2tPZ0AAiBAACx/AbAkigqAaal/q0KFCpKk7OxsVa1W3QgllRyr KDs72/yXkZWV
MSLmUKmy/k65UGj94trPH9KK21dpAmCeqlWrqkuXzlqxYrk83N0t2l9BH1Gz Z88vmjN3nnbt
+llVq1bTksUL9fjjj1vcF1e3x8fgEACB4jAFDECSFHooS+36z1W7/nMVeiir wG3a9Z+rU+cr
6NT5CmrXf27R4TAqyngdHR0t98sBSZI8PT0VFfmnMjPSjCV/IHN3dzerHxkZ KTc3N4vbz6+4
fZVGXjvJSQla98laI/yVdn+tWz+gL/7vM8WditWyZUvk5xdQor4AAAIggFKZ HLxQP6+brJ/X
Tdbk4IUFbvPZymnqO3KW+o6cpc9WTiuyvQmBk5SUlKykpGRNmDBRAwf0N8pG jBguP78AnThx
QtnZ2Tpw4IAGDxlqlPfz7avx4wOVmJSkxKQkjRs3Qf37+Vrcfn7F7asglj4E cr32N2ToMzp8
+LCysrJkMpmUnZNdor4AAAIggBuiXf+56jtylvG+78hZGvifNwvdvn17b7Vq db8aN2kqZxdn
zZgx3SibGDhB3u291b1HT1VzctbQZ55Vbx8fo3zmzGC5e7irWbPmatasuWrU rKHg4CCL28+v
uH1db6XZ35O9esm33wA5VXfR5MlT9f77q0rUFwBQUtwDiHKFewBL56fDCRr4 nzf187rJRtjL
e53fqfMVjBD42cppyko/U+g9gDfyHjTuccM/hXsAUV4wAghAkjR3RqBxD+Dc GYFGEMz/M2/q
N28qGABwe2IEEOUKI4Cl99PhhBLXKWj0T2IEEOUXI4AoL/gqOABFhrnSuNHh jPAHAGXDFDAA
AAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABw8/BNIAAA AHcYRgABAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAA ACAAAgAAgAAI
AAAAAiAAAAAIgAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABA AAQAAAABEAAA
AARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABA AAQAAAABEAAA
AARAAAAAEAABAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAAAI gAAAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAI gAAAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAXOX/
AVoxC2t2MkkCAAAAAElFTkSuQmCC
--------------050408040500070401030408
Content-Type: image/png;
name="PeopleProperties.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="PeopleProperties.png"

iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkW HLOzlgIAACAA
SURBVHja7N13dBRVA8bhd0kHEkISIPQaikiT3lF6R0VAAUV6750AIl16UQQE UQEF/CwgIkVB
AYEgVYrSkhh6EqSm7ma/P0KWLKRsIEESfs85e7I75c7MndmZd++UGMxms1kA AAB4bmSiCgAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiA AAAAIAACAACA
AAgAAAACIAAAAAiAAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AEAABAAAAAEQ
AAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiA AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AEAABAAAAAEQ
AAAABEAAAAAQAAEAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AAiAAAAAIAAC
AACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAAiAAAAAIAACAACAAAgAAAACIAAA AAiAAAAAIAAC
AACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAAAQ AAEAAJDB2adV
wRvXLtULDv6SpIKt36OmAQAAUsjB0Tl9BcD4Ar8nAAIAAKRUsTdmpEm5nAIG AAB4zqRpC+Cp
6MLUMAAAwGMqlkblGsxmszktCr4ZcpW1BgAA8ATcvbzTpFxOAQMAADxnCIAA AADPGfunObHg
q5d0+vgf1DoAAIANWr3VK/0GwPjBr06j1qzNNPDbtu+pX+qMdUIdwYbjUFod UJG8jWuXWt6X
KltJObzzUin/kTS/CSTuS8fOKm0PCNQvdcY6oY6QdPhr+WZPKuMZsunLZYRB G6TVTSBpGgAJ
fxwQqDOwTqijZyH8tejQg8p4hv3w1XKCYEYJgGdPHCL8cUCgzsA6oY7++/DX vjuVkV6C4LpP
CIFPKQDaU7UAgIzMLDOVkE40b99Nm9et0OnjfxAE01iaBUBa/2gRoM7AOqGO /itxrX/N23WV
zATAdBUC23WVJG1ev1KSCIHpLQAm5Pv/jZEiIiRnZ0nOkrO7nOUuOd9/yV1y dpazs7skZ9Ut
nY01hDS1+9OmSfav/e4WKglIx8yEv3Sr2Rvv6scNnxICM0IAVESEyndZpXLZ nHQtMvKR3rmc
nLRj7ymVqVRUkvTr/quqW9qJtYQ0Y4oxqNnQgwn2O/vTAO3+tCkh8Bll2NZW q/w8VaSwl5yc
7VXcJ7fcy/Z+bpa/3+L9OnIzh83DV3AP1of9q7HhgBCIpx8AI+RseR/592nd /ekHhe3/XZmr
1VDWJi2ksuWl+9dqGCRVq+b91ENgYZ9S8j97+rH74+msh1QLgGZDov0cs3iq aMnqz1wIZBuM
DX+RmfOp36ROkqQDR9115q8vVKXs87N9H/nXU6XDdto+vLnuc7k/SKgF8N1h C2Rnl0mZDAZl
ymQnO3uD7DLZy94+k+zs7WRvby97OzvZO9jF/rXLpFG92rBj/o80bdtFW75e RQhM1wEw4v4X
UtLdnzbLPeiiCpStqNtBF3Xzp82KKVtOMksGg2SQgab7VLDs92B9v++sIm8H y8kth4oXyKnX
qxRUrYIOVI4ko9mgmHibWYU+y3RkSU8ZZJZjFk9JUpGS1bRtWQs16vkDgfwZ Cn8eL3dSq/E3
9L2viyoWDNb2o8bna6XEGGVnZ6fR00YkO+iMsbOkGONzue0mdBypXKmEqpR/ USajSSaTSVev
XFd2D3dFG42KNhkVY4yRyRQjY0yMYmJi5B90NUMej3J559a1q1fSdBpOzi6W 95ER4Tb3e1iT
19/RT//7jBCYXgOg7rcAxpilsP17leeGs2IUrMwy6/LZv2QeMVaSlEkGGSTF SIpI5qAUx9XV
VXVq1dSk98bL08ODNSup2aTvFe3sqemda6hB2TySpM2HgzRtw0F1bVhGr5d1 TTcH/TQLgCaD
Yu4nwIr9luvQhz1iPxuknOX7W+4dPHa8us1BSZIMBoOyZMmiAvnzqW6d2urW tUu62S4TWu/P
avj7ztdFprC7igm7owv+IaqdwDh37tzRvAWLtX3Hz7p67ZqyZMmsKpUr653O HVWzRvX0u/Ga
jbKzj/137iWyxv6yNtz/gS2D4f4bsySD7O3tZEgmAF644K9Zc+dp/wE/hYWF qWSJEurVs7ua
NWmc3hPgI50O/vG3boXelSGTQZkyGZTJzl72l4OVyS6T7Owyyc7OLvaVKZPs 7TNJMiR6I0mu
3Hks793cXFWvbj1Nnz5NXp6ez1bYy51H165ctup27crlp3KDTFx4NhgMigwP iw1/Lpmtutsy
H01ee1s/ffM5ITA9BsC4FsAYc4xc5aC73k5ydXbT3Yjbco3KZtlxZZJBBoO0 a6e/GldM+kaQ
uANTSGiopk6fqXHjJ+rjDxc99yt2yIZzMmTNoYPTX4v9ot8MVy53FzV/Kb88 XZ01bOVuvV62
xnNfT9EPtQBa3sfEJY7YP1mzuNhcZtw2GR4ergv+Afr6f9+qWctX9b/1a5Uv Lzut1Ah/kvS9
b2aZwu7IFHZX4ef/UJcqoQk+7GPAoKHKXyC/1q5epTy5c+vmrVvat/+AFn24 JF0HQIMpWg5O
sbvwwdN+UHhYuO7cuq07t+8oPCxMW78aI7MMMpjNsre3kzkyOvFtNiBA7Tu+ rcED+mna5PeV
OUtmnTp1Wss/WZnuA2BCj4ApX9ZHw3u8avl84PgFVS1bJNEyZi//NslHyVy9 cin2OBQSoonv
TdKIESO1cuUn6aIunm4WN8eGPT3aMmvrvDV+rbO2fvMFITAVZHqqATDesTXb +5N1r+KLOnsn
SHcrvqhs709WjNksmc2yM0h2Srr172Fenp6a6DtOv+3ea9WSseLTz1S9dj0V Kf6CJCkqKkpj
xk1QmQqVVaZCZY31naCoqCirsj5e9okqV6ulUmUqaOTocYp8qH8ck8mkmbPn qlLVmir5YnkN
HDxM9+7ds5r+mrVfqc7LDVWidFk1atZSfxw6rK+/+VavNGyq4i+UVfNWr+rv M2cs4/z62241
atZSxV8oq1r16uur9RtSXM/fn7ytVTtPaPWQRpKkmmO+0erd51Wp31L1X3lA 1XxyKPJ2cIrK
/CcoSN179VXpchVVsnQ5vdO1h0JCQ3Xz5i1VrFJDt27dthr+5s1bqlytlm7d up3ouHEio6I0
YtRYlSpTQVWq19bS5SusykpunUVHR2vKtBmqWKWGylWsouUrPrV5uUym2Ffl /su1f0EPmUzS
6GW/qvKA5ao8YLlMJskYI2XOnPLrUF1cXFT6hVKaOH6s2r/xuubMW2DztmPr MiVXtwl9B5Ia
J64Fs7BPKasW9vjvk1sfhX1Kae2X61SrXn3LNn7q9F+Pvd/45YvR+uWL0dp+ tZh2/h176YI5
MkKmsDuKuXdH4ecPyuHOBZkbfZ3g+PsOHNCYkcOVP18+2dnZydPDQy2aNdVX az63eX08Tj0n
tw6ftI7MMdFycIgNgDOGN9eCCW21Yk5XbVg+SD+sGaNok2Q0mRVlMsvBwT7J FsD5Cz9Un149
1PGtDsqe3V1Ojo6qUL6cPlq8INXWe1L7Nlv2y7auqwRbAB9+Sdp7+Kz2HT6r vUfPyhhj0t77
72Nf5y3v9x09m3g5cSHm/nsvT09Nmfy+dv36q6Wbd+68Wrp0mSq8VEm58+ST zGZFRkRo2LAR
8ileQj7FS2j48JGKjIiwGmfx4g/1YplyKlykmAYPGWrV32Q0aurUaSr9YlkV KlxUvXv30d07
dxOdpnfu2KDknTtv7Pt4w9la5i+//KK6dV9W/gKFVKlyVa1ZsybxOon3igi7 awl9ccEvfvgz
GAyKCLtrU1lxr8avdtLp438o+OolUlx6CYCSs45u36f13+3Rz+dv62jJV3S+ y3j9Xa6JDl2P
0c49J2QwSIf/OKcjhy8oIiIiRaXH38jiHDt2XD98/40unDkV+0tu7nxdvXZN O3f8pF+2b9Hl
y1esDsyS5HfwD23Z/L1279qh4JAQzV+QcIviRx8v08mTp/TD99/o0IG9cnJy 0vQPZlsNs+f3
37Vu7Rc6dshPbVq1UJduPbVr129a8/mnOn7YT82bNdHocRMsww8dPkpDBg3Q n0f/0Pq1q3X0
6PEU1/LhgBsq62lQ4ZxZ9e6SPSpeIKeGtXxRjk+wtrv17KOuXd7WYb/fdXD/ HhUtUkRTps2Q
u3s2NWnSSGu/Wmc1/Ffr1qtVy+bKls0t0XHjzJu/UKE3bmj3rh3avOlb/b5v v/Wv72TW2fyF
H+rsuXPavPFb7d75s65evWp7C2BMJhnNZu2Z313VBi2X0WzWpK51tHd+d+2Z 110mc4xiYsxy
yfpkvzQ7tHtDe/bus3nbsXWZkqvbhL4DSY0T13rpf/Z0oqd9bfkO7T/gp/+t +1LHDh1Q40YN
NdZ3wmOHv/w1+ilftb7KXamnclZ4V5/P+cLS8hd24Y8kw58kVXzpJY0eN0FH jhxVZAJPH7Bl
fTxOPSe3Dp+0jgwmoxwcYwPx6NmbNXr2Zg2b8o16j12tTgM+1uvd5qpFx+ky 3g+AiolKtKx9
+/arZfOkH4n0pOs9qX2bLWWnZL/7cKvTwy+j0aSaL/mo+ks+qlneR6Yoo2re fx/7Kmp5X728
j4zG6ATLiQsy8T8b4tqz4vU/fOSItm/dossX/5HZbNb0GR/o6tWr+n3Pbu3d /ZsuXbqkGTNn
WY2zf/9+7fx5u/z2/67g68H6YNZsS/8FCxfp+PE/tX3rFv15/KicnJw0ecqU RKd55VKQJOnK
pSBduRSU4LwnV2b/AYM0Yvgwnf37tL775msdOnQ40Tp5+BV+706Cx2eDwaDw e3dsLif+q1Gb
joTAJz2LkFb/Cm7j2qWPPLx05pyZ6jB6hoplsYu9pEKSMeSsHLx8JBlklln7 959RtWrFteLr
k3qnfq4kpxH/WqXQGzc0feYs3b59R8uWLLb0P7D3V+XMmdMyTtWadfXVms9U uFAhSdIF/wC9
1fkd7d/zq2WcnTt+UqGCBS2nRt7q3EX7du96ZJq16tXXZys/UdEihSVJwSEh at7yVfnt220Z
9rDfPmXP7h7bAhoRoVJlKjzSrUyFyjp7+k9JUo06L6t3j+5q1LCBvL0TX/6k Hg47cXOAdu0/
pmNLesnQ7mOdW9RRRXO5ytDuY+2f1lY53Zz1xqQ12jGptc31+0hrbkSEatWt rz8O7NWFC/7q
/G43/frzNtnb28toNOrlBk20bu0XypMnd5LjSlK1WnX11ZrPLXV+wT9A9Rs1 tUw7uXVWvXY9
rfl8lYoULpTk8iRUZ1/Mf1Xth8eWU3fYCv06p5ve/2y3fj4e2yr729xu2jct 9lEbdUb8nex2
n1idRUdHq3S5ijpz6rhN205Sy2TreknsO2DLOA+XH7+bLd+hIwf3y909W4Lb uK3bcVz4kyRj
lFFRkZGKDI9UVHiEAg6sUod6rsmGP0m6ffuOlixbrp9/2anAwH/k5eWpxg0b atCAfsqWzc2m
9fE49ZzcOnzSOqo5cqcaFLitdwd2U06zyXICzWA5pXb/vUGauWCVfg5y054P Xk5weXxKldHp
P4/I3j7xq4KedL0ntW+zpWxb97tx4h4E3ahNx0eWZebyTapVqYyljszx6i0h e/74U6N6tEyw
X+68+S0BKzQ0VO9Pnqrbt2/p05UrLP2PHv5DuXI9WObyL1XSN19vUJH7y3D+ /AW1bddeRw4d
tIzz+57dKnx/27lwwV9t27XX4T/8JEmVq1bXl2tXq1jR2EemBQcHq37Dxjp+ 9HCi04w/nwl1
S67MipWrql/fPmrapLFy586d8jMiWVwfOe0bFw
Re: [EMF] How to create an instance of an ecore model [message #427183 is a reply to message #427180] Thu, 05 February 2009 10:23 Go to previous messageGo to next message
Miguel Angel Garcia de Dios is currently offline Miguel Angel Garcia de DiosFriend
Messages: 22
Registered: July 2009
Junior Member
This is a multi-part message in MIME format.
--------------080806060604020202060300
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Ih Ed Merks,
I've changed the property volatile of the "people" ERefeference of
"People" class, which is my container of Person. Then I can generate
instances of Person from "people" EReference but now I have a new
different problem: with the "OCL Interpreter Console" plugin installed I
have made many OCL queries but I've obtained an unexpected value
attached as a screenshot: Having three instances of Person, the OCL
query "Person.allInstances()" returns an empty result. But if I write
"self.name" (being the context an instance of Person) I obtain the
desired result ('Ada' for example). I think I have any wrong property
value because it seems like Person isntances are no related ro something
similar.

Thank you!

Miguel Angel Garcia de Dios wrote:
> Ed Merks,
> Yes, I did. I marked the feature as volatile.
> I think it cannot be so complicated. Maybe any value of a property is
> not correct so, to ensure that I'm going to attach screenshots for
> everything (it is not so much).
>
> I am really concerned with that because I think it should be easier.
> Thank you in advance!
>
> Ed Merks wrote:
>> Miguel,
>>
>> Did you mark the feature as volatile such that no code is generated
>> for it?
>>
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Ed Merks,
>>> I have the containment property of my desired container class in
>>> true, the GenFeature properties are also update: containment=true and
>>> the GenEdit properties contains children=true and create children=true.
>>> I hope you can be more explicity with the solution of my problem please.
>>> The last error I've obtained is when I create My.container file from
>>> a Poeple object. Hten I click on it and I get the nex error:
>>>
>>> Unhandled event loop exception:
>>> java.lang.UnsupportedOperationException
>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>
>>> at
>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>
>>> at
>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>
>>> at
>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>
>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>> at
>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
>>> at
>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>> at
>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>> at
>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>> at
>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>
>>> at
>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>
>>> at
>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>> at
>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>
>>> at
>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>
>>> A lot of thanks!
>>> And always sorry for my bad English.
>>>
>>> Ed Merks wrote:
>>>> Miguel,
>>>>
>>>> Comments below.
>>>>
>>>>
>>>> Miguel Angel Garcia de Dios wrote:
>>>>> Hi,
>>>>> I think my question is easy for us but i have spend too much time
>>>>> in it:
>>>>> I want to create a simply ecore model and then i want to
>>>>> instanciate it and check some OCL queries on it.
>>>>> My purpose is to create an instance of an ecore model which
>>>>> contains as instances of a class named Person as I want.
>>>>> These are my steps:
>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>> -People, which contains an EReference with multiplicity
>>>>> 0..* to the EClass Person.
>>>>> -Person, which contains only an EAttribute named "name"
>>>>> with String type.
>>>>> 2.- Create automatically the .genmodel file from the ecore model .
>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>> 4.- Launch an Eclipse application from the project.
>>>>> 5.- Create an instance of the ecore model.
>>>>> My probles is in the last step: I begin the model with an instance
>>>>> of People and hten I desire to create as number of instances of
>>>>> Person as I want but I cannot do that. I don't know the reason.
>>>>> I've seen the EXTLibrary example too many times but I cannot get my
>>>>> desired result.
>>>> The lack of there being a containment reference is the likely
>>>> reason. And note that even if you change it in the Ecore model, the
>>>> GenFeature properties for the feature will *not *change, so you'll
>>>> need to update those as well to support children and child creation.
>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>> as many Person as I want. That class is People. I've tried many
>>>>> possibilies changing the class properties obtaining different errors.
>>>>> Can somebody tell me how to create an ecore model that has an
>>>>> EClass which can generates as many instances of another class as I
>>>>> want?
>>>>> Thank you in advance!
>>>>>
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>


--------------080806060604020202060300
Content-Type: image/png;
name="OCLQuery.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="OCLQuery.png"

iVBORw0KGgoAAAANSUhEUgAABkAAAASwCAYAAACjAYaXAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQoK F8BQrI4AACAA
SURBVHja7N13XBTH3wfwD6D0Ir1YAMFCNGqMXYMYe6+o2GNXwAaoiAXsvWs0 MbFFjbHEHrFE
JMaujy3qTzSAhXYUjYKUO+75A1k5OLgDEY7j885rX97tzs7Mzu6R2fve7GhI pVIpiIiIiIiI
iIiIiIiI1Igmm4CIiIiIiIiIiIiIiNQNAyBERERERERERERERKR2GAAhIiIi IiIiIiIiIiK1
wwAIERERERERERERERGpnQpsAiKikvU6PgYAIIp5hUf3bqJRq3awq+bEhinj op4/w81L54T3
LvUawdKmMhuGiIiIyq3QM0cV9omy+8TdPcaywT6j4/t+YD9VRT4HlSxs2ChE RCVIQyqVStkM
REQl53V8DIMfai5nMIQ3mERERFSeFRQEye4Tdxs4hg1Vgk78+iP7qaX4OWAA hIioZDEAQkRU
wsIe3GLwo5zIDoTw5pKIiIjKM3lBECH4MWA0G6iUnNi/jf3UUvgc1Kj7NRuD iKgEcQ4QIiKi
z8SumhMatWqHR/duIvTMUYhiXrFRiIiIiHKQ8r9S+6/rgFHspxIRkdrjCBAi ohJ2bO9Wjv4o
hzgahIiIiMqz0DNH4dqhp8z7rv1HsmFUxMnffmY/tYQ+Bz0GjWNDEBGVIE6C TkREVAKyRoNA
mBuEN5dERERU3vH3mKqji/t3OHVgO/upRESkdhgAISJSISfXuRa4vevkUDZS GcYgCBEREZU0
U0tbpdIliaJLJB9l9OrdR+m0R34/zJNcTNQ5CFIWPwdERFQ8GAAhIlIx7Sde kLs+7LQ3Tq5z
ZRCkjGMQhIiIiEqaopEWGhoaJZqPMvnt2XNC4f6DB3cr0VEkVtY2iIuNUetr pXO/Efjj4A61
7Keq6ueAiIg+L06CTkSkQsRSDWRKpXIXbQNzOFSvq3CUSHlgampaamVraGgI S2G25ZRzcnRO
OElERERlRc6+jrylsKRSqdylOPL4HEtxlWdlbfNZ6qetoysshdmWe+nUdzj7 qSX4OSAios+L
I0CIiFSIWKKJzHzu+bQNzAEADtXr4tCqNujrcyHffExNTVGrVi1cuXJFphMu lUrRrFkzPHny
BElJSSpxzKampoWuS2nXPfsGWENDI9/XinAkCBEREZWU4vpStth/+V5AfmJx JoYP7wEDAwNU
qmQCMzNzWFpYwtLSAmbmZmjWrEuBeVjb2uWbd2x01Kc0glLJrG3t8i0nNjpK qXwKykOZfmra
+xQAgI6evmw/VYmyO/UZhtOHd6lVP1VlPwdERPRZMQBCRKRCMqSakEhk10U8 mwsHp/kw+9JL
WHf/fx0V5qWvr4/g4GB06tRJWHfq1CkYGBiwoYuJVCoVbnCK8vgFBkGIiIjo c1PluQikyL//
lJEhwbZtvwPI/qEJoPFhDw2NrO0F5RET/XH0go1tZZn3BZX7KXX+lLTFnUdB /VRl8+zYZyiC
D+9Wi34q5+QgIiq/+AgsIiIVkiHRQCYgLLdv/A18+Dfn+gyJ4l8VTZo0CWvX rpVZt3btWkye
PFl436VLFxw+LDtx5MuXL1G7dm38999/OW5AMxAQEABnZ2c4ODhg48aNwra0 tDRMnjwZ1apV
Q7Vq1TBlyhSkpaUJ201NTbF9+3bUq1cPVlZWcHV1xf3794Vt2f/mfKxVREQE PDw8UKVKFdjY
2KBfv34QiUQyeSqTPwBIJBIEBQWhRo0asLW1xahRo/Du3TuZ/Tdv3ow6derA zMysUDeT2e9z
3lTmHAmiDD4Oi4iIiMotqVT+AiA9Q4zRo3tj8uQhmDt3Itatm4M9ezbg7Jl9 uHkzGOkfAiD5
5pErv+zXkRERGDZsBJyca8DeoTo8PAYjXiQStv/5559o3boNqlZzQKPGTbFn zx65+dy9excN
vvoaP/64TWGZuRcb28oKy7OxzQo42NhWlklf0JKa8k5hPzU15Z1ybfZh6dh7 CPupRERUpjEA
QkSkQjIkmpBIpMJiZhaMw4d1YGYWLLM+Q6L4z3ePHj0QHx+P69evAwAuXbqE pKQkdO/eXUjj
4+ODZcuWITMzU1i3fPlyjB8/HsbGxsK6pUuX4vHjxwgNDcXdu3cRFfVxKP7C hQsRHR2NW7du
4ebNm3j58iUWLVokU5dLly4hODgYERER6NatG6ZMmQLg46OskpKSZB5rNXDg QEyYMAFPnz7F
kydPUKNGDQQEBOR7rPnlDwCrV6/G3bt3cfHiRYSFhUFXVxfz5s2T2f/WrVu4 ePEiEhMTlbxX
l+Y7B0jRR4IwCEJERETlS0FzbaSnSbBm7X4sWvQT/PxWY9SoAPToORbNW/RB rVpuSE+TFJhH
fnN3DB02AmPGjMKDe3dx7+7/wdnZCXPnBQnbvbwnw8/XB2H/e4Qjhw/i1q3b efI5c/YcBg0e
iiWLF2H0qJGFni8k57b8yot+9QIAEP3qBaJfvVB6HpD3yW/z7ae+T35bpLlF OvQazH4qERGV
WXwEFhGRCkmXaEDyYRIQTfFNHD6sAy+v9ti48Sy8vG4gs0IjIZ0impqa8PLy wtq1a7F3716s
XbsW3t7e0NT8GDxp27YtDA0NcfjwYfTr1w/Pnj3D+fPnsWzZMpm8fv31Vxw9 ehR2dlnPUl68
eLGw7eDBgzhx4gQsLS0BZAVLevTogfnz5wtpVq5cKYza8Pb2xooVKwqs+9Wr V4XXurq6mDt3
LurVq5dv+oLy3717Nw4dOiTUfd68efjmm2+watUqIc2iRYtgYWFRqueej8Mi IiIi+ig1VYyZ
M4fkOweIvcM3Rcr3YsifMv1M/5kz0Lhpc5l1sXFxSExMROXKlbFqpWy/dfuO nVi3fgN+2bUD
DRo0+OTjVFSequjQazDOHNnDfioREZU5DIAQEamQ2t/44+GdK8LIDy+v9njw IEMIgvTpcwKJ
iR1R+xt/pfLz8PDA0qVLcejQITx48CBrSH0uPj4+CAwMRO/evbFkyRJMnjwZ enp6MmliY2Ph
4OAgtwyRSCSzzcHBQeZxVYDsI6v09PQgFosLrPf169cxb9483Lt3DykpWZM3 FjSZYEH5R0dH
o0mTJjLpc+dlY2NTqPOU30iP7JEhRRkFAjAIQkREROVLQX2mtDQxgubvyOp7 ZSfL7sJJgfS0
DIV5yCvr5q1bWLhwMR788wApKe/z9O22/bAVa9atw8pVq2FsbIT5gYFo376d kM/WH35Af/d+
qF+/vsKyC9qubHmF7VfqGxoX2E9Nefdfkc9X+56DcPboXvZTiYioTGEAhIhI hZibnwEAmeAH
gFxBkOAPqd0U5qejo4Px48dj/PjxCAgIgI6OTp40nTt3xqJFizB//nzcuHED mzdvzpPG2toa
ERERcHZ2zrPN0tISkZGRqF69OoCs+Ts+dTTFiBEjsHDhQrRr1w5GRkZ49+4d qlWrVqS8rK2t
cfbsWdja2hbLOcod4Mg9uSSDIERERKSuCvpBSlEoCoAsXjw63xEgpqaNFOYh r6yx4yZg7pzZ
+LaNGwwNDZGcnIxaLnWE7fXr18OOn3+CVCrFhQshmObrhzu3bwr5HDpwAO79 B8DExBgTxo8v
8vEpW15h+pQGRiZK9VOT374p8jlr18MD547tK9f91OL+HBAR0efFAAgRkQpJ SOgADQ0N9OkT
/OGxV1lBkLp1K34IfqQhMbFjoW6EpkyZIjMnhrwOvI+PD0aNGoX169dDW1sb QNaoiux5OTw8
PDBjxgxs2LABBgYGWLZsmfAYrD59+sDf31+YGH3mzJno27ev0vUzMTFBWFgY atSoIaxLTU2F
rq4udHR0EBkZiQULFhS5TUeOHInJkydj2bJlqFq1Kp48eYJVq1bhp59+Kpab n+xz8SlBj9wY
BCEiIiJVkySKLv5MCwyAZMDHZ0t+OyItTawwD3llpaamQldHB9oVK+L58+dY tnyFzPaJXt6Y
OnkS7O3tIZVmQiKRyJRha2ONQwd+g/tAD0jEEnh5TizS8SlTnrGxMZ49fQon J6ci9VOT/3st
v5/6iX3Wdt0H4tzxX8tlP/WzfA6IiOiz4iToREQq5NLp1bB3aQYj63nCiI/s 4IeXV3sYWc+D
vUszXDq9uljL1dLSgpOTEzw8PORunzFjBmrWrIlWrVqhQYMGqFKlirBtzpw5 sLKyQsOGDdGw
YUPY2tpi9uzZSpft7e2NNm3ayDzGasOGDQgICEDlypXRvXt3NG3atMjHNmXK FDRv3hw9e/aE
nZ0dRo8eja5du35Se2loaOS5kcz+RV1x/SKME6MTERGRupPm8x8ApKVJkJYm zmeRCAEQqRL/
5Uy3csUyBM1fgBq1v4B7/4Fo1Ohrme0dO3TAqLHjUaP2F1i4eAnWr1udJx8r a0sc/O1XHDh0
CGvWrc+3zMrVHPIsuetTUHnjx41Fp67dhf2UOc7s/ui7/5KE9e/+S5Lpp0qL 4b+23Qewn0pE
RGWChrS4fq5KRERKObZ3Kxq1age7anl/yTVvek8Mm7ZfeJ8imo/Dh3XQp08a 9C3nCut3rR6A
oOVHi61OgwYNQt++fQs1coNKRtTzZ7h56Rxc6jXiSBAiIiIqs0LPHIVrh54y 79t26y837YBB
QzFyZNYPfqRSABpZ039IAUSGnwAAODh0w8/bp2H/3t1s3FJ0/sRv7KcW8nPQ Y9A4NgQRUQni
I7CIiFSIJFMT21d+HIXRvvsU9OkTjMTEjti/M+fojOIZwJeZmYndu3fj33// Re/evXkCVBAf
h0VERETqKr/fY/66Zxd+2LYDVap2kVn/8sUpjB09AgDww7YdBeZBJePbru74 8+QB9lOJiEhl
MQBCRKRCFq78XeZ9SEiIcGOXe1txMDc3R7Vq1fDzzz9DU5NPRVRVDIIQERFR eTN29AghyJFz
Xc7XOd9T6WEQhIiIVBkDIEREKszNzQ2A22fLP3uSc1J9DIIQERGRulE0emPM qOGFSk+lp02X
frhw6iD7qUREpHIYACEiIiojcgZBHt27yectExERUZnGgIZ6cevcFyF/HGI/ lYiIVAoDIERE
RGWIXTUn9BjkJEyODvBXdkRERFRGMQCidtw69QEAhJw+zH4qERGpBAZAiIiI yiCOBiEiIqKy
TgoGQNRV6069cfH07+ynEhFRqWMAhIiIqIzKPRrk0b2bAMCbTCIiIiobOAJE rbXu2AsAcDH4
CPupRERUahgAISIiKuOyAyEAGAwhIiKiMoNzgJQPrh16Cq9DzxxlP5WIiEoU AyBERERqpKBg
CBERERFRacovGEJERPS5MABCRFQK7Ko5sRGoRK6z7GAIERERUWk6tncrG4Fk 5AyGlBehZ47y
xBMRlTBNNgEREREREREREREREakbjgAhIipFr+Nj2AhEREREpLYqWdiwEcqg O3fv4ZvWbfD2
dQIbg4iIyjSOACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdPgKLiEiF 3NzTTe76RoNP
sHGIiIiIiIiIiIgKgQEQIiIV4zrxmsz7sNPeuLmnG4MgREREREREREREhcBH YBERqRBJZt51
2gbmsK3eBNd3d2MDERERERERERERKYkBECIiFSLO1EKmVIrjof/DwbMPkJmZ FQDRNjBHZecm
+HtnDzYSEREREVEh3TjYmo1ARERUDvERWEREKkQiyVo6taiZ9T5TCvN6XtCu kBWvNvny/wqd
p2MNF+G1vr4+vmpQH4FzAuDs7KTWbfn27VusWbcRZ8+dR0xsLAwM9NGkcWMM HzoYLVs0V7rt
wsMe8cIkIiIiKsNuHGyNdmOv4dwPTdG438Viz3//30lYdyExz/rJbcwwoKUp T4AaMLW0VSpd
kiiajUVEpGIYACEiUiFpUk1kZEpx/moYUtMykJySDofKZjD7u4+QxnlEcKHz zf4S/+3bt9i5
ew8mT/PFyWO/q3Vbek+ehqrVqmLvLztgZ2uL12/e4MrVa9iw6XulAyBERERE VLZsPyI7n16t
FB9AI+t1RoYEl/e1QguPS59UxuWtDQAALcbdwYSdr1BVJx1BfZ3QvK45wl6+ Q/zrNPwT9hKX
771CyNMUfD+8stq3+6nLT5VO26WFc7GU+So2ASKRCKmpqdDV1YWlpSUqW5t/ luNLEkXD1NIW
UqlU7nYNDQ0GP4iIVBQDIEREKiRDrAmxBGjdqAagIYW+jhYuz3VGo2XhQppz MxzRyO9KkfI3
MjLCmNEjsWHTZgCARCLByjXrcODAIbxLTkaHdm2xZNF8GBgYAAAuhv6FRUuX IyIiElZWlvCa
OB4D+7sDANLT0zEvaCFOnPoDANC9a2cEzp0NbW1tAPJHT+Rc51jDBbNnzcS2 n7cjNjYO/z55
iIyMDCxbsQq/HzkGsUQMr4kTMGbUd0rVNbcr165h88Z10NfXBwCYm5mhW5fO 6Nals5CmoDyz
R85k/8uRIERERESqbf73wfimWV0AWTEP6Z2+6DTxCABAmhKBTt8dBDSAo5ub oc13Vz+prM7+
j/HHktq4G7MP1Vz08k135+p94BMCIAGbQoXXizxdVbr9G3zbSmGaO39eKpay XsUm4MWLF6hS
pUrW+dbQQHx8PAwNDWFioPNZji9JFA0NDY08QRAGP4iIVBsDIEREKiRDogmx RIq/bz+FnaUx
tIK7oLXPXGTEbYc4JRUJz6NRrVVvPNneEUB2x1sDNb9TblTI27dvsWPXL/jC JetL/c1bfsA/
/zzEiaOHYWRkiMD5i7Bk+UosDJoHAJjmOwMLFwTi2zZuSIhPwPqNm4UAyMrV axETG4sL505D
KpXCb7o/Vq1ZB/8Zfkof792793Di6GGYm5kBANau34Swp09x8tjv0NfXx7oN G4W0iuqa29cN
G2JmwFx8N2wIvvjCBTo6eW+ECsozPOwRH4FFREREVEZMXfo7HB2r4f6TGEjx YdCH/ia8X90V
ADBgzDL89uMMQAp0nnirSGVkj/zI1tn/MbCkNjb87wdUrKgFaUYqEt68x+3H MXgV8wbxr99D
w8b+k4+ttnMVPH76EgCw6rd/hPUSsRgZGRKIMzIgzhBjwYSWpX4eTu0+qDDN tgMxAIDR7q2K
XI5IJEKFChUQE5OVV8WKFVGpUiXo6uoi4mU0YmNj8f79e+jp6cHa2hoOVWyK 5fhyB0EY/CAi
Un0MgBARqZCMTA2IJUDT+k4w1tfCw9NARcN6WZ16Q6CK1YeEbQfL7HdtYwfU Gnkm33xzzgNi
aWmJwwf2AQD2HziInT9vg42NNQBgut80dO3eWwgq6OjqQBQnQlJiEuzsbLF0 8QIhn6PHT+LX
PTthYZ41zHzunAAMGjq8UAGQ2bNmCMEPADh85Aj27Noh1GdOgL+wTVFdc9uy aQO+/+FHzAiY
g8jI57CwMEfH9u0x2dsTJibGRcqTiIiIiFTPzWu7sWXx1Hy2RmJvYGVIUyKQ +l6M3tPuFqmM
y1sboE7rjqjyRVY/PPP1dQBAO49RwL6xSK59R3gEloWFKf4Je4nwV2m4Efv+ k48vO/gBAD79
66j8+egytJ/CNMoESgqSmpqK169fC++NjIxgZmaG6OhoREREwN7+Y+ApIiIC AIo9CJL9moiI
VBsDIEREKiRdoglJphQ37z9D26Y1kZkpBTJSPozhB6AhBaQaH/6F8DxjSaa0 wHzDwx5BKpXi
+YsXmOE/G//88whVKldGbGwc2nXsIpM2uzMPAN9vXI8Nm77H2g0bYWRohLmz /dH22zYAgISE
BFSrWlVIW61qFSQkJBbqeK2srGTei0TxqFa1ity0iuqam7GxEWb4TsMM32mQ SqUID4/Ajz9t
h9fkqdi946ci5UlEREREZc+gwFf4OcAG/Wc8+KR87J3qQfTkME7+sh8AMGKm L3av3ozwBmdR
N7+dMjM+qcxFnq4I2BRa6MdfxcTEYPjIsbh+40a+aZo0bozgU8c+S5tb63ze cyqVSmFsbAxt
bW1UqFABxsbGsLS0xNOnT2FgYICYmBhkZmYCyBodEhUVVWwBEICBDyKisoQB ECIiFSLO1IAk
U4qv6lRHJgCJBEDGG0AqFYIdHwMfGlnrs9MpoKGhAftq1bB21Qp0790PrVo2 h6WlBX4/sB/W
1lZy96lf70ts27oZUqkUF0P/gt/MANy48hcAwNzcHC9evoTDh19XPX/xEmY5 RnNUqFBBmJAQ
AJKSXiuso6WlBZ6/eInqjg5ytxVUV0XHXr26I+bNmYX6XzcpljyJiIiISFX6 0FoK01RznfXJ
5byOvIeTvxxDr8BHOBLogh1LV2KFeBcKGu+gkSku1mNVdk4QGxsbHDtyEDP9 A7Bj1y95to8Y
NgRLlyz6bOdE8zP/psjJyQkxMTGoUqUKdHV1oaurC21tbZibm+Ply5d4+/Yt UlJShCBIzvsU
IiIqXzTZBEREqiNTqoFj67vg2PouePrvC0gkmUBqApCWCKR+WNKScrzOei+R ZCpdho2NNZo0
+hpHjp3AkEEDMTNgDiKfP4dYLMb/njzBpCk+QlrvKT54+vQZMjLEkEqlyMwR aenetTPmL1yC
+IQExCckIGjBIvTo9nE0hUvtWvhh289ITU1FbGwcZs8NVFi3vr17IWjBQsTE xOK//95iwaIl
wjZFdc1t4OBhOHHqD4ji4yGRSBAdHYOly1ehQf36SudpbGyEZ/+G88IkIiIi UmFpGRUgyUSB
S1rGp/3+s8W4OzjyyzF4LH8mrOsV+Agrqo5B09huAIB7m6uibrK/zH5SSXqx HGPAplAh+FHb
+eOI6UU7byNo2zXM+f7vPPvoaGtjzaoVWLNqBXS0tfNd9zloKVg+lZWZMerX r49Xka9w8uAt
bFt3Aft+voD4mHjUqlULNjY2MDExgb6+PvT19SFR5hdjRESkljgChIhIhYyY tlfm/e1MZAU6
NIRnYOWY+/zD47AAZGYWrpwB/d2xYtVqHD18ABrYhsHDvkNcnAiOjg7wmjhe SNexfVuM9/RG
5PMXcHR0wOpVy4Vtfj5TMTdwAdzadgQAdO3cCb7TpgjblyxagBn+Adiw6XtY W1thwtgxOHW6
4MnaJ3t7YsmylejcvSekUim8PScK28aPHVNgXXOb5DURu37Zg9lzA/HuXTIs LS3g2qoVNq5f
o3SeY0ePQo/e/ZCSksLJ0ImIiIhUVJq4IsRiqcI0n6pX4CO8T0kXXl/e2gCd /R/jjyW1AQBx
0Wm4cf4I4Boo7KMhKZ4RINmjPQI2hcrMCRIwvKHie4xhQ/CFSy3MnDUHSxcv QJPGjT/7OanU
NSDfba9PFs/Ik3u37+FKSBxq13OCdeWsdVdCsgJUNpVtkJmZieTkZMTGxqJh w4b8oBARlVMM
gBARqbDMzEwg/T98fO6VNCsYIpXmTZcPeV/cu37TEq7ftAQATBg/FhPGj5W7 b7euXdCtaxe5
23R0dLBsyUIsW7JQ7vY6X7jgxNHDMusGDxpYYL0qVqyIubP9MXe2f55tmpqa BdY1txbNm6FF
82YFplGUp+eEcfCcMI4XIhEREZEKS83QRoZEqjBNccoOfmRL3u+C4evDhWCI QJpRrOUWdi6Q
bE0aN8afZ0+X2DlJ/mMRwlPkb3uZWjxlPL7/GhW09fD0cZSwroK2Hu7dTEIX hyp48+YNUlNT
0bBhw2Kd/4OIiMoWBkCIiFRYo0kXcHqNm8J0zaaGsLGIiIiIqFxKzaiIDIni NMXl8tYGaOcx
CpmvrwMAOk7YBQD478mavIkzizcAouwcIKVNC4Cz/uctIykhHZEReecZtHeo BFMjPbRu2ZQf
DiIiYgCEiEjVMbhBRERERJS/NHFFhSNAiuMRWNlajLuDvYEuGDQNSJcY4OC6 FcK2F43O4mnI
A8QnpSA9XVJsj8DKGfio7VxFeAzWop23Ic7IgDhDjAUTWpbqebjz5yXhtUYJ zDgrTs+EiZme
3PVERETZGAAhIiIiIiIiojIr/cMk6IrSFKdegY8+BEGy5qy7Uf0Y6jhYAP8l y6Tr29r5k8vK
OdKjKHOAlIQuLbKOc9uBGABACcQ/8E0HG/y64wmcv7AU1j19KELnEVX5oSAi IgEDIERERERE
RERUZmVkauHXgycVpNIq9nKzgyAAcPH6bVy8Lru9Z+smmNrbsVjLVOXHXmU7 tfsgTpVAOV9+
WQMYAZw5/gqJCckwMzfAwBE1s9YTERF9wAAIEREREREREZVZ4we0KLWyewU+ yvqXpwEAMNq9
VYmW9+WXNRjwICKiAmmyCYiIiIiIiIiIiIiISN0wAEJERERERERERERERGqH j8AiIipFoWeO
shGIiIiISG31GDSOjUBERESlhgEQIqJS1LnfcDYCERERERERERHRZ8BHYBER ERERERERERER
kdphAISIiIiIiIiIiAQN6tfD29cJbAgiIirzGAAhIiIiIiIiIiIiIiK1wzlA iIiIiIiIiKjU
hJ45ykYgtebaoScbgYiolDAAQkSkps5836HA7R0mnGEjEREREVGp45fDRERE 9LkwAEJEpMba
T7wgd33YaW+c+b5DsQRBtHX0kJ72vsj7h4b+hRHfjcTLly8/KR9SPZ96bXyu vNSlzcpLmxAR
EREREREVFecAISJSU2KpBjKlUrmLtoE5HKrXVThKpCTM9PfH+nVr+EVuOaSt o/dZ9ytq/qS+
1w4RERERERGVLwyAEBGpKbFEE5lSyF20DcyFIMixDZ1LrE7yvrR88OAfdOzY USXa7OHDh6hV
+4tyc42U5PHKO/dFDXopu1/OdEX5wrysXQ8566uto4f6DRpCKpXKpJFKpahX /yuVCiAUpS4M
mBIREREREZEy+AgsIqJSdjE0FO3bKx8AOHs2GK1dXRWmy5BqQiKRXRfxbC4c nObD7EsvYd39
/5Vu8CE1NRUVK1ZUiXNx7vyfaN++Xbm59srb8ap7++Sur76+Hk6dOoWuXbsK 644fPwEDA32e
XCIiIiVlZGRALBaX+3aoUKGCyvTZiYiICvX/MDYBEVHpau3qirNng+HhMRgH DhyAm5tbnjQh
ISFwd3fHvn17lAp+AECGRAOZOd7fufE3zMyA2zf+RoPGLWXSFURbRw+L3IFP pAAAIABJREFU
Fy/C2jVr8S45Ge7u/bBxw3ro6OjkSRseHo5pPn64ePEiMjIy4Na6NX76eRus LC2FX3ln/5ue
9l7uutTUVEyZOg0HDx4CALi798Oa1augq6srpF2xYjnWrl2HqKgopKWmQFtH DxvWr8Oq1WsQ
FRUFZ2dnbNq4Ac+ePcPSZcsRGRmJL75wwfaff0LdunVlji3nL8nPnzuP774b kW85EokE8+YF
YvuOHXj3LhndunXFlu83w8jICABwOjgYM2fOQlhYGGxtbTHLfyZGjvwOAJQ6 rty/as+5Tl59
MjIyMGtWAPbs3QuxWAx/f39MnTIZABTWVd7xFrYNFdU557rc51ne8Sl7neXc r6A2yE4nr/xv
27bD+HHj0L+/u5Dvixcv0KqVK+7duwMTE5NPbh9F5zwtLQ2eXt44ePAQjAwN MWXqFJnjVOYc
5pSzvgDg6+ODFStXyQRAVqxcCT9fXwz0GAQASrWDonZW5treuGE9lq9Yiejo aHzxhQu2/fgj
6tevl++1UdDfEnnXTn75K9OO8j5bRERE2SpWrIgXkf/ixuW/EC+KgyT3L4zU mJaWFiysrNG4
eStUd67Fi4GIiMokBkCIiFRAa1dX7Nu3B+7u7nmCIEUJfgBAhkQTEsnHx9+Y mQXj8GEd9OkT
DImkhUw6RS79dQm3/+8WAGDM6LEICpqPxYsX5UnXq3dfrF27Gnv37EZ6ejrm z18IP7/p2Llj
u/BFdM4vx+WtmzcvENFR0Xj48AGkUilGjRyNwMAgLF26REhz/fp1XL92FZaW FsK683/+iT/P
n4WZmRnWb9iIHj17oUOH9jgT/IewbsJET/wVelHuMaanp+Pvy5exc+eOfMtZ umw5bt/+P1y/
dhXGxsaYOs0HswJmY8P6dQCAkSNHYdPGjejSpTPi4uKwcNFiIQCizHEpkrs+ CxYsxMOHj3Dj
+jUYGBhi4cKFQlpFdZV3vJ/ahvmRd54/5TrLqaA2KKj8mTNnwNd3Ovr16wtN zazPwMJFi+Hl
7QUTE5NiaR9F5zwwMAjxong8efIYUqkUo0eNkam3onOo6Prt3bsX5sydhytX rqJ582a4GBqK
hIRE9OrVU+l2UKadlbm2L4aGIvTiBZiYmGDN2nWYMHEiLv99Kd9ro6C/JfLk l7+y7SjvbwoR
EREAvHoRiYvnz6BV2y6wq2oPTU2tcnPsmZkSRL2IROiff0BHRxeVq9rzgiAi ojJHQ5r74dBE
RPRZHdu7FT0GjQMAZKSnymy7GBoqMxKkqMEPAPhpWU/0nXQcAKApvomNG8/C y6u98G9mhUYA
gEPru2PUjKP55qOto4dHDx/AyckJAPD06VO079AJ4f8+Fbbn98V2SkoKatSs hVcvX+SbNvc6
e4fqOH/uDJydnQEAYWFhaN+hEyLCnwnpIyP+ha2trUwe0VGvYG5uJpRbydQ8 zzoLS2ukJL+V
W9fQ0L8wKyAAl/4Kzbcc5xq1cOrkcdSsWRMAEBsXh0ZfN8aLF5EAgOpONeDr Ow09e/RA5cqV
ZfJX5rgUjQDJXR/H6s44E/wHatSoked4FNVV3vEWtg2VqbO81/mlVfY6y/m6 oDZQVH6Llq0w
ydsbAwcOEMr758E96OvrF0v7KDrnDo5OOH/ujHDMYWFhqFO3nlBPRecw5zHJ q2962nts2/YT
Tv1xGocPHUC3bj3Qu3cvjBo1UmbfgtpBmWtNmWs7JjoKZmamSl9Hhflboih/ Zdox92eLiIiK
T0VtXaEP7NrhYxA+9MxRmfeq6rc929Goxbdo2LhpuT2Hkf8+RfDxA+g/+Dte 0J8o9MxR4V6Q
iIhKBidBJyJSITlHggQGBhY5+AEAtb/xx8M7VxDzPFAIejx4kCEEQWKeB+Lh nSuo/Y2/wrwc
HBxkXsfGxspNd+XKVbT5ti1MzSygraOHSqbmiI9PKFS94+Li4OjoKLx3dHRE XFycTBp5X1Rm
fwkNQPjiNve6gp7ffP78ebRr27bAcqKiolD3y/rQ1tGDto4eqla1R5xI9PEG ef+vOHv2PBo1
boJatb/AyZMnC3VciuSuT0xMjEyehamrvOP91Db8VMpeZ8q2gSL+M2dg4aLF kEgkCJq/AL6+
04TjLo72UXTOY2NjZY4593EoOoeKrl8AGDp0CG7dvIn9+3/D/fv3MWTI4EK1 gzLtrMy1nR2c
UPY6KuzfkoLyV6YdGfwgIqL8iGKiYW1XuVy3QRV7B4hionkxEBFRmcQACBGR iskOggQFBRU5
+AEA5uZnhMdeZQc/AAhBkMOHdWBmFgxz8zMK84qIiBBeR0ZGwsrKSm46j0GD MXHCBESEP0Na
agriRbEo7EBDKysrmfLCw8Nh+eG5/5/TufPn0VbOF8g52djYICL8GdLT3gtL zvkCGjX6Gr8f
PoioVy+xdu1qTJjgqfRxVahQASkpH/NKSEhUWGcbGxuEh4cXqa7KHK8iRalz cVxnyraBIt26
dYO2tjZmz56Dq1evYczo0cXaPorOubW1tcz2nK+VOYfKXL86Ojrw9PLEdyNH wcvbS+6cKgW1
gzLt/Dk+s8Xxt6Qo7UhERJSbRCIpV4+9kkdLq0K5mvuEiIjUCwMgREQqqLWr K5IS44sc/ACA
hIQOSEzsiD590rBx41nUrVsRAFC3bkVs3HgWffqkITGxIxISOijMy9dvBkSi eIhE8fD1nQ6P
gQPkpktNfQ9dXR3o6uoiIiICEyZ6ymyvVMkET548KbCs/u794OPjhziRCHEi EaZN88WAHBM0
F6fsiZeTkl7jyZMwNGtW8KMNxo4dgwkTPPHvv/9CLBbjwYMHGDxkqLB9yNBh ePToETIyMiCV
SiGWiJU+rnr1vsTqNWuRkpKCqKgoeHp5Kaz/sKFDMGXKNLx69QqvX7+Br6+f UnVV9ngVKUyd
lTn3yl5nyraBovI1NDTgP3MGVq1eg1n+M6GtrV2s7aPonA8c0F845jiRCD4+ foW63rIpqu90
P1+kJL+Fn6+P3O35tUP250NRO3/qZ1beuVH0t6QwlG1HIiIiIiIiUj8MgBAR qSgDA4NP2v/S
6dWwd2kGI+t5wmOvsoMfXl7tYWQ9D/YuzXDp9GqFebVs2QJffdUQNWrWgpm5 GebNmys33Q9b
t8LXbwYqmZqjXfuOaNGiucz2qVOnolnzljJfrOY2f34QrKyt4OJSBy4udWBr Z4ugoMDP2tYh
ISFo2aIFKlasWGC66X6+aNGyBTp07AyTSmYYOmwEevX8+OzqHt27w73/QFQy NcesWbOxI8eE
zYqOa8v33+PYsWOwsLSGa+s2aOPmprDes2cHoHbt2vi6UWPUql0bVatVU6qu yh6vIoWpszLn
XtnrTNk2UKZ8LS0tODs7Y+jQIYW+HhRRdM4DA+fB1LQSnGvURMOvvoZra9dC XW/FWV957aBs
O3/qZ1beuVH0t6QwlG1HIiIqHxxruLAR6JNVHfu33NdERKR6OAk6EVEJK2gS 9OK0cPYADJu2
X3ifIpqPw4d10KdPGvQtP36xvGv1AMxeuD/ffJSZoLis8/TyRu3ateCtxKgL Hu/nUVrXWZ++
7hjQ3x0DBvQvs9dDcdRXXjsQEREVh+KeBN2xhgvCwx4VuT6F3X/98gUYM3V2 uZ8vav50T0ya
PocX9AdVx/6NFz+0zPNaEU6CTkRU8iqwCYiI1JMkUxPbV3oI79t3n4I+fYKR mNgR+3d65EjJ
wYDnzp2Hl+dEHm85kpmZie3bd+DZs2dwd+9XptvnU+pbUDsQERGVJnkjNcLD Hn1S8IPKjzbt
O+PC2T8+KY8twa+w9PdIzOxtj/EdK7NRiYjKKAZAiIjU1LzF+2Te/335KgBA KpXm2Vbe/e/x
Qx5vOaOrZwB7e3vs3fMLNDU1y3T7fEp9C2oHIiKi0sZgBxVVeno6+g0cgoO/ /lKk/TOlUuy6
GIN5Axyx7WwUxnawg6aGBhuWiKgM4p0uEVE50bJFM9SuNRctWzQr3M2Dmj/+ ilTkJrWEr7P0
tPcIe/IYjRs3KvftznYgIqKyJOfIEMcaLti7bz9aubVFzS/qoWuP3nj46LGw PS09HX4zZsHl
y6/QpPk32PrjTwXmR2rUx0lPR3JyMsZOnFSk/UMevEYlfS1818YWZoYVEPLP azYqEVEZxQAI
EREREREREZVJV69dx6H9+3D31jV07NAes2Z/nOtuzdr1SEhMxF8h53Dy+O+4 fOUqG6yc0Pgw
WkNfXx+Ll68u9P47L0RjxLdZ874Mc7PFzj+j2ahERGUUAyBEREREREREpHIc a7jILPLMD5wL
a2sr6OnpYezokfjn4cfHZh05dhxzZ/vDwtwclhYWmDcnIM/+fMyWetLS0oKW lhbs7OzQqFEj
nL/4t9L7Po9Pxd2Id+jZxBIA0KOJBe5GvMOL+FQ2LBFRGcQ5QIiIiIiIiIhI 5SgTnKhUyUR4
raurC7FYLLyPj09A1SpVhPfVqlZho5YThoaGsLCwQN26deHk5AQne+UnMd8d EoOEdxlwnnhF
Zv2uizEI6OvAxiUiKmMYACEiIiIiIiIitWNhYY4XL1/Cwd4eAPDi5Us2Sjlh b2+PmjVrws7O
rlDBjzRxJg5cjsOVJY1QxVxHWP8iPhXdF9+Db89q0KnAh6kQEZUl/KtNRERE RERERGqnZ/du
WLh4GRISExGfkID5C5fkScNJ0NVTrVq1ULNmTTSoW7tQ+x27Ho8G1Y1kgh8A UNVCF/UcDHHs
ejwbl4iojGEAhIiIiIiIiIjUjs/UyTAxMUZL12/RuWtPNGvahI1STpiZmaFX t06F3m/nhWgM
d7ORu21YaxvsCuFk6EREZQ0fgUVEREREREREKiW/+T9yrpeXJuc6bW1trFq+ FKuWLxXWjRsz
SqlyqGwbNXxwkfY7EVA/323t6puhXX0zAMCLH1oK63O+JiIi1cMRIERERERE REREREREpHYY
ACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdBkCIiKhc0NbRK5P1UtV6 ExEREZUHWlpa
yMyUlOs2kEjE0NLS4sVARERlEgMgRERUaB06dmYjEBEREZHas7SxRWzUq3Ld Bi8jI2BpY8uL
gYiIyiQGQIiIqFAuX7km86+ytHX0hMXSygYegwZDJIpX6WMVieJRpUo1pKWl yazv595f5n1q
aioqV6mq8sdDRERERIXT0vVbhJ49jmdPHkEiEZerY5dIxHj25BGO/rYLLV2/ 5cVARERlUgU2
ARGRergYGor27Tsqnf7s2WC0dnUtdDmBgYFwc3NDYGAgzgT/Uah909PeAwDi RCJMnz4DEz09
ceC3/SrbppaWFmjarBlOnDiJvn37AAASE5Nw4sRJxMcnwMLCHABw9OgxNGvW HJaWFrwQiYiI
iNRI5ar2cP22Pc6f/B2iuBhIJOXncVhaWlqwtLLBN27tULmqPS8GIiIqkxgA ISJSE61dXXH2
bDA8PAbjwIEDcHNzy5MmJCQE7u7u2LdvT5GCH3uifoWbmxvsh9vDDW7YE/Ur BtsNLHQ+VpaW
WL1qFZycawjrJBIJ5s0LxPYdO/DuXTK6deuKLd9vhpGREYCsURZTpk7DwYOH AADu7v2wZvUq
6OrqAsgaYbJ48SKsXbMW75KT4e7eDxs3rIeOjk6e8hWVldPwYUOxffsOIQBy 5eoVZGZm4urV
K+jWrRsAYNeu3Rg3bqxSdVyxYjnWrl2HqKgopKWmyJSVlpYGTy9vHDx4CEaG hpgydQovbCIi
IqJSVKGiNr6o9zW+qPd1uW4HcUY6xBnpvCCIiKjM4SOwiIjUSGtXV+zbtwfu 7u4ICQmR2fYp
wY/LV66hQ8fOiNwZCfvh9nCMdIT9cHtE7oxEh46dC/04LADQ0NCQeb902XLc vv1/uH7tKl6+
iISenh5mBcwWts+bF4joqGg8fPgA//xzHy+ev0BgYJBMHpf+uoTb/3cLT548 RlxsHIKC5sst
W1FZOXXu3Am3b99GnEgEALhy+Qrat2uHy5evAACioqJw//59dO7cSak6Xr9+ HdevXc0T/ACA
wMAgxIvi8eTJY9y8dQMhF0J4URMRERGVInFGOlJT3pX7hcEPIiIqqzSkUqmU zUBEVHKO7d2K
HoPGAQAy0lM/SxkXQ0NlRoJ8SvAje8Lz7JEfjpGOwrZw+3BE7owUgi0FPRJL W0dPeASWSBSP
mf7+eP36DQ4d/A0A4FyjFk6dPI6aNWsCAGLj4tDo68Z48SISAGDvUB3nz52B s7MzACAsLAzt
O3RCRPgzIf9HDx/AyckJAPD06VO079AJ4f8+zVO+orJy8/Hxg72DPSZ5e+Hb tu2weNEizPT3
R8iFP7Fs+QrExcZh1aoVStUxMuJf2Nraym0XB0cnnD93RjiGsLAw1KlbT9hO REREVNZU1NYV
+sCuHXoK60PPHJV5T1QehJ45KtwLEhFRyeAjsIiI1FDOkSCenp7YtGlTkR97 dSb4D1y+ci1r
7g+4AcMBx0hHmeBHYGAgWjRvqjAvbR09AICxsTHatv0WmzdvFLZFRUWh7pf1 ZdLnHCUSFxcH
R8ePwRdHR0fExcXJpHdwcJB5HRsbK7ceisrKbdiwoRg9ZgzGjxuLpKTXaNas KRITk5CWlobd
u3/Bnl92K13HnMGP3GJjY2WOIWdeRERERERERERUOAyAEBGpqewgSPv2HYs8 4Xm2Fs2b4kzw
H9gT9Ssid0YCwyE8DuuMv/IToRc0ksHGxgaX/roIOzs7udutrKwQEREhjI4I Dw+HpaWlTJqc
2yMjI2FlZVWksnKrX78egKy5Ppo0aQwAaNKkMTZ/vwW6urrCdmXqWBBra2uZ /SMiInghExER
EREREREVEecAISJSY61dXZGUGP9JwY+cBtsNREhIiDDyoygToOdn7NgxmDDB E//++y/EYjEe
PHiAwUOGCtv7u/eDj48f4kQixIlEmDbNFwP6u8vk4es3AyJRPESiePj6TofH wAFFKkueoUOH
Ys7cuUJbtnZ1xYIFCzFsWOHqWJCBA/oLxxAnEsHHx48XMREREak9DQ0NLlzU eiEiotLDESBE
RGrOwMCgWPMLDAwUluI03c8XK1auQoeOnREdHY2aNWtilv9MYfv8+UGYPGUq XFzqAAD69u2D
oCDZOrRs2QJffdUQ75KT0bdvH8ybN7dIZcnjMXAg/P1noXXrrACIq+s3SEtL g8fAgYWqY8Ft
Ow8TPb3gXKMmjAwNMXXaVPxx+jQvYiIiIlJr+vr6bARSa8nJyWwEIqJSwknQ iYhKWElMgv65
dejYucAJz0tDzsnEiYiIiEg1KDMJOgMgpO5SUlKE656ToBMRlSw+AouIiApN 1YIfRERERERE
REREufERWERERERERERUavhgCiIiIvpcOAKEiIjUAh9/RUREREREREREOXEE CBERERERERGV
mtIYAXJnSyeZ9w3Gn+aJUGF6RqZ4/zaJDUFERIXGAAgRERERERERlRsnfOuh 28p7CtdR4TBI
QUREqogBECIiIiIiIiIqF66vbIXuQQFA8n6kvk5FamoqUl+/xped++L6ylZ5 0jfxvVRgfgV9
6V9SAQFVCTww+EFERKqIARAiIiIiIiIiKjUl+QisNEgA3QYAAF0bQDfHNge3 gTJpQ9eMUKpu
BaUpqWMrDxPJl4djJCKi4scACBFRKYp88oCNQERERERqy7luI9WqUDqA1Bil kiamORRbsfrG
Zli/ZhVWrl6L6JgYuLjUxg+bN6JevS8BABkZGZg9NxB7f/0NYrEYM6f7YrK3 JwAgPCICfjNm
ITT0L2SIxXD9phW2bd0MS0tL6BubCfkDQMp/iQAAiUSCoAWLsGPXL0hOfoeu XTpj04Z1MDI0
BAC8f5+KSVOm4fcjR2FoZIhJXp6YPTdQ2D81NQ3T/Kbj8OEjAIC+fXtj1fJl 0NXVEcpbtmQR
1m/chKioaCS/SYC+sZmwf3Z9clK2bmlpaZg0xQeHDv8OQyNDTPb24geJiIiK jAEQIqJSxF8x
ERERERH7xCXXJ04FgNTXMuvObF0qvK6oawQTuy+gbWAK53q18fDEfABAenIS 6vdfXej659wW
+tclnD/zB0wqmWD9hk3wnDQFoRfOAQAWLl6Kh48e48qlEBgaGGDx0uXCvn37 e2D1imXYtf0n
ZGSkY+HipZjuPxs//7gFyW8SYGBijuQ3CTLlLV+5Grf/7w4u/3UBJsbG8Jk+ E7PnBGLt6hUA
gKCFi/Dmvzd49OAOAGCC12SZ/QMXLER0dAzu/d9NSKVSjBk/EUELF2HxgiDh eG7cuInLoRdg
YWEh7Jf9b3Z9AGD7zl04eep0Ieq2GKL4eDy8fwdSqRRjJ3jy3omIiIpMQ8r/ gxARlahje7ei
x6BxAICwe9fZIERERESktmrUayL0gV079BTWh545KrzX1tYusfqcmt0Y3T0n Ce+Pb1qP7j7T
hfeaunbQ1K0CjYrGMvs9+fsMqjUdkCe/nMGHgrYZmJjjZcRTmJqaAgBS3r+H bRUHvEmIBQDU
dPkSJ48fQQ1nJ4XHkPL+PVzqNkDks//lWweXug1w7PeDqFHDGQAQFydC05bf IDzscdZ5camL
M3+cgKODAwDg2b/hqPdVIyEf59p1cPrkcTg7Vc+6b3n6DF2690TYowdCmU8f /wNbW5sC2+JC
yEUEzAnEmT+Ow/DDCA9l6nb65HE4VXcUym7wdZN827ksSE9PF6777HtBIiIq GRwBQkRUiqRg
DJqIiIiIqKSkpmfgwzgQHN/0E7p7jpUdEVLRBhqaeji+ub3Mfu3H3pSbn6am JiQSCbS0tGTW
SyQSaGpqyqzLDn4AgL6eHsRisfA+JjYWjg72csu4eu065swLwt2795CckgIA 0NDQKPA4o6Kj
0aBRU5l1OfeJjY1DtapVhff21arKpI2LE8nUx9HBHnFxIpk0OYMf8jx+/D9M meaL40cPC8EP
ZevmYF9NpmwiIqKiYgCEiKgUcRAeEREREbFPXIKToL9LB1Jf4/hPh9B91GAg NfXjRi0dICMd
kEhw12gdmkt9AQBXNFaiXT51rFK5Mv55+Ahf1q0js/7+g39QtUoVmWOTd5zZ 62ysrREeHgFn
OSNAhg4fiSWL5qN9u7YwMjLCu3fvYFvVscC8bayt8ee507CztZVbnpWlJSKf vxCCC5GRz/Ns
j4iIRPUPozDCwyNgmeNRV4qORySKx8Ahw7Bl04Y87aCobtZWVjJlR0RE8t6J iIiKTJNNQERU
ujd7XLhw4cKFCxcuXLio66Jq3ryTfAh+9EXWSJCPi6aeOTT1LAFIAABtxzxA 2zEPCsxv1MgR
mOg1Cddv3ERaWjrS0tJx7foNTPSahDGjRypdr8GDBsJn+ky8iorCmzdvMMN/ trDtfWoqdHR1
oaOji4jI5/CaPE1mXxMTE4SFPc1TL+/JUxEeHgGxWIx/Hj7E8JFjhO39+vbB rIA5SEhIQEJC
AmbOmi2zf98+vTHdfxZEoniIRPHwmzkL/fr2Ufp4BgwaAt9pU9CsWVO5bVZQ 3dz79cHMWbMR
H58AkSge0/1n8caRiIiKjCNAiIhKNwLCNiCluDRsiUe3/2ZDEBERkRp2iUuu Tzx2xyPsn9YI
v6zbl2ebY+OucGxki92332JE34+PwBrRtz1W/XoW0wY0z7PP1Mne0NfXh/fk qXj67BkAwNnJ
CSO/G46xo0cpPWJi5nRfzJ4biGYtW0MqlWKGn4+wbfOGtZg5azYGvxgBO1tb TPL2xKHDvwvb
J3t7opVbWyQnJ+NtUtZjqqZNmYQ169aja4/eiI6JQQ1nZ0z3nSbsMztgJiZP 8UHtOvVhaGSI
iePH4ez5P4Xtc+fMgo/fDHz5VSMAQO9ePTBntr/Sx3P9xk1cv3ET4yZ4CduU r5s/Jk/xgUvd
rLpN9vJE8JlzHAFCRERFwknQiYhKWM5J0Mv7F9pxPudgtaodLwolfPF1Kzy8 dYkNQURERGWK
S8OWQh84v0nQK1RQrd9mrt5/Bb06tkJVC30AwIv4FBwJviQ3AKIunoSFoY/7 QDy4c4sX7WeQ
Pd8LJ0EnIip5HAFCRFSKynMMWvQu69ECcW/FsDTUUnq/Oo2+EV4bGRqgRbMm mD1jGsxMK5Wp
4/951z6s3bgFU7zGY+QwD14vRERExD6xinkRn6LWfbGZAXMw088Haenp8A+Y i25durC/SURE
aocBECKi0rzZQzm+wQgMQYgb4BYYAunKbwu164OboQCAxMQkLF+7CYGLV2Dd ioVl5tAzMzPx
68HfMd3HG7v3HsDwIf2hqanJ64WIiIhIBUzt3wxrfruUZ526sa9aFV81bobU 1DR06dwJs2fN
4MknIiK1wwAIEVFpKqe/sKp48Q1C3AAPw4bY53YbHiGvkdHapNDtZmZaCf4+ 3mjXzV1Yl5mZ
ifXfb8OhoyeRkvIebVxbImi2Hwz0sx5hULdxa0yf6omde35DnCge96+H4K/L 17Bq3feIeP4C
VpbmGDdyGPr26gYASEtPx+IV6xB89gIAoFP7NvD3mwwdbW0hv7kzp2Hbzj2I EyXAuboDFs7z
R+2azvlW/9LfV2FibITB/fvg+MlgXLp8Da4tP95Up6dnYP6SVTh97gIM9PUw YsgAmeN++SoK
S1dtwPVb/wexWIwmX3+FxYGzYGZmys8UERERUTFQx4BHbhPGj8WE8WN5somI SK1psgmIiEqP
VFq+lvhkKeL9LmDfu9vwMGyI6EbGWUGQd7cR73cB8clShXnkbjdAQ2bdDz/v xj+P/ocDu7fh
YvAR6OjoYPX6LTL733vwCAd2b8O9ayGQSoFZ8xZh4tjvcC3kNHZs3YC79x8K 6ddv3oY4UTxO
Ht6DE4f2IDomDhu+/0kmv+u37mD3ts24fP4k2rq5InDRigKPYd/BI/Bw7wOp FBjYrxf2Hfhd
ZvuGLT8hMek1go/+ikN7t+Pajdsyx+g51R9DPNwRGnwUF08fhYN9NSxbs6nc XU9cuHDhwoUL
F9VflOsTS7lwUeuFiIhKD0eAEBGVagCk/HSGE2eEAIAw8iO6kTGPaX9AAAAg AElEQVQAZAVB
bmaNBHELDEECALNlbkq1W1LSa6zasAXNGn8trDt89CS2rF8JK0sLAMAUz7Ho N3gkAqZPFfb3
mzIRlSqZCPvo6OhAFJ+AxKQk2FhbITDAT9h2Kvg8tm9ZC9NKWXOMzPTxxqiJ UzHNe7yQX8D0
KTAxzjqe4YP7Y8tPO/M9ty9fReHBw8dYvXQ+pFIpOrb/Fqs2bMHLV1GobGcL ADh5+ix+3rJO
KHPGNG9cch8q5Pn7rzuE/LS1tTFpwmh07DWQN1dERERERERERDkwAEJEVIrK 0xfWpktbIylV
A26BIVmPvbqZFQSxvfkf9r27DbcQAIFuMNVV/Cupek3dAAAGBvpo3qQR5sz0 EfaJFcWjR/+h
Muk1NDRk8rQwN5d5v3pJELb+vBvf/7gdhoYGmD7VC61btQAAJCQmorKdrZC+ sp0tEhKTZPY3
NjKSCaZIJJJ8j2H/oaNISnqNxt90yLN+qtc4AEB8QiIq29rIlJnzerlz/x+s 3bgVj5+E4f37
VLnHSERERMQ+MREREZV3DIAQEZXu3V65OlxTHSmwxBUef7/LegzWzYbC47BS lxgCyIQy83zf
vfJnvm1paWGO3T9uFEaAyG3rXO1ex6UW1q9YCKlUiktXriNw8QqcP9EcAGBu ZoqXr6JQrUpl
AMDLl1EwM61UYH75rUtLT8exk8H44/Be2NnaCOtfRUVj8ChPTBwzAjra2rAw N5Mp89WrKJk8
/WYFwnfSBLRs1gQGBvpISXmPFu26lds5ZYiIiIiIiIiI5GEAhIioFElRPr+w ft/SAG7+yHrs
VQjwfokBUIi2KKjd+vXujqClqzBjmhfsbKzxb8RzbNvxC5YtmJPv/jPnLsTY 74aiapXKkEoz
IZZIhDQd27XB8rWbEBTgBwBYtmYDOrVvI5OHvPrIW3f67J/4sk5t2Npay2y3 s7NBHZeaCD53
Ad27dEDnDt9i5brNCAzwhVQKLFu7SSbPtLQ0aGtXREWdingZFf3/7N15uFV1 of/xz2E6TMo8
OaQoZqS3UnHCMkoBrRRFwSG14ZcDig2IOVwVHLrlmIlpNum9dR0qUUxLHBK5 pYlEN4fMa4al
gnAUFJkOcNi/P4gdB86Bg8A5sHi9fPbD3mutvfZ3fTmPD+w3a62M+94Pt+qf JwBgy9Z2mw4m
gUJbMO9tkwDQRAQQgCa0VZ/uP3ZABoydlIwdkFJp2Uabty+cdHxu++mdOW3k 6FS9+VZ2ft8O
+dLnT6r1ntXfP+Bj/TPq/DF59fUZ2fl9O+YbYy4obzPy9C/kW9eOyxHHrris 1sBPHpyzTvvC
WvdX37I7f3Fvzjz183WuO/boI/KDW3+azxw+MGee+vlcfuW3c9hRJ6Zd2zY5 5cTh+e0TT5Xf
N+bC0bnmOzdnxgVj071b13zuxOGZ+Mgkl48AAAAAWEVFybclAI3qvttvyZEn rrjXwx+feGSr
not5//67bPuNg/xQAAAU1F79Dy3/GfjgQUPKyyc/NKH8ut22HU0UhbbyDJDJ D00o/10QgMbh
DBCAJrS1N+htrujvrAUAAAAANgkBBKAp+fIfAAAAADYJAQSgCTn7AQAAAAA2 DQEEoAkJIAAA
AACwaQggAE2oFAEEAAAAADYFAQSgKTkDBAAAAAA2CQEEoAm5BBYAAAAAbBoC CEAT2qv/ISYB
AAAAADaBZqYAAAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEE AAAAAAAoHAEE
AAAAAAAoHAEEgCbzxOArTQIAAAAAm4QAAkCTeOLJp2r92lCtKtuUH92698wJ J342VVVvbjHH
ver4V30AAAAAsHEJIAA0jbGTMmnAil/X15LqRVlSvSjPP/9sKisrc+ZZZ21R h75y/Ks+AAAA
ANi4BBAAGt30cQ9n0oDkhPZ7Z9KAFa/fi+7duuW6a6/NI488Wl5WU1OTiy66 ONvvsGM6dOyc
z550ct59993y+laVbfKdG8al9y59Utm6bZLkwYkT85G99km79tumz26758c/ vrW8/eLFi3PG
iDPTtVuPdO3WIyPOPCuLFy+utb/vf/8H6bPb7mnXftvsu9/++dOfnlnvY5kz Z262236HzJ37
9hrLd9jhfZk79+11HhsAAAAA/yKAANBonnjyqTwx+MrcMX9aTmi/d2b22zYn tN87d8yflicG
X7nel8NKkoqKilqvv3XlVZk27Y+Z8tTv89qrf0+bNm1y4b9fVGubKVOmZMpT v0/14oVJki9+
8f9lzCUXZ85bVXnsN4/kqSlTytuOGTM2M2fMzJ///Fyef/7ZvPqPVzN27KW1 9vf45MmZ/Phj
mT1rZoYMGZIRZ5653sfRuXOnDB06ND/80Y9qLf/hj36U448/Lp06dWzQsQEA AACwQkWpVCqZ
BoDGc9/tt+TIE09PkixdsnirOe6VNzxfeebHzH7bltf1mjovd8yflgGTVrzu P/G8evfTqrJN
+ZJRVVVv5vwLLsjbb7+Tu3/xsyRJn912z68e+GXe//73J0lmzZ6dfvvsm1df /Xv5/X9/5W/p
1atXeZ+77LpbRo8elSFHHpntt9++1ufttPMuefSRh9KnT58kyUsvvZSBgw7L K9NfLu/vjZkz
0rlzpyTJwoUL07Vbjyxc8G6946/LkupFefHFF/OpTx+RF//y57Ro0SLLli1L 3w/umd88+nB2
3HHHdR4bAMDmpmWr1uU/Ax88aEh5+eSHJpRft9u2o4mi0BbMe7v8c7/y74IA NA5ngADQKPpP
PC8ZOyADJiV3zJ+WXlPnJVktfowdsNb4sdLKG4f3/eAemT9/fm666cbyuhkz ZmTPf/tweZsd
d9wps6uqar1/1fiRJD+76848/PCj6bfvftn9Ax/MAw88UF43e/bs9O7du/y6 d+/emT17dq33
r4wfSdK2bdssW7ZsreOv7x4gu+++e/b44Adzzz33JknGj78nBx54QHbccccG HxsAAAAAK7Qw
BQA0lv4H7p9M3D+9xj284jJYU/cuXw6r98SBDd7P2m4a3rNnz/z2fx7Pdttt 1+D99eu3T+4Z
/4uUSqU8OHFiTj/tjPzjH59OknTv3j2vvPJKdt111yTJ9OnT061bt002R2d/ eWQuv/yKDBt2
bMbdeGPG3XDDBh0bAAAAwNbKGSAANLreZw8snwkyYNKK1xvLaaedmhEjzsrf /va3LFu2LM89
91w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqzq6oy atToHDd82Cab
m4GHHpp5897NTTffnPbt2ucjH/nwBh0bAAAAwNZKAAGgafzzclgZO2Cj7vbr 545O/4P6Z9Dg
w9OhY+ecfMrnc9SQIWt9z5FHHJFhw49Px05dcuGFF+W2224tr7vsskvTvUf3 9O27R/r23SO9
tuuVSy8du0FjXHkJq1Ufq/ry2SMzatTojDrnaxt8bAAAAABbKzdBB2hkW+tN 0OvyxOArG3TP
DwAAtkxugg5ugg7QlJwBAkCTET8AAAAA2FQEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEADYwrWqbGMSAAAAAFYjgADQ ZJ4YfKVJAAAA
AGCTEEAAaBJPPPlUrV8bqlVlm/KjW/eeOeHEz6aq6s0t6thffPHFDD/u+PTs tV3ab9MhB/Y/
KOPH3+OHAgAAAGAjEkAAaBpjJ2XSgBW/rq8l1YuypHpRnn/+2VRWVubMs87a Yg77r3/9awYO
HJxDPvnJPP/cc3nrzdn5zvXX566f/czPBAAAAMBGJIAA0Oimj3s4kwYkJ7Tf O5MGrHj9XnTv
1i3XXXttHnnk0fKympqaXHTRxdl+hx3ToWPnfPakk/Puu++W17eqbJPv3DAu vXfpk8rWbZMk
D06cmI/stU/atd82fXbbPT/+8a3l7RcvXpwzRpyZrt16pGu3Hhlx5llZvHhx rf19//s/SJ/d
dk+79ttm3/32z5/+9Ey9Y77s8isy+tzROf3009KlS+dUVlZmv/32zV133pEk +eQhh+ZnP/t5
rfe8+uqr2Wmn3nnnnXdSXV2dL516Wjp26pIdd9wp1173bT9QAAAAAHUQQABo NE88+VSeGHxl
7pg/LSe03zsz+22bE9rvnTvmT8sTg69c78thJUlFRUWt19+68qpMm/bHTHnq 93nt1b+nTZs2
ufDfL6q1zZQpUzLlqd+nevHCJMkXv/j/MuaSizPnrao89ptH8tSUKeVtx4wZ m5kzZubPf34u
zz//bF79x6sZO/bSWvt7fPLkTH78scyeNTNDhgzJiDPPrHe8j/3msQwbdmy9 688//7xc8Y3/
yPLly8vLrvjGf2Tk2SPToUOHjB17ad6sejP/939/ydQ/PJ1Jj03ygwUAAABQ h4pSqVQyDQCN
577bb8mRJ56eJFm6ZPFWc9wrb3i+8syPmf22La/rNXVe7pg/LQMmrXjdf+J5 9e6nVWWbLKle
lCSpqnoz519wQd5++53c/YsVl5Dqs9vu+dUDv8z73//+JMms2bPTb5998+qr fy+//++v/C29
evUq73OXXXfL6NGjMuTII7P99tvX+ryddt4ljz7yUPr06ZMkeemllzJw0GF5 ZfrL5f29MXNG
OnfulCRZuHBhunbrkYUL3q1z/G3bbZN578xNixYt6j3G/gd9NF8+++wcf/xx Ky6ZNeiwPP/c
M2nbtm127r1rHn3koey6667l8eyx54fKcwIAsDlp2ap1+c/ABw8aUl4++aEJ 5dfttu1ooii0
BfPeLv/cr/y7IACNwxkgADSK/hPPS8YOyIBJyR3zp6XX1HlJVosfYwesNX6s tPIm6H0/uEfm
z5+fm266sbxuxowZ2fPfPlzeZscdd8rsqqpa7181fiTJz+66Mw8//Gj67btf dv/AB/PAAw+U
182ePTu9e/cuv+7du3dmz55d6/0r40eStG3bNsuWLat37F06d07Vm2u/afsF /zwLpKamJpde
dnlGjx6Vtm1XXK5r1qxZ2XnnnWuNBwAAAIA1CSAANJr+B+6f/hPPK1/2amX8 OKH93uk/8bz0
P3D/Bu1n5U3Q36yalbvuvCM9uncvr+vZs2demf5yeZsl1YvKl7qqT79+++Se 8b/IjNdfy/XX
X5cRI/51U/Xu3bvnlVdeKb+ePn16unXr9p7n4BOf/ETuvvvutW7zmc98Jq1a tcpFF12c3//+
qZz6pS+V1/Xo0aPWeFZ9DgAAAMC/CCAANLreZw8snwkyYNKK1xvLaaedmhEj zsrf/va3LFu2
LM8991w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqz q6oyatToHDd8
2Hse3yUXX5Srr7omP/zhjzJnztxUV1fn6aen5rjjTyhvU1FRkQvOPy/XXvft XHjB+WnVqlV5
3fHHDc/oc89LVdWbmV1VlXPOOdcPFAAAAEAdBBAAmsY/L4eVsQM26m6/fu7o 9D+ofwYNPjwd
OnbOyad8PkcNGbLW9xx5xBEZNvz4dOzUJRdeeFFuu+3W8rrLLrs03Xt0T9++ e6Rv3z3Sa7te
ufTSse95fH369MnEib/OxIceygf69k2Xrt3zla9+NccNH15ru+bNm6dPnz45 +eSTak/b2DHp
1Klj+uz2/uy91z45+OMH+1kCAAAAqIOboAM0sq31Juh1eWLwlQ2658fWaOgx w3Lc8GE57rjh
JgMA2GK5CTq4CTpAU2phCgBoKuLHmpYvX55bb70tL7/8coYNO9aEAAAAALxH AggAbEZat2mX
nXbaKbf/90/TrJkrVQIAAAC8VwIIAGxGllQvMgkAAAAAG4F/WgoAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABROC1MAAAAANJUF 8942CQDAJuEM
EAAAAAAAoHCcAQIAAAA0uskPTTAJAMAmJYAAAAAAjergQUNMAgCwybkEFgAA AAAAUDgCCAAA
AAAAUDgugQUAAAA0uao3Xs8Lz0w1ERRC3w/1S7ee25sIgCYmgAAAAABNZtXw ceSJp5uQBrrv
9lvKz33ZvvmZ/NCEvPDMVL83AE1MAAEAAACaxMr4ccQJpyVJSqWSSWmglXOW JL+84/vliOQL
983DwYOGJFkRQpL4PQFoIgIIAAAA0OhWxo/PHH+q8LGBPnP8qeXn99/5A2ce bEYOHjREBAFo
QgIIAAAA0KjK8eO4LyXix0b1meO+lCS5/64fJvGl++Zg1QjSsWtPEwLQiJqZ AgAAAKAplPy3
yf779HH/Ly88MzWTH5qQqjde98MGwFbJGSAAAABAo3rhman59PAvOvtjE/v0 8C8mSR742Y+T
OBukKa08C2S3PfcxGQCNSAABAAAAGl1d9/3o9ZX76tx25neONGEb4FPDvpBf /fzWJCIIAFsX
AQQAAADYbPzh2mNrvd7nnF+YlI1ga44gnbr1atB2c6tmNsp+AGg8AggAAADQ 6Er1XP7qrYUr
fq2oSEqrbPvk3Mo6tz+wU3Wjj717j56ZPeuNLW7ODz/28/n1L25LsvVFkNI6 LrdWUVHRqPsB
oHEIIAAAAECjq++L5NffXZ5S1gwgQ86+us7tZ/3k7CYdf4+evTLrjU3/L/4r W7cpP69evKjB
61Z32DGfy4N3/2cSl8N6LwQOgC2LAAIAAAA0vnoCyKvvLkkq8q/68c9tZ/3X yPXaT5L85S8v
5tLLL8tTT01Jkuy//3655KKL07fvBxo8zB69tsusmTPq/dxZM2c02s3cV0aX ioqKVC9acapM
ZZu2tZY3ZCyHDT0lD47/ryRbTwTZWOHCGSAAWxYBBAAAAGh0pdT9RfIlN9/f 4G3XZvr06Tlm
2LB8/dzRueV730uS3HPPPTl2+PD88r5707t37w0a63sZ00abu1Kp/EX76l/I N3Rcg4eenInj
f5Kk+BHEPTkAtl4CCAAAAND46viX9K9de3i92+5wzq/Xvd0qrrnm2pxx+mk5 5eSTystOOfmk
zJs3L9dce12+O+6GJEnP7XbIGzNeq/Xelct6brfDite9VgSCWtv9c/yrvr/n djvkqiu/mRvG
fTezZs3K7u9/f66//rrsucceSZKampp868qrcvsdd2bBggU5bPCgXHP11Wnf vt06j2fxwvmp
qKgoB4/Vw0dFRUUWL5y/XmejDD76pEy856dJXA4LgGJqZgoAAACAxlYqldbr sezN6am66dgs
e3N6Sv8MIj0/d1O920/+n9/mmKFHr7H8mKFHZ/Lk/ym/rmssK5fNfP3VJMnM 11/NzNdfrfM9
qz//3RNP5pcT7slf/vx8Dj/8sIw+97zy+u/cMC7PPPNsHp746zz7zP+msrIy l19xRYPnYNGC
d+u8xFJFRUUWLXh3vee0VCpl0FGfzQvPTE3VG6/7oQSgcAQQAAAAYIvQafi/ boT+6jWHZeZt
I+rdds6cOenatesay7t27Zq5c+dusjF+6z++kZ49e6Zt2zYZccbpee6558rr br/jzlxxxWXp
1atX2rdrl3+/8IL86tcPNvm8iiAAFJVLYAEAAACNrq6bSb/v3Il1bvuPqwdn xq1nrPW9q+vU
qVOqqqrSs2fPWsurqqrSqVOnWvuoa3/vdX2HDh3Kr1u3bp1ly5aVX7/xxhv5 2MEDau1n1cta
rUvb9tvWO5aKioosnD/vPf9+DBxyYh6ecHsSl8MCoDgEEAAAAKDR1fel/x+u PbbW633O+UWD
A8GqPnpQ/9w9fnzOHFH7LJG7x4/PRz96UHmfLVq0yMKFi9KmTeskKZ8d8l4D yNq27d69W345
4d41okxDjq/dNh1qbbf6TdBXRpAF777znn9PDj3yhDxy3x1JRJD61HUJMgA2 XwIIAAAA0Pjq
+dL/rYUrfq2oSEqrbDt1YYc6t+/Xtu4v/Ed99Ss5+tjh2ab9Njn6qCFJknsn 3Jfv3fKD3HP3
z8uf/8G+ffO9730vZ5xxet55+52MufTSWuPbdttt8/Jf/5pdd921/vHX93y1 ZaecdFLO/fr5
ufyysdlh++3z17++nBtuvDE33ThuvaauoqIiC+a9XX5eWtfnr4dDjzg+j/zy ziQiyOrmVs00
CQBbGAEEAAAAaHSl1P1F/evvLk8ptQNIKaUMOfvqOrd/7Uen1rl8l113yZ23 /zTf+I9v5rLL
r0iS7Lfffrnjv3+SXXbpXf78q678ZkZ//bxcf8O49OzRI2edOSL3P/Cr8voz Tj8th336iCxc
uDCv/WN6neOv7/nqy84884zk5lty3PEnZtbs2dlll975ytkj652L1a08+2D+ vLnl98yfN7fW
WQkN3dfaHHLEcXn0l3clEUEA2LJVlEqlkmkAaDz33X5Ljjzx9CTJ0iWLTQgA AIXVslXr8p+B
Dx40pLx88kMTcshnhq+x/c7nP5rLRnwmqUi5flxy8/155VuHmMwm8Oj9P0vf D/UTQTaSyQ9N
KP9dEIDG4QwQAAAAoNHV9+8xL7n5/gZvy6b1yU8Py28e+BIY8roAACAASURB VHkSZ4IAsGUS
QAAAAIDNwvRvftIkbGZEEAC2ZAIIAAAA0Oic1bHl+MSnjs1jv/pFEhEEgC2L AAIAAAA0OgFk
yzLg8GMy6dd354VnprovCABbDAEEAAAAaHwCyBZnwGFDkySTHhyfxNkgAGz+ BBAAAACg0ZUi
gGypPn7Y0Xn8wXucDQLAZk8AAQAAABqfM0C2aB8ffFSS5PGJ9+aFZ6YmiRgC wGZHAAEAAAAa
nXuAFMPBg4aUn09+aIIYAsBmRQABAAAAYIPVF0MAoKkIIAAAAABsVKvGEFaY /NAEkwDQyJqZ
AgAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHBamAIAAAAAqFunbr0atN3cqpkmC2AzI4AAAAAA sEVZXL0kS5Ys
yfLly9OsWbO0atUqrStbbZLPmls1M5269UqpVKpzfUVFhfgBsJkSQAAAAADY YiyuXpLFixen
devW5WVLlixJixYt0qL5prna+9yqmamoqFgjgogfAJs3AQQAAACALcaSJUtS UVGR6urqJCsi
RMuWLdOsWbMsWlyd6urq1NTUpHnz5qmsrEyb1pUb5XNXjyDiB8DmTwABAAAA YIuxfPnyLF26
tPy6RYsWadmyZaqrq7Nw4cK0adOmvG7hwoVJstEjyMrnAGzeBBAAAAAAthil UiktWrRIs2bN
UlFRkRYtWqSysjILFixI8+bNy2eGJEmzZs2yePHijRZAEuEDYEsigAAAAACw xWjXrt2KqNGm
TZo1a1Z+tGzZMjU1NVm2bFlqamrK27ds2dKkAWylBBAAAAAAthitWrZIZWWH vPPOO5k/f0GW
Ll2ali1bpn37dmnfvn0WLlyYpUuXZvny5Umyxo3LAdh6CCAAAAAAbFHeeeed zJ37drZpv01a
V7ZOksyd+3aSpHXrFa9rampSXV2dDh06mDCArZQAAgAAAMAWZf78BWlW0SwL FiwoL2tW0Szz
5r2bNm3alM8A6dChw0a9/wcAWxYBBAAAAIAtytKlS7No4aI1lrdp2yYtWzRP l86dTBIAAggA
AAAAW5bly0t13tx8+XL3+wDgX5qZAgAAAAC2JF26dMrSpUvTqrJV+bF06dJ0 6eLMDwD+RQAB
AAAAYIuy7Tbts932vbJkydIsmL8gS5YszXbb98q227Q3OQCUuQQWAAAAAFuc bbdpL3gAsFbO
AAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApH AAEAAAAAAApH
AAEAAAAAAAqnhSkAAAAAmsrkhyaYBArt4EFDTAJAExFAAAAAgCbzwQ/tYxIA gE1CAAEAAACa
TKlUMgkAwCYhgAAAAABNRwABADYRAQQAAABoMqUIIADApiGAAAAAAE3GJbAA gE1FAAEAAACa
TF0BZMrUadmv394bvO+XHz9vret3/fiVfgMAoMAEEAAAAKDp1BFAPnfqyPzn 92/Mfv322uDd
DzzzsTqXv/Tg2Xn58fOy68Hf2uDP6Lv3QXlh2u/e8/uf/sMf8/WLLssbs2Zv 0H7Y/PTd+6DM
rZppIgCaSDNTAAAAADSVUqm0xiNJvnb+JXlq6rQ61zf0saxUkeWlUp2PVu26 ZOdd9szLk8/f
oM9YOd4Nef9V1383F583Kn/+w283eCwem9cDgKYlgAAAAABNpr4vje++++6M On9MpmxABFlW
0yzLS6nz0apdl3IE+fNjFzVaAPngPh9dY9lLL72cj/bff7P4wv6ll/+WQUcO 32oCxaY+XgCa
lktgAQAAAE2mlLq/JB4wYEDuvvvuHHPMMbn2m2Oy7z7rfzmspaVmqampveyV ly/Jzrtels7/
NrK87NkXB9c7jg09joZsW71kSZq3aL7BY9gYnvj90+l/wL6bxVgcLwAbyhkg AAAAQNMpldZ8
/NPKCHLOBZfm6al/rHvbtTyW1lRkeVJ+THt6xf01pj39u1rLl9ZUrHU/e/Y7 OD/+z9tz8KAh
6ffRQbn40m9mSfWS2uP95/PXXns9I792fvY7eHD27n9Izjh7dOa8Nae8nyTZ s9/BK57Xs6y6
ujpjrrgqB3z88Bzw8cMz9oqrUl1dXWs8//Xfd+WQTx2Tf9v34+Vld/383gw+ 8rjsdeAhOWr4
5zLtj8/k3l/+Kp8++sR85IBP5tgTv5iXXnp5jWNb9fWTTz2d/vv3q/dzltfU 5Pobb8nHBh6Z
fQ4amNEXjM2CBQvK7/+f3/0+Rw3/XD5ywCcz6IhhufueX5bXNeS46pr7tR33 sqVLc9V1N+Zj
hx6RAz/xqdz2kzvL269rrHUd7/rO4brGDEDTEkAAAACAJrOW/pFkRQQ5++yz 84UzvpJFixav
VwNZWtMsNTWl8qNz54kZP74ynTtPrLV8aU2zte4nSaZO+1PuuePWTJxwZ96c Mzc3fu9HdfWP
nPW1C3LSCcMyeeKEPP7ghOy80/ty5be/m1IpeXbK40lW/PrslMfrXXbDTT/M 7Ko388D4/879
d/93Zr4xO+Nurv15zzz3Qn7+kx/mmacmlZc9OWVqbrvlhjzx6P351OBDM+Ir X8/k3/4+P7zp
23nyNw9k0CGfyJhvXL3Gsa18vmTJ0kz732ez3z571/s53//xT/L8Cy/m5z/5 YR6feG8qKytz
3Q3fK+/jwjHfyJmnfSFPTXowt90yLn969s/ldQ05rrrmfm3H/d3v35q/vjw9 P//pjzLx3rsy
a3ZVeft1jbWu413fOWzImAFoOgIIAAAA0GTWdd+ESZMmZdy4cfnRzdensrJy ve6/sKSmIjXL
S6lZXkppydMZP74yI0cOzPjxlSktebq8bklNxTrv4/D1USPTqWPHdOrYMed9 bWQemPhInfcA
uefO27LfPnulVatWadeubb484kt54qmn13q/kNWX/Wrioznvays+r3Onjjn/ nLPzq9U+79yv
npmOHTvUWnbJBaPTo3u3VFZW5qTjj8mChQtz0Xmjai17/oUXa33WipCw4vn/ PvN8eu/8vrRv
367ezxk/4YFccM5X0r1b17Rt0yZfPeu0PPLY5PL6ysrKVL35VubMnZuePbpn 7L+fu17Htba5
qWs89z0wMReM/nK6d+ua9u3b5dyvntXgsdZ1vOs7hw0ZMwBNxz1AAAAAgCaz ti+JJ02alGOO
GZqrr7gk/fb68Hp/ofyBj12QP//vk+UzP0aOHJjnnluakSMH5sYbH87Qofdn zpzB+cDHLljn
vrfv1bO8zXa9eubNt+bUes/K5//77PO5/sZb8pf/eymLFi1OklRUVNS5bX3z 8NacOdl+u17l
Zdtv1ytvzZlba5uuXbqssZ8O225TXlZZWVnnspqamnqP9cmnns6B+/Vb6+fM qnozRw4/udb7
Vj2+6755aW758U9y8w9uTfv27fL1r43Mxz/av8HHta65WX08VW++VWufq1rX WOs63vcyh+sa
MwBNRwABAAAAmk49XxSX48flF6ffXh9+T9cT6tLl4SSpFT+SrBZBJq4YxoKB a93Xa6/PyPt2
2D5J8vqMmenSuVPtMa08Q+HCsRn95RE56ID90q5d2yxcuCj9D/1MndvWNw9d Oneq9XmvvTYj
nTt1XK99rPeyrLj806izz1jr53Tr2iU/+cGN6d6ta5373KPv7rnh6itSKpXy 2yenZOx/XJ1H
7z+wQcfVvHnzLF60OK1brwgPb78zb80x1DGe116bkZ3et8Max7OusTbkeNe1 rEFjBqDJuAQW
AAAA0GRKdfyXJMccMzRXXX5x9tn7w3Vu05D/3nprUObMGZyhQ6tz440PZ889 WyZJ9tyz5T/j
R3XmzBmct94atNb9JMk137kpc96emzlvz83V1383hw86pNb6lc+rq6vTqlXL tKxsmddmzMyl
37qm1vpt2rfP9H/8Y439r/p68KGfyFXXfzdvzZ2bt+bOzZXfHpfDBn6i3u03 ZNmHD/xkSinl
nXfn5ZV/vJoP7dl3re8/9ugjcum3rs0/Xn89y2qW5f9e/lu+fvFl5fXnXXJ5 Xp7+SpYuW5ZS
aXmW1dQ0+Lh2323X3Hb7XVm0eHFmVVXliquuqzWGusZzxKcG5ZvX3ZA3Zs/O vPnv5qrrv9ug
sTb0eNe1rCFjBqDpCCAAAABAk6nvnhtXXnZR9tnrQ+t1z4/VH7998Lrs1PeA bNNjTPmMj5Xx
Y+TIgdmmx5js1PeA/PbB69Z5D5CPfGjPHHPi/8vhR5+YDh22zZmnfq7Oez6M uXB0rvnOzTlg
wKfypbNG5SP/tmet9aecOCwnfn5EPnLgIfXeR2Lk6V9Il04dc8SxJ+eIY09O t65dctZpX1iv
+4g0dNnK11Om/jF7fWjPNG/efK3v/8JJx2evD+2Z00aOzv4DPpULLrkinzj4 o+X1Az7WP6PO
H5MDPvGpXP/dH+QbYy5o8HFdfP6oPPb4b3PQoUfkc6d9OfvuvVetMdQ1ntO/ eHJ67/S+DD/5
1Hx66Enp2aN7g8ba0ONd17KGjBmAplNR8n9jgEZ13+235MgTT0+SLF2y2IQA AFBYLVu1Lv8Z
+OBBQ8rLJz80ofx6+v89t8b7pv7xTysue7WB7r13XE4ZdVf59cKqyzJ+fGWG Dq1O226XlJf/
13XH5aijzq53P3sfNDDTfvdwoX+vvnH1d9J7p/flxOFHbxU/m415vL3fv2f5 537l3wUBaBzu
AQIAAAA0mbr+XeY+H/nQRvnX8zXLm+XWa04ovx54xFczdOjEzJkzOHf95wmr bNlsnZ9X9H8/
+vspf8jxxw7Zas5a2NqOF2BrJYAAAAAATWcTfgE99KgRtV7PW/avyxetvm6d 4yj4F+X33XXb
VnGcW+vxAmytBBAAAACgyTTmv8Dfpnl1lrz98WzTvHq9vveeOvlBZwoAwBZI AAEAAACajLAA
AGwqAggAAADQZEoRQACATUMAAQAAAJqOM0AAgE1EAAEAAACajEtgAQCbigAC AAAANJm9+h9i
Eii0BfPeNgkATaSZKQAAAAAAAIpGAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAA/j979x1mRXm3AfhZQEEBRQGxG1FUxGA3FkQNtlgwJl800SS2 iCkSMWosIBaa
xhJLYjcmxm5igiUaS+y9G0sEFRVQOliQtrvn+2PZlZUFlr4O931dc3H2zJz3 zPnNnGF3nnnf
ASgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDCEYAAAAAA AACFIwABAAAA
AAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACgcAQgAAAA AABA4QhAAAAA
AACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAAKBwBCAAA AAAAUDgCEAAA
AAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAAAApHAAIA AAAAABSOAAQA
AAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDCEYAA AAAAAACFIwAB
AAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACgcAQg AAAAAABA4QhA
AAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAAKBwB CAAAAAAAUDgC
EAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAAAApH AAIAAAAAABSO
AAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDC EYAAAAAAAACF
IwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACg cAQgAAAAAABA
4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAA KBwBCAAAAAAA
UDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAA AApHAAIAAAAA
ABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAA AIDCEYAAAAAA
AACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAA AACgcAQgAAAA
AABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAA AAAAKBwBCAAA
AAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEA AAAAAApHAAIA
AAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAA AAAAAIDCEYAA
AAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQ AAAAAACgcAQg
AAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4A BAAAAAAAKBwB
CAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUj AAEAAAAAAApH
AAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDh CEAAAAAAAIDC
EYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQ OAIQAAAAAACg
cAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAA FI4ABAAAAAAA
KBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAA AIUjAAEAAAAA
AApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAA AEDhCEAAAAAA
AIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAA AABQOAIQAAAA
AACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAA AAAAFI4ABAAA
AAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAA AAAAAIUjAAEA
AAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAA AAAAAEDhCEAA
AAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEI AAAAAABQOAIQ
AAAAAACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcA AgAAAAAAFI4A
BAAAAAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIR gAAAAAAAAIUj
AAEAAAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBw BCAAAAAAAEDh
CEAAAAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAo HAEIAAAAAABQ
OAIQAAAAAACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAA CkcAAgAAAAAA
FI4ABAAAAAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAA gMIRgAAAAAAA
AIUjAAEAAAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAA AKBwBCAAAAAA
AEDhCEAAAAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUThMlAFh6 llu+mSIkufOm
KxUBAKCAuh9yjCIAAEuNAASABqHrngd8rdf/sfsHL5XPsLTet6Gux9d1/bCt AQAAWPQMgQUA
AAAAABSOAAQAAAAAACgcQ2ABFFBZWVlKpZJC8LW0foeOGTb0rQWer07Fek8A im/yp5MUAQBY
LPQAAWC+lJWVKcIisn6HjoqA/QMAAAAWEz1AABqYTz75JGeccUYGDx6cESNG pGXLlunatWt6
9uyZbt26LdF1qasnyZLsWTLrCeCWLVuma5edctaZp6f1qqsulW2zIFe/z+01 9W1rft93bifO
l+TV+w1lPb6u6zfrOiyqnhfvvTcs5134+zzz7HP54osvssnGG+eYHj/LPnvv 5eALAABA4QhA
ABqYgw8+OBtssEH+85//ZN11182ECRPy8MMPp1+/fks8AGkIqk/6jhs/PgMG nZvep5+RK/54
qR2lHjVLlu6QRQ1lPb6u67fIP+/77+fgQ3+aXj1/lYH9zs6KzVfMm2++lauv +ZMABIClbvyY
j/P8U49mhRWapqys/oNVvPLKa4pHg7Xf9w5K+w03VgiApUgAAtDAPPzww/nb 3/6WFi1aJEna
tm2bgw46KAcddFDNMhUVFenTp0+uvfbafP755+nevXuuvvrqtGzZcrb25rXs jBkzcvLJJ+ev
f/1rysvL06dPn5xwwgk1Q11V/1vd82PWXiFTp05Nz549c9tttyWpCm8uueSS NGvWrGbZyy+/
POecc04++uijdOrUKdddd1222GKL+a5Lm9atc0af3tmx625Jkg+HD8/Z/Qfl 6WeeTUV5eb71
re1ywXnnpE3r1kmqTmj3Oe2UXPOn6zJ69Ji8N+TNVFRU5PzfX5zbb/97Pp88 OXvu3i2DBpyd
5s2b17xmwNln5rIrr8qYMWPTYcMNct65g7Jpx01qegtU/7soTpbPetL90cce z4Bzfpf33/8g
q63WNsf+8uf54UE/WKTvuyA1mdf8BTGvbZckV1x1Ta7905/z+eTJ2X/ffdLv 7DPSdPnl69y/
F/X6Le467dptr1x9xR/TocOGSZK/3/HPfP97302SDB36To7++a/yyEP/rtk/ 5rYP3HTzrXXu
r3W56JI/5hfHHJ1DD/lhzXNbbrF5LvvDxTU/T58+PWec1T93/+veJMn++34n Z/btk+XrqH1d
odGsz63foWP6n3VGrrz62oweMzrrrbdeBvY7K+9/8EEuu/yqjBg5Mh023CAX nn9uNt5oo3l+
B+f2PQHg6+2TiePz7pDXs+3O3bLSqm3SqFH9hlx98t+Dc9qA38/2/ND/vZFv tN9QYZO8/947
6bBJp9meH9j7+Oy+++4KNB8efPDB/PaMc+q1bEVFeT58f1juv+eONG3aLGut s54CAiwl7gEC
0MDstNNO6dGjR55++ulMmTKlzmUGDhyYF198MS+99FJGjx6dFVZYISeffPIC LXvmmWfmjTfe
yMsvv5xhw4ZlxIgRSb4MPEql0hyHverTp08++uijDB06NEOGDMmHH36Y008/ vdYyjzzySJ58
8slMnDgxBx54YHr06LHAtZn1/iNH9fhFjjz8p3npuafy/DNPZIP27dN/YO0/ SF599bXcPfiO
vDfkzSTJZVdclTfeeDN3D74jLz77ZJo2bZpBvzu/1mueefa5/P3Wm/Pqi89m rz33yGl9+ib5
8qTzsKFvLZaeAr858eQcf1zP/PeVF3LbTTfUXM24qN93fmtSn5rNr/psu+ee fyH33jM4jz/y
YMaOG5eLLq6718/iWL/FXaedd94pzz3/QpJk1KjROePs/pk8eXKS5Nnnnk/X rl1qLT+3fWBO
+2tdnn76mey/73fm+rnPv/CijBo9Og8/eF/+88C9+eijj3PB7y9e4Do+8dRT ufWmv+bVF5/L
d7vvl8OP6pFHHnksN15/XV576bnsu8/eOaV333p/pjl9TwD4entv6JvpsNlW adWmbb3Dj2ql
ysrZp1JlKisqTBUVKZUq66xRkjRZbnnTfExJUlmqrNdU1qhR1mu/Qfbu/oM8 +dh/fMkBliIB
CEADc8cdd2S99dbL0UcfnVVXXTXrrbdeevXqlYkTJ9Ysc+211+bSSy/N2muv nZYtW+acc87J
HXfcUWd781r2+uuvr5nfqlWr/P73v6/3ut5888256KKLstpqq6Vdu3a55JJL cvPNN9da5rLL
Lstaa62V5s2b58QTT8zLL7+8QHUZP2FC+g0clC477ZgkeeDeu7PjDtunadOm admyZX574vF5
4omnar2mz2kn17pfyK23/y1nnN47q6/eLs2bN89vT/pN7r//wVqvOfvMvmnX brWssMIK6fGz
I/PGm0tmWKSmzZpm7JixmThhYtZcc42cM7DfYnmf+a1JfWo2v+qz7fr2OTVt WrdOm9at07fP
qfnnnXfV2dbiWL/FXadddu6SZ597Pknyj8F3plnTprnrnn8lqQpAdtm5S73X c37214mTJmWV
VVaZa3uD77qnpvZt27RJ39N7Z/Bddy9wHQf2OztrcAMS9AAAIABJREFUrLF6 mjVrliMPPyyT
J09Ov7POqPXc66+/Ue/PtKS+JwAsWZM/nZgWKy/YPd6qL9aZdUopqaysMFVW JKU51ChJo8aN
TfMxJXMI3OYyrbHmmhk76mNfcoClyBBYAA1Mq1atMmjQoAwaNCilUilvv/12 Lrjgghx00EF5
4IEHkiQjR47MJpvUHuZm1t4Rs5rXsh9//HHat2+/QOs6evToWq9t3759Ro8e XWuZVWc5ibzi
iiumvLx8vt6jetifFi1aZOeddsyAfmcmSV56+eUMOvf8vPHmWzU9Zb5ag9VW W+0r6zsmu++1
z1zr1qrVyjWPmzVrNt/ru6Au/8MlufSPl+eiS/+Qli1apm+fU9Pt27st8veZ 35rUp2bzqz7b
bp211671eNy48XPYBxf9+i3uOu24w/Y54+z+SZLBd96d884dmD9cdmV+eNAP 8tIrr+R35wyY
j+NF/ffXVVq1ysSJE9O2bds5LjN+/Pisu846NT+vu87aGT9+wgLXcZVVWtVa v7qe++o6z+0z
LanvCQBLVmVlaY49P0qlUt5/+42sv8lmc5hfOftzqaw6+b+YDXnn/Wy11Vb5 /NMJC/V4cSql
ss4asYD1rKOWZ57VP31PPy2NGs1+jXGjRo1SUVGhcABLkQAEoAErKyvLJpts kosvvrjWldtr
rLFGnn766ay11lrzbGNey66xxhp57733stHMMfjnR7t27TJs2LBsuGHVGMvv vffebCeOF9ac
hn36Zc9e6X3qydm1685p0aJFJk+enG9uue1c22rbtk3+cfutaddutQa3rTfv /M1cc+VlKZVK
efSxx3PSKb3z/NOPL/b3nVdNFkfN6rPtho8YkW+sVzVW8oiRI9O69apLdZsu yjqtuOKKWXed
dXL3v+7NCis0y2677pJL/nBZHnjwoay37rpZYYUVFstn2GGH7XPPvffl8J/+ ZI7LtG7dulbt
Pxw+olaIWeuXyCZNMnXq1JpgY+LESYX9ngCwdFRWVmTIay9m/OiPs9nWO2by 5E9nW6auoVpL
paSyYvGf9N9qqy2TlFJZUblQjxenUilzHM6WBahn5ey1vPa6P+ejjz/Oxb+/ IM2aNlUkgAbG
EFgADcyuu+6a2267LaNHj05FRUWGDx+eU045Jdtvv33NMj//+c/To0ePvPvu uykvL89///vf
/PCHP6yzvXkte9hhh6Vnz54ZMWJEJk2alOOPP75mXqtWrfL222/PcV0PPvjg 9OrVK2PGjMmY
MWNy3HHHzXE9FrVp06alWdOmWb5p0wwfMSKn9Tljnq/58SE/zCm9T88HH36Y 8vLyvD1kSH7d
64R6v+dKK7XMu+8NWyyfp2evE/LOO+9mxozylEqlVM5ypdjifN951WRha7ag 267/wHMzfsKE
qqHPBpyT73bff7Fs06VVp647d0n/gefkuwdUfa4Duu+Xvmf1S9c5DH+1KPaB Xr/+VS674urc
dMttmTTpk0ybPj2vvPpafnnscTXL7L/vd3J2/0EZN358xo0fn7P6DUj3/fap s72Om2ycq675
U6ZOnZrRo8ekT98zF/v3fm7fEwCKZcb06Xn9+acyfnTV8EHNmq1Y53J1D4FV WiLDS00aPyaT
xo9Z6MeLdwis0hyHwGL+1XW/jyS5975/5+AfHZpx48
Re: [EMF] How to create an instance of an ecore model [message #427192 is a reply to message #427183] Thu, 05 February 2009 12:58 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33141
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------040000050301020605090905
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Miguel,

I don't know much about OCL. I've added the OCL newsgroup to the "to"
list of the reply. Do doubt Christian will see it...


Miguel Angel Garcia de Dios wrote:
> Ih Ed Merks,
> I've changed the property volatile of the "people" ERefeference of
> "People" class, which is my container of Person. Then I can generate
> instances of Person from "people" EReference but now I have a new
> different problem: with the "OCL Interpreter Console" plugin installed
> I have made many OCL queries but I've obtained an unexpected value
> attached as a screenshot: Having three instances of Person, the OCL
> query "Person.allInstances()" returns an empty result. But if I write
> "self.name" (being the context an instance of Person) I obtain the
> desired result ('Ada' for example). I think I have any wrong property
> value because it seems like Person isntances are no related ro
> something similar.
>
> Thank you!
>
> Miguel Angel Garcia de Dios wrote:
>> Ed Merks,
>> Yes, I did. I marked the feature as volatile.
>> I think it cannot be so complicated. Maybe any value of a property is
>> not correct so, to ensure that I'm going to attach screenshots for
>> everything (it is not so much).
>>
>> I am really concerned with that because I think it should be easier.
>> Thank you in advance!
>>
>> Ed Merks wrote:
>>> Miguel,
>>>
>>> Did you mark the feature as volatile such that no code is generated
>>> for it?
>>>
>>>
>>> Miguel Angel Garcia de Dios wrote:
>>>> Ed Merks,
>>>> I have the containment property of my desired container class in
>>>> true, the GenFeature properties are also update: containment=true
>>>> and the GenEdit properties contains children=true and create
>>>> children=true.
>>>> I hope you can be more explicity with the solution of my problem
>>>> please.
>>>> The last error I've obtained is when I create My.container file
>>>> from a Poeple object. Hten I click on it and I get the nex error:
>>>>
>>>> Unhandled event loop exception:
>>>> java.lang.UnsupportedOperationException
>>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>>
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>>
>>>> at
>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>>
>>>> at
>>>> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>>> at
>>>> org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
>>>> Method)
>>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>>> at
>>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
>>>> Method)
>>>> at
>>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>>> at
>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>>> at
>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>>
>>>> at
>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>>
>>>> A lot of thanks!
>>>> And always sorry for my bad English.
>>>>
>>>> Ed Merks wrote:
>>>>> Miguel,
>>>>>
>>>>> Comments below.
>>>>>
>>>>>
>>>>> Miguel Angel Garcia de Dios wrote:
>>>>>> Hi,
>>>>>> I think my question is easy for us but i have spend too much time
>>>>>> in it:
>>>>>> I want to create a simply ecore model and then i want to
>>>>>> instanciate it and check some OCL queries on it.
>>>>>> My purpose is to create an instance of an ecore model which
>>>>>> contains as instances of a class named Person as I want.
>>>>>> These are my steps:
>>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>>> -People, which contains an EReference with multiplicity
>>>>>> 0..* to the EClass Person.
>>>>>> -Person, which contains only an EAttribute named "name"
>>>>>> with String type.
>>>>>> 2.- Create automatically the .genmodel file from the ecore
>>>>>> model .
>>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>>> 4.- Launch an Eclipse application from the project.
>>>>>> 5.- Create an instance of the ecore model.
>>>>>> My probles is in the last step: I begin the model with an
>>>>>> instance of People and hten I desire to create as number of
>>>>>> instances of Person as I want but I cannot do that. I don't know
>>>>>> the reason. I've seen the EXTLibrary example too many times but I
>>>>>> cannot get my desired result.
>>>>> The lack of there being a containment reference is the likely
>>>>> reason. And note that even if you change it in the Ecore model,
>>>>> the GenFeature properties for the feature will *not *change, so
>>>>> you'll need to update those as well to support children and child
>>>>> creation.
>>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>>> as many Person as I want. That class is People. I've tried many
>>>>>> possibilies changing the class properties obtaining different
>>>>>> errors.
>>>>>> Can somebody tell me how to create an ecore model that has an
>>>>>> EClass which can generates as many instances of another class as
>>>>>> I want?
>>>>>> Thank you in advance!
>>>>>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
> ------------------------------------------------------------ ------------
>

--------------040000050301020605090905
Content-Type: multipart/related;
boundary="------------050408000005020407060604"


--------------050408000005020407060604
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">
Miguel,<br>
<br>
I don't know much about OCL.&nbsp; I've added the OCL newsgroup to the "to"
list of the reply.&nbsp; Do doubt Christian will see it...<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<blockquote cite="mid:gmeemi$n7a$1@build.eclipse.org" type="cite">Ih Ed
Merks,
<br>
I've changed the property volatile of the "people" ERefeference of
"People" class, which is my container of Person. Then I can generate
instances of Person from "people" EReference but now I have a new
different problem: with the "OCL Interpreter Console" plugin installed
I have made many OCL queries but I've obtained an unexpected value
attached as a screenshot: Having three instances of Person, the OCL
query "Person.allInstances()" returns an empty result. But if I write
"self.name" (being the context an instance of Person) I obtain the
desired result ('Ada' for example). I think I have any wrong property
value because it seems like Person isntances are no related ro
something similar.
<br>
<br>
Thank you!
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Ed Merks,
<br>
Yes, I did. I marked the feature as volatile.
<br>
I think it cannot be so complicated. Maybe any value of a property is
not correct so, to ensure that I'm going to attach screenshots for
everything (it is not so much).
<br>
<br>
I am really concerned with that because I think it should be easier.
<br>
Thank you in advance!
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Miguel,
<br>
<br>
Did you mark the feature as volatile such that no code is generated for
it?
<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Ed Merks,
<br>
I have the containment property of my desired container class in true,
the GenFeature properties are also update: containment=true and the
GenEdit properties contains children=true and create children=true.
<br>
I hope you can be more explicity with the solution of my problem
please.
<br>
The last error I've obtained is when I create My.container file from a
Poeple object. Hten I click on it and I get the nex error:
<br>
<br>
Unhandled event loop exception:
<br>
java.lang.UnsupportedOperationException
<br>
&nbsp;&nbsp;&nbsp; at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
<br>
&nbsp;&nbsp;&nbsp; at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
Method)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
Method)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
<br>
&nbsp;&nbsp;&nbsp; at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
<br>
&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br>
&nbsp;&nbsp;&nbsp; at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
<br>
&nbsp;&nbsp;&nbsp; at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
<br>
&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:597)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
<br>
&nbsp;&nbsp;&nbsp; at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
<br>
<br>
A lot of thanks!
<br>
And always sorry for my bad English.
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Miguel,
<br>
<br>
Comments below.
<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Hi,
<br>
I think my question is easy for us but i have spend too much time in
it:
<br>
I want to create a simply ecore model and then i want to instanciate it
and check some OCL queries on it.
<br>
My purpose is to create an instance of an ecore model which contains as
instances of a class named Person as I want.
<br>
These are my steps:
<br>
&nbsp;&nbsp;&nbsp; 1.- Create the ecore model. It is compoused by two classes:
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; -People, which contains an EReference with multiplicity 0..* to
the EClass Person.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; -Person, which contains only an EAttribute named "name" with
String type.
<br>
&nbsp;&nbsp;&nbsp; 2.- Create automatically the .genmodel file from the ecore model .
<br>
&nbsp;&nbsp;&nbsp; 3.- Generate the Java code aotumatically fron the .genmodel.
<br>
&nbsp;&nbsp;&nbsp; 4.- Launch an Eclipse application from the project.
<br>
&nbsp;&nbsp;&nbsp; 5.- Create an instance of the ecore model.
<br>
My probles is in the last step: I begin the model with an instance of
People and hten I desire to create as number of instances of Person as
I want but I cannot do that. I don't know the reason. I've seen the
EXTLibrary example too many times but I cannot get my desired result.
<br>
</blockquote>
The lack of there being a containment reference is the likely reason.&nbsp;
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will *not *change, so you'll need to update
those as well to support children and child creation.
<br>
<blockquote type="cite">Being more exaclty, the idea is to be
a EClass which can generate as many Person as I want. That class is
People. I've tried many possibilies changing the class properties
obtaining different errors.
<br>
Can somebody tell me how to create an ecore model that has an EClass
which can generates as many instances of another class as I want?
<br>
Thank you in advance!
<br>
&nbsp;&nbsp;&nbsp; </blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
</blockquote>
<br>
<br>
<hr size="4" width="90%"><br>
<center><img src="cid:part1.02050102.02090700@gmail.com"></center>
</blockquote>
</body>
</html>

--------------050408000005020407060604
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-ID: <part1.02050102.02090700@gmail.com>

iVBORw0KGgoAAAANSUhEUgAABkAAAASwCAYAAACjAYaXAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQoK F8BQrI4AACAA
SURBVHja7N13XBTH3wfwD6D0Ir1YAMFCNGqMXYMYe6+o2GNXwAaoiAXsvWs0 MbFFjbHEHrFE
JMaujy3qTzSAhXYUjYKUO+75A1k5OLgDEY7j885rX97tzs7Mzu6R2fve7GhI pVIpiIiIiIiI
iIiIiIiI1Igmm4CIiIiIiIiIiIiIiNQNAyBERERERERERERERKR2GAAhIiIi IiIiIiIiIiK1
wwAIERERERERERERERGpnQpsAiKikvU6PgYAIIp5hUf3bqJRq3awq+bEhinj op4/w81L54T3
LvUawdKmMhuGiIiIyq3QM0cV9omy+8TdPcaywT6j4/t+YD9VRT4HlSxs2ChE RCVIQyqVStkM
REQl53V8DIMfai5nMIQ3mERERFSeFRQEye4Tdxs4hg1Vgk78+iP7qaX4OWAA hIioZDEAQkRU
wsIe3GLwo5zIDoTw5pKIiIjKM3lBECH4MWA0G6iUnNi/jf3UUvgc1Kj7NRuD iKgEcQ4QIiKi
z8SumhMatWqHR/duIvTMUYhiXrFRiIiIiHKQ8r9S+6/rgFHspxIRkdrjCBAi ohJ2bO9Wjv4o
hzgahIiIiMqz0DNH4dqhp8z7rv1HsmFUxMnffmY/tYQ+Bz0GjWNDEBGVIE6C TkREVAKyRoNA
mBuEN5dERERU3vH3mKqji/t3OHVgO/upRESkdhgAISJSISfXuRa4vevkUDZS GcYgCBEREZU0
U0tbpdIliaJLJB9l9OrdR+m0R34/zJNcTNQ5CFIWPwdERFQ8GAAhIlIx7Sde kLs+7LQ3Tq5z
ZRCkjGMQhIiIiEqaopEWGhoaJZqPMvnt2XNC4f6DB3cr0VEkVtY2iIuNUetr pXO/Efjj4A61
7Keq6ueAiIg+L06CTkSkQsRSDWRKpXIXbQNzOFSvq3CUSHlgampaamVraGgI S2G25ZRzcnRO
OElERERlRc6+jrylsKRSqdylOPL4HEtxlWdlbfNZ6qetoysshdmWe+nUdzj7 qSX4OSAios+L
I0CIiFSIWKKJzHzu+bQNzAEADtXr4tCqNujrcyHffExNTVGrVi1cuXJFphMu lUrRrFkzPHny
BElJSSpxzKampoWuS2nXPfsGWENDI9/XinAkCBEREZWU4vpStth/+V5AfmJx JoYP7wEDAwNU
qmQCMzNzWFpYwtLSAmbmZmjWrEuBeVjb2uWbd2x01Kc0glLJrG3t8i0nNjpK qXwKykOZfmra
+xQAgI6evmw/VYmyO/UZhtOHd6lVP1VlPwdERPRZMQBCRKRCMqSakEhk10U8 mwsHp/kw+9JL
WHf/fx0V5qWvr4/g4GB06tRJWHfq1CkYGBiwoYuJVCoVbnCK8vgFBkGIiIjo c1PluQikyL//
lJEhwbZtvwPI/qEJoPFhDw2NrO0F5RET/XH0go1tZZn3BZX7KXX+lLTFnUdB /VRl8+zYZyiC
D+9Wi34q5+QgIiq/+AgsIiIVkiHRQCYgLLdv/A18+Dfn+gyJ4l8VTZo0CWvX rpVZt3btWkye
PFl436VLFxw+LDtx5MuXL1G7dm38999/OW5AMxAQEABnZ2c4ODhg48aNwra0 tDRMnjwZ1apV
Q7Vq1TBlyhSkpaUJ201NTbF9+3bUq1cPVlZWcHV1xf3794Vt2f/mfKxVREQE PDw8UKVKFdjY
2KBfv34QiUQyeSqTPwBIJBIEBQWhRo0asLW1xahRo/Du3TuZ/Tdv3ow6derA zMysUDeT2e9z
3lTmHAmiDD4Oi4iIiMotqVT+AiA9Q4zRo3tj8uQhmDt3Itatm4M9ezbg7Jl9 uHkzGOkfAiD5
5pErv+zXkRERGDZsBJyca8DeoTo8PAYjXiQStv/5559o3boNqlZzQKPGTbFn zx65+dy9excN
vvoaP/64TWGZuRcb28oKy7OxzQo42NhWlklf0JKa8k5hPzU15Z1ybfZh6dh7 CPupRERUpjEA
QkSkQjIkmpBIpMJiZhaMw4d1YGYWLLM+Q6L4z3ePHj0QHx+P69evAwAuXbqE pKQkdO/eXUjj
4+ODZcuWITMzU1i3fPlyjB8/HsbGxsK6pUuX4vHjxwgNDcXdu3cRFfVxKP7C hQsRHR2NW7du
4ebNm3j58iUWLVokU5dLly4hODgYERER6NatG6ZMmQLg46OskpKSZB5rNXDg QEyYMAFPnz7F
kydPUKNGDQQEBOR7rPnlDwCrV6/G3bt3cfHiRYSFhUFXVxfz5s2T2f/WrVu4 ePEiEhMTlbxX
l+Y7B0jRR4IwCEJERETlS0FzbaSnSbBm7X4sWvQT/PxWY9SoAPToORbNW/RB rVpuSE+TFJhH
fnN3DB02AmPGjMKDe3dx7+7/wdnZCXPnBQnbvbwnw8/XB2H/e4Qjhw/i1q3b efI5c/YcBg0e
iiWLF2H0qJGFni8k57b8yot+9QIAEP3qBaJfvVB6HpD3yW/z7ae+T35bpLlF OvQazH4qERGV
WXwEFhGRCkmXaEDyYRIQTfFNHD6sAy+v9ti48Sy8vG4gs0IjIZ0impqa8PLy wtq1a7F3716s
XbsW3t7e0NT8GDxp27YtDA0NcfjwYfTr1w/Pnj3D+fPnsWzZMpm8fv31Vxw9 ehR2dlnPUl68
eLGw7eDBgzhx4gQsLS0BZAVLevTogfnz5wtpVq5cKYza8Pb2xooVKwqs+9Wr V4XXurq6mDt3
LurVq5dv+oLy3717Nw4dOiTUfd68efjmm2+watUqIc2iRYtgYWFRqueej8Mi IiIi+ig1VYyZ
M4fkOweIvcM3Rcr3YsifMv1M/5kz0Lhpc5l1sXFxSExMROXKlbFqpWy/dfuO nVi3fgN+2bUD
DRo0+OTjVFSequjQazDOHNnDfioREZU5DIAQEamQ2t/44+GdK8LIDy+v9njw IEMIgvTpcwKJ
iR1R+xt/pfLz8PDA0qVLcejQITx48CBrSH0uPj4+CAwMRO/evbFkyRJMnjwZ enp6MmliY2Ph
4OAgtwyRSCSzzcHBQeZxVYDsI6v09PQgFosLrPf169cxb9483Lt3DykpWZM3 FjSZYEH5R0dH
o0mTJjLpc+dlY2NTqPOU30iP7JEhRRkFAjAIQkREROVLQX2mtDQxgubvyOp7 ZSfL7sJJgfS0
DIV5yCvr5q1bWLhwMR788wApKe/z9O22/bAVa9atw8pVq2FsbIT5gYFo376d kM/WH35Af/d+
qF+/vsKyC9qubHmF7VfqGxoX2E9Nefdfkc9X+56DcPboXvZTiYioTGEAhIhI hZibnwEAmeAH
gFxBkOAPqd0U5qejo4Px48dj/PjxCAgIgI6OTp40nTt3xqJFizB//nzcuHED mzdvzpPG2toa
ERERcHZ2zrPN0tISkZGRqF69OoCs+Ts+dTTFiBEjsHDhQrRr1w5GRkZ49+4d qlWrVqS8rK2t
cfbsWdja2hbLOcod4Mg9uSSDIERERKSuCvpBSlEoCoAsXjw63xEgpqaNFOYh r6yx4yZg7pzZ
+LaNGwwNDZGcnIxaLnWE7fXr18OOn3+CVCrFhQshmObrhzu3bwr5HDpwAO79 B8DExBgTxo8v
8vEpW15h+pQGRiZK9VOT374p8jlr18MD547tK9f91OL+HBAR0efFAAgRkQpJ SOgADQ0N9OkT
/OGxV1lBkLp1K34IfqQhMbFjoW6EpkyZIjMnhrwOvI+PD0aNGoX169dDW1sb QNaoiux5OTw8
PDBjxgxs2LABBgYGWLZsmfAYrD59+sDf31+YGH3mzJno27ev0vUzMTFBWFgY atSoIaxLTU2F
rq4udHR0EBkZiQULFhS5TUeOHInJkydj2bJlqFq1Kp48eYJVq1bhp59+Kpab n+xz8SlBj9wY
BCEiIiJVkySKLv5MCwyAZMDHZ0t+OyItTawwD3llpaamQldHB9oVK+L58+dY tnyFzPaJXt6Y
OnkS7O3tIZVmQiKRyJRha2ONQwd+g/tAD0jEEnh5TizS8SlTnrGxMZ49fQon J6ci9VOT/3st
v5/6iX3Wdt0H4tzxX8tlP/WzfA6IiOiz4iToREQq5NLp1bB3aQYj63nCiI/s 4IeXV3sYWc+D
vUszXDq9uljL1dLSgpOTEzw8PORunzFjBmrWrIlWrVqhQYMGqFKlirBtzpw5 sLKyQsOGDdGw
YUPY2tpi9uzZSpft7e2NNm3ayDzGasOGDQgICEDlypXRvXt3NG3atMjHNmXK FDRv3hw9e/aE
nZ0dRo8eja5du35Se2loaOS5kcz+RV1x/SKME6MTERGRupPm8x8ApKVJkJYm zmeRCAEQqRL/
5Uy3csUyBM1fgBq1v4B7/4Fo1Ohrme0dO3TAqLHjUaP2F1i4eAnWr1udJx8r a0sc/O1XHDh0
CGvWrc+3zMrVHPIsuetTUHnjx41Fp67dhf2UOc7s/ui7/5KE9e/+S5Lpp0qL 4b+23Qewn0pE
RGWChrS4fq5KRERKObZ3Kxq1age7anl/yTVvek8Mm7ZfeJ8imo/Dh3XQp08a 9C3nCut3rR6A
oOVHi61OgwYNQt++fQs1coNKRtTzZ7h56Rxc6jXiSBAiIiIqs0LPHIVrh54y 79t26y837YBB
QzFyZNYPfqRSABpZ039IAUSGnwAAODh0w8/bp2H/3t1s3FJ0/sRv7KcW8nPQ Y9A4NgQRUQni
I7CIiFSIJFMT21d+HIXRvvsU9OkTjMTEjti/M+fojOIZwJeZmYndu3fj33// Re/evXkCVBAf
h0VERETqKr/fY/66Zxd+2LYDVap2kVn/8sUpjB09AgDww7YdBeZBJePbru74 8+QB9lOJiEhl
MQBCRKRCFq78XeZ9SEiIcGOXe1txMDc3R7Vq1fDzzz9DU5NPRVRVDIIQERFR eTN29AghyJFz
Xc7XOd9T6WEQhIiIVBkDIEREKszNzQ2A22fLP3uSc1J9DIIQERGRulE0emPM qOGFSk+lp02X
frhw6iD7qUREpHIYACEiIiojcgZBHt27yectExERUZnGgIZ6cevcFyF/HGI/ lYiIVAoDIERE
RGWIXTUn9BjkJEyODvBXdkRERFRGMQCidtw69QEAhJw+zH4qERGpBAZAiIiI yiCOBiEiIqKy
TgoGQNRV6069cfH07+ynEhFRqWMAhIiIqIzKPRrk0b2bAMCbTCIiIiobOAJE rbXu2AsAcDH4
CPupRERUahgAISIiKuOyAyEAGAwhIiKiMoNzgJQPrh16Cq9DzxxlP5WIiEoU AyBERERqpKBg
CBERERFRacovGEJERPS5MABCRFQK7Ko5sRGoRK6z7GAIERERUWk6tncrG4Fk 5AyGlBehZ47y
xBMRlTBNNgEREREREREREREREakbjgAhIipFr+Nj2AhEREREpLYqWdiwEcqg O3fv4ZvWbfD2
dQIbg4iIyjSOACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdPgKLiEiF 3NzTTe76RoNP
sHGIiIiIiIiIiIgKgQEQIiIV4zrxmsz7sNPeuLmnG4MgREREREREREREhcBH YBERqRBJZt51
2gbmsK3eBNd3d2MDERERERERERERKYkBECIiFSLO1EKmVIrjof/DwbMPkJmZ FQDRNjBHZecm
+HtnDzYSEREREVEh3TjYmo1ARERUDvERWEREKkQiyVo6taiZ9T5TCvN6XtCu kBWvNvny/wqd
p2MNF+G1vr4+vmpQH4FzAuDs7KTWbfn27VusWbcRZ8+dR0xsLAwM9NGkcWMM HzoYLVs0V7rt
wsMe8cIkIiIiKsNuHGyNdmOv4dwPTdG438Viz3//30lYdyExz/rJbcwwoKUp T4AaMLW0VSpd
kiiajUVEpGIYACEiUiFpUk1kZEpx/moYUtMykJySDofKZjD7u4+QxnlEcKHz zf4S/+3bt9i5
ew8mT/PFyWO/q3Vbek+ehqrVqmLvLztgZ2uL12/e4MrVa9iw6XulAyBERERE VLZsPyI7n16t
FB9AI+t1RoYEl/e1QguPS59UxuWtDQAALcbdwYSdr1BVJx1BfZ3QvK45wl6+ Q/zrNPwT9hKX
771CyNMUfD+8stq3+6nLT5VO26WFc7GU+So2ASKRCKmpqdDV1YWlpSUqW5t/ luNLEkXD1NIW
UqlU7nYNDQ0GP4iIVBQDIEREKiRDrAmxBGjdqAagIYW+jhYuz3VGo2XhQppz MxzRyO9KkfI3
MjLCmNEjsWHTZgCARCLByjXrcODAIbxLTkaHdm2xZNF8GBgYAAAuhv6FRUuX IyIiElZWlvCa
OB4D+7sDANLT0zEvaCFOnPoDANC9a2cEzp0NbW1tAPJHT+Rc51jDBbNnzcS2 n7cjNjYO/z55
iIyMDCxbsQq/HzkGsUQMr4kTMGbUd0rVNbcr165h88Z10NfXBwCYm5mhW5fO 6Nals5CmoDyz
R85k/8uRIERERESqbf73wfimWV0AWTEP6Z2+6DTxCABAmhKBTt8dBDSAo5ub oc13Vz+prM7+
j/HHktq4G7MP1Vz08k135+p94BMCIAGbQoXXizxdVbr9G3zbSmGaO39eKpay XsUm4MWLF6hS
pUrW+dbQQHx8PAwNDWFioPNZji9JFA0NDY08QRAGP4iIVBsDIEREKiRDogmx RIq/bz+FnaUx
tIK7oLXPXGTEbYc4JRUJz6NRrVVvPNneEUB2x1sDNb9TblTI27dvsWPXL/jC JetL/c1bfsA/
/zzEiaOHYWRkiMD5i7Bk+UosDJoHAJjmOwMLFwTi2zZuSIhPwPqNm4UAyMrV axETG4sL505D
KpXCb7o/Vq1ZB/8Zfkof792793Di6GGYm5kBANau34Swp09x8tjv0NfXx7oN G4W0iuqa29cN
G2JmwFx8N2wIvvjCBTo6eW+ECsozPOwRH4FFREREVEZMXfo7HB2r4f6TGEjx YdCH/ia8X90V
ADBgzDL89uMMQAp0nnirSGVkj/zI1tn/MbCkNjb87wdUrKgFaUYqEt68x+3H MXgV8wbxr99D
w8b+k4+ttnMVPH76EgCw6rd/hPUSsRgZGRKIMzIgzhBjwYSWpX4eTu0+qDDN tgMxAIDR7q2K
XI5IJEKFChUQE5OVV8WKFVGpUiXo6uoi4mU0YmNj8f79e+jp6cHa2hoOVWyK 5fhyB0EY/CAi
Un0MgBARqZCMTA2IJUDT+k4w1tfCw9NARcN6WZ16Q6CK1YeEbQfL7HdtYwfU Gnkm33xzzgNi
aWmJwwf2AQD2HziInT9vg42NNQBgut80dO3eWwgq6OjqQBQnQlJiEuzsbLF0 8QIhn6PHT+LX
PTthYZ41zHzunAAMGjq8UAGQ2bNmCMEPADh85Aj27Noh1GdOgL+wTVFdc9uy aQO+/+FHzAiY
g8jI57CwMEfH9u0x2dsTJibGRcqTiIiIiFTPzWu7sWXx1Hy2RmJvYGVIUyKQ +l6M3tPuFqmM
y1sboE7rjqjyRVY/PPP1dQBAO49RwL6xSK59R3gEloWFKf4Je4nwV2m4Efv+ k48vO/gBAD79
66j8+egytJ/CNMoESgqSmpqK169fC++NjIxgZmaG6OhoREREwN7+Y+ApIiIC AIo9CJL9moiI
VBsDIEREKiRdoglJphQ37z9D26Y1kZkpBTJSPozhB6AhBaQaH/6F8DxjSaa0 wHzDwx5BKpXi
+YsXmOE/G//88whVKldGbGwc2nXsIpM2uzMPAN9vXI8Nm77H2g0bYWRohLmz /dH22zYAgISE
BFSrWlVIW61qFSQkJBbqeK2srGTei0TxqFa1ity0iuqam7GxEWb4TsMM32mQ SqUID4/Ajz9t
h9fkqdi946ci5UlEREREZc+gwFf4OcAG/Wc8+KR87J3qQfTkME7+sh8AMGKm L3av3ozwBmdR
N7+dMjM+qcxFnq4I2BRa6MdfxcTEYPjIsbh+40a+aZo0bozgU8c+S5tb63ze cyqVSmFsbAxt
bW1UqFABxsbGsLS0xNOnT2FgYICYmBhkZmYCyBodEhUVVWwBEICBDyKisoQB ECIiFSLO1IAk
U4qv6lRHJgCJBEDGG0AqFYIdHwMfGlnrs9MpoKGhAftq1bB21Qp0790PrVo2 h6WlBX4/sB/W
1lZy96lf70ts27oZUqkUF0P/gt/MANy48hcAwNzcHC9evoTDh19XPX/xEmY5 RnNUqFBBmJAQ
AJKSXiuso6WlBZ6/eInqjg5ytxVUV0XHXr26I+bNmYX6XzcpljyJiIiISFX6 0FoK01RznfXJ
5byOvIeTvxxDr8BHOBLogh1LV2KFeBcKGu+gkSku1mNVdk4QGxsbHDtyEDP9 A7Bj1y95to8Y
NgRLlyz6bOdE8zP/psjJyQkxMTGoUqUKdHV1oaurC21tbZibm+Ply5d4+/Yt UlJShCBIzvsU
IiIqXzTZBEREqiNTqoFj67vg2PouePrvC0gkmUBqApCWCKR+WNKScrzOei+R ZCpdho2NNZo0
+hpHjp3AkEEDMTNgDiKfP4dYLMb/njzBpCk+QlrvKT54+vQZMjLEkEqlyMwR aenetTPmL1yC
+IQExCckIGjBIvTo9nE0hUvtWvhh289ITU1FbGwcZs8NVFi3vr17IWjBQsTE xOK//95iwaIl
wjZFdc1t4OBhOHHqD4ji4yGRSBAdHYOly1ehQf36SudpbGyEZ/+G88IkIiIi UmFpGRUgyUSB
S1rGp/3+s8W4OzjyyzF4LH8mrOsV+Agrqo5B09huAIB7m6uibrK/zH5SSXqx HGPAplAh+FHb
+eOI6UU7byNo2zXM+f7vPPvoaGtjzaoVWLNqBXS0tfNd9zloKVg+lZWZMerX r49Xka9w8uAt
bFt3Aft+voD4mHjUqlULNjY2MDExgb6+PvT19SFR5hdjRESkljgChIhIhYyY tlfm/e1MZAU6
NIRnYOWY+/zD47AAZGYWrpwB/d2xYtVqHD18ABrYhsHDvkNcnAiOjg7wmjhe SNexfVuM9/RG
5PMXcHR0wOpVy4Vtfj5TMTdwAdzadgQAdO3cCb7TpgjblyxagBn+Adiw6XtY W1thwtgxOHW6
4MnaJ3t7YsmylejcvSekUim8PScK28aPHVNgXXOb5DURu37Zg9lzA/HuXTIs LS3g2qoVNq5f
o3SeY0ePQo/e/ZCSksLJ0ImIiIhUVJq4IsRiqcI0n6pX4CO8T0kXXl/e2gCd /R/jjyW1AQBx
0Wm4cf4I4Boo7KMhKZ4RINmjPQI2hcrMCRIwvKHie4xhQ/CFSy3MnDUHSxcv QJPGjT/7OanU
NSDfba9PFs/Ik3u37+FKSBxq13OCdeWsdVdCsgJUNpVtkJmZieTkZMTGxqJh w4b8oBARlVMM
gBARqbDMzEwg/T98fO6VNCsYIpXmTZcPeV/cu37TEq7ftAQATBg/FhPGj5W7 b7euXdCtaxe5
23R0dLBsyUIsW7JQ7vY6X7jgxNHDMusGDxpYYL0qVqyIubP9MXe2f55tmpqa BdY1txbNm6FF
82YFplGUp+eEcfCcMI4XIhEREZEKS83QRoZEqjBNccoOfmRL3u+C4evDhWCI QJpRrOUWdi6Q
bE0aN8afZ0+X2DlJ/mMRwlPkb3uZWjxlPL7/GhW09fD0cZSwroK2Hu7dTEIX hyp48+YNUlNT
0bBhw2Kd/4OIiMoWBkCIiFRYo0kXcHqNm8J0zaaGsLGIiIiIqFxKzaiIDIni NMXl8tYGaOcx
CpmvrwMAOk7YBQD478mavIkzizcAouwcIKVNC4Cz/uctIykhHZEReecZtHeo BFMjPbRu2ZQf
DiIiYgCEiEjVMbhBRERERJS/NHFFhSNAiuMRWNlajLuDvYEuGDQNSJcY4OC6 FcK2F43O4mnI
A8QnpSA9XVJsj8DKGfio7VxFeAzWop23Ic7IgDhDjAUTWpbqebjz5yXhtUYJ zDgrTs+EiZme
3PVERETZGAAhIiIiIiIiojIr/cMk6IrSFKdegY8+BEGy5qy7Uf0Y6jhYAP8l y6Tr29r5k8vK
OdKjKHOAlIQuLbKOc9uBGABACcQ/8E0HG/y64wmcv7AU1j19KELnEVX5oSAi IgEDIERERERE
RERUZmVkauHXgycVpNIq9nKzgyAAcPH6bVy8Lru9Z+smmNrbsVjLVOXHXmU7 tfsgTpVAOV9+
WQMYAZw5/gqJCckwMzfAwBE1s9YTERF9wAAIEREREREREZVZ4we0KLWyewU+ yvqXpwEAMNq9
VYmW9+WXNRjwICKiAmmyCYiIiIiIiIiIiIiISN0wAEJERERERERERERERGqH j8AiIipFoWeO
shGIiIiISG31GDSOjUBERESlhgEQIqJS1LnfcDYCERERERERERHRZ8BHYBER ERERERERERER
kdphAISIiIiIiIiIiAQN6tfD29cJbAgiIirzGAAhIiIiIiIiIiIiIiK1wzlA iIiIiIiIiKjU
hJ45ykYgtebaoScbgYiolDAAQkSkps5836HA7R0mnGEjEREREVGp45fDRERE 9LkwAEJEpMba
T7wgd33YaW+c+b5DsQRBtHX0kJ72vsj7h4b+hRHfjcTLly8/KR9SPZ96bXyu vNSlzcpLmxAR
EREREREVFecAISJSU2KpBjKlUrmLtoE5HKrXVThKpCTM9PfH+nVr+EVuOaSt o/dZ9ytq/qS+
1w4RERERERGVLwyAEBGpKbFEE5lSyF20DcyFIMixDZ1LrE7yvrR88OAfdOzY USXa7OHDh6hV
+4tyc42U5PHKO/dFDXopu1/OdEX5wrysXQ8566uto4f6DRpCKpXKpJFKpahX /yuVCiAUpS4M
mBIREREREZEy+AgsIqJSdjE0FO3bKx8AOHs2GK1dXRWmy5BqQiKRXRfxbC4c nObD7EsvYd39
/5Vu8CE1NRUVK1ZUiXNx7vyfaN++Xbm59srb8ap7++Sur76+Hk6dOoWuXbsK 644fPwEDA32e
XCIiIiVlZGRALBaX+3aoUKGCyvTZiYiICvX/MDYBEVHpau3qirNng+HhMRgH DhyAm5tbnjQh
ISFwd3fHvn17lAp+AECGRAOZOd7fufE3zMyA2zf+RoPGLWXSFURbRw+L3IFP pAAAIABJREFU
Fy/C2jVr8S45Ge7u/bBxw3ro6OjkSRseHo5pPn64ePEiMjIy4Na6NX76eRus LC2FX3ln/5ue
9l7uutTUVEyZOg0HDx4CALi798Oa1augq6srpF2xYjnWrl2HqKgopKWmQFtH DxvWr8Oq1WsQ
FRUFZ2dnbNq4Ac+ePcPSZcsRGRmJL75wwfaff0LdunVlji3nL8nPnzuP774b kW85EokE8+YF
YvuOHXj3LhndunXFlu83w8jICABwOjgYM2fOQlhYGGxtbTHLfyZGjvwOAJQ6 rty/as+5Tl59
MjIyMGtWAPbs3QuxWAx/f39MnTIZABTWVd7xFrYNFdU557rc51ne8Sl7neXc r6A2yE4nr/xv
27bD+HHj0L+/u5Dvixcv0KqVK+7duwMTE5NPbh9F5zwtLQ2eXt44ePAQjAwN MWXqFJnjVOYc
5pSzvgDg6+ODFStXyQRAVqxcCT9fXwz0GAQASrWDonZW5treuGE9lq9Yiejo aHzxhQu2/fgj
6tevl++1UdDfEnnXTn75K9OO8j5bRERE2SpWrIgXkf/ixuW/EC+KgyT3L4zU mJaWFiysrNG4
eStUd67Fi4GIiMokBkCIiFRAa1dX7Nu3B+7u7nmCIEUJfgBAhkQTEsnHx9+Y mQXj8GEd9OkT
DImkhUw6RS79dQm3/+8WAGDM6LEICpqPxYsX5UnXq3dfrF27Gnv37EZ6ejrm z18IP7/p2Llj
u/BFdM4vx+WtmzcvENFR0Xj48AGkUilGjRyNwMAgLF26REhz/fp1XL92FZaW FsK683/+iT/P
n4WZmRnWb9iIHj17oUOH9jgT/IewbsJET/wVelHuMaanp+Pvy5exc+eOfMtZ umw5bt/+P1y/
dhXGxsaYOs0HswJmY8P6dQCAkSNHYdPGjejSpTPi4uKwcNFiIQCizHEpkrs+ CxYsxMOHj3Dj
+jUYGBhi4cKFQlpFdZV3vJ/ahvmRd54/5TrLqaA2KKj8mTNnwNd3Ovr16wtN zazPwMJFi+Hl
7QUTE5NiaR9F5zwwMAjxong8efIYUqkUo0eNkam3onOo6Prt3bsX5sydhytX rqJ582a4GBqK
hIRE9OrVU+l2UKadlbm2L4aGIvTiBZiYmGDN2nWYMHEiLv99Kd9ro6C/JfLk l7+y7SjvbwoR
EREAvHoRiYvnz6BV2y6wq2oPTU2tcnPsmZkSRL2IROiff0BHRxeVq9rzgiAi ojJHQ5r74dBE
RPRZHdu7FT0GjQMAZKSnymy7GBoqMxKkqMEPAPhpWU/0nXQcAKApvomNG8/C y6u98G9mhUYA
gEPru2PUjKP55qOto4dHDx/AyckJAPD06VO079AJ4f8+Fbbn98V2SkoKatSs hVcvX+SbNvc6
e4fqOH/uDJydnQEAYWFhaN+hEyLCnwnpIyP+ha2trUwe0VGvYG5uJpRbydQ8 zzoLS2ukJL+V
W9fQ0L8wKyAAl/4Kzbcc5xq1cOrkcdSsWRMAEBsXh0ZfN8aLF5EAgOpONeDr Ow09e/RA5cqV
ZfJX5rgUjQDJXR/H6s44E/wHatSoked4FNVV3vEWtg2VqbO81/mlVfY6y/m6 oDZQVH6Llq0w
ydsbAwcOEMr758E96OvrF0v7KDrnDo5OOH/ujHDMYWFhqFO3nlBPRecw5zHJ q2962nts2/YT
Tv1xGocPHUC3bj3Qu3cvjBo1UmbfgtpBmWtNmWs7JjoKZmamSl9Hhflboih/ Zdox92eLiIiK
T0VtXaEP7NrhYxA+9MxRmfeq6rc929Goxbdo2LhpuT2Hkf8+RfDxA+g/+Dte 0J8o9MxR4V6Q
iIhKBidBJyJSITlHggQGBhY5+AEAtb/xx8M7VxDzPFAIejx4kCEEQWKeB+Lh nSuo/Y2/wrwc
HBxkXsfGxspNd+XKVbT5ti1MzSygraOHSqbmiI9PKFS94+Li4OjoKLx3dHRE XFycTBp5X1Rm
fwkNQPjiNve6gp7ffP78ebRr27bAcqKiolD3y/rQ1tGDto4eqla1R5xI9PEG ef+vOHv2PBo1
boJatb/AyZMnC3VciuSuT0xMjEyehamrvOP91Db8VMpeZ8q2gSL+M2dg4aLF kEgkCJq/AL6+
04TjLo72UXTOY2NjZY4593EoOoeKrl8AGDp0CG7dvIn9+3/D/fv3MWTI4EK1 gzLtrMy1nR2c
UPY6KuzfkoLyV6YdGfwgIqL8iGKiYW1XuVy3QRV7B4hionkxEBFRmcQACBGR iskOggQFBRU5
+AEA5uZnhMdeZQc/AAhBkMOHdWBmFgxz8zMK84qIiBBeR0ZGwsrKSm46j0GD MXHCBESEP0Na
agriRbEo7EBDKysrmfLCw8Nh+eG5/5/TufPn0VbOF8g52djYICL8GdLT3gtL zvkCGjX6Gr8f
PoioVy+xdu1qTJjgqfRxVahQASkpH/NKSEhUWGcbGxuEh4cXqa7KHK8iRalz cVxnyraBIt26
dYO2tjZmz56Dq1evYczo0cXaPorOubW1tcz2nK+VOYfKXL86Ojrw9PLEdyNH wcvbS+6cKgW1
gzLt/Dk+s8Xxt6Qo7UhERJSbRCIpV4+9kkdLq0K5mvuEiIjUCwMgREQqqLWr K5IS44sc/ACA
hIQOSEzsiD590rBx41nUrVsRAFC3bkVs3HgWffqkITGxIxISOijMy9dvBkSi eIhE8fD1nQ6P
gQPkpktNfQ9dXR3o6uoiIiICEyZ6ymyvVMkET548KbCs/u794OPjhziRCHEi EaZN88WAHBM0
F6fsiZeTkl7jyZMwNGtW8KMNxo4dgwkTPPHvv/9CLBbjwYMHGDxkqLB9yNBh ePToETIyMiCV
SiGWiJU+rnr1vsTqNWuRkpKCqKgoeHp5Kaz/sKFDMGXKNLx69QqvX7+Br6+f UnVV9ngVKUyd
lTn3yl5nyraBovI1NDTgP3MGVq1eg1n+M6GtrV2s7aPonA8c0F845jiRCD4+ foW63rIpqu90
P1+kJL+Fn6+P3O35tUP250NRO3/qZ1beuVH0t6QwlG1HIiIiIiIiUj8MgBAR qSgDA4NP2v/S
6dWwd2kGI+t5wmOvsoMfXl7tYWQ9D/YuzXDp9GqFebVs2QJffdUQNWrWgpm5 GebNmys33Q9b
t8LXbwYqmZqjXfuOaNGiucz2qVOnolnzljJfrOY2f34QrKyt4OJSBy4udWBr Z4ugoMDP2tYh
ISFo2aIFKlasWGC66X6+aNGyBTp07AyTSmYYOmwEevX8+OzqHt27w73/QFQy NcesWbOxI8eE
zYqOa8v33+PYsWOwsLSGa+s2aOPmprDes2cHoHbt2vi6UWPUql0bVatVU6qu yh6vIoWpszLn
XtnrTNk2UKZ8LS0tODs7Y+jQIYW+HhRRdM4DA+fB1LQSnGvURMOvvoZra9dC XW/FWV957aBs
O3/qZ1beuVH0t6QwlG1HIiIqHxxruLAR6JNVHfu33NdERKR6OAk6EVEJK2gS 9OK0cPYADJu2
X3ifIpqPw4d10KdPGvQtP36xvGv1AMxeuD/ffJSZoLis8/TyRu3ateCtxKgL Hu/nUVrXWZ++
7hjQ3x0DBvQvs9dDcdRXXjsQEREVh+KeBN2xhgvCwx4VuT6F3X/98gUYM3V2 uZ8vav50T0ya
PocX9AdVx/6NFz+0zPNaEU6CTkRU8iqwCYiI1JMkUxPbV3oI79t3n4I+fYKR mNgR+3d65EjJ
wYDnzp2Hl+dEHm85kpmZie3bd+DZs2dwd+9XptvnU+pbUDsQERGVJnkjNcLD Hn1S8IPKjzbt
O+PC2T8+KY8twa+w9PdIzOxtj/EdK7NRiYjKKAZAiIjU1LzF+2Te/335KgBA KpXm2Vbe/e/x
Qx5vOaOrZwB7e3vs3fMLNDU1y3T7fEp9C2oHIiKi0sZgBxVVeno6+g0cgoO/ /lKk/TOlUuy6
GIN5Axyx7WwUxnawg6aGBhuWiKgM4p0uEVE50bJFM9SuNRctWzQr3M2Dmj/+ ilTkJrWEr7P0
tPcIe/IYjRs3KvftznYgIqKyJOfIEMcaLti7bz9aubVFzS/qoWuP3nj46LGw PS09HX4zZsHl
y6/QpPk32PrjTwXmR2rUx0lPR3JyMsZOnFSk/UMevEYlfS1818YWZoYVEPLP azYqEVEZxQAI
EREREREREZVJV69dx6H9+3D31jV07NAes2Z/nOtuzdr1SEhMxF8h53Dy+O+4 fOUqG6yc0Pgw
WkNfXx+Ll68u9P47L0RjxLdZ874Mc7PFzj+j2ahERGUUAyBEREREREREpHIc a7jILPLMD5wL
a2sr6OnpYezokfjn4cfHZh05dhxzZ/vDwtwclhYWmDcnIM/+fMyWetLS0oKW lhbs7OzQqFEj
nL/4t9L7Po9Pxd2Id+jZxBIA0KOJBe5GvMOL+FQ2LBFRGcQ5QIiIiIiIiIhI 5SgTnKhUyUR4
raurC7FYLLyPj09A1SpVhPfVqlZho5YThoaGsLCwQN26deHk5AQne+UnMd8d EoOEdxlwnnhF
Zv2uizEI6OvAxiUiKmMYACEiIiIiIiIitWNhYY4XL1/Cwd4eAPDi5Us2Sjlh b2+PmjVrws7O
rlDBjzRxJg5cjsOVJY1QxVxHWP8iPhXdF9+Db89q0KnAh6kQEZUl/KtNRERE RERERGqnZ/du
WLh4GRISExGfkID5C5fkScNJ0NVTrVq1ULNmTTSoW7tQ+x27Ho8G1Y1kgh8A UNVCF/UcDHHs
ejwbl4iojGEAhIiIiIiIiIjUjs/UyTAxMUZL12/RuWtPNGvahI1STpiZmaFX t06F3m/nhWgM
d7ORu21YaxvsCuFk6EREZQ0fgUVEREREREREKiW/+T9yrpeXJuc6bW1trFq+ FKuWLxXWjRsz
SqlyqGwbNXxwkfY7EVA/323t6puhXX0zAMCLH1oK63O+JiIi1cMRIERERERE REREREREpHYY
ACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdBkCIiKhc0NbRK5P1UtV6 ExEREZUHWlpa
yMyUlOs2kEjE0NLS4sVARERlEgMgRERUaB06dmYjEBEREZHas7SxRWzUq3Ld Bi8jI2BpY8uL
gYiIyiQGQIiIqFAuX7km86+ytHX0hMXSygYegwZDJIpX6WMVieJRpUo1pKWl yazv595f5n1q
aioqV6mq8sdDRERERIXT0vVbhJ49jmdPHkEiEZerY5dIxHj25BGO/rYLLV2/ 5cVARERlUgU2
ARGRergYGor27Tsqnf7s2WC0dnUtdDmBgYFwc3NDYGAgzgT/Uah909PeAwDi RCJMnz4DEz09
ceC3/SrbppaWFmjarBlOnDiJvn37AAASE5Nw4sRJxMcnwMLCHABw9OgxNGvW HJaWFrwQiYiI
iNRI5ar2cP22Pc6f/B2iuBhIJOXncVhaWlqwtLLBN27tULmqPS8GIiIqkxgA ISJSE61dXXH2
bDA8PAbjwIEDcHNzy5MmJCQE7u7u2LdvT5GCH3uifoWbmxvsh9vDDW7YE/Ur BtsNLHQ+VpaW
WL1qFZycawjrJBIJ5s0LxPYdO/DuXTK6deuKLd9vhpGREYCsURZTpk7DwYOH AADu7v2wZvUq
6OrqAsgaYbJ48SKsXbMW75KT4e7eDxs3rIeOjk6e8hWVldPwYUOxffsOIQBy 5eoVZGZm4urV
K+jWrRsAYNeu3Rg3bqxSdVyxYjnWrl2HqKgopKWmyJSVlpYGTy9vHDx4CEaG hpgydQovbCIi
IqJSVKGiNr6o9zW+qPd1uW4HcUY6xBnpvCCIiKjM4SOwiIjUSGtXV+zbtwfu 7u4ICQmR2fYp
wY/LV66hQ8fOiNwZCfvh9nCMdIT9cHtE7oxEh46dC/04LADQ0NCQeb902XLc vv1/uH7tKl6+
iISenh5mBcwWts+bF4joqGg8fPgA//xzHy+ev0BgYJBMHpf+uoTb/3cLT548 RlxsHIKC5sst
W1FZOXXu3Am3b99GnEgEALhy+Qrat2uHy5evAACioqJw//59dO7cSak6Xr9+ HdevXc0T/ACA
wMAgxIvi8eTJY9y8dQMhF0J4URMRERGVInFGOlJT3pX7hcEPIiIqqzSkUqmU zUBEVHKO7d2K
HoPGAQAy0lM/SxkXQ0NlRoJ8SvAje8Lz7JEfjpGOwrZw+3BE7owUgi0FPRJL W0dPeASWSBSP
mf7+eP36DQ4d/A0A4FyjFk6dPI6aNWsCAGLj4tDo68Z48SISAGDvUB3nz52B s7MzACAsLAzt
O3RCRPgzIf9HDx/AyckJAPD06VO079AJ4f8+zVO+orJy8/Hxg72DPSZ5e+Hb tu2weNEizPT3
R8iFP7Fs+QrExcZh1aoVStUxMuJf2Nraym0XB0cnnD93RjiGsLAw1KlbT9hO REREVNZU1NYV
+sCuHXoK60PPHJV5T1QehJ45KtwLEhFRyeAjsIiI1FDOkSCenp7YtGlTkR97 dSb4D1y+ci1r
7g+4AcMBx0hHmeBHYGAgWjRvqjAvbR09AICxsTHatv0WmzdvFLZFRUWh7pf1 ZdLnHCUSFxcH
R8ePwRdHR0fExcXJpHdwcJB5HRsbK7ceisrKbdiwoRg9ZgzGjxuLpKTXaNas KRITk5CWlobd
u3/Bnl92K13HnMGP3GJjY2WOIWdeRERERERERERUOAyAEBGpqewgSPv2HYs8 4Xm2Fs2b4kzw
H9gT9Ssid0YCwyE8DuuMv/IToRc0ksHGxgaX/roIOzs7udutrKwQEREhjI4I Dw+HpaWlTJqc
2yMjI2FlZVWksnKrX78egKy5Ppo0aQwAaNKkMTZ/vwW6urrCdmXqWBBra2uZ /SMiInghExER
EREREREVEecAISJSY61dXZGUGP9JwY+cBtsNREhIiDDyoygToOdn7NgxmDDB E//++y/EYjEe
PHiAwUOGCtv7u/eDj48f4kQixIlEmDbNFwP6u8vk4es3AyJRPESiePj6TofH wAFFKkueoUOH
Ys7cuUJbtnZ1xYIFCzFsWOHqWJCBA/oLxxAnEsHHx48XMREREak9DQ0NLlzU eiEiotLDESBE
RGrOwMCgWPMLDAwUluI03c8XK1auQoeOnREdHY2aNWtilv9MYfv8+UGYPGUq XFzqAAD69u2D
oCDZOrRs2QJffdUQ75KT0bdvH8ybN7dIZcnjMXAg/P1noXXrrACIq+s3SEtL g8fAgYWqY8Ft
Ow8TPb3gXKMmjAwNMXXaVPxx+jQvYiIiIlJr+vr6bARSa8nJyWwEIqJSwknQ iYhKWElMgv65
dejYucAJz0tDzsnEiYiIiEg1KDMJOgMgpO5SUlKE656ToBMRlSw+AouIiApN 1YIfRERERERE
REREufERWERERERERERUavhgCiIiIvpcOAKEiIjUAh9/RUREREREREREOXEE CBERERERERGV
mtIYAXJnSyeZ9w3Gn+aJUGF6RqZ4/zaJDUFERIXGAAgRERERERERlRsnfOuh 28p7CtdR4TBI
QUREqogBECIiIiIiIiIqF66vbIXuQQFA8n6kvk5FamoqUl+/xped++L6ylZ5 0jfxvVRgfgV9
6V9SAQFVCTww+EFERKqIARAiIiIiIiIiKjUl+QisNEgA3QYAAF0bQDfHNge3 gTJpQ9eMUKpu
BaUpqWMrDxPJl4djJCKi4scACBFRKYp88oCNQERERERqy7luI9WqUDqA1Bil kiamORRbsfrG
Zli/ZhVWrl6L6JgYuLjUxg+bN6JevS8BABkZGZg9NxB7f/0NYrEYM6f7YrK3 JwAgPCICfjNm
ITT0L2SIxXD9phW2bd0MS0tL6BubCfkDQMp/iQAAiUSCoAWLsGPXL0hOfoeu XTpj04Z1MDI0
BAC8f5+KSVOm4fcjR2FoZIhJXp6YPTdQ2D81NQ3T/Kbj8OEjAIC+fXtj1fJl 0NXVEcpbtmQR
1m/chKioaCS/SYC+sZmwf3Z9clK2bmlpaZg0xQeHDv8OQyNDTPb24geJiIiK jAEQIqJSxF8x
ERERERH7xCXXJ04FgNTXMuvObF0qvK6oawQTuy+gbWAK53q18fDEfABAenIS 6vdfXej659wW
+tclnD/zB0wqmWD9hk3wnDQFoRfOAQAWLl6Kh48e48qlEBgaGGDx0uXCvn37 e2D1imXYtf0n
ZGSkY+HipZjuPxs//7gFyW8SYGBijuQ3CTLlLV+5Grf/7w4u/3UBJsbG8Jk+ E7PnBGLt6hUA
gKCFi/Dmvzd49OAOAGCC12SZ/QMXLER0dAzu/d9NSKVSjBk/EUELF2HxgiDh eG7cuInLoRdg
YWEh7Jf9b3Z9AGD7zl04eep0Ieq2GKL4eDy8fwdSqRRjJ3jy3omIiIpMQ8r/ gxARlahje7ei
x6BxAICwe9fZIERERESktmrUayL0gV079BTWh545KrzX1tYusfqcmt0Y3T0n Ce+Pb1qP7j7T
hfeaunbQ1K0CjYrGMvs9+fsMqjUdkCe/nMGHgrYZmJjjZcRTmJqaAgBS3r+H bRUHvEmIBQDU
dPkSJ48fQQ1nJ4XHkPL+PVzqNkDks//lWweXug1w7PeDqFHDGQAQFydC05bf IDzscdZ5camL
M3+cgKODAwDg2b/hqPdVIyEf59p1cPrkcTg7Vc+6b3n6DF2690TYowdCmU8f /wNbW5sC2+JC
yEUEzAnEmT+Ow/DDCA9l6nb65HE4VXcUym7wdZN827ksSE9PF6777HtBIiIq GRwBQkRUiqRg
DJqIiIiIqKSkpmfgwzgQHN/0E7p7jpUdEVLRBhqaeji+ub3Mfu3H3pSbn6am JiQSCbS0tGTW
SyQSaGpqyqzLDn4AgL6eHsRisfA+JjYWjg72csu4eu065swLwt2795CckgIA 0NDQKPA4o6Kj
0aBRU5l1OfeJjY1DtapVhff21arKpI2LE8nUx9HBHnFxIpk0OYMf8jx+/D9M meaL40cPC8EP
ZevmYF9NpmwiIqKiYgCEiKgUcRAeEREREbFPXIKToL9LB1Jf4/hPh9B91GAg NfXjRi0dICMd
kEhw12gdmkt9AQBXNFaiXT51rFK5Mv55+Ahf1q0js/7+g39QtUoVmWOTd5zZ 62ysrREeHgFn
OSNAhg4fiSWL5qN9u7YwMjLCu3fvYFvVscC8bayt8ee507CztZVbnpWlJSKf vxCCC5GRz/Ns
j4iIRPUPozDCwyNgmeNRV4qORySKx8Ahw7Bl04Y87aCobtZWVjJlR0RE8t6J iIiKTJNNQERU
ujd7XLhw4cKFCxcuXLio66Jq3ryTfAh+9EXWSJCPi6aeOTT1LAFIAABtxzxA 2zEPCsxv1MgR
mOg1Cddv3ERaWjrS0tJx7foNTPSahDGjRypdr8GDBsJn+ky8iorCmzdvMMN/ trDtfWoqdHR1
oaOji4jI5/CaPE1mXxMTE4SFPc1TL+/JUxEeHgGxWIx/Hj7E8JFjhO39+vbB rIA5SEhIQEJC
AmbOmi2zf98+vTHdfxZEoniIRPHwmzkL/fr2Ufp4BgwaAt9pU9CsWVO5bVZQ 3dz79cHMWbMR
H58AkSge0/1n8caRiIiKjCNAiIhKNwLCNiCluDRsiUe3/2ZDEBERkRp2iUuu Tzx2xyPsn9YI
v6zbl2ebY+OucGxki92332JE34+PwBrRtz1W/XoW0wY0z7PP1Mne0NfXh/fk qXj67BkAwNnJ
CSO/G46xo0cpPWJi5nRfzJ4biGYtW0MqlWKGn4+wbfOGtZg5azYGvxgBO1tb TPL2xKHDvwvb
J3t7opVbWyQnJ+NtUtZjqqZNmYQ169aja4/eiI6JQQ1nZ0z3nSbsMztgJiZP 8UHtOvVhaGSI
iePH4ez5P4Xtc+fMgo/fDHz5VSMAQO9ePTBntr/Sx3P9xk1cv3ET4yZ4CduU r5s/Jk/xgUvd
rLpN9vJE8JlzHAFCRERFwknQiYhKWM5J0Mv7F9pxPudgtaodLwolfPF1Kzy8 dYkNQURERGWK
S8OWQh84v0nQK1RQrd9mrt5/Bb06tkJVC30AwIv4FBwJviQ3AKIunoSFoY/7 QDy4c4sX7WeQ
Pd8LJ0EnIip5HAFCRFSKynMMWvQu69ECcW/FsDTUUnq/Oo2+EV4bGRqgRbMm mD1jGsxMK5Wp
4/951z6s3bgFU7zGY+QwD14vRERExD6xinkRn6LWfbGZAXMw088Haenp8A+Y i25durC/SURE
aocBECKi0rzZQzm+wQgMQYgb4BYYAunKbwu164OboQCAxMQkLF+7CYGLV2Dd ioVl5tAzMzPx
68HfMd3HG7v3HsDwIf2hqanJ64WIiIhIBUzt3wxrfruUZ526sa9aFV81bobU 1DR06dwJs2fN
4MknIiK1wwAIEVFpKqe/sKp48Q1C3AAPw4bY53YbHiGvkdHapNDtZmZaCf4+ 3mjXzV1Yl5mZ
ifXfb8OhoyeRkvIebVxbImi2Hwz0sx5hULdxa0yf6omde35DnCge96+H4K/L 17Bq3feIeP4C
VpbmGDdyGPr26gYASEtPx+IV6xB89gIAoFP7NvD3mwwdbW0hv7kzp2Hbzj2I EyXAuboDFs7z
R+2azvlW/9LfV2FibITB/fvg+MlgXLp8Da4tP95Up6dnYP6SVTh97gIM9PUw YsgAmeN++SoK
S1dtwPVb/wexWIwmX3+FxYGzYGZmys8UERERUTFQx4BHbhPGj8WE8WN5somI SK1psgmIiEqP
VFq+lvhkKeL9LmDfu9vwMGyI6EbGWUGQd7cR73cB8clShXnkbjdAQ2bdDz/v xj+P/ocDu7fh
YvAR6OjoYPX6LTL733vwCAd2b8O9ayGQSoFZ8xZh4tjvcC3kNHZs3YC79x8K 6ddv3oY4UTxO
Ht6DE4f2IDomDhu+/0kmv+u37mD3ts24fP4k2rq5InDRigKPYd/BI/Bw7wOp FBjYrxf2Hfhd
ZvuGLT8hMek1go/+ikN7t+Pajdsyx+g51R9DPNwRGnwUF08fhYN9NSxbs6nc XU9cuHDhwoUL
F9VflOsTS7lwUeuFiIhKD0eAEBGVagCk/HSGE2eEAIAw8iO6kTGPaX9AAAAg AElEQVQAZAVB
bmaNBHELDEECALNlbkq1W1LSa6zasAXNGn8trDt89CS2rF8JK0sLAMAUz7Ho N3gkAqZPFfb3
mzIRlSqZCPvo6OhAFJ+AxKQk2FhbITDAT9h2Kvg8tm9ZC9NKWXOMzPTxxqiJ UzHNe7yQX8D0
KTAxzjqe4YP7Y8tPO/M9ty9fReHBw8dYvXQ+pFIpOrb/Fqs2bMHLV1GobGcL ADh5+ix+3rJO
KHPGNG9cch8q5Pn7rzuE/LS1tTFpwmh07DWQN1dERERERERERDkwAEJEVIrK 0xfWpktbIylV
A26BIVmPvbqZFQSxvfkf9r27DbcQAIFuMNVV/Cupek3dAAAGBvpo3qQR5sz0 EfaJFcWjR/+h
Muk1NDRk8rQwN5d5v3pJELb+vBvf/7gdhoYGmD7VC61btQAAJCQmorKdrZC+ sp0tEhKTZPY3
NjKSCaZIJJJ8j2H/oaNISnqNxt90yLN+qtc4AEB8QiIq29rIlJnzerlz/x+s 3bgVj5+E4f37
VLnHSERERMQ+MREREZV3DIAQEZXu3V65OlxTHSmwxBUef7/LegzWzYbC47BS lxgCyIQy83zf
vfJnvm1paWGO3T9uFEaAyG3rXO1ex6UW1q9YCKlUiktXriNw8QqcP9EcAGBu ZoqXr6JQrUpl
AMDLl1EwM61UYH75rUtLT8exk8H44/Be2NnaCOtfRUVj8ChPTBwzAjra2rAw N5Mp89WrKJk8
/WYFwnfSBLRs1gQGBvpISXmPFu26lds5ZYiIiIiIiIiI5GEAhIioFElRPr+w ft/SAG7+yHrs
VQjwfokBUIi2KKjd+vXujqClqzBjmhfsbKzxb8RzbNvxC5YtmJPv/jPnLsTY 74aiapXKkEoz
IZZIhDQd27XB8rWbEBTgBwBYtmYDOrVvI5OHvPrIW3f67J/4sk5t2Npay2y3 s7NBHZeaCD53
Ad27dEDnDt9i5brNCAzwhVQKLFu7SSbPtLQ0aGtXREWdingZFf3/7N15uFV1 of/xz2E6TMo8
OaQoZqS3UnHCMkoBrRRFwSG14ZcDig2IOVwVHLrlmIlpNum9dR0qUUxLHBK5 pYlEN4fMa4al
gnAUFJkOcNi/P4gdB86Bg8A5sHi9fPbD3mutvfZ3fTmPD+w3a62M+94Pt+qf JwBgy9Z2mw4m
gUJbMO9tkwDQRAQQgCa0VZ/uP3ZABoydlIwdkFJp2Uabty+cdHxu++mdOW3k 6FS9+VZ2ft8O
+dLnT6r1ntXfP+Bj/TPq/DF59fUZ2fl9O+YbYy4obzPy9C/kW9eOyxHHrris 1sBPHpyzTvvC
WvdX37I7f3Fvzjz183WuO/boI/KDW3+azxw+MGee+vlcfuW3c9hRJ6Zd2zY5 5cTh+e0TT5Xf
N+bC0bnmOzdnxgVj071b13zuxOGZ+Mgkl48AAAAAWEVFybclAI3qvttvyZEn rrjXwx+feGSr
not5//67bPuNg/xQAAAU1F79Dy3/GfjgQUPKyyc/NKH8ut22HU0UhbbyDJDJ D00o/10QgMbh
DBCAJrS1N+htrujvrAUAAAAANgkBBKAp+fIfAAAAADYJAQSgCTn7AQAAAAA2 DQEEoAkJIAAA
AACwaQggAE2oFAEEAAAAADYFAQSgKTkDBAAAAAA2CQEEoAm5BBYAAAAAbBoC CEAT2qv/ISYB
AAAAADaBZqYAAAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEE AAAAAAAoHAEE
AAAAAAAoHAEEgCbzxOArTQIAAAAAm4QAAkCTeOLJp2r92lCtKtuUH92698wJ J342VVVvbjHH
ver4V30AAAAAsHEJIAA0jbGTMmnAil/X15LqRVlSvSjPP/9sKisrc+ZZZ21R h75y/Ks+AAAA
ANi4BBAAGt30cQ9n0oDkhPZ7Z9KAFa/fi+7duuW6a6/NI488Wl5WU1OTiy66 ONvvsGM6dOyc
z550ct59993y+laVbfKdG8al9y59Utm6bZLkwYkT85G99km79tumz26758c/ vrW8/eLFi3PG
iDPTtVuPdO3WIyPOPCuLFy+utb/vf/8H6bPb7mnXftvsu9/++dOfnlnvY5kz Z262236HzJ37
9hrLd9jhfZk79+11HhsAAAAA/yKAANBonnjyqTwx+MrcMX9aTmi/d2b22zYn tN87d8yflicG
X7nel8NKkoqKilqvv3XlVZk27Y+Z8tTv89qrf0+bNm1y4b9fVGubKVOmZMpT v0/14oVJki9+
8f9lzCUXZ85bVXnsN4/kqSlTytuOGTM2M2fMzJ///Fyef/7ZvPqPVzN27KW1 9vf45MmZ/Phj
mT1rZoYMGZIRZ5653sfRuXOnDB06ND/80Y9qLf/hj36U448/Lp06dWzQsQEA AACwQkWpVCqZ
BoDGc9/tt+TIE09PkixdsnirOe6VNzxfeebHzH7bltf1mjovd8yflgGTVrzu P/G8evfTqrJN
+ZJRVVVv5vwLLsjbb7+Tu3/xsyRJn912z68e+GXe//73J0lmzZ6dfvvsm1df /Xv5/X9/5W/p
1atXeZ+77LpbRo8elSFHHpntt9++1ufttPMuefSRh9KnT58kyUsvvZSBgw7L K9NfLu/vjZkz
0rlzpyTJwoUL07Vbjyxc8G6946/LkupFefHFF/OpTx+RF//y57Ro0SLLli1L 3w/umd88+nB2
3HHHdR4bAMDmpmWr1uU/Ax88aEh5+eSHJpRft9u2o4mi0BbMe7v8c7/y74IA NA5ngADQKPpP
PC8ZOyADJiV3zJ+WXlPnJVktfowdsNb4sdLKG4f3/eAemT9/fm666cbyuhkz ZmTPf/tweZsd
d9wps6uqar1/1fiRJD+76848/PCj6bfvftn9Ax/MAw88UF43e/bs9O7du/y6 d+/emT17dq33
r4wfSdK2bdssW7ZsreOv7x4gu+++e/b44Adzzz33JknGj78nBx54QHbccccG HxsAAAAAK7Qw
BQA0lv4H7p9M3D+9xj284jJYU/cuXw6r98SBDd7P2m4a3rNnz/z2fx7Pdttt 1+D99eu3T+4Z
/4uUSqU8OHFiTj/tjPzjH59OknTv3j2vvPJKdt111yTJ9OnT061bt002R2d/ eWQuv/yKDBt2
bMbdeGPG3XDDBh0bAAAAwNbKGSAANLreZw8snwkyYNKK1xvLaaedmhEjzsrf /va3LFu2LM89
91w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqzq6oy atToHDd82Cab
m4GHHpp5897NTTffnPbt2ucjH/nwBh0bAAAAwNZKAAGgafzzclgZO2Cj7vbr 545O/4P6Z9Dg
w9OhY+ecfMrnc9SQIWt9z5FHHJFhw49Px05dcuGFF+W2224tr7vsskvTvUf3 9O27R/r23SO9
tuuVSy8du0FjXHkJq1Ufq/ry2SMzatTojDrnaxt8bAAAAABbKzdBB2hkW+tN 0OvyxOArG3TP
DwAAtkxugg5ugg7QlJwBAkCTET8AAAAA2FQEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEADYwrWqbGMSAAAAAFYjgADQ ZJ4YfKVJAAAA
AGCTEEAAaBJPPPlUrV8bqlVlm/KjW/eeOeHEz6aq6s0t6thffPHFDD/u+PTs tV3ab9MhB/Y/
KOPH3+OHAgAAAGAjEkAAaBpjJ2XSgBW/rq8l1YuypHpRnn/+2VRWVubMs87a Yg77r3/9awYO
HJxDPvnJPP/cc3nrzdn5zvXX566f/czPBAAAAMBGJIAA0Oimj3s4kwYkJ7Tf O5MGrHj9XnTv
1i3XXXttHnnk0fKympqaXHTRxdl+hx3ToWPnfPakk/Puu++W17eqbJPv3DAu vXfpk8rWbZMk
D06cmI/stU/atd82fXbbPT/+8a3l7RcvXpwzRpyZrt16pGu3Hhlx5llZvHhx rf19//s/SJ/d
dk+79ttm3/32z5/+9Ey9Y77s8isy+tzROf3009KlS+dUVlZmv/32zV133pEk +eQhh+ZnP/t5
rfe8+uqr2Wmn3nnnnXdSXV2dL516Wjp26pIdd9wp1173bT9QAAAAAHUQQABo NE88+VSeGHxl
7pg/LSe03zsz+22bE9rvnTvmT8sTg69c78thJUlFRUWt19+68qpMm/bHTHnq 93nt1b+nTZs2
ufDfL6q1zZQpUzLlqd+nevHCJMkXv/j/MuaSizPnrao89ptH8tSUKeVtx4wZ m5kzZubPf34u
zz//bF79x6sZO/bSWvt7fPLkTH78scyeNTNDhgzJiDPPrHe8j/3msQwbdmy9 688//7xc8Y3/
yPLly8vLrvjGf2Tk2SPToUOHjB17ad6sejP/939/ydQ/PJ1Jj03ygwUAAABQ h4pSqVQyDQCN
577bb8mRJ56eJFm6ZPFWc9wrb3i+8syPmf22La/rNXVe7pg/LQMmrXjdf+J5 9e6nVWWbLKle
lCSpqnoz519wQd5++53c/YsVl5Dqs9vu+dUDv8z73//+JMms2bPTb5998+qr fy+//++v/C29
evUq73OXXXfL6NGjMuTII7P99tvX+ryddt4ljz7yUPr06ZMkeemllzJw0GF5 ZfrL5f29MXNG
OnfulCRZuHBhunbrkYUL3q1z/G3bbZN578xNixYt6j3G/gd9NF8+++wcf/xx Ky6ZNeiwPP/c
M2nbtm127r1rHn3koey6667l8eyx54fKcwIAsDlp2ap1+c/ABw8aUl4++aEJ 5dfttu1ooii0
BfPeLv/cr/y7IACNwxkgADSK/hPPS8YOyIBJyR3zp6XX1HlJVosfYwesNX6s tPIm6H0/uEfm
z5+fm266sbxuxowZ2fPfPlzeZscdd8rsqqpa7181fiTJz+66Mw8//Gj67btf dv/AB/PAAw+U
182ePTu9e/cuv+7du3dmz55d6/0r40eStG3bNsuWLat37F06d07Vm2u/afsF /zwLpKamJpde
dnlGjx6Vtm1XXK5r1qxZ2XnnnWuNBwAAAIA1CSAANJr+B+6f/hPPK1/2amX8 OKH93uk/8bz0
P3D/Bu1n5U3Q36yalbvuvCM9uncvr+vZs2demf5yeZsl1YvKl7qqT79+++Se 8b/IjNdfy/XX
X5cRI/51U/Xu3bvnlVdeKb+ePn16unXr9p7n4BOf/ETuvvvutW7zmc98Jq1a tcpFF12c3//+
qZz6pS+V1/Xo0aPWeFZ9DgAAAMC/CCAANLreZw8snwkyYNKK1xvLaaedmhEj zsrf/va3LFu2
LM8991w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqz q6oyatToHDd8
2Hse3yUXX5Srr7omP/zhjzJnztxUV1fn6aen5rjjTyhvU1FRkQvOPy/XXvft XHjB+WnVqlV5
3fHHDc/oc89LVdWbmV1VlXPOOdcPFAAAAEAdBBAAmsY/L4eVsQM26m6/fu7o 9D+ofwYNPjwd
OnbOyad8PkcNGbLW9xx5xBEZNvz4dOzUJRdeeFFuu+3W8rrLLrs03Xt0T9++ e6Rv3z3Sa7te
ufTSse95fH369MnEib/OxIceygf69k2Xrt3zla9+NccNH15ru+bNm6dPnz45 +eSTak/b2DHp
1Klj+uz2/uy91z45+OMH+1kCAAAAqIOboAM0sq31Juh1eWLwlQ2658fWaOgx w3Lc8GE57rjh
JgMA2GK5CTq4CTpAU2phCgBoKuLHmpYvX55bb70tL7/8coYNO9aEAAAAALxH AggAbEZat2mX
nXbaKbf/90/TrJkrVQIAAAC8VwIIAGxGllQvMgkAAAAAG4F/WgoAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAAB


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: [EMF] How to create an instance of an ecore model [message #427195 is a reply to message #427192] Thu, 05 February 2009 13:29 Go to previous message
Miguel Angel Garcia de Dios is currently offline Miguel Angel Garcia de DiosFriend
Messages: 22
Registered: July 2009
Junior Member
Thank you Ed Merks.
I will see that NewsGroup looking for the answer.

Ed Merks wrote:
> Miguel,
>
> I don't know much about OCL. I've added the OCL newsgroup to the "to"
> list of the reply. Do doubt Christian will see it...
>
>
> Miguel Angel Garcia de Dios wrote:
>> Ih Ed Merks,
>> I've changed the property volatile of the "people" ERefeference of
>> "People" class, which is my container of Person. Then I can generate
>> instances of Person from "people" EReference but now I have a new
>> different problem: with the "OCL Interpreter Console" plugin installed
>> I have made many OCL queries but I've obtained an unexpected value
>> attached as a screenshot: Having three instances of Person, the OCL
>> query "Person.allInstances()" returns an empty result. But if I write
>> "self.name" (being the context an instance of Person) I obtain the
>> desired result ('Ada' for example). I think I have any wrong property
>> value because it seems like Person isntances are no related ro
>> something similar.
>>
>> Thank you!
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Ed Merks,
>>> Yes, I did. I marked the feature as volatile.
>>> I think it cannot be so complicated. Maybe any value of a property is
>>> not correct so, to ensure that I'm going to attach screenshots for
>>> everything (it is not so much).
>>>
>>> I am really concerned with that because I think it should be easier.
>>> Thank you in advance!
>>>
>>> Ed Merks wrote:
>>>> Miguel,
>>>>
>>>> Did you mark the feature as volatile such that no code is generated
>>>> for it?
>>>>
>>>>
>>>> Miguel Angel Garcia de Dios wrote:
>>>>> Ed Merks,
>>>>> I have the containment property of my desired container class in
>>>>> true, the GenFeature properties are also update: containment=true
>>>>> and the GenEdit properties contains children=true and create
>>>>> children=true.
>>>>> I hope you can be more explicity with the solution of my problem
>>>>> please.
>>>>> The last error I've obtained is when I create My.container file
>>>>> from a Poeple object. Hten I click on it and I get the nex error:
>>>>>
>>>>> Unhandled event loop exception:
>>>>> java.lang.UnsupportedOperationException
>>>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>>>> at
>>>>> org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
>>>>> Method)
>>>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>>>> at
>>>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
>>>>> Method)
>>>>> at
>>>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>>>> at
>>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>>>> at
>>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>> at
>>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>>>
>>>>> at
>>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>>>
>>>>> A lot of thanks!
>>>>> And always sorry for my bad English.
>>>>>
>>>>> Ed Merks wrote:
>>>>>> Miguel,
>>>>>>
>>>>>> Comments below.
>>>>>>
>>>>>>
>>>>>> Miguel Angel Garcia de Dios wrote:
>>>>>>> Hi,
>>>>>>> I think my question is easy for us but i have spend too much time
>>>>>>> in it:
>>>>>>> I want to create a simply ecore model and then i want to
>>>>>>> instanciate it and check some OCL queries on it.
>>>>>>> My purpose is to create an instance of an ecore model which
>>>>>>> contains as instances of a class named Person as I want.
>>>>>>> These are my steps:
>>>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>>>> -People, which contains an EReference with multiplicity
>>>>>>> 0..* to the EClass Person.
>>>>>>> -Person, which contains only an EAttribute named "name"
>>>>>>> with String type.
>>>>>>> 2.- Create automatically the .genmodel file from the ecore
>>>>>>> model .
>>>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>>>> 4.- Launch an Eclipse application from the project.
>>>>>>> 5.- Create an instance of the ecore model.
>>>>>>> My probles is in the last step: I begin the model with an
>>>>>>> instance of People and hten I desire to create as number of
>>>>>>> instances of Person as I want but I cannot do that. I don't know
>>>>>>> the reason. I've seen the EXTLibrary example too many times but I
>>>>>>> cannot get my desired result.
>>>>>> The lack of there being a containment reference is the likely
>>>>>> reason. And note that even if you change it in the Ecore model,
>>>>>> the GenFeature properties for the feature will *not *change, so
>>>>>> you'll need to update those as well to support children and child
>>>>>> creation.
>>>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>>>> as many Person as I want. That class is People. I've tried many
>>>>>>> possibilies changing the class properties obtaining different
>>>>>>> errors.
>>>>>>> Can somebody tell me how to create an ecore model that has an
>>>>>>> EClass which can generates as many instances of another class as
>>>>>>> I want?
>>>>>>> Thank you in advance!
>>>>>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
Previous Topic:Dynamically switching the factory implementation
Next Topic:Ecore2Java Generation task
Goto Forum:
  


Current Time: Thu Apr 25 22:27:04 GMT 2024

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

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

Back to the top