2 * Copyright (c) 1997, 2001 Hellmuth Michaelis. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 *---------------------------------------------------------------------------
27 * i4b_tel.c - device driver for ISDN telephony
28 * --------------------------------------------
30 * $FreeBSD: src/sys/i4b/driver/i4b_tel.c,v 1.10.2.4 2001/12/16 15:12:57 hm Exp $
31 * $DragonFly: src/sys/net/i4b/driver/i4b_tel.c,v 1.11 2005/06/14 21:19:18 joerg Exp $
33 * last edit-date: [Sat Aug 11 18:07:05 2001]
35 *---------------------------------------------------------------------------*/
37 #include "use_i4btel.h"
43 #include <sys/param.h>
44 #include <sys/systm.h>
46 #include <sys/ioccom.h>
51 #include <sys/kernel.h>
53 #include <sys/socket.h>
58 #include <sys/devfsext.h>
61 #include <net/i4b/include/machine/i4b_ioctl.h>
62 #include <net/i4b/include/machine/i4b_tel_ioctl.h>
63 #include <net/i4b/include/machine/i4b_debug.h>
65 #include "../include/i4b_global.h"
66 #include "../include/i4b_mbuf.h"
67 #include "../include/i4b_l3l4.h"
68 #include "../layer4/i4b_l4.h"
70 /* minor number: lower 6 bits = unit number */
74 #define UNIT(n) (minor(n) & UNITMASK)
76 /* minor number: upper 2 bits = function number */
79 #define FUNC(n) (((minor(n)) >> UNITBITS) & FUNCMASK)
81 #define FUNCTEL 0 /* 0 = normal i4btel device */
82 #define FUNCDIAL 1 /* 1 = i4bteld dialout device */
84 #define NOFUNCS 2 /* number of device classes */
88 /* used only in func = FUNCTEL */
90 drvr_link_t drvr_linktab; /* driver linktab */
91 isdn_link_t *isdn_linktab; /* isdn linktab */
92 int audiofmt; /* audio format conversion */
93 u_char *rcvttab; /* conversion table on read */
94 u_char *wcvttab; /* conversion table on write */
95 call_desc_t *cdp; /* call descriptor pointer */
97 /* used only in func = FUNCDIAL */
99 char result; /* result code for dial dev */
101 /* used in func = FUNCDIAL and func = FUNCTEL*/
103 int devstate; /* state of this unit */
104 #define ST_IDLE 0x00 /* idle */
105 #define ST_CONNECTED 0x01 /* isdn connected state */
106 #define ST_ISOPEN 0x02 /* userland opened */
107 #define ST_RDWAITDATA 0x04 /* userland read waiting */
108 #define ST_WRWAITEMPTY 0x08 /* userland write waiting */
109 #define ST_TONE 0x10 /* tone generator */
111 struct selinfo selp; /* select / poll */
113 struct i4b_tel_tones tones;
120 static tel_sc_t tel_sc[NI4BTEL][NOFUNCS];
124 static void tel_rx_data_rdy(int unit);
125 static void tel_tx_queue_empty(int unit);
126 static void tel_init_linktab(int unit);
127 static void tel_connect(int unit, void *cdp);
128 static void tel_disconnect(int unit, void *cdp);
129 static void tel_tone(tel_sc_t *sc);
131 /* audio format conversion tables */
132 static unsigned char a2u_tab[];
133 static unsigned char u2a_tab[];
134 static unsigned char bitreverse[];
135 static u_char sinetab[];
137 #define PDEVSTATIC static
139 PDEVSTATIC d_open_t i4btelopen;
140 PDEVSTATIC d_close_t i4btelclose;
141 PDEVSTATIC d_read_t i4btelread;
142 PDEVSTATIC d_read_t i4btelwrite;
143 PDEVSTATIC d_ioctl_t i4btelioctl;
145 PDEVSTATIC d_poll_t i4btelpoll;
146 #define POLLFIELD i4btelpoll
148 #define CDEV_MAJOR 56
150 static struct cdevsw i4btel_cdevsw = {
152 /* maj */ CDEV_MAJOR,
157 /* open */ i4btelopen,
158 /* close */ i4btelclose,
159 /* read */ i4btelread,
160 /* write */ i4btelwrite,
161 /* ioctl */ i4btelioctl,
162 /* poll */ POLLFIELD,
164 /* strategy */ nostrategy,
169 PDEVSTATIC void i4btelinit(void *unused);
170 PDEVSTATIC void i4btelattach(void *);
172 PSEUDO_SET(i4btelattach, i4b_tel);
174 /*===========================================================================*
175 * DEVICE DRIVER ROUTINES
176 *===========================================================================*/
178 /*---------------------------------------------------------------------------*
179 * initialization at kernel load time
180 *---------------------------------------------------------------------------*/
182 i4btelinit(void *unused)
184 cdevsw_add(&i4btel_cdevsw, 0, 0);
187 SYSINIT(i4bteldev, SI_SUB_DRIVERS,
188 SI_ORDER_MIDDLE+CDEV_MAJOR, &i4btelinit, NULL);
190 /*---------------------------------------------------------------------------*
191 * interface attach routine
192 *---------------------------------------------------------------------------*/
194 i4btelattach(void *dummy)
198 printf("i4btel: %d ISDN telephony interface device(s) attached\n", NI4BTEL);
200 for(i=0; i < NI4BTEL; i++)
202 for(j=0; j < NOFUNCS; j++)
204 tel_sc[i][j].devstate = ST_IDLE;
205 tel_sc[i][j].audiofmt = CVT_NONE;
206 tel_sc[i][j].rcvttab = 0;
207 tel_sc[i][j].wcvttab = 0;
208 tel_sc[i][j].result = 0;
212 case FUNCTEL: /* normal i4btel device */
213 make_dev(&i4btel_cdevsw, i,
215 0600, "i4btel%d", i);
218 case FUNCDIAL: /* i4bteld dialout device */
219 make_dev(&i4btel_cdevsw, i+(1<<UNITBITS),
221 0600, "i4bteld%d", i);
229 /*---------------------------------------------------------------------------*
231 *---------------------------------------------------------------------------*/
233 i4btelopen(dev_t dev, int flag, int fmt, struct thread *td)
235 int unit = UNIT(dev);
236 int func = FUNC(dev);
243 sc = &tel_sc[unit][func];
245 if(sc->devstate & ST_ISOPEN)
248 sc->devstate |= ST_ISOPEN;
258 /*---------------------------------------------------------------------------*
260 *---------------------------------------------------------------------------*/
262 i4btelclose(dev_t dev, int flag, int fmt, struct thread *td)
264 int unit = UNIT(dev);
265 int func = FUNC(dev);
273 sc = &tel_sc[unit][func];
276 sc->devstate &= ~ST_TONE;
278 if((func == FUNCTEL) &&
279 (sc->isdn_linktab != NULL && sc->isdn_linktab->tx_queue != NULL))
281 while(!(IF_QEMPTY(sc->isdn_linktab->tx_queue)))
283 sc->devstate |= ST_WRWAITEMPTY;
285 if((error = tsleep((caddr_t) &sc->isdn_linktab->tx_queue,
286 PCATCH, "wtcl", 0)) != 0)
291 sc->devstate &= ~ST_WRWAITEMPTY;
294 sc->devstate &= ~ST_ISOPEN;
296 wakeup((caddr_t) &sc->tones);
301 /*---------------------------------------------------------------------------*
302 * i4btelioctl - device driver ioctl routine
303 *---------------------------------------------------------------------------*/
305 i4btelioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
307 int unit = UNIT(dev);
308 int func = FUNC(dev);
313 tel_sc_t *sc = &tel_sc[unit][func];
319 case I4B_TEL_GETAUDIOFMT:
320 *(int *)data = sc->audiofmt;
323 case I4B_TEL_SETAUDIOFMT:
324 switch (*(int *)data)
333 sc->rcvttab = a2u_tab;
334 sc->wcvttab = u2a_tab;
339 sc->rcvttab = u2a_tab;
340 sc->wcvttab = a2u_tab;
347 sc->audiofmt = *(int *)data;
350 case I4B_TEL_EMPTYINPUTQUEUE:
352 while((sc->devstate & ST_CONNECTED) &&
353 (sc->devstate & ST_ISOPEN) &&
354 !IF_QEMPTY(sc->isdn_linktab->rx_queue))
356 IF_DEQUEUE(sc->isdn_linktab->rx_queue, m);
367 mvr = (msg_vr_req_t *)data;
369 mvr->version = VERSION;
376 struct i4b_tel_tones *tt;
378 tt = (struct i4b_tel_tones *)data;
380 while ((sc->devstate & ST_TONE) &&
381 sc->tones.duration[sc->toneidx] != 0) {
382 if((error = tsleep((caddr_t) &sc->tones,
383 PCATCH, "rtone", 0 )) != 0) {
388 if(!(sc->devstate & ST_ISOPEN)) {
392 if(!(sc->devstate & ST_CONNECTED)) {
399 sc->tonefreq = tt->frequency[0];
400 sc->devstate |= ST_TONE;
411 else if(func == FUNCDIAL)
423 /*---------------------------------------------------------------------------*
424 * read from tel device
425 *---------------------------------------------------------------------------*/
427 i4btelread(dev_t dev, struct uio *uio, int ioflag)
429 int unit = UNIT(dev);
430 int func = FUNC(dev);
436 tel_sc_t *sc = &tel_sc[unit][func];
438 if(!(sc->devstate & ST_ISOPEN))
445 while((sc->devstate & ST_ISOPEN) &&
446 (sc->devstate & ST_CONNECTED) &&
447 IF_QEMPTY(sc->isdn_linktab->rx_queue))
449 sc->devstate |= ST_RDWAITDATA;
451 NDBGL4(L4_TELDBG, "i4btel%d, queue empty!", unit);
453 if((error = tsleep((caddr_t) &sc->isdn_linktab->rx_queue,
454 PCATCH, "rtel", 0 )) != 0)
456 sc->devstate &= ~ST_RDWAITDATA;
462 if(!(sc->devstate & ST_ISOPEN))
468 if(!(sc->devstate & ST_CONNECTED))
475 IF_DEQUEUE(sc->isdn_linktab->rx_queue, m);
477 if(m && m->m_len > 0)
481 for(i = 0; i < m->m_len; i++)
483 /* always reverse bit order from line */
484 mtod(m,u_char *)[i] = bitreverse[mtod(m,u_char *)[i]];
486 /* convert if necessary */
488 mtod(m,u_char *)[i] = sc->rcvttab[mtod(m,u_char *)[i]];
490 error = uiomove(m->m_data, m->m_len, uio);
492 NDBGL4(L4_TELDBG, "i4btel%d, mbuf (%d bytes), uiomove %d!", unit, m->m_len, error);
496 NDBGL4(L4_TELDBG, "i4btel%d, empty mbuf from queue!", unit);
505 else if(func == FUNCDIAL)
508 while((sc->result == 0) && (sc->devstate & ST_ISOPEN))
510 sc->devstate |= ST_RDWAITDATA;
512 if((error = tsleep((caddr_t) &sc->result,
513 PCATCH, "rtel1", 0 )) != 0)
515 sc->devstate &= ~ST_RDWAITDATA;
521 if(!(sc->devstate & ST_ISOPEN))
529 error = uiomove(&sc->result, 1, uio);
542 /*---------------------------------------------------------------------------*
543 * write to tel device
544 *---------------------------------------------------------------------------*/
546 i4btelwrite(dev_t dev, struct uio * uio, int ioflag)
548 int unit = UNIT(dev);
549 int func = FUNC(dev);
553 tel_sc_t *sc = &tel_sc[unit][func];
555 if(!(sc->devstate & ST_ISOPEN))
564 if(!(sc->devstate & ST_CONNECTED)) {
569 sc->devstate &= ~ST_TONE;
570 while((IF_QFULL(sc->isdn_linktab->tx_queue)) &&
571 (sc->devstate & ST_ISOPEN))
573 sc->devstate |= ST_WRWAITEMPTY;
575 if((error = tsleep((caddr_t) &sc->isdn_linktab->tx_queue,
576 PCATCH, "wtel", 0)) != 0)
578 sc->devstate &= ~ST_WRWAITEMPTY;
584 if(!(sc->devstate & ST_ISOPEN))
590 if(!(sc->devstate & ST_CONNECTED))
596 if((m = i4b_Bgetmbuf(BCH_MAX_DATALEN)) != NULL)
600 m->m_len = min(BCH_MAX_DATALEN, uio->uio_resid);
602 error = uiomove(m->m_data, m->m_len, uio);
604 for(i = 0; i < m->m_len; i++)
606 /* convert if necessary */
608 mtod(m,u_char *)[i] = sc->wcvttab[mtod(m,u_char *)[i]];
610 /* always reverse bitorder to line */
611 mtod(m,u_char *)[i] = bitreverse[mtod(m,u_char *)[i]];
614 if(IF_QFULL(sc->isdn_linktab->tx_queue))
617 IF_ENQUEUE(sc->isdn_linktab->tx_queue, m);
618 (*sc->isdn_linktab->bch_tx_start)(sc->isdn_linktab->unit, sc->isdn_linktab->channel);
623 else if(func == FUNCDIAL)
626 char cmdbuf[CMDBUFSIZ];
627 int len = min(CMDBUFSIZ-1, uio->uio_resid);
629 error = uiomove(cmdbuf, len, uio);
631 if(cmdbuf[0] == CMD_DIAL)
633 i4b_l4_dialoutnumber(BDRV_TEL, unit, len-1, &cmdbuf[1]);
635 else if(cmdbuf[0] == CMD_HUP)
637 i4b_l4_drvrdisc(BDRV_TEL, unit);
639 else if(cmdbuf[0] == CMD_KEYP)
641 i4b_l4_keypad(BDRV_TEL, unit, len-1, &cmdbuf[1]);
652 /*---------------------------------------------------------------------------*
654 *---------------------------------------------------------------------------*/
657 tel_tone(tel_sc_t *sc)
663 if((m = i4b_Bgetmbuf(NTONESAMP)) == NULL) {
664 printf("no mbuf in tel_tone\n");
669 for (i = 0; i < NTONESAMP && (sc->devstate & ST_TONE); i++) {
671 if (sc->tones.duration[sc->toneidx] > 0) {
672 if (--sc->tones.duration[sc->toneidx] == 0) {
674 if (sc->toneidx == I4B_TEL_MAXTONES) {
675 sc->devstate &= ~ST_TONE;
678 } else if (sc->tones.frequency[sc->toneidx] == 0 &&
679 sc->tones.duration[sc->toneidx] == 0) {
680 sc->devstate &= ~ST_TONE;
684 sc->tonefreq = sc->tones.frequency[sc->toneidx];
686 if (sc->tones.duration[sc->toneidx] == 0) {
687 wakeup((caddr_t) &sc->tones);
692 sc->toneomega += sc->tonefreq;
693 if (sc->toneomega >= 8000)
694 sc->toneomega -= 8000;
695 *p++ = bitreverse[sinetab[sc->toneomega]];
698 IF_ENQUEUE(sc->isdn_linktab->tx_queue, m);
699 (*sc->isdn_linktab->bch_tx_start)(sc->isdn_linktab->unit, sc->isdn_linktab->channel);
702 /*---------------------------------------------------------------------------*
704 *---------------------------------------------------------------------------*/
706 i4btelpoll(dev_t dev, int events, struct thread *td)
708 int revents = 0; /* Events we found */
710 int unit = UNIT(dev);
711 int func = FUNC(dev);
713 tel_sc_t *sc = &tel_sc[unit][func];
717 if(!(sc->devstate & ST_ISOPEN))
719 NDBGL4(L4_TELDBG, "i4btel%d, !ST_ISOPEN", unit);
727 * Writes are OK if we are connected and the
728 * transmit queue can take them
731 if((events & (POLLOUT|POLLWRNORM)) &&
732 (sc->devstate & ST_CONNECTED) &&
733 (sc->isdn_linktab != NULL) &&
734 (!IF_QFULL(sc->isdn_linktab->tx_queue)))
736 NDBGL4(L4_TELDBG, "i4btel%d, POLLOUT", unit);
737 revents |= (events & (POLLOUT|POLLWRNORM));
740 /* ... while reads are OK if we have any data */
742 if((events & (POLLIN|POLLRDNORM)) &&
743 (sc->devstate & ST_CONNECTED) &&
744 (sc->isdn_linktab != NULL) &&
745 (!IF_QEMPTY(sc->isdn_linktab->rx_queue)))
747 NDBGL4(L4_TELDBG, "i4btel%d, POLLIN", unit);
748 revents |= (events & (POLLIN|POLLRDNORM));
753 NDBGL4(L4_TELDBG, "i4btel%d, selrecord", unit);
754 selrecord(td, &sc->selp);
757 else if(func == FUNCDIAL)
759 if(events & (POLLOUT|POLLWRNORM))
761 NDBGL4(L4_TELDBG, "i4bteld%d, POLLOUT", unit);
762 revents |= (events & (POLLOUT|POLLWRNORM));
765 if(events & (POLLIN|POLLRDNORM))
767 NDBGL4(L4_TELDBG, "i4bteld%d, POLLIN, result = %d", unit, sc->result);
769 revents |= (events & (POLLIN|POLLRDNORM));
774 NDBGL4(L4_TELDBG, "i4bteld%d, selrecord", unit);
775 selrecord(td, &sc->selp);
782 /*===========================================================================*
783 * ISDN INTERFACE ROUTINES
784 *===========================================================================*/
786 /*---------------------------------------------------------------------------*
787 * this routine is called from L4 handler at connect time
788 *---------------------------------------------------------------------------*/
790 tel_connect(int unit, void *cdp)
792 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
796 sc->cdp = (call_desc_t *)cdp;
798 sc->devstate |= ST_CONNECTED;
802 sc = &tel_sc[unit][FUNCDIAL];
804 if(sc->devstate == ST_ISOPEN)
806 sc->result = RSP_CONN;
808 if(sc->devstate & ST_RDWAITDATA)
810 sc->devstate &= ~ST_RDWAITDATA;
811 wakeup((caddr_t) &sc->result);
813 selwakeup(&sc->selp);
817 /*---------------------------------------------------------------------------*
818 * this routine is called from L4 handler at disconnect time
819 *---------------------------------------------------------------------------*/
821 tel_disconnect(int unit, void *cdp)
823 /* call_desc_t *cd = (call_desc_t *)cdp; */
825 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
829 sc->devstate &= ~ST_CONNECTED;
831 if(sc->devstate & ST_RDWAITDATA)
833 sc->devstate &= ~ST_RDWAITDATA;
834 wakeup((caddr_t) &sc->isdn_linktab->rx_queue);
837 if(sc->devstate & ST_WRWAITEMPTY)
839 sc->devstate &= ~ST_WRWAITEMPTY;
840 wakeup((caddr_t) &sc->isdn_linktab->tx_queue);
845 sc = &tel_sc[unit][FUNCDIAL];
847 if(sc->devstate & ST_ISOPEN)
849 sc->result = RSP_HUP;
851 if(sc->devstate & ST_RDWAITDATA)
853 sc->devstate &= ~ST_RDWAITDATA;
854 wakeup((caddr_t) &sc->result);
856 selwakeup(&sc->selp);
858 if (sc->devstate & ST_TONE) {
859 sc->devstate &= ~ST_TONE;
860 wakeup((caddr_t) &sc->tones);
865 /*---------------------------------------------------------------------------*
866 * feedback from daemon in case of dial problems
867 *---------------------------------------------------------------------------*/
869 tel_dialresponse(int unit, int status, cause_t cause)
871 tel_sc_t *sc = &tel_sc[unit][FUNCDIAL];
873 NDBGL4(L4_TELDBG, "i4btel%d, status=%d, cause=0x%4x", unit, status, cause);
875 if((sc->devstate == ST_ISOPEN) && status)
877 sc->result = RSP_NOA;
879 if(sc->devstate & ST_RDWAITDATA)
881 sc->devstate &= ~ST_RDWAITDATA;
882 wakeup((caddr_t) &sc->result);
884 selwakeup(&sc->selp);
888 /*---------------------------------------------------------------------------*
890 *---------------------------------------------------------------------------*/
892 tel_updown(int unit, int updown)
896 /*---------------------------------------------------------------------------*
897 * this routine is called from the HSCX interrupt handler
898 * when a new frame (mbuf) has been received and was put on
900 *---------------------------------------------------------------------------*/
902 tel_rx_data_rdy(int unit)
904 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
906 if(sc->devstate & ST_RDWAITDATA)
908 sc->devstate &= ~ST_RDWAITDATA;
909 wakeup((caddr_t) &sc->isdn_linktab->rx_queue);
911 selwakeup(&sc->selp);
914 /*---------------------------------------------------------------------------*
915 * this routine is called from the HSCX interrupt handler
916 * when the last frame has been sent out and there is no
917 * further frame (mbuf) in the tx queue.
918 *---------------------------------------------------------------------------*/
920 tel_tx_queue_empty(int unit)
922 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
924 if(sc->devstate & ST_WRWAITEMPTY)
926 sc->devstate &= ~ST_WRWAITEMPTY;
927 wakeup((caddr_t) &sc->isdn_linktab->tx_queue);
929 if(sc->devstate & ST_TONE) {
932 selwakeup(&sc->selp);
936 /*---------------------------------------------------------------------------*
937 * this routine is called from the HSCX interrupt handler
938 * each time a packet is received or transmitted.
939 *---------------------------------------------------------------------------*/
941 tel_activity(int unit, int rxtx)
943 if(tel_sc[unit][FUNCTEL].cdp)
944 tel_sc[unit][FUNCTEL].cdp->last_active_time = SECOND;
947 /*---------------------------------------------------------------------------*
948 * return this drivers linktab address
949 *---------------------------------------------------------------------------*/
951 tel_ret_linktab(int unit)
953 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
955 tel_init_linktab(unit);
956 return(&sc->drvr_linktab);
959 /*---------------------------------------------------------------------------*
960 * setup the isdn_linktab for this driver
961 *---------------------------------------------------------------------------*/
963 tel_set_linktab(int unit, isdn_link_t *ilt)
965 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
966 sc->isdn_linktab = ilt;
969 /*---------------------------------------------------------------------------*
970 * initialize this drivers linktab
971 *---------------------------------------------------------------------------*/
973 tel_init_linktab(int unit)
975 tel_sc_t *sc = &tel_sc[unit][FUNCTEL];
977 sc->drvr_linktab.unit = unit;
978 sc->drvr_linktab.bch_rx_data_ready = tel_rx_data_rdy;
979 sc->drvr_linktab.bch_tx_queue_empty = tel_tx_queue_empty;
980 sc->drvr_linktab.bch_activity = tel_activity;
981 sc->drvr_linktab.line_connected = tel_connect;
982 sc->drvr_linktab.line_disconnected = tel_disconnect;
983 sc->drvr_linktab.dial_response = tel_dialresponse;
984 sc->drvr_linktab.updown_ind = tel_updown;
987 /*===========================================================================*
988 * AUDIO FORMAT CONVERSION (produced by running g711conv)
989 *===========================================================================*/
991 /*---------------------------------------------------------------------------*
992 * A-law to u-law conversion
993 *---------------------------------------------------------------------------*/
994 static unsigned char a2u_tab[256] = {
995 /* 00 */ 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d,
996 /* 08 */ 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25,
997 /* 10 */ 0x39, 0x3a, 0x37, 0x38, 0x3d, 0x3e, 0x3b, 0x3c,
998 /* 18 */ 0x31, 0x32, 0x30, 0x30, 0x35, 0x36, 0x33, 0x34,
999 /* 20 */ 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d,
1000 /* 28 */ 0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05,
1001 /* 30 */ 0x1a, 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d,
1002 /* 38 */ 0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15,
1003 /* 40 */ 0x62, 0x63, 0x60, 0x61, 0x66, 0x67, 0x64, 0x65,
1004 /* 48 */ 0x5d, 0x5d, 0x5c, 0x5c, 0x5f, 0x5f, 0x5e, 0x5e,
1005 /* 50 */ 0x74, 0x76, 0x70, 0x72, 0x7c, 0x7e, 0x78, 0x7a,
1006 /* 58 */ 0x6a, 0x6b, 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d,
1007 /* 60 */ 0x48, 0x49, 0x46, 0x47, 0x4c, 0x4d, 0x4a, 0x4b,
1008 /* 68 */ 0x40, 0x41, 0x3f, 0x3f, 0x44, 0x45, 0x42, 0x43,
1009 /* 70 */ 0x56, 0x57, 0x54, 0x55, 0x5a, 0x5b, 0x58, 0x59,
1010 /* 78 */ 0x4f, 0x4f, 0x4e, 0x4e, 0x52, 0x53, 0x50, 0x51,
1011 /* 80 */ 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad,
1012 /* 88 */ 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,
1013 /* 90 */ 0xb9, 0xba, 0xb7, 0xb8, 0xbd, 0xbe, 0xbb, 0xbc,
1014 /* 98 */ 0xb1, 0xb2, 0xb0, 0xb0, 0xb5, 0xb6, 0xb3, 0xb4,
1015 /* a0 */ 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d,
1016 /* a8 */ 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85,
1017 /* b0 */ 0x9a, 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d,
1018 /* b8 */ 0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95,
1019 /* c0 */ 0xe2, 0xe3, 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5,
1020 /* c8 */ 0xdd, 0xdd, 0xdc, 0xdc, 0xdf, 0xdf, 0xde, 0xde,
1021 /* d0 */ 0xf4, 0xf6, 0xf0, 0xf2, 0xfc, 0xfe, 0xf8, 0xfa,
1022 /* d8 */ 0xea, 0xeb, 0xe8, 0xe9, 0xee, 0xef, 0xec, 0xed,
1023 /* e0 */ 0xc8, 0xc9, 0xc6, 0xc7, 0xcc, 0xcd, 0xca, 0xcb,
1024 /* e8 */ 0xc0, 0xc1, 0xbf, 0xbf, 0xc4, 0xc5, 0xc2, 0xc3,
1025 /* f0 */ 0xd6, 0xd7, 0xd4, 0xd5, 0xda, 0xdb, 0xd8, 0xd9,
1026 /* f8 */ 0xcf, 0xcf, 0xce, 0xce, 0xd2, 0xd3, 0xd0, 0xd1
1029 /*---------------------------------------------------------------------------*
1030 * u-law to A-law conversion
1031 *---------------------------------------------------------------------------*/
1032 static unsigned char u2a_tab[256] = {
1033 /* 00 */ 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d,
1034 /* 08 */ 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25,
1035 /* 10 */ 0x3a, 0x3b, 0x38, 0x39, 0x3e, 0x3f, 0x3c, 0x3d,
1036 /* 18 */ 0x32, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34, 0x35,
1037 /* 20 */ 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d,
1038 /* 28 */ 0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05,
1039 /* 30 */ 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d, 0x12,
1040 /* 38 */ 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15, 0x6a,
1041 /* 40 */ 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d, 0x62, 0x63,
1042 /* 48 */ 0x60, 0x61, 0x66, 0x67, 0x64, 0x65, 0x7a, 0x78,
1043 /* 50 */ 0x7e, 0x7f, 0x7c, 0x7d, 0x72, 0x73, 0x70, 0x71,
1044 /* 58 */ 0x76, 0x77, 0x74, 0x75, 0x4b, 0x49, 0x4f, 0x4d,
1045 /* 60 */ 0x42, 0x43, 0x40, 0x41, 0x46, 0x47, 0x44, 0x45,
1046 /* 68 */ 0x5a, 0x5b, 0x58, 0x59, 0x5e, 0x5f, 0x5c, 0x5d,
1047 /* 70 */ 0x52, 0x52, 0x53, 0x53, 0x50, 0x50, 0x51, 0x51,
1048 /* 78 */ 0x56, 0x56, 0x57, 0x57, 0x54, 0x54, 0x55, 0x55,
1049 /* 80 */ 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad,
1050 /* 88 */ 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,
1051 /* 90 */ 0xba, 0xbb, 0xb8, 0xb9, 0xbe, 0xbf, 0xbc, 0xbd,
1052 /* 98 */ 0xb2, 0xb3, 0xb0, 0xb1, 0xb6, 0xb7, 0xb4, 0xb5,
1053 /* a0 */ 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d,
1054 /* a8 */ 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85,
1055 /* b0 */ 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d, 0x92,
1056 /* b8 */ 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95, 0xea,
1057 /* c0 */ 0xe8, 0xe9, 0xee, 0xef, 0xec, 0xed, 0xe2, 0xe3,
1058 /* c8 */ 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5, 0xfa, 0xf8,
1059 /* d0 */ 0xfe, 0xff, 0xfc, 0xfd, 0xf2, 0xf3, 0xf0, 0xf1,
1060 /* d8 */ 0xf6, 0xf7, 0xf4, 0xf5, 0xcb, 0xc9, 0xcf, 0xcd,
1061 /* e0 */ 0xc2, 0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5,
1062 /* e8 */ 0xda, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc, 0xdd,
1063 /* f0 */ 0xd2, 0xd2, 0xd3, 0xd3, 0xd0, 0xd0, 0xd1, 0xd1,
1064 /* f8 */ 0xd6, 0xd6, 0xd7, 0xd7, 0xd4, 0xd4, 0xd5, 0xd5
1067 /*---------------------------------------------------------------------------*
1068 * reverse bits in a byte
1069 *---------------------------------------------------------------------------*/
1070 static unsigned char bitreverse[256] = {
1071 /* 00 */ 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
1072 /* 08 */ 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
1073 /* 10 */ 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
1074 /* 18 */ 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
1075 /* 20 */ 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
1076 /* 28 */ 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
1077 /* 30 */ 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
1078 /* 38 */ 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
1079 /* 40 */ 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
1080 /* 48 */ 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
1081 /* 50 */ 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
1082 /* 58 */ 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
1083 /* 60 */ 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
1084 /* 68 */ 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
1085 /* 70 */ 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
1086 /* 78 */ 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
1087 /* 80 */ 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
1088 /* 88 */ 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
1089 /* 90 */ 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
1090 /* 98 */ 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
1091 /* a0 */ 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
1092 /* a8 */ 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
1093 /* b0 */ 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
1094 /* b8 */ 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
1095 /* c0 */ 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
1096 /* c8 */ 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
1097 /* d0 */ 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
1098 /* d8 */ 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
1099 /* e0 */ 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
1100 /* e8 */ 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
1101 /* f0 */ 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
1102 /* f8 */ 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
1105 static u_char sinetab[8000] = { 213, 213, 213, 213, 213, 213, 213, 212,
1106 212, 212, 212, 212, 212, 215, 215, 215, 215, 215, 215, 214, 214,
1107 214, 214, 214, 214, 209, 209, 209, 209, 209, 209, 209, 208, 208,
1108 208, 208, 208, 208, 211, 211, 211, 211, 211, 211, 210, 210, 210,
1109 210, 210, 210, 221, 221, 221, 221, 221, 221, 220, 220, 220, 220,
1110 220, 220, 220, 223, 223, 223, 223, 223, 223, 222, 222, 222, 222,
1111 222, 222, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216,
1112 216, 216, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218,
1113 218, 197, 197, 197, 197, 197, 197, 196, 196, 196, 196, 196, 196,
1114 196, 199, 199, 199, 199, 199, 199, 198, 198, 198, 198, 198, 198,
1115 193, 193, 193, 193, 193, 193, 192, 192, 192, 192, 192, 192, 192,
1116 195, 195, 195, 195, 195, 195, 194, 194, 194, 194, 194, 194, 205,
1117 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 204, 204, 207,
1118 207, 207, 207, 207, 207, 206, 206, 206, 206, 206, 206, 201, 201,
1119 201, 201, 201, 201, 200, 200, 200, 200, 200, 200, 200, 203, 203,
1120 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 245, 245, 245,
1121 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244,
1122 244, 244, 244, 244, 244, 244, 244, 244, 244, 247, 247, 247, 247,
1123 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246,
1124 246, 246, 246, 246, 246, 246, 246, 246, 246, 241, 241, 241, 241,
1125 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240,
1126 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, 243, 243, 243,
1127 243, 243, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242,
1128 242, 242, 242, 242, 242, 242, 242, 242, 253, 253, 253, 253, 253,
1129 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252,
1130 252, 252, 252, 252, 252, 252, 252, 255, 255, 255, 255, 255, 255,
1131 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254,
1132 254, 254, 254, 254, 254, 254, 254, 249, 249, 249, 249, 249, 249,
1133 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248,
1134 248, 248, 248, 248, 248, 248, 248, 251, 251, 251, 251, 251, 251,
1135 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250,
1136 250, 250, 250, 250, 250, 250, 250, 229, 229, 229, 229, 229, 229,
1137 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1138 229, 229, 229, 229, 229, 229, 229, 228, 228, 228, 228, 228, 228,
1139 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1140 228, 228, 228, 228, 228, 228, 228, 228, 231, 231, 231, 231, 231,
1141 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1142 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230,
1143 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1144 230, 230, 230, 230, 230, 230, 230, 230, 230, 225, 225, 225, 225,
1145 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1146 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224,
1147 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1148 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 227,
1149 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1150 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1151 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1152 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1153 226, 226, 226, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1154 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1155 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236,
1156 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1157 236, 236, 236, 236, 236, 236, 236, 236, 239, 239, 239, 239, 239,
1158 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1159 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238,
1160 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1161 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1162 238, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1163 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1164 233, 233, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232,
1165 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1166 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 235, 235, 235,
1167 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1168 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1169 235, 235, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1170 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1171 234, 234, 234, 234, 234, 234, 234, 149, 149, 149, 149, 149, 149,
1172 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1173 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1174 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1175 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1176 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148,
1177 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1178 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1179 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1180 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1181 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151,
1182 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1183 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1184 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1185 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1186 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1187 151, 151, 151, 151, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1188 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1189 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1190 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1191 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1192 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1193 150, 150, 150, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1194 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1195 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1196 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1197 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1198 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1199 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144,
1200 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1201 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1202 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1203 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1204 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1205 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1206 144, 144, 144, 144, 144, 144, 144, 144, 144, 147, 147, 147, 147,
1207 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1208 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1209 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1210 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1211 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1212 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1213 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1214 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 146, 146, 146,
1215 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1216 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1217 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1218 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1219 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1220 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1221 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1222 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1223 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1224 146, 146, 146, 146, 146, 146, 157, 157, 157, 157, 157, 157, 157,
1225 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1226 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1227 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1228 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1229 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1230 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1231 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1232 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1233 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1234 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1235 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1236 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1237 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1238 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1239 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1240 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1241 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1242 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1243 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1244 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1245 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1246 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1247 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1248 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1249 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1250 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1251 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1252 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1253 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1254 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1255 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1256 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1257 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1258 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1259 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1260 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1261 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1262 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1263 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1264 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1265 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1266 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1267 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1268 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1269 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1270 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1271 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1272 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1273 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1274 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1275 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1276 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1277 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1278 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1279 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
1280 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157,
1281 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1282 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1283 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1284 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1285 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1286 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1287 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1288 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1289 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1290 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1291 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1292 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1293 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
1294 157, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1295 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1296 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1297 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1298 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1299 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1300 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1301 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1302 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
1303 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147,
1304 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1305 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1306 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1307 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1308 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1309 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1310 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1311 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 144, 144,
1312 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1313 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1314 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1315 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1316 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1317 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1318 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145,
1319 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1320 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1321 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1322 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1323 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1324 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1325 145, 145, 145, 145, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1326 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1327 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1328 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1329 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1330 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1331 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1332 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1333 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1334 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1335 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1336 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148,
1337 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1338 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1339 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1340 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1341 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1342 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1343 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1344 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1345 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1346 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1347 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1348 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1349 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
1350 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1351 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 232, 232, 232,
1352 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1353 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1354 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1355 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1356 233, 233, 233, 233, 233, 233, 238, 238, 238, 238, 238, 238, 238,
1357 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1358 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239,
1359 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1360 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 236,
1361 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1362 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1363 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1364 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1365 237, 237, 237, 237, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1366 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1367 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 227,
1368 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1369 227, 227, 227, 227, 227, 227, 227, 227, 224, 224, 224, 224, 224,
1370 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1371 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225,
1372 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1373 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 230, 230,
1374 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1375 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231,
1376 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1377 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 228,
1378 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1379 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1380 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1381 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1382 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
1383 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1384 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1385 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1386 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1387 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
1388 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253,
1389 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 242,
1390 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243,
1391 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 240,
1392 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
1393 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 246, 246,
1394 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247,
1395 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 244, 244,
1396 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245,
1397 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 202, 202, 202,
1398 202, 202, 202, 203, 203, 203, 203, 203, 203, 200, 200, 200, 200,
1399 200, 200, 200, 201, 201, 201, 201, 201, 201, 206, 206, 206, 206,
1400 206, 206, 207, 207, 207, 207, 207, 207, 204, 204, 204, 204, 204,
1401 204, 204, 205, 205, 205, 205, 205, 205, 194, 194, 194, 194, 194,
1402 194, 195, 195, 195, 195, 195, 195, 192, 192, 192, 192, 192, 192,
1403 192, 193, 193, 193, 193, 193, 193, 198, 198, 198, 198, 198, 198,
1404 199, 199, 199, 199, 199, 199, 196, 196, 196, 196, 196, 196, 196,
1405 197, 197, 197, 197, 197, 197, 218, 218, 218, 218, 218, 218, 219,
1406 219, 219, 219, 219, 219, 216, 216, 216, 216, 216, 216, 216, 217,
1407 217, 217, 217, 217, 217, 222, 222, 222, 222, 222, 222, 223, 223,
1408 223, 223, 223, 223, 220, 220, 220, 220, 220, 220, 220, 221, 221,
1409 221, 221, 221, 221, 210, 210, 210, 210, 210, 210, 211, 211, 211,
1410 211, 211, 211, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209,
1411 209, 209, 209, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215,
1412 215, 215, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213,
1413 213, 213, 90, 90, 90, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 84,
1414 84, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86, 81, 81, 81,
1415 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 83, 83, 83, 83, 83, 83,
1416 82, 82, 82, 82, 82, 82, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92,
1417 92, 92, 92, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94, 89,
1418 89, 89, 89, 89, 89, 88, 88, 88, 88, 88, 88, 88, 91, 91, 91, 91,
1419 91, 91, 90, 90, 90, 90, 90, 90, 69, 69, 69, 69, 69, 69, 68, 68,
1420 68, 68, 68, 68, 68, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70,
1421 70, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64, 67, 67,
1422 67, 67, 67, 67, 66, 66, 66, 66, 66, 66, 77, 77, 77, 77, 77, 77,
1423 76, 76, 76, 76, 76, 76, 76, 79, 79, 79, 79, 79, 79, 78, 78, 78,
1424 78, 78, 78, 73, 73, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72,
1425 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 117, 117, 117, 117,
1426 117, 117, 117, 117, 117, 117, 117, 117, 117, 116, 116, 116, 116,
1427 116, 116, 116, 116, 116, 116, 116, 116, 116, 119, 119, 119, 119,
1428 119, 119, 119, 119, 119, 119, 119, 119, 118, 118, 118, 118, 118,
1429 118, 118, 118, 118, 118, 118, 118, 118, 113, 113, 113, 113, 113,
1430 113, 113, 113, 113, 113, 113, 113, 113, 112, 112, 112, 112, 112,
1431 112, 112, 112, 112, 112, 112, 112, 115, 115, 115, 115, 115, 115,
1432 115, 115, 115, 115, 115, 115, 115, 114, 114, 114, 114, 114, 114,
1433 114, 114, 114, 114, 114, 114, 114, 125, 125, 125, 125, 125, 125,
1434 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124,
1435 124, 124, 124, 124, 124, 124, 124, 127, 127, 127, 127, 127, 127,
1436 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126,
1437 126, 126, 126, 126, 126, 126, 121, 121, 121, 121, 121, 121, 121,
1438 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, 120, 120, 120,
1439 120, 120, 120, 120, 120, 120, 123, 123, 123, 123, 123, 123, 123,
1440 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122,
1441 122, 122, 122, 122, 122, 122, 101, 101, 101, 101, 101, 101, 101,
1442 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
1443 101, 101, 101, 101, 101, 101, 101, 100, 100, 100, 100, 100, 100,
1444 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1445 100, 100, 100, 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1446 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1447 103, 103, 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 102,
1448 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1449 102, 102, 102, 102, 102, 102, 102, 102, 102, 97, 97, 97, 97, 97,
1450 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1451 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1452 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1453 96, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1454 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98,
1455 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1456 98, 98, 98, 98, 98, 98, 98, 98, 98, 109, 109, 109, 109, 109, 109,
1457 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1458 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 108, 108, 108,
1459 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1460 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111,
1461 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1462 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1463 111, 111, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1464 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1465 110, 110, 110, 110, 110, 110, 105, 105, 105, 105, 105, 105, 105,
1466 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1467 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104,
1468 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1469 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1470 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1471 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1472 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106,
1473 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1474 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21,
1475 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1476 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1477 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1478 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1479 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1480 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1481 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1482 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1483 20, 20, 20, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1484 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1485 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1486 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1487 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22,
1488 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1489 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1490 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1491 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1492 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 17, 17, 17, 17, 17, 17,
1493 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1494 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1495 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1496 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1497 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16,
1498 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1499 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1500 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1501 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1502 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1503 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 19, 19, 19, 19, 19, 19,
1504 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1505 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1506 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1507 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1508 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1509 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1510 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1511 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1512 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1513 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1514 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1515 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1516 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1517 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1518 18, 18, 18, 18, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1519 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1520 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1521 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1522 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1523 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1524 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1525 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1526 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1527 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1528 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1529 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28,
1530 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1531 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1532 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1533 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1534 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1535 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1536 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1537 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1538 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1539 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1540 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1541 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1542 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1543 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1544 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1545 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1546 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1547 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1548 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1549 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1550 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1551 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1552 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1553 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1554 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1555 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1556 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1557 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1558 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1559 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1560 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1561 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1562 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1563 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1564 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1565 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1566 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1567 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1568 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1569 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1570 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1571 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1572 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1573 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 18, 18, 18, 18,
1574 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1575 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1576 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1577 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1578 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1579 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1580 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1581 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
1582 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1583 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1584 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1585 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1586 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1587 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1588 19, 19, 19, 19, 19, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1589 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1590 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1591 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1592 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1593 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1594 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1595 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1596 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1597 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1598 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1599 17, 17, 17, 17, 17, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1600 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1601 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1602 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1603 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1604 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1605 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1606 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1607 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1608 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 20, 20, 20,
1609 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1610 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1611 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
1612 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,
1613 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1614 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1615 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1616 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1617 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1618 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
1619 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107,
1620 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
1621 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104,
1622 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1623 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1624 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1625 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1626 105, 105, 105, 105, 105, 105, 110, 110, 110, 110, 110, 110, 110,
1627 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1628 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111,
1629 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1630 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
1631 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1632 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1633 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1634 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
1635 109, 109, 109, 109, 109, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1636 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1637 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1638 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 96, 96,
1639 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
1640 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97,
1641 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1642 97, 97, 97, 97, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1643 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1644 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1645 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1646 103, 103, 103, 103, 103, 100, 100, 100, 100, 100, 100, 100, 100,
1647 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1648 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101,
1649 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
1650 101, 101, 101, 101, 101, 101, 122, 122, 122, 122, 122, 122, 122,
1651 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123,
1652 123, 123, 123, 123, 123, 123, 120, 120, 120, 120, 120, 120, 120,
1653 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121,
1654 121, 121, 121, 121, 121, 121, 126, 126, 126, 126, 126, 126, 126,
1655 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127,
1656 127, 127, 127, 127, 127, 124, 124, 124, 124, 124, 124, 124, 124,
1657 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125,
1658 125, 125, 125, 125, 125, 114, 114, 114, 114, 114, 114, 114, 114,
1659 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115,
1660 115, 115, 115, 115, 115, 112, 112, 112, 112, 112, 112, 112, 112,
1661 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 113,
1662 113, 113, 113, 113, 118, 118, 118, 118, 118, 118, 118, 118, 118,
1663 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119,
1664 119, 119, 119, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
1665 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
1666 117, 117, 117, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 72,
1667 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 78, 78, 78, 78,
1668 78, 78, 79, 79, 79, 79, 79, 79, 76, 76, 76, 76, 76, 76, 76, 77,
1669 77, 77, 77, 77, 77, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67,
1670 67, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 70, 70,
1671 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 68, 68, 68, 68, 68, 68,
1672 68, 69, 69, 69, 69, 69, 69, 90, 90, 90, 90, 90, 90, 91, 91, 91,
1673 91, 91, 91, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89,
1674 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92,
1675 92, 92, 93, 93, 93, 93, 93, 93, 93, 82, 82, 82, 82, 82, 82, 83,
1676 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81,
1677 81, 81, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 84, 84,
1678 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 90, 90, 90 };
1680 /*===========================================================================*/
1682 #endif /* NI4BTEL > 0 */