1 /*
2  * From: http://doar-e.github.io/blog/2013/08/24/regular-expressions-obfuscation-under-the-microscope
3  */
4 
5 #include <stdio.h>
6 #include <string.h>
7 
checkinput(char * p)8 unsigned char checkinput(char *p){
9 unsigned int state = 2414982228;
10 while(*p)
11 {
12 switch(state)
13 {
14 case 1150854703:
15 {
16 if(*p == '@')
17 {
18 state = 2763154882; ++p;
19 }
20 else if(*p == '*')
21 {
22 state = 614359938; ++p;
23 }
24 else if(*p == '=')
25 {
26 state = 2460767789; ++p;
27 }
28 else if(*p == 't')
29 {
30 state = 4029873264; ++p;
31 }
32 else if(*p == '2')
33 {
34 state = 4283929247; ++p;
35 }
36 else if(*p == 'O')
37 {
38 state = 3360254177; ++p;
39 }
40 else return 0;
41 break;
42 }
43 case 1190742721:
44 {
45 if(*p == 'y')
46 {
47 state = 953204336; ++p;
48 }
49 else return 0;
50 break;
51 }
52 case 324474391:
53 {
54 if(*p == 'f')
55 {
56 state = 4120389184; ++p;
57 }
58 else if(*p == '4')
59 {
60 state = 101229758; ++p;
61 }
62 else if(*p == 'J')
63 {
64 state = 1150854703; ++p;
65 }
66 else if(*p == 'L')
67 {
68 state = 2384119878; ++p;
69 }
70 else if(*p == '>')
71 {
72 state = 2349573380; ++p;
73 }
74 else if(*p == 'x')
75 {
76 state = 1057073555; ++p;
77 }
78 else return 0;
79 break;
80 }
81 case 2166033187:
82 {
83 if(*p == 'k')
84 {
85 state = 3786799564; ++p;
86 }
87 else if(*p == 'T')
88 {
89 state = 1390160888; ++p;
90 }
91 else if(*p == 'm')
92 {
93 state = 721752926; ++p;
94 }
95 else if(*p == 'S')
96 {
97 state = 614359938; ++p;
98 }
99 else return 0;
100 break;
101 }
102 case 3268769598:
103 {
104 if(*p >= '0' && *p <= '9')
105 {
106 return 1;
107 }
108 else if(*p == '`')
109 {
110 state = 3608599948; ++p;
111 }
112 else if(*p == '8')
113 {
114 state = 691390384; ++p;
115 }
116 else if(*p == 'a')
117 {
118 state = 2242283503; ++p;
119 }
120 else if(*p == 'M')
121 {
122 state = 3335559999; ++p;
123 }
124 else return 0;
125 break;
126 }
127 case 2414982228:
128 {
129 if(*p == 'H')
130 {
131 state = 2696439585; ++p;
132 }
133 else if(*p == '>')
134 {
135 state = 2349573380; ++p;
136 }
137 else if(*p == 'L')
138 {
139 state = 3335559999; ++p;
140 }
141 else if(*p == 'c')
142 {
143 state = 3786799564; ++p;
144 }
145 else if(*p == 'm')
146 {
147 state = 1057073555; ++p;
148 }
149 else ++p;
150 break;
151 }
152 case 3786799564:
153 {
154 if(*p == 'S')
155 {
156 return 1;
157 }
158 else if(*p == ' ')
159 {
160 state = 3410901078; ++p;
161 }
162 else if(*p == 'B')
163 {
164 state = 2056998787; ++p;
165 }
166 else if(*p == 'Y')
167 {
168 state = 4267076867; ++p;
169 }
170 else if(*p == '5')
171 {
172 state = 1611919523; ++p;
173 }
174 else if(*p == 'i')
175 {
176 state = 2241134315; ++p;
177 }
178 else return 0;
179 break;
180 }
181 case 2971031841:
182 {
183 if(*p == '&')
184 {
185 state = 953204336; ++p;
186 }
187 else if(*p == '.')
188 {
189 state = 1515485535; ++p;
190 }
191 else if(*p == 'v')
192 {
193 state = 4120389184; ++p;
194 }
195 else if(*p == 'R')
196 {
197 state = 3608599948; ++p;
198 }
199 else if(*p == 'n')
200 {
201 state = 4135210710; ++p;
202 }
203 else if(*p == '%')
204 {
205 state = 3410901078; ++p;
206 }
207 else if(*p == 'R')
208 {
209 state = 3942154577; ++p;
210 }
211 else return 0;
212 break;
213 }
214 case 1057073555:
215 {
216 if(*p >= '0' && *p <= '9')
217 {
218 state = 3268769598; ++p;
219 }
220 else if(*p == 's')
221 {
222 state = 324474391; ++p;
223 }
224 else if(*p == 'Y')
225 {
226 state = 101229758; ++p;
227 }
228 else if(*p == '+')
229 {
230 state = 101229758; ++p;
231 }
232 else return 0;
233 break;
234 }
235 case 2934937715:
236 {
237 if(*p == '$')
238 {
239 state = 1782541044; ++p;
240 }
241 else if(*p == 'i')
242 {
243 state = 2242283503; ++p;
244 }
245 else return 0;
246 break;
247 }
248 case 2011019626:
249 {
250 if(*p == '+')
251 {
252 state = 1818848268; ++p;
253 }
254 else if(*p == 'o')
255 {
256 state = 2696439585; ++p;
257 }
258 else if(*p == '~')
259 {
260 state = 1239897561; ++p;
261 }
262 else if(*p == '4')
263 {
264 state = 957033642; ++p;
265 }
266 else if(*p == 'o')
267 {
268 state = 3335559999; ++p;
269 }
270 else return 0;
271 break;
272 }
273 case 3752577241:
274 {
275 if(*p == '%')
276 {
277 state = 3608599948; ++p;
278 }
279 else if(*p == '5')
280 {
281 state = 2384119878; ++p;
282 }
283 else if(*p == 'E')
284 {
285 state = 2241134315; ++p;
286 }
287 else if(*p == 'A')
288 {
289 state = 4267076867; ++p;
290 }
291 else if(*p == 'g')
292 {
293 state = 607666879; ++p;
294 }
295 else if(*p == 'B')
296 {
297 state = 3268769598; ++p;
298 }
299 else if(*p == 'U')
300 {
301 state = 2056998787; ++p;
302 }
303 else if(*p == 'K')
304 {
305 state = 776990946; ++p;
306 }
307 else if(*p == '\\')
308 {
309 state = 155012291; ++p;
310 }
311 else return 0;
312 break;
313 }
314 case 101229758:
315 {
316 if(*p == '-')
317 {
318 state = 1239897561; ++p;
319 }
320 else if(*p == 'j')
321 {
322 state = 1746586473; ++p;
323 }
324 else if(*p == 'P')
325 {
326 state = 2696439585; ++p;
327 }
328 else if(*p == 'S')
329 {
330 state = 607666879; ++p;
331 }
332 else if(*p == '=')
333 {
334 state = 609520033; ++p;
335 }
336 else if(*p == '2')
337 {
338 state = 1782541044; ++p;
339 }
340 else if(*p == '&')
341 {
342 state = 2763154882; ++p;
343 }
344 else return 0;
345 break;
346 }
347 case 3181597626:
348 {
349 if(*p == 'w')
350 {
351 state = 3268769598; ++p;
352 }
353 else if(*p == 'u')
354 {
355 state = 3786799564; ++p;
356 }
357 else if(*p == '/')
358 {
359 state = 3268769598; ++p;
360 }
361 else if(*p == '%')
362 {
363 state = 776990946; ++p;
364 }
365 else if(*p == 'g')
366 {
367 state = 1384595292; ++p;
368 }
369 else if(*p == 'E')
370 {
371 state = 2414982228; ++p;
372 }
373 else if(*p == 'm')
374 {
375 state = 3752577241; ++p;
376 }
377 else if(*p == '~')
378 {
379 state = 1818848268; ++p;
380 }
381 else if(*p == '4')
382 {
383 state = 2242283503; ++p;
384 }
385 else if(*p == 'D')
386 {
387 state = 3268769598; ++p;
388 }
389 else if(*p == 'L')
390 {
391 state = 2756235254; ++p;
392 }
393 else if(*p == 'C')
394 {
395 state = 2696439585; ++p;
396 }
397 else return 0;
398 break;
399 }
400 case 1097742315:
401 {
402 if(*p == '#')
403 {
404 state = 2166033187; ++p;
405 }
406 else if(*p == 'I')
407 {
408 state = 1390160888; ++p;
409 }
410 else if(*p == 'U')
411 {
412 state = 3891264545; ++p;
413 }
414 else return 0;
415 break;
416 }
417 case 2696439585:
418 {
419 if(*p == 'i')
420 {
421 state = 101229758; ++p;
422 }
423 else if(*p == 'Q')
424 {
425 state = 3891264545; ++p;
426 }
427 else if(*p == 'm')
428 {
429 state = 2492710957; ++p;
430 }
431 else if(*p == 'P')
432 {
433 state = 4135210710; ++p;
434 }
435 else if(*p == 'y')
436 {
437 state = 1611919523; ++p;
438 }
439 else if(*p == 'w')
440 {
441 state = 2241134315; ++p;
442 }
443 else return 0;
444 break;
445 }
446 case 4283929247:
447 {
448 if(*p == '`')
449 {
450 state = 1818848268; ++p;
451 }
452 else if(*p == 'h')
453 {
454 state = 953204336; ++p;
455 }
456 else if(*p == '6')
457 {
458 state = 689022328; ++p;
459 }
460 else if(*p == 'x')
461 {
462 state = 1782541044; ++p;
463 }
464 else if(*p == 'z')
465 {
466 state = 3410901078; ++p;
467 }
468 else if(*p == 'y')
469 {
470 state = 3891264545; ++p;
471 }
472 else if(*p == 'F')
473 {
474 state = 3786799564; ++p;
475 }
476 else if(*p == '3')
477 {
478 state = 2696439585; ++p;
479 }
480 else if(*p == '#')
481 {
482 state = 3148306748; ++p;
483 }
484 else return 0;
485 break;
486 }
487 case 2756235254:
488 {
489 if(*p == 'z')
490 {
491 state = 4120389184; ++p;
492 }
493 else if(*p == 'S')
494 {
495 state = 101229758; ++p;
496 }
497 else if(*p == '4')
498 {
499 state = 3942154577; ++p;
500 }
501 else if(*p == 'M')
502 {
503 state = 1390160888; ++p;
504 }
505 else if(*p == 'g')
506 {
507 state = 2166033187; ++p;
508 }
509 else if(*p == 'H')
510 {
511 state = 3335559999; ++p;
512 }
513 else if(*p == ',')
514 {
515 state = 2166033187; ++p;
516 }
517 else if(*p == 'a')
518 {
519 state = 2414982228; ++p;
520 }
521 else return 0;
522 break;
523 }
524 case 614359938:
525 {
526 if(*p == '3')
527 {
528 state = 1746586473; ++p;
529 }
530 else if(*p == '4')
531 {
532 state = 2384119878; ++p;
533 }
534 else if(*p == ':')
535 {
536 state = 957033642; ++p;
537 }
538 else if(*p == 'l')
539 {
540 state = 1746586473; ++p;
541 }
542 else if(*p == 'L')
543 {
544 state = 721752926; ++p;
545 }
546 else return 0;
547 break;
548 }
549 case 155012291:
550 {
551 if(*p == 'W')
552 {
553 state = 607666879; ++p;
554 }
555 else if(*p == '8')
556 {
557 state = 324474391; ++p;
558 }
559 else if(*p == 'X')
560 {
561 state = 2763154882; ++p;
562 }
563 else if(*p == '\\')
564 {
565 state = 324474391; ++p;
566 }
567 else if(*p == '&')
568 {
569 state = 1097742315; ++p;
570 }
571 else if(*p == 'e')
572 {
573 state = 3891264545; ++p;
574 }
575 else if(*p == '\t')
576 {
577 state = 4135210710; ++p;
578 }
579 else return 0;
580 break;
581 }
582 case 1611919523:
583 {
584 if(*p == 'K')
585 {
586 state = 2384119878; ++p;
587 }
588 else if(*p == '.')
589 {
590 state = 607666879; ++p;
591 }
592 else if(*p == 'g')
593 {
594 state = 324474391; ++p;
595 }
596 else if(*p == 'H')
597 {
598 state = 155012291; ++p;
599 }
600 else if(*p == '#')
601 {
602 state = 155012291; ++p;
603 }
604 else if(*p == '^')
605 {
606 state = 957033642; ++p;
607 }
608 else if(*p == '?')
609 {
610 state = 3891264545; ++p;
611 }
612 else return 0;
613 break;
614 }
615 case 689022328:
616 {
617 if(*p == '+')
618 {
619 state = 3268769598; ++p;
620 }
621 else if(*p == 'H')
622 {
623 state = 1057073555; ++p;
624 }
625 else if(*p == '!')
626 {
627 state = 2756235254; ++p;
628 }
629 else if(*p == '9')
630 {
631 state = 295606295; ++p;
632 }
633 else return 0;
634 break;
635 }
636 case 1782541044:
637 {
638 if(*p == 'k')
639 {
640 state = 607666879; ++p;
641 }
642 else if(*p == 'H')
643 {
644 state = 2241134315; ++p;
645 }
646 else if(*p == '|')
647 {
648 state = 1239897561; ++p;
649 }
650 else if(*p == 'F')
651 {
652 state = 2934937715; ++p;
653 }
654 else if(*p == '^')
655 {
656 state = 2242283503; ++p;
657 }
658 else if(*p == '\x0b')
659 {
660 state = 2056998787; ++p;
661 }
662 else if(*p == 'x')
663 {
664 state = 2696439585; ++p;
665 }
666 else return 0;
667 break;
668 }
669 case 3410901078:
670 {
671 if(*p >= '0' && *p <= '9')
672 {
673 state = 1057073555; ++p;
674 }
675 else if(*p == '3')
676 {
677 state = 324474391; ++p;
678 }
679 else if(*p == 't')
680 {
681 state = 3410901078; ++p;
682 }
683 else if(*p == '8')
684 {
685 state = 721752926; ++p;
686 }
687 else if(*p == '#')
688 {
689 state = 609520033; ++p;
690 }
691 else if(*p == 'J')
692 {
693 state = 1150854703; ++p;
694 }
695 else return 0;
696 break;
697 }
698 case 1746586473:
699 {
700 if(*p == 'f')
701 {
702 state = 1097742315; ++p;
703 }
704 else if(*p == 'X')
705 {
706 state = 4267076867; ++p;
707 }
708 else if(*p == '"')
709 {
710 state = 4135210710; ++p;
711 }
712 else return 0;
713 break;
714 }
715 case 609520033:
716 {
717 if(*p == 'O')
718 {
719 state = 1611919523; ++p;
720 }
721 else if(*p == 'd')
722 {
723 state = 3891264545; ++p;
724 }
725 else if(*p == 'm')
726 {
727 state = 3608599948; ++p;
728 }
729 else if(*p == '+')
730 {
731 state = 2166033187; ++p;
732 }
733 else if(*p == ':')
734 {
735 state = 4120389184; ++p;
736 }
737 else if(*p == 'd')
738 {
739 state = 1818848268; ++p;
740 }
741 else return 0;
742 break;
743 }
744 case 2460767789:
745 {
746 if(*p == 'h')
747 {
748 state = 3942154577; ++p;
749 }
750 else if(*p == 'z')
751 {
752 state = 3268769598; ++p;
753 }
754 else if(*p == 'z')
755 {
756 state = 2349573380; ++p;
757 }
758 else if(*p == '(')
759 {
760 state = 691390384; ++p;
761 }
762 else if(*p == '<')
763 {
764 state = 953204336; ++p;
765 }
766 else if(*p == '1')
767 {
768 state = 1818848268; ++p;
769 }
770 else return 0;
771 break;
772 }
773 case 2384119878:
774 {
775 if(*p == ')')
776 {
777 state = 3410901078; ++p;
778 }
779 else if(*p == 'X')
780 {
781 state = 2414982228; ++p;
782 }
783 else if(*p == '*')
784 {
785 state = 1782541044; ++p;
786 }
787 else if(*p == '-')
788 {
789 state = 1746586473; ++p;
790 }
791 else if(*p == '0')
792 {
793 state = 3786799564; ++p;
794 }
795 else return 0;
796 break;
797 }
798 case 776990946:
799 {
800 if(*p == 'i')
801 {
802 state = 607666879; ++p;
803 }
804 else if(*p == 'W')
805 {
806 state = 2349573380; ++p;
807 }
808 else if(*p == 'f')
809 {
810 state = 3148306748; ++p;
811 }
812 else if(*p == 'X')
813 {
814 state = 3942154577; ++p;
815 }
816 else if(*p == 'H')
817 {
818 state = 4267076867; ++p;
819 }
820 else if(*p == 'a')
821 {
822 state = 1331020175; ++p;
823 }
824 else if(*p == ',')
825 {
826 return 1;
827 }
828 else return 0;
829 break;
830 }
831 case 3891264545:
832 {
833 if(*p == '`')
834 {
835 state = 3891264545; ++p;
836 }
837 else if(*p == 'c')
838 {
839 return 1;
840 }
841 else if(*p == ':')
842 {
843 state = 691390384; ++p;
844 }
845 else return 0;
846 break;
847 }
848 case 4029873264:
849 {
850 if(*p == 'H')
851 {
852 state = 2696439585; ++p;
853 }
854 else if(*p == 'S')
855 {
856 return 1;
857 }
858 else if(*p == 'c')
859 {
860 state = 3942154577; ++p;
861 }
862 else if(*p == '@')
863 {
864 state = 1782541044; ++p;
865 }
866 else if(*p == 'J')
867 {
868 state = 1611919523; ++p;
869 }
870 else if(*p == 'W')
871 {
872 state = 3786799564; ++p;
873 }
874 else return 0;
875 break;
876 }
877 case 2056998787:
878 {
879 if(*p == 'T')
880 {
881 state = 324474391; ++p;
882 }
883 else if(*p == 'W')
884 {
885 state = 1150854703; ++p;
886 }
887 else if(*p == 'B')
888 {
889 state = 1190742721; ++p;
890 }
891 else if(*p == '"')
892 {
893 state = 2696439585; ++p;
894 }
895 else if(*p == '8')
896 {
897 state = 1190742721; ++p;
898 }
899 else if(*p == 'p')
900 {
901 state = 2056998787; ++p;
902 }
903 else if(*p == '6')
904 {
905 state = 609520033; ++p;
906 }
907 else if(*p == 'v')
908 {
909 state = 1239897561; ++p;
910 }
911 else if(*p == 'd')
912 {
913 state = 2756235254; ++p;
914 }
915 else return 0;
916 break;
917 }
918 case 2763154882:
919 {
920 if(*p == 'O')
921 {
922 state = 3268769598; ++p;
923 }
924 else if(*p == ')')
925 {
926 state = 689022328; ++p;
927 }
928 else if(*p == '4')
929 {
930 state = 2166033187; ++p;
931 }
932 else if(*p == 'Q')
933 {
934 state = 1150854703; ++p;
935 }
936 else if(*p == 'Y')
937 {
938 state = 3786799564; ++p;
939 }
940 else if(*p == 't')
941 {
942 state = 2934937715; ++p;
943 }
944 else return 0;
945 break;
946 }
947 case 691390384:
948 {
949 if(*p == '_')
950 {
951 state = 1057073555; ++p;
952 }
953 else if(*p == 'C')
954 {
955 state = 3752577241; ++p;
956 }
957 else if(*p == '?')
958 {
959 state = 2241134315; ++p;
960 }
961 else return 0;
962 break;
963 }
964 case 721752926:
965 {
966 if(*p == ';')
967 {
968 state = 4120389184; ++p;
969 }
970 else if(*p == '\x0b')
971 {
972 state = 3752577241; ++p;
973 }
974 else if(*p == 'o')
975 {
976 state = 1150854703; ++p;
977 }
978 else if(*p == ':')
979 {
980 state = 4283929247; ++p;
981 }
982 else if(*p == 'U')
983 {
984 state = 1818848268; ++p;
985 }
986 else if(*p == '0')
987 {
988 state = 1190742721; ++p;
989 }
990 else if(*p == 'Z')
991 {
992 state = 2971031841; ++p;
993 }
994 else if(*p == '"')
995 {
996 state = 2971031841; ++p;
997 }
998 else if(*p == 'G')
999 {
1000 state = 3786799564; ++p;
1001 }
1002 else return 0;
1003 break;
1004 }
1005 case 4120389184:
1006 {
1007 if(*p == 'o')
1008 {
1009 state = 2241134315; ++p;
1010 }
1011 else if(*p == 'i')
1012 {
1013 state = 3335559999; ++p;
1014 }
1015 else if(*p == '\\')
1016 {
1017 state = 3148306748; ++p;
1018 }
1019 else if(*p == 'n')
1020 {
1021 state = 2349573380; ++p;
1022 }
1023 else return 0;
1024 break;
1025 }
1026 case 1114525773:
1027 {
1028 if(*p == '9')
1029 {
1030 state = 2242283503; ++p;
1031 }
1032 else if(*p == '3')
1033 {
1034 state = 1782541044; ++p;
1035 }
1036 else if(*p == 'b')
1037 {
1038 state = 1818848268; ++p;
1039 }
1040 else if(*p == ',')
1041 {
1042 state = 3360254177; ++p;
1043 }
1044 else if(*p == 'v')
1045 {
1046 state = 3523682200; ++p;
1047 }
1048 else if(*p == 'F')
1049 {
1050 state = 2349573380; ++p;
1051 }
1052 else if(*p == ',')
1053 {
1054 state = 3181597626; ++p;
1055 }
1056 else if(*p == '\n')
1057 {
1058 state = 721752926; ++p;
1059 }
1060 else if(*p == '1')
1061 {
1062 state = 2242283503; ++p;
1063 }
1064 else if(*p == 'X')
1065 {
1066 state = 3942154577; ++p;
1067 }
1068 else return 0;
1069 break;
1070 }
1071 case 607666879:
1072 {
1073 if(*p == '2')
1074 {
1075 state = 1818848268; ++p;
1076 }
1077 else if(*p == 'p')
1078 {
1079 state = 2241134315; ++p;
1080 }
1081 else if(*p == 'h')
1082 {
1083 state = 3786799564; ++p;
1084 }
1085 else if(*p == ')')
1086 {
1087 state = 2492710957; ++p;
1088 }
1089 else if(*p == '5')
1090 {
1091 state = 1331020175; ++p;
1092 }
1093 else if(*p == 'h')
1094 {
1095 return 1;
1096 }
1097 else return 0;
1098 break;
1099 }
1100 case 1384595292:
1101 {
1102 if(*p == 'A')
1103 {
1104 state = 957033642; ++p;
1105 }
1106 else if(*p == '|')
1107 {
1108 state = 1384595292; ++p;
1109 }
1110 else if(*p == 'M')
1111 {
1112 state = 1611919523; ++p;
1113 }
1114 else if(*p == '\x0c')
1115 {
1116 state = 2763154882; ++p;
1117 }
1118 else if(*p == ':')
1119 {
1120 state = 2241134315; ++p;
1121 }
1122 else if(*p == 'x')
1123 {
1124 state = 1190742721; ++p;
1125 }
1126 else if(*p == 'E')
1127 {
1128 state = 689022328; ++p;
1129 }
1130 else if(*p == '`')
1131 {
1132 state = 4029873264; ++p;
1133 }
1134 else if(*p == ':')
1135 {
1136 state = 2384119878; ++p;
1137 }
1138 else if(*p == 'r')
1139 {
1140 state = 3268769598; ++p;
1141 }
1142 else if(*p == '9')
1143 {
1144 state = 1746586473; ++p;
1145 }
1146 else return 0;
1147 break;
1148 }
1149 case 3942154577:
1150 {
1151 if(*p == '@')
1152 {
1153 state = 2460767789; ++p;
1154 }
1155 else if(*p == 'h')
1156 {
1157 state = 2763154882; ++p;
1158 }
1159 else if(*p == 'M')
1160 {
1161 state = 2756235254; ++p;
1162 }
1163 else if(*p == 'y')
1164 {
1165 state = 3608599948; ++p;
1166 }
1167 else if(*p == '3')
1168 {
1169 state = 1150854703; ++p;
1170 }
1171 else if(*p == 'P')
1172 {
1173 state = 1390160888; ++p;
1174 }
1175 else return 0;
1176 break;
1177 }
1178 case 3523682200:
1179 {
1180 if(*p == '>')
1181 {
1182 state = 3360254177; ++p;
1183 }
1184 else if(*p == '$')
1185 {
1186 state = 2241134315; ++p;
1187 }
1188 else if(*p == ':')
1189 {
1190 state = 953204336; ++p;
1191 }
1192 else if(*p == '*')
1193 {
1194 state = 2971031841; ++p;
1195 }
1196 else if(*p == '@')
1197 {
1198 state = 324474391; ++p;
1199 }
1200 else if(*p == '[')
1201 {
1202 state = 776990946; ++p;
1203 }
1204 else return 0;
1205 break;
1206 }
1207 case 295606295:
1208 {
1209 if(*p == '_')
1210 {
1211 state = 3523682200; ++p;
1212 }
1213 else if(*p == 's')
1214 {
1215 state = 4283929247; ++p;
1216 }
1217 else return 0;
1218 break;
1219 }
1220 case 1390160888:
1221 {
1222 if(*p == '0')
1223 {
1224 state = 2696439585; ++p;
1225 }
1226 else if(*p == 'T')
1227 {
1228 state = 155012291; ++p;
1229 }
1230 else if(*p == '=')
1231 {
1232 state = 1818848268; ++p;
1233 }
1234 else if(*p == '2')
1235 {
1236 state = 1150854703; ++p;
1237 }
1238 else if(*p == 'n')
1239 {
1240 state = 2056998787; ++p;
1241 }
1242 else if(*p == 'j')
1243 {
1244 state = 1114525773; ++p;
1245 }
1246 else return 0;
1247 break;
1248 }
1249 case 4135210710:
1250 {
1251 if(*p == 'A')
1252 {
1253 state = 721752926; ++p;
1254 }
1255 else if(*p == 'E')
1256 {
1257 state = 2971031841; ++p;
1258 }
1259 else if(*p == 'N')
1260 {
1261 state = 3891264545; ++p;
1262 }
1263 else if(*p == 'N')
1264 {
1265 state = 2971031841; ++p;
1266 }
1267 else if(*p == '@')
1268 {
1269 state = 689022328; ++p;
1270 }
1271 else if(*p == '=')
1272 {
1273 state = 609520033; ++p;
1274 }
1275 else if(*p == 'H')
1276 {
1277 state = 2696439585; ++p;
1278 }
1279 else return 0;
1280 break;
1281 }
1282 case 3360254177:
1283 {
1284 if(*p == 'B')
1285 {
1286 state = 1746586473; ++p;
1287 }
1288 else if(*p == '_')
1289 {
1290 state = 324474391; ++p;
1291 }
1292 else if(*p == '\r')
1293 {
1294 return 1;
1295 }
1296 else return 0;
1297 break;
1298 }
1299 case 953204336:
1300 {
1301 if(*p == 'r')
1302 {
1303 state = 3752577241; ++p;
1304 }
1305 else if(*p == 't')
1306 {
1307 state = 2166033187; ++p;
1308 }
1309 else if(*p == 's')
1310 {
1311 state = 4283929247; ++p;
1312 }
1313 else if(*p == 'z')
1314 {
1315 state = 689022328; ++p;
1316 }
1317 else if(*p == 'r')
1318 {
1319 state = 3148306748; ++p;
1320 }
1321 else if(*p == '5')
1322 {
1323 state = 2011019626; ++p;
1324 }
1325 else return 0;
1326 break;
1327 }
1328 case 957033642:
1329 {
1330 if(*p == '7')
1331 {
1332 state = 614359938; ++p;
1333 }
1334 else if(*p == '\x0b')
1335 {
1336 state = 101229758; ++p;
1337 }
1338 else if(*p == 'w')
1339 {
1340 state = 1331020175; ++p;
1341 }
1342 else if(*p == '%')
1343 {
1344 state = 1150854703; ++p;
1345 }
1346 else if(*p == 'P')
1347 {
1348 state = 101229758; ++p;
1349 }
1350 else if(*p == '9')
1351 {
1352 state = 609520033; ++p;
1353 }
1354 else return 0;
1355 break;
1356 }
1357 case 3148306748:
1358 {
1359 if(*p == 'd')
1360 {
1361 state = 953204336; ++p;
1362 }
1363 else if(*p == 'c')
1364 {
1365 state = 2056998787; ++p;
1366 }
1367 else if(*p == '>')
1368 {
1369 state = 1782541044; ++p;
1370 }
1371 else return 0;
1372 break;
1373 }
1374 case 1239897561:
1375 {
1376 if(*p >= '0' && *p <= '9')
1377 {
1378 state = 3410901078; ++p;
1379 }
1380 else if(*p == '-')
1381 {
1382 state = 101229758; ++p;
1383 }
1384 else if(*p == '-')
1385 {
1386 state = 1331020175; ++p;
1387 }
1388 else if(*p == ' ')
1389 {
1390 state = 957033642; ++p;
1391 }
1392 else if(*p == '2')
1393 {
1394 state = 3942154577; ++p;
1395 }
1396 else if(*p == '8')
1397 {
1398 state = 3148306748; ++p;
1399 }
1400 else if(*p == 'd')
1401 {
1402 state = 609520033; ++p;
1403 }
1404 else return 0;
1405 break;
1406 }
1407 case 2242283503:
1408 {
1409 if(*p == '+')
1410 {
1411 state = 2414982228; ++p;
1412 }
1413 else if(*p == 'e')
1414 {
1415 state = 3268769598; ++p;
1416 }
1417 else if(*p == '#')
1418 {
1419 state = 1818848268; ++p;
1420 }
1421 else if(*p == 'S')
1422 {
1423 state = 2763154882; ++p;
1424 }
1425 else if(*p == '@')
1426 {
1427 state = 1746586473; ++p;
1428 }
1429 else return 0;
1430 break;
1431 }
1432 case 2492710957:
1433 {
1434 if(*p == 'X')
1435 {
1436 state = 3148306748; ++p;
1437 }
1438 else if(*p == 'X')
1439 {
1440 state = 1097742315; ++p;
1441 }
1442 else if(*p == 'O')
1443 {
1444 state = 2011019626; ++p;
1445 }
1446 else return 0;
1447 break;
1448 }
1449 case 3608599948:
1450 {
1451 if(*p == '-')
1452 {
1453 state = 609520033; ++p;
1454 }
1455 else if(*p == 'a')
1456 {
1457 state = 3608599948; ++p;
1458 }
1459 else if(*p == ']')
1460 {
1461 state = 2056998787; ++p;
1462 }
1463 else if(*p == 'I')
1464 {
1465 state = 2384119878; ++p;
1466 }
1467 else return 0;
1468 break;
1469 }
1470 case 3335559999:
1471 {
1472 if(*p == 'V')
1473 {
1474 state = 101229758; ++p;
1475 }
1476 else if(*p == 'e')
1477 {
1478 state = 155012291; ++p;
1479 }
1480 else if(*p == ',')
1481 {
1482 state = 3268769598; ++p;
1483 }
1484 else if(*p == '@')
1485 {
1486 state = 1097742315; ++p;
1487 }
1488 else if(*p == '1')
1489 {
1490 state = 2056998787; ++p;
1491 }
1492 else if(*p == 'P')
1493 {
1494 state = 1384595292; ++p;
1495 }
1496 else if(*p == '-')
1497 {
1498 state = 2934937715; ++p;
1499 }
1500 else if(*p == ')')
1501 {
1502 state = 1190742721; ++p;
1503 }
1504 else if(*p == '?')
1505 {
1506 state = 1239897561; ++p;
1507 }
1508 else return 0;
1509 break;
1510 }
1511 case 1818848268:
1512 {
1513 if(*p == '6')
1514 {
1515 state = 957033642; ++p;
1516 }
1517 else if(*p == 'g')
1518 {
1519 state = 3410901078; ++p;
1520 }
1521 else if(*p == '\x0c')
1522 {
1523 state = 1746586473; ++p;
1524 }
1525 else if(*p == 'f')
1526 {
1527 state = 609520033; ++p;
1528 }
1529 else if(*p == '\n')
1530 {
1531 state = 295606295; ++p;
1532 }
1533 else if(*p == 'r')
1534 {
1535 state = 2384119878; ++p;
1536 }
1537 else return 0;
1538 break;
1539 }
1540 case 2241134315:
1541 {
1542 if(*p == ':')
1543 {
1544 state = 3608599948; ++p;
1545 }
1546 else if(*p == 'S')
1547 {
1548 state = 3148306748; ++p;
1549 }
1550 else if(*p == '[')
1551 {
1552 state = 3335559999; ++p;
1553 }
1554 else if(*p == '\t')
1555 {
1556 state = 953204336; ++p;
1557 }
1558 else if(*p == 'X')
1559 {
1560 state = 3410901078; ++p;
1561 }
1562 else return 0;
1563 break;
1564 }
1565 case 2349573380:
1566 {
1567 if(*p == '0')
1568 {
1569 state = 101229758; ++p;
1570 }
1571 else if(*p == ':')
1572 {
1573 state = 957033642; ++p;
1574 }
1575 else if(*p == 'Z')
1576 {
1577 state = 957033642; ++p;
1578 }
1579 else if(*p == ' ')
1580 {
1581 state = 1239897561; ++p;
1582 }
1583 else if(*p == 'i')
1584 {
1585 state = 1239897561; ++p;
1586 }
1587 else return 0;
1588 break;
1589 }
1590 case 1331020175:
1591 {
1592 if(*p == 'B')
1593 {
1594 state = 2384119878; ++p;
1595 }
1596 else if(*p == '"')
1597 {
1598 state = 2242283503; ++p;
1599 }
1600 else if(*p == '#')
1601 {
1602 state = 3786799564; ++p;
1603 }
1604 else if(*p == '(')
1605 {
1606 state = 1057073555; ++p;
1607 }
1608 else if(*p == 'F')
1609 {
1610 state = 2242283503; ++p;
1611 }
1612 else if(*p == 'n')
1613 {
1614 state = 155012291; ++p;
1615 }
1616 else if(*p == 'j')
1617 {
1618 state = 2460767789; ++p;
1619 }
1620 else if(*p == '^')
1621 {
1622 state = 1611919523; ++p;
1623 }
1624 else if(*p == 'J')
1625 {
1626 state = 1746586473; ++p;
1627 }
1628 else return 0;
1629 break;
1630 }
1631 case 1515485535:
1632 {
1633 if(*p == 'r')
1634 {
1635 state = 1611919523; ++p;
1636 }
1637 else if(*p == '.')
1638 {
1639 state = 1384595292; ++p;
1640 }
1641 else if(*p == 'M')
1642 {
1643 state = 2011019626; ++p;
1644 }
1645 else if(*p == '%')
1646 {
1647 state = 776990946; ++p;
1648 }
1649 else return 0;
1650 break;
1651 }
1652 case 4267076867:
1653 {
1654 if(*p == '\r')
1655 {
1656 state = 2056998787; ++p;
1657 }
1658 else if(*p == ')')
1659 {
1660 state = 1746586473; ++p;
1661 }
1662 else if(*p == 'q')
1663 {
1664 state = 2242283503; ++p;
1665 }
1666 else if(*p == 'p')
1667 {
1668 state = 609520033; ++p;
1669 }
1670 else return 0;
1671 break;
1672 }
1673 }
1674 }
1675 return 0;
1676 }
1677 
main(int argc,char * argv[])1678 int main(int argc, char *argv[])
1679 {
1680     if(argc != 2)
1681     {
1682         printf("./fsm <string>\n");
1683         return 0;
1684     }
1685 
1686     if(checkinput(argv[1]))
1687         printf("Good boy.\n");
1688     else
1689         printf("Bad boy.\n");
1690 
1691     return 1;
1692 }
1693