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