PageSourceSearch

https://www.astrolive.ch/wp-content/plugins/planetary-position/wid…?ver=e64a395ac728f7c175f9683e18aead1f

js astrolive.ch collected 2026-10-08 03:29:34 UTC 426,483 bytes, 17,091 lines download raw bytes

1/**
2 * Ephemeris namespace
3 */
4$ns = ephemeris = {};
5
6$ns.copy = function (target /*, source ... */) {
7	if (target) {
8		for (var i = arguments.length - 1; i > 0; i --) {
9			var source = arguments [i];
10			if (source && source.hasOwnProperty) {
11				for (var key in source) {
12					if (source.hasOwnProperty (key)) {
13						target [key] = source [key];
14					}
15				}
16			}
17		}
18	}
19    return target;
20};
21
22$ns.is = function (object, type) {
23	var typeName = Object.prototype.toString.call (object).slice (8, -1);
24	return (
25		object !== undefined &&
26		object !== null &&
27		type.name === typeName
28	);
29};
30
31$ns.make = function (context, path) {
32	if ($is (context, String)) {
33		path = context;
34		context = document;
35	}
36
37	if (path) {
38		var paths = path.split ('.');
39		var key = paths.shift ();
40		context [key] = context [key] || {};
41		context = $make (context [key], paths.join ('.'));
42	}
43	return context;
44};
45
46$ns.define = function (context, path, object) {
47	$copy ($make (context, path), object);
48};
49
50$ns.assert = function (variable, value) {
51	if (variable != value) {
52		throw 'Assertion failed: ' + variable + ' != ' + value + '!';
53	}
54};
55
56
57$ns = ephemeris.astronomy = {};
58
59$ns = ephemeris.astronomy.moshier = {};
60
61
62$ns.constant = {
63	/* Standard epochs.  Note Julian epochs (J) are measured in
64	 * years of 365.25 days.
65	 */
66	j2000: 2451545.0,	/* 2000 January 1.5 */
67	b1950: 2433282.423,	/* 1950 January 0.923 Besselian epoch */
68	j1900: 2415020.0,	/* 1900 January 0, 12h UT */
69	RTOH: 12.0 / Math.PI, /* Radians to hours, minutes, seconds */
70
71
72	/* Conversion factors between degrees and radians */
73	DTR: 1.7453292519943295769e-2,
74	RTD: 5.7295779513082320877e1,
75	RTS: 2.0626480624709635516e5, /* arc seconds per radian */
76	STR: 4.8481368110953599359e-6, /* radians per arc second */
77
78	TPI: 2.0 * Math.PI,
79
80	date: {}, /* Input date */
81
82/*	tlong: -71.13,	 Cambridge, Massachusetts */ // input for kinit
83/*	tlat: 42.38,  geocentric */ // input for kinit
84/*	glat: 42.27,  geodetic */ // input for kinit
85
86	/* Parameters for calculation of azimuth and elevation
87	 */
88	attemp: 12.0,	/* atmospheric temperature, degrees Centigrade */ // input for kinit
89	atpress: 1010.0, /* atmospheric pressure, millibars */ // input for kinit
90
91	/* If the following number
92	 * is nonzero, then the program will return it for delta T
93	 * and not calculate anything.
94	 */
95	dtgiven: 0.0, // input for kinit
96
97	/* Distance from observer to center of earth, in earth radii
98	 */
99	trho: 0.9985,
100	flat: 298.257222,
101	height: 0.0,
102	truepos: 0,
103
104	/* Radius of the earth in au
105	 Thanks to Min He <[email protected]> for pointing out
106	 this needs to be initialized early.  */
107	Rearth: 0.0, // calculated in kinit
108
109	/* Constants used elsewhere. These are DE403 values. */
110	aearth: 6378137.,  /* Radius of the earth, in meters.  */
111	au: 1.49597870691e8, /* Astronomical unit, in kilometers.  */
112	emrat: 81.300585,  /* Earth/Moon mass ratio.  */
113	Clight: 2.99792458e5,  /* Speed of light, km/sec  */
114	Clightaud: 0.0, /* C in au/day  */
115
116	/* approximate motion of right ascension and declination
117	 * of object, in radians per day
118	 */
119	dradt: 0.0,
120	ddecdt: 0.0,
121
122	SE: 0.0,	/* earth-sun distance */
123	SO: 0.0,	/* object-sun distance */
124	EO: 0.0,	/* object-earth distance */
125
126	pq: 0.0,	/* cosine of sun-object-earth angle */
127	ep: 0.0,	/* -cosine of sun-earth-object angle */
128	qe: 0.0,	/* cosine of earth-sun-object angle */
129
130	/* correction vector, saved for display  */
131	dp: [],
132
133	/*
134	 * Current kepler body
135	 */
136	body: {}
137};
138
139$ns.julian = {};
140
141$ns.julian.calc = function (date) {
142	var centuries;
143	var year;
144	var month;
145	var b = 0;
146	var c;
147	var e;
148
149	/* The origin should be chosen to be a century year
150	 * that is also a leap year.  We pick 4801 B.C.
151	 */
152	year = date.year + 4800;
153	if (date.year < 0) {
154		year += 1;
155	}
156
157	/* The following magic arithmetic calculates a sequence
158	 * whose successive terms differ by the correct number of
159	 * days per calendar month.  It starts at 122 = March; January
160	 * and February come after December.
161	 */
162	month = date.month;
163	if (month <= 2) {
164		month += 12;
165		year -= 1;
166	}
167	e = Math.floor ((306 * (month + 1)) / 10);
168
169	// number of centuries
170	centuries = Math.floor (year / 100);
171
172	if (date.year <= 1582) {
173		if (date.year == 1582) {
174			if (date.month < 10) {
175				b = -38;
176			}
177			if (date.month > 10 || date.day >= 15) {
178				// number of century years that are not leap years
179				b = Math.floor ((centuries / 4) - centuries);
180			}
181		}
182		else { b = -38; } //**** additional line to fix the bug *****
183	} else {
184		b = Math.floor ((centuries / 4) - centuries);
185	}
186
187	// Julian calendar years and leap years
188	c = Math.floor ((36525 * year) / 100);
189
190	/* Add up these terms, plus offset from J 0 to 1 Jan 4801 B.C.
191	 * Also fudge for the 122 days from the month algorithm.
192	 */
193	date.julianDate = b + c + e + date.day - 32167.5;
194
195	// Add time
196	date.julianTime = (3600.0 * date.hours + 60.0 * date.minutes + date.seconds) / 86400.
1960;
197
198	date.julian = date.julianDate + date.julianTime;
199
200	date.j2000 = 2000.0 + (date.julian - $const.j2000) / 365.25;
201	date.b1950 = 1950.0 + (date.julian - $const.b1950) / 365.25;
202	date.j1900 = 1900.0 + (date.julian - $const.j1900) / 365.25;
203
204	return date.julian;
205};
206
207$ns.julian.toGregorian = function (date) {
208	var month, day; // int
209	var year, a, c, d, x, y, jd; // int
210	var BC; // int
211	var dd; // double
212	var J = date.julian;
213
214	/* January 1.0, 1 A.D. */
215	if( J < 1721423.5 ) {
216		BC = 1;
217	} else {
218		BC = 0;
219	}
220
221	jd = Math.floor (J + 0.5); /* round Julian date up to integer */
222
223	/* Find the number of Gregorian centuries
224	 * since March 1, 4801 B.C.
225	 */
226	a = Math.floor ((100 * jd + 3204500)/3652425);
227
228	/* Transform to Julian calendar by adding in Gregorian century years
229	 * that are not leap years.
230	 * Subtract 97 days to shift origin of JD to March 1.
231	 * Add 122 days for magic arithmetic algorithm.
232	 * Add four years to ensure the first leap year is detected.
233	 */
234	c = jd + 1486;
235	if( jd >= 2299160.5 ) {
236		c += a - Math.floor (a / 4);
237	} else {
238		c += 38;
239	}
240	/* Offset 122 days, which is where the magic arithmetic
241	 * month formula sequence starts (March 1 = 4 * 30.6 = 122.4).
242	 */
243	d = Math.floor ((100 * c - 12210)/36525);
244	/* Days in that many whole Julian years */
245	x = Math.floor ((36525 * d) / 100);
246
247	/* Find month and day. */
248	y = Math.floor (((c-x) * 100) / 3061);
249	day = Math.floor (c - x - Math.floor ((306 * y) / 10));
250	month = Math.floor (y - 1);
251	if ( y > 13 ) {
252		month -= 12;
253	}
254
255	/* Get the year right. */
256	year = d - 4715;
257	if (month > 2 ) {
258		year -= 1;
259	}
260
261	/* Fractional part of day. */
262	dd = day + J - jd + 0.5;
263
264	if (BC) {
265		year = year - 1;
266	}
267
268	date.year = year;
269	date.month = month;
270
271	date.day = Math.floor (dd);
272
273	/* Display fraction of calendar day
274	 * as clock time.
275	 */
276	a = Math.floor (dd);
277	dd = dd - a;
278	x = 2.0 * Math.PI * dd;
279
280	$copy (date, $util.hms (x));
281
282	return date;
283};
284
285$ns.delta = {};
286
287/**
288 * Morrison and Stephenson (2004)
289 * This table covers -1000 through 1700 in 100-year steps.
290 * Values are in whole seconds.
291 * Estimated standard error at -1000 is 640 seconds; at 1600, 20 seconds.
292 * The first value in the table has been adjusted 28 sec for
293 * continuity with their long-term quadratic extrapolation formula.
294 * The last value in this table agrees with the AA table at 1700,
295 * so there is no discontinuity at either endpoint.
296 */
297$ns.delta.m_s = [
298	/* -1000 to -100 */
299	25428, 23700, 22000, 21000, 19040, 17190, 15530, 14080, 12790, 11640,
300	/* 0 to 900 */
301	10580, 9600, 8640, 7680, 6700, 5710, 4740, 3810, 2960, 2200,
302	/* 1000 to 1700 */
303	1570, 1090, 740, 490, 320, 200, 120, 9
304];
305
306/**
307 * Entries prior to 1955 in the following table are from
308 * the 1984 Astronomical Almanac and assume ndot = -26.0.
309 * For dates prior to 1700, the above table is used instead of this one.
310 */
311$ns.delta.dt = [
312	/* 1620.0 thru 1659.0 */
313	12400, 11900, 11500, 11000, 10600, 10200, 9800, 9500, 9100, 8800,
314	8500, 8200, 7900, 7700, 7400, 7200, 7000, 6700, 6500, 6300,
315	6200, 6000, 5800, 5700, 5500, 5400, 5300, 5100, 5000, 4900,
316	4800, 4700, 4600, 4500, 4400, 4300, 4200, 4100, 4000, 3800,
317	/* 1660.0 thru 1699.0 */
318	3700, 3600, 3500, 3400, 3300, 3200, 3100, 3000, 2800, 2700,
319	2600, 2500, 2400, 2300, 2200, 2100, 2000, 1900, 1800, 1700,
320	1600, 1500, 1400, 1400, 1300, 1200, 1200, 1100, 1100, 1000,
321	1000, 1000, 900, 900, 900, 900, 900, 900, 900, 900,
322	/* 1700.0 thru 1739.0 */
323	900, 900, 900, 900, 900, 900, 900, 900, 1000, 1000,
324	1000, 1000, 1000, 1000, 1000, 1000, 1000, 1100, 1100, 1100,
325	1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
326	1100, 1100, 1100, 1100, 1200, 1200, 1200, 1200, 1200, 1200,
327	/* 1740.0 thru 1779.0 */
328	1200, 1200, 1200, 1200, 1300, 1300, 1300, 1300, 1300, 1300,
329	1300, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1500, 1500,
330	1500, 1500, 1500, 1500, 1500, 1600, 1600, 1600, 1600, 1600,
331	1600, 1600, 1600, 1600, 1600, 1700, 1700, 1700, 1700, 1700,
332	/* 1780.0 thru 1799.0 */
333	1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
334	1700, 1700, 1600, 1600, 1600, 1600, 1500, 1500, 1400, 1400,
335	/* 1800.0 thru 1819.0 */
336	1370, 1340, 1310, 1290, 1270, 1260, 1250, 1250, 1250, 1250,
337	1250, 1250, 1250, 1250, 1250, 1250, 1250, 1240, 1230, 1220,
338	/* 1820.0 thru 1859.0 */
339	1200, 1170, 1140, 1110, 1060, 1020, 960, 910, 860, 800,
340	750, 700, 660, 630, 600, 580, 570, 560, 560, 560,
341	570, 580, 590, 610, 620, 630, 650, 660, 680, 690,
342	710, 720, 730, 740, 750, 760, 770, 770, 780, 780,
343	/* 1860.0 thru 1899.0 */
344	788, 782, 754, 697, 640, 602, 541, 410, 292, 182,
345	161, 10, -102, -128, -269, -324, -364, -454, -471, -511,
346	-540, -542, -520, -546, -546, -579, -563, -564, -580, -566,
347	-587, -601, -619, -664, -644, -647, -609, -576, -466, -374,
348	/* 1900.0 thru 1939.0 */
349	-272, -154, -2, 124, 264, 386, 537, 614, 775, 913,
350	1046, 1153, 1336, 1465, 1601, 1720, 1824, 1906, 2025, 2095,
351	2116, 2225, 2241, 2303, 2349, 2362, 2386, 2449, 2434, 2408,
352	2402, 2400, 2387, 2395, 2386, 2393, 2373, 2392, 2396, 2402,
353	/* 1940.0 thru 1979.0 */
354	2433, 2483, 2530, 2570, 2624, 2677, 2728, 2778, 2825, 2871,
355	2915, 2957, 2997, 3036, 3072, 3107, 3135, 3168, 3218, 3268,
356	3315, 3359, 3400, 3447, 3503, 3573, 3654, 3743, 3829, 3920,
357
358	4018, 4117, 4223, 4337, 4448.41, 4547.61, 4645.67, 4752.14, 4853.44, 4958.62,
359
360/*	4018, 4117, 4223, 4337, 4449, 4548, 4646, 4752, 4853, 4959,*/
361	/* 1980.0 thru 2011.0 */
362	5053.87, 5138.08, 5216.68, 5295.65, 5378.82, 5434.27, 5487.13, 5532.22, 5581.97, 5630.00,
363/*	5054, 5138, 5217, 5296, 5379, 5434, 5487, 5532, 5582, 5630,*/
364	5685.53, 5756.53, 5830.92, 5912.18, 5998.45, 6078.54, 6162.87, 6229.51, 6296.59, 6346.73,
365/*	5686, 5757, 5831, 5912, 5998, 6078, 6163, 6230, 6297, 6347,*/
366	6382.85, 6409.08, 6429.98, 6447.34, 6457.36, 6468.76, 6484.52, 6514.64, 6545.74, 6577.68,
367/*	6383, 6409, 6430, 6447, 6457, 6469, 6485, 6515, 6546, 6578,*/
368	6606.99, 6632.46,
369	6660.30, 6690.69, 6728.10, 6764.39, 6810.24,
370/* 2010.0 - 2018.0 */
3716859.27,6896.76, 6922.02,
372/* Extrapolated values: 
373 * 2020 - 2027 */
3746936.12, 6935.93, 6929.45, 6918.33, 
3756910,   6900,   6890,   6880,   6880,
376
377];
378
379$ns.delta.demo = 0;
380$ns.delta.TABSTART = 1620;
381$ns.delta.TABEND = 2028;
382$ns.delta.TABSIZ = ($ns.delta.TABEND - $ns.delta.TABSTART + 1);
383
384$ns.delta.calc = function (date) {
385	var p, B; // double
386	var diff = [0, 0, 0, 0, 0, 0]; // int
387	var i, iy, k; // int
388	var Y;
389	var yat2=0;
390 	Y = 2000.0 + (date.julian - $const.j2000)/365.25;
391	var  yat=(Y-1955.5)/100;
392	if(Y <1955.5) { yat2=0.91072*yat*yat; }
393  var Ygreg = 2000.0 + (date.julian - $const.j2000)/365.2425;
394 	Y = 2000.0 + (date.julian - 2451544.5)/365.25;
395	if ($const.dtgiven) {
396		date.delta = $const.dtgiven; 
397	} else if (Y > this.TABEND) {
398			var B = (Y - 2000); var ans, ans2;
399			if (Y < 2500) {
400				ans = B * B * B * 121.0 / 30000000.0 + B * B / 1250.0 + B * 521.0 / 3000.0 + 64.0;
401				B2 = (this.TABEND - 2000);
402				ans2 = (B2 * B2 * B2 * 121.0 / 30000000.0) + (B2 * B2 / 1250.0) + (B2 * 521.0 / 3000.0) + 64.0;
403				/* we use a parable after 2500 */
404			} else {
405				B = 0.01 * (Y - 2000);
406				ans = B * B * 32.5 + 42.5;
407			}
408			if (Y <= (this.TABEND+100.0)) {
409				var ans3 = this.dt[this.TABSIZ-1]*0.01;
410				dd = (ans2 - ans3);
411				ans += dd * (Y - (this.TABEND + 100)) * 0.01;
412			}
413			date.delta = ans/100;
414		} else if (date.julian > 2435108.5) {
415	var d = [];
416//  if (Y <= tabend) {
417    var p = Math.floor(Y);
418    var iy = Math.floor(p - this.TABSTART);
419    /* Zeroth order estimate is value at start of year */
420    var ans = this.dt[iy];
421    var k = iy + 1;
422    if(!( k >= this.TABSIZ )) {
423    p = Y - p; 
424    /* First order interpolated value */
425    ans += p*(this.dt[k] - this.dt[iy]);
426    if(!((iy-1 < 0) || (iy+2 >= this.TABSIZ)) ) {
427    /* Make table of first differences */
428    k = iy - 2;
429    for( i=0; i<5; i++ ) {
430      if( (k < 0) || (k+1 >= this.TABSIZ) ) 
431	d[i] = 0;
432      else
433	d[i] = this.dt[k+1] - this.dt[k];
434      k += 1;
435    }
436    /* Compute second differences */
437    for( i=0; i<4; i++ ) {
438      d[i] = d[i+1] - d[i];
439    }
440    var B = 0.25*p*(p-1.0);
441    ans += B*(d[1] + d[2]);
442    if(!( iy+2 >= this.TABSIZ) ) {
443    /* Compute third differences */
444    for( i=0; i<3; i++ ) {
445      d[i] = d[i+1] - d[i];
446    }
447    B = 2.0*B/3.0;
448    ans += (p-0.5)*B*d[1];
449    if(!( (iy-2 < 0) || (iy+3 > this.TABSIZ) )) {
450    /* Compute fourth differences */
451    for( i=0; i<2; i++ )
452      d[i] = d[i+1] - d[i];
453    B = 0.125*B*(p+1.0)*(p-2.0);
454    ans += B*(d[0] + d[1]);
455}
456}
457}
458}
459if (Y < 1955.0) {
460    B = (Ygreg - 1955.0);
461    var tid =  -0.000091 * (-25.826+25.850) * B * B;
462    ans += tid;
463}
464    date.delta = ans/10000.0;
465} else if (date.julian < 2435108.5) {
466
467var NDTCF16 = 54; 
468var dtcf16 =
469[
470/*00*/ [1458085.5, 1867156.5, 20550.593,-21268.478, 11863.418, -4541.129], /* ybeg=-720, yend= 400 */
471/*01*/ [1867156.5, 2086302.5,  6604.404, -5981.266,  -505.093,  1349.609], /* ybeg= 400, yend=1000 */
472/*02*/ [2086302.5, 2268923.5,  1467.654, -2452.187,  2460.927, -1183.759], /* ybeg=1000, yend=1500 */
473/*03*/ [2268923.5, 2305447.5,   292.635,  -216.322,   -43.614,    56.681], /* ybeg=1500, yend=1600 */
474/*04*/ [2305447.5, 2323710.5,    89.380,   -66.754,    31.607,   -10.497], /* ybeg=1600, yend=1650 */
475/*05*/ [2323710.5, 2349276.5,    43.736,   -49.043,     0.227,    15.811], /* ybeg=1650, yend=1720 */
476/*06*/ [2349276.5, 2378496.5,    10.730,    -1.321,    62.250,   -52.946], /* ybeg=1720, yend=1800 */
477/*07*/ [2378496.5, 2382148.5,    18.714,    -4.457,    -1.509,     2.507], /* ybeg=1800, yend=1810 */
478/*08*/ [2382148.5, 2385800.5,    15.255,     0.046,     6.012,    -4.634], /* ybeg=1810, yend=1820 */
479/*09*/ [2385800.5, 2389453.5,    16.679,    -1.831,    -7.889,     3.799], /* ybeg=1820, yend=1830 */
480/*10*/ [2389453.5, 2393105.5,    10.758,    -6.211,     3.509,    -0.388], /* ybeg=1830, yend=1840 */
481/*11*/ [2393105.5, 2396758.5,     7.668,    -0.357,     2.345,    -0.338], /* ybeg=1840, yend=1850 */
482/*12*/ [2396758.5, 2398584.5,     9.317,     1.659,     0.332,    -0.932], /* ybeg=1850, yend=1855 */
483/*13*/ [2398584.5, 2400410.5,    10.376,    -0.472,    -2.463,     1.596], /* ybeg=1855, yend=1860 */
484/*14*/ [2400410.5, 2402237.5,     9.038,    -0.610,     2.325,    -2.497], /* ybeg=1860, yend=1865 */
485/*15*/ [2402237.5, 2404063.5,     8.256,    -3.450,    -5.166,     2.729], /* ybeg=1865, yend=1870 */
486/*16*/ [2404063.5, 2405889.5,     2.369,    -5.596,     3.020,    -0.919], /* ybeg=1870, yend=1875 */
487/*17*/ [2405889.5, 2407715.5,    -1.126,    -2.312,     0.264,    -0.037], /* ybeg=1875, yend=1880 */
488/*18*/ [2407715.5, 2409542.5,    -3.211,    -1.894,     0.154,     0.562], /* ybeg=1880, yend=1885 */
489/*19*/ [2409542.5, 2411368.5,    -4.388,     0.101,     1.841,    -1.438], /* ybeg=1885, yend=1890 */
490/*20*/ [2411368.5, 2413194.5,    -3.884,    -0.531,    -2.473,     1.870], /* ybeg=1890, yend=1895 */
491/*21*/ [2413194.5, 2415020.5,    -5.017,     0.134,     3.138,    -0.232], /* ybeg=1895, yend=1900 */
492/*22*/ [2415020.5, 2416846.5,    -1.977,     5.715,     2.443,    -1.257], /* ybeg=1900, yend=1905 */
493/*23*/ [2416846.5, 2418672.5,     4.923,     6.828,    -1.329,     0.720], /* ybeg=1905, yend=1910 */
494/*24*/ [2418672.5, 2420498.5,    11.142,     6.330,     0.831,    -0.825], /* ybeg=1910, yend=1915 */
495/*25*/ [2420498.5, 2422324.5,    17.479,     5.518,    -1.643,     0.262], /* ybeg=1915, yend=1920 */
496/*26*/ [2422324.5, 2424151.5,    21.617,     3.020,    -0.856,     0.008], /* ybeg=1920, yend=1925 */
497/*27*/ [2424151.5, 2425977.5,    23.789,     1.333,    -0.831,     0.127], /* 
497ybeg=1925, yend=1930 */
498/*28*/ [2425977.5, 2427803.5,    24.418,     0.052,    -0.449,     0.142], /* ybeg=1930, yend=1935 */
499/*29*/ [2427803.5, 2429629.5,    24.164,    -0.419,    -0.022,     0.702], /* ybeg=1935, yend=1940 */
500/*30*/ [2429629.5, 2431456.5,    24.426,     1.645,     2.086,    -1.106], /* ybeg=1940, yend=1945 */
501/*31*/ [2431456.5, 2433282.5,    27.050,     2.499,    -1.232,     0.614], /* ybeg=1945, yend=1950 */
502/*32*/ [2433282.5, 2434378.5,    28.932,     1.127,     0.220,    -0.277], /* ybeg=1950, yend=1953 */
503/*33*/ [2434378.5, 2435473.5,    30.002,     0.737,    -0.610,     0.631], /* ybeg=1953, yend=1956 */
504/*34*/ [2435473.5, 2436569.5,    30.760,     1.409,     1.282,    -0.799], /* ybeg=1956, yend=1959 */
505/*35*/ [2436569.5, 2437665.5,    32.652,     1.577,    -1.115,     0.507], /* ybeg=1959, yend=1962 */
506/*36*/ [2437665.5, 2438761.5,    33.621,     0.868,     0.406,     0.199], /* ybeg=1962, yend=1965 */
507/*37*/ [2438761.5, 2439856.5,    35.093,     2.275,     1.002,    -0.414], /* ybeg=1965, yend=1968 */
508/*38*/ [2439856.5, 2440952.5,    37.956,     3.035,    -0.242,     0.202], /* ybeg=1968, yend=1971 */
509/*39*/ [2440952.5, 2442048.5,    40.951,     3.157,     0.364,    -0.229], /* ybeg=1971, yend=1974 */
510/*40*/ [2442048.5, 2443144.5,    44.244,     3.198,    -0.323,     0.172], /* ybeg=1974, yend=1977 */
511/*41*/ [2443144.5, 2444239.5,    47.291,     3.069,     0.193,    -0.192], /* ybeg=1977, yend=1980 */
512/*42*/ [2444239.5, 2445335.5,    50.361,     2.878,    -0.384,     0.081], /* ybeg=1980, yend=1983 */
513/*43*/ [2445335.5, 2446431.5,    52.936,     2.354,    -0.140,    -0.166], /* ybeg=1983, yend=1986 */
514/*44*/ [2446431.5, 2447527.5,    54.984,     1.577,    -0.637,     0.448], /* ybeg=1986, yend=1989 */
515/*45*/ [2447527.5, 2448622.5,    56.373,     1.649,     0.709,    -0.277], /* ybeg=1989, yend=1992 */
516/*46*/ [2448622.5, 2449718.5,    58.453,     2.235,    -0.122,     0.111], /* ybeg=1992, yend=1995 */
517/*47*/ [2449718.5, 2450814.5,    60.677,     2.324,     0.212,    -0.315], /* ybeg=1995, yend=1998 */
518/*48*/ [2450814.5, 2451910.5,    62.899,     1.804,    -0.732,     0.112], /* ybeg=1998, yend=2001 */
519/*49*/ [2451910.5, 2453005.5,    64.082,     0.675,    -0.396,     0.193], /* ybeg=2001, yend=2004 */
520/*50*/ [2453005.5, 2454101.5,    64.555,     0.463,     0.184,    -0.008], /* ybeg=2004, yend=2007 */
521/*51*/ [2454101.5, 2455197.5,    65.194,     0.809,     0.161,    -0.101], /* ybeg=2007, yend=2010 */
522/*52*/ [2455197.5, 2456293.5,    66.063,     0.828,    -0.142,     0.168], /* ybeg=2010, yend=2013 */
523/*53*/ [2456293.5, 2457388.5,    66.917,     1.046,     0.360,    -0.282], /* ybeg=2013, yend=2016 */
524];
525var irec, i,t,dt;
526  // after the year -720 get value from spline curve
527  for (i = 0; i < NDTCF16; i++) {
528    if (date.julian < dtcf16[i][0]) { break; }
529    if (date.julian < dtcf16[i][1]) {
530      irec = i;
531      break;
532    }
533  }
534  if (irec >= 0) {
535    t = (date.julian - dtcf16[irec][0]) / (dtcf16[irec][1] - dtcf16[irec][0]);
536    dt = dtcf16[irec][2] + dtcf16[irec][3] * t + dtcf16[irec][4] * t * t + dtcf16[irec][5] * t * t * t;
537  // for earlier epochs, use long term parabola
538  } else if (Ygreg < -720) {
539    t = (Ygreg - 1825) / 100.0;
540    dt = -320 + 32.5 * t * t;
541    dt -= 179.7337208; // to make curve continous on 1 Jan -720 (D. Koch)
542  // future
543  } else {
544    t = (Ygreg - 1825) / 100.0;
545    dt = -320 + 32.5 * t * t;
546    dt += 269.4790417; // to make curve continous on 1 Jan 2016 (D. Koch)
547  }
548    B = (Ygreg - 1955.0);
549    var tid =  -0.000091 * (-25.826+25.850) * B * B;
550    dt += tid;
551if (date.julian >= 2434108.5) {
552var xxx= (1.0 - (2435108.5 - date.julian) / 1000.0) * 0.6610218;
553dt += xxx;
554}
555
556
557 date.delta = dt/100;
558}
559	date.terrestrial = date.julian;
560	date.universal = date.terrestrial - date.delta / 86400.0;
561	return date.delta;
562};
563
564
565$ns.epsilon = {
566	/* The results of the program are returned in these
567	 * global variables:
568	 */
569	jdeps: -1.0, /* Date for which obliquity was last computed */
570	eps: 0.0, /* The computed obliquity in radians */
571	coseps: 0.0, /* Cosine of the obliquity */
572	sineps: 0.0 /* Sine of the obliquity */
573};
574
575
576$ns.epsilon.swi_ldp_peps = function(tjd, tpy) {
577
578/* functions for precession and ecliptic obliquity according to Vondrák et alii, 2011 */
579var AS2R= ($const.DTR / 3600.0);
580var D2PI = $const.TPI;
581var EPS0 = (84381.406 * AS2R);
582var NPOL_PEPS =4;
583var NPER_PEPS =10;
584var NPOL_PECL =4;
585var NPER_PECL =8;
586var NPOL_PEQU =4;
587var NPER_PEQU =14;
588
589/* for pre_peps(): */
590/* polynomials */
591var pepol= [
592  [+8134.017132, +84028.206305],
593  [+5043.0520035, +0.3624445],
594  [-0.00710733, -0.00004039],
595  [+0.000000271, -0.000000110]
596];
597
598/* periodics */
599var peper = [
600  [+409.90, +396.15, +537.22, +402.90, +417.15, +288.92, +4043.00, +306.00, +277.00, +203.00],
601  [-6908.287473, -3198.706291, +1453.674527, -857.748557, +1173.231614, -156.981465, +371.836550, -216.619040, +193.691479, +11.891524],
602  [+753.872780, -247.805823, +379.471484, -53.880558, -90.109153, -353.600190, -63.115353, -28.248187, +17.703387, +38.911307],
603  [-2845.175469, +449.844989, -1255.915323, +886.736783, +418.887514, +997.912441, -240.979710, +76.541307, -36.788069, -170.964086],
604  [-1704.720302, -862.308358, +447.832178, -889.571909, +190.402846, -56.564991, -296.222622, -75.859952, +67.473503, +3.014055]
605];
606
607/* for pre_pecl(): */
608/* polynomials */
609var pqpol = [
610  [+5851.607687, -1600.886300],
611  [-0.1189000, +1.1689818],
612  [-0.00028913, -0.00000020],
613  [+0.000000101, -0.000000437]
614];
615
616/* periodics */
617var pqper = [
618  [708.15, 2309, 1620, 492.2, 1183, 622, 882, 547],
619  [-5486.751211, -17.127623, -617.517403, 413.44294, 78.614193, -180.732815, -87.676083, 46.140315],
620  [-684.66156, 2446.28388, 399.671049, -356.652376, -186.387003, -316.80007, 198.296701, 101.135679], /* typo in publication fixed */
621  [667.66673, -2354.886252, -428.152441, 376.202861, 184.778874, 335.321713, -185.138669, -120.97283],
622  [-5523.863691, -549.74745, -310.998056, 421.535876, -36.776172, -145.278396, -34.74445, 22.885731]
623];
624
625/* for pre_pequ(): */
626/* polynomials */
627var xypol = [
628  [+5453.282155, -73750.930350],
629  [+0.4252841, -0.7675452],
630  [-0.00037173, -0.00018725],
631  [-0.000000152, +0.000000231]
632];
633
634/* periodics */
635var xyper = [
636  [256.75, 708.15, 274.2, 241.45, 2309, 492.2, 396.1, 288.9, 231.1, 1610, 620, 157.87, 220.3, 1200],
637  [-819.940624, -8444.676815, 2600.009459, 2755.17563, -167.659835, 871.855056, 44.769698, -512.313065, -819.415595, -538.071099, -189.793622, -402.922932, 179.516345, -9.814756],
638  [75004.344875, 624.033993, 1251.136893, -1102.212834, -2660.66498, 699.291817, 153.16722, -950.865637, 499.754645, -145.18821, 558.116553, -23.923029, -165.405086, 9.344131],
639  [81491.287984, 787.163481, 1251.296102, -1257.950837, -2966.79973, 639.744522, 131.600209, -445.040117, 584.522874, -89.756563, 524.42963, -13.549067, -210.157124, -44.919798],
640  [1558.515853, 7774.939698, -2219.534038, -2523.969396, 247.850422, -846.485643, -1393.124055, 368.526116, 749.045012, 444.704518, 235.934465, 374.049623, -171.33018, -22.899655]
641];
642  var i;
643  var npol = NPOL_PEPS;
644  var nper = NPER_PEPS;
645  var t, p, q, w, a, s, c;
646  t = (tjd  - 2451545.0) / 36525.0;
647  p = 0;
648  q = 0;
649  /* periodic terms */
650  for (i = 0; i < nper; i++) {
651    w = D2PI * t;
652    a = w / peper[0][i];
653    s = Math.sin(a);
654    c = Math.cos(a);
655    p += c * peper[1][i] + s * peper[3][i];
656    q += c * peper[2][i] + s * peper[4][i];
657  }
658  /* polynomial terms */
659  w = 1;
660  for (i = 0; i < npol; i++) {
661    p += pepol[i][0] * w;
662    q += pepol[i][1] * w;
663    w *= t;
664  }
665  /* both to radians */
666  p *=AS2R;// $const.STR;
667  q *=AS2R;// $const.STR;
668  /* return */
669if (tpy ) { return p; }
670  return q;
671};
672
673$ns.epsilon.calc = function (date) {
674	var T; // double
675	if (this.jdeps == date.julian) { return; }
676	this.eps = this.swi_ldp_peps(date.julian);
677	this.coseps = Math.cos( this.eps );
678	this.sineps = Math.sin( this.eps );
679	this.jdeps = date.julian;
680};
681
682
683
684
685$ns.lonlat = {};
686
687$ns.lonlat.calc = function (pp, date, polar, ofdate, result) {
688	var s = [], x, y, z, yy, zz, r; // double
689	var i; // int
690
691	result = result || {};
692
693	/* Make local copy of position vector
694	 * and calculate radius.
695	 */
696	r = 0.0;
697	for( i=0; i<3; i++ ) {
698		x = pp [i];
699		s [i] = x;
700		r += x * x;
701	}
702	r = Math.sqrt(r);
703
704	/* Precess to equinox of date J
705	 */
706	if( ofdate ) {
707		$moshier.precess.calc ( s, date, -1 );
708	}
709
710	/* Convert from equatorial to ecliptic coordinates
711	 */
712	$moshier.epsilon.calc (date);
713	yy = s[1];
714	zz = s[2];
715	x  = s[0];
716	y  =  $moshier.epsilon.coseps * yy  +  $moshier.epsilon.sineps * zz;
717	z  = -$moshier.epsilon.sineps * yy  +  $moshier.epsilon.coseps * zz;
718
719	yy = $util.zatan2( x, y );
720	zz = Math.asin( z / r );
721
722	// longitude and latitude in decimal
723	polar[0] = yy;
724	polar[1] = zz;
725	polar[2] = r;
726
727	// longitude and latitude in h,m,s
728	polar [3] = $util.dms (polar[0]);
729	polar [4] = $util.dms (polar[1]);
730
731	result [0] = polar [0];
732	result [1] = polar [1];
733	result [2] = polar [2];
734	result [3] = polar [3];
735	result [4] = polar [4];
736
737	return result;
738};
739
740$ns.gplan = {
741	/* From Simon et al (1994)  */
742	freqs: [
743		/* Arc sec per 10000 Julian years.  */
744		53810162868.8982,
745		21066413643.3548,
746		12959774228.3429,
747		6890507749.3988,
748		1092566037.7991,
749		439960985.5372,
750		154248119.3933,
751		78655032.0744,
752		52272245.1795
753	],
754
755	phases: [
756		/* Arc sec.  */
757		252.25090552 * 3600.,
758		181.97980085 * 3600.,
759		100.46645683 * 3600.,
760		355.43299958 * 3600.,
761		34.35151874 * 3600.,
762		50.07744430 * 3600.,
763		314.05500511 * 3600.,
764		304.34866548 * 3600.,
765		860492.1546
766	],
767
768	ss: [],
769	cc: [],
770
771	Args: [],
772	LP_equinox: 0,
773	NF_arcsec: 0,
774	Ea_arcsec: 0,
775	pA_precession: 0
776
777};
778
779/*
780 Routines to chew through tables of perturbations.
781*/
782$ns.gplan.calc = function (date, body_ptable, polar) {
783	var su, cu, sv, cv, T; // double
784	var t, sl, sb, sr; // double
785	var i, j, k, m, n, k1, ip, np, nt; // int
786	var p; // char array
787	var pl; // double array
788	var pb; // double array
789	var pr; // double array
790
791	T = (date.julian - $const.j2000) / body_ptable.timescale;
792	n = body_ptable.maxargs;
793	/* Calculate sin( i*MM ), etc. for needed multiple angles.  */
794	for (i = 0; i < n; i++) {
795		if ((j = body_ptable.max_harmonic[i]) > 0)
796		{
797			sr = ($util.mods3600 (this.freqs [i] * T) + this.phases [i]) * $const.STR;
798			this.sscc (i, sr, j);
799		}
800	}
801
802	/* Point to start of table of arguments. */
803	p = body_ptable.arg_tbl;
804
805	/* Point to tabulated cosine and sine amplitudes.  */
806	pl = body_ptable.lon_tbl;
807	pb = body_ptable.lat_tbl;
808	pr = body_ptable.rad_tbl;
809
810	sl = 0.0;
811	sb = 0.0;
812	sr = 0.0;
813
814	var p_i = 0;
815	var pl_i = 0;
816	var pb_i = 0;
817	var pr_i = 0;
818
819	for (;;) {
820		/* argument of sine and cosine */
821		/* Number of periodic arguments. */
822		np = p [p_i ++]; // np = *p++
823		if (np < 0) {
824			break;
825		}
826		if (np == 0) { /* It is a polynomial term.  */
827			nt = p [p_i ++]; // nt = *p++
828			/* Longitude polynomial. */
829			cu = pl [pl_i ++]; // cu = *pl++;
830			for (ip = 0; ip < nt; ip ++) {
831				cu = cu * T + pl [pl_i ++]; //*pl++;
832			}
833			sl +=  $util.mods3600 (cu);
834			/* Latitude polynomial. */
835			cu = pb [pb_i ++];//*pb++;
836			for (ip = 0; ip < nt; ip++)
837			{
838				cu = cu * T + pb [pb_i ++]; //*pb++;
839			}
840			sb += cu;
841			/* Radius polynomial. */
842			cu = pr [pr_i ++]; //*pr++;
843			for (ip = 0; ip < nt; ip++)
844			{
845				cu = cu * T + pr [pr_i ++]; //*pr++;
846			}
847			sr += cu;
848			continue;
849		}
850		k1 = 0;
851		cv = 0.0;
852		sv = 0.0;
853		for (ip = 0; ip < np; ip++)
854		{
855			/* What harmonic.  */
856			j = p [p_i ++]; //*p++;
857			/* Which planet.  */
858			m = p [p_i ++] - 1; // *p++ - 1
859			if (j)
860			{
861				k = j;
862				if (j < 0)
863					k = -k;
864				k -= 1;
865				su = this.ss[m][k];	/* sin(k*angle) */
866				if (j < 0)
867					su = -su;
868				cu = this.cc[m][k];
869				if (k1 == 0)
870				{		/* set first angle */
871					sv = su;
872					cv = cu;
873					k1 = 1;
874				}
875				else
876				{		/* combine angles */
877					t = su * cv + cu * sv;
878					cv = cu * cv - su * sv;
879					sv = t;
880				}
881			}
882		}
883		/* Highest power of T.  */
884		nt = p [p_i ++]; //*p++;
885		/* Longitude. */
886		cu = pl [pl_i ++]; //*pl++;
887		su = pl [pl_i ++]; //*pl++;
888		for (ip = 0; ip < nt; ip++)
889		{
890			cu = cu * T + pl [pl_i ++]; //*pl++;
891			su = su * T + pl [pl_i ++]; //*pl++;
892		}
893		sl += cu * cv + su * sv;
894		/* Latitiude. */
895		cu = pb [pb_i ++]; //*pb++;
896		su = pb [pb_i ++]; //*pb++;
897		for (ip = 0; ip < nt; ip++)
898		{
899			cu = cu * T + pb [pb_i ++]; //*pb++;
900			su = su * T + pb [pb_i ++]; //*pb++;
901		}
902		sb += cu * cv + su * sv;
903		/* Radius. */
904		cu = pr [pr_i ++]; //*pr++;
905		su = pr [pr_i ++]; //*pr++;
906		for (ip = 0; ip < nt; ip++)
907		{
908			cu = cu * T + pr [pr_i ++]; //*pr++;
909			su = su * T + pr [pr_i ++]; //*pr++;
910		}
911		sr += cu * cv + su * sv;
912	}
913
914	polar [0] = $const.STR * sl;
915	polar [1] = $const.STR * sb;
916	polar [2] = $const.STR * body_ptable.distance * sr + body_ptable.distance;
917};
918
919/* Prepare lookup table of sin and cos ( i*Lj )
920 * for required multiple angles
921 */
922$ns.gplan.sscc = function (k, arg, n) {
923	var cu, su, cv, sv, s; // double
924	var i; // int
925
926	su = Math.sin (arg);
927	cu = Math.cos (arg);
928	this.ss[k] = [];
929	this.cc[k] = [];
930
931	this.ss[k][0] = su;		/* sin(L) */
932	this.cc[k][0] = cu;		/* cos(L) */
933	sv = 2.0 * su * cu;
934	cv = cu * cu - su * su;
935	this.ss[k][1] = sv;		/* sin(2L) */
936	this.cc[k][1] = cv;
937	for (i = 2; i < n; i++)
938	{
939		s = su * cv + cu * sv;
940		cv = cu * cv - su * sv;
941		sv = s;
942		this.ss[k][i] = sv;		/* sin( i+1 L ) */
943		this.cc[k][i] = cv;
944	}
945};
946
947/* Compute mean elements at Julian date J.  */
948$ns.gplan.meanElements = function (date) {
949	var x, T, T2; // double
950
951	/* Time variables.  T is in Julian centuries.  */
952	T = (date.julian - 2451545.0) / 36525.0;
953	T2 = T * T;
954
955	/* Mean longitudes of planets (Simon et al, 1994)
956	 .047" subtracted from constant term for offset to DE403 origin. */
957
958	/* Mercury */
959	x = $util.mods3600( 538101628.6889819 * T + 908103.213 );
960	x += (6.39e-6 * T
961		- 0.0192789) * T2;
962	this.Args[0] = $const.STR * x;
963
964	/* Venus */
965	x = $util.mods3600( 210664136.4335482 * T + 655127.236 );
966	x += (-6.27e-6  * T
967		+ 0.0059381) * T2;
968	this.Args[1] = $const.STR * x;
969
970	/* Earth  */
971	x = $util.mods3600( 129597742.283429 * T + 361679.198 );
972	x += (-5.23e-6 * T
973		- 2.04411e-2 ) * T2;
974	this.Ea_arcsec = x;
975	this.Args[2] = $const.STR * x;
976
977	/* Mars */
978	x = $util.mods3600(  68905077.493988 * T +  1279558.751 );
979	x += (-1.043e-5 * T
980		+ 0.0094264) * T2;
981	this.Args[3] = $const.STR * x;
982
983	/* Jupiter */
984	x = $util.mods3600( 10925660.377991 * T + 123665.420 );
985	x += ((((-3.4e-10 * T
986		+ 5.91e-8) * T
987		+ 4.667e-6) * T
988		+ 5.706e-5) * T
989		- 3.060378e-1)*T2;
990	this.Args[4] = $const.STR * x;
991
992	/* Saturn */
993	x = $util.mods3600( 4399609.855372 * T + 180278.752 );
994	x += (((( 8.3e-10 * T
995		- 1.452e-7) * T
996		- 1.1484e-5) * T
997		- 1.6618e-4) * T
998		+ 7.561614E-1)*T2;
999	this.Args[5] = $const.STR * x;
1000
1001	/* Uranus */
1002	x = $util.mods3600( 1542481.193933 * T + 1130597.971 )
1003		+ (0.00002156*T - 0.0175083)*T2;
1004	this.Args[6] = $const.STR * x;
1005
1006	/* Neptune */
1007	x = $util.mods3600( 786550.320744 * T + 1095655.149 )
1008		+ (-0.00000895*T + 0.0021103)*T2;
1009	this.Args[7] = $const.STR * x;
1010
1011	/* Copied from cmoon.c, DE404 version.  */
1012	/* Mean elongation of moon = D */
1013	x = $util.mods3600( 1.6029616009939659e+09 * T + 1.0722612202445078e+06 );
1014	x += (((((-3.207663637426e-013 * T
1015		+ 2.555243317839e-011) * T
1016		+ 2.560078201452e-009) * T
1017		- 3.702060118571e-005) * T
1018		+ 6.9492746836058421e-03) * T /* D, t^3 */
1019		- 6.7352202374457519e+00) * T2; /* D, t^2 */
1020	this.Args[9] = $const.STR * x;
1021
1022	/* Mean distance of moon from its ascending node = F */
1023	x = $util.mods3600( 1.7395272628437717e+09 * T + 3.3577951412884740e+05 );
1024	x += ((((( 4.474984866301e-013 * T
1025		+ 4.189032191814e-011) * T
1026		- 2.790392351314e-009) * T
1027		- 2.165750777942e-006) * T
1028		- 7.5311878482337989e-04) * T /* F, t^3 */
1029		- 1.3117809789650071e+01) * T2; /* F, t^2 */
1030	this.NF_arcsec = x;
1031	this.Args[10] = $const.STR * x;
1032
1033	/* Mean anomaly of sun = l' (J. Laskar) */
1034	x = $util.mods3600(1.2959658102304320e+08 * T + 1.2871027407441526e+06);
1035	x += ((((((((
1036		1.62e-20 * T
1037			- 1.0390e-17 ) * T
1038		- 3.83508e-15 ) * T
1039		+ 4.237343e-13 ) * T
1040		+ 8.8555011e-11 ) * T
1041		- 4.77258489e-8 ) * T
1042		- 1.1297037031e-5 ) * T
1043		+ 8.7473717367324703e-05) * T
1044		- 5.5281306421783094e-01) * T2;
1045	this.Args[11] = $const.STR * x;
1046
1047	/* Mean anomaly of moon = l */
1048	x = $util.mods3600( 1.7179159228846793e+09 * T + 4.8586817465825332e+05 );
1049	x += (((((-1.755312760154e-012 * T
1050		+ 3.452144225877e-011) * T
1051		- 2.506365935364e-008) * T
1052		- 2.536291235258e-004) * T
1053		+ 5.2099641302735818e-02) * T /* l, t^3 */
1054		+ 3.1501359071894147e+01) * T2; /* l, t^2 */
1055	this.Args[12] = $const.STR * x;
1056
1057	/* Mean longitude of moon, re mean ecliptic and equinox of date = L  */
1058	x = $util.mods3600( 1.7325643720442266e+09 * T + 7.8593980921052420e+05);
1059	x += ((((( 7.200592540556e-014 * T
1060		+ 2.235210987108e-010) * T
1061		- 1.024222633731e-008) * T
1062		- 6.073960534117e-005) * T
1063		+ 6.9017248528380490e-03) * T /* L, t^3 */
1064		- 5.6550460027471399e+00) * T2; /* L, t^2 */
1065	this.LP_equinox = x;
1066	this.Args[13] = $const.STR * x;
1067
1068	/* Precession of the equinox  */
1069	x = ((((((((( -8.66e-20*T - 4.759e-17)*T
1070		+ 2.424e-15)*T
1071		+ 1.3095e-12)*T
1072		+ 1.7451e-10)*T
1073		- 1.8055e-8)*T
1074		- 0.0000235316)*T
1075		+ 0.000076)*T
1076		+ 1.105414)*T
1077		+ 5028.791959)*T;
1078	/* Moon's longitude re fixed J2000 equinox.  */
1079	/*
1080	 Args[13] -= x;
1081	 */
1082	this.pA_precession = $const.STR * x;
1083
1084	/* Free librations.  */
1085	/* longitudinal libration 2.891725 years */
1086	x = $util.mods3600( 4.48175409e7 * T + 8.060457e5 );
1087	this.Args[14] = $const.STR * x;
1088	/* libration P, 24.2 years */
1089	x = $util.mods3600(  5.36486787e6 * T - 391702.8 );
1090	this.Args[15] = $const.STR * x;
1091
1092	/* libration W, 74.7 years. */
1093	x = $util.mods3600( 1.73573e6 * T );
1094	this.Args[17] = $const.STR * x;
1095};
1096
1097
1098/* Generic program to accumulate sum of trigonometric series
1099 in three variables (e.g., longitude, latitude, radius)
1100 of the same list of arguments.  */
1101$ns.gplan.calc3 = function (date, body_ptable, polar, body_number) {
1102	var i, j, k, m, n, k1, ip, np, nt; // int
1103	var p; // int array
1104	var pl; // double array
1105	var pb; // double array
1106	var pr; // double array
1107
1108	var su, cu, sv, cv; // double
1109	var T, t, sl, sb, sr; // double
1110
1111	this.meanElements (date);
1112
1113	T = (date.julian - $const.j2000) / body_ptable.timescale;
1114	n = body_ptable.maxargs;
1115	/* Calculate sin( i*MM ), etc. for needed multiple angles.  */
1116	for (i = 0; i < n; i++)
1117	{
1118		if ((j = body_ptable.max_harmonic [i]) > 0)
1119		{
1120			this.sscc (i, this.Args [i], j);
1121		}
1122	}
1123
1124	/* Point to start of table of arguments. */
1125	p = body_ptable.arg_tbl;
1126	/* Point to tabulated cosine and sine amplitudes.  */
1127	pl = body_ptable.lon_tbl;
1128	pb = body_ptable.lat_tbl;
1129	pr = body_ptable.rad_tbl;
1130
1131	sl = 0.0;
1132	sb = 0.0;
1133	sr = 0.0;
1134
1135	var p_i = 0;
1136	var pl_i = 0;
1137	var pb_i = 0;
1138	var pr_i = 0;
1139
1140	for (;;)
1141	{
1142		/* argument of sine and cosine */
1143		/* Number of periodic arguments. */
1144		np = p [p_i ++]; //*p++;
1145		if (np < 0)
1146			break;
1147		if (np == 0)
1148		{			/* It is a polynomial term.  */
1149			nt = p [p_i ++]; //*p++;
1150			/* "Longitude" polynomial (phi). */
1151			cu = pl [pl_i ++]; //*pl++;
1152			for (ip = 0; ip < nt; ip++)
1153			{
1154				cu = cu * T + pl [pl_i ++]; //*pl++;
1155			}
1156			/*	  sl +=  mods3600 (cu); */
1157			sl += cu;
1158			/* "Latitude" polynomial (theta). */
1159			cu = pb [pb_i ++]; //*pb++;
1160			for (ip = 0; ip < nt; ip++)
1161			{
1162				cu = cu * T + pb [pb_i ++]; //*pb++;
1163			}
1164			sb += cu;
1165			/* Radius polynomial (psi). */
1166			cu = pr [pr_i ++]; //*pr++;
1167			for (ip = 0; ip < nt; ip++)
1168			{
1169				cu = cu * T + pr [pr_i ++]; //*pr++;
1170			}
1171			sr += cu;
1172			continue;
1173		}
1174		k1 = 0;
1175		cv = 0.0;
1176		sv = 0.0;
1177		for (ip = 0; ip < np; ip++) {
1178			/* What harmonic.  */
1179			j = p [p_i ++]; //*p++;
1180			/* Which planet.  */
1181			m = p [p_i ++] - 1; //*p++ - 1;
1182			if (j) {
1183				/*	      k = abs (j); */
1184				if (j < 0)
1185					k = -j;
1186				else
1187					k = j;
1188				k -= 1;
1189				su = this.ss[m][k];	/* sin(k*angle) */
1190				if (j < 0)
1191					su = -su;
1192				cu = this.cc[m][k];
1193				if (k1 == 0)
1194				{		/* set first angle */
1195					sv = su;
1196					cv = cu;
1197					k1 = 1;
1198				}
1199				else
1200				{		/* combine angles */
1201					t = su * cv + cu * sv;
1202					cv = cu * cv - su * sv;
1203					sv = t;
1204				}
1205			}
1206		}
1207		/* Highest power of T.  */
1208		nt = p [p_i ++]; //*p++;
1209		/* Longitude. */
1210		cu = pl [pl_i ++]; //*pl++;
1211		su = pl [pl_i ++]; //*pl++;
1212		for (ip = 0; ip < nt; ip++) {
1213			cu = cu * T + pl [pl_i ++]; //*pl++;
1214			su = su * T + pl [pl_i ++]; //*pl++;
1215		}
1216		sl += cu * cv + su * sv;
1217		/* Latitiude. */
1218		cu = pb [pb_i ++]; //*pb++;
1219		su = pb [pb_i ++]; //*pb++;
1220		for (ip = 0; ip < nt; ip++)
1221		{
1222			cu = cu * T + pb [pb_i ++]; //*pb++;
1223			su = su * T + pb [pb_i ++]; //*pb++;
1224		}
1225		sb += cu * cv + su * sv;
1226		/* Radius. */
1227		cu = pr [pr_i ++]; //*pr++;
1228		su = pr [pr_i ++]; //*pr++;
1229		for (ip = 0; ip < nt; ip++)
1230		{
1231			cu = cu * T + pr [pr_i ++]; //*pr++;
1232			su = su * T + pr [pr_i ++]; //*pr++;
1233		}
1234		sr += cu * cv + su * sv;
1235	}
1236	t = body_ptable.trunclvl;
1237	polar[0] = this.Args[body_number - 1] + $const.STR * t * sl;
1238	polar[1] = $const.STR * t * sb;
1239	polar[2] = body_ptable.distance * (1.0 + $const.STR * t * sr);
1240};
1241
1242/* Generic program to accumulate sum of trigonometric series
1243 in two variables (e.g., longitude, radius)
1244 of the same list of arguments.  */
1245$ns.gplan.calc2 = function (date, body_ptable, polar) {
1246	var i, j, k, m, n, k1, ip, np, nt; // int
1247	var p; // int array
1248	var pl; // double array
1249	var pr; // double array
1250
1251	var su, cu, sv, cv; // double
1252	var T, t, sl, sr; // double
1253
1254	this.meanElements (date);
1255
1256	T = (date.julian - $const.j2000) / body_ptable.timescale;
1257	n = body_ptable.maxargs;
1258	/* Calculate sin( i*MM ), etc. for needed multiple angles.  */
1259	for (i = 0; i < n; i++)
1260	{
1261		if ((j = body_ptable.max_harmonic[i]) > 0)
1262		{
1263			this.sscc (i, this.Args[i], j);
1264		}
1265	}
1266
1267	/* Point to start of table of arguments. */
1268	p = body_ptable.arg_tbl;
1269	/* Point to tabulated cosine and sine amplitudes.  */
1270	pl = body_ptable.lon_tbl;
1271	pr = body_ptable.rad_tbl;
1272
1273	var p_i = 0;
1274	var pl_i = 0;
1275	var pr_i = 0;
1276
1277	sl = 0.0;
1278	sr = 0.0;
1279
1280	for (;;)
1281	{
1282		/* argument of sine and cosine */
1283		/* Number of periodic arguments. */
1284		np = p [p_i ++]; //*p++;
1285		if (np < 0)
1286			break;
1287		if (np == 0)
1288		{			/* It is a polynomial term.  */
1289			nt = p [p_i ++]; //*p++;
1290			/* Longitude polynomial. */
1291			cu = pl [pl_i ++]; //*pl++;
1292			for (ip = 0; ip < nt; ip++)
1293			{
1294				cu = cu * T + pl [pl_i ++]; //*pl++;
1295			}
1296			/*	  sl +=  mods3600 (cu); */
1297			sl += cu;
1298			/* Radius polynomial. */
1299			cu = pr [pr_i ++]; //*pr++;
1300			for (ip = 0; ip < nt; ip++)
1301			{
1302				cu = cu * T + pr [pr_i ++]; //*pr++;
1303			}
1304			sr += cu;
1305			continue;
1306		}
1307		k1 = 0;
1308		cv = 0.0;
1309		sv = 0.0;
1310		for (ip = 0; ip < np; ip++)
1311		{
1312			/* What harmonic.  */
1313			j = p [p_i ++]; //*p++;
1314			/* Which planet.  */
1315			m = p [p_i ++] - 1; //*p++ - 1;
1316			if (j)
1317			{
1318				/*	      k = abs (j); */
1319				if (j < 0)
1320					k = -j;
1321				else
1322					k = j;
1323				k -= 1;
1324				su = this.ss[m][k];	/* sin(k*angle) */
1325				if (j < 0)
1326					su = -su;
1327				cu = this.cc[m][k];
1328				if (k1 == 0)
1329				{		/* set first angle */
1330					sv = su;
1331					cv = cu;
1332					k1 = 1;
1333				}
1334				else
1335				{		/* combine angles */
1336					t = su * cv + cu * sv;
1337					cv = cu * cv - su * sv;
1338					sv = t;
1339				}
1340			}
1341		}
1342		/* Highest power of T.  */
1343		nt = p [p_i ++]; //*p++;
1344		/* Longitude. */
1345		cu = pl [pl_i ++]; //*pl++;
1346		su = pl [pl_i ++]; //*pl++;
1347		for (ip = 0; ip < nt; ip++)
1348		{
1349			cu = cu * T + pl [pl_i ++]; //*pl++;
1350			su = su * T + pl [pl_i ++]; //*pl++;
1351		}
1352		sl += cu * cv + su * sv;
1353		/* Radius. */
1354		cu = pr [pr_i ++]; //*pr++;
1355		su = pr [pr_i ++]; //*pr++;
1356		for (ip = 0; ip < nt; ip++)
1357		{
1358			cu = cu * T + pr [pr_i ++]; //*pr++;
1359			su = su * T + pr [pr_i ++]; //*pr++;
1360		}
1361		sr += cu * cv + su * sv;
1362	}
1363	t = body_ptable.trunclvl;
1364	polar[0] = t * sl;
1365	polar[2] = t * sr;
1366};
1367
1368/* Generic program to accumulate sum of trigonometric series
1369 in one variable.  */
1370$ns.gplan.calc1 = function (date, body_ptable) {
1371	var i, j, k, m, k1, ip, np, nt; // int
1372	var p; // int array
1373	var pl; // double array
1374
1375	var su, cu, sv, cv; // double
1376	var T, t, sl; // double
1377
1378	T = (date.julian - $const.j2000) / body_ptable.timescale;
1379	this.meanElements (date);
1380	/* Calculate sin( i*MM ), etc. for needed multiple angles.  */
1381	for (i = 0; i < this.Args.length; i++)
1382	{
1383		if ((j = body_ptable.max_harmonic[i]) > 0)
1384		{
1385			this.sscc (i, this.Args[i], j);
1386		}
1387	}
1388
1389	/* Point to start of table of arguments. */
1390	p = body_ptable.arg_tbl;
1391	/* Point to tabulated cosine and sine amplitudes.  */
1392	pl = body_ptable.lon_tbl;
1393
1394	sl = 0.0;
1395
1396	var p_i = 0;
1397	var pl_i = 0;
1398
1399	for (;;) {
1400		/* argument of sine and cosine */
1401		/* Number of periodic arguments. */
1402		np = p [p_i ++]; //*p++;
1403		if (np < 0)
1404			break;
1405		if (np == 0)
1406		{			/* It is a polynomial term.  */
1407			nt = p [p_i ++]; //*p++;
1408			cu = pl [pl_i ++]; //*pl++;
1409			for (ip = 0; ip < nt; ip++)
1410			{
1411				cu = cu * T + pl [pl_i ++]; //*pl++;
1412			}
1413			/*	  sl +=  mods3600 (cu); */
1414			sl += cu;
1415			continue;
1416		}
1417		k1 = 0;
1418		cv = 0.0;
1419		sv = 0.0;
1420		for (ip = 0; ip < np; ip++)
1421		{
1422			/* What harmonic.  */
1423			j = p [p_i ++]; //*p++;
1424			/* Which planet.  */
1425			m = p [p_i ++] - 1; //*p++ - 1;
1426			if (j)
1427			{
1428				/*	      k = abs (j); */
1429				if (j < 0)
1430					k = -j;
1431				else
1432					k = j;
1433				k -= 1;
1434				su = this.ss[m][k];	/* sin(k*angle) */
1435				if (j < 0)
1436					su = -su;
1437				cu = this.cc[m][k];
1438				if (k1 == 0)
1439				{		/* set first angle */
1440					sv = su;
1441					cv = cu;
1442					k1 = 1;
1443				}
1444				else
1445				{		/* combine angles */
1446					t = su * cv + cu * sv;
1447					cv = cu * cv - su * sv;
1448					sv = t;
1449				}
1450			}
1451		}
1452		/* Highest power of T.  */
1453		nt = p [p_i ++]; //*p++;
1454		/* Cosine and sine coefficients.  */
1455		cu = pl [pl_i ++]; //*pl++;
1456		su = pl [pl_i ++]; //*pl++;
1457		for (ip = 0; ip < nt; ip++)
1458		{
1459			cu = cu * T + pl [pl_i ++]; //*pl++;
1460			su = su * T + pl [pl_i ++]; //*pl++;
1461		}
1462		sl += cu * cv + su * sv;
1463	}
1464	return body_ptable.trunclvl * sl;
1465};
1466
1467/* Compute geocentric moon.  */
1468$ns.gplan.moon = function (date, rect, pol, arrr) {
1469	var x, cosB, sinB, cosL, sinL; // double
1470
1471	this.calc2 (date, $moshier.plan404.moonlr, pol);
1472	x = pol[0];
1473	x += this.LP_equinox;
1474	if (x < -6.48e5) {
1475		x += 1.296e6;
1476	}
1477	if (x > 6.48e5) {
1478		x -= 1.296e6;
1479	}
1480	pol[0] = $const.STR * x;
1481
1482	x = this.calc1 (date, $moshier.plan404.moonlat);
1483	pol[1] = $const.STR * x;
1484	x = (1.0 + $const.STR * pol[2]) * $moshier.plan404.moonlr.distance;
1485	pol[2] = x;
1486	/* Convert ecliptic polar to equatorial rectangular coordinates.  */
1487	$moshier.epsilon.calc (date);
1488	cosB = Math.cos(pol[1]);
1489	sinB = Math.sin(pol[1]);
1490	cosL = Math.cos(pol[0]);
1491	sinL = Math.sin(pol[0]);
1492	rect[0] = cosB * cosL * x;
1493	rect[1] = ($moshier.epsilon.coseps * cosB * sinL - $moshier.epsilon.sineps * sinB) * x;
1494	rect[2] = ($moshier.epsilon.sineps * cosB * sinL + $moshier.epsilon.coseps * sinB) * x;
1495
1496	arrr[0] = this.Args[13]*$const.RTD;
1497};
1498
1499$ns.precess = {
1500	/* In WILLIAMS and SIMON, Laskar's terms of order higher than t^4
1501	 have been retained, because Simon et al mention that the solution
1502	 is the same except for the lower order terms.  */
1503	pAcof: [
1504		/* Corrections to Williams (1994) introduced in DE403.  */
1505		-8.66e-10, -4.759e-8, 2.424e-7, 1.3095e-5, 1.7451e-4, -1.8055e-3,
1506		-0.235316, 0.076, 110.5414, 50287.91959
1507	],
1508	/* Pi from Williams' 1994 paper, in radians.  No change in DE403.  */
1509	nodecof: [
1510		6.6402e-16, -2.69151e-15, -1.547021e-12, 7.521313e-12, 1.9e-10,
1511		-3.54e-9, -1.8103e-7,  1.26e-7,  7.436169e-5,
1512		-0.04207794833,  3.052115282424
1513	],
1514	/* pi from Williams' 1994 paper, in radians.  No change in DE403.  */
1515	inclcof: [
1516		1.2147e-16, 7.3759e-17, -8.26287e-14, 2.503410e-13, 2.4650839e-11,
1517		-5.4000441e-11, 1.32115526e-9, -6.012e-7, -1.62442e-5,
1518		0.00227850649, 0.0
1519	]
1520};
1521
1522/* Precession of the equinox and ecliptic
1523 * from epoch Julian date J to or from J2000.0
1524 *
1525 * Subroutine arguments:
1526 *
1527 * R = rectangular equatorial coordinate vector to be precessed.
1528 *     The result is written back into the input vector.
1529 * J = Julian date
1530 * direction =
1531 *      Precess from J to J2000: direction = 1
1532 *      Precess from J2000 to J: direction = -1
1533 * Note that if you want to precess from J1 to J2, you would
1534 * first go from J1 to J2000, then call the program again
1535 * to go from J2000 to J2.
1536 */
1537$ns.precess.calc = function (R, date, direction) {
1538	var A, B, T, pA, W, z; // double
1539	var x = []; // double
1540	var p; // double array
1541	var p_i = 0;
1542	var i; // int
1543
1544	if( date.julian == $const.j2000 ) {
1545		return;
1546	}
1547	/* Each precession angle is specified by a polynomial in
1548	 * T = Julian centuries from J2000.0.  See AA page B18.
1549	 */
1550	T = (date.julian - $const.j2000) / 36525.0;
1551
1552	/* Implementation by elementary rotations using Laskar's expansions.
1553	 * First rotate about the x axis from the initial equator
1554	 * to the ecliptic. (The input is equatorial.)
1555	 */
1556	if (direction == 1) {
1557		$moshier.epsilon.calc (date); /* To J2000 */
1558	} else {
1559		$moshier.epsilon.calc ({julian: $const.j2000}); /* From J2000 */
1560	}
1561	x[0] = R[0];
1562	z = $moshier.epsilon.coseps*R[1] + $moshier.epsilon.sineps*R[2];
1563	x[2] = -$moshier.epsilon.sineps*R[1] + $moshier.epsilon.coseps*R[2];
1564	x[1] = z;
1565
1566	/* Precession in longitude
1567	 */
1568	T /= 10.0; /* thousands of years */
1569	p = this.pAcof;
1570	pA = p [p_i ++]; //*p++;
1571	for( i=0; i<9; i++ ) {
1572		pA = pA * T + p [p_i ++]; //*p++;
1573	}
1574	pA *= $const.STR * T;
1575
1576	/* Node of the moving ecliptic on the J2000 ecliptic.
1577	 */
1578	p = this.nodecof;
1579	p_i = 0;
1580	W = p [p_i ++]; //*p++;
1581	for( i=0; i<10; i++ ) {
1582		W = W * T + p [p_i ++]; //*p++;
1583	}
1584
1585	/* Rotate about z axis to the node.
1586	 */
1587	if( direction == 1 ) {
1588		z = W + pA;
1589	} else {
1590		z = W;
1591	}
1592	B = Math.cos(z);
1593	A = Math.sin(z);
1594	z = B * x[0] + A * x[1];
1595	x[1] = -A * x[0] + B * x[1];
1596	x[0] = z;
1597
1598	/* Rotate about new x axis by the inclination of the moving
1599	 * ecliptic on the J2000 ecliptic.
1600	 */
1601	p = this.inclcof;
1602	p_i = 0;
1603	z = p [p_i ++]; //*p++;
1604	for( i=0; i<10; i++ ) {
1605		z = z * T + p [p_i ++]; //*p++;
1606	}
1607	if( direction == 1 ) {
1608		z = -z;
1609	}
1610	B = Math.cos(z);
1611	A = Math.sin(z);
1612	z = B * x[1] + A * x[2];
1613	x[2] = -A * x[1] + B * x[2];
1614	x[1] = z;
1615
1616	/* Rotate about new z axis back from the node.
1617	 */
1618	if( direction == 1 ) {
1619		z = -W;
1620	} else {
1621		z = -W - pA;
1622	}
1623	B = Math.cos(z);
1624	A = Math.sin(z);
1625	z = B * x[0] + A * x[1];
1626	x[1] = -A * x[0] + B * x[1];
1627	x[0] = z;
1628
1629	/* Rotate about x axis to final equator.
1630	 */
1631	if( direction == 1 ) {
1632		$moshier.epsilon.calc ({julian: $const.j2000});
1633	} else {
1634		$moshier.epsilon.calc ( date );
1635	}
1636	z = $moshier.epsilon.coseps * x[1] - $moshier.epsilon.sineps * x[2];
1637	x[2] = $moshier.epsilon.sineps * x[1] + $moshier.epsilon.coseps * x[2];
1638	x[1] = z;
1639
1640	for( i=0; i<3; i++ ) {
1641		R[i] = x[i];
1642	}
1643};
1644
1645$ns.util = {};
1646
1647$ns.util.mods3600 = function (value) {
1648	var result;
1649
1650	result = (value - 1.296e6 * Math.floor (value / 1.296e6));
1651
1652	return result;
1653};
1654
1655/* Reduce x modulo 2 pi
1656 */
1657$ns.util.modtp = function (x) {
1658	var y; // double
1659
1660	y = Math.floor ( x / $const.TPI );
1661	y = x - y * $const.TPI;
1662	while( y < 0.0 ) {
1663		y += $const.TPI;
1664	}
1665	while( y >= $const.TPI ) {
1666		y -= $const.TPI;
1667	}
1668	return y;
1669};
1670
1671/* Reduce x modulo 360 degrees
1672 */
1673$ns.util.mod360 = function (x) {
1674	var k; // int
1675	var y; // double
1676
1677	k = Math.floor (x / 360.0);
1678	y = x  -  k * 360.0;
1679	while( y < 0.0 ) {
1680		y += 360.0;
1681	}
1682	while( y > 360.0 ) {
1683		y -= 360.0;
1684	}
1685	return y;
1686};
1687
1688/* Reduce x modulo 30 degrees
1689 */
1690$ns.util.mod30 = function (x) {
1691	var k; // int
1692	var y; // double
1693
1694	k = Math.floor (x / 30.0);
1695	y = x  -  k * 30.0;
1696	while( y < 0.0 ) {
1697		y += 30.0;
1698	}
1699	while( y > 30.0 ) {
1700		y -= 30.0;
1701	}
1702	return y;
1703};
1704
1705$ns.util.zatan2 = function ( x, y ) {
1706	var z, w; // double
1707	var code; // short
1708
1709	code = 0;
1710
1711	if( x < 0.0 ) {
1712		code = 2;
1713	}
1714	if( y < 0.0 ) {
1715		code |= 1;
1716	}
1717
1718	if( x == 0.0 ) {
1719		if( code & 1 ) {
1720			return 1.5 * Math.PI ;
1721		}
1722		if( y == 0.0 ) {
1723			return  0.0;
1724		}
1725		return 0.5 * Math.PI;
1726	}
1727
1728	if( y == 0.0 ) {
1729		if( code & 2 ) {
1730			return Math.PI;
1731		}
1732		return 0.0;
1733	}
1734
1735	switch( code ) {
1736		default:
1737		case 0: w = 0.0; break;
1738		case 1: w = 2.0 * Math.PI; break;
1739		case 2:
1740		case 3: w = Math.PI; break;
1741	}
1742
1743	z = Math.atan (y / x);
1744
1745	return w + z;
1746};
1747
1748$ns.util.sinh = function (x) {
1749	return (Math.exp(x) - Math.exp(-x)) / 2;
1750};
1751
1752$ns.util.cosh = function (x) {
1753	return (Math.exp(x) + Math.exp(-x)) / 2;
1754};
1755
1756$ns.util.tanh = function (x) {
1757	return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x));
1758};
1759
1760$ns.util.hms = function (x) {
1761	var h, m; // int
1762	var sint, sfrac; // long
1763	var s; // double
1764	var result = {};
1765
1766	s = x * $const.RTOH;
1767	if (s < 0.0) {
1768		s += 24.0;
1769	}
1770	h = Math.floor (s);
1771	s -= h;
1772	s *= 60;
1773	m = Math.floor (s);
1774	s -= m;
1775	s *= 60;
1776	/* Handle shillings and pence roundoff. */
1777	sfrac = Math.floor (1000.0 * s + 0.5);
1778	if ( sfrac >= 60000 ) {
1779		sfrac -= 60000;
1780		m += 1;
1781		if( m >= 60 ) {
1782			m -= 60;
1783			h += 1;
1784		}
1785	}
1786	sint = Math.floor (sfrac / 1000);
1787	sfrac -= Math.floor (sint * 1000);
1788
1789	result.hours = h;
1790	result.minutes = m;
1791	result.seconds = sint;
1792	result.milliseconds = sfrac;
1793
1794	return result;
1795};
1796
1797$ns.util.dms = function (x) {
1798	var s; // double
1799	var d, m; // int
1800	var result = {};
1801
1802	s = x * $const.RTD;
1803	if( s < 0.0 ) {
1804		s = -s;
1805	}
1806	d = Math.floor (s);
1807	s -= d;
1808	s *= 60;
1809	m = Math.floor (s);
1810	s -= m;
1811	s *= 60;
1812
1813	result.degree = d;
1814	result.minutes = m;
1815	result.seconds = s;
1816
1817	return result;
1818};
1819
1820/* Display magnitude of correction vector
1821 * in arc seconds
1822 */
1823$ns.util.showcor = function (p, dp, result) {
1824	var p1 = []; // dr, dd; // double
1825	var i; // int
1826	var d;
1827
1828	for( i=0; i<3; i++ ) {
1829		p1[i] = p[i] + dp[i];
1830	}
1831
1832	d = $util.deltap ( p, p1);
1833
1834	result = result || {};
1835	result.dRA = $const.RTS * d.dr/15.0;
1836	result.dDec = $const.RTS * d.dd;
1837
1838	return result;
1839};
1840
1841/* Display Right Ascension and Declination
1842 * from input equatorial rectangular unit vector.
1843 * Output vector pol[] contains R.A., Dec., and radius.
1844 */
1845$ns.util.showrd = function (p, pol, result) {
1846	var x, y, r; // double
1847	var i; // int
1848
1849	r = 0.0;
1850	for( i=0; i<3; i++ ) {
1851		x = p[i];
1852		r += x * x;
1853	}
1854	r = Math.sqrt(r);
1855
1856	x = $util.zatan2( p[0], p[1] );
1857	pol[0] = x;
1858
1859	y = Math.asin( p[2]/r );
1860	pol[1] = y;
1861
1862	pol[2] = r;
1863
1864	result = result || {};
1865
1866	$copy (result, {
1867		dRA: x,
1868		dDec: y,
1869		ra: $util.hms (x),
1870		dec: $util.dms (y)
1871	});
1872
1873	return result;
1874};
1875
1876/*
1877 * Convert change in rectangular coordinatates to change
1878 * in right ascension and declination.
1879 * For changes greater than about 0.1 degree, the
1880 * coordinates are converted directly to R.A. and Dec.
1881 * and the results subtracted.  For small changes,
1882 * the change is calculated to first order by differentiating
1883 *   tan(R.A.) = y/x
1884 * to obtain
1885 *    dR.A./cos**2(R.A.) = dy/x  -  y dx/x**2
1886 * where
1887 *    cos**2(R.A.)  =  1/(1 + (y/x)**2).
1888 *
1889 * The change in declination arcsin(z/R) is
1890 *   d asin(u) = du/sqrt(1-u**2)
1891 *   where u = z/R.
1892 *
1893 * p0 is the initial object - earth vector and
1894 * p1 is the vector after motion or aberration.
1895 *
1896 */
1897$ns.util.deltap = function (p0, p1, d) {
1898	var dp = [], A, B, P, Q, x, y, z; // double
1899	var i; // int
1900
1901	d = d || {};
1902
1903	P = 0.0;
1904	Q = 0.0;
1905	z = 0.0;
1906	for( i=0; i<3; i++ ) {
1907		x = p0[i];
1908		y = p1[i];
1909		P += x * x;
1910		Q += y * y;
1911		y = y - x;
1912		dp[i] = y;
1913		z += y*y;
1914	}
1915
1916	A = Math.sqrt(P);
1917	B = Math.sqrt(Q);
1918
1919	if( (A < 1.e-7) || (B < 1.e-7) || (z/(P+Q)) > 5.e-7 ) {
1920		P = $util.zatan2( p0[0], p0[1] );
1921		Q = $util.zatan2( p1[0], p1[1] );
1922		Q = Q - P;
1923		while( Q < -Math.PI ) {
1924			Q += 2.0*Math.PI;
1925		}
1926		while( Q > Math.PI ) {
1927			Q -= 2.0*Math.PI;
1928		}
1929		d.dr = Q;
1930		P = Math.asin( p0[2]/A );
1931		Q = Math.asin( p1[2]/B );
1932		d.dd = Q - P;
1933		return d;
1934	}
1935
1936
1937	x = p0[0];
1938	y = p0[1];
1939	if( x == 0.0 ) {
1940		d.dr = 1.0e38;
1941	} else {
1942		Q = y/x;
1943		Q = (dp[1]  -  dp[0]*y/x)/(x * (1.0 + Q*Q));
1944		d.dr = Q;
1945	}
1946
1947	x = p0[2] / A;
1948	P = Math.sqrt( 1.0 - x*x );
1949	d.dd = (p1[2] / B - x) / P;
1950
1951	return d;
1952};
1953
1954/* Sun - object - earth angles and distances.
1955 * q (object), e (earth), and p (q minus e) are input vectors.
1956 * The answers are posted in the following global locations:
1957 */
1958$ns.util.angles = function (p, q, e) {
1959	var a, b, s; // double
1960	var i; // int
1961
1962	$const.EO = 0.0;
1963	$const.SE = 0.0;
1964	$const.SO = 0.0;
1965	$const.pq = 0.0;
1966	$const.ep = 0.0;
1967	$const.qe = 0.0;
1968	for( i=0; i<3; i++ ) {
1969		a = e[i];
1970		b = q[i];
1971		s = p[i];
1972		$const.EO += s * s;
1973		$const.SE += a * a;
1974		$const.SO += b * b;
1975		$const.pq += s * b;
1976		$const.ep += a * s;
1977		$const.qe += b * a;
1978	}
1979	$const.EO = Math.sqrt($const.EO); /* Distance between Earth and object */
1980	$const.SO = Math.sqrt($const.SO); /* Sun - object */
1981	$const.SE = Math.sqrt($const.SE); /* Sun - earth */
1982	/* Avoid fatality: if object equals sun, SO is zero.  */
1983	if( $const.SO > 1.0e-12 )
1984	{
1985		$const.pq /= $const.EO*$const.SO;	/* cosine of sun-object-earth */
1986		$const.qe /= $const.SO*$const.SE;	/* cosine of earth-sun-object */
1987	}
1988	$const.ep /= $const.SE*$const.EO;	/* -cosine of sun-earth-object */
1989};
1990
1991$ns.kepler = {};
1992
1993$ns.kepler.calc = function (date, body, rect, polar) {
1994	var alat, E, M, W, temp; // double
1995	var epoch, inclination, ascnode, argperih; // double
1996	var meandistance, dailymotion, eccent, meananomaly; // double
1997	var r, coso, sino, cosa; // double
1998
1999	rect = rect || [];
2000	polar = polar || [];
2001
2002	/* Call program to compute position, if one is supplied.  */
2003	if ( body.ptable ) {
2004		if ( body.key == 'earth' ) {
2005			$moshier.gplan.calc3 (date, body.ptable, polar, 3);
2006		} else {
2007			$moshier.gplan.calc (date, body.ptable, polar);
2008		}
2009		E = polar[0]; /* longitude */
2010		body.longitude = E;
2011		W = polar[1]; /* latitude */
2012		r = polar[2]; /* radius */
2013		body.distance = r;
2014		body.epoch = date.julian;
2015		body.equinox = {julian: $const.j2000};
2016		// goto kepdon;
2017	} else {
2018		/* Decant the parameters from the data structure
2019		 */
2020		epoch = body.epoch;
2021		inclination = body.inclination;
2022		ascnode = body.node * $const.DTR;
2023		argperih = body.perihelion;
2024		meandistance = body.semiAxis; /* semimajor axis */
2025		dailymotion = body.dailyMotion;
2026		eccent = body.eccentricity;
2027		meananomaly = body.anomaly;
2028
2029		/* Check for parabolic orbit. */
2030		if( eccent == 1.0 ) {
2031			/* meandistance = perihelion distance, q
2032			 * epoch = perihelion passage date
2033			 */
2034			temp = meandistance * Math.sqrt (meandistance);
2035			W = (date.julian - epoch ) * 0.0364911624 / temp;
2036			/* The constant above is 3 k / sqrt(2),
2037			 * k = Gaussian gravitational constant = 0.01720209895 . */
2038			E = 0.0;
2039			M = 1.0;
2040			while (Math.abs(M) > 1.0e-11) {
2041				temp = E * E;
2042				temp = (2.0 * E * temp + W)/( 3.0 * (1.0 + temp));
2043				M = temp - E;
2044				if( temp != 0.0 ) {
2045					M /= temp;
2046				}
2047				E = temp;
2048			}
2049			r = meandistance * (1.0 + E * E );
2050			M = Math.atan (E);
2051			M = 2.0 * M;
2052			alat = M + $const.DTR*argperih;
2053			// goto parabcon;
2054		} else {
2055			if( eccent > 1.0 ) {
2056				/* The equation of the hyperbola in polar coordinates r, theta
2057				 * is r = a(e^2 - 1)/(1 + e cos(theta))
2058				 * so the perihelion distance q = a(e-1),
2059				 * the "mean distance"  a = q/(e-1).
2060				 */
2061				meandistance = meandistance/(eccent - 1.0);
2062				temp = meandistance * Math.sqrt(meandistance);
2063				W = (date.julian - epoch ) * 0.01720209895 / temp;
2064				/* solve M = -E + e sinh E */
2065				E = W/(eccent - 1.0);
2066				M = 1.0;
2067				while( Math.abs(M) > 1.0e-11 )
2068				{
2069					M = -E + eccent * $util.sinh(E) - W;
2070					E += M/(1.0 - eccent * $util.cosh(E));
2071				}
2072				r = meandistance * (-1.0 + eccent * $util.cosh(E));
2073				temp = (eccent + 1.0)/(eccent - 1.0);
2074				M = Math.sqrt(temp) * $util.tanh( 0.5*E );
2075				M = 2.0 * Math.atan(M);
2076				alat = M + $const.DTR * argperih;
2077				// goto parabcon;
2078			} else {
2079				/* Calculate the daily motion, if it is not given.
2080				 */
2081				if( dailymotion == 0.0 )
2082				{
2083					/* The constant is 180 k / pi, k = Gaussian gravitational constant.
2084					 * Assumes object in heliocentric orbit is massless.
2085					 */
2086					dailymotion = 0.9856076686 / (body.semiAxis * Math.sqrt(body.semiAxis));
2087				}
2088				dailymotion *= date.julian - epoch;
2089				/* M is proportional to the area swept out by the radius
2090				 * vector of a circular orbit during the time between
2091				 * perihelion passage and Julian date J.
2092				 * It is the mean anomaly at time J.
2093				 */
2094				M = $const.DTR * ( meananomaly + dailymotion );
2095				M = $util.modtp(M);
2096				/* If mean longitude was calculated, adjust it also
2097				 * for motion since epoch of elements.
2098				 */
2099				if( body.longitude )
2100				{
2101					body.longitude += dailymotion;
2102					body.longitude = $util.mod360 (body.longitude);
2103				}
2104
2105				/* By Kepler's second law, M must be equal to
2106				 * the area swept out in the same time by an
2107				 * elliptical orbit of same total area.
2108				 * Integrate the ellipse expressed in polar coordinates
2109				 *     r = a(1-e^2)/(1 + e cosW)
2110				 * with respect to the angle W to get an expression for the
2111				 * area swept out by the radius vector.  The area is given
2112				 * by the mean anomaly; the angle is solved numerically.
2113				 *
2114				 * The answer is obtained in two steps.  We first solve
2115				 * Kepler's equation
2116				 *    M = E - eccent*sin(E)
2117				 * for the eccentric anomaly E.  Then there is a
2118				 * closed form solution for W in terms of E.
2119				 */
2120
2121				E = M; /* Initial guess is same as circular orbit. */
2122				temp = 1.0;
2123				do {
2124					/* The approximate area swept out in the ellipse */
2125					temp = E - eccent * Math.sin(E)
2126						/* ...minus the area swept out in the circle */
2127						- M;
2128					/* ...should be zero.  Use the derivative of the error
2129					 * to converge to solution by Newton's method.
2130					 */
2131					E -= temp/(1.0 - eccent * Math.cos(E));
2132				} while ( Math.abs(temp) > 1.0e-11 );
2133
2134				/* The exact formula for the area in the ellipse is
2135				 *    2.0*atan(c2*tan(0.5*W)) - c1*eccent*sin(W)/(1+e*cos(W))
2136				 * where
2137				 *    c1 = sqrt( 1.0 - eccent*eccent )
2138				 *    c2 = sqrt( (1.0-eccent)/(1.0+eccent) ).
2139				 * Substituting the following value of W
2140				 * yields the exact solution.
2141				 */
2142				temp = Math.sqrt( (1.0+eccent)/(1.0-eccent) );
2143				W = 2.0 * Math.atan( temp * Math.tan(0.5*E) );
2144
2145				/* The true anomaly.
2146				 */
2147				W = $util.modtp(W);
2148
2149				meananomaly *= $const.DTR;
2150				/* Orbital longitude measured from node
2151				 * (argument of latitude)
2152				 */
2153				if( body.longitude ) {
2154					alat = (body.longitude) * $const.DTR + W - meananomaly - ascnode;
2155				} else {
2156					alat = W + $const.DTR * argperih; /* mean longitude not given */
2157				}
2158
2159				/* From the equation of the ellipse, get the
2160				 * radius from central focus to the object.
2161				 */
2162				r = meandistance*(1.0-eccent*eccent)/(1.0+eccent*Math.cos(W));
2163			}
2164		}
2165// parabcon:
2166		/* The heliocentric ecliptic longitude of the object
2167		 * is given by
2168		 *   tan( longitude - ascnode )  =  cos( inclination ) * tan( alat ).
2169		 */
2170		coso = Math.cos( alat );
2171		sino = Math.sin( alat );
2172		inclination *= $const.DTR;
2173		W = sino * Math.cos( inclination );
2174		E = $util.zatan2 ( coso, W ) + ascnode;
2175
2176		/* The ecliptic latitude of the object
2177		 */
2178		W = sino * Math.sin( inclination );
2179		W = Math.asin (W);
2180	}
2181// kepdon:
2182
2183	/* Convert to rectangular coordinates,
2184	 * using the perturbed latitude.
2185	 */
2186	rect[2] = r * Math.sin(W);
2187	cosa = Math.cos(W);
2188	rect[1] = r * cosa * Math.sin(E);
2189	rect[0] = r * cosa * Math.cos(E);
2190
2191	/* Convert from heliocentric ecliptic rectangular
2192	 * to heliocentric equatorial rectangular coordinates
2193	 * by rotating eps radians about the x axis.
2194	 */
2195	$moshier.epsilon.calc (body.equinox);
2196	W = $moshier.epsilon.coseps*rect[1] - $moshier.epsilon.sineps*rect[2];
2197	M = $moshier.epsilon.sineps*rect[1] + $moshier.epsilon.coseps*rect[2];
2198	rect[1] = W;
2199	rect[2] = M;
2200
2201	/* Precess the position
2202	 * to ecliptic and equinox of J2000.0
2203	 * if not already there.
2204	 */
2205	$moshier.precess.calc (rect, body.equinox, 1);
2206
2207	/* If earth, adjust from earth-moon barycenter to earth
2208	 * by AA page E2.
2209	 */
2210	if( body.key == 'earth' ) {
2211		r = this.embofs ( date, rect); /* see below */
2212	}
2213
2214	/* Rotate back into the ecliptic.  */
2215	$moshier.epsilon.calc ({julian: $const.j2000});
2216	W = $moshier.epsilon.coseps*rect[1] + $moshier.epsilon.sineps*rect[2];
2217	M = -$moshier.epsilon.sineps*rect[1] + $moshier.epsilon.coseps*rect[2];
2218
2219	/* Convert to polar coordinates */
2220	E = $util.zatan2( rect[0], W );
2221	W = Math.asin( M/r );
2222
2223	/* Output the polar cooordinates
2224	 */
2225	polar[0] = E; /* longitude */
2226	polar[1] = W; /* latitude */
2227	polar[2] = r; /* radius */
2228
2229	// fill the body.position only if rect and polar are
2230	// not defined
2231	if (arguments.length < 4) {
2232		body.position = {
2233			date: date,
2234			rect: rect,
2235			polar: polar
2236		};
2237	}
2238};
2239
2240/* Adjust position from Earth-Moon barycenter to Earth
2241 *
2242 * J = Julian day number
2243 * emb = Equatorial rectangular coordinates of EMB.
2244 * return = Earth's distance to the Sun (au)
2245 */
2246$ns.kepler.embofs = function (date, ea) {
2247	var pm = [], polm = []; // double
2248	var a, b; // double
2249	var i; // int
2250	var xx = [];
2251
2252	/* Compute the vector Moon - Earth.  */
2253	$moshier.gplan.moon (date, pm, polm, xx);
2254
2255	/* Precess the lunar position
2256	 * to ecliptic and equinox of J2000.0
2257	 */
2258	$moshier.precess.calc (pm, date, 1);
2259
2260	/* Adjust the coordinates of the Earth
2261	 */
2262	a = 1.0 / ($const.emrat +  1.0);
2263	b = 0.0;
2264	for( i=0; i<3; i++ ) {
2265		ea[i] = ea[i] - a * pm[i];
2266		b = b + ea[i] * ea[i];
2267	}
2268	/* Sun-Earth distance.  */
2269	return Math.sqrt (b);
2270};
2271
2272$ns.kepler.init = function () {
2273	var a, b, fl, co, si, u; // double
2274
2275	u = $const.glat * $const.DTR;
2276
2277	/* Reduction from geodetic latitude to geocentric latitude
2278	 * AA page K5
2279	 */
2280	co = Math.cos(u);
2281	si = Math.sin(u);
2282	fl = 1.0 - 1.0 / $const.flat;
2283	fl = fl*fl;
2284	si = si*si;
2285	u = 1.0/Math.sqrt( co*co + fl*si );
2286	a = $const.aearth*u + $const.height;
2287	b = $const.aearth*fl*u  +  $const.height;
2288	$const.trho = Math.sqrt( a*a*co*co + b*b*si );
2289	$const.tlat = $const.RTD * Math.acos( a*co/$const.trho );
2290	if( $const.glat < 0.0 ) {
2291		$const.tlat = -$const.tlat;
2292	}
2293	$const.trho /= $const.aearth;
2294
2295	/* Reduction from geodetic latitude to geocentric latitude
2296	 * AA page K5
2297	 */
2298	/*
2299	 tlat = glat
2300	 - 0.19242861 * sin(2.0*u)
2301	 + 0.00032314 * sin(4.0*u)
2302	 - 0.00000072 * sin(6.0*u);
2303
2304	 trho =    0.998327073
2305	 + 0.001676438 * cos(2.0*u)
2306	 - 0.000003519 * cos(4.0*u)
2307	 + 0.000000008 * cos(6.0*u);
2308	 trho += height/6378160.;
2309	 */
2310
2311	$const.Clightaud = 86400.0 * $const.Clight / $const.au;
2312	/* Radius of the earth in au
2313	 Thanks to Min He <[email protected]> for pointing out
2314	 this needs to be initialized early.  */
2315	$const.Rearth = 0.001 * $const.aearth / $const.au;
2316};
2317
2318/**
2319 *
2320 * body definition {
2321 *
2322 *	// body
2323 *	epoch:			epoch = epoch of orbital elements
2324 *	inclination:	i = inclination
2325 *	node:			W = longitude of the ascending node
2326 *	perihelion:		w = argument of the perihelion
2327 *	semiAxis:		a = mean distance (semimajor axis), if 0.0 then = perihelionDistance / (1 - eccentricity)
2328 *	dailyMotion:	dm = daily motion, if 0.0 will be calculated
2329 *	eccentricity:	ecc = eccentricity
2330 *	anomaly:		M = mean anomaly
2331 *	equinox:		equinox = epoch of equinox and ecliptic
2332 *	magnitude: 		mag = visual magnitude at 1AU from earth and sun
2333 *	semiDiameter:	sdiam = equatorial semidiameter at 1au, arc seconds
2334 *	perihelionDistance: = perihelion distance
2335 *  // computed values
2336 *	longitude:		L = computed mean longitude
2337 *	distance:		r = computed radius vector
2338 *	perturbation	plat = perturbation in ecliptic latitude
2339 *
2340 *	// star
2341 *	ra:				ra = right ascension, radians
2342 *	dec:			dec = declination, radians
2343 *	parallax:		px = parallax, radians
2344 *	raMotion:		mura = proper motion in R.A., rad/century
2345 *	decMotion:		mudec = proper motion in Dec., rad/century
2346 *	velocity:		v = radial velocity, km/s
2347 *	equinox:		equinox = epoch of equinox and ecliptic
2348 *	magnitude:		mag = visual magnitude
2349 *
2350 *  // constellation
2351 *  index:			index of constellation (1-88)
2352 *  raLow:			lower right ascension, in units of hours times 3600
2353 *  raHight:		upper right ascension, in units of hours times 3600
2354 *  dec0:			lower declination, in units of degrees times 3600
2355 *
2356 * }
2357 *
2358 */
2359
2360$ns.body = {
2361	/**
2362	 * Sun
2363	 */
2364	sun: {
2365		weight: 100
2366	},
2367
2368	/**
2369	 * Planets
2370	 */
2371	mercury: {
2372		epoch: 2446800.5, // 05.01.1987
2373		inclination: 7.0048,
2374		node: 48.177,
2375		perihelion: 29.074,
2376		semiAxis: 0.387098,
2377		dailyMotion: 4.09236,
2378		eccentricity: 0.205628,
2379		anomaly: 198.7199,
2380		equinox: {julian: 2446800.5},
2381		magnitude: -0.42,
2382		semiDiameter: 3.36
2383	},
2384	venus: {
2385		epoch: 2446800.5, // 05.01.1987
2386		inclination: 3.3946,
2387		node: 76.561,
2388		perihelion: 54.889,
2389		semiAxis: 0.723329,
2390		dailyMotion: 1.60214,
2391		eccentricity: 0.006757,
2392		anomaly: 9.0369,
2393		equinox: {julian: 2446800.5},
2394		/* Note the calculated apparent visual magnitude for Venus
2395		 * is not very accurate.
2396		 */
2397		magnitude: -4.40,
2398		semiDiameter: 8.34
2399	},
2400	earth: {
2401		epoch: 2446800.5, // 05.01.1987
2402		inclination: 0.0,
2403		node: 0.0,
2404		perihelion: 102.884,
2405		semiAxis: 0.999999,
2406		dailyMotion: 0.985611,
2407		eccentricity: 0.016713,
2408		anomaly: 1.1791,
2409		equinox: {julian: 2446800.5},
2410		magnitude: -3.86,
2411		semiDiameter: 0.0,
2412		longitude: 0.0, // computed
2413		distance: 0.0, // computed
2414		perturbation: 0.0 // computed
2415	},
2416	moon: {
2417	},
2418	mars: {
2419		epoch: 2446800.5, // 05.01.1987
2420		inclination: 1.8498,
2421		node: 49.457,
2422		perihelion: 286.343,
2423		semiAxis: 1.523710,
2424		dailyMotion: 0.524023,
2425		eccentricity: 0.093472,
2426		anomaly: 53.1893,
2427		equinox: {julian: 2446800.5},
2428		magnitude: -1.52,
2429		semiDiameter: 4.68
2430	},
2431	jupiter: {
2432		epoch: 2446800.5, // 05.01.1987
2433		inclination: 1.3051,
2434		node: 100.358,
2435		perihelion: 275.129,
2436		semiAxis: 5.20265,
2437		dailyMotion: 0.0830948,
2438		eccentricity: 0.048100,
2439		anomaly: 344.5086,
2440		equinox: {julian: 2446800.5},
2441		magnitude: -9.40,
2442		semiDiameter: 98.44
2443	},
2444	saturn: {
2445		epoch: 2446800.5, // 05.01.1987
2446		inclination: 2.4858,
2447		node: 113.555,
2448		perihelion: 337.969,
2449		semiAxis: 9.54050,
2450		dailyMotion: 0.0334510,
2451		eccentricity: 0.052786,
2452		anomaly: 159.6327,
2453		equinox: {julian: 2446800.5},
2454		magnitude: -8.88,
2455		semiDiameter: 82.73
2456	},
2457	uranus: {
2458		epoch: 2446800.5, // 05.01.1987
2459		inclination: 0.7738,
2460		node: 73.994,
2461		perihelion: 98.746,
2462		semiAxis: 19.2233,
2463		dailyMotion: 0.0116943,
2464		eccentricity: 0.045682,
2465		anomaly: 84.8516,
2466		equinox: {julian: 2446800.5},
2467		magnitude: -7.19,
2468		semiDiameter: 35.02
2469	},
2470/*
2471	neptune: {
2472		epoch: 2446800.5, // 05.01.1987
2473		inclination: 1.7697,
2474		node: 131.677,
2475		perihelion: 250.623,
2476		semiAxis: 30.1631,
2477		dailyMotion: 0.00594978,
2478		eccentricity: 0.009019,
2479		anomaly: 254.2568,
2480		equinox: {julian: 2446800.5},
2481		magnitude: -6.87,
2482		semiDiameter: 33.50
2483	},
2484	neptunecty: {
2485		inclination: 0.00035372,
2486		node: -0.00508664,
2487		perihelion: -0.32241464,
2488		semiAxis: 0.00026291,
2489		eccentricity: 0.00005105,
2490		longitude: 218.45945325
2491	},
2492	pluto: {
2493		epoch: 2446640.5,
2494		inclination: 17.1346,
2495		node: 110.204,
2496		perihelion: 114.21,
2497		semiAxis: 39.4633,
2498		dailyMotion: 0.00397570,
2499		eccentricity: 0.248662,
2500		anomaly: 355.0554,
2501		equinox: {julian: 2446640.5},
2502		magnitude: -1.0,
2503		semiDiameter: 2.07
2504	},
2505	plutocty: {
2506		inclination: 0.00004818,
2507		node: -0.01183482,
2508		perihelion: -0.04062942,
2509		semiAxis: -0.00031596,
2510		dailyMotion: 0.00397570,
2511		eccentricity: 0.00005170,
2512		longitude: 145.20780515
2513	},
2514*/
2515	neptune: {
2516		epoch: 2451545.0, // 05.01.1987
2517		inclination: 1.77004347,
2518		node: 131.78422574,
2519		perihelion: 44.96476227,
2520		semiAxis: 30.06992276,
2521		dailyMotion: 0.00594978,
2522		eccentricity: 0.00859048,
2523		anomaly: 254.2568,
2524		equinox: {julian: 2451545.0},
2525		magnitude: -6.87,
2526		semiDiameter: 33.50
2527	},
2528	neptunecty: {
2529		inclination: 0.00035372,
2530		node: -0.00508664,
2531		perihelion: -0.32241464,
2532		semiAxis: 0.00026291,
2533		eccentricity: 0.00005105,
2534		longitude: 218.45945325
2535	},
2536	pluto: {
2537		epoch: 2451545.0,
2538		inclination: 17.14001206,
2539		node: 110.30393684,
2540		perihelion: 224.06891629,
2541		longitude: 238.92903833,
2542		semiAxis: 39.48211675,
2543		dailyMotion: 0.00397570,
2544		eccentricity: 0.24882730,
2545		anomaly: 355.0554,
2546		equinox: {julian: 2451545.0},
2547		magnitude: -1.0,
2548		semiDiameter: 2.07
2549	},
2550	plutocty: {
2551		inclination: 0.00004818,
2552		node: -0.01183482,
2553		perihelion: -0.04062942,
2554		semiAxis: -0.00031596,
2555		dailyMotion: 0.00397570,
2556		eccentricity: 0.00005170,
2557		longitude: 145.20780515
2558	},
2559
2560	/**
2561	 * Comets and asteroids
2562	 */
2563	chiron: {
2564		epoch: 2456000.5,
2565		inclination: 6.926651533484328,
2566		node: 209.3851130617651,
2567		perihelion: 339.4595737215378,
2568		semiAxis: 0.0, // will be calulated if 0.0
2569		dailyMotion: 0.0, // will be calculated
2570		eccentricity: 0.3792037887546262,
2571		anomaly: 114.8798253094007,
2572		equinox: {julian: 2450109.234581196786},
2573		magnitude: 6.5,
2574		semiDiameter: 0.0,
2575		perihelionDistance: 8.486494269138399
2576	},
2577
2578	/**
2579	 * Stars (implemented, not tested)
2580	 */
2581	spica: {
2582		epoch: 2000.0,
2583		hmsRa: {hours: 13, minutes: 25, seconds: 11.5793},
2584		hmsDec: {hours: -11, minutes: 9, seconds: 40.7501},
2585		raMotion: -42.35,
2586		decMotion: -30.67,
2587		velocity: 1.0,
2588		parallax: 13.06,
2589		magnitude: 0.97,
2590		ra: 0.0,
2591		dec: 0.0,
2592		equinox: {julian: 0.0}
2593	},
2594
2595	revati: {
2596		epoch: 2000.0,
2597		hmsRa: {hours: 1, minutes: 13, seconds: 43.88735},
2598		hmsDec: {hours: 7, minutes: 34, seconds: 31.2745},
2599		raMotion: 145,
2600		decMotion: -55.69,
2601		velocity: 15.0,
2602		parallax: 18.76,
2603		magnitude: 5.187,
2604		ra: 0.0,
2605		dec: 0.0,
2606		equinox: {julian: 0.0}
2607	},
2608
2609	pushya: {
2610		epoch: 2000.0,
2611		hmsRa: {hours: 8, minutes: 44, seconds: 41.09921},
2612		hmsDec: {hours: 18, minutes: 9, seconds: 15.5034},
2613		raMotion: -17.67,
2614		decMotion: -229.26,
2615		velocity: 17.14,
2616		parallax: 24.98,
2617		magnitude: 3.94,
2618		ra: 0.0,
2619		dec: 0.0,
2620		equinox: {julian: 0.0}
2621	},
2622
2623	mula: {
2624		epoch: 2000.0,
2625		hmsRa: {hours: 17, minutes: 33, seconds: 36.52012},
2626		hmsDec: {hours: -37, minutes: 6, seconds: 13.7648},
2627		raMotion: -8.53,
2628		decMotion: -30.8,
2629		velocity: -3,
2630		parallax: 5.71,
2631		magnitude: 1.62,
2632		ra: 0.0,
2633		dec: 0.0,
2634		equinox: {julian: 0.0}
2635	},
2636
2637	saggi: {
2638		epoch: 2000.0,
2639		hmsRa: {hours: 17, minutes: 45, seconds: 40.03599},
2640		hmsDec: {hours: -29, minutes: 0, seconds: 28.1699},
2641		raMotion: -2.755718425,
2642		decMotion: -5.547,
2643		velocity: 0.0,
2644		parallax: 0,
2645		magnitude: 0.125,
2646		ra: 0.0,
2647		dec: 0.0,
2648		equinox: {julian: 0.0}
2649	},
2650
2651
2652	sirius: {
2653		epoch: 2000.0,
2654		hmsRa: {hours: 6, minutes: 45, seconds: 8.871},
2655		hmsDec: {hours: -16, minutes: 42, seconds: 57.99},
2656		raMotion: -3.847,
2657		decMotion: -120.53,
2658		velocity: -7.6,
2659		parallax: 0.3751,
2660		magnitude: -1.46,
2661		ra: 0.0,
2662		dec: 0.0,
2663		equinox: {julian: 0.0}
2664	}
2665}
2665;
2666
2667$ns.body.init = function () {
2668	for (var key in this) {
2669		if (this.hasOwnProperty (key) && key != 'init') {
2670			// fill the 'key'
2671			this [key].key = key;
2672			// fill the ptable for the body
2673			if ($moshier.plan404.hasOwnProperty (key)) {
2674				this [key].ptable = $moshier.plan404 [key];
2675			}
2676		}
2677	}
2678};
2679
2680$ns.sun = {};
2681
2682$ns.sun.calc = function () {
2683	var r, x, y, t; // double
2684	var ecr = [], rec = [], pol = []; // double
2685	var i; // int
2686	var d;
2687	//double asin(), modtp(), sqrt(), cos(), sin();
2688
2689	$moshier.body.sun.position = $moshier.body.sun.position || {};
2690
2691	/* Display ecliptic longitude and latitude.
2692	 */
2693	for( i=0; i<3; i++ ) {
2694		ecr[i] = - $moshier.body.earth.position.rect [i];//-rearth[i];
2695	}
2696	r = $moshier.body.earth.position.polar [2]; //eapolar [2];
2697
2698	$moshier.body.sun.position.equinoxEclipticLonLat = $moshier.lonlat.calc (ecr, $moshier.body.earth.position.date, pol, 1); // TDT
2699
2700	/* Philosophical note: the light time correction really affects
2701	 * only the Sun's barymetric position; aberration is due to
2702	 * the speed of the Earth.  In Newtonian terms the aberration
2703	 * is the same if the Earth is standing still and the Sun moving
2704	 * or vice versa.  Thus the following is actually wrong, but it
2705	 * differs from relativity only in about the 8th decimal.
2706	 * It should be done the same way as the corresponding planetary
2707	 * correction, however.
2708	 */
2709	pol [2] = r;
2710	for( i=0; i<2; i++ ) {
2711		t = pol [2] / 173.1446327;
2712		/* Find the earth at time TDT - t */
2713		$moshier.kepler.calc ({julian: $moshier.body.earth.position.date.julian - t}, $moshier.body.earth, ecr, pol );
2714	}
2715	r = pol [2];
2716
2717	for( i=0; i<3; i++ ) {
2718		x = -ecr[i];
2719		y = - $moshier.body.earth.position.rect [i]; //-rearth[i];
2720		ecr[i] = x;	/* position t days ago */
2721		rec[i] = y;	/* position now */
2722		pol[i] = y - x; /* change in position */
2723	}
2724
2725	$copy ($moshier.body.sun.position, {
2726		date: $moshier.body.earth.position.date,
2727		lightTime: 1440.0*t,
2728		aberration: $util.showcor (ecr, pol)
2729	});
2730
2731	/* Estimate rate of change of RA and Dec
2732	 * for use by altaz().
2733	 */
2734	d = $util.deltap( ecr, rec);  /* see dms.c */
2735	$const.dradt = d.dr;
2736	$const.ddecdt = d.dd;
2737	$const.dradt /= t;
2738	$const.ddecdt /= t;
2739
2740
2741	/* There is no light deflection effect.
2742	 * AA page B39.
2743	 */
2744
2745	/* precess to equinox of date
2746	 */
2747	if ($const.truepos != 0 ) { ecr[0] = rec[0]; ecr[1] = rec[1]; ecr[2] = rec[2]; }
2748	$moshier.precess.calc ( ecr, $moshier.body.earth.position.date, -1);
2749
2750	for( i=0; i<3; i++ ) {
2751		rec[i] = ecr[i];
2752	}
2753
2754	/* Nutation.
2755	 */
2756	$moshier.epsilon.calc ($moshier.body.earth.position.date);
2757	$moshier.nutation.calc ($moshier.body.earth.position.date, ecr);
2758
2759	/* Display the final apparent R.A. and Dec.
2760	 * for equinox of date.
2761	 */
2762	$moshier.body.sun.position.constellation = $moshier.constellation.calc (ecr, $moshier.body.earth.position.date);
2763
2764	$moshier.body.sun.position.apparent = $util.showrd (ecr, pol);
2765
2766	/* Show it in ecliptic coordinates */
2767	y  =  $moshier.epsilon.coseps * rec[1]  +  $moshier.epsilon.sineps * rec[2];
2768	y = $util.zatan2( rec[0], y ) + $moshier.nutation.nutl;
2769	$moshier.body.sun.position.apparentLongitude = $const.RTD*y;
2770	var dmsLongitude = $util.dms (y);
2771	$moshier.body.sun.position.apparentLongitudeString =
2772		dmsLongitude.degree + '\u00B0' +
2773		dmsLongitude.minutes + '\'' +
2774		Math.floor (dmsLongitude.seconds) + '"'
2775	;
2776
2777	$moshier.body.sun.position.apparentLongitude30String =
2778		$util.mod30 (dmsLongitude.degree) + '\u00B0' +
2779		dmsLongitude.minutes + '\'' +
2780		Math.floor (dmsLongitude.seconds) + '"'
2781	;
2782	$moshier.body.sun.position.geocentricDistance = -1;
2783
2784	/* Report altitude and azimuth
2785	 */
2786	$moshier.body.sun.position.altaz = $moshier.altaz.calc ( pol, $moshier.body.earth.position.date );
2787};
2788
2789$ns.aberration = {};
2790
2791$ns.aberration.calc = function (p, result) {
2792	var A, B, C; // double
2793	var betai, pV; // double
2794	var x = [], V = []; // double
2795	var i; // int
2796
2797	/* Calculate the velocity of the earth (see vearth.c).
2798	 */
2799	$moshier.vearth.calc ($moshier.body.earth.position.date);
2800	betai = 0.0;
2801	pV = 0.0;
2802	for( i=0; i<3; i++ ) {
2803		A = $moshier.vearth.vearth [i]/$const.Clightaud;
2804		V[i] = A;
2805		betai += A*A;
2806		pV += p[i] * A;
2807	}
2808	/* Make the adjustment for aberration.
2809	 */
2810	betai = Math.sqrt( 1.0 - betai );
2811	C = 1.0 + pV;
2812	A = betai/C;
2813	B = (1.0  +  pV/(1.0 + betai))/C;
2814
2815	for( i=0; i<3; i++ ) {
2816		C = A * p[i]  +  B * V[i];
2817		x[i] = C;
2818		$const.dp[i] = C - p[i];
2819	}
2820
2821	result = result || {};
2822
2823	$util.showcor (p, $const.dp, result);
2824	for( i=0; i<3; i++ ) {
2825		p[i] = x[i];
2826	}
2827
2828	return result;
2829};
2830
2831$ns.altaz = {
2832	azimuth: 0.0,
2833	elevation: 0.0,
2834	refracted_elevation: 0.0
2835};
2836
2837$ns.altaz.calc = function (pol, date, result) {
2838	var dec, cosdec, sindec, lha, coslha, sinlha; // double
2839	var ra, dist, last, alt, az, coslat, sinlat; // double
2840	var N, D, x, y, z, TPI; // double
2841
2842	result = result || {};
2843
2844	ra = pol[0];
2845	dec = pol[1];
2846	dist = pol[2];
2847	TPI = 2.0*Math.PI;
2848	/* local apparent sidereal time, seconds converted to radians
2849	 */
2850	last = $moshier.siderial.calc ( date, $const.tlong ) * $const.DTR/240.0;
2851	lha = last - ra; /* local hour angle, radians */
2852	result.dLocalApparentSiderialTime = last;
2853	result.localApparentSiderialTime = $util.hms (last);
2854
2855	/* Display rate at which ra and dec are changing
2856	 */
2857	/*
2858	 *if( prtflg )
2859	 *	{
2860	 *	x = RTS/24.0;
2861	 *	N = x*dradt;
2862	 *	D = x*ddecdt;
2863	 *	if( N != 0.0 )
2864	 *		printf( "dRA/dt %.2f\"/h, dDec/dt %.2f\"/h\n", N, D );
2865	 *	}
2866	 */
2867
2868	result.diurnalAberation = $moshier.diurnal.aberration ( last, ra, dec );
2869	ra = result.diurnalAberation.ra;
2870	dec = result.diurnalAberation.dec;
2871
2872	/* Do rise, set, and transit times
2873	 trnsit.c takes diurnal parallax into account,
2874	 but not diurnal aberration.  */
2875	lha = last - ra;
2876	result.transit = $moshier.transit.calc ( date, lha, dec );
2877
2878	/* Diurnal parallax
2879	 */
2880	result.diurnalParallax = $moshier.diurnal.parallax (last, ra, dec, dist);
2881	ra = result.diurnalParallax.ra;
2882	dec = result.diurnalParallax.dec;
2883
2884	/* Diurnal aberration
2885	 */
2886	/*diurab( last, &ra, &dec );*/
2887
2888	/* Convert ra and dec to altitude and azimuth
2889	 */
2890	cosdec = Math.cos(dec);
2891	sindec = Math.sin(dec);
2892	lha = last - ra;
2893	coslha = Math.cos(lha);
2894	sinlha = Math.sin(lha);
2895	/* Use the geodetic latitude for altitude and azimuth */
2896	x = $const.DTR * $const.glat;
2897	coslat = Math.cos(x);
2898	sinlat = Math.sin(x);
2899
2900	N = -cosdec * sinlha;
2901	D =  sindec * coslat  -  cosdec * coslha * sinlat;
2902	az = $const.RTD * $util.zatan2( D, N );
2903	alt = sindec * sinlat  +  cosdec * coslha * coslat;
2904	alt = $const.RTD * Math.asin(alt);
2905
2906	/* Store results */
2907	this.azimuth = az;
2908	this.elevation = alt; /* Save unrefracted value. */
2909
2910	/* Correction for atmospheric refraction
2911	 * unit = degrees
2912	 */
2913	D = $moshier.refraction.calc ( alt );
2914	alt += D;
2915	this.refracted_elevation = alt;
2916	/* Convert back to R.A. and Dec.
2917	 */
2918	y = Math.sin($const.DTR*alt);
2919	x = Math.cos($const.DTR*alt);
2920	z = Math.cos($const.DTR*az);
2921	sinlha = -x * Math.sin($const.DTR*az);
2922	coslha = y*coslat - x*z*sinlat;
2923	sindec = y*sinlat + x*z*coslat;
2924	lha = $util.zatan2( coslha, sinlha );
2925
2926	y = ra; /* save previous values, before refrac() */
2927	z = dec;
2928	dec = Math.asin( sindec );
2929	ra = last - lha;
2930	y = ra - y; /* change in ra */
2931	while( y < - Math.PI ) {
2932		y += $const.TPI;
2933	}
2934	while( y > Math.PI ) {
2935		y -= $const.TPI;
2936	}
2937	y = $const.RTS*y/15.0;
2938	z = $const.RTS*(dec - z);
2939
2940	result.atmosphericRefraction = {
2941		deg: D,
2942		dRA: y,
2943		dDec: z
2944	};
2945
2946	result.topocentric = {
2947		altitude: alt,
2948		azimuth: az,
2949		ra: ra,
2950		dec: dec,
2951		dRA: $util.hms (ra),
2952		dDec: $util.dms (dec)
2953	};
2954
2955	return result;
2956};
2957
2958$ns.constellation = {
2959	/* Constellation names
2960	 */
2961	constel: [
2962		"And Andromedae",
2963		"Ant Antliae",
2964		"Aps Apodis",
2965		"Aql Aquilae",
2966		"Aqr Aquarii",
2967		"Ari Arietis",
2968		"Ara Arae",
2969		"Aur Aurigae",
2970		"Boo Bootis",
2971		"Cae Caeli",
2972		"Cam Camelopardalis",
2973		"Can Cancri",		/* also abbreviated Cnc */
2974		"Cap Capricorni",
2975		"Car Carinae",
2976		"Cas Cassiopeiae",
2977		"Cen Centauri",
2978		"Cep Cephei",
2979		"Cet Ceti",
2980		"Cha Chamaeleontis",
2981		"Cir Circini",
2982		"CMa Canis Majoris",
2983		"CMi Canis Minoris",
2984		"Cnc Cancri",
2985		"Col Columbae",
2986		"Com Comae Berenices",
2987		"CrA Coronae Austrinae",
2988		"CrB Coronae Borealis",
2989		"Crt Crateris",
2990		"Cru Crucis",
2991		"Crv Corvi",
2992		"CVn Canum Venaticorum",
2993		"Cyg Cygni",
2994		"Del Delphini",
2995		"Dor Doradus",
2996		"Dra Draconis",
2997		"Equ Equulei",
2998		"Eri Eridani",
2999		"For Fornacis",
3000		"Gem Geminorum",
3001		"Gru Gruis",
3002		"Her Herculis",
3003		"Hor Horologii",
3004		"Hya Hydrae",
3005		"Hyi Hydri",
3006		"Ind Indi",
3007		"Lac Lacertae",
3008		"Leo Leonis",
3009		"Lep Leporis",
3010		"Lib Librae",
3011		"LMi Leonis Minoris",
3012		"Lup Lupi",
3013		"Lyn Lyncis",
3014		"Lyr Lyrae",
3015		"Men Mensae",
3016		"Mic Microscopii",
3017		"Mon Monocerotis",
3018		"Mus Muscae",
3019		"Nor Normae",
3020		"Oct Octantis",
3021		"Oph Ophiuchi",
3022		"Ori Orionis",
3023		"Pav Pavonis",
3024		"Peg Pegasi",
3025		"Per Persei",
3026		"Phe Phoenicis",
3027		"Pic Pictoris",
3028		"PsA Piscis Austrini",
3029		"Psc Piscium",
3030		"Pup Puppis",
3031		"Pyx Pyxidis",
3032		"Ret Reticuli",
3033		"Scl Sculptoris",
3034		"Sco Scorpii",
3035		"Sct Scuti",
3036		"Ser Serpentis",
3037		"Sex Sextantis",
3038		"Sge Sagittae",
3039		"Sgr Sagittarii",
3040		"Tau Tauri",
3041		"Tel Telescopii",
3042		"TrA Trianguli Australis",
3043		"Tri Trianguli",
3044		"Tuc Tucanae",
3045		"UMa Ursae Majoris",
3046		"UMi Ursae Minoris",
3047		"Vel Velorum",
3048		"Vir Virginis",
3049		"Vol Volantis",
3050		"Vul Vulpeculae"
3051	],
3052
3053	/* Greek letters
3054	 */
3055	greek: [
3056		"alpha",
3057		"beta",
3058		"gamma",
3059		"delta",
3060		"epsilon",
3061		"zeta",
3062		"eta",
3063		"theta",
3064		"iota",
3065		"kappa",
3066		"lambda",
3067		"mu",
3068		"nu",
3069		"xi",
3070		"omicron",
3071		"pi",
3072		"rho",
3073		"sigma",
3074		"tau",
3075		"upsilon",
3076		"phi",
3077		"chi",
3078		"psi",
3079		"omega"
3080	],
3081
3082	/* Table of constellation boundaries.
3083
3084	 Roman, Nancy Grace, "Identification of a Constellation from a Position"
3085	 Pub. Astron. Soc. Pac. 99, 695, (1987)
3086
3087	 Array items are
3088	 Lower Right Ascension, Upper Right Ascension,
3089	 both in units of hours times 3600;
3090	 Lower Declination, in units of degrees times 3600;
3091	 and array index of constellation name.  */
3092	bndries: [
3093		0,  86400, 316800,  84,
3094		28800,  52200, 311400,  84,
3095		75600,  82800, 310200,  84,
3096		64800,  75600, 309600,  84,
3097		0,  28800, 306000,  16,
3098		33000,  38400, 295200,  10,
3099		0,  18000, 288000,  16,
3100		38400,  52200, 288000,  10,
3101		63000,  64800, 288000,  84,
3102		72600,  75600, 288000,  34,
3103		0,  12630, 277200,  16,
3104		41400,  48900, 277200,  10,
3105		59520,  63000, 270000,  84,
3106		72600,  74400, 270000,  16,
3107		28680,  33000, 264600,  10,
3108		33000,  40800, 264600,  34,
3109		46800,  59520, 252000,  84,
3110		11160,  12300, 244800,  14,
3111		73500,  74400, 241200,  34,
3112		40800,  43200, 239400,  34,
3113		0,   1200, 237600,  16,
3114		50400,  56400, 237600,  84,
3115		84900,  86400, 237600,  16,
3116		43200,  48600, 230400,  34,
3117		48600,  51900, 226800,  34,
3118		83400,  84900, 226800,  16,
3119		21960,  25200, 223200,  10,
3120		72000,  73500, 221400,  34,
3121		73932,  74160, 219300,  16,
3122		25200,  28680, 216000,  10,
3123		28680,  30300, 216000,  83,
3124		71160,  72000, 214200,  34,
3125		72000,  73932, 214200,  16,
3126		82320,  83400, 212700,  16,
3127		0,   8760, 210600,  14,
3128		69900,  71160, 208800,  34,
3129		6120,   6870, 207000,  14,
3130		8760,  11160, 205200,  14,
3131		11160,  11400, 205200,  10,
3132		80340,  82320, 202500,  16,
3133		18000,  21960, 201600,  10,
3134		50520,  51900, 199800,  83,
3135		51900,  69900, 199800,  34,
3136		11400,  12000, 198000,  10,
3137		79680,  80340, 198000,  16,
3138		74160,  79080, 197400,  16,
3139		0,   6120, 194400,  14,
3140		21960,  23400, 194400,  51,
3141		43500,  48600, 190800,  83,
3142		54900,  56700, 190800,  34,
3143		79080,  79680, 189900,  16,
3144		12000,  18000, 189000,  10,
3145		82320,  84000, 189000,  14,
3146		56700,  61200, 185400,  34,
3147		7350,   9060, 181800,  63,
3148		61200,  65640, 181800,  34,
3149		0,   4920, 180000,  14,
3150		4920,   6000, 180000,  63,
3151		23400,  24480, 180000,  51,
3152		84000,  86400, 180000,  14,
3153		48600,  50520, 174600,  83,
3154		0,   4020, 172800,  14,
3155		84900,  86400, 172800,  14,
3156		65430,  65640, 171000,  40,
3157		65640,  68700, 171000,  34,
3158		68700,  69000, 171000,  31,
3159		6000,   7350, 169200,  63,
3160		30300,  33000, 169200,  83,
3161		600,   3120, 165600,  14,
3162		43200,  43500, 162000,  83,
3163		24480,  26520, 160200,  51,
3164		78870,  79080, 158400,  31,
3165		78750,  78870, 157500,  31,
3166		69000,  69840, 156600,  31,
3167		33000,  36600, 151200,  83,
3168		36600,  38820, 144000,  83,
3169		55560,  56700, 144000,   8,
3170		56700,  58800, 144000,  40,
3171		33300,  34500, 143100,  51,
3172		0,   9060, 132300,   0,
3173		9060,   9240, 132300,  63,
3174		69690,  69840, 131400,  52,
3175		16200,  16890, 129600,  63,
3176		78240,  78750, 129600,  31,
3177		78750,  79200, 129600,  45,
3178		23520,  26520, 127800,   7,
3179		26520,  27900, 127800,  51,
3180		0,   7200, 126000,   0,
3181		79200,  82140, 126000,  45,
3182		82140,  82320, 124200,  45,
3183		82320,  84600, 124200,   0,
3184		9240,   9780, 122400,  63,
3185		38820,  39600, 122400,  83,
3186		43200,  44400, 122400,  30,
3187		27900,  33300, 120600,  51,
3188		33300,  35580, 120600,  49,
3189		2580,   5070, 118800,   0,
3190		54660,  55560, 118800,   8,
3191		84600,  85500, 115500,   0,
3192		44400,  47700, 115200,  30,
3193		85500,  86400, 112800,   0,
3194		50250,  50520, 110700,  30,
3195		8700,   9780, 110400,  81,
3196		9780,  16200, 110400,  63,
3197		16200,  17100, 108000,   7,
3198		65430,  69690, 108000,  52,
3199		39600,  43200, 104400,  83,
3200		70800,  75300, 104400,  31,
3201		17100,  21180, 102600,   7,
3202		35580,  37800, 102600,  49,
3203		47700,  50250, 102600,  30,
3204		0,    240, 100800,   0,
3205		5070,   6000, 100800,  81,
3206		21180,  23520, 100800,   7,
3207		28380,  28800, 100800,  38,
3208		75300,  78240, 100800,  31,
3209		69330,  70800,  99000,  31,
3210		6900,   8700,  98100,  81,
3211		58200,  58800,  97200,  26,
3212		54300,  54660,  93600,   8,
3213		54660,  58200,  93600,  26,
3214		66120,  67920,  93600,  52,
3215		38700,  39600,  91800,  49,
3216		67920,  69330,  91800,  52,
3217		6000,   6900,  90000,  81,
3218		2580,   3060,  85500,  67,
3219		37800,  38700,  84600,  49,
3220		76500,  77100,  84600,  88,
3221		20520,  21180,  82200,  78,
3222		240,    510,  79200,   0,
3223		57300,  57720,  79200,  74,
3224		21180,  22380,  77400,  38,
3225		71400,  72900,  76500,  88,
3226		67920,  69300,  75900,  88,
3227		510,   3060,  75600,   0,
3228		72900,  74040,  73800,  88,
3229		28110,  28380,  72000,  38,
3230		74040,  76500,  70200,  88,
3231		69300,  71400,  69000,  88,
3232		11820,  12120,  68400,   5,
3233		67920,  68400,  66600,  76,
3234		20520,  20760,  64800,  60,
3235		22380,  22710,  63000,  38,
3236		68400,  71400,  58200,  76,
3237		17880,  19200,  57600,  78,
3238		57300,  57900,  57600,  40,
3239		71400,  72900,  56700,  76,
3240		16620,  17880,  55800,  78,
3241		19200,  20160,  55800,  78,
3242		46200,  48600,  54000,  24,
3243		62100,  65700,  51600,  40,
3244		42720,  46200,  50400,  24,
3245		27000,  28110,  48600,  38,
3246		60300,  62100,  46200,  40,
3247		0,    510,  45000,  62,
3248		20160,  20760,  45000,  78,
3249		25200,  27000,  45000,  38,
3250		76020,  76800,  45000,  62,
3251		22710,  24960,  43200,  38,
3252		65700,  67920,  43200,  40,
3253		75150,  75780,  42600,  32,
3254		75780,  76020,  42600,  62,
3255		41460,  42720,  39600,  46,
3256		22470,  22710,  36000,  60,
3257		24960,  25200,  36000,  38,
3258		28110,  28530,  36000,  22,
3259		85800,  86400,  36000,  62,
3260		6000,  11820,  35700,   5,
3261		72510,  73080,  30600,  32,
3262		48600,  54300,  28800,   8,
3263		81900,  85800,  27000,  62,
3264		28530,  33300,  25200,  22,
3265		33300,  38700,  25200,  46,
3266		65700,  67184,  22500,  59,
3267		67184,  67920,  22500,   3,
3268		75000,  75150,  21600,  32,
3269		25200,  25260,  19800,  21,
3270		65700,  66330,  16200,  74,
3271		57900,  60300,  14400,  40,
3272		65700,  66330,  10800,  59,
3273		77280,  78000,   9900,  62,
3274		0,   7200,   7200,  67,
3275		66900,  67920,   7200,  74,
3276		73080,  75000,   7200,  32,
3277		75000,  76800,   7200,  35,
3278		76800,  77280,   7200,  62,
3279		79200,  81900,   7200,  62,
3280		78000,  79200,   6300,  62,
3281		25260,  25920,   5400,  21,
3282		12900,  16620,      0,  78,
3283		16620,  16800,      0,  60,
3284		25920,  29100,      0,  21,
3285		52800,  54300,      0,  86,
3286		64200,  65700,      0,  59,
3287		9540,  11820,  -6300,  17,
3288		11820,  12900,  -6300,  78,
3289		54300,  58560, -11700,  74,
3290		16800,  18300, -14400,  60,
3291		21000,  22470, -14400,  60,
3292		64200,  64680, -14400,  74,
3293		65700,  66900, -14400,  74,
3294		66900,  67920, -14400,   3,
3295		81900,  85800, -14400,  67,
3296		38700,  41460, -21600,  46,
3297		41460,  42600, -21600,  86,
3298		0,   1200, -25200,  67,
3299		85800,  86400, -25200,  67,
3300		51300,  52800, -28800,  86,
3301		57300,  58560, -28800,  59,
3302		72000,  73920, -32400,   3,
3303		76800,  78720, -32400,   4,
3304		61800,  64680, -36000,  59,
3305		21000,  29100, -39600,  55,
3306		17700,  18300, -39600,  36,
3307		18300,  21000, -39600,  60,
3308		29100,  30120, -39600,  42,
3309		34500,  38700, -39600,  75,
3310		42600,  46200, -39600,  86,
3311		63300,  63600, -42000,  59,
3312		67920,  72000, -43320,   3,
3313		17400,  17700, -52200,  36,
3314		73920,  76800, -54000,   4,
3315		61800,  65700, -57600,  74,
3316		65700,  67920, -57600,  73,
3317		30120,  30900, -61200,  42,
3318		58560,  58950, -65700,  59,
3319		30900,  32700, -68400,  42,
3320		38700,  39000, -68400,  27,
3321		58560,  58950, -69300,  59,
3322		56400,  57300, -72000,  48,
3323		45300,  46200, -79200,  29,
3324		46200,  51300, -79200,  86,
3325		32700,  35100, -86400,  42,
3326		6000,   9540, -87780,  17,
3327		9540,  13500, -87780,  36,
3328		39000,  42600, -88200,  27,
3329		42600,  45300, -88200,  29,
3330		51300,  53700, -88200,  48,
3331		58560,  60300, -88500,  59,
3332		0,   6000, -91800,  17,
3333		76800,  78720, -91800,  12,
3334		78720,  85800, -91800,   4,
3335		85800,  86400, -91800,  17,
3336		35100,  36900, -95400,  42,
3337		16920,  17400, -98100,  36,
3338		17400,  22020, -98100,  47,
3339		72000,  76800, -100800,  12,
3340		36900,  38100, -105000,  42,
3341		45300,  53700, -106200,  42,
3342		53700,  56400, -106200,  48,
3343		56400,  57600, -106200,  72,
3344		16500,  16920, -108000,  36,
3345		60300,  63360, -108000,  59,
3346		63360,  64200, -108000,  77,
3347		38100,  39000, -112200,  42,
3348		22020,  26520, -118800,  20,
3349		44100,  45300, -118800,  42,
3350		39000,  44100, -126000,  42,
3351		12600,  13500, -129600,  37,
3352		30120,  33720, -132300,  69,
3353		15360,  16500, -133200,  36,
3354		64200,  69000, -133200,  77,
3355		76800,  82800, -133200,  66,
3356		82800,  84000, -133200,  71,
3357		10800,  12600, -142500,  37,
3358		33720,  39600, -143100,   1,
3359		0,   6000, -144000,  71,
3360		6000,  10800, -144000,  37,
3361		13920,  15360, -144000,  36,
3362		84000,  86400, -144000,  71,
3363		51000,  53700, -151200,  15,
3364		56400,  57600, -151200,  50,
3365		57600,  59115, -151200,  72,
3366		17400,  18000, -154800,   9,
3367		18000,  23700, -154800,  23,
3368		28800,  30120, -154800,  68,
3369		12300,  13920, -158400,  36,
3370		59115,  64200, -163800,  72,
3371		64200,  69000, -163800,  25,
3372		69000,  73200, -163800,  77,
3373		73200,  76800, -163800,  54,
3374		10800,  12300, -165600,  36,
3375		16200,  17400, -167400,   9,
3376		55200,  56400, -172800,  50,
3377		0,   8400, -173400,  64,
3378		9600,  10800, -176400,  36,
3379		14700,  15360, -176400,  41,
3380		15360,  16200, -176400,   9,
3381		76800,  79200, -180000,  39,
3382		21600,  28800, -182700,  68,
3383		28800,  29400, -182700,  85,
3384		8700,   9600, -183600,  36,
3385		13800,  14700, -183600,  41,
3386		0,   6600, -185400,  64,
3387		21600,  22200, -189000,  13,
3388		29400,  30420, -190800,  85,
3389		12600,  13800, -191400,  41,
3390		13800,  14400, -191400,  33,
3391		0,   5700, -192600,  64,
3392		7800,   8700, -194400,  36,
3393		16200,  18000, -194400,  65,
3394		54180,  55200, -194400,  50,
3395		30420,  31800, -196200,  85,
3396		22200,  23400, -198000,  13,
3397		42600,  46200, -198000,  15,
3398		51000,  54180, -198000,  50,
3399		54180,  55200, -198000,  57,
3400		14400,  15600, -203400,  33,
3401		31800,  39600, -203400,  85,
3402		39600,  40500, -203400,  15,
3403		63000,  64800, -205200,   6,
3404		64800,  73200, -205200,  79,
3405		79200,  84000, -205200,  39,
3406		11520,  12600, -207000,  41,
3407		18000,  19800, -207000,  65,
3408		23400,  24600, -208800,  13,
3409		0,   4800, -210600,  64,
3410		4800,   7800, -210600,  36,
3411		84000,  86400, -210600,  64,
3412		15600,  16500, -212400,  33,
3413		55200,  59115, -216000,  57,
3414		73200,  76800, -216000,  44,
3415		19800,  21600, -219600,  65,
3416		54600,  55200, -219600,  19,
3417		59115,  59700, -219600,   6,
3418		53700,  54600, -228900,  19,
3419		59700,  60300, -228900,   6,
3420		21600,  24600, -230400,  65,
3421		24600,  32520, -230400,  13,
3422		40500,  42600, -230400,  15,
3423		42600,  46200, -230400,  28,
3424		46200,  52320, -230400,  15,
3425		48600,  49200, -234000,  19,
3426		60300,  60600, -234000,   6,
3427		7800,  11520, -243000,  41,
3428		11520,  16500, -243000,  70,
3429		53100,  53700, -243000,  19,
3430		60600,  63000, -243000,   6,
3431		63000,  64800, -243000,  61,
3432		79200,  84000, -243000,  82,
3433		16500,  23700, -252000,  33,
3434		49200,  53100, -252000,  19,
3435		53100,  61200, -252000,  80,
3436		0,   4800, -270000,  82,
3437		12600,  16500, -270000,  43,
3438		23700,  32520, -270000,  87,
3439		32520,  40500, -270000,  13,
3440		40500,  49200, -270000,  56,
3441		64800,  76800, -270000,  61,
3442		76800,  84000, -270000,  44,
3443		84000,  86400, -270000,  82,
3444		2700,   4800, -273600,  82,
3445		0,  12600, -297000,  43,
3446		27600,  49200, -297000,  18,
3447		49200,  64800, -297000,   2,
3448		12600,  27600, -306000,  53,
3449		0,  86400, -324000,  58
3450	]
3451};
3452
3453/* Return the constellation name corresponding to a given mean equatorial
3454 position P.  EPOCH is the precessional equinox and ecliptic date
3455 of P.  */
3456$ns.constellation.calc = function (pp, epoch) {
3457	var i, k; // int
3458	var ra, dec, d; // double
3459	var p = []; // double
3460
3461	for (i = 0; i < 3; i++) {
3462		p[i] = pp[i];
3463	}
3464
3465	/* Precess from given epoch to J2000.  */
3466	$moshier.precess.calc (p, epoch, 1);
3467	/* Precess from J2000 to Besselian epoch 1875.0.  */
3468	$moshier.precess.calc (p, {julian: 2405889.25855}, -1);
3469	d = p[0] * p[0] + p[1] * p[1] + p[2] * p[2];
3470	d = Math.sqrt (d);
3471	ra = Math.atan2 (p[1], p[0]) * ($const.RTD * 3600. / 15.);
3472	if (ra < 0.0) {
3473		ra += 86400.0;
3474	}
3475	dec = Math.asin (p[2] / d) * ($const.RTD * 3600.);
3476
3477	/* FIND CONSTELLATION SUCH THAT THE DECLINATION ENTERED IS HIGHER THAN
3478	 THE LOWER BOUNDARY OF THE CONSTELLATION WHEN THE UPPER AND LOWER
3479	 RIGHT ASCENSIONS FOR THE CONSTELLATION BOUND THE ENTERED RIGHT
3480	 ASCENSION
3481	 */
3482	for (i = 0; i < this.bndries.length / 4; i++) {
3483		k = i << 2;
3484		if (ra >= this.bndries[k] && ra < this.bndries[k+1] && dec > this.bndries[k+2]) {
3485			k = this.bndries [k+3];
3486			return k;
3487		}
3488	}
3489	return -1;
3490};
3491
3492$ns.deflectioon = {};
3493
3494$ns.deflectioon.calc = function (p, q, e, result) {
3495	var C; // double
3496	var i; // int
3497
3498	C = 1.974e-8/($const.SE*(1.0+$const.qe));
3499	for( i=0; i<3; i++ ) {
3500		$const.dp[i] = C*($const.pq*e[i]/$const.SE - $const.ep*q[i]/$const.SO);
3501		p[i] += $const.dp[i];
3502	}
3503
3504	result = result || {};
3505
3506	result.sunElongation = Math.acos ( -$const.ep )/$const.DTR;
3507	result.lightDeflection = $util.showcor( p, $const.dp );
3508
3509	return result;
3510};
3511
3512$ns.diurnal = {
3513	/* Earth radii per au. */
3514	DISFAC: 0.0
3515};
3516
3517/* Diurnal aberration
3518 * This formula is less rigorous than the method used for
3519 * annual aberration.  However, the correction is small.
3520 */
3521$ns.diurnal.aberration = function (last, ra, dec, result) {
3522	var lha, coslha, sinlha, cosdec, sindec; // double
3523	var coslat, N, D; // double
3524
3525	result = result || {};
3526	result.ra = ra;
3527	result.dec = dec;
3528
3529	lha = last - result.ra;
3530	coslha = Math.cos(lha);
3531	sinlha = Math.sin(lha);
3532	cosdec = Math.cos(result.dec);
3533	sindec = Math.sin(result.dec);
3534	coslat = Math.cos( $const.DTR*$const.tlat );
3535
3536	if( cosdec != 0.0 )
3537		N = 1.5472e-6*$const.trho*coslat*coslha/cosdec;
3538	else
3539		N = 0.0;
3540	result.ra += N;
3541
3542	D = 1.5472e-6*$const.trho*coslat*sinlha*sindec;
3543	result.dec += D;
3544
3545	result.dRA = $const.RTS*N/15.0;
3546	result.dDec = $const.RTS*D;
3547
3548	return result;
3549};
3550
3551/* Diurnal parallax, AA page D3
3552 */
3553$ns.diurnal.parallax = function (last, ra, dec, dist, result) {
3554	var cosdec, sindec, coslat, sinlat; // double
3555	var p = [], dp = [], x, y, z, D; // double
3556
3557	result = result || {};
3558	result.ra = ra;
3559	result.dec = dec;
3560
3561	/* Don't bother with this unless the equatorial horizontal parallax
3562	 * is at least 0.005"
3563	 */
3564	if( dist > 1758.8 ) {
3565		return result;
3566	}
3567
3568	this.DISFAC = $const.au / (0.001 * $const.aearth);
3569	cosdec = Math.cos(result.dec);
3570	sindec = Math.sin(result.dec);
3571
3572	/* Observer's astronomical latitude
3573	 */
3574	x = $const.tlat * $const.DTR;
3575	coslat = Math.cos(x);
3576	sinlat = Math.sin(x);
3577
3578	/* Convert to equatorial rectangular coordinates
3579	 * in which unit distance = earth radius
3580	 */
3581	D = dist * this.DISFAC;
3582	p[0] = D*cosdec*Math.cos(result.ra);
3583	p[1] = D*cosdec*Math.sin(result.ra);
3584	p[2] = D*sindec;
3585
3586	dp[0] = -$const.trho*coslat*Math.cos(last);
3587	dp[1] = -$const.trho*coslat*Math.sin(last);
3588	dp[2] = -$const.trho*sinlat;
3589
3590	x = p[0] + dp[0];
3591	y = p[1] + dp[1];
3592	z = p[2] + dp[2];
3593	D = x*x + y*y + z*z;
3594	D = Math.sqrt(D);	/* topocentric distance */
3595
3596	/* recompute ra and dec */
3597	result.ra = $util.zatan2(x,y);
3598	result.dec = Math.asin(z/D);
3599	$util.showcor (p, dp, result);
3600	return result;
3601};
3602
3603$ns.fk4fk5 = {
3604	/* Factors to eliminate E terms of aberration
3605	 */
3606	A: [-1.62557e-6, -3.1919e-7, - 1.3843e-7],
3607	Ad: [1.244e-3, -1.579e-3, -6.60e-4],
3608
3609	/* Transformation matrix for unit direction vector,
3610	 * and motion vector in arc seconds per century
3611	 */
3612	Mat: [
3613		0.9999256782, -0.0111820611, -4.8579477e-3,
3614		2.42395018e-6, -2.710663e-8, -1.177656e-8,
3615		0.0111820610, 0.9999374784, -2.71765e-5,
3616		2.710663e-8, 2.42397878e-6, -6.587e-11,
3617		4.8579479e-3, -2.71474e-5, 0.9999881997,
3618		1.177656e-8, -6.582e-11, 2.42410173e-6,
3619		-5.51e-4, -0.238565, 0.435739,
3620		0.99994704, -0.01118251, -4.85767e-3,
3621		0.238514, -2.667e-3, -8.541e-3,
3622		0.01118251, 0.99995883, -2.718e-5,
3623		-0.435623, 0.012254, 2.117e-3,
3624		4.85767e-3, -2.714e-5, 1.00000956
3625	]
3626};
3627
3628/* Convert FK4 B1950.0 catalogue coordinates
3629 * to FK5 J2000.0 coordinates.
3630 * AA page B58.
3631 */
3632$ns.fk4fk5.calc = function (p, m, el) {
3633	var a, b, c; // double
3634	var u, v; // double array
3635	var R = []; // double
3636	var i, j; // int
3637
3638	/* Note the direction vector and motion vector
3639	 * are already supplied by rstar.c.
3640	 */
3641	a = 0.0;
3642	b = 0.0;
3643	for( i=0; i<3; i++ ) {
3644		m[i] *= $const.RTS; /* motion must be in arc seconds per century */
3645		a += this.A[i] * p[i];
3646		b += this.Ad[i] * p[i];
3647	}
3648	/* Remove E terms of aberration from FK4
3649	 */
3650	for( i=0; i<3; i++ ) {
3651		R[i] = p[i] - this.A[i] + a * p[i];
3652		R[i+3] = m[i] - this.Ad[i] + b * p[i];
3653	}
3654
3655	var u_i = 0;
3656	var v_i = 0;
3657
3658	/* Perform matrix multiplication
3659	 */
3660	v = this.Mat;
3661	for( i=0; i<6; i++ ) {
3662		a = 0.0;
3663		u = R;
3664		for( j=0; j<6; j++ ) {
3665			a += u [u_i ++] * v [v_i ++];//*u++ * *v++;
3666		}
3667		if( i < 3 ) {
3668			p[i] = a;
3669		} else {
3670			m[i-3] = a;
3671		}
3672	}
3673
3674	/* Transform the answers into J2000 catalogue entries
3675	 * in radian measure.
3676	 */
3677	b = p[0]*p[0] + p[1]*p[1];
3678	a = b + p[2]*p[2];
3679	c = a;
3680	a = Math.sqrt(a);
3681
3682	el.ra = $util.zatan2( p[0], p[1] );
3683	el.dec = Math.asin( p[2]/a );
3684
3685	/* Note motion converted back to radians per (Julian) century */
3686	el.raMotion = (p[0]*m[1] - p[1]*m[0])/($const.RTS*b);
3687	el.decMotion = (m[2]*b - p[2]*(p[0]*m[0] + p[1]*m[1]) )/($const.RTS*c*Math.sqrt(b));
3688
3689	if( el.parallax > 0.0 ) {
3690		c = 0.0;
3691		for( i=0; i<3; i++ ) {
3692			c += p[i] * m[i];
3693		}
3694
3695		/* divide by RTS to deconvert m (and therefore c)
3696		 * from arc seconds back to radians
3697		 */
3698		el.velocity = c/(21.094952663 * el.parallax * $const.RTS * a);
3699	}
3700	el.parallax = el.parallax / a;	/* a is dimensionless */
3701	el.epoch = $const.j2000;
3702};
3703
3704$ns.light = {};
3705
3706$ns.light.calc = function (body, q, e) {
3707	var p = [], p0 = [], ptemp = []; // double
3708	var P, Q, E, t, x, y; // double
3709	var i, k; // int
3710
3711	/* save initial q-e vector for display */
3712	for( i=0; i<3; i++ ) {
3713		p0[i] = q[i] - e[i];
3714	}
3715
3716	E = 0.0;
3717	for( i=0; i<3; i++ ) {
3718		E += e[i]*e[i];
3719	}
3720	E = Math.sqrt(E);
3721
3722	for( k=0; k<2; k++ ) {
3723		P = 0.0;
3724		Q = 0.0;
3725		for( i=0; i<3; i++ ) {
3726			y = q[i];
3727			x = y - e[i];
3728			p[i] = x;
3729			Q += y * y;
3730			P += x * x;
3731		}
3732		P = Math.sqrt(P);
3733		Q = Math.sqrt(Q);
3734		/* Note the following blows up if object equals sun. */
3735		t = (P + 1.97e-8 * Math.log( (E+P+Q)/(E-P+Q) ) )/173.1446327;
3736		$moshier.kepler.calc ({julian: $moshier.body.earth.position.date.julian - t}, body, q, ptemp );
3737	}
3738
3739	body.lightTime = 1440.0 * t;
3740
3741	/* Final object-earth vector and the amount by which it changed.
3742	 */
3743	for( i=0; i<3; i++ ) {
3744		x = q[i] - e[i];
3745		p[i] = x;
3746		$const.dp [i] = x - p0[i];
3747	}
3748	body.aberration = $util.showcor (p0, $const.dp );
3749
3750	/* Calculate dRA/dt and dDec/dt.
3751	 * The desired correction of apparent coordinates is relative
3752	 * to the equinox of date, but the coordinates here are
3753	 * for J2000.  This introduces a slight error.
3754	 *
3755	 * Estimate object-earth vector t days ago.  We have
3756	 * p(?) = q(J-t) - e(J), and must adjust to
3757	 * p(J-t)  =  q(J-t) - e(J-t)  =  q(J-t) - (e(J) - Vearth * t)
3758	 *         =  p(?) + Vearth * t.
3759	 */
3760	$moshier.vearth.calc ($moshier.body.earth.position.date);
3761
3762	for( i=0; i<3; i++ ) {
3763		p[i] += $moshier.vearth.vearth [i]*t;
3764	}
3765
3766	var d = $util.deltap ( p, p0);  /* see dms.c */
3767	$const.dradt = d.dr;
3768	$const.ddecdt = d.dd;
3769	$const.dradt /= t;
3770	$const.ddecdt /= t;
3771};
3772
3773$ns.moon = {
3774	ra: 0.0,	/* Right Ascension */
3775	dec: 0.0,
3776	ascNode: 0.0,
3777	meanM: 0.0,
3778};
3779
3780
3781$ns.moon.swe_difrad2n = function( p1, p2) { 
3782var dif;
3783  dif = (Math.PI*2 + p1 - p2) % (Math.PI*2);
3784  if (dif  >= Math.PI) return (dif - Math.PI*2);
3785  return (dif);
3786};
3787
3788$ns.moon.mods3600 = function(x) {
3789var lx;
3790lx = parseFloat(x);
3791lx = (1296000+ lx) % 1296000.0 ;
3792return( lx );
3793};
3794
3795$ns.moon.corr_mean_node = function(J) {
3796  var J0, dJ, dayscty, dcor, dcor0, dcor1, dfrac;
3797  var i;
3798var  mean_node_corr = [
3799-2.56,
3800-2.473, -2.392347, -2.316425, -2.239639, -2.167764, -2.095100, -2.024810, -1.957622, -1.890097, -1.826389,
3801-1.763335, -1.701047, -1.643016, -1.584186, -1.527309, -1.473352, -1.418917, -1.367736, -1.317202, -1.267269,
3802-1.221121, -1.174218, -1.128862, -1.086214, -1.042998, -1.002491, -0.962635, -0.923176, -0.887191, -0.850403,
3803-0.814929, -0.782117, -0.748462, -0.717241, -0.686598, -0.656013, -0.628726, -0.600460, -0.573219, -0.548634,
3804-0.522931, -0.499285, -0.476273, -0.452978, -0.432663, -0.411386, -0.390788, -0.372825, -0.353681, -0.336230,
3805-0.319520, -0.302343, -0.287794, -0.272262, -0.257166, -0.244534, -0.230635, -0.218126, -0.206365, -0.194000,
3806-0.183876, -0.172782, -0.161877, -0.153254, -0.143371, -0.134501, -0.126552, -0.117932, -0.111199, -0.103716,
3807-0.096160, -0.090718, -0.084046, -0.078007, -0.072959, -0.067235, -0.062990, -0.058102, -0.053070, -0.049786,
3808-0.045381, -0.041317, -0.038165, -0.034501, -0.031871, -0.028844, -0.025701, -0.024018, -0.021427, -0.018881,
3809-0.017291, -0.015186, -0.013755, -0.012098, -0.010261, -0.009688, -0.008218, -0.006670, -0.005979, -0.004756,
3810-0.003991, -0.002996, -0.001974, -0.001975, -0.001213, -0.000377, -0.000356, 5.779e-05, 0.000378, 0.000710,
38110.001092, 0.000767, 0.000985, 0.001443, 0.001069, 0.001141, 0.001321, 0.001462, 0.001695, 0.001319,
38120.001567, 0.001873, 0.001376, 0.001336, 0.001347, 0.001330, 0.001256, 0.000813, 0.000946, 0.001079,
38130.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
38140.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
38150.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
3816-0.000364, -0.000452, -0.001091, -0.001159, -0.001136, -0.001798, -0.002249, -0.002622, -0.002990, -0.003555,
3817-0.004425, -0.004758, -0.005134, -0.006065, -0.006839, -0.007474, -0.008283, -0.009411, -0.010786, -0.011810,
3818-0.012989, -0.014825, -0.016426, -0.017922, -0.019774, -0.021881, -0.024194, -0.026190, -0.028440, -0.031285,
3819-0.033817, -0.036318, -0.039212, -0.042456, -0.045799, -0.048994, -0.052710, -0.056948, -0.061017, -0.065181,
3820-0.069843, -0.074922, -0.079976, -0.085052, -0.090755, -0.096840, -0.
3820102797, -0.108939, -0.115568, -0.122636,
3821-0.129593, -0.136683, -0.144641, -0.152825, -0.161044, -0.169758, -0.178916, -0.188712, -0.198401, -0.208312,
3822-0.219395, -0.230407, -0.241577, -0.253508, -0.265640, -0.278556, -0.291330, -0.304353, -0.318815, -0.332882,
3823-0.347316, -0.362895, -0.378421, -0.395061, -0.411748, -0.428666, -0.447477, -0.465636, -0.484277, -0.504600,
3824-0.524405, -0.545533, -0.567020, -0.588404, -0.612099, -0.634965, -0.658262, -0.683866, -0.708526, -0.734719,
3825-0.761800, -0.788562, -0.818092, -0.846885, -0.876177, -0.908385, -0.939371, -0.972027, -1.006149, -1.039634,
3826-1.076135, -1.112156, -1.148490, -1.188312, -1.226761, -1.266821, -1.309156, -1.350583, -1.395223, -1.440028,
3827-1.485047, -1.534104, -1.582023, -1.631506, -1.684031, -1.735687, -1.790421, -1.846039, -1.901951, -1.961872,
3828-2.021179, -2.081987, -2.146259, -2.210031, -2.276609, -2.344904, -2.413795, -2.486559, -2.559564, -2.634215,
3829-2.712692, -2.791289, -2.872533, -2.956217, -3.040965, -3.129234, -3.218545, -3.309805, -3.404827, -3.5008,
3830-3.601, -3.7, -3.8,
3831];
3832  J0 = -3063616.5; /* 1-jan--13000 greg */
3833  dayscty = 36524.25; /* days per Gregorian century */
3834  dJ = J - J0;
3835  i = Math.floor(dJ / dayscty); /* centuries = index of lower correction value */
3836  dfrac = (dJ - i * dayscty) / dayscty;
3837  dcor0 = mean_node_corr[i];
3838  dcor1 = mean_node_corr[i + 1];
3839  dcor = dcor0 + dfrac * (dcor1 - dcor0);
3840  return dcor;
3841};
3842
3843var T,T2,SWELP,NF;
3844$ns.moon.mean_elements = function(J) {
3845/* Mean anomaly of sun = l' (J. Laskar) */
3846/*M =  mods3600(129596581.038354 * T +  1287104.76154);*/
3847var z = [
3848/* The following are scaled in arc seconds, time in Julian centuries.
3849   They replace the corresponding terms in the mean elements.  */
3850-1.312045233711e+01, /* F, t^2 */
3851-1.138215912580e-03, /* F, t^3 */
3852-9.646018347184e-06, /* F, t^4 */
3853 3.146734198839e+01, /* l, t^2 */
3854 4.768357585780e-02, /* l, t^3 */
3855-3.421689790404e-04, /* l, t^4 */
3856-6.847070905410e+00, /* D, t^2 */
3857-5.834100476561e-03, /* D, t^3 */
3858-2.905334122698e-04, /* D, t^4 */
3859-5.663161722088e+00, /* L, t^2 */
3860 5.722859298199e-03, /* L, t^3 */
3861-8.466472828815e-05, /* L, t^4 */
3862/* The following longitude terms are in arc seconds times 10^5.  */
3863-8.429817796435e+01, /* t^2 cos(18V - 16E - l) */
3864-2.072552484689e+02, /* t^2 sin(18V - 16E - l) */
3865 7.876842214863e+00, /* t^2 cos(10V - 3E - l) */
3866 1.836463749022e+00, /* t^2 sin(10V - 3E - l) */
3867-1.557471855361e+01, /* t^2 cos(8V - 13E) */
3868-2.006969124724e+01, /* t^2 sin(8V - 13E) */
3869 2.152670284757e+01, /* t^2 cos(4E - 8M + 3J) */
3870-6.179946916139e+00, /* t^2 sin(4E - 8M + 3J) */
3871-9.070028191196e-01, /* t^2 cos(18V - 16E) */
3872-1.270848233038e+01, /* t^2 sin(18V - 16E) */
3873-2.145589319058e+00, /* t^2 cos(2J - 5S) */
3874 1.381936399935e+01, /* t^2 sin(2J - 5S) */
3875-1.999840061168e+00, /* t^3 sin(l') */
3876];
3877
3878T = (parseFloat(J)-2451545.0)/36525.0;
3879T2 = T*T;
3880var T3 = T*T2;
3881var T4 = T2*T2;
3882var fracT = T % 1;
3883var M =  this.mods3600(129600000.0 * fracT - 3418.961646 * T +  1287104.76154);
3884M += ((((((((
3885  1.62e-20 * T
3886- 1.0390e-17 ) * T
3887- 3.83508e-15 ) * T
3888+ 4.237343e-13 ) * T
3889+ 8.8555011e-11 ) * T
3890- 4.77258489e-8 ) * T
3891- 1.1297037031e-5 ) * T
3892+ 1.4732069041e-4 ) * T
3893- 0.552891801772 ) * T2;
3894/* Mean distance of moon from its ascending node = F */
3895/*NF = mods3600((1739527263.0983 - 2.079419901760e-01) * T + 335779.55755);*/
3896NF = this.mods3600(1739232000.0 * fracT + 295263.0983 * T - 2.079419901760e-01 * T + 335779.55755);
3897/* Mean anomaly of moon = l */
3898/*MP = mods3600((1717915923.4728 - 2.035946368532e-01) * T +  485868.28096);*/
3899var MP = this.mods3600(1717200000.0 * fracT + 715923.4728 * T - 2.035946368532e-01 * T +  485868.28096);
3900/* Mean elongation of moon = D */
3901/*D = mods3600((1602961601.4603 + 3.962893294503e-01) * T + 1072260.73512);*/
3902var D = this.mods3600(1601856000.0 * fracT + 1105601.4603 * T + 3.962893294503e-01 * T + 1072260.73512);
3903/* Mean longitude of moon, referred to the mean ecliptic and equinox of date */
3904/*SWELP = mods3600((1732564372.83264 - 6.784914260953e-01) * T +  785939.95571);*/
3905SWELP = this.mods3600(1731456000.0 * fracT + 1108372.83264 * T - 6.784914260953e-01 * T +  785939.95571);
3906/* Higher degree secular terms found by least squares fit */
3907var a1 = ((z[2]*T + z[1])*T + z[0])*T2; 
3908var a2 = ((z[5]*T + z[4])*T + z[3])*T2; 
3909var a3 = ((z[8]*T + z[7])*T + z[6])*T2; 
3910var a4 = ((z[11]*T + z[10])*T + z[9])*T2; 
3911NF += a1;
3912MP += a2;
3913D += a3;
3914SWELP += a4;
3915
3916};
3917
3918$ns.moon.calc_nodes = function(J) {
3919  var J0, dJ, dayscty, dcor, dcor0, dcor1, dfrac;
3920  var i;
3921  J0 = $const.j2000; /* 1-jan--13000 greg */
3922  dayscty = 36524.25/5;
3923  dJ = J - J0;
3924  i = -(dJ / dayscty); 
3925var ddd2 = parseFloat(J) - 0.001;
3926//	var node = $moshier.body.moon.position.apparent.ascNode;
3927this.mean_elements(J);
3928dcor = this.corr_mean_node(J) * 3600.0;
3929var node1 = (Math.PI*2 + (SWELP - NF - dcor) * 4.8481368110953599359e-6) % (Math.PI*2);
3930this.mean_elements(ddd2);
3931dcor = this.corr_mean_node(ddd2) * 3600.0;
3932var node2=  (Math.PI*2 + (SWELP - NF - dcor) * 4.8481368110953599359e-6) % (Math.PI*2);
3933var node3 = this.swe_difrad2n(node1, node2)*1000.0;
3934var xxx= [ node1, 0,0.00256955529, node3, 0,0 ];
3935var yyy = [];
3936swi_polcart_sp(xxx, yyy);
3937var m = [ yyy[0], yyy[1], yyy[2], yyy[3],yyy[4],yyy[5] ];
3938xxx=[ yyy[0], yyy[1], yyy[2]];
3939swi_coortrf2(xxx, yyy, -$moshier.epsilon.sineps, $moshier.epsilon.coseps);
3940var mm= [yyy[0], yyy[1], yyy[2], m[3], m[4], m[5]];
3941var zzz = [ m[3], m[4], m[5] ];
3942swi_coortrf2(zzz, yyy, -$moshier.epsilon.sineps, $moshier.epsilon.coseps);
3943xxx = [ mm[0], mm[1], mm[2] ];
3944$moshier.nutation.calc({julian: J}, xxx);$moshier.nutation2.calc({julian: J});
3945m= [mm[0], mm[1], mm[2],yyy[0],yyy[1],yyy[2]];
3946swi_coortrf2(xxx, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
3947mm= [yyy[0],yyy[1],yyy[2]];
3948zzz = [ mm[3], mm[4], mm[5] ];
3949swi_coortrf2(zzz, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
3950m= [mm[0], mm[1], mm[2],yyy[0],yyy[1],yyy[2]];
3951xxx = [ m[0], m[1], m[2] ];
3952swi_coortrf2(xxx, yyy, Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
3953mm= [yyy[0],yyy[1],yyy[2], m[3],m[4],m[5]];
3954zzz = [ mm[3], mm[4], mm[5] ];
3955$moshier.nutation.calc({julian: J}, zzz);
3956  swi_coortrf2(zzz, yyy,Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
3957m= [mm[0], mm[1], mm[2],yyy[0],yyy[1],yyy[2]];
3958//zzz = [ yyy[0], yyy[1], yyy[2], 0, 0, 0 ];
3959//swi_coortrf2(xxx, yyy, Math.sin($moshier.nutation.nuto), Math.cos($moshier.nutation.nuto));
3960//xxx[0] = yyy[0];xxx[1] = yyy[1];xxx[2] = yyy[2];
3961//swi_coortrf2(zzz, yyy, Math.sin($moshier.nutation.nuto), Math.cos($moshier.nutation.nuto));
3962xxx =m;
3963swi_cartpol_sp(xxx, yyy);
3964var nnode = (360 + yyy[0]*$const.RTD ) % 360;
3965return nnode;
3966
3967};
3968
3969
3970/* Calculate geometric position of the Moon and apply
3971 * approximate corrections to find apparent position,
3972 * phase of the Moon, etc. for AA.ARC.
3973 */
3974$ns.moon.calc = function () {
3975	var i, prtsav; // int
3976	var ra0, dec0; // double
3977	var x, y, z, lon0; // double
3978	var pp = [], qq = [], pe = [], re = [], moonpp = [], moonpol = []; // double
3979	var aNode;
3980
3981	$moshier.body.moon.position = {
3982		polar: [],
3983		rect: []
3984	};
3985
3986	/* Geometric equatorial coordinates of the earth.  */
3987	for (i = 0; i < 3; i++) {
3988		re [i] = $moshier.body.earth.position.rect [i];
3989	}
3990
3991	/* Run the orbit calculation twice, at two different times,
3992	 * in order to find the rate of change of R.A. and Dec.
3993	 */
3994
3995	/* Calculate for 0.001 day ago
3996	 */
3997	this.calcll({julian: $moshier.body.earth.position.date.julian - 0.001}, moonpp, moonpol); // TDT - 0.001
3998	ra0 = this.ra;
3999	dec0 = this.dec;
4000	lon0 = moonpol[0];
4001
4002	/* Calculate for present instant.
4003	 */
4004	$moshier.body.moon.position.nutation = this.calcll ($moshier.body.earth.position.date, moonpp, moonpol).nutation;
4005
4006	$moshier.body.moon.position.geometric = {
4007		longitude: $const.RTD * $moshier.body.moon.position.polar[0],
4008		latitude: $const.RTD * $moshier.body.moon.position.polar[1],
4009		distance: $const.RTD * $moshier.body.moon.position.polar[2]
4010	};
4011
4012	/**
4013	 * The rates of change.  These are used by altaz () to
4014	 * correct the time of rising, transit, and setting.
4015	 */
4016	$const.dradt = this.ra - ra0;
4017	if ($const.dradt >= Math.PI)
4018		$const.dradt = $const.dradt - 2.0 * Math.PI;
4019	if ($const.dradt <= -Math.PI)
4020		$const.dradt = $const.dradt + 2.0 * Math.PI;
4021	$const.dradt = 1000.0 * $const.dradt;
4022	$const.ddecdt = 1000.0*(this.dec-dec0);
4023
4024	/* Rate of change in longitude, degrees per day
4025	 * used for phase of the moon
4026	 */
4027	lon0 = 1000.0*$const.RTD*(moonpol[0] - lon0);
4028
4029	/* Get apparent coordinates for the earth.  */
4030	z = re [0] * re [0] + re [1] * re [1] + re [2] * re [2];
4031	z = Math.sqrt(z);
4032	for (i = 0; i < 3; i++) {
4033		re[i] /= z;
4034	}
4035
4036	/* aberration of light. */
4037	$moshier.body.moon.position.annualAberration = $moshier.aberration.calc (re);
4038
4039	/* pe[0] -= STR * (20.496/(RTS*pe[2])); */
4040	$moshier.precess.calc (re, $moshier.body.earth.position.date, -1);
4041	$moshier.nutation.calc ($moshier.body.earth.position.date, re);
4042
4043	for (i = 0; i < 3; i++) {
4044		re[i] *= z;
4045		if ($const.truepos!=0) { re[i] -= $const.dp[i]; }
4046	}
4047
4048	$moshier.lonlat.calc ( re, $moshier.body.earth.position.date, pe, 0 );
4049
4050	/* Find sun-moon-earth angles */
4051	for( i=0; i<3; i++ ) {
4052		qq[i] = re[i] + moonpp[i];
4053	}
4054	$util.angles ( moonpp, qq, re );
4055
4056	/* Display answers
4057	 */
4058	$moshier.body.moon.position.apparentGeocentric = {
4059		longitude: moonpol [0],
4060		dLongitude: $const.RTD * moonpol [0],
4061		latitude: moonpol [1],
4062		dLatitude: $const.RTD * moonpol [1],
4063		distance: moonpol [2] / $const.Rearth
4064	};
4065	$moshier.body.moon.position.apparentLongitude = $moshier.body.moon.position.apparentGeocentric.dLongitude;
4066	var dmsLongitude = $util.dms ($moshier.body.moon.position.apparentGeocentric.longitude);
4067	$moshier.body.moon.position.apparentLongitudeString =
4068		dmsLongitude.degree + '\u00B0' +
4069		dmsLongitude.minutes + '\'' +
4070		Math.floor (dmsLongitude.seconds) + '"'
4071	;
4072
4073	$moshier.body.moon.position.apparentLongitude30String =
4074		$util.mod30 (dmsLongitude.degree) + '\u00B0' +
4075		dmsLongitude.minutes + '\'' +
4076		Math.floor (dmsLongitude.seconds) + '"'
4077	;
4078
4079	$moshier.body.moon.position.geocentricDistance = moonpol [2] / $const.Rearth;
4080
4081	x = $const.Rearth/moonpol[2];
4082	$moshier.body.moon.position.dHorizontalParallax = Math.asin (x);
4083	$moshier.body.moon.position.horizontalParallax = $util.dms (Math.asin (x));
4084
4085	x = 0.272453 * x + 0.0799 / $const.RTS; /* AA page L6 */
4086	$moshier.body.moon.position.dSemidiameter = x;
4087	$moshier.body.moon.position.Semidiameter = $util.dms (x);
4088
4089	x = $const.RTD * Math.acos(-$const.ep);
4090	/*	x = 180.0 - RTD * arcdot (re, pp); */
4091	$moshier.body.moon.position.sunElongation = x;
4092	x = 0.5 * (1.0 + $const.pq);
4093	$moshier.body.moon.position.illuminatedFraction = x;
4094
4095	/* Find phase of the Moon by comparing Moon's longitude
4096	 * with Earth's longitude.
4097	 *
4098	 * The number of days before or past indicated phase is
4099	 * estimated by assuming the true longitudes change linearly
4100	 * with time.  These rates are estimated for the date, but
4101	 * do not stay constant.  The error can exceed 0.15 day in 4 days.
4102	 */
4103	x = moonpol[0] - pe[0];
4104	x = $util.modtp ( x ) * $const.RTD;	/* difference in longitude */
4105	var i2 = (x/90) % 2;
4106	i = Math.floor (x/90);	/* number of quarters */
4107	x = (x - i*90.0);	/* phase angle mod 90 degrees */
4108	/* days per degree of phase angle */
4109	z = moonpol[2]/(12.3685 * 0.00257357);
4110
4111	if( x > 45.0 ) {
4112		y = -(x - 90.0)*z;
4113		$moshier.body.moon.position.phaseDaysBefore = y;
4114		i = (i+1) & 3;
4115	} else {
4116		y = x*z;
4117		$moshier.body.moon.position.phaseDaysPast = y;
4118	}
4119
4120	$moshier.body.moon.position.phaseQuarter = i2;
4121
4122	$moshier.body.moon.position.apparent = {
4123		dRA: this.ra,
4124		dDec: this.dec,
4125		ra: $util.hms (this.ra),
4126		dec: $util.dms (this.dec),
4127		ascNode: $moshier.nutation.ascNode,
4128		meanM: this.meanM,
4129		phaseDB: $moshier.body.moon.position.phaseDaysBefore,
4130		phaseDP: $moshier.body.moon.position.phaseDaysPast,
4131		lon0: lon0,
4132	};
4133
4134	/* Compute and display topocentric position (altaz.c)
4135	 */
4136	pp[0] = this.ra;
4137	pp[1] = this.dec;
4138	pp[2] = moonpol[2];
4139	$moshier.body.moon.position.altaz = $moshier.altaz.calc (pp, $moshier.body.earth.position.date);
4140};
4141
4142/* Calculate apparent latitude, longitude, and horizontal parallax
4143 * of the Moon at Julian date J.
4144 */
4145$ns.moon.calcll = function (date, rect, pol, result) {
4146	var cosB, sinB, cosL, sinL, y, z; // double
4147	var qq = [], pp = []; // double
4148	var i; // int
4149	var xx = [];
4150
4151	result = result || {};
4152
4153	/* Compute obliquity of the ecliptic, coseps, and sineps.  */
4154	$moshier.epsilon.calc (date);
4155	/* Get geometric coordinates of the Moon.  */
4156	$moshier.gplan.moon (date, rect, pol, xx);
4157	this.meanM = xx[0];
4158	/* Post the geometric ecliptic longitude and latitude, in radians,
4159	 * and the radius in au.
4160	 */
4161	$const.body.position.polar [0] = pol[0];
4162	$const.body.position.polar[1] = pol[1];
4163	$const.body.position.polar[2] = pol[2];
4164
4165	/* Light time correction to longitude,
4166	 * about 0.7".
4167	 */
4168	pol[0] -= 0.0118 * $const.DTR * $const.Rearth / pol[2];
4169
4170	/* convert to equatorial system of date */
4171	cosB = Math.cos(pol[1]);
4172	sinB = Math.sin(pol[1]);
4173	cosL = Math.cos(pol[0]);
4174	sinL = Math.sin(pol[0]);
4175	rect[0] = cosB*cosL;
4176	rect[1] = $moshier.epsilon.coseps*cosB*sinL - $moshier.epsilon.sineps*sinB;
4177	rect[2] = $moshier.epsilon.sineps*cosB*sinL + $moshier.epsilon.coseps*sinB;
4178
4179	/* Rotate to J2000. */
4180	$moshier.precess.calc ( rect, {julian: $moshier.body.earth.position.date.julian}, 1 ); // TDT
4181
4182	/* Find Euclidean vectors and angles between earth, object, and the sun
4183	 */
4184	for( i=0; i<3; i++ ) {
4185		pp[i] = rect[i] * pol[2];
4186		qq[i] = $moshier.body.earth.position.rect [i] + pp[i];
4187	}
4188	$util.angles (pp, qq, $moshier.body.earth.position.rect);
4189
4190	/* Make rect a unit vector.  */
4191	/* for (i = 0; i < 3; i++) */
4192	/*  rect[i] /= EO; */
4193
4194	/* Correct position for light deflection.
4195	 (Ignore.)  */
4196	/* relativity( rect, qq, rearth ); */
4197
4198	/* Aberration of light.
4199	 The Astronomical Almanac (Section D, Daily Polynomial Coefficients)
4200	 seems to omit this, even though the reference ephemeris is inertial.  */
4201	/* annuab (rect); */
4202
4203	/* Precess to date.  */
4204	$moshier.precess.calc (rect, {julian: $moshier.body.earth.position.date.julian}, -1); // TDT
4205
4206	/* Correct for nutation at date TDT.
4207	 */
4208	result.nutation = $moshier.nutation.calc ({julian: $moshier.body.earth.position.date.julian}, rect); // TDT
4209
4210	/* Apparent geocentric right ascension and declination.  */
4211	this.ra = $util.zatan2(rect[0],rect[1]);
4212	this.dec = Math.asin(rect[2]);
4213
4214	/* For apparent ecliptic coordinates, rotate from the true
4215	 equator into the ecliptic of date.  */
4216	cosL = Math.cos($moshier.epsilon.eps + $moshier.nutation.nuto);
4217	sinL  = Math.sin($moshier.epsilon.eps + $moshier.nutation.nuto);
4218	y = cosL * rect[1] + sinL * rect[2];
4219	z = -sinL * rect[1] + cosL * rect[2];
4220	pol[0] = $util.zatan2( rect[0], y );
4221	pol[1] = Math.asin(z);
4222
4223	/* Restore earth-moon distance.  */
4224	for( i=0; i<3; i++ ) {
4225		rect[i] *= $const.EO;
4226	}
4227
4228	return result;
4229};
4230
4231$ns.nutation = {
4232	/* The answers are posted here by nutlo():
4233	 */
4234	jdnut: {},	/* time to which the nutation applies */
4235	nutl: 0.0,	/* nutation in longitude (radians) */
4236	nuto: 0.0,	/* nutation in obliquity (radians) */
4237	ascNode: 0.0,
4238	meanM: 0.0,
4239	phaseDB: 0.0,
4240	phaseDP: 0.0,
4241
4242	/* Each term in the expansion has a trigonometric
4243	 * argument given by
4244	 *   W = i*MM + j*MS + k*FF + l*DD + m*OM
4245	 * where the variables are defined below.
4246	 * The nutation in longitude is a sum of terms of the
4247	 * form (a + bT) * sin(W). The terms for nutation in obliquity
4248	 * are of the form (c + dT) * cos(W).  The coefficients
4249	 * are arranged in the tabulation as follows:
4250	 *
4251	 * Coefficient:
4252	 * i  j  k  l  m      a      b      c     d
4253	 * 0, 0, 0, 0, 1, -171996, -1742, 92025, 89,
4254	 * The first line of the table, above, is done separately
4255	 * since two of the values do not fit into 16 bit integers.
4256	 * The values a and c are arc seconds times 10000.  b and d
4257	 * are arc seconds per Julian century times 100000.  i through m
4258	 * are integers.  See the program for interpretation of MM, MS,
4259	 * etc., which are mean orbital elements of the Sun and Moon.
4260	 *
4261	 * If terms with coefficient less than X are omitted, the peak
4262	 * errors will be:
4263	 *
4264	 *   omit	error,		  omit	error,
4265	 *   a <	longitude	  c <	obliquity
4266	 * .0005"	.0100"		.0008"	.0094"
4267	 * .0046	.0492		.0095	.0481
4268	 * .0123	.0880		.0224	.0905
4269	 * .0386	.1808		.0895	.1129
4270	 */
4271	nt: [
4272		0, 0, 0, 0, 2, 2062, 2,-895, 5,
4273		-2, 0, 2, 0, 1, 46, 0,-24, 0,
4274		2, 0,-2, 0, 0, 11, 0, 0, 0,
4275		-2, 0, 2, 0, 2,-3, 0, 1, 0,
4276		1,-1, 0,-1, 0,-3, 0, 0, 0,
4277		0,-2, 2,-2, 1,-2, 0, 1, 0,
4278		2, 0,-2, 0, 1, 1, 0, 0, 0,
4279		0, 0, 2,-2, 2,-13187,-16, 5736,-31,
4280		0, 1, 0, 0, 0, 1426,-34, 54,-1,
4281		0, 1, 2,-2, 2,-517, 12, 224,-6,
4282		0,-1, 2,-2, 2, 217,-5,-95, 3,
4283		0, 0, 2,-2, 1, 129, 1,-70, 0,
4284		2, 0, 0,-2, 0, 48, 0, 1, 0,
4285		0, 0, 2,-2, 0,-22, 0, 0, 0,
4286		0, 2, 0, 0, 0, 17,-1, 0, 0,
4287		0, 1, 0, 0, 1,-15, 0, 9, 0,
4288		0, 2, 2,-2, 2,-16, 1, 7, 0,
4289		0,-1, 0, 0, 1,-12, 0, 6, 0,
4290		-2, 0, 0, 2, 1,-6, 0, 3, 0,
4291		0,-1, 2,-2, 1,-5, 0, 3, 0,
4292		2, 0, 0,-2, 1, 4, 0,-2, 0,
4293		0, 1, 2,-2, 1, 4, 0,-2, 0,
4294		1, 0, 0,-1, 0,-4, 0, 0, 0,
4295		2, 1, 0,-2, 0, 1, 0, 0, 0,
4296		0, 0,-2, 2, 1, 1, 0, 0, 0,
4297		0, 1,-2, 2, 0,-1, 0, 0, 0,
4298		0, 1, 0, 0, 2, 1, 0, 0, 0,
4299		-1, 0, 0, 1, 1, 1, 0, 0, 0,
4300		0, 1, 2,-2, 0,-1, 0, 0, 0,
4301		0, 0, 2, 0, 2,-2274,-2, 977,-5,
4302		1, 0, 0, 0, 0, 712, 1,-7, 0,
4303		0, 0, 2, 0, 1,-386,-4, 200, 0,
4304		1, 0, 2, 0, 2,-301, 0, 129,-1,
4305		1, 0, 0,-2, 0,-158, 0,-1, 0,
4306		-1, 0, 2, 0, 2, 123, 0,-53, 0,
4307		0, 0, 0, 2, 0, 63, 0,-2, 0,
4308		1, 0, 0, 0, 1, 63, 1,-33, 0,
4309		-1, 0, 0, 0, 1,-58,-1, 32, 0,
4310		-1, 0, 2, 2, 2,-59, 0, 26, 0,
4311		1, 0, 2, 0, 1,-51, 0, 27, 0,
4312		0, 0, 2, 2, 2,-38, 0, 16, 0,
4313		2, 0, 0, 0, 0, 29, 0,-1, 0,
4314		1, 0, 2,-2, 2, 29, 0,-12, 0,
4315		2, 0, 2, 0, 2,-31, 0, 13, 0,
4316		0, 0, 2, 0, 0, 26, 0,-1, 0,
4317		-1, 0, 2, 0, 1, 21, 0,-10, 0,
4318		-1, 0, 0, 2, 1, 16, 0,-8, 0,
4319		1, 0, 0,-2, 1,-13, 0, 7, 0,
4320		-1, 0, 2, 2, 1,-10, 0, 5, 0,
4321		1, 1, 0,-2, 0,-7, 0, 0, 0,
4322		0, 1, 2, 0, 2, 7, 0,-3, 0,
4323		0,-1, 2, 0, 2,-7, 0, 3, 0,
4324		1, 0, 2, 2, 2,-8, 0, 3, 0,
4325		1, 0, 0, 2, 0, 6, 0, 0, 0,
4326		2, 0, 2,-2, 2, 6, 0,-3, 0,
4327		0, 0, 0, 2, 1,-6, 0, 3, 0,
4328		0, 0, 2, 2, 1,-7, 0, 3, 0,
4329		1, 0, 2,-2, 1, 6, 0,-3, 0,
4330		0, 0, 0,-2, 1,-5, 0, 3, 0,
4331		1,-1, 0, 0, 0, 5, 0, 0, 0,
4332		2, 0, 2, 0, 1,-5, 0, 3, 0,
4333		0, 1, 0,-2, 0,-4, 0, 0, 0,
4334		1, 0,-2, 0, 0, 4, 0, 0, 0,
4335		0, 0, 0, 1, 0,-4, 0, 0, 0,
4336		1, 1, 0, 0, 0,-3, 0, 0, 0,
4337		1, 0, 2, 0, 0, 3, 0, 0, 0,
4338		1,-1, 2, 0, 2,-3, 0, 1, 0,
4339		-1,-1, 2, 2, 2,-3, 0, 1, 0,
4340		-2, 0, 0, 0, 1,-2, 0, 1, 0,
4341		3, 0, 2, 0, 2,-3, 0, 1, 0,
4342		0,-1, 2, 2, 2,-3, 0, 1, 0,
4343		1, 1, 2, 0, 2, 2, 0,-1, 0,
4344		-1, 0, 2,-2, 1,-2, 0, 1, 0,
4345		2, 0, 0, 0, 1, 2, 0,-1, 0,
4346		1, 0, 0, 0, 2,-2, 0, 1, 0,
4347		3, 0, 0, 0, 0, 2, 0, 0, 0,
4348		0, 0, 2, 1, 2, 2, 0,-1, 0,
4349		-1, 0, 0, 0, 2, 1, 0,-1, 0,
4350		1, 0, 0,-4, 0,-1, 0, 0, 0,
4351		-2, 0, 2, 2, 2, 1, 0,-1, 0,
4352		-1, 0, 2, 4, 2,-2, 0, 1, 0,
4353		2, 0, 0,-4, 0,-1, 0, 0, 0,
4354		1, 1, 2,-2, 2, 1, 0,-1, 0,
4355		1, 0, 2, 2, 1,-1, 0, 1, 0,
4356		-2, 0, 2, 4, 2,-1, 0, 1, 0,
4357		-1, 0, 4, 0, 2, 1, 0, 0, 0,
4358		1,-1, 0,-2, 0, 1, 0, 0, 0,
4359		2, 0, 2,-2, 1, 1, 0,-1, 0,
4360		2, 0, 2, 2, 2,-1, 0, 0, 0,
4361		1, 0, 0, 2, 1,-1, 0, 0, 0,
4362		0, 0, 4,-2, 2, 1, 0, 0, 0,
4363		3, 0, 2,-2, 2, 1, 0, 0, 0,
4364		1, 0, 2,-2, 0,-1, 0, 0, 0,
4365		0, 1, 2, 0, 1, 1, 0, 0, 0,
4366		-1,-1, 0, 2, 1, 1, 0, 0, 0,
4367		0, 0,-2, 0, 1,-1, 0, 0, 0,
4368		0, 0, 2,-1, 2,-1, 0, 0, 0,
4369		0, 1, 0, 2, 0,-1, 0, 0, 0,
4370		1, 0,-2,-2, 0,-1, 0, 0, 0,
4371		0,-1, 2, 0, 1,-1, 0, 0, 0,
4372		1, 1, 0,-2, 1,-1, 0, 0, 0,
4373		1, 0,-2, 2, 0,-1, 0, 0, 0,
4374		2, 0, 0, 2, 0, 1, 0, 0, 0,
4375		0, 0, 2, 4, 2,-1, 0, 0, 0,
4376		0, 1, 0, 1, 0, 1, 0, 0, 0
4377	],
4378
4379	ss: [],
4380	cc: []
4381};
4382
4383/* Nutation -- AA page B20
4384 * using nutation in longitude and obliquity from nutlo()
4385 * and obliquity of the ecliptic from epsiln()
4386 * both calculated for Julian date J.
4387 *
4388 * p[] = equatorial rectangular position vector of object for
4389 * mean ecliptic and equinox of date.
4390 */
4391$ns.nutation.calc = function (date, p) {
4392	var ce, se, cl, sl, sino, f; // double
4393	var dp = [], p1 = []; // double
4394	var i; // int
4395	var result;
4396
4397	this.calclo (date); /* be sure we calculated nutl and nuto */
4398	$moshier.epsilon.calc (date); /* and also the obliquity of date */
4399
4400	f = $moshier.epsilon.eps + this.nuto;
4401	ce = Math.cos( f );
4402	se = Math.sin( f );
4403	sino = Math.sin(this.nuto);
4404	cl = Math.cos( this.nutl );
4405	sl = Math.sin( this.nutl );
4406
4407	/* Apply adjustment
4408	 * to equatorial rectangular coordinates of object.
4409	 *
4410	 * This is a composite of three rotations: rotate about x axis
4411	 * to ecliptic of date; rotate about new z axis by the nutation
4412	 * in longitude; rotate about new x axis back to equator of date
4413	 * plus nutation in obliquity.
4414	 */
4415	p1[0] =   cl*p[0]
4416		- sl*$moshier.epsilon.coseps*p[1]
4417		- sl*$moshier.epsilon.sineps*p[2];
4418
4419	p1[1] =   sl*ce*p[0]
4420		+ ( cl*$moshier.epsilon.coseps*ce + $moshier.epsilon.sineps*se )*p[1]
4421		- ( sino + (1.0-cl)*$moshier.epsilon.sineps*ce )*p[2];
4422
4423	p1[2] =   sl*se*p[0]
4424		+ ( sino + (cl-1.0)*se*$moshier.epsilon.coseps )*p[1]
4425		+ ( cl*$moshier.epsilon.sineps*se + $moshier.epsilon.coseps*ce )*p[2];
4426
4427	for( i=0; i<3; i++ ) {
4428		dp[i] = p1[i] - p[i];
4429	}
4430
4431	result = $util.showcor (p, dp);
4432
4433	for( i=0; i<3; i++ ) {
4434		p[i] = p1[i];
4435	}
4436
4437	return result;
4438};
4439
4440/* Nutation in longitude and obliquity
4441 * computed at Julian date J.
4442 */
4443$ns.nutation.calclo = function (date, ret) {
4444	var f, g, T, T2, T10; // double
4445	var MM, MS, FF, DD, OM; // double
4446	var cu, su, cv, sv, sw; // double
4447	var C, D; // double
4448	var i, j, k, k1, m; // int
4449	var p; // short array
4450
4451	if( this.jdnut.julian == date.julian )
4452		return(0);
4453	this.jdnut = date;
4454
4455	/* Julian centuries from 2000 January 1.5,
4456	 * barycentric dynamical time
4457	 */
4458	T = (date.julian - 2451545.0) / 36525.0;
4459	T2 = T * T;
4460	T10 = T / 10.0;
4461
4462	/* Fundamental arguments in the FK5 reference system.  */
4463
4464
4465
4466  /* Mean longitude of the ascending node of the Moon. */
4467//  OM  = $util.mod360(( 450160.398036 + T*( -6962890.5431 + T*( 7.4722 + T*( 0.007702 + T*(-0.00005939 ))))) / 3600.0) * $const.DTR;
4468
4469	/* longitude of the mean ascending node of the lunar orbit
4470	 * on the ecliptic, measured from the mean equinox of date
4471	 */
4472	OM = ($util.mods3600 (-6962890.539 * T + 450160.280) + (0.008 * T + 7.455) * T2)
4473		* $const.STR;
4474
4475  /* Mean anomaly of the Sun */
4476//  MS = $util.mod360((1287104.79305 + T*( 129596581.0481 + T*( -0.5532 + T*( 0.000136 + T*( -0.00001149 ))))) / 3600.0) * $const.DTR;
4477	/* mean longitude of the Sun minus the
4478	 * mean longitude of the Sun's perigee
4479	 */
4480	MS = ($util.mods3600 (129596581.224 * T + 1287099.804) - (0.012 * T + 0.577) * T2)
4481		* $const.STR;
4482
4483  /* Mean anomaly of the Moon. */
4484//  MM  = $util.mod360(( 485868.249036 + T*( 1717915923.2178 + T*( 31.8792 + T*( 0.051635 + T*(- 0.00024470 ))))) / 3600.0) * $const.DTR;
4485	/* mean longitude of the Moon minus the
4486	 * mean longitude of the Moon's perigee
4487	 */
4488	MM = ($util.mods3600 (1717915922.633 * T + 485866.733) + (0.064 * T + 31.310) * T2)
4489		* $const.STR;
4490
4491  /* Mean argument of the latitude of the Moon. */
4492//  FF   = $util.mod360(( 335779.526232 + T*( 1739527262.8478 + T*(-12.7512 + T*( -0.001037 + T*(0.00000417 ))))) / 3600.0) * $const.DTR;
4493	/* mean longitude of the Moon minus the
4494	 * mean longitude of the Moon's node
4495	 */
4496	FF = ($util.mods3600 (1739527263.137 * T + 335778.877) + (0.011 * T - 13.257) * T2)
4497		* $const.STR;
4498
4499  /* Mean elongation of the Moon from the Sun. */
4500//  DD   = $util.mod360((1072260.70369 + T*( 1602961601.2090 + T*( -6.3706 + T*( 0.006593 + T*( -0.00003169 ))))) / 3600.0) * $const.DTR;
4501	/* mean elongation of the Moon from the Sun.
4502	 */
4503	DD = ($util.mods3600 (1602961601.328 * T + 1072261.307) + (0.019 * T - 6.891) * T2)
4504		* $const.STR;
4505
4506	/* Calculate sin( i*MM ), etc. for needed multiple angles
4507	 */
4508	this.sscc ( 0, MM, 3 );
4509	this.sscc ( 1, MS, 2 );
4510	this.sscc ( 2, FF, 4 );
4511	this.sscc ( 3, DD, 4 );
4512	this.sscc ( 4, OM, 2 );
4513
4514	C = 0.0;
4515	D = 0.0;
4516	p = this.nt; /* point to start of table */
4517
4518	var p_i = 0;
4519
4520	for( i=0; i<105; i++ ) {
4521		/* argument of sine and cosine */
4522		k1 = 0;
4523		cv = 0.0;
4524		sv = 0.0;
4525		for( m=0; m<5; m++ ) {
4526			j = p [p_i ++]; //*p++;
4527			if( j ) {
4528				k = j;
4529				if( j < 0 ) {
4530					k = -k;
4531				}
4532				su = this.ss[m][k-1]; /* sin(k*angle) */
4533				if( j < 0 ) {
4534					su = -su;
4535				}
4536				cu = this.cc[m][k-1];
4537				if( k1 == 0 ) { /* set first angle */
4538					sv = su;
4539					cv = cu;
4540					k1 = 1;
4541				} else { /* combine angles */
4542					sw = su*cv + cu*sv;
4543					cv = cu*cv - su*sv;
4544					sv = sw;
4545				}
4546			}
4547		}
4548		/* longitude coefficient */
4549		f  = p [p_i ++]; //*p++;
4550		if( (k = p [p_i ++] /* *p++ */) != 0 ) {
4551			f += T10 * k;
4552		}
4553
4554		/* obliquity coefficient */
4555		g = p [p_i ++]; //*p++;
4556		if( (k = p [p_i ++] /* *p++ */) != 0 )
4557		g += T10 * k;
4558
4559		/* accumulate the terms */
4560		C += f * sv;
4561		D += g * cv;
4562	}
4563	/* first terms, not in table: */
4564	C += (-1742.*T10 - 171996.)*this.ss[4][0];	/* sin(OM) */
4565	D += (   89.*T10 +  92025.)*this.cc[4][0];	/* cos(OM) */
4566	/*
4567	 printf( "nutation: in longitude %.3f\", in obliquity %.3f\"\n", C, D );
4568	 */
4569	/* Save answers, expressed in radians */
4570	this.nutl = 0.0001 * $const.STR * C;
4571	this.nuto = 0.0001 * $const.STR * D;
4572	this.ascNode = FF * $const.RTD;
4573
4574};
4575
4576/* Prepare lookup table of sin and cos ( i*Lj )
4577 * for required multiple angles
4578 */
4579$ns.nutation.sscc = function (k, arg, n) {
4580	var cu, su, cv, sv, s; // double
4581	var i; // int
4582
4583	su = Math.sin (arg);
4584	cu = Math.cos (arg);
4585	this.ss[k] = [];
4586	this.cc[k] = [];
4587
4588	this.ss[k][0] = su;		/* sin(L) */
4589	this.cc[k][0] = cu;		/* cos(L) */
4590	sv = 2.0 * su * cu;
4591	cv = cu * cu - su * su;
4592	this.ss[k][1] = sv;		/* sin(2L) */
4593	this.cc[k][1] = cv;
4594	for (i = 2; i < n; i++)
4595	{
4596		s = su * cv + cu * sv;
4597		cv = cu * cv - su * sv;
4598		sv = s;
4599		this.ss[k][i] = sv;		/* sin( i+1 L ) */
4600		this.cc[k][i] = cv;
4601	}
4602};
4603
4604
4605
4606
4607
4608
4609
4610
4611$ns.nutation2 = {
4612	/* The answers are posted here by nutlo():
4613	 */
4614	jdnut: {},	/* time to which the nutation applies */
4615	nutl: 0.0,	/* nutation in longitude (radians) */
4616	nuto: 0.0,	/* nutation in obliquity (radians) */
4617	ascNode: 0.0,
4618	meanM: 0.0,
4619	phaseDB: 0.0,
4620	phaseDP: 0.0,
4621
4622	/* Each term in the expansion has a trigonometric
4623	 * argument given by
4624	 *   W = i*MM + j*MS + k*FF + l*DD + m*OM
4625	 * where the variables are defined below.
4626	 * The nutation in longitude is a sum of terms of the
4627	 * form (a + bT) * sin(W). The terms for nutation in obliquity
4628	 * are of the form (c + dT) * cos(W).  The coefficients
4629	 * are arranged in the tabulation as follows:
4630	 *
4631	 * Coefficient:
4632	 * i  j  k  l  m      a      b      c     d
4633	 * 0, 0, 0, 0, 1, -171996, -1742, 92025, 89,
4634	 * The first line of the table, above, is done separately
4635	 * since two of the values do not fit into 16 bit integers.
4636	 * The values a and c are arc seconds times 10000.  b and d
4637	 * are arc seconds per Julian century times 100000.  i through m
4638	 * are integers.  See the program for interpretation of MM, MS,
4639	 * etc., which are mean orbital elements of the Sun and Moon.
4640	 *
4641	 * If terms with coefficient less than X are omitted, the peak
4642	 * errors will be:
4643	 *
4644	 *   omit	error,		  omit	error,
4645	 *   a <	longitude	  c <	obliquity
4646	 * .0005"	.0100"		.0008"	.0094"
4647	 * .0046	.0492		.0095	.0481
4648	 * .0123	.0880		.0224	.0905
4649	 * .0386	.1808		.0895	.1129
4650	 */
4651
4652 nls: [
46530, 0, 0, 0, 1,
46540, 0, 2, -2, 2,
46550, 0, 2, 0, 2,
46560, 0, 0, 0, 2,
46570, 1, 0, 0, 0,
46580, 1, 2, -2, 2,
46591, 0, 0, 0, 0,
46600, 0, 2, 0, 1,
46611, 0, 2, 0, 2,
46620, -1, 2, -2, 2,
46630, 0, 2, -2, 1,
4664-1, 0, 2, 0, 2,
4665-1, 0, 0, 2, 0,
46661, 0, 0, 0, 1,
4667-1, 0, 0, 0, 1,
4668-1, 0, 2, 2, 2,
46691, 0, 2, 0, 1,
4670-2, 0, 2, 0, 1,
46710, 0, 0, 2, 0,
46720, 0, 2, 2, 2,
46730, -2, 2, -2, 2,
4674-2, 0, 0, 2, 0,
46752, 0, 2, 0, 2,
46761, 0, 2, -2, 2,
4677-1, 0, 2, 0, 1,
46782, 0, 0, 0, 0,
46790, 0, 2, 0, 0,
46800, 1, 0, 0, 1,
4681-1, 0, 0, 2, 1,
46820, 2, 2, -2, 2,
46830, 0, -2, 2, 0,
46841, 0, 0, -2, 1,
46850, -1, 0, 0, 1,
4686-1, 0, 2, 2, 1,
46870, 2, 0, 0, 0,
46881, 0, 2, 2, 2,
4689-2, 0, 2, 0, 0,
46900, 1, 2, 0, 2,
46910, 0, 2, 2, 1,
46920, -1, 2, 0, 2,
46930, 0, 0, 2, 1,
46941, 0, 2, -2, 1,
46952, 0, 2, -2, 2,
4696-2, 0, 0, 2, 1,
46972, 0, 2, 0, 1,
46980, -1, 2, -2, 1,
46990, 0, 0, -2, 1,
4700-1, -1, 0, 2, 0,
47012, 0, 0, -2, 1,
47021, 0, 0, 2, 0,
47030, 1, 2, -2, 1,
47041, -1, 0, 0, 0,
4705-2, 0, 2, 0, 2,
47063, 0, 2, 0, 2,
47070, -1, 0, 2, 0,
47081, -1, 2, 0, 2,
47090, 0, 0, 1, 0,
4710-1, -1, 2, 2, 2,
4711-1, 0, 2, 0, 0,
47120, -1, 2, 2, 2,
4713-2, 0, 0, 0, 1,
47141, 1, 2, 0, 2,
47152, 0, 0, 0, 1,
4716-1, 1, 0, 1, 0,
47171, 1, 0, 0, 0,
47181, 0, 2, 0, 0,
4719-1, 0, 2, -2, 1,
47201, 0, 0, 0, 2,
4721-1, 0, 0, 1, 0,
47220, 0, 2, 1, 2,
4723-1, 0, 2, 4, 2,
4724-1, 1, 0, 1, 1,
47250, -2, 2, -2, 1,
47261, 0, 2, 2, 1,
4727-2, 0, 2, 2, 2,
4728-1, 0, 0, 0, 2,
47291, 1, 2, -2, 2,
4730-2, 0, 2, 4, 2,
4731-1, 0, 4, 0, 2,
47322, 0, 2, -2, 1,
47332, 0, 2, 2, 2,
47341, 0, 0, 2, 1,
47353, 0, 0, 0, 0,
47363, 0, 2, -2, 2,
47370, 0, 4, -2, 2,
47380, 1, 2, 0, 1,
47390, 0, -2, 2, 1,
47400, 0, 2, -2, 3,
4741-1, 0, 0, 4, 0,
47422, 0, -2, 0, 1,
4743-2, 0, 0, 4, 0,
4744-1, -1, 0, 2, 1,
4745-1, 0, 0, 1, 1,
47460, 1, 0, 0, 2,
47470, 0, -2, 0, 1,
47480, -1, 2, 0, 1,
47490, 0, 2, -1, 2,
47500, 0, 2, 4, 2,
4751-2, -1, 0, 2, 0,
47521, 1, 0, -2, 1,
4753-1, 1, 0, 2, 0,
4754-1, 1, 0, 1, 2,
47551, -1, 0, 0, 1,
47561, -1, 2, 2, 2,
4757-1, 1, 2, 2, 2,
47583, 0, 2, 0, 1,
47590, 1, -2, 2, 0,
4760-1, 0, 0, -2, 1,
47610, 1, 2, 2, 2,
4762-1, -1, 2, 2, 1,
47630, -1, 0, 0, 2,
47641, 0, 2, -4, 1,
4765-1, 0, -2, 2, 0,
47660, -1, 2, 2, 1,
47672, -1, 2, 0, 2,
47680, 0, 0, 2, 2,
47691, -1, 2, 0, 1,
4770-1, 1, 2, 0, 2,
47710, 1, 0, 2, 0,
47720, -1, -2, 2, 0,
47730, 3, 2, -2, 2,
47740, 0, 0, 1, 1,
4775-1, 0, 2, 2, 0,
47762, 1, 2, 0, 2,
47771, 1, 0, 0, 1,
47781, 1, 2, 0, 1,
47792, 0, 0, 2, 0,
47801, 0, -2, 2, 0,
4781-1, 0, 0, 2, 2,
47820, 1, 0, 1, 0,
47830, 1, 0, -2, 1,
4784-1, 0, 2, -2, 2,
47850, 0, 0, -1, 1,
4786-1, 1, 0, 0, 1,
47871, 0, 2, -1, 2,
47881, -1, 0, 2, 0,
47890, 0, 0, 4, 0,
47901, 0, 2, 1, 2,
47910, 0, 2, 1, 1,
47921, 0, 0, -2, 2,
4793-1, 0, 2, 4, 1,
47941, 0, -2, 0, 1,
47951, 1, 2, -2, 1,
47960, 0, 2, 2, 0,
4797-1, 0, 2, -1, 1,
4798-2, 0, 2, 2, 1,
47994, 0, 2, 0, 2,
48002, -1, 0, 0, 0,
48012, 1, 2, -2, 2,
48020, 1, 2, 1, 2,
48031, 0, 4, -2, 2,
4804-1, -1, 0, 0, 1,
48050, 1, 0, 2, 1,
4806-2, 0, 2, 4, 1,
48072, 0, 2, 0, 0,
48081, 0, 0, 1, 0,
4809-1, 0, 0, 4, 1,
4810-1, 0, 4, 0, 1,
48112, 0, 2, 2, 1,
48120, 0, 2, -3, 2,
4813-1, -2, 0, 2, 0,
48142, 1, 0, 0, 0,
48150, 0, 4, 0, 2,
48160, 0, 0, 0, 3,
48170, 3, 0, 0, 0,
48180, 0, 2, -4, 1,
48190, -1, 0, 2, 1,
48200, 0, 0, 4, 1,
4821-1, -1, 2, 4, 2,
48221, 0, 2, 4, 2,
4823-2, 2, 0, 2, 0,
4824-2, -1, 2, 0, 1,
4825-2, 0, 0, 2, 2,
4826-1, -1, 2, 0, 2,
48270, 0, 4, -2, 1,
48283, 0, 2, -2, 1,
4829-2, -1, 0, 2, 1,
48301, 0, 0, -1, 1,
48310, -2, 0, 2, 0,
4832-2, 0, 0, 4, 1,
4833-3, 0, 0, 0, 1,
48341, 1, 2, 2, 2,
48350, 0, 2, 4, 1,
48363, 0, 2, 2, 2,
4837-1, 1, 2, -2, 1,
48382, 0, 0, -4, 1,
48390, 0, 0, -2, 2,
48402, 0, 2, -4, 1,
4841-1, 1, 0, 2, 1,
48420, 0, 2, -1, 1,
48430, -2, 2, 2, 2,
48442, 0, 0, 2, 1,
48454, 0, 2, -2, 2,
48462, 0, 0, -2, 2,
48470, 2, 0, 0, 1,
48481, 0, 0, -4, 1,
48490, 2, 2, -2, 1,
4850-3, 0, 0, 4, 0,
4851-1, 1, 2, 0, 1,
4852-1, -1, 0, 4, 0,
4853-1, -2, 2, 2, 2,
4854-2, -1, 2, 4, 2,
48551, -1, 2, 2, 1,
4856-2, 1, 0, 2, 0,
4857-2, 1, 2, 0, 1,
48582, 1, 0, -2, 1,
4859-3, 0, 2, 0, 1,
4860-2, 0, 2, -2, 1,
4861-1, 1, 0, 2, 2,
48620, -1, 2, -1, 2,
4863-1, 0, 4, -2, 2,
48640, -2, 2, 0, 2,
4865-1, 0, 2, 1, 2,
48662, 0, 0, 0, 2,
48670, 0, 2, 0, 3,
4868-2, 0, 4, 0, 2,
4869-1, 0, -2, 0, 1,
4870-1, 1, 2, 2, 1,
48713, 0, 0, 0, 1,
4872-1, 0, 2, 3, 2,
48732, -1, 2, 0, 1,
48740, 1, 2, 2, 1,
48750, -1, 2, 4, 2,
48762, -1, 2, 2, 2,
48770, 2, -2, 2, 0,
4878-1, -1, 2, -1, 1,
48790, -2, 0, 0, 1,
48801, 0, 2, -4, 2,
48811, -1, 0, -2, 1,
4882-1, -1, 2, 0, 1,
48831, -1, 2, -2, 2,
4884-2, -1, 0, 4, 0,
4885-1, 0, 0, 3, 0,
4886-2, -1, 2, 2, 2,
48870, 2, 2, 0, 2,
48881, 1, 0, 2, 0,
48892, 0, 2, -1, 2,
48901, 0, 2, 1, 1,
48914, 0, 0, 0, 0,
48922, 1, 2, 0, 1,
48933, -1, 2, 0, 2,
4894-2, 2, 0, 2, 1,
48951, 0, 2, -3, 1,
48961, 1, 2, -4, 1,
4897-1, -1, 2, -2, 1,
48980, -1, 0, -1, 1,
48990, -1, 0, -2, 1,
4900-2, 0, 0, 0, 2,
4901-2, 0, -2, 2, 0,
4902-1, 0, -2, 4, 0,
49031, -2, 0, 0, 0,
49040, 1, 0, 1, 1,
4905-1, 2, 0, 2, 0,
49061, -1, 2, -2, 1,
49071, 2, 2, -2, 2,
49082, -1, 2, -2, 2,
49091, 0, 2, -1, 1,
49102, 1, 2, -2, 1,
4911-2, 0, 0, -2, 1,
49121, -2, 2, 0, 2,
49130, 1, 2, 1, 1,
49141, 0, 4, -2, 1,
4915-2, 0, 4, 2, 2,
49161, 1, 2, 1, 2,
49171, 0, 0, 4, 0,
49181, 0, 2, 2, 0,
49192, 0, 2, 1, 2,
49203, 1, 2, 0, 2,
49214, 0, 2, 0, 1,
4922-2, -1, 2, 0, 0,
49230, 1, -2, 2, 1,
49241, 0, -2, 1, 0,
49250, -1, -2, 2, 1,
49262, -1, 0, -2, 1,
4927-1, 0, 2, -1, 2,
49281, 0, 2, -3, 2,
49290, 1, 2, -2, 3,
49300, 0, 2, -3, 1,
4931-1, 0, -2, 2, 1,
49320, 0, 2, -4, 2,
4933-2, 1, 0, 0, 1,
4934-1, 0, 0, -1, 1,
49352, 0, 2, -4, 2,
49360, 0, 4, -4, 4,
49370, 0, 4, -4, 2,
4938-1, -2, 0, 2, 1,
4939-2, 0, 0, 3, 0,
49401, 0, -2, 2, 1,
4941-3, 0, 2, 2, 2,
4942-3, 0, 2, 2, 1,
4943-2, 0, 2, 2, 0,
49442, -1, 0, 0, 1,
4945-2, 1, 2, 2, 2,
49461, 1, 0, 1, 0,
49470, 1, 4, -2, 2,
4948-1, 1, 0, -2, 1,
49490, 0, 0, -4, 1,
49501, -1, 0, 2, 1,
49511, 1, 0, 2, 1,
4952-1, 2, 2, 2, 2,
49533, 1, 2, -2, 2,
49540, -1, 0, 4, 0,
49552, -1, 0, 2, 0,
49560, 0, 4, 0, 1,
49572, 0, 4, -2, 2,
4958-1, -1, 2, 4, 1,
49591, 0, 0, 4, 1,
49601, -2, 2, 2, 2,
49610, 0, 2, 3, 2,
4962-1, 1, 2, 4, 2,
49633, 0, 0, 2, 0,
4964-1, 0, 4, 2, 2,
49651, 1, 2, 2, 1,
4966-2, 0, 2, 6, 2,
49672, 1, 2, 2, 2,
4968-1, 0, 2, 6, 2,
49691, 0, 2, 4, 1,
49702, 0, 2, 4, 2,
49711, 1, -2, 1, 0,
4972-3, 1, 2, 1, 2,
49732, 0, -2, 0, 2,
4974-1, 0, 0, 1, 2,
4975-4, 0, 2, 2, 1,
4976-1, -1, 0, 1, 0,
49770, 0, -2, 2, 2,
49781, 0, 0, -1, 2,
49790, -1, 2, -2, 3,
4980-2, 1, 2, 0, 0,
49810, 0, 2, -2, 4,
4982-2, -2, 0, 2, 0,
4983-2, 0, -2, 4, 0,
49840, -2, -2, 2, 0,
49851, 2, 0, -2, 1,
49863, 0, 0, -4, 1,
4987-1, 1, 2, -2, 2,
49881, -1, 2, -4, 1,
49891, 1, 0, -2, 2,
4990-3, 0, 2, 0, 0,
4991-3, 0, 2, 0, 2,
4992-2, 0, 0, 1, 0,
49930, 0, -2, 1, 0,
4994-3, 0, 0, 2, 1,
4995-1, -1, -2, 2, 0,
49960, 1, 2, -4, 1,
49972, 1, 0, -4, 1,
49980, 2, 0, -2, 1,
49991, 0, 0, -3, 1,
5000-2, 0, 2, -2, 2,
5001-2, -1, 0, 0, 1,
5002-4, 0, 0, 2, 0,
50031, 1, 0, -4, 1,
5004-1, 0, 2, -4, 1,
50050, 0, 4, -4, 1,
50060, 3, 2, -2, 2,
5007-3, -1, 0, 4, 0,
5008-3, 0, 0, 4, 1,
50091, -1, -2, 2, 0,
5010-1, -1, 0, 2, 2,
50111, -2, 0, 0, 1,
50121, -1, 0, 0, 2,
50130, 0, 0, 1, 2,
5014-1, -1, 2, 0, 0,
50151, -2, 2, -2, 2,
50160, -1, 2, -1, 1,
5017-1, 0, 2, 0, 3,
50181, 1, 0, 0, 2,
5019-1, 1, 2, 0, 0,
50201, 2, 0, 0, 0,
5021-1, 2, 2, 0, 2,
5022-1, 0, 4, -2, 1,
50233, 0, 2, -4, 2,
50241, 2, 2, -2, 1,
50251, 0, 4, -4, 2,
5026-2, -1, 0, 4, 1,
50270, -1, 0, 2, 2,
5028-2, 1, 0, 4, 0,
5029-2, -1, 2, 2, 1,
50302, 0, -2, 2, 0,
50311, 0, 0, 1, 1,
50320, 1, 0, 2, 2,
50331, -1, 2, -1, 2,
5034-2, 0, 4, 0, 1,
50352, 1, 0, 0, 1,
50360, 1, 2, 0, 0,
50370, -1, 4, -2, 2,
50380, 0, 4, -2, 4,
50390, 2, 2, 0, 1,
5040-3, 0, 0, 6, 0,
5041-1, -1, 0, 4, 1,
50421, -2, 0, 2, 0,
5043-1, 0, 0, 4, 2,
5044-1, -2, 2, 2, 1,
5045-1, 0, 0, -2, 2,
50461, 0, -2, -2, 1,
50470, 0, -2, -2, 1,
5048-2, 0, -2, 0, 1,
50490, 0, 0, 3, 1,
50500, 0, 0, 3, 0,
5051-1, 1, 0, 4, 0,
5052-1, -1, 2, 2, 0,
5053-2, 0, 2, 3, 2,
50541, 0, 0, 2, 2,
50550, -1, 2, 1, 2,
50563, -1, 0, 0, 0,
50572, 0, 0, 1, 0,
50581, -1, 2, 0, 0,
50590, 0, 2, 1, 0,
50601, 0, 2, 0, 3,
50613, 1, 0, 0, 0,
50623, -1, 2, -2, 2,
50632, 0, 2, -1, 1,
50641, 1, 2, 0, 0,
50650, 0, 4, -1, 2,
50661, 2, 2, 0, 2,
5067-2, 0, 0, 6, 0,
50680, -1, 0, 4, 1,
5069-2, -1, 2, 4, 1,
50700, -2, 2, 2, 1,
50710, -1, 2, 2, 0,
5072-1, 0, 2, 3, 1,
5073-2, 1, 2, 4, 2,
50742, 0, 0, 2, 2,
50752, -2, 2, 0, 2,
5076-1, 1, 2, 3, 2,
50773, 0, 2, -1, 2,
50784, 0, 2, -2, 1,
5079-1, 0, 0, 6, 0,
5080-1, -2, 2, 4, 2,
5081-3, 0, 2, 6, 2,
5082-1, 0, 2, 4, 0,
50833, 0, 0, 2, 1,
50843, -1, 2, 0, 1,
50853, 0, 2, 0, 0,
50861, 0, 4, 0, 2,
50875, 0, 2, -2, 2,
50880, -1, 2, 4, 1,
50892, -1, 2, 2, 1,
50900, 1, 2, 4, 2,
50911, -1, 2, 4, 2,
50923, -1, 2, 2, 2,
50933, 0, 2, 2, 1,
50945, 0, 2, 0, 2,
50950, 0, 2, 6, 2,
50964, 0, 2, 2, 2,
50970, -1, 1, -1, 1,
5098-1, 0, 1, 0, 3,
50990, -2, 2, -2, 3,
51001, 0, -1, 0, 1,
51012, -2, 0, -2, 1,
5102-1, 0, 1, 0, 2,
5103-1, 0, 1, 0, 1,
5104-1, -1, 2, -1, 2,
5105-2, 2, 0, 2, 2,
5106-1, 0, 1, 0, 0,
5107-4, 1, 2, 2, 2,
5108-3, 0, 2, 1, 1,
5109-2, -1, 2, 0, 2,
51101, 0, -2, 1, 1,
51112, -1, -2, 0, 1,
5112-4, 0, 2, 2, 0,
5113-3, 1, 0, 3, 0,
5114-1, 0, -1, 2, 0,
51150, -2, 0, 0, 2,
51160, -2, 0, 0, 2,
5117-3, 0, 0, 3, 0,
5118-2, -1, 0, 2, 2,
5119-1, 0, -2, 3, 0,
5120-4, 0, 0, 4, 0,
51212, 1, -2, 0, 1,
51222, -1, 0, -2, 2,
51230, 0, 1, -1, 0,
5124-1, 2, 0, 1, 0,
5125-2, 1, 2, 0, 2,
51261, 1, 0, -1, 1,
51271, 0, 1, -2, 1,
51280, 2, 0, 0, 2,
51291, -1, 2, -3, 1,
5130-1, 1, 2, -1, 1,
5131-2, 0, 4, -2, 2,
5132-2, 0, 4, -2, 1,
5133-2, -2, 0, 2, 1,
5134-2, 0, -2, 4, 0,
51351, 2, 2, -4, 1,
51361, 1, 2, -4, 2,
5137-1, 2, 2, -2, 1,
51382, 0, 0, -3, 1,
5139-1, 2, 0, 0, 1,
51400, 0, 0, -2, 0,
5141-1, -1, 2, -2, 2,
5142-1, 1, 0, 0, 2,
51430, 0, 0, -1, 2,
5144-2, 1, 0, 1, 0,
51451, -2, 0, -2, 1,
51461, 0, -2, 0, 2,
5147-3, 1, 0, 2, 0,
5148-1, 1, -2, 2, 0,
5149-1, -1, 0, 0, 2,
5150-3, 0, 0, 2, 0,
5151-3, -1, 0, 2, 0,
51522, 0, 2, -6, 1,
51530, 1, 2, -4, 2,
51542, 0, 0, -4, 2,
5155-2, 1, 2, -2, 1,
51560, -1, 2, -4, 1,
51570, 1, 0, -2, 2,
5158-1, 0, 0, -2, 0,
51592, 0, -2, -2, 1,
5160-4, 0, 2, 0, 1,
5161-1, -1, 0, -1, 1,
51620, 0, -2, 0, 2,
5163-3, 0, 0, 1, 0,
5164-1, 0, -2, 1, 0,
5165-2, 0, -2, 2, 1,
51660, 0, -4, 2, 0,
5167-2, -1, -2, 2, 0,
51681, 0, 2, -6, 1,
5169-1, 0, 2, -4, 2,
51701, 0, 0, -4, 2,
51712, 1, 2, -4, 2,
51722, 1, 2, -4, 1,
51730, 1, 4, -4, 4,
51740, 1, 4, -4, 2,
5175-1, -1, -2, 4, 0,
5176-1, -3, 0, 2, 0,
5177-1, 0, -2, 4, 1,
5178-2, -1, 0, 3, 0,
51790, 0, -2, 3, 0,
5180-2, 0, 0, 3, 1,
51810, -1, 0, 1, 0,
5182-3, 0, 2, 2, 0,
51831, 1, -2, 2, 0,
5184-1, 1, 0, 2, 2,
51851, -2, 2, -2, 1,
51860, 0, 1, 0, 2,
51870, 0, 1, 0, 1,
51880, 0, 1, 0, 0,
5189-1, 2, 0, 2, 1,
51900, 0, 2, 0, 2,
5191-2, 0, 2, 0, 2,
51922, 0, 0, -1, 1,
51933, 0, 0, -2, 1,
51941, 0, 2, -2, 3,
51951, 2, 0, 0, 1,
51962, 0, 2, -3, 2,
5197-1, 1, 4, -2, 2,
5198-2, -2, 0, 4, 0,
51990, -3, 0, 2, 0,
52000, 0, -2, 4, 0,
5201-1, -1, 0, 3, 0,
5202-2, 0, 0, 4, 2,
5203-1, 0, 0, 3, 1,
52042, -2, 0, 0, 0,
52051, -1, 0, 1, 0,
5206-1, 0, 0, 2, 0,
52070, -2, 2, 0, 1,
5208-1, 0, 1, 2, 1,
5209-1, 1, 0, 3, 0,
5210-1, -1, 2, 1, 2,
52110, -1, 2, 0, 0,
5212-2, 1, 2, 2, 1,
52132, -2, 2, -2, 2,
52141, 1, 0, 1, 1,
52151, 0, 1, 0, 1,
52161, 0, 1, 0, 0,
52170, 2, 0, 2, 0,
52182, -1, 2, -2, 1,
52190, -1, 4, -2, 1,
52200, 0, 4, -2, 3,
52210, 1, 4, -2, 1,
52224, 0, 2, -4, 2,
52232, 2, 2, -2, 2,
52242, 0, 4, -4, 2,
5225-1, -2, 0, 4, 0,
5226-1, -3, 2, 2, 2,
5227-3, 0, 2, 4, 2,
5228-3, 0, 2, -2, 1,
5229-1, -1, 0, -2, 1,
5230-3, 0, 0, 0, 2,
5231-3, 0, -2, 2, 0,
52320, 1, 0, -4, 1,
5233-2, 1, 0, -2, 1,
5234-4, 0, 0, 0, 1,
5235-1, 0, 0, -4, 1,
5236-3, 0, 0, -2, 1,
52370, 0, 0, 3, 2,
5238-1, 1, 0, 4, 1,
52391, -2, 2, 0, 1,
52400, 1, 0, 3, 0,
5241-1, 0, 2, 2, 3,
52420, 0, 2, 2, 2,
5243-2, 0, 2, 2, 2,
5244-1, 1, 2, 2, 0,
52453, 0, 0, 0, 2,
52462, 1, 0, 1, 0,
52472, -1, 2, -1, 2,
52480, 0, 2, 0, 1,
52490, 0, 3, 0, 3,
52500, 0, 3, 0, 2,
5251-1, 2, 2, 2, 1,
5252-1, 0, 4, 0, 0,
52531, 2, 2, 0, 1,
52543, 1, 2, -2, 1,
52551, 1, 4, -2, 2,
5256-2, -1, 0, 6, 0,
52570, -2, 0, 4, 0,
5258-2, 0, 0, 6, 1,
5259-2, -2, 2, 4, 2,
52600, -3, 2, 2, 2,
52610, 0, 0, 4, 2,
5262-1, -1, 2, 3, 2,
5263-2, 0, 2, 4, 0,
52642, -1, 0, 2, 1,
52651, 0, 0, 3, 0,
52660, 1, 0, 4, 1,
52670, 1, 0, 4, 0,
52681, -1, 2, 1, 2,
52690, 0, 2, 2, 3,
52701, 0, 2, 2, 2,
5271-1, 0, 2, 2, 2,
5272-2, 0, 4, 2, 1,
52732, 1, 0, 2, 1,
52742, 1, 0, 2, 0,
52752, -1, 2, 0, 0,
52761, 0, 2, 1, 0,
52770, 1, 2, 2, 0,
52782, 0, 2, 0, 3,
52793, 0, 2, 0, 2,
52801, 0, 2, 0, 2,
52811, 0, 3, 0, 3,
52821, 1, 2, 1, 1,
52830, 2, 2, 2, 2,
52842, 1, 2, 0, 0,
52852, 0, 4, -2, 1,
52864, 1, 2, -2, 2,
5287-1, -1, 0, 6, 0,
5288-3, -1, 2, 6, 2,
5289-1, 0, 0, 6, 1,
5290-3, 0, 2, 6, 1,
52911, -1, 0, 4, 1,
52921, -1, 0, 4, 0,
5293-2, 0, 2, 5, 2,
52941, -2, 2, 2, 1,
52953, -1, 0, 2, 0,
52961, -1, 2, 2, 0,
52970, 0, 2, 3, 1,
5298-1, 1, 2, 4, 1,
52990, 1, 2, 3, 2,
5300-1, 0, 4, 2, 1,
53012, 0, 2, 1, 1,
53025, 0, 0, 0, 0,
53032, 1, 2, 1, 2,
53041, 0, 4, 0, 1,
53053, 1, 2, 0, 1,
53063, 0, 4, -2, 2,
5307-2, -1, 2, 6, 2,
53080, 0, 0, 6, 0,
53090, -2, 2, 4, 2,
5310-2, 0, 2, 6, 1,
53112, 0, 0, 4, 1,
53122, 0, 0, 4, 0,
53132, -2, 2, 2, 2,
53140, 0, 2, 4, 0,
53151, 0, 2, 3, 2,
53164, 0, 0, 2, 0,
53172, 0, 2, 2, 0,
53180, 0, 4, 2, 2,
53194, -1, 2, 0, 2,
53203, 0, 2, 1, 2,
53212, 1, 2, 2, 1,
53224, 1, 2, 0, 2,
5323-1, -1, 2, 6, 2,
5324-1, 0, 2, 6, 1,
53251, -1, 2, 4, 1,
53261, 1, 2, 4, 2,
53273, 1, 2, 2, 2,
53285, 0, 2, 0, 1,
53292, -1, 2, 4, 2,
53302, 0, 2, 4, 1,
5331],
5332
5333/* Luni-Solar nutation coefficients, unit 1e-7 arcsec
5334 * longitude (sin, t*sin, cos), obliquity (cos, t*cos, sin) */
5335cls: [
5336-172064161, -174666, 33386, 92052331, 9086, 15377,
5337-13170906, -1675, -13696, 5730336, -3015, -4587,
5338-2276413, -234, 2796, 978459, -485, 1374,
53392074554, 207, -698, -897492, 470, -291,
53401475877, -3633, 11817, 73871, -184, -1924,
5341-516821, 1226, -524, 224386, -677, -174,
5342711159, 73, -872, -6750, 0, 358,
5343-387298, -367, 380, 200728, 18, 318,
5344-301461, -36, 816, 129025, -63, 367,
5345215829, -494, 111, -95929, 299, 132,
5346128227, 137, 181, -68982, -9, 39,
5347123457, 11, 19, -53311, 32, -4,
5348156994, 10, -168, -1235, 0, 82,
534963110, 63, 27, -33228, 0, -9,
5350-57976, -63, -189, 31429, 0, -75,
5351-59641, -11, 149, 25543, -11, 66,
5352-51613, -42, 129, 26366, 0, 78,
535345893, 50, 31, -24236, -10, 20,
535463384, 11, -150, -1220, 0, 29,
5355-38571, -1, 158, 16452, -11, 68,
535632481, 0, 0, -13870, 0, 0,
5357-47722, 0, -18, 477, 0, -25,
5358-31046, -1, 131, 13238, -11, 59,
535928593, 0, -1, -12338, 10, -3,
536020441, 21, 10, -10758, 0, -3,
536129243, 0, -74, -609, 0, 13,
536225887, 0, -66, -550, 0, 11,
5363-14053, -25, 79, 8551, -2, -45,
536415164, 10, 11, -8001, 0, -1,
5365-15794, 72, -16, 6850, -42, -5,
536621783, 0, 13, -167, 0, 13,
5367-12873, -10, -37, 6953, 0, -14,
5368-12654, 11, 63, 6415, 0, 26,
5369-10204, 0, 25, 5222, 0, 15,
537016707, -85, -10, 168, -1, 10,
5371-7691, 0, 44, 3268, 0, 19,
5372-11024, 0, -14, 104, 0, 2,
53737566, -21, -11, -3250, 0, -5,
5374-6637, -11, 25, 3353, 0, 14,
5375-7141, 21, 8, 3070, 0, 4,
5376-6302, -11, 2, 3272, 0, 4,
53775800, 10, 2, -3045, 0, -1,
53786443, 0, -7, -2768, 0, -4,
5379-5774, -11, -15, 3041, 0, -5,
5380-5350, 0, 21, 2695, 0, 12,
5381-4752, -11, -3, 2719, 0, -3,
5382-4940, -11, -21, 2720, 0, -9,
53837350, 0, -8, -51, 0, 4,
53844065, 0, 6, -2206, 0, 1,
53856579, 0, -24, -199, 0, 2,
53863579, 0, 5, -1900, 0, 1,
53874725, 0, -6, -41, 0, 3,
5388-3075, 0, -2, 1313, 0, -1,
5389-2904, 0, 15, 1233, 0, 7,
53904348, 0, -10, -81, 0, 2,
5391-2878, 0, 8, 1232, 0, 4,
5392-4230, 0, 5, -20, 0, -2,
5393-2819, 0, 7, 1207, 0, 3,
5394-4056, 0, 5, 40, 0, -2,
5395-2647, 0, 11, 1129, 0, 5,
5396-2294, 0, -10, 1266, 0, -4,
53972481, 0, -7, -1062, 0, -3,
53982179, 0, -2, -1129, 0, -2,
53993276, 0, 1, -9, 0, 0,
5400-3389, 0, 5, 35, 0, -2,
54013339, 0, -13, -107, 0, 1,
5402-1987, 0, -6, 1073, 0, -2,
5403-1981, 0, 0, 854, 0, 0,
54044026, 0, -353, -553, 0, -139,
54051660, 0, -5, -710, 0, -2,
5406-1521, 0, 9, 647, 0, 4,
54071314, 0, 0, -700, 0, 0,
5408-1283, 0, 0, 672, 0, 0,
5409-1331, 0, 8, 663, 0, 4,
54101383, 0, -2, -594, 0, -2,
54111405, 0, 4, -610, 0, 2,
54121290, 0, 0, -556, 0, 0,
5413-1214, 0, 5, 518, 0, 2,
54141146, 0, -3, -490, 0, -1,
54151019, 0, -1, -527, 0, -1,
5416-1100, 0, 9, 465, 0, 4,
5417-970, 0, 2, 496, 0, 1,
54181575, 0, -6, -50, 0, 0,
5419934, 0, -3, -399, 0, -1,
5420922, 0, -1, -395, 0, -1,
5421815, 0, -1, -422, 0, -1,
5422834, 0, 2, -440, 0, 1,
54231248, 0, 0, -170, 0, 1,
54241338, 0, -5, -39, 0, 0,
5425716, 0, -2, -389, 0, -1,
54261282, 0, -3, -23, 0, 1,
5427742, 0, 1, -391, 0, 0,
54281020, 0, -25, -495, 0, -10,
5429715, 0, -4, -326, 0, 2,
5430-666, 0, -3, 369, 0, -1,
5431-667, 0, 1, 346, 0, 1,
5432-704, 0, 0, 304, 0, 0,
5433-694, 0, 5, 294, 0, 2,
5434-1014, 0, -1, 4, 0, -1,
5435-585, 0, -2, 316, 0, -1,
5436-949, 0, 1, 8, 0, -1,
5437-595, 0, 0, 258, 0, 0,
5438528, 0, 0, -279, 0, 0,
5439-590, 0, 4, 252, 0, 2,
5440570, 0, -2, -244, 0, -1,
5441-502, 0, 3, 250, 0, 2,
5442-875, 0, 1, 29, 0, 0,
5443-492, 0, -3, 275, 0, -1,
5444535, 0, -2, -228, 0, -1,
5445-467, 0, 1, 240, 0, 1,
5446591, 0, 0, -253, 0, 0,
5447-453, 0, -1, 244, 0, -1,
5448766, 0, 1, 9, 0, 0,
5449-446, 0, 2, 225, 0, 1,
5450-488, 0, 2, 207, 0, 1,
5451-468, 0, 0, 201, 0, 0,
5452-421, 0, 1, 216, 0, 1,
5453463, 0, 0, -200, 0, 0,
5454-673, 0, 2, 14, 0, 0,
5455658, 0, 0, -2, 0, 0,
5456-438, 0, 0, 188, 0, 0,
5457-390, 0, 0, 205, 0, 0,
5458639, -11, -2, -19, 0, 0,
5459412, 0, -2, -176, 0, -1,
5460-361, 0, 0, 189, 0, 0,
5461360, 0, -1, -185, 0, -1,
5462588, 0, -3, -24, 0, 0,
5463-578, 0, 1, 5, 0, 0,
5464-396, 0, 0, 171, 0, 0,
5465565, 0, -1, -6, 0, 0,
5466-335, 0, -1, 184, 0, -1,
5467357, 0, 1, -154, 0, 0,
5468321, 0, 1, -174, 0, 0,
5469-301, 0, -1, 162, 0, 0,
5470-334, 0, 0, 144, 0, 0,
5471493, 0, -2, -15, 0, 0,
5472494, 0, -2, -19, 0, 0,
5473337, 0, -1, -143, 0, -1,
5474280, 0, -1, -144, 0, 0,
5475309, 0, 1, -134, 0, 0,
5476-263, 0, 2, 131, 0, 1,
5477253, 0, 1, -138, 0, 0,
5478245, 0, 0, -128, 0, 0,
5479416, 0, -2, -17, 0, 0,
5480-229, 0, 0, 128, 0, 0,
5481231, 0, 0, -120, 0, 0,
5482-259, 0, 2, 109, 0, 1,
5483375, 0, -1, -8, 0, 0,
5484252, 0, 0, -108, 0, 0,
5485-245, 0, 1, 104, 0, 0,
5486243, 0, -1, -104, 0, 0,
5487208, 0, 1, -112, 0, 0,
5488199, 0, 0, -102, 0, 0,
5489-208, 0, 1, 105, 0, 0,
5490335, 0, -2, -14, 0, 0,
5491-325, 0, 1, 7, 0, 0,
5492-187, 0, 0, 96, 0, 0,
5493197, 0, -1, -100, 0, 0,
5494-192, 0, 2, 94, 0, 1,
5495-188, 0, 0, 83, 0, 0,
5496276, 0, 0, -2, 0, 0,
5497-286, 0, 1, 6, 0, 0,
5498186, 0, -1, -79, 0, 0,
5499-219, 0, 0, 43, 0, 0,
5500276, 0, 0, 2, 0, 0,
5501-153, 0, -1, 84, 0, 0,
5502-156, 0, 0, 81, 0, 0,
5503-154, 0, 1, 78, 0, 0,
5504-174, 0, 1, 75, 0, 0,
5505-163, 0, 2, 69, 0, 1,
5506-228, 0, 0, 1, 0, 0,
550791, 0, -4, -54, 0, -2,
5508175, 0, 0, -75, 0, 0,
5509-159, 0, 0, 69, 0, 0,
5510141, 0, 0, -72, 0, 0,
5511147, 0, 0, -75, 0, 0,
5512-132, 0, 0, 69, 0, 0,
5513159, 0, -28, -54, 0, 11,
5514213, 0, 0, -4, 0, 0,
5515123, 0, 0, -64, 0, 0,
5516-118, 0, -1, 66, 0, 0,
5517144, 0, -1, -61, 0, 0,
5518-121, 0, 1, 60, 0, 0,
5519-134, 0, 1, 56, 0, 1,
5520-105, 0, 0, 57, 0, 0,
5521-102, 0, 0, 56, 0, 0,
5522120, 0, 0, -52, 0, 0,
5523101, 0, 0, -54, 0, 0,
5524-113, 0, 0, 59, 0, 0,
5525-106, 0, 0, 61, 0, 0,
5526-129, 0, 1, 55, 0, 0,
5527-114, 0, 0, 57, 0, 0,
5528113, 0, -1, -49, 0, 0,
5529-102, 0, 0, 44, 0, 0,
5530-94, 0, 0, 51, 0, 0,
5531-100, 0, -1, 56, 0, 0,
553287, 0, 0, -47, 0, 0,
5533161, 0, 0, -1, 0, 0,
553496, 0, 0, -50, 0, 0,
5535151, 0, -1, -5, 0, 0,
5536-104, 0, 0, 44, 0, 0,
5537-110, 0, 0, 48, 0, 0,
5538-100, 0, 1, 50, 0, 0,
553992, 0, -5, 12, 0, -2,
554082, 0, 0, -45, 0, 0,
554182, 0, 0, -45, 0, 0,
5542-78, 0, 0, 41, 0, 0,
5543-77, 0, 0, 43, 0, 0,
55442, 0, 0, 54, 0, 0,
554594, 0, 0, -40, 0, 0,
5546-93, 0, 0, 40, 0, 0,
5547-83, 0, 10, 40, 0, -2,
554883, 0, 0, -36, 0, 0,
5549-91, 0, 0, 39, 0, 0,
5550128, 0, 0, -1, 0, 0,
5551-79, 0, 0, 34, 0, 0,
5552-83, 0, 0, 47, 0, 0,
555384, 0, 0, -44, 0, 0,
555483, 0, 0, -43, 0, 0,
555591, 0, 0, -39, 0, 0,
5556-77, 0, 0, 39, 0, 0,
555784, 0, 0, -43, 0, 0,
5558-92, 0, 1, 39, 0, 0,
5559-92, 0, 1, 39, 0, 0,
5560-94, 0, 0, 0, 0, 0,
556168, 0, 0, -36, 0, 0,
5562-61, 0, 0, 32, 0, 0,
556371, 0, 0, -31, 0, 0,
556462, 0, 0, -34, 0, 0,
5565-63, 0, 0, 33, 0, 0,
5566-73, 0, 0, 32, 0, 0,
5567115, 0, 0, -2, 0, 0,
5568-103, 0, 0, 2, 0, 0,
556963, 0, 0, -28, 0, 0,
557074, 0, 0, -32, 0, 0,
5571-103, 0, -3, 3, 0, -1,
5572-69, 0, 0, 30, 0, 0,
557357, 0, 0, -29, 0, 0,
557494, 0, 0, -4, 0, 0,
557564, 0, 0, -33, 0, 0,
5576-63, 0, 0, 26, 0, 0,
5577-38, 0, 0, 20, 0, 0,
5578-43, 0, 0, 24, 0, 0,
5579-45, 0, 0, 23, 0, 0,
558047, 0, 0, -24, 0, 0,
5581-48, 0, 0, 25, 0, 0,
558245, 0, 0, -26, 0, 0,
558356, 0, 0, -25, 0, 0,
558488, 0, 0, 2, 0, 0,
5585-75, 0, 0, 0, 0, 0,
558685, 0, 0, 0, 0, 0,
558749, 0, 0, -26, 0, 0,
5588-74, 0, -3, -1, 0, -1,
5589-39, 0, 0, 21, 0, 0,
559045, 0, 0, -20, 0, 0,
559151, 0, 0, -22, 0, 0,
5592-40, 0, 0, 21, 0, 0,
559341, 0, 0, -21, 0, 0,
5594-42, 0, 0, 24, 0, 0,
5595-51, 0, 0, 22, 0, 0,
5596-42, 0, 0, 22, 0, 0,
559739, 0, 0, -21, 0, 0,
559846, 0, 0, -18, 0, 0,
5599-53, 0, 0, 22, 0, 0,
560082, 0, 0, -4, 0, 0,
560181, 0, -1, -4, 0, 0,
560247, 0, 0, -19, 0, 0,
560353, 0, 0, -23, 0, 0,
5604-45, 0, 0, 22, 0, 0,
5605-44, 0, 0, -2, 0, 0,
5606-33, 0, 0, 16, 0, 0,
5607-61, 0, 0, 1, 0, 0,
560828, 0, 0, -15, 0, 0,
5609-38, 0, 0, 19, 0, 0,
5610-33, 0, 0, 21, 0, 0,
5611-60, 0, 0, 0, 0, 0,
561248, 0, 0, -10, 0, 0,
561327, 0, 0, -14, 0, 0,
561438, 0, 0, -20, 0, 0,
561531, 0, 0, -13, 0, 0,
5616-29, 0, 0, 15, 0, 0,
561728, 0, 0, -15, 0, 0,
5618-32, 0, 0, 15, 0, 0,
561945, 0, 0, -8, 0, 0,
5620-44, 0, 0, 19, 0, 0,
562128, 0, 0, -15, 0, 0,
5622-51, 0, 0, 0, 0, 0,
5623-36, 0, 0, 20, 0, 0,
562444, 0, 0, -19, 0, 0,
562526, 0, 0, -14, 0, 0,
5626-60, 0, 0, 2, 0, 0,
562735, 0, 0, -18, 0, 0,
5628-27, 0, 0, 11, 0, 0,
562947, 0, 0, -1, 0, 0,
563036, 0, 0, -15, 0, 0,
5631-36, 0, 0, 20, 0, 0,
5632-35, 0, 0, 19, 0, 0,
5633-37, 0, 0, 19, 0, 0,
563432, 0, 0, -16, 0, 0,
563535, 0, 0, -14, 0, 0,
563632, 0, 0, -13, 0, 0,
563765, 0, 0, -2, 0, 0,
563847, 0, 0, -1, 0, 0,
563932, 0, 0, -16, 0, 0,
564037, 0, 0, -16, 0, 0,
5641-30, 0, 0, 15, 0, 0,
5642-32, 0, 0, 16, 0, 0,
5643-31, 0, 0, 13, 0, 0,
564437, 0, 0, -16, 0, 0,
564531, 0, 0, -13, 0, 0,
564649, 0, 0, -2, 0, 0,
564732, 0, 0, -13, 0, 0,
564823, 0, 0, -12, 0, 0,
5649-43, 0, 0, 18, 0, 0,
565026, 0, 0, -11, 0, 0,
5651-32, 0, 0, 14, 0, 0,
5652-29, 0, 0, 14, 0, 0,
5653-27, 0, 0, 12, 0, 0,
565430, 0, 0, 0, 0, 0,
5655-11, 0, 0, 5, 0, 0,
5656-21, 0, 0, 10, 0, 0,
5657-34, 0, 0, 15, 0, 0,
5658-10, 0, 0, 6, 0, 0,
5659-36, 0, 0, 0, 0, 0,
5660-9, 0, 0, 4, 0, 0,
5661-12, 0, 0, 5, 0, 0,
5662-21, 0, 0, 5, 0, 0,
5663-29, 0, 0, -1, 0, 0,
5664-15, 0, 0, 3, 0, 0,
5665-20, 0, 0, 0, 0, 0,
566628, 0, 0, 0, 0, -2,
566717, 0, 0, 0, 0, 0,
5668-22, 0, 0, 12, 0, 0,
5669-14, 0, 0, 7, 0, 0,
567024, 0, 0, -11, 0, 0,
567111, 0, 0, -6, 0, 0,
567214, 0, 0, -6, 0, 0,
567324, 0, 0, 0, 0, 0,
567418, 0, 0, -8, 0, 0,
5675-38, 0, 0, 0, 0, 0,
5676-31, 0, 0, 0, 0, 0,
5677-16, 0, 0, 8, 0, 0,
567829, 0, 0, 0, 0, 0,
5679-18, 0, 0, 10, 0, 0,
5680-10, 0, 0, 5, 0, 0,
5681-17, 0, 0, 10, 0, 0,
56829, 0, 0, -4, 0, 0,
568316, 0, 0, -6, 0, 0,
568422, 0, 0, -12, 0, 0,
568520, 0, 0, 0, 0, 0,
5686-13, 0, 0, 6, 0, 0,
5687-17, 0, 0, 9, 0, 0,
5688-14, 0, 0, 8, 0, 0,
56890, 0, 0, -7, 0, 0,
569014, 0, 0, 0, 0, 0,
569119, 0, 0, -10, 0, 0,
5692-34, 0, 0, 0, 0, 0,
5693-20, 0, 0, 8, 0, 0,
56949, 0, 0, -5, 0, 0,
5695-18, 0, 0, 7, 0, 0,
569613, 0, 0, -6, 0, 0,
569717, 0, 0, 0, 0, 0,
5698-12, 0, 0, 5, 0, 0,
569915, 0, 0, -8, 0, 0,
5700-11, 0, 0, 3, 0, 0,
570113, 0, 0, -5, 0, 0,
5702-18, 0, 0, 0, 0, 0,
5703-35, 0, 0, 0, 0, 0,
57049, 0, 0, -4, 0, 0,
5705-19, 0, 0, 10, 0, 0,
5706-26, 0, 0, 11, 0, 0,
57078, 0, 0, -4, 0, 0,
5708-10, 0, 0, 4, 0, 0,
570910, 0, 0, -6, 0, 0,
5710-21, 0, 0, 9, 0, 0,
5711-15, 0, 0, 0, 0, 0,
57129, 0, 0, -5, 0, 0,
5713-29, 0, 0, 0, 0, 0,
5714-19, 0, 0, 10, 0, 0,
571512, 0, 0, -5, 0, 0,
571622, 0, 0, -9, 0, 0,
5717-10, 0, 0, 5, 0, 0,
5718-20, 0, 0, 11, 0, 0,
5719-20, 0, 0, 0, 0, 0,
5720-17, 0, 0, 7, 0, 0,
572115, 0, 0, -3, 0, 0,
57228, 0, 0, -4, 0, 0,
572314, 0, 0, 0, 0, 0,
5724-12, 0, 0, 6, 0, 0,
572525, 0, 0, 0, 0, 0,
5726-13, 0, 0, 6, 0, 0,
5727-14, 0, 0, 8, 0, 0,
572813, 0, 0, -5, 0, 0,
5729-17, 0, 0, 9, 0, 0,
5730-12, 0, 0, 6, 0, 0,
5731-10, 0, 0, 5, 0, 0,
573210, 0, 0, -6, 0, 0,
5733-15, 0, 0, 0, 0, 0,
5734-22, 0, 0, 0, 0, 0,
573528, 0, 0, -1, 0, 0,
573615, 0, 0, -7, 0, 0,
573723, 0, 0, -10, 0, 0,
573812, 0, 0, -5, 0, 0,
573929, 0, 0, -1, 0, 0,
5740-25, 0, 0, 1, 0, 0,
574122, 0, 0, 0, 0, 0,
5742-18, 0, 0, 0, 0, 0,
574315, 0, 0, 3, 0, 0,
5744-23, 0, 0, 0, 0, 0,
574512, 0, 0, -5, 0, 0,
5746-8, 0, 0, 4, 0, 0,
5747-19, 0, 0, 0, 0, 0,
5748-10, 0, 0, 4, 0, 0,
574921, 0, 0, -9, 0, 0,
575023, 0, 0, -1, 0, 0,
5751-16, 0, 0, 8, 0, 0,
5752-19, 0, 0, 9, 0, 0,
5753-22, 0, 0, 10, 0, 0,
575427, 0, 0, -1, 0, 0,
575516, 0, 0, -8, 0, 0,
575619, 0, 0, -8, 0, 0,
57579, 0, 0, -4, 0, 0,
5758-9, 0, 0, 4, 0, 0,
5759-9, 0, 0, 4, 0, 0,
5760-8, 0, 0, 4, 0, 0,
576118, 0, 0, -9, 0, 0,
576216, 0, 0, -1, 0, 0,
5763-10, 0, 0, 4, 0, 0,
5764-23, 0, 0, 9, 0, 0,
576516, 0, 0, -1, 0, 0,
5766-12, 0, 0, 6, 0, 0,
5767-8, 0, 0, 4, 0, 0,
576830, 0, 0, -2, 0, 0,
576924, 0, 0, -10, 0, 0,
577010, 0, 0, -4, 0, 0,
5771-16, 0, 0, 7, 0, 0,
5772-16, 0, 0, 7, 0, 0,
577317, 0, 0, -7, 0, 0,
5774-24, 0, 0, 10, 0, 0,
5775-12, 0, 0, 5, 0, 0,
5776-24, 0, 0, 11, 0, 0,
5777-23, 0, 0, 9, 0, 0,
5778-13, 0, 0, 5, 0, 0,
5779-15, 0, 0, 7, 0, 0,
57800, 0, -1988, 0, 0, -1679,
57810, 0, -63, 0, 0, -27,
5782-4, 0, 0, 0, 0, 0,
57830, 0, 5, 0, 0, 4,
57845, 0, 0, -3, 0, 0,
57850, 0, 364, 0, 0, 176,
57860, 0, -1044, 0, 0, -891,
5787-3, 0, 0, 1, 0, 0,
57884, 0, 0, -2, 0, 0,
57890, 0, 330, 0, 0, 0,
57905, 0, 0, -2, 0, 0,
57913, 0, 0, -2, 0, 0,
5792-3, 0, 0, 1, 0, 0,
5793-5, 0, 0, 2, 0, 0,
57943, 0, 0, -1, 0, 0,
57953, 0, 0, 0, 0, 0,
57963, 0, 0, 0, 0, 0,
57970, 0, 5, 0, 0, 0,
57980, 0, 0, 1, 0, 0,
57994, 0, 0, -2, 0, 0,
58006, 0, 0, 0, 0, 0,
58015, 0, 0, -2, 0, 0,
5802-7, 0, 0, 0, 0, 0,
5803-12, 0, 0, 0, 0, 0,
58045, 0, 0, -3, 0, 0,
58053, 0, 0, -1, 0, 0,
5806-5, 0, 0, 0, 0, 0,
58073, 0, 0, 0, 0, 0,
5808-7, 0, 0, 3, 0, 0,
58097, 0, 0, -4, 0, 0,
58100, 0, -12, 0, 0, -10,
58114, 0, 0, -2, 0, 0,
58123, 0, 0, -2, 0, 0,
5813-3, 0, 0, 2, 0, 0,
5814-7, 0, 0, 3, 0, 0,
5815-4, 0, 0, 2, 0, 0,
5816-3, 0, 0, 1, 0, 0,
58170, 0, 0, 0, 0, 0,
5818-3, 0, 0, 1, 0, 0,
58197, 0, 0, -3, 0, 0,
5820-4, 0, 0, 2, 0, 0,
58214, 0, 0, -2, 0, 0,
5822-5, 0, 0, 3, 0, 0,
58235, 0, 0, 0, 0, 0,
5824-5, 0, 0, 2, 0, 0,
58255, 0, 0, -2, 0, 0,
5826-8, 0, 0, 3, 0, 0,
58279, 0, 0, 0, 0, 0,
58286, 0, 0, -3, 0, 0,
5829-5, 0, 0, 2, 0, 0,
58303, 0, 0, 0, 0, 0,
5831-7, 0, 0, 0, 0, 0,
5832-3, 0, 0, 1, 0, 0,
58335, 0, 0, 0, 0, 0,
58343, 0, 0, 0, 0, 0,
5835-3, 0, 0, 2, 0, 0,
58364, 0, 0, -2, 0, 0,
58373, 0, 0, -1, 0, 0,
5838-5, 0, 0, 2, 0, 0,
58394, 0, 0, -2, 0, 0,
58409, 0, 0, -3, 0, 0,
58414, 0, 0, 0, 0, 0,
58424, 0, 0, -2, 0, 0,
5843-3, 0, 0, 2, 0, 0,
5844-4, 0, 0, 2, 0, 0,
58459, 0, 0, -3, 0, 0,
5846-4, 0, 0, 0, 0, 0,
5847-4, 0, 0, 0, 0, 0,
58483, 0, 0, -2, 0, 0,
58498, 0, 0, 0, 0, 0,
58503, 0, 0, 0, 0, 0,
5851-3, 0, 0, 2, 0, 0,
58523, 0, 0, -1, 0, 0,
58533, 0, 0, -1, 0, 0,
5854-3, 0, 0, 1, 0, 0,
58556, 0, 0, -3, 0, 0,
58563, 0, 0, 0, 0, 0,
5857-3, 0, 0, 1, 0, 0,
5858-7, 0, 0, 0, 0, 0,
58599, 0, 0, 0, 0, 0,
5860-3, 0, 0, 2, 0, 0,
5861-3, 0, 0, 0, 0, 0,
5862-4, 0, 0, 0, 0, 0,
5863-5, 0, 0, 3, 0, 0,
5864-13, 0, 0, 0, 0, 0,
5865-7, 0, 0, 0, 0, 0,
586610, 0, 0, 0, 0, 0,
58673, 0, 0, -1, 0, 0,
586810, 0, 13, 6, 0, -5,
58690, 0, 30, 0, 0, 14,
58700, 0, -162, 0, 0, -138,
58710, 0, 75, 0, 0, 0,
5872-7, 0, 0, 4, 0, 0,
5873-4, 0, 0, 2, 0, 0,
58744, 0, 0, -2, 0, 0,
58755, 0, 0, -2, 0, 0,
58765, 0, 0, -3, 0, 0,
5877-3, 0, 0, 0, 0, 0,
5878-3, 0, 0, 2, 0, 0,
5879-4, 0, 0, 2, 0, 0,
5880-5, 0, 0, 2, 0, 0,
58816, 0, 0, 0, 0, 0,
58829, 0, 0, 0, 0, 0,
58835, 0, 0, 0, 0, 0,
5884-7, 0, 0, 0, 0, 0,
5885-3, 0, 0, 1, 0, 0,
5886-4, 0, 0, 2, 0, 0,
58877, 0, 0, 0, 0, 0,
5888-4, 0, 0, 0, 0, 0,
58894, 0, 0, 0, 0, 0,
5890-6, 0, -3, 3, 0, 1,
58910, 0, -3, 0, 0, -2,
589211, 0, 0, 0, 0, 0,
58933, 0, 0, -1, 0, 0,
589411, 0, 0, 0, 0, 0,
5895-3, 0, 0, 2, 0, 0,
5896-1, 0, 3, 3, 0, -1,
58974, 0, 0, -2, 0, 0,
58980, 0, -13, 0, 0, -11,
58993, 0, 6, 0, 0, 0,
5900-7, 0, 0, 0, 0, 0,
59015, 0, 0, -3, 0, 0,
5902-3, 0, 0, 1, 0, 0,
59033, 0, 0, 0, 0, 0,
59045, 0, 0, -3, 0, 0,
5905-7, 0, 0, 3, 0, 0,
59068, 0, 0, -3, 0, 0,
5907-4, 0, 0, 2, 0, 0,
590811, 0, 0, 0, 0, 0,
5909-3, 0, 0, 1, 0, 0,
59103, 0, 0, -1, 0, 0,
5911-4, 0, 0, 2, 0, 0,
59128, 0, 0, -4, 0, 0,
59133, 0, 0, -1, 0, 0,
591411, 0, 0, 0, 0, 0,
5915-6, 0, 0, 3, 0, 0,
5916-4, 0, 0, 2, 0, 0,
5917-8, 0, 0, 4, 0, 0,
5918-7, 0, 0, 3, 0, 0,
5919-4, 0, 0, 2, 0, 0,
59203, 0, 0, -1, 0, 0,
59216, 0, 0, -3, 0, 0,
5922-6, 0, 0, 3, 0, 0,
59236, 0, 0, 0, 0, 0,
59246, 0, 0, -1, 0, 0,
59255, 0, 0, -2, 0, 0,
5926-5, 0, 0, 2, 0, 0,
5927-4, 0, 0, 0, 0, 0,
5928-4, 0, 0, 2, 0, 0,
59294, 0, 0, 0, 0, 0,
59306, 0, 0, -3, 0, 0,
5931-4, 0, 0, 2, 0, 0,
59320, 0, -26, 0, 0, -11,
59330, 0, -10, 0, 0, -5,
59345, 0, 0, -3, 0, 0,
5935-13, 0, 0, 0, 0, 0,
59363, 0, 0, -2, 0, 0,
59374, 0, 0, -2, 0, 0,
59387, 0, 0, -3, 0, 0,
59394, 0, 0, 0, 0, 0,
59405, 0, 0, 0, 0, 0,
5941-3, 0, 0, 2, 0, 0,
5942-6, 0, 0, 2, 0, 0,
5943-5, 0, 0, 2, 0, 0,
5944-7, 0, 0, 3, 0, 0,
59455, 0, 0, -2, 0, 0,
594613, 0, 0, 0, 0, 0,
5947-4, 0, 0, 2, 0, 0,
5948-3, 0, 0, 0, 0, 0,
59495, 0, 0, -2, 0, 0,
5950-11, 0, 0, 0, 0, 0,
59515, 0, 0, -2, 0, 0,
59524, 0, 0, 0, 0, 0,
59534, 0, 0, -2, 0, 0,
5954-4, 0, 0, 2, 0, 0,
59556, 0, 0, -3, 0, 0,
59563, 0, 0, -2, 0, 0,
5957-12, 0, 0, 0, 0, 0,
59584, 0, 0, 0, 0, 0,
5959-3, 0, 0, 0, 0, 0,
5960-4, 0, 0, 0, 0, 0,
59613, 0, 0, 0, 0, 0,
59623, 0, 0, -1, 0, 0,
5963-3, 0, 0, 1, 0, 0,
59640, 0, -5, 0, 0, -2,
5965-7, 0, 0, 4, 0, 0,
59666, 0, 0, -3, 0, 0,
5967-3, 0, 0, 0, 0, 0,
59685, 0, 0, -3, 0, 0,
59693, 0, 0, -1, 0, 0,
59703, 0, 0, 0, 0, 0,
5971-3, 0, 0, 1, 0, 0,
5972-5, 0, 0, 3, 0, 0,
5973-3, 0, 0, 2, 0, 0,
5974-3, 0, 0, 2, 0, 0,
597512, 0, 0, 0, 0, 0,
59763, 0, 0, -1, 0, 0,
5977-4, 0, 0, 2, 0, 0,
59784, 0, 0, 0, 0, 0,
59796, 0, 0, 0, 0, 0,
59805, 0, 0, -3, 0, 0,
59814, 0, 0, -2, 0, 0,
5982-6, 0, 0, 3, 0, 0,
59834, 0, 0, -2, 0, 0,
59846, 0, 0, -3, 0, 0,
59856, 0, 0, 0, 0, 0,
5986-6, 0, 0, 3, 0, 0,
59873, 0, 0, -2, 0, 0,
59887, 0, 0, -4, 0, 0,
59894, 0, 0, -2, 0, 0,
5990-5, 0, 0, 2, 0, 0,
59915, 0, 0, 0, 0, 0,
5992-6, 0, 0, 3, 0, 0,
5993-6, 0, 0, 3, 0, 0,
5994-4, 0, 0, 2, 0, 0,
599510, 0, 0, 0, 0, 0,
5996-4, 0, 0, 2, 0, 0,
59977, 0, 0, 0, 0, 0,
59987, 0, 0, -3, 0, 0,
59994, 0, 0, 0, 0, 0,
600011, 0, 0, 0, 0, 0,
60015, 0, 0, -2, 0, 0,
6002-6, 0, 0, 2, 0, 0,
60034, 0, 0, -2, 0, 0,
60043, 0, 0, -2, 0, 0,
60055, 0, 0, -2, 0, 0,
6006-4, 0, 0, 2, 0, 0,
6007-4, 0, 0, 2, 0, 0,
6008-3, 0, 0, 2, 0, 0,
60094, 0, 0, -2, 0, 0,
60103, 0, 0, -1, 0, 0,
6011-3, 0, 0, 1, 0, 0,
6012-3, 0, 0, 1, 0, 0,
6013-3, 0, 0, 2, 0, 0,
6014]
6015	
6016};
6017
6018/* Nutation -- AA page B20
6019 * using nutation in longitude and obliquity from nutlo()
6020 * and obliquity of the ecliptic from epsiln()
6021 * both calculated for Julian date J.
6022 *
6023 * p[] = equatorial rectangular position vector of object for
6024 * mean ecliptic and equinox of date.
6025 */
6026$ns.nutation2.calc = function (date, p) {
6027
6028	this.calclo (date); /* be sure we calculated nutl and nuto */
6029
6030	return;
6031};
6032
6033/* Nutation in longitude and obliquity
6034 * computed at Julian date J.
6035 */
6036$ns.nutation2.calclo = function (date) {
6037	var f, g, T, T2, T10; // double
6038	var MM, MS, FF, DD, OM; // double
6039	var cu, su, cv, sv, sw; // double
6040	var C, D; // double
6041	var i, j, k, k1, m; // int
6042	var p; // short array
6043
6044	if( this.jdnut.julian == date.julian )
6045		return;
6046	this.jdnut = date;
6047
6048	/* Julian centuries from 2000 January 1.5,
6049	 * barycentric dynamical time
6050	 */
6051	T = (date.julian - 2451545.0) / 36525.0;
6052	T2 = T * T;
6053	T10 = T / 10.0;
6054
6055	/* Fundamental arguments in the FK5 reference system.  */
6056
6057
6058
6059  /* Mean longitude of the ascending node of the Moon. */
6060  OM  = $util.mod360(( 450160.398036 + T*( -6962890.5431 + T*( 7.4722 + T*( 0.007702 + T*(-0.00005939 ))))) / 3600.0) * $const.DTR;
6061
6062	/* longitude of the mean ascending node of the lunar orbit
6063	 * on the ecliptic, measured from the mean equinox of date
6064	 */
6065//	OM = ($util.mods3600 (-6962890.539 * T + 450160.280) + (0.008 * T + 7.455) * T2)
6066//		* $const.STR;
6067
6068  /* Mean anomaly of the Sun */
6069  MS = $util.mod360((1287104.79305 + T*( 129596581.0481 + T*( -0.5532 + T*( 0.000136 + T*( -0.
606900001149 ))))) / 3600.0) * $const.DTR;
6070	/* mean longitude of the Sun minus the
6071	 * mean longitude of the Sun's perigee
6072	 */
6073//	MS = ($util.mods3600 (129596581.224 * T + 1287099.804) - (0.012 * T + 0.577) * T2)
6074//		* $const.STR;
6075
6076  /* Mean anomaly of the Moon. */
6077  MM  = $util.mod360(( 485868.249036 + T*( 1717915923.2178 + T*( 31.8792 + T*( 0.051635 + T*(- 0.00024470 ))))) / 3600.0) * $const.DTR;
6078	/* mean longitude of the Moon minus the
6079	 * mean longitude of the Moon's perigee
6080	 */
6081//	MM = ($util.mods3600 (1717915922.633 * T + 485866.733) + (0.064 * T + 31.310) * T2)
6082//		* $const.STR;
6083
6084  /* Mean argument of the latitude of the Moon. */
6085  FF   = $util.mod360(( 335779.526232 + T*( 1739527262.8478 + T*(-12.7512 + T*( -0.001037 + T*(0.00000417 ))))) / 3600.0) * $const.DTR;
6086	/* mean longitude of the Moon minus the
6087	 * mean longitude of the Moon's node
6088	 */
6089//	FF = ($util.mods3600 (1739527263.137 * T + 335778.877) + (0.011 * T - 13.257) * T2)
6090//		* $const.STR;
6091
6092  /* Mean elongation of the Moon from the Sun. */
6093  DD   = $util.mod360((1072260.70369 + T*( 1602961601.2090 + T*( -6.3706 + T*( 0.006593 + T*( -0.00003169 ))))) / 3600.0) * $const.DTR;
6094	/* mean elongation of the Moon from the Sun.
6095	 */
6096//	DD = ($util.mods3600 (1602961601.328 * T + 1072261.307) + (0.019 * T - 6.891) * T2)
6097//		* $const.STR;
6098
6099var dpsi =0 ,deps =0;
6100for (i = 77 - 1; i >= 0; i--) {
6101j = i * 5;
6102var darg = $util.modtp( this.nls[j + 0] * MM  + this.nls[j + 1] * MS + this.nls[j + 2] * FF   + this.nls[j + 3] * DD   + this.nls[j + 4] * OM);
6103var sinarg = Math.sin(darg);
6104var cosarg = Math.cos(darg);
6105k = i * 6;
6106dpsi += (this.cls[k+0] + this.cls[k+1] * T) * sinarg + this.cls[k+2] * cosarg;
6107deps += (this.cls[k+3] + this.cls[k+4] * T) * cosarg + this.cls[k+5] * sinarg;
6108}
6109  this.nutl = dpsi/ 3600.0 / 10000000.0;
6110  this.nuto = deps/ 3600.0 / 10000000.0;
6111
6112
6113	/* Save answers, expressed in radians */
6114	this.nutl *=  $const.DTR;
6115	this.nuto *=  $const.DTR;
6116	this.ascNode = FF * $const.RTD;
6117
6118};
6119
6120
6121
6122
6123
6124
6125$ns.planet = {};
6126
6127$ns.planet.calc = function (body) {
6128	this.prepare (body);
6129
6130	/* calculate heliocentric position of the object */
6131	$moshier.kepler.calc ($moshier.body.earth.position.date, body);
6132	/* apply correction factors and print apparent place */
6133	this.reduce (body, body.position.rect, $moshier.body.earth.position.rect);
6134};
6135
6136/* The following program reduces the heliocentric equatorial
6137 * rectangular coordinates of the earth and object that
6138 * were computed by kepler() and produces apparent geocentric
6139 * right ascension and declination.
6140 */
6141$ns.planet.reduce = function (body, q, e) {
6142	var p = [], temp = [], polar = []; // double
6143	var a, b, s; // double
6144	var i; // int
6145
6146	/* Save the geometric coordinates at TDT
6147	 */
6148	for ( i=0; i<3; i++ ) {
6149		temp[i] = q[i];
6150	}
6151
6152	/* Display ecliptic longitude and latitude, precessed to equinox
6153	 of date.  */
6154	body.equinoxEclipticLonLat = $moshier.lonlat.calc (q, $moshier.body.earth.position.date, polar, 1 );
6155
6156	/* Adjust for light time (planetary aberration)
6157	 */
6158	$moshier.light.calc ( body, q, e );
6159
6160	/* Find Euclidean vectors between earth, object, and the sun
6161	 */
6162	for( i=0; i<3; i++ ) {
6163		p[i] = q[i] - e[i];
6164		if ($const.truepos!=0) { p[i] -= $const.dp[i]; }
6165	}
6166
6167	$util.angles ( p, q, e );
6168
6169	a = 0.0;
6170	for( i=0; i<3; i++ ) {
6171		b = temp[i] - e[i];
6172		a += b * b;
6173	}
6174	a = Math.sqrt(a);
6175	body.position.trueGeocentricDistance = a; /* was EO */
6176	body.position.equatorialDiameter = 2.0*body.semiDiameter / $const.EO;
6177
6178
6179	/* Calculate visual magnitude.
6180	 * "Visual" refers to the spectrum of visible light.
6181	 * Phase = 0.5(1+pq) = geometric fraction of disc illuminated.
6182	 * where pq = cos( sun-object-earth angle )
6183	 * The magnitude is
6184	 *    V(1,0) + 2.5 log10( SE^2 SO^2 / Phase)
6185	 * where V(1,0) = elemnt->mag is the magnitude at 1au from
6186	 * both earth and sun and 100% illumination.
6187	 */
6188	a = 0.5 * (1.0 + $const.pq);
6189	/* Fudge the phase for light leakage in magnitude estimation.
6190	 * Note this phase term estimate does not reflect reality well.
6191	 * Calculated magnitudes of Mercury and Venus are inaccurate.
6192	 */
6193	b = 0.5 * (1.01 + 0.99*$const.pq);
6194	s = body.magnitude + 2.1715 * Math.log( $const.EO*$const.SO ) - 1.085*Math.log(b);
6195	body.position.approxVisual = {
6196		magnitude: s,
6197		phase: a
6198	};
6199
6200	/* Find unit vector from earth in direction of object
6201	 */
6202	for( i=0; i<3; i++ ) {
6203		p[i] /= $const.EO;
6204		temp[i] = p[i];
6205	}
6206
6207	/* Report astrometric position
6208	 */
6209	body.position.astrometricJ2000 = $util.showrd (p, polar );
6210
6211	/* Also in 1950 coordinates
6212	 */
6213	$moshier.precess.calc ( temp, {julian: $const.b1950}, -1 );
6214	body.position.astrometricB1950 = $util.showrd (temp, polar );
6215
6216	/* Correct position for light deflection
6217	 */
6218	if ($const.truepos == 0) { body.position.deflection = $moshier.deflectioon.calc ( p, q, e ); }// relativity 
6219
6220	/* Correct for annual aberration
6221	 */
6222	if ($const.truepos == 0) { body.position.aberration = $moshier.aberration.calc (p); }
6223
6224if (body.key !== 'sun' && body.key !== 'moon') {
6225var rb = [];var xx = [];
6226for (i = 0; i <= 2; i++) {
6227  rb[i]= [];
6228}
6229
6230rb[0][0] = +0.99999999999999412;
6231rb[1][0] = -0.00000007078368961;
6232rb[2][0] = +0.00000008056213978;
6233rb[0][1] = +0.00000007078368695;
6234rb[1][1] = +0.99999999999999700;
6235rb[2][1] = +0.00000003306428553;
6236rb[0][2] = -0.00000008056214212;
6237rb[1][2] = -0.00000003306427981;
6238rb[2][2] = +0.99999999999999634;
6239for (i = 0; i <= 2; i++) {
6240xx[i] = (p[0] * rb[0][i] + p[1] * rb[1][i] + p[2] * rb[2][i])*$const.EO;
6241p[i] = xx[i];
6242}
6243}
6244
6245	/* Precession of the equinox and ecliptic
6246	 * from J2000.0 to ephemeris date
6247	 */
6248	$moshier.precess.calc ( p, $moshier.body.earth.position.date, -1 );
6249
6250	/* Ajust for nutation
6251	 * at current ecliptic.
6252	 */
6253	$moshier.epsilon.calc ( $moshier.body.earth.position.date );
6254	body.position.nutation = $moshier.nutation.calc ( $moshier.body.earth.position.date, p );
6255
6256	/* Display the final apparent R.A. and Dec.
6257	 * for equinox of date.
6258	 */
6259if (body.key == 'sun' || body.key == 'moon') {
6260	body.position.constellation = $moshier.constellation.calc (p, $moshier.body.earth.position.date);
6261	body.position.apparent = $util.showrd (p, polar);
6262}
6263if (body.key !== 'sun' && body.key !== 'moon') {
6264
6265	$moshier.nutation.calclo($moshier.body.earth.position.date);
6266$moshier.nutation2.calclo($moshier.body.earth.position.date);
6267
6268
6269var yyy = [];
6270xxx = [ p[0], p[1], p[2], 0, 0, 0 ];
6271
6272swi_coortrf2(xxx, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6273
6274xxx[0] = yyy[0];xxx[1] = yyy[1];xxx[2] = yyy[2];
6275
6276
6277zzz = [ temp[0], temp[1], temp[2], 0,0,0 ];
6278swi_coortrf2(zzz, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6279
6280zzz = [ yyy[0], yyy[1], yyy[2], 0, 0, 0 ];
6281
6282swi_coortrf2(xxx, yyy, Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
6283xxx[0] = yyy[0];xxx[1] = yyy[1];xxx[2] = yyy[2];
6284
6285
6286swi_coortrf2(zzz, yyy, Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
6287
6288xxx[3] = yyy[0]; xxx[4] =yyy[1]; xxx[5] = yyy[2];
6289
6290
6291swi_cartpol_sp(xxx, yyy);
6292body.position.apparentLongitude = yyy[0] * $const.RTD;
6293
6294} else {
6295
6296
6297	/* Geocentric ecliptic longitude and latitude.  */
6298	for( i=0; i<3; i++ ) {
6299		p[i] *= $const.EO;
6300	}
6301	body.position.apparentGeocentric = $moshier.lonlat.calc ( p, $moshier.body.earth.position.date, temp, 0 );
6302	body.position.apparentLongitude = body.position.apparentGeocentric [0] * $const.RTD;
6303	body.position.apparentLongitudeString =
6304		body.position.apparentGeocentric [3].degree + '\u00B0' +
6305		body.position.apparentGeocentric [3].minutes + '\'' +
6306		Math.floor (body.position.apparentGeocentric [3].seconds) + '"'
6307	;
6308
6309	body.position.apparentLongitude30String =
6310		$util.mod30 (body.position.apparentGeocentric [3].degree) + '\u00B0' +
6311		body.position.apparentGeocentric [3].minutes + '\'' +
6312		Math.floor (body.position.apparentGeocentric [3].seconds) + '"'
6313	;
6314
6315	body.position.geocentricDistance = -1;
6316
6317	/* Go do topocentric reductions.
6318	 */
6319	polar[2] = $const.EO;
6320	body.position.altaz = $moshier.altaz.calc (polar, $moshier.body.earth.position.date);
6321}
6322};
6323
6324$ns.planet.prepare = function (body) {
6325	if (!body.semiAxis) {
6326		body.semiAxis = body.perihelionDistance / (1 - body.eccentricity);
6327	}
6328};
6329
6330$ns.refraction = {};
6331
6332/* Atmospheric refraction
6333 * Returns correction in degrees to be added to true altitude
6334 * to obtain apparent altitude.
6335 */
6336$ns.refraction.calc = function (alt) {
6337	var y, y0, D0, N, D, P, Q; // double
6338	var i; // int
6339
6340	if( (alt < -2.0) || (alt >= 90.0) ) {
6341		return 0.0;
6342	}
6343
6344	/* For high altitude angle, AA page B61
6345	 * Accuracy "usually about 0.1' ".
6346	 */
6347	if( alt > 15.0 )
6348	{
6349		D = 0.00452*$const.atpress/((273.0+$const.attemp)*Math.tan( $const.DTR*alt ));
6350		return D;
6351	}
6352
6353	/* Formula for low altitude is from the Almanac for Computers.
6354	 * It gives the correction for observed altitude, so has
6355	 * to be inverted numerically to get the observed from the true.
6356	 * Accuracy about 0.2' for -20C < T < +40C and 970mb < P < 1050mb.
6357	 */
6358
6359	/* Start iteration assuming correction = 0
6360	 */
6361	y = alt;
6362	D = 0.0;
6363	/* Invert Almanac for Computers formula numerically
6364	 */
6365	P = ($const.atpress - 80.0)/930.0;
6366	Q = 4.8e-3 * ($const.attemp - 10.0);
6367	y0 = y;
6368	D0 = D;
6369
6370	for( i=0; i<4; i++ ) {
6371		N = y + (7.31/(y+4.4));
6372		N = 1.0/Math.tan ($const.DTR * N);
6373		D = N*P/(60.0 + Q * (N + 39.0));
6374		N = y - y0;
6375		y0 = D - D0 - N; /* denominator of derivative */
6376
6377		if( (N != 0.0) && (y0 != 0.0) ) {
6378		/* Newton iteration with numerically estimated derivative */
6379			N = y - N*(alt + D - y)/y0;
6380		} else {
6381		/* Can't do it on first pass */
6382			N = alt + D;
6383		}
6384
6385		y0 = y;
6386		D0 = D;
6387		y = N;
6388	}
6389	return D;
6390};
6391
6392$ns.siderial = {};
6393
6394$ns.siderial.calc = function (date, tlong) {
6395	var jd0; // double    /* Julian day at midnight Universal Time */
6396	var secs; // double  /* Time of day, UT seconds since UT midnight */
6397	var eqeq,gmst2, gmst, jd, T0, msday; // double
6398var SIDT_LTERM_T0 = 2396758.5;  /* 1 Jan 1850  */
6399var SIDT_LTERM_T1 = 2469807.5;  /* 1 Jan 2050  */
6400var SIDT_LTERM_OFS0 = (0.000378172 / 15.0);
6401var SIDT_LTERM_OFS1 = (0.001385646 / 3.0);
6402
6403    var jdrel = (date.julian - ($moshier.delta.calc(date)/864.0)) - $const.j2000;
6404    var tt = (date.julian  - $const.j2000) / 36525.0;
6405      //gmst = sidtime_long_term(tjd, eps, nut);
6406	/*long il;*/
6407	jd = date.universal; // UT
6408	jd0 = Math.floor(jd);
6409	secs = date.julian - jd0; // UT
6410	if( secs < 0.5 ) {
6411		jd0 -= 0.5;
6412		secs += 0.5;
6413	} else {
6414		jd0 += 0.5;
6415		secs -= 0.5;
6416	}
6417	secs *= 86400.0;
6418
6419
6420
6421
6422
6423	/* Julian centuries from standard epoch J2000.0 */
6424	/* T = (jd - J2000)/36525.0; */
6425	/* Same but at 0h Universal Time of date */
6426	T0 = (jd0 - $const.j2000)/36525.0;
6427
6428	/* The equation of the equinoxes is the nutation in longitude
6429	 * times the cosine of the obliquity of the ecliptic.
6430	 * We already have routines for these.
6431	 */
6432	$moshier.nutation2.calclo(date);
6433	$moshier.epsilon.calc (date);
6434	/* nutl is in radians; convert to seconds of time
6435	 * at 240 seconds per degree
6436	 */
6437
6438
6439	
6440	eqeq = 240.0 * $const.RTD*$moshier.nutation2.nutl* $moshier.epsilon.coseps;
6441	/* Greenwich Mean Sidereal Time at 0h UT of date */
6442	/* Corrections to Williams (1994) introduced in DE403.  */
6443	gmst = (((-2.0e-6*T0 - 3.e-7)*T0 + 9.27701e-2)*T0 + 8640184.7942063)*T0
6444		+ 24110.54841;
6445	msday = (((-(4.0 * 2.0e-6)*T0 - (3.0 * 3.e-7))*T0 + (2.0 * 9.27701e-2))*T0
6446		+ 8640184.7942063)/(86400.0*36525.0) + 1.0;
6447
6448	/* Local apparent sidereal time at given UT */
6449	gmst = gmst + msday*secs + eqeq /**+ 240.0*parseFloat(tlong)*/;
6450	/* Sidereal seconds modulo 1 sidereal day */
6451	gmst = gmst - 86400.0 * Math.floor( gmst/86400.0 );
6452	/*
6453	 * il = gmst/86400.0;
6454	 * gmst = gmst - 86400.0 * il;
6455	 * if( gmst < 0.0 )
6456	 *	gmst += 86400.0;
6457	 */
6458    var gmst1 =  ((0.7790572732640 + jdrel*1.00273781191135448)*360.0);
6459    gmst =(gmst1) % 360.0; if ( gmst < 0 ) { gmst += 360.0; }
6460var a1= -0.000029956 + tt * -0.0000000368;
6461var a2 = -0.00000044 + tt*a1;
6462var a3 = 1.3915817 + tt* a2;
6463var a4 = 4612.156534 +  tt*a3;
6464var a5 = 0.014506 + tt * a4;
6465 gmst += a5/3600.0
6466//    gmst += (0.014506 + tt * (4612.156534 +  tt * (1.3915817 + tt * (-0.00000044 + tt * (-0.000029956 + tt * -0.0000000368))))) / 3600.0;
6467if (SIDT_LTERM_T0 > date.julian) { gmst -= SIDT_LTERM_OFS0; } 
6468else if (SIDT_LTERM_T1 < date.julian) { gmst -= SIDT_LTERM_OFS1; } 
6469    gmst = (gmst / 15.0) * 3600.0 ;
6470  gmst = gmst + eqeq ;
6471  /* Sidereal seconds modulo 1 sidereal day */
6472  gmst = gmst - 86400.0 * Math.floor( gmst/86400.0 );
6473  /* return in hours */
6474  gmst = gmst/3600.0;
6475	return gmst;	/* Julian day at given UT */
6476};
6477
6478$ns.star = {};
6479
6480
6481function swi_coortrf(xpo,xpn, eps) { 
6482  var sineps, coseps;
6483  var x = [];
6484  sineps = Math.sin(eps);
6485  coseps = Math.cos(eps);
6486  x[0] = xpo[0];
6487  x[1] = xpo[1] * coseps + xpo[2] * sineps;
6488  x[2] = -xpo[1] * sineps + xpo[2] * coseps;
6489  xpn[0] = x[0];
6490  xpn[1] = x[1]; 
6491  xpn[2] = x[2];
6492return;
6493}
6494
6495function swi_coortrf2(xpo,xpn, sineps, coseps) {
6496  var x= [];
6497  x[0] = xpo[0];
6498  x[1] = xpo[1] * coseps + xpo[2] * sineps;
6499  x[2] = -xpo[1] * sineps + xpo[2] * coseps;
6500  xpn[0] = x[0];
6501  xpn[1] = x[1]; 
6502  xpn[2] = x[2];
6503return;
6504}
6505
6506
6507function swi_cartpol(x, l) {
6508  var rxy;
6509  var ll = [];
6510  if (x[0] == 0 && x[1] == 0 && x[2] == 0) {
6511    l[0] = l[1] = l[2] = 0;
6512    return;
6513  }
6514  rxy = x[0]*x[0] + x[1]*x[1];
6515  ll[2] = Math.sqrt(rxy + x[2]*x[2]);
6516  rxy = Math.sqrt(rxy);
6517  ll[0] = Math.atan2(x[1], x[0]);
6518  if (ll[0] < 0.0) ll[0] += $const.TPI;
6519  ll[1] = Math.atan(x[2] / rxy);
6520  l[0] = ll[0];
6521  l[1] = ll[1];
6522  l[2] = ll[2];
6523}
6524
6525function swi_cartpol_sp(x,l) {
6526  var  xx =[], ll =[];
6527  var rxy, coslon, sinlon, coslat, sinlat;
6528var x3 = [ x[3], x[4], x[5] ];
6529  /* zero position */
6530  if (x[0] == 0 && x[1] == 0 && x[2] == 0) {
6531    l[0] = l[1] = l[3] = l[4] = 0;
6532    l[5] = Math.sqrt(x[3]*x[3] + x[4]*x[4] + x[5]*x[5]);
6533    swi_cartpol(x3, l);
6534    l[2] = 0;
6535    return;
6536  }
6537  /* zero speed */
6538  if (x[3] == 0 && x[4] == 0 && x[5] == 0) {
6539    l[3] = l[4] = l[5] = 0;
6540    swi_cartpol(x, l);
6541    return;
6542  }
6543  /* position */
6544  rxy = x[0]*x[0] + x[1]*x[1];
6545  ll[2] = Math.sqrt(rxy + x[2]*x[2]);
6546  rxy = Math.sqrt(rxy);
6547  ll[0] = Math.atan2(x[1], x[0]);
6548  if (ll[0] < 0.0) ll[0] += $const.TPI;
6549  ll[1] = Math.atan(x[2] / rxy);
6550  coslon = x[0] / rxy; 		/* cos(l[0]); */
6551  sinlon = x[1] / rxy; 		/* sin(l[0]); */
6552  coslat = rxy / ll[2];  	/* cos(l[1]); */
6553  sinlat = x[2] / ll[2];	/* sin(ll[1]); */
6554  xx[3] = x[3] * coslon + x[4] * sinlon;
6555  xx[4] = -x[3] * sinlon + x[4] * coslon;
6556  l[3] = xx[4] / rxy;  		/* speed in longitude */
6557  xx[4] = -sinlat * xx[3] + coslat * x[5];
6558  xx[5] =  coslat * xx[3] + sinlat * x[5];
6559  l[4] = xx[4] / ll[2];  	/* speed in latitude */
6560  l[5] = xx[5];  		/* speed in radius */
6561  l[0] = ll[0];			/* return position */
6562  l[1] = ll[1];
6563  l[2] = ll[2];
6564return;
6565}
6566
6567
6568/* conversion from polar (l[3]) to cartesian coordinates (x[3]).
6569 * x = l is allowed.
6570 */
6571function swi_polcart(l,x) 
6572{
6573  var xx = [];
6574  var cosl1;
6575  cosl1 = Math.cos(l[1]);
6576  xx[0] = l[2] * cosl1 * Math.cos(l[0]);
6577  xx[1] = l[2] * cosl1 * Math.sin(l[0]);
6578  xx[2] = l[2] * Math.sin(l[1]);
6579  x[0] = xx[0];
6580  x[1] = xx[1];
6581  x[2] = xx[2];
6582}
6583
6584function swi_polcart_sp(l,x)
6585{
6586  var sinlon, coslon, sinlat, coslat;
6587  var  xx = [], rxy, rxyz;
6588  /* zero speed */
6589  if (l[3] == 0 && l[4] == 0 && l[5] == 0) {
6590    x[3] = x[4] = x[5] = 0;
6591    swi_polcart(l, x);
6592    return;
6593  }
6594  /* position */
6595  coslon = Math.cos(l[0]);
6596  sinlon = Math.sin(l[0]);
6597  coslat = Math.cos(l[1]);
6598  sinlat = Math.sin(l[1]);
6599  xx[0] = l[2] * coslat * coslon;
6600  xx[1] = l[2] * coslat * sinlon;
6601  xx[2] = l[2] * sinlat;
6602  /* speed; explanation s. swi_cartpol_sp(), same method the other way round*/
6603  rxyz = l[2];
6604  rxy = Math.sqrt(xx[0] * xx[0] + xx[1] * xx[1]);
6605  xx[5] = l[5];
6606  xx[4] = l[4] * rxyz;
6607  x[5] = sinlat * xx[5] + coslat * xx[4];	/* speed z */
6608  xx[3] = coslat * xx[5] - sinlat * xx[4];
6609  xx[4] = l[3] * rxy;
6610  x[3] = coslon * xx[3] - sinlon * xx[4];	/* speed x */
6611  x[4] = sinlon * xx[3] + coslon * xx[4];	/* speed y */
6612  x[0] = xx[0];					/* return position */
6613  x[1] = xx[1];
6614  x[2] = xx[2];
6615}
6616
6617
6618$ns.star.calc = function (body) {
6619	if (!body.isPrepared) {
6620		this.prepare (body);
6621		body.isPrepared = true;
6622	}
6623	this.reduce (body);
6624};
6625
6626$ns.star.reduce = function (body) {
6627	var p = [0, 0, 0], q = [], e = [], m = [], temp = [], polar = []; // double
6628	var T, vpi, epoch; // double
6629	var cosdec, sindec, cosra, sinra, rapm, depm, radv, parall; // double
6630	var i; // int
6631
6632	/* Convert from RA and Dec to equatorial rectangular direction
6633	 */
6634z = body.parallax/1000;
6635if( z > 1.0 ) {
6636	body.parallax = 1 / z / 3600;
6637} else {
6638	body.parallax /= 3600;	/* parsecs -> radians */
6639}
6640body.velocity *= 21.095;
6641radv = body.velocity;
6642parall = body.parallax*$const.DTR / 1000;
6643
6644
6645
6646rapm = $const.DTR*body.raMotion / 10 / 3600;
6647depm = $const.DTR*body.decMotion / 10 / 3600;
6648rapm /= Math.cos(body.dec);
6649
6650
6651
6652
6653// loop:
6654//do {
6655		cosdec = Math.cos( body.dec );
6656		sindec = Math.sin( body.dec );
6657		cosra = Math.cos( body.ra );
6658		sinra = Math.sin( body.ra );
6659		q[0] = cosra * cosdec;
6660		q[1] = sinra * cosdec;
6661		q[2] = sindec;
6662
6663var rapmcosdec = rapm*cosdec;
6664var depmsindec = depm*sindec;
6665
6666		/* space motion */
6667		vpi = radv*parall;
6668		m[0] = (vpi*q[0]) - (rapmcosdec*sinra + depmsindec*cosra) ;
6669
6670		m[1] = ((vpi*q[1]) + (rapmcosdec*cosra)) - (depmsindec*sinra);
6671
6672		m[2] = (depm*cosdec) + (vpi*sindec);
6673
6674		epoch = body.epoch;
6675
6676		/* Convert FK4 to FK5 catalogue */
6677//		if( epoch == $const.b1950 ) {
6678//			$moshier.fk4fk5.calc ( q, m, body);
6679			//goto loop;
6680//		}
6681//} while ( epoch == $const.b1950 ) ;
6682
6683m[0] /= 36525.0;
6684m[1] /= 36525.0;
6685m[2] /= 36525.0;
6686	for( i=0; i<3; i++ ) {
6687		e[i] = $moshier.body.earth.position.rect[i];
6688	}
6689
6690	/* precess the earth to the star epoch */
6691	$moshier.precess.calc ( e, {julian: epoch}, -1 );
6692
6693	/* Correct for proper motion and parallax
6694	 */
6695	T = ($moshier.body.earth.position.date.julian - epoch);
6696
6697$moshier.vearth.calc ($moshier.body.earth.position.date);
6698
6699	for( i=0; i<3; i++ ) {
6700		p[i] =q[i] + ( T * m[i] ) - ( parall * e[i] ) ;
6701		m[i] = m[i] - (parall* $moshier.vearth.vearth [i]);
6702
6703	}
6704
6705	for( i=0; i<3; i++ ) {
6706p[i] *= 10000;
6707m[i] *= 10000;
6708
6709}
6710	/* precess the star to J2000 */
6711	$moshier.precess.calc (p, 	{julian: epoch}, 1 );
6712	/* reset the earth to J2000 */
6713	for( i=0; i<3; i++ ) {
6714		e[i] = $moshier.body.earth.position.rect [i];
6715	}
6716
6717	/* Find Euclidean vectors between earth, object, and the sun
6718	 * angles( p, q, e );
6719	 */
6720	$util.angles ( p, p, e );
6721
6722
6723	/* Find unit vector from earth in direction of object
6724	 */
6725	for( i=0; i<3; i++ ) {
6726		p[i] /= $const.EO;
6727		temp[i] = p[i];
6728	}
6729
6730
6731	body.position = {};
6732	body.position.approxVisualMagnitude = body.magnitude;
6733
6734	/* Report astrometric position
6735	 */
6736	body.position.astrimetricJ2000 = $util.showrd ( p, polar );
6737
6738	/* Also in 1950 coordinates
6739	 */
6740//	$moshier.precess.calc ( temp, {julian: $const.b1950}, -1 );
6741
6742//	body.position.astrimetricB1950 = $util.showrd (temp, polar);
6743
6744
6745
6746	/* For equinox of date: */
6747	for( i=0; i<3; i++ ) {
6748		temp[i] = p[i];
6749	}
6750
6751	$moshier.precess.calc ( temp, $moshier.body.earth.position.date, -1 );
6752	body.position.astrimetricDate = $util.showrd (temp, polar);
6753
6754	/* Correct position for light deflection
6755	 * relativity( p, q, e );
6756	 */
6757	body.position.deflectioon = $moshier.deflectioon.calc ( p, p, e ); // relativity
6758	body.position.deflectioon = $moshier.deflectioon.calc ( m, m, e ); // relativity
6759
6760
6761
6762	/* Correct for annual aberration
6763	 */
6764	body.position.aberration = $moshier.aberration.calc ( p );
6765
6766
6767	/* precess the star to J2000 */
6768	$moshier.precess.calc (p, 	{julian: epoch}, 1 );
6769	$moshier.precess.calc (m, 	{julian: epoch}, 1 );
6770
6771	/* Precession of the equinox and ecliptic
6772	 * from J2000.0 to ephemeris date
6773	 */
6774	$moshier.precess.calc ( p, $moshier.body.earth.position.date, -1 );
6775
6776
6777
6778  
6779  $moshier.precess.calc(m, $moshier.body.earth.position.date, -1); 
6780
6781var xxx = [ p[0], p[1], p[2], 0, 0, 0 ];
6782var yyy = [ 0,0,0,0,0,0 ];
6783
6784  swi_coortrf2(xxx,yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6785xxx = [ yyy[0], yyy[1], yyy[2], 0,0,0];
6786var zzz = [ m[0], m[1], m[2], 0,0,0 ];
6787  swi_coortrf2(zzz, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6788
6789
6790zzz = [ xxx[0], xxx[1], xxx[2], yyy[3], yyy[4], yyy[5] ];
6791
6792xxx = [ xxx[0], xxx[1], xxx[2], zzz[3], zzz[4], zzz[5] ];
6793
6794  swi_cartpol_sp(xxx,yyy);
6795//    yyy[3] += (50.290966 + 0.0222226 * (T/36525.0)) / 3600 / 365.25 * $const.DTR * -1;
6796			/* formula from Montenbruck, German 1994, p. 18 */
6797var dpre = $moshier.epsilon.swi_ldp_peps($moshier.body.earth.position.date.julian,1);
6798var dpre2 = $moshier.epsilon.swi_ldp_peps($moshier.body.earth.position.date.julian+1,1);
6799
6800yyy[3] += dpre2 - dpre;
6801
6802xxx=[ yyy[0], yyy[1], yyy[2], yyy[3], yyy[4], yyy[5]];
6803  swi_polcart_sp(xxx, yyy);
6804
6805	$moshier.epsilon.calc ( $moshier.body.earth.position.date );
6806
6807xxx=[ yyy[0], yyy[1], yyy[2], yyy[3], yyy[4], yyy[5]];
6808  swi_coortrf2(xxx, yyy, -$moshier.epsilon.sineps, $moshier.epsilon.coseps);
6809p = [yyy[0], yyy[1], yyy[2],0,0,0 ];
6810zzz = [ xxx[3], xxx[4], xxx[5], 0,0,0 ];
6811  swi_coortrf2(zzz, yyy, -$moshier.epsilon.sineps, $moshier.epsilon.coseps);
6812
6813m= [yyy[0], yyy[1], yyy[2], 0 ,0 ,0];
6814
6815	/* Ajust for nutation
6816	 * at current ecliptic.
6817	 */
6818	$moshier.nutation.calc ( $moshier.body.earth.position.date, p );
6819
6820	$moshier.nutation.calclo($moshier.body.earth.position.date);
6821$moshier.nutation2.calclo($moshier.body.earth.position.date);
6822
6823
6824
6825xxx = [ p[0], p[1], p[2], 0, 0, 0 ];
6826
6827swi_coortrf2(xxx, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6828
6829xxx[0] = yyy[0];xxx[1] = yyy[1];xxx[2] = yyy[2];
6830
6831
6832zzz = [ m[0], m[1], m[2], 0,0,0 ];
6833swi_coortrf2(zzz, yyy, $moshier.epsilon.sineps, $moshier.epsilon.coseps);
6834
6835zzz = [ yyy[0], yyy[1], yyy[2], 0, 0, 0 ];
6836
6837swi_coortrf2(xxx, yyy, Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
6838xxx[0] = yyy[0];xxx[1] = yyy[1];xxx[2] = yyy[2];
6839
6840
6841swi_coortrf2(zzz, yyy, Math.sin($moshier.nutation2.nuto), Math.cos($moshier.nutation2.nuto));
6842
6843xxx[3] = yyy[0]; xxx[4] =yyy[1]; xxx[5] = yyy[2];
6844
6845
6846swi_cartpol_sp(xxx, yyy);
6847
6848
6849	// prepare for display
6850	body.position.apparentLongitude = yyy[0];
6851
6852
6853	var dmsLongitude = $util.dms (body.position.apparentLongitude);
6854
6855	body.position.apparentLongitudeString =
6856		dmsLongitude.degree + '\u00B0' +
6857		dmsLongitude.minutes + '\'' +
6858		Math.floor (dmsLongitude.seconds) + '"'
6859	;
6860
6861	body.position.apparentLongitude30String =
6862		$util.mod30 (dmsLongitude.degree) + '\u00B0' +
6863		dmsLongitude.minutes + '\'' +
6864		Math.floor (dmsLongitude.seconds) + '"'
6865	;
6866
6867	body.position.geocentricDistance = 7777;
6868
6869	/* Go do topocentric reductions.
6870	 */
6871	$const.dradt = 0.0;
6872	$const.ddecdt = 0.0;
6873	polar [2] = 1.0e38; /* make it ignore diurnal parallax */
6874
6875	body.position.altaz = $moshier.altaz.calc ( polar, $moshier.body.earth.position.date );
6876};
6877
6878$ns.star.prepare = function (body) {
6879	var sign; // int
6880	var s; // char array
6881	var x, z; // double
6882	var p; // char array
6883	var i; // int
6884
6885	/* Read in the ASCII string data and name of the object
6886	 */
6887//	sscanf( s, "%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %s",
6888//		&body->epoch, &rh, &rm, &rs, &dd, &dm, &ds,
6889//	&body->
6889mura, &body->mudec, &body->v, &body->px, &body->mag, &body->obname[0] );
6890
6891	x = body.epoch;
6892	if( x == 2000.0 ) {
6893		x = $const.j2000;
6894	} else if( x == 1950.0 ) {
6895		x = $const.b1950;
6896	} else if( x == 1900.0 ) {
6897		x = $const.j1900;
6898	} else {
6899		x = $const.j2000  +  365.25 * (x - 2000.0);
6900	}
6901	body.epoch = x;
6902
6903	/* read the right ascension */
6904	if (!body.ra) {
6905		body.ra = 2.0 * Math.PI * (3600.0*body.hmsRa.hours + 60.0*body.hmsRa.minutes + body.hmsRa.seconds)/86400.0;
6906	}
6907
6908	/* read the declination */
6909	if (!body.dec) {
6910		sign = 1;
6911
6912		/* the '-' sign may appaer at any part of hmsDec */
6913		if ( (body.hmsDec.hours < 0.0) || (body.hmsDec.minutes < 0.0) || (body.hmsDec.seconds < 0.0) ) {
6914			sign = -1;
6915		}
6916		z = (3600.0*Math.abs(body.hmsDec.hours) + 60.0*Math.abs(body.hmsDec.minutes) + Math.abs(body.hmsDec.seconds))/$const.RTS;
6917		if( sign < 0 ) {
6918			z = -z;
6919		}
6920		body.dec = z;
6921	}
6922
6923//	body.raMotion *= 15.0/$const.RTS;	/* s/century -> "/century -> rad/century */
6924//	body.decMotion /= $const.RTS;
6925};
6926
6927$ns.transit = {
6928	/* Earth radii per au */
6929	DISFAC: 2.3454780e4,
6930
6931	/* cosine of 90 degrees 50 minutes: */
6932	COSSUN: -0.014543897651582657,
6933	/* cosine of 90 degrees 34 minutes: */
6934	COSZEN: -9.8900378587411476e-3,
6935
6936	/* Returned transit, rise, and set times in radians (2 pi = 1 day) */
6937	r_trnsit: 0.0,
6938	r_rise: 0.0,
6939	r_set: 0.0,
6940	elevation_threshold: 0.0,
6941	semidiameter: 0.0,
6942	f_trnsit: 0, // int
6943	southern_hemisphere: 0, // int
6944
6945	/* Julian dates of rise, transet and set times.  */
6946	t_rise: 0.0,
6947	t_trnsit: 0.0,
6948	elevation_trnsit: 0.0,
6949	t_set: 0.0,
6950
6951	STEP_SCALE: 0.5
6952};
6953
6954/* Calculate time of transit
6955 * assuming RA and Dec change uniformly with time
6956 */
6957$ns.transit.calc = function (date, lha, dec, result) {
6958	var x, y, z, N, D; // double
6959	var lhay, cosdec, sindec, coslat, sinlat; // double
6960
6961	result = result || {};
6962
6963	this.f_trnsit = 0;
6964	/* Initialize to no-event flag value. */
6965	this.r_rise = -10.0;
6966	this.r_set = -10.0;
6967	/* observer's geodetic latitude, in radians */
6968	x = $const.glat * $const.DTR;
6969	coslat = Math.cos(x);
6970	sinlat = Math.sin(x);
6971
6972	cosdec = Math.cos(dec);
6973	sindec = Math.sin(dec);
6974
6975	if (sinlat < 0) {
6976		this.southern_hemisphere = 1;
6977	} else {
6978		this.southern_hemisphere = 0;
6979	}
6980
6981	/* Refer to same start of date as iter_trnsit,
6982	 so r_trnsit means the same thing in both programs.  */
6983	x = Math.floor(date.universal - 0.5) + 0.5; // UT
6984	x = (date.universal - x) * $const.TPI; // UT
6985	/* adjust local hour angle */
6986	y = lha;
6987	/* printf ("%.7f,", lha); */
6988	while( y < -Math.PI ) {
6989		y += $const.TPI;
6990	}
6991	while( y > Math.PI ) {
6992		y -= $const.TPI;
6993	}
6994	lhay = y;
6995	y =  y/( -$const.dradt/$const.TPI + 1.00273790934);
6996	this.r_trnsit = x - y;
6997	/* printf ("rt %.7f ", r_trnsit); */
6998	/* Ordinarily never print here.  */
6999	result.approxLocalMeridian = $util.hms (this.r_trnsit);
7000	result.UTdate = this.r_trnsit/$const.TPI;
7001	if( !((coslat == 0.0) || (cosdec == 0.0)) ) {
7002		/* The time at which the upper limb of the body meets the
7003		 * horizon depends on the body's angular diameter.
7004		 */
7005		switch( $const.body.key ) {
7006			/* Sun */
7007			case 'sun':
7008				N = this.COSSUN;
7009				this.semidiameter = 0.2666666666666667;
7010				this.elevation_threshold = -0.8333333333333333;
7011				break;
7012
7013			/* Moon, elevation = -34' - semidiameter + parallax
7014			 * semidiameter = 0.272453 * parallax + 0.0799"
7015			 */
7016			case 'moon':
7017				N = 1.0/(this.DISFAC*$const.body.position.polar [2]);
7018				D = Math.asin( N ); /* the parallax */
7019				this.semidiameter = 0.2725076*D + 3.874e-7;
7020				N =  -9.890199094634534e-3 - this.semidiameter + D;
7021				this.semidiameter *= $const.RTD;
7022				this.elevation_threshold = -34.0/60.0 - this.semidiameter;
7023				N = Math.sin(N);
7024				break;
7025
7026			/* Other object */
7027			default:
7028				N = this.COSZEN;
7029				this.semidiameter = 0.0;
7030				this.elevation_threshold = -0.5666666666666666;
7031				break;
7032		}
7033		y = (N - sinlat*sindec)/(coslat*cosdec);
7034
7035		if( (y < 1.0) && (y > -1.0) )
7036		{
7037			this.f_trnsit = 1;
7038			/* Derivative of y with respect to declination
7039			 * times rate of change of declination:
7040			 */
7041			z = -$const.ddecdt*(sinlat + this.COSZEN*sindec);
7042			z /= $const.TPI*coslat*cosdec*cosdec;
7043			/* Derivative of acos(y): */
7044			z /= Math.sqrt( 1.0 - y*y);
7045			y = Math.acos(y);
7046			D = -$const.dradt/$const.TPI + 1.00273790934;
7047			this.r_rise = x - (lhay + y)*(1.0 + z)/D;
7048			this.r_set = x - (lhay - y)*(1.0 - z)/D;
7049			/* Ordinarily never print here.  */
7050
7051			result.dApproxRiseUT = this.r_rise ;
7052			result.dApproxSetUT = this.r_set;
7053			result.approxRiseUT = $util.hms (this.r_rise);
7054			result.approxSetUT = $util.hms (this.r_set);
7055		}
7056	}
7057	return result;
7058};
7059
7060/* Compute estimate of lunar rise and set times for iterative solution.  */
7061$ns.transit.iterator = function (julian, callback) {
7062	var date = {
7063		julian: julian
7064	};
7065
7066	$moshier.toGregorian (date);
7067	$moshier.julian.calc (date);
7068	$moshier.delta.calc (date);
7069
7070	$moshier.kepler (date, $moshier.body.earth);
7071
7072	callback ();
7073};
7074
7075/* Iterative computation of rise, transit, and set times.  */
7076$ns.transit.iterateTransit = function (callback, result) {
7077	//var JDsave, TDTsave, UTsave; // double
7078	var date, date_trnsit, t0, t1; // double
7079	var rise1, set1, trnsit1, loopctr, retry; // double
7080	var isPrtrnsit = false;
7081
7082	result = result || {};
7083
7084	loopctr = 0;
7085	//JDsave = JD;
7086	//TDTsave = TDT;
7087	//UTsave = UT;
7088	retry = 0;
7089	/* Start iteration at time given by the user.  */
7090	t1 = $moshier.body.earth.position.date.universal; // UT
7091
7092	/* Find transit time. */
7093	do {
7094		t0 = t1;
7095		date = Math.floor (t0 - 0.5) + 0.5;
7096		this.iterator (t0, callback);
7097		t1 = date + this.r_trnsit / $const.TPI;
7098		if (++loopctr > 10) {
7099			break;
7100			// goto no_trnsit;
7101		}
7102	} while (Math.abs (t1 - t0) > .0001);
7103
7104	if (!(loopctr > 10)) {
7105		this.t_trnsit = t1;
7106		this.elevation_trnsit = $moshier.altaz.elevation;
7107		trnsit1 = this.r_trnsit;
7108		set1 = this.r_set;
7109		if (this.f_trnsit == 0) {
7110			/* Rise or set time not found.  Apply a search technique to
7111			 check near inferior transit if object is above horizon now.  */
7112			this.t_rise = -1.0;
7113			this.t_set = -1.0;
7114			if ($moshier.altaz.elevation > this.elevation_threshold) {
7115				this.noRiseSet (this.t_trnsit, callback);
7116			}
7117			// goto prtrnsit;
7118		} else {
7119			/* Set current date to be that of the transit just found.  */
7120			date_trnsit = date;
7121			t1 = date + this.r_rise / $const.TPI;
7122			/* Choose rising no later than transit.  */
7123			if (t1 >= this.t_trnsit) {
7124				date -= 1.0;
7125				t1 = date + this.r_rise / $const.TPI;
7126			}
7127			loopctr = 0;
7128			do {
7129				t0 = t1;
7130				this.iterator (t0, callback);
7131				/* Skip out if no event found.  */
7132				if (this.f_trnsit == 0) {
7133					/* Rise or set time not found.  Apply search technique.  */
7134					this.t_rise = -1.0;
7135					this.t_set = -1.0;
7136					this.noRiseSet (this.t_trnsit, callback);
7137					isPrtrnsit = true;
7138					// goto prtrnsit;
7139				} else {
7140					if (++loopctr > 10) {
7141						// Rise time did not converge
7142						this.f_trnsit = 0;
7143						isPrtrnsit = true;
7144						// goto prtrnsit;
7145					} else {
7146						t1 = date + this.r_rise / $const.TPI;
7147						if (t1 > this.t_trnsit) {
7148							date -= 1;
7149							t1 = date + this.r_rise / $const.TPI;
7150						}
7151					}
7152				}
7153			} while (Math.abs (t1 - t0) > .0001);
7154
7155			if (!isPrtrnsit) {
7156				isPrtrnsit = false;
7157				rise1 = this.r_rise;
7158				this.t_rise = t1;
7159
7160				/* Set current date to be that of the transit.  */
7161				date = date_trnsit;
7162				this.r_set = set1;
7163				/* Choose setting no earlier than transit.  */
7164				t1 = date + this.r_set / $const.TPI;
7165				if (t1 <= this.t_trnsit) {
7166					date += 1.0;
7167					t1 = date + this.r_set / $const.TPI;
7168				}
7169				loopctr = 0;
7170				do {
7171					t0 = t1;
7172					this.iterator (t0, callback);
7173					if (this.f_trnsit == 0) {
7174						/* Rise or set time not found.  Apply search technique.  */
7175						this.t_rise = -1.0;
7176						this.t_set = -1.0;
7177						this.noRiseSet (this.t_trnsit, callback);
7178						isPrtrnsit = true;
7179						//goto prtrnsit;
7180					} else {
7181						if (++loopctr > 10) {
7182							// Set time did not converge
7183							this.f_trnsit = 0;
7184							isPrtrnsit = true;
7185							//goto prtrnsit;
7186						} else {
7187							t1 = date + this.r_set / $const.TPI;
7188							if (t1 < this.t_trnsit) {
7189								date += 1.0;
7190								t1 = date + this.r_set / $const.TPI;
7191							}
7192						}
7193					}
7194				} while (fabs(t1 - t0) > .0001);
7195
7196				if (!isPrtrnsit) {
7197					this.t_set = t1;
7198					this.r_trnsit = trnsit1;
7199					this.r_rise = rise1;
7200				}
7201			}
7202		}
7203// prtrnsit:
7204		result.localMeridianTransit = $moshier.julian.toGregorian ({julian: this.t_trnsit});
7205		if (this.t_rise != -1.0) {
7206			result.riseDate = $moshier.julian.toGregorian ({julian: this.t_rise});
7207		}
7208		if (this.t_set != -1.0) {
7209			result.setDate = $moshier.julian.toGregorian ({julian: this.t_set});
7210			if (this.t_rise != -1.0) {
7211				t0 = this.t_set - this.t_rise;
7212				if ((t0 > 0.0) && (t0 < 1.0)) {
7213					result.visibleHaours = 24.0 * t0;
7214				}
7215			}
7216		}
7217
7218		if (
7219			(Math.abs($moshier.body.earth.position.date.julian - this.t_rise) > 0.5) &&
7220			(Math.abs($moshier.body.earth.position.date.julian - this.t_trnsit) > 0.5) &&
7221			(Math.abs($moshier.body.earth.position.date.julian - this.t_set) > 0.5)
7222		) {
7223			// wrong event date
7224			result.wrongEventDate = true;
7225		}
7226	}
7227// no_trnsit:
7228	//JD = JDsave;
7229	//TDT = TDTsave;
7230	//UT = UTsave;
7231	/* Reset to original input date entry.  */
7232	// update();
7233	//prtflg = prtsave;
7234	this.f_trnsit = 1;
7235	return result;
7236};
7237
7238/* If the initial approximation fails to locate a rise or set time,
7239 this function steps between the transit time and the previous
7240 or next inferior transits to find an event more reliably.  */
7241$ns.transit.noRiseSet = function (t0, callback) {
7242	var t_trnsit0 = this.t_trnsit; // double
7243	var el_trnsit0 = this.elevation_trnsit; // double
7244	var t, e; // double
7245	var t_above, el_above, t_below, el_below; // double
7246
7247	/* Step time toward previous inferior transit to find
7248	 whether a rise event was missed.  The step size is a function
7249	 of the azimuth and decreases near the transit time.  */
7250	t_above = t_trnsit0;
7251	el_above = el_trnsit0;
7252	t_below = -1.0;
7253	el_below = el_above;
7254	t = t_trnsit0 - 0.25;
7255	e = 1.0;
7256	while (e > 0.005) {
7257		this.iterator (t, callback);
7258		if ($moshier.altaz.elevation > this.elevation_threshold) {
7259			/* Object still above horizon.  */
7260			t_above = t;
7261			el_above = $moshier.altaz.elevation;
7262		} else {
7263			/* Object is below horizon.  Rise event is bracketed.
7264			 Proceed to interval halving search.  */
7265			t_below = t;
7266			el_below = $moshier.altaz.elevation;
7267			break; // goto search_rise;
7268		}
7269		/* Step time by an amount proportional to the azimuth deviation.  */
7270		e = azimuth/360.0;
7271		if (azimuth < 180.0)
7272		{
7273			if (this.southern_hemisphere == 0) {
7274				t -= this.STEP_SCALE * e;
7275			} else {
7276				t += this.STEP_SCALE * e;
7277			}
7278		} else {
7279			e = 1.0 - e;
7280			if (this.southern_hemisphere == 0) {
7281				t += this.STEP_SCALE * e;
7282			} else {
7283				t -= this.STEP_SCALE * e;
7284			}
7285		}
7286	}
7287
7288	/* No rise event detected.  */
7289	if ($moshier.altaz.elevation > this.elevation_threshold) {
7290		/* printf ("Previous inferior transit is above horizon.\n"); */
7291		this.t_rise = -1.0;
7292		// goto next_midnight;
7293	} else {
7294	/* Find missed rise time. */
7295// search_rise:
7296		this.t_rise = this.searchHalve (t_below, el_below, t_above, el_above, callback);
7297		this.f_trnsit = 1;
7298	}
7299
7300// next_midnight:
7301	/* Step forward in time toward the next inferior transit.  */
7302	t_above = t_trnsit0;
7303	el_above = el_trnsit0;
7304	t_below = -1.0;
7305	el_below = el_above;
7306	t = t_trnsit0 + 0.25;
7307	e = 1.0;
7308	while (e > 0.005) {
7309		this.iterator (t, callback);
7310		if ($moshier.altaz.elevation > this.elevation_threshold) {
7311			/* Object still above horizon.  */
7312			t_above = t;
7313			el_above = $moshier.altaz.elevation;
7314		} else {
7315			/* Object is below horizon.  Event is bracketed.
7316			 Proceed to interval halving search.  */
7317			t_below = t;
7318			el_below = $moshier.altaz.elevation;
7319			break; // goto search_set;
7320		}
7321		/* Step time by an amount proportional to the azimuth deviation.  */
7322		e = $moshier.altaz.azimuth/360.0;
7323		if ($moshier.altaz.azimuth < 180.0) {
7324			if (this.southern_hemisphere == 0) {
7325				t -= this.STEP_SCALE * e;
7326			} else {
7327				t += this.STEP_SCALE * e;  /* Southern hemisphere observer.  */
7328			}
7329		} else {
7330			e = 1.0 - e;
7331			if (this.southern_hemisphere == 0) {
7332				t += this.STEP_SCALE * e;
7333			} else {
7334				t -= this.STEP_SCALE * e;
7335			}
7336		}
7337	}
7338
7339	if ($moshier.altaz.elevation > this.elevation_threshold) {
7340		/* printf ("Next inferior transit is above horizon.\n"); */
7341		this.t_set = -1.0;
7342		// return 0;
7343	} else {
7344	/* Find missed set time. */
7345// search_set:
7346		this.t_set = search_halve (t, elevation, this.t_trnsit, this.elevation_trnsit, callback);
7347		this.f_trnsit = 1;
7348	}
7349};
7350
7351/* Search rise or set time by simple interval halving
7352 after the event has been bracketed in time.  */
7353$ns.transit.searchHalve = function (t1, y1, t2, y2, callback) {
7354	var e2, e1, em, tm, ym; // double
7355
7356	e2 = y2 - this.elevation_threshold;
7357	e1 = y1 - this.elevation_threshold;
7358	tm = 0.5 * (t1 + t2);
7359
7360	while( Math.abs(t2 - t1) > .00001 ) {
7361		/* Evaluate at middle of current interval.  */
7362		tm = 0.5 * (t1 + t2);
7363		this.iterator (tm, callback);
7364		ym = $moshier.altaz.elevation;
7365		em = ym - this.elevation_threshold;
7366		/* Replace the interval boundary whose error has the same sign as em.  */
7367		if( em * e2 > 0 ) {
7368			y2 = ym;
7369			t2 = tm;
7370			e2 = em;
7371		} else {
7372			y1 = ym;
7373			t1 = tm;
7374			e1 = em;
7375		}
7376	}
7377	return tm;
7378};
7379
7380$ns.vearth = {
7381	jvearth: -1.0,
7382	vearth: []
7383};
7384
7385$ns.vearth.calc = function (date) {
7386	var e = [], p = [], t; // double
7387	var i; // int
7388
7389	if( date.julian == this.jvearth ) {
7390		return;
7391	}
7392
7393	this.jvearth = date.julian;
7394
7395	/* calculate heliocentric position of the earth
7396	 * as of a short time ago.
7397	 */
7398	t = 0.0005;
7399	$moshier.kepler.calc ({julian: date.julian - t}, $moshier.body.earth, e, p);
7400
7401	for( i=0; i<3; i++ ) {
7402		this.vearth [i] = ($moshier.body.earth.position.rect [i] - e[i])/t;
7403	}
7404};
7405
7406$ns.processor = {};
7407
7408$ns.processor.calc = function (date, body) {
7409	$const.body = body;
7410
7411	$moshier.julian.calc (date);
7412	$moshier.delta.calc (date);
7413
7414	date.universalDate = $moshier.julian.toGregorian ({
7415		julian: date.universal
7416	});
7417
7418	date.universalDateString =
7419		date.universalDate.day + '.' +
7420		date.universalDate.month + '.' +
7421		date.universalDate.year + ' ' +
7422		date.universalDate.hours + ':' +
7423		date.universalDate.minutes + ':' +
7424		(date.universalDate.seconds + date.universalDate.milliseconds / 1000)
7425	;
7426
7427	// First to calculate the erath
7428	$moshier.kepler.calc (date, $moshier.body.earth);
7429
7430	switch (body.key) {
7431		case 'sun':
7432			$moshier.sun.calc ();
7433			break;
7434		case 'moon':
7435			$moshier.moon.calc ();
7436			break;
7437		default:
7438			if (body.raMotion) { // star
7439				$moshier.star.calc (body);
7440			} else { // planet
7441				$moshier.planet.calc (body);
7442			}
7443			break;
7444	}
7445};
7446
7447$ns.processor.ecliptic = function (date, observer, body) {
7448	this.calc (date, observer);
7449	this.calc (date, body);
7450
7451	//this.reduce (observer, body);
7452};
7453
7454$ns.processor.init = function () {
7455	$moshier.body.init ();
7456	$moshier.kepler.init ();
7457};
7458
7459$ns.processor.test = function () {
7460	var body, date;
7461
7462	// tested position
7463	$copy ($const, {
7464		tlong: -71.13,
7465		glat: 42.27,
7466		attemp: 12.0,
7467		atpress: 1010.0,
7468		height: 0.0
7469	});
7470
7471	// initialize processor
7472	this.init ();
7473
7474	// test the moon
7475	date = {year: 1986, month: 1, day: 1, hours: 1, minutes: 52, seconds: 0};
7476	body = $moshier.body.moon;
7477	this.calc (date, body);
7478
7479	$assert (date.julian, 2446431.577777778);
7480	$assert (date.delta, 54.87009963821919);
7481
7482	$assert (body.position.nutation.dRA, -0.48342256851185134);
7483	$assert (body.position.nutation.dDec, 5.886353197581648);
7484
7485	$assert (body.position.geometric.longitude, 156.0921880198016);
7486	$assert (body.position.geometric.latitude, 4.422063993387057);
7487	$assert (body.position.geometric.distance, 0.14716616073282882);
7488
7489	$assert (body.position.apparentGeocentric.longitude, 2.7242742960376667);
7490	$assert (body.position.apparentGeocentric.latitude, 0.07717957641849299);
7491	$assert (body.position.apparentGeocentric.distance, 60.24442952894567);
7492
7493	$assert (body.position.dHorizontalParallax, 0.016599807399569004);
7494
7495	$assert (body.position.sunElongation, 124.15076164595345);
7496	$assert (body.position.illuminatedFraction, 0.7815787330095528);
7497
7498	$assert (body.position.apparent.dRA, 2.7844808512258266);
7499	$assert (body.position.apparent.dDec, 0.23362556081599462);
7500
7501	$assert (body.position.altaz.diurnalAberation.ra, 2.7844805966970942);
7502	$assert (body.position.altaz.diurnalAberation.dec, 0.23362530162522877);
7503
7504	$assert (body.position.altaz.diurnalParallax.ra, 2.7967931740378766);
7505	$assert (body.position.altaz.diurnalParallax.dec, 0.2221893682125501);
7506
7507	$assert (body.position.altaz.atmosphericRefraction.deg, 0.6356568799861307);
7508	$assert (body.position.altaz.atmosphericRefraction.dRA, -112.9014532718829);
7509	$assert (body.position.altaz.atmosphericRefraction.dDec, 1585.1382135790564);
7510
7511	$assert (body.position.altaz.topocentric.altitude, -0.2989379770846806);
7512	$assert (body.position.altaz.topocentric.ra, -3.4946025585162133);
7513	$assert (body.position.altaz.topocentric.dec, 0.22987433513647665);
7514	$assert (body.position.altaz.topocentric.azimuth, 71.78002666681668);
7515
7516	// test the sun
7517	date = {year: 1986, month: 1, day: 1, hours: 16, minutes: 47, seconds: 0};
7518	body = $moshier.body.sun;
7519	this.calc (date, body);
7520
7521	$assert (date.julian, 2446432.199305556);
7522	$assert (date.delta, 54.87089572485891);
7523
7524	$assert (body.position.equinoxEclipticLonLat [0], 4.90413951369789);
7525	$assert (body.position.equinoxEclipticLonLat [1], 0.000002184617423267333);
7526	$assert (body.position.equinoxEclipticLonLat [2], 0.9832794756330766);
7527
7528	$assert (body.position.lightTime, 8.177686171897745);
7529
7530	$assert (body.position.aberration.dRA, 1.50327643199855);
7531	$assert (body.position.aberration.dDec, 1.7448150469138453);
7532
7533	$assert (body.position.constellation, 77);
7534
7535	$assert (body.position.apparent.dRA, 4.920756988829355);
7536	$assert (body.position.apparent.dDec, -0.40123417213339135);
7537
7538	$assert (body.position.apparentLongitude, 280.9781321178379);
7539
7540	$assert (body.position.altaz.diurnalParallax.ra, 4.920758543965699);
7541	$assert (body.position.altaz.diurnalParallax.dec, -0.4012734282906353);
7542
7543	$assert (body.position.altaz.atmosphericRefraction.deg, 0.0347669495824713);
7544	$assert (body.position.altaz.atmosphericRefraction.dRA, -0.0654871080210392);
7545	$assert (body.position.altaz.atmosphericRefraction.dDec, 125.15775095794257);
7546
7547	$assert (body.position.altaz.topocentric.altitude, 24.771802544653966);
7548	$assert (body.position.altaz.topocentric.ra, -1.3624315255707726);
7549	$assert (body.position.altaz.topocentric.dec, -0.4006666463910222);
7550	$assert (body.position.altaz.topocentric.azimuth, 179.48488458374226);
7551
7552	// test the sirius
7553	date = {year: 1986, month: 1, day: 1, hours: 0, minutes: 0, seconds: 0};
7554	body = $moshier.body.sirius;
7555	this.calc (date, body);
7556
7557	$assert (date.julian, 2446431.5);
7558	$assert (date.delta, 54.87);
7559
7560	$assert (body.position.apparent.dRA, 1.7651675096112047);
7561	$assert (body.position.apparent.dDec, -0.29137543179606207);
7562
7563	$assert (body.position.astrimetricDate.dRA, 1.7651002655957506);
7564	$assert (body.position.astrimetricDate.dDec, -0.29140596467162816);
7565
7566	$assert (body.position.altaz.topocentric.altitude, 1.7060953673767152);
7567	$assert (body.position.altaz.topocentric.ra, -4.522192086886859);
7568	$assert (body.position.altaz.topocentric.dec, -0.2873401996237649);
7569	$assert (body.position.altaz.topocentric.azimuth, 114.21923743994829);
7570
7571	// test the sirius
7572	date = {year: 1986, month: 1, day: 1, hours: 0, minutes: 0, seconds: 0};
7573	body = $moshier.body.sirius;
7574	this.calc (date, body);
7575
7576	$assert (date.julian, 2446431.5);
7577	$assert (date.delta, 54.87);
7578
7579	$assert (body.position.apparent.dRA, 1.7651675096112047);
7580	$assert (body.position.apparent.dDec, -0.29137543179606207);
7581
7582	$assert (body.position.astrimetricDate.dRA, 1.7651002655957506);
7583	$assert (body.position.astrimetricDate.dDec, -0.29140596467162816);
7584
7585	$assert (body.position.altaz.topocentric.altitude, 1.7060953673767152);
7586	$assert (body.position.altaz.topocentric.ra, -4.522192086886859);
7587	$assert (body.position.altaz.topocentric.dec, -0.2873401996237649);
7588	$assert (body.position.altaz.topocentric.azimuth, 114.21923743994829);
7589};
7590
7591$ns = ephemeris.astronomy.moshier.plan404 = {};
7592
vendor: 16,689 bytes, lines 7593-8254
7593$ns.mercury = {
7594	maxargs: 9,
7595	max_harmonic: [11, 14, 10, 11, 4, 5, 2, 0, 0],
7596	max_power_of_t: 6,
7597	distance: 3.8709830979999998e-01,
7598	timescale: 3652500.0,
7599	trunclvl: 1.0,
7600	lon_tbl: [
7601		35.85255, -163.26379, 53810162857.56026, 908082.18475,
7602		0.05214, -0.07712,
7603		1.07258, 0.04008, 0.49259, 0.00230,
7604		0.02324, 0.05869,
7605		0.24516, 0.22898, -0.06037, 0.13023,
7606		0.00331, -0.03576,
7607		0.06464, 0.00089,
7608		0.03103, 0.05078,
7609		-0.01133, 0.01520,
7610		0.14654, 0.07538, 0.25112, -0.24473,
7611		-0.17928, -0.53366,
7612		-0.06367, 0.20458, -0.42985, 0.14848,
7613		-0.35317, -0.61364,
7614		0.00325, -0.08617, -0.23180, 0.08576,
7615		0.22995, 0.43569,
7616		1.92114, 2.89319, -5.55637, 4.70329,
7617		-4.91411, -5.45521,
7618		0.02607, 0.04468,
7619		-0.05439, 0.13476, -0.07329, -0.00985,
7620		-0.00278, 0.05377,
7621		0.07474, -0.09658, 0.29818, 0.20422,
7622		-0.29074, 0.44962,
7623		-0.15411, -0.04287, 0.29907, -1.02948,
7624		3.62183, 0.84869,
7625		-0.08157, 0.02754,
7626		-0.03610, -0.12909, 0.09195, -0.04424,
7627		-0.08845, 0.09347,
7628		-0.27140, 0.08185,
7629		0.24783, 0.19543, -0.25154, 0.41371,
7630		-0.00046, 0.01524,
7631		0.04127, 0.06663,
7632		0.43023, 0.11790,
7633		0.04427, 0.05329,
7634		0.00411, -0.71074,
7635		-0.07111, -0.09824,
7636		0.01264, -0.02075,
7637		-0.00068, -0.01678,
7638		0.01186, 0.00181,
7639		0.00302, -0.21963,
7640		-0.06412, -0.10155, -0.36856, 0.20240,
7641		0.32282, 0.65133,
7642		-0.07178, -0.01876, 0.13399, -0.39522,
7643		1.28413, 0.33790,
7644		0.05040, -0.01679,
7645		-0.00794, 0.01117,
7646		0.02630, 0.00575,
7647		-0.07113, -0.11414, 0.16422, -0.23060,
7648		0.35198, 0.05409,
7649		1.11486, -0.35833, 0.87313, 1.66304,
7650		-1.28434, 0.72067,
7651		0.01400, 0.00971,
7652		0.21044, -0.87385, 3.20820, 0.67957,
7653		-0.01716, 0.00111,
7654		-0.13776, -0.02650,
7655		-0.06778, 0.00908, 0.00616, -0.04520,
7656		-0.31625, -0.61913,
7657		0.36184, 0.09373,
7658		0.00984, -0.03292,
7659		0.01944, 0.00530,
7660		0.00243, -0.00123,
7661		0.01589, 0.02223,
7662		-0.02992, -0.01086,
7663		4356.04809, -5859.86328, 2918.27323, -4796.67315,
7664		510.24783, -1220.02233, 127.48927, 250.10654,
7665		3250.43013, -904.27614, -5667.40042, -22634.00922,
7666		-82471.79425, 18615.92342,
7667		0.01941, 0.00372,
7668		0.01830, -0.00652,
7669		-0.02548, -0.01157,
7670		0.00635, 0.02343,
7671		-0.00980, 0.00961,
7672		0.12137, 0.10068, 0.16676, -0.07257,
7673		-0.07267, -0.13761, 0.25305, -0.28112,
7674		-0.07974, 0.07866,
7675		-0.41726, 0.49991, -1.55187, -1.14150,
7676		1.54754, -2.35141,
7677		-0.00862, 0.00808,
7678		0.00218, -0.03726,
7679		0.06914, -0.08986,
7680		-0.00501, 2.09577,
7681		-0.01409, -0.01842,
7682		0.04138, 0.05961,
7683		-0.12276, -0.04929,
7684		-0.03963, -0.06080,
7685		-0.27697, -0.09329,
7686		-0.01011, 0.00295,
7687		-0.01374, 0.01328,
7688		-0.00171, 0.25815,
7689		0.01446, 0.00782,
7690		0.17909, -0.04683,
7691		0.03765, -0.04990,
7692		0.00036, 0.00528,
7693		0.05508, -0.01369,
7694		-0.11751, -0.10624, -0.14448, 0.10522,
7695		-0.00884, 0.43006,
7696		0.01162, 0.01659,
7697		-0.00076, 0.10143,
7698		0.55779, 0.05510, 0.12350, -0.34025,
7699		0.01320, 0.92985,
7700		-0.00026, -0.03426,
7701		0.01305, 0.00041,
7702		0.13187, -0.11903,
7703		0.00058, 0.09877,
7704		-33.10230, -41.96782, -268.28908, 174.29259,
7705		731.20089, 1508.07639, 5223.99114, -3008.08849,
7706		-3909.34957, -9646.69156,
7707		0.02988, 0.03182,
7708		0.07149, 0.04513,
7709		-0.02356, -0.01641,
7710		-0.03188, -0.03711, 0.15084, -0.22436,
7711		0.61987, 0.25706,
7712		0.02425, 0.01200,
7713		-0.05543, -0.14435, -0.53398, 0.10997,
7714		0.00465, -0.01893,
7715		0.01260, -0.01314,
7716		0.00650, -0.05499,
7717		-0.06804, 0.01608,
7718		0.02134, 0.04160,
7719		0.00636, 0.01293,
7720		-0.03470, -0.02697,
7721		-0.11323, 0.02409,
7722		-0.02618, 0.00827,
7723		0.01879, 0.16838, 0.08978, 0.01934,
7724		-0.23564, 0.05565,
7725		0.03686, 0.02644,
7726		-0.02471, 0.00558,
7727		-140.22669, -120.40692, -501.88143, 434.05868,
7728		1044.54998, 1162.72084, 1527.78437, -882.37371,
7729		-0.00768, 0.02213,
7730		-0.04090, 0.16718,
7731		-0.05923, -0.12595,
7732		0.01154, -0.00025,
7733		-0.00776, -0.01653,
7734		-0.01213, -0.02773,
7735		0.00344, 0.02180,
7736		-0.02558, -0.05682,
7737		-0.00490, 0.01050,
7738		38.75496, -78.17502, -189.90700, -136.33371,
7739		-249.94062, 319.76423, 205.73478, 272.64549,
7740		-0.01132, -0.01071, -0.04607, -0.00390,
7741		0.02903, -0.02070,
7742		0.01326, -0.00901,
7743		35.38435, 7.45358, 31.08987, -70.52685,
7744		-92.13879, -51.58876, -51.80016, 48.98102,
7745		-0.00124, -0.01159,
7746		0.47335, 13.71886, 23.71637, 5.55804,
7747		10.06850, -25.65292, -11.85300, -10.20802,
7748		-4.72861, 1.27151, -0.47322, 7.46754,
7749		6.99528, 1.79089, 2.05336, -2.90866,
7750		-1.97528, 0.72236, -0.25084, 1.90269,
7751		0.72127, 0.41354,
7752		-0.30286, -0.53125, -0.50883, -0.01200,
7753		-0.08301, 0.18083,
7754		-0.04286, -0.10963, -0.04544, -0.01645,
7755		-0.00013, -0.00986
7756	],
7757	lat_tbl: [
7758		68.33369, 422.77623, -2057.26405, -2522.29068,
7759		-0.00030, -0.00009,
7760		0.02400, -0.06471, 0.02074, -0.00904,
7761		0.00044, 0.00261,
7762		-0.00174, -0.00088, -0.00027, 0.00003,
7763		0.00005, -0.00004,
7764		-0.00036, 0.00200,
7765		0.01432, 0.01199,
7766		0.00006, -0.00004,
7767		0.00236, 0.00803, 0.01235, 0.00406,
7768		-0.03253, 0.00179,
7769		-0.00243, 0.00132, -0.00352, 0.00011,
7770		-0.00146, -0.01154,
7771		0.00824, -0.01195, -0.01829, -0.00465,
7772		0.12540, 0.09997,
7773		0.00400, 0.00288, -0.02848, 0.01094,
7774		-0.02273, -0.07051,
7775		0.01305, 0.01078,
7776		-0.00119, 0.00136, -0.00107, -0.00066,
7777		0.00097, -0.00315,
7778		0.00120, 0.00430, -0.00710, -0.00157,
7779		0.06052, -0.04777,
7780		0.00192, -0.00229, -0.02077, 0.00647,
7781		0.06907, 0.07644,
7782		-0.00717, 0.00451,
7783		0.00052, -0.00262, 0.00345, 0.00039,
7784		-0.00674, 0.00346,
7785		-0.02880, 0.00807,
7786		0.00054, 0.00206, -0.01745, 0.00517,
7787		-0.00044, 0.00049,
7788		0.01749, 0.01230,
7789		0.01703, 0.01563,
7790		0.00934, 0.02372,
7791		0.01610, -0.01136,
7792		0.00186, -0.00503,
7793		0.00082, -0.00673,
7794		0.00170, -0.00539,
7795		0.00042, 0.00037,
7796		0.00415, -0.00430,
7797		0.00258, -0.00914, -0.01761, -0.00251,
7798		0.15909, 0.13276,
7799		0.02436, -0.00791, 0.00491, 0.03890,
7800		-0.02982, 0.05645,
7801		-0.00003, 0.00427,
7802		-0.00363, 0.00221,
7803		0.00077, 0.00130,
7804		0.00131, -0.00071, 0.00796, 0.00453,
7805		0.01186, 0.01631,
7806		0.12949, -0.02546, 0.03613, 0.32854,
7807		-0.43001, 0.01417,
7808		0.00034, 0.00095,
7809		-0.03268, 0.04034, 0.11407, 0.15049,
7810		-0.00079, -0.00052,
7811		-0.04009, 0.00988,
7812		-0.00259, -0.00085, 0.00221, -0.00133,
7813		0.00003, -0.01733,
7814		0.01055, 0.01976,
7815		0.00222, 0.00085,
7816		0.00089, 0.00087,
7817		0.00014, 0.00001,
7818		0.00145, 0.00802,
7819		0.00122, 0.00068,
7820		947.79367, -1654.39690, 542.00864, -1281.09901,
7821		90.02068, -318.36115, -87.67090, 92.91960,
7822		376.98232, -419.10705, 5094.60412, 2476.97098,
7823		-18160.57888, 16010.48165,
7824		0.00621, -0.00128,
7825		0.00186, -0.00153,
7826		-0.00790, 0.00011,
7827		-0.00032, 0.00165,
7828		-0.00277, 0.00539,
7829		0.00552, 0.00682, 0.01086, -0.00978,
7830		-0.02292, -0.01300, 0.02940, -0.04427,
7831		-0.02051, 0.04860,
7832		-0.05020, 0.29089, -0.50763, -0.04900,
7833		0.11177, -0.41357,
7834		-0.00222, 0.00504,
7835		-0.00006, -0.00459,
7836		-0.00175, -0.02691,
7837		0.05921, 0.18938,
7838		-0.00181, -0.00154,
7839		0.00322, 0.00586,
7840		-0.01098, -0.00520,
7841		-0.00861, -0.01342,
7842		-0.02694, -0.00706,
7843		-0.00103, 0.00012,
7844		-0.00284, 0.00797,
7845		0.00743, 0.02523,
7846		0.00872, 0.00096,
7847		0.03155, -0.01644,
7848		0.00414, -0.00583,
7849		0.00029, 0.00066,
7850		0.00935, -0.00619,
7851		-0.02498, -0.01600, -0.03545, 0.07623,
7852		0.01649, 0.06498,
7853		0.00148, 0.00209,
7854		0.00621, 0.02014,
7855		0.17407, -0.05022, -0.03485, -0.17012,
7856		0.06164, 0.20059,
7857		-0.00804, -0.01475,
7858		0.00296, -0.00068,
7859		0.01880, -0.03797,
7860		0.00608, 0.02270,
7861		5.89651, -6.62562, -37.41057, -10.51542,
7862		-47.22373, 95.76862, 494.45951, -5.37252,
7863		-3991.04809, -2886.97750,
7864		0.01232, 0.00487,
7865		0.03163, 0.00561,
7866		-0.01847, -0.00207,
7867		-0.10138, 0.01430, -0.04269, -0.22338,
7868		0.24955, -0.02066,
7869		0.01119, -0.00186,
7870		0.03416, 0.01805, -0.12498, 0.10385,
7871		-0.00210, -0.01011,
7872		0.00346, -0.00682,
7873		-0.00683, -0.02227,
7874		-0.01649, 0.01259,
7875		0.01392, 0.01174,
7876		0.00440, 0.00351,
7877		-0.02871, -0.00375,
7878		-0.03170, 0.02246,
7879		-0.00833, 0.00596,
7880		0.04081, 0.06666, 0.05400, -0.02387,
7881		-0.07852, 0.05781,
7882		0.01881, 0.00324,
7883		-0.00868, 0.00606,
7884		-6.52157, -19.74446, -72.46009, 43.12366,
7885		321.78233, 215.45201, 452.61804, -1025.05619,
7886		0.00119, 0.01169,
7887		0.02239, 0.09003,
7888		-0.05329, -0.03974,
7889		0.00688, -0.00421,
7890		-0.00676, -0.00515,
7891		-0.01171, -0.00952,
7892		0.01337, 0.01270,
7893		-0.02791, -0.02184,
7894		0.00058, 0.00679,
7895		8.42102, -11.87757, -49.07247, -25.34584,
7896		-43.54829, 161.26509, 261.70993, 56.25777,
7897		0.00568, 0.00871, -0.02656, 0.01582,
7898		0.00875, -0.02114,
7899		0.00464, -0.01075,
7900		9.08966, 1.37810, 3.44548, -27.44651,
7901		-59.62749, -0.73611, -0.77613, 65.72607,
7902		-0.00664, -0.00723,
7903		1.04214, 4.78920, 11.67397, -1.84524,
7904		-4.16685, -19.14211, -16.14483, 3.02496,
7905		-1.98140, 1.16261, 1.81526, 4.21224,
7906		5.59020, -2.55741, -1.54151, -3.85817,
7907		-1.08723, 1.23372, 1.12378, 1.51554,
7908		0.88937, -0.57631,
7909		-0.50549, -0.25617, -0.37618, 0.42163,
7910		0.18902, 0.19575,
7911		-0.15402, -0.04062, -0.04017, 0.05717,
7912		-0.01665, -0.00199
7913	],
7914	rad_tbl: [
7915		-8.30490, -11.68232, 86.54880, 4361.05018,
7916		0.00002, -0.00001,
7917		-0.01102, 0.00410, 0.00007, -0.00276,
7918		0.00117, 0.00082,
7919		0.00049, 0.00007, 0.00003, -0.00001,
7920		0.00012, 0.00005,
7921		-0.00186, -0.00534,
7922		-0.03301, 0.01808,
7923		0.00008, 0.00005,
7924		-0.00394, 0.00202, 0.02362, -0.00359,
7925		0.00638, -0.06767,
7926		0.00422, -0.00493, 0.00660, 0.00513,
7927		-0.00417, 0.00708,
7928		0.05849, -0.00213, -0.07647, -0.16162,
7929		-0.30551, 0.13856,
7930		-0.02789, 0.01811, -0.04155, -0.06229,
7931		0.05729, -0.03694,
7932		-0.03087, 0.01610,
7933		-0.00297, -0.00167, 0.00041, -0.00157,
7934		-0.00115, 0.00058,
7935		0.00796, 0.00436, -0.01393, 0.02921,
7936		-0.05902, -0.02363,
7937		0.00459, -0.01512, 0.10038, 0.02964,
7938		-0.08369, 0.34570,
7939		-0.00749, -0.02653,
7940		0.01361, -0.00326, 0.00406, 0.00952,
7941		-0.00594, -0.00829,
7942		-0.02763, -0.09933,
7943		-0.04143, 0.05152, -0.08436, -0.05294,
7944		-0.00329, -0.00016,
7945		-0.04340, 0.02566,
7946		-0.03027, 0.10904,
7947		0.03665, -0.03070,
7948		0.23525, 0.00182,
7949		0.03092, -0.02212,
7950		0.01255, 0.00777,
7951		-0.01025, 0.00042,
7952		-0.00065, 0.00440,
7953		0.08688, 0.00136,
7954		0.05700, -0.03616, -0.11272, -0.20838,
7955		-0.37048, 0.18314,
7956		0.00717, -0.02911, 0.15848, 0.05266,
7957		-0.13451, 0.51639,
7958		0.00688, 0.02029,
7959		0.00596, 0.00423,
7960		-0.00253, 0.01196,
7961		0.05264, -0.03301, 0.10669, 0.07558,
7962		-0.02461, 0.16282,
7963		-0.18481, -0.57118, 0.85303, -0.44876,
7964		0.37090, 0.65915,
7965		-0.00458, 0.00660,
7966		0.41186, 0.09829, -0.31999, 1.51149,
7967		-0.00052, -0.00809,
7968		0.01384, -0.07114,
7969		-0.00435, -0.03237, 0.02162, 0.00294,
7970		0.29742, -0.15430,
7971		-0.04508, 0.17436,
7972		0.01577, 0.00485,
7973		-0.00258, 0.00946,
7974		0.00061, 0.00119,
7975		0.01095, -0.00788,
7976		0.00530, -0.01478,
7977		2885.06380, 2152.76256, 2361.91098, 1442.28586,
7978		602.45147, 251.18991, -121.68155, 71.20167,
7979		404.94753, 1607.37580, 11211.04090, -2905.37340,
7980		-9066.27933, -40747.62807,
7981		-0.00189, 0.00957,
7982		0.00332, 0.00907,
7983		0.00574, -0.01255,
7984		-0.01134, 0.00291,
7985		-0.00666, -0.00615,
7986		-0.04947, 0.06182, 0.03965, 0.08091,
7987		0.06846, -0.03612, 0.13966, 0.12543,
7988		-0.05494, -0.05043,
7989		-0.24454, -0.20507, 0.56201, -0.75997,
7990		1.15728, 0.76203,
7991		-0.00559, -0.00536,
7992		0.01872, 0.00104,
7993		0.03044, 0.02504,
7994		-1.07241, -0.00288,
7995		0.00950, -0.00760,
7996		-0.03211, 0.02261,
7997		0.02678, -0.06868,
7998		0.03008, -0.02062,
7999		0.04997, -0.15164,
8000		-0.00176, -0.00580,
8001		-0.00730, -0.00676,
8002		-0.13906, -0.00089,
8003		-0.00362, 0.00817,
8004		0.02021, 0.07719,
8005		0.02788, 0.02061,
8006		-0.00274, 0.00016,
8007		0.00566, 0.02293,
8008		0.04691, -0.05005, -0.05095, -0.06225,
8009		-0.19770, -0.00456,
8010		-0.00848, 0.00595,
8011		-0.04506, -0.00172,
8012		-0.01960, 0.22971, 0.14459, 0.04362,
8013		-0.40199, 0.00386,
8014		0.01442, -0.00088,
8015		-0.00020, 0.00544,
8016		0.04768, 0.05222,
8017		-0.04069, -0.00003,
8018		15.71084, -12.28846, -66.23443, -109.83758,
8019		-586.31996, 311.09606, 1070.75040, 2094.34080,
8020		3839.04103, -1797.34193,
8021		-0.01216, 0.01244,
8022		-0.01666, 0.02627,
8023		0.00687, -0.01291,
8024		0.00939, -0.01905, 0.09401, 0.05027,
8025		-0.09398, 0.23942,
8026		-0.00379, 0.00834,
8027		0.05632, -0.01907, -0.04654, -0.21243,
8028		0.00255, 0.00179,
8029		0.00540, 0.00497,
8030		0.01427, 0.00243,
8031		-0.00697, -0.02792,
8032		-0.01524, 0.00810,
8033		-0.00461, 0.00238,
8034		0.00899, -0.01515,
8035		-0.01011, -0.04390,
8036		-0.00447, -0.00992,
8037		-0.06110, 0.00975, -0.00261, 0.03415,
8038		-0.02336, -0.08776,
8039		-0.00883, 0.01346,
8040		-0.00229, -0.00895,
8041		42.18049, -48.21316, -148.61588, -171.57236,
8042		-414.27195, 343.09118, 394.59044, 511.79914,
8043		-0.00911, -0.00220,
8044		-0.06315, -0.00988,
8045		0.04357, -0.02389,
8046		0.00004, 0.00232,
8047		0.00581, -0.00317,
8048		0.00948, -0.00497,
8049		-0.00734, 0.00300,
8050		0.01883, -0.01055,
8051		-0.00365, -0.00126,
8052		24.18074, 12.28004, 43.18187, -58.69806,
8053		-102.40566, -79.48349, -74.81060, 89.71332,
8054		0.00241, -0.00135, -0.00136, -0.01617,
8055		0.00818, 0.00873,
8056		0.00368, 0.00383,
8057		-2.25893, 10.18542, 20.73104, 9.07389,
8058		13.73458, -29.10491, -20.62071, -10.63404,
8059		0.00382, -0.00143,
8060		-3.77385, 0.12725, -1.30842, 6.75795,
8061		7.94463, 1.79092, 1.24458, -4.73211,
8062		-0.36978, -1.25710, -2.06373, 0.06194,
8063		-0.00509, 2.08851, 1.07491, 0.04112,
8064		-0.28582, -0.51413, -0.53312, 0.11936,
8065		0.04447, 0.23945,
8066		0.12450, -0.11821, -0.06100, -0.12924,
8067		-0.05193, 0.02219,
8068		0.01977, -0.02933, -0.00771, -0.01077,
8069		0.00109, -0.00273
8070	],
8071	arg_tbl: [
8072		0, 3,
8073		3, 1, 1, -10, 3, 11, 4, 0,
8074		2, 2, 5, -5, 6, 2,
8075		3, 5, 1, -14, 2, 2, 3, 1,
8076		3, 1, 1, -5, 2, 4, 3, 0,
8077		1, 1, 6, 0,
8078		1, 2, 6, 0,
8079		3, 2, 1, -7, 2, 3, 3, 0,
8080		1, 1, 5, 2,
8081		2, 1, 1, -4, 3, 2,
8082		1, 2, 5, 2,
8083		2, 2, 1, -5, 2, 2,
8084		1, 3, 5, 0,
8085		2, 4, 1, -10, 2, 1,
8086		2, 3, 1, -8, 2, 0,
8087		2, 1, 1, -3, 2, 2,
8088		2, 1, 1, -2, 2, 2,
8089		1, 1, 3, 0,
8090		2, 3, 1, -7, 2, 1,
8091		2, 1, 1, -3, 3, 0,
8092		1, 1, 2, 0,
8093		2, 2, 1, -4, 2, 1,
8094		2, 4, 1, -9, 2, 0,
8095		1, 2, 3, 0,
8096		2, 1, 1, -2, 3, 0,
8097		2, 1, 1, -4, 2, 0,
8098		2, 1, 1, -1, 2, 0,
8099		2, 3, 1, -6, 2, 0,
8100		1, 3, 3, 0,
8101		2, 2, 1, -7, 2, 0,
8102		2, 1, 1, -2, 4, 0,
8103		2, 1, 1, -1, 3, 0,
8104		1, 2, 2, 2,
8105		2, 2, 1, -3, 2, 2,
8106		2, 4, 1, -8, 2, 0,
8107		2, 3, 1, -10, 2, 0,
8108		2, 1, 1, -4, 5, 0,
8109		2, 1, 1, -3, 5, 2,
8110		2, 1, 1, -5, 2, 2,
8111		2, 1, 1, -5, 6, 0,
8112		2, 1, 1, -2, 5, 1,
8113		3, 1, 1, -4, 5, 5, 6, 0,
8114		1, 4, 3, 0,
8115		2, 1, 1, -3, 6, 1,
8116		2, 1, 1, -1, 5, 0,
8117		2, 1, 1, -2, 6, 0,
8118		2, 1, 1, -1, 6, 0,
8119		2, 1, 1, -2, 7, 0,
8120		2, 1, 1, -1, 7, 0,
8121		3, 4, 1, -14, 2, 2, 3, 0,
8122		3, 1, 1, 2, 5, -5, 6, 0,
8123		1, 1, 1, 6,
8124		3, 2, 1, -10, 3, 11, 4, 0,
8125		3, 1, 1, -2, 5, 5, 6, 0,
8126		3, 6, 1, -14, 2, 2, 3, 0,
8127		2, 1, 1, 1, 6, 0,
8128		2, 1, 1, 2, 6, 0,
8129		2, 1, 1, 1, 5, 1,
8130		2, 2, 1, -4, 3, 1,
8131		2, 1, 1, 2, 5, 0,
8132		2, 3, 1, -5, 2, 2,
8133		2, 1, 1, 3, 5, 0,
8134		2, 5, 1, -10, 2, 0,
8135		1, 3, 2, 0,
8136		2, 2, 1, -2, 2, 0,
8137		2, 1, 1, 1, 3, 0,
8138		2, 4, 1, -7, 2, 0,
8139		2, 2, 1, -3, 3, 0,
8140		2, 1, 1, 1, 2, 0,
8141		2, 3, 1, -4, 2, 0,
8142		2, 5, 1, -9, 2, 0,
8143		2, 1, 1, 2, 3, 0,
8144		2, 2, 1, -2, 3, 0,
8145		1, 4, 2, 0,
8146		2, 2, 1, -1, 2, 0,
8147		2, 4, 1, -6, 2, 0,
8148		2, 2, 1, -2, 4, 0,
8149		2, 2, 1, -1, 3, 0,
8150		2, 1, 1, 2, 2, 1,
8151		2, 3, 1, -3, 2, 0,
8152		2, 5, 1, -8, 2, 0,
8153		2, 2, 1, -3, 5, 0,
8154		1, 5, 2, 1,
8155		2, 2, 1, -2, 5, 0,
8156		2, 1, 1, 4, 3, 0,
8157		2, 2, 1, -3, 6, 0,
8158		2, 2, 1, -1, 5, 0,
8159		2, 2, 1, -2, 6, 0,
8160		1, 2, 1, 4,
8161		2, 2, 1, 1, 5, 0,
8162		2, 3, 1, -4, 3, 0,
8163		2, 2, 1, 2, 5, 0,
8164		2, 4, 1, -5, 2, 2,
8165		2, 1, 1, 3, 2, 0,
8166		2, 3, 1, -2, 2, 1,
8167		2, 3, 1, -3, 3, 0,
8168		2, 2, 1, 1, 2, 0,
8169		2, 4, 1, -4, 2, 0,
8170		2, 3, 1, -2, 3, 0,
8171		2, 3, 1, -1, 2, 0,
8172		2, 3, 1, -1, 3, 0,
8173		2, 2, 1, 2, 2, 0,
8174		2, 4, 1, -3, 2, 0,
8175		2, 3, 1, -3, 5, 0,
8176		2, 1, 1, 5, 2, 1,
8177		2, 3, 1, -2, 5, 0,
8178		2, 3, 1, -1, 5, 0,
8179		2, 3, 1, -2, 6, 0,
8180		1, 3, 1, 3,
8181		2, 4, 1, -4, 3, 0,
8182		2, 5, 1, -5, 2, 0,
8183		2, 4, 1, -2, 2, 0,
8184		2, 5, 1, -4, 2, 0,
8185		2, 4, 1, -2, 3, 0,
8186		2, 5, 1, -3, 2, 0,
8187		2, 2, 1, 5, 2, 0,
8188		2, 4, 1, -2, 5, 0,
8189		2, 4, 1, -1, 5, 0,
8190		1, 4, 1, 3,
8191		2, 6, 1, -5, 2, 1,
8192		2, 5, 1, -2, 2, 0,
8193		2, 5, 1, -2, 5, 0,
8194		1, 5, 1, 3,
8195		2, 7, 1, -5, 2, 0,
8196		1, 6, 1, 3,
8197		1, 7, 1, 3,
8198		1, 8, 1, 2,
8199		1, 9, 1, 2,
8200		1, 10, 1, 1,
8201		1, 11, 1, 0,
8202		-1
8203	]
8204};
8205
8206$ns.venus = {
8207	maxargs: 9,
8208	max_harmonic: [5, 14, 13, 8, 4, 5, 1, 0, 0],
8209	max_power_of_t: 5,
8210	distance: 7.2332982000000001e-01,
8211	timescale: 3652500.0,
8212	trunclvl: 1.0,
8213	lon_tbl: [
8214		9.08078, 55.42416, 21066413644.98911, 655127.20186,
8215		0.00329, 0.10408,
8216		0.00268, -0.01908,
8217		0.00653, 0.00183,
8218		0.15083, -0.21997,
8219		6.08596, 2.34841, 3.70668, -0.22740,
8220		-2.29376, -1.46741,
8221		-0.03840, 0.01242,
8222		0.00176, 0.00913,
8223		0.00121, -0.01222,
8224		-1.22624, 0.65264, -1.15974, -1.28172,
8225		1.00656, -0.66266,
8226		0.01560, -0.00654, 0.00896, 0.00069,
8227		0.21649, -0.01786,
8228		0.01239, 0.00255,
8229		0.00084, -0.06086,
8230		-0.00041, 0.00887,
8231		0.13453, -0.20013, 0.08234, 0.01575,
8232		0.00658, -0.00214,
8233		0.00254, 0.00857,
8234		-0.01047, -0.00519,
8235		0.63215, -0.40914, 0.34271, -1.53258,
8236		0.00038, -0.01437,
8237		-0.02599, -2.27805, -0.36873, -1.01799,
8238		-0.36798, 1.41356,
8239		-0.08167, 0.01368, 0.20676, 0.06807,
8240		0.02282, -0.04691,
8241		0.30308, -0.20218, 0.24785, 0.27522,
8242		0.00197, -0.00499,
8243		1.43909, -0.46154, 0.93459, 2.99583,
8244		-3.43274, 0.05672,
8245		-0.06586, 0.12467, 0.02505, -0.08433,
8246		0.00743, 0.00174,
8247		-0.04013, 0.17715,
8248		-0.00603, -0.01024,
8249		0.01542, -0.02378,
8250		0.00676, 0.00002,
8251		-0.00168, -4.89487,
8252		0.02393, -0.03064,
8253		0.00090, 0.00977,
8254		0.01223, 0.00381,
vendor: 4,218 bytes, lines 8255-8424
8255		0.28135, -0.09158, 0.18550, 0.58372,
8256		-0.67437, 0.01409,
8257		-0.25404, -0.06863,
8258		0.06763, -0.02939,
8259		-0.00009, -0.04888,
8260		0.01718, -0.00978,
8261		-0.01945, 0.08847,
8262		-0.00135, -11.29920,
8263		0.01689, -0.04756,
8264		0.02075, -0.01667,
8265		0.01397, 0.00443,
8266		-0.28437, 0.07600, 0.17996, -0.44326,
8267		0.29356, 1.41869, -1.58617, 0.03206,
8268		0.00229, -0.00753,
8269		-0.03076, -2.96766,
8270		0.00245, 0.00697,
8271		0.01063, -0.02468,
8272		-0.00351, -0.18179,
8273		-0.01088, 0.00380,
8274		0.00496, 0.02072,
8275		-0.12890, 0.16719, -0.06820, -0.03234,
8276		-60.36135, -11.74485, -11.03752, -3.80145,
8277		-21.33955, -284.54495, -763.43839, 248.50823,
8278		1493.02775, 1288.79621, -2091.10921, -1851.15420,
8279		-0.00922, 0.06233,
8280		0.00004, 0.00785,
8281		0.10363, -0.16770, 0.45497, 0.24051,
8282		-0.28057, 0.61126,
8283		-0.02057, 0.00010,
8284		0.00561, 0.01994,
8285		0.01416, -0.00442,
8286		0.03073, -0.14961,
8287		-0.06272, 0.08301,
8288		0.02040, 7.12824,
8289		-0.00453, -0.01815,
8290		0.00004, -0.00013,
8291		-0.03593, -0.18147, 0.20353, -0.00683,
8292		0.00003, 0.06226,
8293		-0.00443, 0.00257,
8294		0.03194, 0.03254,
8295		0.00282, -0.01401,
8296		0.00422, 1.03169,
8297		-0.00169, -0.00591,
8298		-0.00307, 0.00540,
8299		0.05511, 0.00347,
8300		0.07896, 0.06583,
8301		0.00783, 0.01926,
8302		0.03109, 0.15967,
8303		0.00343, 0.88734,
8304		0.01047, 0.32054,
8305		0.00814, 0.00051,
8306		0.02474, 0.00047,
8307		0.00052, 0.03763,
8308		-57.06618, 20.34614, -45.06541, -115.20465,
8309		136.46887, -84.67046, 92.93308, 160.44644,
8310		-0.00020, -0.00082,
8311		0.02496, 0.00279,
8312		0.00849, 0.00195,
8313		-0.05013, -0.04331,
8314		-0.00136, 0.14491,
8315		-0.00183, -0.00406,
8316		0.01163, 0.00093,
8317		-0.00604, -0.00680,
8318		-0.00036, 0.06861,
8319		-0.00450, -0.00969,
8320		0.00171, 0.00979,
8321		-0.00152, 0.03929,
8322		0.00631, 0.00048,
8323		-0.00709, -0.00864,
8324		1.51002, -0.24657, 1.27338, 2.64699,
8325		-2.40990, -0.57413,
8326		-0.00023, 0.03528,
8327		0.00268, 0.00522,
8328		-0.00010, 0.01933,
8329		-0.00006, 0.01100,
8330		0.06313, -0.09939, 0.08571, 0.03206,
8331		-0.00004, 0.00645
8332	],
8333	lat_tbl: [
8334		-23.91858, 31.44154, 25.93273, -67.68643,
8335		-0.00171, 0.00123,
8336		0.00001, -0.00018,
8337		-0.00005, 0.00018,
8338		-0.00001, 0.00019,
8339		0.00733, 0.00030, -0.00038, 0.00011,
8340		0.00181, 0.00120,
8341		0.00010, 0.00002,
8342		-0.00012, 0.00002,
8343		0.00021, 0.00004,
8344		-0.00403, 0.00101, 0.00342, -0.00328,
8345		0.01564, 0.01212,
8346		0.00011, 0.00010, -0.00002, -0.00004,
8347		-0.00524, 0.00079,
8348		0.00011, 0.00002,
8349		-0.00001, 0.00003,
8350		0.00001, 0.00000,
8351		0.00108, 0.00035, 0.00003, 0.00064,
8352		-0.00000, -0.00002,
8353		-0.00069, 0.00031,
8354		0.00020, 0.00003,
8355		0.00768, 0.03697, -0.07906, 0.01673,
8356		-0.00003, -0.00001,
8357		-0.00198, -0.01045, 0.01761, -0.00803,
8358		-0.00751, 0.04199,
8359		0.00280, -0.00213, -0.00482, -0.00209,
8360		-0.01077, 0.00715,
8361		0.00048, -0.00004, 0.00199, 0.00237,
8362		0.00017, -0.00032,
8363		-0.07513, -0.00658, -0.04213, 0.16065,
8364		0.27661, 0.06515,
8365		0.02156, -0.08144, -0.23994, -0.05674,
8366		0.00167, 0.00069,
8367		0.00244, -0.01247,
8368		-0.00100, 0.00036,
8369		0.00240, 0.00012,
8370		0.00010, 0.00018,
8371		0.00208, -0.00098,
8372		-0.00217, 0.00707,
8373		-0.00338, 0.01260,
8374		-0.00127, -0.00039,
8375		-0.03516, -0.00544, -0.01746, 0.08258,
8376		0.10633, 0.02523,
8377		0.00077, -0.00214,
8378		-0.02335, 0.00976,
8379		-0.00019, 0.00003,
8380		0.00041, 0.00039,
8381		0.00199, -0.01098,
8382		0.00813, -0.00853,
8383		0.02230, 0.00349,
8384		-0.02250, 0.08119,
8385		-0.00214, -0.00052,
8386		-0.00220, 0.15216, 0.17152, 0.08051,
8387		-0.01561, 0.27727, 0.25837, 0.07021,
8388		-0.00005, -0.00000,
8389		-0.02692, -0.00047,
8390		-0.00007, -0.00016,
8391		0.01072, 0.01418,
8392		-0.00076, 0.00379,
8393		-0.00807, 0.03463,
8394		-0.05199, 0.06680,
8395		-0.00622, 0.00787, 0.00672, 0.00453,
8396		-10.69951, -67.43445, -183.55956, -37.87932,
8397		-102.30497, -780.40465, 2572.21990, -446.97798,
8398		1665.42632, 5698.61327, -11889.66501, 2814.93799,
8399		0.03204, -0.09479,
8400		0.00014, -0.00001,
8401		-0.04118, -0.04562, 0.03435, -0.05878,
8402		0.01700, 0.02566,
8403		-0.00121, 0.00170,
8404		0.02390, 0.00403,
8405		0.04629, 0.01896,
8406		-0.00521, 0.03215,
8407		-0.01051, 0.00696,
8408		-0.01332, -0.08937,
8409		-0.00469, -0.00751,
8410		0.00016, -0.00035,
8411		0.00492, -0.03930, -0.04742, -0.01013,
8412		0.00065, 0.00021,
8413		-0.00006, 0.00017,
8414		0.06768, -0.01558,
8415		-0.00055, 0.00322,
8416		-0.00287, -0.01656,
8417		0.00061, -0.00041,
8418		0.00030, 0.00047,
8419		-0.01436, -0.00148,
8420		0.30302, -0.05511,
8421		-0.00020, -0.00005,
8422		0.00042, -0.00025,
8423		0.01270, 0.00458,
8424		-0.00593, -0.04480,
8425		0.00005, -0.00008,
8426		0.08457, -0.01569,
8427		0.00062, 0.00018,
8428		9.79942, -2.48836, 4.17423, 6.72044,
8429		-63.33456, 34.63597, 39.11878, -72.89581,
8430		-0.00066, 0.00036,
8431		-0.00045, -0.00062,
8432		-0.00287, -0.00118,
8433		-0.21879, 0.03947,
8434		0.00086, 0.00671,
8435		-0.00113, 0.00122,
8436		-0.00193, -0.00029,
8437		-0.03612, 0.00635,
8438		0.00024, 0.00207,
8439		-0.00273, 0.00443,
8440		-0.00055, 0.00030,
8441		-0.00451, 0.00175,
8442		-0.00110, -0.00015,
8443		-0.02608, 0.00480,
8444		2.16555, -0.70419, 1.74648, 0.97514,
8445		-1.15360, 1.73688,
8446		0.00004, 0.00105,
8447		0.00187, -0.00311,
8448		0.00005, 0.00055,
8449		0.00004, 0.00032,
8450		-0.04629, 0.02292, -0.00363, -0.03807,
8451		0.00002, 0.00020
8452	],
8453	rad_tbl: [
8454		-0.24459, 3.72698, -6.67281, 5.24378,
8455		0.00030, 0.00003,
8456		-0.00002, -0.00000,
8457		-0.00000, 0.00001,
8458		0.00032, 0.00021,
8459		-0.00326, 0.01002, 0.00067, 0.00653,
8460		0.00243, -0.00417,
8461		-0.00004, -0.00010,
8462		-0.00002, -0.00001,
8463		0.00004, -0.00002,
8464		-0.00638, -0.01453, 0.01458, -0.01235,
8465		0.00755, 0.01030,
8466		0.00006, 0.00014, 0.00000, 0.00009,
8467		0.00063, 0.00176,
8468		0.00003, -0.00022,
8469		0.00112, 0.00001,
8470		-0.00014, -0.00001,
8471		0.00485, 0.00322, -0.00035, 0.00198,
8472		0.00004, 0.00013,
8473		-0.00015, -0.00003,
8474		0.00011, -0.00025,
8475		0.00634, 0.02207, 0.04620, 0.00160,
8476		0.00045, 0.00001,
8477		-0.11563, 0.00643, -0.05947, 0.02018,
8478		0.07704, 0.01574,
8479		-0.00090, -0.00471, -0.00322, 0.01104,
8480		0.00265, -0.00038,
8481		0.01395, 0.02165, -0.01948, 0.01713,
8482		-0.00057, -0.00019,
8483		0.04889, 0.13403, -0.28327, 0.10597,
8484		-0.02325, -0.35829,
8485		0.01171, -0.00904, 0.00747, 0.02546,
8486		0.00029, -0.00190,
8487		-0.03408, -0.00703,
8488		0.00176, -0.00109,
8489		0.00463, 0.00293,
8490		0.00000, 0.00148,
8491		1.06691, -0.00054,
8492		-0.00935, -0.00790,
8493		0.00552, -0.00084,
8494		-0.00100, 0.00336,
8495		0.02874, 0.08604, -0.17876, 0.05973,
8496		-0.00720, -0.21195,
8497		0.02134, -0.07980,
8498		0.01500, 0.01398,
8499		0.01758, -0.00004,
8500		0.00371, 0.00650,
8501		-0.03375, -0.00723,
8502		4.65465, -0.00040,
8503		0.02040, 0.00707,
8504		-0.00727, -0.01144,
8505		-0.00196, 0.00620,
8506		-0.03396, -0.12904, 0.20160, 0.08092,
8507		-0.67045, 0.14014, -0.01571, -0.75141,
8508		0.00361, 0.00110,
8509		1.42165, -0.01499,
8510		-0.00334, 0.00117,
8511		0.01187, 0.00507,
8512		0.08935, -0.00174,
8513		-0.00211, -0.00525,
8514		0.01035, -0.00252,
8515		-0.08355, -0.06442, 0.01616, -0.03409,
8516		5.55241, -30.62428, 2.03824, -6.26978,
8517		143.07279, -10.24734, -125.25411, -380.85360,
8518		-644.78411, 745.02852, 926.70000, -1045.09820,
8519		-0.03124, -0.00465,
8520		-0.00396, 0.00002,
8521		0.08518, 0.05248, -0.12178, 0.23023,
8522		-0.30943, -0.14208,
8523		-0.00005, -0.01054,
8524		-0.00894, 0.00233,
8525		-0.00173, -0.00768,
8526		0.07881, 0.01633,
8527		-0.04463, -0.03347,
8528		-3.92991, 0.00945,
8529		0.01524, -0.00422,
8530		-0.00011, -0.00005,
8531		0.10842, -0.02126, 0.00349, 0.12097,
8532		-0.03752, 0.00001,
8533		-0.00156, -0.00270,
8534		-0.01520, 0.01349,
8535		0.00895, 0.00186,
8536		-0.67751, 0.00180,
8537		0.00516, -0.00151,
8538		-0.00365, -0.00210,
8539		-0.00276, 0.03793,
8540		-0.02637, 0.03235,
8541		-0.01343, 0.00541,
8542		-0.11270, 0.02169,
8543		-0.63365, 0.00122,
8544		-0.24329, 0.00428,
8545		-0.00040, 0.00586,
8546		0.00581, 0.01112,
8547		-0.02731, 0.00008,
8548		-2.69091, 0.42729, 2.78805, 3.43849,
8549		-0.87998, -6.62373, 0.56882, 4.69370,
8550		0.00005, -0.00008,
8551		-0.00181, 0.01767,
8552		-0.00168, 0.00660,
8553		0.01802, -0.01836,
8554		-0.11245, -0.00061,
8555		0.00199, -0.00070,
8556		-0.00076, 0.00919,
8557		0.00311, -0.00165,
8558		-0.05650, -0.00018,
8559		0.00121, -0.00069,
8560		-0.00803, 0.00146,
8561		-0.03260, -0.00072,
8562		-0.00042, 0.00524,
8563		0.00464, -0.00339,
8564		-0.06203, -0.00278, 0.04145, 0.02871,
8565		-0.01962, -0.01362,
8566		-0.03040, -0.00010,
8567		0.00085, -0.00001,
8568		-0.01712, -0.00006,
8569		-0.00996, -0.00003,
8570		-0.00029, 0.00026, 0.00016, -0.00005,
8571		-0.00594, -0.00003
8572	],
8573	arg_tbl: [
8574		0, 3,
8575		2, 2, 5, -5, 6, 0,
8576		3, 2, 2, 1, 3, -8, 4, 0,
8577		3, 5, 1, -14, 2, 2, 3, 0,
8578		3, 3, 2, -7, 3, 4, 4, 0,
8579		2, 8, 2, -13, 3, 2,
8580		3, 6, 2, -10, 3, 3, 5, 0,
8581		1, 1, 7, 0,
8582		2, 1, 5, -2, 6, 0,
8583		2, 1, 2, -3, 4, 2,
8584		2, 2, 5, -4, 6, 1,
8585		1, 1, 6, 0,
8586		3, 3, 2, -5, 3, 1, 5, 0,
8587		3, 3, 2, -5, 3, 2, 5, 0,
8588		2, 1, 5, -1, 6, 0,
8589		2, 2, 2, -6, 4, 1,
8590		2, 2, 5, -3, 6, 0,
8591		1, 2, 6, 0,
8592		2, 3, 5, -5, 6, 0,
8593		1, 1, 5, 1,
8594		2, 2, 5, -2, 6, 0,
8595		2, 3, 2, -5, 3, 2,
8596		2, 5, 2, -8, 3, 1,
8597		1, 2, 5, 0,
8598		2, 2, 1, -5, 2, 1,
8599		2, 6, 2, -10, 3, 0,
8600		2, 2, 2, -3, 3, 2,
8601		2, 1, 2, -2, 3, 1,
8602		2, 4, 2, -7, 3, 0,
8603		2, 4, 2, -6, 3, 0,
8604		1, 1, 4, 0,
8605		2, 1, 2, -2, 4, 0,
8606		2, 2, 2, -5, 4, 0,
8607		2, 1, 2, -1, 3, 0,
8608		2, 1, 1, -3, 2, 0,
8609		2, 2, 2, -4, 3, 0,
8610		2, 6, 2, -9, 3, 0,
8611		2, 3, 2, -4, 3, 2,
8612		2, 1, 1, -2, 2, 0,
8613		1, 1, 3, 0,
8614		2, 1, 2, -1, 4, 0,
8615		2, 2, 2, -4, 4, 0,
8616		2, 5, 2, -7, 3, 0,
8617		2, 2, 2, -2, 3, 0,
8618		2, 1, 2, -3, 5, 0,
8619		2, 1, 2, -3, 3, 0,
8620		2, 7, 2, -10, 3, 0,
8621		2, 1, 2, -2, 5, 1,
8622		2, 4, 2, -5, 3, 1,
8623		3, 1, 2, 1, 5, -5, 6, 0,
8624		2, 1, 2, -1, 5, 0,
8625		3, 1, 2, -3, 5, 5, 6, 0,
8626		2, 1, 2, -2, 6, 0,
8627		2, 1, 2, -1, 6, 0,
8628		1, 3, 4, 0,
8629		2, 7, 2, -13, 3, 0,
8630		3, 1, 2, 2, 5, -5, 6, 1,
8631		1, 1, 2, 5,
8632		2, 9, 2, -13, 3, 0,
8633		3, 1, 2, 1, 5, -2, 6, 0,
8634		2, 2, 2, -3, 4, 2,
8635		2, 3, 2, -6, 4, 0,
8636		2, 1, 2, 1, 5, 0,
8637		2, 2, 2, -5, 3, 0,
8638		2, 6, 2, -8, 3, 0,
8639		2, 2, 1, -4, 2, 0,
8640		2, 3, 2, -3, 3, 0,
8641		1, 2, 3, 0,
8642		2, 3, 2, -7, 3, 0,
8643		2, 5, 2, -6, 3, 1,
8644		2, 2, 2, -2, 4, 0,
8645		2, 3, 2, -5, 4, 0,
8646		2, 2, 2, -1, 3, 0,
8647		2, 7, 2, -9, 3, 0,
8648		2, 4, 2, -4, 3, 0,
8649		2, 1, 2, 1, 3, 0,
8650		2, 3, 2, -4, 4, 0,
8651		2, 6, 2, -7, 3, 0,
8652		2, 3, 2, -2, 3, 0,
8653		2, 2, 2, -4, 5, 0,
8654		2, 2, 2, -3, 5, 0,
8655		2, 2, 2, -2, 5, 0,
8656		2, 5, 2, -5, 3, 0,
8657		2, 2, 2, -3, 6, 0,
8658		2, 2, 2, -1, 5, 0,
8659		2, 2, 2, -2, 6, 0,
8660		1, 2, 2, 3,
8661		2, 2, 2, 1, 5, 0,
8662		2, 7, 2, -8, 3, 0,
8663		2, 2, 1, -3, 2, 0,
8664		2, 4, 2, -3, 3, 0,
8665		2, 6, 2, -6, 3, 0,
8666		2, 3, 2, -1, 3, 0,
8667		2, 8, 2, -9, 3, 0,
8668		2, 5, 2, -4, 3, 0,
8669		2, 7, 2, -7, 3, 0,
8670		2, 4, 2, -2, 3, 0,
8671		2, 3, 2, -4, 5, 0,
8672		2, 3, 2, -3, 5, 0,
8673		2, 9, 2, -10, 3, 0,
8674		2, 3, 2, -2, 5, 0,
8675		1, 3, 2, 2,
8676		2, 8, 2, -8, 3, 0,
8677		2, 5, 2, -3, 3, 0,
8678		2, 9, 2, -9, 3, 0,
8679		2, 10, 2, -10, 3, 0,
8680		1, 4, 2, 1,
8681		2, 11, 2, -11, 3, 0,
8682		-1
8683	]
8684};
8685
8686$ns.earth = {
8687	maxargs: 12,
8688	max_harmonic: [2, 11, 14, 19,  6, 10,  2,  2,  0,  1,  1,  4,  0,  0,  0,  0,  0,  0],
8689	max_power_of_t: 3,
8690	distance: 1.0001398729597080e+00,
vendor: 11,688 bytes, lines 8691-9461
8691	timescale: 3.6525000000000000e+06,
8692	trunclvl: 1.0000000000000000e-04,
8693	lon_tbl: [
8694		-242809, -178223, -6154, -6547,
8695		15526, -79460, 66185, -19531,
8696		-12754, 4389, 3153, -1151,
8697		768, 1750,
8698		-248, 657, -80, 0,
8699		-4, -29,
8700		-3020, 301, -360, 412,
8701		-1463, 2266,
8702		-41, 30,
8703		-39868, -14275, -25052, 1583,
8704		15695, 10018,
8705		-113, -122,
8706		-243, 18, -33, 31,
8707		-134, -171, 243, -115,
8708		18, 148,
8709		-120, -129, 19, -220,
8710		-30, 19,
8711		8, 23,
8712		-162, -124, 189, -315,
8713		73, 77,
8714		32006, -11295, 11595, 5629,
8715		-838, 1728,
8716		0, 4,
8717		38, 15,
8718		142, -228, 92, 32,
8719		-2274, -1500, -2277, 3143,
8720		3204, 127,
8721		-20, -11,
8722		5186, 1054, 996, 1769,
8723		-231, 163,
8724		-88, -19,
8725		-2, -145,
8726		-27, 48,
8727		-8, 421,
8728		-7, 148,
8729		-16, -2,
8730		-3964, 4259, -11192, -8385,
8731		11513, -13415,
8732		103, -43,
8733		-289, -79, -29, 163,
8734		-117, 559, -190, -15,
8735		7108, 5345, 12933, -7709,
8736		3485, -26023,
8737		11, -5,
8738		311, 78, 22, 76,
8739		2846, -3922, 2329, 43,
8740		34, 442,
8741		3, -245,
8742		-5, -3,
8743		-17, 5,
8744		318, 15963, 2520, 7115,
8745		2548, -9836,
8746		-7063, 1950, -4471, -8326,
8747		4964, -3101,
8748		563, -80, -1444, -472,
8749		8, -22,
8750		1558, -88, 235, 359,
8751		293, -16, 144, 209,
8752		-13, -7,
8753		812, -744, 150, -740,
8754		-2569, -956, 69, -2475,
8755		1009, -55,
8756		-1707, -2525, 1071, -1761,
8757		550, 279,
8758		-14, 36,
8759		-10442, 3344, -6759, -21551,
8760		24737, -434,
8761		504, -385, 191, 96,
8762		-2760, -1068, 85, -2617,
8763		1062, -43,
8764		192, -16, 30, 42,
8765		-2446, 588, -1522, -2933,
8766		1746, -1070,
8767		511, -1401, 139, 729,
8768		-12, 29,
8769		-2618, -2076, 2079, -3711,
8770		-21, -2727,
8771		-80, -19,
8772		113, 2420, 325, 1058,
8773		379, -1478,
8774		296, -251, -265, -409,
8775		-10, 20,
8776		15, -15,
8777		11, 143, -83, 19,
8778		266, -17, 40, 59,
8779		19, -105, 5, 48331,
8780		21, -16,
8781		-97, -318, 158, -171,
8782		456, -351, 168, 85,
8783		12, -2,
8784		20, -15,
8785		15, 2,
8786		385, -1125, 521, -23,
8787		-815, -2088, 1644, -1329,
8788		7, 14,
8789		-582, 234, -67, -467,
8790		-167, -51,
8791		-684, -2302, 1315, -797,
8792		6, -70,
8793		-118, -406, 67, -63,
8794		-4848, 3713, -8483, -8776,
8795		13049, -9404,
8796		-23, 34,
8797		-12, 1,
8798		-24, -10,
8799		-21, 0,
8800		-1, 24,
8801		-3, 28,
8802		-3032, -2494, 2498, -4342,
8803		-6538, 1899, -4414, -13249,
8804		15540, -292,
8805		-228, 176, -40, -161,
8806		-20, -36,
8807		-800, -172, -36, -208,
8808		-249, -374, -1410, -72118,
8809		-745, 213, -23, 196,
8810		-14, -2,
8811		-239, -341, 1015, -291,
8812		33, -94, 90, -20431,
8813		4, -39,
8814		75, 216, -23, 41,
8815		116, 24, 5, 26,
8816		-45, -4178,
8817		-9, -23,
8818		12, 18,
8819		68, -2,
8820		36, -19,
8821		42, -8,
8822		6, -106,
8823		4, -38,
8824		-73, 259, 107, -293,
8825		-12, -44, 37, 13,
8826		73, -46, 17, 8,
8827		5832, 1989, -1404, 4469,
8828		-1619, -743,
8829		-1796, -2206, 461, -291,
8830		153, 1104,
8831		19195, 652503, 5587, -5252787,
8832		47, -17340051, -32, 68926621,
8833		1054, -230, -1601, 356,
8834		-562, -998,
8835		124, -446, -171, 66,
8836		26, 60,
8837		-7, 0,
8838		-88, -43, 65, -400,
8839		4, 183,
8840		-1014, 2043, -1076, 126,
8841		-41, -205,
8842		-127, -85, -15, 68,
8843		0, 0,
8844		-320, 75, -42, 285,
8845		-303, 771, 616, 400,
8846		-470, 48, -76, -103,
8847		-190, -11,
8848		-139, -5, -48, -87,
8849		-22, -362, -271, 1233,
8850		-392, 353, -154, -71,
8851		-109, 112,
8852		17, 8,
8853		1, -17,
8854		-170, 623, -279, 21,
8855		139, -151, -107, -55199,
8856		588, -188, 397, 674,
8857		-406, 269,
8858		166, -207, 585, 333,
8859		-386, 754,
8860		29, -65,
8861		35, 10,
8862		63, 1291,
8863		62, 8,
8864		239, 1323, -1434, 53,
8865		19, -1,
8866		34, 82,
8867		-15, -16,
8868		265, -338, -729, -207,
8869		3, 17,
8870		697, 399, 274, 760,
8871		-12, 2,
8872		-48, -9,
8873		3, 64,
8874		147, 36, 9, 46,
8875		77, 144, -76, 65,
8876		2329, 1763, 987, 5506,
8877		66, -123, -41, -24,
8878		-12, 1,
8879		-19, 94,
8880		19, 8,
8881		-1, -18,
8882		142, 77, -78, 187,
8883		6, 18,
8884		607, 163, 17, 158,
8885		27, -208, 154, 27317,
8886		587, -143, 22, -153,
8887		5, -34,
8888		75, 330,
8889		98, -128, -67, -6542,
8890		-115, -236, 217, -12,
8891		10, -6,
8892		-250, 653, 1611, -209,
8893		4, 1072,
8894		-129, 216, 402, 81,
8895		117, 11,
8896		0, 20,
8897		24, -28,
8898		245, 437, -16, 59,
8899		527952, -74895, 169682, 177186,
8900		-376, -362869, -60, 719658,
8901		-151, -382, -22, -43,
8902		5, -5,
8903		14, 5,
8904		-9, 13,
8905		83, 296, -369, -1,
8906		-14, -6,
8907		42, 8,
8908		-31, 7,
8909		-354, 634, 1132, 243,
8910		-38, 42,
8911		-14, 68,
8912		-6, 31,
8913		-36, -13,
8914		7, -2104,
8915		16, 67,
8916		9, -4,
8917		174, 144, 58, 438,
8918		-15, 5,
8919		-16, 19,
8920		-135, 1642,
8921		-140, -11,
8922		-4, 27,
8923		253, -382, -651, -221,
8924		11, 1,
8925		-12, -6,
8926		136, 23,
8927		-1, 43,
8928		3, 38,
8929		-26, -5,
8930		17864, -4244, 5704, 7754,
8931		-36, -7891, -3, 10418,
8932		2, -844,
8933		-1, 126,
8934		-7, 32,
8935		-67, -5,
8936		39, 10,
8937		5, 52,
8938		-13, 159,
8939		-49, -21,
8940		1, -394,
8941		7, -15,
8942		-4, -245, 1, 172,
8943		-36, -3,
8944		13, 5,
8945		0, 1,
8946		-1, 0, 0, -202,
8947		-2, 19,
8948		-20, -2,
8949		5, 3,
8950		0, -110,
8951		-12, -1,
8952		0, -62,
8953		0, -36,
8954		0, -22,
8955		-13, 3
8956	],
8957	lat_tbl: [
8958		-428091, -488399, 746850, 6,
8959		210, -93, 32, 1,
8960		-365, 332, -105, 76,
8961		-7, 2,
8962		-8, 14, -1, 2,
8963		0, 0,
8964		-65, 12, -17, 7,
8965		-1, 1,
8966		0, 0,
8967		-15, 65, -4, 26,
8968		-2, 0,
8969		0, 0,
8970		0, 2, 0, 0,
8971		2, 2, 0, 0,
8972		0, 0,
8973		-1, -3, 0, 0,
8974		0, 0,
8975		0, 0,
8976		-2, 0, 0, 0,
8977		-1, 0,
8978		-30, 28, -6, 10,
8979		0, 0,
8980		0, 0,
8981		0, 0,
8982		2, 0, 0, 0,
8983		-16, 20, -6, -41,
8984		-9, -3,
8985		0, 0,
8986		-6, 2, 2, 0,
8987		0, 0,
8988		0, 0,
8989		0, 0,
8990		0, 0,
8991		0, 0,
8992		0, 0,
8993		0, 0,
8994		-96, 33, -12, 228,
8995		-23, -21,
8996		0, 0,
8997		-12, -2, -4, 4,
8998		-1, 0, 1, 0,
8999		-329, -22, -34, -726,
9000		-147, -21,
9001		0, 0,
9002		-2, 4, -1, 0,
9003		2, -7, 0, 1,
9004		0, 0,
9005		0, 0,
9006		0, 0,
9007		0, 0,
9008		36, 88, -162, -19,
9009		-11, 21,
9010		31, 37, -31, 53,
9011		-5, -15,
9012		-3, -11, 9, 3,
9013		0, 0,
9014		-2, 0, 1, 0,
9015		2, -1, 0, 0,
9016		0, 0,
9017		-162, -102, -37, 30,
9018		19, 23, -18, 9,
9019		1, -6,
9020		-6, 22, -2, 3,
9021		1, -2,
9022		0, -1,
9023		26, -25, 66, 52,
9024		-641, -153,
9025		-13, -9, 2, -3,
9026		-29, 8, -6, -2,
9027		0, -6,
9028		2, -4, 1, 0,
9029		-26, -11, -1, -10,
9030		-6, -13,
9031		66, -1337, -879, -207,
9032		1, -1,
9033		8, -30, -24, -18,
9034		-16, 1,
9035		9, 1,
9036		-24, -8, 9, -17,
9037		-13, 75,
9038		19, -8, -29, 24,
9039		0, 0,
9040		-1, 1,
9041		-25, 36, -7, -22,
9042		0, -3, 1, -1,
9043		187, -46, -6, 74,
9044		5, -10,
9045		-5, -4, -16, 10,
9046		-5, -5, 2, -4,
9047		5, -2,
9048		-2, 1,
9049		-1, 0,
9050		-16, -12, 1, -13,
9051		-17, -111, -186, 73,
9052		-1, -2,
9053		-277, -77, -27, 106,
9054		16, 5,
9055		-12, -15, -13, -30,
9056		-1, 1,
9057		0, 36, -10, 4,
9058		607, 262, 533, -1530,
9059		-1630, 304,
9060		8, -6,
9061		1, 1,
9062		0, -1,
9063		5, -2,
9064		0, -1,
9065		-1, -4,
9066		-44, -22, -64, -46,
9067		537, 430, 268, -1553,
9068		-2040, -486,
9069		-3, -23, 20, 41,
9070		-1, 2,
9071		-21, -4, -1, -3,
9072		-84, 50, -177, 26,
9073		5, -12, 2, -4,
9074		7, 1,
9075		-115, -305, -310, 138,
9076		-186, 246, -96, 17,
9077		0, 0,
9078		4, -2, 1, 1,
9079		-3, 2, -1, 0,
9080		-15, 68,
9081		0, 2,
9082		-3, 0,
9083		-5, 0,
9084		-1, 1,
9085		-5, 6,
9086		0, 0,
9087		0, 0,
9088		-235, -98, -2, 2,
9089		9, -40, -1, -2,
9090		-33, -9, -5, -4,
9091		5662, -3849, 1941, -124,
9092		210, 160,
9093		-24721, -72945, 4099, -21914,
9094		1345, -555,
9095		23637393, -5516830, 17737677, 43330654,
9096		-44668315, 14540723, -824, -2086,
9097		-4423, -41801, 5562, -11664,
9098		960, -125,
9099		2001, -149, 587, -350,
9100		23, -52,
9101		-3, 3,
9102		-248, -148, -40, 86,
9103		2, 0,
9104		21, -82, 11, 8,
9105		-8, 0,
9106		-30, -33, -22, 46,
9107		0, -191,
9108		-168, -135, 27, -85,
9109		14, 232, 217, 59,
9110		5, 12, -5, 2,
9111		-24, -26,
9112		-52, 13, -3, 18,
9113		26, 45, 32, -169,
9114		14, -6, -3, 4,
9115		-5, 2,
9116		6, 2,
9117		-2, 3,
9118		20, -15, 0, 10,
9119		-486, -8, 4, -114,
9120		102, -188, 23, -67,
9121		6, 12,
9122		-43, -1, -32, 2,
9123		15, 9,
9124		16, -36,
9125		-6, -2,
9126		14, -5,
9127		17, -15,
9128		-28, 307, 289, 69,
9129		2, -7,
9130		3, -1,
9131		-1, 1,
9132		-16, -811, 287, -68,
9133		0, 0,
9134		0, -1, 16, -7,
9135		0, 0,
9136		0, 2,
9137		0, 0,
9138		0, -1, 1, 0,
9139		-3, -4, 2, 3,
9140		-29, 34, 59, -15,
9141		-3, -3, -1, 0,
9142		-2, -3,
9143		3, -19,
9144		0, 0,
9145		0, 0,
9146		-15, 1, 5, 2,
9147		0, 0,
9148		-1, -5, 0, -1,
9149		-120, 84, 7, -30,
9150		-7, -3, -1, 0,
9151		0, -1,
9152		9, -6,
9153		-186, -11, 13, -57,
9154		1, 4, 1, -1,
9155		0, 0,
9156		-5, 796, 46, 5,
9157		-1, -6,
9158		-10, 228, 5, -6,
9159		1, -5,
9160		0, 0,
9161		-6, -2,
9162		148, 137, 10, 28,
9163		430546, -279834, 488902, 664558,
9164		-746515, 243112, -39, -37,
9165		-13, -174, 6, -25,
9166		2, -3,
9167		-4, -2,
9168		0, 4,
9169		-5, 70, 82, 20,
9170		0, 1,
9171		1, 1,
9172		0, 1,
9173		-27, 430, 226, -53,
9174		1, 1,
9175		0, 1,
9176		1, -7,
9177		2, 1,
9178		-3, -8,
9179		1, 0,
9180		-1, 12,
9181		-2, -5, 4, 0,
9182		0, 1,
9183		1, 1,
9184		1, 9,
9185		33, 4,
9186		0, 0,
9187		0, -321, 4, 1,
9188		0, 0,
9189		1, 0,
9190		106, -22,
9191		0, 0,
9192		4, 0,
9193		0, 2,
9194		7006, -9443, 12833, 11137,
9195		-14037, 4575, -2, 0,
9196		-1, -6,
9197		1, 1,
9198		4, 6,
9199		16, 2,
9200		55, -10,
9201		1, 0,
9202		0, 1,
9203		0, 2,
9204		0, -4,
9205		-2, 0,
9206		-351, 24, 0, 0,
9207		8, 1,
9208		30, -5,
9209		-12, 10,
9210		-4, 1, -1, -2,
9211		0, 0,
9212		4, 0,
9213		17, -3,
9214		0, -2,
9215		2, 0,
9216		0, -1,
9217		0, -1,
9218		0, 0,
9219		0, 0
9220	],
9221	rad_tbl: [
9222		14575, -26192, -144864, 2,
9223		-22, 15, -8, -21,
9224		-148, -104, -14, -75,
9225		15, 2,
9226		-5, -3, -1, 0,
9227		0, 0,
9228		0, 21, -2, 7,
9229		-5, -3,
9230		0, 0,
9231		83, -94, 9, -67,
9232		-29, 50,
9233		1, -1,
9234		3, 2, 0, 0,
9235		4, 3, 1, 1,
9236		-1, -1,
9237		0, -1, 2, -1,
9238		0, 1,
9239		0, 0,
9240		-2, 3, -5, -2,
9241		-1, 1,
9242		197, 511, -82, 189,
9243		-28, -12,
9244		0, 0,
9245		0, -1,
9246		6, -1, 0, 1,
9247		30, -30, -37, -25,
9248		6, 21,
9249		0, 0,
9250		16, -139, 43, -28,
9251		4, 6,
9252		0, 3,
9253		4, 0,
9254		1, 1,
9255		-13, 0,
9256		-4, 0,
9257		0, 1,
9258		150, 135, -291, 436,
9259		-560, -343,
9260		1, 3,
9261		8, -15, -13, -5,
9262		-17, -3, 1, -6,
9263		-314, 428, 606, 758,
9264		1230, -411,
9265		0, -1,
9266		11, -14, 4, 1,
9267		221, 157, 1, 132,
9268		-25, 3,
9269		12, 0,
9270		0, 0,
9271		0, -1,
9272		1487, -108, 707, -79,
9273		-950, -190,
9274		177, 582, -676, 399,
9275		-281, -396,
9276		0, 52, 39, -130,
9277		2, 1,
9278		12, 148, -34, 23,
9279		1, 27, -20, 13,
9280		1, -1,
9281		198, -34, -21, -80,
9282		-99, 332, -307, 9,
9283		-15, -125,
9284		330, -231, 236, 139,
9285		-36, 74,
9286		7, 3,
9287		-588, -1722, 3623, -1245,
9288		187, 4366,
9289		-72, -75, 11, -33,
9290		174, -467, 444, 9,
9291		11, 180,
9292		-6, -39, 8, -7,
9293		-126, -500, 599, -317,
9294		224, 355,
9295		-590, -39, 134, -379,
9296		-7, -3,
9297		494, -628, 893, 490,
9298		712, -7,
9299		-7, 35,
9300		-720, 50, -321, 72,
9301		443, 106,
9302		74, 82, 112, -84,
9303		-6, -3,
9304		5, 4,
9305		58, 7, -2, 38,
9306		6, 92, -20, 14,
9307		33, 13, -11189, -2,
9308		-11, -8,
9309		106, -35, 58, 52,
9310		132, 170, -32, 63,
9311		-2, -6,
9312		6, 7,
9313		-1, 6,
9314		452, 155, 9, 209,
9315		788, -318, 511, 616,
9316		-5, 3,
9317		142, 303, -280, 32,
9318		21, -69,
9319		984, -291, 340, 562,
9320		30, 2,
9321		171, -51, 27, 28,
9322		-1570, -2053, 3702, -3593,
9323		4012, 5467,
9324		-14, -9,
9325		-1, -6,
9326		4, -11,
9327		0, -9,
9328		-11, 0,
9329		15, 2,
9330		1133, -1366, 1961, 1134,
9331		-867, -3010, 6041, -2049,
9332		142, 7138,
9333		-79, -103, 73, -18,
9334		17, -9,
9335		79, -372, 97, -17,
9336		182, -118, 33577, -675,
9337		-99, -347, -91, -11,
9338		1, -7,
9339		158, -111, 136, 474,
9340		50, 16, 9739, 51,
9341		19, 2,
9342		-105, 36, -20, -11,
9343		-12, 56, -13, 2,
9344		2030, -22,
9345		11, -4,
9346		9, -6,
9347		1, 33,
9348		10, 18,
9349		4, 21,
9350		53, 3,
9351		19, 2,
9352		130, 37, -147, -54,
9353		-22, 6, 7, -19,
9354		22, 36, -4, 8,
9355		-949, 2911, -2221, -697,
9356		371, -808,
9357		1203, -1117, 191, 189,
9358		-549, 77,
9359		-321201, 19788, 2622593, 5990,
9360		8667033, 114, -34455835, 86,
9361		-92, -493, 179, 807,
9362		-499, 281,
9363		225, 51, -34, -88,
9364		-30, 13,
9365		0, -3,
9366		20, -43, 201, 33,
9367		-93, 2,
9368		-1034, -518, -63, -545,
9369		104, -20,
9370		43, -64, -34, -7,
9371		0, 0,
9372		-61, -159, -143, -8,
9373		-392, -157, -204, 309,
9374		-24, -248, 55, -40,
9375		-6, 91,
9376		-16, 57, -41, 18,
9377		197, -20, -668, -150,
9378		-192, -216, 39, -84,
9379		-62, -59,
9380		-4, 8,
9381		-7, -1,
9382		-352, -100, -10, -158,
9383		61, 55, 32493, -49,
9384		107, 344, -395, 227,
9385		-154, -238,
9386		123, 104, -205, 348,
9387		-449, -236,
9388		-54, -19,
9389		-6, 21,
9390		-790, 27,
9391		-5, 30,
9392		-846, 154, -26, -920,
9393		0, 12,
9394		-54, 21,
9395		11, -10,
9396		137, 132, 109, -337,
9397		-11, 2,
9398		-272, 467, -511, 179,
9399		-1, -8,
9400		7, -32,
9401		-44, 2,
9402		-26, 101, -32, 6,
9403		-98, 48, -42, -53,
9404		-1222, 1601, -3775, 656,
9405		83, 46, 16, -28,
9406		0, 7,
9407		-66, -14,
9408		-6, 13,
9409		12, 0,
9410		-58, 91, -123, -58,
9411		-12, 4,
9412		-114, 423, -111, 12,
9413		112, 27, -19072, 71,
9414		100, 410, 107, 15,
9415		24, 3,
9416		-214, 30,
9417		49, 44, 5017, -27,
9418		167, -80, 8, 153,
9419		4, 7,
9420		-219, -35, 244, 694,
9421		-762, 2,
9422		-84, -49, -28, 158,
9423		-4, 56,
9424		-14, 0,
9425		9, 12,
9426		7, 18, 2, -7,
9427		-15426, 91, 25800, -15,
9428		144767, -53, -287824, -24,
9429		19, -9, 6, 7,
9430		0, 0,
9431		-3, 8,
9432		-5, -3,
9433		-232, 53, -1, -271,
9434		4, -12,
9435		-8, 30,
9436		-8, -25,
9437		-253, -150, -105, 470,
9438		-37, -29,
9439		-59, -6,
9440		-24, -5,
9441		9, -18,
9442		1784, 3,
9443		-54, 13,
9444		-12, 7,
9445		-116, 144, -353, 52,
9446		-4, -12,
9447		-17, -14,
9448		-1340, -64,
9449		10, -116,
9450		-24, -2,
9451		190, 131, 130, -307,
9452		-1, 9,
9453		5, -7,
9454		-10, 56,
9455		-33, 0,
9456		-14, 3,
9457		2, -12,
9458		-635, -160, 64, -44,
9459		2712, -3, -3606, -1,
9460		774, 1,
9461		133, -1,
9462		-19, 0,
9463		5, -59,
9464		-5, 14,
9465		-45, 5,
9466		-140, -8,
9467		15, -28,
9468		379, 1,
9469		6, 3,
9470		55, 0, -54, 0,
9471		3, -33,
9472		-3, 4,
9473		0, -4,
9474		0, -1, 200, 0,
9475		-17, -1,
9476		2, -20,
9477		-2, 0,
9478		111, 0,
9479		1, -12,
9480		64, 0,
9481		38, 0,
9482		23, 0,
9483		3, 13
9484	],
9485	arg_tbl: [
9486		0,  3,
9487		3,  4,  3, -8,  4,  3,  5,  1,
9488		2,  2,  5, -5,  6,  2,
9489		4,  4,  3, -8,  4,  5,  5, -5,  6,  1,
9490		3,  2,  2,  1,  3, -8,  4,  0,
9491		3,  3,  2, -7,  3,  4,  4,  2,
9492		3,  7,  3,-13,  4, -1,  5,  0,
9493		2,  8,  2,-13,  3,  2,
9494		3,  1,  3, -2,  4,  2,  6,  0,
9495		3,  1,  2, -8,  3, 12,  4,  1,
9496		3,  6,  2,-10,  3,  3,  5,  1,
9497		1,  1,  7,  0,
9498		2,  1,  5, -2,  6,  1,
9499		2,  1,  5, -3,  6,  0,
9500		3,  1,  3, -2,  4,  1,  5,  0,
9501		3,  3,  3, -6,  4,  2,  5,  1,
9502		3,  1,  1, -5,  2,  4,  3,  0,
9503		2,  8,  3,-15,  4,  2,
9504		3,  4,  3, -7,  4, -3,  5,  0,
9505		3,  2,  2, -7,  3,  7,  4,  0,
9506		2,  2,  5, -4,  6,  1,
9507		1,  1,  6,  2,
9508		2,  2,  5, -6,  6,  0,
9509		2,  9,  3,-17,  4,  2,
9510		3,  3,  2, -5,  3,  1,  5,  0,
9511		3,  2,  3, -4,  4,  2,  5,  0,
9512		3,  2,  3, -4,  4,  1,  5,  0,
9513		3,  3,  2, -5,  3,  2,  5,  0,
9514		2,  1,  5, -1,  6,  0,
9515		3,  3,  2, -6,  3,  2,  4,  0,
9516		2,  1,  3, -2,  4,  2,
9517		2,  2,  5, -3,  6,  0,
9518		1,  2,  6,  1,
9519		2,  3,  5, -5,  6,  1,
9520		1,  1,  5,  2,
9521		3,  4,  3, -8,  4,  2,  5,  0,
9522		2,  1,  5, -5,  6,  1,
9523		2,  7,  3,-13,  4,  2,
9524		2,  2,  5, -2,  6,  0,
9525		2, 10,  3,-19,  4,  0,
9526		2,  3,  5, -4,  6,  0,
9527		2,  3,  2, -5,  3,  2,
9528		2,  2,  3, -4,  4,  2,
9529		2,  5,  2, -8,  3,  1,
9530		2,  3,  5, -3,  6,  0,
9531		2,  6,  3,-11,  4,  1,
9532		2,  1,  1, -4,  3,  1,
9533		2,  4,  5, -5,  6,  0,
9534		1,  2,  5,  1,
9535		2,  3,  3, -6,  4,  2,
9536		2,  5,  3, -9,  4,  2,
9537		2,  6,  2,-10,  3,  0,
9538		2,  2,  2, -3,  3,  2,
9539		2,  4,  3, -8,  4,  1,
9540		2,  4,  3, -7,  4,  2,
9541		2,  5,  3,-10,  4,  1,
9542		2,  3,  3, -5,  4,  2,
9543		2,  1,  2, -2,  3,  1,
9544		2,  7,  2,-11,  3,  0,
9545		2,  2,  3, -3,  4,  1,
9546		2,  1,  3, -1,  4,  0,
9547		2,  4,  2, -7,  3,  0,
9548		2,  4,  2, -6,  3,  2,
9549		1,  1,  4,  1,
9550		2,  8,  3,-14,  4,  0,
9551		2,  1,  3, -5,  5,  0,
9552		2,  1,  3, -3,  4,  1,
9553		2,  7,  3,-12,  4,  1,
9554		2,  1,  2, -1,  3,  1,
9555		2,  2,  3, -5,  4,  0,
9556		2,  1,  3, -4,  5,  1,
9557		2,  6,  3,-10,  4,  1,
9558		2,  3,  3, -7,  4,  0,
9559		3,  1,  3, -4,  5,  2,  6,  0,
9560		3,  1,  3, -1,  5, -5,  6,  0,
9561		2,  5,  3, -8,  4,  1,
9562		2,  1,  3, -3,  5,  1,
9563		3,  1,  3, -5,  5,  5,  6,  0,
9564		2,  2,  2, -4,  3,  1,
9565		2,  6,  2, -9,  3,  0,
9566		2,  4,  3, -6,  4,  1,
9567		3,  1,  3, -3,  5,  2,  6,  0,
9568		2,  1,  3, -5,  6,  1,
9569		2,  1,  3, -2,  5,  2,
9570		3,  1,  3, -4,  5,  5,  6,  0,
9571		3,  1,  3, -1,  5, -2,  6,  0,
9572		3,  1,  3, -3,  5,  3,  6,  0,
9573		2,  1,  3, -4,  6,  0,
9574		3,  1,  3, -2,  5,  1,  6,  0,
9575		2,  5,  2, -9,  3,  0,
9576		2,  3,  3, -4,  4,  1,
9577		2,  3,  2, -4,  3,  2,
9578		2,  1,  3, -3,  6,  1,
9579		3,  1,  3, -2,  5,  2,  6,  0,
9580		3,  1,  3,  1,  5, -5,  6,  1,
9581		2,  1,  3, -1,  5,  1,
9582		3,  1,  3, -3,  5,  5,  6,  1,
9583		3,  1,  3,  2,  5, -7,  6,  0,
9584		2,  1,  3, -2,  6,  1,
9585		2,  2,  3, -2,  4,  1,
9586		3,  3,  2, -4,  3,  1,  5,  0,
9587		2, 10,  3,-17,  4,  1,
9588		3,  1,  3,  2,  5, -6,  6,  1,
9589		2,  1,  3, -1,  6,  0,
9590		3,  1,  3, -2,  5,  4,  6,  0,
9591		2,  7,  3,-15,  4,  0,
9592		2,  1,  3, -2,  7,  0,
9593		3,  1,  3,  1,  5, -3,  6,  0,
9594		2,  1,  3, -2,  8,  0,
9595		2,  1,  3, -1,  7,  0,
9596		2,  1,  3, -1,  8,  0,
9597		2,  8,  2,-14,  3,  1,
9598		3,  3,  2, -8,  3,  4,  4,  1,
9599		3,  1,  3,  4,  5,-10,  6,  1,
9600		3,  1,  3,  2,  5, -5,  6,  2,
9601		3,  5,  3, -8,  4,  3,  5,  2,
9602		1,  1, 12,  3,
9603		3,  3,  3, -8,  4,  3,  5,  2,
9604		3,  1,  3, -2,  5,  5,  6,  2,
9605		3,  3,  2, -6,  3,  4,  4,  0,
9606		2,  8,  2,-12,  3,  1,
9607		3,  1,  3,  1,  5, -2,  6,  0,
9608		2,  9,  3,-15,  4,  2,
9609		2,  1,  3,  1,  6,  1,
9610		2,  1, 10, -1, 11,  0,
9611		1,  2,  4,  1,
9612		2,  1,  3,  1,  5,  1,
9613		2,  8,  3,-13,  4,  1,
9614		2,  3,  2, -6,  3,  0,
9615		2,  1,  3, -4,  4,  1,
9616		2,  5,  2, -7,  3,  1,
9617		2,  7,  3,-11,  4,  1,
9618		2,  1,  1, -3,  3,  0,
9619		2,  1,  3,  2,  5,  0,
9620		2,  2,  3, -6,  4,  0,
9621		2,  6,  3, -9,  4,  1,
9622		2,  2,  2, -2,  3,  1,
9623		2,  5,  3, -7,  4,  2,
9624		2,  4,  3, -5,  4,  2,
9625		2,  1,  2, -3,  3,  0,
9626		2,  7,  2,-10,  3,  0,
9627		2,  3,  3, -3,  4,  0,
9628		2,  2,  3, -1,  4,  0,
9629		2,  4,  2, -5,  3,  1,
9630		2,  1,  3,  1,  4,  0,
9631		2,  2,  3, -5,  5,  0,
9632		2,  8,  3,-12,  4,  0,
9633		1,  1,  2,  1,
9634		3,  2,  3, -5,  5,  2,  6,  0,
9635		2,  2,  3, -4,  5,  1,
9636		3,  2,  3, -6,  5,  5,  6,  0,
9637		2,  7,  3,-10,  4,  0,
9638		3,  2,  3, -4,  5,  2,  6,  0,
9639		3,  2,  3, -1,  5, -5,  6,  1,
9640		2,  6,  3, -8,  4,  1,
9641		2,  2,  3, -3,  5,  1,
9642		3,  2,  3, -5,  5,  5,  6,  1,
9643		2,  2,  2, -5,  3,  0,
9644		2,  6,  2, -8,  3,  0,
9645		3,  2,  3, -4,  5,  3,  6,  0,
9646		3,  2,  3, -3,  5,  1,  6,  0,
9647		2,  5,  3, -6,  4,  1,
9648		3,  2,  3, -3,  5,  2,  6,  0,
9649		2,  2,  3, -5,  6,  1,
9650		2,  2,  3, -2,  5,  1,
9651		3,  2,  3, -4,  5,  5,  6,  1,
9652		2,  2,  3, -4,  6,  0,
9653		2,  4,  3, -4,  4,  0,
9654		2,  3,  2, -3,  3,  1,
9655		2,  2,  3, -3,  6,  1,
9656		3,  2,  3, -2,  5,  2,  6,  0,
9657		2,  2,  3, -1,  5,  1,
9658		2,  2,  3, -2,  6,  0,
9659		2,  3,  3, -2,  4,  1,
9660		2,  2,  3, -1,  6,  0,
9661		2,  2,  3, -2,  7,  0,
9662		3,  2,  3,  2,  5, -5,  6,  0,
9663		3,  6,  3, -8,  4,  3,  5,  1,
9664		1,  2, 12,  3,
9665		3,  2,  3, -8,  4,  3,  5,  1,
9666		3,  2,  3, -2,  5,  5,  6,  0,
9667		2,  8,  2,-11,  3,  0,
9668		2,  2,  3,  1,  5,  0,
9669		2,  5,  2, -6,  3,  1,
9670		2,  8,  3,-11,  4,  0,
9671		2,  1,  1, -2,  3,  0,
9672		2,  7,  3, -9,  4,  0,
9673		2,  2,  2, -1,  3,  1,
9674		2,  6,  3, -7,  4,  0,
9675		2,  5,  3, -5,  4,  0,
9676		2,  7,  2, -9,  3,  0,
9677		2,  4,  3, -3,  4,  0,
9678		2,  4,  2, -4,  3,  0,
9679		2,  3,  3, -5,  5,  0,
9680		2,  1,  2,  1,  3,  0,
9681		2,  3,  3, -4,  5,  1,
9682		2,  8,  3,-10,  4,  0,
9683		2,  7,  3, -8,  4,  0,
9684		2,  3,  3, -3,  5,  0,
9685		2,  6,  2, -7,  3,  0,
9686		2,  6,  3, -6,  4,  0,
9687		2,  3,  3, -2,  5,  1,
9688		2,  3,  3, -4,  6,  0,
9689		2,  5,  3, -4,  4,  0,
9690		2,  3,  2, -2,  3,  0,
9691		2,  3,  3, -3,  6,  0,
9692		2,  3,  3, -1,  5,  0,
9693		2,  3,  3, -2,  6,  0,
9694		1,  3, 12,  3,
9695		2,  5,  2, -5,  3,  0,
9696		2,  1,  1, -1,  3,  0,
9697		1,  2,  2,  0,
9698		2,  7,  2, -8,  3,  0,
9699		2,  4,  2, -3,  3,  0,
9700		2,  4,  3, -5,  5,  0,
9701		2,  4,  3, -4,  5,  0,
9702		2,  4,  3, -3,  5,  0,
9703		2,  6,  2, -6,  3,  0,
9704		2,  4,  3, -2,  5,  0,
9705		1,  4, 12,  1,
9706		2,  8,  2, -9,  3,  0,
9707		2,  5,  2, -4,  3,  0,
9708		1,  1,  1,  0,
9709		2,  7,  2, -7,  3,  1,
9710		2,  5,  3, -5,  5,  0,
9711		2,  9,  2,-10,  3,  0,
9712		2,  6,  2, -5,  3,  0,
9713		2,  8,  2, -8,  3,  0,
9714		2, 10,  2,-11,  3,  0,
9715		2,  9,  2, -9,  3,  0,
9716		2, 10,  2,-10,  3,  0,
9717		2, 11,  2,-11,  3,  0,
9718		2,  2,  1, -1,  3,  0,
9719		-1
9720	]
9721};
9722
9723$ns.moonlr = {
9724	maxargs: 14,
9725	max_harmonic: [3, 26, 29, 23, 5, 10, 0, 0, 0, 8, 4, 4, 6, 2, 0, 0, 0, 0],
9726	max_power_of_t: 3,
9727	distance: 2.5735686895300000e-03,
9728	timescale: 3.6525000000000000e+06,
9729	trunclvl: 1.0000000000000000e-04,
9730	lon_tbl: [	175667, 66453, 5249, -42,
9731		20057, 403, -2360, 6148,
9732		-7644, 24646, -1273, 9127,
9733		-1395, 1958,
9734		232, -289,
9735		-97, 553, 69, 130,
9736		-80, 6,
9737		129, -868, 26, -89,
9738		1042, 1172, 194, -112,
9739		-47433, -241666, 224626, -103752,
9740		63419, 127606,
9741		2294, -691, -1827, -1254,
9742		-1, -119,
9743		1057, 324,
9744		505, -195, 254, -641,
9745		-36, 1008, -1082, -3,
9746		-87, 122,
9747		161, 11,
9748		2, -106,
9749		29, -123,
9750		-32, 41,
9751		-524, -35,
9752		133, -595,
9753		225, 837, -108, -191,
9754		-2294, 841, -340, -394,
9755		-351, -1039, 238, -108,
9756		-66, 21,
9757		1405, 869, 520, 2776,
9758		-174, 71,
9759		425, 652, -1260, -80,
9760		249, 77,
9761		-192, -17,
9762		-97, 134,
9763		-7, -54,
9764		-802, -7436, -2824, 70869,
9765		-35, 2481,
9766		1865, 1749, -2166, 2415,
9767		33, -183,
9768		-835, 283,
9769		27, -45,
9770		56, 235,
9771		2, 718,
9772		-1206, 275, -87, -158,
9773		-7, -2534, 0, 10774,
9774		1, -324,
9775		-208, 821,
9776		281, 1340, -797, 440,
9777		224, 72,
9778		-65, -5,
9779		-7, -44,
9780		-48, 66,
9781		-151, -40,
9782		-41, -45,
9783		76, -108,
9784		-18, 1202, 0, -2501,
9785		1438, -595, 900, 3040,
9786		-3435, -5,
9787		-100, -26,
9788		0, -13714,
9789		-183, 68,
9790		453, -83,
9791		-228, 325,
9792		97, 13,
9793		2, 105,
9794		-61, 257,
9795		0, 57,
9796		88, -11,
9797		-1, -8220,
9798		0, 275,
9799		-43, -10,
9800		-199, 105,
9801		1, -5849, 2, 24887,
9802		-128, 48,
9803		712, 970, -1407, 845,
9804		-266, 378,
9805		311, 1526, -1751, 27,
9806		0, -185858,
9807		133, 6383,
9808		-108, 25,
9809		-7, 1944,
9810		5, 390,
9811		-11, 31,
9812		277, -384, 158, 72,
9813		-81, -41, -13, -111,
9814		-2332, -65804, -698, 505812,
9815		34, 1676716, -72, -6664384,
9816		154, -57, 52, 95,
9817		-4, -5,
9818		-7, 37,
9819		-63, -32,
9820		4, 3349, 1, -14370,
9821		16, -83,
9822		0, -401,
9823		13, 3013,
9824		48, -20,
9825		0, 250,
9826		51, -79,
9827		-7, -146,
9828		148, 9,
9829		0, -64,
9830		-17, -59,
9831		-67, -492,
9832		-2, 2116601,
9833		-12, -1848,
9834		8, -436,
9835		-6, 324, 0, -1363,
9836		-163, 9,
9837		0, -74,
9838		63, 8167, -29, 37587,
9839		-22, -74501,
9840		-71, 497,
9841		-1, 551747,
9842		-87, -22,
9843		0, -51,
9844		-1, -463,
9845		0, -444,
9846		3, 89,
9847		15, -84,
9848		-36, -6829, -5, -21663,
9849		0, 86058,
9850		0, -298,
9851		-2, 751, -2, -1015,
9852		0, 69,
9853		1, -4989, 0, 21458,
9854		0, -330,
9855		0, -7,
9856		0, -226,
9857		0, -1407, 0, 2942,
9858		0, 66,
9859		0, 667,
9860		0, -155,
9861		0, 105,
9862		0, -107,
9863		0, -74,
9864		0, -52,
9865		0, 91,
9866		0, 59,
9867		0, 235,
9868		-1, -1819, 0, 2470,
9869		71, 13,
9870		0, 1026,
9871		14, -54,
9872		0, -174,
9873		-121, -19,
9874		0, -200,
9875		0, 3008,
9876		-16, -8043, -10, -37136,
9877		-3, 73724,
9878		-157, -5,
9879		0, -854,
9880		8, 147,
9881		-13, -893,
9882		0, 11869,
9883		-23, -172,
9884		89, 14,
9885		-1, 872, 0, -3744,
9886		11, 1606,
9887		0, -559,
9888		-1, -2530,
9889		0, 454,
9890		0, -193,
9891		-60, -10,
9892		-82, -13,
9893		-75, 6,
9894		36, 81,
9895		354, -162836, 148, -516569,
9896		4, 2054441,
9897		4, -94,
9898		39, 38,
9899		61, -30,
9900		2, 121,
9901		-11, 590,
9902		62, 2108,
9903		0, -12242,
9904		-476, -42,
9905		-84, 113,
9906		-394, 236,
9907		0, 276,
9908		-49, 31,
9909		0, 86,
9910		1, -1313,
9911		1, 69,
9912		-60, 88,
9913		-46, 18,
9914		0, -63818,
9915		14, -93,
9916		113, 547, -618, 17,
9917		-7, 12290, -1, -25679,
9918		0, 92,
9919		-115, 50,
9920		-48, 233,
9921		4, 1311, 1, -5567,
9922		3, 1251,
9923		29, 548,
9924		-244, 257,
9925		-2, 1825,
9926		42, 637,
9927		-46, 68,
9928		-62, 8,
9929		3, 110,
9930		445, -100, -316, -202,
9931		2925, -621, 763, 1495,
9932		-169, -184, 20, -76,
9933		-475, -138, 8, -141,
9934		-197, 1351, -1284, 422,
9935		-129, 1879, -102, 8382,
9936		-9, 45864958,
9937		-215, 1350, -1285, 422,
9938		-481, -136, 8, -140,
9939		40, -53,
9940		2622, -543, 700, 1406,
9941		402, -95, -318, -194,
9942		122, 13,
9943		-30, 147,
9944		-121, -902,
9945		61, -23,
9946		-63, 7,
9947		69, 479,
9948		-224, 228,
9949		-7, 500,
9950		0, -429,
9951		-42, 193,
9952		-92, 37,
9953		67, 5,
9954		-350, -31,
9955		0, 67,
9956		-55, -5,
9957		0, 47,
9958		-36, 53,
9959		5, 561,
9960		0, -126,
9961		0, 871,
9962		-52, 4,
9963		-201, 116922, -22, 371352,
9964		-12, -1473285,
9965		0, 87,
9966		-164, 84,
9967		-3, 422,
9968		30, 1434,
9969		-26, 38,
9970		2, -1249943,
9971		-404, -34,
9972		-57, 79,
9973		5, 509,
9974		1, 131,
9975		-344, 168,
9976		112, 22540, 30, 71218,
9977		18, -283983,
9978		0, -851,
9979		0, -1538,
9980		0, 1360,
9981		-12, 51,
9982		-48, 68,
9983		88, -20,
9984		1, 63,
9985		0, -568,
9986		303, 25,
9987		0, -122,
9988		87, 586, -606, -14,
9989		0, -100,
9990		-85, 8,
9991		-165, 54,
9992		-45, 140,
9993		0, -54,
9994		4, -831, 1, 3495,
9995		31, 116,
9996		-46, -11,
9997		-371, 190,
9998		-507, 399,
9999		-2, 57,
10000		-60, 36,
10001		-198, -1174, -613, 4988,
10002		-87, -4,
10003		141, 560, -276, 187,
10004		1876, 1379, 778, 4386,
10005		24, -15,
10006		167, -774,
10007		-71, -9,
10008		-62, 90,
10009		98, 580, -663, -7,
10010		34, -112,
10011		57, 15,
10012		-355, -214,
10013		-3240, -13605, 12229, -5723,
10014		3496, 7063,
10015		33, -51,
10016		1908, 1160, -226, 715,
10017		964, 1170, -1264, 623,
10018		14071, 5280, 5614, 3026,
10019		488, 1576, -2, 226395859,
10020		824, 1106, -1287, 617,
10021		1917, 1156, -214, 718,
10022		90, -97,
10023		12078, -2366, 3282, 6668,
10024		-219, 9179, 593, 2015,
10025		-282, -186,
10026		57, 25,
10027		31, -102,
10028		-77, -4,
10029		-268, -341, -7, -45,
10030		-3, 74,
10031		15, -615,
10032		-88, -7,
10033		234, -353,
10034		1, -119,
10035		-163, -1159, -601, 4969,
10036		22, -58,
10037		-17, -11434,
10038		17, 54,
10039		348, 348, -460, 434,
10040		-371, 175,
10041		-11, -204,
10042		4, -6440,
10043		-5, -53,
10044		-4, -14388, -37, -45231,
10045		-7, 179562,
10046		-44, 136,
10047		-160, 49,
10048		-101, 81,
10049		-1, -188,
10050		0, 2,
10051		-4, 12124, -11, -25217,
10052		71, 543, -557, -14,
10053		-75, 526,
10054		0, 395274,
10055		-233, -16,
10056		93, -20,
10057		-43, 61,
10058		0, -1275,
10059		0, -824,
10060		1, -415, 0, 1762,
10061		-261, 131,
10062		-45, 64,
10063		-297, -25,
10064		0, -17533,
10065		-6, -56,
10066		21, 1100,
10067		1, 327,
10068		1, 66,
10069		23, -217,
10070		-83, -7,
10071		83, 86847, 49, 275754,
10072		-4, -1093857,
10073		-46, 2,
10074		0, -24,
10075		0, -419,
10076		0, -5833,
10077		1, 506,
10078		0, -827,
10079		-1, -377,
10080		-11, -78,
10081		0, 131945,
10082		-2, -334,
10083		1, -75,
10084		0, -72,
10085		0, -213,
10086		-6, 5564, -2, -11618,
10087		0, 1790,
10088		0, -131,
10089		0, 6,
10090		0, -76,
10091		0, -130,
10092		0, -1115, 0, 4783,
10093		0, -195,
10094		0, -627,
10095		0, -55,
10096		0, -83,
10097		0, 163,
10098		0, -54,
10099		0, 82,
10100		0, 149,
10101		0, -754, 0, 1578,
10102		0, 138,
10103		0, 68,
10104		2, -2506, 0, 3399,
10105		0, -125,
10106		86, 16,
10107		0, -6350, 0, 27316,
10108		18, -63,
10109		0, -169,
10110		-1, 46,
10111		-136, -21,
10112		0, -239,
10113		-30, -8788, -15, -40549,
10114		-4, 80514,
10115		-46, -8,
10116		-168, -6,
10117		-1, 536, 0, -2314,
10118		9, 148,
10119		-13, -842,
10120		-1, 307713,
10121		-23, -175,
10122		95, 15,
10123		0, -297,
10124		11, 1341,
10125		0, -106,
10126		0, 5,
10127		-4, 68,
10128		-114, 10,
10129		32, 75,
10130		159, -130487, 98, -413967,
10131		2, 1647339,
10132		-4, -85,
10133		100, -46,
10134		2, 95,
10135		-11, 461,
10136		51, 1647,
10137		0, -32090,
10138		-375, -33,
10139		-65, 86,
10140		-300, 180,
10141		0, 836, 0, -3576,
10142		0, -222,
10143		0, -993,
10144		-41, 60,
10145		0, -4537,
10146		-431, -34,
10147		2, 927, 0, -1931,
10148		-79, 33,
10149		-31, 144,
10150		-1, 284, 0, -1207,
10151		0, 88,
10152		-11, 315,
10153		-178, 177,
10154		-1, 144,
10155		-58, 986,
10156		11, 86,
10157		-228, -110,
10158		2636, -494, 718, 1474,
10159		28, -35,
10160		-24, 782, -797, 277,
10161		2142, -1231, 856, 1853,
10162		74, 10797, 0, 23699298,
10163		-21, 786, -796, 277,
10164		27, -34,
10165		2615, -494, 712, 1461,
10166		-226, -109,
10167		-11, 663,
10168		0, -123,
10169		-169, 157,
10170		-54, 266,
10171		0, -76,
10172		1, -634, 0, 2738,
10173		-25, 106,
10174		-63, 24,
10175		0, -372,
10176		-221, -24,
10177		0, -5356,
10178		0, -219,
10179		0, 91,
10180		-28, 7684, -6, 24391,
10181		-1, -96795,
10182		-77, 43,
10183		2, 95,
10184		-47, -3,
10185		0, -84530,
10186		2, 310,
10187		1, 88,
10188		111, 19331, 32, 61306,
10189		4, -243595,
10190		0, 770,
10191		0, -103,
10192		0, 160,
10193		0, 356,
10194		0, 236,
10195		-41, 354,
10196		39, 303,
10197		12, -56,
10198		873, -143, 238, 482,
10199		-28, 35,
10200		-93, 31,
10201		-3, 7690211,
10202		-91, 33,
10203		-34, 43,
10204		824, -130, 226, 450,
10205		-39, 341,
10206		-1, -687,
10207		0, -303,
10208		11, -2935, 1, 12618,
10209		121, 924, 9, -1836,
10210		-268, -1144, -678, 3685,
10211		-69, -261,
10212		0, -4115951,
10213		-69, -261,
10214		5, -151,
10215		0, -88,
10216		0, 91,
10217		0, 187,
10218		0, -1281,
10219		1, 77,
10220		1, 6059, 3, 19238,
10221		0, -76305,
10222		0, -90,
10223		0, -238,
10224		0, -962, 0, 4133,
10225		0, 96,
10226		0, 9483,
10227		0, 85,
10228		0, -688,
10229		0, -5607,
10230		0, 55,
10231		0, -752,
10232		0, 71,
10233		0, 303,
10234		0, -288,
10235		0, 57,
10236		0, 45,
10237		0, 189,
10238		0, 401,
10239		0, -1474, 0, 3087,
10240		0, -71,
10241		0, 2925,
10242		0, -75,
10243		0, 359,
10244		0, 55,
10245		1, -10155, 0, 43735,
10246		0, -572,
10247		0, -49,
10248		0, -660,
10249		0, -3591, 0, 7516,
10250		0, 668,
10251		-1, -53,
10252		-2, 384259,
10253		0, -163,
10254		0, -93,
10255		1, 112,
10256		-95, -11528, -22, -36505,
10257		-1, 145308,
10258		5, 145,
10259		0, 4047,
10260		1, 1483, 0, -6352,
10261		0, 991, 0, -4262,
10262		0, -93,
10263		0, -334,
10264		0, -160,
10265		0, -153,
10266		-10, 127,
10267		51, 185,
10268		-77, 18,
10269		56, 1217, 6, 1919574,
10270		-74, 17,
10271		50, 180,
10272		-5, 93,
10273		0, -104,
10274		0, -58,
10275		-3, -353, -1, 1499,
10276		0, -229,
10277		-15, 86,
10278		0, -93657,
10279		0, 1561, 0, -6693,
10280		0, -5839,
10281		1, 6791, 0, -29143,
10282		1, -701, 0, 3015,
10283		0, 2543,
10284		0, 693,
10285		-1, 361233,
10286		0, -50,
10287		0, 946,
10288		-1, -140,
10289		-70, 407,
10290		0, -450995,
10291		0, -368,
10292		0, 54,
10293		0, -802,
10294		0, -96,
10295		0, 1274, 0, -5459,
10296		0, -614, 0, 2633,
10297		0, 685,
10298		0, -915,
10299		0, -85,
10300		0, 88,
10301		0, 106,
10302		0, 928,
10303		0, -726, 0, 1523,
10304		0, 5715,
10305		0, -4338, 0, 18706,
10306		0, -135,
10307		0, -132,
10308		0, -158,
10309		0, -98,
10310		0, 680,
10311		-1, 138968,
10312		0, -192,
10313		0, -1698,
10314		0, -2734, 0, 11769,
10315		0, 4,
10316		0, 673, 0, -2891,
10317		0, 889, 0, -3821,
10318		0, 121,
10319		-1, 143783,
10320		0, 231,
10321		-9, 51,
10322		0, -57413,
10323		0, -483,
10324		0, -407,
10325		0, 676, 0, -2902,
10326		0, 531,
10327		0, 445,
10328		0, 672,
10329		0, 19336,
10330		0, 70,
10331		0, -39976,
10332		0, -68,
10333		0, 4203,
10334		0, -406,
10335		0, 446,
10336		0, -108,
10337		0, 79,
10338		0, 84,
10339		0, 734,
10340		0, 255,
10341		0, 3944,
10342		0, -655, 0, 2825,
10343		0, -109,
10344		0, -234,
10345		0, 57,
10346		0, 19773,
10347		0, -2013,
10348		0, 958,
10349		0, -521,
10350		0, -757,
10351		0, 10594,
10352		0, -9901,
10353		0, 199,
10354		0, -275,
10355		0, 64,
10356		0, 54,
10357		0, 165,
10358		0, 1110,
10359		0, -3286,
10360		0, 909,
10361		0, 54,
10362		0, 87,
10363		0, 258,
10364		0, 1261,
10365		0, -51,
10366		0, 336,
10367		0, -114,
10368		0, 2185,
10369		0, -850,
10370		0, 75,
10371		0, -69,
10372		0, -103,
10373		0, 776,
10374		0, -1238,
10375		0, 137,
10376		0, 67,
10377		0, -260,
10378		0, 130,
10379		0, 49,
10380		0, 228,
10381		0, 215,
10382		0, -178,
10383		0, 57,
10384		0, -133
10385	],
10386	lat_tbl: [],
10387	rad_tbl: [
10388		-5422, -2120, 1077, 772,
10389		39, 75, 3, 10,
10390		-468, -326, -113, -78,
10391		-4, -2,
10392		1, 3,
10393		29, 24, 4, 2,
10394		1, 0,
10395		-9, 7, -2, 0,
10396		-32, -13, -3, -3,
10397		233, 126, 89, 77,
10398		-33, 16,
10399		3, -3, 0, -1,
10400		2, 0,
10401		0, 1,
10402		4, 9, 1, 1,
10403		16, -1, 0, 18,
10404		3, 2,
10405		0, 0,
10406		0, 0,
10407		0, 0,
10408		0, 0,
10409		0, -1,
10410		-22, -5,
10411		10, 3, 1, 1,
10412		-15, 7, -2, 1,
10413		-8, -11, -1, -2,
10414		-1, 1,
10415		46, -58, 126, -23,
10416		4, 8,
10417		35, 8, 10, -17,
10418		0, 0,
10419		0, 0,
10420		-10, -7,
10421		0, 0,
10422		-23, 3, 151, 10,
10423		-327, 0,
10424		4, -5, 6, 5,
10425		1, 0,
10426		-1, -3,
10427		0, 0,
10428		0, 1,
10429		-185, 0,
10430		-3, -24, -5, -2,
10431		-1062, 3, 4560, 0,
10432		-3, 0,
10433		4, 1,
10434		8, -1, 2, 4,
10435		0, 1,
10436		0, -1,
10437		0, 0,
10438		-1, 0,
10439		0, 1,
10440		0, 0,
10441		-1, -1,
10442		277, 3, -583, 1,
10443		-1, 4, -32, 7,
10444		0, -34,
10445		1, -1,
10446		-23685, 0,
10447		-1, -2,
10448		-1, -7,
10449		-5, -4,
10450		0, 2,
10451		-2, 0,
10452		-5, -1,
10453		35, 0,
10454		0, 2,
10455		202, 0,
10456		180, 0,
10457		0, -1,
10458		-3, -6,
10459		-193, 0, 770, -1,
10460		-2, -4,
10461		-32, 23, -28, -46,
10462		-13, -9,
10463		-54, 10, -1, -61,
10464		-44895, 0,
10465		-230, 5,
10466		-1, -4,
10467		-71, 0,
10468		-15, 0,
10469		1, 0,
10470		15, 11, -3, 6,
10471		2, -3, 4, -1,
10472		2576, -138, -19881, -47,
10473		-65906, -1, 261925, -4,
10474		-2, -7, 4, -2,
10475		0, 0,
10476		-1, 0,
10477		1, -3,
10478		172, -2, -727, 0,
10479		4, 1,
10480		324, 0,
10481		-139, 1,
10482		1, 3,
10483		-276, 0,
10484		5, 3,
10485		9, 0,
10486		-1, 10,
10487		-37, 0,
10488		5, -1,
10489		76, -10,
10490		1318810, 1,
10491		12, -1,
10492		-38, 1,
10493		-141, 0, 611, 0,
10494		0, -11,
10495		4, 0,
10496		-627, 2, -2882, -3,
10497		5711, -2,
10498		-48, -7,
10499		55294, 0,
10500		2, -7,
10501		31, 0,
10502		34, 0,
10503		-259, 0,
10504		-55, 2,
10505		6, 3,
10506		-4273, 20, -13554, 3,
10507		53878, 0,
10508		-46, 0,
10509		-85, 0, 114, 0,
10510		-45, 0,
10511		-818, 0, 3520, 0,
10512		34, 0,
10513		-157, 0,
10514		29, 0,
10515		-878, 0, 1838, 0,
10516		-428, 0,
10517		161, 0,
10518		24, 0,
10519		65, 0,
10520		19, 0,
10521		15, 0,
10522		12, 0,
10523		-26, 0,
10524		-14, 0,
10525		-149, 0,
10526		584, 0, -793, 0,
10527		4, -23,
10528		-238, 0,
10529		-18, -5,
10530		45, 0,
10531		-7, 42,
10532		79, 0,
10533		-1723, 0,
10534		2895, -6, 13362, -4,
10535		-26525, -1,
10536		-2, 57,
10537		291, 0,
10538		52, -3,
10539		-327, 5,
10540		-2755, 0,
10541		-63, 9,
10542		5, -33,
10543		-261, -1, 1122, 0,
10544		621, -4,
10545		-227, 0,
10546		1077, 0,
10547		-167, 0,
10548		85, 0,
10549		-4, 23,
10550		-5, 32,
10551		3, 30,
10552		-32, 14,
10553		64607, 141, 204958, 59,
10554		-815115, 2,
10555		-37, -1,
10556		15, -15,
10557		12, 24,
10558		48, -1,
10559		235, 4,
10560		843, -25,
10561		4621, 0,
10562		-17, 191,
10563		45, 34,
10564		95, 159,
10565		-132, 0,
10566		13, 20,
10567		32, 0,
10568		-540, 0,
10569		29, 0,
10570		37, 25,
10571		8, 19,
10572		22127, 0,
10573		-35, -5,
10574		232, -48, 7, 262,
10575		5428, 3, -11342, 1,
10576		-45, 0,
10577		-21, -49,
10578		-100, -21,
10579		-626, 1, 2665, 0,
10580		532, -2,
10581		235, -12,
10582		-111, -105,
10583		774, 1,
10584		-283, 17,
10585		29, 20,
10586		3, 27,
10587		47, -2,
10588		-43, -192, -87, 136,
10589		-269, -1264, 646, -330,
10590		-79, 73, -33, -9,
10591		60, -205, 61, 4,
10592		-584, -85, -182, -555,
10593		-780, -57, -3488, -45,
10594		-19818328, -4,
10595		583, 93, 182, 555,
10596		-59, 208, -60, -4,
10597		23, 17,
10598		235, 1133, -608, 302,
10599		41, 174, 84, -137,
10600		6, -53,
10601		63, 13,
10602		-392, 52,
10603		-10, -27,
10604		-3, -27,
10605		199, -31,
10606		99, 97,
10607		-218, -3,
10608		209, 0,
10609		84, 18,
10610		16, 40,
10611		2, -30,
10612		14, -154,
10613		30, 0,
10614		-2, 24,
10615		-108, 0,
10616		-24, -16,
10617		262, -2,
10618		55, 0,
10619		-304, 0,
10620		2, 25,
10621		55112, 95, 175036, 11,
10622		-694477, 5,
10623		41, 0,
10624		-38, -76,
10625		199, 1,
10626		679, -14,
10627		-17, -12,
10628		582619, 1,
10629		-16, 191,
10630		38, 27,
10631		-234, 2,
10632		-60, 0,
10633		80, 163,
10634		-10296, 48, -32526, 13,
10635		129703, 8,
10636		-1366, 0,
10637		-741, 0,
10638		-646, 0,
10639		25, 6,
10640		33, 23,
10641		10, 43,
10642		-31, 0,
10643		-6, 0,
10644		-12, 147,
10645		59, 0,
10646		287, -42, -7, 297,
10647		-59, 0,
10648		-4, -42,
10649		-27, -81,
10650		-69, -22,
10651		27, 0,
10652		-423, -2, 1779, -1,
10653		-57, 15,
10654		5, -23,
10655		94, 182,
10656		-197, -250,
10657		24, 1,
10658		-18, -30,
10659		581, -98, -2473, -303,
10660		-2, 43,
10661		-277, 70, -92, -136,
10662		-681, 925, -2165, 384,
10663		-8, -12,
10664		382, 82,
10665		-4, 35,
10666		-45, -31,
10667		-286, 48, 3, -328,
10668		-55, -17,
10669		8, -28,
10670		-106, 175,
10671		-6735, 1601, -2832, -6052,
10672		3495, -1730,
10673		-25, -17,
10674		-574, 944, -354, -112,
10675		-579, 476, -308, -625,
10676		-2411, 7074, -1529, 2828,
10677		-1335, 247, -112000844, -1,
10678		545, -409, 305, 637,
10679		572, -950, 356, 106,
10680		48, 44,
10681		1170, 5974, -3298, 1624,
10682		-4538, -106, -996, 294,
10683		92, -139,
10684		-12, 28,
10685		50, 16,
10686		2, -38,
10687		169, -133, 22, -3,
10688		38, 1,
10689		305, 7,
10690		4, -44,
10691		175, 116,
10692		59, 1,
10693		-573, 81, 2453, 297,
10694		29, 11,
10695		5674, -8,
10696		-27, 9,
10697		173, -173, 215, 228,
10698		-87, -184,
10699		102, -5,
10700		3206, 2,
10701		-53, 2,
10702		7159, -7, 22505, -19,
10703		-89344, -3,
10704		67, 22,
10705		24, 79,
10706		-40, -50,
10707		94, 0,
10708		186, 0,
10709		-6063, 0, 12612, -5,
10710		-271, 35, 7, -278,
10711		-479, -74,
10712		426754, 0,
10713		8, -116,
10714		-10, -47,
10715		-31, -22,
10716		645, 0,
10717		426, 0,
10718		-213, 0, 903, 0,
10719		-67, -133,
10720		-33, -23,
10721		13, -152,
10722		-9316, 0,
10723		29, -3,
10724		-564, 11,
10725		-167, 0,
10726		-34, 0,
10727		114, 12,
10728		4, -44,
10729		-44561, 42, -141493, 25,
10730		561256, -2,
10731		-1, -24,
10732		-261, 0,
10733		211, 0,
10734		-4263, 0,
10735		-262, 1,
10736		1842, 0,
10737		202, 0,
10738		41, -6,
10739		77165, 0,
10740		176, -1,
10741		39, 1,
10742		-24, 0,
10743		118, 0,
10744		-2991, -4, 6245, -1,
10745		46886, 0,
10746		-75, 0,
10747		-100, 0,
10748		40, 0,
10749		75, 0,
10750		-618, 0, 2652, 0,
10751		112, 0,
10752		1780, 0,
10753		30, 0,
10754		49, 0,
10755		86, 0,
10756		33, 0,
10757		-30, 0,
10758		-95, 0,
10759		277, 0, -580, 0,
10760		-35, 0,
10761		-319, 0,
10762		1622, 1, -2201, 0,
10763		79, 0,
10764		10, -57,
10765		2363, 0, -10162, 0,
10766		-41, -12,
10767		62, 0,
10768		30, 1,
10769		-14, 89,
10770		-2721, 0,
10771		5780, -19, 26674, -10,
10772		-52964, -2,
10773		-5, 30,
10774		-4, 111,
10775		-317, -1, 1369, 0,
10776		93, -6,
10777		-564, 9,
10778		-115913, 0,
10779		-113, 15,
10780		10, -62,
10781		99, 0,
10782		891, -7,
10783		36, 0,
10784		108, 0,
10785		-42, -2,
10786		7, 75,
10787		-50, 21,
10788		86822, 104, 275441, 65,
10789		-1096109, 1,
10790		-56, 3,
10791		31, 66,
10792		63, -1,
10793		307, 7,
10794		1097, -34,
10795		17453, 0,
10796		-22, 250,
10797		57, 43,
10798		120, 200,
10799		-297, 0, 1269, 0,
10800		166, 0,
10801		-662, 0,
10802		40, 28,
10803		1521, 0,
10804		-23, 288,
10805		351, -2, -729, 0,
10806		-22, -52,
10807		-96, -21,
10808		-139, -1, 589, 0,
10809		35, 0,
10810		210, 7,
10811		-118, -119,
10812		62, 0,
10813		-583, -26,
10814		-42, 5,
10815		-73, 152,
10816		-330, -1759, 983, -479,
10817		-23, -19,
10818		-522, -15, -185, -533,
10819		739, 1559, -1300, 614,
10820		-7332, 52, -15836758, 0,
10821		524, 16, 185, 532,
10822		23, 18,
10823		330, 1751, -978, 476,
10824		73, -151,
10825		519, 18,
10826		38, 0,
10827		105, 113,
10828		-178, -37,
10829		26, 0,
10830		262, 1, -1139, 0,
10831		71, 17,
10832		16, 42,
10833		151, 0,
10834		16, -148,
10835		4147, 0,
10836		149, 0,
10837		-30, 0,
10838		2980, 9, 9454, 2,
10839		-37519, 0,
10840		-28, -49,
10841		37, -1,
10842		2, -31,
10843		33870, 0,
10844		-208, 1,
10845		-59, 1,
10846		-13105, 68, -41564, 21,
10847		165148, 3,
10848		-1022, 0,
10849		-40, 0,
10850		-132, 0,
10851		-228, 0,
10852		95, 0,
10853		-138, -16,
10854		-126, 16,
10855		24, 5,
10856		-57, -346, 191, -94,
10857		-14, -11,
10858		-12, -37,
10859		-3053364, -1,
10860		13, 36,
10861		17, 13,
10862		51, 327, -179, 90,
10863		138, 16,
10864		233, 0,
10865		62, 0,
10866		1164, 0, -5000, 0,
10867		-407, 117, 770, 9,
10868		-4, 1, 21, 2,
10869		1, 0,
10870		-16869, 0,
10871		-1, 0,
10872		1, 0,
10873		35, 0,
10874		-78, 0,
10875		78, 0,
10876		-533, 0,
10877		-31, 1,
10878		-2448, -6, -7768, -1,
10879		30812, 0,
10880		37, 0,
10881		-227, 0,
10882		197, 0, -846, 0,
10883		-77, 0,
10884		4171, 0,
10885		-67, 0,
10886		287, 0,
10887		2532, 0,
10888		-19, 0,
10889		-40, 0,
10890		-56, 0,
10891		128, 0,
10892		83, 0,
10893		-45, 0,
10894		-36, 0,
10895		-92, 0,
10896		-134, 0,
10897		714, 0, -1495, 0,
10898		32, 0,
10899		-981, 0,
10900		15, 0,
10901		-166, 0,
10902		-59, 0,
10903		4923, 0, -21203, 0,
10904		246, 0,
10905		15, 0,
10906		104, 0,
10907		1683, 0, -3523, 0,
10908		-865, 0,
10909		-25, 1,
10910		-186329, -1,
10911		10, 0,
10912		50, 0,
10913		53, 0,
10914		5455, -45, 17271, -10,
10915		-68747, 0,
10916		69, -2,
10917		-7604, 0,
10918		-724, 1, 3101, 0,
10919		-46, 0, 200, 0,
10920		-44, 0,
10921		97, 0,
10922		-53, 0,
10923		62, 0,
10924		-54, -4,
10925		88, -24,
10926		-9, -36,
10927		-581, 27, -914711, 3,
10928		8, 35,
10929		-86, 24,
10930		51, 3,
10931		48, 0,
10932		26, 0,
10933		133, 1, -577, 0,
10934		105, 0,
10935		-3, -1,
10936		3194, 0,
10937		528, 0, -2263, 0,
10938		2028, 0,
10939		-3266, 1, 14016, 0,
10940		10, 0, -41, 0,
10941		-100, 0,
10942		-32, 0,
10943		-124348, 0,
10944		16, 0,
10945		-325, 0,
10946		50, -1,
10947		1, 0,
10948		-553, 0,
10949		0, 0,
10950		0, 0,
10951		2, 0,
10952		-34, 0,
10953		-444, 0, 1902, 0,
10954		9, 0, -37, 0,
10955		254, 0,
10956		156, 0,
10957		-2, 0,
10958		-35, 0,
10959		-48, 0,
10960		-368, 0,
10961		327, 0, -686, 0,
10962		-2263, 0,
10963		1952, 0, -8418, 0,
10964		-13, 0,
10965		52, 0,
10966		9, 0,
10967		21, 0,
10968		-261, 0,
10969		-62404, 0,
10970		0, 0,
10971		79, 0,
10972		1056, 0, -4547, 0,
10973		-351, 0,
10974		-305, 0, 1310, 0,
10975		-1, 0, 6, 0,
10976		0, 0,
10977		-55953, 0,
10978		-80, 0,
10979		0, 0,
10980		168, 0,
10981		-147, 0,
10982		127, 0,
10983		-265, 0, 1138, 0,
10984		-1, 0,
10985		-9, 0,
10986		-8, 0,
10987		-5984, 0,
10988		-22, 0,
10989		-5, 0,
10990		0, 0,
10991		0, 0,
10992		127, 0,
10993		-2, 0,
10994		10, 0,
10995		-31, 0,
10996		-29, 0,
10997		-286, 0,
10998		-98, 0,
10999		-1535, 0,
11000		252, 0, -1087, 0,
11001		43, 0,
11002		4, 0,
11003		-19, 0,
11004		-7620, 0,
11005		29, 0,
11006		-322, 0,
11007		203, 0,
11008		0, 0,
11009		-3587, 0,
11010		10, 0,
11011		0, 0,
11012		94, 0,
11013		0, 0,
11014		-1, 0,
11015		-1, 0,
11016		-315, 0,
11017		1, 0,
11018		0, 0,
11019		0, 0,
11020		-30, 0,
11021		-94, 0,
11022		-460, 0,
11023		1, 0,
11024		-114, 0,
11025		0, 0,
11026		-746, 0,
11027		4, 0,
11028		-23, 0,
11029		24, 0,
11030		0, 0,
11031		-237, 0,
11032		1, 0,
11033		0, 0,
11034		-18, 0,
11035		0, 0,
11036		0, 0,
11037		-16, 0,
11038		-76, 0,
11039		-67, 0,
11040		0, 0,
11041		-16, 0,
11042		0, 0
11043	],
11044	arg_tbl: [
11045		0, 3,
11046		3, 4, 3, -8, 4, 3, 5, 1,
11047		2, 2, 5, -5, 6, 2,
11048		5, -1, 10, 2, 13, -1, 11, 3, 3, -7, 4, 0,
11049		3, 1, 13, -1, 11, 2, 5, 1,
11050		2, 4, 5, -10, 6, 0,
11051		4, 2, 10, -2, 13, 14, 3, -23, 4, 1,
11052		3, 3, 2, -7, 3, 4, 4, 1,
11053		3, -1, 13, 18, 2, -16, 3, 2,
11054		2, 8, 2, -13, 3, 1,
11055		5, 2, 10, -2, 13, 2, 3, -3, 5, 1, 6, 0,
11056		3, -1, 13, 26, 2, -29, 3, 0,
11057		3, 1, 10, -1, 11, 2, 4, 1,
11058		4, 1, 10, -1, 13, 3, 2, -4, 3, 1,
11059		4, 1, 10, -1, 13, 3, 3, -4, 4, 0,
11060		3, -1, 10, 15, 2, -12, 3, 0,
11061		4, 2, 10, -3, 13, 24, 2, -24, 3, 0,
11062		3, -1, 10, 23, 2, -25, 3, 0,
11063		4, 1, 10, -1, 11, 1, 3, 1, 6, 0,
11064		4, 2, 10, -2, 11, 5, 2, -6, 3, 0,
11065		4, 2, 10, -2, 13, 6, 2, -8, 3, 0,
11066		4, -2, 10, 1, 13, 12, 2, -8, 3, 1,
11067		5, -1, 10, 1, 13, -1, 11, 20, 2, -20, 3, 1,
11068		4, -2, 10, 1, 13, 3, 1, -1, 3, 1,
11069		5, 2, 10, -2, 13, 2, 3, -5, 5, 5, 6, 0,
11070		4, 2, 10, -2, 13, 2, 3, -3, 5, 1,
11071		4, 2, 10, -2, 13, 6, 3, -8, 4, 0,
11072		4, -2, 10, 1, 13, 20, 2, -21, 3, 1,
11073		4, 1, 10, -1, 11, 1, 3, 1, 5, 0,
11074		1, 1, 6, 0,
11075		4, 2, 10, -2, 13, 5, 3, -6, 4, 0,
11076		3, 3, 2, -5, 3, 2, 5, 0,
11077		2, -1, 11, 1, 14, 1,
11078		4, 2, 10, -2, 13, 2, 3, -2, 5, 0,
11079		2, 1, 3, -2, 4, 1,
11080		4, 1, 10, -1, 11, 5, 2, -7, 3, 0,
11081		1, 1, 5, 0,
11082		2, 7, 3, -13, 4, 0,
11083		4, -2, 10, 1, 13, 15, 2, -13, 3, 0,
11084		4, 2, 10, -2, 13, 3, 2, -3, 3, 0,
11085		2, -2, 11, 2, 14, 1,
11086		3, 1, 10, 1, 12, -1, 13, 1,
11087		3, -1, 13, 21, 2, -21, 3, 0,
11088		2, 3, 2, -5, 3, 0,
11089		2, 2, 3, -4, 4, 1,
11090		2, 5, 2, -8, 3, 0,
11091		3, -1, 13, 23, 2, -24, 3, 0,
11092		2, 6, 3, -11, 4, 0,
11093		1, 2, 5, 0,
11094		2, 3, 3, -6, 4, 0,
11095		2, 5, 3, -9, 4, 0,
11096		4, 1, 10, -1, 11, 1, 3, -2, 5, 0,
11097		3, 2, 10, 2, 12, -2, 13, 1,
11098		2, 2, 2, -3, 3, 2,
11099		2, 4, 3, -7, 4, 0,
11100		2, 2, 13, -2, 11, 0,
11101		2, 3, 3, -5, 4, 0,
11102		2, 1, 2, -2, 3, 0,
11103		2, 2, 3, -3, 4, 0,
11104		4, 1, 10, -1, 11, 4, 2, -5, 3, 0,
11105		2, 1, 3, -1, 4, 0,
11106		2, 4, 2, -6, 3, 0,
11107		4, 2, 10, -2, 13, 2, 2, -2, 3, 0,
11108		3, 1, 10, -1, 11, 1, 2, 0,
11109		2, 1, 2, -1, 3, 0,
11110		3, 1, 12, 2, 13, -2, 11, 0,
11111		2, 5, 3, -8, 4, 0,
11112		2, 1, 3, -3, 5, 0,
11113		3, 2, 10, 1, 12, -2, 13, 1,
11114		2, 4, 3, -6, 4, 0,
11115		2, 1, 3, -2, 5, 1,
11116		2, 3, 3, -4, 4, 0,
11117		2, 3, 2, -4, 3, 1,
11118		2, 1, 10, -1, 13, 0,
11119		2, 1, 3, -1, 5, 0,
11120		2, 1, 3, -2, 6, 0,
11121		2, 2, 3, -2, 4, 0,
11122		2, 1, 3, -1, 6, 0,
11123		2, 8, 2, -14, 3, 0,
11124		3, 1, 3, 2, 5, -5, 6, 1,
11125		3, 5, 3, -8, 4, 3, 5, 1,
11126		1, 1, 12, 3,
11127		3, 3, 3, -8, 4, 3, 5, 1,
11128		3, 1, 3, -2, 5, 5, 6, 0,
11129		2, 8, 2, -12, 3, 0,
11130		2, 1, 3, 1, 5, 0,
11131		3, 2, 10, 1, 12, -2, 11, 1,
11132		2, 5, 2, -7, 3, 0,
11133		3, 1, 10, 1, 13, -2, 11, 0,
11134		2, 2, 2, -2, 3, 0,
11135		2, 5, 3, -7, 4, 0,
11136		3, 1, 12, -2, 13, 2, 11, 0,
11137		2, 4, 3, -5, 4, 0,
11138		2, 3, 3, -3, 4, 0,
11139		1, 1, 2, 0,
11140		3, 3, 10, 1, 12, -3, 13, 0,
11141		2, 2, 3, -4, 5, 0,
11142		2, 2, 3, -3, 5, 0,
11143		2, 2, 10, -2, 13, 0,
11144		2, 2, 3, -2, 5, 0,
11145		2, 3, 2, -3, 3, 0,
11146		3, 1, 10, -1, 12, -1, 13, 1,
11147		2, 2, 3, -1, 5, 0,
11148		2, 2, 3, -2, 6, 0,
11149		1, 2, 12, 2,
11150		3, -2, 10, 1, 11, 1, 14, 0,
11151		2, 2, 10, -2, 11, 0,
11152		2, 2, 2, -1, 3, 0,
11153		4, -2, 10, 2, 13, 1, 2, -1, 3, 0,
11154		2, 4, 2, -4, 3, 0,
11155		2, 3, 10, -3, 13, 0,
11156		4, -2, 10, 2, 13, 1, 3, -1, 5, 0,
11157		2, 3, 3, -3, 5, 0,
11158		3, 2, 10, -1, 12, -2, 13, 2,
11159		3, 3, 10, -1, 13, -2, 11, 0,
11160		1, 3, 12, 1,
11161		4, -2, 10, 2, 13, 2, 2, -2, 3, 0,
11162		3, 2, 10, -1, 12, -2, 11, 1,
11163		2, 5, 2, -5, 3, 0,
11164		2, 4, 10, -4, 13, 0,
11165		2, 6, 2, -6, 3, 0,
11166		3, 2, 10, -2, 12, -2, 13, 1,
11167		3, 4, 10, -2, 13, -2, 11, 0,
11168		3, 2, 10, -2, 12, -2, 11, 0,
11169		2, 7, 2, -7, 3, 0,
11170		3, 2, 10, -3, 12, -2, 13, 0,
11171		2, 8, 2, -8, 3, 0,
11172		2, 9, 2, -9, 3, 0,
11173		2, 10, 2, -10, 3, 0,
11174		3, 2, 10, -4, 12, -1, 13, 0,
11175		3, 4, 10, -2, 12, -3, 13, 0,
11176		4, 4, 10, -1, 12, -1, 13, -2, 11, 0,
11177		3, 2, 10, -3, 12, -1, 13, 1,
11178		4, -2, 10, 1, 13, 3, 3, -2, 5, 0,
11179		3, 4, 10, -1, 12, -3, 13, 0,
11180		4, -2, 10, 1, 13, 3, 3, -3, 5, 0,
11181		4, 2, 10, -2, 12, 1, 13, -2, 11, 0,
11182		4, -2, 10, 1, 13, 2, 2, -1, 3, 0,
11183		3, 3, 10, -1, 12, -2, 11, 0,
11184		3, 4, 10, -1, 13, -2, 11, 0,
11185		3, 2, 10, -2, 12, -1, 13, 2,
11186		4, -2, 10, 1, 13, 2, 3, -1, 5, 0,
11187		3, 3, 10, -1, 12, -2, 13, 0,
11188		4, -2, 10, 1, 13, 3, 2, -3, 3, 0,
11189		4, -2, 10, 1, 13, 2, 3, -2, 5, 0,
11190		2, 4, 10, -3, 13, 0,
11191		4, -2, 10, 1, 13, 2, 3, -3, 5, 0,
11192		3, -2, 10, 1, 13, 1, 2, 0,
11193		4, 2, 10, -1, 12, 1, 13, -2, 11, 1,
11194		4, -2, 10, 1, 13, 2, 2, -2, 3, 0,
11195		2, 3, 12, -1, 13, 0,
11196		2, 3, 10, -2, 11, 0,
11197		2, 1, 10, -2, 12, 0,
11198		4, 4, 10, 1, 12, -1, 13, -2, 11, 0,
11199		3, -1, 13, 3, 2, -2, 3, 0,
11200		3, -1, 13, 3, 3, -2, 5, 0,
11201		3, -2, 10, 18, 2, -15, 3, 0,
11202		5, 2, 10, -1, 13, 3, 3, -8, 4, 3, 5, 0,
11203		3, 2, 10, -1, 12, -1, 13, 2,
11204		5, -2, 10, 1, 13, 5, 3, -8, 4, 3, 5, 0,
11205		5, -2, 10, 1, 13, 1, 3, 2, 5, -5, 6, 0,
11206		4, 2, 10, -2, 13, 18, 2, -17, 3, 0,
11207		4, -2, 10, 1, 13, 1, 3, -1, 6, 0,
11208		4, -2, 10, 1, 13, 2, 3, -2, 4, 0,
11209		4, -2, 10, 1, 13, 1, 3, -1, 5, 0,
11210		2, 3, 10, -2, 13, 0,
11211		4, -2, 10, 1, 13, 3, 2, -4, 3, 0,
11212		4, -2, 10, 1, 13, 3, 3, -4, 4, 0,
11213		4, -2, 10, 1, 13, 1, 3, -2, 5, 0,
11214		3, 4, 10, 1, 12, -3, 13, 0,
11215		4, -2, 10, 1, 13, 1, 3, -3, 5, 0,
11216		3, -1, 13, 4, 2, -4, 3, 0,
11217		4, -2, 10, 1, 13, 1, 2, -1, 3, 0,
11218		4, -2, 10, 1, 13, 1, 3, -1, 4, 0,
11219		4, -2, 10, 1, 13, 2, 3, -3, 4, 0,
11220		4, -2, 10, 1, 13, 3, 3, -5, 4, 0,
11221		3, 2, 10, 1, 13, -2, 11, 0,
11222		4, -2, 10, -1, 13, 1, 11, 1, 14, 0,
11223		4, -2, 10, 1, 13, 2, 2, -3, 3, 1,
11224		2, 2, 12, -1, 13, 1,
11225		3, 3, 10, 1, 12, -2, 11, 0,
11226		4, 2, 10, -1, 13, 2, 3, -4, 4, 0,
11227		4, 2, 10, -1, 13, 3, 2, -5, 3, 0,
11228		2, 1, 10, -1, 12, 1,
11229		3, -1, 13, 3, 2, -3, 3, 0,
11230		3, -2, 10, 1, 13, 1, 5, 0,
11231		4, 2, 10, -1, 13, 1, 3, -2, 4, 0,
11232		3, -1, 13, 2, 3, -2, 5, 0,
11233		4, 2, 10, -1, 13, -1, 11, 1, 14, 0,
11234		3, -1, 13, 5, 3, -6, 4, 0,
11235		3, -2, 10, 1, 13, 1, 6, 0,
11236		3, -1, 10, 1, 3, -1, 5, 0,
11237		4, -2, 10, 1, 13, 8, 2, -13, 3, 1,
11238		3, -2, 10, 18, 2, -16, 3, 1,
11239		5, -2, 10, 1, 13, 3, 2, -7, 3, 4, 4, 1,
11240		4, 2, 10, -1, 13, 2, 5, -5, 6, 1,
11241		5, 2, 10, -1, 13, 4, 3, -8, 4, 3, 5, 1,
11242		2, 2, 10, -1, 13, 2,
11243		5, -2, 10, 1, 13, 4, 3, -8, 4, 3, 5, 1,
11244		4, -2, 10, 1, 13, 2, 5, -5, 6, 1,
11245		5, 2, 10, -1, 13, 3, 2, -7, 3, 4, 4, 0,
11246		4, 2, 10, -2, 13, 18, 2, -16, 3, 1,
11247		4, 2, 10, -1, 13, 8, 2, -13, 3, 1,
11248		3, -1, 10, 3, 2, -4, 3, 0,
11249		3, -1, 13, 6, 2, -8, 3, 0,
11250		3, -1, 13, 2, 3, -3, 5, 0,
11251		3, -1, 13, 6, 3, -8, 4, 0,
11252		3, 2, 10, -1, 13, 1, 6, 0,
11253		4, -2, 10, 1, 13, -1, 11, 1, 14, 0,
11254		4, -2, 10, 1, 13, 1, 3, -2, 4, 0,
11255		3, 2, 10, -1, 13, 1, 5, 0,
11256		3, 3, 10, 1, 12, -2, 13, 0,
11257		4, -2, 10, 1, 13, 3, 2, -5, 3, 0,
11258		4, -2, 10, 1, 13, 2, 3, -4, 4, 0,
11259		2, -1, 13, 1, 2, 0,
11260		4, 2, 10, -1, 13, 2, 2, -3, 3, 0,
11261		3, -1, 10, 1, 2, -1, 3, 0,
11262		3, -1, 13, 4, 2, -5, 3, 0,
11263		3, 2, 10, -3, 13, 2, 11, 0,
11264		4, 2, 10, -1, 13, 2, 3, -3, 4, 0,
11265		3, -1, 13, 2, 2, -2, 3, 0,
11266		4, 2, 10, -1, 13, 1, 2, -1, 3, 0,
11267		4, 2, 10, 1, 12, 1, 13, -2, 11, 0,
11268		3, -2, 13, 18, 2, -15, 3, 0,
11269		2, 1, 12, -1, 13, 2,
11270		3, -1, 13, 1, 3, -1, 6, 0,
11271		4, 2, 10, -1, 13, 1, 3, -2, 5, 0,
11272		3, -1, 13, 2, 3, -2, 4, 0,
11273		3, -1, 13, 1, 3, -1, 5, 0,
11274		4, 2, 10, -1, 13, 3, 3, -4, 4, 0,
11275		1, 1, 10, 0,
11276		3, -1, 13, 3, 2, -4, 3, 0,
11277		3, -1, 13, 3, 3, -4, 4, 0,
11278		4, 2, 10, -1, 13, 1, 3, -1, 5, 0,
11279		4, 2, 10, -1, 13, 2, 3, -2, 4, 0,
11280		3, -1, 13, 1, 3, -2, 5, 0,
11281		3, 2, 10, 1, 12, -1, 13, 2,
11282		3, 1, 12, 1, 13, -2, 11, 0,
11283		3, -1, 13, 1, 2, -1, 3, 0,
11284		4, 2, 10, -1, 13, 2, 2, -2, 3, 0,
11285		3, -1, 13, 4, 2, -6, 3, 0,
11286		3, -1, 13, 2, 3, -3, 4, 0,
11287		3, 1, 13, 1, 2, -2, 3, 0,
11288		4, 2, 10, -1, 13, 3, 3, -3, 4, 0,
11289		2, 3, 13, -2, 11, 0,
11290		4, 2, 10, -1, 13, 4, 2, -5, 3, 0,
11291		3, 1, 10, 1, 2, -1, 3, 0,
11292		3, -1, 13, 2, 2, -3, 3, 1,
11293		3, 2, 10, 2, 12, -3, 13, 0,
11294		3, 2, 10, -1, 13, 1, 2, 0,
11295		3, 1, 13, 2, 3, -4, 4, 0,
11296		3, 1, 13, 3, 2, -5, 3, 0,
11297		2, 21, 2, -21, 3, 0,
11298		3, 1, 10, 1, 12, -2, 13, 1,
11299		4, 2, 10, -1, 13, 2, 3, -4, 5, 0,
11300		4, 2, 10, -1, 13, 7, 3, -10, 4, 0,
11301		2, -1, 13, 1, 5, 0,
11302		3, 1, 13, 1, 3, -2, 4, 0,
11303		4, 2, 10, -3, 13, 2, 3, -2, 5, 0,
11304		3, 1, 10, 1, 3, -2, 5, 0,
11305		3, 1, 13, -1, 11, 1, 14, 1,
11306		2, -1, 13, 1, 6, 0,
11307		4, 2, 10, -1, 13, 6, 3, -8, 4, 1,
11308		4, 2, 10, -1, 13, 2, 3, -3, 5, 1,
11309		3, -1, 13, 8, 3, -15, 4, 0,
11310		4, 2, 10, -1, 13, 6, 2, -8, 3, 0,
11311		5, 2, 10, -1, 13, -2, 11, 5, 2, -6, 3, 0,
11312		3, 1, 10, 3, 3, -4, 4, 0,
11313		3, 1, 10, 3, 2, -4, 3, 1,
11314		4, 1, 10, -1, 13, -1, 11, 2, 4, 0,
11315		3, -2, 13, 26, 2, -29, 3, 0,
11316		3, -1, 13, 8, 2, -13, 3, 0,
11317		3, -2, 13, 18, 2, -16, 3, 2,
11318		4, -1, 13, 3, 2, -7, 3, 4, 4, 0,
11319		3, 1, 13, 2, 5, -5, 6, 1,
11320		4, 1, 13, 4, 3, -8, 4, 3, 5, 1,
11321		1, 1, 13, 3,
11322		4, -1, 13, 4, 3, -8, 4, 3, 5, 1,
11323		3, -1, 13, 2, 5, -5, 6, 1,
11324		4, 1, 13, 3, 2, -7, 3, 4, 4, 0,
11325		2, 18, 2, -16, 3, 1,
11326		3, 1, 13, 8, 2, -13, 3, 2,
11327		2, 26, 2, -29, 3, 0,
11328		4, 1, 10, 1, 13, -1, 11, 2, 4, 0,
11329		5, 2, 10, 1, 13, -2, 11, 5, 2, -6, 3, 0,
11330		3, 1, 13, 8, 3, -15, 4, 1,
11331		4, 2, 10, -3, 13, 2, 3, -3, 5, 0,
11332		3, 1, 10, 1, 3, -1, 5, 0,
11333		2, 1, 13, 1, 6, 0,
11334		4, 2, 10, -1, 13, 5, 3, -6, 4, 0,
11335		3, 1, 10, 2, 3, -2, 4, 0,
11336		3, -1, 13, -1, 11, 1, 14, 1,
11337		4, 2, 10, -1, 13, 2, 3, -5, 6, 0,
11338		4, 2, 10, -1, 13, 2, 3, -2, 5, 0,
11339		5, 2, 10, -1, 13, 2, 3, -4, 5, 5, 6, 0,
11340		3, -1, 13, 1, 3, -2, 4, 1,
11341		2, 1, 13, 1, 5, 0,
11342		4, 2, 10, -1, 13, 4, 3, -4, 4, 0,
11343		4, 2, 10, -1, 13, 3, 2, -3, 3, 0,
11344		4, 2, 10, 2, 12, -1, 13, -2, 11, 0,
11345		2, 1, 10, 1, 12, 2,
11346		3, -1, 13, 3, 2, -5, 3, 0,
11347		3, -1, 13, 2, 3, -4, 4, 0,
11348		4, 2, 10, -1, 13, 2, 3, -1, 5, 0,
11349		4, 2, 10, -1, 13, 2, 3, -2, 6, 0,
11350		3, 1, 10, 1, 12, -2, 11, 0,
11351		3, 2, 10, 2, 12, -1, 13, 1,
11352		3, 1, 13, 2, 2, -3, 3, 1,
11353		3, -1, 13, 1, 11, 1, 14, 0,
11354		2, 1, 13, -2, 11, 0,
11355		4, 2, 10, -1, 13, 5, 2, -6, 3, 0,
11356		3, -1, 13, 1, 2, -2, 3, 0,
11357		3, 1, 13, 2, 3, -3, 4, 0,
11358		3, 1, 13, 1, 2, -1, 3, 0,
11359		4, 2, 10, -1, 13, 4, 2, -4, 3, 0,
11360		3, 2, 10, 1, 12, -3, 13, 1,
11361		3, 1, 13, 1, 3, -2, 5, 0,
11362		3, 1, 13, 3, 3, -4, 4, 0,
11363		3, 1, 13, 3, 2, -4, 3, 0,
11364		2, 1, 10, -2, 13, 0,
11365		4, 2, 10, -1, 13, 3, 3, -4, 5, 0,
11366		3, 1, 13, 1, 3, -1, 5, 0,
11367		3, 1, 13, 2, 3, -2, 4, 0,
11368		3, 1, 13, 1, 3, -1, 6, 0,
11369		4, 2, 10, -1, 13, 3, 3, -3, 5, 0,
11370		4, 2, 10, -1, 13, 6, 2, -7, 3, 0,
11371		2, 1, 12, 1, 13, 2,
11372		4, 2, 10, -1, 13, 3, 3, -2, 5, 0,
11373		4, 2, 10, 1, 12, -1, 13, -2, 11, 0,
11374		2, 1, 10, 2, 12, 0,
11375		2, 1, 10, -2, 11, 0,
11376		3, 1, 13, 2, 2, -2, 3, 0,
11377		3, 1, 12, -1, 13, 2, 11, 0,
11378		4, 2, 10, -1, 13, 5, 2, -5, 3, 0,
11379		3, 1, 13, 2, 3, -3, 5, 0,
11380		2, 2, 10, -3, 13, 0,
11381		3, 1, 13, 2, 3, -2, 5, 0,
11382		3, 1, 13, 3, 2, -3, 3, 0,
11383		3, 1, 10, -1, 12, -2, 13, 0,
11384		4, 2, 10, -1, 13, 6, 2, -6, 3, 0,
11385		2, 2, 12, 1, 13, 1,
11386		3, 2, 10, -1, 13, -2, 11, 0,
11387		3, 1, 10, -1, 12, -2, 11, 0,
11388		3, 2, 10, 1, 13, -4, 11, 0,
11389		3, 1, 13, 4, 2, -4, 3, 0,
11390		4, 2, 10, -1, 13, 7, 2, -7, 3, 0,
11391		3, 2, 10, -1, 12, -3, 13, 1,
11392		2, 3, 12, 1, 13, 0,
11393		4, 2, 10, -1, 12, -1, 13, -2, 11, 0,
11394		3, 1, 13, 5, 2, -5, 3, 0,
11395		4, 2, 10, -1, 13, 8, 2, -8, 3, 0,
11396		3, 2, 10, -2, 12, -3, 13, 0,
11397		4, 2, 10, -1, 13, 9, 2, -9, 3, 0,
11398		3, 4, 10, -3, 12, -2, 13, 0,
11399		2, 2, 10, -4, 12, 0,
11400		3, 4, 10, -2, 12, -2, 13, 1,
11401		2, 6, 10, -4, 13, 0,
11402		3, 4, 10, -1, 12, -2, 11, 0,
11403		2, 2, 10, -3, 12, 1,
11404		3, 3, 10, -2, 12, -1, 13, 0,
11405		3, -2, 10, 3, 3, -2, 5, 0,
11406		3, 4, 10, -1, 12, -2, 13, 1,
11407		3, -2, 10, 3, 3, -3, 5, 0,
11408		2, 5, 10, -3, 13, 0,
11409		3, -2, 10, 4, 2, -4, 3, 0,
11410		3, -2, 10, 2, 2, -1, 3, 0,
11411		2, 4, 10, -2, 11, 0,
11412		2, 2, 10, -2, 12, 2,
11413		3, -2, 10, 3, 3, -2, 4, 0,
11414		3, -2, 10, 2, 3, -1, 5, 0,
11415		3, 3, 10, -1, 12, -1, 13, 1,
11416		3, -2, 10, 3, 2, -3, 3, 0,
11417		3, -2, 10, 2, 3, -2, 5, 0,
11418		2, 4, 10, -2, 13, 0,
11419		3, -2, 10, 2, 3, -3, 5, 0,
11420		2, -2, 10, 1, 2, 0,
11421		4, 2, 10, -1, 12, 2, 13, -2, 11, 0,
11422		3, -2, 10, 2, 2, -2, 3, 0,
11423		3, 3, 10, 1, 13, -2, 11, 0,
11424		3, 4, 10, 1, 12, -2, 11, 0,
11425		4, 2, 10, -1, 12, -1, 11, 1, 14, 0,
11426		4, -2, 10, -1, 13, 18, 2, -15, 3, 0,
11427		4, 2, 10, 3, 3, -8, 4, 3, 5, 0,
11428		2, 2, 10, -1, 12, 2,
11429		4, -2, 10, 5, 3, -8, 4, 3, 5, 0,
11430		4, 2, 10, -1, 13, 18, 2, -17, 3, 0,
11431		3, -2, 10, 1, 3, -1, 6, 0,
11432		3, -2, 10, 2, 3, -2, 4, 0,
11433		3, -2, 10, 1, 3, -1, 5, 0,
11434		2, 3, 10, -1, 13, 0,
11435		3, -2, 10, 3, 2, -4, 3, 0,
11436		3, -2, 10, 3, 3, -4, 4, 0,
11437		3, -2, 10, 1, 3, -2, 5, 0,
11438		3, 4, 10, 1, 12, -2, 13, 1,
11439		4, 2, 10, -1, 12, -2, 13, 2, 11, 0,
11440		3, -2, 10, 1, 2, -1, 3, 0,
11441		3, -2, 10, 2, 3, -3, 4, 0,
11442		3, 2, 10, 2, 13, -2, 11, 0,
11443		3, -2, 10, 2, 2, -3, 3, 0,
11444		2, 2, 12, -2, 13, 1,
11445		3, 2, 10, 2, 3, -4, 4, 0,
11446		3, 2, 10, 3, 2, -5, 3, 0,
11447		3, 1, 10, -1, 12, 1, 13, 1,
11448		3, -2, 13, 3, 2, -3, 3, 0,
11449		2, -2, 10, 1, 5, 0,
11450		3, 2, 10, 1, 3, -2, 4, 0,
11451		3, -2, 13, 2, 3, -2, 5, 0,
11452		3, 2, 10, -1, 11, 1, 14, 0,
11453		4, 4, 10, -2, 13, 2, 3, -3, 5, 0,
11454		3, -2, 10, 8, 2, -13, 3, 0,
11455		4, -2, 10, -1, 13, 18, 2, -16, 3, 1,
11456		4, -2, 10, 3, 2, -7, 3, 4, 4, 0,
11457		4, 2, 10, 4, 3, -8, 4, 3, 5, 1,
11458		1, 2, 10, 3,
11459		4, -2, 10, 4, 3, -8, 4, 3, 5, 1,
11460		4, 2, 10, 3, 2, -7, 3, 4, 4, 0,
11461		4, 2, 10, -1, 13, 18, 2, -16, 3, 1,
11462		3, 2, 10, 8, 2, -13, 3, 0,
11463		3, -2, 10, -1, 11, 1, 14, 0,
11464		4, 4, 10, -2, 13, 2, 3, -2, 5, 0,
11465		3, -2, 10, 1, 3, -2, 4, 0,
11466		2, 2, 10, 1, 5, 0,
11467		4, 4, 10, -2, 13, 3, 2, -3, 3, 0,
11468		3, 3, 10, 1, 12, -1, 13, 1,
11469		3, -2, 10, 3, 2, -5, 3, 0,
11470		3, -2, 10, 2, 3, -4, 4, 0,
11471		3, 4, 10, 2, 12, -2, 13, 0,
11472		3, 2, 10, 2, 2, -3, 3, 0,
11473		3, 2, 10, -2, 13, 2, 11, 0,
11474		3, 2, 10, 
114741, 2, -1, 3, 0,
11475		4, 2, 10, 1, 12, 2, 13, -2, 11, 0,
11476		2, 1, 12, -2, 13, 2,
11477		3, 2, 10, 1, 3, -2, 5, 0,
11478		3, -2, 13, 1, 3, -1, 5, 0,
11479		3, 2, 10, 3, 2, -4, 3, 0,
11480		2, 1, 10, 1, 13, 0,
11481		3, 2, 10, 1, 3, -1, 5, 0,
11482		3, 2, 10, 2, 3, -2, 4, 0,
11483		2, 2, 10, 1, 12, 2,
11484		2, 1, 12, -2, 11, 0,
11485		3, -2, 13, 1, 2, -1, 3, 0,
11486		3, 1, 10, -1, 13, 2, 11, 0,
11487		3, 2, 10, 2, 2, -2, 3, 0,
11488		3, 1, 10, 1, 12, -3, 13, 0,
11489		3, 2, 13, -1, 11, 1, 14, 0,
11490		3, 2, 10, 2, 3, -3, 5, 0,
11491		3, 2, 10, 6, 2, -8, 3, 0,
11492		3, -3, 13, 18, 2, -16, 3, 1,
11493		3, 2, 13, 2, 5, -5, 6, 0,
11494		4, 2, 13, 4, 3, -8, 4, 3, 5, 0,
11495		1, 2, 13, 0,
11496		4, -2, 13, 4, 3, -8, 4, 3, 5, 0,
11497		3, -2, 13, 2, 5, -5, 6, 0,
11498		3, 1, 13, 18, 2, -16, 3, 1,
11499		3, -2, 13, -1, 11, 1, 14, 0,
11500		3, 2, 10, 2, 3, -2, 5, 0,
11501		3, 2, 10, 3, 2, -3, 3, 0,
11502		3, 1, 10, 1, 12, 1, 13, 1,
11503		2, 2, 10, 2, 12, 1,
11504		2, 1, 11, 1, 14, 1,
11505		4, -1, 13, -2, 11, 18, 2, -16, 3, 0,
11506		1, 2, 11, 0,
11507		4, -1, 13, 2, 11, 18, 2, -16, 3, 0,
11508		2, -3, 11, 1, 14, 0,
11509		3, 2, 13, 1, 2, -1, 3, 0,
11510		3, 2, 10, 4, 2, -4, 3, 0,
11511		3, 2, 10, 1, 12, -4, 13, 0,
11512		2, 1, 10, -3, 13, 0,
11513		3, 2, 13, 1, 3, -1, 5, 0,
11514		2, 1, 12, 2, 13, 2,
11515		3, 1, 10, 2, 12, 1, 13, 0,
11516		3, 1, 10, -1, 13, -2, 11, 0,
11517		2, 1, 12, 2, 11, 1,
11518		3, 2, 10, 5, 2, -5, 3, 0,
11519		2, 2, 10, -4, 13, 0,
11520		3, 2, 10, 6, 2, -6, 3, 0,
11521		2, 2, 12, 2, 13, 0,
11522		3, 2, 10, -2, 13, -2, 11, 0,
11523		2, 2, 12, 2, 11, 0,
11524		2, 2, 10, -4, 11, 0,
11525		3, 2, 10, 7, 2, -7, 3, 0,
11526		3, 2, 10, -1, 12, -4, 13, 0,
11527		4, 2, 10, -1, 12, -2, 13, -2, 11, 0,
11528		3, 2, 10, 8, 2, -8, 3, 0,
11529		3, 2, 10, 9, 2, -9, 3, 0,
11530		3, 4, 10, -3, 12, -1, 13, 0,
11531		3, 6, 10, -1, 12, -3, 13, 0,
11532		3, 4, 10, -2, 12, -1, 13, 1,
11533		3, 5, 10, -1, 12, -2, 13, 0,
11534		2, 6, 10, -3, 13, 0,
11535		4, 4, 10, -1, 12, 1, 13, -2, 11, 0,
11536		3, 2, 10, -3, 12, 1, 13, 0,
11537		2, 3, 10, -2, 12, 0,
11538		3, 4, 10, -1, 12, -1, 13, 1,
11539		2, 5, 10, -2, 13, 0,
11540		3, 6, 10, 1, 12, -3, 13, 0,
11541		3, 4, 10, 1, 13, -2, 11, 0,
11542		3, 2, 10, -2, 12, 1, 13, 1,
11543		2, 3, 10, -1, 12, 0,
11544		4, -2, 10, -1, 13, 2, 3, -2, 5, 0,
11545		2, 4, 10, -1, 13, 0,
11546		4, 2, 10, -2, 12, -1, 13, 2, 11, 0,
11547		3, 4, 10, -3, 13, 2, 11, 0,
11548		4, -2, 10, -1, 13, 2, 2, -2, 3, 0,
11549		3, 2, 10, -1, 12, 1, 13, 2,
11550		4, -2, 10, -1, 13, 1, 3, -1, 5, 0,
11551		1, 3, 10, 0,
11552		3, 4, 10, 1, 12, -1, 13, 1,
11553		4, 2, 10, -1, 12, -1, 13, 2, 11, 1,
11554		4, -2, 10, -1, 13, 1, 2, -1, 3, 0,
11555		3, 2, 10, 3, 13, -2, 11, 0,
11556		2, 2, 12, -3, 13, 0,
11557		3, 1, 10, -1, 12, 2, 13, 0,
11558		4, 2, 10, 1, 13, -1, 11, 1, 14, 0,
11559		4, -2, 10, -2, 13, 18, 2, -16, 3, 0,
11560		5, 2, 10, 1, 13, 4, 3, -8, 4, 3, 5, 0,
11561		2, 2, 10, 1, 13, 1,
11562		5, -2, 10, -1, 13, 4, 3, -8, 4, 3, 5, 0,
11563		3, 2, 10, 18, 2, -16, 3, 0,
11564		4, -2, 10, -1, 13, -1, 11, 1, 14, 0,
11565		4, 4, 10, -1, 13, 2, 3, -2, 5, 0,
11566		4, 4, 10, -1, 13, 3, 2, -3, 3, 0,
11567		2, 3, 10, 1, 12, 1,
11568		3, 4, 10, 2, 12, -1, 13, 0,
11569		4, 2, 10, -1, 13, 1, 11, 1, 14, 0,
11570		3, 2, 10, -1, 13, 2, 11, 0,
11571		2, 1, 12, -3, 13, 1,
11572		2, 1, 10, 2, 13, 0,
11573		3, 2, 10, 1, 12, 1, 13, 1,
11574		3, 1, 12, -1, 13, -2, 11, 1,
11575		2, 1, 10, 2, 11, 0,
11576		4, 2, 10, 1, 12, -1, 13, 2, 11, 0,
11577		1, 3, 13, 0,
11578		4, 2, 10, 1, 13, 2, 3, -2, 5, 0,
11579		3, 1, 10, 1, 12, 2, 13, 0,
11580		3, 2, 10, 2, 12, 1, 13, 0,
11581		3, 1, 13, 1, 11, 1, 14, 0,
11582		2, 1, 13, 2, 11, 0,
11583		3, 1, 10, 1, 12, 2, 11, 0,
11584		4, 2, 10, 2, 12, -1, 13, 2, 11, 0,
11585		2, 1, 13, -4, 11, 0,
11586		2, 1, 10, -4, 13, 0,
11587		2, 1, 12, 3, 13, 1,
11588		3, 1, 12, 1, 13, 2, 11, 1,
11589		2, 2, 10, -5, 13, 0,
11590		3, 2, 10, -3, 13, -2, 11, 0,
11591		3, 2, 10, -1, 13, -4, 11, 0,
11592		3, 6, 10, -2, 12, -2, 13, 0,
11593		2, 4, 10, -3, 12, 0,
11594		3, 6, 10, -1, 12, -2, 13, 0,
11595		2, 4, 10, -2, 12, 1,
11596		2, 6, 10, -2, 13, 0,
11597		2, 4, 10, -1, 12, 1,
11598		2, 5, 10, -1, 13, 0,
11599		3, 6, 10, 1, 12, -2, 13, 0,
11600		4, 4, 10, -1, 12, -2, 13, 2, 11, 0,
11601		3, 4, 10, 2, 13, -2, 11, 0,
11602		3, 2, 10, -2, 12, 2, 13, 0,
11603		1, 4, 10, 0,
11604		3, 2, 10, -2, 12, 2, 11, 0,
11605		3, 4, 10, -2, 13, 2, 11, 0,
11606		3, 2, 10, -1, 12, 2, 13, 1,
11607		2, 3, 10, 1, 13, 0,
11608		2, 4, 10, 1, 12, 1,
11609		3, 2, 10, -1, 12, 2, 11, 1,
11610		3, 3, 10, -1, 13, 2, 11, 0,
11611		2, 2, 10, 2, 13, 0,
11612		3, 3, 10, 1, 12, 1, 13, 0,
11613		3, 2, 10, 1, 11, 1, 14, 0,
11614		2, 2, 10, 2, 11, 0,
11615		2, 1, 12, -4, 13, 0,
11616		2, 1, 10, 3, 13, 0,
11617		3, 2, 10, 1, 12, 2, 13, 1,
11618		3, 1, 12, -2, 13, -2, 11, 0,
11619		3, 1, 10, 1, 13, 2, 11, 0,
11620		3, 2, 10, 1, 12, 2, 11, 0,
11621		1, 4, 13, 0,
11622		3, 1, 10, 1, 12, 3, 13, 0,
11623		2, 2, 13, 2, 11, 0,
11624		4, 1, 10, 1, 12, 1, 13, 2, 11, 0,
11625		1, 4, 11, 0,
11626		2, 1, 12, 4, 13, 0,
11627		3, 1, 12, 2, 13, 2, 11, 0,
11628		3, 2, 10, -4, 13, -2, 11, 0,
11629		3, 6, 10, -2, 12, -1, 13, 0,
11630		2, 8, 10, -3, 13, 0,
11631		3, 6, 10, -1, 12, -1, 13, 0,
11632		3, 4, 10, -2, 12, 1, 13, 0,
11633		2, 6, 10, -1, 13, 0,
11634		3, 4, 10, -1, 12, 1, 13, 1,
11635		3, 6, 10, 1, 12, -1, 13, 0,
11636		4, 4, 10, -1, 12, -1, 13, 2, 11, 0,
11637		3, 2, 10, -2, 12, 3, 13, 0,
11638		2, 4, 10, 1, 13, 0,
11639		3, 4, 10, -1, 13, 2, 11, 0,
11640		3, 2, 10, -1, 12, 3, 13, 0,
11641		3, 4, 10, 1, 12, 1, 13, 0,
11642		4, 2, 10, -1, 12, 1, 13, 2, 11, 0,
11643		2, 2, 10, 3, 13, 0,
11644		3, 2, 10, 1, 13, 2, 11, 0,
11645		3, 2, 10, -1, 13, 4, 11, 0,
11646		3, 2, 10, 1, 12, 3, 13, 0,
11647		3, 1, 12, -3, 13, -2, 11, 0,
11648		3, 1, 10, 2, 13, 2, 11, 0,
11649		4, 2, 10, 1, 12, 1, 13, 2, 11, 0,
11650		1, 5, 13, 0,
11651		2, 3, 13, 2, 11, 0,
11652		2, 1, 13, 4, 11, 0,
11653		3, 1, 12, 3, 13, 2, 11, 0,
11654		2, 8, 10, -2, 13, 0,
11655		2, 6, 10, -1, 12, 0,
11656		1, 6, 10, 0,
11657		3, 6, 10, -2, 13, 2, 11, 0,
11658		3, 4, 10, -1, 12, 2, 13, 0,
11659		3, 4, 10, -1, 12, 2, 11, 0,
11660		2, 4, 10, 2, 13, 0,
11661		2, 4, 10, 2, 11, 0,
11662		3, 2, 10, -1, 12, 4, 13, 0,
11663		3, 4, 10, 1, 12, 2, 13, 0,
11664		4, 2, 10, -1, 12, 2, 13, 2, 11, 0,
11665		2, 2, 10, 4, 13, 0,
11666		3, 2, 10, 2, 13, 2, 11, 0,
11667		2, 2, 10, 4, 11, 0,
11668		1, 6, 13, 0,
11669		2, 4, 13, 2, 11, 0,
11670		2, 2, 13, 4, 11, 0,
11671		3, 6, 10, -1, 12, 1, 13, 0,
11672		2, 6, 10, 1, 13, 0,
11673		2, 4, 10, 3, 13, 0,
11674		3, 4, 10, 1, 13, 2, 11, 0,
11675		2, 2, 10, 5, 13, 0,
11676		3, 2, 10, 3, 13, 2, 11, 0,
11677		-1
11678	]
11679};
11680
11681$ns.moonlat = {
11682	maxargs: 14,
11683	max_harmonic: [0, 26, 29, 8, 3, 5, 0, 0, 0, 6, 5, 3, 5, 1, 0, 0, 0, 0],
11684	max_power_of_t: 3,
11685	distance: 2.5735686895300000e-03,
11686	timescale: 3.6525000000000000e+06,
11687	trunclvl: 1.0000000000000000e-04,
11688	lon_tbl: [
11689		-3, -4,
11690		4, -1856, 0, 8043,
11691		-9, -1082,
11692		-1, -310,
11693		-1, -522,
11694		-330, -1449, -853, 4656,
11695		-66, 7,
11696		-1, 9996928,
11697		-66, 6,
11698		23, 183,
11699		0, 173,
11700		0, -56,
11701		0, 50,
11702		0, -785,
11703		1, 51,
11704		0, -60,
vendor: 16,384 bytes, lines 11705-12425
11705		1, 11843, 0, -50754,
11706		0, 1834, 1, -7910,
11707		0, -48060,
11708		1, 56,
11709		0, 13141, -1, -56318,
11710		0, 2541,
11711		-1, -649,
11712		-133, 778,
11713		-46, 8,
11714		1, 1665737,
11715		-47, 7,
11716		0, 65,
11717		0, 45,
11718		0, -138,
11719		0, -1005,
11720		0, -2911,
11721		0, -47,
11722		0, 96,
11723		0, -394,
11724		2, 76,
11725		2, -17302, 0, 74337,
11726		0, -101,
11727		0, 58,
11728		0, -171,
11729		0, -77,
11730		0, -1283, 0, 2686,
11731		0, -55,
11732		0, 99,
11733		0, 55,
11734		0, 397,
11735		0, 540,
11736		0, 626,
11737		-1, -5188, 0, 10857,
11738		0, -216,
11739		-2, -123,
11740		0, 6337,
11741		2, 224,
11742		-152, -23472, -29, -74336, 0, 295775,
11743		-20, 149,
11744		-2, 84,
11745		9, 304,
11746		0, -3051,
11747		-70, -6,
11748		-57, 34,
11749		0, -638,
11750		0, -201,
11751		-73, 9,
11752		0, -100,
11753		-101, -8,
11754		0, -57,
11755		0, -207,
11756		-3, 80,
11757		-45, 45,
11758		-5, 102,
11759		-59, -23,
11760		52, 201,
11761		-48, 233, -220, 71,
11762		4, 2810, 0, 6236541,
11763		-61, 218, -216, 67,
11764		51, 201,
11765		-59, -23,
11766		-144, -837, -457, 3029,
11767		-45, 42,
11768		-15, 73,
11769		-6, -169,
11770		0, 135,
11771		-64, -7,
11772		0, -16245,
11773		0, -81,
11774		-74, -10,
11775		0, 702, 0, -3013,
11776		0, -5889,
11777		1, 141,
11778		58, 9598, 12, 30443, 1, -120946,
11779		-1, -84,
11780		-2, 11246, -1, -48391,
11781		0, 1393,
11782		0, 200,
11783		-136, -17,
11784		0, 558,
11785		-64, -8,
11786		0, -71,
11787		0, 317577,
11788		-28, 183,
11789		1, 219,
11790		0, 421,
11791		0, -133,
11792		501, -139,
11793		3, 354,
11794		-101, -13,
11795		74, 7,
11796		144, -84,
11797		59, -2,
11798		1, 64,
11799		-2931, 12559, -4641, 2638, -303, -2058,
11800		-13, -100, -123, -79,
11801		-19214, 6084, 1494, 26993, 15213, -82219,
11802		42, 52, 48, -101,
11803		-53, -4,
11804		4, 47,
11805		58, -131,
11806		46, 14,
11807		-21, -6,
11808		-1311, -8791, 10198, -4185, 2815, 5640,
11809		167, 422, -229, 83,
11810		3140, 39, 1221, 120, 96, -30,
11811		-1, 184612405,
11812		187, 416, -226, 81,
11813		-1985, -10083, 9983, -4464, 2807, 5643,
11814		-21, -9,
11815		113, -367,
11816		120, 580, -667, 27,
11817		8, 66,
11818		-56, -6,
11819		337, 95,
11820		-87, 3303,
11821		-1, 65,
11822		68, -374,
11823		0, -574,
11824		15, -94,
11825		0, -53,
11826		0, -1303,
11827		0, -236,
11828		283, 36,
11829		-1, -54,
11830		269, -35,
11831		0, -83,
11832		0, -52,
11833		0, 730, 0, -3129,
11834		0, 813,
11835		0, -4299,
11836		1, 59,
11837		-6, 5130, 1, 16239, -1, -64603,
11838		0, -80,
11839		91, 12,
11840		0, -561,
11841		133, -17,
11842		0, 250,
11843		-12, 71,
11844		0, 155664,
11845		82, -11,
11846		0, 106,
11847		0, -604,
11848		0, 21862,
11849		55, -7,
11850		0, -1514, 0, 6501,
11851		0, 906,
11852		0, -68,
11853		0, 241,
11854		0, 366,
11855		0, 70,
11856		0, -1382, 0, 5957,
11857		0, 113,
11858		0, -51,
11859		0, -55,
11860		0, 731,
11861		0, -264,
11862		0, 65788,
11863		1, -1504, 0, 3147,
11864		0, 217,
11865		0, -4105, 0, 17658,
11866		1, 69,
11867		0, -3518,
11868		0, -1767,
11869		-43, -7044, -10, -22304, 0, 88685,
11870		3, 91,
11871		0, -485,
11872		0, -57,
11873		-1, 333548,
11874		-24, 172,
11875		11, 544, 1, -1132,
11876		0, 353,
11877		0, -188,
11878		0, 53,
11879		0, 77,
11880		158, -887,
11881		35, 131,
11882		-54, 13,
11883		0, 1994821,
11884		-53, 14,
11885		36, 125,
11886		2, 56,
11887		0, -243,
11888		0, -364,
11889		-2, 1916, 0, -8227,
11890		0, 15700, -1, -67308,
11891		1, 66,
11892		0, -53686,
11893		1, 3058, 1, -13177,
11894		0, -72,
11895		0, -72,
11896		0, 61,
11897		0, 15812,
11898		0, 165,
11899		8, -96,
11900		318, 1341, 803, -4252,
11901		24, 193,
11902		1137, -226, 310, 622,
11903		-56, 30,
11904		-3, 10101666,
11905		-56, 30,
11906		1096, -225, 300, 600,
11907		-31, 409,
11908		-1, -507,
11909		0, -287,
11910		0, -1869, 0, 8026,
11911		1, 544, -1, -1133,
11912		0, 27984,
11913		0, -62,
11914		0, -249,
11915		0, 187,
11916		0, -1096,
11917		1, 53,
11918		2, 12388, 0, -53107,
11919		0, -322,
11920		0, -94,
11921		0, 15157,
11922		0, -582,
11923		0, 3291,
11924		0, 565,
11925		0, 106,
11926		0, 112,
11927		0, 306,
11928		0, 809,
11929		0, 130,
11930		0, -961, 0, 4149,
11931		0, 174,
11932		0, -105,
11933		0, 2196,
11934		0, 59,
11935		0, 36737,
11936		-1, -1832, 0, 3835,
11937		0, -139,
11938		0, 24138,
11939		0, 1325,
11940		1, 64,
11941		0, -361,
11942		0, -1162,
11943		-44, -6320, -10, -20003, 0, 79588,
11944		2, 80,
11945		0, -2059,
11946		0, -304,
11947		0, 21460,
11948		0, -166,
11949		0, -87,
11950		89, -493,
11951		32, 114,
11952		34, 510, 1, 1172616,
11953		31, 113,
11954		-1, 57,
11955		0, 214,
11956		0, -656,
11957		0, -646,
11958		0, 1850, 0, -7931,
11959		0, -6674,
11960		0, 2944, 0, -12641,
11961		0, 916,
11962		45, -255,
11963		16, 60,
11964		-1, 619116,
11965		16, 57,
11966		0, -58,
11967		0, 1045,
11968		0, -156,
11969		-15, 88,
11970		0, -62964,
11971		0, -126,
11972		0, 1490, 0, -6387,
11973		0, 119,
11974		0, 1338,
11975		0, -56,
11976		0, 204,
11977		0, 153,
11978		0, 940,
11979		0, 251,
11980		0, 312,
11981		0, 584,
11982		0, -786, 0, 3388,
11983		0, -52,
11984		0, 4733,
11985		0, 618,
11986		0, 29982,
11987		0, 101,
11988		0, -174,
11989		0, -2637, 0, 11345,
11990		0, -284,
11991		0, -524,
11992		0, -121,
11993		0, 1464,
11994		11, -60,
11995		-1, 151205,
11996		0, 139,
11997		0, -2448,
11998		0, -51,
11999		0, -768,
12000		0, -638,
12001		0, 552, 0, -2370,
12002		0, 70,
12003		0, 64,
12004		0, 57,
12005		0, 39840,
12006		0, 104,
12007		0, -10194,
12008		0, -635,
12009		0, 69,
12010		0, 113,
12011		0, 67,
12012		0, 96,
12013		0, 367,
12014		0, 134,
12015		0, 596,
12016		0, 63,
12017		0, 1622,
12018		0, 483,
12019		0, 72,
12020		0, 11917,
12021		0, -63,
12022		0, 1273,
12023		0, -66,
12024		0, -262,
12025		0, -97,
12026		0, 103,
12027		0, 15196,
12028		0, -1445,
12029		0, -66,
12030		0, -55,
12031		0, -323,
12032		0, 2632,
12033		0, -1179,
12034		0, 59,
12035		0, -56,
12036		0, 78,
12037		0, 65,
12038		0, 422,
12039		0, 309,
12040		0, 2125,
12041		0, -66,
12042		0, 124,
12043		0, -57,
12044		0, 1379,
12045		0, -304,
12046		0, 177,
12047		0, -118,
12048		0, 146,
12049		0, 283,
12050		0, 119
12051	],
12052	lat_tbl: [],
12053	rad_tbl: [],
12054	arg_tbl: [
12055		0, 1,
12056		3, 1, 10, 1, 12, -1, 11, 1,
12057		4, 2, 10, 2, 12, -1, 13, -1, 11, 0,
12058		5, 2, 10, -1, 13, -1, 11, 3, 2, -3, 3, 0,
12059		5, 2, 10, -1, 13, -1, 11, 2, 3, -2, 5, 0,
12060		2, -1, 13, 1, 14, 1,
12061		5, -1, 13, 1, 11, 4, 3, -8, 4, 3, 5, 0,
12062		2, 1, 13, -1, 11, 0,
12063		5, 1, 13, -1, 11, 4, 3, -8, 4, 3, 5, 0,
12064		5, 2, 10, -1, 13, -1, 11, 2, 3, -3, 5, 0,
12065		4, 1, 10, 1, 12, -2, 13, 1, 11, 0,
12066		4, 1, 13, -1, 11, 1, 2, -1, 3, 0,
12067		5, 2, 10, -1, 13, -1, 11, 2, 2, -2, 3, 0,
12068		3, 1, 10, -2, 13, 1, 11, 0,
12069		4, 1, 13, -1, 11, 1, 3, -1, 5, 0,
12070		4, -1, 13, 1, 11, 1, 2, -1, 3, 0,
12071		3, 1, 12, 1, 13, -1, 11, 1,
12072		4, 2, 10, 1, 12, -1, 13, -1, 11, 1,
12073		2, 1, 10, -1, 11, 0,
12074		4, -1, 13, 1, 11, 1, 3, -1, 5, 0,
12075		3, 1, 12, -1, 13, 1, 11, 1,
12076		3, 2, 10, -3, 13, 1, 11, 0,
12077		3, 2, 12, 1, 13, -1, 11, 0,
12078		3, -2, 10, 1, 13, 1, 14, 0,
12079		6, -2, 10, 1, 13, 1, 11, 4, 3, -8, 4, 3, 5, 0,
12080		3, 2, 10, -1, 13, -1, 11, 0,
12081		6, 2, 10, -1, 13, -1, 11, 4, 3, -8, 4, 3, 5, 0,
12082		4, -1, 13, 1, 11, 2, 3, -2, 5, 0,
12083		4, -1, 13, 1, 11, 3, 2, -3, 3, 0,
12084		3, 1, 10, -1, 12, -1, 11, 0,
12085		3, 2, 12, -1, 13, 1, 11, 0,
12086		3, 2, 10, 1, 13, -3, 11, 0,
12087		5, -2, 10, 1, 13, 1, 11, 1, 2, -1, 3, 0,
12088		4, 2, 10, -1, 12, -3, 13, 1, 11, 0,
12089		3, 3, 10, -2, 13, -1, 11, 0,
12090		5, -2, 10, 1, 13, 1, 11, 1, 3, -1, 5, 0,
12091		4, 2, 10, -1, 12, -1, 13, -1, 11, 1,
12092		2, 3, 10, -3, 11, 0,
12093		5, -2, 10, 1, 13, 1, 11, 2, 2, -2, 3, 0,
12094		4, 2, 10, -1, 12, 1, 13, -3, 11, 0,
12095		3, 4, 10, -3, 13, -1, 11, 0,
12096		4, 2, 10, -2, 12, -1, 13, -1, 11, 1,
12097		3, 4, 10, -1, 13, -3, 11, 0,
12098		4, 2, 10, -3, 12, -1, 13, -1, 11, 0,
12099		3, 4, 10, -1, 12, -3, 11, 0,
12100		3, 2, 10, -3, 12, -1, 11, 0,
12101		4, 4, 10, -1, 12, -2, 13, -1, 11, 0,
12102		2, 4, 10, -3, 11, 0,
12103		3, 2, 10, -2, 12, -1, 11, 1,
12104		4, 3, 10, -1, 12, -1, 13, -1, 11, 0,
12105		4, -2, 10, 1, 11, 2, 3, -2, 5, 0,
12106		3, 4, 10, -2, 13, -1, 11, 0,
12107		4, -2, 10, 1, 11, 2, 2, -2, 3, 0,
12108		3, 2, 10, -1, 12, -1, 11, 2,
12109		3, -2, 10, 1, 12, 1, 14, 0,
12110		4, -2, 10, 1, 11, 2, 3, -2, 4, 0,
12111		4, -2, 10, 1, 11, 1, 3, -1, 5, 0,
12112		3, 3, 10, -1, 13, -1, 11, 0,
12113		4, -2, 10, 1, 11, 3, 2, -4, 3, 0,
12114		4, -2, 10, 1, 11, 1, 3, -2, 5, 0,
12115		4, 2, 10, -1, 12, -2, 13, 1, 11, 0,
12116		4, -2, 10, 1, 11, 1, 2, -1, 3, 0,
12117		2, -1, 10, 1, 2, 0,
12118		3, 2, 10, 2, 13, -3, 11, 0,
12119		4, -2, 10, 1, 11, 2, 2, -3, 3, 0,
12120		3, 2, 12, -2, 13, 1, 11, 0,
12121		4, 1, 10, -1, 12, 1, 13, -1, 11, 0,
12122		3, -2, 10, 1, 11, 1, 5, 0,
12123		4, 2, 10, -1, 11, 1, 3, -2, 4, 0,
12124		3, 2, 10, -2, 11, 1, 14, 0,
12125		4, -2, 10, 1, 11, 8, 2, -13, 3, 0,
12126		5, -2, 10, -1, 13, 1, 11, 18, 2, -16, 3, 0,
12127		5, 2, 10, -1, 11, 4, 3, -8, 4, 3, 5, 1,
12128		2, 2, 10, -1, 11, 1,
12129		5, -2, 10, 1, 11, 4, 3, -8, 4, 3, 5, 1,
12130		5, 2, 10, -1, 13, -1, 11, 18, 2, -16, 3, 0,
12131		4, 2, 10, -1, 11, 8, 2, -13, 3, 0,
12132		2, -2, 10, 1, 14, 1,
12133		4, -2, 10, 1, 11, 1, 3, -2, 4, 0,
12134		3, 2, 10, -1, 11, 1, 5, 0,
12135		2, 2, 12, -1, 11, 0,
12136		4, 3, 10, 1, 12, -1, 13, -1, 11, 0,
12137		4, 2, 10, -1, 11, 2, 2, -3, 3, 0,
12138		3, 2, 10, -2, 13, 1, 11, 0,
12139		4, 2, 10, -1, 11, 1, 2, -1, 3, 0,
12140		3, 1, 10, 1, 2, -2, 3, 0,
12141		3, 1, 12, -2, 13, 1, 11, 1,
12142		3, 1, 10, 1, 13, -1, 11, 0,
12143		4, 2, 10, -1, 11, 1, 3, -1, 5, 0,
12144		3, 2, 10, 1, 12, -1, 11, 2,
12145		3, -2, 10, -1, 12, 1, 14, 0,
12146		2, 1, 12, -1, 11, 1,
12147		3, 1, 10, -1, 13, 1, 11, 0,
12148		4, 2, 10, -1, 11, 2, 2, -2, 3, 0,
12149		3, 1, 10, 2, 2, -3, 3, 0,
12150		4, 2, 10, 1, 12, -2, 13, 1, 11, 0,
12151		3, -1, 10, 1, 2, -2, 3, 0,
12152		3, -1, 11, 1, 2, -1, 3, 0,
12153		2, 2, 13, -1, 11, 0,
12154		2, -2, 13, 1, 14, 0,
12155		4, 2, 10, -1, 11, 2, 3, -2, 5, 0,
12156		4, 2, 10, -1, 11, 3, 2, -3, 3, 0,
12157		4, 2, 10, 2, 12, -2, 13, -1, 11, 0,
12158		3, 1, 10, 1, 3, -2, 5, 0,
12159		4, 1, 10, 1, 12, 1, 13, -1, 11, 0,
12160		3, 1, 10, 3, 2, -4, 3, 0,
12161		3, 1, 10, 1, 3, -1, 5, 0,
12162		3, 1, 10, 1, 3, -2, 6, 0,
12163		3, 1, 10, 2, 3, -2, 4, 0,
12164		4, 1, 10, 1, 12, -1, 13, -1, 11, 0,
12165		3, 2, 10, 2, 12, -1, 11, 2,
12166		4, 1, 10, 1, 3, 2, 5, -5, 6, 1,
12167		1, 1, 14, 2,
12168		3, 1, 10, 8, 2, -12, 3, 1,
12169		5, -2, 10, 1, 13, -1, 11, 20, 2, -21, 3, 0,
12170		5, 2, 10, -2, 13, 1, 11, 2, 3, -3, 5, 0,
12171		3, 1, 10, 1, 3, 1, 6, 0,
12172		4, -1, 13, -1, 11, 26, 2, -29, 3, 0,
12173		3, -1, 11, 8, 2, -13, 3, 0,
12174		4, -1, 13, -1, 11, 18, 2, -16, 3, 2,
12175		4, -1, 13, 1, 11, 10, 2, -3, 3, 1,
12176		1, 1, 11, 3,
12177		4, -1, 13, -1, 11, 10, 2, -3, 3, 1,
12178		4, -1, 13, 1, 11, 18, 2, -16, 3, 2,
12179		3, 1, 11, 8, 2, -13, 3, 0,
12180		2, 1, 10, 2, 4, 0,
12181		4, 2, 10, -1, 11, 5, 2, -6, 3, 1,
12182		5, 2, 10, -2, 13, -1, 11, 2, 3, -3, 5, 0,
12183		5, -2, 10, 1, 13, 1, 11, 20, 2, -21, 3, 0,
12184		3, 1, 10, 1, 3, 1, 5, 0,
12185		2, -2, 11, 1, 14, 0,
12186		5, 2, 10, -2, 13, 1, 11, 2, 3, -2, 5, 0,
12187		3, 1, 10, 5, 2, -7, 3, 0,
12188		4, 1, 10, 1, 12, -1, 13, 1, 11, 0,
12189		3, 1, 10, 2, 2, -2, 3, 0,
12190		4, 2, 10, 2, 12, -2, 13, 1, 11, 0,
12191		2, 2, 13, -3, 11, 0,
12192		4, 2, 10, -1, 11, 4, 2, -4, 3, 0,
12193		3, 1, 10, 4, 2, -5, 3, 0,
12194		3, 1, 10, -3, 13, 1, 11, 0,
12195		2, 1, 10, 1, 2, 0,
12196		3, 1, 11, 1, 2, -1, 3, 0,
12197		4, 2, 10, -1, 11, 3, 3, -3, 5, 0,
12198		3, 1, 12, 2, 13, -1, 11, 1,
12199		4, 2, 10, 1, 12, -2, 13, -1, 11, 0,
12200		3, 1, 10, -1, 13, -1, 11, 0,
12201		3, 1, 11, 1, 3, -1, 5, 0,
12202		2, 1, 12, 1, 11, 2,
12203		4, 2, 10, -1, 11, 5, 2, -5, 3, 0,
12204		3, 1, 10, 5, 2, -6, 3, 0,
12205		3, 2, 10, 1, 12, -3, 11, 0,
12206		3, 1, 10, 2, 2, -1, 3, 0,
12207		3, 2, 10, -4, 13, 1, 11, 0,
12208		3, -2, 10, 2, 13, 1, 14, 0,
12209		3, 2, 10, -2, 13, -1, 11, 0,
12210		3, 1, 10, 3, 2, -2, 3, 0,
12211		4, 1, 10, -1, 12, -1, 13, -1, 11, 0,
12212		2, 2, 12, 1, 11, 0,
12213		2, 2, 10, -3, 11, 0,
12214		3, 1, 10, 4, 2, -3, 3, 0,
12215		4, 2, 10, -1, 12, -2, 13, -1, 11, 1,
12216		3, 2, 10, -1, 12, -3, 11, 0,
12217		3, 4, 10, -4, 13, -1, 11, 0,
12218		4, 2, 10, -2, 12, -2, 13, -1, 11, 0,
12219		4, 4, 10, -2, 12, -1, 13, -1, 11, 0,
12220		3, 6, 10, -3, 13, -1, 11, 0,
12221		4, 4, 10, -1, 12, -1, 13, -1, 11, 1,
12222		4, 2, 10, -3, 12, -1, 13, 1, 11, 0,
12223		3, 5, 10, -2, 13, -1, 11, 0,
12224		3, 4, 10, 1, 13, -3, 11, 0,
12225		4, 2, 10, -2, 12, 1, 13, -1, 11, 0,
12226		3, 3, 10, -1, 12, -1, 11, 0,
12227		3, 4, 10, -1, 13, -1, 11, 0,
12228		4, 2, 10, -2, 12, -1, 13, 1, 11, 1,
12229		3, 4, 10, -3, 13, 1, 11, 0,
12230		4, 2, 10, -1, 12, 1, 13, -1, 11, 1,
12231		5, -2, 10, 1, 13, -1, 11, 2, 2, -2, 3, 0,
12232		2, 3, 10, -1, 11, 0,
12233		4, 4, 10, 1, 12, -1, 13, -1, 11, 0,
12234		4, 2, 10, -1, 12, -1, 13, 1, 11, 2,
12235		5, -2, 10, 1, 13, -1, 11, 1, 3, -1, 5, 0,
12236		3, 3, 10, -2, 13, 1, 11, 0,
12237		5, -2, 10, 1, 13, -1, 11, 1, 2, -1, 3, 0,
12238		3, 2, 10, 1, 13, -1, 11, 0,
12239		3, -2, 10, -1, 13, 1, 14, 0,
12240		3, 2, 12, -1, 13, -1, 11, 1,
12241		3, 3, 10, 1, 12, -1, 11, 0,
12242		3, 1, 10, -1, 12, 1, 11, 0,
12243		4, -1, 13, -1, 11, 3, 2, -3, 3, 0,
12244		4, -1, 13, -1, 11, 2, 3, -2, 5, 0,
12245		3, 2, 10, -1, 13, 1, 14, 0,
12246		4, -2, 10, -1, 11, 18, 2, -16, 3, 0,
12247		6, 2, 10, -1, 13, 1, 11, 4, 3, -8, 4, 3, 5, 0,
12248		3, 2, 10, -1, 13, 1, 11, 0,
12249		6, -2, 10, 1, 13, -1, 11, 4, 3, -8, 4, 3, 5, 0,
12250		5, 2, 10, -2, 13, 1, 11, 18, 2, -16, 3, 0,
12251		4, -2, 10, 1, 13, -2, 11, 1, 14, 0,
12252		3, 1, 12, -3, 13, 1, 11, 0,
12253		3, 1, 10, 2, 13, -1, 11, 0,
12254		4, 2, 10, 1, 12, 1, 13, -1, 11, 1,
12255		3, 1, 12, -1, 13, -1, 11, 1,
12256		4, -1, 13, -1, 11, 1, 3, -1, 5, 0,
12257		2, 1, 10, 1, 11, 0,
12258		4, 2, 10, 1, 12, -1, 13, 1, 11, 1,
12259		3, 1, 12, 1, 13, -3, 11, 0,
12260		4, -1, 13, -1, 11, 1, 2, -1, 3, 0,
12261		5, 2, 10, -1, 13, 1, 11, 2, 2, -2, 3, 0,
12262		2, 3, 13, -1, 11, 0,
12263		4, 1, 10, 1, 12, -2, 13, -1, 11, 0,
12264		4, 2, 10, 2, 12, 1, 13, -1, 11, 0,
12265		2, 1, 13, 1, 14, 1,
12266		5, 2, 10, -1, 13, 1, 11, 2, 3, -3, 5, 0,
12267		4, -2, 13, -1, 11, 18, 2, -16, 3, 1,
12268		5, 1, 13, 1, 11, 4, 3, -8, 4, 3, 5, 0,
12269		2, 1, 13, 1, 11, 0,
12270		5, -1, 13, -1, 11, 4, 3, -8, 4, 3, 5, 0,
12271		3, 1, 11, 18, 2, -16, 3, 1,
12272		3, -1, 13, -2, 11, 1, 14, 0,
12273		5, 2, 10, -1, 13, 1, 11, 2, 3, -2, 5, 0,
12274		5, 2, 10, -1, 13, 1, 11, 3, 2, -3, 3, 0,
12275		3, 1, 10, 1, 12, 1, 11, 1,
12276		4, 2, 10, 2, 12, -1, 13, 1, 11, 1,
12277		2, 1, 13, -3, 11, 0,
12278		4, 1, 13, 1, 11, 1, 2, -1, 3, 0,
12279		3, 1, 12, 3, 13, -1, 11, 0,
12280		4, 2, 10, 1, 12, -3, 13, -1, 11, 0,
12281		3, 1, 10, -2, 13, -1, 11, 0,
12282		4, 1, 13, 1, 11, 1, 3, -1, 5, 0,
12283		3, 1, 12, 1, 13, 1, 11, 1,
12284		2, 1, 10, -3, 11, 0,
12285		3, 1, 12, -1, 13, 3, 11, 0,
12286		3, 2, 10, -3, 13, -1, 11, 0,
12287		3, 2, 12, 1, 13, 1, 11, 0,
12288		3, 2, 10, -1, 13, -3, 11, 0,
12289		4, 2, 10, -1, 12, -3, 13, -1, 11, 0,
12290		4, 2, 10, -1, 12, -1, 13, -3, 11, 0,
12291		4, 6, 10, -1, 12, -2, 13, -1, 11, 0,
12292		3, 4, 10, -2, 12, -1, 11, 0,
12293		3, 6, 10, -2, 13, -1, 11, 0,
12294		4, 4, 10, -2, 12, -2, 13, 1, 11, 0,
12295		3, 4, 10, -1, 12, -1, 11, 1,
12296		3, 2, 10, -3, 12, 1, 11, 0,
12297		3, 5, 10, -1, 13, -1, 11, 0,
12298		4, 4, 10, -1, 12, -2, 13, 1, 11, 0,
12299		4, 2, 10, -2, 12, 2, 13, -1, 11, 0,
12300		2, 4, 10, -1, 11, 0,
12301		3, 2, 10, -2, 12, 1, 11, 1,
12302		4, 3, 10, -1, 12, -1, 13, 1, 11, 0,
12303		3, 4, 10, -2, 13, 1, 11, 0,
12304		4, 2, 10, -1, 12, 2, 13, -1, 11, 0,
12305		4, -2, 10, -1, 11, 2, 2, -2, 3, 0,
12306		3, 3, 10, 1, 13, -1, 11, 0,
12307		3, 4, 10, 1, 12, -1, 11, 0,
12308		3, 2, 10, -1, 12, 1, 11, 2,
12309		4, -2, 10, -1, 11, 1, 3, -1, 5, 0,
12310		3, 3, 10, -1, 13, 1, 11, 0,
12311		4, 4, 10, 1, 12, -2, 13, 1, 11, 0,
12312		3, 2, 10, 2, 13, -1, 11, 0,
12313		3, 2, 12, -2, 13, -1, 11, 0,
12314		4, 1, 10, -1, 12, 1, 13, 1, 11, 0,
12315		2, 2, 10, 1, 14, 0,
12316		5, -2, 10, -1, 13, -1, 11, 18, 2, -16, 3, 0,
12317		2, 2, 10, 1, 11, 1,
12318		5, 2, 10, -1, 13, 1, 11, 18, 2, -16, 3, 0,
12319		3, -2, 10, -2, 11, 1, 14, 0,
12320		4, 3, 10, 1, 12, -1, 13, 1, 11, 0,
12321		3, 2, 10, -2, 13, 3, 11, 0,
12322		4, 2, 10, 1, 12, 2, 13, -1, 11, 0,
12323		3, 1, 12, -2, 13, -1, 11, 1,
12324		3, 1, 10, 1, 13, 1, 11, 0,
12325		3, 2, 10, 1, 12, 1, 11, 1,
12326		2, 4, 13, -1, 11, 0,
12327		2, 2, 13, 1, 14, 0,
12328		4, -3, 13, -1, 11, 18, 2, -16, 3, 0,
12329		2, 2, 13, 1, 11, 0,
12330		4, 1, 13, 1, 11, 18, 2, -16, 3, 0,
12331		4, 2, 10, 1, 11, 2, 3, -2, 5, 0,
12332		4, 1, 10, 1, 12, 1, 13, 1, 11, 0,
12333		3, 2, 10, 2, 12, 1, 11, 0,
12334		2, 2, 11, 1, 14, 0,
12335		1, 3, 11, 0,
12336		3, 1, 10, -3, 13, -1, 11, 0,
12337		3, 1, 12, 2, 13, 1, 11, 1,
12338		2, 1, 12, 3, 11, 0,
12339		3, 2, 10, -4, 13, -1, 11, 0,
12340		3, 2, 12, 2, 13, 1, 11, 0,
12341		3, 2, 10, -2, 13, -3, 11, 0,
12342		4, 6, 10, -1, 12, -1, 13, -1, 11, 0,
12343		3, 6, 10, -1, 13, -1, 11, 0,
12344		4, 4, 10, -2, 12, -1, 13, 1, 11, 0,
12345		3, 6, 10, -3, 13, 1, 11, 0,
12346		4, 4, 10, -1, 12, 1, 13, -1, 11, 0,
12347		4, 4, 10, -1, 12, -1, 13, 1, 11, 1,
12348		3, 5, 10, -2, 13, 1, 11, 0,
12349		3, 4, 10, 1, 13, -1, 11, 0,
12350		4, 2, 10, -2, 12, 1, 13, 1, 11, 0,
12351		3, 4, 10, -1, 13, 1, 11, 0,
12352		4, 2, 10, -1, 12, 3, 13, -1, 11, 0,
12353		4, 4, 10, 1, 12, 1, 13, -1, 11, 0,
12354		4, 2, 10, -1, 12, 1, 13, 1, 11, 1,
12355		2, 3, 10, 1, 11, 0,
12356		4, 4, 10, 1, 12, -1, 13, 1, 11, 0,
12357		4, 2, 10, -1, 12, -1, 13, 3, 11, 0,
12358		3, 2, 10, 3, 13, -1, 11, 0,
12359		3, 2, 10, 1, 13, 1, 14, 0,
12360		3, 2, 10, 1, 13, 1, 11, 0,
12361		3, 3, 10, 1, 12, 1, 11, 0,
12362		3, 2, 10, -1, 13, 3, 11, 0,
12363		4, 2, 10, 1, 12, 3, 13, -1, 11, 0,
12364		3, 1, 12, -3, 13, -1, 11, 0,
12365		3, 1, 10, 2, 13, 1, 11, 0,
12366		4, 2, 10, 1, 12, 1, 13, 1, 11, 1,
12367		3, 1, 12, -1, 13, -3, 11, 0,
12368		2, 1, 10, 3, 11, 0,
12369		2, 5, 13, -1, 11, 0,
12370		2, 3, 13, 1, 11, 0,
12371		4, 1, 10, 1, 12, 2, 13, 1, 11, 0,
12372		2, 1, 13, 3, 11, 0,
12373		3, 1, 12, 3, 13, 1, 11, 0,
12374		3, 1, 12, 1, 13, 3, 11, 0,
12375		3, 2, 10, -5, 13, -1, 11, 0,
12376		3, 6, 10, -1, 12, -1, 11, 0,
12377		4, 6, 10, -1, 12, -2, 13, 1, 11, 0,
12378		2, 6, 10, -1, 11, 0,
12379		3, 4, 10, -2, 12, 1, 11, 0,
12380		3, 6, 10, -2, 13, 1, 11, 0,
12381		4, 4, 10, -1, 12, 2, 13, -1, 11, 0,
12382		3, 4, 10, -1, 12, 1, 11, 0,
12383		3, 4, 10, 2, 13, -1, 11, 0,
12384		4, 2, 10, -2, 12, 2, 13, 1, 11, 0,
12385		2, 4, 10, 1, 11, 0,
12386		3, 4, 10, -2, 13, 3, 11, 0,
12387		4, 2, 10, -1, 12, 2, 13, 1, 11, 0,
12388		3, 3, 10, 1, 13, 1, 11, 0,
12389		3, 4, 10, 1, 12, 1, 11, 0,
12390		3, 2, 10, -1, 12, 3, 11, 0,
12391		3, 2, 10, 4, 13, -1, 11, 0,
12392		3, 2, 10, 2, 13, 1, 11, 0,
12393		2, 2, 10, 3, 11, 0,
12394		3, 1, 12, -4, 13, -1, 11, 0,
12395		3, 1, 10, 3, 13, 1, 11, 0,
12396		4, 2, 10, 1, 12, 2, 13, 1, 11, 0,
12397		2, 4, 13, 1, 11, 0,
12398		2, 2, 13, 3, 11, 0,
12399		1, 5, 11, 0,
12400		3, 1, 12, 4, 13, 1, 11, 0,
12401		4, 6, 10, -1, 12, -1, 13, 1, 11, 0,
12402		3, 6, 10, 1, 13, -1, 11, 0,
12403		3, 6, 10, -1, 13, 1, 11, 0,
12404		4, 4, 10, -1, 12, 1, 13, 1, 11, 0,
12405		3, 4, 10, 1, 13, 1, 11, 0,
12406		3, 4, 10, -1, 13, 3, 11, 0,
12407		4, 2, 10, -1, 12, 3, 13, 1, 11, 0,
12408		4, 4, 10, 1, 12, 1, 13, 1, 11, 0,
12409		3, 2, 10, 3, 13, 1, 11, 0,
12410		3, 2, 10, 1, 13, 3, 11, 0,
12411		2, 5, 13, 1, 11, 0,
12412		2, 3, 13, 3, 11, 0,
12413		2, 6, 10, 1, 11, 0,
12414		3, 4, 10, 2, 13, 1, 11, 0,
12415		3, 2, 10, 4, 13, 1, 11, 0,
12416		-1
12417	]
12418};
12419
12420$ns.mars = {
12421	maxargs: 9,
12422	max_harmonic: [0, 5, 12, 24, 9, 7, 3, 2, 0],
12423	max_power_of_t: 5,
12424	distance: 1.5303348827100001e+00,
12425	timescale: 
124253652500.0,
12426	trunclvl: 1.0,
12427	lon_tbl: [
12428		43471.66140, 21291.11063, 2033.37848, 6890507597.78366,
12429		1279543.73631,
12430		317.74183, 730.69258, -15.26502, 277.56960,
12431		-62.96711, 20.96285,
12432		1.01857, -2.19395,
12433		3.75708, 3.65854, 0.01049, 1.09183,
12434		-0.00605, -0.04769,
12435		0.41839, 0.10091, 0.03887, 0.11666,
12436		-0.03301, 0.02664,
12437		0.38777, -0.56974,
12438		0.02974, -0.15041, 0.02179, -0.00808,
12439		0.08594, 0.09773,
12440		-0.00902, -0.04597, 0.00762, -0.03858,
12441		-0.00139, 0.01562,
12442		0.02019, 0.01878,
12443		-0.01244, 0.00795,
12444		0.00815, 0.03501,
12445		-0.00335, -0.02970,
12446		-0.00518, -0.01763,
12447		0.17257, 0.14698, -0.14417, 0.26028,
12448		0.00062, -0.00180,
12449		13.35262, 39.38771, -15.49558, 22.00150,
12450		-7.71321, -4.20035, 0.62074, -1.42376,
12451		0.07043, -0.06670, 0.16960, -0.06859,
12452		0.07787, 0.01845,
12453		-0.01608, -0.00914,
12454		5.60438, -3.44436, 5.88876, 6.77238,
12455		-5.29704, 3.48944,
12456		0.01291, 0.01280,
12457		-0.53532, 0.86584, 0.79604, 0.31635,
12458		-3.92977, -0.94829, -0.74254, -1.37947,
12459		0.17871, -0.12477,
12460		0.00171, 0.11537,
12461		0.02281, -0.03922,
12462		-0.00165, 0.02965,
12463		1.59773, 1.24565, -0.35802, 1.37272,
12464		-0.44811, -0.08611,
12465		3.04184, -3.39729, 8.86270, 6.65967,
12466		-9.10580, 10.66103,
12467		0.02015, -0.00902,
12468		-0.01166, -0.23957, -0.12128, -0.04640,
12469		-0.07114, 0.14053, -0.04966, -0.01665,
12470		0.28411, -0.37754, -1.26265, 1.01377,
12471		3.70433, -0.21025,
12472		-0.00972, 0.00350,
12473		0.00997, 0.00450,
12474		-2.15305, 3.18147, -1.81957, -0.02321,
12475		-0.02560, -0.35188,
12476		0.00003, -0.01110,
12477		0.00244, -0.05083,
12478		-0.00216, -0.02026,
12479		0.05179, 0.04188,
12480		5.92031, -1.61316, 3.72001, 6.98783,
12481		-4.17690, 2.61250,
12482		0.04157, 2.76453, -1.34043, 0.74586,
12483		-0.20258, -0.30467,
12484		0.00733, 0.00376,
12485		1.72800, 0.76593, 1.26577, -2.02682,
12486		-1.14637, -0.91894,
12487		-0.00002, 0.00036,
12488		2.54213, 0.89533, -0.04166, 2.36838,
12489		-0.97069, 0.05486,
12490		0.46927, 0.04500, 0.23388, 0.35005,
12491		1.61402, 2.30209, -0.99859, 1.63349,
12492		-0.51490, -0.26112,
12493		0.27848, -0.26100, -0.07645, -0.22001,
12494		0.92901, 1.12627, -0.39829, 0.77120,
12495		-0.23716, -0.11245,
12496		-0.02387, 0.03960,
12497		-0.00802, 0.02179,
12498		2.86448, 1.00246, -0.14647, 2.80278,
12499		-1.14143, 0.05177,
12500		1.68671, -1.23451, 3.16285, 0.70070,
12501		0.25817, 3.17416,
12502		0.07447, -0.08116, -0.03029, -0.02795,
12503		0.00816, 0.01023,
12504		0.00685, -0.01075,
12505		-0.34268, 0.03680, -0.05488, -0.07430,
12506		-0.00041, -0.02968,
12507		3.13228, -0.83209, 1.95765, 3.78394,
12508		-2.26196, 1.38520,
12509		-0.00401, -0.01397,
12510		1.01604, -0.99485, 0.62465, 0.22431,
12511		-0.05076, 0.12025,
12512		4.35229, -5.04483, 14.87533, 9.00826,
12513		-10.37595, 19.26596,
12514		0.40352, 0.19895, 0.09463, -0.10774,
12515		-0.17809, -0.08979, -0.00796, -0.04313,
12516		0.01520, -0.03538,
12517		1.53301, -1.75553, 4.87236, 3.23662,
12518		-3.62305, 6.42351,
12519		-0.00439, -0.01305,
12520		0.17194, -0.64003, 0.26609, 0.06600,
12521		0.01767, -0.00251,
12522		-0.08871, -0.15523, 0.01201, -0.03408,
12523		-0.29126, -0.07093, -0.00998, -0.07876,
12524		1.05932, -25.38650,
12525		-0.29354, 0.04179, -0.01726, 0.07473,
12526		-0.07607, -0.08859, 0.00842, -0.02359,
12527		0.47858, -0.39809, 1.25061, 0.87017,
12528		-0.82453, 1.56864,
12529		-0.00463, 0.02385,
12530		-0.29070, 8.56535,
12531		-0.12495, 0.06580, -0.03395, -0.02465,
12532		-1.06759, 0.47004, -0.40281, -0.23957,
12533		0.03572, -0.07012,
12534		0.00571, -0.00731,
12535		0.18601, -1.34068,
12536		0.03798, -0.00532, 0.00448, -0.01147,
12537		1.41208, -0.00668, 0.25883, 1.23788,
12538		-0.57774, 0.09166,
12539		-2.49664, -0.25235, -0.53582, -0.80126,
12540		0.10827, -0.08861,
12541		-0.03577, 0.06825,
12542		-0.00143, 0.04633,
12543		0.01586, -0.01056,
12544		-0.02106, 0.03804,
12545		-0.00088, -0.03458,
12546		-0.00033, -0.01079,
12547		0.05821, -0.02445,
12548		0.00602, 0.00721,
12549		-0.00315, -0.01021,
12550		-0.65454, 1.08478, -0.44593, -0.21492,
12551		-1.35004, 4.47299, -4.19170, 3.51236,
12552		1946.04629, 13960.88247, 576.24572, 8023.81797,
12553		2402.48512, -753.87007, -6376.99217, -10278.88014,
12554		-25743.89874, 15506.87748, 15609.59853, 35173.63133,
12555		-3.70370, 6.29538, -4.84183, -0.76942,
12556		-0.02465, -0.03840,
12557		0.00565, -0.06071,
12558		0.01174, 0.00253,
12559		-0.00230, 0.05252,
12560		-0.02813, 0.01359,
12561		0.23208, 0.03393, 0.01734, 0.04838,
12562		-0.46340, -0.18941, 0.25428, -0.56925,
12563		0.05213, 0.24704, 0.12922, -0.01531,
12564		0.06885, -0.08510, 0.01853, -0.00390,
12565		0.01196, -0.30530, 0.13117, -0.03533,
12566		1.79597, -0.42743, 0.98545, 2.13503,
12567		-1.32942, 0.68005,
12568		-0.01226, 0.00571,
12569		0.31081, 0.34932, 0.34531, -0.32947,
12570		-0.00548, 0.00186, -0.00157, -0.00065,
12571		0.30877, -0.03864, 0.04921, 0.06693,
12572		0.01761, -0.04119,
12573		1.28318, 0.38546, 0.06462, 1.18337,
12574		-0.48698, 0.07086,
12575		0.26031, -0.22813, 0.10272, 0.04737,
12576		-0.04506, -0.38581, -0.16624, -0.04588,
12577		0.00992, 0.00722,
12578		-0.21041, 0.20560, -0.09267, -0.03438,
12579		0.32264, -0.07383,
12580		0.09553, -0.38730, 0.17109, -0.01342,
12581		-0.02336, -0.01286,
12582		0.00230, 0.04626,
12583		0.01176, 0.01868,
12584		-0.15411, -0.32799, 0.22083, -0.14077,
12585		1.98392, 1.68058,
12586		-0.02526, -0.13164, -0.04447, -0.00153,
12587		0.01277, 0.00553,
12588		-0.26035, -0.11362, 0.14672, -0.32242,
12589		0.16686, -0.69957, 0.40091, -0.06721,
vendor: 9,819 bytes, lines 12590-12931
12590		0.00837, 0.09635,
12591		-0.08545, 0.25178, -0.22486, 16.03256,
12592		0.34130, -0.06313, 0.01469, -0.09012,
12593		-0.00744, -0.02510,
12594		-0.08492, -0.13733,
12595		-0.07620, -0.15329, 0.13716, -0.03769,
12596		2.01176, -1.35991, -1.04319, -2.97226,
12597		-0.01433, 0.61219,
12598		-0.55522, 0.38579, 0.31831, 0.81843,
12599		-0.04583, -0.14585,
12600		-0.10218, 0.16039, -0.06552, -0.01802,
12601		0.06480, -0.06641, 0.01672, -0.00287,
12602		0.00308, 0.09982, -0.05679, -0.00249,
12603		-0.36034, 0.52385, -0.29759, 0.59539,
12604		-3.59641, -1.02499,
12605		-547.53774, 734.11470, 441.86760, -626.68255,
12606		-2255.81376, -1309.01028, -2025.69590, 2774.69901,
12607		1711.21478, 1509.99797,
12608		-0.99274, 0.61858, -0.47634, -0.33034,
12609		0.00261, 0.01183,
12610		-0.00038, 0.11687,
12611		0.00994, -0.01122,
12612		0.03482, -0.01942,
12613		-0.11557, 0.38237, -0.17826, 0.00830,
12614		0.01193, -0.05469,
12615		0.01557, 0.01747,
12616		0.02730, -0.01182,
12617		-0.11284, 0.12939, -0.05621, -0.01615,
12618		0.04258, 0.01058,
12619		-0.01723, 0.00963,
12620		0.20666, 0.11742,
12621		0.07830, -0.02922,
12622		-0.10659, -0.05407, 0.07254, -0.13005,
12623		-0.02365, 0.24583, 0.31915, 1.27060,
12624		0.00009, -0.21541,
12625		-0.55324, -0.45999, -1.45885, 0.86530,
12626		0.85932, 1.92999,
12627		-0.00755, -0.00715,
12628		-0.02004, -0.00788,
12629		0.01539, 0.00837,
12630		0.27652, -0.50297, -0.26703, -0.28159,
12631		0.03950, 0.07182,
12632		-0.07177, 0.14140, 0.07693, 0.07564,
12633		-0.01316, -0.01259,
12634		0.01529, 0.07773,
12635		-90.74225, -378.15784, -510.30190, -52.35396,
12636		-89.15267, 415.56828, 181.52119, 54.01570,
12637		-0.01093, -0.05931,
12638		-0.01344, -0.02390,
12639		0.01432, -0.02470,
12640		-0.01509, -0.01346,
12641		0.03352, 0.02248,
12642		0.02588, -0.00948,
12643		0.03610, 0.17238,
12644		0.02909, -0.04065,
12645		0.00155, -0.07025,
12646		-0.09508, 0.14487, 0.12441, 0.16451,
12647		0.00001, -0.00005,
12648		-0.00982, -0.01895,
12649		-0.16968, 0.36565, 0.20234, 0.17789,
12650		-0.04519, -0.00588,
12651		0.01268, 0.00107,
12652		-56.32137, -58.22145, -80.55270, 28.14532,
12653		11.43301, 52.05752, 17.79480, -2.61997,
12654		-0.00005, -0.02629,
12655		0.01080, -0.00390,
12656		0.00744, 0.03132,
12657		0.01156, -0.01621,
12658		0.02162, 0.02552,
12659		0.00075, -0.02497,
12660		0.02495, 0.00830,
12661		0.03230, 0.00103,
12662		-14.84965, -4.50200, -9.73043, 9.40426,
12663		4.08054, 5.38571, 1.53731, -1.01288,
12664		0.21076, 1.74227, 0.79760, 0.39583,
12665		0.09879, -0.16736,
12666		-0.00723, -0.01536
12667	],
12668	lat_tbl: [
12669		-364.49380, -47.17612, -554.97858, -430.63121,
12670		596.44312,
12671		-3.94434, -7.43169, -0.06665, -2.23987,
12672		0.10366, -0.05567,
12673		-0.01463, 0.01908,
12674		-0.02611, -0.00350, -0.01057, -0.00610,
12675		-0.00015, 0.00002,
12676		0.00010, 0.00033, 0.00007, -0.00000,
12677		-0.00010, -0.00004,
12678		0.00012, 0.00002,
12679		-0.00014, -0.00048, -0.00003, -0.00007,
12680		0.00008, -0.00005,
12681		-0.00043, -0.00003, -0.00010, -0.00004,
12682		0.00001, 0.00001,
12683		-0.00003, -0.00003,
12684		0.00004, 0.00007,
12685		-0.00041, 0.00031,
12686		0.00076, 0.00062,
12687		0.00001, -0.00002,
12688		0.00035, 0.00053, 0.00026, 0.00019,
12689		0.00020, 0.00010,
12690		0.02936, 0.09624, -0.01153, 0.01386,
12691		0.00551, -0.00690, 0.00196, 0.00148,
12692		-0.00408, -0.00673, -0.00067, -0.00152,
12693		-0.00014, -0.00005,
12694		0.00000, 0.00005,
12695		-0.00116, 0.00276, -0.00391, 0.00983,
12696		-0.01327, -0.01986,
12697		-0.00003, 0.00001,
12698		0.01104, 0.00631, -0.01364, 0.01152,
12699		-0.00439, 0.01103, -0.00546, 0.00181,
12700		-0.00039, -0.00083,
12701		0.00007, 0.00002,
12702		-0.00010, -0.00008,
12703		0.00005, 0.00002,
12704		-0.00584, 0.00512, -0.00722, -0.00174,
12705		0.00101, -0.00316,
12706		-0.02229, -0.02797, -0.10718, 0.05741,
12707		0.11403, 0.10033,
12708		0.00036, -0.00022,
12709		0.00787, 0.01191, 0.01756, -0.02121,
12710		-0.00169, -0.00364, 0.00070, -0.00051,
12711		0.01850, -0.06836, 0.21471, 0.00162,
12712		-0.29165, 0.16799,
12713		-0.00002, 0.00011,
12714		-0.00075, -0.00077,
12715		-0.00675, -0.00814, 0.00029, -0.00599,
12716		0.00107, 0.00013,
12717		0.00010, -0.00002,
12718		0.00005, 0.00020,
12719		0.00355, 0.00306,
12720		-0.00013, -0.00061,
12721		-0.02950, -0.00847, 0.01037, -0.04783,
12722		0.04237, 0.11662,
12723		-0.00331, 0.00207, -0.00107, -0.00264,
12724		0.00072, -0.00023,
12725		-0.00151, 0.00146,
12726		-0.12847, 0.02294, 0.03611, 0.19705,
12727		0.16855, -0.28279,
12728		-0.00000, -0.00002,
12729		-0.00525, -0.03619, 0.05048, -0.00481,
12730		-0.00745, 0.04618,
12731		0.00286, 0.00443, 0.00521, -0.00351,
12732		0.00200, 0.00474, -0.00149, 0.00031,
12733		-0.00003, 0.00029,
12734		0.00686, 0.02467, 0.04275, -0.02223,
12735		0.02282, -0.04228, 0.03312, 0.01847,
12736		-0.01253, 0.01601,
12737		0.00076, 0.00091,
12738		0.00045, 0.00035,
12739		0.00658, 0.01586, -0.00310, 0.00628,
12740		-0.00045, 0.00316,
12741		-0.01602, -0.00340, -0.01744, 0.04907,
12742		0.06426, 0.02275,
12743		-0.00217, -0.00377, -0.00091, 0.00037,
12744		0.00040, -0.00003,
12745		-0.00017, -0.00027,
12746		0.00366, 0.02693, -0.00934, 0.00386,
12747		0.00616, -0.00037,
12748		0.02028, 0.02120, -0.01768, 0.02421,
12749		0.00102, 0.00877,
12750		0.00012, 0.00030,
12751		-0.00019, -0.02165, 0.01245, -0.00742,
12752		0.00172, 0.00320,
12753		-0.17117, -0.12908, -0.43134, 0.15617,
12754		0.21216, 0.56432,
12755		0.01139, -0.00937, -0.00058, -0.00337,
12756		-0.00999, 0.01862, -0.00621, -0.00080,
12757		-0.00025, -0.00140,
12758		0.09250, 0.01173, -0.03549, 0.14651,
12759		-0.01784, 0.00945,
12760		0.00000, -0.00006,
12761		-0.00500, 0.00086, 0.01079, -0.00002,
12762		-0.00012, -0.00029,
12763		-0.02661, 0.00140, -0.00524, -0.00460,
12764		-0.00352, -0.00563, -0.00277, -0.00052,
12765		-0.10171, -0.02001,
12766		0.00045, 0.00265, -0.00082, 0.00160,
12767		-0.00302, -0.00434, -0.00022, -0.00134,
12768		0.03285, 0.02964, -0.05612, -0.00668,
12769		-0.01821, 0.06590,
12770		0.00039, 0.00061,
12771		-0.13531, -0.03831,
12772		0.02553, 0.02130, -0.00336, 0.00468,
12773		-0.04522, -0.05540, 0.00129, -0.01767,
12774		0.00181, 0.00031,
12775		-0.00011, -0.00034,
12776		-0.00146, 0.01101,
12777		-0.00030, 0.00240, -0.00039, 0.00072,
12778		-0.01954, -0.03822, 0.09682, -0.04541,
12779		-0.01567, 0.09617,
12780		-0.03371, 0.33028, -0.12102, 0.05874,
12781		-0.00990, -0.02236,
12782		0.00109, 0.00158,
12783		-0.00482, 0.00019,
12784		-0.00036, 0.00004,
12785		0.00024, 0.00201,
12786		0.00017, 0.00011,
12787		-0.00012, 0.00002,
12788		-0.00323, -0.01062,
12789		-0.00130, 0.00091,
12790		0.00056, -0.00017,
12791		0.00774, 0.00601, 0.02550, 0.01700,
12792		-0.84327, 0.77533, -0.71414, -0.50643,
12793		-473.30877, -1504.79179, -458.52274, -865.82237,
12794		-417.34994, -681.03976, 765.50697, -1653.67165,
12795		4427.33176, 710.53895, -5016.39367, 4280.60361,
12796		0.33957, 0.38390, -0.38631, 0.81193,
12797		0.00154, -0.00043,
12798		0.01103, -0.00017,
12799		-0.00046, 0.00221,
12800		0.00059, 0.00014,
12801		0.00160, 0.00475,
12802		0.06191, -0.13289, 0.02884, -0.00566,
12803		-0.01572, 0.23780, -0.05140, -0.03228,
12804		-0.00716, -0.00978, -0.01048, 0.01317,
12805		-0.01267, -0.01198, 0.00037, -0.00330,
12806		-0.02305, 0.00355, -0.00121, -0.00496,
12807		-0.04369, -0.01343, 0.05347, -0.12433,
12808		0.02090, 0.17683,
12809		0.00028, -0.00490,
12810		-0.02778, -0.05587, -0.01658, 0.05655,
12811		0.00204, -0.00092, 0.00020, 0.00014,
12812		-0.00603, -0.03829, 0.00778, -0.00588,
12813		-0.00266, 0.00097,
12814		-0.02158, -0.07742, 0.09306, -0.01827,
12815		-0.01048, 0.07885,
12816		-0.02485, -0.02505, 0.00471, -0.01026,
12817		0.06663, 0.01110, 0.00469, -0.05347,
12818		-0.00016, -0.00013,
12819		0.02622, 0.02273, -0.01009, 0.01391,
12820		-0.01042, -0.00444,
12821		-0.04293, -0.00767, -0.00154, -0.01739,
12822		0.00353, -0.00763,
12823		-0.00060, 0.00010,
12824		-0.00053, -0.00146,
12825		-0.05317, 0.05760, -0.01801, -0.02099,
12826		-0.02611, -0.01836,
12827		-0.00256, 0.00812, -0.00145, 0.00054,
12828		-0.00008, 0.00015,
12829		-0.04087, 0.08860, -0.05385, -0.02134,
12830		0.02771, 0.02441, -0.00234, 0.01571,
12831		-0.00260, 0.00097,
12832		0.10151, 0.49378, -0.28555, 0.11428,
12833		-0.00286, 0.01224, 0.00160, 0.00069,
12834		0.00000, -0.00040,
12835		-0.13286, 0.00448,
12836		0.01225, -0.00568, 0.00341, 0.00224,
12837		-0.23483, -0.07859, 0.30733, -0.21548,
12838		-0.02608, 0.00756,
12839		0.09789, 0.02878, -0.11968, 0.08981,
12840		0.02046, -0.00888,
12841		0.02955, 0.01486, -0.00981, 0.01542,
12842		-0.01674, -0.01540, 0.00019, -0.00449,
12843		-0.02140, 0.00638, 0.00112, -0.00730,
12844		-0.08571, 0.13811, -0.16951, -0.02917,
12845		-0.03931, -0.32643,
12846		-68.64541, -81.00521, -47.97737, 15.75290,
12847		181.76392, -36.00647, -48.32098, -259.02226,
12848		-265.57466, 554.05904,
12849		0.09017, 0.18803, -0.12459, 0.10852,
12850		0.00211, 0.00002,
12851		0.00304, -0.00370,
12852		0.00174, 0.00279,
12853		0.00139, 0.00095,
12854		0.04881, 0.00262, -0.01020, 0.03762,
12855		0.00987, 0.00612,
12856		0.00054, -0.00036,
12857		0.00009, -0.00094,
12858		0.02279, 0.01785, -0.00778, 0.01263,
12859		0.00040, -0.00112,
12860		-0.00452, -0.00662,
12861		0.00483, -0.00030,
12862		-0.00054, -0.00205,
12863		-0.00052, -0.00362, -0.00215, -0.00247,
12864		0.02893, -0.01965, -0.00004, 0.04114,
12865		-0.00284, -0.00103,
12866		0.01827, -0.07822, 0.18010, 0.04805,
12867		-0.21702, 0.18808,
12868		0.00095, -0.00132,
12869		-0.01488, 0.00746,
12870		0.00198, 0.00190,
12871		0.01032, 0.03392, 0.04318, -0.07332,
12872		-0.01004, 0.00787,
12873		-0.00308, -0.01177, -0.01431, 0.02659,
12874		0.00273, -0.00374,
12875		-0.02545, 0.00644,
12876		28.68376, 13.74978, 29.60401, -47.98255,
12877		-65.91944, -18.48404, -1.73580, 64.67487,
12878		-0.02492, 0.00104,
12879		-0.00829, -0.00134,
12880		0.00077, 0.00005,
12881		-0.00513, 0.00403,
12882		0.00071, -0.00047,
12883		-0.00023, -0.00063,
12884		0.00120, 0.00370,
12885		-0.00038, -0.00037,
12886		0.00080, -0.00018,
12887		0.00866, 0.00156, -0.01064, 0.02131,
12888		0.00000, -0.00001,
12889		0.00038, -0.00068,
12890		-0.00909, -0.02187, -0.02599, 0.05507,
12891		-0.00022, -0.01468,
12892		0.00032, 0.00500,
12893		9.86233, -2.85314, -2.25791, -13.83444,
12894		-12.38794, 3.79861, 2.76343, 6.63505,
12895		0.00066, 0.00007,
12896		-0.00016, -0.00039,
12897		0.00014, 0.00059,
12898		-0.00031, -0.00024,
12899		-0.00168, 0.00259,
12900		0.00007, -0.00005,
12901		-0.00052, 0.00558,
12902		0.00110, 0.01037,
12903		1.59224, -2.37284, -2.00023, -2.28280,
12904		-1.49571, 1.48293, 0.60041, 0.56376,
12905		-0.54386, 0.03568, -0.10392, 0.31005,
12906		0.09104, 0.03015,
12907		0.00826, -0.00524
12908	],
12909	rad_tbl: [
12910		-816.07287, -381.41365, -33.69436, 177.22955,
12911		0.18630,
12912		-8.29605, -11.15519, -0.57407, -3.53642,
12913		0.16663, -0.06334,
12914		-0.03056, 0.02767,
12915		-0.04161, 0.03917, -0.02425, 0.00204,
12916		-0.00034, 0.00023,
12917		0.00058, -0.00111, 0.00039, -0.00015,
12918		0.00006, -0.00023,
12919		0.00237, 0.00191,
12920		0.00154, -0.00029, 0.00009, 0.00011,
12921		-0.00041, 0.00037,
12922		-0.00010, -0.00064, 0.00015, -0.00005,
12923		0.00012, -0.00003,
12924		-0.00034, 0.00026,
12925		0.00011, -0.00007,
12926		-0.00158, 0.00087,
12927		0.00278, 0.00137,
12928		0.00024, -0.00020,
12929		0.00530, -0.00448, 0.00780, 0.00408,
12930		0.00062, 0.00035,
12931		-1.35261, 0.79891, -0.81597, -0.43774,
12932		0.14713, -0.27415, 0.05298, 0.02230,
12933		-0.02089, -0.01070, -0.00374, 0.00342,
12934		-0.00142, 0.00270,
12935		-0.00039, 0.00063,
12936		0.16024, 0.27088, -0.32127, 0.27467,
12937		-0.16615, -0.24460,
12938		-0.00073, 0.00032,
12939		-0.05710, -0.05265, -0.06025, 0.05120,
12940		-0.05295, 0.23477, -0.08211, 0.04575,
12941		-0.00769, -0.01067,
12942		-0.00570, 0.00015,
12943		-0.00251, -0.00140,
12944		-0.00131, -0.00018,
12945		-0.12246, 0.15836, -0.13065, -0.03222,
12946		0.00795, -0.04232,
12947		-0.36585, -0.31154, 0.68504, -0.96006,
12948		1.19304, 0.88631,
12949		0.00132, 0.00046,
12950		0.13105, 0.04252, 0.05164, -0.06837,
12951		-0.01351, -0.01458, 0.00376, -0.00557,
12952		0.28532, -0.17290, -0.53946, -0.79365,
12953		-0.95246, 0.74984,
12954		0.00019, 0.00132,
12955		-0.00163, -0.00295,
12956		-0.40106, -0.26573, -0.00155, -0.22655,
12957		0.04349, -0.00376,
12958		0.00149, -0.00001,
12959		0.00523, 0.00078,
12960		0.01203, 0.00558,
12961		-0.00708, 0.00520,
12962		-0.36428, -1.28827, 1.50845, -0.83063,
12963		0.58802, 0.89998,
12964		-0.55256, 0.01255, -0.15169, -0.26715,
12965		0.06061, -0.04122,
12966		-0.00397, 0.00534,
12967		-0.52576, 1.22031, 1.44098, 0.92406,
12968		0.67214, -0.85486,
12969		-0.00010, 0.00001,
12970		0.28820, -0.84198, 0.78291, 0.00251,
12971		0.02398, 0.32093,
12972		-0.02331, 0.10109, -0.07555, 0.03557,
12973		-0.61580, 0.43399, -0.43779, -0.26390,
12974		0.06885, -0.13803,
12975		0.17694, 0.19245, 0.15119, -0.05100,
12976		0.49469, -0.45028, 0.33590, 0.15677,
12977		-0.04702, 0.10265,
12978		-0.00942, -0.00580,
12979		-0.00555, -0.00252,
12980		-0.32933, 0.92539, -0.91004, -0.04490,
12981		-0.01812, -0.37121,
12982		0.34695, 0.50855, -0.24721, 0.86063,
12983		-0.84747, 0.01983,
12984		0.01948, 0.02039, 0.00748, -0.00727,
12985		-0.00271, 0.00220,
12986		0.00309, 0.00196,
12987		0.02030, 0.17201, -0.03716, 0.02801,
12988		0.01871, 0.00002,
12989		0.31736, 1.17319, -1.42245, 0.73416,
12990		-0.52302, -0.85056,
12991		0.00522, -0.00126,
12992		0.33571, 0.34594, -0.07709, 0.21114,
12993		-0.04066, -0.01742,
12994		1.72228, 1.46934, -3.06437, 5.06723,
12995		-6.53800, -3.55839,
12996		-0.06933, 0.13815, 0.03684, 0.03284,
12997		-0.04841, 0.09571, -0.02350, 0.00418,
12998		0.01302, 0.00579,
12999		0.73408, 0.64718, -1.37437, 2.04816,
13000		-2.70756, -1.52808,
13001		0.00523, -0.00166,
13002		0.25915, 0.06900, -0.02758, 0.10707,
13003		0.00062, 0.00744,
13004		-0.08117, 0.04840, -0.01806, -0.00637,
13005		0.03034, -0.12414, 0.03419, -0.00388,
13006		10.92603, 0.48169,
13007		-0.01753, -0.12853, -0.03207, -0.00801,
13008		0.03904, -0.03326, 0.01033, 0.00366,
13009		0.17249, 0.20846, -0.38157, 0.54639,
13010		-0.68518, -0.36121,
13011		-0.01043, -0.00186,
13012		-3.33843, -0.16353,
13013		0.03462, 0.06669, -0.01305, 0.01803,
13014		-0.22703, -0.52219, 0.11709, -0.19628,
13015		0.03410, 0.01741,
13016		0.00338, 0.00265,
13017		0.63213, 0.08944,
13018		0.00236, 0.01829, 0.00546, 0.00218,
13019		0.00073, -0.72570, 0.63698, -0.13340,
13020		0.04698, 0.29716,
13021		-0.13126, 1.27705, -0.40980, 0.27400,
13022		-0.04525, -0.05529,
13023		-0.03249, -0.01696,
13024		-0.02314, -0.00076,
13025		0.00510, 0.00764,
13026		-0.01847, -0.01021,
13027		0.01688, -0.00044,
13028		0.00531, -0.00016,
13029		-0.01219, -0.02903,
13030		-0.00361, 0.00299,
13031		0.00504, -0.00153,
13032		-0.53625, -0.32460, 0.10642, -0.22070,
13033		-2.21651, -0.66036, -1.74652, -2.08198,
13034		-6810.78679, 967.02869, -3915.97140, 291.65905,
13035		372.99563, 1196.01966, 5108.01033, -3172.64698,
13036		-7685.78246, -12789.43898, -17474.50562, 7757.84703,
13037		3.13224, 1.84743, -0.38257, 2.40590,
13038		0.01860, -0.01217,
13039		0.03004, 0.00278,
13040		-0.00125, 0.00579,
13041		-0.02673, -0.00112,
13042		0.00662, 0.01374,
13043		-0.02729, 0.13109, -0.02836, 0.00877,
13044		0.12171, -0.27475, 0.34765, 0.15882,
13045		-0.12548, 0.02603, 0.00710, 0.06538,
13046		-0.04039, -0.03257, -0.00186, -0.00880,
13047		0.16643, 0.00707, 0.01918, 0.07156,
13048		-0.20459, -0.85107, 1.01832, -0.47158,
13049		0.32582, 0.63002,
13050		-0.00282, -0.00711,
13051		-0.19695, 0.15053, 0.15676, 0.17847,
13052		0.00071, 0.00286, -0.00039, 0.00083,
13053		0.02009, 0.17859, -0.03894, 0.02805,
13054		0.02379, 0.00752,
13055		0.17529, -0.57783, 0.53257, -0.02829,
13056		0.03211, 0.21777,
13057		0.13813, 0.16305, -0.02996, 0.06303,
13058		0.21058, -0.02659, 0.02596, -0.08808,
13059		-0.00389, 0.00586,
13060		0.08986, 0.09204, -0.01480, 0.04031,
13061		0.06115, 0.18366,
13062		0.25636, 0.06905, 0.00719, 0.11391,
13063		0.00636, -0.01113,
13064		-0.02808, 0.00150,
13065		-0.01219, 0.00832,
13066		0.28626, -0.09573, 0.10481, 0.16559,
13067		-0.94578, 1.26394,
13068		0.08846, -0.01623, 0.00082, -0.02640,
13069		-0.00347, 0.00798,
13070		0.12873, -0.21248, 0.27999, 0.14348,
13071		0.44082, 0.10453, 0.04362, 0.25332,
13072		-0.06077, 0.00555,
13073		-0.06947, -0.05511, -10.08703, -0.10614,
13074		0.04059, 0.21355, 0.05632, 0.00871,
13075		0.01599, -0.00531,
13076		0.36835, -0.03530,
13077		0.09519, -0.04961, 0.02568, 0.08613,
13078		0.57033, 0.84599, 1.27123, -0.41266,
13079		-0.36937, -0.00655,
13080		-0.16547, -0.24000, -0.35213, 0.13345,
13081		0.05870, -0.01524,
13082		0.06419, 0.04136, -0.00681, 0.02606,
13083		-0.02519, -0.02732, -0.00105, -0.00677,
13084		-0.03891, 0.00106, 0.00087, -0.02256,
13085		-0.20834, -0.14624, -0.23178, -0.11786,
13086		0.32479, -1.41222,
13087		-303.74549, -202.79324, 260.20290, 184.84320,
13088		536.68016, -881.56427, -1125.64824, -791.09928,
13089		-596.61162, 659.35664,
13090		0.24561, 0.39519, -0.12601, 0.18709,
13091		-0.00700, 0.00136,
13092		0.30750, 0.00009,
13093		0.00443, 0.00384,
13094		0.01170, 0.02078,
13095		0.15043, 0.04802, 0.00386, 0.06942,
13096		0.02107, 0.00495,
13097		-0.01067, 0.00951,
13098		0.00937, 0.01996,
13099		0.04922, 0.04337, -0.00583, 0.02110,
13100		-0.00691, 0.02793,
13101		-0.00364, -0.00682,
13102		-0.09143, 0.15369,
13103		0.02043, 0.05451,
13104		0.04053, -0.08179, 0.09645, 0.05330,
13105		-0.10149, -0.01594, -0.96773, 0.13660,
13106		0.17326, 0.00013,
13107		0.20990, -0.23184, -0.38407, -0.64733,
13108		-0.84754, 0.38889,
13109		0.00310, -0.00340,
13110		0.00970, -0.00788,
13111		-0.01111, 0.00677,
13112		0.18147, 0.09968, 0.10170, -0.09233,
13113		-0.03165, 0.01790,
13114		-0.04727, -0.02364, -0.02546, 0.02451,
13115		0.00442, -0.00426,
13116		-0.02540, 0.00471,
13117		130.42585, -31.30051, 17.99957, -174.75585,
13118		-142.96798, -27.89752, -19.42122, 59.14872,
13119		-0.01899, 0.00388,
13120		-0.01265, 0.00694,
13121		0.01966, 0.01140,
13122		-0.00439, 0.00503,
13123		-0.01867, 0.02826,
13124		0.00752, 0.02012,
13125		-0.14734, 0.01909,
13126		0.03312, 0.02327,
13127		0.05843, 0.00061,
13128		-0.06958, -0.05798, -0.09174, 0.06242,
13129		0.00003, 0.00001,
13130		0.00670, -0.00305,
13131		-0.13637, -0.06058, -0.06372, 0.07257,
13132		0.00209, -0.01369,
13133		-0.00044, 0.00355,
13134		17.90079, -17.48270, -8.77915, -24.54483,
13135		-15.67123, 3.62668, 0.52038, 5.13220,
13136		0.02574, 0.00003,
13137		0.00339, 0.00919,
13138		-0.02778, 0.00464,
13139		0.01429, 0.01003,
13140		-0.01661, 0.01327,
13141		0.02216, 0.00034,
13142		-0.00389, 0.01076,
13143		-0.00035, 0.00983,
13144		1.23731, -4.18017, -2.61932, -2.66346,
13145		-1.45540, 1.10310, 0.23322, 0.40775,
13146		-0.43623, 0.06212, -0.09900, 0.19456,
13147		0.03639, 0.02566,
13148		0.00309, -0.00116
13149	],
13150	arg_tbl: [
13151		0, 4,
13152		3, 4, 3, -8, 4, 3, 5, 2,
13153		3, 5, 2, -6, 3, -4, 4, 0,
13154		2, 2, 5, -5, 6, 1,
13155		3, 12, 3, -24, 4, 9, 5, 0,
13156		3, 2, 2, 1, 3, -8, 4, 1,
13157		3, 11, 3, -21, 4, 2, 5, 0,
13158		3, 3, 2, -7, 3, 4, 4, 0,
13159		3, 7, 3, -13, 4, -1, 5, 1,
13160		3, 1, 3, -2, 4, 2, 6, 0,
13161		3, 1, 2, -8, 3, 12, 4, 1,
13162		3, 1, 4, -8, 5, 4, 6, 0,
13163		3, 1, 4, -7, 5, 2, 6, 0,
13164		3, 1, 4, -9, 5, 7, 6, 0,
13165		1, 1, 7, 0,
13166		2, 1, 5, -2, 6, 0,
13167		3, 1, 3, -2, 4, 1, 5, 0,
13168		3, 3, 3, -6, 4, 2, 5, 1,
13169		3, 12, 3, -23, 4, 3, 5, 0,
13170		2, 8, 3, -15, 4, 3,
13171		2, 1, 4, -6, 5, 2,
13172		3, 2, 2, -7, 3, 7, 4, 0,
13173		2, 1, 2, -3, 4, 2,
13174		2, 2, 5, -4, 6, 0,
13175		1, 1, 6, 1,
13176		2, 9, 3, -17, 4, 2,
13177		3, 2, 3, -4, 4, 2, 5, 0,
13178		3, 2, 3, -4, 4, 1, 5, 0,
13179		2, 1, 5, -1, 6, 0,
13180		2, 2, 2, -6, 4, 2,
13181		2, 1, 3, -2, 4, 2,
13182		2, 2, 5, -3, 6, 0,
13183		1, 2, 6, 1,
13184		2, 3, 5, -5, 6, 1,
13185		1, 1, 5, 2,
13186		3, 4, 3, -8, 4, 2, 5, 0,
13187		2, 1, 5, -5, 6, 0,
13188		2, 7, 3, -13, 4, 2,
13189		2, 3, 2, -9, 4, 0,
13190		2, 2, 5, -2, 6, 0,
13191		1, 3, 6, 0,
13192		2, 1, 4, -5, 5, 0,
13193		2, 2, 3, -4, 4, 2,
13194		2, 6, 3, -11, 4, 2,
13195		2, 4, 5, -5, 6, 0,
13196		1, 2, 5, 2,
13197		3, 1, 4, -3, 5, -3, 6, 0,
13198		2, 3, 3, -6, 4, 2,
13199		2, 1, 4, -4, 5, 1,
13200		2, 5, 3, -9, 4, 2,
13201		1, 3, 5, 1,
13202		2, 4, 3, -8, 4, 2,
13203		3, 1, 4, -4, 5, 2, 6, 0,
13204		3, 1, 4, -1, 5, -5, 6, 0,
13205		2, 4, 3, -7, 4, 2,
13206		2, 1, 4, -3, 5, 2,
13207		3, 1, 4, -5, 5, 5, 6, 1,
13208		3, 1, 4, -4, 5, 3, 6, 0,
13209		3, 1, 4, -3, 5, 1, 6, 0,
13210		2, 5, 3, -10, 4, 1,
13211		1, 4, 5, 0,
13212		2, 3, 3, -5, 4, 2,
13213		3, 1, 4, -3, 5, 2, 6, 0,
13214		2, 1, 4, -5, 6, 2,
13215		2, 1, 4, -2, 5, 2,
13216		3, 1, 4, -4, 5, 5, 6, 1,
13217		2, 6, 3, -12, 4, 1,
13218		2, 1, 4, -4, 6, 0,
13219		2, 2, 3, -3, 4, 2,
13220		2, 10, 3, -18, 4, 0,
13221		2, 1, 4, -3, 6, 1,
13222		3, 1, 4, -2, 5, 2, 6, 0,
13223		2, 7, 3, -14, 4, 1,
13224		3, 1, 4, 1, 5, -5, 6, 1,
13225		2, 1, 4, -1, 5, 0,
13226		3, 1, 4, -3, 5, 5, 6, 1,
13227		3, 1, 4, 2, 5, -7, 6, 1,
13228		2, 1, 4, -2, 6, 2,
13229		3, 1, 4, -2, 5, 3, 6, 0,
13230		2, 1, 3, -1, 4, 0,
13231		2, 2, 2, -7, 4, 1,
13232		2, 9, 3, -16, 4, 2,
13233		2, 1, 4, -3, 7, 0,
13234		2, 1, 4, -1, 6, 0,
13235		3, 1, 4, -2, 5, 4, 6, 1,
13236		2, 1, 2, -4, 4, 2,
13237		2, 8, 3, -16, 4, 2,
13238		2, 1, 4, -2, 7, 0,
13239		3, 3, 3, -5, 4, 2, 5, 0,
13240		3, 1, 4, 1, 5, -3, 6, 0,
13241		2, 1, 4, -2, 8, 0,
13242		2, 1, 4, -1, 7, 0,
13243		2, 1, 4, -1, 8, 0,
13244		3, 3, 2, -7, 3, 3, 4, 0,
13245		3, 2, 2, 1, 3, -7, 4, 0,
13246		3, 1, 4, 1, 6, -3, 7, 0,
13247		3, 1, 4, 2, 5, -5, 6, 1,
13248		3, 4, 3, -7, 4, 3, 5, 1,
13249		1, 1, 4, 5,
13250		3, 4, 3, -9, 4, 3, 5, 1,
13251		3, 1, 4, -2, 5, 5, 6, 0,
13252		3, 3, 2, -7, 3, 5, 4, 0,
13253		3, 1, 3, -1, 4, 2, 6, 0,
13254		3, 1, 4, 1, 5, -2, 6, 0,
13255		3, 3, 3, -7, 4, 2, 5, 0,
13256		2, 8, 3, -14, 4, 1,
13257		2, 1, 2, -2, 4, 1,
13258		2, 1, 4, 1, 6, 1,
vendor: 3,807 bytes, lines 13259-13412
13259		2, 9, 3, -18, 4, 1,
13260		2, 2, 2, -5, 4, 1,
13261		2, 1, 3, -3, 4, 2,
13262		2, 1, 4, 2, 6, 0,
13263		2, 1, 4, 1, 5, 1,
13264		3, 4, 3, -9, 4, 2, 5, 1,
13265		2, 7, 3, -12, 4, 1,
13266		2, 2, 4, -5, 5, 0,
13267		2, 2, 3, -5, 4, 2,
13268		2, 6, 3, -10, 4, 1,
13269		2, 1, 4, 2, 5, 1,
13270		3, 2, 4, -5, 5, 2, 6, 0,
13271		2, 3, 3, -7, 4, 1,
13272		2, 2, 4, -4, 5, 0,
13273		2, 5, 3, -8, 4, 1,
13274		2, 1, 4, 3, 5, 0,
13275		3, 2, 4, -4, 5, 2, 6, 0,
13276		3, 2, 4, -1, 5, -5, 6, 0,
13277		2, 4, 3, -6, 4, 1,
13278		2, 2, 4, -3, 5, 0,
13279		3, 2, 4, -5, 5, 5, 6, 1,
13280		3, 2, 4, -4, 5, 3, 6, 0,
13281		2, 3, 3, -4, 4, 1,
13282		2, 2, 4, -5, 6, 2,
13283		2, 2, 4, -2, 5, 1,
13284		3, 2, 4, -4, 5, 5, 6, 1,
13285		2, 2, 4, -4, 6, 0,
13286		2, 2, 3, -2, 4, 0,
13287		2, 2, 4, -3, 6, 1,
13288		2, 2, 4, -1, 5, 1,
13289		2, 2, 4, -2, 6, 0,
13290		1, 1, 3, 1,
13291		2, 2, 4, -1, 6, 0,
13292		2, 1, 2, -5, 4, 1,
13293		2, 8, 3, -17, 4, 1,
13294		3, 2, 4, 2, 5, -5, 6, 1,
13295		3, 4, 3, -6, 4, 3, 5, 1,
13296		3, 10, 3, -17, 4, 3, 6, 0,
13297		1, 2, 4, 4,
13298		3, 4, 3, -10, 4, 3, 5, 1,
13299		2, 8, 3, -13, 4, 0,
13300		2, 1, 2, -1, 4, 0,
13301		2, 2, 4, 1, 6, 0,
13302		2, 2, 2, -4, 4, 0,
13303		2, 1, 3, -4, 4, 1,
13304		2, 2, 4, 1, 5, 0,
13305		2, 7, 3, -11, 4, 0,
13306		2, 3, 4, -5, 5, 0,
13307		2, 2, 3, -6, 4, 1,
13308		2, 6, 3, -9, 4, 0,
13309		2, 2, 4, 2, 5, 0,
13310		2, 3, 4, -4, 5, 0,
13311		2, 5, 3, -7, 4, 0,
13312		2, 4, 3, -5, 4, 1,
13313		2, 3, 4, -3, 5, 1,
13314		2, 3, 3, -3, 4, 0,
13315		2, 3, 4, -2, 5, 2,
13316		3, 3, 4, -4, 5, 5, 6, 0,
13317		2, 2, 3, -1, 4, 0,
13318		2, 3, 4, -3, 6, 0,
13319		2, 3, 4, -1, 5, 1,
13320		2, 3, 4, -2, 6, 0,
13321		2, 1, 3, 1, 4, 1,
13322		2, 3, 4, -1, 6, 0,
13323		3, 4, 3, -5, 4, 3, 5, 0,
13324		1, 3, 4, 3,
13325		3, 4, 3, -11, 4, 3, 5, 0,
13326		1, 1, 2, 0,
13327		2, 2, 2, -3, 4, 0,
13328		2, 1, 3, -5, 4, 0,
13329		2, 4, 4, -5, 5, 0,
13330		2, 6, 3, -8, 4, 0,
13331		2, 4, 4, -4, 5, 0,
13332		2, 5, 3, -6, 4, 0,
13333		2, 4, 3, -4, 4, 0,
13334		2, 4, 4, -3, 5, 1,
13335		3, 6, 3, -8, 4, 2, 5, 0,
13336		2, 3, 3, -2, 4, 0,
13337		2, 4, 4, -2, 5, 1,
13338		2, 4, 4, -1, 5, 0,
13339		2, 1, 3, 2, 4, 0,
13340		1, 4, 4, 3,
13341		2, 2, 2, -2, 4, 0,
13342		2, 7, 3, -9, 4, 0,
13343		2, 5, 4, -5, 5, 0,
13344		2, 6, 3, -7, 4, 0,
13345		2, 5, 4, -4, 5, 0,
13346		2, 5, 3, -5, 4, 0,
13347		2, 5, 4, -3, 5, 0,
13348		2, 5, 4, -2, 5, 0,
13349		1, 5, 4, 3,
13350		1, 6, 4, 2,
13351		1, 7, 4, 0,
13352		-1
13353	]
13354};
13355
13356$ns.jupiter = {
13357	maxargs: 9,
13358	max_harmonic: [0, 0, 1, 0, 9, 16, 7, 5, 0],
13359	max_power_of_t: 6,
13360	distance: 5.2026032092000003e+00,
13361	timescale: 3652500.0,
13362	trunclvl: 1.0,
13363	lon_tbl: [
13364		153429.13855, 130818.16897, 18120.42948, -8463.12663,
13365		-5058.91447, 1092566021.02148, 123671.25097,
13366		-5.43364, 12.06012,
13367		30428.31077, -74667.61443, 46848.16236, -66373.44474,
13368		24312.54264, -26045.64766, 18353.92564, -4022.13679,
13369		4037.97936, 10059.82468, -4622.55896, 1383.21617,
13370		-187.25468, -1171.66028,
13371		-0.00062, -0.21713,
13372		-1198.83945, 1178.62445, -1492.07393, 153.07155,
13373		-245.57966, -391.94010, 82.26400, -40.92104,
13374		3.72520, 10.57242,
13375		-0.04720, -0.04448, -0.04329, -0.06043,
13376		-0.03905, 0.15712,
13377		-0.05644, -0.00129,
13378		-0.00342, 0.02473,
13379		0.00434, -0.01862,
13380		0.00431, -0.03993,
13381		-0.03159, -0.15982,
13382		-0.09928, 0.04430, -0.00357, 0.31312,
13383		-0.01346, -0.00180,
13384		-0.09107, 0.01215,
13385		0.02485, 0.01024,
13386		27.29869, 2.70896, 12.91956, 19.21726,
13387		-6.91384, 5.12954, -1.07533, -1.71691,
13388		-0.01423, 0.03121,
13389		-32.48652, -26.13483, 46.78162, -62.02701,
13390		94.96809, 81.73791, -20.13673, 131.05065,
13391		-0.00798, 0.01786,
13392		13.99591, 16.87756, -8.51726, 21.59490,
13393		-14.28833, -9.45530, 7.73954, -6.53078,
13394		0.03175, -0.04295,
13395		3.06742, -0.11838, 1.03630, 0.94004,
13396		-0.14085, 0.14434,
13397		-0.03363, 0.00993,
13398		-0.00007, -0.02748,
13399		26.01507, -7.37178, 16.96955, 6.24203,
13400		-0.40481, 3.72456, -0.53597, -0.14938,
13401		37.82081, 26.15887, -2.82115, 78.26478,
13402		-63.39155, -5.52419, 13.11482, -43.54977,
13403		15.64940, 6.67505,
13404		-10.25616, -7.39672, -12.37441, 12.24417,
13405		8.54922, 9.68451,
13406		-0.03658, -0.00963,
13407		1.65523, 0.43093, 0.32023, 0.71365,
13408		-0.12226, 0.03759,
13409		0.10388, 0.47212, -0.02791, 0.09929,
13410		-0.04116, -0.03125,
13411		-0.10240, -0.23199, -0.03524, -0.13625,
13412		7.52726, 6.86314, 0.01239, 13.46530,
13413		-5.22256, 1.56116, -0.15925, -1.19571,
13414		3.26302, 0.06097, -0.14444, -0.20301,
13415		1.93822, -80.12566,
13416		0.98665, -7.52986, 3.86703, -2.43028,
13417		0.64180, 0.78351,
13418		0.00190, -0.00633,
13419		-0.00321, -0.04403,
13420		0.19018, 0.14335, 0.10315, 0.53154,
13421		-0.00062, -0.00464,
13422		-0.00109, 0.02150,
13423		1.19993, 47.21638, -24.56067, 25.06332,
13424		-7.50751, -6.36250, 1.39443, -1.23806,
13425		0.04951, 0.02176,
13426		0.02802, -0.01665,
13427		-0.10698, -0.13635,
13428		73.54797, -52.34968, 74.98754, 86.56283,
13429		-69.01463, 44.56866,
13430		0.04387, -0.05925,
13431		-0.03732, -0.03264,
13432		0.00967, 0.02143,
13433		10.59429, 26.48226, 34.03470, 3.96160,
13434		4.15919, -20.22616, -5.25903, -3.40177,
13435		0.05111, -0.06788,
13436		0.06497, 1.21024, -0.29607, 0.49991,
13437		-0.06055, -0.03464,
13438		0.02950, 0.16429,
13439		0.00722, -0.90806,
13440		-0.02161, 0.00902,
13441		-0.00261, 0.00077,
13442		0.00434, -0.29231,
13443		0.00456, 0.04781,
13444		1.33214, -2.62015, 0.79761, -0.81850,
13445		0.06371, 0.00119,
13446		0.03049, -0.03553, 0.02373, -0.01411,
13447		-189.06132, -169.17940, 5.27464, -227.72664,
13448		83.72511, -12.04794, 0.23965, 23.75496,
13449		-3.43532, -0.34276,
13450		-1.35880, 0.45053, -0.34298, -0.11441,
13451		-0.16328, 0.07423,
13452		481.48150, 79.82461, 453.82764, 941.94205,
13453		-635.83924, 397.29087, -81.54066, -417.22420,
13454		149.91822, 10.53490,
13455		-0.13210, 0.36740,
13456		0.33777, 0.15893,
13457		-2562.04968, 2442.77844, -2602.66709, 2838.87348,
13458		723.50715, -1284.58208, -4557.23362, -4514.61100,
13459		-8960.81693, 4663.55087, -4947.61530, 19377.42027,
13460		-0.16786, -0.19514,
13461		0.32100, 0.91502,
13462		4.96600, -1.11836,
13463		307.38057, 175.14618, 16.02093, 444.42376,
13464		-219.80047, 62.39286, -18.14266, -52.23698,
13465		0.02111, 0.00469,
13466		-20.97409, -34.48296, -2.03906, -27.07560,
13467		3.73818, -3.00599, 0.24112, 0.41430,
13468		-0.03552, 0.00394,
13469		-0.00217, 0.02307,
13470		0.03686, 0.00510,
13471		34.46537, 10.23293, 9.99520, 28.88781,
13472		-11.31210, 3.52646, -0.48062, -2.93641,
13473		-0.00987, -0.05310,
13474		-38.39539, 0.04568, -31.73684, -1.83151,
13475		-24.97332, -1.71244, 0.33498, 7.03899,
13476		-4.15247, 200.43434,
13477		-0.00800, 0.04462,
13478		37.83113, -13.40661, 9.49434, -35.41588,
13479		-14.72767, -3.84674, -0.31412, 3.97734,
13480		0.02908, -0.00353,
13481		1.89935, -14.31774, 7.77051, -7.08945,
13482		1.90915, 1.78908, -0.41445, 0.30506,
13483		-14.43121, 7.30707, -11.97842, -17.64121,
13484		13.38962, -7.20982,
13485		-5.23362, 2.11364, -0.45605, 4.08835,
13486		1.42683, 0.24838,
13487		-0.00605, 0.03199,
13488		-0.17609, -1.43091, 0.32444, -0.51371,
13489		0.06182, 0.03733,
13490		0.00696, -0.13438,
13491		4.67581, 4.42379, -1.52602, 4.20659,
13492		-1.31757, -0.72910,
13493		1.29012, 0.97780, 2.25895, -0.85306,
13494		1.74120, -5.09507,
13495		0.28107, -0.05040, 0.05508, -0.06349,
13496		-0.00061, 0.48249,
13497		-2.37749, 1.78180, -1.67423, -0.35618,
13498		0.05789, -0.35287,
13499		0.56252, -0.66584, 0.61979, 4.84016,
13500		-4.64462, 17.48002,
13501		0.40982, -4.19214, -1.55252, -1.87505,
13502		-0.31070, 0.15554,
13503		-0.00034, 0.11102,
13504		0.01116, -0.04166,
13505		9.27689, -4.32090, 6.84888, 1.78741,
13506		-0.09306, 1.68391, -0.27482, -0.04197,
13507		-7.83068, 37.71086, -37.53346, 7.18559,
13508		0.74427, -24.29751, 10.87837, 1.35503,
13509		0.00998, -0.03395,
13510		-133.52206, -150.11329, 4.27494, -173.79469,
13511		150.87961, -356.29181, -330.17873, -426.29809,
13512		-607.98186, 126.35464, -299.69623, 556.41055,
13513		-0.00342, 0.04411,
13514		44.65946, 42.07312, 85.71397, 5.95130,
13515		24.98064, -41.20026, -14.05970, -10.46101,
13516		-2.24038, 2.89211,
13517		0.06175, 0.08128, 0.00705, 0.01939,
13518		-1.08361, -0.08213, -0.20868, -0.36268,
13519		-4.96489, -2.05966, -6.16586, 3.65514,
13520		-3.12555, 12.20821,
13521		-1.11236, -1.73772, -1.34045, -0.22774,
13522		-0.08639, 0.27355,
13523		-0.07700, 1.06260, -0.46013, 0.31916,
13524		-0.04969, -0.09488,
13525		-1.54000, 0.04949, -0.07616, -0.95933,
13526		0.93303, 3.43183,
13527		-0.82917, -0.82042, -0.68158, 0.17083,
13528		0.06942, 0.17491,
13529		-0.02699, -0.01051,
13530		0.00657, 0.03063,
13531		-0.52595, 0.84035, -0.88323, -0.70188,
13532		0.60928, -0.48179,
13533		0.38290, 0.04482, 0.26456, -0.32369,
13534		-0.00615, 0.03218,
13535		-0.32943, 0.14675, -0.10782, -0.09036,
13536		-0.58003, 0.72888, -0.46654, 1.17977,
13537		0.00222, 0.01541,
13538		-0.19226, -0.07770, -0.01829, -0.05070,
13539		-1.75385, -1.32969, 0.52361, -1.36036,
13540		0.67222, 1.34612,
13541		6.96841, -29.24025, -23.76900, -39.91647,
13542		-41.01215, -2.23638, -18.81024, 20.77095,
13543		-0.68592, -2.26212, -1.14065, -0.76493,
13544		-0.18044, 0.15193,
13545		-0.20669, -0.44387, 0.25697, -0.17880,
13546		-0.53097, 0.43181, -0.35187, 0.71934,
13547		-0.14962, 0.09220, -0.05031, -0.03924,
13548		0.06571, 0.29487,
13549		0.05170, 0.36847,
13550		0.02754, -0.00411,
13551		-0.08313, -0.16907, 0.10273, -0.07315,
13552		-0.02312, 0.04912,
13553		-0.01062, -0.02713,
13554		0.03806, 0.13401,
13555		-1.79865, -2.04540, -2.69965, -0.65706,
13556		-1.17916, 0.79292,
13557		0.02415, 0.14001,
13558		-0.01767, 0.04209,
13559		0.05212, -0.01795,
13560		0.01285, 0.04028,
13561		0.01075, 0.05533,
13562		0.02323, -0.00864,
13563		-0.04691, 0.03128,
13564		0.00548, 0.02254,
13565		0.00011, 0.12033
13566	],
13567	lat_tbl: [
13568		548.59659, 594.29629, 219.97664, 59.71822,
13569		23.62157, 40.77732, 227.07380,
13570		0.00293, -0.00745,
13571		-307.33226, -347.92807, -309.49383, -428.18929,
13572		-96.59506, -191.36254, 2.11014, -34.44145,
13573		2.23085, 6.77110, -5.43468, -0.28391,
13574		0.28355, -1.81690,
13575		0.00036, 0.00078,
13576		-1.83259, 1.17464, -2.66976, -0.92339,
13577		-0.23645, -1.20623, 0.25248, -0.04958,
13578		0.00064, 0.03599,
13579		-0.00079, 0.00004, -0.00005, -0.00010,
13580		-0.00024, 0.00051,
13581		0.00001, 0.00005,
13582		0.00015, 0.00010,
13583		0.00017, -0.00004,
13584		0.00113, -0.00011,
13585		0.00021, 0.00087,
13586		0.00120, -0.00114, -0.00881, -0.00020,
13587		-0.00005, 0.00009,
13588		0.00005, 0.00007,
13589		0.00002, -0.00033,
13590		-0.00554, -0.32274, 0.23695, -0.11184,
13591		0.04050, 0.09929, -0.02189, 0.00305,
13592		-0.00142, -0.00055,
13593		0.66623, 0.34590, 0.74913, -0.23202,
13594		-1.08316, -1.40407, 1.72287, -0.07604,
13595		0.00024, 0.00004,
13596		0.03592, 0.91143, -1.11848, -0.17473,
13597		0.91500, -1.34912, 0.85229, 0.69029,
13598		-0.00019, 0.00075,
13599		0.03615, 0.30768, -0.08733, 0.12016,
13600		-0.01716, -0.01138,
13601		0.00021, 0.00004,
13602		0.00531, 0.00098,
13603		-0.14354, -0.02364, -0.05559, -0.07561,
13604		0.01419, -0.01141, 0.00014, 0.00218,
13605		-0.36564, 0.13498, -0.13283, -0.11462,
13606		0.23741, 0.14960, -0.23173, 0.25148,
13607		0.00763, -0.05987,
13608		-0.00857, 0.20312, -0.29399, 0.34831,
13609		-1.33166, -0.46808,
13610		-0.00027, 0.00046,
13611		0.15729, 0.01367, 0.04093, 0.07447,
13612		-0.01598, 0.00785,
13613		0.00583, 0.00324, 0.00053, 0.00160,
13614		-0.00030, 0.00043,
13615		-0.00208, 0.00334, -0.00316, 0.00136,
13616		0.23086, 0.05711, 0.19558, 0.05897,
13617		0.01070, 0.05021, -0.00818, -0.02242,
13618		0.06301, -0.26483, 0.66177, 0.02125,
13619		0.13477, 0.19376,
13620		-0.36520, 0.83588, -0.69848, -0.00877,
13621		0.01626, -0.23878,
13622		-0.00373, 0.00044,
13623		0.00008, -0.00004,
13624		-0.00374, -0.00283, 0.01104, -0.00619,
13625		0.00004, 0.00015,
13626		0.00026, 0.00013,
13627		0.04630, -0.11815, 0.00773, 0.03796,
13628		-0.05172, 0.00149, 0.00444, -0.01493,
13629		-0.00064, -0.00044,
13630		-0.00033, 0.00002,
13631		-0.00012, 0.00284,
13632		-0.15622, -0.92158, -0.82690, -1.52101,
13633		-0.55934, 0.69375,
13634		-0.00171, 0.00031,
13635		0.00129, -0.00013,
13636		-0.00024, -0.00083,
13637		0.66101, -0.21764, -0.43967, 0.30157,
13638		0.53389, 1.59141, 1.94286, 0.14146,
13639		-0.00064, -0.00006,
13640		0.21850, -0.02912, 0.08594, 0.08734,
13641		-0.01678, 0.01629,
13642		0.00133, 0.00562,
13643		0.00128, -0.00025,
13644		-0.00005, 0.00027,
13645		0.00032, 0.00001,
13646		0.00037, 0.00042,
13647		0.00070, 0.00003,
13648		0.00275, -0.13096, 0.02329, -0.05582,
13649		0.00405, -0.00251,
13650		0.01316, -0.01165, 0.00279, -0.00374,
13651		-39.62783, 20.91467, -28.97236, 3.77560,
13652		-3.30029, 0.11472, -0.48216, 1.05814,
13653		-0.21607, -0.03055,
13654		-0.64162, -0.57355, -0.05861, -0.18592,
13655		-0.12207, -0.06279,
13656		-38.55325, -125.74207, -47.22357, 41.75842,
13657		-119.38841, 18.88515, -11.04830, -50.98851,
13658		16.64895, 1.76553,
13659		0.09474, 0.03714,
13660		0.02593, 0.07967,
13661		-1187.61854, -1094.91786, -1011.21939, -1102.25998,
13662		-575.88672, -107.84860, -890.58889, -807.06589,
13663		971.78461, -1287.24560, -4601.44669, -849.54329,
13664		-0.00904, 0.06233,
13665		-0.19456, -0.05521,
13666		-0.36915, 1.15363,
13667		32.64763, -85.19705, 114.34437, -13.37747,
13668		15.92865, 55.84857, -13.10538, 3.07629,
13669		-0.00327, 0.00104,
13670		-7.81035, 6.19960, -6.36096, 1.00493,
13671		-0.66971, -0.84572, 0.09943, -0.04583,
13672		0.00200, -0.00032,
13673		-0.00265, 0.00047,
13674		-0.00053, 0.00046,
13675		-0.24396, 0.20664, -0.30820, -0.04917,
13676		0.06184, -0.12642, 0.03053, 0.05054,
13677		0.00035, 0.00012,
13678		0.42063, -0.58254, 0.90517, -0.66276,
13679		0.64765, 0.39338, -1.40645, 0.33017,
13680		-1.43377, -0.67089,
13681		-0.00045, -0.00036,
13682		0.23690, 0.07185, 0.28386, -0.04397,
13683		0.02836, -0.13082, -0.00978, 0.00108,
13684		0.00046, 0.00083,
13685		-0.01665, 0.32499, -0.09980, 0.18611,
13686		-0.02561, 0.00239, -0.00084, -0.00110,
13687		0.46854, -0.35113, 0.69908, 0.53244,
13688		0.12875, 0.01115,
13689		0.13930, 0.02747, -0.10587, -0.17759,
13690		-0.26850, 0.04400,
13691		0.00010, -0.00015,
13692		0.00164, -0.01308, 0.00488, -0.01046,
13693		0.00170, 0.00024,
13694		0.00084, 0.00014,
13695		-0.08481, -0.02547, -0.02290, -0.02281,
13696		-0.03946, -0.02810,
13697		0.01298, 0.08658, 0.05575, -0.01081,
13698		1.09695, 0.35441,
13699		-0.03127, 0.07946, 0.01245, 0.02578,
13700		-0.00524, -0.00027,
13701		0.08217, -0.31742, 0.15273, -0.07804,
13702		0.01197, 0.03053,
13703		0.81596, 0.38640, -0.89777, 0.59499,
13704		-0.39581, -0.87375,
13705		0.02096, 0.49772, 0.29986, 0.24210,
13706		0.14038, -0.03016,
13707		-0.00208, 0.00045,
13708		0.01024, 0.00114,
13709		1.23010, 1.75663, -0.12741, 1.44996,
13710		-0.31607, 0.03151, 0.00259, -0.04741,
13711		-11.57091, 8.00331, -9.24028, -6.36906,
13712		4.71248, -2.43695, 0.38630, 1.90625,
13713		0.01401, 0.00114,
13714		33.56690, -55.17784, 33.21425, -52.57002,
13715		27.04138, 13.78610, 69.60307, -81.16312,
13716		27.53960, -158.28336, -205.94418, -95.08051,
13717		-0.01407, -0.00364,
13718		-18.56128, 6.02270, -10.11059, 24.69471,
13719		12.31878, 9.94393, 3.81994, -4.84109,
13720		-1.08440, -0.72136,
13721		0.03731, -0.02094, 0.00789, -0.00176,
13722		0.09673, -0.11181, 0.03112, -0.00065,
13723		-0.29167, -0.82083, 0.40866, -0.77487,
13724		-2.23349, -0.46973,
13725		0.41024, -0.14274, 0.07755, -0.24895,
13726		-0.04965, -0.01197,
13727		-0.02264, 0.05917, -0.02817, 0.01242,
13728		-0.00250, -0.00247,
13729		-0.14414, -0.03739, 0.14708, -0.07908,
13730		0.05843, 0.15173,
13731		-0.01601, -0.07844, -0.05957, -0.03143,
13732		-0.01830, 0.01257,
13733		-0.00109, -0.00000,
13734		0.00174, 0.00050,
13735		-0.02119, 0.06918, -0.02470, 0.00185,
13736		0.02372, -0.02417,
13737		0.01081, 0.05222, 0.09820, 0.05931,
13738		-0.00588, -0.00086,
13739		0.01688, -0.00133, -0.00073, 0.00041,
13740		-0.02280, -0.05706, -0.17694, -0.12027,
13741		0.00196, -0.00060,
13742		0.00051, -0.02426, 0.00314, -0.00302,
13743		0.17923, -0.78343, 0.52073, -0.02398,
13744		-0.03978, 0.20841,
13745		6.51325, 3.37139, 12.88844, -6.72098,
13746		3.40949, -14.34313, -9.68278, -7.85143,
13747		1.06886, -0.21727, 0.36675, -0.49815,
13748		-0.07289, -0.07537,
vendor: 4,932 bytes, lines 13749-13913
13749		0.01107, -0.00644, 0.01013, -0.00306,
13750		-0.00708, -0.13488, -0.23041, -0.10698,
13751		-0.00049, -0.00692, -0.00142, -0.00211,
13752		-0.04021, 0.01805,
13753		0.00479, 0.00620,
13754		0.00739, 0.00566,
13755		-0.00101, -0.00022, 0.00261, -0.00188,
13756		-0.01812, -0.01205,
13757		-0.00061, -0.00061,
13758		-0.02479, 0.01157,
13759		0.91642, -0.65781, 0.39969, -1.13699,
13760		-0.43337, -0.57828,
13761		0.00145, 0.00281,
13762		-0.01675, -0.00975,
13763		0.00119, -0.00074,
13764		-0.00343, 0.00139,
13765		0.00061, 0.00086,
13766		0.00054, -0.00046,
13767		-0.01996, -0.02689,
13768		0.00034, 0.00037,
13769		-0.00006, 0.00001
13770	],
13771	rad_tbl: [
13772		-734.58857, -1081.04460, -551.65750, -148.79782,
13773		-25.23171, 164.64781, 248.64813,
13774		-0.05163, -0.02413,
13775		-1306.61004, 560.02437, -1622.58047, 589.92513,
13776		-812.39674, 166.85340, -157.92826, -107.14755,
13777		68.98900, -18.95875, -0.16183, 36.24345,
13778		-9.19972, -2.29315,
13779		-0.00316, 0.00222,
13780		10.95234, 21.37177, -6.29550, 21.83656,
13781		-7.70755, 1.38228, -0.21770, -1.49525,
13782		0.17951, 0.01043,
13783		0.00062, 0.00208, -0.00066, 0.00050,
13784		0.00313, 0.00187,
13785		0.00010, 0.00131,
13786		0.00102, 0.00047,
13787		0.00102, 0.00012,
13788		0.00012, -0.00037,
13789		0.00808, 0.00027,
13790		-0.01219, -0.00961, -0.04166, -0.00327,
13791		-0.00001, -0.00146,
13792		-0.00092, -0.00989,
13793		-0.00135, 0.00196,
13794		0.19216, 2.48442, -1.43599, 1.39651,
13795		-0.48549, -0.53272, 0.14066, -0.10352,
13796		0.00141, 0.00066,
13797		2.96838, -3.09575, 6.27741, 5.24306,
13798		-8.77080, 9.03247, -10.98350, -3.58579,
13799		-0.00168, -0.00100,
13800		0.20234, -0.75737, 0.36838, -0.58241,
13801		0.41430, -0.35784, 0.47038, -0.10586,
13802		0.00539, 0.00490,
13803		-0.01375, -0.01950, 0.00145, 0.00723,
13804		-0.00391, 0.00391,
13805		-0.00131, -0.00568,
13806		0.01317, 0.00319,
13807		1.31006, 5.89394, -1.61753, 3.68814,
13808		-0.80644, -0.14747, 0.04481, -0.11361,
13809		-4.36130, 7.92488, -16.29047, -1.52163,
13810		2.14492, -14.38028, 9.65573, 3.56881,
13811		-1.87208, 3.36213,
13812		1.84499, -2.41575, -2.77076, -3.23915,
13813		-3.34573, 1.40979,
13814		0.00217, -0.00841,
13815		0.29313, -0.36246, 0.22043, 0.02328,
13816		-0.01182, 0.04074,
13817		-0.15728, 0.02468, -0.03185, -0.01099,
13818		0.01059, -0.01274,
13819		0.07362, -0.02642, 0.04035, -0.00968,
13820		-2.14457, 2.53297, -4.34196, -0.11421,
13821		-0.38757, -1.73872, 0.39784, -0.01397,
13822		-0.03311, 0.97723, 0.16060, -0.07486,
13823		25.96413, 0.75088,
13824		-3.04736, 0.30340, -1.43451, -1.35136,
13825		0.26526, -0.40247,
13826		-0.00460, -0.00056,
13827		0.01633, -0.00128,
13828		-0.05197, 0.07002, -0.19450, 0.03737,
13829		0.00188, -0.00037,
13830		-0.00903, -0.00059,
13831		-19.73809, 0.58424, -10.42034, -10.14579,
13832		2.65990, -3.07889, 0.50884, 0.58508,
13833		-0.00970, 0.02099,
13834		0.00716, 0.01161,
13835		0.05751, -0.04515,
13836		22.08042, 30.82415, -36.27430, 31.40265,
13837		-18.30150, -29.16403,
13838		0.02454, 0.01834,
13839		-0.01312, 0.01576,
13840		-0.00928, 0.00330,
13841		-11.78094, 4.06738, -2.51590, 15.05277,
13842		9.12747, 2.88088, 2.32916, -2.08271,
13843		0.02872, 0.02194,
13844		0.60494, -0.04597, 0.24749, 0.15971,
13845		-0.02185, 0.03384,
13846		-0.07075, 0.01287,
13847		0.40201, 0.00347,
13848		-0.00410, -0.00998,
13849		-0.00005, -0.00121,
13850		0.13770, 0.00186,
13851		-0.02268, 0.00210,
13852		1.26291, 0.65546, 0.38885, 0.38880,
13853		-0.00184, 0.03067,
13854		0.01273, 0.01136, 0.00557, 0.01117,
13855		94.13171, -88.37882, 120.53292, 8.32903,
13856		7.77313, 43.46523, -11.66698, 0.44639,
13857		0.15092, -1.68367,
13858		-0.30833, -0.49030, 0.01971, -0.14144,
13859		-0.04019, -0.05110,
13860		-39.70024, 272.91667, -468.46263, 256.77696,
13861		-200.63130, -307.98554, 206.56301, -41.76039,
13862		-4.74242, 74.19909,
13863		0.18474, 0.05547,
13864		-0.06732, 0.16515,
13865		-1156.31285, -1102.97666, -1346.99288, -1121.01090,
13866		666.84550, 421.92305, 2259.49740, -2268.69758,
13867		-2325.87639, -4476.46256, -9683.77583, -2472.92565,
13868		-0.10400, 0.08075,
13869		-0.45225, 0.16621,
13870		0.57789, 2.43804,
13871		85.21675, -154.17208, 219.91042, -9.71116,
13872		31.13240, 108.60117, -25.85622, 8.98402,
13873		-0.00233, 0.01030,
13874		-17.01324, 10.41588, -13.34449, 1.08782,
13875		-1.48199, -1.81734, 0.20334, -0.11734,
13876		-0.00230, -0.01869,
13877		-0.01182, -0.00129,
13878		-0.00281, 0.02021,
13879		-5.75973, 19.13309, -16.13690, 5.53382,
13880		-1.96585, -6.29211, 1.63105, -0.26089,
13881		0.02935, -0.00555,
13882		0.30700, -19.96182, 0.99825, -16.32664,
13883		0.83052, -13.76201, -3.15609, 0.17360,
13884		-111.81423, -2.05419,
13885		-0.02455, -0.00478,
13886		7.45114, 21.53296, 19.90263, 5.69420,
13887		2.31253, -8.15116, -2.17440, -0.23014,
13888		0.00168, 0.01590,
13889		8.78005, 0.71418, 4.48561, 4.50680,
13890		-1.05713, 1.17880, -0.19327, -0.24877,
13891		-5.00870, -8.66354, 10.51902, -7.71011,
13892		4.65486, 8.05673,
13893		-1.39635, -3.07669, -2.40347, -0.11167,
13894		-0.04064, 0.83512,
13895		-0.02041, -0.00351,
13896		0.97375, -0.15795, 0.36361, 0.19913,
13897		-0.02142, 0.04193,
13898		0.08801, 0.00475,
13899		-2.81010, 3.11341, -2.79191, -0.93313,
13900		0.44570, -0.88287,
13901		-0.51815, 0.54776, 0.29736, 0.99779,
13902		2.28957, 0.82183,
13903		0.03386, 0.12855, 0.03124, 0.02454,
13904		-0.31958, 0.00070,
13905		-1.48184, -1.28195, 0.03965, -1.12026,
13906		0.23910, 0.01293,
13907		0.36146, -0.64483, -1.88470, 0.21469,
13908		-11.79819, -1.87287,
13909		2.65699, -0.36287, 0.88148, -1.26883,
13910		-0.19657, -0.14279,
13911		-0.07536, -0.00004,
13912		0.01496, 0.00537,
13913		2.48352, 3.75581, -0.34909, 3.26696,
13914		-0.82105, 0.11287, -0.00755, -0.13764,
13915		-15.34429, -2.79957, -3.22976, -15.46084,
13916		10.66793, -0.26054, -0.12188, 5.06211,
13917		0.01313, 0.00424,
13918		84.34332, -57.05646, 92.68150, -0.02024,
13919		149.62698, 59.14407, 174.04569, -129.26785,
13920		-55.99789, -238.01484, -212.51618, -115.94914,
13921		-0.01720, -0.00158,
13922		-13.65602, 17.47396, 0.16714, 32.66367,
13923		16.30095, 9.18345, 3.98555, -5.39985,
13924		-1.09958, -0.86072,
13925		0.02752, -0.02474, 0.00671, -0.00278,
13926		-0.21030, -0.73658, 0.20708, -0.21378,
13927		0.78462, -2.14051, -1.60070, -2.60915,
13928		-5.02441, -1.19246,
13929		0.67622, -0.41889, 0.07430, -0.53204,
13930		-0.11214, -0.03417,
13931		-0.72636, -0.15535, -0.16815, -0.35603,
13932		0.07530, -0.02521,
13933		-0.01261, -0.94883, 0.39930, -0.05370,
13934		-2.77309, 0.38431,
13935		0.72127, -0.52030, -0.01804, -0.51188,
13936		-0.11993, 0.02189,
13937		0.00928, -0.02129,
13938		-0.02760, 0.00441,
13939		-0.56832, -0.48114, 0.64192, -0.65656,
13940		0.37483, 0.51883,
13941		-0.08474, 0.20324, 0.12783, 0.13041,
13942		-0.01545, -0.00282,
13943		-0.16196, -0.26980, 0.06584, -0.09987,
13944		-0.36305, -0.27610, -0.57074, -0.13607,
13945		-0.00824, 0.00369,
13946		0.06094, -0.12214, 0.03581, -0.00876,
13947		0.49346, -0.74596, 0.47814, 0.18201,
13948		-1.00640, 0.24465,
13949		10.09808, 2.30496, 13.63359, -7.94007,
13950		0.29792, -13.55724, -6.48556, -5.99581,
13951		0.69686, -0.22434, 0.23198, -0.35579,
13952		-0.04736, -0.05683,
13953		0.36710, -0.16571, 0.14876, 0.21824,
13954		-0.18940, -0.15063, -0.23692, -0.09990,
13955		-0.08923, -0.12222, 0.02998, -0.04560,
13956		-0.16229, 0.04552,
13957		-0.33051, 0.02585,
13958		-0.00622, 0.01583,
13959		0.15436, -0.07109, 0.06429, 0.09218,
13960		-0.01277, -0.00019,
13961		0.02345, -0.01057,
13962		-0.07294, 0.02506,
13963		0.62063, -0.52533, 0.16814, -0.77168,
13964		-0.20614, -0.31828,
13965		-0.12856, 0.01316,
13966		-0.01522, -0.00126,
13967		0.01558, 0.04765,
13968		-0.02776, 0.01166,
13969		-0.05185, 0.00674,
13970		0.00754, 0.02183,
13971		-0.00645, -0.01050,
13972		-0.02155, 0.00375,
13973		0.12040, -0.00004
13974	],
13975	arg_tbl: [
13976		0, 6,
13977		3, 2, 5, -6, 6, 3, 7, 0,
13978		2, 2, 5, -5, 6, 6,
13979		3, 1, 5, -2, 6, -3, 8, 0,
13980		2, 4, 5, -10, 6, 4,
13981		3, 2, 5, -4, 6, -3, 7, 1,
13982		3, 3, 5, -10, 6, 7, 7, 0,
13983		2, 6, 5, -15, 6, 0,
13984		3, 1, 5, -4, 6, 4, 7, 0,
13985		3, 3, 5, -8, 6, 2, 7, 0,
13986		3, 1, 5, -3, 6, 1, 7, 0,
13987		3, 1, 5, -3, 6, 2, 7, 0,
13988		1, 1, 7, 1,
13989		2, 5, 5, -12, 6, 0,
13990		3, 2, 5, -7, 6, 7, 7, 0,
13991		3, 1, 5, -1, 6, -3, 7, 0,
13992		2, 3, 5, -7, 6, 3,
13993		3, 1, 5, -4, 6, 3, 7, 0,
13994		2, 1, 5, -2, 6, 3,
13995		3, 3, 5, -8, 6, 3, 7, 0,
13996		2, 1, 5, -3, 6, 3,
13997		3, 1, 5, -3, 6, 3, 7, 0,
13998		2, 3, 5, -8, 6, 2,
13999		3, 2, 5, -5, 6, 2, 7, 0,
14000		1, 2, 7, 0,
14001		2, 4, 5, -9, 6, 3,
14002		2, 2, 5, -4, 6, 4,
14003		1, 1, 6, 2,
14004		3, 2, 5, -5, 6, 3, 7, 0,
14005		2, 2, 5, -6, 6, 2,
14006		2, 5, 5, -11, 6, 1,
14007		3, 1, 5, -2, 7, -2, 8, 0,
14008		2, 1, 5, -3, 7, 1,
14009		2, 3, 5, -6, 6, 3,
14010		2, 1, 5, -1, 6, 2,
14011		2, 1, 5, -4, 6, 2,
14012		2, 3, 5, -9, 6, 0,
14013		3, 2, 5, -4, 6, 2, 7, 0,
14014		2, 1, 5, -2, 7, 1,
14015		2, 6, 5, -13, 6, 0,
14016		3, 2, 5, -2, 6, -3, 7, 0,
14017		2, 4, 5, -8, 6, 3,
14018		2, 3, 6, -3, 7, 0,
14019		3, 6, 5, -14, 6, 3, 7, 0,
14020		3, 1, 5, -2, 7, 1, 8, 0,
14021		2, 2, 5, -3, 6, 2,
14022		3, 1, 5, -4, 7, 5, 8, 0,
14023		3, 2, 5, -8, 6, 3, 7, 0,
14024		3, 4, 5, -9, 6, 3, 7, 0,
14025		1, 2, 6, 3,
14026		3, 2, 5, -4, 6, 3, 7, 0,
14027		2, 2, 5, -7, 6, 2,
14028		2, 1, 5, -2, 8, 0,
14029		2, 1, 5, -1, 7, 0,
14030		3, 3, 5, -6, 6, 2, 7, 0,
14031		3, 4, 5, -8, 6, 2, 8, 0,
14032		2, 1, 5, -1, 8, 0,
14033		3, 2, 5, -3, 6, 1, 7, 0,
14034		2, 7, 5, -15, 6, 2,
14035		3, 3, 5, -4, 6, -3, 7, 1,
14036		2, 5, 5, -10, 6, 4,
14037		3, 1, 5, 1, 6, -3, 7, 1,
14038		3, 7, 5, -16, 6, 3, 7, 0,
14039		2, 3, 5, -5, 6, 4,
14040		3, 1, 5, -6, 6, 3, 7, 0,
14041		3, 5, 5, -11, 6, 3, 7, 0,
14042		1, 1, 5, 5,
14043		3, 3, 5, -11, 6, 3, 7, 0,
14044		3, 3, 5, -6, 6, 3, 7, 0,
14045		2, 2, 5, -7, 7, 0,
14046		2, 1, 5, -5, 6, 3,
14047		3, 1, 5, -1, 6, 3, 7, 0,
14048		2, 3, 5, -10, 6, 3,
14049		3, 2, 5, -3, 6, 2, 7, 0,
14050		2, 1, 5, 1, 7, 0,
14051		3, 2, 5, -1, 6, -3, 7, 0,
14052		2, 4, 5, -7, 6, 3,
14053		2, 4, 6, -3, 7, 0,
14054		2, 2, 5, -2, 6, 4,
14055		3, 4, 5, -8, 6, 3, 7, 0,
14056		1, 3, 6, 3,
14057		3, 2, 5, -3, 6, 3, 7, 0,
14058		2, 5, 5, -9, 6, 3,
14059		2, 3, 5, -4, 6, 2,
14060		2, 1, 5, 1, 6, 2,
14061		2, 2, 5, -4, 7, 0,
14062		2, 6, 5, -11, 6, 2,
14063		2, 2, 5, -3, 7, 0,
14064		2, 4, 5, -6, 6, 2,
14065		2, 2, 5, -1, 6, 2,
14066		1, 4, 6, 1,
14067		2, 2, 5, -2, 7, 0,
14068		2, 5, 5, -8, 6, 2,
14069		2, 3, 5, -3, 6, 2,
14070		2, 1, 5, 2, 6, 2,
14071		2, 2, 5, -2, 8, 0,
14072		2, 2, 5, -1, 7, 0,
14073		2, 6, 5, -10, 6, 3,
14074		2, 4, 5, -5, 6, 3,
14075		2, 6, 6, -3, 7, 0,
14076		1, 2, 5, 5,
14077		3, 4, 5, -6, 6, 3, 7, 0,
14078		1, 5, 6, 4,
14079		2, 2, 5, -10, 6, 1,
14080		2, 5, 5, -7, 6, 1,
14081		2, 3, 5, -2, 6, 2,
14082		2, 1, 5, 3, 6, 2,
14083		2, 6, 5, -9, 6, 2,
14084		2, 4, 5, -4, 6, 2,
14085		2, 2, 5, 1, 6, 2,
14086		2, 7, 5, -11, 6, 0,
14087		2, 3, 5, -3, 7, 0,
14088		2, 5, 5, -6, 6, 2,
14089		2, 3, 5, -1, 6, 1,
14090		2, 3, 5, -2, 7, 0,
14091		2, 6, 5, -8, 6, 1,
14092		2, 4, 5, -3, 6, 1,
14093		2, 2, 5, 2, 6, 0,
14094		2, 7, 5, -10, 6, 1,
14095		2, 5, 5, -5, 6, 2,
14096		1, 3, 5, 3,
14097		2, 1, 5, 5, 6, 2,
14098		2, 6, 5, -7, 6, 1,
14099		2, 4, 5, -2, 6, 1,
14100		2, 7, 5, -9, 6, 1,
14101		2, 5, 5, -4, 6, 0,
14102		2, 6, 5, -6, 6, 0,
14103		2, 4, 5, -1, 6, 0,
14104		2, 7, 5, -8, 6, 1,
14105		2, 5, 5, -3, 6, 0,
14106		2, 8, 5, -10, 6, 0,
14107		2, 6, 5, -5, 6, 0,
14108		1, 4, 5, 2,
14109		2, 7, 5, -7, 6, 0,
14110		2, 5, 5, -2, 6, 0,
14111		2, 8, 5, -9, 6, 0,
14112		2, 7, 5, -6, 6, 0,
14113		2, 8, 5, -8, 6, 0,
14114		2, 9, 5, -10, 6, 0,
14115		1, 5, 5, 0,
14116		2, 9, 5, -9, 6, 0,
14117		2, 1, 3, -1, 5, 0,
14118		-1
14119	]
14120};
14121
14122$ns.saturn = {
14123	maxargs: 9,
14124	max_harmonic: [0, 0, 1, 0, 8, 18, 9, 5, 0],
14125	max_power_of_t: 7,
14126	distance: 9.5575813548599999e+00,
14127	timescale: 3652500.0,
14128	trunclvl: 1.0,
14129	lon_tbl: [
14130		1788381.26240, 2460423.68044, 1370113.15868, 415406.99187,
14131		72040.39885, 12669.58806, 439960754.85333, 180256.80433,
14132		18.71177, -40.37092,
14133		66531.01889, -195702.70142, 57188.02694, -179110.60982,
14134		-19803.06520, -58084.15705, -9055.13344, -31146.10779,
14135		11245.43286, -3247.59575, 459.48670, 2912.82402,
14136		-4.06749, -13.53763,
14137		-30.55598, -4.51172,
14138		1.48832, 0.37139,
14139		597.35433, 1193.44545, -297.50957, 976.38608,
14140		-263.26842, 34.84354, -6.77785, -29.92106,
14141		-0.16325, -0.18346,
14142		-0.15364, -0.08227,
14143		0.20180, 0.02244,
14144		0.04672, -0.29867,
14145		-0.04143, -0.00760,
14146		-0.17046, -0.00778,
14147		0.04200, 0.23937, -0.00098, -0.05236,
14148		-0.02749, -0.01813,
14149		0.00637, 0.01256,
14150		-0.04506, 0.04448,
14151		-0.00105, 0.06224,
14152		0.01157, 0.17057, -0.03214, 0.18178,
14153		-0.22059, -0.01472,
14154		-0.24213, 0.04309, 0.03436, 0.44873,
14155		0.01350, -0.01931,
14156		-0.80618, -0.56864, 0.29223, -0.03101,
14157		0.04171, 0.02264,
14158		-0.01264, -0.01645,
14159		0.01774, 0.06374,
14160		-0.01925, -0.03552,
14161		0.10473, -0.04119,
14162		0.08045, 0.04635,
14163		-3.01112, -9.26158, 8.13745, 1.88838,
14164		-0.15184, 0.16898,
14165		-0.22091, 0.29070, -0.03259, 0.06938,
14166		-0.08499, -0.21688, 0.01848, -0.05594,
14167		0.50100, -0.00027, 0.13300, 0.12055,
14168		0.03039, 0.03854,
14169		-1.55287, 2.55618, -0.45497, -0.29895,
14170		-0.93268, 0.83518,
14171		-0.32785, 7.03878, -1.66649, 2.75564,
14172		-0.29459, 0.01050,
14173		0.08293, -0.03161,
14174		-0.12750, -0.04359,
14175		0.04217, 0.07480,
14176		-114.43467, 49.47867, -66.52340, -26.27841,
14177		15.48190, -13.06589, 3.28365, 5.02286,
14178		-0.17155, -0.07404,
14179		0.00924, -0.07407,
14180		-0.02922, 0.06184,
14181		108.04882, 86.09791, -155.12793, 208.10044,
14182		-311.72810, -268.92703, 74.57561, -420.03057,
14183		-0.07893, 0.09246,
14184		-0.66033, -0.39026, -0.13816, -0.08490,
14185		-36.79241, -78.88254, 71.88167, -68.05297,
14186		51.71616, 65.77970, -43.59328, 23.51076,
14187		-0.02029, -0.32943,
14188		-8.82754, 1.48646, -3.12794, 2.12866,
14189		-0.06926, 0.44979,
14190		0.00621, -0.51720,
14191		-3.82964, -1.48596, -0.11277, -3.21677,
14192		0.81705, -0.19487,
14193		-0.06195, 0.10005, -0.02208, 0.00108,
14194		0.00455, -0.03825,
14195		0.01217, -0.00599,
14196		-0.17479, -0.47290, 0.85469, 1.12548,
14197		-0.80648, -0.44134,
14198		-0.01559, -0.07061,
14199		0.01268, -0.01773,
14200		0.01308, -0.03461,
14201		-0.71114, 1.97680, -0.78306, -0.23052,
14202		0.94475, -0.10743,
14203		0.18252, -8.03174,
14204		0.00734, 0.04779,
14205		0.12334, -0.03513,
14206		0.01341, 0.02461,
14207		0.02047, -0.03454,
14208		0.02169, -0.01921,
14209		-1.12789, 0.09304, 0.14585, 0.36365,
14210		0.03702, 0.10661, -0.00464, -1.72706,
14211		-0.00769, -0.04635,
14212		-0.01157, 0.00099,
14213		10.92646, 1.96174, 2.91142, 4.74585,
14214		-0.29832, 0.75543,
14215		0.05411, 1.05850,
14216		0.38846, -0.16265,
14217		1.52209, 0.12185, 0.18650, 0.35535,
14218		-278.33587, -82.58648, -160.00093, -225.55776,
14219		35.17458, -77.56672, 10.61975, 3.33907,
14220		0.06090, 2.17429,
14221		-4.32981, -5.84246, 11.43116, 20.61395,
14222		-0.65772, 1.28796,
14223		1224.46687, -3113.15508, 3798.33409, -137.28735,
14224		-256.89302, 2227.35649, -779.78215, -260.37372,
14225		11.73617, -13.25050, -0.75248, -2.87527,
14226		-8.38102, 17.21321,
14227		-61784.69616, 39475.02257, -54086.68308, 54550.85490,
14228		-16403.69351, 29602.70098, 14672.06363, 16234.17489,
14229		15702.37109, -22086.30300, -22889.89844, -1245.88352,
14230		1.48864, 19.75000, 0.78646, 3.29343,
14231		-1058.13125, 4095.02368, -2793.78506, 1381.93282,
14232		-409.19381, -772.54270, 161.67509, -34.15910,
14233		-514.27437, 27.34222, -311.04046, 48.01030,
14234		-43.36486, 16.19535, -0.73816, -0.81422,
14235		287.32231, -110.44135, 200.43610, 37.98170,
14236		17.73719, 34.40023, -2.46337, 1.48125,
14237		0.09042, -0.11788,
14238		0.37284, 0.51725, 0.00597, 0.14590,
14239		-0.01536, 0.00980,
14240		0.00721, 0.02023,
14241		0.00027, 0.02451,
14242		-0.72448, -0.71371, 0.29322, 0.18359,
14243		0.72719, -0.37154, 0.14854, -0.02530,
14244		0.23052, 0.04258,
14245		4.82082, 0.01885, 3.11279, -0.63338,
14246		0.10559, -0.02146,
14247		-0.01672, 0.03412,
14248		0.00605, 0.06415,
14249		-0.89085, 1.51929, -0.36571, 0.39317,
14250		12.05250, -3.79392, 3.96557, -3.51272,
14251		-0.17953, 12.30669,
14252		-0.05083, -0.11442,
14253		0.02013, -0.02837,
14254		-0.02087, -0.01599,
14255		0.49190, 0.30360, 0.01316, 0.17649,
14256		0.21193, -0.09149, -0.07173, -0.05707,
14257		4.24196, -1.25155, 1.81336, 0.68887,
14258		-0.01675, 0.20772,
14259		-0.04117, -0.03531,
14260		-0.02690, -0.02766,
14261		37.54264, 10.95327, 8.05610, 30.58210,
14262		-12.68257, 1.72831, 0.13466, -3.27007,
14263		0.01864, -0.00595,
14264		0.03676, 0.14857, -0.07223, 0.06179,
14265		0.44878, -1.64901, -20.06001, 0.63384,
14266		-4.97849, 4.78627, 29.87370, 7.29899,
14267		0.00047, -0.00155,
14268		0.00314, 0.01425,
14269		-0.17842, -0.08461,
14270		-1.61020, -8.47710, 6.85048, -4.38196,
14271		1.05809, 2.68088,
14272		-0.01027, -0.00833,
14273		0.06834, -0.04205,
14274		0.03330, -0.01271,
14275		0.01301, -0.01358,
14276		0.03537, 0.03612, 0.02962, 0.62471,
14277		-0.30400, -0.64857,
14278		0.01773, 0.01890,
14279		0.01426, -0.00226,
14280		-0.50957, -0.01955, -0.09702, 1.09983,
14281		0.64387, -0.02755,
14282		0.26604, 0.30684, 0.06354, 0.05114,
14283		-0.00058, -0.04672,
14284		-0.00828, 0.00712,
14285		-0.00440, 0.00029,
14286		-0.01601, 0.03566,
14287		0.13398, -0.02666,
14288		-0.06752, -0.43044, 0.07172, -0.01999,
14289		-0.01761, -0.05357,
14290		0.06104, 0.29742, -0.08785, 0.05241,
14291		-6.57162, -4.20103, 0.03199, -6.46187,
14292		1.32846, -0.51137,
14293		0.06358, 0.37309,
14294		-1.46946, 2.34981,
14295		-0.18712, 0.11618,
14296		240.62965, -107.21962, 219.81977, 84.04246,
14297		-62.22931, 68.35902, -9.48460, -32.62906,
14298		5.57483, -1.82396, 1.00095, -0.39774,
14299		7.87054, 11.45449,
14300		-432.67155, 55064.72398, 12444.62359, 54215.28871,
14301		8486.03749, 12297.48243, -333.27968, 1147.93192,
14302		1403.73797, 990.40885, -3.84938, -722.43963,
14303		16.83276, 96.48787, 7.04834, 38.22208,
14304		0.63843, 2.61007,
14305		230.73221, 171.64166, 1.96751, 287.80846,
14306		-85.21762, 31.33649, -2.25739, -11.28441,
14307		0.04699, 0.06555,
14308		-0.08887, 1.70919, 0.09477, 0.26291,
14309		-0.15490, 0.16009,
vendor: 4,123 bytes, lines 14310-14449
14310		1.93274, 1.01953, 0.36380, 1.29582,
14311		-0.13911, 0.14169,
14312		-0.00491, -0.00030,
14313		-0.08908, -0.10216,
14314		-0.03265, -0.03889,
14315		0.40413, -1.12715, -0.94687, -0.04514,
14316		0.02487, -0.01048,
14317		0.39729, 2.82305, -0.61100, 1.11728,
14318		-0.13083, -0.04965,
14319		-0.00602, -0.02952,
14320		-6.13507, 13.73998, -15.70559, -1.28059,
14321		2.64422, -9.33798, 3.26470, 1.56984,
14322		-0.00572, 0.09992,
14323		-8.80458, -8.23890, -11.51628, 9.47904,
14324		11.31646, 4.29587,
14325		-2.41367, -0.05883, -0.80022, -1.02706,
14326		0.21461, -0.06864,
14327		0.01882, 0.01798,
14328		0.27614, -0.01007, 0.04362, 0.07560,
14329		0.05519, 0.23435,
14330		-0.09389, 0.01613,
14331		0.01298, 0.04691,
14332		-0.02665, -0.03582,
14333		0.60080, -4.28673, 1.87316, -1.05840,
14334		0.13248, 0.40887,
14335		-0.67657, 0.67732, 0.05522, 0.07812,
14336		-0.17707, -0.07510,
14337		0.24885, 10.63974, -7.40226, -2.33827,
14338		2.75463, -32.51518,
14339		0.05140, 0.01555,
14340		180.43808, 263.28252, 384.50646, -76.53434,
14341		-93.50706, -220.50123, -81.91610, 103.92061,
14342		30.90305, -2.89292,
14343		-0.06634, -0.37717, -0.01945, -0.05936,
14344		29.27877, -59.73705, 35.86569, -18.36556,
14345		3.88812, 4.82090, -0.70903, 0.06615,
14346		0.01558, -0.01854,
14347		0.16209, 0.12682, 0.02508, 0.02406,
14348		-0.03078, -0.01737, -0.00033, -0.00020,
14349		0.01023, 0.05972,
14350		-0.03373, -0.07289,
14351		-2.08162, -0.14717, -0.64233, -0.75397,
14352		0.11752, -0.09202,
14353		4.42981, -4.19241, 5.02542, 5.03467,
14354		-4.22983, 2.80794,
14355		3.03016, -2.74373, -1.11490, -2.72378,
14356		-0.63131, 0.74864,
14357		-0.00759, -0.00675,
14358		0.03615, -0.01806,
14359		-2.71920, -1.50954, 0.54479, -1.92088,
14360		0.66427, 0.32228,
14361		-2.55188, -0.65332, -2.73798, 2.10182,
14362		1.54407, 3.01357,
14363		38.76777, 23.54578, 27.29884, -14.93005,
14364		-7.50931, -5.66773, 0.30142, 1.52416,
14365		0.00634, 0.09697, -0.00748, 0.01433,
14366		0.02936, 0.53228, -0.03603, 0.06345,
14367		0.30816, -1.07925, 0.46709, -0.21568,
14368		0.01663, 0.10810,
14369		-0.42511, 0.35872, -0.19662, -6.74031,
14370		1.05776, 1.86205, 1.08919, 0.10483,
14371		-0.03368, -0.21535,
14372		0.07556, -0.27104, 0.05142, -0.03812,
14373		1.20189, -1.36782, 1.35764, 1.39387,
14374		-1.19124, 0.77347,
14375		-0.54760, -0.26295, -0.07473, 0.23043,
14376		2.82621, -0.23524, 0.47352, -0.81672,
14377		-0.08515, 0.04700,
14378		0.55355, -0.40138, 0.22255, 0.12236,
14379		-0.09110, 0.31982, 0.39404, -0.17898,
14380		-0.00056, 0.00014,
14381		-0.02012, 0.03102,
14382		0.43236, -0.10037, -0.00961, 0.07440,
14383		-0.07076, -1.97272,
14384		0.25555, -0.21832, -0.00837, -0.08393,
14385		0.01531, 0.00627,
14386		0.33193, 0.70765, -0.43556, 0.28542,
14387		-0.23190, -0.04293, -0.08062, 0.13427,
14388		0.23763, -0.17092, 0.09259, 0.05155,
14389		0.08065, -0.11943,
14390		-0.02174, -0.68899,
14391		-0.01875, -0.01746,
14392		0.13604, 0.29280, -0.17871, 0.11799,
14393		0.02003, 0.04065,
14394		0.01343, -0.06060,
14395		-0.01290, -0.26068,
14396		-0.09033, 0.02649,
14397		-0.00092, -0.03094,
14398		-0.00770, -0.10447,
14399		-0.04113, 0.01259,
14400		-0.00469, -0.04346,
14401		-0.00010, 0.06547
14402	],
14403	lat_tbl: [
14404		-567865.62548, -796277.29029, -410804.00791, -91793.12562,
14405		-6268.13975, 398.64391, -710.67442, 175.29456,
14406		-0.87260, 0.18444,
14407		-1314.88121, 20709.97394, -1850.41481, 20670.34255,
14408		-896.96283, 6597.16433, -179.80702, 613.45468,
14409		17.37823, -13.62177, -0.36348, 12.34740,
14410		0.47532, 0.48189,
14411		0.27162, -0.20655,
14412		-0.23268, 0.05992,
14413		46.94511, 15.78836, 21.57439, 23.11342,
14414		-0.25862, 5.21410, -0.22612, -0.05822,
14415		-0.00439, -0.01641,
14416		-0.01108, -0.00608,
14417		0.00957, 0.00272,
14418		-0.00217, 0.00001,
14419		-0.00534, -0.00545,
14420		0.00277, -0.00843,
14421		0.00167, -0.00794, 0.00032, -0.00242,
14422		-0.00002, -0.00041,
14423		-0.00025, 0.00031,
14424		0.00062, -0.00060,
14425		0.00083, 0.00032,
14426		0.00527, -0.00211, 0.00054, 0.00004,
14427		-0.02769, -0.01777,
14428		0.00247, 0.00097, 0.00020, -0.00232,
14429		0.00044, -0.00035,
14430		-0.00072, 0.01341, 0.00325, -0.01159,
14431		0.00079, -0.00078,
14432		-0.00009, 0.00066,
14433		0.00222, 0.00002,
14434		0.00013, -0.00161,
14435		0.01374, -0.05305,
14436		0.00478, -0.00283,
14437		0.16033, 0.13859, 0.33288, -0.16932,
14438		-0.00316, 0.00625,
14439		-0.00309, 0.01687, 0.00001, 0.00486,
14440		0.00401, -0.01805, -0.00048, -0.00407,
14441		-0.01329, 0.01311, -0.00591, 0.00166,
14442		0.00830, 0.00665,
14443		-0.80207, 0.22994, -0.34687, 0.08460,
14444		-0.11499, -0.01449,
14445		-0.01574, 0.78813, -0.03063, 0.28872,
14446		-0.00337, 0.01801,
14447		-0.01703, -0.00929,
14448		-0.00738, 0.03938,
14449		0.05616, -0.00516,
14450		-3.09497, 30.13091, -3.14968, 17.62201,
14451		-0.73728, 2.46962, -0.11233, 0.03450,
14452		-0.07837, -0.01573,
14453		-0.01595, 0.00394,
14454		0.00174, 0.01470,
14455		6.83560, -2.37594, 4.95125, 3.24711,
14456		2.44781, 5.17159, 1.99820, -2.38419,
14457		0.00840, 0.03614,
14458		-0.00209, -0.30407, -0.02681, -0.06128,
14459		1.50134, 11.82856, 4.39644, 6.98850,
14460		-4.17679, 5.73436, -9.66087, 1.98221,
14461		-0.29755, 0.08019,
14462		-0.24766, -8.54956, -1.74494, -3.36794,
14463		-0.32661, -0.00722,
14464		0.14141, 0.01023,
14465		-1.21541, -2.58470, 0.38983, -1.70307,
14466		0.31209, -0.10345,
14467		0.02593, 0.02178, 0.00289, 0.00393,
14468		-0.00236, -0.00373,
14469		-0.00270, -0.00049,
14470		-0.06282, -0.00443, -0.02439, -0.02254,
14471		-0.02220, 0.03532,
14472		-0.00072, 0.00010,
14473		-0.00049, -0.00112,
14474		0.00086, 0.00112,
14475		0.10135, -0.10972, 0.08357, 0.00155,
14476		0.04363, -0.00201,
14477		-0.01996, -0.01341,
14478		-0.00039, -0.00042,
14479		-0.00294, 0.00070,
14480		0.00005, -0.00027,
14481		0.00070, -0.00076,
14482		0.00234, -0.00239,
14483		-0.08365, -0.08531, -0.03531, 0.15012,
14484		-0.01995, -0.01731, -0.00370, -0.00745,
14485		-0.00315, -0.00079,
14486		-0.00120, -0.00145,
14487		-0.99404, -1.31859, 0.03584, -0.83421,
14488		0.10720, -0.05768,
14489		0.06664, -0.09338,
14490		-0.01814, -0.00003,
14491		-0.05371, -0.06458, -0.00100, -0.01298,
14492		-7.08710, -23.13374, 4.18669, -19.94756,
14493		4.85584, -3.37187, 0.58851, 0.31363,
14494		0.01994, 0.27494,
14495		-1.37112, 2.61742, 0.52477, -0.46520,
14496		-0.13183, 0.26777,
14497		836.90400, -484.65861, 815.99098, 236.54649,
14498		-32.38814, 288.95705, -68.17178, -18.87875,
14499		-1.79782, -3.68662, -1.27310, -0.65697,
14500		-3.67530, 2.10471,
14501		-13758.97795, 4807.62301, -14582.14552, 9019.73021,
14502		-3202.60105, 4570.16895, 2078.68911, 2892.62326,
14503		-2399.35382, 3253.16198, -8182.38152, -3588.77680,
14504		-0.16505, 1.08603, 0.53388, 0.87152,
14505		61.53677, 538.43813, -407.32927, 322.27446,
14506		-148.71585, -179.37765, 54.07268, -34.12281,
14507		-14.76569, -17.95681, -10.82061, -6.39954,
14508		-2.10954, 0.67063, 0.22607, -0.43648,
14509		20.90476, -45.48667, 30.39436, -14.20077,
14510		5.17385, 5.12726, -0.66319, 0.55668,
14511		0.02269, -0.00016,
14512		0.07811, 0.00111, 0.01603, 0.01020,
14513		-0.00107, 0.00494,
14514		-0.00077, -0.00084,
14515		-0.00196, 0.00081,
14516		-0.03776, 0.01286, -0.00652, -0.01450,
14517		0.05942, -0.08612, 0.01093, -0.01644,
14518		0.02147, -0.00592,
14519		0.36350, -0.00201, 0.14419, -0.10070,
14520		-0.00491, -0.01771,
14521		-0.00053, -0.00033,
14522		0.00146, 0.00048,
14523		0.00582, 0.04423, -0.00549, 0.00983,
14524		0.27355, -0.38057, 0.24001, -0.05441,
14525		-0.07706, 0.14269,
14526		-0.00059, -0.00154,
14527		-0.00013, -0.00088,
14528		-0.00046, 0.00029,
14529		-0.00276, -0.00507, 0.00075, -0.00076,
14530		0.01806, 0.00862, -0.00510, -0.01364,
14531		-0.00029, -0.12664, 0.03899, -0.03562,
14532		0.00318, 0.00514,
14533		0.00057, 0.00201,
14534		0.00028, 0.00014,
14535		-0.47022, -0.74561, 0.40155, -0.16471,
14536		-0.18445, 0.34425, -0.07464, -0.13709,
14537		-0.01018, -0.00748,
14538		-0.01210, -0.04274, -0.00579, -0.00692,
14539		-11.09188, -1.67755, -6.62063, -13.84023,
14540		12.75563, -6.73501, 8.31662, 5.40196,
14541		0.00052, 0.00034,
14542		0.00128, 0.00085,
14543		-0.02202, -0.00599,
14544		-0.33458, -1.65852, 1.47003, -1.02434,
14545		0.87885, 1.15334,
14546		-0.00241, -0.00721,
14547		0.03154, 0.00612,
14548		0.00318, -0.02521,
14549		0.00042, 0.00213,
14550		-0.01094, 0.05417, -0.03989, -0.00567,
vendor: 5,523 bytes, lines 14551-14734
14551		0.00123, -0.00244,
14552		0.00108, 0.00242,
14553		-0.00138, -0.00099,
14554		0.04967, 0.01643, -0.00133, 0.02296,
14555		0.12207, 0.05584,
14556		0.00437, -0.04432, -0.00176, -0.00922,
14557		-0.00252, 0.00326,
14558		-0.00020, -0.00050,
14559		-0.00263, -0.00084,
14560		-0.01971, 0.00297,
14561		0.03076, 0.01736,
14562		-0.01331, 0.01121, -0.00675, 0.00340,
14563		-0.00256, 0.00327,
14564		-0.00946, 0.03377, -0.00770, 0.00337,
14565		0.61383, 0.71128, -0.02018, 0.62097,
14566		-0.07247, 0.04418,
14567		-0.02886, -0.03848,
14568		-0.44062, 0.03973,
14569		-0.00999, -0.04382,
14570		57.94459, 117.45112, -71.22893, 126.39415,
14571		-62.33152, -31.90754, 12.17738, -16.46809,
14572		-1.13298, 0.08962, -0.20532, 0.16320,
14573		-1.55110, -1.44757,
14574		-3102.08749, -7452.61957, -5009.53858, -7216.29165,
14575		-2476.87148, -1880.58197, -574.49433, 227.45615,
14576		144.50228, 379.15791, 225.36130, -443.47371,
14577		-8.51989, -3.75208, -4.25415, -1.59741,
14578		-0.43946, -0.06595,
14579		150.42986, 6.54937, 87.67736, 92.32332,
14580		-21.97187, 29.87097, -4.21636, -5.72955,
14581		-0.03879, -0.01071,
14582		-0.45985, 0.02679, -0.02448, 0.02397,
14583		-0.06551, -0.01154,
14584		1.97905, -0.82292, 1.10140, 0.30924,
14585		0.03389, 0.14230,
14586		0.00003, 0.00119,
14587		-0.01117, 0.00665,
14588		-0.00132, -0.00576,
14589		-0.08356, 0.08556, -0.26362, -0.12450,
14590		0.00509, 0.00165,
14591		0.02591, 0.16200, -0.03318, 0.06463,
14592		-0.00899, -0.00462,
14593		0.00102, 0.00004,
14594		-0.73102, 0.08299, -0.52957, -0.35744,
14595		0.14119, -0.24903, 0.20843, 0.14143,
14596		0.00031, -0.00234,
14597		-0.42643, -2.02084, 1.58848, -1.57963,
14598		0.68418, 2.07749,
14599		-0.45888, 0.19859, -0.30277, -0.22591,
14600		0.11607, -0.09705,
14601		0.00040, 0.00431,
14602		-0.02683, 0.03158, -0.01302, -0.00541,
14603		0.01742, -0.00006,
14604		-0.02231, -0.01128,
14605		-0.00800, 0.02055,
14606		-0.00346, 0.00151,
14607		0.56732, -0.68995, 0.27701, -0.16748,
14608		0.01002, 0.00043,
14609		0.26916, -0.57751, 0.15547, -0.15825,
14610		-0.02074, -0.07722,
14611		-8.23483, -4.02022, 0.69327, -5.91543,
14612		1.72440, 1.02090,
14613		0.00024, -0.00053,
14614		20.03959, 14.79136, 76.43531, -14.42019,
14615		-7.82608, -69.96121, -54.94229, 23.55140,
14616		26.60767, 14.68275,
14617		0.05118, -0.10401, -0.00075, -0.01942,
14618		-3.84266, -26.23442, 10.20395, -14.77139,
14619		3.40853, 2.07297, -0.53348, 0.40635,
14620		0.00716, -0.00189,
14621		0.12472, -0.02903, 0.02254, -0.00183,
14622		-0.00175, -0.01522, 0.00003, -0.00339,
14623		0.00383, -0.00168,
14624		0.01327, -0.03657,
14625		-0.08458, -0.00115, -0.03991, -0.02629,
14626		0.00243, -0.00505,
14627		0.33875, -0.16744, 0.05183, 0.01744,
14628		-0.24427, 0.15271,
14629		0.37550, -0.17378, 0.09198, -0.27966,
14630		-0.22160, 0.16426,
14631		0.00032, -0.00310,
14632		-0.00022, -0.00144,
14633		-0.06170, -0.01195, -0.00918, 0.02538,
14634		0.03602, 0.03414,
14635		-0.14998, -0.44351, 0.45512, -0.11766,
14636		0.35638, 0.27539,
14637		5.93405, 10.55777, 12.42596, -1.82530,
14638		-2.36124, -6.04176, -0.98609, 1.67652,
14639		-0.09271, 0.03448, -0.01951, 0.00108,
14640		0.33862, 0.21461, 0.02564, 0.06924,
14641		0.01126, -0.01168, -0.00829, -0.00740,
14642		0.00106, -0.00854,
14643		-0.08404, 0.02508, -0.02722, -0.06537,
14644		0.01662, 0.11454, 0.06747, 0.00742,
14645		-0.01975, -0.02597,
14646		-0.00097, -0.01154, 0.00164, -0.00274,
14647		0.02954, -0.05161, -0.02162, -0.02069,
14648		-0.06369, 0.03846,
14649		0.00219, -0.01634, -0.04518, 0.06696,
14650		1.21537, 0.99500, 0.68376, -0.28709,
14651		-0.11397, -0.06468,
14652		0.00607, -0.00744, 0.01531, 0.00975,
14653		-0.03983, 0.02405, 0.07563, 0.00356,
14654		-0.00018, -0.00009,
14655		0.00172, -0.00331,
14656		0.01565, -0.03466, -0.00230, 0.00142,
14657		-0.00788, -0.01019,
14658		0.01411, -0.01456, -0.00672, -0.00543,
14659		0.00059, -0.00011,
14660		-0.00661, -0.00496, -0.01986, 0.01271,
14661		-0.01323, -0.00764, 0.00041, 0.01145,
14662		0.00378, -0.00137, 0.00652, 0.00412,
14663		0.01946, -0.00573,
14664		-0.00326, -0.00257,
14665		-0.00225, 0.00090,
14666		-0.00292, -0.00317, -0.00719, 0.00468,
14667		0.00245, 0.00189,
14668		0.00565, -0.00330,
14669		-0.00168, -0.00047,
14670		-0.00256, 0.00220,
14671		0.00180, -0.00162,
14672		-0.00085, -0.00003,
14673		-0.00100, 0.00098,
14674		-0.00043, 0.00007,
14675		-0.00003, -0.00013
14676	],
14677	rad_tbl: [
14678		-38127.94034, -48221.08524, -20986.93487, -3422.75861,
14679		-8.97362, 53.34259, -404.15708, -0.05434,
14680		0.46327, 0.16968,
14681		-387.16771, -146.07622, 103.77956, 19.11054,
14682		-40.21762, 996.16803, -702.22737, 246.36496,
14683		-63.89626, -304.82756, 78.23653, -2.58314,
14684		-0.11368, -0.06541,
14685		-0.34321, 0.33039,
14686		0.05652, -0.16493,
14687		67.44536, -29.43578, 50.85074, 18.68861,
14688		0.39742, 13.64587, -1.61284, 0.11482,
14689		0.01668, -0.01182,
14690		-0.00386, 0.01025,
14691		0.00234, -0.01530,
14692		-0.02569, -0.00799,
14693		-0.00429, -0.00217,
14694		-0.00672, 0.00650,
14695		0.01154, 0.00120, -0.00515, 0.00125,
14696		0.00236, -0.00216,
14697		-0.00098, 0.00009,
14698		-0.00460, -0.00518,
14699		0.00600, 0.00003,
14700		0.00834, 0.00095, 0.01967, 0.00637,
14701		-0.00558, -0.06911,
14702		-0.01344, -0.06589, -0.05425, -0.00607,
14703		-0.00247, -0.00266,
14704		0.08790, -0.08537, -0.00647, 0.04028,
14705		-0.00325, 0.00488,
14706		0.00111, -0.00044,
14707		-0.00731, 0.00127,
14708		-0.00417, 0.00303,
14709		0.05261, 0.01858,
14710		-0.00807, 0.01195,
14711		1.26352, -0.38591, -0.34825, 1.10733,
14712		-0.02815, -0.02148,
14713		-0.05083, -0.04377, -0.01206, -0.00586,
14714		0.03158, -0.01117, 0.00643, 0.00306,
14715		-0.01186, -0.05161, 0.01136, -0.00976,
14716		-0.00536, 0.01949,
14717		-1.41680, -0.81290, -0.09254, -0.24347,
14718		-0.14831, -0.34381,
14719		-2.44464, 0.41202, -0.99240, -0.33707,
14720		-0.01930, -0.08473,
14721		0.00830, 0.01165,
14722		-0.01604, -0.02439,
14723		0.00227, 0.04493,
14724		-42.75310, -22.65155, -9.93679, -18.36179,
14725		2.73773, 3.24126, -1.20698, 1.07731,
14726		0.00434, -0.10360,
14727		-0.02359, 0.00054,
14728		-0.02664, -0.00122,
14729		-19.79520, 33.11770, -53.56452, -35.41902,
14730		67.95039, -82.46551, 117.31843, 14.08609,
14731		0.06447, 0.03289,
14732		0.40365, -0.33397, 0.07079, -0.09504,
14733		-30.36873, 6.23538, -14.25988, -44.91408,
14734		38.53146, -16.31919, 6.99584, 22.47169,
14735		-0.13313, 0.28016,
14736		6.83715, -6.01384, 1.68531, -3.62443,
14737		-0.22469, -0.29718,
14738		0.25169, 0.13780,
14739		-3.64824, 1.22420, -2.48963, -1.12515,
14740		-0.01510, -0.56180,
14741		-0.03306, 0.01848, -0.00103, -0.00077,
14742		-0.01681, -0.00227,
14743		-0.00402, -0.00287,
14744		0.04965, -0.16190, -0.40025, 0.20734,
14745		0.15819, -0.25451,
14746		0.02467, -0.00495,
14747		0.00597, 0.00490,
14748		-0.01085, -0.00460,
14749		-0.71564, -0.26624, 0.03797, -0.28263,
14750		0.03510, 0.30014,
14751		2.79810, 0.07258,
14752		-0.01618, 0.00337,
14753		0.00876, 0.04438,
14754		0.00742, -0.00455,
14755		-0.01163, -0.00683,
14756		0.00950, 0.01275,
14757		-0.02124, -0.67527, -0.23635, 0.06298,
14758		-0.03844, 0.01010, 0.73588, -0.00271,
14759		0.01742, -0.00467,
14760		0.00017, -0.00505,
14761		-0.27482, 5.00521, -1.92099, 1.55295,
14762		-0.35919, -0.09314,
14763		-0.47002, 0.06826,
14764		0.07924, 0.16838,
14765		-0.04221, 0.71510, -0.16482, 0.08809,
14766		41.76829, -125.79427, 106.65271, -71.30642,
14767		36.18112, 17.36143, -1.63846, 5.02215,
14768		-1.08404, 0.00061,
14769		2.45567, -2.42818, -9.88756, 5.36587,
14770		-0.61253, -0.35003,
14771		1523.54790, 602.82184, 68.66902, 1878.26100,
14772		-1098.78095, -120.72600, 127.30918, -383.96064,
14773		-7.00838, -6.09942, -1.54187, 0.34883,
14774		-9.47561, -4.35408,
14775		-21541.63676, -32542.09807, -29720.82604, -28072.21231,
14776		-15755.56255, -8084.58657, -8148.87315, 7434.89857,
14777		11033.30133, 7827.94658, 610.18256, -11411.93624,
14778		-9.87426, 0.94865, -1.63656, 0.41275,
14779		1996.57150, 511.48468, 669.78228, 1363.67610,
14780		-379.72037, 198.84438, -16.63126, -79.37624,
14781		-2.30776, -246.07820, -16.85846, -148.18168,
14782		-6.89632, -20.49587, 0.39892, -0.34627,
14783		-57.81309, -136.96971, 15.25671, -96.61153,
14784		16.09785, -8.79091, 0.70515, 1.16197,
14785		0.05647, 0.04684,
14786		0.25032, -0.19951, 0.07282, -0.00696,
14787		0.00493, 0.00733,
14788		-0.01085, 0.00422,
14789		-0.01309, 0.00262,
14790		0.37616, -0.36203, -0.11154, 0.18213,
14791		0.15691, 0.29343, 0.00485, 0.06106,
14792		-0.01492, 0.09954,
14793		0.28486, 2.27190, 0.33102, 1.50696,
14794		-0.01926, 0.04901,
14795		0.01827, 0.00863,
14796		-0.03315, 0.00178,
14797		-0.77600, -0.48576, -0.21111, -0.19485,
14798		1.90295, 6.44856, 1.71638, 2.12980,
14799		-7.19585, -0.08043,
14800		0.07004, -0.02764,
14801		0.01604, 0.01158,
14802		0.00936, -0.01199,
14803		0.18396, -0.29234, 0.10422, -0.00720,
14804		0.05196, 0.10753, 0.02859, -0.03602,
14805		0.63828, 1.96280, -0.31919, 0.85859,
14806		-0.10218, -0.00673,
14807		0.01748, -0.02190,
14808		0.01266, -0.02729,
14809		-4.80220, 8.90557, -5.94059, 2.28577,
14810		-0.19687, -1.28666, 0.32398, 0.14879,
14811		-0.02619, -0.02056,
14812		-0.04872, -0.07011, -0.04082, -0.04740,
14813		0.60167, -2.20365, -0.27919, -0.45957,
14814		-1.31664, -2.22682, 176.89871, 13.03918,
14815		0.00568, 0.00560,
14816		0.01093, 0.00486,
14817		-0.00948, -0.31272,
14818		-11.87638, -3.68471, -1.74977, -9.60468,
14819		2.94988, -0.57118,
14820		0.00307, -0.01636,
14821		0.02624, 0.03032,
14822		-0.00464, -0.01338,
14823		0.00935, 0.00530,
14824		-0.11822, 0.03328, -0.41854, 0.04331,
14825		0.41340, -0.21657,
14826		-0.00865, 0.00849,
14827		-0.00374, -0.00899,
14828		0.01227, -0.23462, -0.71894, -0.04515,
14829		0.00047, 0.28112,
14830		-0.12788, 0.11698, -0.02030, 0.02759,
14831		0.02967, -0.00092,
14832		0.00454, 0.00565,
14833		-0.00026, 0.00164,
14834		-0.01405, -0.00862,
14835		0.01088, 0.05589,
14836		0.18248, -0.06931, -0.00011, 0.03713,
14837		0.01932, -0.00982,
14838		-0.13861, 0.09853, -0.03441, -0.02492,
14839		2.26163, -5.94453, 4.14361, -0.94105,
14840		0.39561, 0.75414,
14841		-0.17642, 0.03724,
14842		-1.32978, -0.56610,
14843		-0.03259, -0.06752,
14844		39.07495, 80.25429, -28.15558, 82.69851,
14845		-37.53894, -17.88963, 6.98299, -13.04691,
14846		-0.48675, -1.84530, -0.07985, -0.33004,
14847		-3.39292, 2.73153,
14848		-17268.46134, 1144.22336, -16658.48585, 5252.94094,
14849		-3461.47865, 2910.56452, -433.49442, -305.74268,
14850		-383.45023, 545.16136, 313.83376, 27.00533,
14851		-31.41075, 7.90570, -12.40592, 3.01833,
14852		-0.83334, 0.23404,
14853		59.26487, -112.74279, 113.29402, -15.37579,
14854		14.03282, 32.74482, -4.73299, 1.30224,
14855		-0.00866, 0.01232,
14856		-0.53797, 0.00238, -0.07979, 0.04443,
14857		-0.05617, -0.05396,
14858		0.10185, -1.05476, 0.43791, -0.32302,
14859		0.06465, 0.03815,
14860		0.00028, -0.00446,
14861		0.09289, -0.06389,
14862		0.01701, -0.01409,
14863		0.47101, 0.16158, 0.01036, -0.39836,
14864		0.00477, 0.01101,
14865		-2.06535, 0.33197, -0.82468, -0.41414,
14866		0.03209, -0.09348,
14867		0.00843, -0.00030,
14868		-9.49517, -3.82206, 0.66899, -10.28786,
14869		6.33435, 1.73684, -0.98164, 2.25164,
14870		-0.07577, -0.00277,
14871		1.02122, 0.75747, 1.79155, -0.77789,
14872		-2.56780, -2.07807,
14873		0.19528, 0.77118, -0.28083, 0.32130,
14874		-0.04350, -0.07428,
14875		-0.01161, 0.01387,
14876		0.02074, 0.19802, -0.03600, 0.04922,
14877		-0.19837, 0.02572,
14878		-0.00682, -0.04277,
14879		-0.01805, 0.00299,
14880		0.03283, -0.02099,
14881		3.57307, 1.17468, 0.65769, 1.88181,
14882		-0.39215, 0.08415,
14883		-0.53635, -0.19087, -0.12456, 0.02176,
14884		0.01182, -0.07941,
14885		-2.43731, 2.44464, 1.03961, -1.81936,
14886		30.33140, 0.92645,
14887		0.00508, -0.01771,
14888		-81.06338, 66.43957, 33.16729, 131.44697,
14889		76.63344, -34.34324, -35.33012, -28.04413,
14890		-1.47440, 13.09015,
14891		0.13253, -0.01629, 0.02187, -0.00963,
14892		-21.47470, -9.44332, -7.21711, -12.59472,
14893		1.76195, -1.63911, 0.09060, 0.28656,
14894		0.00635, 0.00536,
14895		0.03470, -0.06493, 0.00666, -0.01084,
14896		0.01116, -0.01612, -0.00102, 0.00208,
14897		-0.05568, 0.00628,
14898		0.02665, -0.01032,
14899		0.21261, -1.90651, 0.72728, -0.57788,
14900		0.08662, 0.10918,
14901		3.39133, 3.97302, -4.63381, 4.26670,
14902		-2.50873, -3.76064,
vendor: 7,313 bytes, lines 14903-15200
14903		1.28114, 1.81919, 1.48064, -0.37578,
14904		-0.26209, -0.47187,
14905		0.00282, -0.00499,
14906		0.01749, 0.03222,
14907		1.60521, -1.79705, 1.61453, 0.68886,
14908		-0.29909, 0.55025,
14909		-0.07894, 0.19880, -0.15635, 0.46159,
14910		2.09769, 1.52742,
14911		-7.60312, 11.34886, 4.35640, 8.61048,
14912		2.15001, -2.15303, -0.61587, -0.11950,
14913		-0.03289, -0.00520, -0.00501, -0.00445,
14914		0.15294, -0.05277, 0.02455, 0.00408,
14915		1.19601, 0.43479, 0.20422, 0.57125,
14916		-0.12790, 0.01318,
14917		-0.15275, -0.43856, 6.99144, -0.08794,
14918		-1.69865, 0.82589, -0.20235, 0.97040,
14919		0.20903, 0.00675,
14920		0.26943, 0.08281, 0.03686, 0.05311,
14921		1.28468, 1.21735, -1.38174, 1.29570,
14922		-0.75899, -1.17168,
14923		0.44696, -0.32341, -0.06378, -0.27573,
14924		-0.06406, 0.87186, 0.21069, 0.19724,
14925		0.00119, -0.04147,
14926		0.39279, 0.51437, -0.11035, 0.21450,
14927		-0.04309, 0.02359, 0.20490, 0.14210,
14928		0.00007, -0.00017,
14929		-0.03529, -0.02644,
14930		0.10710, 0.44476, -0.02632, -0.01817,
14931		2.11335, -0.04432,
14932		0.18206, 0.27335, 0.08867, 0.00313,
14933		-0.00692, 0.01595,
14934		-0.72957, 0.32080, -0.29291, -0.44764,
14935		0.12767, -0.05778, 0.04797, -0.00223,
14936		0.17661, 0.22427, -0.04914, 0.09114,
14937		0.12236, 0.00708,
14938		0.74315, -0.01346,
14939		0.02245, -0.02555,
14940		-0.30446, 0.13947, -0.12340, -0.18498,
14941		-0.04099, 0.02103,
14942		0.06337, -0.01224,
14943		0.28181, -0.01019,
14944		-0.02794, -0.09412,
14945		0.03272, -0.01095,
14946		0.11247, -0.00650,
14947		-0.01319, -0.04296,
14948		0.04653, -0.00423,
14949		0.06535, 0.00014
14950	],
14951	arg_tbl: [
14952		0, 7,
14953		3, 2, 5, -6, 6, 3, 7, 0,
14954		2, 2, 5, -5, 6, 5,
14955		3, 1, 6, -4, 7, 2, 8, 0,
14956		2, 1, 6, -3, 7, 0,
14957		3, 1, 6, -2, 7, -2, 8, 0,
14958		2, 4, 5, -10, 6, 3,
14959		3, 1, 5, -1, 6, -4, 7, 0,
14960		3, 2, 5, -4, 6, -3, 7, 0,
14961		3, 2, 6, -8, 7, 4, 8, 0,
14962		3, 3, 5, -10, 6, 7, 7, 0,
14963		2, 6, 5, -15, 6, 0,
14964		2, 2, 6, -6, 7, 0,
14965		3, 1, 5, -4, 6, 4, 7, 1,
14966		3, 1, 5, -2, 6, -1, 7, 0,
14967		3, 2, 5, -5, 6, 1, 8, 0,
14968		3, 3, 5, -8, 6, 2, 7, 0,
14969		3, 1, 5, -3, 6, 2, 8, 0,
14970		3, 1, 5, -3, 6, 1, 7, 1,
14971		1, 1, 8, 0,
14972		3, 1, 5, -3, 6, 2, 7, 1,
14973		3, 1, 5, -2, 6, -2, 7, 0,
14974		2, 2, 6, -5, 7, 1,
14975		3, 2, 6, -6, 7, 2, 8, 0,
14976		3, 2, 6, -7, 7, 4, 8, 0,
14977		3, 2, 5, -4, 6, -2, 7, 0,
14978		3, 1, 5, -1, 6, -5, 7, 0,
14979		3, 2, 6, -7, 7, 5, 8, 0,
14980		3, 1, 6, -1, 7, -2, 8, 0,
14981		2, 1, 6, -2, 7, 1,
14982		3, 1, 6, -3, 7, 2, 8, 0,
14983		3, 1, 6, -4, 7, 4, 8, 1,
14984		3, 2, 5, -5, 6, 2, 8, 1,
14985		3, 2, 5, -6, 6, 2, 7, 1,
14986		2, 2, 7, -2, 8, 0,
14987		1, 1, 7, 2,
14988		2, 5, 5, -12, 6, 2,
14989		3, 2, 6, -5, 7, 1, 8, 0,
14990		3, 1, 5, -1, 6, -3, 7, 0,
14991		3, 7, 5, -18, 6, 3, 7, 0,
14992		2, 3, 5, -7, 6, 3,
14993		3, 1, 6, 1, 7, -5, 8, 0,
14994		3, 1, 5, -4, 6, 3, 7, 0,
14995		3, 5, 5, -13, 6, 3, 7, 0,
14996		2, 1, 5, -2, 6, 3,
14997		3, 3, 5, -9, 6, 3, 7, 0,
14998		3, 3, 5, -8, 6, 3, 7, 1,
14999		2, 1, 5, -3, 6, 3,
15000		3, 5, 5, -14, 6, 3, 7, 0,
15001		3, 1, 5, -3, 6, 3, 7, 2,
15002		2, 3, 6, -7, 7, 0,
15003		2, 3, 5, -8, 6, 2,
15004		3, 2, 5, -3, 6, -4, 7, 1,
15005		3, 2, 5, -8, 6, 7, 7, 0,
15006		2, 5, 5, -13, 6, 0,
15007		2, 2, 6, -4, 7, 2,
15008		3, 2, 6, -5, 7, 2, 8, 0,
15009		3, 2, 5, -4, 6, -1, 7, 0,
15010		3, 2, 5, -7, 6, 4, 7, 0,
15011		2, 1, 6, -2, 8, 2,
15012		2, 1, 6, -1, 7, 0,
15013		3, 1, 6, -2, 7, 2, 8, 0,
15014		3, 2, 5, -5, 6, 2, 7, 0,
15015		3, 2, 5, -6, 6, 2, 8, 0,
15016		3, 2, 5, -6, 6, 1, 7, 0,
15017		2, 3, 7, -2, 8, 0,
15018		1, 2, 7, 1,
15019		2, 1, 6, -1, 8, 1,
15020		3, 1, 5, -2, 6, 1, 7, 0,
15021		3, 1, 5, -2, 6, 2, 8, 0,
15022		2, 3, 6, -6, 7, 2,
15023		2, 6, 5, -14, 6, 0,
15024		3, 3, 6, -7, 7, 2, 8, 0,
15025		3, 2, 5, -3, 6, -3, 7, 1,
15026		2, 4, 5, -9, 6, 3,
15027		3, 2, 6, -2, 7, -2, 8, 0,
15028		2, 2, 6, -3, 7, 1,
15029		3, 2, 6, -4, 7, 2, 8, 0,
15030		2, 2, 5, -4, 6, 3,
15031		3, 2, 5, -7, 6, 3, 7, 1,
15032		3, 1, 6, 1, 7, -2, 8, 0,
15033		1, 1, 6, 5,
15034		3, 2, 5, -5, 6, 3, 7, 1,
15035		2, 2, 5, -6, 6, 3,
15036		1, 3, 7, 3,
15037		2, 4, 5, -11, 6, 3,
15038		2, 1, 5, -4, 7, 0,
15039		3, 2, 5, -5, 6, -3, 7, 1,
15040		2, 6, 5, -16, 6, 0,
15041		3, 3, 5, -7, 6, 2, 7, 0,
15042		3, 3, 6, -4, 7, -2, 8, 0,
15043		2, 3, 6, -5, 7, 1,
15044		3, 3, 6, -6, 7, 2, 8, 1,
15045		3, 3, 6, -7, 7, 4, 8, 0,
15046		3, 2, 5, -3, 6, -2, 7, 2,
15047		3, 2, 5, -8, 6, 5, 7, 0,
15048		2, 2, 6, -4, 8, 0,
15049		3, 2, 6, -1, 7, -2, 8, 1,
15050		2, 2, 6, -2, 7, 2,
15051		3, 2, 6, -3, 7, 2, 8, 0,
15052		3, 2, 5, -4, 6, 1, 7, 0,
15053		3, 2, 5, -4, 6, 2, 8, 0,
15054		3, 2, 5, -7, 6, 2, 7, 1,
15055		2, 1, 6, 1, 7, 1,
15056		2, 5, 5, -11, 6, 2,
15057		3, 1, 5, -2, 7, -2, 8, 0,
15058		2, 1, 5, -3, 7, 0,
15059		2, 3, 5, -6, 6, 3,
15060		3, 2, 6, 1, 7, -5, 8, 0,
15061		2, 2, 6, -3, 8, 1,
15062		2, 1, 5, -1, 6, 3,
15063		3, 2, 5, -7, 6, 3, 8, 0,
15064		3, 3, 5, -7, 6, 3, 7, 0,
15065		3, 2, 5, -1, 6, -7, 7, 0,
15066		2, 1, 5, -4, 6, 2,
15067		3, 1, 5, -2, 6, 3, 7, 0,
15068		2, 4, 6, -7, 7, 0,
15069		2, 3, 5, -9, 6, 0,
15070		3, 2, 5, -2, 6, -4, 7, 0,
15071		2, 3, 6, -4, 7, 2,
15072		3, 2, 5, -3, 6, -1, 7, 0,
15073		3, 2, 5, -8, 6, 4, 7, 0,
15074		2, 2, 6, -2, 8, 1,
15075		2, 2, 6, -1, 7, 0,
15076		3, 2, 6, -2, 7, 2, 8, 1,
15077		3, 2, 5, -4, 6, 2, 7, 0,
15078		3, 2, 5, -7, 6, 2, 8, 0,
15079		3, 2, 5, -7, 6, 1, 7, 0,
15080		2, 1, 6, 2, 7, 0,
15081		2, 2, 6, -1, 8, 0,
15082		2, 4, 6, -6, 7, 1,
15083		2, 6, 5, -13, 6, 0,
15084		3, 2, 5, -2, 6, -3, 7, 1,
15085		2, 4, 5, -8, 6, 2,
15086		3, 3, 6, -2, 7, -2, 8, 0,
15087		2, 3, 6, -3, 7, 0,
15088		3, 3, 6, -4, 7, 2, 8, 0,
15089		2, 2, 5, -3, 6, 3,
15090		3, 2, 5, -8, 6, 3, 7, 1,
15091		3, 2, 6, 1, 7, -2, 8, 0,
15092		1, 2, 6, 5,
15093		3, 2, 5, -4, 6, 3, 7, 2,
15094		2, 2, 5, -7, 6, 3,
15095		3, 1, 6, 4, 7, -2, 8, 0,
15096		2, 1, 6, 3, 7, 1,
15097		3, 1, 6, 2, 7, 2, 8, 0,
15098		2, 4, 5, -12, 6, 2,
15099		2, 5, 6, -8, 7, 0,
15100		2, 4, 6, -5, 7, 0,
15101		3, 2, 5, -2, 6, -2, 7, 0,
15102		2, 3, 6, -2, 7, 1,
15103		3, 3, 6, -3, 7, 2, 8, 0,
15104		2, 5, 5, -10, 6, 2,
15105		3, 1, 5, 1, 6, -3, 7, 0,
15106		2, 3, 5, -5, 6, 3,
15107		2, 3, 6, -3, 8, 0,
15108		1, 1, 5, 2,
15109		2, 1, 5, -5, 6, 2,
15110		2, 5, 6, -7, 7, 0,
15111		2, 4, 6, -4, 7, 2,
15112		2, 3, 6, -2, 8, 0,
15113		2, 3, 6, -1, 7, 0,
15114		2, 5, 6, -6, 7, 0,
15115		2, 4, 5, -7, 6, 2,
15116		2, 4, 6, -3, 7, 2,
15117		2, 2, 5, -2, 6, 2,
15118		3, 2, 6, -9, 7, 3, 8, 0,
15119		1, 3, 6, 4,
15120		3, 2, 5, -3, 6, 3, 7, 1,
15121		2, 2, 5, -8, 6, 3,
15122		3, 2, 6, 4, 7, -2, 8, 0,
15123		2, 4, 5, -13, 6, 1,
15124		2, 6, 6, -8, 7, 1,
15125		2, 5, 6, -5, 7, 0,
15126		2, 4, 6, -2, 7, 0,
15127		2, 5, 5, -9, 6, 2,
15128		2, 3, 5, -4, 6, 2,
15129		2, 1, 5, 1, 6, 2,
15130		2, 6, 5, -11, 6, 0,
15131		3, 6, 6, -7, 7, 2, 8, 0,
15132		2, 4, 5, -6, 6, 2,
15133		2, 2, 5, -1, 6, 2,
15134		1, 4, 6, 3,
15135		3, 2, 5, -2, 6, 3, 7, 1,
15136		2, 2, 5, -9, 6, 1,
15137		2, 5, 5, -8, 6, 2,
15138		2, 3, 5, -3, 6, 1,
15139		2, 1, 5, 2, 6, 2,
15140		2, 6, 5, -10, 6, 1,
15141		2, 4, 5, -5, 6, 2,
15142		1, 2, 5, 1,
15143		1, 5, 6, 2,
15144		2, 5, 5, -7, 6, 1,
15145		2, 3, 5, -2, 6, 1,
15146		3, 1, 5, 2, 6, 3, 7, 0,
15147		2, 6, 5, -9, 6, 0,
15148		2, 4, 5, -4, 6, 2,
15149		2, 2, 5, 1, 6, 1,
15150		2, 7, 5, -11, 6, 0,
15151		2, 5, 5, -6, 6, 1,
15152		2, 3, 5, -1, 6, 1,
15153		2, 6, 5, -8, 6, 1,
15154		2, 4, 5, -3, 6, 0,
15155		2, 5, 5, -5, 6, 0,
15156		1, 3, 5, 0,
15157		2, 6, 5, -7, 6, 1,
15158		2, 7, 5, -9, 6, 0,
15159		2, 5, 5, -4, 6, 0,
15160		2, 6, 5, -6, 6, 0,
15161		2, 7, 5, -8, 6, 0,
15162		2, 6, 5, -5, 6, 0,
15163		2, 7, 5, -7, 6, 0,
15164		2, 8, 5, -9, 6, 0,
15165		2, 8, 5, -8, 6, 0,
15166		2, 1, 3, -1, 6, 0,
15167		-1
15168	]
15169};
15170
15171$ns.uranus = {
15172	maxargs: 9,
15173	max_harmonic: [0, 0, 0, 0, 5, 10, 9, 12, 0],
15174	max_power_of_t: 6,
15175	distance: 1.9218446061800002e+01,
15176	timescale: 3652500.0,
15177	trunclvl: 1.0,
15178	lon_tbl: [
15179		21.56000, -4652.06828, 154246324.90417, 1130486.05080,
15180		330.11531, -3020.20235,
15181		-8.03769, -122.02019,
15182		212.45130, 254.23866, 25.39758, 60.08296,
15183		6949.85053, 51951.42606, -1834.66531, 44481.91144,
15184		-3267.45825, 10776.65972, -628.05388, 532.83011,
15185		-16.80583, -30.05544,
15186		1420.33767, 2007.21040, 592.32842, 1541.61732,
15187		-163.55984, 121.14134, 114.74969, -16.04944,
15188		0.06069, 0.00725,
15189		-0.16861, 0.28785,
15190		0.07399, -0.09680,
15191		0.19936, -0.41620,
15192		0.02922, 0.07398,
15193		0.17272, 0.05602,
15194		1.65461, -0.68278, -2.18745, -0.85327,
15195		0.52467, -0.30863,
15196		0.01598, 0.30017,
15197		-0.04190, -0.03288,
15198		-0.02013, 0.02257,
15199		-0.54883, -0.22701, -0.09257, -0.03921,
15200		0.02644, 0.04667,
15201		0.24773, -0.16562,
15202		44242.85814, -223163.54065, 123776.84417, -206375.74884,
15203		70472.73820, -27456.55173, 4065.74401, 13202.39154,
15204		-3260.72648, 802.50579, -153.13236, -503.81026,
15205		30.17812, -31.91893,
15206		-65.14719, 77.78417, -37.38185, 19.13337,
15207		-3.14043, -0.21147,
15208		0.27143, 0.17424,
15209		0.04458, 0.10976,
15210		-0.41841, -0.21887, -0.09194, -0.02303,
15211		0.02896, 0.10044,
15212		0.01385, 0.01723,
15213		-0.01126, -0.09318,
15214		-57.95890, 29.69059, -46.41390, 3.07177,
15215		0.42494, 2.33678, -3.09621, 0.05256,
15216		-0.02134, -0.35202,
15217		-0.44475, -0.83135,
15218		1318.18265, 25605.86848, -9168.38371, 18917.31507,
15219		-5145.74480, 2130.77612, -485.25920, -438.44867,
15220		19.97802, -33.14800,
15221		-23383.91826, -45133.19122, -18520.80729, -26549.95198,
15222		-2276.70124, -2974.01604, 603.23665, 306.87616,
15223		-87.73070, -32.49134,
15224		549975.14525, 261920.31896, 526261.09735, 362619.26839,
15225		150616.68873, 164643.90808, 9550.02662, 27381.83042,
15226		-1065.89047, 1024.20231, -66.63822, -44.75169,
15227		-92.10532, -20.26930,
15228		-313205.95341, 1462242.64616, 112982.53079, 1865690.41965,
15229		308844.30901, 639864.93227, 89716.32843, 10378.80773,
15230		4395.08428, -14565.35913, -3016.07754, -19348.64612,
15231		3838.36899, -9813.42713, 6883.58821, -6064.92588,
15232		2740.47455, -176.29547, 241.91895, 268.44181,
vendor: 4,445 bytes, lines 15233-15404
15233		-6.13397, 17.92503,
15234		-0.01377, -0.08742,
15235		387.51915, 257.03872, 152.81792, 221.56197,
15236		-22.94836, 29.56640, -2.27801, 4.72805,
15237		-6.03420, -0.36763,
15238		0.00667, 0.00443,
15239		-0.01405, 0.04658,
15240		-0.06533, -0.01966,
15241		0.10738, 0.00443,
15242		0.02889, 0.01056,
15243		0.00900, -0.02206,
15244		0.00013, 0.05281,
15245		0.03035, 0.34793,
15246		0.19460, 2.47360,
15247		0.18189, -0.83895, 0.24983, 15.32050,
15248		0.46010, 2.79643,
15249		-0.45793, 0.96707, -0.31226, 0.51911,
15250		0.04071, 0.39399,
15251		0.00038, 0.03854,
15252		0.22446, 0.13630, -0.04357, 0.03635,
15253		0.00202, -0.04502,
15254		-0.00458, -0.03884,
15255		1.32597, 3.40849, -1.67839, -0.95411,
15256		-1.00116, -0.72744, -0.22484, -0.27682,
15257		-0.18069, 0.00405,
15258		-0.01000, 0.27523,
15259		-0.07038, -0.01051,
15260		-0.09064, 0.08518,
15261		0.02083, -0.25406,
15262		0.17745, -0.00944,
15263		0.21326, 0.20454,
15264		18.84894, -7.64400, 0.62670, -11.02728,
15265		8.91329, 20.67190,
15266		0.17757, -0.15471,
15267		-0.11385, -0.46057,
15268		6.23014, -14.46025, 2.30012, -2.22677,
15269		5.16823, -1.64235,
15270		-274.58413, 833.33247, -191.26241, 269.90157,
15271		-17.25965, 9.11368,
15272		-261.65136, -18274.45858, -2553.83872, -10039.10490,
15273		-508.52567, 336.18172, 14.88587, 421.35954,
15274		162.43462, 544.92580,
15275		-0.44246, 0.23216,
15276		-0.29024, -0.13057,
15277		-1.58438, 0.34032, -0.31604, -0.01166,
15278		-0.07112, 0.05721,
15279		-0.10813, 0.01064,
15280		-0.05413, 0.06705,
15281		-0.41582, -0.47725, 0.31031, 0.08605,
15282		0.00409, 0.02373,
15283		0.08092, 0.06247, -0.01026, 0.05863,
15284		-0.00238, 0.02948,
15285		0.00117, 0.02714,
15286		0.01720, 0.18261,
15287		-0.04067, 0.88639,
15288		-0.15502, -0.96383,
15289		-0.05307, -0.17319,
15290		-0.00486, -0.02373,
15291		-0.14748, -0.11884, 0.07798, -0.00358,
15292		0.01104, 0.00805,
15293		0.15099, -0.03453, 0.01846, 0.03459,
15294		0.02197, 0.07012,
15295		-0.43677, -1.87445, 1.35202, 2.28294,
15296		-0.03592, 0.07679,
15297		0.16427, 0.03014, 0.02472, 0.05549,
15298		-0.04985, 0.05874,
15299		0.35361, 0.01144, -0.57400, 1.34898,
15300		0.00265, 0.01540,
15301		0.00951, 0.08159,
15302		-0.00435, 0.34759,
15303		-0.12413, -0.49848,
15304		-0.77075, -2.73810,
15305		-31.77702, 12.16042, -14.87605, 11.98287,
15306		12.69358, 1.31307, -8.22911, -21.47437,
15307		-0.24051, -0.38332,
15308		-0.01162, -0.03175,
15309		0.00556, 0.02454,
15310		-0.02297, -0.01654,
15311		0.00707, 0.04828,
15312		-0.00309, 0.17381,
15313		-0.00500, -0.07579,
15314		0.02008, 0.05356,
15315		0.00702, 0.01133,
15316		-0.00237, -0.00612,
15317		0.18551, 0.22799, -0.14194, -0.08593,
15318		0.00002, -0.01049,
15319		-0.17363, -0.13986, 0.00078, -0.06993,
15320		-0.00430, -0.07795,
15321		-0.03232, -4.13170,
15322		0.00311, 0.05356,
15323		-0.17324, -0.15505, -0.00590, -0.06608,
15324		0.04257, -0.04571,
15325		0.00501, 0.02141,
15326		-0.00037, 0.07845,
15327		-0.00381, -0.03417,
15328		0.01834, 0.03349,
15329		0.07994, 0.15297,
15330		-0.82299, 0.24672, 0.51764, 0.96379,
15331		0.01729, 0.02489,
15332		-0.08581, 0.13252,
15333		0.00538, 0.01995,
15334		-0.00148, -0.02261,
15335		0.00534, 0.01565,
15336		-0.07518, -0.28114, 0.22386, 0.39023,
15337		-0.00864, 0.00964,
15338		-0.01923, -0.02426,
15339		-0.00112, 0.00923,
15340		-0.00685, 0.02450,
15341		0.26733, -0.99972, -0.82005, 0.13725,
15342		0.01520, -0.00790,
15343		0.00358, 0.00751,
15344		-0.00648, -0.00605,
15345		-0.04966, -0.04633,
15346		0.06394, -0.01965,
15347		0.50185, 0.40553, -0.25809, 0.28853,
15348		0.52545, -3.41675,
15349		-0.00347, -0.11848,
15350		0.02945, -0.01061,
15351		-0.04160, -0.03519,
15352		-0.03234, -0.81852,
15353		-0.02156, -0.00841,
15354		0.00029, 0.00020,
15355		-0.02281, -0.00364,
15356		0.04738, -0.04504,
15357		-0.19161, 0.37225, 0.05765, 0.11987,
15358		0.00050, 0.02012,
15359		-0.03806, 0.39498,
15360		0.29982, 0.00886, 0.01671, 53.04042,
15361		-0.04160, -0.38856,
15362		-0.00174, -0.01773,
15363		-0.47661, -0.32010, -0.01088, -0.16231,
15364		-0.01584, -0.00144,
15365		0.06659, 0.12734,
15366		0.04884, 0.02236,
15367		0.00146, 0.06030,
15368		-0.20660, -0.03982, 0.15091, 1.24562,
15369		-0.01303, -0.22426,
15370		-0.01518, -0.03922,
15371		-0.00043, -0.00047,
15372		0.02451, 0.04437,
15373		0.02380, -0.00189,
15374		-0.00640, -0.07114,
15375		-0.00320, -0.02491,
15376		-0.00829, 0.07284,
15377		0.02846, -0.28034,
15378		-0.00268, 0.00256,
15379		-0.43420, 0.39645, -0.31053, 1.25916,
15380		-0.00371, -0.00651,
15381		-0.00096, 0.02762,
15382		-0.00067, -0.02503,
15383		-0.01517, 0.03748
15384	],
15385	lat_tbl: [
15386		0.00000, 107.91527, 83.39404, -124.29804,
15387		-7.73277, -3.99442,
15388		-0.08328, -1.74251,
15389		-9.05659, -22.88559, -2.30655, -4.40259,
15390		-470.94604, -3648.43408, 326.28960, -2972.91303,
15391		337.37285, -650.33570, 57.18479, -18.29130,
15392		1.13897, 2.70158,
15393		-13.64388, -71.88619, 7.36408, -43.79994,
15394		6.57463, -5.81111, -0.06451, 0.73379,
15395		0.00574, -0.01635,
15396		0.00074, -0.01496,
15397		-0.00418, 0.00647,
15398		-0.00407, 0.00548,
15399		0.00002, 0.00187,
15400		-0.00591, 0.00557,
15401		0.32568, -0.01574, 0.19347, -0.01705,
15402		0.00173, 0.02384,
15403		-0.00248, -0.00103,
15404		0.00227, 0.00146,
15405		0.00307, -0.00040,
15406		0.03886, 0.01987, 0.00546, 0.00345,
15407		0.00134, -0.00609,
15408		-0.01502, -0.01569,
15409		-10080.59325, 10806.67752, -14013.76861, 9928.38683,
15410		-6540.83480, 2084.91597, -1093.05006, -305.34266,
15411		-9.04558, -110.32310, 9.26094, -3.93195,
15412		0.25552, 0.50327,
15413		-13.12170, -4.19317, -4.50857, -3.37626,
15414		-0.26850, -0.36028,
15415		-0.00357, 0.05862,
15416		-0.00828, 0.00926,
15417		-0.01515, -0.03687, -0.00224, -0.00802,
15418		-0.00225, -0.00158,
15419		-0.00022, -0.00044,
15420		-0.00281, 0.00371,
15421		2.28259, -4.29888, 1.74622, -2.13604,
15422		0.37023, -0.37022, 0.00886, 0.07081,
15423		0.01669, 0.00056,
15424		-0.02020, 0.01586,
15425		-4255.31929, 5978.03267, -7264.48027, 1884.12585,
15426		-2353.93882, -1593.23001, 17.57205, -498.54139,
15427		33.28704, -13.79498,
15428		-38416.64883, -13774.09664, -32822.03952, -3983.42726,
15429		-7538.09822, 1906.66915, -221.24439, 512.77046,
15430		32.26101, 12.46483,
15431		142710.47871, -96584.83892, 145395.05981, -86630.96423,
15432		48202.96749, -23596.77676, 5286.16967, -1626.44031,
15433		-16.53568, 95.15428, -15.19472, 5.69207,
15434		-6.72181, 7.28683,
15435		9515.16142, -166495.49381, 5588.84271, -146260.29445,
15436		2023.55881, -30687.22422, 243.64741, 971.58076,
15437		390.73247, -236.13754, -2684.56349, 739.81087,
15438		-597.39429, 474.89313, -631.69166, 213.04947,
15439		-204.89515, -33.09139, -17.78004, -22.21866,
15440		0.61083, -1.41177,
15441		-0.00070, -0.00501,
15442		-58.24552, 25.27978, -36.39386, 0.36376,
15443		-2.21030, -6.46685, -0.58473, -0.09357,
15444		0.12829, -0.94855,
15445		0.00042, 0.00048,
15446		0.00411, 0.00101,
15447		0.00249, -0.00865,
15448		0.00223, 0.00293,
15449		0.00041, -0.00042,
15450		0.00104, -0.00086,
15451		0.00126, -0.00380,
15452		0.00906, -0.02253,
15453		0.05998, -0.10318,
15454		0.00004, -0.03225, 0.14303, -0.05273,
15455		0.32683, 0.09386,
15456		-0.17053, 0.60847, -0.06190, 0.28166,
15457		0.06411, 0.05289,
15458		0.01138, 0.00128,
15459		-0.00930, 0.00272, 0.00037, 0.00215,
15460		0.00004, 0.00050,
15461		0.00114, -0.00217,
15462		0.05358, -0.06413, -0.00124, 0.03842,
15463		0.01006, 0.22479, 0.00412, 0.04040,
15464		0.01708, 0.02164,
15465		0.02484, -0.02463,
15466		-0.00103, 0.02633,
15467		-0.01303, -0.03214,
15468		0.03613, 0.02205,
15469		-0.02677, -0.02522,
15470		-0.00293, 0.03130,
15471		-1.87255, -2.50308, -1.53715, 0.36859,
15472		-0.17829, -1.12095,
15473		-0.05652, -0.00786,
15474		-0.06992, 0.07279,
15475		-2.95896, 0.55138, -0.61498, -0.11008,
15476		-0.87790, -0.50965,
15477		119.73553, -35.18217, 44.78683, -4.22438,
15478		1.95723, 0.58033,
15479		-4077.02379, -353.39110, -2781.63273, -75.23318,
15480		-312.50478, -23.86495, 24.59887, 32.56837,
15481		120.09593, -51.00495,
15482		0.09737, 0.09111,
15483		0.04799, -0.05029,
15484		0.08351, -0.33726, 0.03158, -0.06435,
15485		-0.00523, -0.01736,
15486		0.00751, -0.01757,
15487		-0.00406, -0.01198,
15488		0.16402, -0.10986, -0.02024, 0.07205,
15489		-0.00440, -0.00072,
15490		-0.00465, 0.00310, -0.00121, -0.00121,
15491		0.00083, 0.00020,
15492		0.00140, -0.00176,
15493		0.00381, -0.00731,
15494		-0.01618, 0.01570,
15495		-0.10201, 0.05809,
15496		-0.03359, 0.01024,
15497		-0.00535, 0.00018,
15498		0.00024, 0.00509, -0.00158, -0.00466,
15499		0.00009, -0.00083,
15500		-0.00700, -0.00090, -0.00011, -0.00079,
15501		0.00133, -0.00126,
15502		0.01416, 0.05553, 0.04283, -0.06719,
15503		0.00119, 0.00291,
15504		-0.00263, 0.01282, -0.00040, 0.00188,
15505		-0.00237, 0.00973,
15506		-0.39533, 0.18773, -0.79821, -0.40168,
15507		0.00151, -0.00161,
15508		0.00123, -0.00516,
15509		-0.01432, -0.00293,
15510		-0.05477, 0.04130,
15511		-0.48837, 0.18944,
15512		-0.12552, 9.37098, 1.02045, 5.11382,
15513		0.72098, -3.70049, -5.80982, 3.30105,
15514		-0.09682, 0.09696,
15515		-0.00876, 0.00504,
15516		0.00318, 0.00245,
15517		0.00563, -0.00665,
15518		0.00108, -0.00233,
15519		-0.00117, 0.00177,
15520		-0.00343, 0.00503,
15521		0.01044, -0.00651,
15522		0.00296, -0.00162,
15523		0.00037, 0.00028,
15524		-0.00020, -0.00786, 0.00029, 0.00836,
15525		0.00004, 0.00033,
15526		-0.00309, -0.00086, -0.00157, -0.00086,
15527		-0.00058, 0.00105,
15528		-0.04557, 0.01794,
15529		-0.00122, -0.00086,
15530		0.00420, -0.00285, 0.00118, -0.00020,
15531		0.00743, -0.01217,
15532		0.00053, -0.00084,
15533		-0.00075, 0.00097,
15534		-0.00107, 0.00314,
15535		0.00576, -0.00505,
15536		0.03624, -0.02546,
15537		0.05379, 0.30081, 0.29870, -0.22106,
15538		0.00696, -0.00801,
15539		-0.03995, -0.01808,
15540		-0.00139, 0.00102,
15541		-0.00059, 0.00138,
15542		0.00019, -0.00037,
15543		0.00274, 0.00658, 0.00672, -0.01132,
15544		0.00023, 0.00051,
15545		0.00031, 0.00090,
15546		-0.00017, -0.00001,
15547		0.00085, 0.00004,
15548		0.02221, -0.01977, 0.07498, 0.03025,
15549		-0.00082, -0.00022,
15550		-0.00073, -0.00028,
15551		-0.00253, 0.00259,
15552		-0.01329, 0.01805,
15553		0.00096, 0.00833,
15554		-0.11836, 0.04277, -0.10820, -0.03018,
15555		0.34504, 0.09834,
15556		-0.00538, -0.00231,
15557		0.00036, 0.00042,
15558		-0.00023, 0.00260,
15559		-0.01137, 0.00036,
15560		0.01081, -0.03271,
15561		-0.00029, -0.00028,
15562		0.00018, -0.00003,
15563		0.00009, 0.00012,
15564		0.00127, 0.00343, 0.00100, -0.00064,
15565		0.00014, 0.00004,
15566		0.00150, 0.00069,
15567		-0.01484, 0.00135, 0.03930, 0.01405,
15568		0.00064, 0.00029,
15569		0.00009, 0.00009,
15570		0.00054, -0.00048, 0.00019, 0.00005,
15571		-0.00009, 0.00018,
15572		0.00192, -0.00333,
15573		0.01824, 0.01071,
15574		0.00107, -0.00341,
vendor: 4,182 bytes, lines 15575-15718
15575		0.25530, -0.18414, -0.84151, -0.31475,
15576		-0.00400, -0.00010,
15577		-0.00174, 0.00019,
15578		0.00006, -0.00079,
15579		0.00066, -0.00070,
15580		0.00599, 0.00330,
15581		-0.00160, -0.00013,
15582		-0.00067, -0.00006,
15583		-0.00176, -0.00111,
15584		0.00652, 0.00368,
15585		0.00004, 0.00001,
15586		-0.00081, 0.00089, 0.00366, 0.00139,
15587		0.00002, 0.00001,
15588		-0.01870, -0.00998,
15589		-0.00020, -0.00007,
15590		0.00005, 0.00003
15591	],
15592	rad_tbl: [
15593		0.00000, -53.23277, -44.70609, -62.54432,
15594		-19.15218, 0.10867,
15595		-1.91911, 1.47517,
15596		16.51994, 5.00458, 3.88980, 1.55740,
15597		3598.17109, 1831.07574, 2633.34851, 1775.69482,
15598		497.10486, 488.77343, 6.03892, 31.08365,
15599		-2.06585, -1.12599,
15600		230.37762, -113.95449, 162.40244, -46.57185,
15601		6.70207, 17.27241, -0.66092, -14.42065,
15602		-0.01044, -0.00287,
15603		-0.03894, -0.01663,
15604		0.01629, 0.00496,
15605		0.08411, 0.02855,
15606		0.01795, -0.00695,
15607		0.02426, -0.03921,
15608		-0.24495, -0.77369, -0.31404, 0.38668,
15609		-0.05682, -0.17197,
15610		0.06145, -0.00510,
15611		0.00606, -0.00886,
15612		-0.00370, -0.00588,
15613		0.02173, -0.11909, 0.00302, -0.01796,
15614		-0.01067, 0.00990,
15615		0.05283, 0.06517,
15616		59710.89716, -491.12783, 58672.38609, 19564.41947,
15617		10597.99050, 14313.02561, -2585.52040, 766.78396,
15618		-138.39893, -802.43403, 131.35006, -31.97561,
15619		7.95978, 8.16075,
15620		28.72669, 31.72473, 6.45792, 16.50701,
15621		0.01066, 1.29718,
15622		0.11565, -0.13240,
15623		0.05110, -0.01543,
15624		-0.09994, 0.18864, -0.01330, 0.04148,
15625		0.03510, -0.00366,
15626		0.00604, -0.00604,
15627		0.03752, -0.00256,
15628		-7.00488, -21.63748, 1.43064, -17.10914,
15629		-0.62987, 0.48719, 0.00697, -1.22665,
15630		-0.14435, -0.00550,
15631		0.32008, -0.19855,
15632		-13976.73731, -3559.49432, -7709.90803, -9310.80334,
15633		749.31835, -3491.50696, 540.94979, -84.57550,
15634		16.96663, 35.53930,
15635		37214.64771, -36361.15845, 21093.74492, -31855.33076,
15636		1500.84653, -7031.97901, -453.40865, -18.36692,
15637		-2.07726, -17.92336,
15638		-56348.30507, 378512.71483, -111444.43340, 370543.95160,
15639		-61893.70301, 112131.05507, -11977.44617, 9156.15245,
15640		-567.61838, -495.25760, 16.96202, -44.06279,
15641		4.24760, -48.83674,
15642		-643705.49516, -131013.09649, -838580.02217, 67627.11556,
15643		-288441.70339, 150227.25291, -2500.57537, 42676.19888,
15644		7084.60505, 2043.65642, 9639.56835, -1502.03390,
15645		-4126.00409, -828.73564, -2801.35204, -2293.77751,
15646		-209.23365, -1045.31476, 95.57334, -102.74623,
15647		7.19216, 1.89593,
15648		-0.05661, 0.02166,
15649		120.38332, -141.16507, 98.31386, -40.23448,
15650		10.84269, 17.57713, 1.69239, 1.45065,
15651		-0.19626, 2.76108,
15652		-0.00270, 0.00360,
15653		-0.02333, -0.00710,
15654		-0.01035, 0.02950,
15655		0.00737, -0.06311,
15656		-0.00613, 0.01407,
15657		0.01377, 0.00879,
15658		-0.03287, 0.00012,
15659		-0.21667, 0.01793,
15660		-1.54865, 0.10953,
15661		0.54543, 0.12102, -9.48047, 0.11477,
15662		-1.34966, 0.23199,
15663		-1.50834, 0.26567, -0.64503, 0.10742,
15664		-0.21452, 0.04428,
15665		-0.01920, -0.00906,
15666		-0.09378, 0.12773, -0.02787, -0.03090,
15667		0.03111, 0.00140,
15668		0.03771, -0.01269,
15669		-1.94794, 1.22823, 0.64183, -1.11467,
15670		-0.19301, -0.27357, 0.05710, -0.08115,
15671		-0.07318, 0.00806,
15672		0.14286, 0.20297,
15673		0.14920, -0.07897,
15674		0.09682, 0.02379,
15675		-0.13928, 0.01679,
15676		-0.00774, 0.10060,
15677		0.24433, 0.16760,
15678		-2.88905, -1.61439, 2.83052, -3.41031,
15679		36.37048, 3.37867,
15680		0.29321, 0.09687,
15681		0.29324, -0.14651,
15682		8.11116, 1.79211, 1.36421, 0.88111,
15683		1.21683, 2.37950,
15684		-357.76211, -87.84636, -117.55745, -67.18338,
15685		-5.26029, -6.27559,
15686		7509.94562, 3.68942, 4223.62097, -1041.13557,
15687		-74.64464, -251.41613, -166.22180, -1.68190,
15688		-214.55340, 62.79593,
15689		-0.08250, -0.15936,
15690		-0.03830, 0.10857,
15691		0.21368, 0.50812, 0.00869, 0.09832,
15692		0.02158, 0.02045,
15693		0.01407, 0.03591,
15694		0.03460, 0.01171,
15695		-0.16400, 0.09751, 0.03521, -0.12858,
15696		0.00700, -0.00524,
15697		0.01698, -0.04796, 0.04006, 0.00565,
15698		-0.02783, -0.00205,
15699		-0.02296, 0.00153,
15700		-0.16139, 0.01514,
15701		-0.78136, -0.01546,
15702		0.40374, -0.06014,
15703		0.06212, -0.01828,
15704		0.00831, -0.00173,
15705		0.06857, -0.11677, 0.00028, 0.05765,
15706		-0.00796, 0.00691,
15707		0.03764, 0.14902, -0.02653, 0.02122,
15708		-0.05503, 0.01549,
15709		1.56630, -0.35551, -1.87960, 1.14303,
15710		-0.06063, -0.03425,
15711		0.03367, -0.11969, 0.04485, -0.01651,
15712		0.04647, -0.02097,
15713		0.22841, 0.47362, 0.99226, -0.60660,
15714		-0.01249, 0.00134,
15715		-0.07435, 0.00722,
15716		-0.31796, -0.00015,
15717		0.20533, -0.04398,
15718		0.93944, -0.26710,
15719		-5.60051, -9.32918, -5.13538, -4.05130,
15720		-0.56529, 4.34112, 7.18308, -2.66103,
15721		0.13241, -0.07999,
15722		0.01046, -0.00535,
15723		-0.04037, -0.00455,
15724		-0.00510, 0.00731,
15725		-0.04576, 0.00513,
15726		-0.15846, -0.00236,
15727		0.04628, -0.00463,
15728		-0.01585, 0.00585,
15729		-0.00213, 0.00283,
15730		0.00778, -0.00198,
15731		-0.17803, 0.18321, 0.07702, -0.12325,
15732		0.01091, 0.00349,
15733		0.14211, -0.21830, 0.07289, -0.00994,
15734		0.07090, -0.00079,
15735		4.18441, -0.07413,
15736		-0.06247, -0.00011,
15737		-0.15453, 0.14499, -0.06557, -0.00098,
15738		0.00290, 0.02921,
15739		-0.01923, 0.00457,
15740		-0.07538, -0.00120,
15741		0.02263, -0.00037,
15742		-0.01061, 0.00591,
15743		-0.04725, 0.02364,
15744		-0.07460, -0.24108, -0.28310, 0.14643,
15745		-0.00700, 0.00427,
15746		0.22963, 0.03713,
15747		-0.02062, 0.00478,
15748		0.01434, 0.00095,
15749		-0.01425, 0.00376,
15750		0.29611, -0.08038, -0.37811, 0.21703,
15751		-0.00723, -0.00924,
15752		-0.02736, 0.01814,
15753		0.00934, 0.00731,
15754		0.00613, 0.00686,
15755		-0.91503, -0.32009, -0.15505, 0.79589,
15756		-0.00555, -0.01536,
15757		-0.00698, 0.00480,
15758		0.00373, -0.00046,
15759		0.00715, -0.00470,
15760		-0.01970, -0.05238,
15761		0.60649, -0.32669, 0.17790, 0.33383,
15762		-2.74922, -0.25827,
15763		-0.07862, 0.00406,
15764		-0.00948, -0.02117,
15765		0.03127, -0.04199,
15766		0.89670, -0.02413,
15767		0.01954, 0.03990,
15768		0.00063, -0.00071,
15769		-0.00226, 0.02009,
15770		-0.04407, -0.05069,
15771		0.38230, 0.16101, 0.11893, -0.06125,
15772		0.02051, -0.00046,
15773		0.39211, 0.03679,
15774		0.01666, -0.31336, 53.28735, -0.01791,
15775		-0.39414, 0.04181,
15776		-0.01885, 0.00165,
15777		0.31349, -0.47359, 0.16133, -0.01023,
15778		0.00007, 0.01758,
15779		-0.13351, 0.07249,
15780		0.00977, 0.05445,
15781		0.11650, -0.00191,
15782		-0.09824, 0.40106, 2.41155, -0.30655,
15783		0.24975, -0.01248,
15784		-0.03688, 0.01097,
15785		0.00038, -0.00051,
15786		-0.04736, 0.02610,
15787		0.00968, 0.02634,
15788		0.07918, -0.00606,
15789		0.02735, -0.00320,
15790		-0.07544, -0.00468,
15791		0.19996, -0.01964,
15792		0.00201, 0.00267,
15793		0.39562, 0.43289, 1.24743, 0.31084,
15794		-0.00666, 0.00377,
15795		0.05668, 0.00148,
15796		0.03220, -0.00026,
15797		0.03717, 0.01509
15798	],
15799	arg_tbl: [
15800		0, 3,
15801		2, 1, 7, -2, 8, 0,
15802		2, 2, 7, -4, 8, 0,
15803		2, 3, 7, -6, 8, 1,
15804		2, 2, 5, -5, 6, 4,
15805		2, 1, 6, -3, 7, 3,
15806		3, 1, 6, -1, 7, -4, 8, 0,
15807		3, 2, 5, -7, 6, 6, 7, 0,
15808		3, 2, 6, -6, 7, 1, 8, 0,
15809		3, 2, 6, -7, 7, 3, 8, 0,
15810		3, 2, 6, -8, 7, 4, 8, 0,
15811		3, 2, 6, -7, 7, 2, 8, 0,
15812		2, 2, 6, -6, 7, 2,
15813		3, 1, 5, -4, 6, 4, 7, 0,
15814		3, 1, 6, -2, 7, -1, 8, 0,
15815		3, 1, 6, -3, 7, 1, 8, 0,
15816		3, 1, 6, -4, 7, 3, 8, 1,
15817		2, 5, 7, -9, 8, 0,
15818		2, 4, 7, -7, 8, 0,
15819		2, 2, 7, -3, 8, 6,
15820		2, 1, 7, -3, 8, 2,
15821		2, 2, 7, -5, 8, 0,
15822		2, 3, 7, -7, 8, 0,
15823		3, 1, 6, -6, 7, 5, 8, 1,
15824		3, 1, 6, -5, 7, 3, 8, 0,
15825		3, 2, 5, -8, 6, 8, 7, 0,
15826		3, 1, 5, -4, 6, 5, 7, 0,
15827		2, 2, 6, -5, 7, 3,
15828		3, 1, 6, 1, 7, -9, 8, 0,
15829		3, 2, 5, -4, 6, -2, 7, 0,
15830		2, 1, 6, -4, 8, 4,
15831		2, 1, 6, -2, 7, 4,
15832		2, 5, 7, -8, 8, 5,
15833		2, 3, 7, -4, 8, 0,
15834		1, 1, 7, 5,
15835		2, 2, 7, -6, 8, 4,
15836		3, 1, 6, -6, 7, 4, 8, 0,
15837		2, 1, 6, -4, 7, 4,
15838		3, 2, 6, -5, 7, 1, 8, 0,
15839		3, 2, 6, -6, 7, 3, 8, 0,
15840		2, 2, 6, -7, 7, 0,
15841		3, 1, 5, -4, 6, 3, 7, 0,
15842		3, 1, 6, -1, 7, -1, 8, 0,
15843		2, 1, 5, -2, 6, 0,
15844		2, 6, 7, -9, 8, 0,
15845		2, 5, 7, -7, 8, 0,
15846		2, 4, 7, -5, 8, 0,
15847		2, 3, 7, -3, 8, 1,
15848		2, 2, 7, -1, 8, 0,
15849		2, 1, 7, 1, 8, 2,
15850		1, 3, 8, 0,
15851		2, 3, 6, -7, 7, 1,
15852		3, 2, 5, -3, 6, -4, 7, 0,
15853		3, 2, 6, -3, 7, -2, 8, 0,
15854		2, 2, 6, -4, 7, 1,
15855		3, 2, 6, -5, 7, 2, 8, 1,
15856		3, 5, 5, -9, 6, -8, 7, 0,
15857		3, 2, 5, -4, 6, -1, 7, 0,
15858		3, 1, 6, 3, 7, -8, 8, 0,
15859		3, 2, 6, -8, 7, 1, 8, 0,
15860		3, 2, 5, -7, 6, 4, 7, 0,
15861		3, 4, 5, -10, 6, 2, 7, 0,
15862		2, 1, 6, -2, 8, 0,
15863		2, 1, 6, -1, 7, 2,
15864		2, 8, 7, -12, 8, 0,
15865		2, 7, 7, -10, 8, 0,
15866		2, 6, 7, -8, 8, 1,
15867		2, 5, 7, -6, 8, 0,
15868		2, 4, 7, -4, 8, 2,
15869		1, 2, 7, 4,
15870		1, 4, 8, 0,
15871		2, 1, 7, -6, 8, 0,
15872		2, 2, 7, -8, 8, 1,
15873		2, 3, 7, -10, 8, 0,
15874		2, 4, 7, -12, 8, 0,
15875		3, 1, 6, -6, 7, 2, 8, 0,
15876		2, 1, 6, -5, 7, 1,
15877		3, 1, 6, -4, 7, -2, 8, 0,
15878		3, 1, 5, -4, 6, 2, 7, 1,
15879		3, 1, 5, -2, 6, 1, 7, 0,
15880		2, 7, 7, -9, 8, 0,
15881		2, 6, 7, -7, 8, 0,
15882		2, 5, 7, -5, 8, 0,
15883		2, 4, 7, -3, 8, 0,
15884		2, 3, 7, -1, 8, 0,
15885		2, 2, 7, 1, 8, 0,
15886		2, 3, 6, -6, 7, 1,
15887		3, 3, 6, -7, 7, 2, 8, 0,
15888		3, 2, 5, -3, 6, -3, 7, 1,
15889		3, 2, 6, -2, 7, -2, 8, 0,
15890		2, 2, 6, -3, 7, 1,
15891		3, 2, 6, -4, 7, 2, 8, 0,
15892		3, 2, 5, -7, 6, 3, 7, 1,
15893		3, 1, 6, 1, 7, -2, 8, 0,
15894		1, 1, 6, 1,
15895		2, 8, 7, -10, 8, 0,
15896		2, 7, 7, -8, 8, 0,
15897		2, 6, 7, -6, 8, 0,
15898		2, 5, 7, -4, 8, 0,
15899		2, 4, 7, -2, 8, 0,
15900		1, 3, 7, 3,
15901		2, 2, 7, 2, 8, 0,
15902		2, 1, 7, 4, 8, 0,
15903		2, 1, 5, -4, 7, 0,
15904		2, 1, 6, -6, 7, 0,
15905		2, 8, 7, -9, 8, 0,
15906		2, 7, 7, -7, 8, 0,
15907		2, 6, 7, -5, 8, 0,
15908		2, 5, 7, -3, 8, 0,
15909		2, 4, 7, -1, 8, 0,
15910		3, 3, 6, -4, 7, -2, 8, 0,
15911		2, 3, 6, -5, 7, 1,
15912		3, 3, 6, -6, 7, 2, 8, 0,
15913		3, 2, 5, -3, 6, -2, 7, 1,
15914		3, 2, 6, -1, 7, -2, 8, 0,
15915		2, 2, 6, -2, 7, 0,
15916		3, 2, 6, -3, 7, 2, 8, 0,
15917		3, 2, 5, -7, 6, 2, 7, 1,
15918		2, 1, 6, 1, 7, 0,
15919		2, 9, 7, -10, 8, 0,
15920		2, 8, 7, -8, 8, 0,
15921		2, 7, 7, -6, 8, 0,
15922		2, 6, 7, -4, 8, 0,
15923		2, 5, 7, -2, 8, 0,
15924		1, 4, 7, 1,
15925		2, 3, 7, 2, 8, 0,
15926		2, 1, 5, -3, 7, 0,
15927		2, 9, 7, -9, 8, 0,
15928		2, 8, 7, -7, 8, 0,
15929		3, 3, 6, -3, 7, -2, 8, 0,
15930		2, 3, 6, -4, 7, 1,
15931		3, 3, 6, -5, 7, 2, 8, 0,
15932		3, 2, 5, -3, 6, -1, 7, 0,
15933		3, 2, 5, -8, 6, 4, 7, 0,
15934		2, 2, 6, -2, 8, 0,
15935		2, 2, 6, -1, 7, 1,
15936		3, 2, 6, -2, 7, 2, 8, 0,
15937		3, 2, 5, -7, 6, 1, 7, 0,
15938		2, 6, 7, -2, 8, 0,
15939		1, 5, 7, 0,
15940		3, 3, 6, -4, 7, 1, 8, 0,
15941		2, 1, 5, -2, 7, 2,
15942		3, 1, 5, -3, 7, 2, 8, 0,
15943		3, 1, 5, -1, 6, 1, 7, 0,
15944		2, 4, 6, -6, 7, 0,
15945		2, 3, 6, -3, 7, 0,
15946		1, 2, 6, 0,
15947		3, 2, 5, -4, 6, 3, 7, 0,
15948		3, 1, 5, 1, 6, -4, 7, 0,
15949		3, 3, 5, -5, 6, -1, 7, 0,
15950		1, 6, 7, 1,
15951		3, 1, 5, 1, 7, -4, 8, 0,
15952		2, 1, 5, -2, 8, 0,
15953		2, 1, 5, -1, 7, 1,
15954		3, 1, 5, -2, 7, 2, 8, 0,
15955		3, 1, 5, -3, 7, 4, 8, 0,
15956		3, 1, 5, -5, 6, 1, 7, 1,
15957		3, 1, 5, -1, 6, 2, 7, 0,
15958		2, 4, 6, -5, 7, 0,
15959		2, 3, 6, -2, 7, 0,
15960		3, 1, 5, 1, 7, -2, 8, 0,
15961		1, 1, 5, 1,
15962		2, 4, 6, -4, 7, 0,
15963		2, 3, 6, -1, 7, 0,
15964		3, 3, 5, -5, 6, 1, 7, 0,
15965		2, 5, 6, -6, 7, 0,
15966		2, 4, 6, -3, 7, 0,
15967		2, 5, 6, -5, 7, 0,
15968		2, 6, 6, -6, 7, 0,
15969		2, 2, 5, -3, 7, 0,
15970		2, 2, 5, -2, 7, 0,
15971		2, 2, 5, -2, 8, 0,
15972		2, 2, 5, -1, 7, 1,
15973		3, 2, 5, -2, 7, 2, 8, 0,
15974		1, 2, 5, 0,
15975		2, 3, 5, -3, 7, 0,
15976		2, 3, 5, -1, 7, 0,
15977		-1
15978	]
15979};
15980
15981$ns.neptune = {
15982	maxargs: 9,
15983	max_harmonic: [0, 0, 0, 0, 3, 8, 7, 9, 0],
15984	max_power_of_t: 3,
15985	distance: 3.0110386869399999e+01,
15986	timescale: 3652500.0,
15987	trunclvl: 1.0,
15988	lon_tbl: [
15989		-1376.86480, 730.38970, 78655362.50948, 1095691.38676,
15990		-196.19023, 2086.77782,
15991		-122.04650, -276.81592,
15992		184.56164, -148.08924,
15993		3.39142, -14.75027,
15994		-9.22741, 0.87688,
15995		-0.13903, -0.44707,
15996		-0.17668, -0.36299,
15997		-0.12682, -0.26636,
15998		-0.51426, -0.24667,
15999		-0.04965, -0.03177,
16000		0.05050, -0.00249,
16001		-0.80362, -0.07363, -0.15436, -0.07180,
16002		2.45034, -3.50145, 0.86698, 0.09777,
16003		7.72386, 7.16565, 2.10273, 8.86682,
16004		2.44705, 77.90155,
16005		0.28323, -11.87157, -13.64083, 252.70556,
16006		-4.94214, -6.17988, -305.60504, 51.23962,
16007		-2759.81719, 2476.20912,
16008		12.65762, 13.31543,
16009		0.36996, -0.19077, 0.67363, 0.36737,
16010		0.02312, 0.02216,
16011		0.09953, 0.04777,
16012		-0.00572, -0.02772,
16013		-0.02478, -0.21920,
16014		-0.15289, -1.50784,
16015		-0.17822, 0.34638, -0.70473, -8.61559,
16016		-2.65756, 1.25632,
16017		-0.31453, -1.40348, -4.02571, -1.50467,
16018		-69.62308, 3.21315,
16019		0.69973, 0.08832,
16020		-0.00551, -0.04964,
16021		-0.02264, -0.34881,
16022		0.00762, -1.85072,
16023		0.01407, -0.30457,
16024		-0.09851, -0.02372,
16025		-0.07729, -0.11602, -0.75995, -0.71884,
16026		-0.08585, -0.30406, 0.45818, 0.14921,
16027		-0.01033, -0.11776,
16028		0.00640, -0.57717,
16029		-0.01014, -0.01357, -0.00544, -0.02168,
16030		0.40468, 0.28195, 0.00668, 0.14448,
16031		0.01245, -0.08956,
16032		-0.26283, 0.01864, -0.00641, 18.55347,
16033		0.01460, 0.08284,
16034		-0.04785, 0.11360,
16035		-0.33861, 0.01327, -0.06392, -0.18758,
16036		0.05449, -0.05583,
16037		-0.00435, -0.09869,
16038		-0.00286, -0.04613,
16039		-0.00395, -0.14564,
16040		-0.01385, -0.01762,
16041		0.21160, -0.61631, -0.52100, -0.04583,
16042		0.32812, 0.32138,
16043		0.04749, -0.05724,
16044		0.11239, 0.13216,
16045		-0.01203, 0.40084, -0.05207, 34.07903,
vendor: 5,023 bytes, lines 16046-16248
16046		-0.21457, -0.34938, -0.04594, 0.11198,
16047		-0.30662, -0.20776, -0.01076, -0.10959,
16048		0.10891, -0.10304,
16049		-0.28141, 0.25061, -0.20293, 0.79930
16050	],
16051	lat_tbl: [
16052		-391.05987, -243.95958, -23.83558, 58.13857,
16053		5.04859, -3.93183,
16054		-14.21914, 7.14247,
16055		-12.09415, -9.70132,
16056		1.04307, 0.47323,
16057		-0.07504, 0.70575,
16058		-0.05239, 0.00482,
16059		-0.02916, 0.00877,
16060		-0.00528, -0.00286,
16061		0.00028, -0.00228,
16062		-0.00056, -0.00149,
16063		0.00049, 0.00047,
16064		-0.18765, -0.59571, 0.03742, -0.14653,
16065		2.30535, 0.65092, 0.42216, 0.24521,
16066		-2.86932, 2.37808, -0.58456, 0.27446,
16067		-1.12264, -2.04413,
16068		-11.71318, -1.41554, -23.30671, -24.70499,
16069		8.82738, 85.64657, -90.02223, 22.42604,
16070		-4749.41359, -4244.46820,
16071		25.20811, -18.51469,
16072		-1.19892, -0.61067, 0.67734, -1.08912,
16073		-0.01607, 0.00626,
16074		-0.00008, 0.00126,
16075		-0.00330, -0.00078,
16076		-0.01503, 0.00758,
16077		-0.13208, -0.00218,
16078		-0.04522, 0.20297, -0.94708, -0.77897,
16079		-2.74075, -3.01122,
16080		-1.03394, 0.00886, 1.55485, -4.68416,
16081		-0.13244, -57.26983,
16082		0.05589, -0.55396,
16083		-0.00130, 0.00526,
16084		-0.01028, 0.02086,
16085		0.01334, 0.00699,
16086		0.08565, 0.02020,
16087		0.01001, -0.08402,
16088		0.08558, -0.04488, 0.57268, -0.59574,
16089		0.00807, 0.00492, 0.21993, -0.18949,
16090		-0.00396, 0.00735,
16091		0.00487, 0.00230,
16092		0.00699, -0.00473, 0.01406, -0.00139,
16093		0.00738, 0.00099, 0.00161, 0.00019,
16094		-0.00067, -0.00047,
16095		0.00572, -0.00486, -0.00842, 0.00322,
16096		0.00018, -0.00109,
16097		-0.00272, 0.00112,
16098		-0.00041, 0.00763, 0.00211, 0.00118,
16099		-0.46842, -0.17877,
16100		0.00209, -0.00179,
16101		0.00090, -0.00075,
16102		0.00618, 0.00610,
16103		0.00015, 0.00032,
16104		-0.00123, 0.00026, 0.00332, 0.00135,
16105		0.39130, -0.34727,
16106		0.00015, -0.00027,
16107		-0.00026, -0.00052,
16108		0.00162, 0.00913, -0.00697, 0.00308,
16109		-0.00333, -0.00258, -0.00117, 0.00035,
16110		0.00766, 0.00194, 0.00135, 0.00067,
16111		-0.41171, 0.24241,
16112		0.00106, 0.00025, 0.00013, -0.00019
16113	],
16114	rad_tbl: [
16115		-767.68936, -460.59576, -52.41861, -273.85897,
16116		59.52489, 1.85006,
16117		-39.64750, 23.63348,
16118		-34.60399, -23.41681,
16119		2.74937, 1.55389,
16120		0.20343, 2.15502,
16121		-0.12846, 0.07199,
16122		-0.07555, 0.05582,
16123		-0.04354, 0.01546,
16124		-0.03931, 0.07623,
16125		-0.00491, 0.00661,
16126		0.00322, 0.01540,
16127		-0.06741, -0.35343, 0.00469, -0.08073,
16128		1.94975, 0.66376, 0.06137, 0.31426,
16129		-2.93841, 4.27732, -4.00342, 1.11157,
16130		-36.87785, 1.24960,
16131		4.69573, 2.15164, -114.24899, -6.69320,
16132		12.99919, -9.47795, -21.82350, -156.88624,
16133		-1237.19769, -1379.88864,
16134		6.54369, -6.20873,
16135		-0.14163, -0.32700, 0.17937, -0.34864,
16136		0.01393, -0.01286,
16137		0.02876, -0.05767,
16138		0.02210, -0.00128,
16139		0.16495, -0.01242,
16140		1.15915, -0.10365,
16141		-0.33224, -0.10045, 6.83719, -0.27499,
16142		-0.31284, -0.94332,
16143		1.63704, -0.33318, 1.48134, -1.32257,
16144		0.96498, -8.31047,
16145		-0.00402, -0.09441,
16146		0.04292, -0.00444,
16147		0.30325, -0.02012,
16148		1.67999, 0.00353,
16149		0.00467, 0.03556,
16150		0.01393, -0.01229,
16151		0.01188, -0.01390, 0.04615, -0.03509,
16152		0.32423, -0.12491, 0.13682, 0.15131,
16153		0.11221, -0.01201,
16154		0.57239, 0.00093,
16155		0.02068, -0.01162, 0.00647, -0.00325,
16156		0.27010, -0.42993, 0.14314, -0.01353,
16157		-0.08757, -0.00699,
16158		0.00199, 0.31873, 18.80329, 0.01681,
16159		0.08009, -0.00998,
16160		-0.14421, -0.15912,
16161		0.37208, 0.49744, 0.35144, 0.06582,
16162		-0.11501, -0.14037,
16163		0.10352, -0.00768,
16164		0.04826, -0.00423,
16165		0.19850, 0.00310,
16166		-0.01780, 0.01350,
16167		-0.61106, -0.20525, -0.04388, 0.52143,
16168		0.19300, -0.21446,
16169		-0.05749, -0.04776,
16170		0.12877, -0.10908,
16171		0.39821, 0.00627, 34.03956, 0.04392,
16172		-0.34455, 0.22015, 0.11743, 0.04638,
16173		0.20723, -0.30447, 0.10976, -0.01008,
16174		-0.20778, -0.21822,
16175		0.24939, 0.27976, 0.79790, 0.20200
16176	],
16177	arg_tbl: [
16178		0, 3,
16179		2, 1, 7, -2, 8, 0,
16180		3, 3, 5, -8, 6, 3, 8, 0,
16181		2, 2, 7, -4, 8, 0,
16182		3, 1, 5, -3, 6, 3, 8, 0,
16183		2, 3, 7, -6, 8, 0,
16184		2, 4, 7, -8, 8, 0,
16185		3, 1, 6, -6, 7, 6, 8, 0,
16186		3, 1, 6, -5, 7, 4, 8, 0,
16187		3, 1, 6, -4, 7, 2, 8, 0,
16188		2, 1, 6, -3, 7, 0,
16189		3, 1, 6, -2, 7, -1, 8, 0,
16190		2, 5, 7, -9, 8, 1,
16191		2, 4, 7, -7, 8, 1,
16192		2, 3, 7, -5, 8, 1,
16193		2, 2, 7, -3, 8, 0,
16194		2, 1, 7, -1, 8, 1,
16195		1, 1, 8, 2,
16196		2, 1, 7, -3, 8, 0,
16197		2, 2, 7, -5, 8, 1,
16198		3, 1, 6, -6, 7, 5, 8, 0,
16199		3, 1, 6, -5, 7, 3, 8, 0,
16200		2, 5, 7, -8, 8, 0,
16201		2, 4, 7, -6, 8, 0,
16202		2, 3, 7, -4, 8, 0,
16203		2, 2, 7, -2, 8, 1,
16204		1, 1, 7, 0,
16205		1, 2, 8, 2,
16206		2, 1, 7, -4, 8, 0,
16207		2, 5, 7, -7, 8, 0,
16208		2, 4, 7, -5, 8, 0,
16209		2, 3, 7, -3, 8, 0,
16210		2, 2, 7, -1, 8, 0,
16211		2, 1, 7, 1, 8, 0,
16212		1, 3, 8, 1,
16213		2, 1, 6, -2, 8, 1,
16214		2, 5, 7, -6, 8, 0,
16215		2, 4, 7, -4, 8, 0,
16216		1, 4, 8, 1,
16217		3, 2, 5, -4, 6, -1, 8, 1,
16218		3, 1, 6, 1, 7, -3, 8, 0,
16219		2, 1, 6, -1, 8, 1,
16220		3, 1, 6, -1, 7, 1, 8, 0,
16221		3, 2, 5, -6, 6, 1, 8, 0,
16222		2, 5, 7, -5, 8, 1,
16223		1, 1, 6, 0,
16224		2, 6, 7, -6, 8, 0,
16225		2, 7, 7, -7, 8, 0,
16226		2, 2, 6, -2, 8, 0,
16227		3, 2, 5, -3, 6, -1, 8, 0,
16228		2, 2, 6, -1, 8, 1,
16229		2, 1, 5, -2, 8, 0,
16230		3, 3, 5, -5, 6, -1, 8, 0,
16231		2, 4, 7, 5, 8, 0,
16232		2, 1, 5, -1, 8, 1,
16233		3, 1, 5, -1, 7, 1, 8, 1,
16234		3, 1, 5, -5, 6, 1, 8, 1,
16235		1, 1, 5, 0,
16236		2, 2, 5, -1, 8, 1,
16237		-1
16238	]
16239};
16240
16241$ns.pluto = {
16242	maxargs: 9,
16243	max_harmonic: [0, 0, 0, 0, 2, 2, 9, 13, 13],
16244	max_power_of_t: 7,
16245	distance: 3.9539999999999999e+01,
16246	timescale: 3652500.0,
16247	trunclvl: 1.0,
16248	lon_tbl: [
16249		74986469.33577, 100898343.73690, 48199471.54076, 9520076.03177,
16250		690431.67340, -427355.12716, 52266623.77862, 860190.70714,
16251		-21.08511, -143.39295,
16252		-126.71124, 48.18528,
16253		-88.74508, 40.50942,
16254		51.29367, -10.24075,
16255		0.63094, 32.03258,
16256		-410.00781, 399.90234, -116.54319, 51.50329,
16257		116.84565, 687.76781, -13.38605, 182.70107,
16258		-1668.12226, -5162.22648, -585.68297, -2247.56041,
16259		-20.95875, -193.13703,
16260		-57.12097, -10.35058,
16261		-1778.01442, -6463.73779, -657.86093, -2713.44436,
16262		-41.32560, -211.82042,
16263		-107.16513, -36.58628,
16264		97929588.08231, -33582903.63417, 143382679.31770, -47411568.92345,
16265		79428827.73581, -24658834.87499, 19861233.17488, -5755585.62084,
16266		1995060.95931, -693507.08147, 135176.31467, 109360.38672,
16267		-8188.00598, -1680.95072, 71020.19608, -70785.39049,
16268		-24.56034, -20.34919,
16269		1618.45976, -2079.48538, 635.62954, -850.87068,
16270		44.95257, -64.04459,
16271		-18.61475, -1.77734,
16272		9.38079, 5.19958,
16273		17422.08783, -4872.53852, 10985.76629, -1137.68569,
16274		1771.28893, 288.93745, 40.22664, 37.90027,
16275		6.81361, -32.65868,
16276		16.97268, 11.76152,
16277		29.33024, -12.92289,
16278		-55.13187, -14.73791,
16279		7.52474, -102.05060,
16280		182.53144, -20.18960,
16281		-490237997.49400, 486646248.63360, -781277018.26430, 602300460.57290,
16282		-463787999.46420, 249529525.96100, -123964746.86420, 31353019.97807,
16283		-13353800.92159, -3463382.63269, -35469.17654, -1035343.45385,
16284		65076.64025, -38181.61312, -16473.33813, 3928.44674,
16285		188.60263, 1000.42530,
16286		-208376.39376, -700566.62363, 114839.84613, -342407.71113,
16287		39467.04812, -14553.84849,
16288		581895.26100, 1012499.16715, 406317.22416, 310804.78515,
16289		43625.07033, -4157.26545,
16290		-5930.13795, -2070.62413,
16291		3348.17582, -10871.23729,
16292		144609.18550, 60383.63650, 27912.02226, 15254.61228,
16293		-98561.37758, -67442.28158, -15573.63338, -19931.99773,
16294		24323.06905, -37473.32558, 2840.64042, -8911.23694,
16295		-19636.31898, 71725.21946, -12280.54554, 12251.00101,
16296		88626.52260, 5513.68450, 18506.41546, -6513.87434,
16297		-83350.14621, 44300.00743, -22075.37353, 3731.57531,
16298		-29167.76020, -21642.67384,
16299		56602666.72177, -22225578.01823, 50576897.80669, -50319847.79086,
16300		5689259.25622, -29585299.79697, -4249711.27661, -4490830.29568,
16301		-727678.08724, 366050.85631, 19183.62792, 55647.98226,
16302		1897.78091, -1091.03988, 432.38158, -138.62556,
16303		101.38743, 25.67379,
16304		320.20735, 362.16615, 85.06067, 54.02616,
16305		2.39460, 18.70004,
16306		-8.43353, 2.72100,
16307		-3.11205, -3.06201,
16308		136.31503, -28.33620, 48.68781, -18.45285,
16309		1.15302, -1.52360,
16310		-0.13706, -0.37489,
16311		0.08750, -0.14579,
16312		-0.07051, -0.06518,
16313		0.30237, -0.00448,
16314		4.83172, 6.83684,
16315		1752447.78043, -945086.75857, 2340978.12819, -1963675.42559,
16316		1254147.25257, -1274861.91191, 279459.60237, -263954.01378,
16317		11835.62290, -16344.44434, 9119.98960, -2390.44218,
16318		-23.67909, 86.73916, -642.78635, -1290.12208,
16319		-0.43345, -1.85348,
16320		0.03094, -0.01655,
16321		0.12380, 0.31834,
16322		5.54756, -1.63109, 1.10598, -0.17578,
16323		2.66994, -2.17573, 0.97360, -0.92226,
16324		-0.18533, -0.39747,
16325		0.45809, -0.65286,
16326		0.26129, 0.91922,
16327		0.81068, 0.11183,
16328		6.32182, 14.16786, 0.20872, 3.28489,
16329		-1.47458, -2.11724,
16330		1.70020, -1.99889,
16331		3.13003, 1.90638,
16332		-4483669.52795, -446454.90158, -6586256.67478, -671890.16779,
16333		-3620444.55554, -499672.41074, -855998.32655, -191073.94266,
16334		-73186.69110, -22649.38582, -2414.81729, -1294.40542,
16335		436.80907, 125.48109, -81.16877, 458.86508,
16336		-11.57414, -26.39114, -4.00801, -5.01054,
16337		-18.17569, 20.86879, -4.80965, 3.10535,
16338		-4.71122, 1.18169,
16339		74.75544, 649.21464, -26.55060, 272.35592,
16340		-8.06982, 16.86110,
16341		-26.54868, 26.75711,
16342		-35.82910, 38.51063,
16343		22.22814, 19.38336,
16344		-6.30462, 0.90602,
16345		0.62856, -0.34981,
16346		-0.10232, -0.00939,
16347		0.04439, -0.18875,
16348		0.16025, 0.11306,
16349		-0.06803, 0.06004,
16350		-91305.66728, 262370.61704, -194633.44577, 304838.17733,
16351		-124505.90904, 94111.75602, -22317.18255, 1575.23438,
16352		748.66316, -349.78711, 166.64450, -89.05045,
16353		120.76207, -100.26715,
16354		3.13806, 3.71747,
16355		-1.44731, -0.35235,
16356		-0.51660, -1.50621,
16357		2.81310, -3.93573, 1.20292, -0.36412,
16358		-0.03340, -0.00561,
16359		-5.29764, 26.02941, 1.91382, 3.30686,
16360		-3.35265, -3.20868,
16361		0.05807, -0.11885,
vendor: 5,258 bytes, lines 16362-16524
16362		-0.78588, 0.34807, -0.19038, 0.11295,
16363		-0.03642, -0.03794,
16364		0.00251, 0.03449,
16365		-0.08426, -0.00310,
16366		0.05297, -0.09278,
16367		0.10941, 0.00099,
16368		-228688.56632, 312567.73069, -331458.31119, 328200.19460,
16369		-143760.57524, 104182.01134, -17313.30132, 12591.15513,
16370		-440.32735, -105.67674, 104.35854, -852.84590,
16371		0.95527, 0.30212, -54.63983, 4.06948,
16372		0.07545, -0.13429,
16373		16.21005, 29.24658, 9.23410, 50.48867,
16374		30.55641, 12.76809, 0.11781, 0.70929,
16375		-0.04100, 13.60859,
16376		0.04976, -0.02083,
16377		0.36279, 0.30130, -0.02129, 0.09363,
16378		-0.07812, 0.01570,
16379		-0.06217, -0.37181,
16380		-29348.55031, 43889.87672, -35765.41577, 33855.90070,
16381		-10128.69894, 4535.32148, 281.75353, -218.49194,
16382		-7.55224, 134.28640, 2.11319, -2.13109,
16383		15.71244, 11.07183,
16384		-0.05406, -0.23337,
16385		-1.28949, 1.34281,
16386		0.04212, -0.02080,
16387		0.08109, 0.14820,
16388		-6010.46564, 3639.41780, -5973.16000, 1381.66999,
16389		-1177.36865, -501.06937, 166.14792, -103.36431,
16390		14.92766, 4.12877, -2.20893, -6.32033,
16391		-0.29038, -0.43172,
16392		-0.59341, 0.20477, -0.13143, -0.03150,
16393		0.10992, 0.01976,
16394		-0.00254, 0.02028,
16395		-0.30044, -0.44658, -0.03409, -0.10758,
16396		0.08349, 0.06153,
16397		-0.06055, 0.18249,
16398		-1.15341, -8.68699, -0.11348, -3.30688,
16399		1.08604, 1.04018,
16400		-0.46892, -0.69765, 0.21504, 0.01968,
16401		-0.00455, -0.01678,
16402		3.95643, -3.17191, 3.95220, -2.12670,
16403		0.99305, -0.16651,
16404		0.34839, -0.49162,
16405		0.85744, 0.20173, -0.00975, 0.20225,
16406		-0.02627, -0.02281,
16407		-0.18002, -0.01803,
16408		-0.06144, -0.21510,
16409		0.15935, -0.01251,
16410		-0.21378, 0.44806, -0.01174, 0.05779,
16411		0.07646, -0.19656, -0.04044, -0.02521,
16412		0.02996, 0.06169,
16413		0.16698, -0.04710, -0.06506, -0.02114,
16414		0.05500, 0.00276,
16415		0.08433, 0.03160,
16416		0.08193, 0.35773, 0.05454, 0.10718,
16417		-0.02823, -0.00839,
16418		0.54078, 0.49347, 0.09609, 0.11825,
16419		-0.16092, -0.11897,
16420		0.09059, 0.08254,
16421		0.16712, 0.05860,
16422		-0.09547, -0.03206,
16423		0.03876, 0.04719,
16424		-0.02345, 0.02240,
16425		-0.00609, -0.00649,
16426		0.03859, 0.00077,
16427		0.47819, 0.26196, 0.09780, 0.08104,
16428		-0.16919, 0.05042,
16429		-0.42652, 0.30810,
16430		-0.03409, -0.51452,
16431		-0.23120, -0.01380,
16432		-0.01157, -0.00143,
16433		-0.00512, -0.01628,
16434		-0.00189, 0.00183,
16435		-0.01427, -0.02861,
16436		0.00618, -0.00015,
16437		0.13087, 0.13870,
16438		0.15158, -0.21056,
16439		-3.94829, -1.06028, -1.36602, 0.77954,
16440		0.08709, -0.03118,
16441		-44.74949, 91.17393, 8.78173, 45.84010,
16442		1.97560, -15.02849, -0.10755, -0.02884,
16443		3.38670, 0.30615,
16444		130.92778, -24.33209, 43.01636, -40.81327,
16445		-19.43900, 22.18162, -0.12691, 0.33795,
16446		-6.44790, -6.23145,
16447		0.00319, 0.01141,
16448		-0.03252, 0.03872,
16449		0.04467, 0.01614,
16450		-0.00382, -0.00019,
16451		0.05955, 0.01533,
16452		16.11371, 41.37565, 61.44963, 6.90615,
16453		1.41326, -0.73920, -0.03871, 24.81978,
16454		-0.10229, -0.32775, -0.05188, -0.05628,
16455		-2.33618, 2.39053,
16456		-0.00584, 0.00436,
16457		0.20903, 0.02220,
16458		-0.01738, -0.02765,
16459		-0.00217, 0.00613,
16460		-0.01772, 0.01903,
16461		0.07075, -0.00530,
16462		0.15234, -0.37760, -0.11641, -0.20102,
16463		-0.63675, 0.20525, -0.15783, 0.58945,
16464		-0.06243, 0.04306
16465	],
16466	lat_tbl: [
16467		-35042727.30412, -49049197.81293, -25374963.60995, -5761406.03035,
16468		-467370.57540, 14040.11453, 2329.15763, -13978.69390,
16469		45.43441, 29.70305,
16470		32.33772, -38.34012,
16471		26.43575, -28.76136,
16472		-18.59040, 12.64837,
16473		5.56569, -12.51581,
16474		248.37350, -64.44466, 54.02618, 4.39466,
16475		-269.35114, -290.63134, -48.03841, -52.83576,
16476		1508.94995, 1682.78967, 554.02336, 715.65819,
16477		34.37602, 58.44397,
16478		16.63685, 16.10176,
16479		-1069.51609, 2300.89166, -437.16796, 927.89245,
16480		-33.17679, 68.74495,
16481		18.72022, 32.97640,
16482		-34004958.12619, -17758805.77098, -48416073.75788, -24973405.03542,
16483		-25374996.23732, -13351084.97340, -5738294.54942, -3082092.63350,
16484		-519989.39256, -206440.89101, 44186.23548, -87639.22630,
16485		2506.47602, 2327.01164, -53878.47903, -19670.13471,
16486		2.66934, -3.86086,
16487		106.32427, 576.47944, 46.56388, 218.28339,
16488		4.35402, 15.04642,
16489		2.68717, -2.86835,
16490		0.81728, -2.34417,
16491		-1604.85823, -1999.24986, -631.47343, -1382.19156,
16492		-15.74075, -256.97077, 6.99648, -4.54257,
16493		2.63478, 1.88838,
16494		0.17628, -2.11518,
16495		-2.46735, -1.48743,
16496		1.83456, 4.68487,
16497		-7.10919, 3.57046,
16498		-5.36342, -7.70367,
16499		28395956.20816, -37176795.74372, 48969952.83034, -48145798.96248,
16500		31155823.23557, -21163596.14822, 9057634.38260, -3167688.51696,
16501		1167488.70078, 219103.97591, -19017.97335, 107849.61195,
16502		-3814.43474, 4405.92120, 5800.13959, 12619.88708,
16503		22.18168, -89.47801,
16504		52202.81929, 55119.44083, 5082.58907, 37955.06062,
16505		-3165.24355, 3316.67588,
16506		-113906.43970, -69279.41495, -57358.07767, -10176.17329,
16507		-4179.79867, 2495.99374,
16508		787.87180, -154.35591,
16509		-1148.62509, 1034.58199,
16510		-22194.95235, 3341.97949, -4578.53994, 108.30832,
16511		7444.39789, 16646.40725, 509.75430, 3808.92686,
16512		-179.85869, 7408.76716, 340.65366, 1504.64227,
16513		-3783.09873, -13505.60867, 875.74489, -3181.27898,
16514		-16220.93983, 8041.37347, -2631.07448, 2899.50781,
16515		18894.92095, -20072.81471, 5925.05701, -1947.91902,
16516		-6731.56601, 8014.52403,
16517		-987793.49463, 6491762.34471, -279205.73643, 6117135.96868,
16518		-140925.91402, 2259422.06929, 114028.61646, 605600.90358,
16519		91858.00186, 56506.65187, 8949.15777, -9782.67413,
16520		-394.66541, -105.19208, -76.54752, -32.59411,
16521		-19.28741, 10.40013,
16522		-107.64003, -7.36229, -22.25126, 4.05952,
16523		-3.74402, -2.79308,
16524		1.03337, -2.13968,
16525		1.53794, -0.02617,
16526		35.70756, 12.97733, 14.46213, 6.20518,
16527		1.79381, 1.65422,
16528		-0.31216, 0.29053,
16529		-0.03538, -0.01584,
16530		-0.08934, 0.00079,
16531		0.05539, -0.21591,
16532		2.86929, -2.24724,
16533		320797.07455, 93342.16556, -20903.39115, 79523.22083,
16534		-226588.37473, -121017.23944, -48472.25935, -74195.36778,
16535		-7962.48081, -4607.76339, -4597.33274, -7983.12541,
16536		-20.34500, 56.82999, -1038.19507, 619.69624,
16537		1.08907, -0.91278,
16538		-0.13391, 0.34956,
16539		-0.19982, -0.18296,
16540		-0.97688, 2.36806, -0.30127, 0.50980,
16541		0.96103, 1.96432, 0.43338, 0.87317,
16542		0.36997, -0.01583,
16543		-0.44692, -0.25159,
16544		-0.53525, 0.01154,
16545		-0.13231, 0.35562,
16546		3.88928, -4.02882, 1.06967, -0.56305,
16547		-0.45204, 0.77213,
16548		-0.82873, -0.25854,
16549		0.21136, -1.06696,
16550		458529.05491, 616790.47568, 698431.01349, 1124501.41713,
16551		300226.10339, 766533.33698, 26896.22954, 207880.75720,
16552		1116.29607, 21793.26153, -850.64044, 3528.95568,
16553		29.61278, -120.13367, 376.95131, 66.45758,
16554		-3.64868, 2.76062, -0.85352, 0.95115,
16555		5.35056, 2.52803, 0.90026, 0.76403,
16556		0.43191, 0.83605,
16557		125.81792, -39.65364, 50.14425, -5.75891,
16558		2.78555, 2.05055,
16559		-4.27266, -4.92428,
16560		6.78868, 5.73537,
16561		3.35229, -3.70143,
16562		0.08488, 1.07465,
16563		0.10227, 0.06074,
16564		0.00291, 0.01522,
16565		-0.02274, 0.00297,
16566		0.01095, -0.01856,
16567		-0.02862, 0.00178,
16568		143640.07486, 707.21331, 177163.08586, 53386.52697,
16569		56856.89297, 48268.74645, 1764.52814, 7711.76224,
16570		352.34159, -968.03169, -45.16568, -81.60481,
16571		-76.35993, -98.06932,
16572		-1.42185, 1.81425,
16573		-0.23427, 0.59023,
16574		0.57127, -0.36335,
16575		1.89975, 0.66890, 0.28797, 0.43592,
16576		-0.03769, 0.03273,
16577		-6.06571, -2.68515, -0.55315, 0.86977,
16578		1.53840, -0.59422,
16579		-0.05453, 0.02447,
16580		-0.12658, 0.22814, -0.01715, 0.08497,
16581		-0.01288, -0.00606,
16582		0.01547, -0.00692,
16583		0.01157, 0.02407,
16584		-0.03883, 0.00835,
16585		-0.01542, -0.04761,
16586		174386.39024, 158048.26273, 159192.81681, 220154.55148,
16587		33716.11953, 87537.86597, -116.90381, 7535.83928,
16588		-962.06994, -132.28837, -644.90482, -110.52332,
16589		3.42499, 3.74660, -0.94008, 41.55548,
16590		-0.03824, -0.05607,
16591		28.74787, -37.31399, 30.87853, -26.11940,
16592		10.79742, -5.97905, 1.01237, -0.04429,
16593		0.54402, 0.41905,
16594		-0.02440, -0.03991,
16595		-0.00347, -0.04362, -0.00347, -0.00469,
16596		-0.02707, 0.02761,
16597		-0.17773, -0.11789,
16598		26475.02580, 35363.04345, 19877.11475, 41430.35940,
16599		2948.09998, 12983.41406, 281.93744, 570.70054,
16600		147.83157, 16.00090, -1.62814, -8.30846,
16601		9.29131, -10.16496,
16602		-0.15799, 0.03843,
16603		1.44716, 0.46953,
16604		-0.02150, -0.02502,
16605		0.08861, -0.06690,
16606		2237.41551, 3739.08722, 753.74867, 3460.41553,
16607		-298.69226, 520.47031, -33.62615, -138.12767,
16608		3.61843, -8.29860, -4.56656, 0.79553,
16609		0.20041, -0.25771,
16610		-0.35233, -0.27913, -0.02799, -0.08328,
16611		-0.06889, -0.16853,
16612		0.01701, -0.00964,
16613		-0.37737, 0.18030, -0.08525, 0.01906,
16614		0.05236, -0.05155,
16615		0.11320, 0.05991,
16616		-5.66926, -0.54402, -2.08508, -0.39407,
16617		0.82155, -0.55975,
16618		0.39168, -0.25551, 0.00623, 0.16162,
16619		-0.02519, 0.02420,
16620		-1.23293, -3.19649, -0.60519, -2.79729,
16621		0.05362, -0.61569,
16622		-0.25638, -0.27033,
16623		-0.03987, 0.46623, -0.12070, 0.00643,
16624		0.00849, -0.00768,
16625		-0.03687, 0.10445,
16626		-0.13544, -0.00592,
16627		0.02078, 0.09172,
16628		0.15824, 0.15815, 0.02020, 0.00747,
16629		0.10919, 0.09553, 0.01953, -0.00135,
16630		0.04266, -0.00218,
16631		0.02182, -0.13742, -0.01249, 0.01724,
16632		-0.02200, 0.02975,
16633		-0.01401, 0.03416,
16634		-0.28873, 0.04235, -0.08137, 0.04223,
16635		-0.00326, 0.02144,
16636		-0.40423, 0.14281, -0.08256, 0.02142,
16637		0.08116, -0.03680,
16638		-0.02324, 0.07260,
16639		-0.06746, 0.11645,
16640		0.03233, -0.05997,
16641		-0.03101, 0.02197,
16642		-0.00896, -0.00491,
16643		0.00574, 0.00855,
16644		0.00052, 0.01209,
16645		-0.31828, 0.29955, -0.08133, 0.04318,
16646		0.06787, -0.08865,
16647		-0.13228, -0.06507,
16648		0.34008, 0.06417,
16649		-0.00177, -0.15116,
16650		-0.00553, -0.01950,
16651		0.01144, -0.00309,
16652		-0.00115, -0.00153,
16653		0.02063, -0.00791,
16654		-0.00314, 0.00493,
16655		-0.10614, 0.08338,
16656		0.08845, 0.20168,
16657		1.38955, -2.52285, -0.30475, -1.05787,
16658		0.00580, 0.06623,
16659		-44.33263, -47.70073, -29.80583, -8.77838,
16660		7.02948, 2.77221, 0.05248, -0.13702,
16661		-0.78176, 1.77489,
16662		-16.32831, 46.68457, 2.54516, 21.78145,
16663		-5.09080, -8.42611, -0.24419, -0.03315,
16664		2.80629, -1.12755,
16665		-0.00402, 0.00053,
16666		0.00024, -0.00043,
16667		0.00403, -0.00210,
16668		0.00603, 0.00411,
16669		-0.00260, 0.00416,
16670		2.29235, 3.05992, 2.36465, -0.58750,
16671		0.14030, 0.13523, 0.89998, 0.70156,
16672		-0.02188, 0.02003, -0.00533, 0.00447,
16673		2.96411, 1.30183,
16674		0.01422, 0.00624,
16675		-0.10737, -0.38316,
16676		-0.05968, 0.04379,
16677		0.01171, 0.01180,
16678		-0.00989, -0.01375,
16679		-0.00845, 0.03782,
16680		0.09484, 0.09909, 0.07640, -0.00898,
16681		-0.01076, 0.02760, 0.01630, 0.02198,
16682		0.05985, 0.04130
16683	],
16684	rad_tbl: [
16685		17990649.12487, 24806479.30874, 12690953.00645, 2892671.69562,
16686		249947.71316, -5138.71425, 1142.68629, 6075.25751,
16687		-34.76785, -19.72399,
16688		-15.81516, 30.47718,
16689		-11.73638, 21.87955,
16690		9.42107, -10.40957,
16691		-5.59670, 6.85778,
16692		-167.06735, -2.31999, -32.42575, -13.72714,
16693		130.16635, 117.97555, 31.33915, 39.64331,
16694		-1378.54934, -395.83244, -562.79856, -167.74359,
16695		-45.12476, -17.08986,
16696		-4.20576, -16.56724,
16697		1762.12089, -1148.86987, 736.55320, -423.09108,
16698		56.13621, -26.26674,
16699		9.77810, -38.05151,
16700		4702224.98754, 27254904.94363, 5306232.25993, 39518429.29982,
16701		1725110.05669, 21833263.27069, 46010.62605, 5425411.66252,
16702		17238.09865, 536771.62156, -61263.36051, 66270.70142,
16703		2084.66296, -1936.71208, 35898.49503, 34885.28549,
16704		1.93276, 10.66292,
16705		-665.11445, 3.70467, -265.68478, 16.16272,
16706		-19.45954, 2.32738,
16707		3.04237, 3.97339,
16708		-2.64312, 0.66308,
16709		-3207.68754, 3418.03720, -2342.62310, 1729.15030,
16710		-450.84643, 179.00943, -13.20367, -1.86087,
16711		-4.95659, 7.22347,
16712		-5.08890, -1.28891,
16713		-6.21713, 5.10551,
16714		13.97276, 0.44529,
16715		3.25177, 25.02775,
16716		-45.56672, 11.58470,
16717		124443355.55450, -100018293.41775, 190506421.77863, -118262753.40162,
16718		108199328.45091, -45247957.63323, 27272084.41143, -4125106.01144,
16719		2583469.66051, 1024678.12935, -22702.55109, 199269.51481,
16720		-15783.14789, 5564.52481, -427.22231, -6330.86079,
16721		-97.50757, -204.32241,
16722		-9060.54822, 156661.77631, -47791.83678, 59725.58975,
16723		-8807.74881, -92.38886,
16724		-28886.11572, -244419.59744, -53336.36915, -92232.16479,
16725		-8724.89354, -2446.76739,
16726		889.71335, 936.51108,
16727		494.80305, 2252.83602,
16728		-18326.60823, -25443.13554, -3130.86382, -5426.29135,
16729		23494.08846, 91.28882, 4664.14726, 1552.06143,
16730		-8090.43357, 2843.48366, -1445.73506, 1023.11482,
16731		11664.20863, -7020.08612, 3100.21504, -64.16577,
16732		-9724.97938, -12261.47155, -3008.08276, -1523.06301,
16733		6788.74046, 10708.27853, 343.09434, 1701.52760,
16734		14743.99857, -4781.96586,
16735		-15922236.41469, 1825172.51825, -14006084.36972, 10363332.64447,
16736		-979550.91360, 6542446.18797, 1160614.26915, 570804.88172,
16737		89912.68112, -171247.08757, -13899.52899, -6182.25841,
16738		-240.64725, 412.42581, -66.24510, 71.30726,
16739		-15.81125, -15.76899,
16740		-21.85515, -102.12717, -10.18287, -19.38527,
16741		1.43749, -3.87533,
16742		1.97109, 0.20138,
16743		0.32012, 1.02928,
16744		-40.22077, 20.80684, -15.69766, 9.63663,
16745		-1.26010, 0.56197,
16746		0.08592, 0.18540,
16747		-0.07303, 0.03897,
16748		0.01438, -0.08809,
16749		0.15479, 0.10354,
16750		0.19052, 2.08790,
16751		405480.24475, -607986.83623, 582811.58843, -915111.10396,
16752		258696.21023, -493391.09443, 23403.62628, -119503.67282,
16753		-4036.86957, -9766.17805, -663.93268, 2544.07799,
16754		40.36638, 76.26390, 246.67716, -13.93440,
16755		0.12403, 0.25378,
16756		0.14004, -0.08501,
16757		0.07904, 0.12731,
16758		1.02117, -1.34663, 0.25142, -0.26903,
16759		0.18135, -0.57683, -0.30092, -0.36121,
16760		-0.09623, 0.05873,
16761		-0.05803, 0.02869,
16762		-0.01194, 0.04983,
16763		0.04250, 0.04894,
16764		1.34245, 0.70137, 0.24217, 0.25912,
16765		-0.32759, -0.03575,
16766		0.06780, -0.41277,
16767		0.43865, 0.17857,
16768		-763933.02226, 465658.17048, -1082753.91241, 593319.68634,
16769		-553911.89340, 274748.95145, -122250.71547, 56608.95768,
16770		-9914.17300, 2988.43709, 707.94605, -765.01470,
16771		52.73260, -34.22263, -43.58300, -38.43647,
16772		-4.95939, -1.97173, -1.04406, -0.13072,
16773		-0.34281, 4.75202, -0.35513, 0.93597,
16774		-0.54380, 0.70536,
16775		84.83116, 102.93003, 26.34884, 48.57746,
16776		0.02853, 2.91676,
16777		-8.07116, 1.66613,
16778		-2.07908, 11.62592,
16779		6.64704, 0.98291,
16780		-1.19192, 0.93791,
16781		0.18822, 0.00900,
16782		-0.03181, -0.02000,
16783		0.02755, -0.01398,
16784		-0.03971, -0.03756,
16785		0.13454, -0.04193,
16786		-18672.98484, 28230.75834, -28371.58823, 26448.45214,
16787		-13352.09393, 7461.71279, -2609.33578, 726.50321,
16788		-309.72942, -86.71982, 12.48589, -9.69726,
16789		1.82185, 14.92220,
16790		-0.04748, 0.42510,
16791		-0.20047, 0.00154,
16792		0.00176, -0.26262,
16793		0.78218, -0.73243, 0.23694, -0.03132,
16794		-0.00290, -0.03678,
16795		14.03094, 4.25948, 0.79368, -0.78489,
16796		-2.30962, 2.31946,
16797		0.00158, -0.04125,
16798		-0.01387, 0.28503, 0.00892, 0.05154,
16799		0.00184, -0.01727,
16800		-0.00889, 0.03526,
16801		-0.00521, -0.02093,
16802		0.00200, 0.04872,
16803		-0.02163, 0.00578,
16804		20699.27413, -2175.57827, 31177.33085, 4572.02063,
16805		15486.28190, 8747.74091, 2455.51737, 3839.83609,
16806		51.31433, 507.91086, 15.90082, 44.75942,
16807		-0.98374, -2.64477, 2.52336, -3.09203,
16808		-0.08897, -0.00083,
16809		-15.91892, 0.72597, 14.04523, -3.16525,
16810		4.33379, -30.82980, 0.40462, -0.75845,
16811		13.14831, -0.02721,
16812		-0.01779, 0.00481,
16813		0.42365, -0.09048, 0.08653, 0.04391,
16814		0.00846, 0.01082,
16815		-0.04736, 0.02308,
16816		6282.21778, -4952.70286, 7886.57505, -5328.36122,
16817		3113.76826, -1696.84590, 330.70011, -155.51989,
16818		-18.31559, -3.90798, -3.11242, 1.87818,
16819		-1.05578, 0.11198,
16820		0.05077, -0.01571,
16821		2.41291, 2.40568,
16822		-0.01136, -0.00076,
16823		-0.00392, -0.02774,
16824		634.85065, -352.21937, 674.31665, -260.73473,
16825		199.16422, -28.44198, 6.54187, 6.44960,
16826		-1.55155, 0.29755, 0.16977, 0.17540,
16827		-0.02652, 0.03726,
16828		-0.00623, 0.11777, -0.00933, 0.02602,
16829		-0.13943, -0.24818,
16830		0.02876, -0.01463,
16831		-0.07166, 0.06747, -0.01578, 0.01628,
16832		0.00233, -0.00686,
16833		0.00431, -0.00276,
16834		0.21774, 0.09735, 0.07894, 0.07279,
16835		-0.01300, -0.00268,
16836		0.10824, 0.09435, 0.00720, 0.02111,
16837		-0.01960, 0.06154,
16838		0.56867, -0.07544, 0.18210, 0.06343,
16839		-0.00906, 0.01942,
16840		-0.00850, -0.00351,
16841		-0.06988, 0.01713, -0.01110, -0.00663,
16842		0.00196, -0.02064,
16843		-0.00008, 0.00043,
16844		0.00375, 0.00084,
16845		-0.00279, 0.00100,
16846		0.00271, -0.02017, -0.00074, -0.00357,
16847		0.03793, -0.10108, -0.01083, -0.03952,
16848		0.00030, 0.00012,
16849		0.01576, 0.01142, 0.00351, 0.00277,
16850		0.01409, -0.00774,
16851		-0.00065, 0.01895,
16852		0.07350, -0.02519, 0.01528, -0.01057,
16853		-0.00099, -0.00295,
16854		0.21347, -0.17458, 0.04940, -0.02757,
16855		-0.06243, 0.05203,
16856		0.01055, -0.00109,
16857		0.00003, -0.04201,
16858		-0.00263, 0.02387,
16859		0.00886, -0.01168,
16860		0.00479, 0.00204,
16861		-0.00239, 0.00022,
16862		-0.00223, -0.02029,
16863		-0.14130, -0.15237, -0.01827, -0.04877,
16864		0.12104, 0.06796,
16865		0.16379, 0.31892,
16866		-0.15605, 0.07048,
16867		-0.00700, 0.07481,
16868		-0.00370, -0.00142,
16869		-0.00446, 0.00329,
16870		-0.00018, 0.00117,
16871		-0.00910, 0.00510,
16872		-0.00055, -0.00114,
16873		0.04131, -0.04013,
16874		-0.13238, 0.02680,
16875		-0.10369, 1.38709, 0.35515, 0.41437,
16876		-0.01327, -0.02692,
16877		38.02603, 13.38166, 15.33389, -7.40145,
16878		-8.55293, -0.13185, -0.03316, 0.13016,
16879		0.04428, -1.60953,
16880		-12.87829, -76.97922, -23.96039, -22.45636,
16881		14.83309, 14.09854, 0.24252, 0.13850,
16882		-4.16582, 4.08846,
16883		0.00751, -0.00051,
16884		0.03456, 0.02900,
16885		0.01625, -0.04660,
16886		0.01390, -0.00530,
16887		0.01665, -0.04571,
16888		40.90768, -14.11641, 7.46071, -58.07356,
16889		-0.27859, -1.33816, 23.76074, -0.03124,
16890		-0.27860, 0.13654, -0.04800, 0.05375,
16891		4.38091, 4.39337,
16892		0.02233, 0.00514,
16893		-0.25616, -0.54439,
16894		-0.05155, 0.11553,
16895		0.02944, -0.00818,
16896		0.00570, 0.00119,
16897		-0.00733, -0.02700,
16898		-0.23759, -0.08712, -0.12433, 0.07397,
16899		0.20629, 0.60251, 0.56512, 0.14790,
16900		0.07778, 0.11614
16901	],
16902	arg_tbl: [
16903		0, 7,
16904		2, 3, 7, -9, 9, 0,
16905		2, 4, 7, -12, 9, 0,
16906		2, 4, 7, -8, 8, 0,
16907		3, -4, 7, 5, 8, 4, 9, 0,
16908		3, 3, 7, -5, 8, -1, 9, 0,
16909		2, 1, 6, -8, 9, 1,
16910		2, 3, 8, -5, 9, 1,
16911		2, 1, 6, -9, 9, 2,
16912		3, 6, 7, -6, 8, -8, 9, 0,
16913		3, 4, 7, -10, 8, 4, 9, 2,
16914		2, 3, 7, -8, 9, 0,
16915		1, 1, 9, 7,
16916		2, 3, 7, -10, 9, 0,
16917		3, 4, 7, -10, 8, 2, 9, 2,
16918		3, 5, 7, -12, 8, 2, 9, 0,
16919		2, 1, 6, -7, 9, 0,
16920		1, 1, 8, 3,
16921		2, 1, 6, -10, 9, 0,
16922		3, 6, 7, -12, 8, 2, 9, 0,
16923		3, 5, 7, -10, 8, 2, 9, 0,
16924		2, 5, 7, -13, 9, 0,
16925		2, 4, 7, -10, 9, 0,
16926		2, 3, 7, -7, 9, 0,
16927		1, 2, 9, 7,
16928		2, 3, 7, -11, 9, 0,
16929		3, 4, 7, -9, 8, 4, 9, 2,
16930		3, 3, 7, -5, 8, 1, 9, 2,
16931		2, 1, 6, -6, 9, 0,
16932		2, 7, 8, -13, 9, 0,
16933		2, 3, 8, -2, 9, 1,
16934		3, 1, 7, -5, 8, 2, 9, 1,
16935		3, 6, 7, -12, 8, 3, 9, 1,
16936		2, 5, 7, -12, 9, 1,
16937		2, 4, 7, -9, 9, 1,
16938		2, 2, 7, -3, 9, 1,
16939		1, 1, 7, 0,
16940		1, 3, 9, 5,
16941		2, 3, 7, -12, 9, 1,
16942		3, 5, 7, -9, 8, 2, 9, 0,
16943		3, 4, 7, -7, 8, 2, 9, 1,
16944		3, 3, 7, -5, 8, 2, 9, 0,
16945		3, 2, 7, -5, 8, 5, 9, 0,
16946		2, 1, 6, -5, 9, 0,
16947		2, 3, 8, -1, 9, 2,
16948		2, 1, 6, -12, 9, 0,
16949		3, 2, 7, -7, 8, 1, 9, 0,
16950		2, 5, 7, -11, 9, 0,
16951		2, 4, 7, -8, 9, 0,
16952		2, 2, 7, -2, 9, 0,
16953		1, 4, 9, 7,
16954		3, 2, 7, -8, 8, 2, 9, 0,
16955		3, 5, 7, -9, 8, 3, 9, 0,
16956		3, 4, 7, -9, 8, 6, 9, 0,
16957		3, 3, 7, -5, 8, 3, 9, 1,
16958		2, 2, 7, -1, 8, 1,
16959		2, 3, 8, -9, 9, 0,
16960		2, 9, 8, -9, 9, 0,
16961		2, 1, 6, -13, 9, 0,
16962		3, 2, 7, -5, 8, -3, 9, 0,
16963		2, 6, 7, -13, 9, 1,
16964		2, 5, 7, -10, 9, 0,
16965		2, 4, 7, -7, 9, 0,
16966		2, 3, 7, -4, 9, 0,
16967		1, 5, 9, 7,
16968		3, 6, 7, -9, 8, 1, 9, 1,
16969		3, 4, 7, -5, 8, 1, 9, 1,
16970		3, 3, 7, -3, 8, 1, 9, 0,
16971		2, 1, 6, -3, 9, 2,
16972		2, 3, 8, -10, 9, 0,
16973		2, 1, 8, 4, 9, 0,
16974		2, 5, 8, -2, 9, 0,
16975		2, 11, 8, -11, 9, 0,
16976		3, 1, 7, -9, 8, 5, 9, 0,
16977		2, 6, 7, -12, 9, 0,
16978		2, 5, 7, -9, 9, 0,
16979		2, 4, 7, -6, 9, 0,
16980		2, 3, 7, -3, 9, 0,
16981		1, 6, 9, 6,
16982		2, 2, 7, -12, 9, 0,
16983		3, 6, 7, -9, 8, 2, 9, 0,
16984		3, 3, 7, -12, 8, 3, 9, 0,
16985		3, 4, 7, -10, 8, -3, 9, 1,
16986		3, 3, 7, -3, 8, 2, 9, 0,
16987		2, 1, 6, -2, 9, 2,
16988		2, 1, 8, 5, 9, 0,
16989		2, 13, 8, -13, 9, 1,
16990		3, 2, 7, -9, 8, 1, 9, 0,
16991		2, 6, 7, -11, 9, 0,
16992		2, 5, 7, -8, 9, 0,
16993		2, 4, 7, -5, 9, 0,
16994		2, 3, 7, -2, 9, 0,
16995		1, 7, 9, 7,
16996		3, 6, 7, -9, 8, 3, 9, 0,
16997		2, 1, 6, -1, 9, 4,
16998		2, 3, 8, 3, 9, 0,
16999		2, 7, 7, -13, 9, 1,
17000		2, 3, 7, -1, 9, 0,
17001		2, 2, 7, 2, 9, 0,
17002		1, 8, 9, 6,
17003		3, 7, 7, -9, 8, 1, 9, 0,
17004		1, 1, 6, 0,
17005		1, 3, 7, 0,
17006		2, 2, 7, 3, 9, 0,
17007		1, 9, 9, 5,
17008		3, 1, 7, -10, 8, 3, 9, 0,
17009		3, 2, 7, -12, 8, 3, 9, 1,
17010		2, 1, 6, 1, 9, 0,
17011		3, 1, 7, -1, 8, 8, 9, 0,
17012		2, 3, 7, 1, 9, 1,
17013		2, 2, 7, 4, 9, 0,
17014		2, 1, 7, 7, 9, 0,
17015		2, 4, 8, 4, 9, 1,
17016		2, 12, 8, -8, 9, 0,
17017		3, 1, 7, -10, 8, 2, 9, 1,
17018		2, 1, 6, 2, 9, 0,
17019		1, 11, 9, 2,
17020		2, 12, 8, -7, 9, 0,
17021		3, 1, 7, -10, 8, 1, 9, 1,
17022		1, 4, 7, 0,
17023		1, 12, 9, 0,
17024		2, 6, 8, 3, 9, 0,
17025		3, 1, 7, -2, 8, -12, 9, 0,
17026		3, 7, 7, -7, 8, 2, 9, 1,
17027		2, 2, 6, -4, 9, 1,
17028		1, 13, 9, 0,
17029		2, 10, 8, -2, 9, 1,
17030		2, 4, 7, 2, 9, 0,
17031		2, 2, 6, -3, 9, 0,
17032		2, 2, 7, 8, 9, 1,
17033		2, 8, 8, 2, 9, 0,
17034		1, 5, 7, 1,
17035		2, 4, 7, 3, 9, 0,
17036		2, 3, 7, 6, 9, 0,
17037		2, 1, 5, -6, 9, 0,
17038		3, 2, 7, 8, 8, -3, 9, 0,
17039		3, 1, 7, 6, 8, 3, 9, 0,
17040		2, 6, 8, 6, 9, 0,
17041		3, 8, 7, -7, 8, 2, 9, 0,
17042		2, 9, 7, -11, 9, 0,
17043		2, 5, 7, 1, 9, 1,
17044		2, 4, 7, 4, 9, 0,
17045		2, 2, 6, -1, 9, 0,
17046		3, 2, 6, -1, 7, 2, 9, 0,
17047		2, 2, 7, 10, 9, 0,
17048		2, 1, 7, 13, 9, 0,
17049		2, 8, 7, -7, 9, 0,
17050		2, 7, 7, -4, 9, 0,
17051		2, 6, 7, -1, 9, 0,
17052		2, 5, 7, 3, 9, 0,
17053		2, 4, 7, 5, 9, 0,
17054		1, 2, 6, 0,
17055		2, 1, 5, -4, 9, 1,
17056		3, 1, 6, 9, 8, -5, 9, 0,
17057		2, 1, 5, -3, 9, 4,
17058		2, 1, 5, -2, 9, 4,
17059		3, 9, 7, -9, 8, 6, 9, 0,
17060		2, 8, 7, -4, 9, 0,
17061		2, 7, 7, -1, 9, 0,
17062		2, 1, 6, 3, 9, 0,
17063		2, 2, 6, 3, 9, 0,
17064		2, 1, 5, -1, 9, 3,
17065		3, 6, 7, -3, 8, 7, 9, 1,
17066		1, 1, 5, 0,
17067		2, 2, 6, 5, 9, 0,
17068		2, 1, 5, 1, 9, 0,
17069		2, 1, 5, 2, 9, 0,
17070		2, 1, 5, 3, 9, 0,
17071		2, 2, 5, -4, 9, 0,
17072		2, 2, 5, -3, 9, 0,
17073		2, 2, 5, -2, 9, 1,
17074		2, 2, 5, -1, 9, 1,
17075		1, 2, 5, 0,
17076		-1
17077	]
17078};
17079
17080$e = ephemeris;
17081
17082$copy = $e.copy;
17083$is = $e.is;
17084$make = $e.make;
17085$def = $e.define;
17086$assert = $e.assert;
17087$moshier = $e.astronomy.moshier;
17088$const = $e.astronomy.moshier.constant;
17089$processor = $moshier.processor;
17090$julian = $moshier.julian;
17091$util = $moshier.util;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.