1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <inttypes.h> 4 # define U(x) x 5 # define NLSTATE yyprevious=YYNEWLINE 6 # define BEGIN yybgin = yysvec + 1 + 7 # define INITIAL 0 8 # define YYLERR yysvec 9 # define YYSTATE (yyestate-yysvec-1) 10 # define YYOPTIM 1 11 # ifndef YYLMAX 12 # define YYLMAX BUFSIZ 13 # endif 14 #ifndef __cplusplus 15 # define output(c) (void)putc(c,yyout) 16 #else 17 # define lex_output(c) (void)putc(c,yyout) 18 #endif 19 20 #if defined(__cplusplus) || defined(__STDC__) 21 22 #if defined(__cplusplus) && defined(__EXTERN_C__) 23 extern "C" { 24 #endif 25 int yyback(int *, int); 26 int yyinput(void); 27 int yylook(void); 28 void yyoutput(int); 29 int yyracc(int); 30 int yyreject(void); 31 void yyunput(int); 32 int yylex(void); 33 #ifdef YYLEX_E 34 void yywoutput(wchar_t); 35 wchar_t yywinput(void); 36 void yywunput(wchar_t); 37 #endif 38 #ifndef yyless 39 int yyless(int); 40 #endif 41 #ifndef yywrap 42 int yywrap(void); 43 #endif 44 #ifdef LEXDEBUG 45 void allprint(char); 46 void sprint(char *); 47 #endif 48 #if defined(__cplusplus) && defined(__EXTERN_C__) 49 } 50 #endif 51 52 #ifdef __cplusplus 53 extern "C" { 54 #endif 55 void exit(int); 56 #ifdef __cplusplus 57 } 58 #endif 59 60 #endif 61 # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} 62 # define yymore() (yymorfg=1) 63 #ifndef __cplusplus 64 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 65 #else 66 # define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 67 #endif 68 #define ECHO fprintf(yyout, "%s",yytext) 69 # define REJECT { nstr = yyreject(); goto yyfussy;} 70 int yyleng; 71 #define YYISARRAY 72 char yytext[YYLMAX]; 73 int yymorfg; 74 extern char *yysptr, yysbuf[]; 75 int yytchar; 76 FILE *yyin = {stdin}, *yyout = {stdout}; 77 extern int yylineno; 78 struct yysvf { 79 struct yywork *yystoff; 80 struct yysvf *yyother; 81 int *yystops;}; 82 struct yysvf *yyestate; 83 extern struct yysvf yysvec[], *yybgin; 84 85 # line 3 "svccfg.l" 86 /* 87 * CDDL HEADER START 88 * 89 * The contents of this file are subject to the terms of the 90 * Common Development and Distribution License (the "License"). 91 * You may not use this file except in compliance with the License. 92 * 93 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 94 * or http://www.opensolaris.org/os/licensing. 95 * See the License for the specific language governing permissions 96 * and limitations under the License. 97 * 98 * When distributing Covered Code, include this CDDL HEADER in each 99 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 100 * If applicable, add the following below this CDDL HEADER, with the 101 * fields enclosed by brackets "[]" replaced with your own identifying 102 * information: Portions Copyright [yyyy] [name of copyright owner] 103 * 104 * CDDL HEADER END 105 */ 106 107 108 # line 24 "svccfg.l" 109 /* 110 * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. 111 */ 112 113 114 #pragma error_messages(off, E_BLOCK_DECL_UNUSED) 115 #pragma error_messages(off, E_EQUALITY_NOT_ASSIGNMENT) 116 #pragma error_messages(off, E_FUNC_RET_MAYBE_IGNORED2) 117 #pragma error_messages(off, E_STMT_NOT_REACHED) 118 119 #include <libintl.h> 120 #include <string.h> 121 122 #include "svccfg.h" 123 #include "svccfg_grammar.h" 124 125 126 # line 40 "svccfg.l" 127 /* 128 * We need to undefine lex's input, unput, and output macros so that references 129 * to these call the functions we provide at the end of this source file, 130 * instead of the default versions based on libc's stdio. 131 */ 132 #ifdef input 133 #undef input 134 #endif 135 136 #ifdef unput 137 #undef unput 138 #endif 139 140 #ifdef output 141 #undef output 142 #endif 143 144 static int input(void); 145 static void unput(int); 146 static void output(int); 147 148 int parens = 0; 149 150 extern int yyerror(const char *); 151 152 153 # line 67 "svccfg.l" 154 /* 155 * Since command tokens are only valid at the beginning of the command (or 156 * after help), we'll only return them in the INITIAL state, and report them 157 * as SCV_WORDs afterwards. 158 */ 159 # define WORD 2 160 161 # line 74 "svccfg.l" 162 /* 163 * The default value of lex for transitions is 2000 and it seems we reached it. 164 * So we are bumping it up! 165 */ 166 # define YYNEWLINE 10 167 int yylex(){ 168 int nstr; extern int yyprevious; 169 #ifdef __cplusplus 170 /* to avoid CC and lint complaining yyfussy not being used ...*/ 171 static int __lex_hack = 0; 172 if (__lex_hack) goto yyfussy; 173 #endif 174 while((nstr = yylook()) >= 0) 175 yyfussy: switch(nstr){ 176 case 0: 177 if(yywrap()) return(0); break; 178 case 1: 179 180 # line 81 "svccfg.l" 181 ; 182 break; 183 case 2: 184 185 # line 83 "svccfg.l" 186 { BEGIN WORD; return (SCC_VALIDATE); } 187 break; 188 case 3: 189 190 # line 84 "svccfg.l" 191 { BEGIN WORD; return (SCC_IMPORT); } 192 break; 193 case 4: 194 195 # line 85 "svccfg.l" 196 { BEGIN WORD; return (SCC_CLEANUP); } 197 break; 198 case 5: 199 200 # line 86 "svccfg.l" 201 { BEGIN WORD; return (SCC_EXPORT); } 202 break; 203 case 6: 204 205 # line 87 "svccfg.l" 206 { BEGIN WORD; return (SCC_ARCHIVE); } 207 break; 208 case 7: 209 210 # line 88 "svccfg.l" 211 { BEGIN WORD; return (SCC_RESTORE); } 212 break; 213 case 8: 214 215 # line 89 "svccfg.l" 216 { BEGIN WORD; return (SCC_APPLY); } 217 break; 218 case 9: 219 220 # line 90 "svccfg.l" 221 { BEGIN WORD; return (SCC_EXTRACT); } 222 break; 223 case 10: 224 225 # line 91 "svccfg.l" 226 { BEGIN WORD; return (SCC_REPOSITORY); } 227 break; 228 case 11: 229 230 # line 92 "svccfg.l" 231 { BEGIN WORD; return (SCC_INVENTORY); } 232 break; 233 case 12: 234 235 # line 93 "svccfg.l" 236 { BEGIN WORD; return (SCC_SET); } 237 break; 238 case 13: 239 240 # line 94 "svccfg.l" 241 { BEGIN WORD; return (SCC_END); } 242 break; 243 case 14: 244 245 # line 95 "svccfg.l" 246 { BEGIN WORD; return (SCC_END); } 247 break; 248 case 15: 249 250 # line 96 "svccfg.l" 251 { BEGIN WORD; return (SCC_END); } 252 break; 253 case 16: 254 255 # line 97 "svccfg.l" 256 { return (SCC_HELP); } 257 break; 258 case 17: 259 260 # line 99 "svccfg.l" 261 { BEGIN WORD; return (SCC_LIST); } 262 break; 263 case 18: 264 265 # line 100 "svccfg.l" 266 { BEGIN WORD; return (SCC_ADD); } 267 break; 268 case 19: 269 270 # line 101 "svccfg.l" 271 { BEGIN WORD; return (SCC_DELETE); } 272 break; 273 case 20: 274 275 # line 102 "svccfg.l" 276 { BEGIN WORD; return (SCC_SELECT); } 277 break; 278 case 21: 279 280 # line 103 "svccfg.l" 281 { BEGIN WORD; return (SCC_UNSELECT); } 282 break; 283 case 22: 284 285 # line 105 "svccfg.l" 286 { BEGIN WORD; return (SCC_LISTPG); } 287 break; 288 case 23: 289 290 # line 106 "svccfg.l" 291 { BEGIN WORD; return (SCC_ADDPG); } 292 break; 293 case 24: 294 295 # line 107 "svccfg.l" 296 { BEGIN WORD; return (SCC_DELPG); } 297 break; 298 case 25: 299 300 # line 108 "svccfg.l" 301 { BEGIN WORD; return (SCC_DELHASH); } 302 break; 303 case 26: 304 305 # line 109 "svccfg.l" 306 { BEGIN WORD; return (SCC_LISTPROP); } 307 break; 308 case 27: 309 310 # line 110 "svccfg.l" 311 { BEGIN WORD; return (SCC_SETPROP); } 312 break; 313 case 28: 314 315 # line 111 "svccfg.l" 316 { BEGIN WORD; return (SCC_DELPROP); } 317 break; 318 case 29: 319 320 # line 112 "svccfg.l" 321 { BEGIN WORD; return (SCC_EDITPROP); } 322 break; 323 case 30: 324 325 # line 113 "svccfg.l" 326 { BEGIN WORD; return (SCC_DESCRIBE); } 327 break; 328 case 31: 329 330 # line 114 "svccfg.l" 331 { BEGIN WORD; return (SCC_ADDPROPVALUE); } 332 break; 333 case 32: 334 335 # line 115 "svccfg.l" 336 { BEGIN WORD; return (SCC_DELPROPVALUE); } 337 break; 338 case 33: 339 340 # line 116 "svccfg.l" 341 { BEGIN WORD; return (SCC_SETENV); } 342 break; 343 case 34: 344 345 # line 117 "svccfg.l" 346 { BEGIN WORD; return (SCC_UNSETENV); } 347 break; 348 case 35: 349 350 # line 119 "svccfg.l" 351 { BEGIN WORD; return (SCC_LISTSNAP); } 352 break; 353 case 36: 354 355 # line 120 "svccfg.l" 356 { BEGIN WORD; return (SCC_SELECTSNAP); } 357 break; 358 case 37: 359 360 # line 121 "svccfg.l" 361 { BEGIN WORD; return (SCC_REVERT); } 362 break; 363 case 38: 364 365 # line 122 "svccfg.l" 366 { BEGIN WORD; return (SCC_REFRESH); } 367 break; 368 case 39: 369 370 # line 124 "svccfg.l" 371 { BEGIN WORD; return (SCC_DELNOTIFY); } 372 break; 373 case 40: 374 375 # line 125 "svccfg.l" 376 { BEGIN WORD; return (SCC_LISTNOTIFY); } 377 break; 378 case 41: 379 380 # line 126 "svccfg.l" 381 { BEGIN WORD; return (SCC_SETNOTIFY); } 382 break; 383 case 42: 384 385 # line 128 "svccfg.l" 386 { 387 if ((yylval.str = strdup(yytext)) == NULL) { 388 yyerror(gettext("Out of memory")); 389 exit(UU_EXIT_FATAL); 390 } 391 392 return SCV_WORD; 393 } 394 break; 395 case 43: 396 397 # line 137 "svccfg.l" 398 { 399 /* 400 * double-quoted strings start at a 401 * double-quote, include characters other than 402 * double-quote and backslash, and 403 * backslashed-characters, and end with a 404 * double-quote. 405 */ 406 407 char *str, *cp; 408 int shift; 409 410 if ((str = strdup(yytext)) == NULL) { 411 yyerror(gettext("Out of memory")); 412 exit(UU_EXIT_FATAL); 413 } 414 415 /* Strip out the backslashes. */ 416 for (cp = str, shift = 0; *cp != '\0'; ++cp) { 417 if (*cp == '\\') { 418 ++cp; 419 420 /* 421 * This can't be null because 422 * the string always ends with 423 * a double-quote. 424 */ 425 426 ++shift; 427 *(cp - shift) = *cp; 428 } else if (shift != 0) 429 *(cp - shift) = *cp; 430 } 431 432 /* Nullify everything after trailing quote */ 433 *(cp - shift) = '\0'; 434 435 yylval.str = str; 436 return SCV_STRING; 437 } 438 break; 439 case 44: 440 441 # line 178 "svccfg.l" 442 { 443 est->sc_cmd_lineno++; 444 BEGIN INITIAL; 445 return (SCS_NEWLINE); 446 } 447 break; 448 case 45: 449 450 # line 184 "svccfg.l" 451 ; 452 break; 453 case 46: 454 455 # line 186 "svccfg.l" 456 { return SCS_REDIRECT; } 457 break; 458 case 47: 459 460 # line 187 "svccfg.l" 461 { return SCS_EQUALS; } 462 break; 463 case 48: 464 465 # line 188 "svccfg.l" 466 { ++parens; return SCS_LPAREN; } 467 break; 468 case 49: 469 470 # line 189 "svccfg.l" 471 { --parens; return SCS_RPAREN; } 472 break; 473 case 50: 474 475 # line 191 "svccfg.l" 476 { 477 uu_die(gettext("unrecognized character %s\n"), 478 yytext); 479 } 480 break; 481 case -1: 482 break; 483 default: 484 (void)fprintf(yyout,"bad switch yylook %d",nstr); 485 } return(0); } 486 /* end of yylex */ 487 488 # line 197 "svccfg.l" 489 490 int 491 yyerror(const char *s) 492 { 493 return (0); 494 } 495 496 static int 497 input(void) 498 { 499 static int saw_eof = 0; 500 501 int c = engine_cmd_getc(est); 502 503 /* 504 * To ensure input is terminated, slip in a newline on EOF. 505 */ 506 if (c == EOF) { 507 if (saw_eof) 508 return (0); 509 510 saw_eof = 1; 511 return ('\n'); 512 } else 513 saw_eof = 0; 514 515 if (c == '\n') 516 yylineno++; 517 518 return (c); 519 } 520 521 static void 522 unput(int c) 523 { 524 if (c == '\n') 525 yylineno--; 526 527 (void) engine_cmd_ungetc(est, c == 0 ? EOF : c); 528 } 529 530 static void 531 output(int c) 532 { 533 char ch = c; 534 engine_cmd_nputs(est, &ch, sizeof (ch)); 535 } 536 int yyvstop[] = { 537 0, 538 539 42, 540 50, 541 0, 542 543 45, 544 50, 545 0, 546 547 44, 548 0, 549 550 50, 551 0, 552 553 42, 554 50, 555 -1, 556 0, 557 558 48, 559 50, 560 0, 561 562 49, 563 50, 564 0, 565 566 47, 567 50, 568 0, 569 570 46, 571 50, 572 0, 573 574 42, 575 50, 576 0, 577 578 42, 579 50, 580 0, 581 582 42, 583 50, 584 0, 585 586 42, 587 50, 588 0, 589 590 42, 591 50, 592 0, 593 594 42, 595 50, 596 0, 597 598 42, 599 50, 600 0, 601 602 42, 603 50, 604 0, 605 606 42, 607 50, 608 0, 609 610 42, 611 50, 612 0, 613 614 42, 615 50, 616 0, 617 618 42, 619 50, 620 0, 621 622 42, 623 0, 624 625 45, 626 0, 627 628 43, 629 0, 630 631 42, 632 -1, 633 0, 634 635 -1, 636 0, 637 638 1, 639 0, 640 641 42, 642 0, 643 644 42, 645 0, 646 647 42, 648 0, 649 650 42, 651 0, 652 653 42, 654 0, 655 656 42, 657 0, 658 659 42, 660 0, 661 662 42, 663 0, 664 665 42, 666 0, 667 668 42, 669 0, 670 671 42, 672 0, 673 674 42, 675 0, 676 677 42, 678 0, 679 680 42, 681 0, 682 683 42, 684 0, 685 686 42, 687 0, 688 689 42, 690 0, 691 692 18, 693 42, 694 0, 695 696 42, 697 0, 698 699 42, 700 0, 701 702 42, 703 0, 704 705 42, 706 0, 707 708 42, 709 0, 710 711 42, 712 0, 713 714 13, 715 42, 716 0, 717 718 42, 719 0, 720 721 42, 722 0, 723 724 42, 725 0, 726 727 42, 728 0, 729 730 42, 731 0, 732 733 42, 734 0, 735 736 42, 737 0, 738 739 42, 740 0, 741 742 42, 743 0, 744 745 42, 746 0, 747 748 42, 749 0, 750 751 42, 752 0, 753 754 42, 755 0, 756 757 12, 758 42, 759 0, 760 761 42, 762 0, 763 764 42, 765 0, 766 767 42, 768 0, 769 770 42, 771 0, 772 773 42, 774 0, 775 776 42, 777 0, 778 779 42, 780 0, 781 782 42, 783 0, 784 785 42, 786 0, 787 788 42, 789 0, 790 791 42, 792 0, 793 794 42, 795 0, 796 797 14, 798 42, 799 0, 800 801 42, 802 0, 803 804 42, 805 0, 806 807 16, 808 42, 809 0, 810 811 42, 812 0, 813 814 42, 815 0, 816 817 17, 818 42, 819 0, 820 821 15, 822 42, 823 0, 824 825 42, 826 0, 827 828 42, 829 0, 830 831 42, 832 0, 833 834 42, 835 0, 836 837 42, 838 0, 839 840 42, 841 0, 842 843 42, 844 0, 845 846 42, 847 0, 848 849 42, 850 0, 851 852 42, 853 0, 854 855 23, 856 42, 857 0, 858 859 42, 860 0, 861 862 8, 863 42, 864 0, 865 866 42, 867 0, 868 869 42, 870 0, 871 872 42, 873 0, 874 875 42, 876 0, 877 878 42, 879 0, 880 881 24, 882 42, 883 0, 884 885 42, 886 0, 887 888 42, 889 0, 890 891 42, 892 0, 893 894 42, 895 0, 896 897 42, 898 0, 899 900 42, 901 0, 902 903 42, 904 0, 905 906 42, 907 0, 908 909 42, 910 0, 911 912 42, 913 0, 914 915 42, 916 0, 917 918 42, 919 0, 920 921 42, 922 0, 923 924 42, 925 0, 926 927 42, 928 0, 929 930 42, 931 0, 932 933 42, 934 0, 935 936 42, 937 0, 938 939 42, 940 0, 941 942 42, 943 0, 944 945 42, 946 0, 947 948 42, 949 0, 950 951 42, 952 0, 953 954 42, 955 0, 956 957 19, 958 42, 959 0, 960 961 42, 962 0, 963 964 42, 965 0, 966 967 42, 968 0, 969 970 42, 971 0, 972 973 42, 974 0, 975 976 5, 977 42, 978 0, 979 980 42, 981 0, 982 983 3, 984 42, 985 0, 986 987 42, 988 0, 989 990 42, 991 0, 992 993 22, 994 42, 995 0, 996 997 42, 998 0, 999 1000 42, 1001 0, 1002 1003 42, 1004 0, 1005 1006 42, 1007 0, 1008 1009 42, 1010 0, 1011 1012 37, 1013 42, 1014 0, 1015 1016 20, 1017 42, 1018 0, 1019 1020 33, 1021 42, 1022 0, 1023 1024 42, 1025 0, 1026 1027 42, 1028 0, 1029 1030 42, 1031 0, 1032 1033 42, 1034 0, 1035 1036 42, 1037 0, 1038 1039 42, 1040 0, 1041 1042 6, 1043 42, 1044 0, 1045 1046 4, 1047 42, 1048 0, 1049 1050 25, 1051 42, 1052 0, 1053 1054 42, 1055 0, 1056 1057 28, 1058 42, 1059 0, 1060 1061 42, 1062 0, 1063 1064 42, 1065 0, 1066 1067 9, 1068 42, 1069 0, 1070 1071 42, 1072 0, 1073 1074 42, 1075 0, 1076 1077 42, 1078 0, 1079 1080 42, 1081 0, 1082 1083 38, 1084 42, 1085 0, 1086 1087 42, 1088 0, 1089 1090 7, 1091 42, 1092 0, 1093 1094 42, 1095 0, 1096 1097 42, 1098 0, 1099 1100 27, 1101 42, 1102 0, 1103 1104 42, 1105 0, 1106 1107 42, 1108 0, 1109 1110 42, 1111 0, 1112 1113 42, 1114 0, 1115 1116 42, 1117 0, 1118 1119 42, 1120 0, 1121 1122 30, 1123 42, 1124 0, 1125 1126 29, 1127 42, 1128 0, 1129 1130 42, 1131 0, 1132 1133 42, 1134 0, 1135 1136 26, 1137 42, 1138 0, 1139 1140 35, 1141 42, 1142 0, 1143 1144 42, 1145 0, 1146 1147 42, 1148 0, 1149 1150 42, 1151 0, 1152 1153 21, 1154 42, 1155 0, 1156 1157 34, 1158 42, 1159 0, 1160 1161 2, 1162 42, 1163 0, 1164 1165 42, 1166 0, 1167 1168 39, 1169 42, 1170 0, 1171 1172 42, 1173 0, 1174 1175 11, 1176 42, 1177 0, 1178 1179 42, 1180 0, 1181 1182 42, 1183 0, 1184 1185 42, 1186 0, 1187 1188 41, 1189 42, 1190 0, 1191 1192 42, 1193 0, 1194 1195 42, 1196 0, 1197 1198 40, 1199 42, 1200 0, 1201 1202 10, 1203 42, 1204 0, 1205 1206 36, 1207 42, 1208 0, 1209 1210 42, 1211 0, 1212 1213 42, 1214 0, 1215 1216 31, 1217 42, 1218 0, 1219 1220 32, 1221 42, 1222 0, 1223 0}; 1224 # define YYTYPE unsigned char 1225 struct yywork { YYTYPE verify, advance; } yycrank[] = { 1226 0,0, 0,0, 1,5, 32,32, 1227 0,0, 3,5, 0,0, 0,0, 1228 0,0, 0,0, 1,6, 1,7, 1229 0,0, 3,6, 3,7, 0,0, 1230 0,0, 5,26, 0,0, 0,0, 1231 8,28, 0,0, 9,31, 6,27, 1232 0,0, 5,0, 5,0, 0,0, 1233 8,28, 8,28, 9,32, 9,33, 1234 0,0, 0,0, 0,0, 1,8, 1235 1,9, 0,0, 3,8, 3,9, 1236 0,0, 1,10, 1,11, 4,9, 1237 3,10, 3,11, 6,27, 0,0, 1238 5,0, 4,11, 5,0, 20,0, 1239 20,0, 8,29, 0,0, 9,32, 1240 5,0, 5,0, 2,9, 8,28, 1241 0,0, 9,32, 1,12, 1,13, 1242 2,11, 3,12, 3,13, 30,0, 1243 0,0, 4,12, 4,13, 0,0, 1244 0,0, 0,0, 20,0, 0,0, 1245 20,0, 5,0, 5,0, 0,0, 1246 0,0, 0,0, 20,0, 20,0, 1247 2,12, 2,13, 0,0, 0,0, 1248 0,0, 0,0, 0,0, 30,28, 1249 0,0, 1,5, 32,32, 0,0, 1250 3,5, 0,0, 1,14, 0,0, 1251 1,15, 1,16, 1,17, 20,0, 1252 20,0, 1,18, 1,19, 0,0, 1253 5,26, 1,20, 0,0, 8,30, 1254 0,0, 9,31, 1,21, 1,22, 1255 1,23, 14,26, 1,24, 1,25, 1256 2,14, 0,0, 2,15, 2,16, 1257 2,17, 14,0, 14,0, 2,18, 1258 2,19, 16,0, 16,0, 2,20, 1259 0,0, 0,0, 0,0, 0,0, 1260 2,21, 2,22, 2,23, 0,0, 1261 2,24, 2,25, 15,0, 15,0, 1262 0,0, 0,0, 0,0, 20,45, 1263 14,0, 30,28, 14,0, 0,0, 1264 16,0, 0,0, 16,0, 0,0, 1265 14,0, 14,0, 0,0, 0,0, 1266 16,0, 16,0, 0,0, 0,0, 1267 0,0, 15,0, 0,0, 15,0, 1268 0,0, 0,0, 0,0, 17,26, 1269 0,0, 15,0, 15,0, 0,0, 1270 0,0, 14,0, 14,0, 17,0, 1271 17,0, 16,0, 16,0, 0,0, 1272 0,0, 0,0, 0,0, 0,0, 1273 0,0, 0,0, 0,0, 0,0, 1274 18,0, 18,0, 15,0, 15,0, 1275 0,0, 0,0, 0,0, 0,0, 1276 0,0, 0,0, 17,0, 0,0, 1277 17,0, 0,0, 0,0, 0,0, 1278 14,26, 0,0, 17,0, 17,0, 1279 0,0, 0,0, 0,0, 18,0, 1280 14,34, 18,0, 19,26, 0,0, 1281 0,0, 16,38, 0,0, 18,0, 1282 18,0, 0,0, 19,0, 19,0, 1283 14,35, 0,0, 14,36, 17,0, 1284 17,0, 0,0, 0,0, 0,0, 1285 21,0, 21,0, 0,0, 0,0, 1286 0,0, 15,37, 0,0, 0,0, 1287 18,0, 18,0, 0,0, 0,0, 1288 0,0, 19,0, 0,0, 19,0, 1289 0,0, 0,0, 0,0, 0,0, 1290 0,0, 19,0, 19,0, 21,0, 1291 0,0, 21,0, 17,26, 0,0, 1292 0,0, 0,0, 0,0, 21,0, 1293 21,0, 0,0, 17,39, 22,0, 1294 22,0, 0,0, 0,0, 0,0, 1295 23,0, 23,0, 19,0, 19,0, 1296 17,40, 24,0, 24,0, 0,0, 1297 18,42, 0,0, 0,0, 0,0, 1298 21,0, 21,0, 17,41, 0,0, 1299 0,0, 0,0, 22,0, 0,0, 1300 22,0, 0,0, 0,0, 23,0, 1301 0,0, 23,0, 22,0, 22,0, 1302 24,0, 0,0, 24,0, 23,0, 1303 23,0, 19,26, 0,0, 0,0, 1304 24,0, 24,0, 25,0, 25,0, 1305 0,0, 26,0, 26,0, 0,0, 1306 0,0, 0,0, 0,0, 22,0, 1307 22,0, 0,0, 19,43, 19,44, 1308 23,0, 23,0, 0,0, 0,0, 1309 0,0, 24,0, 24,0, 0,0, 1310 0,0, 25,0, 0,0, 25,0, 1311 26,0, 0,0, 26,0, 0,0, 1312 21,46, 25,0, 25,0, 0,0, 1313 26,0, 26,0, 0,0, 0,0, 1314 34,0, 34,0, 0,0, 35,0, 1315 35,0, 0,0, 0,0, 0,0, 1316 0,0, 0,0, 0,0, 22,47, 1317 0,0, 0,0, 25,0, 25,0, 1318 23,48, 26,0, 26,0, 0,0, 1319 0,0, 0,0, 0,0, 34,0, 1320 0,0, 34,0, 35,0, 0,0, 1321 35,0, 0,0, 24,49, 34,0, 1322 34,0, 0,0, 35,0, 35,0, 1323 36,0, 36,0, 0,0, 0,0, 1324 37,0, 37,0, 0,0, 0,0, 1325 0,0, 0,0, 0,0, 0,0, 1326 0,0, 0,0, 25,50, 0,0, 1327 34,0, 34,0, 0,0, 35,0, 1328 35,0, 0,0, 0,0, 36,0, 1329 0,0, 36,0, 0,0, 37,0, 1330 0,0, 37,0, 0,0, 36,0, 1331 36,0, 38,26, 0,0, 37,0, 1332 37,0, 0,0, 0,0, 0,0, 1333 0,0, 38,0, 38,0, 0,0, 1334 0,0, 0,0, 39,0, 39,0, 1335 0,0, 0,0, 0,0, 0,0, 1336 36,0, 36,0, 0,0, 34,51, 1337 37,0, 37,0, 0,0, 0,0, 1338 40,0, 40,0, 0,0, 0,0, 1339 38,0, 0,0, 38,0, 0,0, 1340 0,0, 39,0, 35,52, 39,0, 1341 38,0, 38,0, 0,0, 0,0, 1342 0,0, 39,0, 39,0, 0,0, 1343 0,0, 0,0, 0,0, 40,0, 1344 0,0, 40,0, 42,0, 42,0, 1345 0,0, 0,0, 36,53, 40,0, 1346 40,0, 38,0, 38,0, 41,26, 1347 37,54, 0,0, 39,0, 39,0, 1348 43,0, 43,0, 0,0, 41,0, 1349 41,0, 0,0, 0,0, 0,0, 1350 0,0, 42,0, 0,0, 42,0, 1351 40,0, 40,0, 0,0, 0,0, 1352 0,0, 42,0, 42,0, 0,0, 1353 0,0, 0,0, 0,0, 43,0, 1354 38,26, 43,0, 41,0, 0,0, 1355 41,0, 0,0, 0,0, 43,0, 1356 43,0, 0,0, 41,0, 41,0, 1357 44,0, 44,0, 42,0, 42,0, 1358 38,55, 0,0, 39,57, 0,0, 1359 0,0, 0,0, 0,0, 38,56, 1360 45,0, 45,0, 0,0, 40,58, 1361 43,0, 43,0, 0,0, 41,0, 1362 41,0, 0,0, 0,0, 44,0, 1363 0,0, 44,0, 0,0, 0,0, 1364 0,0, 0,0, 0,0, 44,0, 1365 44,0, 0,0, 0,0, 45,0, 1366 0,0, 45,0, 0,0, 0,0, 1367 0,0, 0,0, 0,0, 45,0, 1368 45,0, 0,0, 46,0, 46,0, 1369 0,0, 42,62, 41,26, 0,0, 1370 44,0, 44,0, 0,0, 0,0, 1371 0,0, 0,0, 0,0, 0,0, 1372 0,0, 0,0, 0,0, 41,59, 1373 45,0, 45,0, 0,0, 43,63, 1374 0,0, 46,0, 41,60, 46,0, 1375 47,26, 0,0, 41,61, 48,26, 1376 0,0, 46,0, 46,0, 0,0, 1377 47,0, 47,0, 0,0, 48,0, 1378 48,0, 0,0, 0,0, 0,0, 1379 0,0, 0,0, 0,0, 0,0, 1380 0,0, 0,0, 49,0, 49,0, 1381 0,0, 0,0, 46,0, 46,0, 1382 0,0, 0,0, 0,0, 47,0, 1383 0,0, 47,0, 48,0, 0,0, 1384 48,0, 44,64, 0,0, 47,0, 1385 47,0, 0,0, 48,0, 48,0, 1386 0,0, 49,0, 45,65, 49,0, 1387 0,0, 0,0, 0,0, 0,0, 1388 0,0, 49,0, 49,0, 50,0, 1389 50,0, 0,0, 0,0, 0,0, 1390 47,0, 47,0, 0,0, 48,0, 1391 48,0, 0,0, 0,0, 51,0, 1392 51,0, 0,0, 46,66, 0,0, 1393 52,0, 52,0, 49,0, 49,0, 1394 0,0, 0,0, 50,0, 0,0, 1395 50,0, 0,0, 0,0, 0,0, 1396 0,0, 0,0, 50,0, 50,0, 1397 0,0, 0,0, 51,0, 47,26, 1398 51,0, 0,0, 48,26, 52,0, 1399 0,0, 52,0, 51,0, 51,0, 1400 0,0, 47,67, 0,0, 52,0, 1401 52,0, 0,0, 0,0, 50,0, 1402 50,0, 0,0, 48,71, 47,68, 1403 53,0, 53,0, 47,69, 54,0, 1404 54,0, 47,70, 48,72, 51,0, 1405 51,0, 0,0, 55,26, 0,0, 1406 52,0, 52,0, 56,0, 56,0, 1407 49,73, 0,0, 55,0, 55,0, 1408 0,0, 0,0, 0,0, 53,0, 1409 0,0, 53,0, 54,0, 0,0, 1410 54,0, 0,0, 0,0, 53,0, 1411 53,0, 0,0, 54,0, 54,0, 1412 0,0, 56,0, 0,0, 56,0, 1413 0,0, 55,0, 50,74, 55,0, 1414 0,0, 56,0, 56,0, 0,0, 1415 0,0, 55,0, 55,0, 0,0, 1416 53,0, 53,0, 0,0, 54,0, 1417 54,0, 0,0, 51,75, 52,76, 1418 0,0, 0,0, 57,0, 57,0, 1419 0,0, 0,0, 56,0, 56,0, 1420 0,0, 0,0, 55,0, 55,0, 1421 0,0, 0,0, 58,0, 58,0, 1422 0,0, 59,0, 59,0, 0,0, 1423 0,0, 0,0, 0,0, 0,0, 1424 0,0, 57,0, 0,0, 57,0, 1425 0,0, 0,0, 0,0, 54,78, 1426 0,0, 57,0, 57,0, 53,77, 1427 0,0, 58,0, 0,0, 58,0, 1428 59,0, 55,26, 59,0, 0,0, 1429 56,83, 58,0, 58,0, 0,0, 1430 59,0, 59,0, 55,79, 60,0, 1431 60,0, 55,80, 57,0, 57,0, 1432 0,0, 0,0, 0,0, 55,81, 1433 0,0, 55,82, 61,0, 61,0, 1434 0,0, 0,0, 58,0, 58,0, 1435 0,0, 59,0, 59,0, 0,0, 1436 0,0, 0,0, 60,0, 0,0, 1437 60,0, 0,0, 0,0, 0,0, 1438 0,0, 0,0, 60,0, 60,0, 1439 0,0, 61,0, 0,0, 61,0, 1440 62,0, 62,0, 0,0, 0,0, 1441 0,0, 61,0, 61,0, 0,0, 1442 0,0, 0,0, 63,0, 63,0, 1443 0,0, 0,0, 0,0, 60,0, 1444 60,0, 0,0, 0,0, 0,0, 1445 0,0, 57,84, 0,0, 62,0, 1446 0,0, 62,0, 61,0, 61,0, 1447 0,0, 0,0, 0,0, 62,0, 1448 62,0, 63,0, 0,0, 63,0, 1449 59,85, 0,0, 0,0, 0,0, 1450 0,0, 63,0, 63,0, 64,0, 1451 64,0, 0,0, 65,0, 65,0, 1452 0,0, 0,0, 0,0, 0,0, 1453 62,0, 62,0, 0,0, 0,0, 1454 0,0, 66,0, 66,0, 0,0, 1455 0,0, 0,0, 63,0, 63,0, 1456 0,0, 60,86, 64,0, 0,0, 1457 64,0, 65,0, 0,0, 65,0, 1458 0,0, 0,0, 64,0, 64,0, 1459 0,0, 65,0, 65,0, 61,87, 1460 66,0, 0,0, 66,0, 0,0, 1461 0,0, 0,0, 0,0, 0,0, 1462 66,0, 66,0, 67,0, 67,0, 1463 0,0, 69,0, 69,0, 64,0, 1464 64,0, 0,0, 65,0, 65,0, 1465 0,0, 0,0, 0,0, 62,88, 1466 0,0, 68,0, 68,0, 0,0, 1467 0,0, 66,0, 66,0, 0,0, 1468 63,89, 67,0, 0,0, 67,0, 1469 69,0, 0,0, 69,0, 0,0, 1470 0,0, 67,0, 67,0, 0,0, 1471 69,0, 69,0, 0,0, 0,0, 1472 68,0, 0,0, 68,0, 70,0, 1473 70,0, 0,0, 0,0, 64,90, 1474 68,0, 68,0, 0,0, 0,0, 1475 0,0, 0,0, 67,0, 67,0, 1476 0,0, 69,0, 69,0, 0,0, 1477 0,0, 71,0, 71,0, 0,0, 1478 0,0, 65,91, 70,0, 0,0, 1479 70,0, 68,0, 68,0, 72,26, 1480 0,0, 0,0, 70,0, 70,0, 1481 66,92, 0,0, 0,0, 72,0, 1482 72,0, 0,0, 0,0, 0,0, 1483 71,0, 0,0, 71,0, 0,0, 1484 0,0, 0,0, 0,0, 0,0, 1485 71,0, 71,0, 0,0, 70,0, 1486 70,0, 73,0, 73,0, 0,0, 1487 0,0, 0,0, 72,0, 0,0, 1488 72,0, 0,0, 0,0, 67,93, 1489 0,0, 0,0, 72,0, 72,0, 1490 69,95, 71,0, 71,0, 74,0, 1491 74,0, 0,0, 0,0, 68,94, 1492 73,0, 0,0, 73,0, 0,0, 1493 0,0, 75,26, 0,0, 0,0, 1494 73,0, 73,0, 0,0, 72,0, 1495 72,0, 75,0, 75,0, 70,96, 1496 0,0, 0,0, 74,0, 0,0, 1497 74,0, 0,0, 0,0, 0,0, 1498 0,0, 0,0, 74,0, 74,0, 1499 0,0, 73,0, 73,0, 0,0, 1500 0,0, 71,97, 0,0, 0,0, 1501 75,0, 0,0, 75,0, 0,0, 1502 0,0, 0,0, 72,26, 0,0, 1503 75,0, 75,0, 0,0, 74,0, 1504 74,0, 76,0, 76,0, 72,98, 1505 77,0, 77,0, 0,0, 0,0, 1506 0,0, 0,0, 0,0, 0,0, 1507 72,99, 0,0, 72,100, 78,0, 1508 78,0, 75,0, 75,0, 79,0, 1509 79,0, 73,101, 0,0, 0,0, 1510 76,0, 0,0, 76,0, 77,0, 1511 0,0, 77,0, 0,0, 0,0, 1512 76,0, 76,0, 0,0, 77,0, 1513 77,0, 0,0, 78,0, 0,0, 1514 78,0, 0,0, 79,0, 74,102, 1515 79,0, 0,0, 78,0, 78,0, 1516 75,26, 0,0, 79,0, 79,0, 1517 0,0, 76,0, 76,0, 0,0, 1518 77,0, 77,0, 0,0, 75,103, 1519 0,0, 0,0, 80,0, 80,0, 1520 0,0, 81,0, 81,0, 78,0, 1521 78,0, 0,0, 75,104, 79,0, 1522 79,0, 0,0, 0,0, 0,0, 1523 82,0, 82,0, 0,0, 83,0, 1524 83,0, 0,0, 0,0, 0,0, 1525 0,0, 80,0, 0,0, 80,0, 1526 81,0, 0,0, 81,0, 0,0, 1527 0,0, 80,0, 80,0, 0,0, 1528 81,0, 81,0, 0,0, 82,0, 1529 77,106, 82,0, 83,0, 0,0, 1530 83,0, 0,0, 0,0, 82,0, 1531 82,0, 0,0, 83,0, 83,0, 1532 0,0, 76,105, 80,0, 80,0, 1533 78,107, 81,0, 81,0, 0,0, 1534 84,0, 84,0, 0,0, 85,0, 1535 85,0, 0,0, 79,108, 0,0, 1536 82,0, 82,0, 0,0, 83,0, 1537 83,0, 86,0, 86,0, 0,0, 1538 0,0, 87,0, 87,0, 0,0, 1539 0,0, 0,0, 0,0, 84,0, 1540 0,0, 84,0, 85,0, 0,0, 1541 85,0, 0,0, 80,109, 84,0, 1542 84,0, 0,0, 85,0, 85,0, 1543 86,0, 0,0, 86,0, 0,0, 1544 87,0, 0,0, 87,0, 0,0, 1545 86,0, 86,0, 0,0, 81,110, 1546 87,0, 87,0, 82,111, 0,0, 1547 84,0, 84,0, 0,0, 85,0, 1548 85,0, 88,0, 88,0, 0,0, 1549 0,0, 82,112, 89,0, 89,0, 1550 83,113, 86,0, 86,0, 90,0, 1551 90,0, 87,0, 87,0, 0,0, 1552 0,0, 0,0, 0,0, 0,0, 1553 0,0, 0,0, 0,0, 0,0, 1554 88,0, 0,0, 88,0, 0,0, 1555 0,0, 89,0, 0,0, 89,0, 1556 88,0, 88,0, 90,0, 0,0, 1557 90,0, 89,0, 89,0, 0,0, 1558 0,0, 0,0, 90,0, 90,0, 1559 92,0, 92,0, 0,0, 84,114, 1560 91,26, 87,116, 0,0, 0,0, 1561 0,0, 88,0, 88,0, 0,0, 1562 91,0, 91,0, 89,0, 89,0, 1563 0,0, 0,0, 86,115, 90,0, 1564 90,0, 0,0, 0,0, 92,0, 1565 0,0, 92,0, 94,0, 94,0, 1566 0,0, 0,0, 0,0, 92,0, 1567 92,0, 0,0, 0,0, 91,0, 1568 0,0, 91,0, 93,0, 93,0, 1569 0,0, 0,0, 0,0, 91,0, 1570 91,0, 0,0, 0,0, 0,0, 1571 0,0, 94,0, 0,0, 94,0, 1572 92,0, 92,0, 0,0, 0,0, 1573 0,0, 94,0, 94,0, 0,0, 1574 0,0, 93,0, 0,0, 93,0, 1575 91,0, 91,0, 0,0, 89,117, 1576 90,118, 93,0, 93,0, 95,0, 1577 95,0, 0,0, 96,0, 96,0, 1578 0,0, 0,0, 94,0, 94,0, 1579 0,0, 0,0, 0,0, 0,0, 1580 0,0, 97,0, 97,0, 0,0, 1581 0,0, 0,0, 93,0, 93,0, 1582 0,0, 0,0, 95,0, 91,26, 1583 95,0, 96,0, 0,0, 96,0, 1584 0,0, 0,0, 95,0, 95,0, 1585 0,0, 96,0, 96,0, 0,0, 1586 97,0, 0,0, 97,0, 98,0, 1587 98,0, 91,119, 0,0, 91,120, 1588 97,0, 97,0, 91,121, 0,0, 1589 0,0, 0,0, 0,0, 95,0, 1590 95,0, 0,0, 96,0, 96,0, 1591 99,0, 99,0, 93,122, 0,0, 1592 94,123, 0,0, 98,0, 0,0, 1593 98,0, 97,0, 97,0, 0,0, 1594 0,0, 0,0, 98,0, 98,0, 1595 0,0, 100,0, 100,0, 0,0, 1596 0,0, 0,0, 0,0, 99,0, 1597 0,0, 99,0, 0,0, 0,0, 1598 0,0, 0,0, 0,0, 99,0, 1599 99,0, 101,0, 101,0, 98,0, 1600 98,0, 0,0, 0,0, 0,0, 1601 100,0, 0,0, 100,0, 102,0, 1602 102,0, 95,124, 0,0, 97,126, 1603 100,0, 100,0, 0,0, 96,125, 1604 99,0, 99,0, 0,0, 0,0, 1605 101,0, 0,0, 101,0, 0,0, 1606 0,0, 0,0, 0,0, 0,0, 1607 101,0, 101,0, 102,0, 0,0, 1608 102,0, 100,0, 100,0, 0,0, 1609 0,0, 0,0, 102,0, 102,0, 1610 103,0, 103,0, 0,0, 0,0, 1611 0,0, 0,0, 0,0, 0,0, 1612 98,127, 101,0, 101,0, 0,0, 1613 0,0, 104,0, 104,0, 0,0, 1614 105,0, 105,0, 0,0, 102,0, 1615 102,0, 0,0, 0,0, 103,0, 1616 0,0, 103,0, 99,128, 0,0, 1617 0,0, 0,0, 0,0, 103,0, 1618 103,0, 0,0, 0,0, 0,0, 1619 104,0, 0,0, 104,0, 105,0, 1620 0,0, 105,0, 0,0, 0,0, 1621 104,0, 104,0, 100,129, 105,0, 1622 105,0, 106,0, 106,0, 0,0, 1623 103,0, 103,0, 107,0, 107,0, 1624 101,130, 0,0, 102,132, 108,0, 1625 108,0, 0,0, 0,0, 0,0, 1626 101,131, 104,0, 104,0, 0,0, 1627 105,0, 105,0, 0,0, 0,0, 1628 106,0, 0,0, 106,0, 0,0, 1629 0,0, 107,0, 0,0, 107,0, 1630 106,0, 106,0, 108,0, 0,0, 1631 108,0, 107,0, 107,0, 0,0, 1632 0,0, 0,0, 108,0, 108,0, 1633 0,0, 109,0, 109,0, 0,0, 1634 110,0, 110,0, 0,0, 0,0, 1635 0,0, 106,0, 106,0, 0,0, 1636 0,0, 0,0, 107,0, 107,0, 1637 111,0, 111,0, 0,0, 108,0, 1638 108,0, 0,0, 0,0, 104,133, 1639 109,0, 0,0, 109,0, 110,0, 1640 0,0, 110,0, 0,0, 0,0, 1641 109,0, 109,0, 0,0, 110,0, 1642 110,0, 0,0, 0,0, 111,0, 1643 0,0, 111,0, 112,0, 112,0, 1644 0,0, 0,0, 0,0, 111,0, 1645 111,0, 0,0, 0,0, 0,0, 1646 0,0, 109,0, 109,0, 0,0, 1647 110,0, 110,0, 0,0, 108,136, 1648 113,0, 113,0, 0,0, 0,0, 1649 0,0, 112,0, 106,134, 112,0, 1650 111,0, 111,0, 107,135, 0,0, 1651 0,0, 112,0, 112,0, 0,0, 1652 0,0, 114,0, 114,0, 0,0, 1653 0,0, 0,0, 0,0, 113,0, 1654 0,0, 113,0, 0,0, 0,0, 1655 0,0, 0,0, 0,0, 113,0, 1656 113,0, 0,0, 112,0, 112,0, 1657 115,0, 115,0, 0,0, 0,0, 1658 114,0, 0,0, 114,0, 0,0, 1659 0,0, 0,0, 0,0, 109,137, 1660 114,0, 114,0, 0,0, 110,138, 1661 113,0, 113,0, 116,0, 116,0, 1662 0,0, 0,0, 0,0, 115,0, 1663 0,0, 115,0, 0,0, 0,0, 1664 0,0, 0,0, 0,0, 115,0, 1665 115,0, 114,0, 114,0, 0,0, 1666 117,0, 117,0, 0,0, 0,0, 1667 0,0, 116,0, 0,0, 116,0, 1668 0,0, 0,0, 0,0, 0,0, 1669 112,139, 116,0, 116,0, 0,0, 1670 115,0, 115,0, 0,0, 0,0, 1671 0,0, 0,0, 0,0, 117,0, 1672 113,140, 117,0, 118,0, 118,0, 1673 0,0, 0,0, 0,0, 117,0, 1674 117,0, 0,0, 116,0, 116,0, 1675 119,0, 119,0, 0,0, 0,0, 1676 0,0, 0,0, 0,0, 0,0, 1677 0,0, 0,0, 0,0, 0,0, 1678 0,0, 118,0, 114,141, 118,0, 1679 117,0, 117,0, 0,0, 0,0, 1680 0,0, 118,0, 118,0, 119,0, 1681 0,0, 119,0, 120,0, 120,0, 1682 0,0, 0,0, 0,0, 119,0, 1683 119,0, 0,0, 0,0, 115,142, 1684 116,143, 121,0, 121,0, 0,0, 1685 0,0, 0,0, 118,0, 118,0, 1686 0,0, 0,0, 0,0, 0,0, 1687 0,0, 120,0, 0,0, 120,0, 1688 119,0, 119,0, 0,0, 0,0, 1689 0,0, 120,0, 120,0, 0,0, 1690 121,0, 0,0, 121,0, 122,0, 1691 122,0, 0,0, 0,0, 0,0, 1692 121,0, 121,0, 0,0, 117,144, 1693 0,0, 0,0, 0,0, 123,0, 1694 123,0, 0,0, 120,0, 120,0, 1695 124,0, 124,0, 0,0, 0,0, 1696 0,0, 0,0, 122,0, 0,0, 1697 122,0, 121,0, 121,0, 0,0, 1698 0,0, 0,0, 122,0, 122,0, 1699 0,0, 118,145, 123,0, 0,0, 1700 123,0, 0,0, 119,146, 124,0, 1701 0,0, 124,0, 123,0, 123,0, 1702 0,0, 0,0, 0,0, 124,0, 1703 124,0, 0,0, 0,0, 122,0, 1704 122,0, 0,0, 0,0, 0,0, 1705 120,147, 125,0, 125,0, 0,0, 1706 126,0, 126,0, 0,0, 123,0, 1707 123,0, 0,0, 0,0, 120,148, 1708 124,0, 124,0, 127,0, 127,0, 1709 0,0, 0,0, 121,149, 0,0, 1710 0,0, 0,0, 0,0, 0,0, 1711 125,0, 0,0, 125,0, 126,0, 1712 0,0, 126,0, 0,0, 0,0, 1713 125,0, 125,0, 0,0, 126,0, 1714 126,0, 127,0, 0,0, 127,0, 1715 0,0, 0,0, 0,0, 0,0, 1716 0,0, 127,0, 127,0, 128,0, 1717 128,0, 122,150, 0,0, 123,151, 1718 0,0, 125,0, 125,0, 0,0, 1719 126,0, 126,0, 0,0, 0,0, 1720 129,0, 129,0, 0,0, 130,0, 1721 130,0, 124,152, 127,0, 127,0, 1722 0,0, 0,0, 128,0, 0,0, 1723 128,0, 131,0, 131,0, 0,0, 1724 0,0, 0,0, 128,0, 128,0, 1725 0,0, 0,0, 0,0, 129,0, 1726 0,0, 129,0, 130,0, 0,0, 1727 130,0, 0,0, 0,0, 129,0, 1728 129,0, 0,0, 130,0, 130,0, 1729 131,0, 0,0, 131,0, 128,0, 1730 128,0, 0,0, 0,0, 0,0, 1731 131,0, 131,0, 132,0, 132,0, 1732 125,153, 0,0, 0,0, 126,154, 1733 129,0, 129,0, 0,0, 130,0, 1734 130,0, 133,0, 133,0, 0,0, 1735 134,0, 134,0, 0,0, 127,155, 1736 0,0, 131,0, 131,0, 0,0, 1737 0,0, 132,0, 0,0, 132,0, 1738 0,0, 0,0, 0,0, 0,0, 1739 0,0, 132,0, 132,0, 0,0, 1740 133,0, 0,0, 133,0, 134,0, 1741 0,0, 134,0, 0,0, 0,0, 1742 133,0, 133,0, 0,0, 134,0, 1743 134,0, 0,0, 128,156, 130,158, 1744 135,0, 135,0, 132,0, 132,0, 1745 0,0, 0,0, 129,157, 0,0, 1746 0,0, 131,159, 136,0, 136,0, 1747 0,0, 133,0, 133,0, 0,0, 1748 134,0, 134,0, 0,0, 0,0, 1749 0,0, 0,0, 0,0, 135,0, 1750 0,0, 135,0, 137,0, 137,0, 1751 0,0, 0,0, 0,0, 135,0, 1752 135,0, 136,0, 0,0, 136,0, 1753 138,0, 138,0, 132,160, 0,0, 1754 0,0, 136,0, 136,0, 0,0, 1755 0,0, 0,0, 0,0, 0,0, 1756 0,0, 137,0, 0,0, 137,0, 1757 135,0, 135,0, 0,0, 0,0, 1758 134,162, 137,0, 137,0, 138,0, 1759 0,0, 138,0, 136,0, 136,0, 1760 133,161, 0,0, 0,0, 138,0, 1761 138,0, 0,0, 139,0, 139,0, 1762 0,0, 140,0, 140,0, 0,0, 1763 0,0, 0,0, 137,0, 137,0, 1764 0,0, 0,0, 0,0, 141,0, 1765 141,0, 0,0, 142,0, 142,0, 1766 138,0, 138,0, 0,0, 0,0, 1767 0,0, 139,0, 0,0, 139,0, 1768 140,0, 0,0, 140,0, 0,0, 1769 0,0, 139,0, 139,0, 135,163, 1770 140,0, 140,0, 141,0, 0,0, 1771 141,0, 142,0, 0,0, 142,0, 1772 0,0, 0,0, 141,0, 141,0, 1773 0,0, 142,0, 142,0, 143,0, 1774 143,0, 137,164, 139,0, 139,0, 1775 0,0, 140,0, 140,0, 0,0, 1776 0,0, 144,0, 144,0, 0,0, 1777 138,165, 0,0, 0,0, 141,0, 1778 141,0, 0,0, 142,0, 142,0, 1779 0,0, 0,0, 143,0, 0,0, 1780 143,0, 145,0, 145,0, 0,0, 1781 0,0, 0,0, 143,0, 143,0, 1782 144,0, 0,0, 144,0, 146,0, 1783 146,0, 0,0, 0,0, 0,0, 1784 144,0, 144,0, 140,167, 0,0, 1785 0,0, 0,0, 0,0, 0,0, 1786 145,0, 0,0, 145,0, 143,0, 1787 143,0, 139,166, 0,0, 0,0, 1788 145,0, 145,0, 146,0, 0,0, 1789 146,0, 144,0, 144,0, 0,0, 1790 0,0, 141,168, 146,0, 146,0, 1791 147,0, 147,0, 0,0, 148,0, 1792 148,0, 0,0, 0,0, 0,0, 1793 0,0, 145,0, 145,0, 0,0, 1794 0,0, 0,0, 149,0, 149,0, 1795 0,0, 150,0, 150,0, 146,0, 1796 146,0, 0,0, 0,0, 147,0, 1797 0,0, 147,0, 148,0, 0,0, 1798 148,0, 0,0, 0,0, 147,0, 1799 147,0, 0,0, 148,0, 148,0, 1800 0,0, 149,0, 143,169, 149,0, 1801 150,0, 0,0, 150,0, 0,0, 1802 0,0, 149,0, 149,0, 0,0, 1803 150,0, 150,0, 0,0, 0,0, 1804 147,0, 147,0, 0,0, 148,0, 1805 148,0, 151,0, 151,0, 145,170, 1806 0,0, 152,0, 152,0, 0,0, 1807 0,0, 0,0, 149,0, 149,0, 1808 0,0, 150,0, 150,0, 0,0, 1809 153,0, 153,0, 146,171, 154,0, 1810 154,0, 0,0, 0,0, 0,0, 1811 151,0, 0,0, 151,0, 0,0, 1812 152,0, 0,0, 152,0, 0,0, 1813 151,0, 151,0, 0,0, 0,0, 1814 152,0, 152,0, 0,0, 153,0, 1815 0,0, 153,0, 154,0, 0,0, 1816 154,0, 0,0, 149,173, 153,0, 1817 153,0, 148,172, 154,0, 154,0, 1818 0,0, 151,0, 151,0, 0,0, 1819 150,174, 152,0, 152,0, 155,0, 1820 155,0, 0,0, 156,0, 156,0, 1821 0,0, 0,0, 0,0, 0,0, 1822 153,0, 153,0, 0,0, 154,0, 1823 154,0, 0,0, 0,0, 157,0, 1824 157,0, 0,0, 158,0, 158,0, 1825 0,0, 0,0, 155,0, 0,0, 1826 155,0, 156,0, 0,0, 156,0, 1827 0,0, 0,0, 155,0, 155,0, 1828 0,0, 156,0, 156,0, 0,0, 1829 0,0, 152,176, 157,0, 0,0, 1830 157,0, 158,0, 0,0, 158,0, 1831 0,0, 0,0, 157,0, 157,0, 1832 151,175, 158,0, 158,0, 155,0, 1833 155,0, 0,0, 156,0, 156,0, 1834 0,0, 159,0, 159,0, 0,0, 1835 160,0, 160,0, 0,0, 0,0, 1836 0,0, 154,177, 0,0, 157,0, 1837 157,0, 0,0, 158,0, 158,0, 1838 161,0, 161,0, 0,0, 0,0, 1839 0,0, 0,0, 0,0, 0,0, 1840 159,0, 0,0, 159,0, 160,0, 1841 0,0, 160,0, 0,0, 0,0, 1842 159,0, 159,0, 0,0, 160,0, 1843 160,0, 0,0, 0,0, 161,0, 1844 0,0, 161,0, 156,178, 0,0, 1845 0,0, 0,0, 0,0, 161,0, 1846 161,0, 0,0, 0,0, 0,0, 1847 158,180, 159,0, 159,0, 0,0, 1848 160,0, 160,0, 0,0, 0,0, 1849 162,0, 162,0, 157,179, 163,0, 1850 163,0, 0,0, 0,0, 0,0, 1851 161,0, 161,0, 0,0, 0,0, 1852 0,0, 0,0, 164,0, 164,0, 1853 0,0, 0,0, 165,0, 165,0, 1854 0,0, 0,0, 0,0, 162,0, 1855 0,0, 162,0, 163,0, 0,0, 1856 163,0, 0,0, 0,0, 162,0, 1857 162,0, 0,0, 163,0, 163,0, 1858 0,0, 164,0, 0,0, 164,0, 1859 0,0, 165,0, 159,181, 165,0, 1860 0,0, 164,0, 164,0, 0,0, 1861 0,0, 165,0, 165,0, 160,182, 1862 162,0, 162,0, 0,0, 163,0, 1863 163,0, 166,0, 166,0, 0,0, 1864 167,0, 167,0, 0,0, 0,0, 1865 0,0, 161,183, 164,0, 164,0, 1866 0,0, 0,0, 165,0, 165,0, 1867 168,0, 168,0, 0,0, 169,0, 1868 169,0, 0,0, 0,0, 0,0, 1869 166,0, 0,0, 166,0, 167,0, 1870 0,0, 167,0, 0,0, 0,0, 1871 166,0, 166,0, 0,0, 167,0, 1872 167,0, 0,0, 0,0, 168,0, 1873 0,0, 168,0, 169,0, 0,0, 1874 169,0, 0,0, 0,0, 168,0, 1875 168,0, 0,0, 169,0, 169,0, 1876 0,0, 166,0, 166,0, 165,184, 1877 167,0, 167,0, 0,0, 170,0, 1878 170,0, 0,0, 171,0, 171,0, 1879 0,0, 0,0, 0,0, 0,0, 1880 168,0, 168,0, 0,0, 169,0, 1881 169,0, 0,0, 172,0, 172,0, 1882 0,0, 173,0, 173,0, 0,0, 1883 0,0, 0,0, 170,0, 0,0, 1884 170,0, 171,0, 0,0, 171,0, 1885 0,0, 0,0, 170,0, 170,0, 1886 0,0, 171,0, 171,0, 0,0, 1887 167,186, 172,0, 0,0, 172,0, 1888 173,0, 0,0, 173,0, 0,0, 1889 0,0, 172,0, 172,0, 0,0, 1890 173,0, 173,0, 166,185, 170,0, 1891 170,0, 0,0, 171,0, 171,0, 1892 174,0, 174,0, 0,0, 168,187, 1893 175,0, 175,0, 0,0, 0,0, 1894 0,0, 0,0, 172,0, 172,0, 1895 0,0, 173,0, 173,0, 176,0, 1896 176,0, 0,0, 177,0, 177,0, 1897 0,0, 0,0, 0,0, 174,0, 1898 0,0, 174,0, 0,0, 175,0, 1899 0,0, 175,0, 0,0, 174,0, 1900 174,0, 0,0, 0,0, 175,0, 1901 175,0, 0,0, 176,0, 0,0, 1902 176,0, 177,0, 171,189, 177,0, 1903 0,0, 0,0, 176,0, 176,0, 1904 170,188, 177,0, 177,0, 0,0, 1905 174,0, 174,0, 0,0, 0,0, 1906 175,0, 175,0, 178,0, 178,0, 1907 0,0, 172,190, 179,0, 179,0, 1908 173,191, 0,0, 0,0, 176,0, 1909 176,0, 0,0, 177,0, 177,0, 1910 180,0, 180,0, 0,0, 0,0, 1911 181,0, 181,0, 0,0, 0,0, 1912 0,0, 178,0, 0,0, 178,0, 1913 0,0, 179,0, 0,0, 179,0, 1914 0,0, 178,0, 178,0, 0,0, 1915 0,0, 179,0, 179,0, 180,0, 1916 0,0, 180,0, 0,0, 181,0, 1917 0,0, 181,0, 0,0, 180,0, 1918 180,0, 0,0, 175,192, 181,0, 1919 181,0, 0,0, 178,0, 178,0, 1920 182,0, 182,0, 179,0, 179,0, 1921 0,0, 183,0, 183,0, 177,193, 1922 0,0, 0,0, 184,0, 184,0, 1923 180,0, 180,0, 0,0, 0,0, 1924 181,0, 181,0, 0,0, 0,0, 1925 0,0, 0,0, 0,0, 182,0, 1926 0,0, 182,0, 0,0, 0,0, 1927 183,0, 0,0, 183,0, 182,0, 1928 182,0, 184,0, 0,0, 184,0, 1929 183,0, 183,0, 0,0, 178,194, 1930 0,0, 184,0, 184,0, 185,0, 1931 185,0, 0,0, 186,0, 186,0, 1932 0,0, 0,0, 0,0, 0,0, 1933 182,0, 182,0, 0,0, 0,0, 1934 0,0, 183,0, 183,0, 187,0, 1935 187,0, 0,0, 184,0, 184,0, 1936 0,0, 0,0, 185,0, 180,195, 1937 185,0, 186,0, 0,0, 186,0, 1938 0,0, 181,196, 185,0, 185,0, 1939 0,0, 186,0, 186,0, 0,0, 1940 0,0, 0,0, 187,0, 0,0, 1941 187,0, 188,0, 188,0, 0,0, 1942 0,0, 0,0, 187,0, 187,0, 1943 182,197, 183,198, 0,0, 185,0, 1944 185,0, 0,0, 186,0, 186,0, 1945 0,0, 189,0, 189,0, 0,0, 1946 190,0, 190,0, 0,0, 0,0, 1947 188,0, 0,0, 188,0, 187,0, 1948 187,0, 0,0, 0,0, 0,0, 1949 188,0, 188,0, 191,0, 191,0, 1950 0,0, 0,0, 184,199, 0,0, 1951 189,0, 0,0, 189,0, 190,0, 1952 0,0, 190,0, 0,0, 185,200, 1953 189,0, 189,0, 0,0, 190,0, 1954 190,0, 188,0, 188,0, 0,0, 1955 0,0, 191,0, 0,0, 191,0, 1956 0,0, 0,0, 0,0, 0,0, 1957 0,0, 191,0, 191,0, 192,0, 1958 192,0, 189,0, 189,0, 0,0, 1959 190,0, 190,0, 0,0, 0,0, 1960 0,0, 193,0, 193,0, 0,0, 1961 194,0, 194,0, 0,0, 0,0, 1962 0,0, 0,0, 191,0, 191,0, 1963 0,0, 0,0, 192,0, 0,0, 1964 192,0, 195,0, 195,0, 0,0, 1965 0,0, 0,0, 192,0, 192,0, 1966 193,0, 0,0, 193,0, 194,0, 1967 0,0, 194,0, 0,0, 0,0, 1968 193,0, 193,0, 189,202, 194,0, 1969 194,0, 188,201, 0,0, 0,0, 1970 195,0, 0,0, 195,0, 192,0, 1971 192,0, 0,0, 0,0, 0,0, 1972 195,0, 195,0, 196,0, 196,0, 1973 0,0, 193,0, 193,0, 0,0, 1974 194,0, 194,0, 0,0, 0,0, 1975 197,0, 197,0, 0,0, 0,0, 1976 0,0, 0,0, 0,0, 0,0, 1977 0,0, 195,0, 195,0, 0,0, 1978 0,0, 196,0, 0,0, 196,0, 1979 198,0, 198,0, 0,0, 0,0, 1980 0,0, 196,0, 196,0, 197,0, 1981 0,0, 197,0, 199,0, 199,0, 1982 0,0, 193,204, 0,0, 197,0, 1983 197,0, 0,0, 0,0, 0,0, 1984 192,203, 0,0, 0,0, 198,0, 1985 0,0, 198,0, 196,0, 196,0, 1986 0,0, 0,0, 0,0, 198,0, 1987 198,0, 199,0, 0,0, 199,0, 1988 197,0, 197,0, 0,0, 0,0, 1989 194,205, 199,0, 199,0, 200,0, 1990 200,0, 0,0, 0,0, 0,0, 1991 201,0, 201,0, 0,0, 0,0, 1992 198,0, 198,0, 0,0, 0,0, 1993 0,0, 0,0, 202,0, 202,0, 1994 0,0, 0,0, 199,0, 199,0, 1995 0,0, 0,0, 200,0, 0,0, 1996 200,0, 0,0, 0,0, 201,0, 1997 0,0, 201,0, 200,0, 200,0, 1998 0,0, 0,0, 0,0, 201,0, 1999 201,0, 202,0, 0,0, 202,0, 2000 203,0, 203,0, 0,0, 0,0, 2001 0,0, 202,0, 202,0, 0,0, 2002 0,0, 0,0, 0,0, 200,0, 2003 200,0, 204,0, 204,0, 198,206, 2004 201,0, 201,0, 205,0, 205,0, 2005 0,0, 0,0, 0,0, 203,0, 2006 0,0, 203,0, 202,0, 202,0, 2007 0,0, 0,0, 0,0, 203,0, 2008 203,0, 0,0, 0,0, 0,0, 2009 204,0, 0,0, 204,0, 0,0, 2010 0,0, 205,0, 0,0, 205,0, 2011 204,0, 204,0, 0,0, 0,0, 2012 0,0, 205,0, 205,0, 0,0, 2013 203,0, 203,0, 0,0, 0,0, 2014 206,0, 206,0, 200,207, 0,0, 2015 0,0, 0,0, 0,0, 0,0, 2016 0,0, 204,0, 204,0, 207,0, 2017 207,0, 0,0, 205,0, 205,0, 2018 208,0, 208,0, 0,0, 0,0, 2019 0,0, 0,0, 0,0, 206,0, 2020 0,0, 206,0, 209,0, 209,0, 2021 0,0, 0,0, 202,208, 206,0, 2022 206,0, 0,0, 207,0, 0,0, 2023 207,0, 0,0, 0,0, 208,0, 2024 0,0, 208,0, 207,0, 207,0, 2025 0,0, 0,0, 0,0, 208,0, 2026 208,0, 209,0, 0,0, 209,0, 2027 206,0, 206,0, 0,0, 0,0, 2028 203,209, 209,0, 209,0, 0,0, 2029 204,210, 210,0, 210,0, 207,0, 2030 207,0, 211,0, 211,0, 0,0, 2031 208,0, 208,0, 0,0, 0,0, 2032 0,0, 0,0, 0,0, 212,0, 2033 212,0, 0,0, 209,0, 209,0, 2034 213,0, 213,0, 0,0, 0,0, 2035 210,0, 0,0, 210,0, 0,0, 2036 211,0, 0,0, 211,0, 0,0, 2037 210,0, 210,0, 0,0, 0,0, 2038 211,0, 211,0, 212,0, 0,0, 2039 212,0, 0,0, 0,0, 213,0, 2040 0,0, 213,0, 212,0, 212,0, 2041 206,211, 0,0, 0,0, 213,0, 2042 213,0, 210,0, 210,0, 0,0, 2043 0,0, 211,0, 211,0, 207,212, 2044 214,0, 214,0, 0,0, 0,0, 2045 0,0, 0,0, 0,0, 212,0, 2046 212,0, 0,0, 0,0, 0,0, 2047 213,0, 213,0, 0,0, 0,0, 2048 0,0, 0,0, 0,0, 0,0, 2049 0,0, 0,0, 0,0, 214,0, 2050 0,0, 214,0, 0,0, 0,0, 2051 0,0, 0,0, 0,0, 214,0, 2052 214,0, 0,0, 0,0, 0,0, 2053 0,0, 211,213, 0,0, 0,0, 2054 0,0, 0,0, 0,0, 0,0, 2055 0,0, 0,0, 0,0, 212,214, 2056 0,0, 0,0, 0,0, 0,0, 2057 214,0, 214,0, 0,0, 0,0, 2058 0,0}; 2059 struct yysvf yysvec[] = { 2060 0, 0, 0, 2061 yycrank+-1, 0, 0, 2062 yycrank+-23, yysvec+1, 0, 2063 yycrank+-4, 0, 0, 2064 yycrank+-8, yysvec+3, 0, 2065 yycrank+-16, 0, yyvstop+1, 2066 yycrank+14, 0, yyvstop+4, 2067 yycrank+0, 0, yyvstop+7, 2068 yycrank+-19, 0, yyvstop+9, 2069 yycrank+-21, 0, yyvstop+11, 2070 yycrank+0, 0, yyvstop+15, 2071 yycrank+0, 0, yyvstop+18, 2072 yycrank+0, 0, yyvstop+21, 2073 yycrank+0, 0, yyvstop+24, 2074 yycrank+-116, 0, yyvstop+27, 2075 yycrank+-133, yysvec+5, yyvstop+30, 2076 yycrank+-120, yysvec+5, yyvstop+33, 2077 yycrank+-170, 0, yyvstop+36, 2078 yycrank+-183, yysvec+5, yyvstop+39, 2079 yycrank+-217, 0, yyvstop+42, 2080 yycrank+-42, yysvec+5, yyvstop+45, 2081 yycrank+-227, yysvec+5, yyvstop+48, 2082 yycrank+-262, yysvec+5, yyvstop+51, 2083 yycrank+-267, yysvec+5, yyvstop+54, 2084 yycrank+-272, yysvec+5, yyvstop+57, 2085 yycrank+-305, yysvec+5, yyvstop+60, 2086 yycrank+-308, yysvec+5, yyvstop+63, 2087 yycrank+0, yysvec+6, yyvstop+65, 2088 yycrank+0, yysvec+8, 0, 2089 yycrank+0, 0, yyvstop+67, 2090 yycrank+-57, yysvec+8, 0, 2091 yycrank+0, yysvec+9, yyvstop+69, 2092 yycrank+-2, yysvec+9, yyvstop+72, 2093 yycrank+0, 0, yyvstop+74, 2094 yycrank+-343, yysvec+5, yyvstop+76, 2095 yycrank+-346, yysvec+5, yyvstop+78, 2096 yycrank+-379, yysvec+5, yyvstop+80, 2097 yycrank+-383, yysvec+5, yyvstop+82, 2098 yycrank+-420, 0, yyvstop+84, 2099 yycrank+-425, yysvec+5, yyvstop+86, 2100 yycrank+-439, yysvec+5, yyvstop+88, 2101 yycrank+-482, 0, yyvstop+90, 2102 yycrank+-465, yysvec+5, yyvstop+92, 2103 yycrank+-479, yysvec+5, yyvstop+94, 2104 yycrank+-515, yysvec+5, yyvstop+96, 2105 yycrank+-527, yysvec+5, yyvstop+98, 2106 yycrank+-561, yysvec+5, yyvstop+100, 2107 yycrank+-595, 0, yyvstop+102, 2108 yycrank+-598, 0, yyvstop+104, 2109 yycrank+-609, yysvec+5, yyvstop+106, 2110 yycrank+-642, yysvec+5, yyvstop+108, 2111 yycrank+-654, yysvec+5, yyvstop+110, 2112 yycrank+-659, yysvec+5, yyvstop+113, 2113 yycrank+-699, yysvec+5, yyvstop+115, 2114 yycrank+-702, yysvec+5, yyvstop+117, 2115 yycrank+-717, 0, yyvstop+119, 2116 yycrank+-713, yysvec+5, yyvstop+121, 2117 yycrank+-761, yysvec+5, yyvstop+123, 2118 yycrank+-773, yysvec+5, yyvstop+125, 2119 yycrank+-776, yysvec+5, yyvstop+128, 2120 yycrank+-810, yysvec+5, yyvstop+130, 2121 yycrank+-821, yysvec+5, yyvstop+132, 2122 yycrank+-847, yysvec+5, yyvstop+134, 2123 yycrank+-857, yysvec+5, yyvstop+136, 2124 yycrank+-890, yysvec+5, yyvstop+138, 2125 yycrank+-893, yysvec+5, yyvstop+140, 2126 yycrank+-904, yysvec+5, yyvstop+142, 2127 yycrank+-937, yysvec+5, yyvstop+144, 2128 yycrank+-952, yysvec+5, yyvstop+146, 2129 yycrank+-940, yysvec+5, yyvstop+148, 2130 yycrank+-978, yysvec+5, yyvstop+150, 2131 yycrank+-996, yysvec+5, yyvstop+152, 2132 yycrank+-1014, 0, yyvstop+154, 2133 yycrank+-1032, yysvec+5, yyvstop+157, 2134 yycrank+-1050, yysvec+5, yyvstop+159, 2135 yycrank+-1068, 0, yyvstop+161, 2136 yycrank+-1104, yysvec+5, yyvstop+163, 2137 yycrank+-1107, yysvec+5, yyvstop+165, 2138 yycrank+-1118, yysvec+5, yyvstop+167, 2139 yycrank+-1122, yysvec+5, yyvstop+169, 2140 yycrank+-1165, yysvec+5, yyvstop+171, 2141 yycrank+-1168, yysvec+5, yyvstop+173, 2142 yycrank+-1179, yysvec+75, yyvstop+175, 2143 yycrank+-1182, yysvec+5, yyvstop+177, 2144 yycrank+-1223, yysvec+5, yyvstop+179, 2145 yycrank+-1226, yysvec+5, yyvstop+181, 2146 yycrank+-1236, yysvec+5, yyvstop+184, 2147 yycrank+-1240, yysvec+5, yyvstop+186, 2148 yycrank+-1280, yysvec+5, yyvstop+188, 2149 yycrank+-1285, yysvec+5, yyvstop+191, 2150 yycrank+-1290, yysvec+5, yyvstop+193, 2151 yycrank+-1335, 0, yyvstop+195, 2152 yycrank+-1323, yysvec+5, yyvstop+198, 2153 yycrank+-1361, yysvec+5, yyvstop+201, 2154 yycrank+-1349, yysvec+5, yyvstop+203, 2155 yycrank+-1394, yysvec+5, yyvstop+205, 2156 yycrank+-1397, yysvec+5, yyvstop+207, 2157 yycrank+-1408, yysvec+5, yyvstop+209, 2158 yycrank+-1434, yysvec+5, yyvstop+211, 2159 yycrank+-1451, yysvec+5, yyvstop+213, 2160 yycrank+-1468, yysvec+5, yyvstop+215, 2161 yycrank+-1484, yysvec+48, yyvstop+217, 2162 yycrank+-1494, yysvec+5, yyvstop+219, 2163 yycrank+-1527, yysvec+5, yyvstop+221, 2164 yycrank+-1540, yysvec+5, yyvstop+224, 2165 yycrank+-1543, yysvec+5, yyvstop+226, 2166 yycrank+-1576, yysvec+5, yyvstop+229, 2167 yycrank+-1581, yysvec+5, yyvstop+231, 2168 yycrank+-1586, yysvec+5, yyvstop+233, 2169 yycrank+-1620, yysvec+5, yyvstop+235, 2170 yycrank+-1623, yysvec+5, yyvstop+237, 2171 yycrank+-1635, yysvec+5, yyvstop+239, 2172 yycrank+-1661, yysvec+5, yyvstop+242, 2173 yycrank+-1679, yysvec+5, yyvstop+244, 2174 yycrank+-1696, yysvec+5, yyvstop+246, 2175 yycrank+-1715, yysvec+5, yyvstop+248, 2176 yycrank+-1733, yysvec+5, yyvstop+250, 2177 yycrank+-1751, yysvec+5, yyvstop+252, 2178 yycrank+-1777, yysvec+5, yyvstop+254, 2179 yycrank+-1787, yysvec+5, yyvstop+256, 2180 yycrank+-1813, yysvec+75, yyvstop+258, 2181 yycrank+-1824, yysvec+5, yyvstop+260, 2182 yycrank+-1850, yysvec+5, yyvstop+262, 2183 yycrank+-1862, yysvec+5, yyvstop+264, 2184 yycrank+-1867, yysvec+5, yyvstop+266, 2185 yycrank+-1908, yysvec+5, yyvstop+268, 2186 yycrank+-1911, yysvec+5, yyvstop+270, 2187 yycrank+-1921, yysvec+5, yyvstop+272, 2188 yycrank+-1954, yysvec+5, yyvstop+274, 2189 yycrank+-1967, yysvec+5, yyvstop+276, 2190 yycrank+-1970, yysvec+5, yyvstop+278, 2191 yycrank+-1980, yysvec+5, yyvstop+280, 2192 yycrank+-2013, yysvec+5, yyvstop+282, 2193 yycrank+-2024, yysvec+5, yyvstop+284, 2194 yycrank+-2027, yysvec+5, yyvstop+286, 2195 yycrank+-2063, yysvec+5, yyvstop+288, 2196 yycrank+-2073, yysvec+5, yyvstop+290, 2197 yycrank+-2089, yysvec+5, yyvstop+293, 2198 yycrank+-2099, yysvec+5, yyvstop+295, 2199 yycrank+-2133, yysvec+5, yyvstop+297, 2200 yycrank+-2136, yysvec+5, yyvstop+299, 2201 yycrank+-2146, yysvec+5, yyvstop+301, 2202 yycrank+-2149, yysvec+5, yyvstop+303, 2203 yycrank+-2182, yysvec+5, yyvstop+306, 2204 yycrank+-2192, yysvec+5, yyvstop+308, 2205 yycrank+-2208, yysvec+5, yyvstop+311, 2206 yycrank+-2218, yysvec+5, yyvstop+313, 2207 yycrank+-2251, yysvec+5, yyvstop+315, 2208 yycrank+-2254, yysvec+5, yyvstop+318, 2209 yycrank+-2265, yysvec+5, yyvstop+320, 2210 yycrank+-2268, yysvec+5, yyvstop+322, 2211 yycrank+-2308, yysvec+5, yyvstop+324, 2212 yycrank+-2312, yysvec+5, yyvstop+326, 2213 yycrank+-2323, yysvec+5, yyvstop+328, 2214 yycrank+-2326, yysvec+5, yyvstop+331, 2215 yycrank+-2366, yysvec+5, yyvstop+334, 2216 yycrank+-2369, yysvec+5, yyvstop+337, 2217 yycrank+-2382, yysvec+5, yyvstop+339, 2218 yycrank+-2385, yysvec+5, yyvstop+341, 2219 yycrank+-2424, yysvec+5, yyvstop+343, 2220 yycrank+-2427, yysvec+5, yyvstop+345, 2221 yycrank+-2439, yysvec+5, yyvstop+347, 2222 yycrank+-2483, yysvec+5, yyvstop+349, 2223 yycrank+-2486, yysvec+5, yyvstop+352, 2224 yycrank+-2497, yysvec+5, yyvstop+355, 2225 yycrank+-2501, yysvec+5, yyvstop+358, 2226 yycrank+-2540, yysvec+5, yyvstop+360, 2227 yycrank+-2543, yysvec+5, yyvstop+363, 2228 yycrank+-2555, yysvec+5, yyvstop+365, 2229 yycrank+-2558, yysvec+5, yyvstop+367, 2230 yycrank+-2598, yysvec+5, yyvstop+370, 2231 yycrank+-2601, yysvec+5, yyvstop+372, 2232 yycrank+-2613, yysvec+5, yyvstop+374, 2233 yycrank+-2616, yysvec+5, yyvstop+376, 2234 yycrank+-2655, yysvec+5, yyvstop+378, 2235 yycrank+-2659, yysvec+5, yyvstop+381, 2236 yycrank+-2670, yysvec+5, yyvstop+383, 2237 yycrank+-2673, yysvec+5, yyvstop+386, 2238 yycrank+-2713, yysvec+5, yyvstop+388, 2239 yycrank+-2717, yysvec+5, yyvstop+390, 2240 yycrank+-2727, yysvec+5, yyvstop+393, 2241 yycrank+-2731, yysvec+5, yyvstop+395, 2242 yycrank+-2767, yysvec+5, yyvstop+397, 2243 yycrank+-2772, yysvec+5, yyvstop+399, 2244 yycrank+-2777, yysvec+5, yyvstop+401, 2245 yycrank+-2810, yysvec+5, yyvstop+403, 2246 yycrank+-2813, yysvec+5, yyvstop+405, 2247 yycrank+-2826, yysvec+5, yyvstop+408, 2248 yycrank+-2852, yysvec+5, yyvstop+411, 2249 yycrank+-2868, yysvec+5, yyvstop+413, 2250 yycrank+-2871, yysvec+5, yyvstop+415, 2251 yycrank+-2885, yysvec+5, yyvstop+418, 2252 yycrank+-2918, yysvec+5, yyvstop+421, 2253 yycrank+-2928, yysvec+5, yyvstop+423, 2254 yycrank+-2931, yysvec+5, yyvstop+425, 2255 yycrank+-2944, yysvec+5, yyvstop+427, 2256 yycrank+-2977, yysvec+5, yyvstop+430, 2257 yycrank+-2987, yysvec+5, yyvstop+433, 2258 yycrank+-3003, yysvec+5, yyvstop+436, 2259 yycrank+-3013, yysvec+5, yyvstop+438, 2260 yycrank+-3046, yysvec+5, yyvstop+441, 2261 yycrank+-3051, yysvec+5, yyvstop+443, 2262 yycrank+-3061, yysvec+5, yyvstop+446, 2263 yycrank+-3087, yysvec+5, yyvstop+448, 2264 yycrank+-3100, yysvec+5, yyvstop+450, 2265 yycrank+-3105, yysvec+5, yyvstop+452, 2266 yycrank+-3143, yysvec+5, yyvstop+455, 2267 yycrank+-3154, yysvec+5, yyvstop+457, 2268 yycrank+-3159, yysvec+5, yyvstop+459, 2269 yycrank+-3169, yysvec+5, yyvstop+462, 2270 yycrank+-3204, yysvec+5, yyvstop+465, 2271 yycrank+-3208, yysvec+5, yyvstop+468, 2272 yycrank+-3218, yysvec+5, yyvstop+470, 2273 yycrank+-3223, yysvec+5, yyvstop+472, 2274 yycrank+-3263, yysvec+5, yyvstop+475, 2275 0, 0, 0}; 2276 struct yywork *yytop = yycrank+3325; 2277 struct yysvf *yybgin = yysvec+1; 2278 char yymatch[] = { 2279 0, 1, 1, 1, 1, 1, 1, 1, 2280 1, 9, 10, 1, 1, 1, 1, 1, 2281 1, 1, 1, 1, 1, 1, 1, 1, 2282 1, 1, 1, 1, 1, 1, 1, 1, 2283 9, 1, 34, 1, 1, 1, 1, 1, 2284 40, 40, 1, 1, 1, 1, 1, 1, 2285 1, 1, 1, 1, 1, 1, 1, 1, 2286 1, 1, 1, 1, 1, 40, 40, 1, 2287 1, 1, 1, 1, 1, 1, 1, 1, 2288 1, 1, 1, 1, 1, 1, 1, 1, 2289 1, 1, 1, 1, 1, 1, 1, 1, 2290 1, 1, 1, 1, 92, 1, 1, 1, 2291 1, 1, 1, 1, 1, 1, 1, 1, 2292 1, 1, 1, 1, 1, 1, 1, 1, 2293 1, 1, 1, 1, 1, 1, 1, 1, 2294 1, 1, 1, 1, 1, 1, 1, 1, 2295 1, 1, 1, 1, 1, 1, 1, 1, 2296 1, 1, 1, 1, 1, 1, 1, 1, 2297 1, 1, 1, 1, 1, 1, 1, 1, 2298 1, 1, 1, 1, 1, 1, 1, 1, 2299 1, 1, 1, 1, 1, 1, 1, 1, 2300 1, 1, 1, 1, 1, 1, 1, 1, 2301 1, 1, 1, 1, 1, 1, 1, 1, 2302 1, 1, 1, 1, 1, 1, 1, 1, 2303 1, 1, 1, 1, 1, 1, 1, 1, 2304 1, 1, 1, 1, 1, 1, 1, 1, 2305 1, 1, 1, 1, 1, 1, 1, 1, 2306 1, 1, 1, 1, 1, 1, 1, 1, 2307 1, 1, 1, 1, 1, 1, 1, 1, 2308 1, 1, 1, 1, 1, 1, 1, 1, 2309 1, 1, 1, 1, 1, 1, 1, 1, 2310 1, 1, 1, 1, 1, 1, 1, 1, 2311 0}; 2312 char yyextra[] = { 2313 0,1,0,0,0,0,0,0, 2314 0,0,0,0,0,0,0,0, 2315 0,0,0,0,0,0,0,0, 2316 0,0,0,0,0,0,0,0, 2317 0,0,0,0,0,0,0,0, 2318 0,0,0,0,0,0,0,0, 2319 0,0,0,0,0,0,0,0, 2320 0}; 2321 /* 2322 * CDDL HEADER START 2323 * 2324 * The contents of this file are subject to the terms of the 2325 * Common Development and Distribution License, Version 1.0 only 2326 * (the "License"). You may not use this file except in compliance 2327 * with the License. 2328 * 2329 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2330 * or http://www.opensolaris.org/os/licensing. 2331 * See the License for the specific language governing permissions 2332 * and limitations under the License. 2333 * 2334 * When distributing Covered Code, include this CDDL HEADER in each 2335 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2336 * If applicable, add the following below this CDDL HEADER, with the 2337 * fields enclosed by brackets "[]" replaced with your own identifying 2338 * information: Portions Copyright [yyyy] [name of copyright owner] 2339 * 2340 * CDDL HEADER END 2341 */ 2342 2343 /* Copyright (c) 1989 AT&T */ 2344 /* All Rights Reserved */ 2345 2346 #pragma ident "%Z%%M% %I% %E% SMI" 2347 2348 int yylineno =1; 2349 # define YYU(x) x 2350 # define NLSTATE yyprevious=YYNEWLINE 2351 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; 2352 char yysbuf[YYLMAX]; 2353 char *yysptr = yysbuf; 2354 int *yyfnd; 2355 extern struct yysvf *yyestate; 2356 int yyprevious = YYNEWLINE; 2357 #if defined(__cplusplus) || defined(__STDC__) 2358 int yylook(void) 2359 #else 2360 yylook() 2361 #endif 2362 { 2363 register struct yysvf *yystate, **lsp; 2364 register struct yywork *yyt; 2365 struct yysvf *yyz; 2366 int yych, yyfirst; 2367 struct yywork *yyr; 2368 # ifdef LEXDEBUG 2369 int debug; 2370 # endif 2371 char *yylastch; 2372 /* start off machines */ 2373 # ifdef LEXDEBUG 2374 debug = 0; 2375 # endif 2376 yyfirst=1; 2377 if (!yymorfg) 2378 yylastch = yytext; 2379 else { 2380 yymorfg=0; 2381 yylastch = yytext+yyleng; 2382 } 2383 for(;;){ 2384 lsp = yylstate; 2385 yyestate = yystate = yybgin; 2386 if (yyprevious==YYNEWLINE) yystate++; 2387 for (;;){ 2388 # ifdef LEXDEBUG 2389 if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); 2390 # endif 2391 yyt = yystate->yystoff; 2392 if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ 2393 yyz = yystate->yyother; 2394 if(yyz == 0)break; 2395 if(yyz->yystoff == yycrank)break; 2396 } 2397 #ifndef __cplusplus 2398 *yylastch++ = yych = input(); 2399 #else 2400 *yylastch++ = yych = lex_input(); 2401 #endif 2402 #ifdef YYISARRAY 2403 if(yylastch > &yytext[YYLMAX]) { 2404 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2405 exit(1); 2406 } 2407 #else 2408 if (yylastch >= &yytext[ yytextsz ]) { 2409 int x = yylastch - yytext; 2410 2411 yytextsz += YYTEXTSZINC; 2412 if (yytext == yy_tbuf) { 2413 yytext = (char *) malloc(yytextsz); 2414 memcpy(yytext, yy_tbuf, sizeof (yy_tbuf)); 2415 } 2416 else 2417 yytext = (char *) realloc(yytext, yytextsz); 2418 if (!yytext) { 2419 fprintf(yyout, 2420 "Cannot realloc yytext\n"); 2421 exit(1); 2422 } 2423 yylastch = yytext + x; 2424 } 2425 #endif 2426 yyfirst=0; 2427 tryagain: 2428 # ifdef LEXDEBUG 2429 if(debug){ 2430 fprintf(yyout,"char "); 2431 allprint(yych); 2432 putchar('\n'); 2433 } 2434 # endif 2435 yyr = yyt; 2436 if ( (uintptr_t)yyt > (uintptr_t)yycrank){ 2437 yyt = yyr + yych; 2438 if (yyt <= yytop && yyt->verify+yysvec == yystate){ 2439 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 2440 {unput(*--yylastch);break;} 2441 *lsp++ = yystate = yyt->advance+yysvec; 2442 if(lsp > &yylstate[YYLMAX]) { 2443 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2444 exit(1); 2445 } 2446 goto contin; 2447 } 2448 } 2449 # ifdef YYOPTIM 2450 else if((uintptr_t)yyt < (uintptr_t)yycrank) { /* r < yycrank */ 2451 yyt = yyr = yycrank+(yycrank-yyt); 2452 # ifdef LEXDEBUG 2453 if(debug)fprintf(yyout,"compressed state\n"); 2454 # endif 2455 yyt = yyt + yych; 2456 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 2457 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 2458 {unput(*--yylastch);break;} 2459 *lsp++ = yystate = yyt->advance+yysvec; 2460 if(lsp > &yylstate[YYLMAX]) { 2461 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2462 exit(1); 2463 } 2464 goto contin; 2465 } 2466 yyt = yyr + YYU(yymatch[yych]); 2467 # ifdef LEXDEBUG 2468 if(debug){ 2469 fprintf(yyout,"try fall back character "); 2470 allprint(YYU(yymatch[yych])); 2471 putchar('\n'); 2472 } 2473 # endif 2474 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 2475 if(yyt->advance+yysvec == YYLERR) /* error transition */ 2476 {unput(*--yylastch);break;} 2477 *lsp++ = yystate = yyt->advance+yysvec; 2478 if(lsp > &yylstate[YYLMAX]) { 2479 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2480 exit(1); 2481 } 2482 goto contin; 2483 } 2484 } 2485 if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ 2486 # ifdef LEXDEBUG 2487 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); 2488 # endif 2489 goto tryagain; 2490 } 2491 # endif 2492 else 2493 {unput(*--yylastch);break;} 2494 contin: 2495 # ifdef LEXDEBUG 2496 if(debug){ 2497 fprintf(yyout,"state %d char ",yystate-yysvec-1); 2498 allprint(yych); 2499 putchar('\n'); 2500 } 2501 # endif 2502 ; 2503 } 2504 # ifdef LEXDEBUG 2505 if(debug){ 2506 fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); 2507 allprint(yych); 2508 putchar('\n'); 2509 } 2510 # endif 2511 while (lsp-- > yylstate){ 2512 *yylastch-- = 0; 2513 if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ 2514 yyolsp = lsp; 2515 if(yyextra[*yyfnd]){ /* must backup */ 2516 while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ 2517 lsp--; 2518 unput(*yylastch--); 2519 } 2520 } 2521 yyprevious = YYU(*yylastch); 2522 yylsp = lsp; 2523 yyleng = yylastch-yytext+1; 2524 yytext[yyleng] = 0; 2525 # ifdef LEXDEBUG 2526 if(debug){ 2527 fprintf(yyout,"\nmatch "); 2528 sprint(yytext); 2529 fprintf(yyout," action %d\n",*yyfnd); 2530 } 2531 # endif 2532 return(*yyfnd++); 2533 } 2534 unput(*yylastch); 2535 } 2536 if (yytext[0] == 0 /* && feof(yyin) */) 2537 { 2538 yysptr=yysbuf; 2539 return(0); 2540 } 2541 #ifndef __cplusplus 2542 yyprevious = yytext[0] = input(); 2543 if (yyprevious>0) 2544 output(yyprevious); 2545 #else 2546 yyprevious = yytext[0] = lex_input(); 2547 if (yyprevious>0) 2548 lex_output(yyprevious); 2549 #endif 2550 yylastch=yytext; 2551 # ifdef LEXDEBUG 2552 if(debug)putchar('\n'); 2553 # endif 2554 } 2555 } 2556 #if defined(__cplusplus) || defined(__STDC__) 2557 int yyback(int *p, int m) 2558 #else 2559 yyback(p, m) 2560 int *p; 2561 #endif 2562 { 2563 if (p==0) return(0); 2564 while (*p) { 2565 if (*p++ == m) 2566 return(1); 2567 } 2568 return(0); 2569 } 2570 /* the following are only used in the lex library */ 2571 #if defined(__cplusplus) || defined(__STDC__) 2572 int yyinput(void) 2573 #else 2574 yyinput() 2575 #endif 2576 { 2577 #ifndef __cplusplus 2578 return(input()); 2579 #else 2580 return(lex_input()); 2581 #endif 2582 } 2583 #if defined(__cplusplus) || defined(__STDC__) 2584 void yyoutput(int c) 2585 #else 2586 yyoutput(c) 2587 int c; 2588 #endif 2589 { 2590 #ifndef __cplusplus 2591 output(c); 2592 #else 2593 lex_output(c); 2594 #endif 2595 } 2596 #if defined(__cplusplus) || defined(__STDC__) 2597 void yyunput(int c) 2598 #else 2599 yyunput(c) 2600 int c; 2601 #endif 2602 { 2603 unput(c); 2604 } 2605