From mail Tue Oct  3 11:53:43 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k93FrhN02618
	for openmap-users-archive; Tue, 3 Oct 2006 11:53:43 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k93Frfm02615
	for <openmap-users@openmap.bbn.com>; Tue, 3 Oct 2006 11:53:42 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GUmVp-00034A-4t; Tue, 03 Oct 2006 11:48:53 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k93FiIB08831
	for openmap-users-outgoing; Tue, 3 Oct 2006 11:44:18 -0400 (EDT)
Message-ID: <45228533.2030701@io.com>
Date: Tue, 03 Oct 2006 10:43:47 -0500
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: openmap-users@bbn.com, rratcliff@pop.ticom-geo.com
Subject: [OpenMap Users] Projections and loading (Shape '.prj')...
References: <1C538D67B37E5B4784128A22270DF5C304531F18@npri54exc20.npt.nuwc.navy.mil> <451BE40D.9040306@io.com>
In-Reply-To: <451BE40D.9040306@io.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Status: No, score=-2.6 required=7.0 tests=BAYES_00 autolearn=ham 
	version=3.1.0
Old-X-Spam-Score: -2.6 (--)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi...
 Does anybody know or have anyone made anything to read the accompanying 
'.prj' files with shape files ?

There are two issues or question.
Have anyone made any routines to parse the '.prj' files ?

How do I map a projection into the com.bbn.openmap.proj.Proj.
It would solve several problems I have with dataset's comming from 
different sources.
The default to I use for OpenMap is:
GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
Some of my other sources use :
PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192]]

How do I load the projection ?

I found the class :com.bbn.openmap.proj.LambertConformalLoader, but I 
can't figure out what to load from and what the
syntax is.
The next issue is how to either chain them or load a spesific one for a 
dataset or shape file.

I couldn't figure out exactly what the algorithm is for projecting.
 From what I remember from my graphics class( it's been a while), we 
allways used point(vector) transformation(matrix) operations.
The nice thing about that approach is that you can chain the ops, sorry 
if I telling anyone what they already know.

I couldn't find any matrecies in the proj class or it's children so I 
assume it's not done that way.
If someone could either give me a brief desrciption of how it's done and 
why, or where to find the info, that would be great.

If anyone could shed some light on this, I'd appriciate it.
Thanks
   JR
--------------------------------------------------------------------------------------------------------------------------------------
I found this entry in the Mail Archives from : Rob Ratcliff 
<rratcliff@ticom-geo.com>

I'm writing a simple little client that queries a ArcGIS server for data. 
The data is in the
NAD_1983_StatePlane_Texas_Central_FIPS_4203 projection which is defined as:

32139 NAD_1983_StatePlane_Texas_Central_FIPS_4203
PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1983",DATUM["D_North_Ameri
can_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]
],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",3000000],
PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETE
R["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1]]

I have to give it an envelope with the coordinates defined in it's 
coordinate system. I'm using the CADRG projection within OpenMap.

After fiddling with it awhile and bugging Don and others with questions, I 
came up with this approximation:

	 ...
	 double factor = 5280*1.1508;
	 // origin of local coordinate system
	 float lat0 = 29.666667f;
	 float lon0 = -100.333333f;
	 float x0 = 2296583.333333f;
	 float y0 = 9842500.0000f;

	 // bounds of openmap screen
	 float minx = this.getProjection().getUpperLeft().getLongitude();
	 float maxy = this.getProjection().getUpperLeft().getLatitude();
	 float maxx = this.getProjection().getLowerRight().getLongitude();
	 float miny = this.getProjection().getLowerRight().getLatitude();

	 // calculate bounds in local coordinate system
	 double rminx = factor*Geo.distanceNM(lat0,lon0,lat0,minx) + x0;
	 double rmaxx = factor*Geo.distanceNM(lat0,lon0,lat0,maxx) + x0;
	 double rminy = factor*Geo.distanceNM(lat0,lon0,miny,lon0) + y0;
	 double rmaxy = factor*Geo.distanceNM(lat0,lon0,maxy,lon0) + y0;


	 lines.append("<ENVELOPE minx='"+rminx+"' miny='"+rminy+"' " +"maxx='"+rmaxx+"' maxy='"+rmaxy +"' " +
								"name='Initial_Extent' />");
	 //lines.append("<MAPUNITS units=\"decimal_degrees\" />");
	 //lines.append("<FILTERCOORDSYS id='32139' />");
	 //lines.append("<FEATURECOORDSYS id='4326' />");
	 lines.append("<MAPUNITS units='feet' />");
	 ...

Unfortunately, I'm off by 10,000 ft or so. Has somebody done this kind of 
thing before?

I should be getting numbers like this example:

Bounding Coordinates:
West Bounding Coordinate: -98.179725
East Bounding Coordinate: -97.363673
North Bounding Coordinate: 30.630058
South Bounding Coordinate: 30.015643

Local Bounding Coordinates:
Left Bounding Coordinate: 2978077.571114
Right Bounding Coordinate: 3230603.902780
Bottom Bounding Coordinate: 9981817.451761
Top Bounding Coordinate: 10199521.410375

Thanks,
 Rob



--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Oct  3 12:12:45 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k93GCjK02771
	for openmap-users-archive; Tue, 3 Oct 2006 12:12:45 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k93GCim02768
	for <openmap-users@openmap.bbn.com>; Tue, 3 Oct 2006 12:12:44 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GUmpu-0003O3-5w; Tue, 03 Oct 2006 12:09:39 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k93G8TF09249
	for openmap-users-outgoing; Tue, 3 Oct 2006 12:08:29 -0400 (EDT)
Message-ID: <45228AEB.4000600@io.com>
Date: Tue, 03 Oct 2006 11:08:11 -0500
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: =?ISO-8859-1?Q?St=E9phane_Wasserhardt?= <swasserhardt@cls.fr>,
   OpenMap MList <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Labeling Shape Layer..
References: <1C538D67B37E5B4784128A22270DF5C304531F18@npri54exc20.npt.nuwc.navy.mil> <451BE40D.9040306@io.com> <6.1.1.1.2.20060928173021.01b583d0@pop.cls.fr>
In-Reply-To: <6.1.1.1.2.20060928173021.01b583d0@pop.cls.fr>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Status: No, score=-2.6 required=7.0 tests=BAYES_00 autolearn=ham 
	version=3.1.0
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.prismnet.com id k93G8B3W075303
Old-X-Spam-Score: -2.6 (--)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k93G8Pa09241
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Stephane.
Thanks for the info, that helped.

Next I was going to add a label to the shape layer.
I found the spot to add it.
By adding a property (Label attribute) it would do it.
Has anyone done any work on this ???
   Thanks
    JR


> Hi JR !
>
> I don't know much about shapeFiles in openMap for the moment, but I 
> may help you for OMTextLabelers :
> You can use a DeclutterMatrix. If you have an OMGraphicHandlerLayer, 
> here is what you could do in your "prepare()" method :
>
> Projection projection = getProjection();
> declutterMatrix.setWidth(projection.getWidth());
> declutterMatrix.setHeight(projection.getHeight());
> declutterMatrix.create();
>
> Then, you can change all the OMTextLabeler's positions in the prepared 
> graphics list using the declutterMatrix. This is a little tricky 
> because you must tell the declutterMatrix which positions and sizes 
> the labelers occupies in the matrix.
> I advise you to use the code given in the "declutterLabel" method of 
> the "Location" class.
> And don't forget to use a declutter limit (last parameter of 
> DeclutterMatrix.setNextOpen()) or else you could get your labels very 
> far away from their original positions...
>
> In fact, all these things are already handled in the LocationLayer, 
> using Location objects instead of OMTextLabelers... You should have a 
> look at it, maybe it is sufficient for your needs.
>
> But beware of multiple lines labelers : I found an issue in 
> "declutterLabel" when using multiple lines labelers (it should be in 
> the archives) ...
> Also note that decluttering is a slow process.
> I think I will try to build a kind of "DeclutterLayer" in a few month, 
> in order to have the labels decluttered in a separate layer (=> in a 
> separate worker thread) and let this layer always be on top of other 
> layers... I'll send it to this list as soon as it will work !
>
> Hope this helps !
>
> Regards,
> Stephane
>
>
>
> Le 17:02 28/09/2006, vous avez écrit:
>
>> Hi Folks...
>>  
>> I've gone through the List archive looking for the way to Label Shape 
>> files.
>> I found quite a few references to people looking for it.
>> Though, no permanent solution.
>> Has anyone done this ?? I'd prefer not to duplicate effort, but I'll 
>> do it and share it if there is not something out there.
>>
>> Also, on that note.
>>  Has there been any work done on the OMTextLabler to prevent cluttering ?
>> It get's very bussy with City street names when you zoom out.
>> Any thoughts on approach  ?
>>  Thanks
>>    JR
>>
>> --
>> [To unsubscribe to this list send an email to "majdart@bbn.com"
>> with the following text in the BODY of the message "unsubscribe 
>> openmap-users"]
>>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct  4 13:52:59 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k94Hqxj11598
	for openmap-users-archive; Wed, 4 Oct 2006 13:52:59 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k94Hqwm11595
	for <openmap-users@openmap.bbn.com>; Wed, 4 Oct 2006 13:52:58 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GVAr5-0002XW-3k; Wed, 04 Oct 2006 13:48:27 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k94HhOu01333
	for openmap-users-outgoing; Wed, 4 Oct 2006 13:43:24 -0400 (EDT)
In-Reply-To: <45228533.2030701@io.com>
References: <1C538D67B37E5B4784128A22270DF5C304531F18@npri54exc20.npt.nuwc.navy.mil> <451BE40D.9040306@io.com> <45228533.2030701@io.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <776CE387-7F97-491D-9FBA-D550E30DC1DF@bbn.com>
Cc: openmap-users@bbn.com, rratcliff@pop.ticom-geo.com
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Projections and loading (Shape '.prj')...
Date: Wed, 4 Oct 2006 13:43:12 -0400
To: JR Andreassen <janrune@io.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi JR,

There isn't an automatic reader for the .prj files, but you were on  
the right track of using the LambertConformalLoader to create a state  
plane projectino with those values.

But that's not the real problem.  If you have data that has already  
been projected (like the state plane projection), there's really no  
mechanism to create an object represented by those coordinates.  The  
OMGraphics are expecting decimal degree lat/lon data.

OpenMap 4.7 will be able to handle OMGraphics to projected data, but  
I haven't written that OMGraphic code yet.  I'm trying to find the  
time to work on that.

- Don

On Oct 3, 2006, at 11:43 AM, JR Andreassen wrote:

> Hi...
> Does anybody know or have anyone made anything to read the  
> accompanying '.prj' files with shape files ?
>
> There are two issues or question.
> Have anyone made any routines to parse the '.prj' files ?
>
> How do I map a projection into the com.bbn.openmap.proj.Proj.
> It would solve several problems I have with dataset's comming from  
> different sources.
> The default to I use for OpenMap is:
> GEOGCS["GCS_North_American_1983",DATUM 
> ["D_North_American_1983",SPHEROID["GRS_1980", 
> 6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree", 
> 0.0174532925199433]]
> Some of my other sources use :
> PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS 
> ["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID 
> ["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT 
> ["Degree",0.0174532925199433]],PROJECTION 
> ["Lambert_Conformal_Conic"],PARAMETER["False_Easting", 
> 2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER 
> ["Central_Meridian",-100.3333333333333],PARAMETER 
> ["Standard_Parallel_1",30.11666666666667],PARAMETER 
> ["Standard_Parallel_2",31.88333333333333],PARAMETER 
> ["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US", 
> 0.3048006096012192]]
>
> How do I load the projection ?
>
> I found the class :com.bbn.openmap.proj.LambertConformalLoader, but  
> I can't figure out what to load from and what the
> syntax is.
> The next issue is how to either chain them or load a spesific one  
> for a dataset or shape file.
>
> I couldn't figure out exactly what the algorithm is for projecting.
> From what I remember from my graphics class( it's been a while), we  
> allways used point(vector) transformation(matrix) operations.
> The nice thing about that approach is that you can chain the ops,  
> sorry if I telling anyone what they already know.
>
> I couldn't find any matrecies in the proj class or it's children so  
> I assume it's not done that way.
> If someone could either give me a brief desrciption of how it's  
> done and why, or where to find the info, that would be great.
>
> If anyone could shed some light on this, I'd appriciate it.
> Thanks
>   JR
> ---------------------------------------------------------------------- 
> ----------------------------------------------------------------
> I found this entry in the Mail Archives from : Rob Ratcliff  
> <rratcliff@ticom-geo.com>
>
> I'm writing a simple little client that queries a ArcGIS server for  
> data. The data is in the
> NAD_1983_StatePlane_Texas_Central_FIPS_4203 projection which is  
> defined as:
>
> 32139 NAD_1983_StatePlane_Texas_Central_FIPS_4203
> PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203",GEOGCS 
> ["GCS_North_American_1983",DATUM["D_North_Ameri
> can_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM 
> ["Greenwich",0],UNIT["Degree",0.017453292519943295]
> ],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting", 
> 700000],PARAMETER["False_Northing",3000000],
> PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER 
> ["Standard_Parallel_1",30.11666666666667],PARAMETE
> R["Standard_Parallel_2",31.88333333333333],PARAMETER 
> ["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1]]
>
> I have to give it an envelope with the coordinates defined in it's  
> coordinate system. I'm using the CADRG projection within OpenMap.
>
> After fiddling with it awhile and bugging Don and others with  
> questions, I came up with this approximation:
>
> 	 ...
> 	 double factor = 5280*1.1508;
> 	 // origin of local coordinate system
> 	 float lat0 = 29.666667f;
> 	 float lon0 = -100.333333f;
> 	 float x0 = 2296583.333333f;
> 	 float y0 = 9842500.0000f;
>
> 	 // bounds of openmap screen
> 	 float minx = this.getProjection().getUpperLeft().getLongitude();
> 	 float maxy = this.getProjection().getUpperLeft().getLatitude();
> 	 float maxx = this.getProjection().getLowerRight().getLongitude();
> 	 float miny = this.getProjection().getLowerRight().getLatitude();
>
> 	 // calculate bounds in local coordinate system
> 	 double rminx = factor*Geo.distanceNM(lat0,lon0,lat0,minx) + x0;
> 	 double rmaxx = factor*Geo.distanceNM(lat0,lon0,lat0,maxx) + x0;
> 	 double rminy = factor*Geo.distanceNM(lat0,lon0,miny,lon0) + y0;
> 	 double rmaxy = factor*Geo.distanceNM(lat0,lon0,maxy,lon0) + y0;
>
>
> 	 lines.append("<ENVELOPE minx='"+rminx+"' miny='"+rminy+"' "  
> +"maxx='"+rmaxx+"' maxy='"+rmaxy +"' " +
> 								"name='Initial_Extent' />");
> 	 //lines.append("<MAPUNITS units=\"decimal_degrees\" />");
> 	 //lines.append("<FILTERCOORDSYS id='32139' />");
> 	 //lines.append("<FEATURECOORDSYS id='4326' />");
> 	 lines.append("<MAPUNITS units='feet' />");
> 	 ...
>
> Unfortunately, I'm off by 10,000 ft or so. Has somebody done this  
> kind of thing before?
>
> I should be getting numbers like this example:
>
> Bounding Coordinates:
> West Bounding Coordinate: -98.179725
> East Bounding Coordinate: -97.363673
> North Bounding Coordinate: 30.630058
> South Bounding Coordinate: 30.015643
>
> Local Bounding Coordinates:
> Left Bounding Coordinate: 2978077.571114
> Right Bounding Coordinate: 3230603.902780
> Bottom Bounding Coordinate: 9981817.451761
> Top Bounding Coordinate: 10199521.410375
>
> Thanks,
> Rob
>
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct  4 15:00:13 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k94J0DA11886
	for openmap-users-archive; Wed, 4 Oct 2006 15:00:13 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k94J0Dm11883
	for <openmap-users@openmap.bbn.com>; Wed, 4 Oct 2006 15:00:13 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GVBuc-0003Y4-3Z; Wed, 04 Oct 2006 14:56:10 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k94Ip7U02787
	for openmap-users-outgoing; Wed, 4 Oct 2006 14:51:07 -0400 (EDT)
Message-ID: <45240278.2050904@io.com>
Date: Wed, 04 Oct 2006 13:50:32 -0500
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
CC: OpenMap MList <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Labeling Shape Layer..
References: <1C538D67B37E5B4784128A22270DF5C304531F18@npri54exc20.npt.nuwc.navy.mil> <451BE40D.9040306@io.com> <6.1.1.1.2.20060928173021.01b583d0@pop.cls.fr> <45228AEB.4000600@io.com>
In-Reply-To: <45228AEB.4000600@io.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Status: No, score=-2.6 required=7.0 tests=BAYES_00 autolearn=ham 
	version=3.1.0
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.prismnet.com id k94Ioi9V002965
Old-X-Spam-Score: -2.5 (--)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k94Ip4a02778
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hello again...
 I have another problem....
 I need to load a shape file dataset that has a  1.1gig dbf. !
More than 80 % of the fields are junk or blank.

I was thinking about creating a filter on the DBF reader.
Something like
<shapefile>.selectFields=<field name1>{,<field name2> {...{, <field name 
N>}}}
Extend DbfTableModel
    getDbfTableModel()
    public void setWritable(boolean set) {  }
    public boolean getWritable() { return false; }
    commitEvents(...)   {}
Extend DbfInputStream overriding
        readHeader();
        readFieldDescripters();
        readData();

Now, we could ofcourse achieve the same by copying and modifying the table.
But given the size, the costs would be enormus.

Anyone see any issues with that ??
Also, I'm hoping to ad a label to the Shape Layer.
 Issues anyone ??
   Thanks
       JR

> Hi Stephane.
> Thanks for the info, that helped.
>
> Next I was going to add a label to the shape layer.
> I found the spot to add it.
> By adding a property (Label attribute) it would do it.
> Has anyone done any work on this ???
>   Thanks
>    JR
>
>
>> Hi JR !
>>
>> I don't know much about shapeFiles in openMap for the moment, but I 
>> may help you for OMTextLabelers :
>> You can use a DeclutterMatrix. If you have an OMGraphicHandlerLayer, 
>> here is what you could do in your "prepare()" method :
>>
>> Projection projection = getProjection();
>> declutterMatrix.setWidth(projection.getWidth());
>> declutterMatrix.setHeight(projection.getHeight());
>> declutterMatrix.create();
>>
>> Then, you can change all the OMTextLabeler's positions in the 
>> prepared graphics list using the declutterMatrix. This is a little 
>> tricky because you must tell the declutterMatrix which positions and 
>> sizes the labelers occupies in the matrix.
>> I advise you to use the code given in the "declutterLabel" method of 
>> the "Location" class.
>> And don't forget to use a declutter limit (last parameter of 
>> DeclutterMatrix.setNextOpen()) or else you could get your labels very 
>> far away from their original positions...
>>
>> In fact, all these things are already handled in the LocationLayer, 
>> using Location objects instead of OMTextLabelers... You should have a 
>> look at it, maybe it is sufficient for your needs.
>>
>> But beware of multiple lines labelers : I found an issue in 
>> "declutterLabel" when using multiple lines labelers (it should be in 
>> the archives) ...
>> Also note that decluttering is a slow process.
>> I think I will try to build a kind of "DeclutterLayer" in a few 
>> month, in order to have the labels decluttered in a separate layer 
>> (=> in a separate worker thread) and let this layer always be on top 
>> of other layers... I'll send it to this list as soon as it will work !
>>
>> Hope this helps !
>>
>> Regards,
>> Stephane
>>
>>
>>
>> Le 17:02 28/09/2006, vous avez écrit:
>>
>>> Hi Folks...
>>>  
>>> I've gone through the List archive looking for the way to Label 
>>> Shape files.
>>> I found quite a few references to people looking for it.
>>> Though, no permanent solution.
>>> Has anyone done this ?? I'd prefer not to duplicate effort, but I'll 
>>> do it and share it if there is not something out there.
>>>
>>> Also, on that note.
>>>  Has there been any work done on the OMTextLabler to prevent 
>>> cluttering ?
>>> It get's very bussy with City street names when you zoom out.
>>> Any thoughts on approach  ?
>>>  Thanks
>>>    JR
>>>
>>> -- 
>>> [To unsubscribe to this list send an email to "majdart@bbn.com"
>>> with the following text in the BODY of the message "unsubscribe 
>>> openmap-users"]
>>>
>
> -- 
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe 
> openmap-users"]
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Oct  9 13:07:39 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k99H7dJ32747
	for openmap-users-archive; Mon, 9 Oct 2006 13:07:39 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k99H7cm32744
	for <openmap-users@openmap.bbn.com>; Mon, 9 Oct 2006 13:07:38 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GWyWW-0002rU-4H; Mon, 09 Oct 2006 13:02:40 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k99Gw5j24134
	for openmap-users-outgoing; Mon, 9 Oct 2006 12:58:05 -0400 (EDT)
Message-Id: <6.1.1.1.2.20061009183555.01b05e00@pop.cls.fr>
X-Sender: swasserhardt@pop.cls.fr (Unverified)
X-Mailer: QUALCOMM Windows Eudora Version 6.1.1.1
Date: Mon, 09 Oct 2006 18:57:43 +0200
To: openMap <openmap-users@bbn.com>
From: =?iso-8859-1?Q?St=E9phane?= Wasserhardt <swasserhardt@cls.fr>
Subject: [OpenMap Users] OverviewMapHandler issue
Mime-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Old-X-Spam-Score: -2.4 (--)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: *
X-Spam-Status: No, score=1.2 required=2.5 tests=HTML_60_70,HTML_MESSAGE,
	MIME_HTML_ONLY autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

<html>
<body>
Hello list !<br><br>
I don't know if this happens only with the current CVS version of
OpenMap, but the overview map doesn't work anymore.<br>
In fact, it works only the first time it is used. When you close it, it
is removed from the mapBean's WindowSupport listeners, and does not work
anymore.<br>
I have found the reason, but I don't know how it should be
avoided...<br>
So, the reason is the following :<br>
In the OverviewMapHandler class, there are these two methods :<br><br>
<font face="Courier New, Courier">&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#7F0055"><b>public</b></font><font face="Courier New, Courier">
</font><font face="Courier New, Courier" color="#7F0055"><b>void</b></font><font face="Courier New, Courier">
componentShown(ComponentEvent e) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#7F0055"><b>if</b></font><font face="Courier New, Courier">
(</font><font face="Courier New, Courier" color="#0000C0">sourceMap</font><font face="Courier New, Courier">
!=
</font><font face="Courier New, Courier" color="#7F0055"><b>null</b></font><font face="Courier New, Courier">)
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#0000C0">sourceMap</font><font face="Courier New, Courier">.addProjectionListener(</font><font face="Courier New, Courier" color="#7F0055"><b>this</b></font><font face="Courier New, Courier">);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br><br>
&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#7F0055"><b>public</b></font><font face="Courier New, Courier">
</font><font face="Courier New, Courier" color="#7F0055"><b>void</b></font><font face="Courier New, Courier">
componentHidden(ComponentEvent e) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#7F0055"><b>if</b></font><font face="Courier New, Courier">
(</font><font face="Courier New, Courier" color="#0000C0">sourceMap</font><font face="Courier New, Courier">
!=
</font><font face="Courier New, Courier" color="#7F0055"><b>null</b></font><font face="Courier New, Courier">)
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font face="Courier New, Courier" color="#0000C0">sourceMap</font><font face="Courier New, Courier">.removeProjectionListener(</font><font face="Courier New, Courier" color="#7F0055"><b>this</b></font><font face="Courier New, Courier">);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br><br>
</font>So that when the overview is not displayed, it doesn&quot;t
recieve any projectionEvents. That's ok.<br>
These methods are called by the overview's WindowSupport (class
member).<br>
Here is the code (in WindowSupport) that calls
<font face="Courier New, Courier">componentHidden</font> (in
OverviewMapHandler) :<br><br>
<font face="Courier New, Courier" color="#7F0055"><b><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>public</b></font><font face="Courier New, Courier">
</font><font face="Courier New, Courier" color="#7F0055"><b>void</b></font><font face="Courier New, Courier"> componentHidden(ComponentEvent e) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator it = iterator();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New, Courier" color="#7F0055"><b>while</b></font><font face="Courier New, Courier"> (it.hasNext()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((ComponentListener) it.next()).componentHidden(e);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New, Courier" color="#3F7F5F">// We need to do this after componentHidden notifications,<br>
</font><font face="Courier New, Courier">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New, Courier" color="#3F7F5F">// otherwise the component never finds out it's been hidden,<br>
</font><font face="Courier New, Courier">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New, Courier" color="#3F7F5F">// it gets removed as a ComponentListener at cleanup.<br>
</font><font face="Courier New, Courier">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Component source = (Component) e.getSource();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New, Courier" color="#7F0055"><b>if</b></font><font face="Courier New, Courier"> (</font><font face="Courier New, Courier" color="#0000C0">display</font><font face="Courier New, Courier"> == source) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cleanUp();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br><br>
</font>The overview is a WindowSupport's listener, so the componentHidden call is forwarded to it.<br>
But after the overview map is hidden, you can see that the 'cleanUp' method is also called.<br>
During this cleanUp, the OverviewMapHandler is removed from the WindowSupport's listeners !<br>
That is the issue !<br>
When you open up the overview for the second time, the <font face="Courier New, Courier">componentShown </font>call on the WindowSupport is not forwarded to the overview !<br>
So the overview cannot be restored as a projectionListener, and becomes semi-inactive : it sends the projectionChange events to the main application's mapBean, but isn't refreshed when the mapBean's projection changes !<br><br>
I don't know what is the right way to avoid this behaviour. What is different from previous openMap releases ? (Or maybe this issue has always been here !)<br>
Thanks in advance for your help !<br><br>
Stephane<br>
</body>
</html>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Oct 10 05:55:01 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9A9t1s05888
	for openmap-users-archive; Tue, 10 Oct 2006 05:55:01 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9A9t0m05885
	for <openmap-users@openmap.bbn.com>; Tue, 10 Oct 2006 05:55:00 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GXEFC-0000f3-4m; Tue, 10 Oct 2006 05:49:50 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9A8eiv05996
	for openmap-users-outgoing; Tue, 10 Oct 2006 04:40:44 -0400 (EDT)
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C6EC43.40DE2919"
Subject: [OpenMap Users] Box shape around OMCircle during selection
Date: Tue, 10 Oct 2006 16:08:22 +0800
Message-ID: <69596D9C5887874E9A35F6C8DF94B2AB02D85FE8@nautilus>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] OverviewMapHandler issue
Thread-Index: AcbrxO9cD0PA/75RTxajaTvoFGEoWAAfi2jQ
From: "Alex Yeo" <alexyeo@stee.stengg.com>
To: "openMap" <openmap-users@bbn.com>
Old-X-Spam-Score: -1.9 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=HTML_40_50,HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------_=_NextPart_001_01C6EC43.40DE2919
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi,

I have created an OMGraphicList consisting of an OMCircle and an OMText. =
My intent is to create a box around the selected OMCircle (much like =
when an OMRaster graphic is selected) but not the OMText.

Could anyone please provide a hint to how this is possible? Does it have =
anything to do with the createShape method in the OMGraphic class?

Cheers.

Alex


------_=_NextPart_001_01C6EC43.40DE2919
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">


<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR></HEAD>
<BODY><FONT size=3D2>
<P>Hi,</P>
<P>I have created an OMGraphicList consisting of an OMCircle and an =
OMText. My=20
intent is to create a box around the selected OMCircle (much like when =
an=20
OMRaster graphic is selected) but not the OMText.</P>
<P>Could anyone please provide a hint to how this is possible? Does it =
have=20
anything to do with the createShape method in the OMGraphic class?</P>
<P>Cheers.</P>
<P>Alex</P></FONT></BODY></HTML>

------_=_NextPart_001_01C6EC43.40DE2919--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Oct 10 11:59:48 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9AFxmJ11930
	for openmap-users-archive; Tue, 10 Oct 2006 11:59:48 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9AFxmm11927
	for <openmap-users@openmap.bbn.com>; Tue, 10 Oct 2006 11:59:48 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GXJwx-0004aM-5D; Tue, 10 Oct 2006 11:55:23 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9AFrA212472
	for openmap-users-outgoing; Tue, 10 Oct 2006 11:53:10 -0400 (EDT)
In-Reply-To: <6.1.1.1.2.20061009183555.01b05e00@pop.cls.fr>
References: <6.1.1.1.2.20061009183555.01b05e00@pop.cls.fr>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <93302EC1-9754-4C8E-9935-73B5CCC65152@bbn.com>
Cc: openMap <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] OverviewMapHandler issue
Date: Tue, 10 Oct 2006 11:53:02 -0400
To: =?ISO-8859-1?Q?St=E9phane_Wasserhardt?= <swasserhardt@cls.fr>
X-Mailer: Apple Mail (2.752.2)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9AFr7a12464
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Stephane,

Thanks for the heads-up, I'll take a look at it.  I was able to  
reproduce what you're seeing.

- Don


On Oct 9, 2006, at 12:57 PM, Stéphane Wasserhardt wrote:

> Hello list !
>
> I don't know if this happens only with the current CVS version of  
> OpenMap, but the overview map doesn't work anymore.
> In fact, it works only the first time it is used. When you close  
> it, it is removed from the mapBean's WindowSupport listeners, and  
> does not work anymore.
> I have found the reason, but I don't know how it should be avoided...
> So, the reason is the following :
> In the OverviewMapHandler class, there are these two methods :
>
>     public void componentShown(ComponentEvent e) {
>         if (sourceMap != null) {
>             sourceMap.addProjectionListener(this);
>         }
>     }
>
>     public void componentHidden(ComponentEvent e) {
>         if (sourceMap != null) {
>             sourceMap.removeProjectionListener(this);
>         }
>     }
>
> So that when the overview is not displayed, it doesn"t recieve any  
> projectionEvents. That's ok.
> These methods are called by the overview's WindowSupport (class  
> member).
> Here is the code (in WindowSupport) that calls componentHidden (in  
> OverviewMapHandler) :
>
>         public void componentHidden(ComponentEvent e) {
>         Iterator it = iterator();
>         while (it.hasNext()) {
>             ((ComponentListener) it.next()).componentHidden(e);
>         }
>
>         // We need to do this after componentHidden notifications,
>         // otherwise the component never finds out it's been hidden,
>         // it gets removed as a ComponentListener at cleanup.
>         Component source = (Component) e.getSource();
>         if (display == source) {
>             cleanUp();
>         }
>     }
>
> The overview is a WindowSupport's listener, so the componentHidden  
> call is forwarded to it.
> But after the overview map is hidden, you can see that the  
> 'cleanUp' method is also called.
> During this cleanUp, the OverviewMapHandler is removed from the  
> WindowSupport's listeners !
> That is the issue !
> When you open up the overview for the second time, the  
> componentShown call on the WindowSupport is not forwarded to the  
> overview !
> So the overview cannot be restored as a projectionListener, and  
> becomes semi-inactive : it sends the projectionChange events to the  
> main application's mapBean, but isn't refreshed when the mapBean's  
> projection changes !
>
> I don't know what is the right way to avoid this behaviour. What is  
> different from previous openMap releases ? (Or maybe this issue has  
> always been here !)
> Thanks in advance for your help !
>
> Stephane
> -- [To unsubscribe to this list send an email to "majdart@bbn.com"  
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Oct 10 12:06:28 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9AG6Su12025
	for openmap-users-archive; Tue, 10 Oct 2006 12:06:28 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9AG6Rm12022
	for <openmap-users@openmap.bbn.com>; Tue, 10 Oct 2006 12:06:27 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GXK33-0005Km-4g; Tue, 10 Oct 2006 12:01:41 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9AG02A12734
	for openmap-users-outgoing; Tue, 10 Oct 2006 12:00:02 -0400 (EDT)
In-Reply-To: <69596D9C5887874E9A35F6C8DF94B2AB02D85FE8@nautilus>
References: <69596D9C5887874E9A35F6C8DF94B2AB02D85FE8@nautilus>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <4A5B262C-839A-44C4-B9DD-BD4BDD127131@bbn.com>
Cc: "openMap" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Box shape around OMCircle during selection
Date: Tue, 10 Oct 2006 11:59:51 -0400
To: Alex Yeo <alexyeo@stee.stengg.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Alex,

You could extend OMCircle to create a class that, after generate 
(Projection) is called, fetches the bounding box around the shape in  
the OMGraphic, and creates an OMRectangle out of those parameters.   
Note that the rectangle will be defined in pixel space.  If you want  
to have the rectangle defined in coordinate space, you could probably  
take the pixel extents of the first rectangle, inverse project them  
using the Projection object, and then create a lat/lon OMRectangle.   
You'd have to call generate(Projection) on that rectangle, though,  
and modify your class to paint that OMRactangle in the paint() method.

Hope this helps,

Don

On Oct 10, 2006, at 4:08 AM, Alex Yeo wrote:

> Hi,
>
> I have created an OMGraphicList consisting of an OMCircle and an  
> OMText. My intent is to create a box around the selected OMCircle  
> (much like when an OMRaster graphic is selected) but not the OMText.
>
> Could anyone please provide a hint to how this is possible? Does it  
> have anything to do with the createShape method in the OMGraphic  
> class?
>
> Cheers.
>
> Alex



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Oct 10 15:51:30 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9AJpU512859
	for openmap-users-archive; Tue, 10 Oct 2006 15:51:30 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9AJpSm12856
	for <openmap-users@openmap.bbn.com>; Tue, 10 Oct 2006 15:51:28 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GXNZp-00082B-4u; Tue, 10 Oct 2006 15:47:45 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9AJig916979
	for openmap-users-outgoing; Tue, 10 Oct 2006 15:44:42 -0400 (EDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.com;
  h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=pqYLGmYqnjDy8ONjrG55NncgD1lT8oDOmutqIso6f1ycL7btpYd3zW22s+paFdkRg8zSJ1JDEsnfFAYTwgiVHXnnXGLQirdtaV7D+Fz/O/SF1qU4XIWLNYYPHrxa3tgjlQGyhFeEHp48SrQzIh2wjs4cTD1MI8ZIbzrtVgaaakg=  ;
Message-ID: <20061010193746.10724.qmail@web32513.mail.mud.yahoo.com>
Date: Tue, 10 Oct 2006 12:37:46 -0700 (PDT)
From: guang chen <guangchen55@yahoo.com>
Subject: [OpenMap Users] Help Needed!
To: repast-interest@lists.sourceforge.net,
   repast-agentanalyst@lists.sourceforge.net, openmap-users-digest@bbn.com,
   openspace@sal.uiuc.edu
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Old-X-Spam-Score: 1.1 (+)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.5 required=2.5 tests=FROM_ENDS_IN_NUMS 
	autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi All,

I am trying to use Repast to simulate local land use
and development pattern in 5, 10, 15, 20
years. 

I should be very grateful if you could help to provide
some thoughts on a reasonable conversion between steps
in Repast and actual years. 

Thanks in Advance,

Guang Chen

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct 11 12:00:58 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9BG0wT18067
	for openmap-users-archive; Wed, 11 Oct 2006 12:00:58 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9BG0vm18064
	for <openmap-users@openmap.bbn.com>; Wed, 11 Oct 2006 12:00:57 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GXgQM-0001Uq-4G; Wed, 11 Oct 2006 11:55:14 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9BFr2l03182
	for openmap-users-outgoing; Wed, 11 Oct 2006 11:53:02 -0400 (EDT)
Subject: RE: [OpenMap Users] Box shape around OMCircle during selection
MIME-Version: 1.0
Content-Type: text/plain;
	charset="Windows-1252"
Date: Wed, 11 Oct 2006 23:53:21 +0800
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
Message-ID: <69596D9C5887874E9A35F6C8DF94B2AB02B66F68@nautilus>
content-class: urn:content-classes:message
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] Box shape around OMCircle during selection
Thread-Index: AcbshUFPLMskB2bqQOCfPl+OXqGSWQAxnQA3
From: "Alex Yeo" <alexyeo@stee.stengg.com>
To: "Don Dietrick" <dietrick@bbn.com>
Cc: "openMap" <openmap-users@bbn.com>
Old-X-Spam-Score: -0.9 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9BFqxa03174
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Don,

Thanks for the tip. 

Cheers.

Alex


-----Original Message-----
From:	Don Dietrick [mailto:dietrick@bbn.com]
Sent:	Tue 10/10/2006 23:59
To:	Alex Yeo
Cc:	openMap
Subject:	Re: [OpenMap Users] Box shape around OMCircle during selection

Hi Alex,

You could extend OMCircle to create a class that, after generate 
(Projection) is called, fetches the bounding box around the shape in  
the OMGraphic, and creates an OMRectangle out of those parameters.   
Note that the rectangle will be defined in pixel space.  If you want  
to have the rectangle defined in coordinate space, you could probably  
take the pixel extents of the first rectangle, inverse project them  
using the Projection object, and then create a lat/lon OMRectangle.   
You'd have to call generate(Projection) on that rectangle, though,  
and modify your class to paint that OMRactangle in the paint() method.

Hope this helps,

Don

On Oct 10, 2006, at 4:08 AM, Alex Yeo wrote:

> Hi,
>
> I have created an OMGraphicList consisting of an OMCircle and an  
> OMText. My intent is to create a box around the selected OMCircle  
> (much like when an OMRaster graphic is selected) but not the OMText.
>
> Could anyone please provide a hint to how this is possible? Does it  
> have anything to do with the createShape method in the OMGraphic  
> class?
>
> Cheers.
>
> Alex



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the message
from your system; please do not copy or use it for any purpose, nor disclose
its contents to any other person. Thank you.]
---ST Electronics Group---




--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Oct 12 23:58:29 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9D3wTU26045
	for openmap-users-archive; Thu, 12 Oct 2006 23:58:29 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9D3wRm26042
	for <openmap-users@openmap.bbn.com>; Thu, 12 Oct 2006 23:58:27 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GYE70-0006yi-3q; Thu, 12 Oct 2006 23:53:30 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9D3nJR06446
	for openmap-users-outgoing; Thu, 12 Oct 2006 23:49:19 -0400 (EDT)
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Subject: RE: [OpenMap Users] Box shape around OMCircle during selection
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
Date: Fri, 13 Oct 2006 11:49:42 +0800
Message-ID: <69596D9C5887874E9A35F6C8DF94B2AB02D86001@nautilus>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] Box shape around OMCircle during selection
Thread-Index: AcbshUFPLMskB2bqQOCfPl+OXqGSWQB9RAlQ
From: "Alex Yeo" <alexyeo@stee.stengg.com>
To: "Don Dietrick" <dietrick@bbn.com>
Cc: "openMap" <openmap-users@bbn.com>
Old-X-Spam-Score: -2.6 (--)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9D3nGa06438
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Don,

I have implemented the guides that were provided below, but I am not clear how to "modify your class to paint that OMRactangle in the paint() method" since OMRect does not provide/inherit any paint() method.

Thanks in advance.

Alex

-----Original Message-----
From: Don Dietrick [mailto:dietrick@bbn.com]
Sent: 11 October 2006 00:00
To: Alex Yeo
Cc: openMap
Subject: Re: [OpenMap Users] Box shape around OMCircle during selection


Hi Alex,

You could extend OMCircle to create a class that, after generate 
(Projection) is called, fetches the bounding box around the shape in  
the OMGraphic, and creates an OMRectangle out of those parameters.   
Note that the rectangle will be defined in pixel space.  If you want  
to have the rectangle defined in coordinate space, you could probably  
take the pixel extents of the first rectangle, inverse project them  
using the Projection object, and then create a lat/lon OMRectangle.   
You'd have to call generate(Projection) on that rectangle, though,  
and modify your class to paint that OMRactangle in the paint() method.

Hope this helps,

Don

On Oct 10, 2006, at 4:08 AM, Alex Yeo wrote:

> Hi,
>
> I have created an OMGraphicList consisting of an OMCircle and an  
> OMText. My intent is to create a box around the selected OMCircle  
> (much like when an OMRaster graphic is selected) but not the OMText.
>
> Could anyone please provide a hint to how this is possible? Does it  
> have anything to do with the createShape method in the OMGraphic  
> class?
>
> Cheers.
>
> Alex



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the message
from your system; please do not copy or use it for any purpose, nor disclose
its contents to any other person. Thank you.]
---ST Electronics Group---

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Oct 13 02:13:37 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9D6DbQ26659
	for openmap-users-archive; Fri, 13 Oct 2006 02:13:37 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9D6Dam26656
	for <openmap-users@openmap.bbn.com>; Fri, 13 Oct 2006 02:13:36 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GYGBn-0006vA-6Q; Fri, 13 Oct 2006 02:06:36 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9D64uQ07918
	for openmap-users-outgoing; Fri, 13 Oct 2006 02:04:56 -0400 (EDT)
Message-ID: <452F2C66.6080806@navicon.dk>
Date: Fri, 13 Oct 2006 08:04:22 +0200
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: Alex Yeo <alexyeo@stee.stengg.com>
CC: openMap <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Box shape around OMCircle during selection
References: <69596D9C5887874E9A35F6C8DF94B2AB02D86001@nautilus>
In-Reply-To: <69596D9C5887874E9A35F6C8DF94B2AB02D86001@nautilus>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Old-X-Spam-Score: -2.6 (--)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Try subclassing OMCircle and then override render to be something like 
this (not tested):

public void render(Graphics g) {
   super.render(g);
   Rectangle2D loc = getShape().getBounds2D();
   int arc = 8;
   int offSet = 4;
   Stroke popedStroke = g.getStroke();
   g.setStroke(dashed);
   g.setColor(Color.BLACK);
   g.draw(new RoundRectangle2D.Double(loc.getMinX() - offSet / 2, loc
       .getMinY()
   - offSet / 2, loc.getWidth() + offSet + 2, loc.getHeight()
    + offSet + 2, arc, arc));
   g.setStroke(popedStroke);
}

regards
/carsten

Alex Yeo wrote:
> Hi Don,
>
> I have implemented the guides that were provided below, but I am not clear how to "modify your class to paint that OMRactangle in the paint() method" since OMRect does not provide/inherit any paint() method.
>
> Thanks in advance.
>
> Alex
>
> -----Original Message-----
> From: Don Dietrick [mailto:dietrick@bbn.com]
> Sent: 11 October 2006 00:00
> To: Alex Yeo
> Cc: openMap
> Subject: Re: [OpenMap Users] Box shape around OMCircle during selection
>
>
> Hi Alex,
>
> You could extend OMCircle to create a class that, after generate 
> (Projection) is called, fetches the bounding box around the shape in  
> the OMGraphic, and creates an OMRectangle out of those parameters.   
> Note that the rectangle will be defined in pixel space.  If you want  
> to have the rectangle defined in coordinate space, you could probably  
> take the pixel extents of the first rectangle, inverse project them  
> using the Projection object, and then create a lat/lon OMRectangle.   
> You'd have to call generate(Projection) on that rectangle, though,  
> and modify your class to paint that OMRactangle in the paint() method.
>
> Hope this helps,
>
> Don
>
> On Oct 10, 2006, at 4:08 AM, Alex Yeo wrote:
>
>   
>> Hi,
>>
>> I have created an OMGraphicList consisting of an OMCircle and an  
>> OMText. My intent is to create a box around the selected OMCircle  
>> (much like when an OMRaster graphic is selected) but not the OMText.
>>
>> Could anyone please provide a hint to how this is possible? Does it  
>> have anything to do with the createShape method in the OMGraphic  
>> class?
>>
>> Cheers.
>>
>> Alex
>>     
>
>
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Don Dietrick, dietrick@bbn.com
> BBN Technologies, Cambridge, MA
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> [This e-mail is confidential and may be priviledged. If you are not the
> intended recipient, please kindly notify us immediately and delete the message
> from your system; please do not copy or use it for any purpose, nor disclose
> its contents to any other person. Thank you.]
> ---ST Electronics Group---
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe openmap-users"]
>   

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Oct 13 02:42:11 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9D6gBP26788
	for openmap-users-archive; Fri, 13 Oct 2006 02:42:11 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9D6fbm26782
	for <openmap-users@openmap.bbn.com>; Fri, 13 Oct 2006 02:41:48 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GYGcy-00088y-3m; Fri, 13 Oct 2006 02:34:40 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9D6Xmu08200
	for openmap-users-outgoing; Fri, 13 Oct 2006 02:33:48 -0400 (EDT)
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Subject: RE: [OpenMap Users] Box shape around OMCircle during selection
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
Date: Fri, 13 Oct 2006 14:34:16 +0800
Message-ID: <69596D9C5887874E9A35F6C8DF94B2AB02B66F6F@nautilus>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] Box shape around OMCircle during selection
Thread-Index: AcbujZdqoFLDwwWBRBCqTLTIfSxtvAAA3IFg
From: "Alex Yeo" <alexyeo@stee.stengg.com>
To: =?iso-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
Cc: "openMap" <openmap-users@bbn.com>
Old-X-Spam-Score: -2.1 (--)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9D6Xja08192
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Carsten,

Yeah the code works (except that I needed to cast g to Graphics2D but that's minor)!

Great! Thanks.

Alex

-----Original Message-----
From: "Carsten Ø. Madsen" [mailto:com@navicon.dk]
Sent: 13 October 2006 14:04
To: Alex Yeo
Cc: openMap
Subject: Re: [OpenMap Users] Box shape around OMCircle during selection


Try subclassing OMCircle and then override render to be something like 
this (not tested):

public void render(Graphics g) {
   super.render(g);
   Rectangle2D loc = getShape().getBounds2D();
   int arc = 8;
   int offSet = 4;
   Stroke popedStroke = g.getStroke();
   g.setStroke(dashed);
   g.setColor(Color.BLACK);
   g.draw(new RoundRectangle2D.Double(loc.getMinX() - offSet / 2, loc
       .getMinY()
   - offSet / 2, loc.getWidth() + offSet + 2, loc.getHeight()
    + offSet + 2, arc, arc));
   g.setStroke(popedStroke);
}

regards
/carsten

Alex Yeo wrote:
> Hi Don,
>
> I have implemented the guides that were provided below, but I am not clear how to "modify your class to paint that OMRactangle in the paint() method" since OMRect does not provide/inherit any paint() method.
>
> Thanks in advance.
>
> Alex
>
> -----Original Message-----
> From: Don Dietrick [mailto:dietrick@bbn.com]
> Sent: 11 October 2006 00:00
> To: Alex Yeo
> Cc: openMap
> Subject: Re: [OpenMap Users] Box shape around OMCircle during selection
>
>
> Hi Alex,
>
> You could extend OMCircle to create a class that, after generate 
> (Projection) is called, fetches the bounding box around the shape in  
> the OMGraphic, and creates an OMRectangle out of those parameters.   
> Note that the rectangle will be defined in pixel space.  If you want  
> to have the rectangle defined in coordinate space, you could probably  
> take the pixel extents of the first rectangle, inverse project them  
> using the Projection object, and then create a lat/lon OMRectangle.   
> You'd have to call generate(Projection) on that rectangle, though,  
> and modify your class to paint that OMRactangle in the paint() method.
>
> Hope this helps,
>
> Don
>
> On Oct 10, 2006, at 4:08 AM, Alex Yeo wrote:
>
>   
>> Hi,
>>
>> I have created an OMGraphicList consisting of an OMCircle and an  
>> OMText. My intent is to create a box around the selected OMCircle  
>> (much like when an OMRaster graphic is selected) but not the OMText.
>>
>> Could anyone please provide a hint to how this is possible? Does it  
>> have anything to do with the createShape method in the OMGraphic  
>> class?
>>
>> Cheers.
>>
>> Alex
>>     
>
>
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Don Dietrick, dietrick@bbn.com
> BBN Technologies, Cambridge, MA
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> [This e-mail is confidential and may be priviledged. If you are not the
> intended recipient, please kindly notify us immediately and delete the message
> from your system; please do not copy or use it for any purpose, nor disclose
> its contents to any other person. Thank you.]
> ---ST Electronics Group---
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe openmap-users"]
>   

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Oct 16 03:16:53 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9G7Grq23755
	for openmap-users-archive; Mon, 16 Oct 2006 03:16:53 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9G7Gqm23752
	for <openmap-users@openmap.bbn.com>; Mon, 16 Oct 2006 03:16:52 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GZMcJ-0006Gd-5g; Mon, 16 Oct 2006 03:10:31 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9G763H26951
	for openmap-users-outgoing; Mon, 16 Oct 2006 03:06:03 -0400 (EDT)
Message-Id: <6.1.1.1.2.20061016075945.01abcd38@pop.cls.fr>
X-Sender: swasserhardt@pop.cls.fr (Unverified)
X-Mailer: QUALCOMM Windows Eudora Version 6.1.1.1
Date: Mon, 16 Oct 2006 09:05:39 +0200
To: openMap <openmap-users@bbn.com>
From: =?iso-8859-1?Q?St=E9phane?= Wasserhardt <swasserhardt@cls.fr>
Subject: [OpenMap Users] Question about PanMouseMode and MouseWheel
Mime-Version: 1.0
Content-Type: multipart/mixed;
	boundary="=====================_5510125==_"
Old-X-Spam-Score: -2.4 (--)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

--=====================_5510125==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

Hi !

I'd like to know if there is a particular reason to instanciate new 
BufferedImages each time PanMouseMode.createBuffers is called ?
I think this is only needed when the mapBean's width or height changes !

I ask this question because rotating the mouse wheel (numerous times) when 
the panMouseMode is active causes many createBuffers calls. The garbage 
collector doesn't have time enough to free the previous images thus causing 
slowdowns... If you have not much memory available (try with -Xmx32m) and a 
memory-consumming application, it can even cause OutOfMemoryErrors !

Another problem is multi-threading. Each time the wheel is rotated, 
projectionChanged is called from a  different worker thread. Each one of 
these calls lead to a createBuffer call : images instances are uselessly 
created one after the other! Instanciation can also happens during the 
previous call's instanciation!

First, I think it would be better to flush the bufferedImages before 
creating new instances, even if it won't change much... (have a look at 
http://mindprod.com/jgloss/packratting.html ).
The createBuffer method should also be synchronized to be sure that the 
images are completely instanciated before flushing and re-instanciating them...

For a real improvement, the images should only be instanciated when the 
mapBean's size changes. In other cases re-instanciation is not needed 
because the images are fully painted in the mouseDragged method.
I attached a new version of PanMouseMode. If I didn't miss anything, I 
think it should be better to use this one instead of the current version...

Stephane
--=====================_5510125==_
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: attachment; filename="PanMouseMode.java"

/*
 * 
 * Copyright (C) SISDEF Ltda. All rights reserved.
 * 
 * Created on 25-feb-2005
 */
package com.bbn.openmap.event;

import java.awt.AlphaComposite;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.Properties;

import javax.swing.ImageIcon;
import javax.swing.border.Border;

import com.bbn.openmap.MapBean;
import com.bbn.openmap.proj.Projection;
import com.bbn.openmap.util.PropUtils;

/**
 * PanMouseMode it is a class for Pan operation on the visible map. This class
 * show actual map in transparent mode. 25-feb-2005. There are a couple of
 * properties that can be set in this mouse mode:
 * 
 * <pre>
 *           # Floating number between 0-1, with 1 being opaque, default .5
 *           panmm.opaqueness=.5f
 *           # True/false, to leave old map up behind panned version.
 *           panmm.leaveShadow=true
 * </pre>
 * 
 * @author cursor
 * @author Stephane Wasserhardt
 */
public class PanMouseMode extends CoordMouseMode implements ProjectionListener {

    public final static String OpaquenessProperty = "opaqueness";

    public final static String LeaveShadowProperty = "leaveShadow";

    public final static String UseCursorProperty = "useCursor";

    public final float DEFAULT_OPAQUENESS = 0.5f;

    public final static transient String modeID = "Pan";

    private boolean isPanning = false;

    private BufferedImage bufferedMapImage = null;

    private BufferedImage bufferedRenderingImage = null;

    private int beanBufferWidth = 0;

    private int beanBufferHeight = 0;

    private int oX, oY;

    private float opaqueness;

    private boolean leaveShadow;

    private boolean useCursor;

    public PanMouseMode() {
        super(modeID, true);
        setUseCursor(true);
        setLeaveShadow(true);
        setOpaqueness(DEFAULT_OPAQUENESS);
    }

    public void setActive(boolean val) {
        if (!val) {
            bufferedMapImage = null;
            bufferedRenderingImage = null;
        }
    }

    /**
     * @return Returns the useCursor.
     */
    public boolean isUseCursor() {
        return useCursor;
    }

    /**
     * @param useCursor The useCursor to set.
     */
    public void setUseCursor(boolean useCursor) {
        this.useCursor = useCursor;
        if (useCursor) {
            /*
             * For who like make his CustomCursor
             */
            try {
                Toolkit tk = Toolkit.getDefaultToolkit();
                ImageIcon pointer = new ImageIcon(getClass().getResource("pan.gif"));
                Dimension bestSize = tk.getBestCursorSize(pointer.getIconWidth(), pointer.getIconHeight());
                Image pointerImage = pointer.getImage().getScaledInstance((int) bestSize.getWidth(),
                                                                          (int) bestSize.getHeight(),
                                                                          Image.SCALE_SMOOTH);
                Cursor cursor = tk.createCustomCursor(pointerImage, new Point(0, 0), "PP");
                setModeCursor(cursor);
                return;
            } catch (Exception e) {
                // Problem finding image probably, just move on.
            }
        }

        setModeCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
    }

    public void setProperties(String prefix, Properties props) {
        super.setProperties(prefix, props);
        prefix = PropUtils.getScopedPropertyPrefix(prefix);

        opaqueness = PropUtils.floatFromProperties(props, prefix + OpaquenessProperty, opaqueness);
        leaveShadow = PropUtils.booleanFromProperties(props, prefix + LeaveShadowProperty, leaveShadow);

        setUseCursor(PropUtils.booleanFromProperties(props, prefix + UseCursorProperty, isUseCursor()));

    }

    public Properties getProperties(Properties props) {
        props = super.getProperties(props);
        String prefix = PropUtils.getScopedPropertyPrefix(this);
        props.put(prefix + OpaquenessProperty, Float.toString(getOpaqueness()));
        props.put(prefix + LeaveShadowProperty, Boolean.toString(isLeaveShadow()));
        props.put(prefix + UseCursorProperty, Boolean.toString(isUseCursor()));
        return props;
    }

    public Properties getPropertyInfo(Properties props) {
        props = super.getPropertyInfo(props);

        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      OpaquenessProperty,
                                      "Transparency",
                                      "Transparency level for moving map, between 0 (clear) and 1 (opaque).",
                                      null);
        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      LeaveShadowProperty,
                                      "Leave Shadow",
                                      "Display current map in background while panning.",
                                      "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");

        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      UseCursorProperty,
                                      "Use Cursor",
                                      "Use hand cursor for mouse mode.",
                                      "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");

        return props;
    }

    /**
     * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
     *      The first click for drag, the image is generated. This image is
     *      redrawing when the mouse is move, but, I need to repain the original
     *      image.
     */
    public void mouseDragged(MouseEvent arg0) {

        int x = arg0.getX();
        int y = arg0.getY();

        MapBean mb = ((MapBean) arg0.getSource());

        if (!isPanning) {
            int w = mb.getWidth();
            int h = mb.getHeight();

            /*
             * Making the image
             */

            if (bufferedMapImage == null || bufferedRenderingImage == null) {
                createBuffers(w, h);
            }

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            Graphics2D g = (Graphics2D) ge.createGraphics(bufferedMapImage);
            g.setClip(0, 0, w, h);
            Border border = mb.getBorder();
            mb.setBorder(null);
            mb.paintAll(g);
            mb.setBorder(border);

            oX = x;
            oY = y;

            isPanning = true;

        } else {
            if (bufferedMapImage != null && bufferedRenderingImage != null) {
                Graphics2D gr2d = (Graphics2D) bufferedRenderingImage.getGraphics();
                /*
                 * Drawing original image whithout transparence and in the
                 * initial position
                 */
                if (leaveShadow) {
                    gr2d.drawImage(bufferedMapImage, 0, 0, null);
                } else {
                    gr2d.setPaint(mb.getBckgrnd());
                    gr2d.fillRect(0, 0, mb.getWidth(), mb.getHeight());
                }

                /*
                 * Drawing image whith transparence and in the mouse position
                 * minus origianl mouse click position
                 */
                gr2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opaqueness));
                gr2d.drawImage(bufferedMapImage, x - oX, y - oY, null);

                ((Graphics2D) mb.getGraphics()).drawImage(bufferedRenderingImage, 0, 0, null);
            }
        }
        super.mouseDragged(arg0);
    }

    /**
     * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
     *      Make Pan event for the map.
     */
    public void mouseReleased(MouseEvent arg0) {
        if (isPanning && arg0.getSource() instanceof MapBean) {
            MapBean mb = (MapBean) arg0.getSource();
            Projection proj = mb.getProjection();
            Point center = proj.forward(proj.getCenter());
            center.setLocation(center.getX() - arg0.getX() + oX, center.getY() - arg0.getY() + oY);
            mb.setCenter(proj.inverse(center));
            isPanning = false;
            // bufferedMapImage = null; //clean up when not active...
        }
        super.mouseReleased(arg0);
    }

    public boolean isLeaveShadow() {
        return leaveShadow;
    }

    public void setLeaveShadow(boolean leaveShadow) {
        this.leaveShadow = leaveShadow;
    }

    public float getOpaqueness() {
        return opaqueness;
    }

    public void setOpaqueness(float opaqueness) {
        this.opaqueness = opaqueness;
    }

    public boolean isPanning() {
        return isPanning;
    }

    public int getOX() {
        return oX;
    }

    public int getOY() {
        return oY;
    }

    public void projectionChanged(ProjectionEvent e) {
        Object obj = e.getSource();
        if (obj instanceof MapBean) {
            MapBean mb = (MapBean) obj;
            int w = mb.getWidth();
            int h = mb.getHeight();
            createBuffers(w, h);
        }
    }

    /**
     * Instanciates new image buffers if needed.<br>
     * This method is synchronized to avoid creating the images multiple times
     * if width and height doesn't change.
     * 
     * @param w mapBean's width.
     * @param h mapBean's height.
     */
    public synchronized void createBuffers(int w, int h) {
        if (w > 0 && h > 0 && (w != beanBufferWidth || h != beanBufferHeight)) {
            beanBufferWidth = w;
            beanBufferHeight = h;
            createBuffersImpl(w, h);
        }
    }

    /**
     * Instanciates new image buffers.
     * 
     * @param w Non-zero mapBean's width.
     * @param h Non-zero mapBean's height.
     */
    protected void createBuffersImpl(int w, int h) {
        // Release system resources used by previous images...
        if (bufferedMapImage != null) {
            bufferedMapImage.flush();
        }
        if (bufferedRenderingImage != null) {
            bufferedRenderingImage.flush();
        }
        // New images...
        bufferedMapImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
        bufferedRenderingImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    }
}

--=====================_5510125==_--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Oct 16 11:15:48 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9GFFmE25864
	for openmap-users-archive; Mon, 16 Oct 2006 11:15:48 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9GFFlm25861
	for <openmap-users@openmap.bbn.com>; Mon, 16 Oct 2006 11:15:47 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GZU6x-0001Wi-4b; Mon, 16 Oct 2006 11:10:39 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9GF6h903691
	for openmap-users-outgoing; Mon, 16 Oct 2006 11:06:43 -0400 (EDT)
In-Reply-To: <6.1.1.1.2.20061016075945.01abcd38@pop.cls.fr>
References: <6.1.1.1.2.20061016075945.01abcd38@pop.cls.fr>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <D944BAA0-7F19-4A83-8166-7E357830DCD1@bbn.com>
Cc: openMap <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Question about PanMouseMode and MouseWheel
Date: Mon, 16 Oct 2006 11:06:26 -0400
To: =?ISO-8859-1?Q?St=E9phane_Wasserhardt?= <swasserhardt@cls.fr>
X-Mailer: Apple Mail (2.752.2)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9GF6ea03683
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Stephane,

The latest version of the PanMouseMode in the beta out of CVS on the  
website does what you expect.

- Don



On Oct 16, 2006, at 3:05 AM, Stéphane Wasserhardt wrote:

> Hi !
>
> I'd like to know if there is a particular reason to instanciate new  
> BufferedImages each time PanMouseMode.createBuffers is called ?
> I think this is only needed when the mapBean's width or height  
> changes !
>
> I ask this question because rotating the mouse wheel (numerous  
> times) when the panMouseMode is active causes many createBuffers  
> calls. The garbage collector doesn't have time enough to free the  
> previous images thus causing slowdowns... If you have not much  
> memory available (try with -Xmx32m) and a memory-consumming  
> application, it can even cause OutOfMemoryErrors !
>
> Another problem is multi-threading. Each time the wheel is rotated,  
> projectionChanged is called from a  different worker thread. Each  
> one of these calls lead to a createBuffer call : images instances  
> are uselessly created one after the other! Instanciation can also  
> happens during the previous call's instanciation!
>
> First, I think it would be better to flush the bufferedImages  
> before creating new instances, even if it won't change much...  
> (have a look at http://mindprod.com/jgloss/packratting.html ).
> The createBuffer method should also be synchronized to be sure that  
> the images are completely instanciated before flushing and re- 
> instanciating them...
>
> For a real improvement, the images should only be instanciated when  
> the mapBean's size changes. In other cases re-instanciation is not  
> needed because the images are fully painted in the mouseDragged  
> method.
> I attached a new version of PanMouseMode. If I didn't miss  
> anything, I think it should be better to use this one instead of  
> the current version...
>
> Stephane
> <PanMouseMode.java>



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct 18 00:51:25 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9I4pPV04202
	for openmap-users-archive; Wed, 18 Oct 2006 00:51:25 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9I4pOm04199
	for <openmap-users@openmap.bbn.com>; Wed, 18 Oct 2006 00:51:24 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Ga3K8-0008G6-5F; Wed, 18 Oct 2006 00:46:36 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9I4hiJ05308
	for openmap-users-outgoing; Wed, 18 Oct 2006 00:43:44 -0400 (EDT)
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
Subject: [OpenMap Users] ECEFPoint - missing the altitude argument
Date: Wed, 18 Oct 2006 12:44:05 +0800
Message-ID: <69596D9C5887874E9A35F6C8DF94B2AB02B66F74@nautilus>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] Box shape around OMCircle during selection
Thread-Index: AcbujZdqoFLDwwWBRBCqTLTIfSxtvAD4Z2XA
From: "Alex Yeo" <alexyeo@stee.stengg.com>
To: "openMap" <openmap-users@bbn.com>
Old-X-Spam-Score: -2.6 (--)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9I4hga05300
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi,

I was recently attempting to convert a LatLonPoint with altitude into the Earth-Centered, Earth-Fixed (ECEF) coordinate system. However, I discovered that the means for doing so (ECEFPoint.LLtoECEF(LatLonPoint)) does not accept the altitude value.

Digging deeper, the conversion does use an internal altitude value but it is assumed to be 0 meters.

As such, I would like to propose a RFE to include an additional method ECEFPoint.LLtoECEF(LatLonPoint,float) where the second parameter will be the value of the altitude in meters.

Cheers.

Alex

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct 18 10:46:11 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9IEkBH06747
	for openmap-users-archive; Wed, 18 Oct 2006 10:46:11 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9IEkAm06744
	for <openmap-users@openmap.bbn.com>; Wed, 18 Oct 2006 10:46:10 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GaCaT-0004zx-5p; Wed, 18 Oct 2006 10:40:05 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9IEbGW13332
	for openmap-users-outgoing; Wed, 18 Oct 2006 10:37:16 -0400 (EDT)
Message-Id: <6.1.1.1.2.20061018161757.01ae2008@pop.cls.fr>
X-Sender: swasserhardt@pop.cls.fr (Unverified)
X-Mailer: QUALCOMM Windows Eudora Version 6.1.1.1
Date: Wed, 18 Oct 2006 16:36:57 +0200
To: openMap <openmap-users@bbn.com>
From: =?iso-8859-1?Q?St=E9phane?= Wasserhardt <swasserhardt@cls.fr>
Subject: [OpenMap Users] Lowest scale of projection
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Old-X-Spam-Score: -2.4 (--)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi list !

I'd like to know if there is a simple way to get the lowest visible scale 
of the current projection ??
I explain myself :
In Mercator projection, the scale given by the projection object is the 
"horizontal" scale, which is equal to the "vertical" scale at latitude 0 
(if I don't make any mistake).
But the vertical scale at other latitudes is lower !
In this case, I would like to get the scale at the highest displayed 
latitude... That is to say, the lowest displayed scale !
The same problem happens in gnomic projection, but in this case, it's the 
horizontal scale which changes according to the longitude value...

Thanks in advance !
Stephane 

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Oct 25 09:29:58 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9PDTwa06053
	for openmap-users-archive; Wed, 25 Oct 2006 09:29:58 -0400
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9PDTwm06050
	for <openmap-users@openmap.bbn.com>; Wed, 25 Oct 2006 09:29:58 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gcij8-0002fS-4r; Wed, 25 Oct 2006 09:23:26 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9PDJYx29713
	for openmap-users-outgoing; Wed, 25 Oct 2006 09:19:34 -0400 (EDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Subject: [OpenMap Users] Projection.isPlotable()
Date: Wed, 25 Oct 2006 09:19:15 -0400
Message-ID: <7E664C9A7DB0A942AB7AF0260D99AB83A54D66@FL67EXM02.gddsi.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Projection.isPlotable()
Thread-Index: Acb4OCslUJiCIIF0QvaZ5CL6Snc2sg==
From: "Newcomb, Michael-P57487" <Michael.Newcomb@gdc4s.com>
To: "openMap" <openmap-users@bbn.com>
X-OriginalArrivalTime: 25 Oct 2006 13:19:16.0971 (UTC) FILETIME=[2C2E0BB0:01C6F838]
Old-X-Spam-Score: -0.7 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id k9PDJWa29705
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

>From the API docs:

"Checks if a LatLonPoint is plot-able. 
Call this to check and see if a LatLonPoint can be plotted. This is
meant to be used for checking before projecting and rendering Point
objects (bitmaps or text objects tacked at a LatLonPoint for instance)."

The second part is not correct.

Mercator.isPlotable() always returns true! So, if I have lots and lots
of objects to transform to X,Y points, I end up transforming all of them
but I still need to do more checking to see if they *really* should be
rendered...

So, if I'm zoomed in and can only see the USA, why does
Projection.isPlotable(<somewhere in Asia>) return true?

IMHO, Projection.isPlotable() should only consider what is in it's view?
Isn't that what a Projection is?

Thanks,
Michael


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Oct 26 10:07:49 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9QE7nY12512
	for openmap-users-archive; Thu, 26 Oct 2006 10:07:49 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9QE7lm12509
	for <openmap-users@openmap.bbn.com>; Thu, 26 Oct 2006 10:07:47 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gd5mw-0006Lq-3w; Thu, 26 Oct 2006 10:00:54 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9QDtZo18501
	for openmap-users-outgoing; Thu, 26 Oct 2006 09:55:35 -0400 (EDT)
Message-ID: <4540B6BF.4060601@navicon.dk>
Date: Thu, 26 Oct 2006 15:23:11 +0200
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: OpenMap <openmap-users@bbn.com>
Subject: [OpenMap Users] GDAL integration
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Old-X-Spam-Score: -1.4 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi list

I did a rough OM integration of GDAL using the java swig bindings. In 
essence this means that more than 50 different types of rasters can 
loaded into OM via GDAL. The java binding is rather new so expect bugs.

The formats supported can be seen here:

http://www.remotesensing.org/gdal/formats_list.html

Comments, bugfixes etc are welcome.

The code can be browsed from here. It does have quit a few limitations!

http://navicon.dk/GDALLayer.java.html

regards
/carsten

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Oct 26 10:47:38 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id k9QElcq12657
	for openmap-users-archive; Thu, 26 Oct 2006 10:47:38 -0400
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id k9QElbm12654
	for <openmap-users@openmap.bbn.com>; Thu, 26 Oct 2006 10:47:37 -0400
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gd6S5-0006uF-6B; Thu, 26 Oct 2006 10:43:26 -0400
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id k9QEfWC19441
	for openmap-users-outgoing; Thu, 26 Oct 2006 10:41:32 -0400 (EDT)
Message-Id: <6.1.1.1.2.20061026161517.01b16518@pop.cls.fr>
X-Sender: swasserhardt@pop.cls.fr (Unverified)
X-Mailer: QUALCOMM Windows Eudora Version 6.1.1.1
Date: Thu, 26 Oct 2006 16:19:29 +0200
To: openMap <openmap-users@bbn.com>
From: =?iso-8859-1?Q?St=E9phane?= Wasserhardt <swasserhardt@cls.fr>
Subject: [OpenMap Users] PanMouseMode correction
Mime-Version: 1.0
Content-Type: multipart/mixed;
	boundary="=====================_2094078==_"
Old-X-Spam-Score: -1.4 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

--=====================_2094078==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

Hi !

Few days ago, I submitted a new version of PanMouseMode, but I found a tiny 
but in its code :
I forgot to re-initialize beanBufferWidth/Height when deactivating the 
mouseMode, causing the empty buffer images to stay null (the createBuffers 
method will prevent image from beeing re-instanciated since the width and 
height are the same the the bean's...).
Anyway, here is the fixed version !!

Stephane
--=====================_2094078==_
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: attachment; filename="PanMouseMode.java"

/*
 * 
 * Copyright (C) SISDEF Ltda. All rights reserved.
 * 
 * Created on 25-feb-2005
 */
package com.bbn.openmap.event;

import java.awt.AlphaComposite;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.Properties;

import javax.swing.ImageIcon;
import javax.swing.border.Border;

import com.bbn.openmap.MapBean;
import com.bbn.openmap.proj.Projection;
import com.bbn.openmap.util.PropUtils;

/**
 * PanMouseMode it is a class for Pan operation on the visible map. This class
 * show actual map in transparent mode. 25-feb-2005. There are a couple of
 * properties that can be set in this mouse mode:
 * 
 * <pre>
 *           # Floating number between 0-1, with 1 being opaque, default .5
 *           panmm.opaqueness=.5f
 *           # True/false, to leave old map up behind panned version.
 *           panmm.leaveShadow=true
 * </pre>
 * 
 * @author cursor
 * @author Stephane Wasserhardt
 */
public class PanMouseMode extends CoordMouseMode implements ProjectionListener {

    public final static String OpaquenessProperty = "opaqueness";

    public final static String LeaveShadowProperty = "leaveShadow";

    public final static String UseCursorProperty = "useCursor";

    public final float DEFAULT_OPAQUENESS = 0.5f;

    public final static transient String modeID = "Pan";

    private boolean isPanning = false;

    private BufferedImage bufferedMapImage = null;

    private BufferedImage bufferedRenderingImage = null;

    private int beanBufferWidth = 0;

    private int beanBufferHeight = 0;

    private int oX, oY;

    private float opaqueness;

    private boolean leaveShadow;

    private boolean useCursor;

    public PanMouseMode() {
        super(modeID, true);
        setUseCursor(true);
        setLeaveShadow(true);
        setOpaqueness(DEFAULT_OPAQUENESS);
    }

    public void setActive(boolean val) {
        if (!val) {
            if (bufferedMapImage != null) {
                bufferedMapImage.flush();
            }
            if (bufferedRenderingImage != null) {
                bufferedRenderingImage.flush();
            }
            beanBufferWidth = 0;
            beanBufferHeight = 0;
            bufferedMapImage = null;
            bufferedRenderingImage = null;
        }
    }

    /**
     * @return Returns the useCursor.
     */
    public boolean isUseCursor() {
        return useCursor;
    }

    /**
     * @param useCursor The useCursor to set.
     */
    public void setUseCursor(boolean useCursor) {
        this.useCursor = useCursor;
        if (useCursor) {
            /*
             * For who like make his CustomCursor
             */
            try {
                Toolkit tk = Toolkit.getDefaultToolkit();
                ImageIcon pointer = new ImageIcon(getClass().getResource("pan.gif"));
                Dimension bestSize = tk.getBestCursorSize(pointer.getIconWidth(), pointer.getIconHeight());
                Image pointerImage = pointer.getImage().getScaledInstance((int) bestSize.getWidth(),
                                                                          (int) bestSize.getHeight(),
                                                                          Image.SCALE_SMOOTH);
                Cursor cursor = tk.createCustomCursor(pointerImage, new Point(0, 0), "PP");
                setModeCursor(cursor);
                return;
            } catch (Exception e) {
                // Problem finding image probably, just move on.
            }
        }

        setModeCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
    }

    public void setProperties(String prefix, Properties props) {
        super.setProperties(prefix, props);
        prefix = PropUtils.getScopedPropertyPrefix(prefix);

        opaqueness = PropUtils.floatFromProperties(props, prefix + OpaquenessProperty, opaqueness);
        leaveShadow = PropUtils.booleanFromProperties(props, prefix + LeaveShadowProperty, leaveShadow);

        setUseCursor(PropUtils.booleanFromProperties(props, prefix + UseCursorProperty, isUseCursor()));

    }

    public Properties getProperties(Properties props) {
        props = super.getProperties(props);
        String prefix = PropUtils.getScopedPropertyPrefix(this);
        props.put(prefix + OpaquenessProperty, Float.toString(getOpaqueness()));
        props.put(prefix + LeaveShadowProperty, Boolean.toString(isLeaveShadow()));
        props.put(prefix + UseCursorProperty, Boolean.toString(isUseCursor()));
        return props;
    }

    public Properties getPropertyInfo(Properties props) {
        props = super.getPropertyInfo(props);

        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      OpaquenessProperty,
                                      "Transparency",
                                      "Transparency level for moving map, between 0 (clear) and 1 (opaque).",
                                      null);
        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      LeaveShadowProperty,
                                      "Leave Shadow",
                                      "Display current map in background while panning.",
                                      "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");

        PropUtils.setI18NPropertyInfo(i18n,
                                      props,
                                      PanMouseMode.class,
                                      UseCursorProperty,
                                      "Use Cursor",
                                      "Use hand cursor for mouse mode.",
                                      "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");

        return props;
    }

    /**
     * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
     *      The first click for drag, the image is generated. This image is
     *      redrawing when the mouse is move, but, I need to repain the original
     *      image.
     */
    public void mouseDragged(MouseEvent arg0) {

        int x = arg0.getX();
        int y = arg0.getY();

        MapBean mb = ((MapBean) arg0.getSource());

        if (!isPanning) {
            int w = mb.getWidth();
            int h = mb.getHeight();

            /*
             * Making the image
             */

            if (bufferedMapImage == null || bufferedRenderingImage == null) {
                createBuffers(w, h);
            }

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            Graphics2D g = (Graphics2D) ge.createGraphics(bufferedMapImage);
            g.setClip(0, 0, w, h);
            Border border = mb.getBorder();
            mb.setBorder(null);
            mb.paintAll(g);
            mb.setBorder(border);

            oX = x;
            oY = y;

            isPanning = true;

        } else {
            if (bufferedMapImage != null && bufferedRenderingImage != null) {
                Graphics2D gr2d = (Graphics2D) bufferedRenderingImage.getGraphics();
                /*
                 * Drawing original image whithout transparence and in the
                 * initial position
                 */
                if (leaveShadow) {
                    gr2d.drawImage(bufferedMapImage, 0, 0, null);
                } else {
                    gr2d.setPaint(mb.getBckgrnd());
                    gr2d.fillRect(0, 0, mb.getWidth(), mb.getHeight());
                }

                /*
                 * Drawing image whith transparence and in the mouse position
                 * minus origianl mouse click position
                 */
                gr2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opaqueness));
                gr2d.drawImage(bufferedMapImage, x - oX, y - oY, null);

                ((Graphics2D) mb.getGraphics()).drawImage(bufferedRenderingImage, 0, 0, null);
            }
        }
        super.mouseDragged(arg0);
    }

    /**
     * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
     *      Make Pan event for the map.
     */
    public void mouseReleased(MouseEvent arg0) {
        if (isPanning && arg0.getSource() instanceof MapBean) {
            MapBean mb = (MapBean) arg0.getSource();
            Projection proj = mb.getProjection();
            Point center = proj.forward(proj.getCenter());
            center.setLocation(center.getX() - arg0.getX() + oX, center.getY() - arg0.getY() + oY);
            mb.setCenter(proj.inverse(center));
            isPanning = false;
            // bufferedMapImage = null; //clean up when not active...
        }
        super.mouseReleased(arg0);
    }

    public boolean isLeaveShadow() {
        return leaveShadow;
    }

    public void setLeaveShadow(boolean leaveShadow) {
        this.leaveShadow = leaveShadow;
    }

    public float getOpaqueness() {
        return opaqueness;
    }

    public void setOpaqueness(float opaqueness) {
        this.opaqueness = opaqueness;
    }

    public boolean isPanning() {
        return isPanning;
    }

    public int getOX() {
        return oX;
    }

    public int getOY() {
        return oY;
    }

    public void projectionChanged(ProjectionEvent e) {
        Object obj = e.getSource();
        if (obj instanceof MapBean) {
            MapBean mb = (MapBean) obj;
            int w = mb.getWidth();
            int h = mb.getHeight();
            createBuffers(w, h);
        }
    }

    /**
     * Instanciates new image buffers if needed.<br>
     * This method is synchronized to avoid creating the images multiple times
     * if width and height doesn't change.
     * 
     * @param w mapBean's width.
     * @param h mapBean's height.
     */
    public synchronized void createBuffers(int w, int h) {
        if (w > 0 && h > 0 && (w != beanBufferWidth || h != beanBufferHeight)) {
            beanBufferWidth = w;
            beanBufferHeight = h;
            createBuffersImpl(w, h);
        }
    }

    /**
     * Instanciates new image buffers.
     * 
     * @param w Non-zero mapBean's width.
     * @param h Non-zero mapBean's height.
     */
    protected void createBuffersImpl(int w, int h) {
        // Release system resources used by previous images...
        if (bufferedMapImage != null) {
            bufferedMapImage.flush();
        }
        if (bufferedRenderingImage != null) {
            bufferedRenderingImage.flush();
        }
        // New images...
        bufferedMapImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
        bufferedRenderingImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    }
}

--=====================_2094078==_--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov  9 13:08:08 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kA9I88q08085
	for openmap-users-archive; Thu, 9 Nov 2006 13:08:08 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kA9I88m08082
	for <openmap-users@openmap.bbn.com>; Thu, 9 Nov 2006 13:08:08 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GiEDs-0000iV-3P; Thu, 09 Nov 2006 13:01:56 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kA9HuMw04143
	for openmap-users-outgoing; Thu, 9 Nov 2006 12:56:22 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:mime-version:content-transfer-encoding:message-id:content-type:to:from:subject:date:x-mailer;
        b=fAqF4PoXoL7M2VilhoFNf7iaZddI/b4Quhoznh3EWhtkoIAJG4+RX/REwIZZKFjkR9R3r9sTtpYkwTIWZwOwuqxfZztt8Rn+iuF87q/Porb0kS2pCnhcZ6E/Q9KxzIc5CBmd2hxZz9ylVJ8VUDk07+H70t7uLXKPrKzk3wb4q90=
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Transfer-Encoding: 7bit
Message-Id: <319FF1C9-49AF-46EB-813C-33F1AF6EC626@gmail.com>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
To: openmap-users@bbn.com
From: Bas Schulte <basschulte@gmail.com>
Subject: [OpenMap Users] Getting at current projection in OMGraphicHandlerPlugIn?
Date: Thu, 9 Nov 2006 18:55:58 +0100
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=RCVD_BY_IP 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi,

I'm new at using openmap and I love it! Got an experimental  
navigation app running in a couple of hours which is quite awesome.

Tons of questions arise though, hope you can bear with me... I wrote  
a plugin that displays my chart (jpg/png etc.) just fine at the right  
spot now I'd like to be able to get at lat/lon in my mouseClicked  
method. I know I can use the current projection's 'inverse' method to  
give me that information based on x/y from the event but for the life  
of it I can't find how to get at that bit of info.

I worked around it by keeping the Projection that's being fed to  
getRectangle in my plugin which seems to work but there must be a  
proper way to get at that info? I'm trying to get the architecture in  
my head but it's quite complicated after hacking around for a day ;)

What's the proper way to get at the current projection in my  
overriden mouseClicked method?

Thanks,

Bas.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov  9 13:22:54 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kA9IMsa08189
	for openmap-users-archive; Thu, 9 Nov 2006 13:22:54 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kA9IMsm08186
	for <openmap-users@openmap.bbn.com>; Thu, 9 Nov 2006 13:22:54 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GiEVf-0000yf-4c; Thu, 09 Nov 2006 13:20:19 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kA9IILb04507
	for openmap-users-outgoing; Thu, 9 Nov 2006 13:18:21 -0500 (EST)
In-Reply-To: <319FF1C9-49AF-46EB-813C-33F1AF6EC626@gmail.com>
References: <319FF1C9-49AF-46EB-813C-33F1AF6EC626@gmail.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <09807984-C239-4D03-8325-B095E176711C@bbn.com>
Cc: openmap-users@bbn.com
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Getting at current projection in OMGraphicHandlerPlugIn?
Date: Thu, 9 Nov 2006 13:18:15 -0500
To: Bas Schulte <basschulte@gmail.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Bas,

It's actually a little easier than that.  The MouseEvent is actually  
a MapMouseEvent, and if you cast it to a MapMouseEvent you'll find it  
has a getLatLon() method.

The other thing you can do from a plugin is call getComponent(),  
which returns the layer (PlugInLayer), and you can call getProjection 
() on the layer.

Hope this helps,

Don


On Nov 9, 2006, at 12:55 PM, Bas Schulte wrote:

> Hi,
>
> I'm new at using openmap and I love it! Got an experimental  
> navigation app running in a couple of hours which is quite awesome.
>
> Tons of questions arise though, hope you can bear with me... I  
> wrote a plugin that displays my chart (jpg/png etc.) just fine at  
> the right spot now I'd like to be able to get at lat/lon in my  
> mouseClicked method. I know I can use the current projection's  
> 'inverse' method to give me that information based on x/y from the  
> event but for the life of it I can't find how to get at that bit of  
> info.
>
> I worked around it by keeping the Projection that's being fed to  
> getRectangle in my plugin which seems to work but there must be a  
> proper way to get at that info? I'm trying to get the architecture  
> in my head but it's quite complicated after hacking around for a  
> day ;)
>
> What's the proper way to get at the current projection in my  
> overriden mouseClicked method?
>
> Thanks,
>
> Bas.
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov  9 13:49:50 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kA9InoL08400
	for openmap-users-archive; Thu, 9 Nov 2006 13:49:50 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kA9Inom08397
	for <openmap-users@openmap.bbn.com>; Thu, 9 Nov 2006 13:49:50 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GiEsO-0003iK-40; Thu, 09 Nov 2006 13:43:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kA9Igg105323
	for openmap-users-outgoing; Thu, 9 Nov 2006 13:42:42 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:mime-version:in-reply-to:references:content-type:message-id:content-transfer-encoding:from:subject:date:to:x-mailer;
        b=PU7fR/mnqlh5NaHvavfhL5THsrwASqF4g5NwyDMP1w56Q9ZT3fHWkpdnSyMZ4O3idkl/abNTIja5AxIu64S+uXKe6fPupOSr2MWiFvbPmlm6uDC5K0IaTK+iQKgubAuTGz+R9XA5Un8zdap/Nc6m6LAexjoEd/5uY7z0nPytV/0=
Mime-Version: 1.0 (Apple Message framework v752.3)
In-Reply-To: <09807984-C239-4D03-8325-B095E176711C@bbn.com>
References: <319FF1C9-49AF-46EB-813C-33F1AF6EC626@gmail.com> <09807984-C239-4D03-8325-B095E176711C@bbn.com>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <0C745FC6-F22C-4FBE-9493-7BA9DEB7C710@gmail.com>
Content-Transfer-Encoding: 7bit
From: Bas Schulte <basschulte@gmail.com>
Subject: Re: [OpenMap Users] Getting at current projection in OMGraphicHandlerPlugIn?
Date: Thu, 9 Nov 2006 19:42:19 +0100
To: openmap-users@bbn.com
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=RCVD_BY_IP 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi,

On 9-nov-2006, at 19:18, Don Dietrick wrote:

> It's actually a little easier than that.  The MouseEvent is  
> actually a MapMouseEvent, and if you cast it to a MapMouseEvent  
> you'll find it has a getLatLon() method.
>
> The other thing you can do from a plugin is call getComponent(),  
> which returns the layer (PlugInLayer), and you can call  
> getProjection() on the layer.

Got ya.

So it boils down to this:

public class MyFirstPlugIn extends OMGraphicHandlerPlugIn   //  
OMGraphicHandlerPlugIn implements MapMouseListener interface
{
    ...

    public boolean mouseClicked(MouseEvent e)
    {
       if (e instanceof MapMouseEvent) {
          LatLonPoint lp = ((MapMouseEvent)e).getLatLon();

          System.err.println("Latlon of click=" + lp.toString());
       } else {
          System.err.println("HUH? got mouseClicked but not a  
MapMouseEvent?!?");
       }

       return (false);
    }

    ...
}


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Sat Nov 11 12:10:29 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kABHATd29013
	for openmap-users-archive; Sat, 11 Nov 2006 12:10:29 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kABHATm29010
	for <openmap-users@openmap.bbn.com>; Sat, 11 Nov 2006 12:10:29 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GiwHF-0006w0-5c; Sat, 11 Nov 2006 12:04:21 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kABH08T10060
	for openmap-users-outgoing; Sat, 11 Nov 2006 12:00:08 -0500 (EST)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Subject: [OpenMap Users] Having a problem seeing a menu
Date: Sat, 11 Nov 2006 11:43:38 -0500
Message-ID: <EC65DCC810869241816315431C3BBEF101065526@vaff01-mail01.ad.gd-ais.com>
In-Reply-To: <200611101130.kAABU2g17568@stout.bbn.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Having a problem seeing a menu
Thread-Index: AccEvAmVEUMOUOyWQf24hzJolkrqsgA8yObQ
From: "Norfleet, Timothy M." <timothy.norfleet@gd-ais.com>
To: <owner-openmap-users-digest@bbn.com>, <openmap-users-digest@bbn.com>
X-OriginalArrivalTime: 11 Nov 2006 16:43:40.0386 (UTC) FILETIME=[8AC46C20:01C705B0]
Old-X-Spam-Score: -1.6 (-)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kABH05a10052
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Help Need

Having a problem seeing a menu

I created a menu to place in the menu bar.
When running my application within my IDE (JBUILDER & ECLIPES) the menu
appears with no problem.
When running my application with a batch file, I can see that the my
menu class can be seen but it does not display in the menu bar.
The proprieties file is set correctly 
The batch file seems to be correct.

menulist.menus=raidMenu 
raidMenu.class=sg.gui.RaidMenu

Thanks
Tim

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Sun Nov 12 11:08:19 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kACG8JS18553
	for openmap-users-archive; Sun, 12 Nov 2006 11:08:19 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kACG8Jm18550
	for <openmap-users@openmap.bbn.com>; Sun, 12 Nov 2006 11:08:19 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GjHoC-00046v-3I; Sun, 12 Nov 2006 11:03:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kACG0RA23138
	for openmap-users-outgoing; Sun, 12 Nov 2006 11:00:27 -0500 (EST)
Message-ID: <455744EB.5040309@navicon.dk>
Date: Sun, 12 Nov 2006 16:59:39 +0100
From: =?UTF-8?B?IkNhcnN0ZW4gw5guIE1hZHNlbiI=?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: OpenMap <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Having a problem seeing a menu
References: <EC65DCC810869241816315431C3BBEF101065526@vaff01-mail01.ad.gd-ais.com>
In-Reply-To: <EC65DCC810869241816315431C3BBEF101065526@vaff01-mail01.ad.gd-ais.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Old-X-Spam-Score: -1.1 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi

Sounds like either a classpath problem or the location of your 
openmap.propertie(s) are different in your IDE vs the bat file.

regards
/carsten


Norfleet, Timothy M. wrote:
> Help Need
>
> Having a problem seeing a menu
>
> I created a menu to place in the menu bar.
> When running my application within my IDE (JBUILDER & ECLIPES) the menu
> appears with no problem.
> When running my application with a batch file, I can see that the my
> menu class can be seen but it does not display in the menu bar.
> The proprieties file is set correctly 
> The batch file seems to be correct.
>
> menulist.menus=raidMenu 
> raidMenu.class=sg.gui.RaidMenu
>
> Thanks
> Tim
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe openmap-users"]
>   

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Nov 13 10:24:54 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kADFOsW29580
	for openmap-users-archive; Mon, 13 Nov 2006 10:24:54 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kADFOnm29577
	for <openmap-users@openmap.bbn.com>; Mon, 13 Nov 2006 10:24:49 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GjdaR-0002uh-4c; Mon, 13 Nov 2006 10:19:03 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kADFFOw09216
	for openmap-users-outgoing; Mon, 13 Nov 2006 10:15:24 -0500 (EST)
In-Reply-To: <EC65DCC810869241816315431C3BBEF101065526@vaff01-mail01.ad.gd-ais.com>
References: <EC65DCC810869241816315431C3BBEF101065526@vaff01-mail01.ad.gd-ais.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <152B18D7-51B5-4B0E-98E0-F54081E9670C@bbn.com>
Cc: OpenMap Mailing List <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Having a problem seeing a menu
Date: Mon, 13 Nov 2006 10:15:11 -0500
To: "Norfleet, Timothy M." <timothy.norfleet@gd-ais.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Tim,

What does the batch file look like?

If you launch with a -Ddebug.componentfactory jvm argument, do you  
see the menu getting created along with the other expected  
components?  Is there any other complaint in the output?

- Don


On Nov 11, 2006, at 11:43 AM, Norfleet, Timothy M. wrote:

> Help Need
>
> Having a problem seeing a menu
>
> I created a menu to place in the menu bar.
> When running my application within my IDE (JBUILDER & ECLIPES) the  
> menu
> appears with no problem.
> When running my application with a batch file, I can see that the my
> menu class can be seen but it does not display in the menu bar.
> The proprieties file is set correctly
> The batch file seems to be correct.
>
> menulist.menus=raidMenu
> raidMenu.class=sg.gui.RaidMenu
>
> Thanks
> Tim
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 14 12:44:18 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAEHiIx11331
	for openmap-users-archive; Tue, 14 Nov 2006 12:44:18 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAEHiHm11328
	for <openmap-users@openmap.bbn.com>; Tue, 14 Nov 2006 12:44:18 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gk2ED-0005WW-3O; Tue, 14 Nov 2006 12:37:45 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAEHX3x07359
	for openmap-users-outgoing; Tue, 14 Nov 2006 12:33:03 -0500 (EST)
Message-Id: <200611141657.kAEGvWa5020225@ll.mit.edu>
From: "Tim Schreiner" <tjs@ll.mit.edu>
To: "'OpenMap Mailing List'" <openmap-users@bbn.com>
Subject: [OpenMap Users] Can't see vfp Nautical chart data ?
Date: Tue, 14 Nov 2006 11:49:40 -0500
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
Thread-Index: AccHNzu6e5qzAL1HTBqBdnb1L284hwA01y+Q
In-Reply-To: <152B18D7-51B5-4B0E-98E0-F54081E9670C@bbn.com>
Old-X-Spam-Score: -1.1 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=MSGID_FROM_MTA_HEADER 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

I am using a VPF layer in my open map application and when I use VMAP data,
everything works fine. If I switch to using nautical charts (DNC), I don't
see anything getting displayed.

I also notice the two directory structures are a bit different.

The NauticalCharts look like this:

Alaska/DNC25/
..various chart dirs
DHT (file)
LAT (file)

The VMAPs look like this:

Northamerica/
FGDC_DAT.txt
VIEW (dir)
VMAPLV0 (dir)
   NOAMER (dir)
   RFERENCE (dir)
   DHT (file)
   LAT (file)

My openmap properties file looks like this:

vpfcache.class=com.bbn.openmap.layer.vpf.LibraryBean
vpfcache.name=VMAPLEVEL0
# this is the VMAP data and it works.
#vpfcache.vpfPath=C:/northamerica/VMAPLV0

# this is the DNC data and it does not work.
vpfcache.vpfPath=C:/AlaskaNautical_charts/DNC25


Has anyone used the DNC's in openmap?

Thanks in advance.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 14 14:44:02 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAEJi2l12204
	for openmap-users-archive; Tue, 14 Nov 2006 14:44:02 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAEJi2m12201
	for <openmap-users@openmap.bbn.com>; Tue, 14 Nov 2006 14:44:02 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gk48Y-00076W-5k; Tue, 14 Nov 2006 14:40:02 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAEJcTn10409
	for openmap-users-outgoing; Tue, 14 Nov 2006 14:38:29 -0500 (EST)
In-Reply-To: <200611141657.kAEGvWa5020225@ll.mit.edu>
References: <200611141657.kAEGvWa5020225@ll.mit.edu>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <7A3582DA-5572-4546-AC23-5BC119A8F7DA@bbn.com>
Cc: "'OpenMap Mailing List'" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Can't see vfp Nautical chart data ?
Date: Tue, 14 Nov 2006 14:38:25 -0500
To: Tim Schreiner <tjs@ll.mit.edu>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Tim,

I've used DNC data.  You'd probably have to change the feature types,  
too.  You might want to try running the VPFConfig class on the DNC25  
directory, or the com.bbn.openmap.layer.vpf.Server class on it, to  
see what the feature/coverage names are.

- Don


On Nov 14, 2006, at 11:49 AM, Tim Schreiner wrote:

> I am using a VPF layer in my open map application and when I use  
> VMAP data,
> everything works fine. If I switch to using nautical charts (DNC),  
> I don't
> see anything getting displayed.
>
> I also notice the two directory structures are a bit different.
>
> The NauticalCharts look like this:
>
> Alaska/DNC25/
> ..various chart dirs
> DHT (file)
> LAT (file)
>
> The VMAPs look like this:
>
> Northamerica/
> FGDC_DAT.txt
> VIEW (dir)
> VMAPLV0 (dir)
>    NOAMER (dir)
>    RFERENCE (dir)
>    DHT (file)
>    LAT (file)
>
> My openmap properties file looks like this:
>
> vpfcache.class=com.bbn.openmap.layer.vpf.LibraryBean
> vpfcache.name=VMAPLEVEL0
> # this is the VMAP data and it works.
> #vpfcache.vpfPath=C:/northamerica/VMAPLV0
>
> # this is the DNC data and it does not work.
> vpfcache.vpfPath=C:/AlaskaNautical_charts/DNC25
>
>
> Has anyone used the DNC's in openmap?
>
> Thanks in advance.
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 14 18:03:22 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAEN3M613642
	for openmap-users-archive; Tue, 14 Nov 2006 18:03:22 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAEN3Mm13639
	for <openmap-users@openmap.bbn.com>; Tue, 14 Nov 2006 18:03:22 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gk7Dw-0003pK-4w; Tue, 14 Nov 2006 17:57:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAEMuC414344
	for openmap-users-outgoing; Tue, 14 Nov 2006 17:56:12 -0500 (EST)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Subject: [OpenMap Users] Having problems using creating a component LayerUtils
Date: Tue, 14 Nov 2006 17:40:14 -0500
Message-ID: <EC65DCC810869241816315431C3BBEF101065802@vaff01-mail01.ad.gd-ais.com>
In-Reply-To: <7A3582DA-5572-4546-AC23-5BC119A8F7DA@bbn.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Having problems using creating a component LayerUtils
Thread-Index: AccIJb55fMqISQKdRmmH/f6ce+6O2QAF43ng
From: "Norfleet, Timothy M." <timothy.norfleet@gd-ais.com>
To: "Don Dietrick" <dietrick@bbn.com>
Cc: "OpenMap Mailing List" <openmap-users@bbn.com>
X-OriginalArrivalTime: 14 Nov 2006 22:40:19.0562 (UTC) FILETIME=[DCE8CCA0:01C7083D]
Old-X-Spam-Score: -0.9 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAEMuAa14331
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

All
Having problems using the class below. Getting deprecation errors
import com.bbn.openmap.layer.util.LayerUtils;

Some how this is stopping me from creating a component. Can some help me
with it's replacement.

Tim


 

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 14 18:19:08 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAENJ8V13744
	for openmap-users-archive; Tue, 14 Nov 2006 18:19:08 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAENJ8m13741
	for <openmap-users@openmap.bbn.com>; Tue, 14 Nov 2006 18:19:08 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gk7VJ-00043d-5I; Tue, 14 Nov 2006 18:15:45 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAENEoU14729
	for openmap-users-outgoing; Tue, 14 Nov 2006 18:14:50 -0500 (EST)
In-Reply-To: <EC65DCC810869241816315431C3BBEF101065802@vaff01-mail01.ad.gd-ais.com>
References: <EC65DCC810869241816315431C3BBEF101065802@vaff01-mail01.ad.gd-ais.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <66832452-6926-4141-8285-221CF1EF8541@bbn.com>
Cc: "OpenMap Mailing List" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Having problems using creating a component LayerUtils
Date: Tue, 14 Nov 2006 18:14:46 -0500
To: "Norfleet, Timothy M." <timothy.norfleet@gd-ais.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

LayerUtils was replaced by com.bbn.openmap.util.PropUtils.

- Don


On Nov 14, 2006, at 5:40 PM, Norfleet, Timothy M. wrote:

> All
> Having problems using the class below. Getting deprecation errors
> import com.bbn.openmap.layer.util.LayerUtils;
>
> Some how this is stopping me from creating a component. Can some  
> help me
> with it's replacement.
>
> Tim
>
>
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 15 05:00:47 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAFA0l918765
	for openmap-users-archive; Wed, 15 Nov 2006 05:00:47 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAFA0lm18762
	for <openmap-users@openmap.bbn.com>; Wed, 15 Nov 2006 05:00:47 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkHRP-0004pY-4f; Wed, 15 Nov 2006 04:52:23 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAF9noQ21543
	for openmap-users-outgoing; Wed, 15 Nov 2006 04:49:50 -0500 (EST)
Message-ID: <20061115094241.46840.qmail@web405.biz.mail.mud.yahoo.com>
Date: Wed, 15 Nov 2006 09:42:41 +0000 (GMT)
From: Vinesh Gautam <vineshgautam@skymet.net>
Subject: [OpenMap Users] Open satellite image
To: openmap-users@bbn.com
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="0-700366402-1163583761=:38378"
Content-Transfer-Encoding: 8bit
Old-X-Spam-Score: 0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.5 required=2.5 tests=HTML_20_30,HTML_MESSAGE 
	autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

--0-700366402-1163583761=:38378
Content-Type: multipart/alternative; boundary="0-1417017501-1163583761=:38378"

--0-1417017501-1163583761=:38378
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Dear All,
   
  I have got a problem about opening an image of Satellite. The image is from DUNDEE.(http://www.sat.dundee.ac.uk/) I would like to open the image on Openmap basemap. For the reference i am attaching the image. 
   
  Please help me to sort out the problem that how can i open the image on openmap basemap as a different layer. Please guide me how can i open this type of image.
   
   



--0-1417017501-1163583761=:38378
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV>Dear All,</DIV>  <DIV>&nbsp;</DIV>  <DIV>I have got a problem about opening an image of Satellite. The image is from DUNDEE.(<A href="http://www.sat.dundee.ac.uk/">http://www.sat.dundee.ac.uk/</A>) I would like to open the image on Openmap basemap. For the reference i am attaching the image. </DIV>  <DIV>&nbsp;</DIV>  <DIV>Please help me to sort out the problem that how can i open the image on openmap basemap as a different layer. Please guide me how can i open this type of image.</DIV>  <DIV>&nbsp;</DIV>  <DIV>&nbsp;</DIV><BR><BR>
--0-1417017501-1163583761=:38378--
--0-700366402-1163583761=:38378
Content-Type: image/pjpeg; name="2006_11_15_0_MET5_2_S2.jpg"
Content-Transfer-Encoding: base64
Content-Description: 4257625515-2006_11_15_0_MET5_2_S2.jpg
Content-Disposition: inline; filename="2006_11_15_0_MET5_2_S2.jpg"

/9j/4AAQSkZJRgABAQAAAQABAAD//gBMQ29weXJpZ2h0IEVVTUVUU0FULCBO
RVJDIFNhdGVsbGl0ZSBSZWNlaXZpbmcgU3RhdGlvbiwgVW5pdmVyc2l0eSBv
ZiBEdW5kZWX/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4p
LSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//wAALCATiBPIBAREA
/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIE
AwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jy
ggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlq
c3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLD
xMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/
AOQnTTnGmpLJaR6ezQB3ix9oUbR55OATjfn74J6bPlzVq30/S5bq6MkFp5kV
gJWhS6PkRz+eqqokBbKlSufmxlz8yYyrLXSdMuLa/uYRK1nZvd7bmZJAsy+X
+4G4DaGDDJDbc71HOcDM1g6aiwQ2NvhxBA7zLPvDO0Slxjthu2eDuznIC6Nr
YWd74geKzt2uo/scUkSFWkRGKR7hL5ChiBlhlQDv27v4qluoNB8u7tYxAMXl
/wCRKk4ysaRq0Qz1YMy7QSSMF8ZJBGdqUlpNoWmta2ljG8aeXcSJIRMZAznl
S3IKlTu24zwCMbRL4Ta2W5vjcRW0rC1/cpPJCgL+ZH0aZWQHbu6g8ZxUtr9j
NnLJefYfPge988Dy+S8IWHYF4YCQNjZkL14HNaenS+Hjewxy29irCCy8yWQj
yz81tvxk43HMwfjov+/mhHcpF4xsjcw6alpK8UciEWs8axFxu3NGoQHrzgMB
3xVa2uI7rStQmuF01Jm5OYkRuFAUBAARzyDH3B8wFWBE+ptpUOjQNYyQPd27
WjBDDGQC0LNLzkmUbwMhxhT8o4OKg1QnV9Xs7S1FjGrQQkvDDHEiM0SNKzlF
6KdxOfu4PSsGu001/D7anGJ47RClvYhi20xSEvbmQnJ4cfvA2OCN2cEMWigl
s11m9fUG0+zjNmogZYrW7EZM0YJ2xqEZsb88bgvrgZoP9kGn3v2aHT4T9on8
6OWUSFI8L5Ijf7zENvGU4PBf5axLXZ9qh83ytm9d3m7tmM87tvzY9cc+lb1w
lg3iEPdGx8hIDJJHGFIY4PyfunSNmAxyjKGCjjeShGXTYLXW7C2hsbp4bom2
uJ5sOYVEgLKwZVYj5CFGd27o2Bivq1rpkei2M2nlXkZV82TzVD7iuWBTeWID
ZAOxAAP49warEdxZnxppszLY/ZpPsn2geVH5I3RoJcrjaOS2eODnoRWXYLat
p+p+c22dYEaDLLhj5qArggnODnKkEBT1BNaLnS7mx0USQWltArLFfTwufPB8
x9x2FjkbCrbtpGeAeNop+IYLW31LbZJEkRQHEUyyKTz02u+3p0Lse/AIAv6c
+nDwrLHObY3bPcERPGm9wEj2fvT8ybSWYAcPtZepwSez0MWukOsuIZHjF3Os
q+YoIHmZTczHB3AHYoAH8e4GnWdrpz60Y9Tt9PtlFvuiitroSxSPu/iYzYB2
7jjzF+6vXOGzoorNYdZR/wB3JGg+zgzRyA4mQFc7fmODnchHCnqCadPHpY0s
3URUzzRRxLb7jmKRT+8kJ7ghQcEY/fED/VmrTro6Xt9K0azwx2EElvE0yqTK
fJypKBdxG5w2ACQGOQ3zC5a6Rpgh1l1i8+2tXuUju5fMKEKh8nY6YTcWxkPw
cptGSRXMWuz7VD5vlbN67vN3bMZ53bfmx6459K6IS2EfiU/abfTZkltZECEq
I0lZG2BmiIjznau9cLg7jtbO2tY2mmyQ6n9ve2hl/eCBIpN3luqO6hWL4KsV
Cg4kz0ypKkxalJaTaFprWtpYxvGnl3EiSETGQM55UtyCpU7tuM8AjG0TiDTH
1iUQiCVPscL20VxOqRtIUj3I7rsGVBk5ypLKM5JILxbaAbaeON95ae8EM7zb
WEccatDlcDlm45AzlhjOCuJLaSRWUF05ULOzhEz82FwN2P7pJIB9VYdqs6RH
DOl/buYBPNbhbczMqAOJEY/M2Ap2B+SR6d8HWuU0C5N7JGIlM91fNC6yeWI4
0QPCAnbc3yjPYsMZwVzFawi03TJ3i85lupftMBkUGRB5ZHIXcoIJHJPIJGMk
Vp2NjoCXq2k1zFdFUklSYnakpLKERgZEAxGGf76kF9p5XaaM66Vb6UwNt5l2
91PGCt2GMSKsew/KNrfMT8wGCN2OcFTUoLKHQ7JoUtluJMGQibzJTx/suVA5
6MiMOB82GNWrd9Kh8RkeTbXFrLZBY1uWG1JGtxtDMmwZDnaWOMck4I3B1hpV
rdWN5d3FssK2jXXmOpkaFj5X7pEkG5cq/wDeYbtyjLZxWFYJbPqFsl9I0dq0
qiZ16qmRuI4POM9jW7Amj2+txNdwQYWzllkhguVaGOdQ5RQzbw4IVOCWG5sH
IBSudlkaWV5GChnYsQqhRk+gHAHsOK6m5/sjbpn237D9n32X/Hvs3+V5X+k7
/L+bO7b975uu3vVb7Lo9lBm4+zXc0eneYyR3J2tcfadu3IPOE6heoBKnkPU9
raaPbvqixNaXKxNeRrJcTrlUEZEDRjIDszZ6BsYUgLwTBPZ6GLXSHWXEMjxi
7nWVfMUEDzMpuZjg7gDsUAD+PcDXf/DmC1t9S1lbJIkiKW5xFMsik/vOm132
9Ohdj34BAHd0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVmeIf+QdF
/wBftp/6UR1pL90fSloooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooooooooorM8Q/8
g6L/AK/bT/0ojrSX7o+lLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRWZ4
h/5B0X/X7af+lEdaS/dH0paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKTcv94U3zE/vUeanrUb3cS9WH51VbVA
GIERIHcHNRf2zzxCfxp41N3X5YyPoDxTWurluVlK/wDARR9tkXrMSfZR/hTG
1CfOA2PqopRqExH3h/3yKcL6Y/x/oKcLyY/xk/8AART1uplPJDexH+FPW7lb
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
0u5t7f8AtLzHjeHaVDDGVx1B6fhW1Drr2s8TNDPLGpyQV5IIxkduOO9bN1Zz
RYvbb+Ibn557ViL4isbnz01MwLGo2gk/MfoOvv8Al9a5nWtNto9+pReWUkUv
DxtYHqD6H8aZ4p1S21DSrCIxKLqOPzJXhjG1c5wD3Hb865HG4gLzmkJx64NT
Wn2UyFbsyKhHDIMlT/hXTeFtKe5NxD9tgFvNHtZH6sOzAA8YI/xFbL6Lc+FL
BpFfz/NPI3FVGO7c9P8APFZb+MtUlnARkh2Dlhk/qc8Vq6NLpms2uqapq9x9
nYn5V8zAXAz8oOeaxnt7aPSba6sQJLt1IYHYQjHHOT0Pp9TWKdNMFnJd3ocZ
bYmCPvd8/Sq8928kOx5S7ZPzHrSWRKsyg44ySOpHpV7UV8meCRrcRxgBQcY3
7cZ/pWXJIWkLZ5JzxUlvPsbDdDjnGSK6mLxPb2tt/wAeqM7RbSFXaM9enbBq
h/wlWofYPscbLHD/ABBOCR6Va0HX2tbS4Tz/ACJDkxnGVJ4yD+VS6brXla1B
LKspUXAaU5Pznj/6/FdT4q8V6V9ie3sUSW5dc7mTbt/rn/PtXmE0ommZz09z
nHFIGLoqKAPm+9wP1pEcjgk4+lOYDaG3daVS8zrGqlj04GTilKNEQXA6kYPU
fUdqPLl8ozGMhC20t0GetCOYpQc5wema1bq2vNQxex2TJG2FUrlsn6k9eK6m
zktv+ERUA21rcQH/AEghBuY5OwY/iz/SuK1a6e4ui7TiQHpjPy+3NZ798Dio
T1pwA2992ePQ0v3SRwcigH+8M0vGe9KNuOcg+1T8k5yCetX4WYygspkU8EY9
fSrE0aW9xCkbiTzGDYPBA6YPoa2NYliFiLe3QjPJx0rl2KrJgYAHerdqjSTq
DKqITknuMe1bVlNaWd1CIzjbIH5HJyMcVk6kkc9/dvCcR78jOOnr+tV7C5uL
OdTFIytngA1rapPJHq9wpCmVkDMNxwTtHWsCa5kZfJJIVf4aijO08mr8Uizo
EYYPTd60680uSK3hl3qxmJwo6jFZ1zbPazPDOhSVDgqeoq9YwwLaPNmR5QhL
4ICr6detUFVrkN5aEuo3HHcev8qhA+ba5YY/SpMFTuyNuMj5hTlkUjPQ/WlB
JPHOTS47d6VVHJPaonY7uOe1XLK4eJ0ZDhkYEH0Ndz4i8R2us6NaII2F0j7n
44A24PP1P6ViWV+YL6C4WNSsTA7OmfatC6vVungIAIGWdduAGJ5H5YH4VeUo
nljAUkA/hWxoMXnw3SJkeYSoYenFVtVl8vUo4IHJ2jBOc8k81ashcXk4kjyS
o+Yg/wB4111FFFVNTXdaoP8Ap4hP5SqatL90fSloormPGKrm0YKNxDgnHJAx
/ia5WSq7HBpD0zWlo2BdEdytbEoz25NZ8cmy+j2IVCHB/Gth+aikQMBkZxUV
khtlYsckscHvg1S1K8eC9ZljYoyruIqfSZxPGZGLAbjjP1qe/uPJwyEsT8ig
dc1VjXzbfyy48w/Myg8k/WtfRQYZ3Wdxyo+RuoNOuYH+2NLywc8Gmz3syQrE
0Y8tRjdUcl2saoqMCCPzqSSUeUHB+YVNG4eFWHGR0phgjkyXUH61JCdhYHJ5
4q1HL5WS/A+tYV7KkmoSmLDpt3dO9c/dXPnRlUB3Z+6O9Z0kckDBmTBHPNdD
oLMLMqyhSp6evGc1YvYRdQSqjDzAA6g9iOhqq88s+n7rV8TqcTIx6+v60zTJ
ooQ3m7I5RxxU82o23nIYiWcc4A+U/Wjw9ZmTUGHnhTMS2VPYc/nWjqSy6fdt
bmZ/KmGQd2Nw/u1kalqQSGSC3PIQZx1BNc3LcoYsO5JGcDoKr299JGQo6MeB
mtzR7mOO5eF5mVMboxJ1OetWDebLZGQDc0oQjqCPWsDUjFNeu0ucN93PUCsf
VJFEm2JwyBRjHQcc1m5IpMU9XIUr2PtmkIyMmlXApc856UuABV/SoY5ZHE8x
jjVSzBep+ld34QtodQVYYIZIrVAxbzDkOc8YrA8SaV9kvJNwMaLI25c8A+o+
vFYZWONNu0M55D5qNgzSMZDljyajbKHite0sL/7Ms8sDGDIAzyQD3wP881Jr
M8z3ZQoPLhAQYU4HHA5p1qHltvLhZPMbgYPIGOafbIiwl47ZpJUUvJIZeAOn
QdqbLe3OoMEdkCQpgbRwF79O9dzpDQaXo6S3lz5kSR+am9sqo6KAP6V5/qLx
XGqOYi864BZl4J+laugJeXV9HdxRu/2YFo1+9wOg9K9CstUvhab76yIfdgBe
w96mk1JgoZoZYmPQOOD+NRnWkBCuTkjIKjNW4LuGeHzVkBTuT2NVNTNvPGI3
aN1IOO9c/evEqtHFtREACA8cjtSWXiCaN4oH2gDhXZsAnnrXRyXdw0KCRhEW
HLqO9RlwllKk5MjDuax9Sv2FmArgqoHJOT+dczc6s0aeXGqbcZJOOT/+qmLr
0cUq3k6o8sqlWXYcBTx1/wAninWWtTG3uI7UBY5H+ZFGCc8A/wAqqeIZke8h
uLGOeJmIDJIuNrjqPp3rsLWCTWYEuLkNbJBBH5ccYB3dDnPIIyOOKv393NNe
xRJp48kFgssig7m6ccjHGefaqWs62kGnmBbd5xEVDqRt2+oII7AVk658P3uW
ubyK73XDfOq7cD6f/Xrzy8W7tnNpc+YqxnAB6flTrU2wW5WZsl4wsWRkA5HJ
9wMjp37VO2kK2lfa7WcSNGSJRkEDnAx6d+tV1024k077VGGfEhRowpyvGc/T
/A1WRYgreazA4O3bg8+9WNN1KfTp2kt8fMMEfjXZaR40s2iW21WB5YnYh97b
toPUgnnr2/wrol0DQNSEk9kUFvcINxQ8HHTH4/yrm7zwra2FyXkjkuotp8vZ
IAS3uKzzp02m3r3mpDy4oifJXAbOeQMe3JrH1jVJL6TG7KDkD0rKq9pCrJqM
UTqWWRghwATz6Zro/GVjdQzQMj+baJGrxMQoGD1OM56jpXI8E5PNHOM0+VzI
wYgA4xx3pmacvT2/nVj7XLgbSV4Gfc+tSzXS3EWCn7zJ+bqcdevfmm2CxvcB
ZY/MQ9V3Yz+Jp19bfYrsouQuAy5ZWOD0yVJGar5LHOMkmnsAAFIKkfeyafbX
c1nMk9rIYpUOVdeoNMubma7uXuLhy8sh3Ox70kbBgUZiAT+H41KySAlJFxsB
wcY4z/jUwlu4rJEEri3kYkJu4J4ycfgKdNDCYI5opE3NnfEN2UwfU9vzpiR2
7xzEnDIMqSflPOPrUA8jYS4JfIwOMY71Wfbk7TkUqyFGV0ZgynIIPSkkbzGL
MSWPJOe/vSDG3hjn0NKR7YIqYwfvwM4jPIbHarptnjDoZEOMMMdx/n1qRWEQ
TygGPdsZqvJI/wBp8xid4bOT1zW7dXUU0KuZQ8jqPlAx2rDMgPyuv3WzuHX6
e9SWYAmEjElQcYPFWFUxXTyyfdOdp9DVL7Q8RHlnkHIPWlnmMk5kQfPIc4UY
APsKsalgzBxMZZmGJM+oAH+NZvXr3qRQKt2UHm7mO4qhGdvWtO8u4heWMdjv
eaIhSrjPIIrK1idpryaa4z57Plge+apRzFUZOgYVGrmMOFxhxtP0zn+lMdyT
n1pqsQwIqQAFvl4z2qQMFB65pA5J55FTBhxUUo/eZPGeeKlgYBwK0FcsoPQ+
ntViAHrjrV+DHygdR3q/PK00MYxgKv51o6PdPZXLYcsuw8L0z2qvHI09003X
OST9a6jwspUzDOQcE+1dHRRRUF6MwKP+msZ/8fWpl+6PpS0UVheLlU6bE2Bu
EoAOOQMH/AVxUvSqz5pR0FWbCUQ3kbk4XoTXRqwkQMpyCMg1E1uG2nJyrbsC
recjmmN7VG3JxUbQxyqFdQwBzg80ycJbxBY4j5RHzY6iqN1MI4FGWClgFJNE
ImVd7EYVBjArY0q3kuR5skn70nGGHTitGbzYwIZcYIGKhlUMuCO1Z0kW2RFA
yqj8Qac4LLtIPOM4NT2cgNtgMTjgk8VdgUtjHQ054mHyry3sOhpGG6B0cE5B
3AdTWFeSyR3RniRdh+XYRjApsNvbTN5rQhZM81ma7sin2ooUlc5z17UabqSQ
w7XQBgB90ckDvUraipVpo1Zjk4BPPb9Ky49St2uZFWN0Vn3AYyRnqPzzVy3t
3myYACGb75HQfjzU8mkSRXQRXVY9uWZv4s+g9ueanNzb2V2sumFpSSABgD8f
arepal/aSIZbdRLEu5eOn6+1cZdTPKZJSQC3UKcZNZrS7v8AWICB9c1AHUj5
uOOgqa0l+Ybifl6HHFaTX0tvLHKD8uc4AyMVn3kr3F08oUKrHof51mXHzfga
h6qPUUoYhSmBgnPTn86ms9iyMZIBKoXJBOMe9NkZZZmMcfloTwgJOPzqL7pN
KM8HFPGOgBOat2riJgwjWQr82GHT6iun0DxRc6dOzXLCSJx/q+mOp4PYVi32
pS3c8krO4aSQsfmyMHp+VRz/ACpmQiQlQVOOhqpGXZwAMnNXLJPLmW8dBIkE
isY/Xv8A0rstN1C1vIvLgEay7Q8m37uT0GT34FVNTNps+wmRC5w2w8n9O9cq
s/2aVhHvAGQ3HX2q1Bqa2+m3VrHEga5AG8D5hgjipJb6yisUtreUoVlV2cL8
33QCPzBP5Vbu9Rs7eBoFv5b0hQqA54HQAHt1+vFO0C3kubs2NvKypOV81F/i
9Bnrj1+lepaZpNvp0Hlwr3zV7YPSmTxLPE0Trwe5HSuU1zSJ43L224R9cg8j
/Gsqz1GawVwyGW0YgNG/BX3rVS8091kni5BXgM23bz6+tchq+rQNcq0ReREA
2L/e9cn1rLvL0zzPMgaME7uT0/GtOx8Y3alFeZimfmQrwa6ddXtp7USCUM7/
AC7Mkbf8aqG1QCTzSNhPO2uX14pHKwiTbGDwO56c1HHAt1pW4QMJt2VzwCnb
A78ir+i3D6PMLieJit0o2u2MY3DJx3rW1eWz1q5jiijD+WdxCH73aul8NO0E
Bt2ULbxjEbMeSPTHtW8gjYGMhWZRnb6Zz/8AXrOvBBZ2LS+Unn4YKMDLMe3N
Zekawup3FxFaWz2s0CojpNLyQw649QQPrUmraNBrEKC5SOC55RyVB3f59q8y
uvD/APZGqvb6xa3Bgb/VyQH8iODn0xW1Y36aRH9lKR3NjLEcMECiQDG18dQw
6HOM8d6c0E0l3ZW9vczx28Si7+7jcTyVU9hjPX1Oc8VQ1fwzbyg3WmXEZeRt
32cyAFF9s/e6Vy7xC3nCykNg/MB6VFkc8Vr6S2oOm20uJEiX72Gxj/Oas3f7
4sjySKqR4UjJ8w9h+dYtzLcsBHO7kDkBs8fnUO3pgZzQFGCOd3oKmsRcC6WS
1UmWI7xgdMV0H9m6nr19vazufMZunLKuT6k8DmmeI/Dk+hJG07whpONinpxz
XPyLtA4xTASufcdxSUoNLmnBcgkcY606CaSCQSRMVYdD6VcN1C0LpPCC7Hfv
U5Yt9arpPIsbQrwjHJXA6imZ547elIeR1oAB71LB5SjdITkEYGMjH+cVNCj3
bhDIx2oTlj0ABOOTT8ny/LYYaPp8oyfrTBJCdwkllTI5IAIJ9KrL5e75i20G
o5GBc7AQvYGlCFs47c0ixu7bUUsSegFS3NrPbKhmiKB8gE98Yz/OoBT8jZgD
GetWU3GNFUE57A5/SppGG7Kt7cjFIjhW5/P0qNn3MXPJJqaG5ZfvAnPGahZ+
SBnB9RVmNAwPkc+3PWrNzKYI289Q8jKQB2WsoscdR7+1SQFt25Rz05qV5JJ1
CSEDHTiqzjYSD2qMsasW97Lbq6o2FcYIGKi892lSRW+dTnIFSsply5Gc9aga
F13cfdPNVyaQ0lOU80/fkc0q46g1ZjAOPp1okxnjv+lIqYYHOatK5AxnrV+0
cAcjJ6Yq/ag+aNozVyVgI9uMf1rR0lbf7NNNO5G0AY9TUkMO2F44iA7Atz3U
eldJ4WXFu5B//XW9RRRUVwMxgf7af+hCpF+6PpS0UVmeI1DaLOSoJUqRkdDu
FcDNzkVA4469qYKXNa+mXzF44H27cYBrYPXNAb5aYXHTNNqOAODIZOAW4pl/
JKkAaBdzBhkDuKy1cuyNKquzvj5hgr9K0liDBgq8447Yq/BLcwRwuE+bAHsf
atGeVpirPgADt61CVJVc9z3FQGEksz1G7xghTzimWxjW7EakKTk4HetaDY8h
QAjA4IrRgiCAnqTUd0qohkwBjrXNanEl++YGKyR5DIQeQPSq8MRSLzGJ3ds9
q57V3lkunJbKL05/OqlsYtw3hlfnJzxjFWck2+2HdsAy3selZ7We6Uuq/LwS
MgZ7da6HSb5oYQ32cJDk7U3ZIHr71oy3YnhaSSIurrhsrznpWBcSSWU8TLtI
kUEA84Ip11ezPpivDGUctliFOMc96xJpB5AQJlg2Tx+lVGQRIS4UsR0Pb3rN
mlwxAFXtKKyExygEDpzzk/8A6q0r61EaDa4PZfaqVyipGCxJYfkaz2HJPWoH
TBzwM0Bc9OtSKWiBG3IbqPUUiqcNKNoUHGCR39u/So2GckCl3cAcDHcDmkz6
VLCx3DjNaNtaTXkyxwJvc9jx09c9KuzeHdQW1kkKx4iySd/JA9BWJu28E8jr
UsbyyS7dxJfgseSB3qxOLjTpv9XJGcEKXXGfeq1vLiY5ZwG+9swKuQwzy3ge
ORg6qXJY9AB+fSty/wBBD+HV1eK4izsG5WHJ6Zx75rmXMcXlspBdeuOnHSqk
jF5GcgDcc9MYoRwCMdR3rqfCOoQ2WoR3Ekg8zcfvdORj+tesaVdtd2aTSbcv
n7pyKvZpKjnCtGQ2ORXn+s2ioLhg5CsDgHP6VxdxeO2I1GCRwoFUpWaKZkky
OeVz0NQ3Mu7hSSvrUcEvlyA/wirbX8kblWPytgkA4FdXpusx3Vqse4CRhglj
3rM8QRNHArMVLFwSynORWq7WhtrFjNENgjDSB/mUKMkj0zkD8Knk0ezn0pLm
xIBTgbmBY5bjPvVbw/Cq6vCLyOSAliA5BABHf9O/rXU3t9JptyIYihgnBZpR
xtB4zx3zWzaXODCFeJmZR8u/5ig/i9+tM1KOO5VYnmEc7cAAZDLkf4Viz6Xf
v4ja/iijhjQAyyOQeOORnr0/SulWxiIj+1OJpB/HjBx6Z64/GjU9MttRszbS
xgqRwf7tc3eeD9PGnsH3FkxjGRjn68jvTfskRsQLko0EHyx8DJzk8/jj8a41
7yyt7llWyuFjIKBUbd168np26Vj6jZruaWC2kS3iOGZm3M59/SsjazEkKcVL
CsgXK7gD6d62dNuzIjW8i9F4YH5uv8/8KfqelmWN5IpIgsCgbVbJbnHPqe/H
astLa4RTsjb0Py1oadpsE0Ky+eEYHBXuCKz/ADnsNVLxvvMb9SvB+oP8q6r+
2ddvrm1Sw1QszhXMaKF2t/dbHUdPzpmqWWpambiPUIJXv7c7gycrsx0x/WuY
lR4mMHlMjLnIdcEYqq5Un5c4xkjsD7VGaSlqVJSqMqjlhjPekdQmPnBYjJx2
pnNKCR3oBp1IaATz6VIZpGChmJAGB9KVXfcWDEN0zSP85LE0TOhiRVADDrim
xR71diwG0cZPU0qjsTjPf0qdViEJbcVdTwAeo9arO5Ynk8+tIBTycYHOe9Xo
5dtsIztBLZBxz+dQu/U5zgVGrY6+lAyz+uTVxISqCQdQflA5OfpUsSRRRP5h
RmcZOeo9qbaXUUIbKkHORUF7M802Sc56YqARtuyQQAeT6VZRkU4HPHWmyOhN
DSRvEd3DAcH15qnI2W61GTUsPPGasKQrYByParCiGRDtbDAcj1qCaOFypyyh
cA/SmpbQPEcM2/IxniqboVJB7HFNNHanqeMVOjYQD3oDcfjUgPGaljbLVciY
CQYratyEJffgKpIOOueMU9nWRfl4HpVnTFMjOnJJFbOnTedqTYAVY4zGxPqc
j+eK63S7YW0LKAACT+XartFFFNkGVH+8P5ilX7o+lLRRUF7G0tjcRxjLvEyq
PUkV5tKDuqCTINRZozUsLlXDL94Hj611UZ3RqT1IpyjLYqjdxSLu8xtqqcqw
/rVWW/8ALuogWJC/fA6GtGK4ilXKsCfQdqikU/aE8tsM+dwPp61YuLXzUAG3
cGycjtUSjy2MfOR7VrWyMdOldcMR90HsadEHmRcj5ivOKfMhVCPmHpmquxmU
ru5Pf0pscUe45bcfrTFiVLlpXXPXnHar+nSxyE+Ud4wDvxxWuDwM9aiu8G3c
Hpjmua0R8m6YpvKyD5T2znNTPGZ5mljUBPvDjvj/ABzWDeaNIjs8YMgJJ3N7
+tUItIZboHkshBAUcN+PpUHmTWFxLFIq5yVYdjVrTWjMgUxgsx9evtVnTbSM
3MkUrSbWk3Rox6L0/LNaOrWbfYHRZgquP3ZJ5P8AXFY6WizxSWk6EtbMAZFI
5B5BplxHdrE6Ihgj2jgD72Op9qy206dmLFSD79/pUV7aNB5YMQBKcYwdx69K
zo7AOxkHPoGqx/Zri4iMZRcAHr71um2VkEMoDsU/dsOeetYjQ7VkcgEntWXN
gSc4z3qtMPnHpim8jjmrEUqB90sayjuDmo7mbzpDgbIwTsTOQo9KiC56UhFH
GKdGecVsabfRwEhmKBASvAO4+laWqeIjNYxxW0rDGMqVx+H0rmQpduBye1X7
QpbzJIpV2Qhsdj7HNdDrT2t1oFvOER2JKIqPgxHHcenHSrvhTw7aXUtlqHWM
FjIo/gYYwCTVLxPpsmiazO1lFIySx4DE5HzAggkf56VlXWoGCA6bqIukeHKq
A/CD6d6wGmzzyT61GzgnIFAfHA71atZCrLk4BPWu/wDC3iGSK7htnceXI4XB
PTPevQWvIkbZI6qd20c9asduKgcq+Qw46VyvieNAip5nlhR8rAZ49PxrzXUo
IoEhdZWLFTvGOhBwKymO88ckckk0+CF52CrHI2flG1c81qDw1qSWb3c0axoi
+ZsdsMV7nHoOPzrLeJ55gsYyTgDFdZp2g3VjYrdXNqRDuXcxbBGe+PSttrOH
UZJbVol8wAEMTkAHgGs288PkSJBCYxGp+eWRwPr16Vp2mlvawyXEO24VRgLH
yMg/56VqiHfCiXlsvnO2Y3JwQMdf6U2HTbq2jkkI4xyHIKkdv5VTSCZbxJTM
4YZxzxg9hWiZ0lUwXS5mQFo5cnK9xWrJapfWEKvI7MMHIb73fB9RWkgESKNu
TgA4FShlI7jjPSsye+Xz3TgqvDBhzj1rl9bvrW1dzwwkHPGRmuba9ju5dtok
Rl8rJ35PI7Vg3rapc2+4wP8AZkJz5akqp71Np8tpJtt3h2o/Ikzgx9ufUVsW
WjoP3UU8TFBkq3BH5jmrw8KmaaORlWErgjDdeetbcaQWysRAkynruHBbHeqF
7qJvbd7R4hGhJxEEAAx07c1xVw0durIqAOxJyKszeHp4dJOq3ksEMbL+6UyZ
Mhx2xVHw3rH9iavFeNF5qKfnXuR7e9eo2fjTRdQiDQebHJ1dTGMqBjk9sdKw
fGN1ZX6zS2N1amRF+dQvLjpnJ9M15zJ8rkYwQelR0UUope3HWgE0daCPSilo
/GnYO0nBwDjPalGSeB1qWGIyPtUZOKjliZGIYEYOKagLOFUck4FaZtpLWzdp
bVSJANr8/L/nFVIkMoIZwFUZGe1RGMhsHihiD2yfWnCNmDHaflGT7VYSF2iM
h4XGeQQD7VAwPrTeRz71PA0kRygGSOKlWUhtokJz94jmoGkCzhlGVByA3elY
yzu0m3k5bgf0pgyWHOPrT5D95iSeSTzUDuSc9PpSBz1/nQzkjAzzUeCaQgig
GnBjmrCsuM7sGgkN3FSRAbs56c0PEzA5xjcCR6022iid2V1IQnk+gFRiGIxn
5iCMnJ/QVH5MgQtt4FAzxwcGn7SAD2PpU0MbyHZGpYgZwozUsQJYKAck9BU5
Ro5tpIz7VpSTlIgBwGqWxJcgHvxW5YIYCZtrFv4QB3zxXSaLYiOG4V1Hm7gz
Y9+a6G2kEiEjGBxx64/+vU1FFFI3T8RQv3R9KWiiivNr6HyLuaHdu8tyucYz
g1SlXmq57UZ5qWHcXUL1zxXTWrO0WJMbx1xVhMrIpxnnmp5YxJGykA5Heud1
a2SNtkahpZCAD6AVTgjuFuYljlIZmIcg+h71tRyKlz5koGVG3PbBNaMWSC7d
/SnJAjncRz2q1CrQo9ucKXGQfSr9nFEifusEYxn1p91EXiO0ciubneeO9CQ8
s3twaets0k7q0zwygAHCjnmrLhcNk85wcGoLR00+5aWNWYPgFM10SyK8YZTw
eagvGBgYE9qybCE2s5cuFjccr6mrixkwqIyAoZty46g1A0LJGySYweOKrSbI
F3uoAx972rA1uBLi5tpIWRvMONo6knv9Krz2NxpLQTSlEBfaCGzW0kVxNKb2
ONIyo8rcnfODu/OqT3NxcM1vcgqYZx0HIA61rW4UzmQyBoXxuLDluRg5+nan
Xixf2mkUhTyZk+Xjrjrk/lVS80mIwt+7YSZyu04xWTe6YMI7A+ajDBYfTj6V
W1K2iSYbPlYgEg4H5Vz2oyyMRs5KtgY6j2rYtHmOntJOq5GMk9arxqPOHnhW
RuM9cVSTRmubsxxHDckhhgcdvxrOurdoJzGVIGeN3aqknriiM8Edd1DgKcEc
jrSA8HbQEZsnt1PFMYc0qcHOB+NaKWEo097twBGrAKSfvduPWqu3I4zx7Uka
5YAnGT19K2bfSHkulghk3k8F9vAqRIZ4He2mRVljO7bJnLccDAH6VJo9/qNp
HPJbbZIZAFl3ruCk8BvqKfqPiG61KJ7Z0ihjeILLsj3GRxnBHoTkd+1cvcPJ
LKXmkeRzxuY5NQYpuPalA609SevOBVywu4raYPKjuuDkKcHp61uaTrk8juJb
iRtqZG9slgO34ZP+cV3ui+I4Wkjhnu0ZZG2pk8j0/CuoAVuoBrK1vRor+EFT
tdDkD1rj/F66TJZSLEJbe6t1RGGwHzFPGOvJHrXn7RwrbMAJPP3Y5GBjvXdf
Da6022W4juhFHdEbk8xgCQB0Ge59KxfEWtWV0sn2G1+zSs7rIVbhkJ4HXrxz
jiqGilEvVcmMqGBwRnOO3Feu2dxYX2lnyHjPmlkCSnd8wzxj8OlY2oWqjUkN
nJGJZF3sScAY/QD86zyiOJZJsuWI+TqPfA7Gr1tPZW9q6yxi0aQ7iuThjxgk
DvgDpWyttaPEJ9pR5AM+WeOM447U2zT+0LIGO43n7pBGMYOKQaOIUc3UisoG
QRwFqwv9nRmO3kMZZUwr7u31qVQ8KtHEAyBdyA/0NWILkyID5Z3ZwQOcVZA/
vKKwbi/tpZ51SKN1jbyy+Qfr+Fc5qlsnlsAG+flRmuCN4bTV1uLeIqsRwR/f
9a1706jeRi9sGEdrINriPIEh75Hr2/Cof7PtpI55FnXz1CsFUbQfYDtirqa3
CIIreVQxH3iScg+oNNutauo4SkVxkDjg85/KpdOv76ORJblDvdcxu3Kn64rc
jUS75mmUSsPmQcZHPNZGqafZsJGACNt7E9frVK1iszps0UjxSFV3IrnHY5GR
zXJSLtkYdgadDIYZldGII6HpUj3BMOwgE4I5HQZzx/n1quST1NJiikpRT1Yg
5UkH1pKVRmpmUKAdpXjvUJHNA607HHv9KftGAvG7qTnikXO70q/CzRlRBEu6
TgFufw9OtXp4baHTVke4jkcg/uwCTnt2wP8A61YYVlcSKcc8V0aa2sumfZpk
iIJAO0EEAd+Dj1rDnljNyxtwFQN8uPTtTrWeNbqN7lPMjU/MucZH1rr20rRd
Zt7m50ycxzwx7xbZ5AA5xnPc1k6VFpVpbzXdxdxTSgfu7Z0Jyeo3f/rqzreq
LrVtJPaqlpBBCgMIbG5iefrXL574+lJ8xXA6DmpIncudvG7jOOgqYyrAoVQr
NnOcZ/CmXIV3EmcZXLYGOah807RtOMelLu2oe5PGc1AzFutIR6mndAMYH1oy
MHIJpM4zxxTetIT6UDNGT2pcnHWpYpCPwq5HPHtYSJ1HBHY0wk7M8Y7YquWy
cHpUgOV64wOlSQr5vysPlUfKM+tIEWOQgktjiu4+HENg95dNc7C/lYUMRgjv
VfWrSy027uL+ONdkzMIEHG33/nXKpKWuRnpmrzOZEAxz/IVq6cn+kIMdCK1r
i8cvHCjAYx90Y5FdDpcrwaZdXByZGYH146f0rc0gf8S9X5y7EnP1x/SrtFFF
FIv3R9KWiiiuF8RwCLV5wqFVchxnvkcn881iyDNVpBUajnntVuzIFxGTwAa6
KNtrexqypDAEd6tIdy1UuLZHLl037u/cVm28ENqfJDZkkO9c9eOasPbCa1ds
BmK8DqMip7R3Fsu9SGAA2HqKuJIIi7vwsYBpk04ll3IxyxBBFbVgnl2yDPap
5GGNuSCQTnHH51zFtOUu33ZIjyAxHI+v61IZ5ZbtpNqmIAYI7+9Tuili4QAv
ycUyWBkXftzgZpbO9k8nyWTBXuaUR3U9yGlkBt0Xhgeakuo/OWOSHqrYP0qz
BFcRkDAKnqc0lwueQNw6HFZd4mSyOSNwwoIzg1gxWbG5+17gn2b5UjIzvU/y
+tbt6Le60lRPGSoU4yTw386raVcrb262+1SoBDA8EnGePWtK8FvGZWQqssg3
AqeSccGqemL5luYZEO7cDnFVPEloZLiGWNSpToV6jP8A+qrsEl/aRKLm3d0O
BHkZ4xznvUtxu1FJIo4mQ4Gwniuc1uxPkKTJzGpLHHBNcnAwEpDoXUndjuDW
3BOr6XMo+V1IPTtUNoPnLM4+XkcVpq0BzJAoeQdWyeBXO3UTXmpTCIGYn+Ee
3/1u9VL3TJbZE8xCCw3Bc5wPf0rMbIOBxnrg00ZIwacpI47VZiBdgiMV3DBO
etRTwskhVlIZeozmnLASpYDPIUe5q3fDy44bdkdJIgd5JyCT0wPpiq2HjHKk
ZHOfSkIwQeoHPFbGj39+ElgsZXFzMRt2qCWGDkZqK8E2mAk3DC5f7yjrwQQc
9+xqnbXpEwkmxMsYAEbE7T+VLe3xvbpp/IigyANkK7QO3AqjIN2TjpUOD1FK
8TqfU1GevPFLnPSg5/CpIXdeUJBXnit2xvInNuLvzcIQT5Z5A59frXTad4uv
LV3tgRcRIW2uepUd/wAhXUp4msZ7WGWKYFphgoDyjYJwfyrGuksNZ1UqNouE
JQhh98cFTn/PWqd94ct7i5L2ZjFwgO9CmRIcc/mCOc1y95o5toRcyq8ayMRt
Kldn5/hWRc2bxSFGGPm+8e9P04mGYSE/MvIB7mrdtdPEjRNM2zfuK9s9zWgu
plZiElZjt27y+efb2rb0jUreG6aO9j86CQBWPce4p2tXEU1x9rtYH8pn+Xkn
jGCD+Nbag+QjxMN5UFgDgGkhkuY23aUIwpA81H4YnuQe9LPq9yqTosckqbcN
vH+rz0yaRoJNQhJjRTtiVCR656flWwIJmsI2gJjdVVSD7d6IXlkLm2lUsD8y
MMZ/z60y41b7PKvnqyljsUjLLVF/7PlhlS2EVpM3Py8jnv096yV0zUbe4KNN
tUkeW8gyD/SqGo6XckhPIhZY3zjA6Z6DNUJd9kg3ERof+WYbA/CnqDcQpIGS
aUqdsRXA/E1lXFuyQ77m3RCMjMZPyntnn61V0+5QSNEXKRk5c4yM5/lWndXo
jT7PZlJYQNykAkqf88UR6zGLZluSyMMjjrmq6XJnieNZd2/pzk/jWdLOFXbG
MHGHOeGNUsqzAMvGO2BUcar5oD8AdTTriJBITCSydRUOKO1JSUCnA0opyHDZ
2g+xpwO7APTPWn7Fzjijbjlcg9jnGKXysKB3PegjOcYVR6/560sZRWRmAYA/
MvTNT3N+rnbBCIY8cKrE/qaigmIyNxAP3h2NMkCtkoCMHmow5AxxTc1Nbuyy
qQuSDU5meJ3liYx+YCuFOOO9QlmdiW5NPdcIG3Eg8ZqPdxzye1IxHHvUqLsx
Iw45wKjLAk/KOfenOxcAnOMY6+lRAD1obg4HSmn17UoNN5HajPqM0rYPSmgc
0hz1o96Wg0DPUUoc5qZJMD5hkelGF9RTlxgZHB7+lXrJUa5RC4ReMueMDuaq
7TJJIUIwMtk+lW9KvpLG6WaM5x+VN1bVZb2RQzsQowAe1U4c7ueTWrbMWCgi
ugsQgnhCMORz7VeFsftpJXCq2a6SFiumk4ADgKB7f/qNdDbqUtokYYZUAI/C
pKKKKKRfuj6UtFFFcp4yi2z28+77yFcY6YOf/Zv0rl2OahcZqErg1LGSCCOo
ragu1eMZ4bOK0LOZJYdy8beCPSrsB+Y4OQeanAGKyb+GKK9ilYEHlQe3NOs2
U252nIDN+eeaY0mJm+Y7BjcF9aZBcCVXCsTjGQeoNNsZHN8iOdqc85x9K7BS
I1AHSsrULuXzzCh+RhzVK1i8lnUDKSKAw981fiiUIQVFKdoHIoWdAAGGdxxT
XjgSSNgp+ZsZB9asRpEIjHD8zY5GcVFa25jkU/iSR1rRV1UYPHtWdcO6Zx03
ZqtKRIB0DHA56GoHhXyU3n5fuEkdRU6QxzW/kStlRjnHWs65tXgkEEBBJJKZ
GOOvX2p9pbMZopGGQB3Oev8AStZIyMkNjJ5UCm3pVY4gzAM8iqMn3rVYCRAr
VmXsMsUhlhbjHINZi2h1GxkjddkgBC55BODXGX+kz6c6idDljgEdAakSymjt
JJgnmIycY7HNRxwzssbxBQ4XG0dx15/OprO5htzJHM2Gf5QB0BPGc1QhkTTL
gSqm5WJAbPK81e1i4gvdNd7NxlAXdj1A9K49ULPt7k4p1xC9vMYpBhl60wEn
GR0rX0PTprmbzkOFiIOcE+9b+pWulTWqzsApIKgqP4uxPrz/ADqhYWulrqap
Pfxqqn5MjIBz/e7DNW9Rs9It7KQR6hE06sQ+1SwYg56jmuTdgC21s++KQBiN
xBIzyauC6bTvMW2mRjIhUkDoCMGlTV5JLX7NNbQT4jMaO6/Mo9jVJo2iw/BD
dB1pkvdk4XPFPR1AI3ckdehpshUkLCo35xxyagkck4PUVHgO2WO0Hv1pArbS
y5KjqaFbAwRmpoJVVhnkencVcDwNGXLbSOeKfp8saSMVY7c5APUCt+W1e6Wy
uYYYoPMjEYUtgSMO4/OqXiCa6sdUSGVDb3lsoVnQkBx1BH4Guq8HeJLa53Ra
rOiTJjY7cbq7K+0qw1O0MU8KyRsMgjqPQg15L4h0M2NzLDF5jmM43Ede4/Ss
WKJzG6EEbRuOetIpUfKVBJ6kmrEMCGdGkcqgbnHX8K6XSLIbJZm3HyUztbB4
6c/nWgslxCnlLbsqsAApBOR+XPFSwSTS7YxG3mgcr2x1qWOfyiX6HrgH3q5H
qMLQskoCrJjLEe/WoH12OBgEfeoxu2/0q5ZeIZZpgCfMiPDcYIH0qzFbmK7e
5tpYm3HIUHnHpVPVb6VvMV4Qqgc455HeuYm00zPPqMLnft6L/CxHp75//XUe
n+JI0hS1uZHeIHYxbg8g5zWrYarp0kVxFG0qtuwGkbgn/wDVWVq1o8pkCBJ2
TkxqcP8Al3H0rEtr26mmb7DIlvsHzGRwB9Dnj0FS2Oqi2nng1WMNIV+UhsDn
6cYrV0u60FIZjFbKkjEDBbcPrinm7trZJWzFyvyKi4z15NchqcomuC4IORyR
0qOC4Medq8n37Y6VImHypU7yRx/OuhsrHSZbNzcuIio2guuCx6/5Nc60SJdS
RcDBwGc9qEtn2HaQzA4wuSelRXEBifDAgkZ561DsOORTDRSUop2KUgqfelUZ
PTP0qTe6EBxxjoRUhkxkPEcEdAcVC0h456Um4gYOetJmjGeg5pV+WpELchSc
nsO9KYGwWPY1FjqcVLDGZXC7lBPc8VNLxIFOCV4yKkYREqVLdPmpl0gXbsOV
x16VBEgkkAq0LYGQ4PAGT7e1KYR5QZ9x49cYNVAdpIHr6U8DBGCORUJHXFIO
hP60egyTSZIPQCkznpQMZpCMc4qVcsmR/PFRMCKT8aUd6U9KE5BGSKbTgcip
EwepqWE9V7N/OlckLzwcUsblImGB8w6mmiXZEw9TxUEY3Et37CrUCsj8jmtW
EDA4xWxpJUzNuPQZretplmOT/ECRV3Srg3aQxSZH7wIQOuM12NFFFFU9Vu5L
K0SWIKWa4giO4cYeVEP44Y496tr90fSlooorE8WQGXSg4QExuCW7gHj+eK4Y
nAx70xqYy+tOjAxUq8dK09FlAneM/wAY4ra3CMhiOParSEMMiqmsRGWwfau5
lwyj3FYGhSOk8yTOMu+APfkmtRbUy3WGiLR9Qc9G61rrZwebvMQQ9SAMAniq
c+no2qxPbqNjHMgH5Vq3lytsY1f+PpWbdgGTPPPt0oLdMccVNHKSMN1p5JY9
QMcVERhiG4zShGdNoOcHqKu2NkiEOSd6jGatyRjZ7jpURAyOtU2YGV8ciomC
ucn5cYpXQmJ1GMEcVBp7hJPIZecFhVi5tFnlQyplUOQQf50vkgS85KnjHpT5
QIF8xiSvp6VQv596xSrFuaNg2CevSr2i3b3QlEowysf/AK1X7pC0DhOCRVC1
sGti/wC83g8496qzwCaNopi+Qe4BGM1W+zLHa7HK/KPwNYaW4S6jSLcnUh+2
D2/WsrVImN40ZTbtY7Se9Zs8UpcoEG7O4k9jVWwuWsLrzWQOhyjKejD/ADio
rmVBdJOI2iOd+AOpz1pNXu4r+4SZEKtsAfjHNVQE9OfrWlpz3XK2hZcDcx3d
T7Ul1HMkCGV33E8KeePWqLKCTzjn0oRU3YbrnHWnoifPvXHcN6fhUEjHHU4H
aoST3oRsHmpDLu+8xJ96aaYR7/lTSD1FO3fN90f/AF6FILYACknB46U4wlMt
tcjoR0phXzpdsSgDHT0qJlKMQeop0ZLHZkjdx+tT+XNCAwYBfUVehvpyqJvZ
4kXhGJwD0BFWHke7kjur12mkVgNrkksoIHWtfVvDlutnJd6VdNNKrqJICPmT
IOfr0/Ks+y8Ua3ZIsVvfSbFxhJDuHHbntXR2GqQXAN1rjW0qSxFPOjU70bAw
rDHB681x18A0zeXK7KrHac5yOAP6flVIhRuOW9qkgdQQHJ2A5IHetW2uZ7e5
+1rvljYnOCQcda9H8P6w9xYoJ0l+0Fs7HXaAP8MVtNCsMvmra+YGOQFAyuet
ct4z1SGx3QraeXM+CsxTGfXB/SuH/tFriYBpDlurVMrMiYchl6/QVJDqiwfN
HLgjjgVN/wAJVLbKhREbk5LNz+Xaria/BqanzpAjBeOePxo8xLe0Z0mQSOQS
u773+NYF7bi6ZrvyyBKQ0ik4ww7j170+xmH2SZ4ofMXJLEtyMdOPpUviCQTC
I2buLiFcBl+VtuOlcxiWSZgQ7SE8+pPvTSXCkEdOD606B33qFbaO5qTzmZyS
2cZIz169KgZtxz0pV6471NE5SYMSQQeorrdLktdQtWinWNNibdqnBI9frXPa
gwF0UihRFViF+nvW1CNKfw/KLhZvPdsh4ow21/cnHBrBmIKkISwUDqvQd+O3
NMMJWLz3RghwM461WwpB6Z7c00ryabilxSqSufehm3HNIKfuPAHUd+9OV3RM
joTgGkGXkAxkn0FIVOT8pyOuaVUbkH8fWp/s77cgcY5NN8sZ5PHp3pQNjZUD
GOpNSRYlkxnk9KZtCuy++OKfHGgJy230OMimupwGUg564HSnWZVX+YAkc4Pe
kupGlYNgAAADHFRxsEKnJBzWlct9lC7DuLrmq8k6uoA6Yx7mqbcNxz3p2TnP
TFA5GKj/AIsj/wDVQwAHHJPWo/Wl4A54pKQ9KAxFSfKQTu6dKZ0oJGaM8c0q
9wKRsj6UClXOcVOBsHvQ5zJnoKYz56UxjnA9avWFuZW+TOQMj3qxDbs+GxyW
xXVW+kJFaxGYfvCAcelVjCbeY4B2PkZ9q27KApFah+PMJx9P85rS8MxMutyR
S5DxKzfXov8AWuwoooorM8Q/8g6L/r9tP/SiOtJfuj6UtFFFVdUhE+mXMZQu
TGSqjOSRyP1ArzWcYPHrUfrSHpQvWpvpSo7RtuUkEdCK6qAGSBQ5ySoz+VWY
2UHbnmlMqbihIzjoe9c/CkR1C5khjIVcc46nvj8q14b2BCrbg3OMDkk+n1p9
vqQuhOzFQFbA9hjIq7buHmjcEHHBq1cos+zKg7T0PeqWoRySRLJn5R2qrG6N
EyO2HXtTVZwNxRgp7gZqZY3ZCZO54B4qC5S6IUlCADwBzkVoabC0UOZyck55
5wKvK6o3JwMcVBLdI0gRWO4dcUxJFIYluBkHmlCJjchGetVbsTBdyqrYH3fW
o0YtH3z6VmuzDUw0bAuAf3bcZPsa3Y51kUAHPANOZgOoFVbz/SEKgNxyOcZN
QBN0CrMAXAwcU7SyLa8ZFX75LOR61tFi2MdDT14HNZWrQny2ZTyRwAOc1hwX
s02Y5YHHG0lu/wDkYqO4tkmu1kE7BU52KcDI/wDrj9K5+8llujPsOPJOA5J5
71iyXr5AfkPwf8apyBiQrA8n8zUM4O7HPAqI9OKfEpZgB1Na+nM8pS3iTHzB
WKJnAJ+8f0qHU4HtLx4Xk3uoxuBPIqmitIT0wBknpU1tFL53mQ9YyDv7J7mo
ZXkMz+Zy5Y7ifWoZVPYHioSAR70m3HWpFidwcYG0ZOTTACewqTyDjc2dp9BU
8Nk7uAysqkHaSM5+vpQ+nsiszHgAtkVEoUgkAAbcAZ707yR5mEkGcbsE9TVe
aCaIjeCe/rUSgZIZck8DnGDRtaNypHIOCKsRSIgLld2ODmrMMsL3IPIAODx0
q/JAcYA4zjOKeodRv9MZOetPC2soV51YSZzuBxn8P61Fq0K6f59taXAnifDZ
Q5HrzjuKxGmYlT6CnI6qAzckGpT87NJEihSATtzhfzrt9K0+807TLS7dEmtn
IZTEAGGR3P1rprfV7fUWa0e3e2ukIVTjO4Z7EVcvte0/SWgtribMjtt2/wAS
+5Fee+Odce9lRILmOe2UnbjhuvQj2rkFuiMjABPcVIL0BMPufPqe1JDeNETt
xgjHTpTJLgOxYjDHpgdKrscnOeaUyOwAZiQOxNbx8RJ9hFv5OTjqR0/Xmqdp
eyQuqxTKnfGM5PP+NTPMd5mlk+Qg43denQUy11ARq7pCuTxxyQPrVBFa4umZ
SckkkD071NOsauyKnk5+Uhu/vVV4wd7pkKp6HtUYXJ4zUoBC7NvzZ79fp+tT
fuwclT8vBFdD4au7eORd8TtJnjYuc/4UvilUuNYhjDxsMDIjAGM9s5OfxxW9
pmjh9PMdtGfnXjPf8BXG6pBdWd8be6txC6cKWGAR681nrPM0RhLt5ZOSo6fl
UJUg8ilUgnBPFI4wMg8Z4pvXrS49BSUDipAQFHHPrSs2VUY4HYetIoAbJGfa
p0UyMBgKDnJz6VLAi5yWLEdBVgyk4UfKmegqlchVl+Vs57UiAvkFlUdSTSF1
HQnI4yTTASGqe1ZWmVZT8pOCc4q5fW32ebywW+7uBPfiq0ixpyj/ALzOfaoX
cN/CAaj6nmraSeaFWUEnGNw6gVBIEEz+UxdQcKcdRSRn5hkg7jzTS53txwT0
pVdTJg9O1I/DFR09aAhx1zTSoHXFG0Y9qaVz0pn1oIwaUAUEcZxQaQU9Dg8i
nMokBK9R2psS7nwTilKkMT2p4OSDnNLcAgL7io8AUgB8zFdT4aWGG4jknOBj
JzXS6WljHOxltgsUjHlhnp7VoxJ9puAQPkViKq6rZCKWzVTu8zLHH4VJKS1w
m0HEajAro9DCTz3N8qr8wSMZHzKQMsPpyPyrYoooorM8Q/8AIOi/6/bT/wBK
I60l+6PpS0UUUV5xrNoLS9mhUsVVjt3dcVmLnJFO5IpD1qRT607r1rpNOdxa
RhuSBgn26inrKTcKOfvYNVtRM0co8sjchGB6g1SlllsrcG4b5pSAD6DnP86z
hcebqkJhYxhpFJJPQ56/Wuug0hk852cfvsngc5NXIQGO0D/VsV4GPzpWumGC
OAM5qeGUTQqpUYPUHtUN5p2WBhG3I5x60llZzLzKxAXjGetWJrBZ0KvyezZ5
AqtErwXYhlYkfwn1FXJSI1OBlSKz7id3i/dLux2zTYbecwq/lFWz82R2pjuY
rhleL5mHUdz6VNbxzbsqQsbDhc/dNRtM0Uxyeh5FPkuAclNpB9arfZkuLmOZ
mIaNgVPpV58QkNGgO85YA1JJzg7cHHFM25XjqO9V2jLSBwceo7Gp7bb5y7hj
P61pgcYpT6VWuDGeGwWAOD6Vkm2KhpnHI7DoOa5zUIBP5zIx2t8pCnp3IrJd
DpllhZmHzFumc8Yx7dP1rFuICpFx97ccgilu2jldQjLkgZI6k1mzMQ+RwCMc
VHnHXpTiQqqUJ3dxikSV0cOrEH1zV8uJEhmnPmbydxLc5z39BTra6lszOkaI
28Fc5OB16VTM7gMAxG7g+49D+lNCs6mQAkDqQOlOlSaOJWliZVcZUkYBqq3r
UkQ3sF2kk+lOdDnuBUnkJsbaVJwOvX8KSWRYwRGu5SoGT2PerFtqZEZWVc46
ECi4uhOY/Ng/dDgetU7oxIymAMO+T3oSZi/mhRuXn61IZXkbOzc2OjDqKilj
+1TSNBHt2jlemKi2KQGAK5HHue9PRC3AADHue/tTViPm4digzz7VoyXssZhB
YtD2LLwf8jFbun3lqEjmkQEhj+6Zaiu3juY3W2jWOLOffj/PSsySBIpjI8rr
FISGPORz196pzW4RhnnP3cd6iWBmIG3aDzWzaRvbY2+WAVxyeorYtNSlS2+w
xS/6I4+4MZDDvkj+Vd3oGl29uDOCJpm5aU8np0/KuQ8dW0c2sPceckjIoUIv
Vcev45rkbjSpJd8saPtzk5UgD8azm0+bPy7SPrTJrMwqhdxlhyPSoCjKeOab
g96UcDrR9KQ8Hmkz6Uu5tuCTj0zSc1JbzNBKHXggEVYJa9dQQFPUtnj3qMoS
3lwAuB/48fXFNBKlSyHPQ9qe1xlSmBgkHkcj8avWMUd3L88ixqFIye+Ktq/k
RLJYSmOQ7lI6HFSaLp091fpIVZlR8sOM/rXeaNZ30yOltJFFHyrZU7lBJPrW
Z4p8LXCo17JOkltHGA7EEmMDPOP8965G1S1DtFcyiVHBA8lQWHvWdNAHdY48
7gOV6nPpTntLc2e6NpftC9RgFW/rmqGPmxzW7aaJHJp0FxN5is75wgzlaq6l
pjWZXacq54wc1QkgkiYrIpVh1BGKChA5H40RqTkAckUhGD0p6Lk45bIOcVua
dpokhKSjaSvyvnpnqMVtL4USKxTZKJZ5ACSoyAO9YGoWVxasY5reSNAThihA
P0PeqSRITlsEN056VFKgyQOKgIwfpTgC59zTgpGGGPzq9hbiLmQkxgAZPb2q
CVefk5XpnGKiYgDJPIPTFMDLzkZp8RUn5849qY+AMKDgnrVmIRx2jsxBc4A9
qrShc/KDgdz3qPHcfhV7TLcXN5HExJBxnHJA74FaOtaM1pcFITvOM8DGR/kV
hk84Ix606RGQlSO/WoDncSKQk55ozxSZxSg8UhpcEYORzTttSR5U5XHPWmAh
ZAWHXtUp2mNT+lFuAXORTpgDkZyVJGPxpgTK5zzT4kAcHgkHn0rsNFs1uIft
DnIUZxiuqisIZo4XKHaMPj1J9K0Ut4rRDM6Dao3YAqpar9rvIN64272x7dv1
pbGEtP5MoGXX5TjkeldFp9qtnaLEoGckkjuSe9WaKKKKzPEP/IOi/wCv20/9
KI60l+6PpS0UUUVx3jCHZfrIFOJEBzjjI4/wrlwuGOacKDSqeaeK2tKkaSHy
wwyvtz6itGSNTGJQw3Dr71Q1KZpIg5+QYILD16isdXM9s8c2f3QyD36gGorF
Ilu4SQ28vgZ6Y6Zrv55RmPY4+fBHPWpDeQrIiHAZ/wBTWTJfR2915G3cDyD2
ANaNksayt5ZJBO7n+laZGQKEXAx2pxqpeAmBnUZdBWdDO88aq6tz1OO9XEsk
2himcjsauquEC+g7017eN1IZQc8/jVcwyxgBCMA55Gaw9VFza3HnFQ8L4zgf
dNESyyIHjQZIyFNWUikUZKj8DmopNUtY1eEtl0PzY7VZgukljUGTcD905pDK
scg3sQjHAx2ojmxJjAKE4zU0sZJ3L25q6lwpiU7uaFk80kKdvvVSdCCxDHgf
rVdJFXzFHzgDk561z1w5tdV8i2O6OT5SCOn+c1UvbYXjeXcrtKrgEHP5iuau
NPnt7lYJOFY/KQeM+tJd2DbvtAGMYBwP1rFuAUYDn159KYfmNOIKIGBBpgNP
RgCNxOO+KsW7oRiUkqGGKhdfnOOmaRZWRvlPGc1ZBmupE81mdhgAHnP0FE1p
y4MbI6NtKEEEGmrY3BhaaJSyKMsR2qwrmbTyGTGxeDnriobR28xWK8Zx0q7c
w7oR0AUZyx61jumxsg4H8qct00YGAMr0OKrs24lsCnxgDa4AJz0zVxZFlikK
YDEYI9vaqAdo5CUJxnntn60glcHhiBnOBU2Sqq45APBAxViQGZRIwH+971O6
PNbqC/8AqxtA9fenwxNBEGf7zdD3qSS8khePYhOc9sYqvdSzyqd52px8wP8A
nNRQ3AAUysBt5BYZ6VIrGWLzWcdckgdAaXe8jDaSSB9KFeUbVweeR6V6B4Yv
rtVRGuJmXoyt/XuK6KTSILi9W5lhAAGAp798mr0tpE0HlmNCvZSOK8x8Z2UV
nN5kURgmY4+XIQ1xszTFikqsCpIIPakEEm0NjAPfNNZgeGXkHt0oZVb7q4/G
mMCDj09KRQCOmacwj2DA5qPAI4BpPpxUsdvIy7whK+/GfapTJ5Q2gAHHIx3q
XT7wwSEPtKNwcjpUmqTtKUDKoAGUYDhqzwMgkip7ScxSFdpZW+8B1x7Vo7Im
nt2tlk2NjPPNdn4flhAbfHIoVvm38E1rXmutBtWyQDnGWxz7VC2spqttdaff
yrCJkJBQ7TjHOa88W3vNMvkmSIkgkocdff8AKoH1KRZ5i9vFmV9zfLgg98el
N044myZkRWP3TnvW1b2du9/GqpCH4PbDD0+vvXVWlgEjQEJFwTtydoqpq+jR
3SogaIuGB3qcgDvmifRtOnQI8Lb0yOD39T9f8Kybjw/bB0CHZ6oeST2rP1HS
Rpcis7rLgDhSVIz0rElB3kg8+wq5bLbiKNyHLhsue2PT+Vb2mzrMIjEuWZgS
o65JxXR61d21hYwukzx3IfII44xzXMal4iudSgWC6mJjGccdeO9YByrFlHHa
hZPMbDYAolVSvHb3qrkgYGaerfJ3+tTs6+WArHpz25qQYEABOO4PrURVT2yc
8+9N2x+UHbIzwADSyx7SFRgQ3Jx2ot4g7Eu3yL3I70SqBECOuT0FV/4uKBVz
SpzBfJIhIZOQQcV3STRatYErhZtoGCCM4/u+3IH51y0vh28SXMkZUA/pVTUI
VV/lHCfKc9eKzijE9OoppAAOfWmY9KSl7UAU6TaQpB5PUelA5GKAxzVi6hcx
LNtO3Awfb/IqBclQD2qaM7Yyf4utNPzSHcMZOal2nIHenRod4UAlicACvQNH
017ezEMqspI+Zuo5Hf6f0rtdPsytoiynLqAMjinzxgqQ4yM8CsrSv3+oXEq4
2KCq1O8Xk6nFjG5mAHsOlb1FFFFFZniH/kHRf9ftp/6UR1pL90fSloooorB8
XWxl05LgZzC3PPAB/wDrgfnXEMOc4pBSUYp4NWrK6a1mEigEdCK04Lnzo9wG
3nkU64HmW7xn7pGaw5IpIsPltrrnIOQfUVUidlnU9dvQGuySZmgggH+uhTdg
jOTxTLqF3uIJMjqSKs3Maq0Z2qQQOvY1LBL5LJMzBY+S2K2423oGHQjNPoqv
PG27zI+SB931quttiY+UAD3zV5FIHNOFFBqpc2sc7qZF3BeQKFtYzgAFdo4w
earXGnTMyvDcsrKc8965zVNHeN2kKEvuzuHcGoNLvxExs5Y1Vj909OfeundE
NuCXQ/Jnr1qrHASqY4yM+tIWmMyqn3jwQelTxvFJKAj/ADKeR05q6vyhQAPr
QTnOe9ZsVq0d3LcM37s8lAM5ptzBbXB85IwNqk7xxWLqlxbWlq4ijSQxsBnc
c575qtfNDe2KA4jbgjHY/wD6qzo4gba4tJHbOAY27Z/wrktQVlncOQxz1Heq
wyfunkelM3Z4NL0pVI3D0zUu3qc570Ll2A5J/nTo4ndsqO9SCF92OVYepxV2
OCQRu8jFmb7+DktWj4bV7q6k01lIS6BCk9QQDjBNUtT0q40/Up7STG5VBUjo
4PcVQhaSAkGtS1kjkQI/zg+o6VhX3yXUigY+bpmoVKscZA+opuFD9eKmSIGU
FSOuB2p32fy3DPIU5GCo6fjU0tqmzLToXJ5+tQnT5dm5PmH8qjETxthsqwPQ
HnNPWRljfa2OeV9asCWaQACMAkYGOmfSiG9l3GGZDkdB3FMmummAIXGDx9ac
qySHM4CxDnHYmq8sSRS7lG9BggHoaYZ8riMbMjawHStTTbR7yZWgZF8qPL72
A3ewHrilu2miuZYhxtc9umD9K9W8PyQyWcDJg/u13Ed2wDW7kVlatqaWkOfN
Ctnj39q4jxLqMer6SZIWKvCcyf7Q9f5Vyhu3Fuy/KWCbASOQKzTIwBXJx9aY
HwcgDPbNL5gxtKjHXIqYyQKg3RnJHQHtVUkA/LnHvTtwVRwD61KY1ZFJbaSM
896hKL5oXIwa6KC0uZI3eCLYEAXLd8elVRpjtJKs/wB/OQx71Dq0UUdvHhVW
TOPl9Kysk4BPAq5BC+AxQcdM96mjs5ZJCxJjfqh6g4963bS6ndEEkqRyxJgZ
6EjkVHdalfWZQyOu48n5twYfWrFtqsFyxZnwgHK/xGsLUb2SSXYsm5FPynuP
bPpU+k6xJbtHFNteNc7d4ztzTtY+y3EySxoiEE+YF4z74rPSCJ5xGz7Rk4cD
pirlh9qiuYypGEyFc54z7fnXeJI8kcKEZlYDkcgcdat/YHRgJ5gAAGIJwT3p
slzp8KGNop3lbG/AwOffmqdsLX7PN5Mag5yhc5YHHc//AK65+5tF1ESGW6j8
9OoABBA9KypIBagskchGADjgfjSRxwq0UEbfMV+YNyFbOa07KzntYDcwAspG
GLLwpB9ar3rXMq77p97sMgHsPT2rPW2aVyqFcrk5PFSPbyR2gSSLAJznHNUC
hQ4PBppU7c87c4NRFTQOMVKr4OMDB6mlJ/dAPu254/xpFZdpxlj15NPDebGF
wqDPUDGKiIHm7ASVJ61ent4ogBCRJuAzjtVZ8yDLN0GKg8pweB+NC5IPT6ml
VSCGWr9rf3Fo4lhY7Pu7C3Surv8AxA9zpEOzb9oB8s89R2rnY8z3RTCuTwee
tWrbRmubmVHZLcIMfOTz9KyNStBDcPGnKp7jp61RIXBwM8DnNRn0p6Mu8Z6C
nzptkIGaiIJXOKaOtTRhWlQEZGeeM12tvZW+o+HANqiSz4mwepHI/wAK4uQh
ZGAHenxMSelTRxNJlguQnJPpTmUKMdffFdP4E0tdQ1XznXKwDIGO/avT7TTk
ty5c79xzz0FWwBnI9KrXUTSI4BxweaytOjhsoZNj7lIyc9Tjrx26ircTfaNX
hAC4jjMjZ/IfrWvRRRRRWZ4h/wCQdF/1+2n/AKUR1pL90fSlooooqtqNqLzT
57bAzIhC5JADdQePfFea5yKaetBHNKRQKXvVzT5gjmNzhW/nU/2poIwJcsOx
qut5HHb3MTKG38pxx/8AWrLtRvmweChz9cV29xD5yWt9BkZQAgchTUaMXwxx
gc4/Cr9ognKsTnBxg9qoanI0d1HCqqpdzt75GOeP1rfspC1uuRhgMMPQ1ZzS
M23k9KbJux8ozRCpC5Y5JqSkooprCm5/OmSSqFwxAJ6VXSaCcLFMVYtn9Kyt
S0FXu1uoY/mHXacVBDBMZEiuQRFk/cG38TWo0QjTZCxIC+tQIrMAkvc5GOop
7Q7ZtyBQ4J6jrmrkBLoCwIPpSt1waZHGCjBhkEnOe9YNw0kGoi1lJEJ43dBg
isvW7Xyt0bwy7m+4w+6xz0qAaezWkTwCWSPzCnllcFMnufasi8MgYKBIqOcZ
PWsi9tgE+Y/vB+vvWSWZGK5/PmowTmnDr1p2DkEc1OiOQp2sN5wGPQ/jWpaa
dE21vtipdo5HlKucY756H8CaS7juIJC4tGQggsx5z70+3ghm86VyQ23KcZDH
0xVYwHdlmKgkDamDu+gzzW5bT2tpYQi0unW7Ee7c67Tk9h7e/wBaypSZHEjg
l1PXPQ1f1TSoVtbe4glDhxghmySfX+lLaWvllVIHPFUteslWMOyfN0DD+tc6
UKtg9akAG0jaSxxioTkcml3nuaQkmrdneGIFHwQfXtTrm+EkR2OytnoBjj61
V/ebN5z9TVq2lO3g4yec1PJukuh55DA4ww549qfJpYzIYpSwHbGCKWe1eKJI
hITgA4POaq3wfIVhnHQ9OKqIu49K6rwi5+1rbrDvZyACueBnnpXX+IvDum3E
kOoKxwrYmbf97J6mr2nzW65itpEZEAA2cg1o20zSOcnKngc1zPiq3Ml6AUJR
BkY6A4zXH3ULRvI4LASggoB2/wD11nvZurATfIrcgk8ms5xhiB09aYVHrzS4
VV6gn2qI80uPxNL0HBBqVFaaZU4I9vTqa0ZNMj+ztIW2EZ680k93e2drEnny
HcM8jgVPY3F1cp+8IznqepFP1FIvsuyUqG/gJ9a5/jdzWxYtbyr80+1gOUK4
6VamuktogzEMjdNvOarDV0MbbE2yHoT0qlNci4UK7bdo4AFV1aRWIVuSMcGg
vv8AYinJGWXchyw5IpGZyxyTmlBIbYRnB9cc1oJdjyklJbzEOGBP3x/j0rVs
9WzEGgd4pox8pLcEe9TPr1zLGS8hLMMjbWPPql1N9+VjkY/ConuJAgIc5U44
NaOh3jI0rqVMhGCG7jNS39zBJaqJQwkLH5l4qtMI4NNkaIhi5GOcmpLe7uDb
mK33xxj7wDEZ+uOKvi4IkiSSPduHz7ewrsfD+kWrOH8tQ4BPuM9a3NQ06wNt
+8RIyoO1lUZH4d68n8Rw2sV8yRSFnH3gFwB/n6Vj5CbxIm/I+XnAHvVcqwXl
uT2xTWHoMY65oyAMGrccHnQyESAmNdyg9+elVVJ38YGTnpxU6gFSzNgg5wRn
NNQJ5pDkgY44pyttYhXzuFMWVgcN0qT7QQDg5UDGPU1CV5JUjGep709Rtyc5
z0pVG6Pb1Oc81cto9oVZZCEwW4Of89K1tPniYLbXEYIhOYiowST9Pqa1rnSr
y6tJdoiVtoKgjDEe9cdeQSxM5kTGz5SzDuO1UUAbO7AJ4xmtK50iONHMcpJS
MPkjA3Z5H5VnG2lSMzGP5QcHNT3jCaKGUf3Ap+oquB8pXgk/pUbKd5z3pyO0
bB1xkdOM10/hvVtOtdF1VL6RvOlUbU/56HJ4H9frXMynkn+InJqS3V3failm
Y4AArda2+yxLaYy64eU9i3ZfoBVOSI7iNvPSvW/CmlpomgxI4CzSfvJTjnJ7
fgK3856VBLKwOyNdzEgVHfyCODhwpPAz61nw2sEsDsp3bnzvH1rQ06y+yCUl
tzORz7Dp/OrtFFFFFZniH/kHRf8AX7af+lEdaS/dH0paKKKKK87120+xavPE
q4Rm3phdowecD2HT8Kzz64poPGKkXkUhHNFFPeTNv5Zyecj2qsec5qAjbKCR
14NdpBNMPDNp9nySc7s9eKrX12IbYrBxL0BPrVzwxdPJbSG4PzFjzjjgY/pT
pUivp5YTJvniYMrA/MPf6etadhcMF8uRMOgw4xz9atJcrL/q+cHBqUOr/Kee
O9Ab5eDmiN9zMPSpaKaetANBPFUpy4yUP4VzurTXbW822TlRlV+lV9H1aO4c
xyq6SJkAMMED61YTUrssYI7lss52O6kd+3Y1oPdXUJUXkQdO8qf1WrW4mVgC
NrKCvvmq8ytu3IcEVPDcCQgSD5vWrIYJyRSyY4PvSoeCKxNa097ySOZWAMB3
BSv3j2FaBtWmsliuSrOoBLMOhp8Vvb20TAqFiA3MRwDXP6pZRzRT3E8flpEB
s2Dr24FczqMNpcWTtaR7DF1y2Sw9fb6VyVygIB4zVMgg81LbxtNMsaKzMx4C
jJNatsYLJit9a+aScbSNu33DA9eOmKuaVrlnYXDSXVi9xAzBo4mkyicjPHQ9
/wBKfaTR63rvnTzmASMzRxQp8y85A4H611EVhFcLLi3mkCoC/mD5vz7jimwW
kFnbRbIDCXUZ3ZOSOeDVWHQEu5DcHzPKRcueAaq3Vv8AbRGjQENbr5UbsTja
CSM8+9VY9McuY4o+APnDN/KtUaaY4jnB+Tncvem2lu0k6r0z1+lT6jYhojnB
VT37VwWowrFcMFbcc84quCpjKv17H0prIABjBzTAuSRtOf5UhjK9aaQfwoQA
t83TvUs24gPk7eg9KYsrK2Rwas284eRA4JIP6Vpm8ETjKYVgDuBqvc3KLcK0
TBxjuP0pzXX2u32+WNynJwO1WdJ05ribYY1yRkbqu2sTQXrW9swgdThnDZye
/Iq7Gj2xbcDMT0bccfWrGnRz2haWGREL8kNzn/PNbtrc6lCGWSHLlRt6DbwO
lUbyG9uJ1utRldY4xtAAHz88A/41HdaY0GGbBDfdqhcWnmLhkVlHqM1iXekx
rudGXI5K5rCkX5z0444qJ1wcU0Ar2pfmK9OKFA8zB9cc1PBtjujzkAkZAyKt
yXhitlWLKsxJJJJz61XllJDLIu1lwwOc/TjpUcM88b+aCeTjcegNF1dSzMQx
4B4xVcHn+tGD+Apyu+cZJzxj1qxBB57BFXkdTVq20a6mb5YsqPve1S39jbWS
r8rmUnJXPAFZzwvu+VCCeoqIZBBGQR3p5Vsq02cMeSasW9mbi3dkkG8HKqeM
1NZ6f9rjyZNjAYwe9X9P0+Fo3husRMnzbwT83+earhYY5N0bh41Yrnufeqwi
dmeNVyc5XHep4rVgrecwDKckHpj3qtaArcFsbVJIJJIArUubmEKWRIp25XLK
TjjtUFrAt4BGTyucDsM10E8VhZRiBLlpZ9qn5EJU+oJ9f0pmmjFxI6hXBHC+
h9a6mCO+MSNaxnDdG9feo/7T1CwuBHe2bSScfMzZ456f41l69a3upZeOyQeY
w3uMcL/knmuT1ywSzvGW3YvAoAVz69xx+NZjFwDyTzyWqNjvGcAN396XbFsB
Dtu7jFS27rHKwXncCop1zCI2BGCGGRjtTAcr9wk9cjuMUocMhUp3zux9ajwd
25RwvPNOBLJzjjk5ofZtJjXsOTUZYrw43EjigEkdOvrVi1Xe4UHPfOcVqQqI
/lflDUHlzly8En3ORhsEfh3q/pWuz2jFL5ndJAVViclfequt6qtzbi3hUCIk
Et3Y+p/OqwgggtYzJhjKdwdevHamz3shTy0YhMfl/kVZZp5rTZKqmJE2gntk
VkSvgCMDgfzpEIV1c9M80sigs2PWkhC+YPMVmUZJA71r22jEWlrKmwvcnJZj
/qwCePqcfoapajBFFevFEc7OGPqa1dHspIEF4IyzEYj46E9/8KvTWzRyqjYM
spGR1wK0dG0T7RK9zKoYRSoqqe/OT/h+NejTRecqggYzmplbkL7Ur4Ubjx71
y1zOLyaUNu2R9s8E9v8APtVqC5S208NHycECujHQZoooooorM8Q/8g6L/r9t
P/SiOtJfuj6UtFFFFFct41tQUt7xcAgmJjk5Pcf+zfnXJqecGkYccU5G/OpO
oppFIBSGmEc0xlz+FdloflyaJHbthWIOOfrzXO3kcttqpDHHl4OcdvWtLU3f
TkS7sFL21yDlR0De1UdCL3F0zRybbsZwxbG7/Gt+11Nra5EepQmKdjs3gcMO
1aaSRqz7WAPXpip4pBszJjOOuetO3AJu9abbzFrhlA+XHX3q4KWmmkpCeKqS
SDeVZcjFY91p0M5kaGfCnhkYYx9KZDo5s7cRxkuRyMnj8D1pYyLQJJKqvCeH
BHIP0q7expPZ+YmBxxu9Kyra5lsoPsdyu5VOI3B5Gex9qje5ljmPzMhYjOef
51Naaoh3GZCJEIBVeSfeugikSeIFWByMqfWmybihWq1qpMuXJ3LkAVZkXIOe
c1Xt9xgxIpDSMSyk9v8A9Qq5KqTRlGAKmq91AktvIm1WypG09D6VwmpM8TTr
LbKrqh2r05wa5CO3e4GF4wc896oyxFCytxz+NFtcPasXjIDMCuSM4B61Ibp5
3/eOR6E9hSj97AsSAlslhUtqZra5inVD+7YElc5H19K9Fsb+7mMNzGdoRNp3
HA/IfnWhNHcT3CidMiZSERP4Tt5OPc81ZkvorDSvs5tTHIwKlCCAM96owtC4
ACqAxyR71WNkPtSFYh855dTgitaWIScOMjpVdbONWBCgY4GKzvEMZg095Bg8
YGfevNLpCshLHOe5qIA5BHJFSSAOPkUA56DmolJXpwas28TzvkupcdnY5alv
LMRtuU/Iwzj39KqiBpSSgAx15qzc2sqRRb9wU9e4zUVtAZp/LZcAjBA/nzTT
DLa3ZiZfnBx9a2Y2hwiyhRJgZqvfWqySRtAnfDEcVOEii+VFwxrUsrScjcCF
QdW68Vas9LsoYnnu53K7tqYGBz3zViBYXhCiaNUPIOfm6+lXbVrKHc7Tq5Bw
vfPvWouo2ZRnUl3Y/wAZxk1manqDzfuXQEnsACKoRXU0qAy5c59eKn8xQhPp
1qhc2ttfRuzfeAIBz0/CsG40hozmJt6+uMVQexkVv3iP7YGaGsnYf6sjPQ4x
mmmyuos4jLZGMEVVQEXAaWPOTyCcVN9lZrgRvIqllyuDkZ7Cls40+2CK8BAG
Rg+tLLamS8lWEYiU8kHgCmXMzSIsTRKGj/uimRxJJ1fYTwuelSraETGOXjA4
I6E9sVbOmqHYtvxwcKRz6iofsrQzbXCBeuc5OK0LIWaAmRkVfUHGf/r1p2+q
xRxbInjCjuxwSKyNWnhlZpDLvckAKDwKTR4wbht6gg+vT1pmvRQwyoIsBs5I
UcCqRH2pkRVw2OeOg7/1rZ0iyMTyGRMR7D8xbv8ASqsrxyKdkgjkQHB6ZHpW
e1zMwKsxIPrSpKQmFGMc5FWbVndkYDDRZKkdSa0NJiL3TSyRO4wWU4yCfoam
u9LE96G8wGMrukZR0OfTvUN3HBFIq2BZ2GASw4B+nf8AGt3S/Ct5OiTOCrN8
4IGBz2qteaO8V3LDM5DrJgFW4/Otayn0a2CxAmW6Q/MnT68960o/GUIcpFYO
kMQBU7uo+mOKdcanp1zF9t+zyyc/OuTyMVHbeJpFYgWDSQvxHsGSp9D7Vy3i
iC8lm+2TQBQw5CfNj6kdK5hgGOCcD6UyWEpzzjoaYIm2lsHaDg08+X5o8s8H
9KuJGZWTI+QAKSe4z1qNwIpCqMxYEqB7dqYUYIfMXZ2xTGXCHYw29zTNxcnH
UjAAFJnCbcdaEV3OB3/CrMMCqf3g3GrYCjGwAY9BUj3SFcMAGqjI2SSMdeKi
D/OG7L2omjATfFIskZPQA/L+dVslelMyQODVyK8mlSO2LgRjOP8AGoJiCTjk
561JBbvMjbBnYu4/SlSPOMnAAyfpTEJjYSqAdp6GrNpcLbTlyzTYTcoyQAx6
5/UVLHbyz36vMpPnEPtBycE8Cu3KKsUcC4XZySB3/wA8VXSAz3wZgBt+Ue9d
npdkltvw2W+9j8q1N+wKvXAoVyzEqKgui13mCM4TOGYfr/hXL+Jrs2kWyCMq
HOwEdSB3pdAmW/vIrPgiPDtxkYHPPsen4129FFFFFFZ2vLusIh/0+Wp/KeM1
oL90fSloooooqnq1qb3S7i3AJZkyoBAyw5A59wK80P3qdnIpo4ORUinIp2OK
QjNJ2prDmmGrum30iMnXbGSD7Z6GtLX3MvkzhCGztZlGcDkGtLRdNkXT5bWa
QmM8oc9QeQcdQf8ACrK6Tb23+k7E8yPIHGAeO9Vr63N0z+bvUFdyMuCM/wCT
VKK8MkbIQSyjbtYctjvS2948kixsCq7sYB7VqJeyPN5bIFAPfrV6zz5hIHFX
gaXNBIxUbE5B7VFcTpEBuzknHFUZnLxkmTbg5BWsm7eabbJaShZE6jbnd9as
W93fBEe5KRyZ5VASpHv/AI1Yni+0Q743VC/y4J4/A9jUcq3phMc4BGMHK8fp
WG1hIscvnS74SCUGclD7VPDp89zbENKJU4xjqPxrJ/s+8hvw0ZJMb/KW+83+
z+VbukyvBcyDzcxGThc/d9sdvpW8+58sh4HOKgZ1RsqenPvT1uF8zYx5YZHv
T3+6x4JxzVbeY2VchVfgknpSXtxDbJFJ5pUc5YgsOnpXnd7qkkjyxuBNAW/1
kmQw+nPTnvWRE7PcsycIp4x6VLqNgZikkbIXkwNo9fSq0elNsvIrsG3lt4/M
G7uRxj8fWs+CBp5VijXLMdo7c1JIZLbKiMox6kjkU6O+dITGQCWYMT346c/j
XQ+FtVkgPlAEx/8ALVSMhl7V22r30d0LPULSaZFTOcDgMMYpsyT6vkzXa5AA
wBgEfWmQWnlzbN27/arQdApjCIeBuYjsaN24k5occdcVz3ie/iNsYQ5zg5/C
uDuEMoEoUlMkdPT/APXV2z0Z7u1SWNPlz85z0qSXR4yMRhlYDocc1jz2rxE5
PQ9KbCjB1fJABzkdatxwxSozCR1kXna3c1VfdC4wePUVZR2ELsZQSxAHNSpZ
yyZmDlG28BehqrPFLHJGZY2wP4s9eetPZ8OsqksFHIParrzq0KzLHhTzgdqZ
IjTfMn1rRtdRmjjKSLmP+LI4/Gpv7RM26NZAF64ABH61JbWrSAuGGAeT/TFa
MMFuqHzLiJABkkEEmsqa9t1uSEaRkXpgDmopHlkcThnXPRd3ardhL54OyE/e
xkmrVy+xfn7DkZwKyBerFHJ0OSSMVTnvXdNysQvAOBkZ+tVGuZi4xKwI4B3V
PHeTQlVaXcDycjdj86s/bw52OWPGBuqSF7F5CJ4VIIxnOKfeWWnyy7llHmdF
2nGMdOKzJtOlA3R4aRT1Y/pUNnHLZXLLcxttYYYYzVuS1t5Y3eJ/nkGFXHAI
9/XFQQaVM6PLcTRqoXd1zz/jT4ok8plM7GQvuVc4/IU2SK6eR4gSoIyC3qDV
eaCeSAvI28pxjGSKjeBj5LF05GODnJpojXB3yMWI65BFRGF3YbecgfjU8UUv
KszBAOmTjOKtW1lEts9xPOcHIAHr/WqaMYJPMiwDkgd8VoRapK0PkBVDYwre
tEaGd9zwsq9WPbqKJNKZiwhR3/u4HSnx6WyKBKdj91YY/WlhiEcWMdOtatvd
GE+Qv+rYcY/hqC+mSAJ5UnmMclsDAqNQjyxylSHUbueMk1oRazegqjMzR/3M
8EUX1xd30JS3jIJ7Dk/jUOj6FPMC8pEYB+bcfTtXQTSC3s3jtIo95HDMM4Ht
iqun+LPsavb/AGRFL9BnAVu5P1rJvtavZ7zd5zRwo3ylFwCfw61n3N3e3qgS
zu6Z28n+lUbm2khfcB7/AEpjxMhWN1+bAPyjP4VE6c7SCMDoajKFcepqRJZB
hN+B0ye1Pzsxg5PqDml83zGwejDnmoZmDHanCikXaVVVXJz1q1BaB8NKD9M1
ZMKKAB0HajaNtKc4qrKpbg1CwKkgmoSTuJzUltHLIH8s9uQe4qGdGjfDjBqK
lQlXBHarAQyo8gHII4qexkePgDIbK49aL2PypcA5DKGB+tVPfFSKrzNuBJZj
yfeu80zTFt9MhdwWlRQSx67iP6VNJhVGOo5aprc5eOVRjIBH1rp9Lmklvbnf
xtCgcdK0n+Zk9KfFGVLMDnPSoo4DGCm7LMcs361znjD93aLLHF5kj/IMDO0c
kfrTvAmimySe+nH7+QCMLk/IOpHpz8v5V11FFFFFFVNTXdaoP+niE/lKpq0v
3R9KWiiiiiivOfENn9j1edAuEY70wu0YPPHsOn4VmA8U4GlBxUqmnYzSEe1R
sKYwyOKgSVoJGAxiQbTnpXTaVqSrZpBMq4aPA3855/8Ar0+G8h065aWJ7jYr
AvEcFUU9SPbNdQskNxCJUO5GXIPUMKZbPDcQsgA2nI2nsK5+9s5LWVmA4B44
61hS6lJBqEbzJtjLDnHUd66CSUPeJ9lb/WDOM/yrQsdTg3i2klTzscdt3+cV
pmYAA9s9u1MaU8nORjNUZtS2/KoBb1z1qSO8aaPPQdPpVWe7wg8wqxHU5xWM
2rKoWSWRBjIKq2c/hU8IMjpPF5m1yeg+X61dl3k5K5x3FQ3jLJamNGaFz1KD
hvwqnZXl15rCSbcBjirF1C08fCgndnJ/+tUsKSQJtRlaU8hgcA/WoJL5mmVL
21aOQc5IwfqDU9uBLbOxKs7jIlUdR23e4q7YLdR/JL0x161Ymi8yPe0YLD07
VSIR5ArHDDkZGORVpWc+hXGPcGopcmNihyQOlcrr2pPJG0UCOsgzvUtxtHVu
fUVyEkMqo6t91WUkZ65H+FRqAsTlF+ZTktnt6Ve02WG4X7PcqfOXmPtkGql0
LoSM7yeb5nBL/Nj2yf8APFQ6fM1tfY25AYFkI54Of6VuavZLPKyRuWeTLorD
Hv8A1rlmtysjhh07ZrT0yaOESRlvLWSMqT1ye1dfpluTaxwJOJIyw5HQ+9dv
pNrCloNuG5+9ii809pU/duBz0CjNU2gngClhlcfNgdqrPIoQuijnPHfNVZrp
47RncjOOWbtXMQ3trdtcypZgTL8rZOcgnrVW8L2kBhd45klODDt27eeMY700
6nNbxQQQqI4x95cbiT6k/jUDpLJbrJbySccbd3CintFH5Qe52knAG08/Uis6
80+VEMqAhQdpBqpCj7wdmVJwcjpT7lIgOGJDcj2qqhCMc5IIx61atbp7TaWU
yp156VPcaqJgMwpnHVs/pWS8sjOSSauWVwBH5UrD5jx6CrrFgMIOfWrllcXE
EZAOFc4bgHioYzDazgsQ43Z5yQa07a9jUusMkalu3TFVQNzk7+ncHrVz7Eoh
DMQB1JPeq4SKT5GhAweDnrWjBKkFssajeR1NU9SvVjUK0Zw3HXFZIkBgaMLk
DnGe1Ud+N2DgNxikEYfCoct0A96hYsOasRJ5gPJJHP8AhRPazonmHKjHBxwa
t6RfMjiOcdvlbH86q3d27XDSxfKCTjHepV1MvCI50VyowCRnFWFu4VTaq/LL
6H7rf5xUU8sePPBJLHlSc7T9fSiC4hWX7i78AqT16dB/n0qzCY58yufmK9C3
PqeKpXq7HfypCyvgthv8+9Z42luAVBPGOKsW0KOrOV3DGMZ9qnZTFJtCZHB6
5xxVyFPtVkHjGdowoHYioxpVxKnmFCqZ5APU/Slv9NxAkkSNlRgjnn3rIaN4
yS2Rg9fet+x1R7iIfaIwwj+XcByauwuCRJAflPoaW7eWVJN4XaSAfUiqBRFK
7s7cjgComnmFxI6D90T8obtQXDlZHXk9jS7nnOVO0DHbNXEXCgnmplvJLTDx
lVPbdRDqVy0rPIS0n949/rVtdTcRlSME9/SsK/yZ3cnJDZyBjnin2EhUYuM+
Uw6N0FW7aGI3LeZ/qX+7g9PrUmo20Ji3mQkqSAD7Vhzpvm3dO+fWo/L3Bgch
l5GTiqzNkj2700/WmEEdKMknAGM09eOOM09flbP9K0oSpjXHJp55NM/CmNuG
cCoC2B8wqKZNwypJqDAzjn8acpKfMjEEehplxK0xy/LeuMVARSDrViJ2TgHg
9qcjkcqeh4qzIwNspYEtxtPtzVMDJzxWvoNr5l+jlSY0+ZjjjjnFdqs7yWWS
hba247ewrNnZ+SeODla1tKQu1uWHGBxXTWK+UJcfedsk4960BHuxTyQgA/AV
TdpoplU5PmE844HoKjuxG2FKKxwdo9+n9a0oYxFEqKMACn0UUUUUVBejMCj/
AKaxn/x9amX7o+lLRRRRRRXNeM7IPbR3qg7kOx8An5T0Ptg/zrimXrikB7U4
MB16VIje9TKQadgGmkcVEVqtcR7lPFFtcFYwjAHaflz2rdW4iezMcgVw6BWk
ByVJPr6cZrb8PXiLpdvA8ihlGBz2HFZ9zetp+pMxfgvxnv3/AK1PqepebKY5
QFXGCeufxrlNYmt2l2Rz714OO4+la2jMxubIliWyoOf4QOn6YrSvdN2XyX9u
qlkcqy9OM1LYHE0gEkhkc7iGJwK1PMLRSRDHmLyoPesK8WbcTs8vHPNU7LWj
E/lvuOCdu3ufSp3Ek104Kgb2BVQQfxx2pp0wgLGESNW5yMDmrUN39jtBbTKW
CEjfjGBVO61NkiDLIohx8oL8+/vUlhcRTrlJQ4PIGclatmNQSSuM9WGKu2ts
8yKQflyG+ozWidMiZe+aqy2HBinTzE52k89f5VjQ6FdafJPPaSrODykbZB+l
a0N9K8I823ZQeNw7H3HardnOXT94MEcGob2KOaMyxnBVuT6c0y1EqtiTIyec
1NPGoBz0rk/EOmvcJLLb8Z2hgq5LDPXP4VxF0bmzMlnISAHD498dfyqm5ZVO
1ztbr705tpiinVwkm/bgdR6GnF32EmVmkJ5B56/z7Vbt75d+FgZW24Yqe2c9
PwrW1O7+0RQz+SqtGdoKjquPfnNZmoKlxCkyKysAAw6iqsCgc7AxHOO1dj4Y
NzcwPtChIULKSOO2RXdaO5NsFOOmQR3zWhTXUMCD0NYN5pU32jdC58sngAcj
/wCtVDVNEkeEeWjScfMocjmsJPDl0bzbFFJGONzqhx17/lW9f+EormMM02wg
hgxJGP1qJbLQxbywyCS5kJ5ZiA2fUfpVW4sNLWL/AEXzMjJZW4B4rOj0wSFi
Y0+YYGDnFJe2UltgOEMO0dT6VBPYWr2RMAC7j1x0rkriLyZioYMB3BzmmLkn
lQV9R2qVDlWUfLSXUSpFGQuVYcEn8xVMpxxTMHoa1tNl+Vt/bvVt3DQ+ZBIP
Tmohb+fiTeNx9qs2lpvcCWRQAec8VcbyYWOxfMUdxUlvG9yimQ4Q+lXo2hjU
AsMgVVN/CrCNMfN0wM5rJ1WSGTZICQwOMMMVmKyNld2M1XdwOGpvmDAZHKlf
WrMM0E6iO4BSQ/8ALQdM+4q2iPb20g3Kd/Rw361dtllkMcM8glQrnPX8Kg1K
NbaYPgCMjBHcn2rKgmRLncy5jJwQfSllWIsxThSeD7VNGE8jZOZNoBKDoM02
OylaJp1UGJD0J5Ipbi1jEELnEZbkgZJ2+vWqMySRuQzZPQnPUU1JHSQMrYPr
UjSZdmYAMT26Vb04FpSRwMjPORitGC38mZ3wGVgOPT3Fadg0K5A/4EQOp960
CscsJ8s9fQ1SuTIo2gALjiubv7WaOfbICXPJwOtXraydbUxhzycn2NT6e8kN
75Eowuz5ST1wa1ZIhKmB+eKhe2+bGMfSqU1pgspBGeSR2qp5bLJskjZgpOGB
4NTojuPu4z0HpVeS7kiYxKoJXqe9Vt0tyFiA3tnPvV2AgKS25ZEG1hU8MqyI
dpOc8g9qe43AAkfXFVpJHCFFXG0cH1piCQYPzLnnHapgu/aGkBYHI7Gq8sIl
kZiDv5z2pggPKkh1xxVae3Kn5RxVZ4zj3pCuUzjkUinaR0PNTbVOTkeuKCuC
enIq3aMFUAnirJPGRUe7JyOQetI2ccVEyjODgk0xBhiFOahkADmo8ZbAqFhz
TGFAX5qniXKk0sY5API9KtxESqFVOEjK885yev60yazmt5vLkQq46iuu0a0i
t9JXzXMbzZdyOw7Z/D+ddHBYWzwIVHDYPy9Ky5DHLqTRFCwBxgd/8K1tNtz5
quAMBsYFdIyBSCo61YUfKKa5weBzWXrUt9a6dJLaIHcDJLNjbVbQILm4+z3N
0QVVS6nPVj14/wA9a6KiiiiiiiorgZjA/wBtP/QhUi/dH0paKKKKKKgvrVL2
yltnOBIuM+h7H8DivMpYnjcqylWBIIIwQfeoXXBzTQ3GDSglMY5FTo2cEVMp
GKU1GwphA7jNQ3i2yxxmMMJiT5n93HbFP0x1UvBLjZIRgZ+o4/MVpabiykZJ
AXGeMGrkx+0DdcxAAHaO+BVHUpiEBWUEKcY/CufeJJ98hI3LwO1bHhuZYNba
eRCsACxqAf4sCuqaWVdRliOGgkVsk/wkCqaXpV2MSpkDO4nrU1heSXN4xZQQ
epHCj0rXmt47uzHmBSx7rWVJoVu9ytxs5HVR0FN1S3a1kDRREoR1FQzSXTLx
5Yj688GqVxDPcoyxsApHJNU00tF2JPmT5i3tQyQJdGGzmVJSM/Ken9Pwp73F
9bQkzgOo5JBxWzo1zK9rFISVdXIxnII6iupibcoNPIBHNV5IwORwagaJZeck
H1BxVZrTbdmRXOxhgj0PrTsEF1OSGHTsRUkMinC55UYye9LdOgHXrVZCqxHa
ikHrnvXCeJ7dJ5D5MAH2fIMg5Lc8Cueit1w8bqQ6YOMe3+OKr3FuQqvztPWp
JhFJJEYmBOza2BjJBx/LFU7t2+0lgACD2HFTpfuYwpJOOxNalhfI7xI0Ybe2
GyePxpD5UM+VTnPCnlT9a7vRIUt7GRZUwHXrGcgZrV0dBBFgFhk7sE5wK2lO
RSkU0jmmFQOW6CoZZJI0O0fTAzVS6AuIyu9eh3YPT8Kw7m0treJUhcMSTvy2
W+mM1jq4S4CSIygnAxyGB/GrTwW0OIVZypJY4PIqldRO8Ba1nbJOArAVHqX2
m3tV2qnmOMZxwKwZrW5ntg7hPkPLAf4Vmy2bKxHmoSRuAB/Sq7F4ZAGOcelW
EAmtGPVkOfwqsd8WCuQKaTubpU0bbAcY2k8jPNaNkElXCHDqc7T3/wAamdGh
fK5U5yV7flShYWIbGCeoz0xUyiJH37G6ct/+qrKzkhSjjHQc9aZO8LqfNfO0
ZrHubuJmXyFYED7zHmqs1202BIcgDj2qJHUnkGmuQc1FgkirNpZzXTgKOO5r
atdFYyuzXKRop6P/ABA9f61u21haQqi/aN2AdpXg/SqGvWBKo0e58clQR+dc
pchkbGDg+1Qbj0qWO4dRtLHGMVYXUJEtjCHbae2e3emxXKMV82R1CjjA7dwK
n+zW00LTRzBSGxsJycVUaFTyhz7VDhlOcEGpUZGyZSQx6Mv9a0bG8dIy0uZE
zjI5IrSWbYPtEJyjD5lHetC0uEmt9sMi7gPT+lKZG8vbMvzZ7ciq9wknnl1j
R0AHJ7UkLBuMYKnGKhvYXMnmwgEhcdcVG2sMgMUiFHC4znI/SnxXlwSZHbKH
GMjmlN0fN2MThuKnV0Y4YcetI7KCQpyfT+tZc8Re7wp5VcgHqe+KLQCNmljl
HToeopbUSSI8jA4c9e5qzFGIxySzE8nHWpgOOKTbn7yimuKbHD5knyj5u3NM
2NHIfMKkt2Xt9aR0PzFOcjGKjeNBCivkYzz15qjcxIm1lbO71GKgHH405YyT
0IB6mpgVXI796HXBGBjinWpOSDmrDkEfex680oXv2qKWXy+RyPeq5lydxNEa
vIZGAJCDJ4zgdKYzbm60nIaluLYph+qsMg/WqzDBHAq28QmhMkK/LGMMcfeJ
70sUeFOaixya3fC9kk14XnQsiAbc9M54/lXUxxw3F1OwRWMRHJ7HFc9dXQCy
264JJ5cHqOo4/Gun07Ulnst7RBBABsOeD7VJYWcxtQQoeSVs59M963NPtvKb
aR8wA5rX2gBc9qdng88UKMnNVtSura0s3lu8eSqktkZzUOhvJPZ/aWUxxy48
qP8AuoOn4nr+VaVFFFFFFFNkGVH+8P5ilX7o+lLRRRRRRRXF+KbAw6iZ0ACX
A3AAY+Ydf8c+9c8wwdrVE6d6aD2NGSjZBOKsRyA9DU4ORmmkU0ioZolePphh
0NVBH5ny7iHXp9au2d/5Sukyb2PRs96cNRkzIpkIzk5BBB9qr316GgCRLvdw
Nxxik0mzRrVpZ8HYevcc8/XitNLKZvEjxW7g25cSLggDnjH1/wAK6W8MQuY7
SM/vQvzZ43cVh6gEgcxRkjZy49RVK01lRN5MBKqT8wH1rpdGutsbwySMxyWR
m9D2q1cSShGa2JEo/I/Wqd5dubQrc4EuMkZwPauennZlLBiR9eKit3kuJEYM
VQP83vjmrGoX6wRfJucsduV/hNYGx5WacOA+c9ead9tuWwrTOQOvPX8a1tBv
47a4kZpRGh5KseCPr+VdloWtWl6XtlfZNGcbG4JHr71tVDcsEjLt0HWqjTqB
8jD5unvUMtykbYY8H9DSwjau5Gyh5Kjnafb2qB5Hjkw64B9KZKzSJgPyPWke
RTaM+/YFHJJ6Vzeph5rKR7QEydemOR3rN06BbtMXCBJzHu3AY3getZU8Je0J
3NhmO0AZwBmsoRMshAByPUYpbiBuud3HaqpG1qngb51AODnrW9rK+RLE0RJX
aPp0rpPCl5/pEkPHklADxwTXVTRssIeJcYwcZ9KtwTZjDHrjtVgS5XNODZ5p
rk4OMZxXMahfT/ad8bsoHG31qit3KrtJJuLnvjrVq3csjeZGpz6d6xtaCwXc
eCVilySf7pFZRvGDMVlBHYnqKuW7xfZfOMyBH4ZW5IPbmprpZJ9OTZcBcd2G
eO3Nc2Gu0imXe0kLgjKnODWMxaOUhlBKn0qNmBTIGMdamtZtuU3YVutaY8tl
2OobI5GOn1qp/Z7u58sYGeCc0n2GTyd7KeDj3psJeJyVcgjvViG8XzMyr8x9
uadJOg27+o7OPf1qVbmJiGhlWM8E7jwfwqWa7WGHLP8Ae5UKvP61lz3McyHd
FtfOciqrt0wCP60ypoQux9w5xxim7Ap+9x1qeK3x8z5Cg4z2rYsp7KKAoZ0D
k7icmotU1OB4TDAzFmxypwKzIbm5hb5ZGVs8c10Om3Fw6bbhixJ7nqKoa1aR
CFpdhV/4dv8AWueYEUgNO4pvFAzninqzqeOD3zT0uCAVcBgRjntQJEaMq6nI
5GDToLkxTpKoHykEjsfauosRaXUG61YpnJaM84NQg/MfJcxyR8/d5q8huSiG
WNX3dgKZPezOAsKYxkMrDmqtmZlQeYCSxPQ1OoO8uNxBOCM1FdWSTKSRgjoc
8478U20g2II/PSVTyvrVrauArAc9x0qlLbz2+TBJvQnhWGcVXxeSEB327eu0
4NPZGiaOUTq5JwQeCD74p1tGyMWcg7uOB0p5uIklMbHbj16VPuUjqDmkBUHr
j604MCOCDTHGScHpTeaaecnFPjjLq3JAb17VIIkX5eo96y76NRIoJ6j5eOlR
fZnDbQFwec1NLauuwKoKj9arSbwDnJOcnHSgup6jBA9adApYMenfp1p5LNkD
IA6HHH50FsFV7VDI2QR1qEghaAcEEH605ypUMp56EUbsj3roLKxXUdEXaRui
JzjGc54H05H61i3thLCiSMgAPy/LnqKtaKrSJJCAdj/ewP0qzd2DIrPErEL1
HpWTswwFb+g2xe4yZGRECycdGIPf9a6TTABc3Tr/AKmQhwx46jke1c3NE8+r
S8clicY7V1K6a72VtBGqiJWBlx1JrqLKIQwbQOcYH0q3EiKCxqUkEBhz6VG8
e+FlkOQw7U9nEcRYnGBmuM1a8n1nUrbS1jKxSOrHHJwM5P0xiu3RFRFRAAqj
AA7ClooooooopG6fiKF+6PpS0UUUUUUVm69ZrdabIcDfEC6n6dR+X9K4KaPD
ZqAk7sHpTXjxUfHQ00FkOR0q1DMHHoRU2aQ9KYRUM0fG9eoqtOjMN449aiDb
EGTg+4p0a7m5B56Vd07m78piwVhyewPauh0uRWKeUpaVJCGz+f8AT9aZ4jjk
F88kZKlgCprnoZCrTGQu3mIRuJ4U1mWyi3DyyAkk8V0Gk3zMBkh8+9bMl4cA
PkA/dINUL+5jYs7MSewZu1ZE7TzRHawCgZ5GPyqhBJLBKrxygOc5BHSrF9NF
IkfluC3O7AxzUL3LeSsQIVR6CqrylGGO3NSrcElXOCR2x1qeC+NrdLc27mN1
OQB1X29xXpujavFqVurIctj5iOma0ZAGUgjIrl9am/s2UNKyi3c/KT1B9Ky4
tShvoyR97oBnOadZXt1bXUkDNllOVyfvA1uS3gl2KwIYDrio5GYjcUA7ZFQC
BlyjkcnJB5zTJiscRAiU49ByaIBDLcBSoY+W3BA6cf4019CtzCHjwhzuUY4B
rD1jRDK7PBAGYd0GCP8AGseK2eKR4rqIqfu5I6VjahbGCcgD5T0NS6SUF0Ay
KSeV3DiujutBuBtS3LSK65yTnaMdPTFWtAglhQSyK4aNxhOg/EV3ltJ9qtso
McjIxVgBe2BjtUUkgTuMUi3PTAwKjvLlliyozXN6hqECIPMXAf5QzDAH1rGM
1zKHkjJVwcAYyGXjkHPaorbWZ45CkrGRQeG243CotTup53jNwn7lwGAQDJGP
foazb9swQrCm0hAWBPuePr3qpFK5iOVYkEHjtVwX7LZSWw2lJDuKt1H9agtx
JuCQrmNzjBIwaqXVs0bt5QBbGSCOlUhHKzFfL+pxTCdjABQAOOmc1safcCZV
i27ZFGNxHUela8EIcr+8AY/w5qOSCR42IBZCeo4A+tYc1pcRBmKkqDyKqkuC
McY6e1WVtJ7sptTHHJIwDVaSF4nKnIPtUbM/8RJxxzzTdxPFOGMd6NpPQUA7
ev8A+ulJLH1A9ulPVnfECEhT/Dngn1oMZ5Xacjk5qJgcfd6VZ050W6Blzz0+
tdPbyRlFcYOenFU9ZuAkDRk43ccrn9a5mUKG+U5FR4oxTtvFCg5p2BnnpTSF
+lCKS2BSHrxVi0u5rZ8xOVz1xW9BJBcqHSYBxwQTjP0rRs7lgihGBDdjzU1y
yP8AMyMpA64rO+1xRycEMg64HIqw+GxtIXd0bsahMdxKrqcBk+7zw3+FVfLM
ILsHCxkbGI5X1HFasSnyg+VOeeOc1HPESpKHBB6etUmA/wBWIdwHB3HkfSlt
1ESH5Qp+uakDLjjFRFEkb5lUgHIqQIADgVXutnAkkKZPGKjtZSs+xMMpPXNX
kyZWBIIxxx0pZItykp94VWWUFODkg8VNHcoqhXOCeM4qRWUtncCM9jUdyId4
YqCwGBVSLy3yRnOcHmrKMHj3cY9e1Zon2zN5gyDx9BVeQDcdp4NSi5dUVQBw
OpFMMrE7icmml2L7uM/SlMg4yOtQ4IZiD1pDwfenqMpQBkjNbfhyUCSa1kco
kg3bh2x1/wA+1bdvEqSz2twodt2Qf9k9CPwrH0u0nt76eA7kGNwz1IB6it3y
gY2ULncML7j/ADmsPUtNCNJcx/c34AH0zWp4WgDW1zK2WfAwPT0/rWhqDix0
7yyuS+BgcAYH/wBasjTYJzN9oX7zng/j1rt7KFobaNXJZics3qTWvGQ5GOnS
m3cyxoELgPIQFFXEACgDtTto6ms7WJ0isXJYgDpjqT6VieFbU3erXWpy4Kw/
uo/97GW/IHH4+1ddRRRRRRRRRSL90fSloooooooorg9bs1tNQkiXIXO5Mjsf
546fhWS6HuKZnA2t07Gq7fK3XINHsaj5RsjIq1DOG4brVjOaQijFQzKQnFU2
gZ8BlGB/EO9TjaqZABxTrJGkuyi8Fv0rfsYS1+ixTGORCCVJ+8O9XdXt3vLF
wvyyQNuVj1K+lcReG4dyB94cFcdKmvoTDp0TuRukxkE4ODUFmrKh+faSeoPW
tNbyZI9rBXA71H9oSSbHk7uDxjPPb9cVQu9QTy0toiHxlmbB65yMVUJLO7ZO
W+8QMCk3Kq8mommyeBxUUrZ5oWUgcdfekaRj1PNdN4bv2tBsJkikPX+6w+ld
W+rXUYQQqJCy5+Ujg/Q1JfWP9o2LW1zIjs4+ZWGD+H0rG8OaGluLiC8DCZTm
GTPykdOnY08FmuNzQeXKhwT3PtWxbQBxliwBHHOSDVlwVfkZA65qpeFdxJdl
OOPSqMrsVBeJycckDrQnMTsjEHGB61bs2b7KqFmYg45qVQhHJAJqKa1injaK
dFdD0GK4rxNpqWsoSPcysNy57e2axLez3yKPu5I5r0Xw409xbK5mDRqdm115
Pt+ldCLaGN2bYFVuv1p8SK7/ACt8oGRtqjeNJbMPLkZyTzmo4ZZpVAlHHQmr
AiOQYnyRz1qCUzhMTBmTNZl5pBvLZ/MfgZKkDnHpWVZqzzPbR24ZYkKllYZB
/HioNO0u2+2TxTOWdTyHKgDn65/Sr8+iujPLK5dk6ErgH+tchqcURuiIWOcA
hGBySeuP/r1VhnePckeVWQbWx3pssU5jEjDerHj3oiMhhcRkKgAGB3P9elJs
uTHvZZPLJAB/lVSSTkkMT9eaZ5vzE4AqVGJwysVzkZrQsLtIWKzjcM5U+hrY
S+mvtsdmACg5VhgfWpJ4WEPMgZwRuCjr7fp+tVoLFAxyo2tzjFXoreGIf6zP
saxtYhhdw6I2cY9qxHiJOFU5zimzWssBxLGRkcHtUeD2FKM464pOnXpUkDLH
KGfO3uBTQxWTcvBByMdqcs8hbDuWU8EE9qarYOByKls4jLcKiHBNbzK8UCiO
QoVHTAOfzrDvLya5JEhGAemKpt2xxSEEdaQcc0uc1NBFJMSI0yfr0pudjYKg
/WkbYR8uQaQDBpCuPelCHGaVSRWjZ3RUqHbhenvW3DetJAGZd27jjsfeq9xb
N9ncHbHISDuB+8KoRm4eNkWXaFPA3d/atG0l8xMyT7JE+Vtx6471c5ki3FQ5
P5H0qGKdoVxt2Io5Rufyp80kMgDiXB7KTgZqvPPCEzMELZ4AOT9apzSQoymO
Rz6jr/OmQh9rJEMg9waZG7QsQ52888bh+eat/aG6IynPQ4xWbcSySPl2zj9K
ar8rtYhh+laEU4eVGkfaVHB7GtATIo3ZG31Hao5Ikk+YDaR3HeqRljJ2k7T7
9qQO8YPlt8uOgqucsoI3c+9PeNooQnVnIzxz9KurbiSCMOSoUdKry26GU4zt
Ayc96imhAUOMDPQVX2nvS4xTcUx+uKAOKQqc9KljHb1phG3r1FWLGQrcbgwB
HIPuK6WSOWK7trx1BhmiCnac9uf6VDclo9XEpbOcofoeR/Sti0HnRg85YY/O
n3yBbJ4wvzbwOR6Vf0WzSMNsAXJ5A9his7xe8arHCp+fIJHp1qpoS3YZN7fu
AMhfr0rsTMuw4wVUc81a0668zZGw+crubHOKzdUuit0JZgxVFPlAcHPrWjot
wi2MESkuQu52PqeaNb1iPT7N33KrYO0k9Diua1G9lmEeXMyvjygozvJHAA9f
Suv0XTxpmmRW3BkxulYfxOeSegz6D2Aq9RRRRRRRRRSL90fSloooooooorG8
Saf9qtRPGB5sPX3X/wCt/jXISKQSpBUiqcuNxqvKhXDCm/fxjqO1BG7imYx9
e1TQTMCFYk56VcByOKMUYzTSoA4GKpsCkvI+U1LBJ5V0jBuDx1q39pMF3HK6
5wcEg8kV0yTwmD7SQsisNowOfeqV/pkLpFcxLkHAJJwSp5B/pXOa/wDvIY0k
HMT4BGDx65rPkbC7YyCgGd3rUDySJFhXKr/On+ddeXFLFwyk/MMZNUyhD/Mq
huuSeamSRUA3qSvtVZ3yTjpnpURfJ60xmJ5GaYGOTmpo9rqcNgjkZGQauWt9
c2qqoPy9R3/z0rqYby4nggitY+WAJdRwD6AVVXUdXiEUtzGzlQ2wtxkd+enG
Kv6ZqZ1eNopHZLhfmDR8E54P6Yq4beSB0WSVpCowCTyK0rVyCjHJJOBzitOB
PNLFvvDjH9arvEskrQyKD3pxiJTymIwBwTVRrERse+e/rRGpQgMMZNMeN5VY
Rldw5GfWoPtpjnWGWP5sZJHSotY0yLUrPLvgpkhs4xXILCqKo3KxZsEDtitv
R55tPkOGwJWBcHnP+RXZTzb7cxR/3flY8iqFrcS28yhZN0TD7r9vxrUSRJTi
RAG6jBpbm2aSIiMgd8Y71RNxIsixvC6g9WH+FJ5xLKFcMp45qPUIJWt2CKDn
16VmaTpDpMWupWEQbcEViAfb6VZ/s22lvzcWn7so2SA3DfhS3a6lKhHkpj1L
ZA+nqK4XxFBfLeQzXEZWUr1QccGqFtBLeX6iXO9uyr3+ldXZ6PBHbNDd3iL5
XIjAw4PXOAc0NcQefsaxxAqgyeSufYZBpNT0yKG0S40oi4WQZkDHkgjjgdPw
4rmJdAv7hDdLbtlz+7iUZZh7VnHT54iY54CjYLZJxgCpZ4IRZQmOeNiTyi/e
X61pWtzoUdpsu4LiW55ClOFH5nNammJE0IdUMa9MvxxV1jbjuHPoOppDKFC4
iwnOCcVEwSRPMhwWrMv4JpQQroW7joazkicyAbWAU9SM8/4UXVjNcK0u4ZHQ
Z7VnPAqR5LESgkMhHb1qLYSCwHAODQioc7jgCkkEefkzj3qMfeAp+0B+DnB6
0iIxyU6rz71fsbwQviYAZABO3mpL/UhKnlwLx3aoLWxe4n/et5eRnLDk027t
1W4KQsJV7H0qpLEUba4Kt6UxkIFN2465FS28zxB/LbbkU5Zm3BiBkDA4qLvR
mlU8YPGa19PtLaeykZSXnVc49PastuvIwf51LC/lSq4AODnB71qNqAIBQgE/
wjj+VXINQWRljnBxnJ3j7v0NJdWIWOSaFhkDOV4/MetQnTY2Ozc28KM7Tnn1
rQslligEUjBtpwCRjj0qaa1SVSCSucE4rMkspt7IFDRnkNnOKrXFmsFvukfn
OOlSW0Kvb7V2sW7ntURxbMItwYZ+bioJ3ieMqGKj167jUCTtGm1ZCajaQsfS
m4PrSfU1ZiuHjwQxI6datQ3SqoZPlbPK561FcMsjbwMEnkZqwJYQMNGoOzbx
396WOUGPGAMdAe1S/umljmLDI45qS1YFDITnPAGc0y7jIw0fAHJIprgtCd4A
2jgVRJBHc4pMDHGKjNR45qVELe1OeIDrUannjtSy/fz6jNWtNgEk6sxwqn0r
rCj/ANkeXwscbk7yAevb8xVW9snfTDdoMuuGPuK3NDAmjSQDjAbr29Kmv40l
lbOdg4UDuT3qzp6NHcNFGq+pyen+NZOvae0t6ZmDMP4gBzVzRIsozMDjAwGX
GP8AOKi1HUGinNvboGQ/JJj1at20ig061luI0cHYAS3JPsK4LXtduJCzk4eV
yqoP4VFddp0/2LS43kI3FQTk+1cV4l1GTU7hcgmNDtUZ/Wt3wbps2o6lFcXT
Mbezw4Un+Ifd79uv4Yr0aiiiiiiiiiqeq3cllaJLEFLNcQRHcOMPKiH8cMce
9W1+6PpS0UUUUUUUUjosiMjjKsCCPauX1TSfl+QdPlPsR0P41zcsTKpDdRVf
KngcioHj2Nlcj0pGYEejd6RTmlCg9R9KtKc81IDxzS0hFQTJuHHBHSqQVixP
p696uSFZFO/IbG4E1oaHcB1NvISQVJX2rZvS1vDbGRsKYwgHXBHSsOSFLiVo
Z32uBlcjlv8AGsa+gFsBGDweh9azuXPP0qe9sntJFVWYjpn3p91ZiC3VmzuY
dexPeqZXK8npVaTqaiPrTWbGMU09j709HxjHWrUKtI6xqSMkYHvW9o3n2N01
xcSCL7OcsjnBc84/z7V08lh/aphuoLgJbY3qo6lskf0FQ2GlSafr8LzwHYy4
3r0YnPUdutdXLpsMrhyMHGMUx7NETAGfenWy4b5Wz2pbmEs2RkHH3hVWKdnV
lk4Ze+OtWsBkGahlgBIz0B7VViQxzsrjA7H1qvqemee2YZWjkU5GDT2Vha7D
wx4yPeud1awNpl12iJTkZ680umBLlXilYBs4XPY1sENHbrEwLMOMZPNLZyeT
sglhAKDKtt4b/wCvWmVXyxNa4BHtn9KnR5lTLMOmTj0qZZFlHG1qhngiMThM
KSPSqCPcLas5IfaTkE9R61Fuu52HlQBIRhg7N1/CnIk7lWaIrg9VPOavfM0Y
XYx9+mKrtp6MwdpVBxtyy5JFVk0u0ZzNaIqKWLeYD8zNn+VZOs6S3n+dp/7u
RuXcjlj3z6etZmiW7x6ixu1kBUkOAw29OmK7ixsbC1hDJEoyOW9RUV1erG+6
KRIgh4Aj3bhj8Mf/AFq5nU9IudZvxcMY1XABdU2sR7jJpk+jadaRgtEoA6lq
xb2C1jdHhUAsfqBTYEll3ksxXGFyMYrSsbJJfnRidvJBBzVW9mMz+XAdhXK9
e9ZsN69lK6/ez19KUTCYPcJPtl7KzDJ/wpVN9NMuw7AMcgipH3rDJ5twY3+6
Cw/WoodPcsXtZc5Q7mfPzHsaadHYQOWTB4OevNUryxaJ4o1ALOO1VpbTy03b
1YEenGarFcNkdKceQPQURsVIOelPdQW3KOD7U0LU8M7xuDvwFGBnmoHLjOcg
scjn9aeJ5tgjaTKDseaZkYAIB9vWkMQOAWw2cYxn9aaIs59B7UbAvIGaaVPU
jrU1nbi4uFTOB3J6D60t2sbTFYkQKnGUJwfzqBgUPFKMsp45FKM445x1xVjy
ZIsFspkZBwaswT3MUJTyy6vwAwziprS6kiyH8sjPR+oq8PPilkl8xXD4BOcB
RT/K8ucyyOoVsfNkjkfoa0BPE+Qrg44OKpy3CiZLYMAWJJIbkYGeazdUvI5A
IYWD8/M3aqVu8a8tO0Z/3Sc/lTrq5jYqA4lwP7u0D2qs7bjkKB9KjZWBxg59
Kbg5+YEYpScHjvQVP400k5qSN+c+lWAjmLfxiljI3jecY9quJbpvDCUY9CMU
+BDK8pcDGMYFLas6wtGiZPXcegpJIroLksXOdxKn9KaC0nzkhRjGMd6imRU2
kOCMcrUW054NMKGgrgDNCEgjnGKWUZ96RV9qfKnyrxx0rS8OOq3jxPjDLxmu
nW2+0aRNtt2JABUIcc8c/TrVrSIWm0gwEZOCp7Y/yKl0m1Nu32ZW3CNyq/Sr
lxbus+1FBwN24+v/ANarmmW3kq7uPmY5Oar3KNLPIM4QMMj14qG12xQlYySx
OMnqaq6qv/EvkWMASSEHOcdDnP6VLZ6zDqWyCJJHEQw0h6Zx/wDqrNntNJ0v
zrpz5siHClvm2tjIH161kwX11qCxWiSfvZONx981SaBlvjCxLeUfLBx6E/8A
169Y0SwGm6ZFBjDn5pP94/4cD8Kv0UUUUUUUUVmeIf8AkHRf9ftp/wClEdaS
/dH0paKKKKKKKKKhuIw6cjPY1yF7YyQTmYLlAxGD6Vk3dsEUz2/3Dwy91NVG
YPjefxqF4/zHSom65HHrTw/5VKjYqUNuGM0I7Kdr8+hqXqM1ExKsQelZ5O25
OTgE8VNEyzOYps4x8vtUVhNJBfBQ5GDt4rX1aSa/trbDH92CrEdQKi1CB50j
uAGM8I5IP3gO49+Kiv4hcQrO/XAJA/nWK64LemeDWiksLWkEtzNueInEeck8
96pXFzJdPukwAOgHaqrMBx0qs+AfUUiDcOtNKL1oWBmPTj1pVtyGwCD7CtCz
ZVkRPKDSEgctjP4+tdYb2G6RLfVdPbB/5a55Uj3rQ0y3k0u0aBSHXJMBclVc
E557d/0rY+2wSRD7Qwikj5Gen4Edakt9UjuIiI54w475yKabicOHL5iPJYYP
FXYrmF13B1I9QalWSOVcowYexqhf24I3qGBA6rz+nenW91A0Y3uc47jFTAxu
pZX3Cq8yCQdgy9qqtKwkLNwe9QS3tvGjSSToqr9456VQ1RHvm8kGNYVAbcT1
qLT4TbXEg8kEyD9fatWFopkMU4KyKRhlPQ0zUGaOIAsCR9x8cirGm3bxxDJD
f3uf5CtCG6+0HBiZeMEE1YEKIDsG36VE5/2QfaoHViPkAUnselR7rg2/zBWc
A8KMDNSxJ+5AcEHHrUpbGMAfTNVi6XEjRcDjDAj+tNkjNrbGNJGCgcEDpWVN
fyz3SpAhkQ8EYyB+felS5Nq7GKNUkc5ZWA5/AdK1rWY3FuUkwj9iM4qrcQxq
zm5dXZRlVRsfpSQTy3ULmGJUjXuf8axdY0s3lqBK+B97rWE+lyQxbR8yDoDy
DUiwvGAdj5xyFPA+madDJ94uhxnuaimFsylm2LkfSs+Syt4iN8bhDj50bNUb
q3RHK/NnIO8dB+FNg1CeGRdzZUcc9qW41S4mQM8a88A44p9pqU7XUayMzAkD
GM/hiuwivdLlURLI8jJjOQQVPtVfVLKzFubmGRnYfKSv3lH0rnZNGmlgWaMq
3y7iuTu6859KibSPmGJlZN2Cwxx71FJpE3n+XCfNGM71HA9jiqLxlJCjdQcH
vzV2C5IT7PKoWNjycDIrSTT42t3jVlO7ocY2iqt7Z29nCBHmSTuSOB71l7S7
Zc5PvUzW3lyhJlKEjIxzTLi2aFQSQ24ZUqfzp9hA0822ONHwp3B+QPenyW7x
AoI2LMcMqjofTvUKgsrEoo6ck/yzUU6lSflI+op1s4QgOu6POSn96r2j4S5f
fASrYGCOmenBq/daVHKcqFGSD8uBjJ/wqnqGmWtrGhjlLSE9CQeKistPluIm
MSIFJIBZjkEfT/PNSSQXNr5cjIzKjHPdQc1JqDPdrFN5SwsR8mDkvVcwTQsr
yZDyA8Agn8RUcBKzN87K4BI47itVJJLu3iSCNgF+9kjr7+tZ7i5heRFWRVzy
MHFSmwuJ1Ms0iqQvAPXFZyQySHEak84z2qWWwuI0LSxEL65z/Kn2yWjITIpD
D0PWns1tEo8qPdkcluSPpVVrltpX5ee+0A06B45FMcybix+Vs8g0k9uYi5yp
C9waSDJDZG5AMtUJ9aciAbXHIJ6VYBdUDY+RuOemaaqlznvntVhY2XiRmCZ6
tU0t0Fj8uJflIwKtW0XnW8Z4DgFWJYVoJ5v2cou0EjaCP4ff/PrWc1qxjPmS
DapOePrVN2VlwcnHQ5FEyGGNRvUlhkjNVt+QeOtIOlAqzHGXQHHSmGPDY96f
Mp2j2qXSjjUI1z987emetei6VAyjYcoJVKg56HHP6/zqbTrXyNwzld2ScY3G
q8AlPiKaJQAuQcjuMf8A6q3Zo8sHABI7VXluAkscZBC9PxpZI13ZHJ6n3rKW
4VVLRjBd9qAjkkegrC1v7c9jK90fKBZYoo92S3uf88VLodvLDbNsVgrABWz1
GMkj8/8AOKzPEKKksVnbjODllA5JPcnuadbpHol1F53z3RTdgf8ALLI4z71s
+E9PF/rr3XLW9sd+T/E3b9efw969BoooooooooorM8Q/8g6L/r9tP/SiOtJf
uj6UtFFFFFFFFFBGRg1TlhVyykA+tc/eWItbgswxBIcMR2+tYep6Y9pIWGDE
3KnsRWaeenUU11Djco5HUVByKeshAFTK3QipVYN1p65WjcGzVW6Xb8wHSs2W
V4yHTt2qYyRzKtzGwDLgOK2PtSlYp4huIOHGPXrVq4kVYAUYmM8gjqB6VSup
8RsoOCRjHqD3Fc1JM3mMp656mljYHnmn/wAQ9PSo5kPUHr0qq2TxU1spBIU8
9MYqWOL5jUjK4jIFVuhw1OY5AOeveug0LxB5ObW+CvEejOM4+ta0vimzR3tR
GPJPA2DKfl2/CpYhBq6oLS4EcsfRx0P1WkFhdWEm+5kExxxtTP8Ank1s21zC
1ugf94AuNp7+hBqrsa5uDFbEIg6joTSSW11Zp9pXzA44xng1qWWoSSxBbiJl
7bv8atSrCoHm4Oeh9agZWgmH2eDKHrk8fhVeZpDOQAQBwO2a5XVdfQ3jWipC
R/emk2qR3/L865ibyb2+nmkMce1cqsTjg+uD1H+RXU6cWuILbNzHIyj7y8Ej
0P69q662tY5VjkztkUYPHUVYjtNkpdSuCckFRUGpWktxFiJgDnOCODWZ5F1Z
xKQu5lPPAIrQ09neAzOAX7dsVfjkk2ZccD2prPz6Z9e9McE9GPFOQ8Ad6cNx
Yhhx2qCQiM7pJFAB7mmG0iMvmBl8wncFZsCrKRP5RV8c+h6ColshCh+zBQD7
DI/GktdOjSVppVJYnhS2QKuKIpSeAQOKw9b0q6lm32cS428sOv5Ve0qK4t9K
xLH8ygkDHJrmYdcgnuHhuA6uGOFfjp6VdRlnt94gOzOOBmsnUtolJg3BVXJH
YY9T2rGnvmtp183b5bjI5GazL+6guJC8OQRjJ6ZFNS7LpsdSyZwrBj8tXbey
hnjRm3Ek4IZuvan3Gm27SIydUPIHO72qK702GNSyMAWAKoACfpzUljaWYkie
6RWHVwykEDv0q3fNp51INo7AAR4wCBk47f5zWbNNd/aEeAzLIOjY6fTFWokn
u7xXublLWYKFWVAUyc55x+NaNzo0tsFeSUyI3IK89T+tZUcMojliJ2qfus2f
m5P4cVk3NuY5sBHz3LNnJ7kcUifu8GRd47g1ahu5Q5SFgA3QMK1LSOO4jJuB
ufOMnuP8moLrTIIsvDGXYc7c8VX1CJLiPzfM/equNqjg1jZ4wScVqaEI1lkk
Jfeq8KBkGtG9FvdYgtpP3jkO+RgjHb61nasI4VW0tiNi/M3QnP1/z1rP3/u9
pXNTrIAiqqqnl8hu5P1ot5ysskzNu4yd3VjVtdXKgRxKRn+8eB/9ar1lp3lw
SSMVkmkXKg8gGqf9oztOIosxiQ/OdvIz3/KtuGyhS0EKpuB6k9TVTVLeO3VZ
4JPLeMjavbn2piPunVLuIFzwW4w3H86oappk0Za43tIgwM9StQW1y9pdLMyk
rt4A4q//AG0ZAiMijJGWIzj3qa4u4kQbwAG7hSQR9arT30ccGYo4WQnkHr07
1kzXEsq7S52Douar5I5p7Su6BcYx3qP65p8fFSzOWRUUEKBg5Oc02EsD8rbW
H8qbK28jgDj0pB8jKQ2eM4p7SFlAxge1OXYHG4nb7dRVsS+bGFJ4XkZ706AR
oWRiSTjA4welW42i8v5ANy+taAcxw7mQ5bn3qOUM1uEk+bPJx+lU9Rt4IECR
hjKPvelULmRpTubGQMcCq4B6mnDGKVBwasRyngdAKNxaTNOkb5frUUBZZAyk
hlIINes6RIj28Mq8l41Y59T1qefcLmRNp5wy4PWorS3/AOJq77fn8sc+1am3
tUEsPyhwo3K3y5plrFNID5wGQTz/ACqB9PkkvEmRVHlN8ob1/vflmsfxbtii
8hVZgq8hRyzEj+XFU7CSRIxLfy+XIFPT7ox7dOKwILww6mL0gO6sSq/3mpZc
z3Blk3SXUjZc9h6j616joWnjTdKhtyoV8bnA7Me3Xt0/CtCiiiiiiiiiiszx
D/yDov8Ar9tP/SiOtJfuj6UtFFFFFFFFFFU9QDQqLuMElOHX1X6e38s0skcd
1blW5VxWYLHCPaXOGg/gOOVrmtT0o28zIAVYcqezCsgqyE9mHUVE4B5Xj1FR
dKcrYPWpY5Mnmpw/5U7GDuFDgOmDWVPD95f1rJaR4ThSQe49a09N1DY+Dh1x
90+lXJr7bI/lqfKf+Emqkl+nl7GDFQc+61Tl8pmJTnNRxsB659quW4ieRd+W
U9QDSyJlB5Y3AckEc1Xa33NvX7retX9LkFncESpmNxhhVzUbKKL9/bOGVjnA
7VmPcCJwQvXtUjJHeRkpGA4GcAYNZ5hlwSgJHX6VEud3Wptu4cH86likuLZw
8TNGR3BxWxa+Kru3XEq+Zz1DYpf+Er8x90kBznqGyalPi4RDMNqxfP3nbGKn
svGOoyttmgjlVjhccZ9q3LDWxOAwVlBPMbjlfofStSVbfUIhHKhSQcq6nBFR
u2oWhVcLPGP4zwarz3n2xCiF4Jh1DLj9a5GXwVfahfNNLPEoZvmPVvyrqLXw
xZxRlJLa3IZdrbEwWHvU02nQ2kSi1twig9IwAPxrStGMY2mEqMdeKuean1o3
ITjIpJYkkGCAaigQwvsAyh/SrXGMYpGUMQcZpPKBU8YJqKWJxjyuD64zUO65
RsMFYH0GMUSz+Wo86MufVRmq0mpwgbooi7d+KjTVBLIiq6AY5+YYHvWvAgMY
YtuB7+tSnaeM0zZtBKEAdTUazgsQrg1OXATJIrgNe0i5Oqy3FrDvjI3ZJyR/
Wqdpq2qaRC9u0LyMceWCMgZPTFXYdQjitp53QtcSkCYMCCcjtn0Ofyrg76RZ
L19oKpuwM9QKmm08G+W1sZxd7sYdVKgk/X61Mul3UF4LOaJ/OdsFUwxH4VaW
++yXItplZguN7GPDKR149K04UgkJaGeMoRwAKsJYxSR7SUB655ziiaxiAXYw
46kdSKz5NFcymW2ZIwOQDV5Ukgt932hPNcFQxHNZUlreLMpCMx6knNbNi93K
ioy8x8EYI+X/AD/OteCxMu2SVCVC4BK8c+3Wq1/poKbJIVCrwOMflXPz2EbT
qki7WVvvL049aLjR4vLM8KOV6kg8j8KS2ZI5hEimTb0ByD+vvWgkZd2JHUYx
6Uhs1AVQg46D0rFvNAkRZZYmDHOQgHJFVY7cNAnlsY5xwcHFVEhufPBTc0uS
QQeTjrU8c04Zre5jZlY7pBtyxFLc2ce0S2r70PO0csv1FVLhAhAXHI68jmkU
YYK2UI4yKsKiwMgkjHlh+ZB/F6Vb/tR7dmVW8zdjaynAVcdvepbeKC4nhaJZ
PMA/eKc9PrWzasAzZclewzkCrJWN1+fBU/rWU1jcQXREMaOhHDk4KcfT/Gnf
Zrtont2eNAwJAxuz+JrJk0m5Emx3RfTJwPoKrJbzgvEINzqwGcdDVuG01AMS
g254bIBA+gqOfSXQhmk4OSSeOaqbYV3bIi5j/jDZFVZDvYkKBk9BVt7Jo7FL
jcPmONuMYqsAxGMDH0qa1tWuJRGuATzzR5Ds5SNS5zgFQTmpYbO4cr5cTFic
Lgcmi4s7iBt00LoSejIRVcw4YZGCw44oUBWIJBFPjjErEF0XAzlu/tT1iUkL
G5weM9OauQ2qXUUKeekTDjc/+NbFlpFtCHJufP7HnYAPcZzVq4jtWLMtwrM2
MBRwg+tU5hvDpD1HBdun4VUkgWAtJcMS5HIBzn61QuopPKSbafLbjPvVTBPb
ilC4wDTgM09VI75xTlIB+YfWpGwwyuaZGvI+tekeE5VbS4hnLISvP1//AFV0
MiBwrDqDip4YgpZ8ctTwgzk0jIOvp0pOg9KikkMa5GPb3NYup2/moRI3zyHb
kfwkiuQ1aZpnZY8CG1XYccA8/wCfyrPs0cTLMSAw+ZARkE11vhPSRLqKTy/M
IFEjH1c8jv8Aj+HvXdUUUUUUUUUUUVmeIf8AkHRf9ftp/wClEdaS/dH0paKK
KKKKKKKKRlDKVYAqRgg9DVCF1tpPssjYKjKZP3l7VYYK64/I1QubZbmNrefh
uqt6fSuS1SyltZWEi5KjqBw1ZcsWFDjlTxxVZk9ORUZBB708Gpkcg4PT1qdW
yMUuOT6Gqk8R5K9DWPfx/wAQXGOpqmjFHEidR1FacUqyqCOh/Q1FLESDUVxa
z2oXzomUOoZdwxkeopqEMOmDUij5cEc/WrEXMXBbeCMemKtvGmyKWNWKPnIJ
5HtUbKViZSOUOcdwaYs2UIJJ9qsQ6a88KT56sQRjtTBayQy7s4OccUGQ7yQm
HBznsRVW7to+GjwrMc47YqOIvESrpnHWrSyRFOuPY9KVYI2wVzg/jSCzgIw2
AfaomsY3+USDJ9aj+y+QN8bksp6etO/tO9RcpK3X7vVQPpWn/wAJfeRFClqg
AGCGJOfyroNL8c2k4WO9gaInjcG3Ct2DWtCuGA+0Qhj03nH86uiK0LiWLbv7
FTjNK80oAKwrIO+G5pI7uBztfMTejjFWhEpGQaY8J2kLwfWqLQXYckPGSOVy
vFTxGYYEybT6qcg1L84POCPWlDtu5Ix6VOvI/wAKd9aUbQOtNZ1GT6VCzRyc
EY96iW2iDk7VOfamGzgOR5CKo6bQBVqJwY8DPHHNRqZWYgjHvSXEpjhYhckC
sJL6dZD5kISMHr1rRXU7SQBGLAnoGGM1XuVjDF4VwcdVFVbfcoaRraJy3cjP
51FPEskwmSBY89RisXUNAtZW88qQ7H+Fuc1at5PJvvtDWyo8UIijVQCox0Of
yqL+27uxZZvJS6wx+c7VIB7ce/eue1djqerTXaRlRIR8vXtjmrsenx2xixeI
dw+ZFxkHHqKvKjlOHAA7n1pxicoDNhSBwQ3NKrIANgJB61BLhjyrMnUH0pyl
gNobgdOO1S2uYVYodoHOTyc1uHWbZLfESN5ijJCjiq0t5bajGYl87eCGOT0p
semNHaTMiIRIOSen4nNRwCJrYRSRKsQP3eP1/wAmqN1a2kF0gjG5yDx1A9wK
tQ2irEsjAjPoeCe/FI0eXyF5HHJp4tS8ZGOn5j3rnrjSi00uWyw5ABxn60sV
qkBWVEDFcqecfjWVqs5N0GMqsVGCFHGPQnvVy3msktFlhYfaACcn7xJ9abdp
HNarM8aADgsowT71AZoGttiFTCkgDK/3iD3HvV26s7KQCFFKTMONxP8AXrWT
NpV3HKYlj8wqNx288VbsJ5IkEDAxy7h9/I4/wrYngkezDO+0r821AAPwrMl8
QA4jNpgg9WbpitO21OO4XdHye471PaSCSLJO5iTnnPei7toZyvnNgDoM4zWP
f3yRIEtziRGxwMg8daqWl5etcBUcyM3HNXb2x1C8AR2jAAztXgfn3qKDSbqR
jDcMscQAB2/xYqynh+3V9wkfpwDVPUrF4h5puGmiB2qpPzCnGGOS2iihLCFB
mR9mdzYHSorOBGDryW3bd+eMdOlWLyxS0RZbaUk9Dnr9RUKXUrTqxlkjBzgg
/dHtV6Ke9vIXje6BgY4+cAscVm39r5GNg4/vZ5P4VSaIjkqd3fNWLDTp725E
UCFiCCQCM4/E1q3ei31rahliz83RXBIz6gVdsdPxHEl1gAn5ggzx6GpJ/s8Z
cQQyFh0PX8hVORYtobeyu5+ZOcr+FJBNDA2wq5xwO+PpTJ4GmuUAjbY5DNkY
xWjLDDLAEcBhngcdaxr+zjZyLWFlCDLEjAPr1rNKEfe4p/yqoyBmm55z60ig
nr+Aq0Fwo46Cmqeeneuu8IzBb14t3DgOAOma7dD5hGOgIPFXAOMUGkPJxUMr
Ddx1HQVBKu1DK4yQM1yGr6xLcyiG1YDJ2mT+79KoQ2SyyCCQlYISXkIOS57D
6npUws5prqNBCEJJARRyoJ/nXoGnWaWNkkC4yOWPq3f/AA+gFWqKKKKKKKKK
KKzPEP8AyDov+v20/wDSiOtJfuj6UtFFFFFFFFFFFZ2tWTXVqHhOJocsvXkd
x9en5VgWmqXEEgErF4z1z1ro0aK6hV1IYHoarXdoLmHyn5kUfI5rlJ7EK7x+
Xgg4KnrmseWMwyFWBxUTr69OxqErg09Gz3qZG29+KnU5FRyEn61QvYxs3BR7
isgLywOBinRM8J3YJjJweKsCZZFO080kxZgAzEqBx7VWzjjoasxAkYYdOhqe
IvE4dTgj2q4hzEdwADfzq39gN1DuiYF8YI7mqctiY2yow2fmB7VJbO8EmA7B
DwQDVi8dZNpA5IycVnOucbSM+5waqXUkrlVK4+Wq4uihw3P1qwieYvmbVIzy
aVZRG3yswHbBqVrgTR88nGPeqgJZyN2OaR4pNpYN09TULrtjK7st1HNM8yRe
q7h700yAnlcH6US3DSBQxbA6D0pY9RmgGIriZDnohwp9O9aNp4v1m1xtui4H
ZxnFdBY+PBcbYtStl54Liuo0/VI1QPA5aJuQM5rbt72GdRzgn1qZgsi8H8qi
2Pnknr6U2ZZUG6JQ/qpPJpkM0cvQFHHVWGCKkGV57n0qZXPsaUn1FDKpX2qJ
UXb8x5pQgx1xmo5pkiO0sfb3owWUNGetIZtrAN1Pc1IQrLg4rPkjRXZXIdSe
pOdv4VQvFJcSjO1P7gqB7uaIHAJQ/eJPNJJcWwIEEu49Tjpn0qrd6k5i2whm
dTggCsS71NmulEk3XgIhy34+lRK186MIUbEh3Bie3pSrpWosiMJ9m05wecfS
rH9kXH2hGgkCjHzjbwx71qWunxRh2uUjL44OKguoCMmPOTwB1AqERySps3fL
3B7VJFEEUqmN2MZNWoLOaRN4QFQOcnFK1pmIbF57+1C20cZG9untTLpYowfs
iJIV5JdeBVWxa7e4R54VaLJI3jHPqBWq7yvGyFiewH3cVnOJPtO2ThAOdpqn
csn23avPGMscYrVtoibZCcqo5GO9XFjVMFvlOM4NJJcgDbjaKy7slyzxsoB6
k9aoeQcBSHJPX0xWRqFgy7ppmCKThFX+ZrKYImMZOOvv9Kke5kHyuA6BflDD
pnvVvQzbK05umjAIwNx/lViS+ncwtHAoAfakpJ+b860bSW6eaVbmPZuBCkHJ
GOP51DcwyR3EN1MiksNjDGf/ANVWZtStlgO5wTjoOfpmuUlIkkkbaMtzxwBT
czwf3489O1WrbUbi3csrkk9R60ye9uLqUNJIcjpz0qa2smuEaaQtsXsBkk1q
aSI4rYvKu35jjI564rUaZY1LvnpmqTavbRwb8lmJOFxz1qsv2zUvMcz+VFHy
QvGPam31vLJp8LCJdw+ZmB5I7E/WrdrGllpWfLdpnBLLtHArDnims5lZztY8
gZGRTHmlkJLMTng0xtxAyTj3qWGVox8r7TnIPpRueVsyMSw6Z7miEKfvkj1w
etT2sW98JJ5fTknkYrXML/wSMq8lsE/N+FJPeCJRskO0LjYDjNUUuZ3O2ElT
jk55xThDKWCyykB+cDitK3t4xtYAFhxn0q3EoJwF4xzTZbRS/mIdrAEcVQvk
lws6ZBQHP0+vesqdxM+4KFYj5vc1V24PXj1NB68GliUFwTVzaScYPTjA60mz
GM9q6Hww2dXiIX5Sm04r0K3X5t3TPFWjSGoZWxgDqTTVXBBNZuuyNLD9ljLK
rcuy9SPQVzf9mgTpGAQDgg9mPbHsP8akYIJT5XyRw/xYzk92/wAK2fDdqbiV
r2SMiFeIw3O9v734fzPtXS0UUUUUUUUUUUVmeIf+QdF/1+2n/pRHWkv3R9KW
iiiiiiiiiiiiuV1uxFrc7kH7uXLKOBg9xVTTtRlsXK/eiJ5FdNHKl1EJYXDe
tVbu3juQXXAlUc/T0NYF/p28Nv4Oeo9a5+aF4JDFMpAPt+tV3XacMPxpmCDx
Tlb16VMj4PselSON4yOtQyIXTBrHnh2OVI6dPpU2nStZTBnjE1u/+sjY4DVS
vF+z30hhBCbjtB9O1WDh0UgjnpUTp2Pr1NSQ5HBGCDirBU7cipo5D5axscKD
nmrcU/kSq6EgEj8a1DC17Czq4LryOeTWftVkAxhwcGneSdjA8jsQeM1UmzCc
HPrg9DUd9Lb3CK0UfkyKMtjocVlXmZjlwpbpvAwW471Y0qCRo5lc7UTjIPIP
oBVW4BjlZOeDjmprcEBSeMnoaedhm4H17Zpt00Yg2q2DnJFVppFCIDjeRlge
1VzJtOVpPOkY4xn8KaXJ6rTAm45BX6Uu0LjHI70KFqzaXd7bPi0lkUk9F5/S
ux8P65f3R2SGOV0H3WGwn8eldnZ38LgBmaCTukgx+vetRWLLyQfpShT2bJ96
aQScOn44phjA4APHSoPtGxisiMCBnp1p63KO2M8+hqXexHy0/k9cVXuJ1hU7
iBVOCRrk43AjscYq08iwoBI+1f73pUzxK65zWeblrdzEzc5yM9xVkLvjDhVc
N1HWmJbQtIdyhD3HTNJc242mMoGiYfdC1y1/b3FlKTDp8fk4OSCef+A54qGX
/S4kiiiVQCCQDt5pkMMds4VbII2cEgZz+NbNsnmDCwBfciryWkOzdI4I9qCi
txEm1B3Azmq1xsC7VBC92rKlmRmVRuwp5yadCqlyQp2+gq2lmjAZPufSryAC
IpwePvGqnmDcVyAvTgdahkDKckcA9+9VVkUyE53MTj5R0omDPJ82QfX0qtKZ
MFWBK9Mg1Wkufszqrs2M4GBx9TWY6zz3ZJ2sc5G49RSzy3Fs/meY0RGMBAdp
+mK0rXU7i8lzvVY14JbkmtggNyZQfXJqBkjLCSMF8/LkfWoZYoGia0Sd94G4
kcmsG5sdQG+HypHQHOcdfxrINvIZRFt2uegb5f50n2Vn84khBEMkE5/Co7Nz
FeRPt3bWBxjOa3dZ3S2aPbRttVt+5T92qukatMjmOXfKzEAdz710F4IpYGWT
HGDz2561i6vpsdvAJ4S23IBBOc+9UtNsmvZdoIVB949629TFuiLDtVpnwgZh
nb2zRZaJHBtkkbMgGOBwD+NSw6XZxzkGESO2Sd3YVKmm/ZpTJaKgU9VYf1qv
dxqdPkEjJEC2eB0bNUra1uJbdpJfNYfwAnAx649Kg0y18+8bzmACgjHc/Sth
Le0tImSSRthJB3McfT0qpdyNcBYbEGQDkgZJH/1qjnuLlisBV43QjO7jn61V
1e2vAxuLlVCb9i/Op5xnHB9DVGF06FST6ZxSzTuwC7i6DgZHSmMrhQccN0AN
BUoMk9eRz0qzbRpLkSyBeKlaMAZR1bAIHbNXrC8ywjkAGMAds1Pd2yzSjbwT
6r1+lTW+niIklzu9BxT7oWtrsLR/O+QGJyaVmEVsTGqiQ84PGB60xJvIJlkl
j2nqF5Ip8+pWotmMc2XxwAOc1k3eoNPGIkQKPXuazz+tK6bOGGTTHOewFSWy
85OcDk1s2UJu4C+3asCNk+uf/wBZqoUDzKmQoY4J9K19Hc2BDHaWbHl9sk9P
516RAuI1z1xzUpoFNYDvVO6u3QsIlBxwPrWJJJI82xgCC25mPGcHkc9BTYGW
+kleQuscZ2q3t/8AXqlLbtd6glla43SNk84A45/IV3FtBHbW8cEQwka4H+P1
qSiiiiiiiiiiiiszxD/yDov+v20/9KI60l+6PpS0UUUUUUUUUUUVXv7UXlo8
JxuIypPY9q4uWNopHRxhlJUj0IqW0u5LSUOjcdx2NdCsq3MAubYAyAfMvc+1
RB4J4xuB5yASOh9KytS05JY2QphlGcenuPauYubd4H8uTp2NVSpU4btTDxzT
kbselWYzwKeeeRz6iq15ArKZF7Dmq2A8WCMe9Z1+X3ASHJUYB9qitblFwj9M
9avlUkTgg56VGoG/IGCOCKnmJ2ZXoBRES4GRg1NHz1P51et5TE6GN8VZnhSf
EkAwzHDL7modr28skTpkqcHPUGqt1+8+fduHSqDncpK9uuapyHfk44zT4LtY
y0ZwCf4unPvUO4GZizbhnr7VM1yydAOnGT0pttIEfcThTnJJqrJIxkMhHJPS
opSznJzn1NLHE78qrEDqRVooiMFMTFT2Gcj602SOFlGJecf3KrGHH3SG+lAi
OATThHnp1qVEeMY5wRzg1OiO6oIiPl6Hoa3bS4vwFfdLj0bJBx6V0ek32o+W
P3DImeMEDP4V0Ed66gNIrn3XmrUN9HLja2c+1WtwPUUFVb0NQtZxsxYcE0gt
5FwA4IomiYqeefas6e2n8v5Bu553k0yzspI3Kuzsp54xWnNEDHjaDjsarCd4
kK457ACsdo5bm9CXxePnKgng/StiwtfskbCNVwT6YqaRnPBhB981VlmkRwFy
uOo45p6sl1EVYc9wcHFVhp0McoZck+56VOttEVwBlveohanPzj6AU4mOJcNy
R2J6VmXF/vlKpg4PAH+NVbq8aZRGAd57AdKhjtSvUbn9D2rZtIACgaEEDqc4
H/16fLFlyFXjv6CojHmNs4HPPOKzboCOUAjOKZ8jsfvE46A1XCyRD90o3c8t
x+VRrGzJiUksx5JPNQXEhQgHhR29qayCRR1OeRuHFV5EZA6qAex44rJ1C6uo
jFFJgfLyBnBq/ZJvst0qIGI5/hGPWtFDcLArDZIwABVT29RVh7uGWHy0llRg
eiKQQfoaWWP7Uok+zoVC4WVnIY+3rVyCR7aFEuijbmwm3jAPTrVybTbTUAVm
gSUgYyw+YD2Ncrq/huOxLSeZshbJHVsccdKxILWWyImnjIRvuSDBXn1plzdy
kNGk7GNjk9s5qC1mktJfNhbDAY5FW471nY/adxG0gYGDW4LP7fp8YmLj5cgb
vyzVXTNMMN6Fl3q+7GOfmXseK3ZtLillGFkeRG38L0/Gr0sEP2dI2RiQQ5wS
Onqaq28JN05+zrEDjlm5I/Ck1GaC2lI3/LnAJPWs29v7e1ZYmXIYZ4waz5dU
ncEQrFgerck1nAXdqwmIZNxzuq/aTzI8txdQCbK5CS8KR9D1qxb6vNHcNJZ2
ixB1AOThQoHqaJLlb0xI9/HCwbDyEkg+/Aqp4jktpLtfsshmKoFeQ4+Yjvx1
rLtmWOUF0D/7LdDTxumkfyyvzHAXHX8KdEIV3/aCwI+6qDqff2qJ/mbJHPtS
r74qWNowuGTJzwc0/wCUOPL4wQefWtW3md4nDxZOPlIbJB+lEI1BH8xOUbnp
x9cValtnuFLSTLs7EgAfof6VjTPLv2s5IXoCeKgJYnqaBSbqkwYhuIwSMjio
mBADHnd60pTgmQ4UYHvUylSqKpONoJUetdP4dAmsbxERckDOfTFYV58rEp0x
kYPvV9YGc2sjAgQohVc/eJPHP4V6ZbMWiB9amNKKa/IIFZNxcLbAlk3zlvkR
R0zWEZpbm8NsGO7ne2eF9qknvktIzDbFiM855yfWtrw1YGC2a8mA824AK9Dh
Oo/Pr+VbdFFFFFFFFFFFFFZ2vLusIh/0+Wp/KeM1oL90fSlooooooooooooo
rD8Q2IZPtifeGFcccjsf5D/9Vc4w4/nU1pdy20m6NuO49a34JIr1DLGuGP8A
rFHc/wCNR3GIlV+WQdG9D0wazNQskurcsgwMZxjp71y88LRSGKQdOhquylTg
imMMCnRSYPWrSN3FSEBh296oTQvGSYxuXPT0rMvSWgOYiretUBbMqhqlguGi
wu3KZ59avEiTY0eOc/jSyt+4bOc9qdG7Dg44Pr1qwjZGG+8KliHzgZ6n1rRt
S6L5mSvI/Gl1CZJrtpFOd3Wsp2QyHJ4PpVSZigO3BHvVJpN2cjBNQuck7uvW
lhXILcHnAFJJw+0+vWphgphmA46Y7VG4y2CMegqSO28xM/jTJSqjEZJHb2pq
SsrZz161KtwRgKqjI545NLvkZdqgAU1kdgCyDnoQMUotm67SB60EMAuScj2q
SKaRRlWAI5Hatmz128YCNtre2OtbdjrgyUuBj0KityG4WVA0b5qVJvLIJIB9
uM1dgujgZbcPU1cjmVxUu/ilDUZoOD2oGBTWXJ7VE8Kt1FQmOOVvLdQQDnmp
9oUECqomkWQqSGHamzM33jEMeoNNWTCg4HHvUb3ALAZBzwQDUK+bHKGGRGff
NSmaY/dIKnoTVeW1Z5BISSe4zx+VPitre3y8iKGY4BPaoRYgSGSN0Oe2Kkh0
87i0kgyewGauRL5GV3gL2zxVeZpG3ZVSe2KpOJCCCGK55J4zUgtVCjLrtxjJ
NVHjtYx8soGR9TWZcTYGAQY88tnkCql1cBGQxuAp6n0rPnvw1yEDh8/xAUs1
8+wRq/4+taGmWX7oT3TMQw4qnr0Nls+QO0/8PGQRWVFI5tHhllJDfdB6giqy
rIjho3IZSOVOKt/b9QVVZp2Iz3AP862tEEdzN50pkZ0+6SfkX2HpWzdBrtEi
iGFSQEuDj16VqWDIr7HO7GMkNn86m1yJLqERRoTIQQCOMe5PpXNDw3tsXN3M
Syk7IockAfj61n6T4RuL+dzLmKBSRvGDk/8A6qsan4Jltm8y2nQxfxCTtVO1
0a6uXDGIyyqAoKjCL9T612dhoot4x5hPCj5s8L+dW5LO2gImdQ8mMA5JwPaq
kV1FBPuPOQcKD0qjqGpBEZnVdmfTmqEV288oMUcaxnABkO3J9RVfXreDyUji
kaeWM7nIXgk9AK565s7h5zkHcfvAfw1La2M9w7C2gDqg+YuSefXjFTWNrNbx
yzzkGOIfLGx+8c9h3H+NJLqBuCUltkx0XAxsH0/rUN+SzKI9+zgBmOSfqagn
tVghVnnUyNzsUZx+NVfqKTbzn8quacAkxcNswCd2M/lVRgWdmJ3HP5/hUhG1
DtXP+0e1Rkcc96AakQ885xVyzuUhYhxvQjGD2rYt72KQ4ExjYDGCeKvCzQxZ
LvMCPukjBrIu9NbzN5Kxb3xtI4H41kspUkenpQeM5/nUfzZyM8dDU8CeY/71
iB696JUzIcZIHTI7VJLDJKiuegXnPX86iVNi5B/xNdl4Qtl+zTyn70nygewr
L1WzEWoTAcRgFgAOOTwP8+lVWEtxc2ELuyxECMbRzkZx/Pr716hZurQIiPv2
Dax9x1qx0qve30NnHmRwHb7q55NRW9zutxLJguwzha5vV9RlS5KQIDcPwoXn
aP8AGqoje2AtcjzZMGQjqPatTSNOF5eAsAYIiGYHv6DHfOPyrraKKKKKKKKK
KKKKKqamu61Qf9PEJ/KVTVpfuj6UtFFFFFFFFFFFFFIyhlKsAVIwQehrj9Ts
msrox/MY25Rj/EP8RVEjHTGKmtriS2kEkRwRW/BcpdxmWDBkx+9hP8Q9frVa
WCSCQSRlpIS2eByM5yP5fkKydRslnjLpjkZx6fSufuIWjIR8HjINVmXB5FNY
Y5FSQvk9atK3AIp2N3I/Kqc0KljkAiqksI/hGB6VnzQ7GJA4701WaPpkgjp6
VLGWmOQcpnjJqV0DH5hU0ZGQOBirScDJFaDNOtgiFcoW3KfT/P8ASnSW3mWo
dxsduhrLuLGZWwoJzyCKpSLMiMSBj361RYp8u4kZOMVAwyx2nIqdQVC96kuI
2jYFlIPB596ZGOQMEvnipzGUfcemMVYUMIT/ALXt2qBYQMZQe9LMsS5CqpJH
ao1hfBIAHfAFPVGI5IUD170jSgnBOcDtxSKxB+UkY9KlUkj5iMD25p6xRnHy
kn0P+NXLa23EFYlTPvV6O2KAnaxYcAla1bFHRcuFHHfitOPoCxDe2OlWEkIG
BwPQVdRZHQbW4qzE7E4yM96mDbfvUu4HoaFZsHNO3etIWppPfNQNOqnJzR9p
RuDmqzzFWOI/xNPgiLxnzDkelV5RHAxDOqgnio5Loxru4x2IFNjvjNHwRuHU
U7zmRQNu5e3tVmGTfGflYY7kVHsUjLAN6ZOaruHyQqlR2xSIPLOXlO4ds9Ki
e7IYjczN+gqCW/LjCMG7Z4qheatHEpV1yemQOhrMGqurAyNlQeV9qIZWuZfN
BfjjavqaS+ilETKsjsTyqEZz7ZrFke7dXZwfl6g9qm0+ISMZdi9PTofarxtg
44Xmr1vMFijjcZQcHsQcdqzLlJEkeRZDIrt8pDdPbBqS5toRbgrBkn+IcYNZ
y2rNhmuYgM9Bkk/hjNTQCCWZ4nBYE/IccZ9TWqmizrDuZEKYz8nFVrK0uG1G
FGlYRRksqj0HNdXpkkCeeioYgzBgWXBY963DbCQKiZ5Gd1MvrJ3tTBAMOx+9
3FWdOsvsVssZYu2BuPqfWnXNjDdxlLgbge2cYqGK1htkKR4HpgVK0kaKFkdc
Ec1h6rNCLhonLblAKKOh96y0bzZ8E4T1zirR0+0ni/ezM5/upkAU200uwYlU
indvRjgAD60+8RIYmMarhRnp0rJttNlui00k22Nur9Mj29BVG8kKk2mnrC0a
L8wxyee5zzTWtJXtI4gqo5bLbQSG9OKYYFgkjknifeoO9eCCOw/KqwkTeWZF
Uu2QuePyqhc/PMc4z6LzRbwGWVUHU1NeW5T/AJZ7eM56fpVWQbfubscdfWmk
Bj8oPHWpE4OCPlFBGTSCPv0o2kDFPRcnJqxDb7yQwIz0J4H51NaXU1rKDHL8
gPKk8GpLy9ln6tgEgkA5GfaqipnnGKa20cE9qYqM7BVU5PQDvV+2jheaOIFj
kfMfer3kqYDgbVxyAuCaz7mULCw+YAjoapx8uCR9M+leh+FhEuk7sgncc4rF
8S3JaGSYICpk8tSOvTH8y1Q6S81xrEccCZkthtUbeOnJ56dq9Ds4FtrdI15I
HJx1NOnfYhwwU+p7Vz1zpCS3IaefzZG6DJwP8BS31zFpUYtbUh7phgDsnuaq
W9utla+aW33kxOWI+6P6UyKF5phHEu+RuOO9djZWqWdssKc45LYxk+tT0UUU
UUUUUUUUUUVBejMCj/prGf8Ax9amX7o+lLRRRRRRRRRRRRRRVPU7FL+1MZCi
Qcox7H/69cayvBM8UowyttI9DSlc9KktppLeVZI2IIroba7ju490QHm9Xi/v
e4qhcpHAzOmGgZuT3jJ4wfbtVHUtNjOX2nAGcD09R7VztzbmF9pOV7MKqupU
4pjKQcjpVmBw4A/iH61Op70yePevHB9artFjrVWeHg5Gaz5EZD04p0ShTuHf
tVpfmH+NEZw/zZx2NWgwU4PetbS7+LZ9muxmLojgcqT/AEp97LFC0kCEMMAg
+hqtLeY2kEAgcnFZF9KspLR8ccqayhtfcjsAV5Ud29RVtBbSWbeaWR1wEKrx
05z71G9rst/MDpIhYqpU9ce3Ude9AQNHgnJPvSwwF3Pl/fXJxjt3qWRfNVmb
ggfKtJGxKYYnk4FNaVQxRhkDvTUYI2UUY96nMwKY4I9qhchhzwPrUDKAeOlK
pK9qsR3BU/KgOPWtC0c3DqAmG9Aa1YbNMfvFYHPY8GtCGMAfKhA9DVkA91qV
Ce4qYHmrdtMV4JJH8quxkFcqRmpFwzYNPKDPFChgfan8GkJAHao9wP3TmmtG
p+9/OkJRfu4/OlwrDLrVeV0jyQQB9ay7meMuSCDntVaObDYcZHb0FWoYIg4d
QRnrirT7Wi2Rnn3qKxeaCcpLlgemOlaLSx7TuUD8Kz7+72xlYgASeCaxFvSH
ZnXBzgigbnLFyVz1GO1RCKP7WphdFUcEDr+VWJYoZFYOucjBzisCfTJ0Zngd
JFA4Qjkj09Ks6OvmIXVSueGUjGCP5VoMoDc4zWbe2wlkZg4STopB+97Gsm0Z
rWdg6nbu2tznbWlkNKCufXinFRvG05285NNtJQlwRIAyDsRn8atX8NzJFmHJ
jJ4Lr2AqsdEnWB5I5goGBkcn36VTstNhndGFwSx6jb0/H8K73TbO3j0sJKWZ
wCAeTgEcVUtdPffIYFJCtgt61u21nEm0sAWHrV1QAeD0oLHGQKPM5wwwuOua
zbjVLZZRGh8yUtt4PFRSNIbkLIXSIdNvO78qqxlUuiWRNiE438kc9hUFxBNc
3byyuqrgBMLzikktVSJVjTMhJ561bs9MEKeddD5scID/ADovr1I7VthKqg5V
FxxWBcSSz2pmdTFD1+c8kf41nXV1NqUcccSSRQY+YE/L7Y45qG3tVtphmeJn
64Ixitq02zWpkIV1Vs784PuB/ntU9tJa3thPHOhTYCuVPQ/Wudkit7ff8uFX
qSMnrWI53TM6jAJ4GKsQpKF3KgPPcdfamyrIWJYEDPT0qNVXuOPanED02ikI
x0pOakRWPCjrT1j2t84H0p4AXoBx6ikkdmjVcnGaufZBFHCT/rZFyQefpTpL
ZlRSdu0Dv3qpIRzxxUONze/oK0rOyYIHLshPXHWr0MccAwi49+5p0jKFy3es
bUiGkHA9hUMabRnqTwBXd6b/AMSnw/5swwyoZGU8ck8Vg60VFlEqxGQeYEZD
gbmPzEn0/piuk8F2BtNO8yQkzzAM2T27f59q6UkhcDrWVdSzNqCpbHeVXlO2
fUn0qnqN49mrJHtkuyMKFH3fU1RsoNhaeY+ZPIcljz+A9qSaQs2xeneug0PT
/IiFzKFLuMp/sj/69a9FFFFFFFFFFFFFFFRXAzGB/tp/6EKkX7o+lLRRRRRR
RRRRRRRRRWF4j07zIzfRffQYdQOo9fw/l9K5tXI4PIqQNzUsbtG4dGKsOhFa
kNwt6nLLHcY2sG+7KPeoGkFpujlJMQPR/vRH+oqhqemxuPNgwUbnjsfWsKe2
ZE+bscVVxtYg9DSEGNgwq7BIkqnHB/lTmUrTSoxVeZdvGKozQ7jUBg25YHNC
M2DgA4Pc9RU4VXwucj3pFhG7cGyo7elSAsCQDnHerSnMDlmJYjqaptcKo2sO
OmapzuCGwMg9DWRKSWJ960bAJMrRSvsO3PPRqmMAhf5g0b/3SMgj1Bqx5HlS
spU5JwPpRLAVGD8pHBPqKh8xyvHODVmJUeLJH7wMfyqpNES/y/8A6qaiYByO
fajhjxxjrmprW2M8mOSFG7aOp9qtyWlpHNLE/mo4GVHXHtis51K5+YEnrxUb
Bo2AycdjnrUkdy8LHynZfoa3dL1cOAlxuZv72M/yroUCsAwbIPvUu4qOoqJL
qN32K6lvQGrKy87VRj/KrcWcc8VYjkKHrnNWEmDDnr61MJcNg1OrAjIpGqtI
znK5AoRcAUpBY+lIUQct/KmTTBE4/CsHVLgqpdld2PQKOBWNBNdXMuYIwqnq
GatWCMiQ7pQfYdqvIqxxgAgAVMH24xJuqKS4eQjaAF9u9RyuWG0k/QGoGiaX
hiR6YNMis0Ri8uC+ePSorrc+BEnzc/l9aovDNaukpUNnqAAP1ojWa/OZ5FWN
GztQnJ+vtQ9hHBKZ7dmQkjKfwn8KcL0JIyyQSIw7qhYH8qp6lqMwt2NvBJgY
JcjA/XmrEcysQki7X2gkEdfxrK1OJ5X3W8Ry2CdoOT1FW4bWXdukODx360SI
TIUUc9+e1MVAG2/rUwvHWP7OQJowcqCOR9KrrCbcPJHcTKjnPy5xU2nW7SDz
kcEuSXzxjn1NdfpeRAuFIH05/OrIkMDvhSd7E5qezjIZ3VmAPIBqrdaglrdB
XYgkhQM8VsRkMuRyOx9azdTVJCVkY+WB8wzj86ikttPgi802x8srnKnrXM6h
rkAZY7CUrznucfjyf1rT0c3Ulv8Aa7uBjgfKFOd31FON4by5KCPAQenArQuL
uKzWMKC8jjOMVQutTkdUfZgMe56VE6PcwnbguQCcDH+RisXVJQJo7fzhIqja
sachvXPt1qpfXdxHCkZVdq42gnpj0FULmKaLy5JCNzfMMe9SQS3U0X2eFiBn
cecVsWcd3BYm2KxqqtubPV/bPpVG7t2luXuLlPKhAH7sNuzWdHZOx3KhZc9q
truiIMfUDnPQVXu+Ry3zf3fSqw4+tJjI6U3HOKeqZHJFWkiOwcsPftSMB0GS
KQqW4xXS6boQWx8y9UqHIK9Py5qmlr51y80jOIkbaN3BbFM1WddohiAAXqay
Cu45PA9TV+0s12pK/wB7OQKu4wMKOB2prOqjkjnpVaZi56jjp6VSuVJYbjlv
pV/RbGS5vE8tQxVgT6AZrq9bje4gSzhJCbh5rA4wo7Uy00O0nRmkUSRbwRzg
MR1OPyFdJbQJArYGCxyfb2rF1ibUbm5W1sCY0b7zDqR/QVoWts9pa7WbMz8M
+eayLtobN3wd8r8FjyaqmVtmXOCegHermiWJu7nzZAfKjOSccMfT/P8AWuqo
ooooooooooooooopsgyo/wB4fzFKv3R9KWiiiiiiiiiiiiiiiiuP1rS/sM4e
FWNu/Qn+E+n+f6VmglTUqnPIpdx5IHTkVeW5ivYhBeYWXgJKBn8DUSSPYTGK
dcx8kgnIYeoNQ6lYo8XmW53xtyuKw7u1ZBv+8jdGqt935TyKaVeNvMTle4q7
byLPH/tClZdpqK5GE3VTJDZqJ1C5Paq8h2AdgT1qSORdpPORVVCUlLeY+Ouc
1ZSYsPlGT3NNW7kYspyoH8IFVp5A5Py49ears3y85yBVXHyk8mpoW27SwyM/
lV+3O5wznJH3QT79qv3KpcSB4mO9Bk54P+eakktzcW7DcPlAKn1rPSN4m+YH
3NISfLbBKtmiIr1Yciny7ZI9y4yPzNQxIu4iUHkcYPQ1PHL9muFcH5l6UNdS
TTFlk2bhhj3NQorM5+VSOxb+lQzKyO4bAYHpUWTmpraaSCXfE5RsYyK0Le7v
HcmKaTPUjdjNaUV85dR9lQkdSzFjVs6qIZATHHgfezkYqy/iSwjAw24nso6V
G/iFWOYBI6+ycVNBrZKb/wCBRyTViLxJpzON0xB9NprctbyG6j3RSBlqcytE
vyDcPc1JHdhvvDFL5iSEgA/lSvPFEB5jqPrUf2yB1ykin6GmNOmdpxz71G/l
svPA9zWfKY0yWZWXtkdKrNbbv3kJVR3wOtV3V0kDLIBt/ujNOjuy7BCkhz/E
yYFWEcBCWcsR1wKRTvUbAVz7037MwkDmRifTIpIpyWILFVUnJYVF9rMsjGDE
pAwQDis691mRwY4omUg4bjOMe9UY9buPO2XJBjOBg46Vdkvra0iWdUYRyf3R
gGnxarazsFR+T0BGM/SpvOjLqhYB2GQpPNN+zxsrbhnfnd7+1U4LhnuPKkGW
X5SMc/X6HirgDb+du3HGKcwFQSgqOKhERmfAGAOvFVZImQlW496cs4jBUxBy
feun0WDT7iDEt0JCuMw5xj0rTkuzb3bwrCETjHsK1Y0QxBlHBHFIRsUAD8ay
tTsYbrDSgllPBHY1cgcQWWxixKjGTyTVH7aILvE0LyxyYGSudmeKg1q6gJFt
DExZuCoOOPcfSs22021W4WSG3QEclsk/gBXSRbpY1BIBx823t7Uk0AgiZoyA
T6jqfSude5Zb2UzsrMwwF44+lUYluZLjyRgxN8x9qkvZpYEnHnmRt3DAYyMd
KxLWVVlLIFaQkKNxx19PatOLTp7y4WNZCcfNI2MADPAHvS6vp8cHz3JYscIg
Bzx7fjUfhuKOK+Yzo3C8Ar1rodRltoYDLOpZugRO/wDn1rkZbtrqd2ChQOi8
kAVM9xHCm1FyPc9fwqk1xzkjPoKrMSzZPc9KTpRtzSpD9D7VZUBQPlXI7UOS
55OfbHSjZyMitTQtNN3fqXB8pPmPHX0Fdpc/MqwIVXPBJ7CuT1q8VXMFuSNp
+Y4rBdtxOefWrFpZ+aN8oITtzWmF4AA4HanYwKo3+wMpblscCqXn7Rub/gKj
tTyAfmbriuq8KQGOzkkKMGnYhT/sgdf51sx2QkuHkcHaBhQTwM1oxlIwEXHH
YU8zANswGc9h2pVRYyzD7zdTWVqt/HACqHL46+n/ANesJQWzcTcjPyg9zUtp
bS310sa5yx+YgfdHc12NtBHa26QRZ2IOMnJqWiiiiiiiiiiiiiiiikbp+IoX
7o+lLRRRRRRRRRRRRRRRRUdzAlzbvDKDscYODXF39m9pcPDIDwflJH3h2NVg
SD6VKmMZHFDEZBHOT0qVLpRF9nuYw8HX/aX1xTIkms3LRSJLbsfXjHofepZo
I5ommtQrxscMh6g1gXUASVhnAOSBioMeW2D933ppRoWEsf3e4FXopElh3Ekj
v7UkkfykHoaz3i8tsA5x0NU78F0GDjHJFUcvn1Ap6sduMkZoXKZUrnPekRtk
m4KWUj1qR5IypJJQjpxVdzu7/jVSRiWG006FFfKliOOMDOT6VOkI2YOAV6j3
pGVSw3Pt/wAK0LYiFCd6OT0/+tViKVvN2EsVPGOwqe7SQxbgVK47VRA2xOT6
0tttY4bHvUsrxqmyBcE/eOOcVWVvKmDMN1OOLpwuwgk8kelKbCRAeec/LT4o
VDtgu8q8MAP5VQuf9aSVIPeok6Hil+apo3kVsxuVPsamW6uA+7cSfWpBPG4z
NAGPruNPaN9hlEUQUdPlFMt76aMFdheP2wdtXLoutkXhkUj7rKQCw/EVk3LS
Fl3q6jH8Xf6VZ0+9ubeQfZSd/TjnPtiuo0/xFfRkLe2UrKf7q9a37e6t7obr
dtrn+BhginS3FzDgmEsO/FVpZwxO5Qc9QRSojBMxgjPY0oaVR8wbH0qN3G35
2bb9QP61CpTaVWMMmOo5P5U+G+gBAaFl2/3lzTnvrWaXy8ED3IGKqrHai7DC
dsjkDJGaS5uD56oNxU96igeSMlZPmz91i2D+WKZLeRxK32iXyyOOD835VWgn
WUlre4kDNyVY8Mffj+VMkspJCZRc+USv/LHOCfU0sJj0yIJKzlW/5aZyD+Ha
svUrc3afbLVf3PoBzn1qGwmZ1Y3jPJbxAfJnjPQcZqWPTBdq01k7IyNwr9vx
FSyWt+YwPs5+0Kc+ZvGSB6UtrrEtvvW+V2JbqB09sVOuo208nnIpVxwSe65r
RAPVQPfB608A7fmwD3prAEdahIKjdGetQyISpL9TUYtww5YKfQ1oaDbR2t0J
ZIvNY8jLfd98V20kQnhG9UYjkGpIAyRhTjj0pkrsCw6iqttN9oZg4AweMUPE
VzGTgMcg+9ZWoJdwfNChkUHLoe/uKdYWonuJJJA5DqNpIx16+/51otaxgDZl
AoK8GpbeRFxEMF8ZOB2qnrMpawdYdzDODtrEsNOij825v5FYbcBWOSKz/tk8
k5jsUESM3zHBwo9KqXtpcNCSZjJtJOMVVtbeNpDJJkRR4LHmtJ9dlSMQ2SLG
g5LEDcarG4uNU1CNnBCp/cH3R61KLww3DmKRnjLcEjH4Zqtdapc3uITtSM8E
AVVXavyjPPWhuWxTGwKQrwDSqp25OKUYz04FSKeOAB6+9SQKGlUP0JqaZESR
wvBB444xU+mwefPsbBPZcfrXRzTfYdlpb8EjLOOtQ3uqeQhWNVdiMO7/AMJ9
K5aZvMkYjIBNLBatMQTnb61qKojRUU8AYFSKuBSOcVn3bJyWI571REIDgjPq
M1paTp76lepAmdvWRvQCvQY40ghEUCKAowoHpUwAjTMje5JNYz61BJIYLfzC
7EjKjnPQYrStIhaQbrhwGIyQei/4ms3UtVzL5dqwyOr54FZMah8zXDEpngd3
NOZnuJVAX2VVH6Cus0qwFjbc581wC/sfT8KvUUUUUUUUUUUUUUUUUUUi/dH0
paKKKKKKKKKKKKKKKKKp6nYJfwBSdsiZKHt9DXHzRGNirAgg4wexpqMRx2qT
b3AGTUb8nIxkdsVFE8kBJV/lbgqen41ZjcpcCW3I+ZeUJ+97Ed6W9t4L6Myq
m1lPzjuo9fcVkyWzRStDI2QwyrHpUUe6HJIDL/EDTzaMQZ7Fsj+JO9OtpfOU
qwww4Ipt1CfLLKOR196ypYyx78dqg+zKGJ2daYLYg/dJHvQ0PPSo/IH95vxq
N4SMndVd1IBFQSAgj09aFdlYelThzn/ZzxinMA+DxnFNiJU5IrXt2KBGJGG5
z/jVpv3kePN+UDovT61WaOIjbG/U8k1DGRHL1wO9E5+YMvT1qaAQhkeRcgEZ
HrWuqRSwb0XYR2A4/Sq23zFXI3L3we9VYo5oxJKysTnleazZkd5TlSpJPB4/
KkEQChuOeKiYHdzR34zT0JwfanK3PSpBuIwHwPfOP0qxZXL2lx5bOpjY5PzH
A/CtoTW86mJwpjIBB6A+1IUjuWaKZIwAMLzktU9taR23EeCMYyQM/nVj8MVX
Fu0cnmRFQSSxJHUn9a0tI1yYMUuIy0YO0Nzj9a3fNtrr5otrP6cZqUQh15jZ
faoJbDOev0zWVMmw4MYIB7jNRQysAVBB5yNoFRywi7ILBgVOMjpVZrK6BPlz
ZB4AA60QaC4dJDMzOD07VpXFgqxjc8cfTJZgDUTrCpVVYucZGBnP41navFCx
QNG3rgtis22cifBRRG3BB4BrQPkwJIYz5rMcAHkA9MfTmq0e+OyaO53BmwCG
Bwq/UVUkQqrRadckx55QD1HOD3HFZ6ebEzRgctgMpUHp2q3ZXs1oVQgCInJy
tbD38YtPOU78EKSOv4Vn6lYPcXG63G7eN/PH5VltuSZg6bMcFVGMV01kw+zR
DcOnTP6VBqV4INgTqTkj2p8SvMA4k46irAxnaetRyodp9e2aBEHOOvvU9pHL
HISjYYfyzXQQtLcEGFmCrgc/rWyhJAz/ACpJIwwPOM96pmFoGXaMx9yTzUt0
SYAycn19KrvukG4jnHenWsYADEknrRdKz7dhIYEcZwDQYY4WaVMBm4p8IVoN
wULnqDWHrcYNxFEhKqT82BjNUordLcBSPvEk57e9VbySO0bLOZFZSQuMc/4V
QRHls5NoCxsflGTx61QWNgV3LgMMj3q/YXLWdtJ5cZM0/wAob0WpYNMkkgGy
Mq3dmPSoJLSKCNlLEuewHX29qpFSDzSbSTgUmOaQD9KccnrSgL3Bz7VIpwcj
DKD3FKCd27oamV8yK7YLM33cdBXQaTp7vcTyxuPMJABIwo79fypupCOC6INw
Jpsnc3936CsS7m3sQrMUznn1p1vbAqHfuOBV1YSsW5V+Xt2pbeFuXYklug9K
dIwXjvVaVzg1mTKXl3P91egp0atM6pEhZmOAMcmvQtB0saXYfvAPPk5c+noK
vSTxw43HljgAdax9Rnvb9zawxmKHIDOeCaXNro0SkKpnYcn/AArMvL2a6k3E
kAjhc8D61HbRB/3kuREvX/a9hT5HM0mQoVRwqjsK6LQdP8pBdyfeYfIpHQev
+e31rZooooooooooooooooooopF+6PpS0UUUUUUUUUUUUUUUUUVla1ppuU86
FQZFHzAdWH+Ncw8ZWkV+xNOxke3Q1HPGGKgZJJ71AeGVuhByOasxySNMXXII
6FeuKmntUv4AyfK3p0wf89qxwDGzWsoYHd1/wpkUktpcfJkgnjPRge1aLW0V
+BPb5inHUHv9arsWVjHIuyQdVPf3FVLm1z80fTuKoEsh5X86bLsL5iLYI6Ht
UDMwPPIpjMMZ4qJnGMDtUBZX46GopUOOOv0qPYeNxx9atQnjaVBFEkez5lHy
+lPMWRnHOOlP3OsSnPfBGKuW8uBsHAZcdeabPAsY3ICMcVWbBc9R9aeSSo9M
cUgJ/KtbTpPMi8tWK7fvE9DVkKFJIHOfTrTjg5IXI71UvTFHH8y5J6Y4IrMF
rK43KOPcbTTDbso3SLt3H5e+aieMqoOOPpRDE8jgRqTV+2sCzM7BiqjjHRj6
VcbSw7LtZQg+8AxJpJtLRtwQYdRkejVlT213CSGglUEckcj9K07MwkO0jGJG
RQQ64HAx361b+02NvgrNknuGJJ+tMn1dIxlCsg+uDUcOseewO1Y0B5yefwq4
xuJY4pLd9h+8d3Qj0IqdbwROu5JA6j5nQfqK1LfWnUIzMs0LDqTsIrQS9s7n
5VuMP3jc4NRSRojcswJ7daZJLaouCDnODheap3GqfZztgtGds8EkAVGNU1CV
MlVgTOOADj9Kqy3M8snyiXcByelV1u443K3K7s+pzilGredJ5KGPOepPB4qh
cSRscs7uwzytVGdXIHls3oM/zppuZFBjIMYHOPer9hLMto6sC6uDs3HgDHen
x2tupllhkUunK4PSq1xck3KXESASDrxwah82W6nZSm4ScbR2NWdNiitpmFwh
Mg6qVLflV22YSzFpI2VImPlFlIIGP5c1RvY4Fkm+1M2/G6Irzn2P40aYl5Gn
mRQh1fkZYDNEt4Xuwr20KsTjc3b8c1dtbdoJ8pITGVOQDkde1WIJ4p1LIehw
QeCDUrAFfemxZ3cdKmBwwAHzGtjS5tieQQySDkbhwa243GORT856VDOC8eza
ee9IseyMqRxiomxGRk8HpTgRj5TSDlsmnlAyDjB9agcPJMIvmVQvLKOM59fp
UNxYx3Mqu+QU7+tMks4I43IPJGQzHnP41yr6ZeTztPc5iRm/jbJf/dFWJ7Ce
4tWCq0ag87hjiseWMRvmR9xHHy+nQYprXJbYqjbt4GKtpcXUcGfO2huACecV
WmnfG0dcYzVXqeelLzjGaQj9aAKUKO9KRihTxg9KlAz8o/OpbdDkv0VcZPpV
uS9ZpVEUjKg5645quzqRvVclTkt60yJV+Z3IOeAMVpadam5O4fdHLsavZWeQ
ooxEnAFMkYKzKBzjiqUg43VXlGRxVWSPP1rqfCmjqijUJwD/AM8ge3vWzqFy
yAberHABOB9TWVFIzX3mCTEcXG9+pz1NWr/UIDAQsnI4ABwW965938ybczZ9
+uKsRxboi8nyQg/i59KRnaTAxhR0UdBWxoemee/2idMxL90H+I/1H+fWuloo
oooooooooooooooooqnqt3JZWiSxBSzXEER3DjDyoh/HDHHvVtfuj6UtFFFF
FFFFFFFFFFFFFFFZOq6eHVpo15PLf41zM0TI5Vhg0injBFP4xnGQB0PrUMi+
b1wfbFJHI0T4GcevtWlE6NKwQfPnJHrVbULNLn96mBLk59azY4nZN1xgo/yt
z0x3pFd7R08slk3cHufbNabCG/j8uUbZR90jrn2rLuoLqyy7LuUdcHqKrkRX
Qyh+bHSqrQYYjaRioJIcjGcH3qlLG6tyM1E65OR+VQshJ96cORhuaNvQZp6L
t7VKOVxTkT95uzSyISeDioHDRyBlOMVftrvejJKB7j1pJmUrgIGA4BAwRUEZ
w2M4z69qlkiEWMMCfY5p1rK0ch2HnuM8VdN6zAfu8Ed801Lw+YPNyqAUy5b7
Q4eJMuBge3NIWncfZGjXzXGT83QetX47eJlVDk7Bjaw5qdIFRAqKAoHAxSfY
4924jryQOhNSPbJIgBHA6KOMUscMcS7UUKPanBVVh6+5qGaDc7P5rLkYAzwP
wrPurHzuTI4VTgAndVUaeSmQ4BPYirQ0+VwHlkjfaPlUjdz+NLFbpbDBRVbO
7cQSM/iKVZbl5VEqM0XX5e/4VJNc4iYyWzGMttCng++BUlnPHcxmBkYbVwVY
VXvoLeIho0ZH7FTx71amvtQhRWtbkIuOADnP501ta1yJctdJj3RR/Sqz3mqy
gzu+8H+LAqJ9Q1BVG5yFPtwajM96yk+Y5D8HNOiSaRAp+XafvE8fjUgt5jh4
ZIuD1AwRUMofeRO+XHAINQ7GHIBHvSuUZANoDDOT60+NHljPlKQ6DseopEWU
fKj7dwz1xSKWjyxDb+CpB4FWLKXDuxkKuTnpnd7YqVryRZQ0inKAA8YNOubt
p13w5RhkNzg4/wAKhgiFxbsmxRty3HVj2qbTo5rS4Ecs3lqRwjDOSar6lbyx
ySfuiI2fIbj+YpIbia1aBW3uqjdt6df51YDpdX/+qMMu7hjg/mKnuLiWC4Xz
o+APvLkBq0YGEkQcDk84pWAJyeCOlb1q8Op2qeav76PrjqR64rQtdxTy3YOU
4znmrQBApSNw5FRSA7etQ4LYBxSYxliaegHepcDFNIYdO9MIJ61G8IbkqDgc
Uz7MC3mSY3YwuP4R7VnaniG1K7uxwD3rjrqGaOZUmXYxGQD6Uwxqh2hgznuv
SrgtB5abfmJ56/nVS43yXBBBznAFQlSrFSMEUYoIoA496dikIp4j2gZ60oBP
A61OBiIIOSTk0nlAsVHOOp9KljQtCU2gJ6+tMjtzKy7AfQf/AFhW6kT29nHb
JwzfeI61LNbtabbdPmcjcx9KrzR7UMnpwcVTnkH3VAxVUt7VLY2UmoXSwxpw
T8x9BXeRQpbxRwRAKka4AqjqjRxxgykHJ4XHJrnZptzY3BQD0HP/AOuq5Bdz
s3HPr1NaSWMVrCst6xDHlYh1NQzzNOwyAqjhVHQVf0nTXvJNzZWFT8zevsK6
xVCqFUAADAA7UtFFFFFFFFFFFFFFFFFFFZniH/kHRf8AX7af+lEdaS/dH0pa
KKKKKKKKKKKKKKKKKKKCARgjINZN5pCyHMfC+npWNe2D2555B7jvVQZzgeve
leMHJHHc4qCTcPlX7vXmljfyyJR98dDnNaEZN2oeMBbhV5HZxVW5sBKscsQ4
34kVv4TVeRGWaSNk2bu2MiomX7N+8tiXjduUB+6fatG3uEmi2T4YdNxH86zN
Q0V45DPZHA67RVe2k80mOZNko6gjGaS4sgykx846A1lyq65V0qq8XJIyKiaM
0zGKAMU7GCM1Io4zT1Hen4B4NMkiBFRKpCkjqKngc4w3T1qxs43cc9DUZt/l
39fcHpToGQzdOvBzVmWNEcDqaUAHIxkdDUd23llUII2DAKmopI7mYqy5V1G4
cYJrZiOUUEnOBgn/ABqwPeloqC4Lqv7lNzngZPArOjvrgXRE20BTyBWiGLcM
y4PbFNcxhSJPlXOMnuahjS2BJkmick+oqwZ7XHMseB23Cq76jZpnD547A1Rf
Vp2b5IkUds5NIr3tynysvynjaea1LQyJEBNtLeueTUQWPewVzktuwOlRyzyK
xWGM4A5Lc/1qOacPjzox6jvUJCsdoG1f9mnc7dxgXHXLDOaeJ3IwjckcKoGB
T1nYELKoYjuxwKZKyOfLkCI46kLinMmATIqFVGMt3/KmLEkkfyDCg87uxqD7
O8gJjBKZxnvT44RHJiSQLjlTmpIIHlZxIpwASD6GooPLWUmcFlAOOOppJljL
b4jt5yD6VEVL8s24njk1MZcwhDEmQMFu5pwg2RJNG+5sjhR0NS73uWEib/PQ
DgDArTtrpJkCMyb+646e1ZGoRR/aHaDAUde2D7VDG8kkqgtyo4YnBH41NJeP
k4O4kbSX5NLbyzbHERZWGWwDwR9KdHqM2GWVs59uladnqG27ja3Yh84yD29/
au4jUSKkwZQWUElehqdRuGd35U2RtnByQelR79y4OR+FRkMXAQ4H0pJQEwTx
k0Kfm56VOD8wAOc0/JHWmEDOaaeeKa4zxVOaximk3vGGOOprnteMCzfZkjG8
Y3EgdumKosssSL5g/ePwq47e9auqI1tpcbnAlAA/OuYZiSc9zyabjvSmgKDn
JxilA4/GlAyeaeiZO7HApWUvllGAO9SwwbuSCB796lHlqwRATk1N5KkdML1I
Heqxd3bavB6HHQVqaTZlSZXPyrzz6+1acSqjGaZd2eg6U6y8qe5lE7qMqSc9
uah8v7YJoIQu2NSQ2evPFZgtycYXtg57GmvaL5ixqcsx/AV1mlWEVhbhlxuZ
cs3rTXvw8hS3Qu4OCT0ArL1hAF3vMHf03cj6D0rHigklOVUnJxwM5NbKW0Ol
RLLcYe4Iykfofes+eaS4lMkpyxq3p2nS3koAGFHLMewrrreFLeBIYgQqjjNS
UUUUUUUUUUUUUUUUUUUUVmeIf+QdF/1+2n/pRHWkv3R9KWiiiiiiiiiiiiii
iiiiiiiq11bJLGVYcH9K5y80+WElgMr6iqi85Df/AK6Y6EAsenbNQMpGc4Kg
5NS28728gdOgOCPatu2Md0CsyhZSO3G4VFdW8caZl3ZXgMo6is8WghO7zUcE
Yc9yvrVedAkmbYBo24J7fWrNrc7AEILL9c4pl/pkdyvmwHD9Rz/nFZiPPAwS
5UkDgtjkfX296kntElXIxWPdWbRMTjj3qky5qB48U0cUoweozTgrBsqSfap1
Ge1WYrUSqdrAP6GoipBKsORUZXDdPrT0j61btmXGxxkfyqeOJFLISMN92s6a
N0kYkce1ASaQg4bB4NatrZzGEyIhdU4OOtU74Lvydw5oeeWNlEoIdOnrVywu
VmXaSAR1GP5VdBGOtCyKW255p30qOQ4wSSAOtV75sRZBA5HPqKraayyNI0sr
bh0BPQVJdW9u7ZknYdwC3FZoNuknG5l754Io2QMxJY++BTkgUgbRkZ/iOKl8
lYyI2hzkZyOcUIPLG1Y3IPqSAanWRiGwAPoRTFkCfLGMADscZ+vpQS4XO5OD
nGOtNFuDMx4JHJXr70uwMu7blyBgKtI1odm7dnOMipUWAsPLyCDhs0Isah5h
Kxz1I9KeFjKbSFIwAMrg/jimyRnzcnaFZcDI6nPehrcluSA46dxj6UjFiuRn
pzuz8v0AppaIptaHoeG9anS4YoybAVGNpz0FSxhgCJNuw8Yz0+n6UPbwTA4R
TIBzWa8MsJxIhIx8pzwKay7gMKd2akik8mJ8dW+XHp70+wVvtSlGA7nnqKng
EX27zj8qsxCgHPPvUV/DElwWVgVbnA7Unk7J4lRBkLucE9j61Vl2/aGaFSF6
gZ6VJazGG4VlPB4ORU7pbsXEuVfPysBtz9arLujc7GwV6EGu58H3zXNg8D5Z
ojySeoNdBjDYXHuKdtyOeaTcM4pr5HIFRNFn5jkmgoOPWkUbXJGD7elPkcEj
g/hTN2f8KM0nWlxiuc1W0jTUYrgjKliW7nParFvp8Jn+0THfLwVU8hPSqPiM
PJCoT/VIcsfeubIz1NKBkjOcd8VIIkRPMlbnqE9RUbt5jluB7DtTsDGAKlSA
dW6ntTiF3CMHaO5AzU+NqoZOAD8q4pzZbJZsL7dTRG0Ccj8zUMkplk2xkhTx
zVq0tySERCWPpXQwWbtEqD5ef/11ZvFtFgEJcbk5AB5rClkKSkgY3deO1MtZ
WhlILEBhjr1qSUA5dmQMTzz1PrVrRrYXF4GcAonb1P8AhW9cIJUMYfaO9Z00
cdtCyr8sbd8/M59qqRaY80oMvfnZ3/E1YmlttKixFtkueg9FrElleaQvIxZj
3NWLC0kurhY4xk9T7D1rsbW3S1t1iTnHU46mpqKKKKKKKKKKKKKKKKKKKKKz
PEP/ACDov+v20/8ASiOtJfuj6UtFFFFFFFFFFFFFFFFFFFFFBGRg1XkQg4xk
GqVxpkMvzKu0+1Z1xpsiLgEkVmSxlXIKnPTmosbQcD2PvViyuGWYFmOfUmtq
GUSboZkyDzk9CKyr+3axVWjYtFuyPQD+lMjMVym1H2EYyR0akutPAXbbNtcZ
I9Qf8KqpdzWzAOoD45XoG9vrWkhttQi3J1HBHRlPpWdc2k9q++Bd8fdR/SoN
0dxwpw46qwwRVG60/dkgBW9u9Z72kkbfOuV9ahlj44FQNH6CkIPGDg1NEWZy
D0AzVqJgenWnyRE/N1JqIrzTcU+PiUYOB2rTMAcKyEe4pstsHkCNwDyasR26
oBuQYHSrenSLBcMqNtc9VJyDUWoWsbRPJ8gJJK+ua58ozOyks2Bz7CkW7aOP
ZHgMD97A5p/9qTMhUhcnvSfaJyAS549BV2wnmbhfnUtznqKuTqJI2j45HcVl
XMawjbJK+cDbgcGoUDQkupyOhHetN4Ibklozy3zLu6fQ1SWwZpCH+THUU9I0
iYIiBnPYirG9TwQAV4OOmartIclShx0ApoZhyELU5lupeAoUenSprexK/NM+
W7YPSpzbRs25gSw7mhLZEbcM9MdaCAnIwSOgJpU5JLLjn1zQUjfJKI3v3qFb
eJVZF3ruHTPNRFPKwyHegPJoPm7FkDphvXrUnmTDJYRZXJI3YNMjdZMtMfQZ
BrUtNM3km5jBU/dycnFWjawxgRMkexiQOOlOg02HZyCfQ+tQy6MQ/mwSbW9O
xqtdadcmPGF45yO9ZJVouNvOfmUilZUkYuoVVIyc9Aag+ZW3AkH1FPG0L6n0
q5FLbSW3kyoflGRjrRfRQNAssMm0nAK7s7qpw7FceaMjPT1qZZkaTbFbRgHj
nrj60y5LLNiQDqSVDZxTUCyFVUfMOBzjNWbC9n0y6SWI4Yfe7hh6V2WkeIIN
QlMZUxyYyAT1rdQjbxx7UEUmDTZWCLuqDzVccCo2RgwPOKhkRt2dwHap4lUR
gA5980c5pyAAH3pkr7SB3NZ2oW5kt2duWXlR71DpVpcqS1053EjjPaq3iMGN
EhiUsZSeOtcyykNg9QaeFAU5Xv1qMgsccU4L6dalVNgyevrSruxuPH9aktIw
uZHHPapt+8hto69T2pJSo6An3pskJGCR15psAQS59Ofaui0i0DoZnJRdw6jl
q1JZliUoqsGHQDtWJMsrzySIAuc9Kh2TMuSvKgEZHUU11A2AqDuGSfSmDylG
58gDtjNb2iTReXIsfBGDj1FTXVxKJspCCq9WAyelVogd3nTYgjAxuk6/gKrX
mrIieTp+Rn70h6msnJdiSSSepNWbSzlu5lihXLHqT0A9TXYWFjFYweXHyx5d
z1Y1ZoooooooooooooooooooooorM8Q/8g6L/r9tP/SiOtJfuj6UtFFFFFFF
FFFFFFFFFFFFFFFBGRg1Gy4pjKGXBrJ1WxLASxjJHDD1rE2kNz+FR7cEgD68
1btbxgUWQEgHrnnFaqxGaBomBMbfdOckVyl3E8UrqpYHPIPGKjtb6VB5Vzl4
l6FW+ZfpWhIba9G4S5H+0Of8/SpJYEEqSxOUl253ofvD39aksdS84lJ9vBx5
ijj8fSn6hpa3IMkLbJAOPQ1kN9ott0dwhbb09SKEWC5HyMA3pVW4sXGcDj6d
Kpmwlb7oVh6g1Xe0kBOELf7vNS6fYtJcEsvyjrWlJp8LlQmY3x2HFMaCaAFW
Ush9OaiFpJIMqtAsG80I/wAue9EmmzRHKjevqOtWLdJBtUnDjsR1q+sexsyD
qKqOzQXYIy0Tde9PRi7kqu0rTZ5DIhQEbu9QRafJJPyxVWUhcc8+lZFzbtDc
NEQcg4qzp9g10xAByOtag00RAK65FPSGOEkxx7cdCO9MeYtGSRhwPm7YNZEk
Rc72diD0ycmnhZm4GduMEZ6ip0DwookYmAnPy090Ejna7FlHyt79h9P5UkeF
lO8EyYySR0/CpPLDkkgY9qcLdB24FO8tTjtipBSswUEk8VCZ9xIQcjFKfMbg
8D1ApjIx469OtRksp9OxwP1pS5ZSC25sjtkChyXAjOT6tUcamIMpLe6jmght
0Ua4JXnFAl/eF2BCgYO2r2liOVgCOF5JOK2Y7i1X5fMUAd+35057q0UgNPGD
25pH1C1jcIz8nvjipY7u3kOElUnOMVOVDDpWdf6YlwpaMBZPX1rnZ7K4hY+Z
GRioBGTkY5AzSADuM0sW1WORnihT82cD6EUhQ43e/pSxIpJLPtwOOM5NMK5P
PenxCMOPNBKjsO9TGSLaGUsW6bewFRKcSbgvI6YOMGu00XWvOi2XMieYoGWH
eugilWVcgg+tOHHfikcBlII4NUVdIZPLYNkdCe9WciRcr1Hao5IwcZ4qrMWg
IdD8ueRVkcgeppxIAyaru26UbecUjYLAdcVJhUGe9c/qxwTdMSXwfLH9wetc
4q7nyeccmnysofMZPrSQxmR9q9T39KtmFYyAFFTmGNipbgemKZO4GRsO7sew
FV95Y88mpoo327l2jPcjNWlWNsnGSOSTVaUiUtg5A6Vd0G0Sa9CygbRzgjrX
Q3I8pTGijaOemcVVjlmc7s9RjHtVi6jikidk+Xbyw6c1Ume2kZGIH3SxGMhR
2zVa4vbaK2wCGcDAA5rBd2kPXj0qxa3E0Eyyo2GUY+orTfXrgqQiKmR29azp
p5bhy8rlifWkUZq5ZWkl1MsUK5Y9T2A9TXX2NnFZQeXGMk/ebuxqzRRRRRRR
RRRRRRRRRRRRRRRRWZ4h/wCQdF/1+2n/AKUR1pL90fSloooooooooooooooo
ooooooooIyKgYsjfMOOxpeHGCKwtYsvKlE0Y+R+vsayiCOvWm43AnGCO9aul
34JFvNw3Zs9an1K2guIwJhsk/hcDOfrXK3dmUkKOCpHHA4qEDy40ZFJOcDNO
S5ZCT85z1AORV6wlgkDAcN344NX4ZJISTGS8Xdf7v0qyyQXkeCAw9D1FZM+l
Pbh2gTch6r0IqOOR4sCVSBj+KnPa5/eREgmonWYRkRbFf3GKqIJVcG4JRs9c
jBq9tEi/fPPcGkjWSJQrMXA7kc1ICN3epJFBTJFQwybsjJxnvUxjU4JH41I8
Qkj2nmo4bB0YOQdoPWr7aes2ZIGHuPWobjSyENxGo/2lq1p1mN2ZEBwcKaXV
9DtrhTceXiUdSO9FnpqRWqsijf396kvII3UbQAfpWNdIVycf/rrKcXBjkLhV
7c1BbRrLgMoYAdSOPpVqUrFGQF+gzWc8h2NEQyqHzVxYxD5U6MCrDjPY1ecR
TRCTaA+M/L/npUI6UcUUVFNuK4AzSogC8j5qaspD4ZQB6d6nxxSGMN1HFNMA
54GD1wKTyUUdxxioXXBO1ywPUVGOJVZBzgHBNKqhTkofnyMZBFT290bTKeWr
CkZtz5KlCT90kHA9qcYI0fe4UoenqKYs02SAN4bpnnFXre28za7MUbPG3+tb
se5UUEc4pxyV9x1qKRFmBR1JHvWRd6NlmaJsemayLi0lt/8AWIQM9ag2mkC5
70uTginxP5bbwoY4P4UojAjLORz0HOT/APWqPAIzil2jb93n1zTVZ0BC4w3B
4qW3dwQEZge4zwR3rv8AQ7gz2JZotjA4GBjd7/rWiJFY7ehFKT+FVp/JOQxA
ZhgGq8LSpIEfI2nhs9qusrHlsEVDPblkwPzpkDMrmNhnHepLhC0RC5yabFBs
jPHzdM0xIyGPAHNOeIFWGetc34jMaKkSk7l4xjt9ayIY+u0ZYjk+lRHGM1es
4tke4/eapXUMR6etRyyrGoVCWP6CqhJdsuSaljjJYAcCrMcTOmNxHpinyr5U
QUck+tV4V4VQMsTwK6LSraSLlUIbdySOlakkGW4YgnkkVnXMsrzCC2IjUHkk
cn2rP1C8kija2jIAx87nqT3rIklZxtUkL9ev1qMITUqxhRzQaQDNSqtXbKzk
uphFEuWPU9h7muusLKKxg8uMZY8s56sas0UUUUUUUUUUUUUUUUUUUUUUUVme
If8AkHRf9ftp/wClEdaS/dH0paKKKKKKKKKKKKKKKKKKKKKKKKQgEYIyDUEm
IcFj8pOATSSKk0ZRxlSKwbuxaJ8DlTwDVCWMqcEEHFQsCMeo71r2OoJKot7v
BzwGPf8A+vU9/aF7Qog8wg/KcciuYkiKvtkXBU+uKikcmUMowCc8jvSq0gk3
AbWPUjjNXrW9QnZKTG3TParbKWXzIXCsOhWpbbUFJ8q4KiTOOKsyW1vdRgMg
I7EdqhNgUz5bcelRvaBjt+6fQ1BPpu5cMocVnS6ZIigKZEUHOB0qSCK6RNs0
ZfHRh3FThee4PoaeB69KYbZVJKd+oqaOJ9vIpSrRHOOPSry7niHPB96ktl2M
VGNpGDWjEi7Cuc05ECgYA4p0iiSMr2IrM+0NbuY2AwKk3BpflGQRmsjVUyeF
woP51k3L/aHCDIGMEY9qpTSvC6xRgAdzUM8rSAEDn6dKFXzhueTIB6HjFaEU
cZhYEkqcAqT+tRNGLYFxkqDjGelXFQyRllHA/So2Uq2DSYPYUAUbc/Sl2DGM
4pVtwACxA9MipHyVHAAHpVdt5YhSeKAWJ2lsEflUbLnPOee/aoSrnGAeeeDT
ghYZA3epK81NDZytncF2n2p/9nuFKhOvQ7ulILCYFOVOPwp01tIkZ/j9DVWJ
jHNvZ4ww7Vp2t6kvVlVwa047ogfvBkeoqwskcnCsM+nenLFgg9xQ8ZKnr9ar
tBHNEVdQw6cisTUdLaIl4Vyv90Vl7MnOD9aCqkcDFNAIyMZqZG8yHy2PK/dy
OaasZVDuPHp603byc4pABnDdKVUDOFzgep7VraXrV1YERlBJFj7p4Na0muW0
pWVGI77T1Bq9b6pHdwblDlhw2Mf40l6j+TvLrjt3IqpFfMDiXJUdm61r2M/m
Dn7vTjpV7aMYqvJCAd44IqWMgoMUP1qPAzTWrk9ZgMupuMHJI5/DipjpssVi
wk2KzkAAcn8TWOLdjO0ZG0I3Q1cPAAUjA61E+eAMVCx57ZojTcR6VZVeTtHJ
qzGghjHdu5NQnGdzEmn20XmzAnIVeTiurs18qIIMg4yc9agv9Rjt4ysXzSsD
jjPNYktw4R5t4dwMM54GT6VlOXlbJySaAnODVjyGSMOw2g9M96ibjk0wfN9K
kQVds7OW6mWKJck9T2A9TXX2NlFZQeXHyx+856sas0UUUUUUUUUUUUUUUUUU
UUUUUUVmeIf+QdF/1+2n/pRHWkv3R9KWiiiiiiiiiiiiiiiiiiiiiiiiimyI
siFHUMrdQazXhns2yHLw54J6j61PhJ0IOCD2qjd2JZMfxDo1ZDQlSVkGCDzU
csO1uOh6ZrQ06+eNhC5LoB1I5Wn6pBbyweav8R5IHesGTAAQqMA8GonR2A2k
kH17VWkVwxDdfTNCSSDG1iCOlTb5pcPlc5AYsuR+NWY7u9snKjawGDsBz19P
atyy1CO5iDN8rdxVwim7Mn2pfKyKaYx6Cont43OWjUn1xVG4sHMgMMwjX/aN
MFhcB1Hno+evOK0ooVwvmgLx0pl1EnXqaZEc5A6AcECrlvGNo6Gp1+Ru9SFj
gfXtU6rVS8tFlDMqjcR1qsFkUDdyw4qrfIHgYtnIrFMPyHA5J71nXsKq4Gfn
6kEUyK1EuGYYX0qUwqrjaOF6CpFiJyw7c1MmJ49jAbh696eSEO1DjHH1rQls
/tNss8eOnNRR+WsYAiAkHB54+tVnhcs2FyU64qEkgcVH82aeC2MZ4qcsfIC7
cZ6Ed6ZHAEbM0m1T1x1p8i23SKI5P8THmiNQAAVGPTFSFEUBl4J7UxCrMRjH
8qnC4p+OKcoPenhAeozVDUrASgyAkEDoB1rHto3M2VUkKeecGuigBaJTk/jU
hUAg8girUMkhUkfNj86cZiVJA2nt70+3lKpnaMenUVI4tpxtPyE8YrOvdFUx
nySSWxjBrDuLWTT7j5gcfnkUy7e1k+aJWVyORVVIy7AKBmldGVyr9atNZTBQ
IwHyM5xg/rVQAc7utAXJ6in7QMbhnntSyxYVXAUbuwOaSOSWE5jkdGHPBIq/
Y6zcWrKPlK5+YkcmuhY2s8RuSQd4GAPWrWnSKmYgQc88Vo7znjmnEZHNRAlS
VUfWml8Ngjj1pR0oIrEvMyakkKkKVIOSOTz/AJ/KrOpYjEcrNhUOT71zE0wm
uJZFGFZsimRu2/YOhqwUyKiNt1Iz7UQr8uaswjcflHSpXRgpZjwKrty2MZJ4
Aq7ZRbArN1Jz16Vbnv3EeHbGeu2sea5LE7BjPfvTFR52CJ0H5CryWDEeXEQP
7zkVZjsobaIu43FeSTWXdXDTSFu3YelV9pJyTmngVf02wkvZ9kYwo5ZyOFH+
e1dfaWkFnHsgTGepPJNT0UUUUUUUUUUUUUUUUUUUUUUUUUVna8u6wiH/AE+W
p/KeM1oL90fSloooooooooooooooooooooooooooIBBBGQeoNZ09s9vmWElk
zyvdR/WnRXCygK2KhurJZVJA+bsayDGS23HzelQGOSB94GD7809naQMYSwJ+
8nY/Sq/2cTK20gMP4TVfmPKOoOR0NRtgnkDFQyJz246YFRZZehP4Vcs5nGSY
97KP0rW014ZSSoCs33lPSr0qzp80XT0zkVFFfAnbOuxs4yOlXYyGAZSCD3HN
PKDrULpIDlDkelVp1lkTaQAPXFR+RKibcFh2qS3D5zLGeOOasyRjaD2Iqm+V
lj2tt44wOtaNvtxjuTyasFV28cnvUip0OKkWhhmq00We1QywKyEEdRVF7RI0
yRmsTUkjIIGM56dKooSp68VIcHnPNPiKpnOc4/OkECSyho5GRsj5TyDVieJl
kQypgHjINTwOUdljY7WBAqszGNvQ56015pGJYseRio8nOKUUY5qyGgWIAh3f
H0AqHl2yR+dSovqKkOFQkioCWb5gSB6AVFKzhdzAbR1HSrHnBUUtwT6VKshI
PGPSpkZR1NSCSPOCwB9Cac6owwWH51SayMJ8y2UAjnjvSJqCB9k0bIQccc1e
UowypBBpd3l/MgyfQd6mW5hlTKodw/hPHNI1y6Rbo0QjHIbj+VMglS5ViEKO
OoJz+VPLPtQ5R1Ug+9Pu0tLuMrNFtIH3sVzk9pHkvDGRg8gjimx2DFssxUUk
ltFCGYsJD/dol1FmiCCIIQMcMelUD1pV5NSgNjJ+nNKyqG+Tn69KbtO7DEDt
zTSm0kAg8dc06GWWI/u3Zfoa1rbUi5C7Sr8fd711th5gtUEy4bFWcjFQSEKd
xPHpVYTh3IGR9alRgycZ460RybhgkZqjJGBqkBGGYKcnv9ai13cYkAzjvWIE
XPQU2RAGV1AyKlTkU5umPWoyuBipIcQED1GTTJ5jIdg4WmIhY7m61OJljjYY
yTVV3aRsDJzUlvZyzyYAwB1PpW1b2KKABwB29/U1aIVF7ACsm9mNyCEO2Ber
/wB76VlswY4UYUUKOa1NK0uS+lycpCv3m/oPeust7eG1i8qBAiZzgetS0UUU
UUUUUUUUUUUUUUUUUUUUUUUVU1Nd1qg/6eIT+UqmrS/dH0paKKKKKKKKKKKK
KKKKKKKKKKKKKKKKpXVmP9ZAMMOqjv8ASkjkLqOzLwRVW8thIPNjHzDnFVvl
mjqlJDtb5uAehFNfejgvgkc7sVYksYbtDJbtgj+A9qyZIWV9rDafeoXQqcMK
jMf938qWM7cAg8HIrQM6OqvBEVmXqc9RW7bvIEXeAQR2pl9aQ3MRyGRuzVii
G+0+YmCXeuc7eoNa9nqUcx8uQeXJ3U1eFRzAnjrVZhzjkH0zT1QkAE5WmSSP
bsOQR6H0qdEjuYgwHzZzVh4+AehpYFYMTkn61Z6UKadTSARTCtZerNsTAODn
p61hXMMgUSbDtPQ4qGG3MoNI0QXtzTcdTjNSRQ7jnO0+tW7gOYVR15HIb1qF
Ufys+nt2qFyWOTTcUlGKUCnqAalCingYGcVBIzMMc89qI4yPmY5Palcbhn9K
cqocfLyO5p4U5JJ4pwGAcGk2qWBIyfWpMbsZA+uKZJLIrDc+0A/gaGAdycDP
cYqVOcMxAHoKlj8sjKEH3zmlAU5pvllc7D1pIItpO49fSp1jReQ1JKgki2fM
BnkL0IodMx7MDFVzDk4qjPYFTuBwCefYVSuLZ42Ib8x3qu0ZHaliGG6fhVmI
biyA/ex7VLLGg2QgAc43Ec1DdR7ZuDuGOtMRPmwVye1MKjJ9c1qaBBE+oq8h
GYzlV9TXXRsQMk5BP5VKp3U10BHNZN1hLgHdyD6Vdgdjg7Cqn1qO7O3D7c46
cd6opfxQM7vG7TNzz+VM1mfdsixg4BYZ6VlA4pMk9aeOBgUtM3EvhfxNOJ45
OTTVj5yaJHxwKjSKSZsKpP8AIVp2djg9OO59a0Iozu2ImEXvVnAQYH51Sv8A
YE33TYjHRB1b/wCtWBczmeUkcIOFX0FNVa2tH0V52We5UpBjIHd/8BXUIiRo
EjVUUdAowBTqKKKKKKKKKKKKKKKKKKKKKKKKKKKKgvRmBR/01jP/AI+tTL90
fSloooooooooooooooooooooooooooooqGa3DtvQ7ZMdex+tV1LZw6lWHUet
VLi32uZIsc9R2NVJAJV46jqKLd42/dzLweOKdHaTW10JISGQ9B6ipr6zWdVm
CncOq+tYt5bNE+eqnoaqsmKbtq1ZxCSZVXhuxBxXQ2kO2HG45/lU25kJDgbf
Wobm2t51xInXuKxL7Rp1bzbWQuBzgnBFMttUurNvKvEYj3HNbcN7bzKGSRSD
6mpXtllAZDyO9MFvIg3c5HpR5KFvmXr1pYY0gcgAhW75q8FBWnomKfikxQRS
YoxVS4tFmYFgDj1qK4s0eLaF4HSolscQ7cLn1AqnfaeVj3IhPris2SHy0jLq
VJ61GHZWznPrmtKxlWaNoX+YAZ46ilNnEbUhXLkHI9QKpG0OwsTxjIqowI+l
NxTgKcMUVIjgDmpgM9+KUIBkjvTXXnApoFKB7U72qBgQ2WclScfSpRhCAozn
36VKvJx09aZKFY4xuJ/hx1oFu4UlWAY/iKNkiqS4BPcrToRGMhOPapcEjrQu
4ZBPHapFORUi5xxThxxSgUjR56daY0ZK81nX8ab1ZslumBWey4Ygj86WOBi2
QmT1FPeIRMrMoL9SKjLkn5o19qRiT0wB7DFBbjgAcYppUVLDlGDqcEHPFdjp
txHcW/mKST/F7GrilT0NMl3c7TVaOBZJCXGcHNNvmYRHYMFTx71Wllf7OHVh
06HmmtFbGINgFwgYnux7A1m6mCL1yT1AJ59qqg8ZoGc5FAOXxTgCaXgdKAvc
0137Clt7czMSThB1NbFtAPuhQFHbFXY4geOgHp3qbHRVFU769jtFwAHl7DsK
5y5uJLiQvKxJpkaM7hVUlicAAck10ulaCsY82/QM+fljzkD3OOv0/wAjeooo
oooooooooooooooooooooooooooqK4GYwP8AbT/0IVIv3R9KWiiiiiiiiiii
iiiiiiiiiiiiiiiiiiimuivjcOR0PpVWaIgYI47Gs2aEpJkdeuagdFfDD5W6
5qSK8kiYhl98dj9KvRXMMyDa4Vj/AAnrSSok4MMsfXoay7/T0hG6JSQeCD2r
LZCOcYpY90ZEiHBB7Vv2N2LlARxIvUetaIw65FN2Beg4owDVW8tFnjKuqkVg
SaPcRsWj6A8AHmtGwvkt0Vbh2RuhVs/5/WttJUkUMrAg9CKVo1aq0lsT059j
TIhPCcH5lPv0q8mTg5qSkxRilpKCKTbTGXpiqs0yJII26kZqDU7H7VADGQHQ
cD1rGgsi+5ZAykdDjipbeKS2ch1Kknhu1XEJY7fuMOlRPG0km0qSCO1Z94qh
8D+EYqrijHOBTgOKMcUu3jNT2/KVITjvTGI6g5zTdwz1pokIzkDHaqqSSbma
QsoJwCDU+QV5TzN/BI5zQ9rIFBWU4HOGXmoX8yQgJLl/7oB5/WrVtbzqd0rA
E9SKuquBjmofMYTbJF2g9DTnj+XKAZ7YqNZHTiXj61LufP3ePWh5UjxubFKl
zE3SVfzxUyzL7H6VIHzQZVX7zAfU1E91GGCb+T6Vn3rsJBtkbHQ4HAqoY2ZD
IORnmrVtueNdoG9OPqKhumyx3oEb2quFJHOOKdjcOeDTShA3Y49aRRwaVMDv
+FXrC9lspvMj5U8Mp6EV0lpNBeANbyHIOSp7Va2cY7+tVHlaKQqOc00kyDLH
I9qobXlldFHyLn65omt5NnyHaI1AJHc1n3UbJtBOd4zn1qAjpTuMUKuKf0oA
7mkdW27m+Ve2e9Q/eOFB/wAa2dPsZFizIAGPKj0rWihCjnrUgUAY9Kz73UFg
Vkh5c9/SsG4ZnJZySxptpaTXlwIYFyx6nsB6mut0vSobCMMwV5zyXx09h6f1
rQooooooooooooooooooooooooooooooopsgyo/3h/MUq/dH0paKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKCARgjIqtcWwdflrOntyo3DkHrVYqMYYZX+VRPB
gHkYPQ05Z7uN0DPuUHHNX2kuTJsEalCPvVjXcTRS4cgkjtziqwBBzV7SwpnX
kZHb1rfCMp3x456j1p4Ibtg0BMdKgnQupjDFCehrNMNxA+HeaRevABB/wrK1
G5SaUgoQw4DZqrBctG45IPt0NakV1eyH9zKOP4S3X6Z/xqZdauIH23MBOOpA
wRV6PVYZgpjOc8Y7irsMocZU5FWATS0UtJRRUbsPWsm6ZDNzIBkYxjmrsrkW
jEZ4Q/yqKFt0MbHJJA5PFJPIixsPlJx0NUJHWQqTgMp5NWYh+7LMeVJK+pFZ
d6haYs3APNVXTI3KOP5VGF6mnbTt3dqUClA5qRBt6U/3PSq8rBl2pkZ7jtRC
uY13tyPepljU9FBA7mmTKcjaOPfkUkQVPuOFz14p8gmOFVmYHrgVPHaQr0T5
h3zzU6qBwKMP06U1wIhuCsWJ56mmxzmQHZE3Bwc4ApjXKOTGyLnOOTwfxpry
bsBTsTOCcg1WIjZ/LZxsBzkrgmhbSKXe8T4CngMKHhyEZmUccKBjP/1qsiB1
2AMVGfm5pJQ6AliWU9M9qSI20Q3MuxuvI5pLgxOm5XXGOncmobePhy4IyuAT
TIJWidgpO0j9aui2SRvOmwxI49Kq3MYjk3BcZOenFVXHGcURDryOOxp2UKld
nPqKRUG7pxTiuKu6VO0N2nzYXcM/SurfdyRVZYwxLE5JqK6TbEdvAAzWe8hh
KJD1b7x9zUt5OVhSInJPzN7CsaWQyyM54HQD0FMA55HSnKCSSfwp+ABSgZx7
0rEKeB+dN2S3Mm1csf5VsWOmrbDzJPmft6CtJIwBk9/1qTYTyeB6Vn6neNEn
lx8E96w2bqzmrWnaTNqJErny7fOCe7fT/H+ddRbW0NrF5VvGETOcD1qWiiii
iiiiiiiiiiiiiiiiiiiiiiiiiiiikbp+IoX7o+lLRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRTJIlfPr/Osi4haKQgqRzwfWmKiuNvRvQ9DUcsMiDABZfQ9q
jW8mj4NQzTGVfnjGfUVVxilQmNw68EHiulsp1uIAynnuPQ1YIz9aQHsTUcmQ
p4yKotdQxuXGdvRgO1Zuo3NnKCVUOT/eXDD6NWP5HmbjG3QZwx5P+NPguZIW
56dD7108RgubZZpEDArwRzTLa3t2XzIPlBPUqDxWlAUK8MrHuRVgUUUtFJmm
M3FVp2GBk/lVERFrhHZcqDwD1rQOOnrUbjHHaqN8saRmQjmq1nEJoWwp3E8H
sBV63RYY2Vzlh3JrPvCpZg4AOeTRp8UMkbFhyTj3xVo24yQFCL71RvoQpBXp
7dKjjs5XiL9APXvUOMGlZScYJyPenkEoQBVbBXKt60bVyCo6+jVLHEwG5Vwf
c9a07S23oHdue49KsXEcKxHei/jWeCEG47QvTg8U151UH5ix9B0p9tKZF+Zd
o7e9QTSy+ZklvLB6rxmpLeVmbG7aD07042hKnB3MTk7h2+tQvAkP+sBMZ/MG
o/MBICyMFIwcjtTXVlGAdyg8HFPSZkKyZDEcEYApVnQSh0UAsMNuFKbnKlWG
4A8MKeLpFjOTuOOBjFU3ZpevQHJoEecds1IWZPl37lIxzUZRs4Cnnjg1cjul
SMIwPGBUl5GjqrZzuGFxWbPC6fKwx/Wotg96fGnNPK9xSNwKktUyS/4V01jd
+baBScyp2PUirgGUyByaqXiSGEgd+tZMciyXSlVO1OAD1NPvVMVmxYgySHJb
2rLRd3XoOTSgZNO4FOWPeM52qO5oIC9Kkgs5ZxvCts9a3rO0jtUwgyx6k1ZE
fc8mlwByeTVS7ncJ8jBcdeKx5A11cKkQaRm/MmtWx0ONSJbzEjYBEfZT7+v8
vrWxRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSL90fSloooooooooooooo
ooooooooooooooooooooprosi7XUEe9UJ7Fk+aLLL6d6hSXjY4yKJbRJlyhr
PmtJYs8ZWqrJg5zV20uo1+SeNSp74rRtjaA7oAqluvbNWwSR0pjunRjg/lUY
uEwcuOPeq8s1rvVpCpDcbh2+tU9Q02BovOtpEXvjsfpWHKvH3NpHBxUJHOTz
Vi3vJ7ddsT5T+43Iq/ocnnXLx71iBGdnJyfUZ6VrvZzB/NiuAJB0G3rTRdXi
4LRpj+LB5H4VMl60iZRWceo4qyj5weeal/GlFITUb5qMoMZbmojguCe1KJAz
E9hTS2Qd2frVeaMlWYnKnkccipoIwkQC/njFQhC7tNg8cLUN6iTPFbjBK/Mx
649as6ZbpEjPuBYnJqtq8cjzRiIE85wBUOx5CqMMHPPpWgoAAFZmopGjAJHg
9SRVQGh2YY21C5yc+tOhjDnmrhIVCen1q3Yb2+Y9COfrVx0DKQehrKmt4hPs
2AAc9etMklZPkCBF7E01Ui2YJ3E90Jz+VTxsiKEIbYB1OajlhjkI+zj5u5HS
rEcbxxhWkyfXbVd/LkZ0Y5kPdh0+lUyhU/MOKlwzJwqhR3FLDGsp2qQMdycZ
pJFhVWGHZs43dqbhCCPLPPTtSNEV4KkH+dNZdjYKgexpQu4H5gAO3rRsbaGy
OOBmlfcJQxYfVegpoVmk68tzT1EqFSOq9KkYJOqxbmVgPqCaqGMqSDjilCnG
AKkWPIwajkUgDNXLeMrEoPcZqaLcsylDg561uW0hMeM596LgsSAMY7mse1QK
ZJD90Erk9zSaq4fyoRgcDNZ3QbBySe1SyQNCo3cMe1QGpUBOByfQVoW1kNym
ZCxJ6A8CtaJVQFUA5PFTAAcmlZuPQVHJwOmT/Kqv2Sa74B8qLkbupNXrSygs
0xEuWPV25Y/jViiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiikX7o+lLRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRVee0jmOR8reoHWqLJNbtyCB69jU
yTLIMOBmo7jT45hlflPqKzJ7GeE8pkeoqsXeNuCVIq3DqkyDa3zCrDahHIpE
qbh6GqUkloTkRspxxg1VcY+ZW4PbNM5C4DH3FRkEHIqN8sxLdT1OKYY2A3YO
DSI7xSCSM4ZTkEV0FprsLqqXAKP03DkGrhZXYvFiRejAHB/Coo5BC4wZtrcA
OOh9Kuxs5XdgNz0FWUORmnUnWmNUUuNmc4qrzye1Npsk6RDLOB+NSwSGQBnw
oPQZzmmpMJFcA9GwOOop6ptj+Y7V6D3qo1sZ5AUGxBxwOTV22txCD824mpdo
zk9arzIqyZAGTVOe+jhfZ1bvVC5kM8mRk47YpUhP8X5VL5Knt+NIlugbJQVO
IU67R+VBQDsKtWibYySMZPFWKp3VqJJBKCQw44qhcoWK8ADPWnl0t0EfJNJH
MS+0Mcc8NVhR23MMnP1p6s2eqBe3rSOqsCEZQ3c4GaqmxLDJlXJPPPFNkJtw
IgEJxyQKrozBxjrU/nKANy5IzQLhHh2SKdw6MKfDNGoJGAem0n9aineJ+F5b
+9ioQFzyeP50hAAIJ+lCnPyn8KfbrukCdCa0zbp8oXAI9qiaOGBHYPl/5e1Z
w+dy3SpFxnGOtTNGAvFVHBbPPFaEIDQqfapAOdoB5rYtohFbKB9ajuGKozDs
OBVK2gbJZv4Og7ZrMucyXLsT0OKlsbYPmaQgIucn0qG4lEspIzjtmocHPArU
061BJaYYIHTPSteOFSvyjaMYp8cKx/dyT6k5pTwflGT7UqxszZb8BU3lr3Ga
dRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRVPVbuSytEliClmuIIjuHGH
lRD+OGOPera/dH0paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKRgGGGA
I9DVSWy+bdCcf7JpglZDhgfoaeLhf4hUc1tbXS843eo61my6YUJO7jsw6U1d
PmyBkc+9RPbMjFZAQR60C13A4IPHQdaU2DbR7jqKpSRMjbWGCKiZeKSHAkww
4PbFLcRR7N8Z+qnqKjtfIW6Q3KboujD0966RltZ7b9xKAQBtKtgismG6uYbp
Uf8Aesx5B61vwM5yzKQc4INWwuBxTgOKD0qJsetVZ8uMDkZpkpVVCLz9Kp3c
rLFhM7j2HWqkaSL+8eLaij+JqmgMtwxEL7UQckDAFX7QLbwBEzL6k0uySR98
ufQIKtKqqOmKUt6VHJIkaFmOKyZp2djtJAzUYhST7559hk1NtSNMryemDTAK
cKcBTxk1KiKPvDJqcDjpilz+dMJzng8daqyQZOVwB16VEy7guQQQfxqG4DEh
Qm5uvFLC7D5JJCG6YIqLY7OzmRSV55NTQosjb3+vIyKcyRAfdYL/AHh2NV2V
fMCkFm7k85qIqMDkc9h2pyICcE8Yz160hVQoOOvrSMgyNuMYyaeIlbBLBCOT
zQ0YUMwYkDv60xVLOEJwfalMLKM4wetMXKuGB5HPFWBczbgykADtiknm83O+
MZPcVX4B461YlKvJGQe+CKkuCAoXv1FVSBuwat2iskXzYwTxV22jL3CjvWse
BjoBVKcNM+E6L+pp0iCK2KD72DyKxVkSNJQRkscD2ps9yRCYkG0Hkj/Go7a2
luGyinHqa2bLT0i+eUAt6elWja72H8KjsO9WlXAx2pjqXbaMgd6lRAowBgU+
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiszxD/AMg6L/r9tP8A0ojr
SX7o+lLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRTXRXGGGff0qpcW
ZdTsNY8kckL4ORirlpcSEYDbj/db/GrsbI/QYPcEUs8KzR7W/Osq5gltjuA3
J6+lNiuow3IYA/lUs0MV0vDqH7Ed6ypoXjYq6lT/ADpsW1JlZxlQeRWrIkU6
5jRCCOuKzbqyVT8gxirmjMkJZWUAucZJ71Pc+c1+nkKiZwGJwSa0bMSFWMpB
+b5cdMVZpwpCM1G3B6VQvJWjG5QMe9QyB5EVw4VvzxUIkRtrs3TjnioLycuh
SIZX+ImptOiaKEsTt3ckkVoIVj5kfg9BjFNM6s5JK8dAOTTxKMZY49s9Khub
pY4iVPzdhisS5mkmbczZquJWzyTVmAu44HFWACOrCnj65p4xT1xn5s4qzFs6
hfzqYY9aQo2fvfL7daZ5J/jIz2OKXemQOenengqR939aqMEDHch/A0bVJyAc
VFNGsikbc+nNOWJVTaox2qJLcRHJy4PXjp70/wAs5wwBjzwG6j6VVlWQSheR
g8Z61KlorhuHHoTTJLdUIxu465FPMW6U70XZjjtiopbcoTsJIx3pscTkEgZH
qamjtAygzbhzx6UkkEsDnaQ/88UyGSNCd6Yz6VXmCs+YwQKUMo6rniiUrxsz
70zZgU5iXOSBn2qVCzpjrjuajABbritC0XdFzjg4rSsUAZmqyeTt/OgRqo6c
Dk1n3soRCerN0rGZAuc9T+lS21oJf3kpxGD+LH0Fb8SeXGAFA4wAB0qaOMKv
Ip+acBSgAUtFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFZniH/AJB0
X/X7af8ApRHWkv3R9KWiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
oZ7aK4XDrz6jrWZNps0J3Qnf9OtNinkyBIMkdDV+OXKjJBPenMMjjmqX2SDz
GJHJ7Cs+4ga3mO3lRyM1DLJJIu0sSuc4PaoCKntLk27EMCyn9K0GVZ4t8ZyD
VN4CM7T+Bq1psSzygSD5k7j09K3AAAABgCgjFA6UtMYiqkyeaDlQVHrWZdyi
DIVeT19qoRkiZWdenNOu5FdgAQf5VpwmV4kZlVWxgL7etK21SWkYyt/KqrXK
7soCSKaC7OGC7cdcmmXc4xs6n2qiTgUsMXmPjtV5tsUOFA496rFwWztpwlx0
yKmWU96lDg96ljkAPWpjK38PXtUsc8rY3qFFEkxJwuPrUSA7iT3qdRkUjoxG
BgCoGXZwTSUopSMjGcU1iwOdyhR1zUXk733eYMnjj09KmO5IwFTn27UkTFwd
y4we4xTyqDJx1ppCyL8yce9OG1FAPSny24mjDL17ZOKrtcyW/wAkiK3bg5ql
nczMEX6UhG4EldtRlF2kjg+lNCk9qViSaQDnFWIImWRkxnsaSWMBTn72eMd6
vWSEQ7T1BrUiXZF7nk06P19ac5wtZ1xGGLzygYQcLWXGjXE3HJY5NbFpbBWL
MBgcIPQetXwBinAZpQoFLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRWZ4h/5B0X/X7af+lEdaS/dH0paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKimtopvvrg/3h1qjJZyxcr86+o6/lTBLJHw2ePWpi6sA3UjuK
pXkGcufm3dDnBrPIIPpTSARTCnpUlrO9vKCOVPUGtSIR3BLxspIPTFXrWBYg
WAALdcVZFLSZpCcUxsntUMpWONmZhXPXM8lxKVztUn0qxBbBIy7fN6ZFEMcM
chkkG5h0ULU4vF5yvzDsBVeSdmz5adfvFhSQrsX689KZcTbFO0/NVEksST1N
JinqSp9KeDk5bJqUvHtwqVFjmpUUCpRTxTwfSpkLL0JFSB3zncakDnuTSu5A
4yTURcsOc/nTSDQBTsUc5FBUHg8+1II2A4wvpilDHIU5JPfHFOdSQMHvTTkk
8fSlw+7AHFQyuIBnaSSe9FvODyW+fvx0omQOhbcSeoqoSp52njrUisGxx16U
wopY8Y9qY0RXmmMAQPWhV9q0YYgg3t99hTJoCv7w85P3au20WFDEYJ5OatMM
gKKlUYFMkYMMY71l6tIYwsWfvcmoNMG2XkHB4BreWP5MDj3qRVAAHWlooooo
ooooooooooooooooooooooooooooooooooooooorM8Q/8g6L/r9tP/SiOtJf
uj6UtFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFMeJJPvqD71
Xksx1jJFVJLSQAjccehqm9nLzhc02OAEkPG5PsaV7PKny9xYdVPWqkkbKSGU
g0ttNJbSh0PHcetdNA4lgSRejDNPpaQkdzSE8VUmlI6Ak1mXU7kEmLBPHJzU
EMDMw45JrZEQt7Ys3JxWYSfMaVuM1DECzM65XJ6mpGJAwOaY8m1c96oyEsxz
SCjNCjJqQCnYNLtp6KxNTqlSBQOpFPUDHWnZHY08H2qRY2blW4oMTHgsKjxg
0AU7BpQKepXpgZpSqimnAppYZGKUuqEAkkmoy5Z/k+6PvEUnnvv27ML/AHut
JJKgJyPm7Zqu7HcSUKknsetSjavyHcd3rUU+HK5HUflTVQBiFYcjvSEFWAx3
oZGGVXk54FMCEfeGPaliO2QEAH61ft5CSuQuB3x3qW4DMcKuQBz+NW41AUHt
inxqSSTUpFQk5kA9Oaotp893MZZSI1J6Hk4+laMNrDCAEQEjueTU1FFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFZniH/AJB0X/X7af8ApRHW
kv3R9KWiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiggEYIz
UbQg/d4qB4yuSyceuM1SuE2v5kTEMevNU5HkdcSYNQiJnYKgyTW9p6SRWyxy
AAr0xVnFIenFN2560FcdKrXRCIW44qjCyTyYdMjPcVopBGh3gVVvrncpiUfU
kVQxnrTzgCoJSSOGAxVOV+cA5x3pn1opcU9V4qQLTttOVPWpMhRxS7zjpScn
qacBinoMnA71fhtJAc5GPerBVUBOMn2qPaH5I2kVDLHg5HSmhaXpQvzHgce9
OAAzjvR2oIphQnuR9KVYlAwOnuaRlORgD3+lA6EMo6dO1McZXBQZPQZqs0Dq
oGAOc9aczhm2hd3FMaHncc7ehyalit8upD4HUcdTU72rcGRgSfao0WSPAOM+
tQ3ILNkk5pbeLedu3JOOfStKKAIgHWpNoxjFSIBgAdBUwHFLt9aAoHQUtFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFZniH/kHRf8AX7af
+lEdaS/dH0paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKilt4pR868+o4qhNpjgExOG68Hg1PZ2v2eMl1+Y1OpzTxS0cUHFQy7CMHmo
VRWcBFGAeamlkCDAGTWbcb5DlhioNu3rTGNULhmJznAqHqaXk04JnrTwtSKt
OApwpwGacEFO2il2+1KFp6gg5HFWEllAwHNOEr55JNSMxbnd1pyxsy/MeBUR
GDR2ozTS4HU0FwBkmlQ7hkDin4NG0jsab8/Zf0pCrf3SaURn7z4HuaN8I4Kl
8+gpCyg5SBVPrimNDLIfnJI7elSx2qDDkYYd6mYqvLcmq7/Mc96jKZ5NWbYK
FIX8TVgAnoCakERI54p6oFFOoooooooooooooooooooooooooooooooooooo
ooooooooooooooorM8Q/8g6L/r9tP/SiOtJfuj6UtFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFJtHpSbfSgr60gUDpSPt7ioiPMP
CgCnMhC4XAqMowHzc1HcAbOmKooVLkuBtXrmqc4Z53VPug8DpVRkcn5gc9xT
AvPSpo488ngVKIlFLtAoA9KUD2pQPanACnAGnhTTwlPCU8LTgtKFp2KkJCqA
STULNk0mSTgDNOEUjdsfWnLa46t+QqQQxr2B+tOwvpS/QUoyaazBeooKlxw1
I8RfBz+Bp0cKoCAKeIwOcU/YOuOaQjINVXQ7jmmiJ2PyqT74qVbJ2HzMFH51
Yito4icZOfU1MBjpRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRWdry7rCIf9PlqfynjNaC/dH0paKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKayBh1pAmBSkU2kKAj5vwqFbdPN3
Ef4VFd2SyHzI8Kw5PHWs+azkYAjOfc1W+zHdgg81YSwYYOBg96VrUI3zZNQs
oHAUDHvSAVIEJpwj+lOWMD0p4QU4Aeopcr6ipEUv90U8Qt7U7yT6igxEd/0o
MZHA61EYZWPUAU8Ww7sTUyqqjgAUhOeQ35VC0uDikEpXoKPOY9MU+EmQ/eyO
9WQuO5oKA9s0qxgNkADNPKikxijnPAzT9po2Cl2L/dFLRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRVTU13WqD/p4hP5SqatL
90fSlooooooooooooooooooooooooooooooooooooooooooooooooooooooo
oooooowPSmsoal20hBqN0yOlRi3TcCecdKJCqDgCs+Zi78k4qMxDHFKIAehx
ThAOmTUgt19TQ1qMcGmGLHFJs9hUixY5wc1ZXd0AxUqqe9OxSHFMJphYD3pr
ybVyRiq5mdujU1mbuTRGMtg5qVrV2+636VPbW7qvz4+gqRLdUOU4JqUJTglL
tpdtLgelFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFQXozAo/wCmsZ/8fWpl+6PpS0UUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYB6imNFGx5WmfZYs55pDa
r6/pTTa+4o+zkdMGl8lvSjyj/dpvk/7JpTF/sn8qQIKOBTgQaKcEJA4NMeNg
CVU/lUASUkARsMnuKV7WVlPH4Zohs3/5aACrKwEDAwBSmBT1xn6U4RKPWnBQ
KXFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFRXAzGB/tp/6EKkX7o+lLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRTZBlR/vD+YpV+6PpS0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
jdPxFC/dH0paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKRfuj6V5VD4o
1+TUdMsTql3umltVnmW3h2ETqHAHyfIwBwM7t2CflxgwR+JvFLXttGNf32s8
BmNwlpAoRQzISfM2AAuuAWYZBXgE7albXfFscNwJfEUQuYZ7qERC0QhzAgdy
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
5Kx5jcnaOgyeuK9xoooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooopF+6PpX//Z

--0-700366402-1163583761=:38378--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 15 05:12:45 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAFACjf18859
	for openmap-users-archive; Wed, 15 Nov 2006 05:12:45 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAFAChm18856
	for <openmap-users@openmap.bbn.com>; Wed, 15 Nov 2006 05:12:44 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkHfZ-0007d5-4B; Wed, 15 Nov 2006 05:07:01 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAFA5f521742
	for openmap-users-outgoing; Wed, 15 Nov 2006 05:05:41 -0500 (EST)
Message-ID: <455AE652.8030602@navicon.dk>
Date: Wed, 15 Nov 2006 11:05:06 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
CC: openmap-users@bbn.com
Subject: Re: [OpenMap Users] Open satellite image
References: <20061115094241.46840.qmail@web405.biz.mail.mud.yahoo.com>
In-Reply-To: <20061115094241.46840.qmail@web405.biz.mail.mud.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Old-X-Spam-Score: -1.1 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi

You will have to preprocess the image to get it geo refed and converted 
to a raster format OM understands.
You can use the FWTools to do this.

http://fwtools.maptools.org/windows-main.html

regards
/carsten

Vinesh Gautam wrote:
> Dear All,
>  
> I have got a problem about opening an image of Satellite. The image is 
> from DUNDEE.(http://www.sat.dundee.ac.uk/) I would like to open the 
> image on Openmap basemap. For the reference i am attaching the image.
>  
> Please help me to sort out the problem that how can i open the image 
> on openmap basemap as a different layer. Please guide me how can i 
> open this type of image.
>  

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 15 11:32:17 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAFGWHX21606
	for openmap-users-archive; Wed, 15 Nov 2006 11:32:17 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAFGWGm21603
	for <openmap-users@openmap.bbn.com>; Wed, 15 Nov 2006 11:32:16 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkNbz-0002QZ-56; Wed, 15 Nov 2006 11:27:43 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAFGPPM27827
	for openmap-users-outgoing; Wed, 15 Nov 2006 11:25:25 -0500 (EST)
In-Reply-To: <EC65DCC810869241816315431C3BBEF101065802@vaff01-mail01.ad.gd-ais.com>
References: <EC65DCC810869241816315431C3BBEF101065802@vaff01-mail01.ad.gd-ais.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <66832452-6926-4141-8285-221CF1EF8541@bbn.com>
Cc: "OpenMap Mailing List" <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Having problems using creating a component LayerUtils
Date: Tue, 14 Nov 2006 18:14:46 -0500
To: "Norfleet, Timothy M." <timothy.norfleet@gd-ais.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

LayerUtils was replaced by com.bbn.openmap.util.PropUtils.

- Don


On Nov 14, 2006, at 5:40 PM, Norfleet, Timothy M. wrote:

> All
> Having problems using the class below. Getting deprecation errors
> import com.bbn.openmap.layer.util.LayerUtils;
>
> Some how this is stopping me from creating a component. Can some  
> help me
> with it's replacement.
>
> Tim
>
>
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 11:12:32 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGGCWW31896
	for openmap-users-archive; Thu, 16 Nov 2006 11:12:32 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGGCVm31893
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 11:12:31 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkjkZ-0004BZ-47; Thu, 16 Nov 2006 11:06:03 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGG1wM21742
	for openmap-users-outgoing; Thu, 16 Nov 2006 11:01:58 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:in-reply-to:references:mime-version:content-type:message-id:cc:content-transfer-encoding:from:subject:date:to:x-mailer;
        b=WoAXrmP7roaGfQsHDlMVjoRttu4nnKk3jvatw7pm+8GulNDRPWF2Iw/NJAnH2NInTyZDdHBUp7HSoZNzOpTjRv2YFvLmL30cZZwsIBmDBsvqrW6//yHwFbE6zFmOLU1Ae16JF4/ezwEco6/wQZFzm76k1FEz7FQAfgcSiVwmy+U=
In-Reply-To: <446454A7.6010203@navicon.dk>
References: <423AC251233B02408FA269261D4B774F06774E@ednex511.dsto.defence.gov.au> <446454A7.6010203@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com>
Cc: "'openmap-users@bbn.com'" <openmap-users@bbn.com>,
   "Miller, Tim" <Tim.Miller@dsto.defence.gov.au>, dietrick@bbn.com
From: Bas Schulte <basschulte@gmail.com>
Subject: Re: [OpenMap Users] BSB maptech layer
Date: Thu, 16 Nov 2006 17:01:29 +0100
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAGG1ua21734
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=RCVD_BY_IP 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Carsten,

is this available somewhere? I have some interest in playing with BSB  
charts, wouldn't mind playing around with it...

Cheers,

Bas.



On 12-mei-2006, at 11:25, Carsten Ø. Madsen wrote:

> Hi
>
> I have a layer running which wil load a single BSB file. It has the  
> following issues:
>
> - Large BSB files uses a LOT of memory. To fix this there needs to  
> be a way to use the BSB scan line index to only generate pixels for  
> the current area of interest.
>
> - There is no tile cache so to display multiple BSB's multiple  
> layers must be created.
>
> regards
> /carsten


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 12:25:01 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGHP1Y32202
	for openmap-users-archive; Thu, 16 Nov 2006 12:25:01 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGHP1m32199
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 12:25:01 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gkkud-000751-3p; Thu, 16 Nov 2006 12:20:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGHIgM23487
	for openmap-users-outgoing; Thu, 16 Nov 2006 12:18:42 -0500 (EST)
Message-ID: <455C9D48.1090208@navicon.dk>
Date: Thu, 16 Nov 2006 18:18:00 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: Bas Schulte <basschulte@gmail.com>
CC: "'openmap-users@bbn.com'" <openmap-users@bbn.com>,
   "Miller, Tim" <Tim.Miller@dsto.defence.gov.au>, dietrick@bbn.com
Subject: Re: [OpenMap Users] BSB maptech layer
References: <423AC251233B02408FA269261D4B774F06774E@ednex511.dsto.defence.gov.au> <446454A7.6010203@navicon.dk> <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com>
In-Reply-To: <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Old-X-Spam-Score: -1.1 (-)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAGHIYa23478
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Bas

This should do the trick for you http://www.navicon.dk/GDALLayer.java.html

However, there might still be a problem in the GDAL bindings for GCPs. 
Check this
http://www.nabble.com/swig-java-dumps-core-tf2507983.html#a6997341 for 
more info.

I think it is easy to fix.

regards
/carsten

Bas Schulte wrote:
> Hi Carsten,
>
> is this available somewhere? I have some interest in playing with BSB 
> charts, wouldn't mind playing around with it...
>
> Cheers,
>
> Bas.
>
>
>
> On 12-mei-2006, at 11:25, Carsten Ø. Madsen wrote:
>
>> Hi
>>
>> I have a layer running which wil load a single BSB file. It has the 
>> following issues:
>>
>> - Large BSB files uses a LOT of memory. To fix this there needs to be 
>> a way to use the BSB scan line index to only generate pixels for the 
>> current area of interest.
>>
>> - There is no tile cache so to display multiple BSB's multiple layers 
>> must be created.
>>
>> regards
>> /carsten
>
>
> -- 
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe 
> openmap-users"]

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 13:17:36 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGIHaI32418
	for openmap-users-archive; Thu, 16 Nov 2006 13:17:36 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGIHam32415
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 13:17:36 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gkliz-0006Ap-6F; Thu, 16 Nov 2006 13:12:34 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGIAEE24752
	for openmap-users-outgoing; Thu, 16 Nov 2006 13:10:14 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:in-reply-to:references:mime-version:content-type:message-id:cc:content-transfer-encoding:from:subject:date:to:x-mailer;
        b=GrI43SfkuYoVbALkiT793nPYopUOpI50c/SDwTxTS0Z0E8181Cbd3XaywgFbta93aXeITiTviP2Qba1KxqYZr7p0rKJHHVBuiW4IwIDvlbM3zYZF6tcVUPOmaaoAXiK2YsmWkmoGX9rw286nbwPLJlVeSZWQpsAat8RMjf6IIHs=
In-Reply-To: <455C9D48.1090208@navicon.dk>
References: <423AC251233B02408FA269261D4B774F06774E@ednex511.dsto.defence.gov.au> <446454A7.6010203@navicon.dk> <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com> <455C9D48.1090208@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <34B4021A-F56F-49B5-9AF2-CFE3A35FA467@gmail.com>
Cc: openmap-users@bbn.com
From: Bas Schulte <basschulte@gmail.com>
Subject: Re: [OpenMap Users] BSB maptech layer
Date: Thu, 16 Nov 2006 19:09:48 +0100
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAGIA7a24744
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=RCVD_BY_IP 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Carsten,

On 16-nov-2006, at 18:18, Carsten Ø. Madsen wrote:

> This should do the trick for you http://www.navicon.dk/ 
> GDALLayer.java.html
>
> However, there might still be a problem in the GDAL bindings for  
> GCPs. Check this
> http://www.nabble.com/swig-java-dumps-core-tf2507983.html#a6997341  
> for more info.
>
> I think it is easy to fix.

Thanks, that should do for some exploring adventures ;)

Not sure if I appreciate the dependency on a non-java external  
library though. From the looks of it, reading a bsb file directly  
isn't that difficult. I may have a stab at that someday.

Cheers,

Bas.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 13:43:30 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGIhU532498
	for openmap-users-archive; Thu, 16 Nov 2006 13:43:30 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGIhUm32495
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 13:43:30 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkmA5-0006d7-44; Thu, 16 Nov 2006 13:40:33 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGIdEb25586
	for openmap-users-outgoing; Thu, 16 Nov 2006 13:39:14 -0500 (EST)
User-Agent: Microsoft-Entourage/11.2.5.060620
Date: Thu, 16 Nov 2006 13:38:50 -0500
Subject: [OpenMap Users] Automatic projection with center, scale, and padding
From: "Smiley, David W. (DSMILEY)" <dsmiley@mitre.org>
To: <openmap-users@bbn.com>
Message-ID: <C1821A6B.38D5%dsmiley@mitre.org>
Thread-Topic: Automatic projection with center, scale, and padding
Thread-Index: AccJrnVIs5ro1HWhEdujywADk5B2jg==
Mime-version: 1.0
Content-type: multipart/mixed;
	boundary="B_3246529131_1178096"
X-OriginalArrivalTime: 16 Nov 2006 18:38:53.0557 (UTC) FILETIME=[77675A50:01C709AE]
Old-X-Spam-Score: 1.3 (+)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: **
X-Spam-Status: No, score=2.0 required=2.5 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_NUMERIC_HELO autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

> This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--B_3246529131_1178096
Content-type: multipart/alternative;
	boundary="B_3246529131_1198816"


--B_3246529131_1198816
Content-type: text/plain;
	charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable

I didn=B9t find anything in OpenMap to automatically center, scale, or padd
(i.e. Ensure X pixels of padding) a Projection based on a set of lat/lon
points.  I needed this feature so I wrote it myself.  Attached is the sourc=
e
file that does it.  It would be nice if somehow this work could be
incorporated back into OpenMap because I suspect others will find it useful=
.

By the way, the points to base the projection off of are retrieved from a
set of OMGraphic objects given.  Only OMPoint and Location are supported in
the code.

~ David Smiley
  MITRE
  781-271-7659=20



--B_3246529131_1198816
Content-type: text/html;
	charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable

<HTML>
<HEAD>
<TITLE>Automatic projection with center, scale, and padding</TITLE>
</HEAD>
<BODY>
<FONT FACE=3D"Verdana, Helvetica, Arial"><SPAN STYLE=3D'font-size:12.0px'>I did=
n&#8217;t find anything in OpenMap to automatically center, scale, or padd (=
i.e. Ensure X pixels of padding) a Projection based on a set of lat/lon poin=
ts. &nbsp;I needed this feature so I wrote it myself. &nbsp;Attached is the =
source file that does it. &nbsp;It would be nice if somehow this work could =
be incorporated back into OpenMap because I suspect others will find it usef=
ul.<BR>
<BR>
By the way, the points to base the projection off of are retrieved from a s=
et of OMGraphic objects given. &nbsp;Only OMPoint and Location are supported=
 in the code.<BR>
<BR>
~ David Smiley<BR>
&nbsp;&nbsp;MITRE<BR>
&nbsp;&nbsp;781-271-7659 <BR>
<BR>
</SPAN></FONT>
</BODY>
</HTML>


--B_3246529131_1198816--


--B_3246529131_1178096
Content-type: application/octet-stream; name="OpenMapUtils.java"
Content-disposition: attachment;
	filename="OpenMapUtils.java"
Content-transfer-encoding: base64

cGFja2FnZSBvcmcubWl0cmUuamRwLmNvZXgubWFwYnVpbGRlci5vcGVubWFwOwoKaW1wb3J0
IGNvbS5iYm4ub3Blbm1hcC5MYXRMb25Qb2ludDsKaW1wb3J0IGNvbS5iYm4ub3Blbm1hcC5M
YXllcjsKaW1wb3J0IGNvbS5iYm4ub3Blbm1hcC5sYXllci5PTUdyYXBoaWNIYW5kbGVyTGF5
ZXI7CmltcG9ydCBjb20uYmJuLm9wZW5tYXAubGF5ZXIubG9jYXRpb24uTG9jYXRpb247Cmlt
cG9ydCBjb20uYmJuLm9wZW5tYXAubGF5ZXIubG9jYXRpb24uTG9jYXRpb25MYXllcjsKaW1w
b3J0IGNvbS5iYm4ub3Blbm1hcC5vbUdyYXBoaWNzLk9NR3JhcGhpYzsKaW1wb3J0IGNvbS5i
Ym4ub3Blbm1hcC5vbUdyYXBoaWNzLk9NR3JhcGhpY0xpc3Q7CmltcG9ydCBjb20uYmJuLm9w
ZW5tYXAub21HcmFwaGljcy5PTVBvaW50OwppbXBvcnQgY29tLmJibi5vcGVubWFwLnByb2ou
UHJvajsKaW1wb3J0IGNvbS5iYm4ub3Blbm1hcC5wcm9qLlByb2pNYXRoOwoKaW1wb3J0IGph
dmEudXRpbC4qOwoKLyoqCiAqIFV0aWxpdHkgY29kZSBmb3IgdXNlIG9mIE9wZW5NYXAuCiAq
CiAqIEBhdXRob3IgRGF2aWQgU21pbGV5IChkc21pbGV5QG1pdHJlLm9yZykKICovCnB1Ymxp
YyBjbGFzcyBPcGVuTWFwVXRpbHMKewoKICAgcHJpdmF0ZSBPcGVuTWFwVXRpbHMoKSB7CiAg
IH0KCiAgIC8qKgogICAgKiBUT0RPOiB3aGVuIGF1dG9DZW50ZXI9ZmFsc2UgYW5kIGF1dG9T
Y2FsZT10cnVlLCBzY2FsaW5nIGlzbid0IHJpZ2h0LgogICAgKi8KICAgcHVibGljIHN0YXRp
YyB2b2lkIGF1dG9BZGp1c3RQcm9qZWN0aW9uKFByb2ogcHJvaiwgQ29sbGVjdGlvbiBvbUdy
YXBoaWNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bGVhbiBhdXRvQ2VudGVyLCBib29sZWFuIGF1dG9TY2FsZSwgaW50IHBpeGVsUGFkZGluZykg
ewogICAgICAvLyNnZXQgbGlzdCBvZiBMYXRMb25Qb2ludCBvYmplY3RzIGZyb20gb21HcmFw
aGljcyBsaXN0CiAgICAgIExpc3QgbGF0bG9ucyA9IG5ldyBBcnJheUxpc3QoKTsKICAgICAg
R2V0TGF0TG9uUG9pbnRzRnJvbU9NR1Zpc2l0b3IgdmlzaXRvciA9IG5ldyBHZXRMYXRMb25Q
b2ludHNGcm9tT01HVmlzaXRvcigpOwogICAgICB2aXNpdG9yLmxhdGxvbnMgPSBsYXRsb25z
OwogICAgICB2aXNpdE9NR3JhcGhpY3Mob21HcmFwaGljcywgdmlzaXRvcik7CgogICAgICAv
LyNzaG9ydCBjaXJjdWl0IGxvZ2ljCiAgICAgIGlmIChsYXRsb25zLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOy8vZG9uZSEKCiAgICAgIC8vI3B1dCBsYXRpdHVkZSBhbmQgbG9uZ2l0
dWRlIGludG8gdGhlaXIgb3duIGFycmF5czsgc29ydGVkCiAgICAgIGZsb2F0W10gbGF0RGVn
cmVlcyA9IG5ldyBmbG9hdFtsYXRsb25zLnNpemUoKV07CiAgICAgIGZsb2F0W10gbG9uRGVn
cmVlcyA9IG5ldyBmbG9hdFtsYXRsb25zLnNpemUoKV07CiAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGF0bG9ucy5zaXplKCk7IGkrKykgewogICAgICAgICBMYXRMb25Qb2ludCBsYXRM
b25Qb2ludCA9IChMYXRMb25Qb2ludCkgbGF0bG9ucy5nZXQoaSk7CiAgICAgICAgIGxhdERl
Z3JlZXNbaV0gPSBsYXRMb25Qb2ludC5nZXRMYXRpdHVkZSgpOwogICAgICAgICBsb25EZWdy
ZWVzW2ldID0gbGF0TG9uUG9pbnQuZ2V0TG9uZ2l0dWRlKCk7CiAgICAgIH0KICAgICAgQXJy
YXlzLnNvcnQobGF0RGVncmVlcyk7CiAgICAgIEFycmF5cy5zb3J0KGxvbkRlZ3JlZXMpOwoK
ICAgICAgLy8jZmluZCBib3VuZGluZyBsYXRsb25zCiAgICAgIGludCBnZGxpID0gZ3JlYXRl
c3REaXN0YW5jZUxvb3BJbmRleChsb25EZWdyZWVzLCAtTGF0TG9uUG9pbnQuREFURUxJTkUs
IExhdExvblBvaW50LkRBVEVMSU5FKTsKICAgICAgTGF0TG9uUG9pbnQgdXBwZXJMZWZ0ID0g
bmV3IExhdExvblBvaW50KAogICAgICAgICAgICBsYXREZWdyZWVzW2xhdERlZ3JlZXMubGVu
Z3RoIC0gMV0sCiAgICAgICAgICAgIGxvbkRlZ3JlZXNbKGdkbGkgKyAxKSAlIChsb25EZWdy
ZWVzLmxlbmd0aCldKTsKICAgICAgTGF0TG9uUG9pbnQgbG93ZXJSaWdodCA9IG5ldyBMYXRM
b25Qb2ludCgKICAgICAgICAgICAgbGF0RGVncmVlc1swXSwKICAgICAgICAgICAgbG9uRGVn
cmVlc1tnZGxpXSk7CgogICAgICAvLyNzZXQgY2VudGVyCiAgICAgIGlmIChhdXRvQ2VudGVy
KSB7CiAgICAgICAgIExhdExvblBvaW50IGNlbnRlckxMID0gbmV3IExhdExvblBvaW50KAog
ICAgICAgICAgICAgICB1cHBlckxlZnQuZ2V0TGF0aXR1ZGUoKSAtICh1cHBlckxlZnQuZ2V0
TGF0aXR1ZGUoKSAtIGxvd2VyUmlnaHQuZ2V0TGF0aXR1ZGUoKSkgLyAyLAogICAgICAgICAg
ICAgICBsb3dlclJpZ2h0LmdldExvbmdpdHVkZSgpIC0gKGxvd2VyUmlnaHQuZ2V0TG9uZ2l0
dWRlKCkgLSB1cHBlckxlZnQuZ2V0TG9uZ2l0dWRlKCkpIC8gMik7CiAgICAgICAgIHByb2ou
c2V0Q2VudGVyKGNlbnRlckxMKTsKICAgICAgfQogICAgICAvLyNzZXQgYXV0by1zY2FsZQog
ICAgICBpZiAoYXV0b1NjYWxlICYmIGxhdGxvbnMuc2l6ZSgpID4gMSkgewogICAgICAgICBw
cm9qLnNldFNjYWxlKFByb2pNYXRoLmdldFNjYWxlKHVwcGVyTGVmdCwgbG93ZXJSaWdodCwg
cHJvaikpOwoKICAgICAgICAgLy8jaW5zZXQKICAgICAgICAgaWYgKHBpeGVsUGFkZGluZyA+
IDApIHsKICAgICAgICAgICAgamF2YS5hd3QuUG9pbnQgdXBwZXJMZWZ0UCA9IHByb2ouZm9y
d2FyZChwcm9qLmdldFVwcGVyTGVmdCgpKTsKICAgICAgICAgICAgamF2YS5hd3QuUG9pbnQg
bG93ZXJSaWdodFAgPSBwcm9qLmZvcndhcmQocHJvai5nZXRMb3dlclJpZ2h0KCkpOwogICAg
ICAgICAgICB1cHBlckxlZnRQLnNldExvY2F0aW9uKHVwcGVyTGVmdFAuZ2V0WCgpIC0gcGl4
ZWxQYWRkaW5nLCB1cHBlckxlZnRQLmdldFkoKSAtIHBpeGVsUGFkZGluZyk7CiAgICAgICAg
ICAgIGxvd2VyUmlnaHRQLnNldExvY2F0aW9uKGxvd2VyUmlnaHRQLmdldFgoKSArIHBpeGVs
UGFkZGluZywgbG93ZXJSaWdodFAuZ2V0WSgpICsgcGl4ZWxQYWRkaW5nKTsKICAgICAgICAg
ICAgdXBwZXJMZWZ0ID0gcHJvai5pbnZlcnNlKHVwcGVyTGVmdFApOwogICAgICAgICAgICBs
b3dlclJpZ2h0ID0gcHJvai5pbnZlcnNlKGxvd2VyUmlnaHRQKTsKICAgICAgICAgICAgcHJv
ai5zZXRTY2FsZShwcm9qLmdldFNjYWxlKHVwcGVyTGVmdCwgbG93ZXJSaWdodCwgdXBwZXJM
ZWZ0UCwgbG93ZXJSaWdodFApKTsKICAgICAgICAgfQogICAgICB9CiAgIH0KCiAgIC8qKgog
ICAgKiBHaXZlbiBkZWdyZWVzLCBhIHNlcmllcyBvZiBzb3J0ZWQgbnVtYmVycyBpbiB0aGUg
cmFuZ2UgKHN0YXJ0RGVncmVlLGVuZERlZ3JlZSkgdGhhdCB3cmFwIGFyb3VuZAogICAgKiBh
cyBpZiBsb29wZWQgKGllOiB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXMgYXJlIGFkamFjZW50
KSwgcmV0dXJuIGluZGV4IHRvIHRoZSBudW1iZXIgdGhhdCBpcwogICAgKiBmdXJ0aGVzdCBm
cm9tIHRoZSBvbmUgYWZ0ZXIgaXQuCiAgICAqLwogICBwcml2YXRlIHN0YXRpYyBpbnQgZ3Jl
YXRlc3REaXN0YW5jZUxvb3BJbmRleChmbG9hdFtdIGRlZ3JlZXMsIGZsb2F0IHN0YXJ0RGVn
cmVlLCBmbG9hdCBlbmREZWdyZWUpIHsKICAgICAgaWYgKGRlZ3JlZXMubGVuZ3RoID09IDAp
CiAgICAgICAgIHJldHVybiAtMTsKICAgICAgaWYgKGRlZ3JlZXMubGVuZ3RoID09IDEpCiAg
ICAgICAgIHJldHVybiAwOwogICAgICBpbnQgcmVzdWx0ID0gLTE7CiAgICAgIGZsb2F0IGdk
ID0gMDsvL2dyZWF0ZXN0IGRpc3RhbmNlCiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVn
cmVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICBmbG9hdCBkZDsKICAgICAgICAgaWYgKGkg
PT0gZGVncmVlcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIC8vaGFuZGxlIGZpbmFsIHdy
YXAtYXJvdW5kIGNhc2UKICAgICAgICAgICAgZGQgPSAoZW5kRGVncmVlIC0gZGVncmVlc1tp
XSkgKyAoZGVncmVlc1swXSAtIHN0YXJ0RGVncmVlKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgZGQgPSBkZWdyZWVzW2kgKyAxXSAtIGRlZ3JlZXNbaV07CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKGRkID49IGdkKSB7CiAgICAgICAgICAgIHJlc3VsdCA9IGk7CiAgICAg
ICAgICAgIGdkID0gZGQ7CiAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0
OwogICB9CgogICBwdWJsaWMgc3RhdGljIGNsYXNzIEdldExhdExvblBvaW50c0Zyb21PTUdW
aXNpdG9yIGltcGxlbWVudHMgT01HcmFwaGljVmlzaXRvcgogICB7CiAgICAgIHB1YmxpYyBD
b2xsZWN0aW9uIGxhdGxvbnM7Ly9yZW1lbWJlciB0byBpbml0aWFsaXplCgogICAgICBwdWJs
aWMgdm9pZCB2aXNpdChPTUdyYXBoaWMgb21nKSB7CiAgICAgICAgIGlmIChvbWcuZ2V0UmVu
ZGVyVHlwZSgpICE9IE9NR3JhcGhpYy5SRU5ERVJUWVBFX0xBVExPTgogICAgICAgICAgICAg
ICAmJiBvbWcuZ2V0UmVuZGVyVHlwZSgpICE9IE9NR3JhcGhpYy5SRU5ERVJUWVBFX09GRlNF
VCkKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAob21nIGluc3RhbmNlb2YgTG9j
YXRpb24pIHsKICAgICAgICAgICAgTG9jYXRpb24gbyA9IChMb2NhdGlvbikgb21nOwogICAg
ICAgICAgICBsYXRsb25zLmFkZChuZXcgTGF0TG9uUG9pbnQoby5sYXQsIG8ubG9uKSk7CiAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAob21nIGluc3RhbmNl
b2YgT01Qb2ludCkgewogICAgICAgICAgICBPTVBvaW50IG8gPSAoT01Qb2ludCkgb21nOwog
ICAgICAgICAgICBsYXRsb25zLmFkZChuZXcgTGF0TG9uUG9pbnQoby5nZXRMYXQoKSwgby5n
ZXRMb24oKSkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLy9U
T0RPIHN1cHBvcnQgbW9yZQogICAgICB9CiAgIH0KCiAgIC8qKgogICAgKiBGb3IgcmVjdXJz
aXZlIGhhbmRsaW5nIG9mIE9NR3JhcGhpY3MgKHNpbmNlIHtAbGluayBPTUdyYXBoaWNMaXN0
fSBtaWdodCBiZSBwcmVzZW50KS4KICAgICogVGhpcyB3b3VsZCBiZSBhIHVzZWZ1bCBhZGRp
dGlvbiB0byBPTUdyYXBoaWMsIGFuZC9vciBPTXJhcGhpYyByZXR1cm5pbmcgYW4gaXRlcmF0
b3IuCiAgICAqIFZpc2l0b3IgZGVzaWduIHBhdHRlcm4uCiAgICAqLwogICBwdWJsaWMgc3Rh
dGljIHZvaWQgdmlzaXRPTUdyYXBoaWNzKE9NR3JhcGhpYyBvbWcsIE9NR3JhcGhpY1Zpc2l0
b3IgdmlzaXRvcikgewoKICAgICAgaWYgKG9tZyBpbnN0YW5jZW9mIE9NR3JhcGhpY0xpc3Qp
IHsKICAgICAgICAgT01HcmFwaGljTGlzdCBvbWdsaXN0ID0gKE9NR3JhcGhpY0xpc3QpIG9t
ZzsKICAgICAgICAgTGlzdCBncmFwaGljcyA9IG9tZ2xpc3QuZ2V0VGFyZ2V0cygpOwogICAg
ICAgICBpZiAoZ3JhcGhpY3MgIT0gbnVsbCkKICAgICAgICAgICAgZm9yIChJdGVyYXRvciBp
dGVyID0gZ3JhcGhpY3MuaXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KQogICAgICAgICAg
ICAgICB2aXNpdE9NR3JhcGhpY3MoKE9NR3JhcGhpYykgaXRlci5uZXh0KCksIHZpc2l0b3Ip
OwogICAgICB9IGVsc2UKICAgICAgICAgdmlzaXRvci52aXNpdChvbWcpOwogICB9CgogICBw
dWJsaWMgc3RhdGljIHZvaWQgdmlzaXRPTUdyYXBoaWNzKENvbGxlY3Rpb24gZ3JhcGhpY3Ms
IE9NR3JhcGhpY1Zpc2l0b3IgdmlzaXRvcikgewogICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIg
PSBncmFwaGljcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspCiAgICAgICAgIHZpc2l0
T01HcmFwaGljcygoT01HcmFwaGljKSBpdGVyLm5leHQoKSwgdmlzaXRvcik7CiAgIH0KCiAg
IHB1YmxpYyBpbnRlcmZhY2UgT01HcmFwaGljVmlzaXRvcgogICB7CiAgICAgIHB1YmxpYyB2
b2lkIHZpc2l0KE9NR3JhcGhpYyBvbWcpOwogICB9CgogICAvKioKICAgICogVGhlIE9NR3Jh
cGhpYyBvYmplY3RzIGFkZGVkIG1pZ2h0IGJlIE9NR3JhcGhpY0xpc3RzLgogICAgKiBOb3Rl
OiBEb2Vzbid0IHdvcmsgZm9yIGFsbCBsYXllcnMgeWV0LgogICAgKi8KICAgcHVibGljIHN0
YXRpYyB2b2lkIGFkZE9NR3JhcGhpY3NGcm9tTGF5ZXJzKExheWVyW10gbGF5ZXJzLCBDb2xs
ZWN0aW9uIGMpIHsKICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsYXllcnMubGVuZ3RoOyBp
KyspIHsKICAgICAgICAgTGF5ZXIgbGF5ZXIgPSBsYXllcnNbaV07CiAgICAgICAgIGlmIChs
YXllciBpbnN0YW5jZW9mIE9NR3JhcGhpY0hhbmRsZXJMYXllcikgewogICAgICAgICAgICBP
TUdyYXBoaWNIYW5kbGVyTGF5ZXIgbCA9IChPTUdyYXBoaWNIYW5kbGVyTGF5ZXIpIGxheWVy
OwogICAgICAgICAgICBPTUdyYXBoaWNMaXN0IG9tZ2wgPSBsLmdldExpc3QoKTsKICAgICAg
ICAgICAgaWYgKG9tZ2wgIT0gbnVsbCkgewogICAgICAgICAgICAgICBMaXN0IGdyYXBoaWNz
ID0gb21nbC5nZXRUYXJnZXRzKCk7CiAgICAgICAgICAgICAgIGlmIChncmFwaGljcyAhPSBu
dWxsKQogICAgICAgICAgICAgICAgICBjLmFkZEFsbChncmFwaGljcyk7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChsYXllciBp
bnN0YW5jZW9mIExvY2F0aW9uTGF5ZXIpIHsKICAgICAgICAgICAgTG9jYXRpb25MYXllciBv
ID0gKExvY2F0aW9uTGF5ZXIpIGxheWVyOwogICAgICAgICAgICBWZWN0b3IgZ3JhcGhpY3Mg
PSBvLmdldEdyYXBoaWNMaXN0KCk7CiAgICAgICAgICAgIGlmIChncmFwaGljcyAhPSBudWxs
KQogICAgICAgICAgICAgICBjLmFkZEFsbChncmFwaGljcyk7CiAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAvL1RPRE8gc3VwcG9ydCBtb3JlCiAgICAgIH0KICAg
fQoKICAgLyoqCiAgICAqIERlYnVnIGFuIG9wZW5tYXAgb3BlcmF0aW9uIGJ5IGVuYWJsaW5n
IE9wZW5NYXAncyBkZWJ1Z2FsbCBpZiBjb21tb25zLWxvZ2dpbmcKICAgICogcGVybWl0cyBp
dCBmb3IgdGhlIG9wZXJhdGlvbi4gVW5mb3J0dW5hdGVseSwgT3Blbk1hcCBpc24ndCB1c2lu
ZyBhIHN0YW5kYXJkIGxvZ2dpbmcKICAgICogbGlicmFyeSwgc28gdGhpcyBpcyBhIHdvcmst
YXJvdW5kLgogICAgKiBAcGFyYW0gY2xhenoKICAgICogQHBhcmFtIG1ldGhvZCBvcHRpb25h
bAogICAgKiBAcGFyYW0gaGFuZGxlcgogICAgKi8KLyogICBwdWJsaWMgc3RhdGljIHZvaWQg
ZGVidWcoQ2xhc3MgY2xhenosIFN0cmluZyBtZXRob2QsIFJ1bm5hYmxlIGhhbmRsZXIpIHsK
ICAgICAgYm9vbGVhbiBjdXJyZW50TGV2ZWwgPSBEZWJ1Zy5kZWJ1Z0FsbDsKICAgICAgaWYg
KGN1cnJlbnRMZXZlbCkgey8vc2hvcnQtY2lyY3VpdAogICAgICAgICBoYW5kbGVyLnJ1bigp
OwogICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgU3RyaW5nIGxvZ05hbWUgPSBjbGF6
ei5nZXROYW1lKCk7CiAgICAgIGlmIChtZXRob2QgIT0gbnVsbCkKICAgICAgICAgbG9nTmFt
ZSArPSAiLiIrbWV0aG9kOwogICAgICBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2cobG9n
TmFtZSk7CiAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkKICAgICAgICAgRGVidWcu
ZGVidWdBbGwgPSB0cnVlOwogICAgICB0cnkgewogICAgICAgICBoYW5kbGVyLnJ1bigpOwog
ICAgICB9IGZpbmFsbHkgewogICAgICAgICBEZWJ1Zy5kZWJ1Z0FsbCA9IGZhbHNlOwogICAg
ICB9CiAgIH0qLwp9Cg==

--B_3246529131_1178096--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 14:18:49 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGJInP32632
	for openmap-users-archive; Thu, 16 Nov 2006 14:18:49 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGJImm32629
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 14:18:48 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gkmhe-0007A0-44; Thu, 16 Nov 2006 14:15:14 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGJDhE26767
	for openmap-users-outgoing; Thu, 16 Nov 2006 14:13:43 -0500 (EST)
Message-ID: <455CB841.8080907@navicon.dk>
Date: Thu, 16 Nov 2006 20:13:05 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: Bas Schulte <basschulte@gmail.com>
CC: openmap-users@bbn.com
Subject: Re: [OpenMap Users] BSB maptech layer
References: <423AC251233B02408FA269261D4B774F06774E@ednex511.dsto.defence.gov.au> <446454A7.6010203@navicon.dk> <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com> <455C9D48.1090208@navicon.dk> <34B4021A-F56F-49B5-9AF2-CFE3A35FA467@gmail.com>
In-Reply-To: <34B4021A-F56F-49B5-9AF2-CFE3A35FA467@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Old-X-Spam-Score: -1.1 (-)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAGJDba26759
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Bas Schulte wrote:
> Hi Carsten,
>
> On 16-nov-2006, at 18:18, Carsten Ø. Madsen wrote:
>
>> This should do the trick for you 
>> http://www.navicon.dk/GDALLayer.java.html
>>
>> However, there might still be a problem in the GDAL bindings for 
>> GCPs. Check this
>> http://www.nabble.com/swig-java-dumps-core-tf2507983.html#a6997341 
>> for more info.
>>
>> I think it is easy to fix.
>
> Thanks, that should do for some exploring adventures ;)
>
> Not sure if I appreciate the dependency on a non-java external library 
> though. From the looks of it, reading a bsb file directly isn't that 
> difficult. I may have a stab at that someday.
The GDAL stuff support more than 50 different rasters that is hard to 
keep up with ;> but the JNI stuff is always a hassle. However, if you 
only need BSB just port the BSB C stuff from GDAL to Java. Only problem 
is that it only supports BSB's < 4.

/carsten

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Thu Nov 16 14:38:38 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAGJccO32712
	for openmap-users-archive; Thu, 16 Nov 2006 14:38:38 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAGJccm32709
	for <openmap-users@openmap.bbn.com>; Thu, 16 Nov 2006 14:38:38 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gkn1B-0000Wi-42; Thu, 16 Nov 2006 14:35:25 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAGJYFO27291
	for openmap-users-outgoing; Thu, 16 Nov 2006 14:34:15 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:in-reply-to:references:mime-version:content-type:message-id:cc:content-transfer-encoding:from:subject:date:to:x-mailer;
        b=YVZcY/+o8rnZvWYFpgWmeCn9+jBTB/lXfRmSwaxPa3BSZryB0lAhDK/1ujMHm8pNwOxcAl5jbqxZYgEM/U+w7RsoXUXoe1brQvo6ruFDK7bKSVUvFu2QuAWs/Z7yLXOZo+7dFG5PHSTzTVomLOTAWyB/Heo/N27ey6uU/SAR/AQ=
In-Reply-To: <455CB841.8080907@navicon.dk>
References: <423AC251233B02408FA269261D4B774F06774E@ednex511.dsto.defence.gov.au> <446454A7.6010203@navicon.dk> <0A0D12CF-A0FB-4C07-9566-5FD023A27A85@gmail.com> <455C9D48.1090208@navicon.dk> <34B4021A-F56F-49B5-9AF2-CFE3A35FA467@gmail.com> <455CB841.8080907@navicon.dk>
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-Id: <7F125CEA-13C6-4684-8B5A-55C148A3A19F@gmail.com>
Cc: openmap-users@bbn.com
From: Bas Schulte <basschulte@gmail.com>
Subject: Re: [OpenMap Users] BSB maptech layer
Date: Thu, 16 Nov 2006 20:33:57 +0100
To: "=?ISO-8859-1?Q?Carsten_=D8._Madsen?=" <com@navicon.dk>
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAGJYDa27283
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=RCVD_BY_IP 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


On 16-nov-2006, at 20:13, Carsten Ø. Madsen wrote:

>> Not sure if I appreciate the dependency on a non-java external  
>> library though. From the looks of it, reading a bsb file directly  
>> isn't that difficult. I may have a stab at that someday.
> The GDAL stuff support more than 50 different rasters that is hard  
> to keep up with ;> but the JNI stuff is always a hassle.

Well, I suppose being able to support 50+ formats that are being  
maintained as well is very nice to have for some applications. Would  
hate to have to do that myself ;)

OTOH, personally, I'm interested only in a handfull formats.


> However, if you only need BSB just port the BSB C stuff from GDAL  
> to Java. Only problem is that it only supports BSB's < 4.

< 4 or <= 4? Seems bsb 4 and 5 are the ones used mostly in marine  
charts so that code won't help much then?

Oh, and let me guess: version 4 and 5 are proprietary and patented to  
hell? :)

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Nov 17 01:58:09 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAH6w9n04980
	for openmap-users-archive; Fri, 17 Nov 2006 01:58:09 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAH6w9m04977
	for <openmap-users@openmap.bbn.com>; Fri, 17 Nov 2006 01:58:09 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GkxcA-0005cf-3V; Fri, 17 Nov 2006 01:54:18 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAH6q5S07792
	for openmap-users-outgoing; Fri, 17 Nov 2006 01:52:05 -0500 (EST)
Message-ID: <7389476.post@talk.nabble.com>
Date: Thu, 16 Nov 2006 14:08:05 -0800 (PST)
From: oland <com@navicon.dk>
To: openmap-users@bbn.com
Subject: [OpenMap Users] OpenMap on Nabble
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Nabble-From: com@navicon.dk
Old-X-Spam-Score: -0.2 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.2 required=2.5 tests=DATE_IN_PAST_06_12 
	autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


The openmap mailing list should be available on nabble.com check

http://www.nabble.com/OpenMap-f16955.html

/carsten
-- 
View this message in context: http://www.nabble.com/OpenMap-on-Nabble-tf2648024.html#a7389476
Sent from the OpenMap mailing list archive at Nabble.com.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Nov 17 08:32:35 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAHDWZA08246
	for openmap-users-archive; Fri, 17 Nov 2006 08:32:35 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAHDWZm08243
	for <openmap-users@openmap.bbn.com>; Fri, 17 Nov 2006 08:32:35 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gl3lG-0006ey-3c; Fri, 17 Nov 2006 08:28:06 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAHDQLV12820
	for openmap-users-outgoing; Fri, 17 Nov 2006 08:26:21 -0500 (EST)
Message-ID: <7401312.post@talk.nabble.com>
Date: Fri, 17 Nov 2006 05:26:07 -0800 (PST)
From: oland <com@navicon.dk>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] OpenMap on Nabble
In-Reply-To: <7389476.post@talk.nabble.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Nabble-From: com@navicon.dk
References: <7389476.post@talk.nabble.com>
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


We have imported your archives:
http://www.nabble.com/OpenMap-f16955.html

Tomislav Gountchev
Nabble.com 


oland wrote:
> 
> The openmap mailing list should be available on nabble.com check
> 
> http://www.nabble.com/OpenMap-f16955.html
> 
> /carsten
> 

-- 
View this message in context: http://www.nabble.com/OpenMap-on-Nabble-tf2648024.html#a7401312
Sent from the OpenMap mailing list archive at Nabble.com.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Nov 24 07:27:22 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAOCRMH09738
	for openmap-users-archive; Fri, 24 Nov 2006 07:27:22 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAOCRLA09735
	for <openmap-users@openmap.bbn.com>; Fri, 24 Nov 2006 07:27:21 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gna4Q-0003Dm-3U; Fri, 24 Nov 2006 07:22:18 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAOCI7i12957
	for openmap-users-outgoing; Fri, 24 Nov 2006 07:18:07 -0500 (EST)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgAAAIxuZkXEHh/Fh2dsb2JhbACBXoEkiVkBAQkOKg
Content-class: urn:content-classes:message
Subject: [OpenMap Users] OpenMap Layer (New)
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C70FC0.D76203B9"
Date: Fri, 24 Nov 2006 14:07:04 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Message-ID: <A642800F438B9F4BAF2E739403E1266D074531@online-server01.OnlineIntelligence.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: OpenMap Layer (New)
Thread-Index: AccPwQ3+NQcncbzNTMyZs7nXzwZKOQ==
From: "Rudi Minty" <rudi@onlineintelligence.co.za>
To: <openmap-users@bbn.com>
X-Original-Subject: OpenMap Layer (New)
Old-X-Spam-Score: -0.0 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO,HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------_=_NextPart_001_01C70FC0.D76203B9
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi There,=20

=20

Im new the gis environment and would like some help with regards to the
following :

=20

I'm looking for assistance in displaying a street layer that is in a shp
and/or ssx format ( That has been exported from another GIS application
) . I have been able to display the data ( street lines ) correctly, but
unable to display street names next to the lines. Any help would be
appreciated.

Thanx

Rudi


------_=_NextPart_001_01C70FC0.D76203B9
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1027" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hi There, <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Im new the gis environment and would like some help =
with
regards to the following :<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
class=3Dapple-style-span><font size=3D2 color=3Dblack face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:black'>I&#8217;m =
looking for
assistance in displaying a street layer that is in a shp and/or ssx =
format (
That has been exported from another GIS application ) . I have been able =
to
display the data ( street lines ) correctly, but unable to display =
street names
next to the lines. Any help would be =
appreciated.<o:p></o:p></span></font></span></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
class=3Dapple-style-span><font size=3D2 color=3Dblack face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:black'>Thanx<o:p></o:p>=
</span></font></span></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
class=3Dapple-style-span><font size=3D2 color=3Dblack face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:black'>Rudi</span></fon=
t></span><font
size=3D2 color=3Dblack face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial;
color:black'><o:p></o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C70FC0.D76203B9--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Nov 24 10:38:13 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAOFcDs10741
	for openmap-users-archive; Fri, 24 Nov 2006 10:38:13 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAOFcAA10738
	for <openmap-users@openmap.bbn.com>; Fri, 24 Nov 2006 10:38:11 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gnd3W-0004V7-4l; Fri, 24 Nov 2006 10:33:34 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAOFW3G13935
	for openmap-users-outgoing; Fri, 24 Nov 2006 10:32:03 -0500 (EST)
Mime-Version: 1.0 (Apple Message framework v752.3)
In-Reply-To: <200605082342.DHR98126@nitzan.inter.net.il>
References: <200605082342.DHR98126@nitzan.inter.net.il>
Content-Type: text/plain;
	charset=UTF-8;
	delsp=yes;
	format=flowed
Message-Id: <0456FF52-076B-459A-ABE5-FF182FF690AB@pvv.ntnu.no>
From: Tore Halset <halset@pvv.ntnu.no>
Subject: Re: [OpenMap Users] OpenMap based OpenGIS WMS server
Date: Fri, 24 Nov 2006 16:00:41 +0100
To: openmap questions <openmap-users@bbn.com>
X-Mailer: Apple Mail (2.752.3)
X-OriginalArrivalTime: 24 Nov 2006 15:01:35.0490 (UTC) 
	FILETIME=[6F6A3620:01C70FD9]
X-imss-version: 2.044
X-imss-result: Passed
X-imss-scores: Clean:99.90000 C:2 M:3 S:5 R:5
X-imss-settings: Baseline:2 C:2 M:2 S:2 R:2 (0.1500 0.1500)
Old-X-Spam-Score: -0.5 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAOFW0a13927
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Any news on the wms server?

  - Tore.

On May 9, 2006, at 2:42 , oz wrote:

>
> Hi,
> I almost managed to compile your code with the beta version of  
> openmap that
> I downloaded from the CVS.
>
> The Problem was the big difference between your MapRequestHandler  
> and the
> CVS one (also from the 4.4.2, 4.4.3 versions).
>
> A lot of your functions receives IHttpResponse object e.g. "public  
> void
> handleRequest(String request, IHttpResponse httpResponse)" while in  
> today's
> versions the functions receives OutputStream object.
>
> So what I did is overloaded the cvs MapRequestHandler functions  
> with your
> versions functions. Is it ok?
>
> But still there was a problem with PropUtils class. In your class
> MapServer.java a call to non existing static fields
> "PropUtils.httpRequestPropertySeparators" and
> "PropUtils.httpRequestKeyValueSeparators",
> and non existing method signature parsePropertyList e.g.
> " PropUtils.parsePropertyList(request,
>                 PropUtils.httpRequestPropertySeparators,
>                 PropUtils.httpRequestKeyValueSeparators, true);"
>
> If I comment this line, I've been able to compile it, but of course  
> the
> mapserver.java will not be worth too much...
>
> So I have 2 questions If I may:
>
> 1. Do you have the PropUtils class with those missing fields and  
> methods?
> 2. Can you somehow upload your version of openmap with WMS server  
> inside
> already compiled that you were able at that time to work with it  
> with map
> builder, and a link for me to upload it? It will mean a great deal  
> for me
> and to my team, and save us all a lot of time.
>
> Thank you, and sorry for the trouble, I just don't have anyone else  
> to talk
> to as you are the only one who was able to connect openmap to map  
> builder.
>
> Oz and the location team
>
>
> -----Original Message-----
> From: Vitaly Khait [mailto:khvitaly@gmail.com]
> Sent: Sunday, May 07, 2006 6:19 PM
> To: theone3@gmail.com
> Subject: Fwd: [OpenMap Users] OpenMap based OpenGIS WMS server
>
> ---------- Forwarded message ----------
> From: Piotr KamiÅ„ski <Piotr.Kaminski@ctm.gdynia.pl>
> Date: Mar 29, 2006 2:34 PM
> Subject: [OpenMap Users] OpenMap based OpenGIS WMS server
> To: "openmap-users@bbn.com" <openmap-users@bbn.com>
>
>
> Hi Don,
> Finally I am able to send you our OpenGIS WMS implementation. Enclosed
> you can find zip file comprising of:
>   - wmsservlet directory - should be placed in openmap/src - it  
> contains
> servlet code. We found it more stable to use servlet container instead
> of SimpleHTTPServer. Our servlet was deployed and tested with  
> Tomcat and
> MapBuilder as a client.
>  - wms package - contains all new classes implementing WMS. Package is
> used by servlet. If you want to run WMS using SimpleHTTPServer you can
> use MapServer class.
>  - 'http' and 'image' - a few changes were required here.
>
> The code is not very clear, you can find classes with polish  
> comments or
> without them :-(. Sorry.
> Please feel free to make any modifications. One thing that definitely
> must be fixed is projection handling.
> Now only one is used. Other projections require different handling  
> BBOX
> parameters, we didn't make it yet.
>
> Best regards,
> Piotr
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.5/333 - Release Date:  
> 05/05/2006
>
>
>
> -- 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.5/334 - Release Date:  
> 08/05/2006
>
>
> <wmsservlet.zip>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Nov 27 12:17:47 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kARHHlA04768
	for openmap-users-archive; Mon, 27 Nov 2006 12:17:47 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kARHHkA04765
	for <openmap-users@openmap.bbn.com>; Mon, 27 Nov 2006 12:17:46 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gojz0-000731-6L; Mon, 27 Nov 2006 12:09:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kARH5NG09745
	for openmap-users-outgoing; Mon, 27 Nov 2006 12:05:23 -0500 (EST)
Message-ID: <456B0F36.4010201@io.com>
Date: Mon, 27 Nov 2006 10:15:50 -0600
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Rudi Minty <rudi@onlineintelligence.co.za>,
   OpenMap MList <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] OpenMap Layer (New)
References: <A642800F438B9F4BAF2E739403E1266D074531@online-server01.OnlineIntelligence.local>
In-Reply-To: <A642800F438B9F4BAF2E739403E1266D074531@online-server01.OnlineIntelligence.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
X-Virus-Scanned: ClamAV version 0.88.6, clamav-milter version 0.88.6 on smtp.prismnet.com
X-Virus-Status: Clean
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.prismnet.com id kARGFoGv074907
Old-X-Spam-Score: -1.5 (-)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kARH5Ja09737
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi...
I'm working on making a labeling function in the shape layer.
There are two problems.
1. Filtering major/minor streets names. It get's awfully bussy and it's 
hard to see the labels.
I'm trying to come up with an algo that won't show the label unless the 
length of the label is <= line segment.
Combined with perhaps a enumeration for major/minor street
2. Currently the OMLabel/OMTextLabeler only displays the label Horizontaly.
Need to figure out a way to rotate it..

Anyone that have any comments suggestions feel free to comment.
JR

> Hi There,
>
> Im new the gis environment and would like some help with regards to 
> the following :
>
> I’m looking for assistance in displaying a street layer that is in a 
> shp and/or ssx format ( That has been exported from another GIS 
> application ) . I have been able to display the data ( street lines ) 
> correctly, but unable to display street names next to the lines. Any 
> help would be appreciated.
>
> Thanx
>
> Rudi
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Nov 27 12:47:57 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kARHlvr04863
	for openmap-users-archive; Mon, 27 Nov 2006 12:47:57 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kARHlvA04860
	for <openmap-users@openmap.bbn.com>; Mon, 27 Nov 2006 12:47:57 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GokVl-0000ke-61; Mon, 27 Nov 2006 12:43:21 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kARHgCQ10183
	for openmap-users-outgoing; Mon, 27 Nov 2006 12:42:12 -0500 (EST)
From: "Chase Barrett" <chase.barrett@issinc.com>
To: <openmap-users@bbn.com>
Subject: [OpenMap Users] CDRG vs CADRG
Date: Mon, 27 Nov 2006 10:14:54 -0700
Message-ID: <001101c71247$8e71d030$696e14ac@cbarrettlaptop>
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0012_01C7120C.E212F830"
X-Mailer: Microsoft Office Outlook 11
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
Thread-Index: AccSR44gyaYbgDf3Tpuh9u+R8r7DYw==
Old-X-Spam-Score: -1.4 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

This is a multi-part message in MIME format.

------=_NextPart_000_0012_01C7120C.E212F830
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hello all,

 

Does anyone know if these two acronyms are synonymous?  I have seen the
'CADRG' acronym defined in MIL-PRF-89038 as "Compressed ARC Digitized Raster
Graphics."  Is 'CDRG' just an abbreviated variant, or does it mean something
different?

 

Thanks,

Chase


------=_NextPart_000_0012_01C7120C.E212F830
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:Tahoma;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DTahoma><span =
style=3D'font-size:11.0pt'>Hello
all,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 =
face=3DTahoma><o:p>&nbsp;</o:p></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DTahoma><span =
style=3D'font-size:11.0pt'>Does
anyone know if these two acronyms are synonymous?&nbsp; I have seen the =
&#8216;CADRG&#8217;
acronym defined in MIL-PRF-89038 as &#8220;Compressed ARC Digitized =
Raster
Graphics.&#8221; &nbsp;Is &#8216;CDRG&#8217; just an abbreviated =
variant, or does it
mean something different?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 =
face=3DTahoma><o:p>&nbsp;</o:p></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DTahoma><span =
style=3D'font-size:11.0pt'>Thanks,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DTahoma><span =
style=3D'font-size:11.0pt'>Chase<o:p></o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_000_0012_01C7120C.E212F830--


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Nov 27 13:26:43 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kARIQhI05011
	for openmap-users-archive; Mon, 27 Nov 2006 13:26:43 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kARIQhA05008
	for <openmap-users@openmap.bbn.com>; Mon, 27 Nov 2006 13:26:43 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gol7c-00084b-48; Mon, 27 Nov 2006 13:22:28 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kARILGe10713
	for openmap-users-outgoing; Mon, 27 Nov 2006 13:21:16 -0500 (EST)
Message-ID: <7565007.post@talk.nabble.com>
Date: Mon, 27 Nov 2006 10:20:58 -0800 (PST)
From: oland <com@navicon.dk>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] OpenMap Layer (New)
In-Reply-To: <456B0F36.4010201@io.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Nabble-From: com@navicon.dk
References: <A642800F438B9F4BAF2E739403E1266D074531@online-server01.OnlineIntelligence.local> <456B0F36.4010201@io.com>
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


Hi JR

1. To do this properly you will need to use some decluttering mech. I think.
Take a look at
http://www.nabble.com/Too-many-re-draws-%28again%29-tf2651992.html#a7400339

2. Maybe you can use some of the stuff from OMText. Look for rotationAngle
in OMText.java.

regards
/carsten


JR Andreassen wrote:
> 
> Hi...
> I'm working on making a labeling function in the shape layer.
> There are two problems.
> 1. Filtering major/minor streets names. It get's awfully bussy and it's 
> hard to see the labels.
> I'm trying to come up with an algo that won't show the label unless the 
> length of the label is <= line segment.
> Combined with perhaps a enumeration for major/minor street
> 2. Currently the OMLabel/OMTextLabeler only displays the label
> Horizontaly.
> Need to figure out a way to rotate it..
> 
> Anyone that have any comments suggestions feel free to comment.
> JR
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/OpenMap-Layer-%28New%29-tf2698887.html#a7565007
Sent from the OpenMap mailing list archive at Nabble.com.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Nov 27 15:21:19 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kARKLJ605371
	for openmap-users-archive; Mon, 27 Nov 2006 15:21:19 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kARKLIA05368
	for <openmap-users@openmap.bbn.com>; Mon, 27 Nov 2006 15:21:18 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GomuG-0002pH-41; Mon, 27 Nov 2006 15:16:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kARKF7H11887
	for openmap-users-outgoing; Mon, 27 Nov 2006 15:15:07 -0500 (EST)
Message-ID: <456B4736.50308@io.com>
Date: Mon, 27 Nov 2006 14:14:46 -0600
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: oland <com@navicon.dk>
CC: openmap-users@bbn.com
Subject: Re: [OpenMap Users] OpenMap Layer (New)
References: <A642800F438B9F4BAF2E739403E1266D074531@online-server01.OnlineIntelligence.local> <456B0F36.4010201@io.com> <7565007.post@talk.nabble.com>
In-Reply-To: <7565007.post@talk.nabble.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.88.6, clamav-milter version 0.88.6 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Score: -1.4 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Carsten.
 1.  As far as the decluttering, I was going to leave that to the 
OMLabler/OMTextLabler.
    I looked at the link and the NLPF stuff.
   From your posting i didn't get wether that got integrated.
 2. I did some experiments with the rotation angle, it slows the drawing 
of the objects to a crawl.
 This is partially due to the Shape layer/plugin don't filter out all 
the things that are not in the projection(unless I missed something).
 So, quite a few issues to work out.
   Thanks for the input.
    JR

>Hi JR
>
>1. To do this properly you will need to use some decluttering mech. I think.
>Take a look at
>http://www.nabble.com/Too-many-re-draws-%28again%29-tf2651992.html#a7400339
>
>2. Maybe you can use some of the stuff from OMText. Look for rotationAngle
>in OMText.java.
>
>regards
>/carsten
>
>
>JR Andreassen wrote:
>  
>
>>Hi...
>>I'm working on making a labeling function in the shape layer.
>>There are two problems.
>>1. Filtering major/minor streets names. It get's awfully bussy and it's 
>>hard to see the labels.
>>I'm trying to come up with an algo that won't show the label unless the 
>>length of the label is <= line segment.
>>Combined with perhaps a enumeration for major/minor street
>>2. Currently the OMLabel/OMTextLabeler only displays the label
>>Horizontaly.
>>Need to figure out a way to rotate it..
>>
>>Anyone that have any comments suggestions feel free to comment.
>>JR
>>
>>
>>
>>    
>>
>
>  
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 28 00:29:07 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAS5T7r07281
	for openmap-users-archive; Tue, 28 Nov 2006 00:29:07 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAS5T6A07278
	for <openmap-users@openmap.bbn.com>; Tue, 28 Nov 2006 00:29:06 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GovSG-0005J5-48; Tue, 28 Nov 2006 00:24:28 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAS5MHG16498
	for openmap-users-outgoing; Tue, 28 Nov 2006 00:22:17 -0500 (EST)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgAAAM5Va0XEHh/Eh2dsb2JhbACBZosIAQEJDio
Content-class: urn:content-classes:message
Subject: RE: [OpenMap Users] OpenMap Layer (New)
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Date: Tue, 28 Nov 2006 07:22:46 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Message-ID: <A642800F438B9F4BAF2E739403E1266D07453C@online-server01.OnlineIntelligence.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [OpenMap Users] OpenMap Layer (New)
Thread-Index: AccSQVDxK/NCmxnFTNKsRmrPxcgmjgAa0AhA
From: "Rudi Minty" <rudi@onlineintelligence.co.za>
To: <openmap-users@bbn.com>
X-Original-Subject: RE: [OpenMap Users] OpenMap Layer (New)
X-Scan-Signature: e26b3ec07231eabe993642146bfcb2c6
Old-X-Spam-Score: -0.3 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kAS5MDa16490
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=FORGED_RCVD_HELO 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


I'm not sure how clean this solution is, but it seamed to do the trick
for major minor street name filtering according to the current scale...

I created a class that extended ShapeLayer, then added the following to
the bottom of the prepare() method:





if (list != null && !list.isEmpty()) { 
            System.out.println("List size : " + list.size());
            try {
                DbfInputStream dbfInput = new DbfInputStream(new
FileInputStream(dbfFileName));
                String[] colNames = dbfInput.getColumnNames();
                System.out.println("DBF Column Names : " +
colNames.length);
                for (int x = 0; x < colNames.length; x++) {
                    System.out.println("\t-> " + colNames[x]);
                }
                System.out.println("DBF Row Count : " +
dbfInput.getRowCount());
                ArrayList dbfData = dbfInput.getRecords();
                
                ArrayList dupList = new ArrayList();
                for (int x = 0; x < list.size(); x++) {
                    OMGraphic elem = (OMGraphic) list.getOMGraphicAt(x);

                    
                    int dbfIndex =
((Integer)elem.getAppObject()).intValue();
                    dbfIndex--;
                    
                    int dataIndex = Integer.parseInt(dbfDataCol);
                    String data =
(String)((ArrayList)dbfData.get(dbfIndex)).get(dataIndex);
                    
                    boolean showLabel = true;
                    String postFix = "";
                    
                    OMTextLabeler label = new OMTextLabeler(data +
postFix, OMTextLabeler.JUSTIFY_LEFT);
                    
                    //#### FREEWAYS LAYER
################################
                    if (colNames.length >= 3) {
                        if (colNames[2].equalsIgnoreCase("STREETTYPE"))
{
                            String streetType =
((String)((ArrayList)dbfData.get(dbfIndex)).get(2));
                            data = data + " - *" + streetType + "*";
                            if (scale < 8500000) {
                                
                                if
(streetType.equalsIgnoreCase("Freeway")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Highway")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Route")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Regional")) {
                                    showLabel = true;
                                } else if
(streetType.trim().equalsIgnoreCase("")) {
                                    showLabel = true;
                                } else {
                                    showLabel = false;
                                }
                                
                            } else if (scale < 2000000) {
                                
                                if (streetType.equalsIgnoreCase("Road"))
{
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Way")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Street")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Bypass")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Drive")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Boulevard")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Avenue")) {
                                    showLabel = true;
                                } else if
(streetType.equalsIgnoreCase("Throughway")) {
                                    showLabel = true;
                                } else {
                                    showLabel = false;
                                }
                                
                            } else if (scale < 1000000) { 
                                
                                if
(streetType.equalsIgnoreCase("Interchange")) {
                                    showLabel = true;
                                } else {
                                    showLabel = false;
                                }
                            } else {
                                showLabel = false;
                            }
                        }
                        
                        
                        if (showLabel && !dupList.contains(data)) {
                            dupList.add(data);
                            showLabel = true;
                        } else {
                            showLabel = false;
                        }
                    }
                    // #################################################
                    
                    
                    //#### STREETS LAYER ##############################
                    if (colNames.length >= 2) {
                        if (colNames[1].equalsIgnoreCase("STREET_NAM"))
{
                            label = new OMTextLabeler(data + postFix, 
                                    new java.awt.Font("Arial",
java.awt.Font.PLAIN, 8), 
                                    OMTextLabeler.JUSTIFY_LEFT);
                            if (scale < 20000) {
                                showLabel = true;
                            } else {
                                showLabel = false;
                            }
                        }
                    }
                    // ################################################
                    
                    //#### PROVINCES LAYER ############################
                    if (colNames.length >= 1) {
                        if (colNames[0].equalsIgnoreCase("PROVINCENM"))
{
                            label = new OMTextLabeler(data + postFix, 
                                    new java.awt.Font("Arial",
java.awt.Font.BOLD, 15), 
                                    OMTextLabeler.JUSTIFY_LEFT);
                            if (scale < 10000000) {
                                showLabel = true;
                            } else {
                                showLabel = false;
                            }
                        }
                    }
                    // ################################################
                    
                    if (showLabel) {
                        elem.putAttribute(OMGraphicConstants.LABEL,
label);
                    }
                }




Hi...
I'm working on making a labeling function in the shape layer.
There are two problems.
1. Filtering major/minor streets names. It get's awfully bussy and it's 
hard to see the labels.
I'm trying to come up with an algo that won't show the label unless the 
length of the label is <= line segment.
Combined with perhaps a enumeration for major/minor street
2. Currently the OMLabel/OMTextLabeler only displays the label
Horizontaly.
Need to figure out a way to rotate it..

Anyone that have any comments suggestions feel free to comment.
JR

> Hi There,
>
> Im new the gis environment and would like some help with regards to 
> the following :
>
> I'm looking for assistance in displaying a street layer that is in a 
> shp and/or ssx format ( That has been exported from another GIS 
> application ) . I have been able to display the data ( street lines ) 
> correctly, but unable to display street names next to the lines. Any 
> help would be appreciated.
>
> Thanx
>
> Rudi
>




--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 28 07:07:54 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kASC7sI09406
	for openmap-users-archive; Tue, 28 Nov 2006 07:07:54 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kASC7rA09403
	for <openmap-users@openmap.bbn.com>; Tue, 28 Nov 2006 07:07:53 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gp1g6-0000nL-4k; Tue, 28 Nov 2006 07:03:10 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kASC1GZ19455
	for openmap-users-outgoing; Tue, 28 Nov 2006 07:01:16 -0500 (EST)
From: "Guy Pascarella" <guy.pascarella@issinc.com>
To: "'JR Andreassen'" <janrune@io.com>, "'oland'" <com@navicon.dk>
Cc: <openmap-users@bbn.com>
Subject: RE: [OpenMap Users] OpenMap Layer (New)
Date: Tue, 28 Nov 2006 06:47:38 -0500
Message-ID: <007b01c712e3$014f0320$0532a8c0@Ariadne>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 11
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
Thread-Index: AccSYSqmJ2SJiUr2SNe/lH9N67AnWgAgUwNQ
In-Reply-To: <456B4736.50308@io.com>
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Not only that, but it would be much nicer if instead of just rotating there
was a way for the text to follow the path of the polyline.  There are also
problems on choosing the point of the polyline to calculate the rotation
angle.  For example:

Some St
--\
   \
    \
     \
      \
       \
        \

As opposed to

--\S
   \o
    \m
     \e
      \
       \S
        \t

-Guy


-----Original Message-----
From: owner-openmap-users@bbn.com [mailto:owner-openmap-users@bbn.com] On
Behalf Of JR Andreassen
Sent: Monday, November 27, 2006 3:15 PM
To: oland
Cc: openmap-users@bbn.com
Subject: Re: [OpenMap Users] OpenMap Layer (New)

Hi Carsten.
 1.  As far as the decluttering, I was going to leave that to the
OMLabler/OMTextLabler.
    I looked at the link and the NLPF stuff.
   From your posting i didn't get wether that got integrated.
 2. I did some experiments with the rotation angle, it slows the drawing of
the objects to a crawl.
 This is partially due to the Shape layer/plugin don't filter out all the
things that are not in the projection(unless I missed something).
 So, quite a few issues to work out.
   Thanks for the input.
    JR

>Hi JR
>
>1. To do this properly you will need to use some decluttering mech. I
think.
>Take a look at
>http://www.nabble.com/Too-many-re-draws-%28again%29-tf2651992.html#a740
>0339
>
>2. Maybe you can use some of the stuff from OMText. Look for 
>rotationAngle in OMText.java.
>
>regards
>/carsten
>
>
>JR Andreassen wrote:
>  
>
>>Hi...
>>I'm working on making a labeling function in the shape layer.
>>There are two problems.
>>1. Filtering major/minor streets names. It get's awfully bussy and 
>>it's hard to see the labels.
>>I'm trying to come up with an algo that won't show the label unless 
>>the length of the label is <= line segment.
>>Combined with perhaps a enumeration for major/minor street 2. 
>>Currently the OMLabel/OMTextLabeler only displays the label 
>>Horizontaly.
>>Need to figure out a way to rotate it..
>>
>>Anyone that have any comments suggestions feel free to comment.
>>JR
>>
>>
>>
>>    
>>
>
>  
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe
openmap-users"]

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 28 11:30:24 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kASGUOS10493
	for openmap-users-archive; Tue, 28 Nov 2006 11:30:24 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kASGUNA10490
	for <openmap-users@openmap.bbn.com>; Tue, 28 Nov 2006 11:30:23 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gp5ld-0001kZ-4A; Tue, 28 Nov 2006 11:25:09 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kASGNWt22509
	for openmap-users-outgoing; Tue, 28 Nov 2006 11:23:32 -0500 (EST)
Message-ID: <456C626B.6060804@io.com>
Date: Tue, 28 Nov 2006 10:23:07 -0600
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: OpenMap MList <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] OpenMap Layer (New)
References: <572725A4D5BFDE41922873B5199337D40112DD31@arlington1mail.dac.us>
In-Reply-To: <572725A4D5BFDE41922873B5199337D40112DD31@arlington1mail.dac.us>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.88.6, clamav-milter version 0.88.6 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Score: -1.3 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi....
  Well...
It's been a while since worked on it(a month or two). I've been
retasked until about mid-December.
Where I left it off, I was having problems with the rotations.
It would take me a little time to get you a sample. I was planning on
making it work and posting the
code. the only problem is when.
What I did to get the labels was a bit of a hack.
In 'com.bbn.openmap.dataAccess.shape.DrawingAttributesUtility' constructor
change:
        value = (Integer) columnNames.get(SHAPE_DBF_DESCRIPTION);
//--- Changed by JR-----------------------------
        if (value == null)
                {    value = (Integer) columnNames.get("NAME");}
//--------------------------------
        if (value != null)
            desColumn = value.intValue();
Change the Column Name to whatever you want or change your Column name
to SHAPE_DBF_DESCRIPTION ("Description").
****************************************************************************************************
Then, change:
    protected void configureForRecord(OMGraphic graphic, ArrayList record) {
        if (desColumn != -1) {
            String ret = (String) record.get(desColumn);
//--- Changed by JR-----------------------------
//            if (graphic.getAppObject() == null) {
//                graphic.setAppObject(ret);
//                                OMTextLabeler omtl = new
OMTextLabeler(ret, OMText.JUSTIFY_CENTER);
//            }
//
graphic.putAttribute(OMGraphicConstants.LABEL, new
OMTextLabelerTracing(graphic, ret, OMText.JUSTIFY_CENTER));

graphic.putAttribute(OMGraphicConstants.LABEL, new
com.bbn.openmap.omGraphics.OMTextLabeler(ret, OMText.JUSTIFY_CENTER));
//--- Changed by JR-----------------------------
        }
...

I was hoping to get a request for change through to pass the label the
object eeing labeled so that it could arrange itself.
Anyways,  when I get back to it I'll post the solutions...
    JR

>Hi JR,
>
>Could you explain how you are getting the names to show up? I've been
>using an OMTextLabeler to do this but the location names only show up
>when I mouse over them and disappear when I resize the screen. Could you
>possibly post a small amount of sample code to illustrate how you did
>this?  Thank you very much.
>
>Jeff Storey
>
>-----Original Message-----
>From: owner-openmap-users@bbn.com [mailto:owner-openmap-users@bbn.com]
>On Behalf Of JR Andreassen
>Sent: Monday, November 27, 2006 3:15 PM
>To: oland
>Cc: openmap-users@bbn.com
>Subject: Re: [OpenMap Users] OpenMap Layer (New)
>
>Hi Carsten.
> 1.  As far as the decluttering, I was going to leave that to the 
>OMLabler/OMTextLabler.
>    I looked at the link and the NLPF stuff.
>   From your posting i didn't get wether that got integrated.
> 2. I did some experiments with the rotation angle, it slows the drawing
>
>of the objects to a crawl.
> This is partially due to the Shape layer/plugin don't filter out all 
>the things that are not in the projection(unless I missed something).
> So, quite a few issues to work out.
>   Thanks for the input.
>    JR
>
>  
>
>>Hi JR
>>
>>1. To do this properly you will need to use some decluttering mech. I
>>    
>>
>think.
>  
>
>>Take a look at
>>http://www.nabble.com/Too-many-re-draws-%28again%29-tf2651992.html#a740
>>    
>>
>0339
>  
>
>>2. Maybe you can use some of the stuff from OMText. Look for
>>    
>>
>rotationAngle
>  
>
>>in OMText.java.
>>
>>regards
>>/carsten
>>
>>
>>JR Andreassen wrote:
>> 
>>    
>>
>


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Tue Nov 28 12:57:23 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kASHvNS11082
	for openmap-users-archive; Tue, 28 Nov 2006 12:57:23 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kASHvKA11079
	for <openmap-users@openmap.bbn.com>; Tue, 28 Nov 2006 12:57:20 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gp78r-0004qk-5r; Tue, 28 Nov 2006 12:53:13 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kASHoZB24081
	for openmap-users-outgoing; Tue, 28 Nov 2006 12:50:35 -0500 (EST)
Message-ID: <456C76CF.70806@io.com>
Date: Tue, 28 Nov 2006 11:50:07 -0600
From: JR Andreassen <janrune@io.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.13) Gecko/20060414
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Rudi Minty <rudi@onlineintelligence.co.za>
CC: openmap-users@bbn.com
Subject: Re: [OpenMap Users] OpenMap Layer (New)
References: <A642800F438B9F4BAF2E739403E1266D07453C@online-server01.OnlineIntelligence.local>
In-Reply-To: <A642800F438B9F4BAF2E739403E1266D07453C@online-server01.OnlineIntelligence.local>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.88.6, clamav-milter version 0.88.6 on smtp.prismnet.com
X-Virus-Status: Clean
Old-X-Spam-Score: -1.6 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Rudi...
 This is basically what I'm trying to acomplish.
Though it might work good, I need a bit more generic approach.
How do you deal with massive datasets ?
I have to load all the roads in Texas, which is a 1.5Gig dataset.
So I have to split it up and filter like you do.
The problem is that the data that I get is from different sources and I 
can't edit it.
So what I was planning on doing was :

1.  Create a filter on the dbf to ignore the columns I dont need.
2. Create a generic labler that takes expressions from the property file 
for Label and ScaleFactor
3. Create Generic Labler class that will use the ScaleFactor to filter 
and hide.
4. Do the same for the road segments
   JR

>I'm not sure how clean this solution is, but it seamed to do the trick
>for major minor street name filtering according to the current scale...
>
>I created a class that extended ShapeLayer, then added the following to
>the bottom of the prepare() method:
>
>
>
>
>
>if (list != null && !list.isEmpty()) { 
>            System.out.println("List size : " + list.size());
>            try {
>                DbfInputStream dbfInput = new DbfInputStream(new
>FileInputStream(dbfFileName));
>                String[] colNames = dbfInput.getColumnNames();
>                System.out.println("DBF Column Names : " +
>colNames.length);
>                for (int x = 0; x < colNames.length; x++) {
>                    System.out.println("\t-> " + colNames[x]);
>                }
>                System.out.println("DBF Row Count : " +
>dbfInput.getRowCount());
>                ArrayList dbfData = dbfInput.getRecords();
>                
>                ArrayList dupList = new ArrayList();
>                for (int x = 0; x < list.size(); x++) {
>                    OMGraphic elem = (OMGraphic) list.getOMGraphicAt(x);
>
>                    
>                    int dbfIndex =
>((Integer)elem.getAppObject()).intValue();
>                    dbfIndex--;
>                    
>                    int dataIndex = Integer.parseInt(dbfDataCol);
>                    String data =
>(String)((ArrayList)dbfData.get(dbfIndex)).get(dataIndex);
>                    
>                    boolean showLabel = true;
>                    String postFix = "";
>                    
>                    OMTextLabeler label = new OMTextLabeler(data +
>postFix, OMTextLabeler.JUSTIFY_LEFT);
>                    
>                    //#### FREEWAYS LAYER
>################################
>                    if (colNames.length >= 3) {
>                        if (colNames[2].equalsIgnoreCase("STREETTYPE"))
>{
>                            String streetType =
>((String)((ArrayList)dbfData.get(dbfIndex)).get(2));
>                            data = data + " - *" + streetType + "*";
>                            if (scale < 8500000) {
>                                
>                                if
>(streetType.equalsIgnoreCase("Freeway")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Highway")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Route")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Regional")) {
>                                    showLabel = true;
>                                } else if
>(streetType.trim().equalsIgnoreCase("")) {
>                                    showLabel = true;
>                                } else {
>                                    showLabel = false;
>                                }
>                                
>                            } else if (scale < 2000000) {
>                                
>                                if (streetType.equalsIgnoreCase("Road"))
>{
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Way")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Street")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Bypass")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Drive")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Boulevard")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Avenue")) {
>                                    showLabel = true;
>                                } else if
>(streetType.equalsIgnoreCase("Throughway")) {
>                                    showLabel = true;
>                                } else {
>                                    showLabel = false;
>                                }
>                                
>                            } else if (scale < 1000000) { 
>                                
>                                if
>(streetType.equalsIgnoreCase("Interchange")) {
>                                    showLabel = true;
>                                } else {
>                                    showLabel = false;
>                                }
>                            } else {
>                                showLabel = false;
>                            }
>                        }
>                        
>                        
>                        if (showLabel && !dupList.contains(data)) {
>                            dupList.add(data);
>                            showLabel = true;
>                        } else {
>                            showLabel = false;
>                        }
>                    }
>                    // #################################################
>                    
>                    
>                    //#### STREETS LAYER ##############################
>                    if (colNames.length >= 2) {
>                        if (colNames[1].equalsIgnoreCase("STREET_NAM"))
>{
>                            label = new OMTextLabeler(data + postFix, 
>                                    new java.awt.Font("Arial",
>java.awt.Font.PLAIN, 8), 
>                                    OMTextLabeler.JUSTIFY_LEFT);
>                            if (scale < 20000) {
>                                showLabel = true;
>                            } else {
>                                showLabel = false;
>                            }
>                        }
>                    }
>                    // ################################################
>                    
>                    //#### PROVINCES LAYER ############################
>                    if (colNames.length >= 1) {
>                        if (colNames[0].equalsIgnoreCase("PROVINCENM"))
>{
>                            label = new OMTextLabeler(data + postFix, 
>                                    new java.awt.Font("Arial",
>java.awt.Font.BOLD, 15), 
>                                    OMTextLabeler.JUSTIFY_LEFT);
>                            if (scale < 10000000) {
>                                showLabel = true;
>                            } else {
>                                showLabel = false;
>                            }
>                        }
>                    }
>                    // ################################################
>                    
>                    if (showLabel) {
>                        elem.putAttribute(OMGraphicConstants.LABEL,
>label);
>                    }
>                }
>
>
>
>
>Hi...
>I'm working on making a labeling function in the shape layer.
>There are two problems.
>1. Filtering major/minor streets names. It get's awfully bussy and it's 
>hard to see the labels.
>I'm trying to come up with an algo that won't show the label unless the 
>length of the label is <= line segment.
>Combined with perhaps a enumeration for major/minor street
>2. Currently the OMLabel/OMTextLabeler only displays the label
>Horizontaly.
>Need to figure out a way to rotate it..
>
>Anyone that have any comments suggestions feel free to comment.
>JR
>
>  
>
>>Hi There,
>>
>>Im new the gis environment and would like some help with regards to 
>>the following :
>>
>>I'm looking for assistance in displaying a street layer that is in a 
>>shp and/or ssx format ( That has been exported from another GIS 
>>application ) . I have been able to display the data ( street lines ) 
>>correctly, but unable to display street names next to the lines. Any 
>>help would be appreciated.
>>
>>Thanx
>>
>>Rudi
>>
>>    
>>
>
>
>
>
>--
>[To unsubscribe to this list send an email to "majdart@bbn.com"
>with the following text in the BODY of the message "unsubscribe openmap-users"]
>
>  
>

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 29 11:20:51 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kATGKpF22807
	for openmap-users-archive; Wed, 29 Nov 2006 11:20:51 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kATGKnA22804
	for <openmap-users@openmap.bbn.com>; Wed, 29 Nov 2006 11:20:49 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GpS5a-0007S4-41; Wed, 29 Nov 2006 11:15:14 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kATGCkl09599
	for openmap-users-outgoing; Wed, 29 Nov 2006 11:12:46 -0500 (EST)
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Transfer-Encoding: 7bit
Message-Id: <005BC18C-300D-4333-92BC-19DAD271F2DA@pvv.ntnu.no>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
To: openmap questions <openmap-users@bbn.com>
From: Tore Halset <halset@pvv.ntnu.no>
Subject: [OpenMap Users] WMS server - updated to current cvs++
Date: Wed, 29 Nov 2006 16:55:07 +0100
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hello.

I have taken the latest version from the mail archive and done some  
changes. I realy hope that this could be submitted to OpenMap CVS.  
After my fixes, it works with OpenLayers and uDig.

Changes to existing files that are in CVS:
http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver- 
changes.patch
Files that are not in CVS:
http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver-new- 
files.zip

The changes I have done:
* removed MapServer.java as it had compile problems with PropUtils.  
This is
    only for use with SimpleHTTPServer and not the servlet
* removed java 5 stuff like the enhanched for loop and generics
* use ArrayList instead of Vector and HashMap instead of Hashtable
* changed servlet init to take info from first request instead of init
* openmap.props from /WEB-INF/.. (overridable by servlet subclasses)
* default wms version 1.1.1 for clients that do not specify version nr
* changed ProjectionFactory.getAvailableProjections to work while the  
factory is being changed. this happended using the OpenLayers wms  
client as it sends multiple simultanous requests

To get the wmsservlet to work you need some more things to do:
  * add the following to openmap.properties
#openmap.wms.Title=Sample Title
#openmap.wms.Abstract=Sample Abstract
#openmap.wms.Keyword=a b c
#openmap.wms.projmap.Mercator=
#openmap.wms.projmap.Orthographic=
#openmap.wms.projmap.CADRG=
openmap.wms.projmap.LLXY=EPSG:4326
#openmap.wms.projmap.Gnomonic=

TODO:
* standard build should include wmsservlet
* find aliases for the other projections. esp Mercator.
* include the aliases in Projection interface or some other place in  
the java code.

  - Tore.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 29 11:52:07 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kATGq7H23172
	for openmap-users-archive; Wed, 29 Nov 2006 11:52:07 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kATGq7A23168
	for <openmap-users@openmap.bbn.com>; Wed, 29 Nov 2006 11:52:07 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GpSY9-0006Iq-6A; Wed, 29 Nov 2006 11:44:45 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kATGhZe10201
	for openmap-users-outgoing; Wed, 29 Nov 2006 11:43:35 -0500 (EST)
In-Reply-To: <005BC18C-300D-4333-92BC-19DAD271F2DA@pvv.ntnu.no>
References: <005BC18C-300D-4333-92BC-19DAD271F2DA@pvv.ntnu.no>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <B0794C00-00FB-4A43-A12F-3DD7BE621B57@bbn.com>
Cc: openmap questions <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] WMS server - updated to current cvs++
Date: Wed, 29 Nov 2006 11:43:27 -0500
To: Tore Halset <halset@pvv.ntnu.no>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Tore,

Thanks for providing the changes, I'll incorporate them.  If you  
don't see them wrapped into the repository soon, ping me.

Thanks,

Don


On Nov 29, 2006, at 10:55 AM, Tore Halset wrote:

> Hello.
>
> I have taken the latest version from the mail archive and done some  
> changes. I realy hope that this could be submitted to OpenMap CVS.  
> After my fixes, it works with OpenLayers and uDig.
>
> Changes to existing files that are in CVS:
> http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver- 
> changes.patch
> Files that are not in CVS:
> http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver-new- 
> files.zip
>
> The changes I have done:
> * removed MapServer.java as it had compile problems with PropUtils.  
> This is
>    only for use with SimpleHTTPServer and not the servlet
> * removed java 5 stuff like the enhanched for loop and generics
> * use ArrayList instead of Vector and HashMap instead of Hashtable
> * changed servlet init to take info from first request instead of init
> * openmap.props from /WEB-INF/.. (overridable by servlet subclasses)
> * default wms version 1.1.1 for clients that do not specify version nr
> * changed ProjectionFactory.getAvailableProjections to work while  
> the factory is being changed. this happended using the OpenLayers  
> wms client as it sends multiple simultanous requests
>
> To get the wmsservlet to work you need some more things to do:
>  * add the following to openmap.properties
> #openmap.wms.Title=Sample Title
> #openmap.wms.Abstract=Sample Abstract
> #openmap.wms.Keyword=a b c
> #openmap.wms.projmap.Mercator=
> #openmap.wms.projmap.Orthographic=
> #openmap.wms.projmap.CADRG=
> openmap.wms.projmap.LLXY=EPSG:4326
> #openmap.wms.projmap.Gnomonic=
>
> TODO:
> * standard build should include wmsservlet
> * find aliases for the other projections. esp Mercator.
> * include the aliases in Projection interface or some other place  
> in the java code.
>
>  - Tore.
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 29 18:57:21 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kATNvLI27506
	for openmap-users-archive; Wed, 29 Nov 2006 18:57:21 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kATNvKA27503
	for <openmap-users@openmap.bbn.com>; Wed, 29 Nov 2006 18:57:20 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GpZFM-0004qX-4l; Wed, 29 Nov 2006 18:53:48 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kATNnOL16781
	for openmap-users-outgoing; Wed, 29 Nov 2006 18:49:24 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:message-id:date:from:to:subject:mime-version:content-type;
        b=mDe3wnVWC3ke5Ht8pP+yULggztGJx7zHVyDlVUs1+/kV71Fgv1OSHbCcv7XQPmytp57nepRGr1W3G/1OdX9Pr4PiFXnwP0EkHeLR6iVZ1SR13/gYvdXPWvSC3W+xTmJd8mWMq0IH1jtemVuQ7OVweWz9cJvTDp/IBo3SZtw4GoI=
Message-ID: <6d5968720611291549j4ce7e6cekbfa19ab5ff7fe537@mail.gmail.com>
Date: Wed, 29 Nov 2006 18:49:08 -0500
From: "Shawn Evans" <shawnwevans@gmail.com>
To: openmap-users@bbn.com
Subject: [OpenMap Users] Trying to use Simple Server with RPF data
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_44776_18183125.1164844148872"
Old-X-Spam-Score: 0.3 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.2 required=2.5 tests=HTML_00_10,HTML_MESSAGE,
	LOTS_OF_STUFF,RCVD_BY_IP autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

------=_Part_44776_18183125.1164844148872
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

When I point to the RPF data with the OpenMap application it works.  When I
try to put it into a SimpleServer I get back just a white image.  Attached
is what is being outputted and my properties file.  Is there an example
servlet available as well?

Thanks,

Shawn

Here is the output:

OpenMap.getLayers(): [jrpf]
MRH starting with default projection = Mercator[ world(640,0) radius=
6378137.0 ppm=3272 center(0.0,0.0) scale=2.0488352E8
maxscale=2.0488352E8minscale=
62.0 width=640 height=480]
OpenMap SimpleHttpImageServer: listening on port: 9999 with properties in
D:\openmapsrc\openmap-4.6.3\CADRGServer.properties
SHIS: Handling request -
"/openmap?REQUEST=map&PROJTYPE=CADRG&SCALE=1:1000000&LAT=
46.080143&LON=-109.6119&HEIGHT=887&WIDTH=1280&FORMAT=gif&TRANSPARENT=true&BGCOLOR=00000000
"
SHIS: GET Request received
MRH: parsed request {LAT=46.080143, PROJTYPE=CADRG, FORMAT=gif,
TRANSPARENT=true, HEIGHT=887, BGCOLOR=00000000, LON=-109.6119, REQUEST=map,
WIDTH=1280, SCALE=1}
MRH: Map request...
ImageServerUtils.createOMProjection: projection com.bbn.openmap.proj.CADRG,
with HEIGHT = 887, WIDTH = 1280, lat = 46.080143, lon = -109.6119
ImageServerUtils.createOMProjection: projection color: 0, transparent(true)
Format requested gif
MRH.handleMapRequest: requested layers >> [] out of jrpf
ImageServer: using the new ProjectionPainter interface!  createImage with
layer string array.
ImageServer.createGraphics: graphics is cool
ImageServer: ready to create formatted image.
ImageServer: using full scale image (unscaled).
MRH: have completed image, size 1872
MRH: have type = image/gif

.properties file:

formatters=gif jpeg
gif.class =com.bbn.openmap.image.AcmeGifFormatter
jpeg.class=com.bbn.openmap.image.SunJPEGFormatter

layers=jrpf

startUpLayers=jrpf

### Java RPF properties
jrpf.class=com.bbn.openmap.layer.rpf.RpfLayer
jrpf.prettyName=CADRG
# This property should reflect the paths to the RPF directories
jrpf.paths=M:\mapsnew\RPF
# Number between 0-255: 0 is transparent, 255 is opaque
jrpf.opaque=255
# Number of colors to use on the maps - 16, 32, 216
jrpf.number.colors=216
# Display maps on startup
jrpf.showmaps=true
# Scale images to fit the map scale
jrpf.scaleImages=true
jrpf.coverage=true

------=_Part_44776_18183125.1164844148872
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

When I point to the RPF data with the OpenMap application it works.&nbsp; When I try to put it into a SimpleServer I get back just a white image.&nbsp; Attached is what is being outputted and my properties file.&nbsp; Is there an example servlet available as well?
<br><br>Thanks,<br><br>Shawn<br><br>Here is the output:<br><br>OpenMap.getLayers(): [jrpf]<br>MRH starting with default projection = Mercator[ world(640,0) radius=6378137.0 ppm=3272 center(0.0,0.0) scale=2.0488352E8 maxscale=
2.0488352E8 minscale=62.0 width=640 height=480]<br>OpenMap SimpleHttpImageServer: listening on port: 9999 with properties in D:\openmapsrc\openmap-4.6.3\CADRGServer.properties<br>SHIS: Handling request - &quot;/openmap?REQUEST=map&amp;PROJTYPE=CADRG&amp;SCALE=1:1000000&amp;LAT=
46.080143&amp;LON=-109.6119&amp;HEIGHT=887&amp;WIDTH=1280&amp;FORMAT=gif&amp;TRANSPARENT=true&amp;BGCOLOR=00000000&quot;<br>SHIS: GET Request received<br>MRH: parsed request {LAT=46.080143, PROJTYPE=CADRG, FORMAT=gif, TRANSPARENT=true, HEIGHT=887, BGCOLOR=00000000, LON=-
109.6119, REQUEST=map, WIDTH=1280, SCALE=1}<br>MRH: Map request...<br>ImageServerUtils.createOMProjection: projection com.bbn.openmap.proj.CADRG, with HEIGHT = 887, WIDTH = 1280, lat = 46.080143, lon = -109.6119<br>ImageServerUtils.createOMProjection
: projection color: 0, transparent(true)<br>Format requested gif<br>MRH.handleMapRequest: requested layers &gt;&gt; [] out of jrpf<br>ImageServer: using the new ProjectionPainter interface!&nbsp; createImage with layer string array. 
<br>ImageServer.createGraphics: graphics is cool<br>ImageServer: ready to create formatted image.<br>ImageServer: using full scale image (unscaled).<br>MRH: have completed image, size 1872<br>MRH: have type = image/gif<br>
<br>.properties file:<br><br>formatters=gif jpeg<br>gif.class =com.bbn.openmap.image.AcmeGifFormatter<br>jpeg.class=com.bbn.openmap.image.SunJPEGFormatter<br><br>layers=jrpf<br><br>startUpLayers=jrpf<br><br>### Java RPF properties
<br>jrpf.class=com.bbn.openmap.layer.rpf.RpfLayer<br>jrpf.prettyName=CADRG<br># This property should reflect the paths to the RPF directories<br>jrpf.paths=M:\mapsnew\RPF<br># Number between 0-255: 0 is transparent, 255 is opaque
<br>jrpf.opaque=255<br># Number of colors to use on the maps - 16, 32, 216<br>jrpf.number.colors=216<br># Display maps on startup<br>jrpf.showmaps=true<br># Scale images to fit the map scale<br>jrpf.scaleImages=true<br>jrpf.coverage=true
<br>

------=_Part_44776_18183125.1164844148872--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Wed Nov 29 19:24:34 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kAU0OYH27688
	for openmap-users-archive; Wed, 29 Nov 2006 19:24:34 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kAU0OYA27685
	for <openmap-users@openmap.bbn.com>; Wed, 29 Nov 2006 19:24:34 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GpZh5-00055W-3t; Wed, 29 Nov 2006 19:22:27 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kAU0L6l17055
	for openmap-users-outgoing; Wed, 29 Nov 2006 19:21:06 -0500 (EST)
In-Reply-To: <6d5968720611291549j4ce7e6cekbfa19ab5ff7fe537@mail.gmail.com>
References: <6d5968720611291549j4ce7e6cekbfa19ab5ff7fe537@mail.gmail.com>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <3780BEB5-97FD-4B41-ADE8-EE6F1C3A32F8@bbn.com>
Cc: openmap-users@bbn.com
Content-Transfer-Encoding: 7bit
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] Trying to use Simple Server with RPF data
Date: Wed, 29 Nov 2006 19:20:57 -0500
To: Shawn Evans <shawnwevans@gmail.com>
X-Mailer: Apple Mail (2.752.2)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=LOTS_OF_STUFF 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Shawn,

The problem is the scale of the request, which in the debugging code  
seems to be 1.  The scale needs to be set for the chart type you want  
- for instance, a GNC chart would be 5,000,000, or something close to  
that.  A TLM-50 chart would need a scale of 50000, etc.  You can run  
the RpfProductInfo class to get a better idea of the scale for  
different chart types:

 > java -classpath lib/openmap.jar  
com.bbn.openmap.layer.rpf.RpfProductInfo

Hope this helps,

Don


On Nov 29, 2006, at 6:49 PM, Shawn Evans wrote:

> When I point to the RPF data with the OpenMap application it  
> works.  When I try to put it into a SimpleServer I get back just a  
> white image.  Attached is what is being outputted and my properties  
> file.  Is there an example servlet available as well?
>
> Thanks,
>
> Shawn
>
> Here is the output:
>
> OpenMap.getLayers(): [jrpf]
> MRH starting with default projection = Mercator[ world(640,0)  
> radius=6378137.0 ppm=3272 center(0.0,0.0) scale=2.0488352E8  
> maxscale= 2.0488352E8 minscale=62.0 width=640 height=480]
> OpenMap SimpleHttpImageServer: listening on port: 9999 with  
> properties in D:\openmapsrc\openmap-4.6.3\CADRGServer.properties
> SHIS: Handling request - "/openmap? 
> REQUEST=map&PROJTYPE=CADRG&SCALE=1:1000000&LAT=  
> 46.080143&LON=-109.6119&HEIGHT=887&WIDTH=1280&FORMAT=gif&TRANSPARENT=t 
> rue&BGCOLOR=00000000"
> SHIS: GET Request received
> MRH: parsed request {LAT=46.080143, PROJTYPE=CADRG, FORMAT=gif,  
> TRANSPARENT=true, HEIGHT=887, BGCOLOR=00000000, LON=- 109.6119,  
> REQUEST=map, WIDTH=1280, SCALE=1}
> MRH: Map request...
> ImageServerUtils.createOMProjection: projection  
> com.bbn.openmap.proj.CADRG, with HEIGHT = 887, WIDTH = 1280, lat =  
> 46.080143, lon = -109.6119
> ImageServerUtils.createOMProjection : projection color: 0,  
> transparent(true)
> Format requested gif
> MRH.handleMapRequest: requested layers >> [] out of jrpf
> ImageServer: using the new ProjectionPainter interface!   
> createImage with layer string array.
> ImageServer.createGraphics: graphics is cool
> ImageServer: ready to create formatted image.
> ImageServer: using full scale image (unscaled).
> MRH: have completed image, size 1872
> MRH: have type = image/gif
>
> .properties file:
>
> formatters=gif jpeg
> gif.class =com.bbn.openmap.image.AcmeGifFormatter
> jpeg.class=com.bbn.openmap.image.SunJPEGFormatter
>
> layers=jrpf
>
> startUpLayers=jrpf
>
> ### Java RPF properties
> jrpf.class=com.bbn.openmap.layer.rpf.RpfLayer
> jrpf.prettyName=CADRG
> # This property should reflect the paths to the RPF directories
> jrpf.paths=M:\mapsnew\RPF
> # Number between 0-255: 0 is transparent, 255 is opaque
> jrpf.opaque=255
> # Number of colors to use on the maps - 16, 32, 216
> jrpf.number.colors=216
> # Display maps on startup
> jrpf.showmaps=true
> # Scale images to fit the map scale
> jrpf.scaleImages=true
> jrpf.coverage=true



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Fri Dec  1 13:24:40 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kB1IOee16887
	for openmap-users-archive; Fri, 1 Dec 2006 13:24:40 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kB1IOeA16884
	for <openmap-users@openmap.bbn.com>; Fri, 1 Dec 2006 13:24:40 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GqD00-0001sw-3f; Fri, 01 Dec 2006 13:20:36 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kB1IHlb13553
	for openmap-users-outgoing; Fri, 1 Dec 2006 13:17:47 -0500 (EST)
In-Reply-To: <001101c71247$8e71d030$696e14ac@cbarrettlaptop>
References: <001101c71247$8e71d030$696e14ac@cbarrettlaptop>
Mime-Version: 1.0 (Apple Message framework v752.2)
Content-Type: text/plain; charset=WINDOWS-1252; delsp=yes; format=flowed
Message-Id: <79CC2DF4-9B86-47D1-9E6E-67D66AFEC159@bbn.com>
Cc: <openmap-users@bbn.com>
From: Don Dietrick <dietrick@bbn.com>
Subject: Re: [OpenMap Users] CDRG vs CADRG
Date: Fri, 1 Dec 2006 13:17:39 -0500
To: Chase Barrett <chase.barrett@issinc.com>
X-Mailer: Apple Mail (2.752.2)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kB1IHja13545
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi Chase,

I've seen them used interchangeably, but I always say CADRG.

- Don

On Nov 27, 2006, at 12:14 PM, Chase Barrett wrote:

> Hello all,
>
>
>
> Does anyone know if these two acronyms are synonymous?  I have seen  
> the ‘CADRG’ acronym defined in MIL-PRF-89038 as “Compressed ARC  
> Digitized Raster Graphics.”  Is ‘CDRG’ just an abbreviated variant,  
> or does it mean something different?
>
>
>
> Thanks,
>
> Chase
>
>



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Don Dietrick, dietrick@bbn.com
BBN Technologies, Cambridge, MA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec  4 04:54:16 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kB49sGD24089
	for openmap-users-archive; Mon, 4 Dec 2006 04:54:16 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kB49sGA24086
	for <openmap-users@openmap.bbn.com>; Mon, 4 Dec 2006 04:54:16 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GrARJ-00061c-5H; Mon, 04 Dec 2006 04:48:45 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kB49gc410151
	for openmap-users-outgoing; Mon, 4 Dec 2006 04:42:38 -0500 (EST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:message-id:date:from:to:subject:mime-version:content-type;
        b=U9dlS/ldY8wdYRuyYwNZlkJvkN9qRxO1RERKjPdlKIlDclkhIKfs55Scm9Fvhttoq+/IU5NKz0PTvSgL2MXOKj8svhrgGBJxuDnp32lrFFDm7XstACtRV0YZREE9xTWmIylo8Hfwi4bD2xpCNF7gGJxo42ixidaAyRJekvkxQr0=
Message-ID: <940971c30612040125o3812345au9fae01e61cb71945@mail.gmail.com>
Date: Mon, 4 Dec 2006 10:25:17 +0100
From: "Erling Andreas Fagerlie" <erlingfagerlie@gmail.com>
To: openmap-users@bbn.com
Subject: [OpenMap Users] Check existance of omgraphic
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_32304_10943682.1165224317038"
Old-X-Spam-Score: -1.5 (-)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.5 required=2.5 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP autolearn=no version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

------=_Part_32304_10943682.1165224317038
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi all,

I have an omgraphics-list containting ompolys. I would like to find out if
any of them is inside a rectangle, e.g. a method like this (returning a
boolean);
list_object.omgraphicExists(LatLongPoint ul, LatLongPoint lr).

Can anyone help me with this?

Regards Erling

------=_Part_32304_10943682.1165224317038
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

<div>Hi all,</div>
<div>&nbsp;</div>
<div>I have an omgraphics-list containting ompolys. I would like to find out if any of them is inside a rectangle, e.g. a method like this (returning a boolean);</div>
<div>list_object.omgraphicExists(LatLongPoint ul, LatLongPoint lr).</div>
<div>&nbsp;</div>
<div>Can anyone help me with this?</div>
<div>&nbsp;</div>
<div>Regards Erling&nbsp;</div>

------=_Part_32304_10943682.1165224317038--

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec  4 04:59:33 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kB49xXe24124
	for openmap-users-archive; Mon, 4 Dec 2006 04:59:33 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kB49xXA24121
	for <openmap-users@openmap.bbn.com>; Mon, 4 Dec 2006 04:59:33 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GrAZP-00066g-5k; Mon, 04 Dec 2006 04:57:07 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kB49trb10291
	for openmap-users-outgoing; Mon, 4 Dec 2006 04:55:53 -0500 (EST)
Message-ID: <7673199.post@talk.nabble.com>
Date: Mon, 4 Dec 2006 01:55:39 -0800 (PST)
From: oland <com@navicon.dk>
To: openmap-users@bbn.com
Subject: Re: [OpenMap Users] Check existance of omgraphic
In-Reply-To: <940971c30612040125o3812345au9fae01e61cb71945@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Nabble-From: com@navicon.dk
References: <940971c30612040125o3812345au9fae01e61cb71945@mail.gmail.com>
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk


Hi Erling

Check this thread

http://www.nabble.com/OMPoly-and-getShape-woes-tf2652034.html#a7400438

regards
/carsten
-- 
View this message in context: http://www.nabble.com/Check-existance-of-omgraphic-tf2750193.html#a7673199
Sent from the OpenMap mailing list archive at Nabble.com.

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec  4 15:11:49 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kB4KBnQ29837
	for openmap-users-archive; Mon, 4 Dec 2006 15:11:49 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kB4KBkA29816
	for <openmap-users@openmap.bbn.com>; Mon, 4 Dec 2006 15:11:46 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GrK2F-0003mu-42; Mon, 04 Dec 2006 15:03:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kB4K1HR17403
	for openmap-users-outgoing; Mon, 4 Dec 2006 15:01:17 -0500 (EST)
In-Reply-To: <B0794C00-00FB-4A43-A12F-3DD7BE621B57@bbn.com>
References: <005BC18C-300D-4333-92BC-19DAD271F2DA@pvv.ntnu.no> <B0794C00-00FB-4A43-A12F-3DD7BE621B57@bbn.com>
Mime-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <FCD7E963-0525-441C-90D6-B3059F4B423D@pvv.ntnu.no>
Cc: openmap questions <openmap-users@bbn.com>
Content-Transfer-Encoding: 7bit
From: Tore Halset <halset@pvv.ntnu.no>
Subject: Re: [OpenMap Users] WMS server - updated to current cvs++
Date: Mon, 4 Dec 2006 21:01:10 +0100
To: Don Dietrick <dietrick@bbn.com>
X-Mailer: Apple Mail (2.752.3)
Old-X-Spam-Score: -0.6 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

ping :)

  - Tore.

On Nov 29, 2006, at 17:43, Don Dietrick wrote:

> Hi Tore,
>
> Thanks for providing the changes, I'll incorporate them.  If you  
> don't see them wrapped into the repository soon, ping me.
>
> Thanks,
>
> Don
>
>
> On Nov 29, 2006, at 10:55 AM, Tore Halset wrote:
>
>> Hello.
>>
>> I have taken the latest version from the mail archive and done  
>> some changes. I realy hope that this could be submitted to OpenMap  
>> CVS. After my fixes, it works with OpenLayers and uDig.
>>
>> Changes to existing files that are in CVS:
>> http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver- 
>> changes.patch
>> Files that are not in CVS:
>> http://www.pvv.ntnu.no/~halset/tmp/20061128-openmap-wmsserver-new- 
>> files.zip
>>
>> The changes I have done:
>> * removed MapServer.java as it had compile problems with  
>> PropUtils. This is
>>    only for use with SimpleHTTPServer and not the servlet
>> * removed java 5 stuff like the enhanched for loop and generics
>> * use ArrayList instead of Vector and HashMap instead of Hashtable
>> * changed servlet init to take info from first request instead of  
>> init
>> * openmap.props from /WEB-INF/.. (overridable by servlet subclasses)
>> * default wms version 1.1.1 for clients that do not specify  
>> version nr
>> * changed ProjectionFactory.getAvailableProjections to work while  
>> the factory is being changed. this happended using the OpenLayers  
>> wms client as it sends multiple simultanous requests
>>
>> To get the wmsservlet to work you need some more things to do:
>>  * add the following to openmap.properties
>> #openmap.wms.Title=Sample Title
>> #openmap.wms.Abstract=Sample Abstract
>> #openmap.wms.Keyword=a b c
>> #openmap.wms.projmap.Mercator=
>> #openmap.wms.projmap.Orthographic=
>> #openmap.wms.projmap.CADRG=
>> openmap.wms.projmap.LLXY=EPSG:4326
>> #openmap.wms.projmap.Gnomonic=
>>
>> TODO:
>> * standard build should include wmsservlet
>> * find aliases for the other projections. esp Mercator.
>> * include the aliases in Projection interface or some other place  
>> in the java code.
>>
>>  - Tore.
>>
>> --
>> [To unsubscribe to this list send an email to "majdart@bbn.com"
>> with the following text in the BODY of the message "unsubscribe  
>> openmap-users"]
>
>
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Don Dietrick, dietrick@bbn.com
> BBN Technologies, Cambridge, MA
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe  
> openmap-users"]

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec 11 09:26:58 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kBBEQwL05773
	for openmap-users-archive; Mon, 11 Dec 2006 09:26:58 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kBBEQvA05770
	for <openmap-users@openmap.bbn.com>; Mon, 11 Dec 2006 09:26:57 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GtlxR-0001yd-6K; Mon, 11 Dec 2006 09:16:42 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kBBECLq10742
	for openmap-users-outgoing; Mon, 11 Dec 2006 09:12:21 -0500 (EST)
Date: Mon, 11 Dec 2006 14:50:54 +0100
Message-Id: <JA43SU$45091C842F0DAF02963A18D2AFABED4B@laposte.net>
Subject: [OpenMap Users] Several ways to close an OMPoly ?
MIME-Version: 1.0
X-Sensitivity: 3
Content-Type: text/plain; charset=iso-8859-1
From: "Camille Blondiaux" <camille.blondiaux@laposte.net>
To: "openmap-users" <openmap-users@bbn.com>
X-XaM3-API-Version: 4.1 (B103)
X-SenderIP: 127.0.0.1
Old-X-Spam-Score: 0.7 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kBBECJa10734
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Hi !

I'm new to OpenMap, so my question may seem an easy one to
answer...
An OMGraphicHandlerLayer of my soft is receiving from a server
a list of float llp = [x1, y1, x2, y2...] that is used to draw
an OMPoly on the screen.

For the moment, I do 

omg = new OMPoly(llp, OMGraphic.DECIMAL_DEGREES,
OMGraphic.LINETYPE_GREATCIRCLE);

But my poly's not closed and I'd like it to be ! So I can add
the first point at the end of the llp tab, but its behavior is
bizarre when I add a point (with the drawing tool) above the
duplicated point !

Which other way could I use to close the Poly ? I saw a
geometryClosed field, but how to modify it ? 

Or should I do by an EditableOMPoly (which was no succesfull
the way I tried)

thanks in advance

Kmouille

Accédez au courrier électronique de La Poste 
sur www.laposte.net ou sur 3615 LAPOSTENET (0,34€ TTC /mn) 
1 Giga de stockage gratuit – Antispam et antivirus intégrés 



--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec 11 10:24:13 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kBBFODj06426
	for openmap-users-archive; Mon, 11 Dec 2006 10:24:13 -0500
Received: from mx11.bbn.com (mx11.bbn.com [128.33.0.80])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kBBFODA06423
	for <openmap-users@openmap.bbn.com>; Mon, 11 Dec 2006 10:24:13 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx11.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1GtmuJ-0005dt-4n; Mon, 11 Dec 2006 10:17:31 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kBBFFO711451
	for openmap-users-outgoing; Mon, 11 Dec 2006 10:15:24 -0500 (EST)
Message-ID: <457D75AF.1070302@navicon.dk>
Date: Mon, 11 Dec 2006 16:13:51 +0100
From: =?windows-1252?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: Camille Blondiaux <camille.blondiaux@laposte.net>,
   openmap-users <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Several ways to close an OMPoly ?
References: <JA43SU$45091C842F0DAF02963A18D2AFABED4B@laposte.net>
In-Reply-To: <JA43SU$45091C842F0DAF02963A18D2AFABED4B@laposte.net>
Content-Type: text/plain; charset=windows-1252; format=flowed
Old-X-Spam-Score: -0.6 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kBBFFMa11443
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

Use setIsPolygon?

http://www.openmap.net/doc/api/com/bbn/openmap/omGraphics/OMPoly.html#setIsPolygon(boolean)

regards
/carsten

Camille Blondiaux wrote:
> Hi !
>
> I'm new to OpenMap, so my question may seem an easy one to
> answer...
> An OMGraphicHandlerLayer of my soft is receiving from a server
> a list of float llp = [x1, y1, x2, y2...] that is used to draw
> an OMPoly on the screen.
>
> For the moment, I do 
>
> omg = new OMPoly(llp, OMGraphic.DECIMAL_DEGREES,
> OMGraphic.LINETYPE_GREATCIRCLE);
>
> But my poly's not closed and I'd like it to be ! So I can add
> the first point at the end of the llp tab, but its behavior is
> bizarre when I add a point (with the drawing tool) above the
> duplicated point !
>
> Which other way could I use to close the Poly ? I saw a
> geometryClosed field, but how to modify it ? 
>
> Or should I do by an EditableOMPoly (which was no succesfull
> the way I tried)
>
> thanks in advance
>
> Kmouille
>
> Accédez au courrier électronique de La Poste 
> sur www.laposte.net ou sur 3615 LAPOSTENET (0,34€ TTC /mn) 
> 1 Giga de stockage gratuit – Antispam et antivirus intégrés 
>
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe openmap-users"]
>   

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec 11 10:32:38 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kBBFWcK06538
	for openmap-users-archive; Mon, 11 Dec 2006 10:32:38 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kBBFWcA06535
	for <openmap-users@openmap.bbn.com>; Mon, 11 Dec 2006 10:32:38 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gtn2H-0002tq-3s; Mon, 11 Dec 2006 10:25:45 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kBBFOZ811525
	for openmap-users-outgoing; Mon, 11 Dec 2006 10:24:35 -0500 (EST)
Date: Mon, 11 Dec 2006 16:24:00 +0100
Message-Id: <JA4840$0F94BE765F43D9C304EA08AF74437059@laposte.net>
Subject: Re: [OpenMap Users] Several ways to close an OMPoly ?
MIME-Version: 1.0
X-Sensitivity: 3
Content-Type: text/plain; charset=iso-8859-1
From: "Camille Blondiaux" <camille.blondiaux@laposte.net>
To: "com" <com@navicon.dk>
Cc: "openmap-users" <openmap-users@bbn.com>
X-XaM3-API-Version: 4.1 (B103)
X-SenderIP: 127.0.0.1
Old-X-Spam-Score: -0.6 (/)
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by stout.bbn.com id kBBFOWa11517
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=2.5 tests=none autolearn=unavailable 
	version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

I tried, and it worked for the first display, but the poly
reopens as I click on it to edit and stays opened after
editing if I do not click the "link first to last node"
button... strange...

Kmouille

> Use setIsPolygon?
> 
>
http://www.openmap.net/doc/api/com/bbn/openmap/omGraphics/OMPoly.html#setIsPolygon(boolean)
> 
> regards
> /carsten
> 
> Camille Blondiaux wrote:
> > Hi !
> >
> > I'm new to OpenMap, so my question may seem an easy one to
> > answer...
> > An OMGraphicHandlerLayer of my soft is receiving from a server
> > a list of float llp = [x1, y1, x2, y2...] that is used to draw
> > an OMPoly on the screen.
> >
> > For the moment, I do 
> >
> > omg = new OMPoly(llp, OMGraphic.DECIMAL_DEGREES,
> > OMGraphic.LINETYPE_GREATCIRCLE);
> >
> > But my poly's not closed and I'd like it to be ! So I can add
> > the first point at the end of the llp tab, but its behavior is
> > bizarre when I add a point (with the drawing tool) above the
> > duplicated point !
> >
> > Which other way could I use to close the Poly ? I saw a
> > geometryClosed field, but how to modify it ? 
> >
> > Or should I do by an EditableOMPoly (which was no succesfull
> > the way I tried)
> >
> > thanks in advance
> >
> > Kmouille
> >
> > Accédez au courrier électronique de La Poste 
> > sur www.laposte.net ou sur 3615 LAPOSTENET (0,34€ TTC /mn) 
> > 1 Giga de stockage gratuit - Antispam et antivirus intégrés 
> >
> >
> >
> > --
> > [To unsubscribe to this list send an email to
"majdart@bbn.com"
> > with the following text in the BODY of the message
"unsubscribe openmap-users"]
> >   
> 
> 

Accédez au courrier électronique de La Poste 
sur www.laposte.net ou sur 3615 LAPOSTENET (0,34€ TTC /mn) 
1 Giga de stockage gratuit – Antispam et antivirus intégrés 



--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]


From mail Mon Dec 11 10:37:36 2006
Return-Path: <mail>
Received: (from mail@localhost)
	by openmap.bbn.com (8.11.6/8.11.6) id kBBFbac06594
	for openmap-users-archive; Mon, 11 Dec 2006 10:37:36 -0500
Received: from mx12.bbn.com (mx12.bbn.com [128.33.0.81])
	by openmap.bbn.com (8.11.6/8.11.6) with ESMTP id kBBFbaA06591
	for <openmap-users@openmap.bbn.com>; Mon, 11 Dec 2006 10:37:36 -0500
Received: from stout.bbn.com ([128.89.72.17])
	by mx12.bbn.com with esmtp (Exim 4.60)
	(envelope-from <owner-openmap-users@stout.bbn.com>)
	id 1Gtn9L-00032i-6F; Mon, 11 Dec 2006 10:33:04 -0500
Received: (from majdart@localhost)
	by stout.bbn.com (8.11.4/8.11.4) id kBBFWBs11966
	for openmap-users-outgoing; Mon, 11 Dec 2006 10:32:11 -0500 (EST)
Message-ID: <457D79BD.5020109@navicon.dk>
Date: Mon, 11 Dec 2006 16:31:09 +0100
From: =?ISO-8859-1?Q?=22Carsten_=D8=2E_Madsen=22?= <com@navicon.dk>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060804 Fedora/1.0.4-0.4.2.fc4 SeaMonkey/1.0.4
MIME-Version: 1.0
To: Camille Blondiaux <camille.blondiaux@laposte.net>,
   openmap-users <openmap-users@bbn.com>
Subject: Re: [OpenMap Users] Several ways to close an OMPoly ?
References: <JA4840$0F94BE765F43D9C304EA08AF74437059@laposte.net>
In-Reply-To: <JA4840$0F94BE765F43D9C304EA08AF74437059@laposte.net>
Content-Type: multipart/alternative;
 boundary="------------070703080809020407040908"
Old-X-Spam-Score: -0.8 (/)
X-Scanned-By: Spam Assassin
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on stout
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=2.5 tests=HTML_40_50,HTML_MESSAGE 
	autolearn=unavailable version=3.0.4
Sender: owner-openmap-users@bbn.com
Precedence: bulk

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

Ok, extend the ompolyloader class to make the polys enclosed and use=20
that loader to manage the polys

public class MyPolyLoader extends OMPolyLoader {

    public MyPolyLoader() {
    }

    public EditableOMGraphic getEditableGraphic(String classname,
            GraphicAttributes ga) {
        EditableOMPoly result =3D (EditableOMPoly) super.getEditableGraph=
ic(
                classname ga);
        if (result !=3D null) {
            result.setEnclosed(true);
        }
        return result;
    }

}

maybe you will have to override more stuff...


regards
/carsten

Camille Blondiaux wrote:
> I tried, and it worked for the first display, but the poly
> reopens as I click on it to edit and stays opened after
> editing if I do not click the "link first to last node"
> button... strange...
>
> Kmouille
>
>  =20
>> Use setIsPolygon?
>>
>>
>>    =20
> http://www.openmap.net/doc/api/com/bbn/openmap/omGraphics/OMPoly.html#s=
etIsPolygon(boolean)
>  =20
>> regards
>> /carsten
>>
>> Camille Blondiaux wrote:
>>    =20
>>> Hi !
>>>
>>> I'm new to OpenMap, so my question may seem an easy one to
>>> answer...
>>> An OMGraphicHandlerLayer of my soft is receiving from a server
>>> a list of float llp =3D [x1, y1, x2, y2...] that is used to draw
>>> an OMPoly on the screen.
>>>
>>> For the moment, I do=20
>>>
>>> omg =3D new OMPoly(llp, OMGraphic.DECIMAL_DEGREES,
>>> OMGraphic.LINETYPE_GREATCIRCLE);
>>>
>>> But my poly's not closed and I'd like it to be ! So I can add
>>> the first point at the end of the llp tab, but its behavior is
>>> bizarre when I add a point (with the drawing tool) above the
>>> duplicated point !
>>>
>>> Which other way could I use to close the Poly ? I saw a
>>> geometryClosed field, but how to modify it ?=20
>>>
>>> Or should I do by an EditableOMPoly (which was no succesfull
>>> the way I tried)
>>>
>>> thanks in advance
>>>
>>> Kmouille
>>>
>>> Acc=E9dez au courrier =E9lectronique de La Poste=20
>>> sur www.laposte.net ou sur 3615 LAPOSTENET (0,34EUR TTC /mn)=20
>>> 1 Giga de stockage gratuit - Antispam et antivirus int=E9gr=E9s=20
>>>
>>>
>>>
>>> --
>>> [To unsubscribe to this list send an email to
>>>      =20
> "majdart@bbn.com"
>  =20
>>> with the following text in the BODY of the message
>>>      =20
> "unsubscribe openmap-users"]
>  =20
>>>  =20
>>>      =20
>>    =20
>
> Acc=E9dez au courrier =E9lectronique de La Poste=20
> sur www.laposte.net ou sur 3615 LAPOSTENET (0,34EUR TTC /mn)=20
> 1 Giga de stockage gratuit -- Antispam et antivirus int=E9gr=E9s=20
>
>
>
> --
> [To unsubscribe to this list send an email to "majdart@bbn.com"
> with the following text in the BODY of the message "unsubscribe openmap=
-users"]
>  =20


--------------070703080809020407040908
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">
Ok, extend the ompolyloader class to make the polys enclosed and use
that loader to manage the polys<br>
<br>
<tt>public class MyPolyLoader extends OMPolyLoader {<br>
<br>
&nbsp;&nbsp;&nbsp; public MyPolyLoader() {<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; public EditableOMGraphic getEditableGraphic(String classname,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GraphicAttributes ga) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EditableOMPoly result = (EditableOMPoly)
super.getEditableGraphic(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classname ga);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.setEnclosed(true);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
}<br>
</tt><br>
maybe you will have to override more stuff...<br>
<br>
<br>
regards<br>
/carsten<br>
<br>
Camille Blondiaux wrote:
<blockquote
 cite="midJA4840$0F94BE765F43D9C304EA08AF7
