From: Subject: View Source: JavaScript Date Object Techniques Date: Wed, 27 Mar 2002 15:03:40 +0100 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0050_01C1D5A0.945533E0"; type="text/html" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 This is a multi-part message in MIME format. ------=_NextPart_000_0050_01C1D5A0.945533E0 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://developer.netscape.com/viewsource/goodman_dateobject.html View Source: JavaScript Date Object = Techniques

3D"View3D"JavaScript

JAVASCRIPT DATE OBJECT TECHNIQUES

by Danny=20 Goodman


Send=20 comments and questions about this article to View = Source.=20

Readers who belonged to the Macintosh community about ten years ago = may=20 remember my personal information management (PIM) commercial product, = called=20 Focal Point. One of the modules of this PIM was the ever-popular = appointment=20 calendar. Perhaps the most valuable lessons I learned from creating and=20 upgrading that application were the intricacies of programming dates and = time,=20 both the internal algorithms and user interfaces designed for a = worldwide=20 audience.

This experience makes me, I suppose, hypersensitive to the = implementation of=20 date and time in a programming environment, such as JavaScript. Not that = I have=20 any intention of implementing an appointment calendar in JavaScript. = (Except as=20 a client-side assistant to a substantial server-based program, the = language is=20 not suited to this kind of application.) But given the powers of the = Date object=20 in JavaScript in Navigator 3.0, I'm surprised by the lack of date- and=20 time-oriented scripting in Web pages.

The purpose of this article is to explain the concepts behind = JavaScript's=20 Date object and describe a few practical implications of this object in = both=20 plain and forms-based HTML pages. Along the way, I'll also point out = some of the=20 pitfalls and bugs you'll need to work around, including a few recent=20 discoveries.

Note: There were many global and platform-specific structural = changes=20 to the Date object between Navigator versions 2 and 3. This article = discusses=20 the Date object only as implemented in Navigator 3. Communicator will = likely=20 follow the Navigator 3 mold as well as deal with the gremlins described = later in=20 this article.

WHERE THE DATE = OBJECT COMES FROM=20

Many scripters have seen the JavaScript object roadmap from my book=20 (available in Adobe = Acrobat=20 format as a free FTP=20 download). In this roadmap, the Date object stands apart from the=20 window-document object hierarchy, because a Date is a computational = object,=20 rather than one that reflects "physical" elements in an HTML page. The = object=20 has no fewer than 22 methods that give the scripter access to every time = and=20 date component of the object.

The idea for the Date object and its methods didn't fall out of the = sky as a=20 feature unique to JavaScript. No, the syntax is borrowed directly from = Java 1.0.=20 In fact, once you master the JavaScript Date object, you will have also = mastered=20 95 percent of Java's Date object. (Note: Java 1.1 has enhanced date = handling=20 powers with a new object called Calendar.)

CREATING A BASIC = DATE OBJECT

Its Java heritage explains why using the Date object requires what in = Java is=20 a very common occurrence: creating an instance = of--instantiating--the=20 object before any statement can examine, change, or perform = operations on=20 a date. For example, to create a default Date object (whose date is = today's date=20 as indicated by the client system's internal clock), the syntax is the=20 following:

var today =3D new Date()

When no parameters accompany the Date() object constructor,=20 JavaScript automatically reads the client's internal clock setting, and = creates=20 the object with the date and time at the instant at which the object is = created.=20 Therefore, after executing the above statement, the arbitrarily-named=20 variable today is a reference to a Date object in memory that = holds the=20 current date and time. In other words, the object takes a snapshot of = the=20 client's system clock; the content of this date/time "photo" doesn't = change=20 unless a script statement invokes one of the Date object's methods that = modifies=20 the object.

There are several more interesting ways to create a Date object -- = all of=20 which entail assigning a specific date and time to the object other than = the=20 current moment. For the sake of completeness the table "Date Object=20 Constructors," shows all Date object constructor formats for assigning = specific=20 dates.

Date Object Constructors

Syntax Example
new Date("Month dd, yyyy hh:mm:ss") new Date("September 11, 1997 08:30:00")
new Date("Month dd, yyyy") new Date("September 11, 1997")
new Date(yy,mm,dd,hh,mm,ss) new Date(97,8,11,8,30,00)
new Date(yy,mm,dd) new Date(97,8,11)
new Date(GMTmilliseconds) new Date(873991800000)

To fully appreciate how these Date object constructors work, let's = put the=20 Date object under a microscope to see what it's doing internally.

INSIDE THE DATE = OBJECT

When you create a Date object with the current time and date, there = is a lot=20 more going on inside JavaScript than you may be aware of. If you have = trouble=20 figuring out what time it is in a neighboring time zone, then the Date = object's=20 innards are going to make your head hurt.

To truly understand all of this, you need a working knowledge of the=20 recognized world time reference point, which runs through Greenwich, = England.=20 Two common names for this time zone are Greenwich Mean Time (GMT) and=20 Coordinated Universal Time (UTC). Although there are tiny differences = between=20 the two (the difference between atomic clocks and astronomical = observations),=20 for our purposes, we can regard them as equals. If you are interested in = how=20 these terms came about, excellent on-line sources include The Time Service = Department=20 of the U.S. Naval Observatory and Greenwich = 2000.

The basic point to understand about GMT and time zones around the = world is=20 that if you know the time at GMT, you can determine the local time = anywhere on=20 the planet, because each time zone is measured relative to GMT, by = international=20 convention. When the sun is directly overhead the GMT zone, for example, = all=20 time zones to the east (through Russia, Asia, Australia, and part way = across the=20 Pacific Ocean until you reach the International Date Line) are later in = the day=20 than noon; the noon-day sun has already been there, done that. = Conversely, all=20 time zones to the west (across the Atlantic, through North and South = America,=20 and onward across the Pacific up to the date line) are earlier in the = day, and=20 have lunchtime to look forward to. The figure "World Time Relative to = Noon GMT"=20 represents a snapshot of the world's time at exactly noon GMT.=20

World Time Relative to Noon GMT

To eliminate the vaguaries of the world's time zones (some of which = shift=20 during part of the year for the equivalent of America's Daylight Saving = Time),=20 the JavaScript (and Java) Date object stores its information as GMT = time. More=20 precisely, the date value is stored as the number of milliseconds before = (positive) or after (negative) zero hours GMT on January 1, 1970.

DATE OBJECT VALUES

If you have played at all with the Date object, you may be quite = confused=20 about why GMT has to come into the picture at all. After all, if you sit = in=20 front of a Windows-based PC at Netscape's world headquarters in Mountain = View,=20 California, and get the value of the current date and time, you see a = value that=20 looks like this:

Thu Mar 20 23:09:48 Pacific Standard Time 1997

On a Mac OS computer in the same location, the value looks like = this:

Thu Mar 20 23:09:48 1997

Take a look at the example in "Try=20 it on Your Client" to see how it looks in your system. What you see = there,=20 however, is the Date object being automatically converted to your = client's time=20 zone--even though it's the GMT date and time that's stored in the Date = object.=20 Also, when you use the Date object methods that get and set components = of a Date=20 object (year, month, date, day of the week, hour, minute, and second), = those=20 values are reflected in your client's local time, not GMT. In fact, the = only=20 values that reveal the Date object's GMT date are the millisecond = measurement=20 (accessible via the getTime() method) and the GMT string = conversion=20 (via the toGMTString() method).


Try It On Your Client

See how the Date object reveals its value to your client = software:

Here's a string representation of the Date object:


All of these conversions to local time, of course, rely on the proper = setting=20 of the client computer's clock and relevant Control Panel settings about = the=20 time zone of the computer's physical location. In a sense, this is a = wild-card=20 issue; as a scripter, you can never be sure that the client's clock and = time=20 zone are set correctly.

DATE OBJECT METHODS AND VALUES

Given the potential confusion between GMT and local date and time = values, I=20 think it's a good idea to look at some specific values of a Date = object's=20 components and see precisely which values are GMT-based and which are = local. The=20 table "Date=20 Object Methods" shows all Date object methods and examples of = their=20 values. (For more details on the syntax, see the Date object discussion = in the=20 "Navigator Handbook JavaScript Guide.") In the Method = column of=20 the table, dateObj is a placeholder for any variable that = references a=20 previously created Date object. You can experiment with a number of = dates and=20 time selections while viewing the results in the table.

Date Object Methods

Any local date:

Method Description Live Values
Retrieving Date = Object=20 Values
dateObj.getTime() GMT milliseconds (+ or -) since zero hours GMT, January 1, = 1970
dateObj.getYear() Local year minus 1900; Local year starting at 2000 (see "One=20 Inconsistency")
dateObj.getMonth() Local month (January =3D 0)
dateObj.getDate() Local calendar date number
dateObj.getDay() Local day of the week (Sunday =3D 0)
dateObj.getHours() Local hour of the day (0-23)
dateObj.getMinutes() Local minutes of the hour (0-59)
dateObj.getSeconds() Local seconds of the minute (0-59)
Setting Date = Object=20 Values
dateObj.setTime() GMT milliseconds (+ or -) since zero hours GMT, January 1, = 1970
dateObj.setYear() Local year minus 1900; Local year starting at 2000 (see "One=20 Inconsistency")
dateObj.setMonth() Local month (January =3D 0)
dateObj.setDate() Local calendar date number
dateObj.setHours() Local hour of the day (0-23)
dateObj.setMinutes() Local minutes of the hour (0-59)
dateObj.setSeconds() Local seconds of the minute (0-59)
Retrieving = Client Time Zone=20 Offset from GMT
dateObj.getTimezoneOffset() Minutes (+ to west; - to east) offset from GMT
Converting Date = Object to=20 Strings
dateObj.toGMTString() Value as plain language GMT
dateObj.toLocaleString() Value as plain language local time/date (precise format is = platform=20 dependent)
dateObj.toString() Value as local string (precise format is platform = dependent)
Converting GMT = Date Values=20 to GMT Milliseconds
Date.parse("IETFDateString") Converts to GMT ms.
Date.UTC(yy,mm,dd,hh,mm,ss) Converts to GMT ms.

OBTAINING AN ACCURATE = DATE

Because your scripts are at the mercy of an accurate client clock = setting, I=20 don't advise relying exclusively on the client to supply the precise GMT = time=20 value if your application needs that data for a form's date or time = field. For=20 example, if it requires the exact time of a form submission, you might = want to=20 use a form submission CGI do the timestamping with the server's clock = (assuming=20 you have control over that machine's clock settings).

If your scripts use dates for calculations or comparisons, consider = carefully=20 how you generate Date objects. Bear in mind that visitors are most = likely to be=20 located in time zones other than yours. Therefore, if you attempt to = create a=20 Date object for a specific date and time, the GMT Date object value for = visitors=20 from other time zones will be different than the value you used to test = out your=20 page. Consider the following Date object constructor statement:

var myDate =3D new Date(1997,11,24,18,0,0) =

Those constructor values represent 6:00 P.M. = on December=20 24, 1997. For someone in the Eastern Standard Time zone, the object's = GMT value=20 of myDate is 11:00 P.M. on December 24; = for=20 someone in the Pacific Standard Time zone, the object's GMT value is = 2:00 A.M. on December 25.

To establish a firm GMT date and time in an object, you need to use = one of=20 the last two methods of "Date=20 Object Methods" (Date.parse() and Date.UTC()) to = first=20 obtain the GMT millisecond value. You can then use that millisecond = value as a=20 parameter to the Date() constructor.

Each of these methods requires a specific parameter to do its = job.=20 Date.UTC() may be the simpler of the two to use, provided you know = the GMT=20 time you wish to create. The parameters consist of a comma-delimited = list of=20 integer values corresponding to the year, month, date, hour, minute, and = second,=20 in that order. That's what I used in the example shown just=20 above.

If you aren't comfortable with converting your local time to GMT just = yet,=20 you can use the Date.parse() method instead. Its parameter is a = string=20 patterned after a date format established by the Internet Engineering = Task Force.=20 What I like about this format is that you can specify either the GMT = time or the=20 local time along with an offset from GMT. For example, let's say you are = in New=20 York (Eastern Standard Time) and want to create a Date object that = corresponds=20 to 6:00 P.M. EST on Christmas Eve. Any of the = following=20 statements will do the trick:

var myDate =3D new Date("24 Dec 1997 23:00:00 GMT")
var myDate = =3D new=20 Date("24 Dec 1997 18:00:00 GMT+0500")
var myDate =3D new Date("24 Dec = 1997=20 18:00:00 EST")

In the second version, the GMT+0500 indicates that the time = zone is=20 five hours west of GMT. JavaScript (as influenced by Java) also knows = the most=20 common time zone abbreviations used in the western hemisphere = (EST,=20 EDT, CST, CDT, MST, MDT, = PST,=20 and PDT). That no other time zones are allowed is a sign that = the Java=20 model suffers from an American myopia when it comes to global dates and = times.=20 Even so, the application of the GMT format, plus or minus an amount of = time=20 represented by the hhmm value after GMT, means that = this=20 system can be used around the Globe.

DOING THE MATH =

When it comes to scripting date calculations, such as the number of = days=20 between dates or the date six weeks from today, you can use the = milliseconds=20 value of Date objects. I also find it convenient to define some global = variables=20 in documents that perform date arithmetic, as shown in the = following:

var MINUTE =3D 60 * 1000
var HOUR =3D MINUTE * 60
var DAY = =3D HOUR *=20 24
var WEEK =3D DAY * 7

I use all uppercase names because I treat these values like constants = -- a=20 common stylistic convention. With these variables predefined, I can use = them as=20 shortcuts in calculations. For example, to calculate the number of days = between=20 dates, take the difference between two Date object values and then = divide that=20 by the DAY variable, as shown here:

var today =3D new Date()
var xmas =3D new = Date(1997,11,25)
var=20 shoppingDays =3D (xmas - today) / DAY

Notice that you can subtract two Date objects directly to determine = their=20 difference in milliseconds. But for other calculations involving Date = objects=20 and other value types, you must first convert the objects to = milliseconds via=20 the getTime() method. For example, say you want to create a new = object, futureDate, with the date and time for precisely six = weeks from=20 now. First, you'd capture the current date as (GMT) milliseconds; next, = you'd=20 add that value to six times the product of the WEEK global = variable, as=20 shown in the following code:

var today =3D (new Date()).getTime()
var futureDate =3D new = Date(today +=20 (WEEK * 6))

SOME BUGS AND=20 GREMLINS

The most difficult part of working with the Date object is dealing = with some=20 platform-specific bugs (primarily on the Mac OS platform) and one = annoying=20 inconsistency.

The Mac OS version of Navigator 3 exhibits a couple of problems you = should be=20 aware of. One occurs only when the Date & Time control panel has = Daylight=20 Saving time turned on. When Daylight Saving is engaged, JavaScript = miscalculates=20 the conversion between local and GMT date values by one hour (in = Navigator 2,=20 this discrepancy was an entire day). For example, consider the following = Date=20 object constructor and the result:

new Date("July 4, 1997 =
12:00:00")

    // result on Daylight Saving Mac --> Fri Jul 4 13:00:00 1997

To handle this problem, I define one more global variable in any page = that=20 includes date calculations. This variable, DATEADJUSTMENT, is=20 calculated for every platform, just in case there's an unknown bug = lurking on a=20 platform I can't test. Here are the statements that set the = variable:

function adjustDate() {
   var base =3D new Date()
   var testDate =3D base
   testDate =3D testDate.toLocaleString()
   testDate =3D new Date(testDate)
   DATEADJUSTMENT =3D testDate.getTime() - base.getTime()
}

Each time a new date is created, the DATEADJUSTMENT value = must be=20 subtracted from it. The process of creating an accurate Date object this = way=20 requires that you create two Date objects; the adjustment must be = factored for=20 both constructors, as shown in the following:

var nowInMS =3D (new Date().getTime() - (2 * = DATEADJUSTMENT)
var=20 nowDateObject =3D new Date(nowInMS)

When this date adjustment bug doesn't afflict the client, the = variable does=20 contain a small number of milliseconds (the time it takes to execute the = adjustDate() function). But unless you're calculating times at = that=20 granularity, the tiny adjustment won't affect normal date and time=20 calculations.

MAC OS TIME=20 ZONES

Another, more serious bug affects Mac OS users whose time zone = settings place=20 them at GMT or eastward to the International Date Line. The problem is = that=20 JavaScript miscalculates the time zone offset entirely, causing Date = objects=20 created from the internal clock or via constructors that use local = values (that=20 is, all but the constructor for GMT milliseconds) to be one full day = later than=20 the intended date.

At the heart of the matter is that, on the Mac OS, JavaScript counts = the time=20 zone offset westward from GMT all the way around the Globe instead of = using=20 negative numbers east from the GMT to the International Date Line. The = time zone=20 offset for Sydney, Australia, should be -600; on Mac OS computers, = however,=20 JavaScript renders it as a positive 840. The erroneous counting = continues all=20 the way to GMT, whose offset value is rendered as 1440 (60 minutes times = 24=20 zones) instead of zero.

The strange behavior here is that the Mac OS reflects the proper = local time=20 and date components but gets the Date object GMT value wrong by one full = day.=20 Therefore, if your script requires an accurate GMT version of the local = date,=20 the script needs to factor this zone error whenever the GMT value is=20 involved.

To adjust for this potential error, I add one more global variable = definition=20 to the adjustDate() function, as follows:

function =
adjustDate() {
   var base =3D new Date()
   var testDate =3D base
   testDate =3D testDate.toLocaleString()
   testDate =3D new Date(testDate)
   DATEADJUSTMENT =3D testDate.getTime() - base.getTime() - zoneError
   ZONEERROR =3D (base.getTimezoneOffset() >=3D 720) ? DAY : 0
}

To create a Date object with the corrected GMT value, here is how to = use both=20 date adjustment global variables:

var nowInMS =3D (new Date().getTime() - (2 * DATEADJUSTMENT) -=20 ZONEERROR)
var nowDateObject =3D new Date(nowInMS)

This last code sample works accurately on all Navigator 3.0 platforms = that=20 I've been able to test by setting them to a variety of time zones around = the=20 world.

ONE INCONSISTENCY

JavaScript makes one departure from the Java Date object that could = have a=20 negative impact on scripts using dates that reach to the year 2000 and = beyond.=20 This isn't a "Year 2000" problem per se, but you need to script around = the=20 problem just the same, at least until the problem is fixed in a future=20 release.

At issue is the way JavaScript treats the year component of a Date = object.=20 According to the Java specification, years are integers after the year = 1900. In=20 other words, if you use the getYear() method for a Date object = that=20 holds a 1997 date, the returned value should be 97. This is how both = Java and=20 JavaScript work for dates prior to 2000.

Java, however, remains true to the algorithm into the future, where = the year=20 2001 is represented by 101. JavaScript, however, treats all years = beginning with=20 2000 as the actual year value: 2001 is 2001. This jump in values could = trip up a=20 script that relies on a returned year value in sequence with years prior = to=20 2000.

I prefer to do away with ambiguities such as starting the year counts = with=20 1900. Therefore, I recommend processing all values that come from = the=20 getYear() method through a filter function that adds 1900 to any = returned=20 value that is less than 100. The good news is that the setYear() = method=20 and all Date object constructors that take an integer value for the year = accurately handle four-digit numbers. Use 'em.

ONE LAST COMPATIBILITY TIDBIT

While I have not performed exhaustive tests on all Navigator = platforms, the=20 most intelligent implementation I've seen is on the Windows 95 platform. = At=20 least for North America, if you specify in the Date/Time control panel = that you=20 want Windows 95 to automatically adjust your clock for Daylight Saving, = your=20 Date object handling gets an added bonus: The correct offset to GMT is=20 calculated for you for any date throughout the year.

For example, Pacific Standard Time is eight hours earlier than GMT, = while=20 Pacific Daylight Time is seven hours earlier. If you live in the Pacific = time=20 zone and create a Date object for local noon in December (when standard = time is=20 in effect), the GMT equivalent is set to 8:00 P.M. If you=20 create a Date object for noon on some day in August, though, the GMT = equivalent=20 is properly set to 7:00 P.M.wno matter what time = of year=20 the script runs to create that object. This is very smart.

In contrast, the GMT offset for Daylight Saving time on the Mac OS is = governed by the current state of the system clock -- whether or not = Daylight=20 Saving time is turned on. Therefore, if you are in the winter months in = North=20 America and create a Date object for a July 4 fireworks event at 9:00 = P.M., the GMT time will be calculated on the winter = months'=20 standard time offset. When July comes around, the Daylight Saving = conversion=20 will display the event as starting at 10:00 P.M.--too bad=20 you missed the show.

It can be fun to experiment with changes to the control panels and = their=20 effects on the Date object. Be aware, however, that Navigator 3 picks up = information about the client's clock setting (and time zone offset) when = it=20 launches. If you make a change to the control panel, you must quit and = relaunch=20 Navigator for the changes to affect your script experiments.

DATE OBJECT VALIDATION

It may be tempting to use the Date object as a way to help validate = date and=20 time entries in forms whose fields get submitted to CGI programs for = further=20 processing. What's easy to forget, however, is that there are numerous = accepted=20 date and time formats in use around the world. Unless you've used = software=20 that's been localized for other countries, you probably haven't seen the = large=20 variety of formats currently in use. In the United States, for example, = the=20 short date format is mm/dd/yyyy. In many other parts of the world, the = month and=20 date positions are switched. In still other parts of the world, there = might be=20 different delimiter characters between the components, such as a dash = (-) or a=20 period (.) instead of a slash (/). The same is true for time = formats.

The JavaScript Date object is not smart enough to know whether = 3/4/1997 is=20 March 4, 1997, or April 3, 1997. Nor can any script that you write parse = such a=20 text field entry. And just because you supply a sample entry in your = form or=20 label doesn't mean that the visitor will follow it.

All of this leads me to suggest that you divide date and time entry = fields=20 into multiple components, each of which can be easily validated with = JavaScript.=20 For example, the following form, "Example Form," provides three fields = for date=20 entry, each of which is backed up by a healthy validation script to = check for=20 range and integers.

Please enter your birthdate...
Month: = Date: = Year:=20

Thank you for entering:

To view the source code for this form and validation functions, click here.

You can even do away with all the validation scripts entirely by = setting up=20 the data entry components as Select objects. You saw an example of this = earlier=20 in the table "Date=20 Object Methods." With this scheme, there is no possible way for = incorrect=20 data to slip through.

Other options for date selection include Java calendar applets (in = which the=20 visitor navigates to the desired month, and clicks on the desired date) = and even=20 creating dynamic calendars with JavaScript in separate frames. Let your = page=20 design rule the best way to evoke a date or time entry from = visitors.

SUMMARY

As this lengthy examination of the Date object implies, scripting = dates and=20 times is not necessarily the easiest task imaginable for enhancing your = Web=20 pages. But that might signal an opportunity to help users navigate dates = and=20 times in a way that distinguishes your pages from the crowd. For = example, I push=20 the envelope a bit in some parts of my own Web site by combining date = conversions and=20 arithmetic along with the HTTP cookie. I do this to point out all = areas of=20 a page that have been updated since the visitor's last time at the = pageweven=20 though I may have been through several update cycles in the = meantime.

To accomplish an application such as this requires in-depth study of = the Date=20 object and lots of experimentation with clock and time zone settings of=20 Navigator client platforms. I'm convinced, however, that there are many = great=20 ideas out there waiting to be discovered for want of an understanding of = the=20 Date object. If this article inspires you, let View = Source=20 know what you've accomplished. We'll be glad to point the world to your=20 masterpiece.


FURTHER READING =
JavaScript Guide for Navigator 3.0
JavaScript Guide for Navigator 2.0
JavaScript Syntax
JavaScript 1.1 Language Specification in downloadable = zip=20 format
Third Party JavaScript Articles
JavaScript Sample Code Library
DevEdge Guide to JavaScript Scripting Tools =
JavaScript Known Bugs=20

MEMBERS RESOURCES: =

JavaScript Newsgroup
JavaScript FAQ's=20

BOOKS

Amazon.com JavaScript books


View Source wants your feedback!
Write to=20 us and let us
know what you think of this article.


Author and consultant Danny=20 Goodman's 25th book is the JavaScript Bible, the updated 2d edition of his = bestselling=20 JavaScript Handbook, published by IDG Books. His next title, = arriving at=20 the end of February 1997, is The Official Marimba Guide to Bongo, = published by Sams.net.

(3.97)=20

For the latest technical = information on=20 Sun-Netscape Alliance products, go to: http://developer.iplanet.com/index.html

For more Internet development resources, try Netscape TechSearch.


Copyright =A9 = 1999 Netscape=20 Communications Corporation.
This site powered by: Netscape=20 Enterprise Server and Netscape=20 Compass Server.

------=_NextPart_000_0050_01C1D5A0.945533E0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://developer.netscape.com/viewsource/images/vsnavbar.gif R0lGODlhEgImAOb/AP////j4APjw+PDw+PDw8PDo8OrqBejo8Ojo6Ojg6OPfDODg6ODg4ODY49jY 4NjY2NjQ4NjQ2NbQJ9HR0dDQ4NDQ2NDPBM7I1s3HI8jA1MTDx8S40MK5O764xrq4DLqwx7i4ubWo xrOzs6+gwa6kP6qorKigsaiYwKiYuKCgoaCfB6CYuKCYq6CQuKCQsKCItZmYl5iQsZiQopaIrpKA qpCOmJCAbpB4qIyMjIuIioiAkoh4qIh4n4hwqIhwoIaECoJ4j4CAgYBwnoBooIBomHx4d3pwgnho mHhojXhgmHhgkHJoZHJYmHFofnBgj3BYkHBYiHBQkG5ubmhoXWhgdGhYiWhYfmhQkGhQiGhQgGhI iGBgWGBYamBQiGBQgGBIiGBIgGBAgF9QdVhAgFhAd1g4eFdXV1dIblNPVFFAZlA4eFA4cFAweFAw cE44aEgwcEgwZUgtb0gocEdHR0ZAUEU4VzowSjk4MjgoSS4qNCkgMyAgHx8YKhUSGQoIDgAAACH/ C0FET0JFOklSMS4wAt7tACH5BAAAAAAALAAAAAASAiYAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOU lZaXmJmam5ydnp+gjgQZLTtCWFhfY2NqY21sam+vb7K0tG22uLa3b3FgWLu1vLu6ucTGwcLKysXG vsDHyNLLw83LzcW4z8Pc18HY0dTg4bXb5Mzf59Xp07rm3dbZydbcuvTyue/j3t387PHv0IlTZ48d rYAFye27p1AWLDVqyqwaA+bLlSQjFmBaUMrHkCFJkjy5ggUMmFUQIcJaqQbWGpYwVT572bJmzJtq aOLcqbJmG5s2H7KZyVInUDYsWxo9ynSlUaNDfwFlCrWpUp44qcZ8FtPoT6w1vTYV2nRNS65Wq94k 65Ll16Mx/9W8hYU2KxuxYJnOZcoVr1W2YcGufPML1l67TwVD3JuyTMRVFb+gulLliQ8IAyYRCHGj 840dPTwyUXLlypeTKB1HlLi6teMyr2HHAvMkduyIrm3Lhn37tuvcr3EHb0249urewZPzPi68+XLk vWdDAW47t3Dl1Xf/5o3duq8nx7trT279uXOI47PPNo78enTZwLefZ/5c9nfu6N3TP69b//jm98lH 3nbqkWdeGcX9N5x4Cvp3oHATUSQZFk9UGFISQ7SAAAGQJNDCDS+E+AINNIAGEhNRpPJFGGOwGOGL MML4XYw0vihRjTjeiKOMtO3o449ATjRjkGPoSGSRR04k0f+QSibp5I9Mwmjkk1QK2SOVU1YZJZFZ ErlllUF2WZEWqFh4xEce+XADAxw2ssCIL7Qgp5whfgZSEiiqCEYYp50Whkl/hiHoSYO22CJhSgwa 6KKEsugoi3sGGumkLQpaKaSYRqqoopUiyqmmje5ZaaMtgrqpo5FWeimoY/iSxKqqLiopoYSW+qis e5pk66iP2ironycRlkSgvOa6qai/7vqrqX9e6qylpwp7ErKoPqpps5wWCq2suFoba6CuhvorttUq Ciix25bL6K1jeDrutchSS2235BpKrKvrcrtsrMxqam+vLlq65xcEY3HFE0wkQcQQPvTQA2idPbDh IgW08ML/CSeMoDHGJ1hcog9HiDRSKqlo8YXJWnRB8Monr6wFGCb7cgTLfa4MM8Evp4xyzTx/kUXL MKv8hWVM/ExwZDSfHJnMLL/MstEEQ22yzzbTHJnTOGeNtMuEHTF11kAn3bLSX5uM9NZjU+3yaVOj rYXMV1d9dNJtT40y0lADbXbKY0O9NBgzT/1zF1/7/bTLSAsettxRr632aV2DzbPic4tNNeErG151 3UxnLvbON2vNONs43zw101+vrMQOqVSUhA8q+v3EDk9MHnTLRkeWeJkWMtxDZzOMOAMNLzgwcSIj yKlxCMw33/GIPUiAwfRPRHFFildAQVJpqHSPChQ2eA8M/xhDiJ/BCN2TJH764ocAQQUuGLw+KjsA MMMY8++QBP0bdE9Y+fObzPrO1z0yBVB9AUygFghDhASu7wUVgEAIDug9BDqwgg78n/gsuL4nfIAC GQAg+7xnQAxSUHwaLKAJBbhCLGTghRkgAklKuMEEchALvhCh+dA3gxBeEBU0ZOH6bviGL8hQhesb AQUqsIIa/jCAKewhDGcQAgBYoXtVzAIQvVc/GoBBfUJ44QZeIEAymdGMWJiBwSyEoYeBSEQhmgEK GHA8Q1RAeSH4gB73GAKNeSwABpieHpgwkupFoXqGvB5JrGcACaShNNbzhQ8UaT0AaAAPlIRkJq3H ySqKQP8GOajD9TipySQggQ+iJOUVXAAAJIAhCnrUQyTBMElSWi97kLSlJTHJSVtiwXpQsGUmR0nJ X17BF0IY5i1tWb8JyKAEmNwkJYVJTWlWc5a1tKYicbkAAbCATVWwpvVGkqJealOaklRmLokZBVWS EgAI0IAG0vBFaRqzneckZTqpucsPAEAMX7xmPjOpPWEek3ykJCclLwCACYjABKlkpzaXucl9toCh AtCAEUwAgD0ENAlU8EM9SXkDAGwhlVGo3wMYAIAa3HJ75gOAGyqkhCQIwQc7eOOcOmaxDjyAAG0i xACUN4IPbOCoSP1AH58XABX4gQ984IBUSWAECTTSCE//KIIESKAACSCBA4D0wCErJMkKmRUAIOBD Rg5wASVc4AJP6AEEZpCEChzgTU+AAAD6oAc84CEJGThAA5LQAgiMIAM+iAAQiGDYBizABz44AAAu AIS8AiEPhyyrWTc71gp1Fq1qXcABMpCEt1oGAi9IAgXu+oLNuva1ZKUlbGFbRTT0AQ96eMILFuCh 2UEABQkw7WVm4MEDOGAHKTXsAmYLW80y16xRoAEAcvAHKgAgCFkoLHAvIJIPHAACtJNrCBYAgSM8 l7OE8cF5Z9vZCgEgBU/lA23WS98opHe2oK3iHc4gwShc4AOFHUECKoCCBVCgQicQbVufgNQDjKC9 m3Uu/yI3W1IR/IGveljrgsfb29329rllPSQcGPCAP/CBBddNQAae0IIKWOEyGanraE0KB89Kdwt8 AEAH0mDXN13hMi3gSAHQugMJHuEDELjBDGYgJxRwDAVyugAdDQGBFmSMeUjNMvOYqgAPYCAJEgiA BZagAANswQAWyIINxAzWH9gAzWYYJFm/oN7NghYFRjACAICQAQDYoYp2sMIIzHABBLihigxAgRKe 0OcPwIAP/nyADLgAACMgAQAOqIGOndCB69ohDQC4w0yfEAc6u5aQFUK1a++c5z33+c9+FjShEZAG hDFX1aQGQw9SzWvYlhQAITDvEADAgiL8U7oE+EAJ/P+sX+lSoQQPAIN0EdCBPjxX1aVWL65xvdkq zsEOTwCACPDgTxBUUQesfHa0pTsBfwYBC6jmtmt9setec1verwXAA0QQw1vDVtXyzvap3cuAEmjk DmQQtx0OoAEZoLUCOmYoFZ6AZz0DAQt6TUECCFCHgee6zvj2dm4JWfE9+0DcZriDGIhtbDF4vEJF rHOFBGttf4pgAv/05x14AM8O4GDPyz6pWaVrBCAAAJqDLnQaSprsOUB8C3pgwATcsIAJ5AFEcsKY k593czYVIgRWLmoIsnxUpYagYzMIKwbyEOY/zCEAP/ADBgKQhzVv4Q5wt4MBPNCHWhOSMD1gguAJ Cdr/Hpig00EwuhkqUOIsuOADDQCAH5KgAwTo+AkDKLEe8qDzPlh3C00AgBT6gHM+sPIOeBBCAfzg hb/TcvAJQ1jsCQn7cKfV8IhXPAUa//jI+8HWeIL94GXPhPQK3ta0F7xIjs8DhiagClUsgqbNwPMi +CH0Ztj9Hy5QgC10Wg/Stf4ghT982j8B8OY//uCDL3idk4EJoPVnHvQgbg10//s3toOnnyCS5SdM +YMHeLLHfzRVe+SnBLXXcxpQBxlQAA5AfsT3f8e3fLK3fOinfAMIAATQASy1X++lBwfQAZqWB6F3 B2hgUmmAe9dVBxDAAH8gApKHfIQkEgKYfOXnbWlA/3sqGASUhgAyIAYrAADSBwBmkAV4gifIl2s9 EHxPcAAM4AdM4E97UIIj0FHV5wed9gehB3oHcAAtIF2CQAB3oAe9J3nh5wd6sAEA8AeHFmrXpQfB 02QoMIdzIgM+VUcIEDwoMAJ5ZFRJxTwjAGVp51RQJQEK4Adr9gN4MHd7YHdmAHd4sHd8AAWLpgSS VIn8h1Z5AAAZYF1BUAfvNQA10AcfIAA6sGx/UCFugHP0pwHWFoUddQY3toVwEAFrGIT7NQIX8HtP YIm6hokEuGi9OBq96F4gsImduILvRQCjWIqnuIa9iIDFiInA6Au0U4kImI0WMo1pkAIAQAdVWAJ6 dP8Hl7YFdpAEyziKFEAAJdABItAHPGeO0ziPSrBoIuGL6lWJ/VeMNNWLL2BSZHByjyaFKwcCHcCO 7tgH9bMFKxcEf2VW98iPxWiNxSgy0qiP9NiPCPhe8eUCMmAEfECPwDiP+6iNmlWJhKQEaOUHmoZw HxiCmrYHDncHQmBSZ8CJnogHLegHDJWKmCgyFKmN9uiP00UGCFOTyeiQKzBkHxCO41hrwmiPi0aR w1gADFBzHRUDoVaFexCPdqBXf3BjYjACOUCO73UHfvAHIUAAOgCDf1BSW4AHjLaGqwMAMNBRSxc8 MdACdGgxIyICUhZUDXADRNU8etQ8I/A8NNBUeZD/BEpgiH6ABGKmdwbwB0UQAFvwiIqIZneAMAhI b575AmqYAidoBmZwXXhQARyCehDwAH3QZ3/gAi0QAwTggnrFBTSQBFLoBTd2aSmQBgdQYihgUl6Q ASyQWyIhSaORMNm4nAQoEqL5XqV5mg6pmqGmk64Jm+knjUjYf58JBvpDgDPomft4AyMwA5G3B0ZX BHoQZzW5BTNlnainc3mABnqwkDNFewjYf4InjUxgjbOXavtZUwR4BANwAVSghnPAeSZVkzCQA6FW n/dpUpTmkPwnMuYXEtkoSRS4j0g4nvsYeyJjSUawAupVB3bQcY7pnB7qnM/JRhQ5g+YXf6F2kxNg /10+l5Wh9p7YR51feZWwiTAden6v96IemgDvdQIhIF2muYI+kAYFAAKUxp5xZpT/559E6gPeaVxY uQdaeQdcGY9u4E9moIbw6QV4YAc1GQR5QAZOAAEO8JprOAMmNVN91phJoBElhgQ3QAPBA0cvsGQ3 AAMgIDGDUAFYd2XNg5hQFgMzsAOM6ZiG2AdQIAMGAEhz0Ad2xwV5B1YKkAU1pQSEoT815U8EYAd5 4AAAAHFBYAfD6YJe0AKCEHl/oIYAcABm4Ac78ACC4ARSmAV0CnqWJAhb0AeRBQA6kABcYAejkQSj WlOOGa2hKq1JUEUEkAd4oKqs6qoAAKuyCgC0Cv+t4hqt0cp/lugFPjCtBBqtzZoErCQI1OUFVQgA AmAFweoGSfCqfwAGgCUIDgAG90qujqmu0vqs0yqt/MecjhkDLNVSf0AG/tRpBbAHdtBn4AqwJtWQ dnCwHLuc1kiwzUqwF6qh/YeOg6ADRliP3kmt4tqu5nohvkiqeBKqKplWOgcGavgADwACMXl6RrcF aaCtnraTPUmwNfWs1DqyStB8gnABdSC0QQBqgmAGaiUIAlAF0NqLGlpTHxutBeCautlRpxemJlUH PoCkGlCn0UqnDumY30qrN9Zx/9hKSuBuCrkDOUUiSzY8M/AZOACYXgcAG7ADxNMCK5AxGpO4UBb/ qDcAWX+Ap0rAB33gBEqABnnwB35wBkogBm5nBX9wjpnaBxdijTB7BmnpBUpwuXzwuUlQB5irBEdg uhf2B0pgB3uAuWeQBFmQB2lZBXbwB1jLuVuYB33wB2mgBFBwuVTQB2cQMklAutB6IQJbun7gB2KQ uibGuq47ebGblsU7vdIbvs8LnuEbvdSaBGewB2lZBzVFB7f7B07AuWkQEtvrmE5guyaWBPJ7sOIb vaR7vtI7rujLu39QB2G7B2jpB1kABfjLB5trvFnAujAbwCERMqPav+AbveYLrX/QwcYrviRLwc4r wFwLBjdwIc6rofn7u9ebBhfWB3zwu1ngwmKw/7+qy7qSmwSXC8Lje8IUHMJWkAer68A3bAdQoL5/ oLnu28FOILD+S77i2geimwQyTMMyLL9J4AS3qwcffCGcu7GOKbvF+8DHu7mrWwXDeQdmi7ck0sZ+ 2qc7EAQpoAE/pYGDSyJycrhax1MtMDx4KwREkARHQLP1qAROYAWFLMgVfASMDAVNzMi+QAOMzMiG DLuCXAWTnMmTTLmCTMmYnMlY28khw8j/CLSO3MlKgMlVIMqRzMiKrMmwfARYO8mrPMquPMn1GMu6 PMmtvMuwnARVQAQzADKO+cmiDMtLBgWfbMu+nMm93MywjMiC3Gl7UAVY66dH4ASzvMs7EANCkP/J rCxt0DzOoyzKx+zL56zJzwzOmvzKlPvLjMyXjGzM4JzOkCzO7BzLVQAFtOzKS2YFQuDNxdzMkXzO 6XzQIWPIr9zOmfzOnbzIR+DIGzAADfAHVoC3n9GnfdrGn1EEMEDHlreBDeOnISKbJm0xfUsDkDUE 04MBJEAEhRzTtvzKRHAEgVzOhCHJinzTjFzTN/1WF7ABPvwBF0AEN3ABKLADQP1fR30BLnAETU1X G3AAe5AGk1zTPS3INe2s0tbJ//XQWH3TCnPLNt3TZh3IWK3VoxzWrszTROALNxAyKLDULcDTO83I WikDj2zTnYzWfB3IEIAAXlDWWv3KCrPTYF3/0D2NAhAAARug1Siw1lk9yTMABH7wycaDulgdMltd 2J3m0GVd06280+5jWG3N12s91jTtvJN92GXN12rt1oXdyjX91Vl90496yz6t1kfQZwdg1Tct1q+9 1Vt9BL2sMIzt2Fq9Amn9150c2F6ghk5w1ahtU6983Khd3GotyG8FMhswApkc1ne92trNzCMgA3tg rJDFA3jb3nm7Azzg0TdneYJ7U7/jp3sbqMNDA5/hA0IwBIAUZhgwjeQKu5Z8y+es2Mds2CGjgRil A0egV3lApzLQBBFgeReQAtaFVmcwr0YgBnp12QzOzII82kdgSXVA4mS94DPNzC1ezjA+ySXu/wVx fQQnMAECQKLNy9ujHKxWvdAvzsgOcJULbc4MLeNxQOOurJUVIAMicI4M1bxBHhJWcLw13YJ9QNaS PcpSSM+uXNA/vaoiUALzG+NBruVALuMuDuQPfQSEUePouIBaPpxAwM8x/sqBjblGXtww/tBJHteC TKdN/uSlBQC5q+aZjOU8EFKY3Oa6zchv7uirPdOCoANOcAAgkOJFzs587uiUzMhpwL5CcFOQ5QPs 7d474ANSgAMgMAEhnQGAjFM5pdGP2t+pPupE0FR+YAEBoAccYAAGQAJKgASGSAISYANKoANlxgGD XNaiCp6v3ewufuIg4AeU1gFeoKp/wLZ14P8FMLgHfGBdOqsHFMBSQKvtn47Lav7sO+DKoMXIGVEA F/DNG/BCBxBsApYBR3UENOAALsADhiUEEFAACbACSiDwCzACc3UEK5AACRDZBm7iaUBiJpasDx8y H+DwS2aXD9AAQjADEPABC9AAIOMCogXrEX6VNDDwiMrv5PUBDqAELtAAMXAEF5ABzd7KsOtPaBDD eTACHAICPhDv8x7hMJ8AMaAEAgYBC3CV6FkAEJCbI+AAukgDC0BeHQUF3LcANe7mJkzZ4mZim7fy BdDyIe8ACTACF94CR7ABN18ARlUAHWDTLeDwkW30DTADJu9gRyZYM2DLOk/tfFDvgRUCM4D/pBeg A0nQAX5/BFMfAkHNISXQ2w7/ARiv8UfA+Hkv7c/M8z4P9GjFAxtQAXVbXkvf9H3A2FRQt4IlyS6Q AAewAbAbMuuM6LOvBFitgRNQBwdQAnlAAw0Q+3XrAI5P9Yw1AkSw9Tr96X1d1qM+6qUOWal+66s+ 3xrIADegBGiCUw8z/aUOyCETAB6ABsD+BySwBSoQAFwAVioQZmZgBYH0dkWABINc4uLM5ghO7Xtw BAQACAh8EAAphEF2RxcAe1UzADAAdgQpAFtphH9JR5ybm0efnHFgNJ8AIHycI0BGAEFKDoUIBGkA CTgAGXaPUk4ANVwjZhcIZx8ALBMAZkjI/0UAVpxHozvSSQcMfTvO0CgAFTB3PAATIq6PFR2uQrlS hbDZCAlbBxNVDQBFAwB8PoVWv/CIIvXpEYEPQo7QqGApzwpWAID4QmDiFEAHXAA08BNDBhcCIqyo e8DigoAtDxhVBLIlj5cjREaV4nRsjh5QRxAgoGcPAIGKBEYQiHCGUIkEAEQwAJBmHItnYo4AANBh CwAEMrbUAEClxINooN6Q6nSKT6wUCQicURfkjgyuXq0ceyCDigMEZvJ8oFKJi7cKMu7EgPvg5cBq mwwiTLLQkp4IC/IsygMAo0Y/6uqwIGyFgAMzaBINpKEEp6dOMEvjLAQAzYESeRBcQBNxBP8AOgxB NAHA5S1LPWBPHylNBCZMIciR+1i+w8cOJFJwiJiAwCcDE0o2ERmy3Ad35JyIbFISoHyAH35seMAQ 4I6FAH5+tF8SQMUPAyrSWBt1AzXO/56UdQ0AfsQCgjKIJLFII49sQUAkZliCCQB/mGahaUmI1d8m ZYFygwls1QFBAn8ccwcAOPRBAAh7NAhQEHWY8MFSfhDiRw4A3LFZEW+ZUcUmMiXxSQHZhJBPjwzx 0Ycd42xhhytUWPJkEG/ZhMAEdkDAwBy/9JEBAJRl8IcGFB4BwQW75VFHadSYpoMyCThxxJd/NAWi K3UAUIIfDIBAWxB9VJCNDyAe0IEeJvb/AYAGflS0xwrk1JCGE0COJWRNZyTW5ZeUpcAnCH5c8EAf DjDwhzl/vLWHbTwuU0VSfgCxjB92ZFDAFurooVqbHKICwQJ/gEAgpHfYccGtuapzRx91TLBRGi6I sMgdiyhpLLIA3CSkWDNtQoMyCMhJJybZTOtKoNkcs8exuGZbQCFNZApKm/5ZKFwSrmiQAgIl0JaC EQ9GSY8IDjzjx1sTSEqpNKWN919xRBCRnBDd+bCFFDVMVx0Bsh3xRHacDFEcKEKWrAR5Ftyxxx9F BECCfHdIEMAfJLTXsgc4T5FHEtkpEYcXO/AMSsNED6dEWf5M8EcmESKixIJWNJgBAROc/3hJJkIL XXRpSohVzcllKcFOBlEiUmqoObqCRwEd8NFgRkGkMIAOqGbizR0VlQDCB3fo1zUYOxB9wKhG6s33 In9UocTbUFoC91t3nFHAqA40wGUQeCxYFuJK2HbUHy/9HfhwoJxRAgBzPE3h2GU/mYIehv6ZZQN9 LLCAERO0ra4YZakr11Q6cO11wy6geMZwj2CueQp5GLqHln1oiXaJjHi+d9+F8GHkHGkowVAKHYjQ B6U+A811WWcjfrcYFBQSfh9G7iGGEtAPZoIOOSqTeBLfvw/FcMMzmhJMhzrVVUh65kIEBEalrv6J bwYpWUA0TvazwGlNa6TjGs9c0QoClP8gQhoQQQekkIcCVII2JajAH5RwDADoYDg869nJThZDIYEC YhNDAheKAIMDVecqE5BBFJ7wsSQ8QUjZMSIRoUDEAHigD2nwQs36oIL21MwM7LmDGZy4hzvcoQ5P cIISnjAKHoSRiE4g4hidkMYxksMICwDAFKJHIRq4wg5PWJAX7KgVV9BmCyKyxAp28LEztrGQTijj Gd+4guKZoWl4QCAAFHWBKKHCjinYTBAyMCo6qWMYOWJHEfRgBj2cIY0/88EYP4YNP9hxlKWsSBF4 IAQ+8i4IAoNblHDgixJELxsEuEAdsPEHBxCADgeg0BOkoic/pPEJYjHjGHmAghnEYg//Z+DUIx6p tkLoAQEa0AMALpARBvjBm+Dkg7q8YEw6xHEPcspIEcBIRi+oMoxKQEoKUBACJQRzmKZCZ9ukJ0nq 7WEcsDSlN+0ogibswEh3yAMa9JAFVILBB888xfPMibgWWMILEJWoHuLnBSdIz0h8gBykZimEkE60 ovW8pxN2UM1rZhNM9CMAF5ByTnICwJzqsk1EJyqEtUxSjaOQqSHRyFQ2PgFPBCgEHgZQAj7QoQ51 +BKwfMKCPiREnvR8pljTKMaTHZGGp0HDFnjYgQf8EAEP0AASsHCFIRLxrle4Al2x0IUvOJEPWciC EcojMy0qwAAeaA8dbGCA8tjgDFng/ysWRiGELmDhspi1rGUlO5XKGOEPdmjfH7aBuS58aQ9k2MYW eHeHjACyfVNhwRk0e9nNbpaynO1sEyLwDbUJyg90MgEBOoAAVGQhFuYIQisEEIsVRmC4OUpDRQAw AC9kwbKjOIJksYCAjWBhutWtApkAQANZbeEMrnAtejE3XQfwgQ+C6sMMqlOAOfhhB3BlyB8syxCb SJaymh3MVILwBzLYEQBOSAlDMOdNQ/HBNg9wAAOvkoC2xY8Mj0AAQ/ZwYATsAQ98BbBkFTGVDOBh vgCo7zlfdwAN/LJG2dgAheJ3BvB6wQve7MJ0OyCG8UJgtnwVS2UvWxYKmJNOOXGhF/98fIYLY8HI fThCMhkSufHSYMlT+fFtwaBdyz5iwH84w4GtMBgCkOkPEK4c/BiBZQD8OI6/2G+IwTDk7dq2tnh2 RR5k/LoZRBUAPADDYERQI9TlQcAeBvGdMcvoy1YBC2hk4hPEYIYpxE0DDPgzARhwgRpUQQtd0IJe 83pZUH8BDGAIAxj+0AdVgyENK+PDH9BAhj7IZw91CEMd9tCHP8ABDGMAtliU4Opgo1rVqg52sP/A bD/gQdW9HgMc/qCHMIxBD39YAximjYc1+NoNf3h2r5mth2MDG9WpBvYolBBsazOb2XDIA6upHQY+ +GEMsq4CHhSVgj6gWt6y1oMbet3/6yrUGhd7gMMY8LCyAqd63ekGdh/uDQaGM5sMZMhDr/HAbW/n oePUHoMdVtYHbU9c19j2Axyg4IZQNeAPqe4AAXyt7GEjW9p78EO4gZ0GWbtB3r2u9h/4EAY/+LsO rJ64yP/gB6OPQd5rGEMaCJ5tN6zMD9oOw7DPHew06EHWfBhDHVL+66GPwQ9htze+/QAGWT892wtv OBnGMHRVj9zseSA5srd+blbX2w/1/sMYMh7up5P82tlO9cnPIOtewyHjGze834UNBiWgegy6znnh Xy3rNQx86IJHeh+UDvWM613j9E4139sdcVcnO9V0rza2wz52ncMhDHgwu+PHYHWm/2f93K5GN7q/ QHwwdAEMlxXDHMxgBOlcINNT4dgEQKADKxD/+mH4QrLHMIYyjEEN3/8+Gcrg+fGTQAEy84CvybAG MsBhDWpQQxnkP4oqyP/+8Z9//uWv//vrf/76N377N4Dx53/7139lAID5NwpO4H8KGH9uQIAJqAbf gAACcAd8cH8ROH/sB39qMAILwBAfsH5q4HkKKBZQoAZkMID6Z4IauAb69334930AWAZvsIEG6Hnx dwERgA9F4AdqsAgs8Af+h4L7t4Lvt39u0AYQ+ID/F39MmH9l4AYK+ITwx4ElCAf4x4BVqIJugINr 8HgFOIH494QGOH8u6IQ3CIBv8P8G/TcKKViGBZiDbjh/N8h/KmiAJRiF+ucGUWeHEZh/YlEFD6gG SdiHEUgGb+CB89cGjIh/avCFBZiEK6gG9Rd/AmiGY6iCTnh/7veIeHh/OoiF80eD3ed93JeKmMdz y2dpKQACbtVZ1nEBJQAEVqCKqliJBciEjsgGa7AGbPAGbYAGRvADW2B0a9AGbSCMi+iIySgWWLAG i5iM1EiN00iNjjiNjriMwLiI2liN2/iLb6AG2agGwiiO0miN0BiO3oiNTHiOzvgGRGAEQSBveLCN wmiOy7iNYGAEOUAFyHiO7biMyMeO4GiO7tiMzwiM+EiO6QiPDrmQbeAE/kgH1Nb/Bi7QBEP3kOso jtzIBs7Ijdm4jA6pkPFYjcEojbz4kPhojb/YBqOABe3YjMyIjcw4kippkL2IjiA5ky8pjQppktAI j8CYjM74k9N4k0X5kem4j+wokk35jMiHjdQIklU5kOcojeS4jL64jcGojM/okAQZjdwYlduYjU1Z kh4ZlGjZlgJJktRIjvEHf2xwgJG4fFvQfNICfZ3FMQ8AAv/CBWfAfXOoBnXZBsHYhoq5mMKIB1+n B4wZmW8Qk5JZmZZ5mZiZmYo5Cl2gmZXpmHogB2+QmJcZB1+HB3FgmZzpmazZmm3omHyAB4mpB3pA mpNpfK6Zm7rZhpS5m77Zmr35/5vCuZnIN5y6GZzGmZyjOY68GIl0sHxmEB0loAGxKIvWUQ4wUARU IAZp4IEgaZupyZu8GQfkWZ7mmZrnWZ5g8AWTmZ7uiZ7p2Z7w+Z70SZ7yKZ/qyZ72SZ/4WZ/o2Z79 6Z/q2QXzGaD7eaDnaaAGiqBsIKCjoJ/4uaDz6aAIGp/1aXzu2Z8AWp4b6qD3maHvuZ4SWp8RCqIJ eqH6SaEdCp8SaqAYSqIeap4lKqMTyqGRuYxuUAdzgJdSkAOvSB1/Zp0IwGkiAANBIAVcABp0QAfj SaFOKhZg4KRSOqUCCqVUeqVTimpYuqVYaqVc+qX+qaVgOqbv6aVkyqVmeqYUKv+majqmbwAHWLWj 0JmXOPCjDPBD1jkVcHUBIpACOFAEUjAFW/BIoCGnhnqoiJqoirqojNqojvqokBqpkjqplFqplnqp mJqpmrqpnNqpnvqpoPqpaDAHaPBIXHAxQVCnIPB8eJqnPjGkFwACJQADOKBcUiAFW7AFSUqovNqr vvqrwBqswjqsxFqsxnqsyJqsyrqszNqszvqs0Bqt0jqt1Fqt1kqtuXoxUlAEOAAD0zkBfOmqfTmk cSWrKQADORAEQQCot9qu7vqu8Bqv8jqv9Fqv9nqv+Jqv+rqv/Nqv/vqvABuwAjuwBFuwBnuwCFuw RVAE6goD3rqqD5BpQSqu4/r/ABNwAeHTp+dKqzjQsR77sSAbsiI7siRbsiZ7siibsiq7sizbsi77 sjAbszI7szRbszZ7szibszTrsClQAiJ0AeA6CxQrrgTAMQxgsRdwARrQASAgAk77tFAbtVI7tVRb tVZ7tVibtVq7tVzbtV77tWAbtmI7tmRbtmZ7tmibtmpbtiAAAh2gAUAbsbMwsUObp0XLMeRqsROw t3zbt377t4AbuII7uIRbuIZ7uIibuIq7uIzbuI77uJAbuZI7uZRbuZZ7uZP7AJp7p3Nbt54bfXer E6I7uqRbuqZ7uqibuqq7uqzbuq77urAbu7I7u7Rbu7Z7u7ibu7q7u7zbu717BrefCwCBAAA7 ------=_NextPart_000_0050_01C1D5A0.945533E0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://developer.netscape.com/viewsource/worldtime.gif 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 BqAADiABFqABHiACJqACXkIBAAA7 ------=_NextPart_000_0050_01C1D5A0.945533E0--