70 #include <sys/types.h>    71 #include <sys/socket.h>   107     char *tmpbuff = NULL;
   110     int cmd = 0, err = 0;
   113     tmpbuff = gw_malloc(10 * 1024);
   114     memset(tmpbuff, 0, 10*1024);
   127         if (strstr(smsc->
buffer, 
"CIMD rel 1.37\n") != NULL)
   129         if (ret < 0) 
goto logout;
   132     debug(
"bb.sms.cimd", 0, 
"got the server identification tag");
   137     sprintf(tmpbuff, 
"%c%s%c%s%c%s%c%s%c%c",
   146     if (ret < 0) 
goto logout;
   155     debug(
"bb.sms.cimd", 0, 
"logged in");
   164     error(0, 
"cimd_open: could not open/handshake");
   182     if (smsc == NULL) 
goto error;
   199     error(0, 
"cimd_open: could not open!");
   216         error(0, 
"Failed to re-open the connection!");
   236         debug(
"bb.sms.cimd", 0, 
"Trying to close cimd while already closed!");
   239     cbuff = gw_malloc(2 * 1024);
   241     sprintf(cbuff, 
"%c%s%c%s%c%c", 0x02, 
"02", 0x09, 
"11", 0x03, 0x0A);
   244     if (sum < 0) 
goto error;
   247     recv(smsc->
socket, cbuff, 2*1024, 0);
   251     ret = close(smsc->
socket);
   267     char *tmpbuff = NULL, *newline = NULL;
   276     thetime = time(NULL);
   281     tmpbuff = gw_malloc(10 * 1024);
   282     memset(tmpbuff, 0, 10*1024);
   284     sprintf(tmpbuff, 
"%c%s%c%s%c%c",
   293         debug(
"bb.sms.cimd", 0, 
"sending poll message failed");
   300         if (newline != NULL) 
break;
   303         if (newline != NULL) 
break;
   307             debug(
"bb.sms.cimd", 0, 
"read_into_buffer failed!, ret=%d", ret);
   314         if (time(NULL) > (thetime + 30)) {
   316             error(0, 
"timeout occurred, maybe the connection was broken?");
   330     if (newline != NULL) {
   348     debug(
"bb.sms.cimd", 0, 
"smscenter_pending_smsmessage: returning error");
   361     char *tmpbuff = NULL, *tmptext = NULL;
   364     int cmd = 0, err = 0;
   369     if (
msg->sms.msgdata == NULL)
   374         warning(0, 
"cimd_submit_smsmessage: ignoring message with 0-length field");
   378         warning(0, 
"cimd_submit_smsmessage: ignoring message with 0-length field");
   382     tmpbuff = gw_malloc(10 * 1024);
   383     tmptext = gw_malloc(10 * 1024);
   385     memset(tmpbuff, 0, 10*1024);
   386     memset(tmptext, 0, 10*1024);
   387     memset(msgtext, 0, 
sizeof(msgtext));
   406     sprintf(tmpbuff, 
"%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%c",
   418         debug(
"bb.sms.cimd", 0, 
"cimd_submit_smsmessage: socket write error");
   433         } 
else if (cmd == 3) {
   437     } 
else if (ret == 0) {
   443         } 
else if (cmd == 3) {
   447             error(0, 
"Unexpected behaviour from the CIMD server");
   448             debug(
"bb.sms.cimd", 0, 
"cimd_submit_smsmessage: acknowledge was <%i>", ret);
   449             debug(
"bb.sms.cimd", 0, 
"cimd_submit_smsmessage: buffer==<%s>", smsc->
buffer);
   461     debug(
"bb.sms.cimd", 0, 
"cimd_submit_smsmessage: returning error");
   473     char *tmpbuff = NULL, *sender = NULL;
   475     char *tmpchar = NULL;
   477     debug(
"bb.sms.cimd", 0, 
"cimd_receive_smsmessage: starting");
   484     tmpbuff = gw_malloc(10 * 1024);
   485     sender = gw_malloc(10 * 1024);
   487     text = gw_malloc(10 * 1024);
   488     scts = gw_malloc(10 * 1024);
   490     memset(tmpbuff, 0, 10 * 1024);
   491     memset(sender, 0, 10 * 1024);
   493     memset(
text, 0, 10 * 1024);
   494     memset(scts, 0, 10 * 1024);
   498     if (tmpchar == NULL) {
   500         if (tmpchar == NULL) 
goto error;
   508            "\x02\x06\tC:05\t%[^\t]\t%[^\t]\t%[^\t]\t%[^\t]\t11\x03\x0A",
   512            "\x02\x06\tC:05\t%[^\t]\t%[^\t]\t%[^\t]\t%[^\t]\t11\x03",
   517     strncpy(
text, tmpbuff, 480);
   521     if (*
msg == NULL) 
return -1;
   540     debug(
"bb.sms.cimd", 0, 
"cimd_receive_smsmessage: return ok");
   545     debug(
"bb.sms.cimd", 0, 
"cimd_receive_smsmessage: failed");
   552     debug(
"bb.sms.cimd", 0, 
"cimd_receive_smsmessage: return failed");
   564     char *tmpbuff = NULL;
   566     int cmd = 0, err = 0;
   568     debug(
"bb.sms.cimd", 0, 
"reconnecting to <%s>", smsc->
name);
   571     tmpbuff = gw_malloc(10 * 1024);
   572     memset(tmpbuff, 0, 10*1024);
   586         if (smsc->
socket != -1) 
break;
   599         if (ret < 0) 
goto logout;
   600         if (strstr(smsc->
buffer, 
"CIMD rel 1.37\n") != NULL)
   607     sprintf(tmpbuff, 
"%c%s%c%s%c%s%c%s%c%c",
   616     if (ret < 0) 
goto logout;
   625     debug(
"bb.sms.cimd", 0, 
"cimd_connect_tcpip: logged in");
   646     if (tmpbuff == NULL) {
   647         error(0, 
"cimd_send_acknowledge: memory allocation failure");
   651     memset(tmpbuff, 0, 
sizeof(tmpbuff));
   653     sprintf(tmpbuff, 
"\2\6\t11\3\n");
   657         error(0, 
"cimd_send_acknowledge: connection failure");
   664     debug(
"bb.sms.cimd", 0, 
"cimd_send_acknowledge: failed");
   675     char *end_of_dataset = NULL;
   676     char *ack = NULL, *nck = NULL;
   677     char *cmdspecifier = NULL, *errorspecifier = NULL;
   685     if (smsc == NULL) 
goto error;
   691         end_of_dataset = memchr(smsc->
buffer, 
'\n', smsc->
buflen);
   692         if (end_of_dataset != NULL) 
break;
   695         end_of_dataset = memchr(smsc->
buffer, 0x03, smsc->
buflen);
   696         if (end_of_dataset != NULL) 
break;
   700             if (errno == EAGAIN) 
continue;
   701             if (errno == EINTR) 
continue;
   710         if (time(NULL) > (thetime + 30)) {
   712             error(0, 
"timeout occurred, maybe the connection was broken?");
   713             if (errno == EPIPE) {
   714                 error(0, 
"broken pipe");
   724     ack = memchr(smsc->
buffer, 0x06, end_of_dataset - smsc->
buffer);
   725     nck = memchr(smsc->
buffer, 0x15, end_of_dataset - smsc->
buffer);
   728     cmdspecifier = strstr(smsc->
buffer, 
"\tC:");
   729     if (cmdspecifier != NULL)
   730         *cmd = strtol(cmdspecifier + 3, NULL, 10);
   734     errorspecifier = strstr(smsc->
buffer, 
"\tE:");
   735     if (errorspecifier != NULL)
   736         *err = strtol(errorspecifier + 3, NULL, 10);
   740     debug(
"bb.sms.cimd", 0, 
"cimd_pending_smsmessage: smsc->buffer == <%s>", smsc->
buffer);
   747         info(0, 
"cimd_pending_smsmessage: got ACK");
   753         info(0, 
"cimd_pending_smsmessage: got NCK");
   759     error(0, 
"cimd_expect_acknowledge failed");
   773     if (
from == NULL || to == NULL || length == 0)
   778     while ((*
from != 
'\0') && ((
int) strlen(temp) < (length - 2))) {
   782         case '@': strcat(to, 
"_Oa"); to += 3; 
break;
   783         case '£': strcat(to, 
"_L-"); to += 3; 
break;
   795         case 'Å': strcat(to, 
"_A*"); to += 3; 
break;
   796         case 'å': strcat(to, 
"_a*"); to += 3; 
break;
   797         case 'ä': strcat(to, 
"_a\""); to += 3; 
break;
   798         case 'ö': strcat(to, 
"_o\""); to += 3; 
break;
   799         case 'Ä': strcat(to, 
"_A\""); to += 3; 
break;
   800         case 'Ö': strcat(to, 
"_O\""); to += 3; 
break;
   801         case '¥': strcat(to, 
"_Y-"); to += 3; 
break;
   802         case 'è': strcat(to, 
"_e`"); to += 3; 
break;
   803         case 'é': strcat(to, 
"_e´"); to += 3; 
break;
   804         case 'ù': strcat(to, 
"_u`"); to += 3; 
break;
   805         case 'ì': strcat(to, 
"_i`"); to += 3; 
break;
   806         case 'ò': strcat(to, 
"_o`"); to += 3; 
break;
   807         case 'Ç': strcat(to, 
"_C,"); to += 3; 
break;
   808         case 'Ø': strcat(to, 
"_O/"); to += 3; 
break;
   809         case 'ø': strcat(to, 
"_o/"); to += 3; 
break;
   810         case 'Æ': strcat(to, 
"_AE"); to += 3; 
break;
   811         case 'æ': strcat(to, 
"_ae"); to += 3; 
break;
   812         case 'ß': strcat(to, 
"_ss"); to += 3; 
break;
   813         case 'É': strcat(to, 
"_E´"); to += 3; 
break;
   814         case '¿': strcat(to, 
"_??"); to += 3; 
break;
   815         case 'Ü': strcat(to, 
"_U\""); to += 3; 
break;
   816         case 'ñ': strcat(to, 
"_n~"); to += 3; 
break;
   817         case 'ü': strcat(to, 
"_u\""); to += 3; 
break;
   818         case 'à': strcat(to, 
"_a`"); to += 3; 
break;
   819         case '¡': strcat(to, 
"_!!"); to += 3; 
break;
   820         case '_': strcat(to, 
"_--"); to += 3; 
break;
   821         case 'Ñ': strcat(to, 
"_N~"); to += 3; 
break;
   822         case '!': strcat(to, 
"!"); to++; 
break;
   823         case '"': strcat(to, 
"\""); to++; 
break;
   824         case '#': strcat(to, 
"#"); to++; 
break;
   825         case '¤': strcat(to, 
"¤"); to++; 
break;
   826         case '%': strcat(to, 
"%"); to++; 
break;
   827         case '&': strcat(to, 
"&"); to++; 
break;
   828         case '\'': strcat(to, 
"'"); to++; 
break;
   829         case '(': strcat(to, 
"("); to++; 
break;
   830         case ')': strcat(to, 
")"); to++; 
break;
   831         case '*': strcat(to, 
"*"); to++; 
break;
   832         case '+': strcat(to, 
"+"); to++; 
break;
   833         case ',': strcat(to, 
","); to++; 
break;
   834         case '-': strcat(to, 
"-"); to++; 
break;
   835         case '.': strcat(to, 
"."); to++; 
break;
   836         case '/': strcat(to, 
"/"); to++; 
break;
   837         case '0': strcat(to, 
"0"); to++; 
break;
   838         case '1': strcat(to, 
"1"); to++; 
break;
   839         case '2': strcat(to, 
"2"); to++; 
break;
   840         case '3': strcat(to, 
"3"); to++; 
break;
   841         case '4': strcat(to, 
"4"); to++; 
break;
   842         case '5': strcat(to, 
"5"); to++; 
break;
   843         case '6': strcat(to, 
"6"); to++; 
break;
   844         case '7': strcat(to, 
"7"); to++; 
break;
   845         case '8': strcat(to, 
"8"); to++; 
break;
   846         case '9': strcat(to, 
"9"); to++; 
break;
   847         case ':': strcat(to, 
":"); to++; 
break;
   848         case ';': strcat(to, 
";"); to++; 
break;
   849         case '<': strcat(to, 
"<"); to++; 
break;
   850         case '=': strcat(to, 
"="); to++; 
break;
   851         case '>': strcat(to, 
">"); to++; 
break;
   852         case '?': strcat(to, 
"?"); to++; 
break;
   853         case 'A': strcat(to, 
"A"); to++; 
break;
   854         case 'B': strcat(to, 
"B"); to++; 
break;
   855         case 'C': strcat(to, 
"C"); to++; 
break;
   856         case 'D': strcat(to, 
"D"); to++; 
break;
   857         case 'E': strcat(to, 
"E"); to++; 
break;
   858         case 'F': strcat(to, 
"F"); to++; 
break;
   859         case 'G': strcat(to, 
"G"); to++; 
break;
   860         case 'H': strcat(to, 
"H"); to++; 
break;
   861         case 'I': strcat(to, 
"I"); to++; 
break;
   862         case 'J': strcat(to, 
"J"); to++; 
break;
   863         case 'K': strcat(to, 
"K"); to++; 
break;
   864         case 'L': strcat(to, 
"L"); to++; 
break;
   865         case 'M': strcat(to, 
"M"); to++; 
break;
   866         case 'N': strcat(to, 
"N"); to++; 
break;
   867         case 'O': strcat(to, 
"O"); to++; 
break;
   868         case 'P': strcat(to, 
"P"); to++; 
break;
   869         case 'Q': strcat(to, 
"Q"); to++; 
break;
   870         case 'R': strcat(to, 
"R"); to++; 
break;
   871         case 'S': strcat(to, 
"S"); to++; 
break;
   872         case 'T': strcat(to, 
"T"); to++; 
break;
   873         case 'U': strcat(to, 
"U"); to++; 
break;
   874         case 'V': strcat(to, 
"V"); to++; 
break;
   875         case 'W': strcat(to, 
"W"); to++; 
break;
   876         case 'X': strcat(to, 
"X"); to++; 
break;
   877         case 'Y': strcat(to, 
"Y"); to++; 
break;
   878         case 'Z': strcat(to, 
"Z"); to++; 
break;
   879         case 'a': strcat(to, 
"a"); to++; 
break;
   880         case 'b': strcat(to, 
"b"); to++; 
break;
   881         case 'c': strcat(to, 
"c"); to++; 
break;
   882         case 'd': strcat(to, 
"d"); to++; 
break;
   883         case 'e': strcat(to, 
"e"); to++; 
break;
   884         case 'f': strcat(to, 
"f"); to++; 
break;
   885         case 'g': strcat(to, 
"g"); to++; 
break;
   886         case 'h': strcat(to, 
"h"); to++; 
break;
   887         case 'i': strcat(to, 
"i"); to++; 
break;
   888         case 'j': strcat(to, 
"j"); to++; 
break;
   889         case 'k': strcat(to, 
"k"); to++; 
break;
   890         case 'l': strcat(to, 
"l"); to++; 
break;
   891         case 'm': strcat(to, 
"m"); to++; 
break;
   892         case 'n': strcat(to, 
"n"); to++; 
break;
   893         case 'o': strcat(to, 
"o"); to++; 
break;
   894         case 'p': strcat(to, 
"p"); to++; 
break;
   895         case 'q': strcat(to, 
"q"); to++; 
break;
   896         case 'r': strcat(to, 
"r"); to++; 
break;
   897         case 's': strcat(to, 
"s"); to++; 
break;
   898         case 't': strcat(to, 
"t"); to++; 
break;
   899         case 'u': strcat(to, 
"u"); to++; 
break;
   900         case 'v': strcat(to, 
"v"); to++; 
break;
   901         case 'w': strcat(to, 
"w"); to++; 
break;
   902         case 'x': strcat(to, 
"x"); to++; 
break;
   903         case 'y': strcat(to, 
"y"); to++; 
break;
   904         case 'z': strcat(to, 
"z"); to++; 
break;
   905         case ' ': strcat(to, 
" "); to++; 
break;
   906         case '\r': strcat(to, 
"\r"); to++; 
break;
   907         case '\n': strcat(to, 
"\n"); to++; 
break;
   909         default: strcat(to, 
"_??"); to += 3; 
break;
   926     int my_int, temp_int;
   930     for (my_int = 0; my_int < (int)strlen(
from) && (int)strlen(to) < length; ) {
   932         if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'a' && 
from[my_int + 2] == 
'"') {
   933             strcat(to, 
"ä );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '*') {
            strcat(to, "å");
            my_int += 3;
        }
        /* argh, this drives me nu---uuutts */
        else if (from[my_int] == '@') {
            strcat(to, "@");
            my_int ++;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == 'a') {
            strcat(to, "@");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'L' && from[my_int + 2] == '-') {
            strcat(to, "£");
            my_int += 3;
        }
        /* this following one is against specifications but what to do
         * when it works?!? (the other is NOT used) rpr 1.10. */
        else if (from[my_int] == '$') {
            strcat(to, "$");
            my_int ++;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == '$' && from[my_int + 2] == ' ') {
            strcat(to, "$");
            my_int += 3;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '*') {
            strcat(to, "Å");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '"') {
            strcat(to, "ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '"') {
            strcat(to, "Ä");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '"') {
            strcat(to, "Ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   935         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'a' && 
from[my_int + 2] == 
'*') {
   936             strcat(to, 
"å );
            my_int += 3;
        }
        /* argh, this drives me nu---uuutts */
        else if (from[my_int] == '@') {
            strcat(to, "@");
            my_int ++;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == 'a') {
            strcat(to, "@");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'L' && from[my_int + 2] == '-') {
            strcat(to, "£");
            my_int += 3;
        }
        /* this following one is against specifications but what to do
         * when it works?!? (the other is NOT used) rpr 1.10. */
        else if (from[my_int] == '$') {
            strcat(to, "$");
            my_int ++;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == '$' && from[my_int + 2] == ' ') {
            strcat(to, "$");
            my_int += 3;
        }
        else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '*') {
            strcat(to, "Å");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '"') {
            strcat(to, "ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '"') {
            strcat(to, "Ä");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '"') {
            strcat(to, "Ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   942         else if (
from[my_int] == 
'@') {
   946         else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'O' && 
from[my_int + 2] == 
'a') {
   949         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'L' && 
from[my_int + 2] == 
'-') {
   957         else if (
from[my_int] == 
'$') {
   961         else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'$' && 
from[my_int + 2] == 
' ') {
   965         else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'A' && 
from[my_int + 2] == 
'*') {
   966             strcat(to, 
"Å );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '"') {
            strcat(to, "ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '"') {
            strcat(to, "Ä");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '"') {
            strcat(to, "Ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   968         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'o' && 
from[my_int + 2] == 
'"') {
   969             strcat(to, 
"ö );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == '"') {
            strcat(to, "Ä");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '"') {
            strcat(to, "Ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   971         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'A' && 
from[my_int + 2] == 
'"') {
   972             strcat(to, 
"Ä );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '"') {
            strcat(to, "Ö");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   974         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'O' && 
from[my_int + 2] == 
'"') {
   975             strcat(to, 
"Ö );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'Y' && from[my_int + 2] == '-') {
            strcat(to, "¥");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '`') {
            strcat(to, "è");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   977         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'Y' && 
from[my_int + 2] == 
'-') {
   980         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'e' && 
from[my_int + 2] == 
'`') {
   981             strcat(to, 
"è );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'e' && from[my_int + 2] == '´') {
            strcat(to, "é");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   983         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'e' && 
from[my_int + 2] == 
'´') {
   984             strcat(to, 
"é );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '`') {
            strcat(to, "ù");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   986         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'u' && 
from[my_int + 2] == 
'`') {
   987             strcat(to, 
"ù );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'i' && from[my_int + 2] == '`') {
            strcat(to, "ì");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   989         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'i' && 
from[my_int + 2] == 
'`') {
   990             strcat(to, 
"ì );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '`') {
            strcat(to, "ò");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   992         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'o' && 
from[my_int + 2] == 
'`') {
   993             strcat(to, 
"ò );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'C' && from[my_int + 2] == ',') {
            strcat(to, "Ç");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   995         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'C' && 
from[my_int + 2] == 
',') {
   996             strcat(to, 
"Ç );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'O' && from[my_int + 2] == '/') {
            strcat(to, "Ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
   998         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'O' && 
from[my_int + 2] == 
'/') {
   999             strcat(to, 
"Ø );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'o' && from[my_int + 2] == '/') {
            strcat(to, "ø");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1001         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'o' && 
from[my_int + 2] == 
'/') {
  1002             strcat(to, 
"ø );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'A' && from[my_int + 2] == 'E') {
            strcat(to, "Æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1004         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'A' && 
from[my_int + 2] == 
'E') {
  1005             strcat(to, 
"Æ );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == 'e') {
            strcat(to, "æ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1007         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'a' && 
from[my_int + 2] == 
'e') {
  1008             strcat(to, 
"æ );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 's' && from[my_int + 2] == 's') {
            strcat(to, "ß");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1010         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
's' && 
from[my_int + 2] == 
's') {
  1011             strcat(to, 
"ß );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'E' && from[my_int + 2] == '´') {
            strcat(to, "É");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1013         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'E' && 
from[my_int + 2] == 
'´') {
  1014             strcat(to, 
"É );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '?' && from[my_int + 2] == '?') {
            strcat(to, "¿");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'U' && from[my_int + 2] == '"') {
            strcat(to, "Ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1016         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'?' && 
from[my_int + 2] == 
'?') {
  1019         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'U' && 
from[my_int + 2] == 
'"') {
  1020             strcat(to, 
"Ü );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'n' && from[my_int + 2] == '~' ) {
            strcat(to, "ñ");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1022         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'n' && 
from[my_int + 2] == 
'~' ) {
  1023             strcat(to, 
"ñ );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'u' && from[my_int + 2] == '"') {
            strcat(to, "ü");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1025         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'u' && 
from[my_int + 2] == 
'"') {
  1026             strcat(to, 
"ü );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'a' && from[my_int + 2] == '`') {
            strcat(to, "à");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1028         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'a' && 
from[my_int + 2] == 
'`') {
  1029             strcat(to, 
"à );
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '!' && from[my_int + 2] == '!') {
            strcat(to, "¡");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == '-' && from[my_int + 2] == '-') {
            strcat(to, "_");
            my_int += 3;
        } else if (from[my_int] == '_' && from[my_int + 1] == 'N' && from[my_int + 2] == '~') {
            strcat(to, "_");
            my_int += 3;
        }
        /* I just LOVE the designers of this protocol -mg */
        else if (from[my_int] == ']') {
            strcat(to, "Å");
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1031         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'!' && 
from[my_int + 2] == 
'!') {
  1034         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'-' && 
from[my_int + 2] == 
'-') {
  1037         } 
else if (
from[my_int] == 
'_' && 
from[my_int + 1] == 
'N' && 
from[my_int + 2] == 
'~') {
  1043         else if (
from[my_int] == 
']') {
  1044             strcat(to, 
"Å );
            my_int++;
        } else if (from[my_int] == '}') {
            strcat(to, "å");
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1046         } 
else if (
from[my_int] == 
'}') {
  1047             strcat(to, 
"å );
            my_int++;
        } else if (from[my_int] == '[') {
            strcat(to, "Ä");
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1049         } 
else if (
from[my_int] == 
'[') {
  1050             strcat(to, 
"Ä );
            my_int++;
        } else if (from[my_int] == '{') {
            strcat(to, "ä");
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1052         } 
else if (
from[my_int] == 
'{') {
  1053             strcat(to, 
"ä );
            my_int++;
        } else if (from[my_int] == '\\') {
            strcat(to, "Ö");
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1055         } 
else if (
from[my_int] == 
'\\') {
  1056             strcat(to, 
"Ö );
            my_int++;
        } else if (from[my_int] == '|') {
            strcat(to, "ö");
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1058         } 
else if (
from[my_int] == 
'|') {
  1059             strcat(to, 
"ö );
            my_int++;
        }
        else if (from[my_int] == '!') {
            strcat(to, "!");
            my_int++;
        } else if (from[my_int] == '"') {
            strcat(to, "\"");
            my_int++;
        } else if (from[my_int] == '#') {
            strcat(to, "#");
            my_int++;
        } else if (from[my_int] == '¤') {
            strcat(to, "¤");
            my_int++;
        } else if (from[my_int] == '%') {
            strcat(to, "%");
            my_int++;
        } else if (from[my_int] == '&') {
            strcat(to, "&");
            my_int++;
        } else if (from[my_int] == '\'') {
            strcat(to, "'");
            my_int++;
        } else if (from[my_int] == '(') {
            strcat(to, "(");
            my_int++;
        } else if (from[my_int] == ')') {
            strcat(to, ")");
            my_int++;
        } else if (from[my_int] == '*') {
            strcat(to, "*");
            my_int++;
        } else if (from[my_int] == '+') {
            strcat(to, "+");
            my_int++;
        } else if (from[my_int] == ',') {
            strcat(to, ",");
            my_int++;
        } else if (from[my_int] == '-') {
            strcat(to, "-");
            my_int++;
        } else if (from[my_int] == '.') {
            strcat(to, ".");
            my_int++;
        } else if (from[my_int] == '/') {
            strcat(to, "/");
            my_int++;
        } else if (from[my_int] == '0') {
            strcat(to, "0");
            my_int++;
        } else if (from[my_int] == '1') {
            strcat(to, "1");
            my_int++;
        } else if (from[my_int] == '2') {
            strcat(to, "2");
            my_int++;
        } else if (from[my_int] == '3') {
            strcat(to, "3");
            my_int++;
        } else if (from[my_int] == '4') {
            strcat(to, "4");
            my_int++;
        } else if (from[my_int] == '5') {
            strcat(to, "5");
            my_int++;
        } else if (from[my_int] == '6') {
            strcat(to, "6");
            my_int++;
        } else if (from[my_int] == '7') {
            strcat(to, "7");
            my_int++;
        } else if (from[my_int] == '8') {
            strcat(to, "8");
            my_int++;
        } else if (from[my_int] == '9') {
            strcat(to, "9");
            my_int++;
        } else if (from[my_int] == ':') {
            strcat(to, ":");
            my_int++;
        } else if (from[my_int] == ';') {
            strcat(to, ";");
            my_int++;
        } else if (from[my_int] == '<') {
            strcat(to, "<");
            my_int++;
        } else if (from[my_int] == '=') {
            strcat(to, "=");
            my_int++;
        } else if (from[my_int] == '>') {
            strcat(to, ">");
            my_int++;
        } else if (from[my_int] == '?') {
            strcat(to, "?");
            my_int++;
        } else if (from[my_int] == 'A') {
            strcat(to, "A");
            my_int++;
        } else if (from[my_int] == 'B') {
            strcat(to, "B");
            my_int++;
        } else if (from[my_int] == 'C') {
            strcat(to, "C");
            my_int++;
        } else if (from[my_int] == 'D') {
            strcat(to, "D");
            my_int++;
        } else if (from[my_int] == 'E') {
            strcat(to, "E");
            my_int++;
        } else if (from[my_int] == 'F') {
            strcat(to, "F");
            my_int++;
        } else if (from[my_int] == 'G') {
            strcat(to, "G");
            my_int++;
        } else if (from[my_int] == 'H') {
            strcat(to, "H");
            my_int++;
        } else if (from[my_int] == 'I') {
            strcat(to, "I");
            my_int++;
        } else if (from[my_int] == 'J') {
            strcat(to, "J");
            my_int++;
        } else if (from[my_int] == 'K') {
            strcat(to, "K");
            my_int++;
        } else if (from[my_int] == 'L') {
            strcat(to, "L");
            my_int++;
        } else if (from[my_int] == 'M') {
            strcat(to, "M");
            my_int++;
        } else if (from[my_int] == 'N') {
            strcat(to, "N");
            my_int++;
        } else if (from[my_int] == 'O') {
            strcat(to, "O");
            my_int++;
        } else if (from[my_int] == 'P') {
            strcat(to, "P");
            my_int++;
        } else if (from[my_int] == 'Q') {
            strcat(to, "Q");
            my_int++;
        } else if (from[my_int] == 'R') {
            strcat(to, "R");
            my_int++;
        } else if (from[my_int] == 'S') {
            strcat(to, "S");
            my_int++;
        } else if (from[my_int] == 'T') {
            strcat(to, "T");
            my_int++;
        } else if (from[my_int] == 'U') {
            strcat(to, "U");
            my_int++;
        } else if (from[my_int] == 'V') {
            strcat(to, "V");
            my_int++;
        } else if (from[my_int] == 'W') {
            strcat(to, "W");
            my_int++;
        } else if (from[my_int] == 'X') {
            strcat(to, "X");
            my_int++;
        } else if (from[my_int] == 'Y') {
            strcat(to, "Y");
            my_int++;
        } else if (from[my_int] == 'Z') {
            strcat(to, "Z");
            my_int++;
        } else if (from[my_int] == 'a') {
            strcat(to, "a");
            my_int++;
        } else if (from[my_int] == 'b') {
            strcat(to, "b");
            my_int++;
        } else if (from[my_int] == 'c') {
            strcat(to, "c");
            my_int++;
        } else if (from[my_int] == 'd') {
            strcat(to, "d");
            my_int++;
        } else if (from[my_int] == 'e') {
            strcat(to, "e");
            my_int++;
        } else if (from[my_int] == 'f') {
            strcat(to, "f");
            my_int++;
        } else if (from[my_int] == 'g') {
            strcat(to, "g");
            my_int++;
        } else if (from[my_int] == 'h') {
            strcat(to, "h");
            my_int++;
        } else if (from[my_int] == 'i') {
            strcat(to, "i");
            my_int++;
        } else if (from[my_int] == 'j') {
            strcat(to, "j");
            my_int++;
        } else if (from[my_int] == 'k') {
            strcat(to, "k");
            my_int++;
        } else if (from[my_int] == 'l') {
            strcat(to, "l");
            my_int++;
        } else if (from[my_int] == 'm') {
            strcat(to, "m");
            my_int++;
        } else if (from[my_int] == 'n') {
            strcat(to, "n");
            my_int++;
        } else if (from[my_int] == 'o') {
            strcat(to, "o");
            my_int++;
        } else if (from[my_int] == 'p') {
            strcat(to, "p");
            my_int++;
        } else if (from[my_int] == 'q') {
            strcat(to, "q");
            my_int++;
        } else if (from[my_int] == 'r') {
            strcat(to, "r");
            my_int++;
        } else if (from[my_int] == 's') {
            strcat(to, "s");
            my_int++;
        } else if (from[my_int] == 't') {
            strcat(to, "t");
            my_int++;
        } else if (from[my_int] == 'u') {
            strcat(to, "u");
            my_int++;
        } else if (from[my_int] == 'v') {
            strcat(to, "v");
            my_int++;
        } else if (from[my_int] == 'w') {
            strcat(to, "w");
            my_int++;
        } else if (from[my_int] == 'x') {
            strcat(to, "x");
            my_int++;
        } else if (from[my_int] == 'y') {
            strcat(to, "y");
            my_int++;
        } else if (from[my_int] == 'z') {
            strcat(to, "z");
            my_int++;
        } else if (from[my_int] == ' ') {
            strcat(to, " ");
            my_int++;
        } else if (from[my_int] == '\r') {
            strcat(to, "\r");
            my_int++;
        } else if (from[my_int] == '\n') {
            strcat(to, "\n");
            my_int++;
        }
        else { /* of course it might be that nothing happened */
            debug("bb.sms.cimd", 0, "parse: [%c:%02X %c:%02X %c:%02X]", from[my_int],
                  from[my_int], from[my_int + 1], from[my_int + 1],
                  from[my_int + 2], from[my_int + 2]);
            temp_int = strlen(to);
            to[temp_int] = 0xBF;    /* '¿' */
            to[temp_int + 1] = '\0';
            my_int++;
        }
    } /* for */
    return strlen(to);
}
");
  1062         else if (
from[my_int] == 
'!') {
  1065         } 
else if (
from[my_int] == 
'"') {
  1068         } 
else if (
from[my_int] == 
'#') {
  1071         } 
else if (
from[my_int] == 
'¤') {
  1074         } 
else if (
from[my_int] == 
'%') {
  1077         } 
else if (
from[my_int] == 
'&') {
  1080         } 
else if (
from[my_int] == 
'\'') {
  1083         } 
else if (
from[my_int] == 
'(') {
  1086         } 
else if (
from[my_int] == 
')') {
  1089         } 
else if (
from[my_int] == 
'*') {
  1092         } 
else if (
from[my_int] == 
'+') {
  1095         } 
else if (
from[my_int] == 
',') {
  1098         } 
else if (
from[my_int] == 
'-') {
  1101         } 
else if (
from[my_int] == 
'.') {
  1104         } 
else if (
from[my_int] == 
'/') {
  1107         } 
else if (
from[my_int] == 
'0') {
  1110         } 
else if (
from[my_int] == 
'1') {
  1113         } 
else if (
from[my_int] == 
'2') {
  1116         } 
else if (
from[my_int] == 
'3') {
  1119         } 
else if (
from[my_int] == 
'4') {
  1122         } 
else if (
from[my_int] == 
'5') {
  1125         } 
else if (
from[my_int] == 
'6') {
  1128         } 
else if (
from[my_int] == 
'7') {
  1131         } 
else if (
from[my_int] == 
'8') {
  1134         } 
else if (
from[my_int] == 
'9') {
  1137         } 
else if (
from[my_int] == 
':') {
  1140         } 
else if (
from[my_int] == 
';') {
  1143         } 
else if (
from[my_int] == 
'<') {
  1146         } 
else if (
from[my_int] == 
'=') {
  1149         } 
else if (
from[my_int] == 
'>') {
  1152         } 
else if (
from[my_int] == 
'?') {
  1155         } 
else if (
from[my_int] == 
'A') {
  1158         } 
else if (
from[my_int] == 
'B') {
  1161         } 
else if (
from[my_int] == 
'C') {
  1164         } 
else if (
from[my_int] == 
'D') {
  1167         } 
else if (
from[my_int] == 
'E') {
  1170         } 
else if (
from[my_int] == 
'F') {
  1173         } 
else if (
from[my_int] == 
'G') {
  1176         } 
else if (
from[my_int] == 
'H') {
  1179         } 
else if (
from[my_int] == 
'I') {
  1182         } 
else if (
from[my_int] == 
'J') {
  1185         } 
else if (
from[my_int] == 
'K') {
  1188         } 
else if (
from[my_int] == 
'L') {
  1191         } 
else if (
from[my_int] == 
'M') {
  1194         } 
else if (
from[my_int] == 
'N') {
  1197         } 
else if (
from[my_int] == 
'O') {
  1200         } 
else if (
from[my_int] == 
'P') {
  1203         } 
else if (
from[my_int] == 
'Q') {
  1206         } 
else if (
from[my_int] == 
'R') {
  1209         } 
else if (
from[my_int] == 
'S') {
  1212         } 
else if (
from[my_int] == 
'T') {
  1215         } 
else if (
from[my_int] == 
'U') {
  1218         } 
else if (
from[my_int] == 
'V') {
  1221         } 
else if (
from[my_int] == 
'W') {
  1224         } 
else if (
from[my_int] == 
'X') {
  1227         } 
else if (
from[my_int] == 
'Y') {
  1230         } 
else if (
from[my_int] == 
'Z') {
  1233         } 
else if (
from[my_int] == 
'a') {
  1236         } 
else if (
from[my_int] == 
'b') {
  1239         } 
else if (
from[my_int] == 
'c') {
  1242         } 
else if (
from[my_int] == 
'd') {
  1245         } 
else if (
from[my_int] == 
'e') {
  1248         } 
else if (
from[my_int] == 
'f') {
  1251         } 
else if (
from[my_int] == 
'g') {
  1254         } 
else if (
from[my_int] == 
'h') {
  1257         } 
else if (
from[my_int] == 
'i') {
  1260         } 
else if (
from[my_int] == 
'j') {
  1263         } 
else if (
from[my_int] == 
'k') {
  1266         } 
else if (
from[my_int] == 
'l') {
  1269         } 
else if (
from[my_int] == 
'm') {
  1272         } 
else if (
from[my_int] == 
'n') {
  1275         } 
else if (
from[my_int] == 
'o') {
  1278         } 
else if (
from[my_int] == 
'p') {
  1281         } 
else if (
from[my_int] == 
'q') {
  1284         } 
else if (
from[my_int] == 
'r') {
  1287         } 
else if (
from[my_int] == 
's') {
  1290         } 
else if (
from[my_int] == 
't') {
  1293         } 
else if (
from[my_int] == 
'u') {
  1296         } 
else if (
from[my_int] == 
'v') {
  1299         } 
else if (
from[my_int] == 
'w') {
  1302         } 
else if (
from[my_int] == 
'x') {
  1305         } 
else if (
from[my_int] == 
'y') {
  1308         } 
else if (
from[my_int] == 
'z') {
  1311         } 
else if (
from[my_int] == 
' ') {
  1314         } 
else if (
from[my_int] == 
'\r') {
  1317         } 
else if (
from[my_int] == 
'\n') {
  1322             debug(
"bb.sms.cimd", 0, 
"parse: [%c:%02X %c:%02X %c:%02X]", 
from[my_int],
  1324                   from[my_int + 2], 
from[my_int + 2]);
  1326             temp_int = strlen(to);
  1327             to[temp_int] = 0xBF;    
  1328             to[temp_int + 1] = 
'\0';
 void error(int err, const char *fmt,...)
 
void info(int err, const char *fmt,...)
 
int cimd_submit_msg(SMSCenter *smsc, Msg *msg)
 
void octstr_append_from_hex(Octstr *ostr, char *hex)
 
int cimd_receive_msg(SMSCenter *smsc, Msg **msg)
 
int tcpip_connect_to_server(char *hostname, int port, const char *source_addr)
 
static int connect_tcpip(SMSCenter *smsc)
 
int smscenter_read_into_buffer(SMSCenter *smsc)
 
static int parse_iso88591_to_cimd(char *from, char *to, int length, int alt_charset)
 
#define octstr_get_cstr(ostr)
 
int cimd_reopen(SMSCenter *smsc)
 
int write_to_socket(int socket, char *str)
 
SMSCenter * cimd_open(char *hostname, int port, char *username, char *password)
 
static int cimd_open_connection(SMSCenter *smsc)
 
static int send_acknowledge(SMSCenter *smsc)
 
void smscenter_remove_from_buffer(SMSCenter *smsc, size_t n)
 
#define CIMD_PLAIN_DOLLAR_SIGN
 
SMSCenter * smscenter_construct(void)
 
void warning(int err, const char *fmt,...)
 
void smscenter_destruct(SMSCenter *smsc)
 
static int parse_cimd_to_iso88591(char *from, char *to, int length)
 
#define octstr_create(cstr)
 
long octstr_len(const Octstr *ostr)
 
int cimd_close(SMSCenter *smsc)
 
void debug(const char *place, int err, const char *fmt,...)
 
int cimd_pending_smsmessage(SMSCenter *smsc)
 
void octstr_get_many_chars(char *buf, Octstr *ostr, long pos, long len)
 
static Octstr * alt_charset
 
static XMLRPCDocument * msg
 
static int expect_acknowledge(SMSCenter *smsc, int *cmd, int *err)