1 /* vi:set ts=8 sts=4 sw=4: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 * See README.txt for an overview of the Vim source code. 8 */ 9 10 #include "vim.h" 11 12 #ifdef AMIGA 13 # include <time.h> /* for time() */ 14 #endif 15 16 /* 17 * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred) 18 * It has been changed beyond recognition since then. 19 * 20 * Differences between version 6.x and 7.x can be found with ":help version7". 21 * Differences between version 5.x and 6.x can be found with ":help version6". 22 * Differences between version 4.x and 5.x can be found with ":help version5". 23 * Differences between version 3.0 and 4.x can be found with ":help version4". 24 * All the remarks about older versions have been removed, they are not very 25 * interesting. 26 */ 27 28 #include "version.h" 29 30 char *Version = VIM_VERSION_SHORT; 31 static char *mediumVersion = VIM_VERSION_MEDIUM; 32 33 #if defined(HAVE_DATE_TIME) || defined(PROTO) 34 # if (defined(VMS) && defined(VAXC)) || defined(PROTO) 35 char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) 36 + sizeof(__TIME__) + 3]; 37 38 void 39 make_version(void) 40 { 41 /* 42 * Construct the long version string. Necessary because 43 * VAX C can't catenate strings in the preprocessor. 44 */ 45 strcpy(longVersion, VIM_VERSION_LONG_DATE); 46 strcat(longVersion, __DATE__); 47 strcat(longVersion, " "); 48 strcat(longVersion, __TIME__); 49 strcat(longVersion, ")"); 50 } 51 # else 52 char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")"; 53 # endif 54 #else 55 char *longVersion = VIM_VERSION_LONG; 56 #endif 57 58 static void list_features(void); 59 static void version_msg(char *s); 60 61 static char *(features[]) = 62 { 63 #ifdef HAVE_ACL 64 "+acl", 65 #else 66 "-acl", 67 #endif 68 #ifdef AMIGA /* only for Amiga systems */ 69 # ifdef FEAT_ARP 70 "+ARP", 71 # else 72 "-ARP", 73 # endif 74 #endif 75 #ifdef FEAT_ARABIC 76 "+arabic", 77 #else 78 "-arabic", 79 #endif 80 #ifdef FEAT_AUTOCMD 81 "+autocmd", 82 #else 83 "-autocmd", 84 #endif 85 #ifdef FEAT_BEVAL 86 "+balloon_eval", 87 #else 88 "-balloon_eval", 89 #endif 90 #ifdef FEAT_BROWSE 91 "+browse", 92 #else 93 "-browse", 94 #endif 95 #ifdef NO_BUILTIN_TCAPS 96 "-builtin_terms", 97 #endif 98 #ifdef SOME_BUILTIN_TCAPS 99 "+builtin_terms", 100 #endif 101 #ifdef ALL_BUILTIN_TCAPS 102 "++builtin_terms", 103 #endif 104 #ifdef FEAT_BYTEOFF 105 "+byte_offset", 106 #else 107 "-byte_offset", 108 #endif 109 #ifdef FEAT_JOB_CHANNEL 110 "+channel", 111 #else 112 "-channel", 113 #endif 114 #ifdef FEAT_CINDENT 115 "+cindent", 116 #else 117 "-cindent", 118 #endif 119 #ifdef FEAT_CLIENTSERVER 120 "+clientserver", 121 #else 122 "-clientserver", 123 #endif 124 #ifdef FEAT_CLIPBOARD 125 "+clipboard", 126 #else 127 "-clipboard", 128 #endif 129 #ifdef FEAT_CMDL_COMPL 130 "+cmdline_compl", 131 #else 132 "-cmdline_compl", 133 #endif 134 #ifdef FEAT_CMDHIST 135 "+cmdline_hist", 136 #else 137 "-cmdline_hist", 138 #endif 139 #ifdef FEAT_CMDL_INFO 140 "+cmdline_info", 141 #else 142 "-cmdline_info", 143 #endif 144 #ifdef FEAT_COMMENTS 145 "+comments", 146 #else 147 "-comments", 148 #endif 149 #ifdef FEAT_CONCEAL 150 "+conceal", 151 #else 152 "-conceal", 153 #endif 154 #ifdef FEAT_CRYPT 155 "+cryptv", 156 #else 157 "-cryptv", 158 #endif 159 #ifdef FEAT_CSCOPE 160 "+cscope", 161 #else 162 "-cscope", 163 #endif 164 #ifdef FEAT_CURSORBIND 165 "+cursorbind", 166 #else 167 "-cursorbind", 168 #endif 169 #ifdef CURSOR_SHAPE 170 "+cursorshape", 171 #else 172 "-cursorshape", 173 #endif 174 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG) 175 "+dialog_con_gui", 176 #else 177 # if defined(FEAT_CON_DIALOG) 178 "+dialog_con", 179 # else 180 # if defined(FEAT_GUI_DIALOG) 181 "+dialog_gui", 182 # else 183 "-dialog", 184 # endif 185 # endif 186 #endif 187 #ifdef FEAT_DIFF 188 "+diff", 189 #else 190 "-diff", 191 #endif 192 #ifdef FEAT_DIGRAPHS 193 "+digraphs", 194 #else 195 "-digraphs", 196 #endif 197 #ifdef FEAT_GUI_W32 198 # ifdef FEAT_DIRECTX 199 "+directx", 200 # else 201 "-directx", 202 # endif 203 #endif 204 #ifdef FEAT_DND 205 "+dnd", 206 #else 207 "-dnd", 208 #endif 209 #ifdef EBCDIC 210 "+ebcdic", 211 #else 212 "-ebcdic", 213 #endif 214 #ifdef FEAT_EMACS_TAGS 215 "+emacs_tags", 216 #else 217 "-emacs_tags", 218 #endif 219 #ifdef FEAT_EVAL 220 "+eval", 221 #else 222 "-eval", 223 #endif 224 "+ex_extra", 225 #ifdef FEAT_SEARCH_EXTRA 226 "+extra_search", 227 #else 228 "-extra_search", 229 #endif 230 #ifdef FEAT_FKMAP 231 "+farsi", 232 #else 233 "-farsi", 234 #endif 235 #ifdef FEAT_SEARCHPATH 236 "+file_in_path", 237 #else 238 "-file_in_path", 239 #endif 240 #ifdef FEAT_FIND_ID 241 "+find_in_path", 242 #else 243 "-find_in_path", 244 #endif 245 #ifdef FEAT_FLOAT 246 "+float", 247 #else 248 "-float", 249 #endif 250 #ifdef FEAT_FOLDING 251 "+folding", 252 #else 253 "-folding", 254 #endif 255 #ifdef FEAT_FOOTER 256 "+footer", 257 #else 258 "-footer", 259 #endif 260 /* only interesting on Unix systems */ 261 #if !defined(USE_SYSTEM) && defined(UNIX) 262 "+fork()", 263 #endif 264 #ifdef FEAT_GETTEXT 265 # ifdef DYNAMIC_GETTEXT 266 "+gettext/dyn", 267 # else 268 "+gettext", 269 # endif 270 #else 271 "-gettext", 272 #endif 273 #ifdef FEAT_HANGULIN 274 "+hangul_input", 275 #else 276 "-hangul_input", 277 #endif 278 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV) 279 # ifdef DYNAMIC_ICONV 280 "+iconv/dyn", 281 # else 282 "+iconv", 283 # endif 284 #else 285 "-iconv", 286 #endif 287 #ifdef FEAT_INS_EXPAND 288 "+insert_expand", 289 #else 290 "-insert_expand", 291 #endif 292 #ifdef FEAT_JOB_CHANNEL 293 "+job", 294 #else 295 "-job", 296 #endif 297 #ifdef FEAT_JUMPLIST 298 "+jumplist", 299 #else 300 "-jumplist", 301 #endif 302 #ifdef FEAT_KEYMAP 303 "+keymap", 304 #else 305 "-keymap", 306 #endif 307 #ifdef FEAT_EVAL 308 "+lambda", 309 #else 310 "-lambda", 311 #endif 312 #ifdef FEAT_LANGMAP 313 "+langmap", 314 #else 315 "-langmap", 316 #endif 317 #ifdef FEAT_LIBCALL 318 "+libcall", 319 #else 320 "-libcall", 321 #endif 322 #ifdef FEAT_LINEBREAK 323 "+linebreak", 324 #else 325 "-linebreak", 326 #endif 327 #ifdef FEAT_LISP 328 "+lispindent", 329 #else 330 "-lispindent", 331 #endif 332 #ifdef FEAT_LISTCMDS 333 "+listcmds", 334 #else 335 "-listcmds", 336 #endif 337 #ifdef FEAT_LOCALMAP 338 "+localmap", 339 #else 340 "-localmap", 341 #endif 342 #ifdef FEAT_LUA 343 # ifdef DYNAMIC_LUA 344 "+lua/dyn", 345 # else 346 "+lua", 347 # endif 348 #else 349 "-lua", 350 #endif 351 #ifdef FEAT_MENU 352 "+menu", 353 #else 354 "-menu", 355 #endif 356 #ifdef FEAT_SESSION 357 "+mksession", 358 #else 359 "-mksession", 360 #endif 361 #ifdef FEAT_MODIFY_FNAME 362 "+modify_fname", 363 #else 364 "-modify_fname", 365 #endif 366 #ifdef FEAT_MOUSE 367 "+mouse", 368 # ifdef FEAT_MOUSESHAPE 369 "+mouseshape", 370 # else 371 "-mouseshape", 372 # endif 373 # else 374 "-mouse", 375 #endif 376 377 #if defined(UNIX) || defined(VMS) 378 # ifdef FEAT_MOUSE_DEC 379 "+mouse_dec", 380 # else 381 "-mouse_dec", 382 # endif 383 # ifdef FEAT_MOUSE_GPM 384 "+mouse_gpm", 385 # else 386 "-mouse_gpm", 387 # endif 388 # ifdef FEAT_MOUSE_JSB 389 "+mouse_jsbterm", 390 # else 391 "-mouse_jsbterm", 392 # endif 393 # ifdef FEAT_MOUSE_NET 394 "+mouse_netterm", 395 # else 396 "-mouse_netterm", 397 # endif 398 #endif 399 400 #ifdef __QNX__ 401 # ifdef FEAT_MOUSE_PTERM 402 "+mouse_pterm", 403 # else 404 "-mouse_pterm", 405 # endif 406 #endif 407 408 #if defined(UNIX) || defined(VMS) 409 # ifdef FEAT_MOUSE_SGR 410 "+mouse_sgr", 411 # else 412 "-mouse_sgr", 413 # endif 414 # ifdef FEAT_SYSMOUSE 415 "+mouse_sysmouse", 416 # else 417 "-mouse_sysmouse", 418 # endif 419 # ifdef FEAT_MOUSE_URXVT 420 "+mouse_urxvt", 421 # else 422 "-mouse_urxvt", 423 # endif 424 # ifdef FEAT_MOUSE_XTERM 425 "+mouse_xterm", 426 # else 427 "-mouse_xterm", 428 # endif 429 #endif 430 431 #ifdef FEAT_MBYTE_IME 432 # ifdef DYNAMIC_IME 433 "+multi_byte_ime/dyn", 434 # else 435 "+multi_byte_ime", 436 # endif 437 #else 438 # ifdef FEAT_MBYTE 439 "+multi_byte", 440 # else 441 "-multi_byte", 442 # endif 443 #endif 444 #ifdef FEAT_MULTI_LANG 445 "+multi_lang", 446 #else 447 "-multi_lang", 448 #endif 449 #ifdef FEAT_MZSCHEME 450 # ifdef DYNAMIC_MZSCHEME 451 "+mzscheme/dyn", 452 # else 453 "+mzscheme", 454 # endif 455 #else 456 "-mzscheme", 457 #endif 458 #ifdef FEAT_NETBEANS_INTG 459 "+netbeans_intg", 460 #else 461 "-netbeans_intg", 462 #endif 463 #ifdef FEAT_NUM64 464 "+num64", 465 #else 466 "-num64", 467 #endif 468 #ifdef FEAT_GUI_W32 469 # ifdef FEAT_OLE 470 "+ole", 471 # else 472 "-ole", 473 # endif 474 #endif 475 "+packages", 476 #ifdef FEAT_PATH_EXTRA 477 "+path_extra", 478 #else 479 "-path_extra", 480 #endif 481 #ifdef FEAT_PERL 482 # ifdef DYNAMIC_PERL 483 "+perl/dyn", 484 # else 485 "+perl", 486 # endif 487 #else 488 "-perl", 489 #endif 490 #ifdef FEAT_PERSISTENT_UNDO 491 "+persistent_undo", 492 #else 493 "-persistent_undo", 494 #endif 495 #ifdef FEAT_PRINTER 496 # ifdef FEAT_POSTSCRIPT 497 "+postscript", 498 # else 499 "-postscript", 500 # endif 501 "+printer", 502 #else 503 "-printer", 504 #endif 505 #ifdef FEAT_PROFILE 506 "+profile", 507 #else 508 "-profile", 509 #endif 510 #ifdef FEAT_PYTHON 511 # ifdef DYNAMIC_PYTHON 512 "+python/dyn", 513 # else 514 "+python", 515 # endif 516 #else 517 "-python", 518 #endif 519 #ifdef FEAT_PYTHON3 520 # ifdef DYNAMIC_PYTHON3 521 "+python3/dyn", 522 # else 523 "+python3", 524 # endif 525 #else 526 "-python3", 527 #endif 528 #ifdef FEAT_QUICKFIX 529 "+quickfix", 530 #else 531 "-quickfix", 532 #endif 533 #ifdef FEAT_RELTIME 534 "+reltime", 535 #else 536 "-reltime", 537 #endif 538 #ifdef FEAT_RIGHTLEFT 539 "+rightleft", 540 #else 541 "-rightleft", 542 #endif 543 #ifdef FEAT_RUBY 544 # ifdef DYNAMIC_RUBY 545 "+ruby/dyn", 546 # else 547 "+ruby", 548 # endif 549 #else 550 "-ruby", 551 #endif 552 #ifdef FEAT_SCROLLBIND 553 "+scrollbind", 554 #else 555 "-scrollbind", 556 #endif 557 #ifdef FEAT_SIGNS 558 "+signs", 559 #else 560 "-signs", 561 #endif 562 #ifdef FEAT_SMARTINDENT 563 "+smartindent", 564 #else 565 "-smartindent", 566 #endif 567 #ifdef STARTUPTIME 568 "+startuptime", 569 #else 570 "-startuptime", 571 #endif 572 #ifdef FEAT_STL_OPT 573 "+statusline", 574 #else 575 "-statusline", 576 #endif 577 #ifdef FEAT_SUN_WORKSHOP 578 "+sun_workshop", 579 #else 580 "-sun_workshop", 581 #endif 582 #ifdef FEAT_SYN_HL 583 "+syntax", 584 #else 585 "-syntax", 586 #endif 587 /* only interesting on Unix systems */ 588 #if defined(USE_SYSTEM) && defined(UNIX) 589 "+system()", 590 #endif 591 #ifdef FEAT_TAG_BINS 592 "+tag_binary", 593 #else 594 "-tag_binary", 595 #endif 596 #ifdef FEAT_TAG_OLDSTATIC 597 "+tag_old_static", 598 #else 599 "-tag_old_static", 600 #endif 601 #ifdef FEAT_TAG_ANYWHITE 602 "+tag_any_white", 603 #else 604 "-tag_any_white", 605 #endif 606 #ifdef FEAT_TCL 607 # ifdef DYNAMIC_TCL 608 "+tcl/dyn", 609 # else 610 "+tcl", 611 # endif 612 #else 613 "-tcl", 614 #endif 615 #ifdef FEAT_TERMGUICOLORS 616 "+termguicolors", 617 #else 618 "-termguicolors", 619 #endif 620 #if defined(UNIX) 621 /* only Unix can have terminfo instead of termcap */ 622 # ifdef TERMINFO 623 "+terminfo", 624 # else 625 "-terminfo", 626 # endif 627 #else /* unix always includes termcap support */ 628 # ifdef HAVE_TGETENT 629 "+tgetent", 630 # else 631 "-tgetent", 632 # endif 633 #endif 634 #ifdef FEAT_TERMRESPONSE 635 "+termresponse", 636 #else 637 "-termresponse", 638 #endif 639 #ifdef FEAT_TEXTOBJ 640 "+textobjects", 641 #else 642 "-textobjects", 643 #endif 644 #ifdef FEAT_TIMERS 645 "+timers", 646 #else 647 "-timers", 648 #endif 649 #ifdef FEAT_TITLE 650 "+title", 651 #else 652 "-title", 653 #endif 654 #ifdef FEAT_TOOLBAR 655 "+toolbar", 656 #else 657 "-toolbar", 658 #endif 659 #ifdef FEAT_USR_CMDS 660 "+user_commands", 661 #else 662 "-user_commands", 663 #endif 664 #ifdef FEAT_WINDOWS 665 "+vertsplit", 666 #else 667 "-vertsplit", 668 #endif 669 #ifdef FEAT_VIRTUALEDIT 670 "+virtualedit", 671 #else 672 "-virtualedit", 673 #endif 674 "+visual", 675 #ifdef FEAT_VISUALEXTRA 676 "+visualextra", 677 #else 678 "-visualextra", 679 #endif 680 #ifdef FEAT_VIMINFO 681 "+viminfo", 682 #else 683 "-viminfo", 684 #endif 685 #ifdef FEAT_VREPLACE 686 "+vreplace", 687 #else 688 "-vreplace", 689 #endif 690 #ifdef FEAT_WILDIGN 691 "+wildignore", 692 #else 693 "-wildignore", 694 #endif 695 #ifdef FEAT_WILDMENU 696 "+wildmenu", 697 #else 698 "-wildmenu", 699 #endif 700 #ifdef FEAT_WINDOWS 701 "+windows", 702 #else 703 "-windows", 704 #endif 705 #ifdef FEAT_WRITEBACKUP 706 "+writebackup", 707 #else 708 "-writebackup", 709 #endif 710 #if defined(UNIX) || defined(VMS) 711 # ifdef FEAT_X11 712 "+X11", 713 # else 714 "-X11", 715 # endif 716 #endif 717 #ifdef FEAT_XFONTSET 718 "+xfontset", 719 #else 720 "-xfontset", 721 #endif 722 #ifdef FEAT_XIM 723 "+xim", 724 #else 725 "-xim", 726 #endif 727 #if defined(UNIX) || defined(VMS) 728 # ifdef USE_XSMP_INTERACT 729 "+xsmp_interact", 730 # else 731 # ifdef USE_XSMP 732 "+xsmp", 733 # else 734 "-xsmp", 735 # endif 736 # endif 737 # ifdef FEAT_XCLIPBOARD 738 "+xterm_clipboard", 739 # else 740 "-xterm_clipboard", 741 # endif 742 #endif 743 #ifdef FEAT_XTERM_SAVE 744 "+xterm_save", 745 #else 746 "-xterm_save", 747 #endif 748 #ifdef WIN3264 749 # ifdef FEAT_XPM_W32 750 "+xpm_w32", 751 # else 752 "-xpm_w32", 753 # endif 754 #else 755 # ifdef HAVE_XPM 756 "+xpm", 757 # else 758 "-xpm", 759 # endif 760 #endif 761 NULL 762 }; 763 764 static int included_patches[] = 765 { /* Add new patch number below this line */ 766 /**/ 767 2135, 768 /**/ 769 2134, 770 /**/ 771 2133, 772 /**/ 773 2132, 774 /**/ 775 2131, 776 /**/ 777 2130, 778 /**/ 779 2129, 780 /**/ 781 2128, 782 /**/ 783 2127, 784 /**/ 785 2126, 786 /**/ 787 2125, 788 /**/ 789 2124, 790 /**/ 791 2123, 792 /**/ 793 2122, 794 /**/ 795 2121, 796 /**/ 797 2120, 798 /**/ 799 2119, 800 /**/ 801 2118, 802 /**/ 803 2117, 804 /**/ 805 2116, 806 /**/ 807 2115, 808 /**/ 809 2114, 810 /**/ 811 2113, 812 /**/ 813 2112, 814 /**/ 815 2111, 816 /**/ 817 2110, 818 /**/ 819 2109, 820 /**/ 821 2108, 822 /**/ 823 2107, 824 /**/ 825 2106, 826 /**/ 827 2105, 828 /**/ 829 2104, 830 /**/ 831 2103, 832 /**/ 833 2102, 834 /**/ 835 2101, 836 /**/ 837 2100, 838 /**/ 839 2099, 840 /**/ 841 2098, 842 /**/ 843 2097, 844 /**/ 845 2096, 846 /**/ 847 2095, 848 /**/ 849 2094, 850 /**/ 851 2093, 852 /**/ 853 2092, 854 /**/ 855 2091, 856 /**/ 857 2090, 858 /**/ 859 2089, 860 /**/ 861 2088, 862 /**/ 863 2087, 864 /**/ 865 2086, 866 /**/ 867 2085, 868 /**/ 869 2084, 870 /**/ 871 2083, 872 /**/ 873 2082, 874 /**/ 875 2081, 876 /**/ 877 2080, 878 /**/ 879 2079, 880 /**/ 881 2078, 882 /**/ 883 2077, 884 /**/ 885 2076, 886 /**/ 887 2075, 888 /**/ 889 2074, 890 /**/ 891 2073, 892 /**/ 893 2072, 894 /**/ 895 2071, 896 /**/ 897 2070, 898 /**/ 899 2069, 900 /**/ 901 2068, 902 /**/ 903 2067, 904 /**/ 905 2066, 906 /**/ 907 2065, 908 /**/ 909 2064, 910 /**/ 911 2063, 912 /**/ 913 2062, 914 /**/ 915 2061, 916 /**/ 917 2060, 918 /**/ 919 2059, 920 /**/ 921 2058, 922 /**/ 923 2057, 924 /**/ 925 2056, 926 /**/ 927 2055, 928 /**/ 929 2054, 930 /**/ 931 2053, 932 /**/ 933 2052, 934 /**/ 935 2051, 936 /**/ 937 2050, 938 /**/ 939 2049, 940 /**/ 941 2048, 942 /**/ 943 2047, 944 /**/ 945 2046, 946 /**/ 947 2045, 948 /**/ 949 2044, 950 /**/ 951 2043, 952 /**/ 953 2042, 954 /**/ 955 2041, 956 /**/ 957 2040, 958 /**/ 959 2039, 960 /**/ 961 2038, 962 /**/ 963 2037, 964 /**/ 965 2036, 966 /**/ 967 2035, 968 /**/ 969 2034, 970 /**/ 971 2033, 972 /**/ 973 2032, 974 /**/ 975 2031, 976 /**/ 977 2030, 978 /**/ 979 2029, 980 /**/ 981 2028, 982 /**/ 983 2027, 984 /**/ 985 2026, 986 /**/ 987 2025, 988 /**/ 989 2024, 990 /**/ 991 2023, 992 /**/ 993 2022, 994 /**/ 995 2021, 996 /**/ 997 2020, 998 /**/ 999 2019, 1000 /**/ 1001 2018, 1002 /**/ 1003 2017, 1004 /**/ 1005 2016, 1006 /**/ 1007 2015, 1008 /**/ 1009 2014, 1010 /**/ 1011 2013, 1012 /**/ 1013 2012, 1014 /**/ 1015 2011, 1016 /**/ 1017 2010, 1018 /**/ 1019 2009, 1020 /**/ 1021 2008, 1022 /**/ 1023 2007, 1024 /**/ 1025 2006, 1026 /**/ 1027 2005, 1028 /**/ 1029 2004, 1030 /**/ 1031 2003, 1032 /**/ 1033 2002, 1034 /**/ 1035 2001, 1036 /**/ 1037 2000, 1038 /**/ 1039 1999, 1040 /**/ 1041 1998, 1042 /**/ 1043 1997, 1044 /**/ 1045 1996, 1046 /**/ 1047 1995, 1048 /**/ 1049 1994, 1050 /**/ 1051 1993, 1052 /**/ 1053 1992, 1054 /**/ 1055 1991, 1056 /**/ 1057 1990, 1058 /**/ 1059 1989, 1060 /**/ 1061 1988, 1062 /**/ 1063 1987, 1064 /**/ 1065 1986, 1066 /**/ 1067 1985, 1068 /**/ 1069 1984, 1070 /**/ 1071 1983, 1072 /**/ 1073 1982, 1074 /**/ 1075 1981, 1076 /**/ 1077 1980, 1078 /**/ 1079 1979, 1080 /**/ 1081 1978, 1082 /**/ 1083 1977, 1084 /**/ 1085 1976, 1086 /**/ 1087 1975, 1088 /**/ 1089 1974, 1090 /**/ 1091 1973, 1092 /**/ 1093 1972, 1094 /**/ 1095 1971, 1096 /**/ 1097 1970, 1098 /**/ 1099 1969, 1100 /**/ 1101 1968, 1102 /**/ 1103 1967, 1104 /**/ 1105 1966, 1106 /**/ 1107 1965, 1108 /**/ 1109 1964, 1110 /**/ 1111 1963, 1112 /**/ 1113 1962, 1114 /**/ 1115 1961, 1116 /**/ 1117 1960, 1118 /**/ 1119 1959, 1120 /**/ 1121 1958, 1122 /**/ 1123 1957, 1124 /**/ 1125 1956, 1126 /**/ 1127 1955, 1128 /**/ 1129 1954, 1130 /**/ 1131 1953, 1132 /**/ 1133 1952, 1134 /**/ 1135 1951, 1136 /**/ 1137 1950, 1138 /**/ 1139 1949, 1140 /**/ 1141 1948, 1142 /**/ 1143 1947, 1144 /**/ 1145 1946, 1146 /**/ 1147 1945, 1148 /**/ 1149 1944, 1150 /**/ 1151 1943, 1152 /**/ 1153 1942, 1154 /**/ 1155 1941, 1156 /**/ 1157 1940, 1158 /**/ 1159 1939, 1160 /**/ 1161 1938, 1162 /**/ 1163 1937, 1164 /**/ 1165 1936, 1166 /**/ 1167 1935, 1168 /**/ 1169 1934, 1170 /**/ 1171 1933, 1172 /**/ 1173 1932, 1174 /**/ 1175 1931, 1176 /**/ 1177 1930, 1178 /**/ 1179 1929, 1180 /**/ 1181 1928, 1182 /**/ 1183 1927, 1184 /**/ 1185 1926, 1186 /**/ 1187 1925, 1188 /**/ 1189 1924, 1190 /**/ 1191 1923, 1192 /**/ 1193 1922, 1194 /**/ 1195 1921, 1196 /**/ 1197 1920, 1198 /**/ 1199 1919, 1200 /**/ 1201 1918, 1202 /**/ 1203 1917, 1204 /**/ 1205 1916, 1206 /**/ 1207 1915, 1208 /**/ 1209 1914, 1210 /**/ 1211 1913, 1212 /**/ 1213 1912, 1214 /**/ 1215 1911, 1216 /**/ 1217 1910, 1218 /**/ 1219 1909, 1220 /**/ 1221 1908, 1222 /**/ 1223 1907, 1224 /**/ 1225 1906, 1226 /**/ 1227 1905, 1228 /**/ 1229 1904, 1230 /**/ 1231 1903, 1232 /**/ 1233 1902, 1234 /**/ 1235 1901, 1236 /**/ 1237 1900, 1238 /**/ 1239 1899, 1240 /**/ 1241 1898, 1242 /**/ 1243 1897, 1244 /**/ 1245 1896, 1246 /**/ 1247 1895, 1248 /**/ 1249 1894, 1250 /**/ 1251 1893, 1252 /**/ 1253 1892, 1254 /**/ 1255 1891, 1256 /**/ 1257 1890, 1258 /**/ 1259 1889, 1260 /**/ 1261 1888, 1262 /**/ 1263 1887, 1264 /**/ 1265 1886, 1266 /**/ 1267 1885, 1268 /**/ 1269 1884, 1270 /**/ 1271 1883, 1272 /**/ 1273 1882, 1274 /**/ 1275 1881, 1276 /**/ 1277 1880, 1278 /**/ 1279 1879, 1280 /**/ 1281 1878, 1282 /**/ 1283 1877, 1284 /**/ 1285 1876, 1286 /**/ 1287 1875, 1288 /**/ 1289 1874, 1290 /**/ 1291 1873, 1292 /**/ 1293 1872, 1294 /**/ 1295 1871, 1296 /**/ 1297 1870, 1298 /**/ 1299 1869, 1300 /**/ 1301 1868, 1302 /**/ 1303 1867, 1304 /**/ 1305 1866, 1306 /**/ 1307 1865, 1308 /**/ 1309 1864, 1310 /**/ 1311 1863, 1312 /**/ 1313 1862, 1314 /**/ 1315 1861, 1316 /**/ 1317 1860, 1318 /**/ 1319 1859, 1320 /**/ 1321 1858, 1322 /**/ 1323 1857, 1324 /**/ 1325 1856, 1326 /**/ 1327 1855, 1328 /**/ 1329 1854, 1330 /**/ 1331 1853, 1332 /**/ 1333 1852, 1334 /**/ 1335 1851, 1336 /**/ 1337 1850, 1338 /**/ 1339 1849, 1340 /**/ 1341 1848, 1342 /**/ 1343 1847, 1344 /**/ 1345 1846, 1346 /**/ 1347 1845, 1348 /**/ 1349 1844, 1350 /**/ 1351 1843, 1352 /**/ 1353 1842, 1354 /**/ 1355 1841, 1356 /**/ 1357 1840, 1358 /**/ 1359 1839, 1360 /**/ 1361 1838, 1362 /**/ 1363 1837, 1364 /**/ 1365 1836, 1366 /**/ 1367 1835, 1368 /**/ 1369 1834, 1370 /**/ 1371 1833, 1372 /**/ 1373 1832, 1374 /**/ 1375 1831, 1376 /**/ 1377 1830, 1378 /**/ 1379 1829, 1380 /**/ 1381 1828, 1382 /**/ 1383 1827, 1384 /**/ 1385 1826, 1386 /**/ 1387 1825, 1388 /**/ 1389 1824, 1390 /**/ 1391 1823, 1392 /**/ 1393 1822, 1394 /**/ 1395 1821, 1396 /**/ 1397 1820, 1398 /**/ 1399 1819, 1400 /**/ 1401 1818, 1402 /**/ 1403 1817, 1404 /**/ 1405 1816, 1406 /**/ 1407 1815, 1408 /**/ 1409 1814, 1410 /**/ 1411 1813, 1412 /**/ 1413 1812, 1414 /**/ 1415 1811, 1416 /**/ 1417 1810, 1418 /**/ 1419 1809, 1420 /**/ 1421 1808, 1422 /**/ 1423 1807, 1424 /**/ 1425 1806, 1426 /**/ 1427 1805, 1428 /**/ 1429 1804, 1430 /**/ 1431 1803, 1432 /**/ 1433 1802, 1434 /**/ 1435 1801, 1436 /**/ 1437 1800, 1438 /**/ 1439 1799, 1440 /**/ 1441 1798, 1442 /**/ 1443 1797, 1444 /**/ 1445 1796, 1446 /**/ 1447 1795, 1448 /**/ 1449 1794, 1450 /**/ 1451 1793, 1452 /**/ 1453 1792, 1454 /**/ 1455 1791, 1456 /**/ 1457 1790, 1458 /**/ 1459 1789, 1460 /**/ 1461 1788, 1462 /**/ 1463 1787, 1464 /**/ 1465 1786, 1466 /**/ 1467 1785, 1468 /**/ 1469 1784, 1470 /**/ 1471 1783, 1472 /**/ 1473 1782, 1474 /**/ 1475 1781, 1476 /**/ 1477 1780, 1478 /**/ 1479 1779, 1480 /**/ 1481 1778, 1482 /**/ 1483 1777, 1484 /**/ 1485 1776, 1486 /**/ 1487 1775, 1488 /**/ 1489 1774, 1490 /**/ 1491 1773, 1492 /**/ 1493 1772, 1494 /**/ 1495 1771, 1496 /**/ 1497 1770, 1498 /**/ 1499 1769, 1500 /**/ 1501 1768, 1502 /**/ 1503 1767, 1504 /**/ 1505 1766, 1506 /**/ 1507 1765, 1508 /**/ 1509 1764, 1510 /**/ 1511 1763, 1512 /**/ 1513 1762, 1514 /**/ 1515 1761, 1516 /**/ 1517 1760, 1518 /**/ 1519 1759, 1520 /**/ 1521 1758, 1522 /**/ 1523 1757, 1524 /**/ 1525 1756, 1526 /**/ 1527 1755, 1528 /**/ 1529 1754, 1530 /**/ 1531 1753, 1532 /**/ 1533 1752, 1534 /**/ 1535 1751, 1536 /**/ 1537 1750, 1538 /**/ 1539 1749, 1540 /**/ 1541 1748, 1542 /**/ 1543 1747, 1544 /**/ 1545 1746, 1546 /**/ 1547 1745, 1548 /**/ 1549 1744, 1550 /**/ 1551 1743, 1552 /**/ 1553 1742, 1554 /**/ 1555 1741, 1556 /**/ 1557 1740, 1558 /**/ 1559 1739, 1560 /**/ 1561 1738, 1562 /**/ 1563 1737, 1564 /**/ 1565 1736, 1566 /**/ 1567 1735, 1568 /**/ 1569 1734, 1570 /**/ 1571 1733, 1572 /**/ 1573 1732, 1574 /**/ 1575 1731, 1576 /**/ 1577 1730, 1578 /**/ 1579 1729, 1580 /**/ 1581 1728, 1582 /**/ 1583 1727, 1584 /**/ 1585 1726, 1586 /**/ 1587 1725, 1588 /**/ 1589 1724, 1590 /**/ 1591 1723, 1592 /**/ 1593 1722, 1594 /**/ 1595 1721, 1596 /**/ 1597 1720, 1598 /**/ 1599 1719, 1600 /**/ 1601 1718, 1602 /**/ 1603 1717, 1604 /**/ 1605 1716, 1606 /**/ 1607 1715, 1608 /**/ 1609 1714, 1610 /**/ 1611 1713, 1612 /**/ 1613 1712, 1614 /**/ 1615 1711, 1616 /**/ 1617 1710, 1618 /**/ 1619 1709, 1620 /**/ 1621 1708, 1622 /**/ 1623 1707, 1624 /**/ 1625 1706, 1626 /**/ 1627 1705, 1628 /**/ 1629 1704, 1630 /**/ 1631 1703, 1632 /**/ 1633 1702, 1634 /**/ 1635 1701, 1636 /**/ 1637 1700, 1638 /**/ 1639 1699, 1640 /**/ 1641 1698, 1642 /**/ 1643 1697, 1644 /**/ 1645 1696, 1646 /**/ 1647 1695, 1648 /**/ 1649 1694, 1650 /**/ 1651 1693, 1652 /**/ 1653 1692, 1654 /**/ 1655 1691, 1656 /**/ 1657 1690, 1658 /**/ 1659 1689, 1660 /**/ 1661 1688, 1662 /**/ 1663 1687, 1664 /**/ 1665 1686, 1666 /**/ 1667 1685, 1668 /**/ 1669 1684, 1670 /**/ 1671 1683, 1672 /**/ 1673 1682, 1674 /**/ 1675 1681, 1676 /**/ 1677 1680, 1678 /**/ 1679 1679, 1680 /**/ 1681 1678, 1682 /**/ 1683 1677, 1684 /**/ 1685 1676, 1686 /**/ 1687 1675, 1688 /**/ 1689 1674, 1690 /**/ 1691 1673, 1692 /**/ 1693 1672, 1694 /**/ 1695 1671, 1696 /**/ 1697 1670, 1698 /**/ 1699 1669, 1700 /**/ 1701 1668, 1702 /**/ 1703 1667, 1704 /**/ 1705 1666, 1706 /**/ 1707 1665, 1708 /**/ 1709 1664, 1710 /**/ 1711 1663, 1712 /**/ 1713 1662, 1714 /**/ 1715 1661, 1716 /**/ 1717 1660, 1718 /**/ 1719 1659, 1720 /**/ 1721 1658, 1722 /**/ 1723 1657, 1724 /**/ 1725 1656, 1726 /**/ 1727 1655, 1728 /**/ 1729 1654, 1730 /**/ 1731 1653, 1732 /**/ 1733 1652, 1734 /**/ 1735 1651, 1736 /**/ 1737 1650, 1738 /**/ 1739 1649, 1740 /**/ 1741 1648, 1742 /**/ 1743 1647, 1744 /**/ 1745 1646, 1746 /**/ 1747 1645, 1748 /**/ 1749 1644, 1750 /**/ 1751 1643, 1752 /**/ 1753 1642, 1754 /**/ 1755 1641, 1756 /**/ 1757 1640, 1758 /**/ 1759 1639, 1760 /**/ 1761 1638, 1762 /**/ 1763 1637, 1764 /**/ 1765 1636, 1766 /**/ 1767 1635, 1768 /**/ 1769 1634, 1770 /**/ 1771 1633, 1772 /**/ 1773 1632, 1774 /**/ 1775 1631, 1776 /**/ 1777 1630, 1778 /**/ 1779 1629, 1780 /**/ 1781 1628, 1782 /**/ 1783 1627, 1784 /**/ 1785 1626, 1786 /**/ 1787 1625, 1788 /**/ 1789 1624, 1790 /**/ 1791 1623, 1792 /**/ 1793 1622, 1794 /**/ 1795 1621, 1796 /**/ 1797 1620, 1798 /**/ 1799 1619, 1800 /**/ 1801 1618, 1802 /**/ 1803 1617, 1804 /**/ 1805 1616, 1806 /**/ 1807 1615, 1808 /**/ 1809 1614, 1810 /**/ 1811 1613, 1812 /**/ 1813 1612, 1814 /**/ 1815 1611, 1816 /**/ 1817 1610, 1818 /**/ 1819 1609, 1820 /**/ 1821 1608, 1822 /**/ 1823 1607, 1824 /**/ 1825 1606, 1826 /**/ 1827 1605, 1828 /**/ 1829 1604, 1830 /**/ 1831 1603, 1832 /**/ 1833 1602, 1834 /**/ 1835 1601, 1836 /**/ 1837 1600, 1838 /**/ 1839 1599, 1840 /**/ 1841 1598, 1842 /**/ 1843 1597, 1844 /**/ 1845 1596, 1846 /**/ 1847 1595, 1848 /**/ 1849 1594, 1850 /**/ 1851 1593, 1852 /**/ 1853 1592, 1854 /**/ 1855 1591, 1856 /**/ 1857 1590, 1858 /**/ 1859 1589, 1860 /**/ 1861 1588, 1862 /**/ 1863 1587, 1864 /**/ 1865 1586, 1866 /**/ 1867 1585, 1868 /**/ 1869 1584, 1870 /**/ 1871 1583, 1872 /**/ 1873 1582, 1874 /**/ 1875 1581, 1876 /**/ 1877 1580, 1878 /**/ 1879 1579, 1880 /**/ 1881 1578, 1882 /**/ 1883 1577, 1884 /**/ 1885 1576, 1886 /**/ 1887 1575, 1888 /**/ 1889 1574, 1890 /**/ 1891 1573, 1892 /**/ 1893 1572, 1894 /**/ 1895 1571, 1896 /**/ 1897 1570, 1898 /**/ 1899 1569, 1900 /**/ 1901 1568, 1902 /**/ 1903 1567, 1904 /**/ 1905 1566, 1906 /**/ 1907 1565, 1908 /**/ 1909 1564, 1910 /**/ 1911 1563, 1912 /**/ 1913 1562, 1914 /**/ 1915 1561, 1916 /**/ 1917 1560, 1918 /**/ 1919 1559, 1920 /**/ 1921 1558, 1922 /**/ 1923 1557, 1924 /**/ 1925 1556, 1926 /**/ 1927 1555, 1928 /**/ 1929 1554, 1930 /**/ 1931 1553, 1932 /**/ 1933 1552, 1934 /**/ 1935 1551, 1936 /**/ 1937 1550, 1938 /**/ 1939 1549, 1940 /**/ 1941 1548, 1942 /**/ 1943 1547, 1944 /**/ 1945 1546, 1946 /**/ 1947 1545, 1948 /**/ 1949 1544, 1950 /**/ 1951 1543, 1952 /**/ 1953 1542, 1954 /**/ 1955 1541, 1956 /**/ 1957 1540, 1958 /**/ 1959 1539, 1960 /**/ 1961 1538, 1962 /**/ 1963 1537, 1964 /**/ 1965 1536, 1966 /**/ 1967 1535, 1968 /**/ 1969 1534, 1970 /**/ 1971 1533, 1972 /**/ 1973 1532, 1974 /**/ 1975 1531, 1976 /**/ 1977 1530, 1978 /**/ 1979 1529, 1980 /**/ 1981 1528, 1982 /**/ 1983 1527, 1984 /**/ 1985 1526, 1986 /**/ 1987 1525, 1988 /**/ 1989 1524, 1990 /**/ 1991 1523, 1992 /**/ 1993 1522, 1994 /**/ 1995 1521, 1996 /**/ 1997 1520, 1998 /**/ 1999 1519, 2000 /**/ 2001 1518, 2002 /**/ 2003 1517, 2004 /**/ 2005 1516, 2006 /**/ 2007 1515, 2008 /**/ 2009 1514, 2010 /**/ 2011 1513, 2012 /**/ 2013 1512, 2014 /**/ 2015 1511, 2016 /**/ 2017 1510, 2018 /**/ 2019 1509, 2020 /**/ 2021 1508, 2022 /**/ 2023 1507, 2024 /**/ 2025 1506, 2026 /**/ 2027 1505, 2028 /**/ 2029 1504, 2030 /**/ 2031 1503, 2032 /**/ 2033 1502, 2034 /**/ 2035 1501, 2036 /**/ 2037 1500, 2038 /**/ 2039 1499, 2040 /**/ 2041 1498, 2042 /**/ 2043 1497, 2044 /**/ 2045 1496, 2046 /**/ 2047 1495, 2048 /**/ 2049 1494, 2050 /**/ 2051 1493, 2052 /**/ 2053 1492, 2054 /**/ 2055 1491, 2056 /**/ 2057 1490, 2058 /**/ 2059 1489, 2060 /**/ 2061 1488, 2062 /**/ 2063 1487, 2064 /**/ 2065 1486, 2066 /**/ 2067 1485, 2068 /**/ 2069 1484, 2070 /**/ 2071 1483, 2072 /**/ 2073 1482, 2074 /**/ 2075 1481, 2076 /**/ 2077 1480, 2078 /**/ 2079 1479, 2080 /**/ 2081 1478, 2082 /**/ 2083 1477, 2084 /**/ 2085 1476, 2086 /**/ 2087 1475, 2088 /**/ 2089 1474, 2090 /**/ 2091 1473, 2092 /**/ 2093 1472, 2094 /**/ 2095 1471, 2096 /**/ 2097 1470, 2098 /**/ 2099 1469, 2100 /**/ 2101 1468, 2102 /**/ 2103 1467, 2104 /**/ 2105 1466, 2106 /**/ 2107 1465, 2108 /**/ 2109 1464, 2110 /**/ 2111 1463, 2112 /**/ 2113 1462, 2114 /**/ 2115 1461, 2116 /**/ 2117 1460, 2118 /**/ 2119 1459, 2120 /**/ 2121 1458, 2122 /**/ 2123 1457, 2124 /**/ 2125 1456, 2126 /**/ 2127 1455, 2128 /**/ 2129 1454, 2130 /**/ 2131 1453, 2132 /**/ 2133 1452, 2134 /**/ 2135 1451, 2136 /**/ 2137 1450, 2138 /**/ 2139 1449, 2140 /**/ 2141 1448, 2142 /**/ 2143 1447, 2144 /**/ 2145 1446, 2146 /**/ 2147 1445, 2148 /**/ 2149 1444, 2150 /**/ 2151 1443, 2152 /**/ 2153 1442, 2154 /**/ 2155 1441, 2156 /**/ 2157 1440, 2158 /**/ 2159 1439, 2160 /**/ 2161 1438, 2162 /**/ 2163 1437, 2164 /**/ 2165 1436, 2166 /**/ 2167 1435, 2168 /**/ 2169 1434, 2170 /**/ 2171 1433, 2172 /**/ 2173 1432, 2174 /**/ 2175 1431, 2176 /**/ 2177 1430, 2178 /**/ 2179 1429, 2180 /**/ 2181 1428, 2182 /**/ 2183 1427, 2184 /**/ 2185 1426, 2186 /**/ 2187 1425, 2188 /**/ 2189 1424, 2190 /**/ 2191 1423, 2192 /**/ 2193 1422, 2194 /**/ 2195 1421, 2196 /**/ 2197 1420, 2198 /**/ 2199 1419, 2200 /**/ 2201 1418, 2202 /**/ 2203 1417, 2204 /**/ 2205 1416, 2206 /**/ 2207 1415, 2208 /**/ 2209 1414, 2210 /**/ 2211 1413, 2212 /**/ 2213 1412, 2214 /**/ 2215 1411, 2216 /**/ 2217 1410, 2218 /**/ 2219 1409, 2220 /**/ 2221 1408, 2222 /**/ 2223 1407, 2224 /**/ 2225 1406, 2226 /**/ 2227 1405, 2228 /**/ 2229 1404, 2230 /**/ 2231 1403, 2232 /**/ 2233 1402, 2234 /**/ 2235 1401, 2236 /**/ 2237 1400, 2238 /**/ 2239 1399, 2240 /**/ 2241 1398, 2242 /**/ 2243 1397, 2244 /**/ 2245 1396, 2246 /**/ 2247 1395, 2248 /**/ 2249 1394, 2250 /**/ 2251 1393, 2252 /**/ 2253 1392, 2254 /**/ 2255 1391, 2256 /**/ 2257 1390, 2258 /**/ 2259 1389, 2260 /**/ 2261 1388, 2262 /**/ 2263 1387, 2264 /**/ 2265 1386, 2266 /**/ 2267 1385, 2268 /**/ 2269 1384, 2270 /**/ 2271 1383, 2272 /**/ 2273 1382, 2274 /**/ 2275 1381, 2276 /**/ 2277 1380, 2278 /**/ 2279 1379, 2280 /**/ 2281 1378, 2282 /**/ 2283 1377, 2284 /**/ 2285 1376, 2286 /**/ 2287 1375, 2288 /**/ 2289 1374, 2290 /**/ 2291 1373, 2292 /**/ 2293 1372, 2294 /**/ 2295 1371, 2296 /**/ 2297 1370, 2298 /**/ 2299 1369, 2300 /**/ 2301 1368, 2302 /**/ 2303 1367, 2304 /**/ 2305 1366, 2306 /**/ 2307 1365, 2308 /**/ 2309 1364, 2310 /**/ 2311 1363, 2312 /**/ 2313 1362, 2314 /**/ 2315 1361, 2316 /**/ 2317 1360, 2318 /**/ 2319 1359, 2320 /**/ 2321 1358, 2322 /**/ 2323 1357, 2324 /**/ 2325 1356, 2326 /**/ 2327 1355, 2328 /**/ 2329 1354, 2330 /**/ 2331 1353, 2332 /**/ 2333 1352, 2334 /**/ 2335 1351, 2336 /**/ 2337 1350, 2338 /**/ 2339 1349, 2340 /**/ 2341 1348, 2342 /**/ 2343 1347, 2344 /**/ 2345 1346, 2346 /**/ 2347 1345, 2348 /**/ 2349 1344, 2350 /**/ 2351 1343, 2352 /**/ 2353 1342, 2354 /**/ 2355 1341, 2356 /**/ 2357 1340, 2358 /**/ 2359 1339, 2360 /**/ 2361 1338, 2362 /**/ 2363 1337, 2364 /**/ 2365 1336, 2366 /**/ 2367 1335, 2368 /**/ 2369 1334, 2370 /**/ 2371 1333, 2372 /**/ 2373 1332, 2374 /**/ 2375 1331, 2376 /**/ 2377 1330, 2378 /**/ 2379 1329, 2380 /**/ 2381 1328, 2382 /**/ 2383 1327, 2384 /**/ 2385 1326, 2386 /**/ 2387 1325, 2388 /**/ 2389 1324, 2390 /**/ 2391 1323, 2392 /**/ 2393 1322, 2394 /**/ 2395 1321, 2396 /**/ 2397 1320, 2398 /**/ 2399 1319, 2400 /**/ 2401 1318, 2402 /**/ 2403 1317, 2404 /**/ 2405 1316, 2406 /**/ 2407 1315, 2408 /**/ 2409 1314, 2410 /**/ 2411 1313, 2412 /**/ 2413 1312, 2414 /**/ 2415 1311, 2416 /**/ 2417 1310, 2418 /**/ 2419 1309, 2420 /**/ 2421 1308, 2422 /**/ 2423 1307, 2424 /**/ 2425 1306, 2426 /**/ 2427 1305, 2428 /**/ 2429 1304, 2430 /**/ 2431 1303, 2432 /**/ 2433 1302, 2434 /**/ 2435 1301, 2436 /**/ 2437 1300, 2438 /**/ 2439 1299, 2440 /**/ 2441 1298, 2442 /**/ 2443 1297, 2444 /**/ 2445 1296, 2446 /**/ 2447 1295, 2448 /**/ 2449 1294, 2450 /**/ 2451 1293, 2452 /**/ 2453 1292, 2454 /**/ 2455 1291, 2456 /**/ 2457 1290, 2458 /**/ 2459 1289, 2460 /**/ 2461 1288, 2462 /**/ 2463 1287, 2464 /**/ 2465 1286, 2466 /**/ 2467 1285, 2468 /**/ 2469 1284, 2470 /**/ 2471 1283, 2472 /**/ 2473 1282, 2474 /**/ 2475 1281, 2476 /**/ 2477 1280, 2478 /**/ 2479 1279, 2480 /**/ 2481 1278, 2482 /**/ 2483 1277, 2484 /**/ 2485 1276, 2486 /**/ 2487 1275, 2488 /**/ 2489 1274, 2490 /**/ 2491 1273, 2492 /**/ 2493 1272, 2494 /**/ 2495 1271, 2496 /**/ 2497 1270, 2498 /**/ 2499 1269, 2500 /**/ 2501 1268, 2502 /**/ 2503 1267, 2504 /**/ 2505 1266, 2506 /**/ 2507 1265, 2508 /**/ 2509 1264, 2510 /**/ 2511 1263, 2512 /**/ 2513 1262, 2514 /**/ 2515 1261, 2516 /**/ 2517 1260, 2518 /**/ 2519 1259, 2520 /**/ 2521 1258, 2522 /**/ 2523 1257, 2524 /**/ 2525 1256, 2526 /**/ 2527 1255, 2528 /**/ 2529 1254, 2530 /**/ 2531 1253, 2532 /**/ 2533 1252, 2534 /**/ 2535 1251, 2536 /**/ 2537 1250, 2538 /**/ 2539 1249, 2540 /**/ 2541 1248, 2542 /**/ 2543 1247, 2544 /**/ 2545 1246, 2546 /**/ 2547 1245, 2548 /**/ 2549 1244, 2550 /**/ 2551 1243, 2552 /**/ 2553 1242, 2554 /**/ 2555 1241, 2556 /**/ 2557 1240, 2558 /**/ 2559 1239, 2560 /**/ 2561 1238, 2562 /**/ 2563 1237, 2564 /**/ 2565 1236, 2566 /**/ 2567 1235, 2568 /**/ 2569 1234, 2570 /**/ 2571 1233, 2572 /**/ 2573 1232, 2574 /**/ 2575 1231, 2576 /**/ 2577 1230, 2578 /**/ 2579 1229, 2580 /**/ 2581 1228, 2582 /**/ 2583 1227, 2584 /**/ 2585 1226, 2586 /**/ 2587 1225, 2588 /**/ 2589 1224, 2590 /**/ 2591 1223, 2592 /**/ 2593 1222, 2594 /**/ 2595 1221, 2596 /**/ 2597 1220, 2598 /**/ 2599 1219, 2600 /**/ 2601 1218, 2602 /**/ 2603 1217, 2604 /**/ 2605 1216, 2606 /**/ 2607 1215, 2608 /**/ 2609 1214, 2610 /**/ 2611 1213, 2612 /**/ 2613 1212, 2614 /**/ 2615 1211, 2616 /**/ 2617 1210, 2618 /**/ 2619 1209, 2620 /**/ 2621 1208, 2622 /**/ 2623 1207, 2624 /**/ 2625 1206, 2626 /**/ 2627 1205, 2628 /**/ 2629 1204, 2630 /**/ 2631 1203, 2632 /**/ 2633 1202, 2634 /**/ 2635 1201, 2636 /**/ 2637 1200, 2638 /**/ 2639 1199, 2640 /**/ 2641 1198, 2642 /**/ 2643 1197, 2644 /**/ 2645 1196, 2646 /**/ 2647 1195, 2648 /**/ 2649 1194, 2650 /**/ 2651 1193, 2652 /**/ 2653 1192, 2654 /**/ 2655 1191, 2656 /**/ 2657 1190, 2658 /**/ 2659 1189, 2660 /**/ 2661 1188, 2662 /**/ 2663 1187, 2664 /**/ 2665 1186, 2666 /**/ 2667 1185, 2668 /**/ 2669 1184, 2670 /**/ 2671 1183, 2672 /**/ 2673 1182, 2674 /**/ 2675 1181, 2676 /**/ 2677 1180, 2678 /**/ 2679 1179, 2680 /**/ 2681 1178, 2682 /**/ 2683 1177, 2684 /**/ 2685 1176, 2686 /**/ 2687 1175, 2688 /**/ 2689 1174, 2690 /**/ 2691 1173, 2692 /**/ 2693 1172, 2694 /**/ 2695 1171, 2696 /**/ 2697 1170, 2698 /**/ 2699 1169, 2700 /**/ 2701 1168, 2702 /**/ 2703 1167, 2704 /**/ 2705 1166, 2706 /**/ 2707 1165, 2708 /**/ 2709 1164, 2710 /**/ 2711 1163, 2712 /**/ 2713 1162, 2714 /**/ 2715 1161, 2716 /**/ 2717 1160, 2718 /**/ 2719 1159, 2720 /**/ 2721 1158, 2722 /**/ 2723 1157, 2724 /**/ 2725 1156, 2726 /**/ 2727 1155, 2728 /**/ 2729 1154, 2730 /**/ 2731 1153, 2732 /**/ 2733 1152, 2734 /**/ 2735 1151, 2736 /**/ 2737 1150, 2738 /**/ 2739 1149, 2740 /**/ 2741 1148, 2742 /**/ 2743 1147, 2744 /**/ 2745 1146, 2746 /**/ 2747 1145, 2748 /**/ 2749 1144, 2750 /**/ 2751 1143, 2752 /**/ 2753 1142, 2754 /**/ 2755 1141, 2756 /**/ 2757 1140, 2758 /**/ 2759 1139, 2760 /**/ 2761 1138, 2762 /**/ 2763 1137, 2764 /**/ 2765 1136, 2766 /**/ 2767 1135, 2768 /**/ 2769 1134, 2770 /**/ 2771 1133, 2772 /**/ 2773 1132, 2774 /**/ 2775 1131, 2776 /**/ 2777 1130, 2778 /**/ 2779 1129, 2780 /**/ 2781 1128, 2782 /**/ 2783 1127, 2784 /**/ 2785 1126, 2786 /**/ 2787 1125, 2788 /**/ 2789 1124, 2790 /**/ 2791 1123, 2792 /**/ 2793 1122, 2794 /**/ 2795 1121, 2796 /**/ 2797 1120, 2798 /**/ 2799 1119, 2800 /**/ 2801 1118, 2802 /**/ 2803 1117, 2804 /**/ 2805 1116, 2806 /**/ 2807 1115, 2808 /**/ 2809 1114, 2810 /**/ 2811 1113, 2812 /**/ 2813 1112, 2814 /**/ 2815 1111, 2816 /**/ 2817 1110, 2818 /**/ 2819 1109, 2820 /**/ 2821 1108, 2822 /**/ 2823 1107, 2824 /**/ 2825 1106, 2826 /**/ 2827 1105, 2828 /**/ 2829 1104, 2830 /**/ 2831 1103, 2832 /**/ 2833 1102, 2834 /**/ 2835 1101, 2836 /**/ 2837 1100, 2838 /**/ 2839 1099, 2840 /**/ 2841 1098, 2842 /**/ 2843 1097, 2844 /**/ 2845 1096, 2846 /**/ 2847 1095, 2848 /**/ 2849 1094, 2850 /**/ 2851 1093, 2852 /**/ 2853 1092, 2854 /**/ 2855 1091, 2856 /**/ 2857 1090, 2858 /**/ 2859 1089, 2860 /**/ 2861 1088, 2862 /**/ 2863 1087, 2864 /**/ 2865 1086, 2866 /**/ 2867 1085, 2868 /**/ 2869 1084, 2870 /**/ 2871 1083, 2872 /**/ 2873 1082, 2874 /**/ 2875 1081, 2876 /**/ 2877 1080, 2878 /**/ 2879 1079, 2880 /**/ 2881 1078, 2882 /**/ 2883 1077, 2884 /**/ 2885 1076, 2886 /**/ 2887 1075, 2888 /**/ 2889 1074, 2890 /**/ 2891 1073, 2892 /**/ 2893 1072, 2894 /**/ 2895 1071, 2896 /**/ 2897 1070, 2898 /**/ 2899 1069, 2900 /**/ 2901 1068, 2902 /**/ 2903 1067, 2904 /**/ 2905 1066, 2906 /**/ 2907 1065, 2908 /**/ 2909 1064, 2910 /**/ 2911 1063, 2912 /**/ 2913 1062, 2914 /**/ 2915 1061, 2916 /**/ 2917 1060, 2918 /**/ 2919 1059, 2920 /**/ 2921 1058, 2922 /**/ 2923 1057, 2924 /**/ 2925 1056, 2926 /**/ 2927 1055, 2928 /**/ 2929 1054, 2930 /**/ 2931 1053, 2932 /**/ 2933 1052, 2934 /**/ 2935 1051, 2936 /**/ 2937 1050, 2938 /**/ 2939 1049, 2940 /**/ 2941 1048, 2942 /**/ 2943 1047, 2944 /**/ 2945 1046, 2946 /**/ 2947 1045, 2948 /**/ 2949 1044, 2950 /**/ 2951 1043, 2952 /**/ 2953 1042, 2954 /**/ 2955 1041, 2956 /**/ 2957 1040, 2958 /**/ 2959 1039, 2960 /**/ 2961 1038, 2962 /**/ 2963 1037, 2964 /**/ 2965 1036, 2966 /**/ 2967 1035, 2968 /**/ 2969 1034, 2970 /**/ 2971 1033, 2972 /**/ 2973 1032, 2974 /**/ 2975 1031, 2976 /**/ 2977 1030, 2978 /**/ 2979 1029, 2980 /**/ 2981 1028, 2982 /**/ 2983 1027, 2984 /**/ 2985 1026, 2986 /**/ 2987 1025, 2988 /**/ 2989 1024, 2990 /**/ 2991 1023, 2992 /**/ 2993 1022, 2994 /**/ 2995 1021, 2996 /**/ 2997 1020, 2998 /**/ 2999 1019, 3000 /**/ 3001 1018, 3002 /**/ 3003 1017, 3004 /**/ 3005 1016, 3006 /**/ 3007 1015, 3008 /**/ 3009 1014, 3010 /**/ 3011 1013, 3012 /**/ 3013 1012, 3014 /**/ 3015 1011, 3016 /**/ 3017 1010, 3018 /**/ 3019 1009, 3020 /**/ 3021 1008, 3022 /**/ 3023 1007, 3024 /**/ 3025 1006, 3026 /**/ 3027 1005, 3028 /**/ 3029 1004, 3030 /**/ 3031 1003, 3032 /**/ 3033 1002, 3034 /**/ 3035 1001, 3036 /**/ 3037 1000, 3038 /**/ 3039 999, 3040 /**/ 3041 998, 3042 /**/ 3043 997, 3044 /**/ 3045 996, 3046 /**/ 3047 995, 3048 /**/ 3049 994, 3050 /**/ 3051 993, 3052 /**/ 3053 992, 3054 /**/ 3055 991, 3056 /**/ 3057 990, 3058 /**/ 3059 989, 3060 /**/ 3061 988, 3062 /**/ 3063 987, 3064 /**/ 3065 986, 3066 /**/ 3067 985, 3068 /**/ 3069 984, 3070 /**/ 3071 983, 3072 /**/ 3073 982, 3074 /**/ 3075 981, 3076 /**/ 3077 980, 3078 /**/ 3079 979, 3080 /**/ 3081 978, 3082 /**/ 3083 977, 3084 /**/ 3085 976, 3086 /**/ 3087 975, 3088 /**/ 3089 974, 3090 /**/ 3091 973, 3092 /**/ 3093 972, 3094 /**/ 3095 971, 3096 /**/ 3097 970, 3098 /**/ 3099 969, 3100 /**/ 3101 968, 3102 /**/ 3103 967, 3104 /**/ 3105 966, 3106 /**/ 3107 965, 3108 /**/ 3109 964, 3110 /**/ 3111 963, 3112 /**/ 3113 962, 3114 /**/ 3115 961, 3116 /**/ 3117 960, 3118 /**/ 3119 959, 3120 /**/ 3121 958, 3122 /**/ 3123 957, 3124 /**/ 3125 956, 3126 /**/ 3127 955, 3128 /**/ 3129 954, 3130 /**/ 3131 953, 3132 /**/ 3133 952, 3134 /**/ 3135 951, 3136 /**/ 3137 950, 3138 /**/ 3139 949, 3140 /**/ 3141 948, 3142 /**/ 3143 947, 3144 /**/ 3145 946, 3146 /**/ 3147 945, 3148 /**/ 3149 944, 3150 /**/ 3151 943, 3152 /**/ 3153 942, 3154 /**/ 3155 941, 3156 /**/ 3157 940, 3158 /**/ 3159 939, 3160 /**/ 3161 938, 3162 /**/ 3163 937, 3164 /**/ 3165 936, 3166 /**/ 3167 935, 3168 /**/ 3169 934, 3170 /**/ 3171 933, 3172 /**/ 3173 932, 3174 /**/ 3175 931, 3176 /**/ 3177 930, 3178 /**/ 3179 929, 3180 /**/ 3181 928, 3182 /**/ 3183 927, 3184 /**/ 3185 926, 3186 /**/ 3187 925, 3188 /**/ 3189 924, 3190 /**/ 3191 923, 3192 /**/ 3193 922, 3194 /**/ 3195 921, 3196 /**/ 3197 920, 3198 /**/ 3199 919, 3200 /**/ 3201 918, 3202 /**/ 3203 917, 3204 /**/ 3205 916, 3206 /**/ 3207 915, 3208 /**/ 3209 914, 3210 /**/ 3211 913, 3212 /**/ 3213 912, 3214 /**/ 3215 911, 3216 /**/ 3217 910, 3218 /**/ 3219 909, 3220 /**/ 3221 908, 3222 /**/ 3223 907, 3224 /**/ 3225 906, 3226 /**/ 3227 905, 3228 /**/ 3229 904, 3230 /**/ 3231 903, 3232 /**/ 3233 902, 3234 /**/ 3235 901, 3236 /**/ 3237 900, 3238 /**/ 3239 899, 3240 /**/ 3241 898, 3242 /**/ 3243 897, 3244 /**/ 3245 896, 3246 /**/ 3247 895, 3248 /**/ 3249 894, 3250 /**/ 3251 893, 3252 /**/ 3253 892, 3254 /**/ 3255 891, 3256 /**/ 3257 890, 3258 /**/ 3259 889, 3260 /**/ 3261 888, 3262 /**/ 3263 887, 3264 /**/ 3265 886, 3266 /**/ 3267 885, 3268 /**/ 3269 884, 3270 /**/ 3271 883, 3272 /**/ 3273 882, 3274 /**/ 3275 881, 3276 /**/ 3277 880, 3278 /**/ 3279 879, 3280 /**/ 3281 878, 3282 /**/ 3283 877, 3284 /**/ 3285 876, 3286 /**/ 3287 875, 3288 /**/ 3289 874, 3290 /**/ 3291 873, 3292 /**/ 3293 872, 3294 /**/ 3295 871, 3296 /**/ 3297 870, 3298 /**/ 3299 869, 3300 /**/ 3301 868, 3302 /**/ 3303 867, 3304 /**/ 3305 866, 3306 /**/ 3307 865, 3308 /**/ 3309 864, 3310 /**/ 3311 863, 3312 /**/ 3313 862, 3314 /**/ 3315 861, 3316 /**/ 3317 860, 3318 /**/ 3319 859, 3320 /**/ 3321 858, 3322 /**/ 3323 857, 3324 /**/ 3325 856, 3326 /**/ 3327 855, 3328 /**/ 3329 854, 3330 /**/ 3331 853, 3332 /**/ 3333 852, 3334 /**/ 3335 851, 3336 /**/ 3337 850, 3338 /**/ 3339 849, 3340 /**/ 3341 848, 3342 /**/ 3343 847, 3344 /**/ 3345 846, 3346 /**/ 3347 845, 3348 /**/ 3349 844, 3350 /**/ 3351 843, 3352 /**/ 3353 842, 3354 /**/ 3355 841, 3356 /**/ 3357 840, 3358 /**/ 3359 839, 3360 /**/ 3361 838, 3362 /**/ 3363 837, 3364 /**/ 3365 836, 3366 /**/ 3367 835, 3368 /**/ 3369 834, 3370 /**/ 3371 833, 3372 /**/ 3373 832, 3374 /**/ 3375 831, 3376 /**/ 3377 830, 3378 /**/ 3379 829, 3380 /**/ 3381 828, 3382 /**/ 3383 827, 3384 /**/ 3385 826, 3386 /**/ 3387 825, 3388 /**/ 3389 824, 3390 /**/ 3391 823, 3392 /**/ 3393 822, 3394 /**/ 3395 821, 3396 /**/ 3397 820, 3398 /**/ 3399 819, 3400 /**/ 3401 818, 3402 /**/ 3403 817, 3404 /**/ 3405 816, 3406 /**/ 3407 815, 3408 /**/ 3409 814, 3410 /**/ 3411 813, 3412 /**/ 3413 812, 3414 /**/ 3415 811, 3416 /**/ 3417 810, 3418 /**/ 3419 809, 3420 /**/ 3421 808, 3422 /**/ 3423 807, 3424 /**/ 3425 806, 3426 /**/ 3427 805, 3428 /**/ 3429 804, 3430 /**/ 3431 803, 3432 /**/ 3433 802, 3434 /**/ 3435 801, 3436 /**/ 3437 800, 3438 /**/ 3439 799, 3440 /**/ 3441 798, 3442 /**/ 3443 797, 3444 /**/ 3445 796, 3446 /**/ 3447 795, 3448 /**/ 3449 794, 3450 /**/ 3451 793, 3452 /**/ 3453 792, 3454 /**/ 3455 791, 3456 /**/ 3457 790, 3458 /**/ 3459 789, 3460 /**/ 3461 788, 3462 /**/ 3463 787, 3464 /**/ 3465 786, 3466 /**/ 3467 785, 3468 /**/ 3469 784, 3470 /**/ 3471 783, 3472 /**/ 3473 782, 3474 /**/ 3475 781, 3476 /**/ 3477 780, 3478 /**/ 3479 779, 3480 /**/ 3481 778, 3482 /**/ 3483 777, 3484 /**/ 3485 776, 3486 /**/ 3487 775, 3488 /**/ 3489 774, 3490 /**/ 3491 773, 3492 /**/ 3493 772, 3494 /**/ 3495 771, 3496 /**/ 3497 770, 3498 /**/ 3499 769, 3500 /**/ 3501 768, 3502 /**/ 3503 767, 3504 /**/ 3505 766, 3506 /**/ 3507 765, 3508 /**/ 3509 764, 3510 /**/ 3511 763, 3512 /**/ 3513 762, 3514 /**/ 3515 761, 3516 /**/ 3517 760, 3518 /**/ 3519 759, 3520 /**/ 3521 758, 3522 /**/ 3523 757, 3524 /**/ 3525 756, 3526 /**/ 3527 755, 3528 /**/ 3529 754, 3530 /**/ 3531 753, 3532 /**/ 3533 752, 3534 /**/ 3535 751, 3536 /**/ 3537 750, 3538 /**/ 3539 749, 3540 /**/ 3541 748, 3542 /**/ 3543 747, 3544 /**/ 3545 746, 3546 /**/ 3547 745, 3548 /**/ 3549 744, 3550 /**/ 3551 743, 3552 /**/ 3553 742, 3554 /**/ 3555 741, 3556 /**/ 3557 740, 3558 /**/ 3559 739, 3560 /**/ 3561 738, 3562 /**/ 3563 737, 3564 /**/ 3565 736, 3566 /**/ 3567 735, 3568 /**/ 3569 734, 3570 /**/ 3571 733, 3572 /**/ 3573 732, 3574 /**/ 3575 731, 3576 /**/ 3577 730, 3578 /**/ 3579 729, 3580 /**/ 3581 728, 3582 /**/ 3583 727, 3584 /**/ 3585 726, 3586 /**/ 3587 725, 3588 /**/ 3589 724, 3590 /**/ 3591 723, 3592 /**/ 3593 722, 3594 /**/ 3595 721, 3596 /**/ 3597 720, 3598 /**/ 3599 719, 3600 /**/ 3601 718, 3602 /**/ 3603 717, 3604 /**/ 3605 716, 3606 /**/ 3607 715, 3608 /**/ 3609 714, 3610 /**/ 3611 713, 3612 /**/ 3613 712, 3614 /**/ 3615 711, 3616 /**/ 3617 710, 3618 /**/ 3619 709, 3620 /**/ 3621 708, 3622 /**/ 3623 707, 3624 /**/ 3625 706, 3626 /**/ 3627 705, 3628 /**/ 3629 704, 3630 /**/ 3631 703, 3632 /**/ 3633 702, 3634 /**/ 3635 701, 3636 /**/ 3637 700, 3638 /**/ 3639 699, 3640 /**/ 3641 698, 3642 /**/ 3643 697, 3644 /**/ 3645 696, 3646 /**/ 3647 695, 3648 /**/ 3649 694, 3650 /**/ 3651 693, 3652 /**/ 3653 692, 3654 /**/ 3655 691, 3656 /**/ 3657 690, 3658 /**/ 3659 689, 3660 /**/ 3661 688, 3662 /**/ 3663 687, 3664 /**/ 3665 686, 3666 /**/ 3667 685, 3668 /**/ 3669 684, 3670 /**/ 3671 683, 3672 /**/ 3673 682, 3674 /**/ 3675 681, 3676 /**/ 3677 680, 3678 /**/ 3679 679, 3680 /**/ 3681 678, 3682 /**/ 3683 677, 3684 /**/ 3685 676, 3686 /**/ 3687 675, 3688 /**/ 3689 674, 3690 /**/ 3691 673, 3692 /**/ 3693 672, 3694 /**/ 3695 671, 3696 /**/ 3697 670, 3698 /**/ 3699 669, 3700 /**/ 3701 668, 3702 /**/ 3703 667, 3704 /**/ 3705 666, 3706 /**/ 3707 665, 3708 /**/ 3709 664, 3710 /**/ 3711 663, 3712 /**/ 3713 662, 3714 /**/ 3715 661, 3716 /**/ 3717 660, 3718 /**/ 3719 659, 3720 /**/ 3721 658, 3722 /**/ 3723 657, 3724 /**/ 3725 656, 3726 /**/ 3727 655, 3728 /**/ 3729 654, 3730 /**/ 3731 653, 3732 /**/ 3733 652, 3734 /**/ 3735 651, 3736 /**/ 3737 650, 3738 /**/ 3739 649, 3740 /**/ 3741 648, 3742 /**/ 3743 647, 3744 /**/ 3745 646, 3746 /**/ 3747 645, 3748 /**/ 3749 644, 3750 /**/ 3751 643, 3752 /**/ 3753 642, 3754 /**/ 3755 641, 3756 /**/ 3757 640, 3758 /**/ 3759 639, 3760 /**/ 3761 638, 3762 /**/ 3763 637, 3764 /**/ 3765 636, 3766 /**/ 3767 635, 3768 /**/ 3769 634, 3770 /**/ 3771 633, 3772 /**/ 3773 632, 3774 /**/ 3775 631, 3776 /**/ 3777 630, 3778 /**/ 3779 629, 3780 /**/ 3781 628, 3782 /**/ 3783 627, 3784 /**/ 3785 626, 3786 /**/ 3787 625, 3788 /**/ 3789 624, 3790 /**/ 3791 623, 3792 /**/ 3793 622, 3794 /**/ 3795 621, 3796 /**/ 3797 620, 3798 /**/ 3799 619, 3800 /**/ 3801 618, 3802 /**/ 3803 617, 3804 /**/ 3805 616, 3806 /**/ 3807 615, 3808 /**/ 3809 614, 3810 /**/ 3811 613, 3812 /**/ 3813 612, 3814 /**/ 3815 611, 3816 /**/ 3817 610, 3818 /**/ 3819 609, 3820 /**/ 3821 608, 3822 /**/ 3823 607, 3824 /**/ 3825 606, 3826 /**/ 3827 605, 3828 /**/ 3829 604, 3830 /**/ 3831 603, 3832 /**/ 3833 602, 3834 /**/ 3835 601, 3836 /**/ 3837 600, 3838 /**/ 3839 599, 3840 /**/ 3841 598, 3842 /**/ 3843 597, 3844 /**/ 3845 596, 3846 /**/ 3847 595, 3848 /**/ 3849 594, 3850 /**/ 3851 593, 3852 /**/ 3853 592, 3854 /**/ 3855 591, 3856 /**/ 3857 590, 3858 /**/ 3859 589, 3860 /**/ 3861 588, 3862 /**/ 3863 587, 3864 /**/ 3865 586, 3866 /**/ 3867 585, 3868 /**/ 3869 584, 3870 /**/ 3871 583, 3872 /**/ 3873 582, 3874 /**/ 3875 581, 3876 /**/ 3877 580, 3878 /**/ 3879 579, 3880 /**/ 3881 578, 3882 /**/ 3883 577, 3884 /**/ 3885 576, 3886 /**/ 3887 575, 3888 /**/ 3889 574, 3890 /**/ 3891 573, 3892 /**/ 3893 572, 3894 /**/ 3895 571, 3896 /**/ 3897 570, 3898 /**/ 3899 569, 3900 /**/ 3901 568, 3902 /**/ 3903 567, 3904 /**/ 3905 566, 3906 /**/ 3907 565, 3908 /**/ 3909 564, 3910 /**/ 3911 563, 3912 /**/ 3913 562, 3914 /**/ 3915 561, 3916 /**/ 3917 560, 3918 /**/ 3919 559, 3920 /**/ 3921 558, 3922 /**/ 3923 557, 3924 /**/ 3925 556, 3926 /**/ 3927 555, 3928 /**/ 3929 554, 3930 /**/ 3931 553, 3932 /**/ 3933 552, 3934 /**/ 3935 551, 3936 /**/ 3937 550, 3938 /**/ 3939 549, 3940 /**/ 3941 548, 3942 /**/ 3943 547, 3944 /**/ 3945 546, 3946 /**/ 3947 545, 3948 /**/ 3949 544, 3950 /**/ 3951 543, 3952 /**/ 3953 542, 3954 /**/ 3955 541, 3956 /**/ 3957 540, 3958 /**/ 3959 539, 3960 /**/ 3961 538, 3962 /**/ 3963 537, 3964 /**/ 3965 536, 3966 /**/ 3967 535, 3968 /**/ 3969 534, 3970 /**/ 3971 533, 3972 /**/ 3973 532, 3974 /**/ 3975 531, 3976 /**/ 3977 530, 3978 /**/ 3979 529, 3980 /**/ 3981 528, 3982 /**/ 3983 527, 3984 /**/ 3985 526, 3986 /**/ 3987 525, 3988 /**/ 3989 524, 3990 /**/ 3991 523, 3992 /**/ 3993 522, 3994 /**/ 3995 521, 3996 /**/ 3997 520, 3998 /**/ 3999 519, 4000 /**/ 4001 518, 4002 /**/ 4003 517, 4004 /**/ 4005 516, 4006 /**/ 4007 515, 4008 /**/ 4009 514, 4010 /**/ 4011 513, 4012 /**/ 4013 512, 4014 /**/ 4015 511, 4016 /**/ 4017 510, 4018 /**/ 4019 509, 4020 /**/ 4021 508, 4022 /**/ 4023 507, 4024 /**/ 4025 506, 4026 /**/ 4027 505, 4028 /**/ 4029 504, 4030 /**/ 4031 503, 4032 /**/ 4033 502, 4034 /**/ 4035 501, 4036 /**/ 4037 500, 4038 /**/ 4039 499, 4040 /**/ 4041 498, 4042 /**/ 4043 497, 4044 /**/ 4045 496, 4046 /**/ 4047 495, 4048 /**/ 4049 494, 4050 /**/ 4051 493, 4052 /**/ 4053 492, 4054 /**/ 4055 491, 4056 /**/ 4057 490, 4058 /**/ 4059 489, 4060 /**/ 4061 488, 4062 /**/ 4063 487, 4064 /**/ 4065 486, 4066 /**/ 4067 485, 4068 /**/ 4069 484, 4070 /**/ 4071 483, 4072 /**/ 4073 482, 4074 /**/ 4075 481, 4076 /**/ 4077 480, 4078 /**/ 4079 479, 4080 /**/ 4081 478, 4082 /**/ 4083 477, 4084 /**/ 4085 476, 4086 /**/ 4087 475, 4088 /**/ 4089 474, 4090 /**/ 4091 473, 4092 /**/ 4093 472, 4094 /**/ 4095 471, 4096 /**/ 4097 470, 4098 /**/ 4099 469, 4100 /**/ 4101 468, 4102 /**/ 4103 467, 4104 /**/ 4105 466, 4106 /**/ 4107 465, 4108 /**/ 4109 464, 4110 /**/ 4111 463, 4112 /**/ 4113 462, 4114 /**/ 4115 461, 4116 /**/ 4117 460, 4118 /**/ 4119 459, 4120 /**/ 4121 458, 4122 /**/ 4123 457, 4124 /**/ 4125 456, 4126 /**/ 4127 455, 4128 /**/ 4129 454, 4130 /**/ 4131 453, 4132 /**/ 4133 452, 4134 /**/ 4135 451, 4136 /**/ 4137 450, 4138 /**/ 4139 449, 4140 /**/ 4141 448, 4142 /**/ 4143 447, 4144 /**/ 4145 446, 4146 /**/ 4147 445, 4148 /**/ 4149 444, 4150 /**/ 4151 443, 4152 /**/ 4153 442, 4154 /**/ 4155 441, 4156 /**/ 4157 440, 4158 /**/ 4159 439, 4160 /**/ 4161 438, 4162 /**/ 4163 437, 4164 /**/ 4165 436, 4166 /**/ 4167 435, 4168 /**/ 4169 434, 4170 /**/ 4171 433, 4172 /**/ 4173 432, 4174 /**/ 4175 431, 4176 /**/ 4177 430, 4178 /**/ 4179 429, 4180 /**/ 4181 428, 4182 /**/ 4183 427, 4184 /**/ 4185 426, 4186 /**/ 4187 425, 4188 /**/ 4189 424, 4190 /**/ 4191 423, 4192 /**/ 4193 422, 4194 /**/ 4195 421, 4196 /**/ 4197 420, 4198 /**/ 4199 419, 4200 /**/ 4201 418, 4202 /**/ 4203 417, 4204 /**/ 4205 416, 4206 /**/ 4207 415, 4208 /**/ 4209 414, 4210 /**/ 4211 413, 4212 /**/ 4213 412, 4214 /**/ 4215 411, 4216 /**/ 4217 410, 4218 /**/ 4219 409, 4220 /**/ 4221 408, 4222 /**/ 4223 407, 4224 /**/ 4225 406, 4226 /**/ 4227 405, 4228 /**/ 4229 404, 4230 /**/ 4231 403, 4232 /**/ 4233 402, 4234 /**/ 4235 401, 4236 /**/ 4237 400, 4238 /**/ 4239 399, 4240 /**/ 4241 398, 4242 /**/ 4243 397, 4244 /**/ 4245 396, 4246 /**/ 4247 395, 4248 /**/ 4249 394, 4250 /**/ 4251 393, 4252 /**/ 4253 392, 4254 /**/ 4255 391, 4256 /**/ 4257 390, 4258 /**/ 4259 389, 4260 /**/ 4261 388, 4262 /**/ 4263 387, 4264 /**/ 4265 386, 4266 /**/ 4267 385, 4268 /**/ 4269 384, 4270 /**/ 4271 383, 4272 /**/ 4273 382, 4274 /**/ 4275 381, 4276 /**/ 4277 380, 4278 /**/ 4279 379, 4280 /**/ 4281 378, 4282 /**/ 4283 377, 4284 /**/ 4285 376, 4286 /**/ 4287 375, 4288 /**/ 4289 374, 4290 /**/ 4291 373, 4292 /**/ 4293 372, 4294 /**/ 4295 371, 4296 /**/ 4297 370, 4298 /**/ 4299 369, 4300 /**/ 4301 368, 4302 /**/ 4303 367, 4304 /**/ 4305 366, 4306 /**/ 4307 365, 4308 /**/ 4309 364, 4310 /**/ 4311 363, 4312 /**/ 4313 362, 4314 /**/ 4315 361, 4316 /**/ 4317 360, 4318 /**/ 4319 359, 4320 /**/ 4321 358, 4322 /**/ 4323 357, 4324 /**/ 4325 356, 4326 /**/ 4327 355, 4328 /**/ 4329 354, 4330 /**/ 4331 353, 4332 /**/ 4333 352, 4334 /**/ 4335 351, 4336 /**/ 4337 350, 4338 /**/ 4339 349, 4340 /**/ 4341 348, 4342 /**/ 4343 347, 4344 /**/ 4345 346, 4346 /**/ 4347 345, 4348 /**/ 4349 344, 4350 /**/ 4351 343, 4352 /**/ 4353 342, 4354 /**/ 4355 341, 4356 /**/ 4357 340, 4358 /**/ 4359 339, 4360 /**/ 4361 338, 4362 /**/ 4363 337, 4364 /**/ 4365 336, 4366 /**/ 4367 335, 4368 /**/ 4369 334, 4370 /**/ 4371 333, 4372 /**/ 4373 332, 4374 /**/ 4375 331, 4376 /**/ 4377 330, 4378 /**/ 4379 329, 4380 /**/ 4381 328, 4382 /**/ 4383 327, 4384 /**/ 4385 326, 4386 /**/ 4387 325, 4388 /**/ 4389 324, 4390 /**/ 4391 323, 4392 /**/ 4393 322, 4394 /**/ 4395 321, 4396 /**/ 4397 320, 4398 /**/ 4399 319, 4400 /**/ 4401 318, 4402 /**/ 4403 317, 4404 /**/ 4405 316, 4406 /**/ 4407 315, 4408 /**/ 4409 314, 4410 /**/ 4411 313, 4412 /**/ 4413 312, 4414 /**/ 4415 311, 4416 /**/ 4417 310, 4418 /**/ 4419 309, 4420 /**/ 4421 308, 4422 /**/ 4423 307, 4424 /**/ 4425 306, 4426 /**/ 4427 305, 4428 /**/ 4429 304, 4430 /**/ 4431 303, 4432 /**/ 4433 302, 4434 /**/ 4435 301, 4436 /**/ 4437 300, 4438 /**/ 4439 299, 4440 /**/ 4441 298, 4442 /**/ 4443 297, 4444 /**/ 4445 296, 4446 /**/ 4447 295, 4448 /**/ 4449 294, 4450 /**/ 4451 293, 4452 /**/ 4453 292, 4454 /**/ 4455 291, 4456 /**/ 4457 290, 4458 /**/ 4459 289, 4460 /**/ 4461 288, 4462 /**/ 4463 287, 4464 /**/ 4465 286, 4466 /**/ 4467 285, 4468 /**/ 4469 284, 4470 /**/ 4471 283, 4472 /**/ 4473 282, 4474 /**/ 4475 281, 4476 /**/ 4477 280, 4478 /**/ 4479 279, 4480 /**/ 4481 278, 4482 /**/ 4483 277, 4484 /**/ 4485 276, 4486 /**/ 4487 275, 4488 /**/ 4489 274, 4490 /**/ 4491 273, 4492 /**/ 4493 272, 4494 /**/ 4495 271, 4496 /**/ 4497 270, 4498 /**/ 4499 269, 4500 /**/ 4501 268, 4502 /**/ 4503 267, 4504 /**/ 4505 266, 4506 /**/ 4507 265, 4508 /**/ 4509 264, 4510 /**/ 4511 263, 4512 /**/ 4513 262, 4514 /**/ 4515 261, 4516 /**/ 4517 260, 4518 /**/ 4519 259, 4520 /**/ 4521 258, 4522 /**/ 4523 257, 4524 /**/ 4525 256, 4526 /**/ 4527 255, 4528 /**/ 4529 254, 4530 /**/ 4531 253, 4532 /**/ 4533 252, 4534 /**/ 4535 251, 4536 /**/ 4537 250, 4538 /**/ 4539 249, 4540 /**/ 4541 248, 4542 /**/ 4543 247, 4544 /**/ 4545 246, 4546 /**/ 4547 245, 4548 /**/ 4549 244, 4550 /**/ 4551 243, 4552 /**/ 4553 242, 4554 /**/ 4555 241, 4556 /**/ 4557 240, 4558 /**/ 4559 239, 4560 /**/ 4561 238, 4562 /**/ 4563 237, 4564 /**/ 4565 236, 4566 /**/ 4567 235, 4568 /**/ 4569 234, 4570 /**/ 4571 233, 4572 /**/ 4573 232, 4574 /**/ 4575 231, 4576 /**/ 4577 230, 4578 /**/ 4579 229, 4580 /**/ 4581 228, 4582 /**/ 4583 227, 4584 /**/ 4585 226, 4586 /**/ 4587 225, 4588 /**/ 4589 224, 4590 /**/ 4591 223, 4592 /**/ 4593 222, 4594 /**/ 4595 221, 4596 /**/ 4597 220, 4598 /**/ 4599 219, 4600 /**/ 4601 218, 4602 /**/ 4603 217, 4604 /**/ 4605 216, 4606 /**/ 4607 215, 4608 /**/ 4609 214, 4610 /**/ 4611 213, 4612 /**/ 4613 212, 4614 /**/ 4615 211, 4616 /**/ 4617 210, 4618 /**/ 4619 209, 4620 /**/ 4621 208, 4622 /**/ 4623 207, 4624 /**/ 4625 206, 4626 /**/ 4627 205, 4628 /**/ 4629 204, 4630 /**/ 4631 203, 4632 /**/ 4633 202, 4634 /**/ 4635 201, 4636 /**/ 4637 200, 4638 /**/ 4639 199, 4640 /**/ 4641 198, 4642 /**/ 4643 197, 4644 /**/ 4645 196, 4646 /**/ 4647 195, 4648 /**/ 4649 194, 4650 /**/ 4651 193, 4652 /**/ 4653 192, 4654 /**/ 4655 191, 4656 /**/ 4657 190, 4658 /**/ 4659 189, 4660 /**/ 4661 188, 4662 /**/ 4663 187, 4664 /**/ 4665 186, 4666 /**/ 4667 185, 4668 /**/ 4669 184, 4670 /**/ 4671 183, 4672 /**/ 4673 182, 4674 /**/ 4675 181, 4676 /**/ 4677 180, 4678 /**/ 4679 179, 4680 /**/ 4681 178, 4682 /**/ 4683 177, 4684 /**/ 4685 176, 4686 /**/ 4687 175, 4688 /**/ 4689 174, 4690 /**/ 4691 173, 4692 /**/ 4693 172, 4694 /**/ 4695 171, 4696 /**/ 4697 170, 4698 /**/ 4699 169, 4700 /**/ 4701 168, 4702 /**/ 4703 167, 4704 /**/ 4705 166, 4706 /**/ 4707 165, 4708 /**/ 4709 164, 4710 /**/ 4711 163, 4712 /**/ 4713 162, 4714 /**/ 4715 161, 4716 /**/ 4717 160, 4718 /**/ 4719 159, 4720 /**/ 4721 158, 4722 /**/ 4723 157, 4724 /**/ 4725 156, 4726 /**/ 4727 155, 4728 /**/ 4729 154, 4730 /**/ 4731 153, 4732 /**/ 4733 152, 4734 /**/ 4735 151, 4736 /**/ 4737 150, 4738 /**/ 4739 149, 4740 /**/ 4741 148, 4742 /**/ 4743 147, 4744 /**/ 4745 146, 4746 /**/ 4747 145, 4748 /**/ 4749 144, 4750 /**/ 4751 143, 4752 /**/ 4753 142, 4754 /**/ 4755 141, 4756 /**/ 4757 140, 4758 /**/ 4759 139, 4760 /**/ 4761 138, 4762 /**/ 4763 137, 4764 /**/ 4765 136, 4766 /**/ 4767 135, 4768 /**/ 4769 134, 4770 /**/ 4771 133, 4772 /**/ 4773 132, 4774 /**/ 4775 131, 4776 /**/ 4777 130, 4778 /**/ 4779 129, 4780 /**/ 4781 128, 4782 /**/ 4783 127, 4784 /**/ 4785 126, 4786 /**/ 4787 125, 4788 /**/ 4789 124, 4790 /**/ 4791 123, 4792 /**/ 4793 122, 4794 /**/ 4795 121, 4796 /**/ 4797 120, 4798 /**/ 4799 119, 4800 /**/ 4801 118, 4802 /**/ 4803 117, 4804 /**/ 4805 116, 4806 /**/ 4807 115, 4808 /**/ 4809 114, 4810 /**/ 4811 113, 4812 /**/ 4813 112, 4814 /**/ 4815 111, 4816 /**/ 4817 110, 4818 /**/ 4819 109, 4820 /**/ 4821 108, 4822 /**/ 4823 107, 4824 /**/ 4825 106, 4826 /**/ 4827 105, 4828 /**/ 4829 104, 4830 /**/ 4831 103, 4832 /**/ 4833 102, 4834 /**/ 4835 101, 4836 /**/ 4837 100, 4838 /**/ 4839 99, 4840 /**/ 4841 98, 4842 /**/ 4843 97, 4844 /**/ 4845 96, 4846 /**/ 4847 95, 4848 /**/ 4849 94, 4850 /**/ 4851 93, 4852 /**/ 4853 92, 4854 /**/ 4855 91, 4856 /**/ 4857 90, 4858 /**/ 4859 89, 4860 /**/ 4861 88, 4862 /**/ 4863 87, 4864 /**/ 4865 86, 4866 /**/ 4867 85, 4868 /**/ 4869 84, 4870 /**/ 4871 83, 4872 /**/ 4873 82, 4874 /**/ 4875 81, 4876 /**/ 4877 80, 4878 /**/ 4879 79, 4880 /**/ 4881 78, 4882 /**/ 4883 77, 4884 /**/ 4885 76, 4886 /**/ 4887 75, 4888 /**/ 4889 74, 4890 /**/ 4891 73, 4892 /**/ 4893 72, 4894 /**/ 4895 71, 4896 /**/ 4897 70, 4898 /**/ 4899 69, 4900 /**/ 4901 68, 4902 /**/ 4903 67, 4904 /**/ 4905 66, 4906 /**/ 4907 65, 4908 /**/ 4909 64, 4910 /**/ 4911 63, 4912 /**/ 4913 62, 4914 /**/ 4915 61, 4916 /**/ 4917 60, 4918 /**/ 4919 59, 4920 /**/ 4921 58, 4922 /**/ 4923 57, 4924 /**/ 4925 56, 4926 /**/ 4927 55, 4928 /**/ 4929 54, 4930 /**/ 4931 53, 4932 /**/ 4933 52, 4934 /**/ 4935 51, 4936 /**/ 4937 50, 4938 /**/ 4939 49, 4940 /**/ 4941 48, 4942 /**/ 4943 47, 4944 /**/ 4945 46, 4946 /**/ 4947 45, 4948 /**/ 4949 44, 4950 /**/ 4951 43, 4952 /**/ 4953 42, 4954 /**/ 4955 41, 4956 /**/ 4957 40, 4958 /**/ 4959 39, 4960 /**/ 4961 38, 4962 /**/ 4963 37, 4964 /**/ 4965 36, 4966 /**/ 4967 35, 4968 /**/ 4969 34, 4970 /**/ 4971 33, 4972 /**/ 4973 32, 4974 /**/ 4975 31, 4976 /**/ 4977 30, 4978 /**/ 4979 29, 4980 /**/ 4981 28, 4982 /**/ 4983 27, 4984 /**/ 4985 26, 4986 /**/ 4987 25, 4988 /**/ 4989 24, 4990 /**/ 4991 23, 4992 /**/ 4993 22, 4994 /**/ 4995 21, 4996 /**/ 4997 20, 4998 /**/ 4999 19, 5000 /**/ 5001 18, 5002 /**/ 5003 17, 5004 /**/ 5005 16, 5006 /**/ 5007 15, 5008 /**/ 5009 14, 5010 /**/ 5011 13, 5012 /**/ 5013 12, 5014 /**/ 5015 11, 5016 /**/ 5017 10, 5018 /**/ 5019 9, 5020 /**/ 5021 8, 5022 /**/ 5023 7, 5024 /**/ 5025 6, 5026 /**/ 5027 5, 5028 /**/ 5029 4, 5030 /**/ 5031 3, 5032 /**/ 5033 2, 5034 /**/ 5035 1, 5036 /**/ 5037 0 5038 }; 5039 5040 /* 5041 * Place to put a short description when adding a feature with a patch. 5042 * Keep it short, e.g.,: "relative numbers", "persistent undo". 5043 * Also add a comment marker to separate the lines. 5044 * See the official Vim patches for the diff format: It must use a context of 5045 * one line only. Create it by hand or use "diff -C2" and edit the patch. 5046 */ 5047 static char *(extra_patches[]) = 5048 { /* Add your patch description below this line */ 5049 /**/ 5050 NULL 5051 }; 5052 5053 int 5054 highest_patch(void) 5055 { 5056 int i; 5057 int h = 0; 5058 5059 for (i = 0; included_patches[i] != 0; ++i) 5060 if (included_patches[i] > h) 5061 h = included_patches[i]; 5062 return h; 5063 } 5064 5065 #if defined(FEAT_EVAL) || defined(PROTO) 5066 /* 5067 * Return TRUE if patch "n" has been included. 5068 */ 5069 int 5070 has_patch(int n) 5071 { 5072 int i; 5073 5074 for (i = 0; included_patches[i] != 0; ++i) 5075 if (included_patches[i] == n) 5076 return TRUE; 5077 return FALSE; 5078 } 5079 #endif 5080 5081 void 5082 ex_version(exarg_T *eap) 5083 { 5084 /* 5085 * Ignore a ":version 9.99" command. 5086 */ 5087 if (*eap->arg == NUL) 5088 { 5089 msg_putchar('\n'); 5090 list_version(); 5091 } 5092 } 5093 5094 /* 5095 * List all features aligned in columns, dictionary style. 5096 */ 5097 static void 5098 list_features(void) 5099 { 5100 int i; 5101 int ncol; 5102 int nrow; 5103 int nfeat = 0; 5104 int width = 0; 5105 5106 /* Find the length of the longest feature name, use that + 1 as the column 5107 * width */ 5108 for (i = 0; features[i] != NULL; ++i) 5109 { 5110 int l = (int)STRLEN(features[i]); 5111 5112 if (l > width) 5113 width = l; 5114 ++nfeat; 5115 } 5116 width += 1; 5117 5118 if (Columns < width) 5119 { 5120 /* Not enough screen columns - show one per line */ 5121 for (i = 0; features[i] != NULL; ++i) 5122 { 5123 version_msg(features[i]); 5124 if (msg_col > 0) 5125 msg_putchar('\n'); 5126 } 5127 return; 5128 } 5129 5130 /* The rightmost column doesn't need a separator. 5131 * Sacrifice it to fit in one more column if possible. */ 5132 ncol = (int) (Columns + 1) / width; 5133 nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); 5134 5135 /* i counts columns then rows. idx counts rows then columns. */ 5136 for (i = 0; !got_int && i < nrow * ncol; ++i) 5137 { 5138 int idx = (i / ncol) + (i % ncol) * nrow; 5139 5140 if (idx < nfeat) 5141 { 5142 int last_col = (i + 1) % ncol == 0; 5143 5144 msg_puts((char_u *)features[idx]); 5145 if (last_col) 5146 { 5147 if (msg_col > 0) 5148 msg_putchar('\n'); 5149 } 5150 else 5151 { 5152 while (msg_col % width) 5153 msg_putchar(' '); 5154 } 5155 } 5156 else 5157 { 5158 if (msg_col > 0) 5159 msg_putchar('\n'); 5160 } 5161 } 5162 } 5163 5164 void 5165 list_version(void) 5166 { 5167 int i; 5168 int first; 5169 char *s = ""; 5170 5171 /* 5172 * When adding features here, don't forget to update the list of 5173 * internal variables in eval.c! 5174 */ 5175 MSG(longVersion); 5176 #ifdef WIN3264 5177 # ifdef FEAT_GUI_W32 5178 # if defined(_MSC_VER) && (_MSC_VER <= 1010) 5179 /* Only MS VC 4.1 and earlier can do Win32s */ 5180 MSG_PUTS(_("\nMS-Windows 16/32-bit GUI version")); 5181 # else 5182 # ifdef _WIN64 5183 MSG_PUTS(_("\nMS-Windows 64-bit GUI version")); 5184 # else 5185 MSG_PUTS(_("\nMS-Windows 32-bit GUI version")); 5186 # endif 5187 # endif 5188 if (gui_is_win32s()) 5189 MSG_PUTS(_(" in Win32s mode")); 5190 # ifdef FEAT_OLE 5191 MSG_PUTS(_(" with OLE support")); 5192 # endif 5193 # else 5194 # ifdef _WIN64 5195 MSG_PUTS(_("\nMS-Windows 64-bit console version")); 5196 # else 5197 MSG_PUTS(_("\nMS-Windows 32-bit console version")); 5198 # endif 5199 # endif 5200 #endif 5201 #ifdef MACOS 5202 # ifdef MACOS_X 5203 # ifdef MACOS_X_UNIX 5204 MSG_PUTS(_("\nMacOS X (unix) version")); 5205 # else 5206 MSG_PUTS(_("\nMacOS X version")); 5207 # endif 5208 #else 5209 MSG_PUTS(_("\nMacOS version")); 5210 # endif 5211 #endif 5212 5213 #ifdef VMS 5214 MSG_PUTS(_("\nOpenVMS version")); 5215 # ifdef HAVE_PATHDEF 5216 if (*compiled_arch != NUL) 5217 { 5218 MSG_PUTS(" - "); 5219 MSG_PUTS(compiled_arch); 5220 } 5221 # endif 5222 5223 #endif 5224 5225 /* Print the list of patch numbers if there is at least one. */ 5226 /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */ 5227 if (included_patches[0] != 0) 5228 { 5229 MSG_PUTS(_("\nIncluded patches: ")); 5230 first = -1; 5231 /* find last one */ 5232 for (i = 0; included_patches[i] != 0; ++i) 5233 ; 5234 while (--i >= 0) 5235 { 5236 if (first < 0) 5237 first = included_patches[i]; 5238 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) 5239 { 5240 MSG_PUTS(s); 5241 s = ", "; 5242 msg_outnum((long)first); 5243 if (first != included_patches[i]) 5244 { 5245 MSG_PUTS("-"); 5246 msg_outnum((long)included_patches[i]); 5247 } 5248 first = -1; 5249 } 5250 } 5251 } 5252 5253 /* Print the list of extra patch descriptions if there is at least one. */ 5254 if (extra_patches[0] != NULL) 5255 { 5256 MSG_PUTS(_("\nExtra patches: ")); 5257 s = ""; 5258 for (i = 0; extra_patches[i] != NULL; ++i) 5259 { 5260 MSG_PUTS(s); 5261 s = ", "; 5262 MSG_PUTS(extra_patches[i]); 5263 } 5264 } 5265 5266 #ifdef MODIFIED_BY 5267 MSG_PUTS("\n"); 5268 MSG_PUTS(_("Modified by ")); 5269 MSG_PUTS(MODIFIED_BY); 5270 #endif 5271 5272 #ifdef HAVE_PATHDEF 5273 if (*compiled_user != NUL || *compiled_sys != NUL) 5274 { 5275 MSG_PUTS(_("\nCompiled ")); 5276 if (*compiled_user != NUL) 5277 { 5278 MSG_PUTS(_("by ")); 5279 MSG_PUTS(compiled_user); 5280 } 5281 if (*compiled_sys != NUL) 5282 { 5283 MSG_PUTS("@"); 5284 MSG_PUTS(compiled_sys); 5285 } 5286 } 5287 #endif 5288 5289 #ifdef FEAT_HUGE 5290 MSG_PUTS(_("\nHuge version ")); 5291 #else 5292 # ifdef FEAT_BIG 5293 MSG_PUTS(_("\nBig version ")); 5294 # else 5295 # ifdef FEAT_NORMAL 5296 MSG_PUTS(_("\nNormal version ")); 5297 # else 5298 # ifdef FEAT_SMALL 5299 MSG_PUTS(_("\nSmall version ")); 5300 # else 5301 MSG_PUTS(_("\nTiny version ")); 5302 # endif 5303 # endif 5304 # endif 5305 #endif 5306 #ifndef FEAT_GUI 5307 MSG_PUTS(_("without GUI.")); 5308 #else 5309 # ifdef FEAT_GUI_GTK 5310 # ifdef USE_GTK3 5311 MSG_PUTS(_("with GTK3 GUI.")); 5312 # else 5313 # ifdef FEAT_GUI_GNOME 5314 MSG_PUTS(_("with GTK2-GNOME GUI.")); 5315 # else 5316 MSG_PUTS(_("with GTK2 GUI.")); 5317 # endif 5318 # endif 5319 # else 5320 # ifdef FEAT_GUI_MOTIF 5321 MSG_PUTS(_("with X11-Motif GUI.")); 5322 # else 5323 # ifdef FEAT_GUI_ATHENA 5324 # ifdef FEAT_GUI_NEXTAW 5325 MSG_PUTS(_("with X11-neXtaw GUI.")); 5326 # else 5327 MSG_PUTS(_("with X11-Athena GUI.")); 5328 # endif 5329 # else 5330 # ifdef FEAT_GUI_PHOTON 5331 MSG_PUTS(_("with Photon GUI.")); 5332 # else 5333 # if defined(MSWIN) 5334 MSG_PUTS(_("with GUI.")); 5335 # else 5336 # if defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON 5337 MSG_PUTS(_("with Carbon GUI.")); 5338 # else 5339 # if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX 5340 MSG_PUTS(_("with Cocoa GUI.")); 5341 # else 5342 # if defined(MACOS) 5343 MSG_PUTS(_("with (classic) GUI.")); 5344 # endif 5345 # endif 5346 # endif 5347 # endif 5348 # endif 5349 # endif 5350 # endif 5351 # endif 5352 #endif 5353 version_msg(_(" Features included (+) or not (-):\n")); 5354 5355 list_features(); 5356 5357 #ifdef SYS_VIMRC_FILE 5358 version_msg(_(" system vimrc file: \"")); 5359 version_msg(SYS_VIMRC_FILE); 5360 version_msg("\"\n"); 5361 #endif 5362 #ifdef USR_VIMRC_FILE 5363 version_msg(_(" user vimrc file: \"")); 5364 version_msg(USR_VIMRC_FILE); 5365 version_msg("\"\n"); 5366 #endif 5367 #ifdef USR_VIMRC_FILE2 5368 version_msg(_(" 2nd user vimrc file: \"")); 5369 version_msg(USR_VIMRC_FILE2); 5370 version_msg("\"\n"); 5371 #endif 5372 #ifdef USR_VIMRC_FILE3 5373 version_msg(_(" 3rd user vimrc file: \"")); 5374 version_msg(USR_VIMRC_FILE3); 5375 version_msg("\"\n"); 5376 #endif 5377 #ifdef USR_EXRC_FILE 5378 version_msg(_(" user exrc file: \"")); 5379 version_msg(USR_EXRC_FILE); 5380 version_msg("\"\n"); 5381 #endif 5382 #ifdef USR_EXRC_FILE2 5383 version_msg(_(" 2nd user exrc file: \"")); 5384 version_msg(USR_EXRC_FILE2); 5385 version_msg("\"\n"); 5386 #endif 5387 #ifdef FEAT_GUI 5388 # ifdef SYS_GVIMRC_FILE 5389 version_msg(_(" system gvimrc file: \"")); 5390 version_msg(SYS_GVIMRC_FILE); 5391 version_msg("\"\n"); 5392 # endif 5393 version_msg(_(" user gvimrc file: \"")); 5394 version_msg(USR_GVIMRC_FILE); 5395 version_msg("\"\n"); 5396 # ifdef USR_GVIMRC_FILE2 5397 version_msg(_("2nd user gvimrc file: \"")); 5398 version_msg(USR_GVIMRC_FILE2); 5399 version_msg("\"\n"); 5400 # endif 5401 # ifdef USR_GVIMRC_FILE3 5402 version_msg(_("3rd user gvimrc file: \"")); 5403 version_msg(USR_GVIMRC_FILE3); 5404 version_msg("\"\n"); 5405 # endif 5406 #endif 5407 version_msg(_(" defaults file: \"")); 5408 version_msg(VIM_DEFAULTS_FILE); 5409 version_msg("\"\n"); 5410 #ifdef FEAT_GUI 5411 # ifdef SYS_MENU_FILE 5412 version_msg(_(" system menu file: \"")); 5413 version_msg(SYS_MENU_FILE); 5414 version_msg("\"\n"); 5415 # endif 5416 #endif 5417 #ifdef HAVE_PATHDEF 5418 if (*default_vim_dir != NUL) 5419 { 5420 version_msg(_(" fall-back for $VIM: \"")); 5421 version_msg((char *)default_vim_dir); 5422 version_msg("\"\n"); 5423 } 5424 if (*default_vimruntime_dir != NUL) 5425 { 5426 version_msg(_(" f-b for $VIMRUNTIME: \"")); 5427 version_msg((char *)default_vimruntime_dir); 5428 version_msg("\"\n"); 5429 } 5430 version_msg(_("Compilation: ")); 5431 version_msg((char *)all_cflags); 5432 version_msg("\n"); 5433 #ifdef VMS 5434 if (*compiler_version != NUL) 5435 { 5436 version_msg(_("Compiler: ")); 5437 version_msg((char *)compiler_version); 5438 version_msg("\n"); 5439 } 5440 #endif 5441 version_msg(_("Linking: ")); 5442 version_msg((char *)all_lflags); 5443 #endif 5444 #ifdef DEBUG 5445 version_msg("\n"); 5446 version_msg(_(" DEBUG BUILD")); 5447 #endif 5448 } 5449 5450 /* 5451 * Output a string for the version message. If it's going to wrap, output a 5452 * newline, unless the message is too long to fit on the screen anyway. 5453 */ 5454 static void 5455 version_msg(char *s) 5456 { 5457 int len = (int)STRLEN(s); 5458 5459 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns 5460 && *s != '\n') 5461 msg_putchar('\n'); 5462 if (!got_int) 5463 MSG_PUTS(s); 5464 } 5465 5466 static void do_intro_line(int row, char_u *mesg, int add_version, int attr); 5467 5468 /* 5469 * Show the intro message when not editing a file. 5470 */ 5471 void 5472 maybe_intro_message(void) 5473 { 5474 if (bufempty() 5475 && curbuf->b_fname == NULL 5476 #ifdef FEAT_WINDOWS 5477 && firstwin->w_next == NULL 5478 #endif 5479 && vim_strchr(p_shm, SHM_INTRO) == NULL) 5480 intro_message(FALSE); 5481 } 5482 5483 /* 5484 * Give an introductory message about Vim. 5485 * Only used when starting Vim on an empty file, without a file name. 5486 * Or with the ":intro" command (for Sven :-). 5487 */ 5488 void 5489 intro_message( 5490 int colon) /* TRUE for ":intro" */ 5491 { 5492 int i; 5493 int row; 5494 int blanklines; 5495 int sponsor; 5496 char *p; 5497 static char *(lines[]) = 5498 { 5499 N_("VIM - Vi IMproved"), 5500 "", 5501 N_("version "), 5502 N_("by Bram Moolenaar et al."), 5503 #ifdef MODIFIED_BY 5504 " ", 5505 #endif 5506 N_("Vim is open source and freely distributable"), 5507 "", 5508 N_("Help poor children in Uganda!"), 5509 N_("type :help iccf<Enter> for information "), 5510 "", 5511 N_("type :q<Enter> to exit "), 5512 N_("type :help<Enter> or <F1> for on-line help"), 5513 N_("type :help version7<Enter> for version info"), 5514 NULL, 5515 "", 5516 N_("Running in Vi compatible mode"), 5517 N_("type :set nocp<Enter> for Vim defaults"), 5518 N_("type :help cp-default<Enter> for info on this"), 5519 }; 5520 #ifdef FEAT_GUI 5521 static char *(gui_lines[]) = 5522 { 5523 NULL, 5524 NULL, 5525 NULL, 5526 NULL, 5527 #ifdef MODIFIED_BY 5528 NULL, 5529 #endif 5530 NULL, 5531 NULL, 5532 NULL, 5533 N_("menu Help->Orphans for information "), 5534 NULL, 5535 N_("Running modeless, typed text is inserted"), 5536 N_("menu Edit->Global Settings->Toggle Insert Mode "), 5537 N_(" for two modes "), 5538 NULL, 5539 NULL, 5540 NULL, 5541 N_("menu Edit->Global Settings->Toggle Vi Compatible"), 5542 N_(" for Vim defaults "), 5543 }; 5544 #endif 5545 5546 /* blanklines = screen height - # message lines */ 5547 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); 5548 if (!p_cp) 5549 blanklines += 4; /* add 4 for not showing "Vi compatible" message */ 5550 #if defined(WIN3264) && !defined(FEAT_GUI_W32) 5551 if (mch_windows95()) 5552 blanklines -= 3; /* subtract 3 for showing "Windows 95" message */ 5553 #endif 5554 5555 #ifdef FEAT_WINDOWS 5556 /* Don't overwrite a statusline. Depends on 'cmdheight'. */ 5557 if (p_ls > 1) 5558 blanklines -= Rows - topframe->fr_height; 5559 #endif 5560 if (blanklines < 0) 5561 blanklines = 0; 5562 5563 /* Show the sponsor and register message one out of four times, the Uganda 5564 * message two out of four times. */ 5565 sponsor = (int)time(NULL); 5566 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); 5567 5568 /* start displaying the message lines after half of the blank lines */ 5569 row = blanklines / 2; 5570 if ((row >= 2 && Columns >= 50) || colon) 5571 { 5572 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) 5573 { 5574 p = lines[i]; 5575 #ifdef FEAT_GUI 5576 if (p_im && gui.in_use && gui_lines[i] != NULL) 5577 p = gui_lines[i]; 5578 #endif 5579 if (p == NULL) 5580 { 5581 if (!p_cp) 5582 break; 5583 continue; 5584 } 5585 if (sponsor != 0) 5586 { 5587 if (strstr(p, "children") != NULL) 5588 p = sponsor < 0 5589 ? N_("Sponsor Vim development!") 5590 : N_("Become a registered Vim user!"); 5591 else if (strstr(p, "iccf") != NULL) 5592 p = sponsor < 0 5593 ? N_("type :help sponsor<Enter> for information ") 5594 : N_("type :help register<Enter> for information "); 5595 else if (strstr(p, "Orphans") != NULL) 5596 p = N_("menu Help->Sponsor/Register for information "); 5597 } 5598 if (*p != NUL) 5599 do_intro_line(row, (char_u *)_(p), i == 2, 0); 5600 ++row; 5601 } 5602 #if defined(WIN3264) && !defined(FEAT_GUI_W32) 5603 if (mch_windows95()) 5604 { 5605 do_intro_line(++row, 5606 (char_u *)_("WARNING: Windows 95/98/ME detected"), 5607 FALSE, hl_attr(HLF_E)); 5608 do_intro_line(++row, 5609 (char_u *)_("type :help windows95<Enter> for info on this"), 5610 FALSE, 0); 5611 } 5612 #endif 5613 } 5614 5615 /* Make the wait-return message appear just below the text. */ 5616 if (colon) 5617 msg_row = row; 5618 } 5619 5620 static void 5621 do_intro_line( 5622 int row, 5623 char_u *mesg, 5624 int add_version, 5625 int attr) 5626 { 5627 char_u vers[20]; 5628 int col; 5629 char_u *p; 5630 int l; 5631 int clen; 5632 #ifdef MODIFIED_BY 5633 # define MODBY_LEN 150 5634 char_u modby[MODBY_LEN]; 5635 5636 if (*mesg == ' ') 5637 { 5638 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); 5639 l = (int)STRLEN(modby); 5640 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); 5641 mesg = modby; 5642 } 5643 #endif 5644 5645 /* Center the message horizontally. */ 5646 col = vim_strsize(mesg); 5647 if (add_version) 5648 { 5649 STRCPY(vers, mediumVersion); 5650 if (highest_patch()) 5651 { 5652 /* Check for 9.9x or 9.9xx, alpha/beta version */ 5653 if (isalpha((int)vers[3])) 5654 { 5655 int len = (isalpha((int)vers[4])) ? 5 : 4; 5656 sprintf((char *)vers + len, ".%d%s", highest_patch(), 5657 mediumVersion + len); 5658 } 5659 else 5660 sprintf((char *)vers + 3, ".%d", highest_patch()); 5661 } 5662 col += (int)STRLEN(vers); 5663 } 5664 col = (Columns - col) / 2; 5665 if (col < 0) 5666 col = 0; 5667 5668 /* Split up in parts to highlight <> items differently. */ 5669 for (p = mesg; *p != NUL; p += l) 5670 { 5671 clen = 0; 5672 for (l = 0; p[l] != NUL 5673 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) 5674 { 5675 #ifdef FEAT_MBYTE 5676 if (has_mbyte) 5677 { 5678 clen += ptr2cells(p + l); 5679 l += (*mb_ptr2len)(p + l) - 1; 5680 } 5681 else 5682 #endif 5683 clen += byte2cells(p[l]); 5684 } 5685 screen_puts_len(p, l, row, col, *p == '<' ? hl_attr(HLF_8) : attr); 5686 col += clen; 5687 } 5688 5689 /* Add the version number to the version line. */ 5690 if (add_version) 5691 screen_puts(vers, row, col, 0); 5692 } 5693 5694 /* 5695 * ":intro": clear screen, display intro screen and wait for return. 5696 */ 5697 void 5698 ex_intro(exarg_T *eap UNUSED) 5699 { 5700 screenclear(); 5701 intro_message(TRUE); 5702 wait_return(TRUE); 5703 } 5704