/* youmu1.c - Don Yang (uguu.org) 07/08/07 */ static char *data[] = { /* 0=B: Code */ #define X10 "1234567890" #define X100 X10 X10 X10 X10 X10 X10 X10 X10 X10 X10 #define X1000 X100 X100 X100 X100 X100 X100 X100 X100 X100 X100 X1000 X1000 X1000 X1000 X1000 , /* 1=C: C template */ "K#!C3!?7&!=7*!;7.!:70!972!874!874!874!75" "!874!874!874!972!:70!;7.!=7*!?7&!C3" , /* 2=D: C++ template */ "F#!A-!?1!=5!<7!;7$!:7&!:7&!97(!97(!87*!8" "7*!87*!87*!87*!7+!87*!87*!87*!87*!87*!97" "(!97(!:7&!:7&!;7$!<7!=5!?1!A-" , /* 3=E: Header */ "char *data[] = \"", /* 4=F: Separator */ "\",\"", /* 5=G: Output sequence */ "E" /* Data header (xor) */ "B" /* Source (passthrough) */ "F" /* Separator (xor) */ "C" /* C template (passthrough) */ "F" /* Separator (xor) */ "D" /* C++ template (passthrough) */ "F" /* Separator (xor) */ "E" /* Data header (passthrough) */ "F" /* Separator (xor) */ "F" /* Separator (passthrough) */ "F" /* Separator (xor) */ "G" /* Output sequence (passthrough) */ "B" /* Source (xor) */ }, input[0x10000], output[0x10000], *t, *r, *w, x; int code, bit; #include int main() { /* Prepare output text */ w = input; #define XOR_KEY 0 x = XOR_KEY; for(r = data[5]; *r; r++) { for(t = data[*r - 'B']; *t; t++) { if( *t != ' ' ) *w++ = *t ^ x; } x ^= XOR_KEY; } /* Decode template */ t = data[2 //**/ 2 ]; r = input; w = output; for(; *t; t++) { code = *t; if( code >= '^' ) { code = (code - '^') * 2 + 1; for(bit = 6; bit--; code /= 2) { *w++ = (code & 1) != 0 ? (x ^= (*r != '\"') ? 0 : 1) ? *r++ : *r++ : ' '; } } if( code >= '8' ) { for(code -= '8' - 1; code; code--) *w++ = ' '; } if( code >= '#' ) { for(code -= '#' - 1; code; code--) { if( *r == '\"' ) x ^= 1; *w++ = *r++; } } if( code == '!' ) { if( x ) { *--w = '\\'; w++; r--; } *w++ = '\n'; } } /* Output text */ *w = '\0'; return puts(output); }