00001 
00002 
00003 
00004 
00005 
00006 #include "f2c.h"
00007 
00008 
00009 
00010 extern struct {
00011     real xpgmin, ypgmin, xpgmax, ypgmax, xclbot, yclbot, xcltop, ycltop, xbot,
00012              ybot, xtop, ytop, xmin, ymin, xmax, ymax;
00013     integer ixcoor, iycoor;
00014     real alphxx, betaxx, alphyy, betayy, tmajx, tminx, tmajy, tminy;
00015     integer majrx, minrx, majry, minry, isizx, isizy;
00016     real xphold, yphold;
00017 } zzzplt_;
00018 
00019 #define zzzplt_1 zzzplt_
00020 
00021 extern struct {
00022     real xphmax, yphmax;
00023     integer ixpmax, iypmax;
00024     real xpscal, ypscal;
00025     integer iflip, nplotr;
00026     char cfile[64];
00027 } zzpltr_;
00028 
00029 #define zzpltr_1 zzpltr_
00030 
00031 
00032 
00033 
00034  int pwritf_(real *x, real *y, char *ch, integer *nch, 
00035         integer *isiz, integer *ior, integer *icent, ftnlen ch_len)
00036 {
00037     
00038     integer i__1, i__2;
00039     real r__1, r__2;
00040 
00041     
00042     static real xold, yold, size, xorg, yorg;
00043     static integer lstr[69999], nstr;
00044     static real xstr[69999], ystr[69999];
00045     static integer i__;
00046     static char chloc[6666];
00047     static integer nchar;
00048     extern  int color_(integer *);
00049     static integer isize;
00050     static real ct;
00051     static integer nchloc;
00052     static real st, xr, yr, xx, yy;
00053     extern integer lastnb_(char *, ftnlen);
00054     extern  int zzline_(real *, real *, real *, real *), 
00055             zzconv_(char *, integer *, char *, integer *, ftnlen, ftnlen), 
00056             zzphys_(real *, real *), zzstro_(char *, integer *, integer *, 
00057             real *, real *, integer *, ftnlen);
00058     static real orr;
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073     isize = *isiz;
00074     if (isize <= 0) {
00075         isize = 8;
00076     } else if (isize == 1) {
00077         isize = 12;
00078     } else if (isize == 2) {
00079         isize = 16;
00080     } else if (isize == 3) {
00081         isize = 24;
00082     }
00083 
00084     size = isize * .001f * (zzzplt_1.xpgmax - zzzplt_1.xpgmin);
00085 
00086 
00087 
00088     orr = *ior * .017453292f;
00089     ct = size * cos(orr);
00090     st = size * sin(orr);
00091 
00092 
00093 
00094     xx = *x;
00095     yy = *y;
00096     if (*nch >= 0) {
00097         zzphys_(&xx, &yy);
00098     }
00099 
00100 
00101 
00102 
00103     nchar = abs(*nch);
00104     if (nchar == 999) {
00105         i__1 = nchar;
00106         for (i__ = 1; i__ <= i__1; ++i__) {
00107             if (*(unsigned char *)&ch[i__ - 1] == '\0') {
00108                 goto L20;
00109             }
00110 
00111         }
00112 L20:
00113         nchar = i__ - 1;
00114     } else if (nchar == 0) {
00115         nchar = lastnb_(ch, ch_len);
00116     }
00117 
00118 
00119 
00120     zzconv_(ch, &nchar, chloc, &nchloc, ch_len, 6666L);
00121     zzstro_(chloc, &nchloc, &nstr, xstr, ystr, lstr, 6666L);
00122     if (nstr <= 0) {
00123         return 0;
00124     }
00125 
00126 
00127 
00128     zzzplt_1.xbot = xstr[0];
00129     zzzplt_1.ybot = ystr[0];
00130     zzzplt_1.xtop = zzzplt_1.xbot;
00131     zzzplt_1.ytop = zzzplt_1.ybot;
00132     i__1 = nstr;
00133     for (i__ = 2; i__ <= i__1; ++i__) {
00134 
00135         r__1 = zzzplt_1.xbot, r__2 = xstr[i__ - 1];
00136         zzzplt_1.xbot = dmin(r__1,r__2);
00137 
00138         r__1 = zzzplt_1.xtop, r__2 = xstr[i__ - 1];
00139         zzzplt_1.xtop = dmax(r__1,r__2);
00140 
00141         r__1 = zzzplt_1.ybot, r__2 = ystr[i__ - 1];
00142         zzzplt_1.ybot = dmin(r__1,r__2);
00143 
00144         r__1 = zzzplt_1.ytop, r__2 = ystr[i__ - 1];
00145         zzzplt_1.ytop = dmax(r__1,r__2);
00146 
00147     }
00148 
00149 
00150 
00151 
00152     if (*icent == -1) {
00153         xorg = zzzplt_1.xbot;
00154         yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00155     } else if (*icent == 0) {
00156         xorg = (zzzplt_1.xbot + zzzplt_1.xtop) * .5f;
00157         yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00158     } else if (*icent == 1) {
00159         xorg = zzzplt_1.xtop;
00160         yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00161     } else {
00162         xorg = zzzplt_1.xbot;
00163         yorg = zzzplt_1.ybot;
00164     }
00165 
00166 
00167 
00168     i__1 = nstr;
00169     for (i__ = 1; i__ <= i__1; ++i__) {
00170         if (lstr[i__ - 1] <= 1) {
00171             xr = xx + ct * (xstr[i__ - 1] - xorg) - st * (ystr[i__ - 1] - 
00172                     yorg);
00173             yr = yy + st * (xstr[i__ - 1] - xorg) + ct * (ystr[i__ - 1] - 
00174                     yorg);
00175             if (lstr[i__ - 1] == 1) {
00176                 zzline_(&xold, &yold, &xr, &yr);
00177             }
00178             xold = xr;
00179             yold = yr;
00180         } else if (lstr[i__ - 1] > 100 && lstr[i__ - 1] <= 107) {
00181             i__2 = lstr[i__ - 1] - 100;
00182             color_(&i__2);
00183         }
00184 
00185     }
00186 
00187     zzzplt_1.xphold = xold;
00188     zzzplt_1.yphold = yold;
00189     return 0;
00190 } 
00191 
00192 
00193 
00194 
00195 integer lastnb_(char *cline, ftnlen cline_len)
00196 {
00197     
00198     integer ret_val;
00199 
00200     
00201     integer i_len(char *, ftnlen);
00202 
00203     
00204     static integer npos;
00205 
00206 
00207 
00208 
00209 
00210 
00211 
00212 
00213 
00214 
00215 
00216 
00217 
00218 
00219     npos = i_len(cline, cline_len);
00220 L100:
00221 
00222     if (npos <= 1) {
00223         goto L200;
00224     }
00225 
00226     if (*(unsigned char *)&cline[npos - 1] != ' ' && *(unsigned char *)&cline[
00227             npos - 1] != '\0') {
00228         goto L200;
00229     }
00230 
00231     --npos;
00232     goto L100;
00233 
00234 
00235 L200:
00236     ret_val = npos;
00237     return ret_val;
00238 } 
00239 
00240 
00241 
00242 
00243  int zzstro_(char *ch, integer *nch, integer *nstr, real *
00244         xstr, real *ystr, integer *lstr, ftnlen ch_len)
00245 {
00246     
00247 
00248     static integer noff[256] = { 3452,3452,3452,3452,3452,3452,3452,3452,3452,
00249             3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,
00250             3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3448,2598,2646,
00251             3307,3268,3138,3168,2641,2672,2691,3439,2790,2566,2787,2560,2669,
00252             2205,2243,2252,2294,2338,2348,2383,2429,2456,2514,2574,2585,2832,
00253             2820,2836,2611,3215,1,14,54,85,112,129,144,180,199,208,226,245,
00254             256,277,292,334,359,419,458,491,504,524,535,552,567,582,2710,3818,
00255             2719,3564,3597,2953,595,631,660,687,718,747,766,821,843,857,879,
00256             898,907,942,964,998,1029,1058,1077,1108,1122,1144,1155,1172,1187,
00257             1205,2728,2784,2752,3593,3452,2856,3033,2802,2807,3600,2980,2916,
00258             3615,2776,2780,3384,2795,2840,3316,3759,3783,0,0,0,0,0,0,0,0,0,0,
00259             0,0,0,0,0,0,2890,2655,3022,2971,2962,2944,3651,3064,2929,3666,
00260             3805,3812,3815,3430,2848,3683,3463,3468,3473,3479,3485,3498,3511,
00261             3524,3537,3554,2877,3715,3737,3359,2825,2903,3689,1,14,1218,1229,
00262             112,582,180,1240,199,226,1290,256,277,1301,292,1326,334,1341,491,
00263             1357,1386,552,1428,1463,3702,3449,3455,3450,3454,3451,3453,3456,
00264             1502,1539,1591,1616,1658,1681,1711,1740,1780,1794,1819,1839,1863,
00265             1883,1924,1954,1971,2000,2032,2045,2074,2112,2133,2164,3457,3458,
00266             3459,3460,3461,3462,3112 };
00267     static integer numstr[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
00268             1,1,1,1,1,1,1,1,1,1,1,1,13,9,9,39,30,47,5,19,19,9,5,8,3,6,3,38,9,
00269             42,44,10,35,46,27,58,46,11,13,4,5,4,30,53,13,40,31,27,17,15,36,19,
00270             9,18,19,11,21,15,42,25,60,39,33,13,20,11,17,15,15,13,9,3,9,29,3,9,
00271             36,29,27,31,29,19,55,22,14,22,19,9,35,22,34,31,29,19,31,14,22,11,
00272             17,15,18,13,24,3,24,4,1,21,31,5,13,15,42,13,36,4,4,46,7,8,43,24,
00273             22,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,13,14,11,9,9,9,15,48,15,
00274             17,7,3,3,9,8,6,5,5,6,6,13,13,13,13,17,10,13,22,22,25,7,13,13,13,
00275             40,11,11,17,13,19,50,9,19,11,21,15,25,42,15,25,16,13,29,42,15,35,
00276             39,13,1,1,1,1,1,1,1,37,52,25,42,23,30,29,40,14,25,20,24,20,41,30,
00277             17,29,32,13,29,38,21,31,41,1,1,1,1,1,1,26 };
00278     static struct {
00279         integer e_1[3820];
00280         } equiv_38 = { 8011, 23723, 9173, 25515, 7378, 25390, 6854, 25792, 
00281                 6586, 25408, 9024, 25408, 6858, 7371, 24619, 8405, 24619, 
00282                 7765, 26176, 25023, 24767, 24766, 24638, 24510, 24511, 24255, 
00283                 8266, 24895, 24767, 24766, 24638, 24510, 24511, 24383, 7232, 
00284                 25664, 25023, 24767, 24766, 24637, 24510, 24511, 24255, 23104,
00285                  9803, 24895, 24767, 24766, 24637, 24510, 24511, 24383, 7754, 
00286                 8904, 24765, 24646, 24509, 24386, 24257, 24384, 24255, 24382, 
00287                 24510, 24509, 24635, 24765, 24766, 24894, 25023, 24896, 25025,
00288                  24898, 24770, 7248, 24383, 24382, 24510, 24509, 24635, 24765,
00289                  24766, 24894, 24895, 8138, 7371, 24619, 8405, 24619, 7765, 
00290                 25920, 25023, 24894, 24766, 24765, 24635, 24509, 24510, 24382,
00291                  24255, 23360, 9557, 24895, 24894, 24766, 24765, 24635, 24509,
00292                  24510, 24382, 24383, 8010, 7371, 24619, 8405, 24619, 9039, 
00293                 24632, 6990, 26688, 24634, 24518, 6838, 25408, 6965, 26688, 
00294                 24646, 24506, 7242, 7371, 24619, 8405, 24619, 9039, 24632, 
00295                 6990, 26688, 24634, 24518, 6838, 25408, 6965, 25536, 8138, 
00296                 8904, 24765, 24646, 24509, 24386, 24257, 24384, 24255, 24382, 
00297                 24510, 24509, 24635, 24765, 24766, 24894, 25023, 24896, 25025,
00298                  24898, 7378, 24383, 24382, 24510, 24509, 24635, 24765, 24766,
00299                  24894, 24895, 9160, 24632, 8392, 24632, 7752, 25536, 6978, 
00300                 7371, 24619, 8405, 24619, 9813, 24619, 8405, 24619, 6101, 
00301                 25536, 9024, 25536, 6198, 26176, 6197, 25536, 9024, 25536, 
00302                 6986, 7371, 24619, 8405, 24619, 7765, 25536, 7339, 25536, 
00303                 6986, 8011, 24623, 24509, 24383, 24384, 24385, 24514, 24642, 
00304                 24769, 24767, 24511, 9041, 24623, 24509, 24511, 8149, 25536, 
00305                 6965, 7371, 24619, 8405, 24619, 9941, 22963, 8900, 25652, 
00306                 7116, 25652, 6229, 25536, 9024, 25408, 5803, 25536, 9024, 
00307                 25408, 6858, 7371, 24619, 8405, 24619, 7765, 25536, 7339, 
00308                 26560, 24646, 24506, 6986, 7371, 24619, 8405, 25390, 7378, 
00309                 25515, 9173, 23723, 9173, 24619, 8405, 24619, 5973, 25152, 
00310                 9920, 25152, 5547, 25408, 9280, 25536, 6986, 7371, 24619, 
00311                 8405, 26157, 6737, 26157, 8277, 24619, 6229, 25152, 9408, 
00312                 25408, 5803, 25408, 8650, 8011, 24255, 24382, 24510, 24508, 
00313                 24637, 24764, 24766, 24894, 25023, 24896, 25025, 24898, 24770,
00314                  24772, 24643, 24516, 24514, 24386, 24257, 24384, 8256, 24383,
00315                  24382, 24510, 24508, 24637, 24764, 24766, 24894, 24895, 8512,
00316                  24897, 24898, 24770, 24772, 24643, 24516, 24514, 24386, 
00317                 24385, 7989, 7371, 24619, 8405, 24619, 7765, 26176, 25023, 
00318                 24767, 24766, 24637, 24510, 24511, 24255, 23616, 9291, 24895, 
00319                 24767, 24766, 24637, 24510, 24511, 24383, 6710, 25536, 8394, 
00320                 8011, 24255, 24382, 24510, 24508, 24637, 24764, 24766, 24894, 
00321                 25023, 24896, 25025, 24898, 24770, 24772, 24643, 24516, 24514,
00322                  24386, 24257, 24384, 8256, 24383, 24382, 24510, 24508, 24637,
00323                  24764, 24766, 24894, 24895, 8512, 24897, 24898, 24770, 24772,
00324                  24643, 24516, 24514, 24386, 24385, 7597, 24641, 24770, 24897,
00325                  24768, 24895, 24766, 24761, 24767, 24896, 24770, 24641, 7621,
00326                  24764, 24766, 24767, 24768, 24769, 7117, 7371, 24619, 8405, 
00327                 24619, 7765, 26176, 25023, 24767, 24766, 24638, 24510, 24511, 
00328                 24255, 23616, 9290, 24895, 24767, 24766, 24638, 24510, 24511, 
00329                 24383, 6709, 25536, 8523, 24895, 24767, 25017, 24767, 24768, 
00330                 24769, 7368, 24766, 24889, 24767, 24896, 24770, 24641, 6983, 
00331                 8776, 24771, 24634, 24515, 24386, 24257, 24256, 24255, 24382, 
00332                 24638, 24766, 24767, 24895, 25406, 24895, 24894, 6473, 24894, 
00333                 24895, 25406, 24895, 24767, 24766, 24636, 24382, 24255, 24256,
00334                  24257, 24386, 24515, 24634, 24771, 8775, 7883, 24619, 8405, 
00335                 24619, 7381, 24506, 24646, 26560, 24634, 24518, 6955, 25536, 
00336                 7498, 7371, 24625, 24765, 24894, 25023, 24896, 25025, 24898, 
00337                 24771, 24655, 6592, 24625, 24765, 24894, 24895, 7125, 25536, 
00338                 9152, 25408, 6965, 7115, 25515, 7509, 25390, 9170, 23723, 
00339                 7125, 25408, 9024, 25408, 6837, 7243, 25131, 7893, 25008, 
00340                 8784, 24107, 8789, 25131, 7893, 25008, 8784, 24107, 6357, 
00341                 25536, 9408, 25408, 6837, 7115, 26283, 6741, 26283, 8277, 
00342                 22827, 8021, 25408, 9024, 25408, 5931, 25408, 9024, 25408, 
00343                 6858, 7115, 25525, 24630, 7509, 25525, 24630, 9173, 23733, 
00344                 6987, 25408, 9152, 25408, 6571, 25536, 7626, 8779, 22955, 
00345                 10069, 22955, 8277, 24506, 24646, 26432, 6443, 26432, 24646, 
00346                 24506, 7242, 7362, 24639, 24512, 24641, 24769, 24897, 25152, 
00347                 24895, 24767, 24766, 24633, 24766, 24767, 7884, 24631, 24766, 
00348                 24895, 24768, 7754, 24511, 23871, 24255, 24510, 24638, 24766, 
00349                 25023, 25024, 24897, 24898, 7365, 24383, 24510, 24638, 24766, 
00350                 24895, 8394, 7371, 24619, 8405, 24619, 8267, 24898, 24897, 
00351                 24896, 25023, 24894, 24765, 24638, 24509, 24382, 24255, 24384,
00352                  24385, 24386, 9035, 24895, 24894, 24765, 24638, 24509, 24382,
00353                  24383, 6997, 25152, 8629, 8641, 24511, 24767, 24769, 24641, 
00354                 24386, 24385, 24256, 24255, 24382, 24509, 24638, 24765, 24894,
00355                  25023, 24896, 25025, 24898, 7371, 24383, 24382, 24509, 24638,
00356                  24765, 24894, 24895, 8010, 8651, 24619, 8405, 24619, 8139, 
00357                 24386, 24385, 24384, 24255, 24382, 24509, 24638, 24765, 24894,
00358                  25023, 24896, 24897, 24898, 7499, 24383, 24382, 24509, 24638,
00359                  24765, 24894, 24895, 8661, 25152, 8107, 25152, 6986, 7230, 
00360                 26176, 24642, 24514, 24513, 24385, 24256, 24255, 24382, 24509,
00361                  24638, 24765, 24894, 25023, 24896, 25025, 24898, 8133, 24643,
00362                  24514, 7617, 24383, 24382, 24509, 24638, 24765, 24894, 24895,
00363                  8010, 8010, 24511, 24767, 24769, 24641, 24513, 24384, 24383, 
00364                 24510, 24622, 8661, 24511, 24510, 24622, 7758, 25664, 7218, 
00365                 25536, 7242, 7748, 24383, 24511, 24510, 24638, 24766, 24767, 
00366                 24895, 24896, 24897, 24769, 24770, 24642, 24514, 24513, 24385,
00367                  24384, 7999, 24510, 24636, 24766, 9024, 24770, 24644, 24514, 
00368                 8383, 24769, 24897, 24639, 24384, 7097, 24511, 24510, 24639, 
00369                 24766, 25023, 25280, 25023, 24767, 6597, 24767, 25023, 25280, 
00370                 25023, 24766, 24639, 24510, 24255, 23872, 24257, 24514, 24641,
00371                  24770, 25025, 8394, 7371, 24619, 8405, 24619, 8267, 24898, 
00372                 25025, 24896, 25023, 24766, 24629, 7758, 24895, 24766, 24629, 
00373                 6485, 25152, 7723, 25536, 8768, 25536, 6986, 7371, 24511, 
00374                 24767, 24769, 24513, 8249, 24626, 8398, 24626, 7758, 25152, 
00375                 7730, 25536, 6986, 7499, 24511, 24767, 24769, 24513, 8377, 
00376                 24622, 24510, 24383, 24384, 24513, 24641, 24769, 24767, 24511,
00377                  8788, 24622, 24510, 24511, 8149, 25152, 7228, 7371, 24619, 
00378                 8405, 24619, 9550, 23350, 8900, 25400, 7368, 25400, 6485, 
00379                 25152, 9145, 25408, 6066, 25536, 8768, 25408, 6986, 7371, 
00380                 24619, 8405, 24619, 7765, 25152, 7723, 25536, 6986, 7364, 
00381                 24626, 8398, 24626, 8267, 24898, 25025, 24896, 25023, 24766, 
00382                 24629, 7758, 24895, 24766, 24629, 8395, 24898, 25025, 24896, 
00383                 25023, 24766, 24629, 7758, 24895, 24766, 24629, 5070, 25152, 
00384                 7730, 25536, 8768, 25536, 8768, 25536, 6986, 7364, 24626, 
00385                 8398, 24626, 8267, 24898, 25025, 24896, 25023, 24766, 24629, 
00386                 7758, 24895, 24766, 24629, 6478, 25152, 7730, 25536, 8768, 
00387                 25536, 6986, 7876, 24255, 24382, 24509, 24638, 24765, 24894, 
00388                 25023, 24896, 25025, 24898, 24771, 24642, 24515, 24386, 24257,
00389                  24384, 8256, 24383, 24382, 24509, 24638, 24765, 24894, 24895,
00390                  8512, 24897, 24898, 24771, 24642, 24515, 24386, 24385, 7868, 
00391                 7364, 24619, 8405, 24619, 8274, 24898, 24897, 24896, 25023, 
00392                 24894, 24765, 24638, 24509, 24382, 24255, 24384, 24385, 24386,
00393                  9035, 24895, 24894, 24765, 24638, 24509, 24382, 24383, 6990, 
00394                 25152, 7723, 25536, 8273, 8644, 24619, 8405, 24619, 8146, 
00395                 24386, 24385, 24384, 24255, 24382, 24509, 24638, 24765, 24894,
00396                  25023, 24896, 24897, 24898, 7499, 24383, 24382, 24509, 24638,
00397                  24765, 24894, 24895, 8633, 25536, 6865, 7364, 24626, 8398, 
00398                 24626, 8264, 24771, 24898, 24897, 25024, 24767, 24639, 24511, 
00399                 24513, 24769, 6721, 25152, 7730, 25536, 7754, 8386, 24770, 
00400                 24636, 24514, 24513, 24385, 24128, 24383, 24511, 24638, 24767,
00401                  24895, 25278, 24895, 24767, 6855, 24767, 24895, 25278, 24895,
00402                  24767, 24637, 24511, 24383, 24128, 24385, 24513, 24514, 
00403                 24636, 24770, 8392, 7371, 24623, 24765, 24895, 24896, 24897, 
00404                 24770, 7378, 24623, 24765, 24767, 7502, 25664, 7356, 7364, 
00405                 24629, 24766, 25023, 24896, 25025, 24898, 6987, 24629, 24766, 
00406                 24895, 9166, 24626, 8398, 24626, 6350, 25152, 9152, 25152, 
00407                 8114, 25152, 6986, 7108, 25394, 7630, 25268, 9036, 23858, 
00408                 7246, 25408, 8768, 25408, 6844, 7236, 25138, 7886, 25013, 
00409                 8779, 24114, 8782, 25138, 7886, 25013, 8779, 24114, 6350, 
00410                 25536, 9408, 25408, 6844, 7236, 26034, 6990, 26034, 8270, 
00411                 23090, 8014, 25408, 8768, 25408, 6194, 25408, 8768, 25408, 
00412                 6986, 7236, 25394, 7630, 25268, 9036, 23858, 24380, 24382, 
00413                 24383, 24512, 24513, 24769, 24767, 8020, 25408, 8768, 25408, 
00414                 6844, 8516, 23218, 9806, 23218, 8270, 24508, 24644, 26176, 
00415                 6706, 26176, 24644, 24508, 7242, 7371, 24619, 8405, 24619, 
00416                 7765, 26560, 24634, 24518, 6443, 25536, 7882, 8011, 23595, 
00417                 9301, 25643, 7250, 25518, 6465, 26432, 6335, 26688, 6986, 
00418                 8011, 24255, 24382, 24510, 24508, 24637, 24764, 24766, 24894, 
00419                 25023, 24896, 25025, 24898, 24770, 24772, 24643, 24516, 24514,
00420                  24386, 24257, 24384, 8256, 24383, 24382, 24510, 24508, 24637,
00421                  24764, 24766, 24894, 24895, 8512, 24897, 24898, 24770, 24772,
00422                  24643, 24516, 24514, 24386, 24385, 7737, 24633, 9031, 24633, 
00423                 7492, 25408, 7487, 25408, 7744, 8011, 23723, 9173, 25515, 
00424                 7378, 25390, 6336, 25408, 9024, 25408, 6858, 7244, 24507, 
00425                 10309, 24507, 6972, 24507, 9285, 24507, 6972, 24507, 10309, 
00426                 24507, 6485, 26432, 6463, 26432, 6968, 25408, 7487, 25408, 
00427                 6968, 26432, 6463, 26432, 7241, 7371, 24619, 8405, 24619, 
00428                 9813, 24619, 8405, 24619, 6101, 27200, 5675, 25536, 9024, 
00429                 25536, 6986, 7115, 25526, 23605, 8277, 25526, 7370, 26560, 
00430                 24762, 24390, 6572, 26304, 6463, 26560, 24774, 24378, 7370, 
00431                 6982, 24642, 24770, 24769, 24896, 24767, 24766, 24764, 24626, 
00432                 7378, 24898, 24896, 24894, 9406, 24642, 24514, 24513, 24384, 
00433                 24511, 24510, 24508, 24626, 9170, 24386, 24384, 24382, 7598, 
00434                 25536, 7498, 8011, 24619, 8405, 24619, 7888, 24255, 24511, 
00435                 24510, 24637, 24766, 24767, 25023, 25280, 25025, 24769, 24770,
00436                  24643, 24514, 24513, 24257, 24000, 8256, 24383, 24511, 24510,
00437                  24637, 24766, 24767, 24895, 8896, 24897, 24769, 24770, 24643,
00438                  24514, 24513, 24385, 7493, 25536, 7339, 25536, 7626, 8139, 
00439                 24619, 8405, 24619, 6990, 24769, 24895, 24764, 24766, 24767, 
00440                 24895, 7369, 24767, 24764, 24766, 24767, 25023, 25024, 25025, 
00441                 24769, 24770, 24772, 24769, 7351, 24897, 24769, 24770, 24772, 
00442                 24897, 24767, 6599, 25536, 7339, 25536, 7754, 7097, 24765, 
00443                 25152, 24388, 24388, 24515, 24644, 24771, 24898, 25025, 25152,
00444                  25023, 24894, 24765, 24636, 24509, 24380, 24380, 25152, 
00445                 24771, 6593, 24515, 24516, 24644, 24771, 24898, 24897, 8768, 
00446                 24895, 24894, 24765, 24636, 24508, 24509, 6717, 25024, 9280, 
00447                 25024, 7241, 8004, 24255, 24382, 24510, 24509, 24637, 24766, 
00448                 25023, 24896, 24897, 25027, 24899, 24900, 24771, 7104, 24383, 
00449                 24382, 24510, 24509, 24637, 24766, 24895, 8654, 24896, 24895, 
00450                 24766, 24888, 24766, 24767, 7374, 24767, 24766, 24888, 24766, 
00451                 24895, 24768, 7114, 8395, 24255, 24382, 24380, 24509, 24508, 
00452                 24506, 24504, 9692, 24383, 24382, 24380, 24509, 24508, 24506, 
00453                 24504, 9564, 24896, 24895, 24767, 24637, 24510, 24511, 24255, 
00454                 24128, 9033, 24894, 24637, 24510, 24511, 24383, 7744, 25151, 
00455                 24894, 24766, 24637, 24510, 24511, 24255, 24384, 24385, 24513,
00456                  24515, 8775, 25023, 24894, 24766, 24637, 24510, 24511, 24383,
00457                  8010, 6849, 24898, 24897, 24896, 24895, 24767, 24765, 24636, 
00458                 24508, 24248, 7635, 24897, 25152, 24895, 9282, 24509, 24510, 
00459                 23993, 24251, 24380, 9685, 24509, 24510, 24121, 7880, 8387, 
00460                 24385, 24384, 24255, 24381, 24509, 24637, 24766, 24767, 24895,
00461                  24896, 25025, 24899, 24771, 24643, 24514, 24133, 24514, 
00462                 24642, 24769, 24896, 24895, 24894, 7355, 24383, 24381, 24509, 
00463                 24636, 24766, 8767, 24897, 24899, 24771, 24644, 24514, 24387, 
00464                 24514, 24642, 24769, 24896, 25022, 7095, 8515, 24385, 24256, 
00465                 24255, 24382, 24509, 24637, 24765, 24767, 25023, 25024, 24897,
00466                  7757, 24383, 24382, 24509, 24637, 24765, 24767, 24895, 7751, 
00467                 25664, 7363, 8139, 24383, 24511, 24639, 24767, 25023, 25280, 
00468                 24641, 24255, 24126, 24254, 24253, 24509, 24638, 24766, 25022,
00469                  25022, 24766, 24638, 24511, 24384, 24513, 8917, 24125, 24253,
00470                  24509, 24638, 24766, 24894, 8138, 6848, 24770, 24898, 25024, 
00471                 24767, 24638, 24508, 24377, 8398, 24767, 24638, 24508, 24377, 
00472                 8647, 24900, 24898, 24897, 24896, 24895, 24767, 24637, 24507, 
00473                 24245, 8405, 24894, 24637, 24507, 24245, 7889, 8139, 24255, 
00474                 24381, 24510, 24509, 24507, 24636, 24766, 24895, 24896, 25025,
00475                  24899, 24770, 24771, 24773, 24644, 24514, 24385, 24384, 8256,
00476                  24383, 24381, 24510, 24509, 24507, 24636, 24766, 24767, 8512,
00477                  24897, 24899, 24770, 24771, 24773, 24644, 24514, 24513, 7222,
00478                  25792, 7359, 7492, 24377, 24508, 24638, 24767, 25024, 24898, 
00479                 24770, 7882, 24377, 24508, 24638, 24767, 7626, 7492, 24114, 
00480                 8910, 24114, 9934, 24767, 24768, 24513, 24384, 24383, 24124, 
00481                 24383, 24384, 8512, 24895, 24890, 24767, 7624, 24767, 24890, 
00482                 24767, 24896, 24897, 24899, 7110, 7115, 24896, 24895, 24767, 
00483                 24766, 25394, 24766, 24767, 6741, 24894, 24766, 25394, 24766, 
00484                 24895, 24768, 7246, 23602, 9294, 23730, 8906, 7620, 23851, 
00485                 9173, 23851, 8914, 24506, 24637, 24894, 24896, 24897, 24898, 
00486                 24899, 8520, 24245, 24638, 24767, 25024, 24898, 24770, 7882, 
00487                 24245, 24638, 24767, 7498, 7492, 24370, 8654, 24506, 24507, 
00488                 24509, 9934, 24508, 24380, 8776, 24509, 24510, 24381, 24382, 
00489                 24254, 24383, 24255, 8142, 25152, 8380, 8139, 24383, 24511, 
00490                 24639, 24767, 25023, 25024, 7872, 24127, 24383, 24510, 24638, 
00491                 24894, 25023, 25024, 8137, 24255, 24383, 24510, 24638, 24894, 
00492                 24895, 8256, 24127, 24383, 24510, 24638, 24894, 25278, 24767, 
00493                 24638, 24383, 24384, 8654, 24255, 24383, 24510, 24638, 24894, 
00494                 25150, 7629, 7876, 24255, 24381, 24509, 24637, 24766, 24767, 
00495                 24895, 24896, 25025, 24899, 24771, 24643, 24514, 24513, 24385,
00496                  24384, 8256, 24383, 24381, 24509, 24636, 24766, 8767, 24897, 
00497                 24899, 24771, 24644, 24514, 7357, 7875, 24115, 8781, 24243, 
00498                 9421, 24627, 8269, 24755, 6475, 24898, 25025, 26304, 5949, 
00499                 24897, 25025, 26304, 6973, 7227, 24765, 24767, 24895, 24896, 
00500                 25025, 24899, 24771, 24643, 24514, 24513, 24385, 24384, 24255,
00501                  24381, 24509, 24114, 9543, 24897, 24899, 24771, 24644, 24514,
00502                  7745, 24383, 24381, 24509, 24114, 9041, 9156, 23360, 24255, 
00503                 24381, 24509, 24637, 24766, 24767, 24895, 24896, 25025, 24899,
00504                  24771, 24643, 24514, 24513, 24385, 8000, 24383, 24381, 24509,
00505                  24636, 24766, 8767, 24897, 24899, 24771, 24644, 24514, 8256, 
00506                 25408, 6973, 8131, 24243, 8653, 24371, 7371, 24898, 25025, 
00507                 26048, 6205, 24897, 25025, 26048, 6973, 6848, 24770, 24898, 
00508                 25024, 24767, 24638, 24378, 24637, 24894, 8014, 24767, 24638, 
00509                 24378, 24637, 24767, 24895, 24768, 25025, 24898, 24899, 24771,
00510                  24643, 24514, 24511, 24767, 24765, 8125, 24774, 7102, 8523, 
00511                 23844, 9180, 23588, 8661, 24127, 24382, 24509, 24637, 24766, 
00512                 24894, 25023, 25024, 25153, 24898, 24771, 24643, 24514, 24386,
00513                  24257, 24256, 8256, 24255, 24382, 24509, 24637, 24766, 24894,
00514                  24895, 8640, 25025, 24898, 24771, 24643, 24514, 24386, 24385,
00515                  7868, 6980, 24896, 24895, 24766, 25265, 24766, 24767, 6997, 
00516                 24767, 24766, 25265, 24766, 24895, 24896, 8405, 24510, 24381, 
00517                 23349, 24381, 24510, 8913, 8651, 23844, 9180, 23588, 7377, 
00518                 24770, 24898, 25024, 24767, 24638, 24507, 24637, 24894, 25024,
00519                  24897, 25027, 24899, 6598, 24767, 24638, 24507, 24637, 24766,
00520                  24895, 25024, 24897, 24898, 24899, 24770, 24902, 6972, 7232, 
00521                 24898, 25025, 24513, 24383, 24381, 24509, 24637, 24765, 24767,
00522                  24896, 24897, 24899, 24771, 7101, 24766, 24767, 24896, 24897,
00523                  24898, 8259, 24637, 24765, 24767, 24896, 24897, 24899, 24771,
00524                  24643, 24515, 24513, 24511, 24895, 24766, 7098, 24766, 24767,
00525                  24896, 24897, 24898, 7238, 7883, 24255, 24381, 24507, 24637, 
00526                 24763, 24893, 25023, 24896, 25025, 24899, 24773, 24643, 24517,
00527                  24387, 24257, 24384, 8256, 24383, 24511, 24510, 24507, 24637,
00528                  24763, 24766, 24767, 24895, 8512, 24897, 24769, 24770, 24773,
00529                  24643, 24517, 24514, 24513, 24385, 7861, 7495, 24897, 25027, 
00530                 24619, 8148, 24620, 7744, 25792, 7370, 7239, 24767, 24511, 
00531                 24513, 24641, 24770, 24769, 25025, 25152, 25023, 24767, 24766,
00532                  24638, 24510, 24254, 23998, 24383, 24382, 24509, 24637, 9429,
00533                  24895, 24767, 24766, 24638, 24510, 24254, 24126, 7609, 24769,
00534                  24896, 25278, 25024, 24897, 24769, 6848, 25277, 25152, 24769,
00535                  24770, 24642, 7109, 7239, 24767, 24511, 24513, 24641, 24770, 
00536                 24769, 25025, 25152, 25023, 24766, 24637, 24510, 24255, 24256,
00537                  8649, 24895, 24766, 24637, 24510, 24383, 8256, 24895, 24894, 
00538                 24766, 24637, 24510, 24511, 24255, 24128, 24257, 24513, 24514,
00539                  24641, 24769, 24767, 24511, 9670, 24765, 24637, 24510, 24511,
00540                  24383, 7754, 8265, 24621, 8405, 24619, 8277, 23217, 26688, 
00541                 7098, 25536, 7242, 7371, 24374, 8256, 24898, 25025, 25024, 
00542                 25023, 24894, 24765, 24638, 24509, 24382, 24255, 24256, 24257,
00543                  24513, 24514, 24641, 24769, 24767, 24511, 9162, 24895, 24894,
00544                  24765, 24638, 24509, 24382, 24383, 7509, 25920, 6975, 25280, 
00545                 25281, 7349, 8648, 24511, 24767, 24769, 24641, 24514, 24385, 
00546                 24256, 24255, 24382, 24510, 24508, 24634, 24765, 24894, 25023,
00547                  24896, 25025, 24898, 24771, 24641, 24515, 24386, 24257, 
00548                 24512, 24255, 24382, 24509, 9038, 24383, 24382, 24510, 24508, 
00549                 24634, 24765, 24894, 24895, 8512, 24897, 24898, 24771, 24641, 
00550                 24515, 24386, 24385, 7869, 7115, 24634, 8258, 24770, 24898, 
00551                 24896, 25277, 24896, 24769, 24770, 6590, 24897, 24896, 25278, 
00552                 8771, 24637, 24509, 24123, 24510, 24509, 24635, 9039, 23995, 
00553                 24510, 24509, 24635, 8138, 7755, 24255, 24510, 24637, 24766, 
00554                 25023, 25152, 25025, 24770, 24643, 24514, 24257, 24128, 8256, 
00555                 24383, 24510, 24637, 24766, 24895, 8768, 24897, 24770, 24643, 
00556                 24514, 24385, 7735, 24255, 24511, 24510, 24636, 24766, 24767, 
00557                 25023, 25152, 25025, 24769, 24770, 24644, 24514, 24513, 24257,
00558                  7744, 24383, 24511, 24510, 24636, 24766, 24767, 24895, 8768, 
00559                 24897, 24769, 24770, 24644, 24514, 24513, 24385, 7742, 8772, 
00560                 24509, 24382, 24255, 24512, 24257, 24386, 24515, 24641, 24771,
00561                  24898, 25025, 24896, 25023, 24894, 24765, 24634, 24508, 
00562                 24510, 24382, 24255, 24256, 24385, 24514, 24641, 24769, 24767,
00563                  24511, 8773, 24385, 24386, 24515, 24641, 24771, 24898, 24897,
00564                  8512, 24895, 24894, 24765, 24634, 24508, 24510, 24382, 24383,
00565                  8010, 7352, 24511, 24767, 24769, 24513, 7368, 7350, 24513, 
00566                 24769, 24767, 24638, 24510, 24511, 7502, 7364, 24511, 24767, 
00567                 24769, 24513, 8244, 24511, 24767, 24769, 24513, 7368, 7364, 
00568                 24511, 24767, 24769, 24513, 8242, 24513, 24769, 24767, 24638, 
00569                 24510, 24511, 7502, 7371, 24510, 24756, 24780, 24514, 8254, 
00570                 24634, 8245, 24511, 24767, 24769, 24513, 7368, 7239, 24767, 
00571                 24511, 24513, 24641, 24770, 24769, 24897, 25024, 25023, 24767,
00572                  24766, 24638, 24510, 24511, 24126, 24637, 8398, 24895, 24767,
00573                  24766, 24638, 24510, 24382, 7991, 24511, 24767, 24769, 24513,
00574                  7880, 7243, 24505, 8519, 24377, 7356, 7243, 24505, 8519, 
00575                 24377, 9415, 24505, 8519, 24377, 7356, 7499, 24383, 24510, 
00576                 24638, 24766, 24895, 24896, 24897, 24770, 24642, 24514, 24385,
00577                  24384, 7733, 9295, 22304, 9297, 8143, 24382, 24381, 24380, 
00578                 24507, 24636, 24763, 24892, 24893, 24894, 8030, 24380, 24509, 
00579                 24507, 24636, 24763, 24765, 24892, 7375, 7119, 24894, 24893, 
00580                 24892, 24763, 24636, 24507, 24380, 24381, 24382, 8542, 24892, 
00581                 24765, 24763, 24636, 24507, 24509, 24380, 7887, 7247, 24608, 
00582                 8416, 24608, 8160, 25536, 7328, 25536, 7121, 7887, 24608, 
00583                 8416, 24608, 7392, 25536, 7328, 25536, 7249, 7887, 24253, 
00584                 24509, 24638, 24765, 25021, 8012, 24509, 24636, 24765, 8510, 
00585                 24254, 25022, 8256, 24253, 24509, 24638, 24765, 25021, 8012, 
00586                 24509, 24636, 24765, 7631, 7375, 25021, 24765, 24638, 24509, 
00587                 24253, 8524, 24765, 24636, 24509, 7998, 25022, 24254, 8256, 
00588                 25021, 24765, 24638, 24509, 24253, 8524, 24765, 24636, 24509, 
00589                 7631, 8015, 23728, 25520, 7249, 7247, 25520, 23728, 8017, 
00590                 7247, 24608, 7249, 7231, 26944, 7233, 8392, 24622, 7113, 
00591                 26944, 7233, 8263, 24623, 7241, 26688, 6199, 26688, 7242, 
00592                 7238, 26418, 8270, 22834, 9032, 8392, 24511, 24767, 24769, 
00593                 24513, 7095, 26944, 7097, 24511, 24767, 24769, 24513, 8392, 
00594                 7234, 26944, 5946, 26944, 7236, 9288, 22830, 8012, 26944, 
00595                 5946, 26944, 7236, 9288, 22583, 26679, 7242, 7240, 26679, 
00596                 22583, 9290, 9291, 22585, 26681, 6206, 26688, 6203, 26688, 
00597                 7242, 7243, 26681, 22585, 8254, 26688, 6203, 26688, 7242, 
00598                 9402, 24384, 24385, 24386, 24260, 24513, 24385, 24384, 24383, 
00599                 24510, 24638, 24766, 24895, 24896, 24897, 24769, 25028, 24898,
00600                  24897, 24896, 7228, 9287, 23744, 24127, 24383, 24382, 24509, 
00601                 24638, 24765, 24894, 24895, 25151, 25536, 7241, 7239, 24633, 
00602                 24764, 24766, 24894, 25023, 24896, 25025, 24898, 24770, 24772,
00603                  24647, 7225, 7239, 25536, 25151, 24895, 24894, 24765, 24638, 
00604                 24509, 24382, 24383, 24127, 23744, 9289, 7223, 24647, 24772, 
00605                 24770, 24898, 25025, 24896, 25023, 24894, 24766, 24764, 24633,
00606                  7241, 9287, 23744, 24127, 24383, 24382, 24509, 24638, 24765, 
00607                 24894, 24895, 25151, 25536, 6216, 26176, 7745, 9153, 25022, 
00608                 24254, 7879, 25275, 23995, 6725, 26816, 7361, 7493, 24899, 
00609                 24893, 7357, 25285, 25275, 7621, 24623, 7754, 7617, 24254, 
00610                 25022, 8647, 23995, 25275, 7621, 26816, 7233, 7481, 24893, 
00611                 24899, 7363, 25275, 25285, 7628, 24623, 7753, 8639, 24515, 
00612                 24513, 24385, 24384, 24255, 24381, 24509, 24637, 24766, 24767,
00613                  24895, 24896, 25025, 24898, 24771, 24773, 24645, 24515, 
00614                 24513, 24385, 24256, 24383, 24511, 24639, 24768, 24641, 8507, 
00615                 24383, 24381, 24509, 24636, 24766, 8767, 24897, 24898, 24771, 
00616                 24773, 24645, 24515, 24386, 7605, 6987, 25643, 7381, 25517, 
00617                 9299, 23595, 7253, 26688, 6335, 26432, 7094, 9422, 24511, 
00618                 24767, 24769, 24641, 24513, 24384, 24383, 24382, 24510, 24509,
00619                  24508, 24372, 24508, 24510, 9308, 24510, 24508, 24372, 24508,
00620                  24509, 24510, 24382, 24383, 24384, 24513, 24641, 24769, 
00621                 24767, 24511, 9424, 9422, 24511, 24767, 24769, 24641, 24513, 
00622                 24384, 24383, 24382, 24510, 24509, 24508, 24372, 24508, 24510,
00623                  9308, 24510, 24508, 24372, 24508, 24509, 24510, 24382, 24383,
00624                  24384, 24513, 24641, 24769, 24767, 24511, 9302, 24255, 24382,
00625                  24509, 24638, 24765, 24894, 25023, 24896, 25025, 24898, 
00626                 24771, 24642, 24515, 24386, 24257, 24384, 8378, 9534, 24510, 
00627                 24383, 24384, 24385, 24513, 24260, 24513, 24385, 24384, 24383,
00628                  24510, 24638, 24766, 24895, 24896, 24897, 24769, 25028, 
00629                 24769, 24897, 24896, 24895, 24766, 24638, 7106, 9419, 22315, 
00630                 8917, 24894, 24638, 24510, 24383, 24384, 24386, 24642, 24770, 
00631                 24897, 24896, 24895, 25023, 25024, 25025, 24897, 7730, 24383, 
00632                 24510, 24638, 24894, 24896, 24897, 24770, 24642, 24386, 24384,
00633                  7619, 9411, 24511, 24767, 24769, 24641, 24513, 24512, 24511, 
00634                 24510, 24379, 24381, 24382, 24383, 24256, 24257, 24514, 24643,
00635                  24770, 25412, 24898, 24770, 24642, 24514, 24385, 24383, 
00636                 24510, 24638, 24765, 24893, 25273, 24894, 25023, 24768, 24769,
00637                  24641, 6334, 24385, 24514, 24643, 24770, 24898, 8262, 24766, 
00638                 25653, 24894, 24895, 7370, 9027, 24514, 24385, 24256, 24383, 
00639                 24511, 24509, 24637, 24766, 24895, 25024, 24897, 24770, 7624, 
00640                 24382, 24509, 24637, 24766, 24767, 9163, 24504, 24638, 24895, 
00641                 24896, 24898, 24771, 24642, 24515, 24514, 24386, 24385, 24257,
00642                  24256, 24255, 24383, 24382, 24510, 24509, 24637, 24765, 
00643                 24766, 24894, 24895, 25023, 25024, 25025, 24897, 24769, 8013, 
00644                 24504, 24638, 24767, 7749, 7759, 24611, 8797, 24611, 8790, 
00645                 24511, 24767, 24769, 24641, 24386, 24257, 24128, 24255, 24382,
00646                  24638, 24766, 24767, 24895, 25406, 24895, 24894, 6473, 24894,
00647                  24895, 25406, 24895, 24767, 24766, 24636, 24382, 24255, 
00648                 24128, 24257, 24386, 24641, 24769, 24767, 24511, 8775, 8139, 
00649                 23716, 9948, 23716, 7505, 26432, 6330, 26432, 7238, 8136, 
00650                 24511, 24767, 24769, 24641, 24514, 24385, 24384, 24383, 24510,
00651                  24638, 24766, 24894, 25277, 7365, 25277, 24894, 24766, 24638,
00652                  24510, 24382, 7756, 24382, 24510, 24638, 24766, 24894, 25277,
00653                  7365, 25277, 24894, 24766, 24638, 24510, 24383, 24384, 24385,
00654                  24514, 24641, 24769, 24767, 24511, 8142, 7755, 24510, 24766, 
00655                 24770, 24514, 8256, 24612, 8273, 24509, 24754, 24782, 24515, 
00656                 7492, 24895, 24897, 24385, 24383, 8256, 26176, 7744, 24895, 
00657                 24897, 24385, 24383, 7484, 7755, 24510, 24766, 24770, 24514, 
00658                 8256, 24626, 8260, 24510, 24892, 24510, 24514, 24900, 24514, 
00659                 8252, 24626, 8260, 24510, 24766, 24770, 24514, 7505, 24895, 
00660                 24897, 24385, 24383, 8256, 26176, 7744, 24895, 24897, 24385, 
00661                 24383, 7218, 24895, 24897, 24385, 24383, 8256, 26176, 7744, 
00662                 24895, 24897, 24385, 24383, 7498, 8651, 24619, 6613, 26304, 
00663                 7222, 25664, 6581, 26304, 7242, 7622, 25394, 8270, 23858, 
00664                 7754, 26426, 8262, 22842, 8900, 7232, 6720, 6208, 5696, 5184, 
00665                 4672, 4160, 3648, 3136, 5196, 5172, 5192, 5176, 5188, 5180, 
00666                 7232, 26688, 7240, 24624, 8264, 7224, 26704, 6208, 26672, 
00667                 7240, 8248, 25672, 23624, 23608, 25656, 8264, 7224, 26688, 
00668                 24656, 22592, 24624, 9288, 7232, 25152, 25156, 8260, 24636, 
00669                 25148, 8768, 24128, 24124, 8252, 24644, 24132, 8768, 7224, 
00670                 25156, 24648, 7748, 25148, 25664, 8772, 24124, 24632, 8764, 
00671                 24132, 23616, 8772, 7232, 26688, 7240, 24624, 8768, 23616, 
00672                 7748, 24648, 8772, 25664, 8764, 24632, 7236, 7224, 26704, 
00673                 6208, 26672, 8260, 24124, 7232, 24132, 8264, 25156, 9280, 
00674                 25148, 7228, 7744, 24128, 8264, 25148, 8768, 24644, 9280, 
00675                 24124, 8252, 25152, 8248, 24132, 7744, 24636, 7232, 25156, 
00676                 8772, 7228, 24648, 25156, 25664, 25148, 24632, 24124, 23616, 
00677                 24132, 9284, 8644, 24511, 24767, 24769, 24641, 24386, 24385, 
00678                 24256, 24255, 24382, 24509, 24638, 24765, 24894, 25023, 24896,
00679                  25025, 24898, 7371, 24383, 24382, 24509, 24638, 24765, 24894,
00680                  24895, 8401, 24620, 7882, 7234, 26944, 24636, 7234, 6964, 
00681                 26944, 6988, 7235, 24770, 24897, 24896, 25023, 24895, 25023, 
00682                 24896, 24897, 24770, 5945, 26944, 5948, 26944, 7237, 7237, 
00683                 24767, 24511, 24513, 24641, 24770, 24769, 24897, 25024, 25023,
00684                  24767, 24766, 24638, 24510, 24511, 24126, 8395, 24895, 24767,
00685                  24766, 24638, 24510, 24382, 8013, 24510, 24753, 24783, 24514,
00686                  8254, 24632, 8246, 24511, 24767, 24769, 24513, 7880, 7745, 
00687                 24254, 25022, 8647, 23995, 25275, 7621, 26944, 7621, 25275, 
00688                 23995, 8647, 25022, 24254, 7747, 9287, 23744, 24127, 24383, 
00689                 24382, 24509, 24638, 24765, 24894, 24895, 25151, 25536, 6216, 
00690                 26176, 8138, 23980, 8523, 6987, 25515, 25557, 6714, 25920, 
00691                 7227, 9287, 23232, 24383, 24382, 24510, 24638, 24766, 24894, 
00692                 24895, 26048, 6204, 26688, 7241, 7239, 26048, 24895, 24894, 
00693                 24766, 24638, 24510, 24382, 24383, 23232, 8252, 26688, 7241, 
00694                 7879, 24255, 24382, 24509, 24638, 24765, 24894, 25023, 24896, 
00695                 25025, 24898, 24771, 24642, 24515, 24386, 24257, 24384, 8382, 
00696                 24630, 7621, 25920, 7360, 7879, 24255, 24382, 24509, 24638, 
00697                 24765, 24894, 25023, 24896, 25025, 24898, 24771, 24642, 24515,
00698                  24386, 24257, 24384, 8893, 23608, 8264, 25656, 7492, 7499, 
00699                 24619, 8405, 24619, 8267, 24898, 25025, 24896, 25023, 24766, 
00700                 24629, 7758, 24895, 24766, 24629, 6485, 25152, 7723, 25536, 
00701                 8768, 25536, 7636, 22840, 9406, 7115, 24896, 24895, 24767, 
00702                 24766, 25394, 24766, 24767, 6741, 24894, 24766, 25394, 24766, 
00703                 24895, 24768, 7246, 23602, 9294, 23730, 9556, 23351, 8895, 
00704                 7108, 25152, 25396, 7372, 25522, 25819, 6703, 6704, 27456, 
00705                 6736, 6737, 27456, 6703, 6991, 26912, 6993 };
00706 
00707 
00708     
00709     integer i__1, i__2;
00710 
00711     
00712     static integer ioff, istr;
00713     static real xcur, ycur, scale;
00714     static integer is;
00715 #define nstrok ((integer *)&equiv_38)
00716     static integer ich, inc;
00717 #define ns01 ((integer *)&equiv_38)
00718 #define ns02 ((integer *)&equiv_38 + 100)
00719 #define ns03 ((integer *)&equiv_38 + 200)
00720 #define ns04 ((integer *)&equiv_38 + 300)
00721 #define ns05 ((integer *)&equiv_38 + 400)
00722 #define ns06 ((integer *)&equiv_38 + 500)
00723 #define ns07 ((integer *)&equiv_38 + 600)
00724 #define ns08 ((integer *)&equiv_38 + 700)
00725 #define ns09 ((integer *)&equiv_38 + 800)
00726 #define ns10 ((integer *)&equiv_38 + 900)
00727 #define ns11 ((integer *)&equiv_38 + 1000)
00728 #define ns12 ((integer *)&equiv_38 + 1100)
00729 #define ns13 ((integer *)&equiv_38 + 1200)
00730 #define ns14 ((integer *)&equiv_38 + 1300)
00731 #define ns15 ((integer *)&equiv_38 + 1400)
00732 #define ns16 ((integer *)&equiv_38 + 1500)
00733     static integer kst;
00734 #define ns17 ((integer *)&equiv_38 + 1600)
00735 #define ns18 ((integer *)&equiv_38 + 1700)
00736 #define ns19 ((integer *)&equiv_38 + 1800)
00737 #define ns20 ((integer *)&equiv_38 + 1900)
00738 #define ns21 ((integer *)&equiv_38 + 2000)
00739 #define ns22 ((integer *)&equiv_38 + 2100)
00740 #define ns23 ((integer *)&equiv_38 + 2200)
00741 #define ns24 ((integer *)&equiv_38 + 2300)
00742 #define ns25 ((integer *)&equiv_38 + 2400)
00743 #define ns26 ((integer *)&equiv_38 + 2500)
00744 #define ns27 ((integer *)&equiv_38 + 2600)
00745 #define ns28 ((integer *)&equiv_38 + 2700)
00746 #define ns29 ((integer *)&equiv_38 + 2800)
00747 #define ns30 ((integer *)&equiv_38 + 2900)
00748 #define ns31 ((integer *)&equiv_38 + 3000)
00749 #define ns32 ((integer *)&equiv_38 + 3100)
00750 #define ns33 ((integer *)&equiv_38 + 3200)
00751 #define ns34 ((integer *)&equiv_38 + 3300)
00752 #define ns35 ((integer *)&equiv_38 + 3400)
00753 #define ns36 ((integer *)&equiv_38 + 3500)
00754 #define ns37 ((integer *)&equiv_38 + 3600)
00755 #define ns38 ((integer *)&equiv_38 + 3700)
00756 #define ns39 ((integer *)&equiv_38 + 3800)
00757 
00758 
00759 
00760 
00761 
00762 
00763 
00764 
00765 
00766 
00767 
00768 
00769 
00770 
00771     
00772     --lstr;
00773     --ystr;
00774     --xstr;
00775 
00776     
00777 
00778 
00779 
00780 
00781 
00782 
00783 
00784 
00785 
00786 
00787 
00788 
00789     *nstr = 0;
00790     xcur = 0.f;
00791     ycur = 0.f;
00792     scale = .051f;
00793 
00794     i__1 = *nch;
00795     for (inc = 1; inc <= i__1; ++inc) {
00796 
00797 
00798 
00799         ich = *(unsigned char *)&ch[inc - 1];
00800         if (ich <= 0) {
00801             ich += 256;
00802         }
00803 
00804         ioff = noff[ich];
00805         istr = numstr[ich];
00806 
00807 
00808 
00809 
00810 
00811 
00812 
00813 
00814 
00815 
00816         if (ioff <= 0) {
00817             if (istr == 1) {
00818                 xcur -= scale * 2.666667f;
00819                 ycur += scale * 12.f;
00820                 scale *= .6666667f;
00821             } else if (istr == 2) {
00822                 scale *= 1.5f;
00823                 xcur += scale * 4.f;
00824                 ycur -= scale * 12.f;
00825             } else if (istr == 3) {
00826                 xcur -= scale * 2.666667f;
00827                 ycur -= scale * 12.f;
00828                 scale *= .6666667f;
00829             } else if (istr == 4) {
00830                 scale *= 1.5f;
00831                 xcur += scale * 4.f;
00832                 ycur += scale * 12.f;
00833             } else if (istr >= 5 && istr <= 11) {
00834                 ++(*nstr);
00835                 lstr[*nstr] = istr + 96;
00836                 xstr[*nstr] = xcur;
00837                 ystr[*nstr] = ycur;
00838             }
00839 
00840 
00841 
00842 
00843         } else if (ich == 10) {
00844             xcur = 0.f;
00845             ycur += -1.1f;
00846 
00847 
00848 
00849 
00850         } else {
00851             i__2 = istr - 1;
00852             for (is = 0; is <= i__2; ++is) {
00853                 ++(*nstr);
00854                 kst = nstrok[ioff + is - 1];
00855 
00856                 lstr[*nstr] = 0;
00857                 if (kst >= 16384) {
00858                     lstr[*nstr] = 1;
00859                     kst += -16384;
00860                 }
00861 
00862                 xcur += scale * (real) (kst / 128 - 64);
00863                 ycur += scale * (real) (kst % 128 - 64);
00864                 if (is == istr - 1) {
00865                     xcur += scale * 24.f;
00866                 }
00867 
00868                 xstr[*nstr] = xcur;
00869                 ystr[*nstr] = ycur;
00870 
00871             }
00872         }
00873 
00874 
00875     }
00876     return 0;
00877 } 
00878 
00879 #undef ns39
00880 #undef ns38
00881 #undef ns37
00882 #undef ns36
00883 #undef ns35
00884 #undef ns34
00885 #undef ns33
00886 #undef ns32
00887 #undef ns31
00888 #undef ns30
00889 #undef ns29
00890 #undef ns28
00891 #undef ns27
00892 #undef ns26
00893 #undef ns25
00894 #undef ns24
00895 #undef ns23
00896 #undef ns22
00897 #undef ns21
00898 #undef ns20
00899 #undef ns19
00900 #undef ns18
00901 #undef ns17
00902 #undef ns16
00903 #undef ns15
00904 #undef ns14
00905 #undef ns13
00906 #undef ns12
00907 #undef ns11
00908 #undef ns10
00909 #undef ns09
00910 #undef ns08
00911 #undef ns07
00912 #undef ns06
00913 #undef ns05
00914 #undef ns04
00915 #undef ns03
00916 #undef ns02
00917 #undef ns01
00918 #undef nstrok
00919 
00920 
00921 
00922 
00923 
00924  int zzconv_(char *chin, integer *nchin, char *chout, integer 
00925         *nchout, ftnlen chin_len, ftnlen chout_len)
00926 {
00927     
00928 
00929     static char chesc[15] = "\\esc           ";
00930     static char chnesc[15] = "\\noesc         ";
00931     static char chtex[15*113] = "\\Plus          " "\\Cross         " "\\Dia"
00932             "mond       " "\\Box           " "\\FDiamond      " "\\FBox      "
00933             "    " "\\FPlus         " "\\FCross        " "\\Burst         " 
00934             "\\Octagon       " "\\alpha         " "\\beta          " "\\gamm"
00935             "a         " "\\delta         " "\\epsilon       " "\\zeta       "
00936             "   " "\\eta           " "\\theta         " "\\iota          " 
00937             "\\kappa         " "\\lambda        " "\\mu            " "\\nu  "
00938             "          " "\\xi            " "\\omicron       " "\\pi         "
00939             "   " "\\rho           " "\\sigma         " "\\tau           " 
00940             "\\upsilon       " "\\phi           " "\\chi           " "\\psi "
00941             "          " "\\omega         " "\\Alpha         " "\\Beta       "
00942             "   " "\\Gamma         " "\\Delta         " "\\Epsilon       " 
00943             "\\Zeta          " "\\Eta           " "\\Theta         " "\\Iota"
00944             "          " "\\Kappa         " "\\Lambda        " "\\Mu         "
00945             "   " "\\Nu            " "\\Xi            " "\\Omicron       " 
00946             "\\Pi            " "\\Rho           " "\\Sigma         " "\\Tau "
00947             "          " "\\Upsilon       " "\\Phi           " "\\Chi        "
00948             "   " "\\Psi           " "\\Omega         " "\\propto        " 
00949             "\\int           " "\\times         " "\\div           " "\\appr"
00950             "ox        " "\\partial       " "\\cap           " "\\?          "
00951             "   " "\\langle        " "\\rangle        " "\\ddagger       " 
00952             "\\pm            " "\\leq           " "\\S             " "\\hbar"
00953             "          " "\\lambar        " "\\cup           " "\\degree     "
00954             "   " "\\nabla         " "\\downarrow     " "\\leftarrow     " 
00955             "\\rightarrow    " "\\leftrightarrow" "\\oint          " "\\in  "
00956             "          " "\\notin         " "\\surd          " "\\_          "
00957             "   " "\\bar           " "\\exists        " "\\geq           " 
00958             "\\forall        " "\\subset        " "\\oplus         " "\\otim"
00959             "es        " "\\dagger        " "\\neq           " "\\supset     "
00960             "   " "\\infty         " "\\uparrow       " "\\#             " 
00961             "\\$             " "\\%             " "\\&             " "\\{   "
00962             "          " "\\}             " "\\\\             " "\\cents     "
00963             "    " "\\black         " "\\red           " "\\blue          " 
00964             "\\green         " "\\yellow        " "\\magenta       " "\\cyan"
00965             "          ";
00966     static integer ichext[113] = { 176,177,178,179,180,181,182,183,184,185,
00967             225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,
00968             241,242,243,244,245,246,247,248,193,194,195,196,197,198,199,200,
00969             201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,
00970             128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
00971             160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
00972             186,187,188,189,190,191,255,96,35,36,37,38,123,125,92,94,148,149,
00973             150,151,152,153,154 };
00974 
00975     
00976     integer i__1;
00977 
00978     
00979     integer s_cmp(char *, char *, ftnlen, ftnlen);
00980      int s_copy(char *, char *, ftnlen, ftnlen);
00981 
00982     
00983     static logical lesc;
00984     static integer itop;
00985     static logical lout;
00986     static integer i__, nused, nsupb;
00987     static char chcont[15];
00988     static integer ntsupb[10], inc;
00989 
00990 
00991 
00992 
00993 
00994 
00995 
00996 
00997 
00998 
00999 
01000 
01001 
01002 
01003 
01004 
01005 
01006 
01007 
01008 
01009 
01010 
01011 
01012 
01013 
01014 
01015 
01016 
01017 
01018 
01019 
01020 
01021 
01022 
01023     *nchout = 0;
01024     nsupb = 0;
01025     inc = 1;
01026 
01027 
01028 
01029 
01030     lesc = TRUE_;
01031 L100:
01032 
01033 
01034 
01035 
01036     lout = FALSE_;
01037 
01038 
01039 
01040 
01041     if (lesc && *(unsigned char *)&chin[inc - 1] == '^' && inc < *nchin) {
01042         ++nsupb;
01043         i__1 = inc;
01044         if (s_cmp(chin + i__1, "{", inc + 1 - i__1, 1L) == 0) {
01045             ntsupb[nsupb - 1] = 2;
01046             nused = 2;
01047         } else {
01048             ntsupb[nsupb - 1] = 1;
01049             nused = 1;
01050         }
01051         ++(*nchout);
01052         *(unsigned char *)&chout[*nchout - 1] = 144;
01053 
01054 
01055 
01056 
01057 
01058     } else if (lesc && *(unsigned char *)&chin[inc - 1] == '_' && inc < *
01059             nchin) {
01060         ++nsupb;
01061         i__1 = inc;
01062         if (s_cmp(chin + i__1, "{", inc + 1 - i__1, 1L) == 0) {
01063             ntsupb[nsupb - 1] = -2;
01064             nused = 2;
01065         } else {
01066             ntsupb[nsupb - 1] = -1;
01067             nused = 1;
01068         }
01069         ++(*nchout);
01070         *(unsigned char *)&chout[*nchout - 1] = 146;
01071 
01072 
01073 
01074 
01075 
01076 
01077 
01078     } else if (lesc && *(unsigned char *)&chin[inc - 1] == '}' && nsupb > 0) {
01079         nused = 1;
01080         ++(*nchout);
01081         if (ntsupb[nsupb - 1] > 0) {
01082             *(unsigned char *)&chout[*nchout - 1] = 145;
01083         } else {
01084             *(unsigned char *)&chout[*nchout - 1] = 147;
01085         }
01086         --nsupb;
01087 
01088 
01089 
01090 
01091 
01092 
01093     } else if (! lesc || *(unsigned char *)&chin[inc - 1] != '\\') {
01094         lout = TRUE_;
01095         nused = 1;
01096         ++(*nchout);
01097         *(unsigned char *)&chout[*nchout - 1] = *(unsigned char *)&chin[inc - 
01098                 1];
01099 
01100 
01101 
01102 
01103 
01104     } else if (inc == *nchin) {
01105 
01106         goto L8000;
01107 
01108 
01109 
01110 
01111 
01112 
01113     } else {
01114         itop = inc + 1;
01115 
01116 
01117 
01118 
01119 
01120 
01121         i__1 = *(unsigned char *)&chin[itop - 1];
01122         if (i__1 >= 'A' && i__1 <= 'Z' || i__1 >= 'a' && i__1 <= 'z') {
01123 L200:
01124             ++itop;
01125             if (itop > *nchin) {
01126                 goto L300;
01127             }
01128             i__1 = *(unsigned char *)&chin[itop - 1];
01129             if (i__1 >= 'A' && i__1 <= 'Z' || i__1 >= 'a' && i__1 <= 'z') {
01130                 goto L200;
01131             }
01132 L300:
01133             --itop;
01134 
01135 
01136 
01137 
01138             if (itop < *nchin) {
01139                 i__1 = itop;
01140                 if (s_cmp(chin + i__1, " ", itop + 1 - i__1, 1L) == 0) {
01141                     ++itop;
01142                 }
01143             }
01144         }
01145 
01146 
01147 
01148 
01149 
01150         nused = itop - inc + 1;
01151         s_copy(chcont, chin + (inc - 1), 15L, itop - (inc - 1));
01152 
01153         for (i__ = 1; i__ <= 113; ++i__) {
01154             if (s_cmp(chcont, chtex + (i__ - 1) * 15, 15L, 15L) == 0) {
01155                 goto L410;
01156             }
01157 
01158         }
01159         i__ = 0;
01160 L410:
01161 
01162 
01163 
01164 
01165         if (i__ > 0) {
01166             lout = TRUE_;
01167             ++(*nchout);
01168             *(unsigned char *)&chout[*nchout - 1] = (char) ichext[i__ - 1];
01169 
01170 
01171 
01172 
01173         } else if (s_cmp(chcont, chnesc, 15L, 15L) == 0) {
01174             lesc = FALSE_;
01175         } else if (s_cmp(chcont, chesc, 15L, 15L) == 0) {
01176             lesc = TRUE_;
01177         }
01178     }
01179 
01180 
01181 
01182 
01183 
01184     if (lout && nsupb > 0) {
01185         if (ntsupb[nsupb - 1] == 1) {
01186             --nsupb;
01187             ++(*nchout);
01188             *(unsigned char *)&chout[*nchout - 1] = 145;
01189 
01190 
01191         } else if (ntsupb[nsupb - 1] == -1) {
01192             --nsupb;
01193             ++(*nchout);
01194             *(unsigned char *)&chout[*nchout - 1] = 147;
01195 
01196         }
01197     }
01198 
01199 
01200 
01201 
01202     inc += nused;
01203     if (inc <= *nchin) {
01204         goto L100;
01205     }
01206 
01207 
01208 L8000:
01209     return 0;
01210 } 
01211