*version9.txt*  For Vim version 9.0.  Last change: 2022 Jun 28


		  VIM REFERENCE MANUAL    by Bram Moolenaar


				*vim-9.0* *vim-9* *version-9.0* *version9.0*
Welcome to Vim 9!  Several years have passed since the previous release.
A large number of bugs have been fixed, many nice features have been added
and the Vim9 script syntax is here!  This file mentions all the new things and
changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be
found here: |vim-8.2|.

Use this command to see the full version and features information of the Vim
program you are using: >
	:version

NEW FEATURES					|new-9|
   Vim script enhancements			|new-vim-script-9|
   Command line completion in a popup menu	|new-popup-compl|
   Updated colorschemes				|new-colorschemes-9|
   Various new items				|new-items-9|

INCOMPATIBLE CHANGES				|incompatible-9|

IMPROVEMENTS					|improvements-9|

COMPILE TIME CHANGES				|compile-changes-9|

PATCHES						|patches-9|


See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
|version8.txt| for differences between Vim versions.

You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/vimlog/

							*Sven-Guckes*
Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
when the release was being prepared.  Sven was a long time supporter of Vim.
He registered the vim.org domain and created the first Vim website.  We will
remember him!

==============================================================================
NEW FEATURES						*new-9*

First an overview of the more interesting new features.  A comprehensive list
is below.


Vim9 script ~
							*new-vim-script-9*
The Vim script language has been changed step by step over many years,
preserving backwards compatibility.  Several choices made in the early days
got in the way of making it work better.  At the same time, Vim script is
being used much more often, since there are so many plugins being used.

Vim9 script provides a syntax that is much more similar to other languages.
In other words: "less weird".  Compiled functions are introduced which allow
for a large speed improvement.  You can expect around ten times faster
execution, or even more.  The price to pay is that Vim9 script is not
backwards compatible.  But don't worry, you can still use your old scripts,
the new script language is added, it does not replace the legacy script.

Information about Vim9 script can be found in the |Vim9| help file.


Command line completion in a popup menu ~
							*new-popup-compl*
Before there was the 'wildmenu' option, which uses the space of one line above
the statusline to show matches.  Only a few matches fit there.

Now a popup menu can be used by setting "wildoptions' to "pum".  This allows
for showing many more matches.  This requires redrawing more of the display,
but since computers are fast enough that is not a problem.


Updated colorschemes ~
							*new-colorschemes-9*
Colorschemes from https://github.com/vim/colorschemes have been included.
They were made to work consistently across many types of terminals.  Although
generally an improvement, a lot of personal preference is involved.  You can
always get the old version if you prefer it, look here:
https://github.com/vim/colorschemes/blob/master/legacy_colors/


Various new items ~
							*new-items-9*
Options: ~

'autoshelldir'		change directory to the shell's current directory
'cdhome'		change directory to the home directory by ":cd"
'cinscopedecls'		words that are recognized by 'cino-g'
'guiligatures'		GTK GUI: ASCII characters that can form shapes
'mousemoveevent'	report mouse moves with <MouseMove>
'quickfixtextfunc'	function for the text in the quickfix window
'spelloptions'		options for spell checking
'thesaurusfunc'		function to be used for thesaurus completion
'xtermcodes'		request terminal codes from an xterm


Ex commands: ~

|:abstract|		(reserved for future use)
|:argdedupe|		remove duplicates from the argument list
|:balt|			like ":badd" but also set the alternate file
|:class|		(reserved for future use)
|:def|			define a Vim9 user function
|:defcompile|		compile Vim9 user functions in current script
|:disassemble|		disassemble Vim9 user function
|:echoconsole|		like :echomsg but write to stdout
|:endinterface|		(reserved for future use)
|:endclass|		(reserved for future use)
|:enddef|		end of a user function started with :def
|:endenum|		(reserved for future use)
|:enum|			(reserved for future use)
|:eval|			evaluate an expression and discard the result
|:export|		Vim9: export an item from a script
|:final|		declare an immutable variable in Vim9
|:import|		Vim9: import an item from another script
|:interface|		(reserved for future use)
|:static|		(reserved for future use)
|:type|			(reserved for future use)
|:var|			variable declaration in Vim9
|:vim9script|		indicates Vim9 script file


Ex command modifiers: ~

|:legacy|		make following command use legacy script syntax
|:vim9cmd|		make following command use Vim9 script syntax


New and extended functions: ~

|assert_nobeep()|	assert that a command does not cause a beep
|autocmd_add()|		add a list of autocmds and groups
|autocmd_delete()|	delete a list of autocmds and groups
|autocmd_get()|		return a list of autocmds
|blob2list()|		get a list of numbers from a blob
|charclass()|		class of a character
|charcol()|		character number of the cursor or a mark
|charidx()|		character index of a byte in a string
|digraph_get()|		get digraph
|digraph_getlist()|	get all digraphs
|digraph_set()|		register digraph
|digraph_setlist()|	register multiple digraphs
|echoraw()|		output characters as-is
|exists_compiled()|	like exists() but check at compile time
|extendnew()|		make a new Dictionary and append items
|flatten()|		flatten a List
|flattennew()|		flatten a copy of a List
|fullcommand()|		get full command name
|getcharpos()|		get character position of cursor, mark, etc.
|getcharstr()|		get a character from the user as a string
|getcmdcompltype()|	return current cmdline completion type
|getcmdscreenpos()|	return the current cursor position in the cmdline
|getcursorcharpos()|	get character position of the cursor
|getmarklist()|		list of global/local marks
|getreginfo()|		get information about a register
|gettext()|		lookup message translation
|hlget()|		get highlight group attributes
|hlset()|		set highlight group attributes
|isabsolutepath()|	check if a path is absolute
|list2blob()|		get a blob from a list of numbers
|maplist()|		list of all mappings, a dict for each
|mapnew()|		make a new List with changed items
|mapset()|		restore a mapping
|matchfuzzy()|		fuzzy matches a string in a list of strings
|matchfuzzypos()|	fuzzy matches a string in a list of strings
|menu_info()|		get information about a menu item
|popup_list()|		get list of all popup window IDs
|prompt_getprompt()|	get the effective prompt text for a buffer
|prop_add_list()|	attach a property at multiple positions
|prop_find()|		search for a property
|readblob()|		read a file into a Blob
|readdirex()|		get a List of file information in a directory
|reduce()|		reduce a List to a value
|searchcount()|		get number of matches before/after the cursor
|setcellwidths()|	set character cell width overrides
|setcharpos()|		set character position of cursor, mark, etc.
|setcursorcharpos()|	set character position of the cursor
|slice()|		take a slice of a List
|strcharlen()|		length of a string in characters
|terminalprops()|	properties of the terminal
|test_gui_event()|	generate a GUI event for testing
|test_null_function()|	return a null Funcref
|test_srand_seed()|	set the seed value for srand()
|test_unknown()|	return a value with unknown type
|test_void()|		return a value with void type
|typename()|		type of a variable as text
|virtcol2col()|		byte index of a character on screen
|win_gettype()|		get type of window
|win_move_separator()|	move window vertical separator
|win_move_statusline()|	move window status line
|windowsversion()|	get MS-Windows version


New Vim variables: ~

|v:numbermax|		maximum value of a number
|v:numbermin|		minimum value of a number (negative)
|v:numbersize|		number of bits in a Number
|v:collate|		current locale setting for collation order
|v:exiting|		vim exit code
|v:colornames|		dictionary that maps color names to hex color strings
|v:sizeofint|		number of bytes in an int
|v:sizeoflong|		number of bytes in a long
|v:sizeofpointer|	number of bytes in a pointer
|v:maxcol|		maximum line length


New autocommand events: ~

|CompleteDonePre|	after Insert mode completion done, before clearing info
|DirChangedPre|		before the working directory will change
|InsertLeavePre|	just before leaving Insert mode
|ModeChanged|		after changing the mode
|SigUSR1|		after the SIGUSR1 signal has been detected
|WinClosed|		after closing a window
|WinScrolled|		after scrolling or resizing a window
|VimSuspend|		when suspending Vim
|VimResume|		when Vim is resumed after being suspended


New operators: ~

|>>|			bitwise right shift
|<<|			bitwise left shift
|??|			falsy operator

New runtime files: ~

Too many to list here.

==============================================================================
INCOMPATIBLE CHANGES				*incompatible-9*

There is only one change that is incompatible with previous releases:

- Lua arrays are now one-based, they used to be zero-based.

Note that when using |Vim9| script several things work differently, see
|vim9-differences|.

==============================================================================
IMPROVEMENTS						*improvements-9*

Various small and useful improvements have been made since Vim 8.2, here is a
summary.

Many memory leaks, invalid memory accesses and crashes have been fixed.
See the list of patches below: |bug-fixes-9|.

Support for Vim expression evaluation in a string. |interp-string|
Support for evaluating Vim expressions in a heredoc. |:let-heredoc|

Support for fuzzy matching:
- a string in a List of strings. |fuzzy-matching|
- completion support for command line completion using 'wildoptions'
- for |:vimgrep|.

Added support for the |Haiku| OS.

Support for "lsp" channel mode to simplify LSP server RPC communication
|language-server-protocol|.  Support for using a Unix domain socket with a
|channel|.  IPv6 support in channels |channel-address|.

Support for sourcing lines from the current buffer. |:source-range|

Terminal window improvements:
- Support for opening a terminal in a popup window. |popup-terminal|
- Allow setting underline color in terminal.
- Detect focus events in terminal (|FocusGained| and |FocusLost|).
- Add bell support for the terminal window. ('belloff')
- Support mouse left-right scrolling in a terminal window.

Support for stopping profiling a Vim script: `:profile stop` and dumping the
report to a file: `:profile dump` .  |:profile|

Completion improvements:
- Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
  |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
- Support using any Vim type for user_data with the completion functions
  (|complete-items|).
- Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
- Add the "cmdline" option to |getcompletion()| to return the command line
  arguments.

Support for setting the 'foldtext', 'completefunc', 'omnifunc',
'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
'imactivatefunc' and 'imstatusfunc' options to a function reference or a
lambda function or a script-local function.

Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.

Improvements in 'fillchars':
- Support for configuring the character used to mark the beginning of a fold,
  show a closed fold and show a fold separator using "foldopen", "foldclose"
  and "foldsep" respectively in 'fillchars'.
- Support for configuring the character displayed in non existing lines using
  "eob" in 'fillchars'.
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
  "foldclose" and "foldsep" items in the 'fillchars' option.

Support for the XChaCha20 encryption method. 'cryptmethod'

Spell checking:
- Spell check current word with |z=| even when 'spell' is off.
- Add "timeout" to 'spellsuggest' to limit the searching time for spell
  suggestions.
- Add support for spell checking CamelCased words by adding "camel" to
  'spelloptions'.

Support for executing Ex commands in a map without changing the current mode
|<Cmd>| and |<ScriptCmd>|.

Add optional error code to |:cquit|.

Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.

Expand script ID using expand('<SID>') and script name using
expand('<script>'). |expand()|

Jump to the last accessed tab page using |g<Tab>| and support using the
last accessed tab page in |:tabnext| et al.

Locale aware sorting using |:sort| and |sort()|.

Hide cursor when sleeping using |:sleep!|.

Add "multispace" to 'listchars' to show two or more spaces no matter where
they appear.  Add "leadmultispace" to 'listchars' to show two or more leading
spaces.  Add "lead" to 'listchars' to set the character used to show leading
spaces.  Support specifying a character using the hexdecimal notation in
'listchars' (\x, \u and \U).

Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.

Support for looping over a string using `:for`.

Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.

Support for re-evaluating the 'statusline' expression as a statusline format
string (%{% expr %})

Add |zp| and |zP| to paste in block mode without adding trailing white space.
Add |zy| to yank without trailing white space in block mode.

Add the 'P' command in visual mode to paste text in Visual mode without
yanking the deleted text to the unnamed register.  |put-Visual-mode|

Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
See |/\%l| for more information.

Add "list" to 'breakindentopt' to add additional indent for lines that match
a numbered or bulleted list.  Add "column" to 'breakindentopt' to indent
soft-wrapped lines at a specific column.

Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
adjust sign highlighting for 'cursorline'.

Add the |hl-CurSearch| default highlight group for the current search match.

Add support for logging on Vim startup (|--log|).

Add support for customizing the quickfix buffer contents using
'quickfixtextfunc'.  Support for the "note" error type (%t) in |errorformat|.
Add support for parsing the end line number (%e) and end column number (%k)
using 'errorformat'.

Support truncating the tag stack using |settagstack()|.

Display every option in a separate line when "!" is used with |:set|.

Add "nostop" to 'backspace' to allow backspacing over the start of insert for
|CTRL-W| and |CTRL-U| also.

Sync the undo file if 'fsync' is set.

Support excluding the 'runtimepath' and 'packpath' options from a session file
using "skiprtp" in 'sessionoptions'.

Support for getting the number of lines (line count) in a buffer using
|getbufinfo()|.

Support |filter()| and |map()| for blob and string types.

Support for using a multi-byte character for the tag kind. |tags-file-format|

Add support for checking whether a function name is valid using |exists()|.

Update xdiff to version 2.33.  Update libvterm to revision 789.

Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.

Add the |t_AU| and |t_8u| termap codes for underline and undercurl.  Add the
t_fd and t_fe termcap codes for detecting focus events.

Support for indenting C pragmas like normal code. (|cino-P|)

Add support for defining the syntax fold level (|:syn-foldlevel|)

Add support for using \<*xxx> in a string to prepend a modifier to a
character. (|expr-quote|).

Add support trimming characters at the beginning or end of a string using
|trim()|.

Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|

Add the "0o" notation for specifying octal numbers |scriptversion-4|

Support for changing to the previous tab-local and window-local directories
using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)

Add support for skipping an expression using |search()|.

Add support for sorting the directory contents returned by the |readdir()|
and |readdirex()| functions by case.

Add support for executing (|:@|) a register containing line continuation.

Lua support:
- Call Vim functions from Lua (vim.call() and vim.fn()).
- Convert a Lua function and a closure to a Vim funcref so that it can be
  accessed in a Vimscript (|lua-funcref|).
- Not backwards compatible: Make Lua arrays one based.
- Add support for using table.insert() and table.remove() functions with Vim
  lists.
- Support for running multiple Ex-mode commands using vim.command().
- Add vim.lua_version to get the Lua version.
- Add support for accessing Vim namespace dictionaries from Lua
  (|lua-vim-variables|).

Support for new UTF-8 characters from Unicode release 13.

Support for using a command block (|:command-repl|) when defining a |:command|
or an |:autocmd|.

Support for using |:z!| to use the Vim display height instead of the current
window height.

Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".

When formatting a // comment after a statement, find the start of the line
comment, insert the comment leader and indent the comment properly (|fo-/|).

Add the "numhl" argument to `:sign define` to use a separate highlight group
for the line number on a line where a sign is placed.  |:sign-define|

When $SHELL ends in "nologin" or "false", start Vim in restricted mode.

TermDebug enhancements:
- Support for showing the disassembled code in a separate window.
- Support for the GDB until command.
- Use a separate group for the signs.

xxd: Support for showing offset as a decimal number (-d).

The C omni-complete plugin (|ft-c-omni|), the file type detection script
(ft.vim) and the syntax menu generation script (makemenu.vim) have been
rewritten using the Vim9 script syntax.

A large number of tests have been added to verify the Vim functionality.  Most
of the old style tests have been converted to new style tests using the new
style assert_* functions.

Many Coverity static analysis warnings have been fixed.

==============================================================================
COMPILE TIME CHANGES					*compile-changes-9*

The following features are now enabled in all the builds:
  |+cindent|
  |+jumplist|
  |+lispindent|
  |+num64|
  |+smartindent|
  |+tag_binary|
  |+title|

The following features have been removed.  They are either obsolete or didn't
work properly:
  - Athena and neXTaw GUI support (use Motif instead)
  - EBCDIC support
  - Atari MiNT and BeOS
  - Mac Carbon GUI (use MacVim instead)

The rgb.txt file is no longer included, use colors/lists/default.vim instead.

Several large source files were split, mainly to make it easier to inspect
code coverage information.  Source files have also been refactored for
maintainability.

Support for building Vim with Mingw64 clang compiler on MS-Windows.

Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and
Ruby 3.1.0.

==============================================================================
PATCHES						*patches-9* *bug-fixes-9*
						*patches-after-8.2*

The list of patches that got included since 8.2.0.  This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
etc.)

Patch 8.2.0001
Problem:    #endif comments do not reflect corresponding #ifdef.
Solution:   Update the comments. (Rene Nyffenegger, closes #5351)
Files:      src/ui.c

Patch 8.2.0002
Problem:    "dj" only deletes first line of closed fold.
Solution:   Adjust last line of operator for linewise motion. (closes #5354)
Files:      src/ops.c, src/testdir/test_fold.vim

Patch 8.2.0003
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
            src/Makefile

Patch 8.2.0004
Problem:    Get E685 and E931 if buffer reload is interrupted.
Solution:   Do not abort deleting a dummy buffer. (closes #5361)
Files:      src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim,
            src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c,
            src/window.c, src/vim.h

Patch 8.2.0005
Problem:    Duplication in version info.
Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)
Files:      src/version.h

Patch 8.2.0006
Problem:    Test using long file name may fail. (Vladimir Lomov)
Solution:   Limit the name length. (Christian Brabandt, closes #5358)
Files:      src/testdir/test_display.vim

Patch 8.2.0007
Problem:    Popup menu positioned wrong with folding in two tabs.
Solution:   Update the cursor line height. (closes #5353)
Files:      src/move.c, src/proto/move.pro, src/popupmenu.c,
            src/testdir/test_ins_complete.vim,
            src/testdir/dumps/Test_pum_with_folds_two_tabs.dump

Patch 8.2.0008
Problem:    Test72 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test72.in, src/testdir/test72.ok,
            src/testdir/test_undo.vim

Patch 8.2.0009
Problem:    VMS: terminal version doesn't build.
Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)
Files:      src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms

Patch 8.2.0010
Problem:    Test64 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test64.in, src/testdir/test64.ok,
            src/testdir/test95.in, src/testdir/test_regexp_latin.vim

Patch 8.2.0011
Problem:    Screen updating wrong when opening preview window.
Solution:   Redraw the window when the preview window opens.
Files:      src/popupmenu.c, src/testdir/test_ins_complete.vim,
            src/testdir/dumps/Test_pum_with_preview_win.dump

Patch 8.2.0012
Problem:    Some undo functionality is not tested.
Solution:   Add a few more test cases. (Dominique Pellé, closes #5364)
Files:      src/testdir/test_undo.vim

Patch 8.2.0013
Problem:    Not using a typedef for condstack.
Solution:   Add a typedef.
Files:      src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c,
            src/ex_cmds.h, src/proto/ex_eval.pro

Patch 8.2.0014
Problem:    Test69 and test95 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test69.in, src/testdir/test69.ok,
            src/testdir/test95.in, src/testdir/test95.ok,
            src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim

Patch 8.2.0015
Problem:    Not all modeline variants are tested.
Solution:   Add modeline tests. (Dominique Pellé, closes #5369)
Files:      src/testdir/test_modeline.vim

Patch 8.2.0016
Problem:    Test name used twice, option not restored properly.
Solution:   Rename function, restore option with "&".
Files:      src/testdir/test_textformat.vim

Patch 8.2.0017
Problem:    OS/2 and MS-DOS are still mentioned, even though support was
            removed long ago.
Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)
Files:      runtime/doc/autocmd.txt, runtime/doc/change.txt,
            runtime/doc/cmdline.txt, runtime/doc/editing.txt,
            runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt,
            runtime/doc/options.txt, runtime/doc/print.txt,
            runtime/doc/quickfix.txt, runtime/doc/repeat.txt,
            runtime/doc/starting.txt, runtime/doc/usr_01.txt,
            runtime/doc/usr_05.txt, runtime/doc/usr_41.txt,
            runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim,
            runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h

Patch 8.2.0018
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines properly.
Files:      src/ops.c, src/testdir/test_join.vim

Patch 8.2.0019
Problem:    Cannot get number of lines of another buffer.
Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
            closes #5370)
Files:      src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim,
            runtime/doc/eval.txt

Patch 8.2.0020
Problem:    Mouse clicks in the command line not tested.
Solution:   Add tests. (Dominique Pellé, closes #5366)
Files:      src/testdir/test_termcodes.vim

Patch 8.2.0021
Problem:    Timer test fails too often on Travis with macOS.
Solution:   Be less strict with the time.
Files:      src/testdir/test_timers.vim

Patch 8.2.0022
Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
Solution:   When processing the selection also send a button release event.
            (closes #5367)
Files:      src/gui.c

Patch 8.2.0023
Problem:    Command line editing not sufficiently tested.
Solution:   Add more tests. (Dominique Pellé, closes #5374)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
            src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim

Patch 8.2.0024
Problem:    Filetype Rego not recognized.
Solution:   Add *.rego. (Matt Dunford, closes #5376)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0025
Problem:    Repeated word in comment.
Solution:   Remove one. (Rene Nyffenegger, closes #5384)
Files:      src/structs.h

Patch 8.2.0026
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
Files:      src/message.c, src/message_test.c, src/misc1.c, src/misc2.c,
            src/move.c

Patch 8.2.0027
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
Files:      src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,
            src/version.c

Patch 8.2.0028
Problem:    Searchpairpos() is not tested.
Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pellé,
            closes #5388)
Files:      src/testdir/test_search.vim

Patch 8.2.0029
Problem:    MS-Windows: crash with empty job command.
Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 8.2.0030
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes #5391)
Files:      src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim

Patch 8.2.0031 (after 8.2.0029)
Problem:    MS-Windows: test for empty job fails
Solution:   Check for error message, make it also fail on Unix.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 8.2.0032 (after 8.2.0031)
Problem:    MS-Windows: test for blank job fails
Solution:   Check before escaping.
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 8.2.0033
Problem:    Crash when make_extmatch() runs out of memory.
Solution:   Check for NULL. (Dominique Pellé, closes #5392)
Files:      src/regexp_bt.c, src/regexp_nfa.c

Patch 8.2.0034
Problem:    Missing check for out of memory.
Solution:   Check for NULL after vim_strsave(). (Dominique Pellé,
            closes #5393)
Files:      src/filepath.c

Patch 8.2.0035
Problem:    Saving and restoring called_emsg is clumsy.
Solution:   Count the number of error messages.
Files:      src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c,
            src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c,
            src/regexp.c, src/search.c, src/testing.c, src/globals.h

Patch 8.2.0036
Problem:    Not enough test coverage for match functions.
Solution:   Add a few more test cases.  (Dominique Pellé, closes #5394)
            Add error number.
Files:      src/testdir/test_match.vim

Patch 8.2.0037
Problem:    Missing renamed message.
Solution:   Now really add the error number.
Files:      src/highlight.c

Patch 8.2.0038
Problem:    Spell suggestions insufficiently tested.
Solution:   Add spell suggestion tests. (Dominique Pellé, closes #5398)
Files:      src/testdir/test_spell.vim

Patch 8.2.0039
Problem:    Memory access error when "z=" has no suggestions.
Solution:   Check for negative index.
Files:      src/testdir/test_spell.vim, src/spellsuggest.c

Patch 8.2.0040
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Run separately instead of as part of test_alot.
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim

Patch 8.2.0041
Problem:    Leaking memory when selecting spell suggestion.
Solution:   Free previous value at the right time.
Files:      src/spellsuggest.c

Patch 8.2.0042
Problem:    Clearing funccal values twice.
Solution:   Remove clearing individual fields.
Files:      src/userfunc.c

Patch 8.2.0043
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Increase maximum expected time.
Files:      src/testdir/test_timers.vim

Patch 8.2.0044
Problem:    Expression type is used inconsistently.
Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
            "TYPE_" to "ETYPE_" to avoid confusion.
Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c

Patch 8.2.0045 (after 8.2.0044)
Problem:    Script test fails.
Solution:   For numbers "is" and "isnot" work like "==" and "!=".
Files:      src/eval.c

Patch 8.2.0046
Problem:    Tests for spell suggestions are slow.
Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
            (Dominique Pellé, closes #5399)
Files:      src/testdir/test_spell.vim

Patch 8.2.0047
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
Files:      src/os_win32.c, src/globals.h, src/evalfunc.c,
            runtime/doc/eval.txt, src/testdir/gen_opt_test.vim,
            src/testdir/test_options.vim

Patch 8.2.0048
Problem:    Another timers test is flaky on Travis for Mac.
Solution:   Increase maximum expected time.
Files:      src/testdir/test_timers.vim

Patch 8.2.0049
Problem:    Command line completion not fully tested.
Solution:   Add more test cases.  Make help sorting stable. (Dominique Pellé,
            closes #5402)
Files:      src/ex_cmds.c, src/testdir/test_cd.vim,
            src/testdir/test_cmdline.vim, src/testdir/test_help.vim,
            src/testdir/test_menu.vim, src/testdir/test_options.vim,
            src/testdir/test_syntax.vim

Patch 8.2.0050
Problem:    After deleting a file mark it is still in viminfo.
Solution:   When a file mark was deleted more recently than the mark in the
            merged viminfo file was updated, do not store the mark. (Pavol
            Juhas, closes #5401, closes #1339)
Files:      src/mark.c, src/testdir/test_marks.vim,
            src/testdir/test_viminfo.vim, src/viminfo.c

Patch 8.2.0051 (after 8.2.0049)
Problem:    Command line completion test skipped. (Christian Brabandt)
Solution:   Invert condition.
Files:      src/testdir/test_cmdline.vim

Patch 8.2.0052
Problem:    More-prompt not properly tested.
Solution:   Add a test case. (Dominique Pellé, closes #5404)
Files:      src/testdir/test_messages.vim

Patch 8.2.0053
Problem:    windowsversion() does not always return the right value.
Solution:   Add a compatibility section in the manifest. (Ken Takata,
            closes #5407)
Files:      src/gvim.exe.mnf

Patch 8.2.0054
Problem:    :diffget and :diffput don't have good completion.
Solution:   Add proper completion. (Dominique Pellé, closes #5409)
Files:      runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c,
            src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h

Patch 8.2.0055
Problem:    Cannot use ":gui" in vimrc with VIMDLL enabled.
Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)
Files:      src/gui.c

Patch 8.2.0056
Problem:    Execution stack is incomplete and inefficient.
Solution:   Introduce a proper execution stack and use it instead of
            sourcing_name/sourcing_lnum.  Create a string only when used.
Files:      src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c
            src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c,
            src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro,
            src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c,
            src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c,
            src/kword_test.c, src/testdir/test_debugger.vim

Patch 8.2.0057 (after 8.2.0056)
Problem:    Cannot build with small features.
Solution:   Add #ifdefs.
Files:      src/scriptfile.c

Patch 8.2.0058
Problem:    Running tests changes ~/.viminfo.
Solution:   Make 'viminfo' empty when summarizing tests results. (closes #5414)
Files:      src/testdir/summarize.vim

Patch 8.2.0059
Problem:    Compiler warnings for unused variables in small build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
Files:      src/scriptfile.c

Patch 8.2.0060
Problem:    Message test only runs with one encoding. (Dominique Pellé)
Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related
            to #5410)
Files:      src/message_test.c, src/message.c

Patch 8.2.0061
Problem:    The execute stack can grow big and never shrinks.
Solution:   Reduce the size in garbage collect.
Files:      src/eval.c

Patch 8.2.0062
Problem:    Memory test is flaky on FreeBSD.
Solution:   Add a short sleep before getting the first size.
Files:      src/testdir/test_memory_usage.vim

Patch 8.2.0063
Problem:    Wrong size argument to vim_snprintf(). (Dominique Pellé)
Solution:   Reduce the size by the length. (related to #5410)
Files:      src/ops.c

Patch 8.2.0064
Problem:    Diffmode completion doesn't use per-window setting.
Solution:   Check if a window is in diff mode. (Dominique Pellé, closes #5419)
Files:      src/buffer.c, src/testdir/test_diffmode.vim

Patch 8.2.0065
Problem:    Amiga and alikes: autoopen only used on Amiga OS4.
Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)
Files:      src/os_amiga.c

Patch 8.2.0066
Problem:    Some corners of vim_snprintf() are not tested.
Solution:   Add a test in C. (Dominique Pellé, closes #5422)
Files:      src/message_test.c

Patch 8.2.0067
Problem:    ERROR_UNKNOWN clashes on some systems.
Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
Files:      src/evalfunc.c, src/userfunc.c, src/vim.h

Patch 8.2.0068
Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pellé)
Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)
Files:      src/testdir/test_python3.vim, src/if_py_both.h

Patch 8.2.0069
Problem:    ETYPE_ is used for two different enums.
Solution:   Rename one to use EXPR_.
Files:      src/structs.h, src/eval.c, src/debugger.c

Patch 8.2.0070
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pellé)
Solution:   Use "euc-jp" whenever enc_dbcs is set.
Files:      src/testdir/test_python3.vim, src/if_py_both.h

Patch 8.2.0071
Problem:    Memory test often fails on Cirrus CI.
Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
Files:      src/testdir/test_memory_usage.vim

Patch 8.2.0072 (after 8.2.0071)
Problem:    Memory test still fails on Cirrus CI.
Solution:   Allow for a tiny bit more tolerance in the upper limit.
Files:      src/testdir/test_memory_usage.vim

Patch 8.2.0073
Problem:    Initializing globals with COMMA is clumsy.
Solution:   Use INIT2(), INIT3(), etc.
Files:      src/vim.h, src/globals.h

Patch 8.2.0074
Problem:    Python 3 unicode test sometimes fails.
Solution:   Make 'termencoding' empty.  Correct number of error message.
Files:      src/change.c, runtime/doc/options.txt, runtime/doc/message.txt,
            src/testdir/test_python3.vim

Patch 8.2.0075
Problem:    Python 3 unicode test still sometimes fails.
Solution:   Skip the test when 'termencoding' is not empty.
Files:      src/testdir/test_python3.vim

Patch 8.2.0076
Problem:    Python 3 unicode test fails on MS-Windows.
Solution:   Do not set 'encoding' to "debug" on MS-Windows.
Files:      src/testdir/test_python3.vim

Patch 8.2.0077
Problem:    settagstack() cannot truncate at current index.
Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/tag.c,
            src/testdir/test_tagjump.vim

Patch 8.2.0078
Problem:    Expanding <sfile> works differently the second time.
Solution:   Keep the expanded name when redefining a function. (closes #5425)
Files:      src/testdir/test_vimscript.vim, src/userfunc.c

Patch 8.2.0079
Problem:    Python 3 unicode test still fails on MS-Windows.
Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
Files:      src/testdir/test_python3.vim

Patch 8.2.0080
Problem:    Globals using INIT4() are not in the tags file.
Solution:   Adjust the tags command.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0081
Problem:    MS-Windows also need the change to support INIT4().
Solution:   Add the ctags arguments. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.0082
Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)
Solution:   Clear listeners when reusing a buffer. (closes #5431)
Files:      src/testdir/test_listener.vim, src/buffer.c

Patch 8.2.0083
Problem:    Text properties wrong when tabs and spaces are exchanged.
Solution:   Take text properties into account. (Nobuhiro Takasaki,
            closes #5427)
Files:      src/edit.c, src/testdir/test_textprop.vim

Patch 8.2.0084
Problem:    Complete item "user_data" can only be a string.
Solution:   Accept any type of variable. (closes #5412)
Files:      src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c,
            src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt

Patch 8.2.0085
Problem:    Dead code in builtin functions.
Solution:   Clean up the code.
Files:      src/evalvars.c, src/sound.c, src/textprop.c

Patch 8.2.0086 (after 8.2.0084)
Problem:    Build error for small version. (Tony Mechelynck)
Solution:   Only use "user_data" with the +eval feature. Remove unused
            variable.
Files:      src/insexpand.c, src/dict.c

Patch 8.2.0087
Problem:    Crash in command line expansion when out of memory.
Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
            (Dominique Pellé, closes #5437)
Files:      src/cmdexpand.c, src/proto/cmdexpand.pro

Patch 8.2.0088
Problem:    Insufficient tests for tags; bug in using extra tag field when
            using an ex command to position the cursor.
Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
Files:      runtime/doc/tagsrch.txt, src/tag.c,
            src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim,
            src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim

Patch 8.2.0089
Problem:    Crash when running out of memory in :setfiletype completion.
Solution:   Do not allocate memory. (Dominique Pellé, closes #5438)
Files:      src/cmdexpand.c

Patch 8.2.0090
Problem:    Generated files show up in git status.
Solution:   Ignore a few more files.
Files:      .gitignore

Patch 8.2.0091
Problem:    Compiler warnings for size_t / int types.
Solution:   Change type to size_t. (Mike Williams)
Files:      src/scriptfile.c

Patch 8.2.0092
Problem:    Tags functionality insufficiently tested.
Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)
Files:      src/testdir/test_tagjump.vim

Patch 8.2.0093
Problem:    win_splitmove() can make Vim hang.
Solution:   Check windows exists in the current tab page. (closes #5444)
Files:      src/testdir/test_window_cmd.vim, src/evalwindow.c

Patch 8.2.0094
Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.
Solution:   Define __builtin_expect() as a workaround. (Ken Takata,
            closes #5267)
Files:      src/if_perl.xs

Patch 8.2.0095
Problem:    Cannot specify exit code for :cquit.
Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
Files:      runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c,
            src/testdir/test_quickfix.vim

Patch 8.2.0096
Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)
Solution:   Remove position limit. (closes #5447)
Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
            src/testdir/dumps/Test_popupwin_20.dump,
            src/testdir/dumps/Test_popupwin_21.dump

Patch 8.2.0097
Problem:    Crash with autocommand and spellfile. (Tim Pope)
Solution:   Do not pop exestack when not pushed. (closes #5450)
Files:      src/testdir/test_autocmd.vim, src/spellfile.c

Patch 8.2.0098
Problem:    Exe stack length can be wrong without being detected.
Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.
Files:      src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c,
            src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c,
            src/userfunc.c

Patch 8.2.0099
Problem:    Use of NULL pointer when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #5449)
Files:      src/cmdexpand.c

Patch 8.2.0100
Problem:    Macros for Ruby are too complicated.
Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
            closes #5452)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/configure.ac, src/if_ruby.c

Patch 8.2.0101
Problem:    Crash when passing null object to ":echomsg".
Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
Files:      src/eval.c, src/testdir/test_messages.vim

Patch 8.2.0102
Problem:    Messages test fails in small version.
Solution:   Only use test_null_job() when available.
Files:      src/testdir/test_messages.vim

Patch 8.2.0103
Problem:    Using null object with execute() has strange effects.
Solution:   Give an error message for Job and Channel.
Files:      src/testdir/test_execute_func.vim, src/globals.h, src/eval.c,
            src/evalfunc.c

Patch 8.2.0104
Problem:    Using channel or job with ":execute" has strange effects.
Solution:   Give an error message for Job and Channel.
Files:      src/testdir/test_eval_stuff.vim, src/eval.c

Patch 8.2.0105
Problem:    Vim license not easy to find on github.
Solution:   Add a separate LICENCE file. (closes #5458)
Files:      LICENSE, Filelist

Patch 8.2.0106
Problem:    Printf formats are not exactly right.
Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
Files:      runtime/tools/ccfilter.c, src/libvterm/src/parser.c,
            src/libvterm/src/pen.c, src/ui.c

Patch 8.2.0107
Problem:    Hgignore is out of sync from gitignore.
Solution:   Add lines to hgignore. (Ken Takata)
Files:      .hgignore

Patch 8.2.0108
Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes #5455)
Files:      src/testdir/test_signs.vim, src/sign.c,
            src/testdir/dumps/Test_sign_cursor_1.dump,
            src/testdir/dumps/Test_sign_cursor_2.dump,
            src/testdir/dumps/Test_sign_cursor_3.dump,
            src/testdir/dumps/Test_sign_cursor_01.dump,
            src/testdir/dumps/Test_sign_cursor_02.dump

Patch 8.2.0109
Problem:    Corrupted text properties when expanding spaces.
Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)
Files:      src/edit.c, src/testdir/test_textprop.vim

Patch 8.2.0110
Problem:    prop_find() is not implemented.
Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
Files:      src/evalfunc.c, src/proto/textprop.pro,
            src/testdir/test_textprop.vim, src/textprop.c,
            runtime/doc/textprop.txt

Patch 8.2.0111
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
Files:      src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h,
            src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro,
            src/testing.c, src/vim.h, src/viminfo.c

Patch 8.2.0112
Problem:    Illegal memory access when using 'cindent'.
Solution:   Check for NUL byte. (Dominique Pellé, closes #5470)
Files:      src/cindent.c, src/testdir/test_cindent.vim

Patch 8.2.0113 (after 8.2.0095)
Problem:    "make cmdidxs" fails.
Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
Files:      src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak,
            src/Make_mvc.mak

Patch 8.2.0114
Problem:    Info about sourced scripts is scattered.
Solution:   Use scriptitem_T for info about a script, including s: variables.
            Drop ga_scripts.
Files:      src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c

Patch 8.2.0115
Problem:    Byte2line() does not work correctly with text properties. (Billie
            Cleek)
Solution:   Take the bytes of the text properties into account.
            (closes #5334)
Files:      src/testdir/test_textprop.vim, src/memline.c

Patch 8.2.0116
Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution:   Decrement autocmd_no_enter for the last file. (closes #1660,
            closes #5473)
Files:      src/arglist.c, src/testdir/test_tabpage.vim

Patch 8.2.0117
Problem:    Crash when using gettabwinvar() with invalid arguments. (Yilin
            Yang)
Solution:   Use "curtab" if "tp" is NULL. (closes #5475)
Files:      src/evalwindow.c, src/testdir/test_getvar.vim

Patch 8.2.0118
Problem:    Crash when cycling to buffers involving popup window .
Solution:   Do not decrement buffer reference count.
Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
            src/testdir/dumps/Test_popupwin_infopopup_7.dump

Patch 8.2.0119
Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to vim_snprintf() argument. (Dominique Pellé)
Files:      src/message_test.c

Patch 8.2.0120
Problem:    virtcol() does not check arguments to be valid, which may lead to
            a crash.
Solution:   Check the column to be valid.  Do not decrement MAXCOL.
            (closes #5480)
Files:      src/evalfunc.c, src/testdir/test_marks.vim

Patch 8.2.0121
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes #5483)
Files:      src/list.c, src/testdir/test_blob.vim

Patch 8.2.0122
Problem:    Readme files still mention MS-DOS.
Solution:   Update readme files. (Ken Takata, closes #5486)
Files:      README.md, README.txt, READMEdir/README_dos.txt,
            READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt,
            runtime/doc/os_win32.txt

Patch 8.2.0123
Problem:    complete_info() does not work when CompleteDone is triggered.
Solution:   Trigger CompleteDone before clearing the info.
Files:      src/insexpand.c, runtime/doc/autocmd.txt,
            src/testdir/test_ins_complete.vim

Patch 8.2.0124
Problem:    Compiler warnings for variable types.
Solution:   Change type, add type cast. (Mike Williams)
Files:      src/memline.c

Patch 8.2.0125
Problem:    :mode no longer works for any system.
Solution:   Always give an error message.
Files:      src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c,
            src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
            src/os_unix.c, src/proto/os_unix.pro

Patch 8.2.0126 (after 8.2.0124)
Problem:    Textprop test fails.
Solution:   Fix sign in computation.
Files:      src/memline.c

Patch 8.2.0127
Problem:    Some buffer commands work in a popup window.
Solution:   Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
Files:      src/ex_docmd.c, src/testdir/test_popupwin.vim

Patch 8.2.0128
Problem:    Cannot list options one per line.
Solution:   Use ":set!" to list one option per line.
Files:      src/ex_docmd.c, src/option.c, src/proto/option.pro, src/vim.h,
            src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.vim,
            runtime/doc/options.txt

Patch 8.2.0129
Problem:    MS-Windows installer doesn't use Turkish translations.
Solution:   Enable the Turkish translations and fix a few. (Emir Sarı,
            closes #5493)
Files:      nsis/gvim.nsi, nsis/lang/turkish.nsi

Patch 8.2.0130
Problem:    Python3 ranges are not tested.
Solution:   Add test. (Dominique Pellé, closes #5498)
Files:      src/testdir/test_python3.vim

Patch 8.2.0131
Problem:    Command line is not cleared when switching tabs and the command
            line height differs.
Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
            closes #5495)
Files:      src/testdir/dumps/Test_cmdlineclear_tabenter.dump,
            src/testdir/test_cmdline.vim, src/window.c

Patch 8.2.0132
Problem:    Script may be re-used when deleting and creating a new one.
Solution:   When the inode matches, also check the file name.
Files:      src/scriptfile.c, src/testdir/test_source.vim

Patch 8.2.0133
Problem:    Invalid memory access with search command.
Solution:   When :normal runs out of characters in bracketed paste mode break
            out of the loop.(closes #5511)
Files:      src/testdir/test_search.vim, src/edit.c

Patch 8.2.0134
Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
Files:      src/testdir/test_maparg.vim, src/testdir/test_mapping.vim

Patch 8.2.0135 (after 8.2.0133)
Problem:    Bracketed paste can still cause invalid memory access. (Dominique
            Pellé)
Solution:   Check for NULL pointer.
Files:      src/edit.c, src/testdir/test_search.vim

Patch 8.2.0136
Problem:    Stray ch_logfile() call.
Solution:   Remove it. (closes #5503)
Files:      src/testdir/test_source.vim

Patch 8.2.0137
Problem:    Crash when using win_execute() from a new tab.
Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
Files:      src/testdir/test_winbuf_close.vim, src/window.c

Patch 8.2.0138
Problem:    Memory leak when starting a job fails.
Solution:   Free the list of arguments. (Ozaki Kiichi, closes #5510)
Files:      src/channel.c, src/testdir/test_channel.vim

Patch 8.2.0139
Problem:    MS-Windows: default for IME is inconsistent.
Solution:   Also make IME default enabled with MVC. (Ken Takata, closes #5508)
Files:      src/Make_mvc.mak

Patch 8.2.0140
Problem:    CI does not test building doc tags.
Solution:   Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi,
            closes #5513)
Files:      .travis.yml, Filelist, ci/if_ver-1.vim, ci/if_ver-2.vim,
            ci/if_ver-cmd.vim, runtime/doc/Makefile, runtime/doc/doctags.vim,
            src/testdir/if_ver-1.vim, src/testdir/if_ver-2.vim

Patch 8.2.0141
Problem:    No swift filetype detection.
Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes #5517)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0142
Problem:    Possible to enter popup window with CTRL-W p. (John Devin)
Solution:   Check entered window is not a popup window. (closes #5515)
Files:      src/window.c, src/popupwin.c, src/testdir/test_popupwin.vim,
            src/testdir/dumps/Test_popupwin_previewpopup_9.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_10.dump

Patch 8.2.0143
Problem:    Coverity warning for possible use of NULL pointer.
Solution:   Check argv is not NULL.
Files:      src/channel.c

Patch 8.2.0144
Problem:    Some mapping code is not fully tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5519)
Files:      src/testdir/test_langmap.vim, src/testdir/test_maparg.vim,
            src/testdir/test_mapping.vim

Patch 8.2.0145
Problem:    Using #error for compilation errors should be OK now.
Solution:   Use #error. (Ken Takata, closes #5299)
Files:      src/blowfish.c, src/vim.h

Patch 8.2.0146
Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
            'briopt' includes "sbr".
Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes #5523)
Files:      src/drawline.c, src/testdir/test_breakindent.vim

Patch 8.2.0147
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524)
Files:      src/ops.c, src/testdir/test_listlbr.vim

Patch 8.2.0148
Problem:    Mapping related function in wrong source file.
Solution:   Move the function.  Add a few more test cases. (Yegappan
            Lakshmanan, closes #5528)
Files:      src/map.c, src/proto/term.pro, src/term.c,
            src/testdir/test_mapping.vim

Patch 8.2.0149
Problem:    Maintaining a Vim9 branch separately is more work.
Solution:   Merge the Vim9 script changes.
Files:      README.md, README_VIM9.md, runtime/doc/Makefile,
            runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/tags,
            runtime/doc/vim9.txt, runtime/ftplugin/vim.vim,
            runtime/indent/vim.vim, runtime/syntax/vim.vim,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/blob.c,
            src/channel.c, src/dict.c, src/eval.c, src/evalbuffer.c,
            src/evalfunc.c, src/evalvars.c, src/ex_cmdidxs.h, src/ex_cmds.h,
            src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/globals.h,
            src/gui.c, src/if_lua.c, src/if_py_both.h, src/insexpand.c,
            src/json.c, src/list.c, src/macros.h, src/main.c, src/message.c,
            src/misc1.c, src/proto.h, src/proto/blob.pro, src/proto/eval.pro,
            src/proto/evalfunc.pro, src/proto/evalvars.pro,
            src/proto/ex_docmd.pro, src/proto/ex_eval.pro, src/proto/list.pro,
            src/proto/message.pro, src/proto/scriptfile.pro,
            src/proto/userfunc.pro, src/proto/vim9compile.pro,
            src/proto/vim9execute.pro, src/proto/vim9script.pro,
            src/scriptfile.c, src/session.c, src/structs.h, src/syntax.c,
            src/testdir/Make_all.mak, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vim9_script.vim, src/testing.c, src/userfunc.c,
            src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/vim9script.c, src/viminfo.c

Patch 8.2.0150
Problem:    Cannot define python function when using :execute. (Yasuhiro
            Matsumoto)
Solution:   Do not recognize "def" inside "function.
Files:      src/testdir/test_vim9_script.vim, src/userfunc.c

Patch 8.2.0151
Problem:    Detecting a script was already sourced is unreliable.
Solution:   Do not use the inode number.
Files:      src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim

Patch 8.2.0152
Problem:    Restoring ctrl_x_mode is not needed.
Solution:   Remove restoring the old value, it's changed again soon.
Files:      src/insexpand.c

Patch 8.2.0153
Problem:    Warning shows when listing version info.
Solution:   Use "-u NONE". (Ozaki Kiichi, closes #5534)
Files:      .travis.yml

Patch 8.2.0154
Problem:    Reallocating the list of scripts is inefficient.
Solution:   Instead of using a growarray of scriptitem_T, store pointers and
            allocate each scriptitem_T separately.  Also avoids that the
            growarray pointers change when sourcing a new script.
Files:      src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c,
            src/profiler.c, src/scriptfile.c, src/vim9compile.c,
            src/vim9execute.c, src/vim9script.c

Patch 8.2.0155
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.
Files:      src/vim9script.c, src/vim9compile.c, src/vim9execute.c,
            src/if_py_both.h, src/json.c, src/testdir/test_method.vim

Patch 8.2.0156
Problem:    Various typos in source files and tests.
Solution:   Fix the typos. (Emir Sarı, closes #5532)
Files:      Makefile, src/INSTALLvms.txt, src/Make_vms.mms, src/beval.h,
            src/buffer.c, src/charset.c, src/evalvars.c, src/ex_cmds.c,
            src/ex_docmd.c, src/getchar.c, src/gui.c, src/gui_mac.c,
            src/gui_photon.c, src/if_perl.xs,
            src/libvterm/t/11state_movecursor.test,
            src/libvterm/t/41screen_unicode.test, src/mbyte.c, src/memline.c,
            src/normal.c, src/ops.c, src/option.c, src/option.h,
            src/os_unix.c, src/os_win32.c, src/quickfix.c, src/register.c,
            src/spell.c, src/tag.c, src/term.c,
            src/testdir/test_breakindent.vim, src/testdir/test_channel.vim,
            src/testdir/test_cindent.vim, src/testdir/test_digraph.vim,
            src/testdir/test_edit.vim, src/testdir/test_netbeans.vim,
            src/testdir/test_quickfix.vim, src/testdir/test_registers.vim,
            src/testdir/test_stat.vim, src/ui.c, src/xxd/xxd.c

Patch 8.2.0157
Problem:    Vim9 script files not in list of distributed files.
Solution:   Add the entries.
Files:      Filelist

Patch 8.2.0158 (after 8.2.0123)
Problem:    Triggering CompleteDone earlier is not backwards compatible.
            (Daniel Hahler)
Solution:   Add CompleteDonePre instead.
Files:      src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c,
            src/vim.h, src/testdir/test_ins_complete.vim

Patch 8.2.0159
Problem:    Non-materialized range() list causes problems. (Fujiwara Takuya)
Solution:   Materialize the list where needed.
Files:      src/testdir/test_functions.vim, src/testdir/test_python3.vim,
            src/userfunc.c, src/evalfunc.c, src/highlight.c, src/evalvars.c,
            src/popupmenu.c, src/insexpand.c, src/json.c, src/channel.c,
            src/eval.c

Patch 8.2.0160 (after 8.2.0159)
Problem:    Range test fails.
Solution:   Include change in list code. (#5541)
Files:      src/list.c

Patch 8.2.0161
Problem:    Not recognizing .gv file as dot filetype.
Solution:   Add *.gv to dot pattern. (closes #5544)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0162
Problem:    Balloon test fails in the GUI.
Solution:   Skip test in the GUI.
Files:      src/testdir/test_functions.vim

Patch 8.2.0163
Problem:    Test hangs on MS-Windows console.
Solution:   use feedkeys() instead of test_feedinput(). (Ken Takata)
Files:      src/testdir/test_functions.vim, src/testing.c

Patch 8.2.0164
Problem:    Test_alot takes too long.
Solution:   Run several tests individually.
Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak

Patch 8.2.0165
Problem:    Coverity warning for using NULL pointer.
Solution:   Add missing "else".
Files:      src/vim9compile.c

Patch 8.2.0166
Problem:    Coverity warning for using uninitialized variable.
Solution:   Check for failure.
Files:      src/vim9execute.c

Patch 8.2.0167
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and jump if failed.
Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0168
Problem:    Coverity warning for assigning NULL to an option.
Solution:   Use empty string instead of NULL.
Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0169
Problem:    Coverity warning for dead code.
Solution:   Check if inside try-finally.
Files:      src/vim9execute.c

Patch 8.2.0170
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and return if failed.
Files:      src/vim9compile.c

Patch 8.2.0171
Problem:    Coverity warning for using uninitialized buffer.
Solution:   Check the skip flag.
Files:      src/userfunc.c

Patch 8.2.0172
Problem:    Coverity warning for not restoring character.
Solution:   Restore the character also in case of failure.
Files:      src/vim9script.c

Patch 8.2.0173
Problem:    Build fails with old compiler.
Solution:   Do not use anonymous unions. (John Marriott)
Files:      src/vim9compile.c, src/evalvars.c, src/list.c, src/structs.h,
            src/evalfunc.c, src/channel.c, src/if_mzsch.c, src/if_py_both.h

Patch 8.2.0174
Problem:    Various commands not completely tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5551)
Files:      src/testdir/test_excmd.vim, src/testdir/test_fnameescape.vim,
            src/testdir/test_ga.vim, src/testdir/test_global.vim,
            src/testdir/test_move.vim, src/testdir/test_options.vim,
            src/testdir/test_packadd.vim, src/testdir/test_sort.vim,
            src/testdir/test_substitute.vim, src/testdir/test_textformat.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0175
Problem:    Crash when removing list element in map().
Solution:   Lock the list. (closes #2652)
Files:      src/testdir/test_filter_map.vim, src/list.c

Patch 8.2.0176
Problem:    Generating os headers does not work for Swedish.
Solution:   Set the locale to C. (Christian Brabandt, closes #5258)
Files:      src/osdef.sh

Patch 8.2.0177
Problem:    Memory leak in get_tags().
Solution:   Free matches when finding a pseudo-tag line. (Dominique Pellé,
            closes #5553)
Files:      src/tag.c

Patch 8.2.0178
Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes #5548)
Files:      src/os_win32.c

Patch 8.2.0179
Problem:    Still a few places where range() does not work.
Solution:   Fix using range() causing problems.
Files:      src/terminal.c, src/testdir/test_functions.vim,
            src/testdir/test_popupwin.vim, src/popupwin.c, src/tag.c,
            src/testdir/dumps/Test_popupwin_20.dump,
            src/testdir/dumps/Test_popupwin_21.dump,
            src/testdir/dumps/Test_popup_settext_07.dump, src/globals.h

Patch 8.2.0180
Problem:    Test for wrapmargin fails if terminal is not 80 columns.
Solution:   Vertical split the window. (Ken Takata, closes #5554)
Files:      src/testdir/test_textformat.vim

Patch 8.2.0181
Problem:    Problems parsing :term arguments.
Solution:   Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
            closes #5536)
Files:      src/channel.c, src/proto/channel.pro, src/structs.h,
            src/terminal.c, src/testdir/test_terminal.vim

Patch 8.2.0182
Problem:    Min() and max() materialize a range() list.
Solution:   Compute the result without materializing the list. (#5541)
Files:      src/evalfunc.c

Patch 8.2.0183
Problem:    Tests fail when the float feature is disabled.
Solution:   Skip tests that don't work without float support.
Files:      src/testdir/shared.vim, src/testdir/test_blob.vim,
            src/testdir/test_channel.vim, src/testdir/test_cscope.vim,
            src/testdir/test_execute_func.vim, src/testdir/test_expr.vim,
            src/testdir/test_functions.vim, src/testdir/test_lambda.vim,
            src/testdir/test_listdict.vim, src/testdir/test_lua.vim,
            src/testdir/test_options.vim, src/testdir/test_partial.vim,
            src/testdir/test_ruby.vim, src/testdir/test_sort.vim,
            src/testdir/test_timers.vim, src/testdir/test_true_false.vim,
            src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vimscript.vim, src/testdir/test_regexp_latin.vim,
            src/testdir/test_glob2regpat.vim

Patch 8.2.0184
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
Files:      src/testdir/test_blob.vim

Patch 8.2.0185
Problem:    Vim9 script: cannot use "if has()" to skip lines.
Solution:   Evaluate constant expression at runtime.
Files:      src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/userfunc.c, src/testdir/test_vim9_script.vim

Patch 8.2.0186
Problem:    A couple of tests may fail when features are missing.
Solution:   Check for features. (Dominique Pellé, closes #5561)
Files:      src/testdir/test_functions.vim, src/testdir/test_highlight.vim

Patch 8.2.0187
Problem:    Redundant code.
Solution:   Remove unused assignments. (Dominique Pellé, closes #5557)
Files:      src/vim9compile.c

Patch 8.2.0188
Problem:    Check commands don't work well with Vim9 script.
Solution:   Improve constant expression handling.
Files:      src/vim9compile.c, src/testdir/check.vim,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0189
Problem:    cd() with NULL argument crashes.
Solution:   Check for NULL. (Ken Takata, closes #5558)
Files:      src/testdir/test_cd.vim, src/ex_docmd.c

Patch 8.2.0190
Problem:    Kotlin files are not recognized.
Solution:   Detect Kotlin files. (Alkeryn, closes #5560)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0191
Problem:    Cannot put a terminal in a popup window.
Solution:   Allow opening a terminal in a popup window.  It will always have
            keyboard focus until closed.
Files:      src/popupwin.c, src/proto/popupwin.pro, src/terminal.c,
            src/proto/terminal.pro, src/macros.h, src/mouse.c,
            src/highlight.c, src/drawline.c, src/optionstr.c, src/window.c,
            src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_1.dump,
            src/testdir/dumps/Test_terminal_popup_2.dump,
            src/testdir/dumps/Test_terminal_popup_3.dump

Patch 8.2.0192 (after 8.2.0191)
Problem:    Build failure without +terminal feature.
Solution:   Add #ifdefs.
Files:      src/popupwin.c

Patch 8.2.0193 (after 8.2.0191)
Problem:    Still build failure without +terminal feature.
Solution:   Add more #ifdefs.
Files:      src/macros.h

Patch 8.2.0194 (after 8.2.0193)
Problem:    Some commands can cause problems in terminal popup.
Solution:   Disallow more commands.
Files:      src/macros.h, src/popupwin.c, src/proto/popupwin.pro,
            src/arglist.c, src/ex_docmd.c, src/window.c,
            src/testdir/test_terminal.vim

Patch 8.2.0195
Problem:    Some tests fail when run in the GUI.
Solution:   Make sure the window width is enough.  In the GUI run terminal Vim
            in the terminal, if possible.
Files:      src/testdir/test_highlight.vim, src/testdir/check.vim,
            src/testdir/test_terminal.vim

Patch 8.2.0196
Problem:    Blocking commands for a finished job in a popup window.
Solution:   Do not block commands if the job has finished.  Adjust test.
Files:      src/popupwin.c, src/testdir/test_popupwin.vim, src/window.c,
            src/terminal.c, src/proto/terminal.pro

Patch 8.2.0197
Problem:    Some Ex commands not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5565)
Files:      src/testdir/test_global.vim, src/testdir/test_help.vim,
            src/testdir/test_help_tagjump.vim, src/testdir/test_options.vim,
            src/testdir/test_substitute.vim, src/testdir/test_textformat.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0198
Problem:    No tests for y/n prompt.
Solution:   Add tests. (Dominique Pellé, closes #5564)
Files:      src/testdir/test_messages.vim

Patch 8.2.0199
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix script-local function use.
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim,
            src/userfunc.c

Patch 8.2.0200
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix storing global variable.  Make script
            variables work.
Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/evalvars.c,
            src/proto/evalvars.pro, src/testdir/test_vim9_script.vim,
            src/misc1.c, src/proto/misc1.pro

Patch 8.2.0201
Problem:    Cannot assign to an imported variable.
Solution:   Make it work.
Files:      src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro,
            src/userfunc.c, src/testdir/test_vim9_script.vim

Patch 8.2.0202
Problem:    When 'lazyredraw' is set the window title may not be updated.
Solution:   Set "do_redraw" before entering the main loop. (Jason Franklin)
Files:      src/main.c

Patch 8.2.0203
Problem:    :helptags and some other functionality not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5567)
Files:      src/testdir/test_compiler.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_excmd.vim, src/testdir/test_filechanged.vim,
            src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim,
            src/testdir/test_timers.vim, src/testdir/test_window_cmd.vim

Patch 8.2.0204
Problem:    Crash when using winnr('j') in a popup window.
Solution:   Do not search for neighbors in a popup window. (closes #5568)
Files:      src/window.c, src/testdir/test_popupwin.vim, src/evalwindow.c

Patch 8.2.0205
Problem:    Error code E899 used twice.
Solution:   Use E863 for the terminal in popup error.
Files:      src/popupwin.c

Patch 8.2.0206
Problem:    Calling Vim9 function using default argument fails.
Solution:   Give an appropriate error. (closes #5572)
Files:      src/testdir/test_vim9_script.vim, src/vim9compile.c,
            src/vim9execute.c

Patch 8.2.0207
Problem:    Crash when missing member type on list argument.
Solution:   Check for invalid type. (closes #5572)
Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

Patch 8.2.0208
Problem:    Fnamemodify() does not apply ":~" when followed by ":.".
Solution:   Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
            Matsumoto, closes #5577)
Files:      runtime/doc/cmdline.txt, src/filepath.c,
            src/testdir/test_fnamemodify.vim

Patch 8.2.0209
Problem:    Function a bit far away from where it's used.
Solution:   Move function close to where it's used. (Ken Takata, closes #5569)
Files:      src/fileio.c, src/filepath.c

Patch 8.2.0210
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the field.
Files:      src/vim9compile.c

Patch 8.2.0211
Problem:    Test for ANSI colors fails without an "ls" command.
Solution:   Use "dir". (Ken Takata, closes #5582)
Files:      src/testdir/test_functions.vim

Patch 8.2.0212
Problem:    Missing search/substitute pattern hardly tested.
Solution:   Add test_clear_search_pat() and tests. (Yegappan Lakshmanan,
            closes #5579)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
            src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
            src/search.c, src/testdir/test_quickfix.vim,
            src/testdir/test_search.vim, src/testdir/test_sort.vim,
            src/testdir/test_substitute.vim, src/testing.c

Patch 8.2.0213
Problem:    Configure does not recognize gcc 10.0 and later.
Solution:   Adjust the pattern matching the version number. (Sergei
            Trofimovich, closes #5580)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0214
Problem:    A popup window with a terminal can be made hidden.
Solution:   Disallow hiding a terminal popup.
Files:      src/testdir/test_terminal.vim, src/popupwin.c,
            src/testdir/dumps/Test_terminal_popup_4.dump

Patch 8.2.0215 (after 8.2.0208)
Problem:    Wrong file name shortening. (Ingo Karkat)
Solution:   Better check for path separator. (Yasuhiro Matsumoto,
            closes #5583, closes #5584)
Files:      src/filepath.c, src/testdir/test_fnamemodify.vim

Patch 8.2.0216
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests. Fix :disassemble output. Make catch with pattern
            work.
Files:      src/testdir/test_vim9_script.vim, src/vim9execute.c,
            src/vim9compile.c

Patch 8.2.0217 (after 8.2.0214)
Problem:    Terminal test fails on Mac.
Solution:   Add a short wait.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0218
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0219 (after 8.2.0217)
Problem:    Terminal test still fails on Mac.
Solution:   Skip part of the test on Mac.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0220
Problem:    Terminal test did pass on Mac.
Solution:   Remove the skip again.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0221
Problem:    No test for Vim9 += and ..=.
Solution:   Add tests.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0222
Problem:    Vim9: optional function arguments don't work yet.
Solution:   Implement optional function arguments.
Files:      src/userfunc.c, src/vim9compile.c, src/vim9execute.c,
            src/structs.h, src/testdir/test_vim9_script.vim

Patch 8.2.0223
Problem:    Some instructions not yet tested.
Solution:   Disassemble more instructions.  Move tests to a new file.  Compile
            call to s:function().
Files:      src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak,
            src/testdir/test_vim9_disassemble.vim, src/vim9compile.c,
            src/userfunc.c, src/proto/userfunc.pro, src/vim.h

Patch 8.2.0224
Problem:    compiling :elseif not tested yet.
Solution:   Add test for :elseif.  Fix generating jumps.
Files:      src/testdir/test_vim9_script.vim, src/vim9compile.c,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0225
Problem:    compiling lambda not tested yet.
Solution:   Add test for lambda and funcref. Drop unused instruction arg.
Files:      src/testdir/test_vim9_disassemble.vim, src/vim9.h,
            src/vim9execute.c

Patch 8.2.0226
Problem:    Compiling for loop not tested.
Solution:   Add a test.  Make variable initialization work for more types.
Files:      src/testdir/test_vim9_disassemble.vim, src/vim9compile.c

Patch 8.2.0227
Problem:    Compiling a few instructions not tested.
Solution:   Add more test cases.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0228
Problem:    Configure does not recognize gcc version on BSD.
Solution:   Do not use "\+" in the pattern matching the version number. (Ozaki
            Kiichi, closes #5590)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0229
Problem:    Compare instructions not tested.
Solution:   Add test cases.  Fix disassemble with line continuation.
Files:      src/testdir/test_vim9_disassemble.vim, src/vim9execute.c,
            src/vim9compile.c

Patch 8.2.0230
Problem:    Terminal popup test is flaky.
Solution:   Increase wait time a bit.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0231
Problem:    Silent system command may clear the screen.
Solution:   Do not clear the screen in t_te.
Files:      src/term.c

Patch 8.2.0232
Problem:    The :compiler command causes a crash. (Daniel Steinberg)
Solution:   Do not use the script index if it isn't set.
Files:      src/ex_docmd.c, src/testdir/test_compiler.vim

Patch 8.2.0233
Problem:    Crash when using garbagecollect() in between rand().
Solution:   Redesign the rand() and srand() implementation. (Yasuhiro
            Matsumoto, closes #5587, closes #5588)
Files:      src/evalfunc.c, src/testdir/test_random.vim,
            runtime/doc/testing.txt, runtime/doc/eval.txt

Patch 8.2.0234
Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595)
Files:      src/message_test.c

Patch 8.2.0235
Problem:    Draw error when an empty group is removed from 'statusline'.
Solution:   Do not use highlighting from a removed group.
Files:      src/buffer.c, src/testdir/test_statusline.vim,
            src/testdir/dumps/Test_statusline_1.dump

Patch 8.2.0236
Problem:    MS-Windows uninstall doesn't delete vimtutor.bat.
Solution:   Change directory before deletion. (Ken Takata, closes #5603)
Files:      src/uninstall.c

Patch 8.2.0237
Problem:    Crash when setting 'wincolor' on finished terminal window.
            (Bakudankun)
Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
            #5607, closes #5610)
Files:      src/terminal.c, src/testdir/test_terminal.vim

Patch 8.2.0238
Problem:    MS-Windows: job_stop() results in exit value zero.
Solution:   Call TerminateJobObject() with -1 instead of 0. (Yasuhiro
            Matsumoto, closes #5150, closes #5614)
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 8.2.0239
Problem:    MS-Windows: 'env' job option does not override existing
            environment variables.  (Tim Pope)
Solution:   Set the environment variables later. (Yasuhiro Matsumoto,
            closes #5485, closes #5608)
Files:      src/os_win32.c, src/testdir/test_channel.vim

Patch 8.2.0240
Problem:    Using memory after it was freed. (Dominique Pellé)
Solution:   Do not mix conversion buffer with other buffer.
Files:      src/viminfo.c, src/vim.h

Patch 8.2.0241
Problem:    Crash when setting 'buftype' to "quickfix".
Solution:   Check that error list is not NULL. (closes #5613)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.2.0242
Problem:    Preview popup window test fails with long directory name. (Jakub
            Kądziołka)
Solution:   Use "silent cd". (closes #5615)
Files:      src/testdir/test_popupwin.vim

Patch 8.2.0243
Problem:    Insufficient code coverage for ex_docmd.c functions.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5618)
Files:      src/testdir/Make_all.mak, src/testdir/test_arglist.vim,
            src/testdir/test_buffer.vim, src/testdir/test_cd.vim,
            src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_excmd.vim, src/testdir/test_mapping.vim,
            src/testdir/test_quickfix.vim, src/testdir/test_search.vim,
            src/testdir/test_sort.vim, src/testdir/test_source.vim,
            src/testdir/test_substitute.vim, src/testdir/test_undo.vim,
            src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0244
Problem:    Compiler warning in Lua interface.
Solution:   Add type cast. (Ken Takata, closes #5621)
Files:      src/if_lua.c

Patch 8.2.0245
Problem:    MSVC: error message if the auto directory already exists.
Solution:   Add "if not exists". (Ken Takata, closes #5620)
Files:      src/Make_mvc.mak

Patch 8.2.0246
Problem:    MSVC: deprecation warnings with Ruby.
Solution:   Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata,
            closes #5622)
Files:      src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/vim.h,
            src/vimio.h

Patch 8.2.0247
Problem:    Misleading comment in NSIS installer script.
Solution:   Negate the meaning of the comment. (Ken Takata, closes #5627)
Files:      nsis/gvim.nsi

Patch 8.2.0248
Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes #5626)
Files:      src/Make_mvc.mak, src/dosinst.h, src/vim.h, src/vimio.h,
            src/winclip.c, Filelist

Patch 8.2.0249
Problem:    MS-Windows: various warnings.
Solution:   Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_.
            (Ken Takata, closes #5625)
Files:      src/GvimExt/Makefile, src/Make_mvc.mak

Patch 8.2.0250
Problem:    test_clear_search_pat() is unused.
Solution:   Remove the function. (Yegappan Lakshmanan, closes #5624)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
            src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
            src/search.c, src/testdir/test_writefile.vim, src/testing.c

Patch 8.2.0251
Problem:    A couple of function return types can be more specific.
Solution:   Use a better return type. (Ken Takata, closes #5629)
Files:      src/evalfunc.c, src/globals.h

Patch 8.2.0252
Problem:    Windows compiler warns for using size_t.
Solution:   Change to int. (Mike Williams)
Files:      src/vim9compile.c

Patch 8.2.0253
Problem:    Crash when using :disassemble without argument. (Dhiraj Mishra)
Solution:   Check for missing argument. (Dominique Pellé, closes #5635,
            closes #5637)
Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim,
            src/ex_cmds.h

Patch 8.2.0254
Problem:    Compiler warning for checking size_t to be negative.
Solution:   Only check for zero. (Zoltan Arpadffy)
Files:      src/vim9compile.c

Patch 8.2.0255
Problem:    VMS: missing files in build.
Solution:   Add the files. (Zoltan Arpadffy)
Files:      src/Make_vms.mms

Patch 8.2.0256
Problem:    Time and timer related code is spread out.
Solution:   Move time and timer related code to a new file. (Yegappan
            Lakshmanan, closes #5604)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/evalfunc.c, src/ex_cmds.c, src/ex_cmds2.c, src/main.c,
            src/memline.c, src/misc1.c, src/misc2.c, src/proto.h,
            src/proto/ex_cmds.pro, src/proto/ex_cmds2.pro, src/proto/main.pro,
            src/proto/memline.pro, src/proto/misc1.pro, src/proto/misc2.pro,
            src/proto/time.pro, src/time.c

Patch 8.2.0257
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/evalwindow.c,
            src/proto/evalwindow.pro, src/testdir/test_cmdline.vim,
            src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0258
Problem:    ModifyOtherKeys cannot be temporarily disabled.
Solution:   Add echoraw() with an example for modifyOtherKeys.
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.vim,
            src/testdir/dumps/Test_functions_echoraw.dump

Patch 8.2.0259
Problem:    Terminal in popup test sometimes fails.
Solution:   Clear the command line.
Files:      src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0260
Problem:    Several lines of code are duplicated.
Solution:   Move duplicated code to a function. (Yegappan Lakshmanan,
            closes #5330)
Files:      src/option.c, src/os_unix.c, src/os_win32.c, src/proto/term.pro,
            src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
            src/term.c

Patch 8.2.0261
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5645)
Files:      src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_exists.vim, src/testdir/test_filechanged.vim,
            src/testdir/test_fileformat.vim, src/testdir/test_mapping.vim,
            src/testdir/test_marks.vim, src/testdir/test_normal.vim,
            src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim,
            src/testdir/test_tabpage.vim, src/testdir/test_visual.vim,
            src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim

Patch 8.2.0262 (after 8.2.0261)
Problem:    Fileformat test fails on MS-Windows.
Solution:   Set fileformat of buffer.
Files:      src/testdir/test_fileformat.vim

Patch 8.2.0263
Problem:    A few new Vim9 messages are not localized.
Solution:   Add the gettext wrapper. (Dominique Pellé, closes #5647)
Files:      src/vim9compile.c, src/vim9execute.c

Patch 8.2.0264 (after 8.2.0262)
Problem:    Fileformat test still fails on MS-Windows.
Solution:   Set fileformat of buffer in the right place.
Files:      src/testdir/test_fileformat.vim

Patch 8.2.0265
Problem:    "eval" after "if 0" doesn't check for following command.
Solution:   Add "eval" to list of commands that check for a following command.
            (closes #5640)
Files:      src/ex_docmd.c, src/testdir/test_expr.vim

Patch 8.2.0266
Problem:    Terminal in popup test sometimes fails on Mac.
Solution:   Add a short delay.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0267
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes #5642)
Files:      src/userfunc.c, src/testdir/test_user_func.vim

Patch 8.2.0268 (after 8.2.0267)
Problem:    Trycatch test fails.
Solution:   When calling function fails only check for following command, do
            not give another error.
Files:      src/userfunc.c

Patch 8.2.0269
Problem:    Vim9: operator after list index does not work. (Yasuhiro
            Matsumoto)
Solution:   After indexing a list change the type to the list member type.
            (closes #5651)
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0270
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5649)
Files:      src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
            src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_excmd.vim, src/testdir/test_expand.vim,
            src/testdir/test_filetype.vim, src/testdir/test_findfile.vim,
            src/testdir/test_join.vim, src/testdir/test_move.vim,
            src/testdir/test_normal.vim, src/testdir/test_registers.vim,
            src/testdir/test_source.vim, src/testdir/test_tabpage.vim,
            src/testdir/test_tagjump.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_visual.vim, src/testdir/test_window_cmd.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0271
Problem:    The "num64" feature is available everywhere and building without
            it causes problems.
Solution:   Graduate the "num64" feature. (James McCoy, closes #5650)
Files:      src/evalfunc.c, src/feature.h, src/message.c, src/structs.h,
            src/testdir/test_expr.vim, src/testdir/test_largefile.vim,
            src/testdir/test_sort.vim, src/testdir/test_vimscript.vim,
            src/version.c

Patch 8.2.0272
Problem:    ":helptags ALL" gives error for directories without write
            permission. (Matěj Cepl)
Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes #5026,
            closes #5652)
Files:      src/ex_cmds.c, src/testdir/test_help.vim

Patch 8.2.0273
Problem:    MS-Windows uninstall may delete wrong batch file.
Solution:   Add specific marker in the generated batch file. (Ken Takata,
            closes #5654)
Files:      src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c

Patch 8.2.0274
Problem:    Hang with combination of feedkeys(), Ex mode and :global.
            (Yegappan Lakshmanan)
Solution:   Add the pending_exmode_active flag.
Files:      src/ex_docmd.c, src/globals.h, src/getchar.c,
            src/testdir/test_ex_mode.vim

Patch 8.2.0275
Problem:    Some Ex code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5659)
Files:      src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim,
            src/testdir/test_excmd.vim, src/testdir/test_quickfix.vim,
            src/testdir/test_search.vim, src/testdir/test_swap.vim,
            src/testdir/test_window_cmd.vim

Patch 8.2.0276
Problem:    Vim9: not allowing space before ")" in function call is too
            restrictive. (Ben Jackson)
Solution:   Skip space before the ")".  Adjust other space checks.
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0277
Problem:    Vim9: not all instructions covered by tests.
Solution:   Add more test cases.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0278
Problem:    Channel test is flaky on Mac.
Solution:   Reset variable before sending message.
Files:      src/testdir/test_channel.vim

Patch 8.2.0279
Problem:    Vim9: no test for deleted :def function.
Solution:   Add a test.  Clear uf_cleared flag when redefining a function.
Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

Patch 8.2.0280
Problem:    Vim9: throw in :def function not caught higher up.
Solution:   Set "need_rethrow".
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

Patch 8.2.0281
Problem:    Two placed signs in the same line are not combined.  E.g. in the
            terminal debugger a breakpoint and the PC cannot be both be
            displayed.
Solution:   Combine the sign column and line highlight attributes.
Files:      src/sign.c, src/testdir/test_signs.vim,
            src/testdir/dumps/Test_sign_cursor_3.dump,
            src/testdir/dumps/Test_sign_cursor_4.dump

Patch 8.2.0282
Problem:    Vim9: setting number option not tested.
Solution:   Add more tests.   Fix assigning to global variable.
Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
            src/vim9execute.c

Patch 8.2.0283
Problem:    Vim9: failing to load script var not tested.
Solution:   Add more tests.   Fix using s: in old script.
Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0284
Problem:    Vim9: assignment test fails.
Solution:   Avoid duplicating "s:".
Files:      src/vim9compile.c

Patch 8.2.0285
Problem:    Unused error message. Cannot create s:var.
Solution:   Remove the error message. Make assignment to s:var work.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0286
Problem:    Cannot use popup_close() for a terminal popup.
Solution:   Allow using popup_close(). (closes #5666)
Files:      src/popupwin.c, runtime/doc/popup.txt,
            src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_5.dump,
            src/testdir/dumps/Test_terminal_popup_6.dump

Patch 8.2.0287
Problem:    Vim9: return in try block not tested; catch with pattern not
            tested.
Solution:   Add tests.  Make it work.
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

Patch 8.2.0288
Problem:    Vim9: some float and blob operators not tested.
Solution:   Add float and blob tests.  Fix addition.
Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c

Patch 8.2.0289
Problem:    Vim9: :echo did not clear the rest of the line.
Solution:   Call msg_clr_eos(). (Ken Takata, closes #5668)
Files:      src/vim9execute.c

Patch 8.2.0290
Problem:    Running individual test differs from all tests.
Solution:   Pass on environment variables. (Yee Cheng Chin, closes #5672)
Files:      src/testdir/Makefile, src/testdir/README.txt

Patch 8.2.0291
Problem:    Vim9: assigning [] to list<string> doesn't work.
Solution:   Use void for empty list and dict. (Ken Takata, closes #5669)
Files:      src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim

Patch 8.2.0292
Problem:    Vim9: CHECKNR and CHECKTYPE instructions not tested.
Solution:   Add tests.
Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0293
Problem:    Various Ex commands not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5673)
Files:      src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim,
            src/testdir/test_expand.vim, src/testdir/test_filetype.vim,
            src/testdir/test_filter_cmd.vim, src/testdir/test_global.vim,
            src/testdir/test_normal.vim, src/testdir/test_plus_arg_edit.vim,
            src/testdir/test_quickfix.vim, src/testdir/test_trycatch.vim,
            src/testdir/test_vimscript.vim

Patch 8.2.0294
Problem:    Cannot use Ex command that is also a function name.
Solution:   Recognize an Ex command by a colon prefix.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
            runtime/doc/vim9.txt

Patch 8.2.0295
Problem:    Highlighting for :s wrong when using different separator.
Solution:   Use separate argument for search direction and separator. (Rob
            Pilling, closes #5665)
Files:      src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/normal.c,
            src/proto/search.pro, src/quickfix.c, src/search.c, src/spell.c,
            src/tag.c, src/testdir/dumps/Test_incsearch_substitute_15.dump,
            src/testdir/test_search.vim

Patch 8.2.0296
Problem:    Mixing up "long long" and __int64 may cause problems. (John
            Marriott)
Solution:   Pass varnumber_T to vim_snprintf().  Add v:numbersize.
Files:      src/message.c, src/eval.c, src/fileio.c, src/json.c, src/ops.c,
            src/vim.h, src/structs.h, src/evalvars.c, runtime/doc/eval.txt,
            runtime/doc/various.txt, src/testdir/test_eval_stuff.vim

Patch 8.2.0297
Problem:    Compiler warnings for the Ruby interface.
Solution:   Undefine a few macros, fix initialization. (Ozaki Kiichi,
            closes #5677)
Files:      src/if_ruby.c

Patch 8.2.0298
Problem:    Vim9 script: cannot start command with a string constant.
Solution:   Recognize expression starting with '('.
Files:      src/ex_docmd.c, src/vim9compile.c,
            src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt

Patch 8.2.0299
Problem:    Vim9: ISN_STORE with argument not tested.  Some cases in tv2bool()
            not tested.
Solution:   Add tests.  Add test_unknown() and test_void().
Files:      src/testing.c, src/proto/testing.pro, src/evalfunc.c,
            src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_expr.vim, runtime/doc/eval.txt,
            runtime/doc/testing.txt

Patch 8.2.0300
Problem:    Vim9: expression test fails without channel support.
Solution:   Add has('channel') check.
Files:      src/testdir/test_vim9_expr.vim

Patch 8.2.0301
Problem:    Insufficient testing for exception handling and the "attention"
            prompt.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5681)
Files:      src/testdir/test_swap.vim, src/testdir/test_trycatch.vim

Patch 8.2.0302
Problem:    Setting 'term' may cause error in TermChanged autocommand.
Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
            is to be executed. (closes #5682)
Files:      src/term.c, src/testdir/test_autocmd.vim

Patch 8.2.0303
Problem:    TermChanged test fails in the GUI.
Solution:   Skip the test when running the GUI.
Files:      src/testdir/test_autocmd.vim

Patch 8.2.0304
Problem:    Terminal test if failing on some systems.
Solution:   Wait for the job to finish. (James McCoy)
Files:      src/testdir/test_terminal.vim

Patch 8.2.0305
Problem:    Relativenumber test fails on some systems. (James McCoy)
Solution:   Clear the command line.
Files:      src/testdir/test_number.vim,
            src/testdir/dumps/Test_relnr_colors_2.dump,
            src/testdir/dumps/Test_relnr_colors_3.dump

Patch 8.2.0306
Problem:    Vim9: :substitute(pat(repl does not work in Vim9 script.
Solution:   Remember starting with a colon. (closes #5676)
Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

Patch 8.2.0307
Problem:    Python 3 vim.eval not well tested.
Solution:   Add a test. (Dominique Pellé, closes #5680)
Files:      src/testdir/test_python3.vim

Patch 8.2.0308
Problem:    'showbreak' does not work for a very long line. (John Little)
Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
            closes #5684)
Files:      src/drawline.c, src/testdir/test_breakindent.vim

Patch 8.2.0309
Problem:    Window-local values have confusing name.
Solution:   Rename w_p_bri* to w_briopt_*.
Files:      src/structs.h, src/indent.c, src/drawline.c

Patch 8.2.0310
Problem:    Autocmd test fails on a slow system.
Solution:   Adjust the expectations. (James McCoy, closes #5685)
Files:      src/testdir/test_autocmd.vim

Patch 8.2.0311
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.
Files:      src/testdir/test_vim9_script.vim, src/scriptfile.c

Patch 8.2.0312
Problem:    Vim9: insufficient script tests.
Solution:   Add more tests.  Make "import * as Name" work.
Files:      src/testdir/test_vim9_script.vim, src/vim9script.c,
            src/proto/vim9script.pro, src/vim9compile.c

Patch 8.2.0313
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Make import of alphanumeric name work.
Files:      src/testdir/test_vim9_script.vim, src/vim9script.c

Patch 8.2.0314
Problem:    Short name not set for terminal buffer.
Solution:   Set the short name. (closes #5687)
Files:      src/terminal.c, src/testdir/test_terminal.vim

Patch 8.2.0315
Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
Files:      src/structs.h, src/json.c

Patch 8.2.0316
Problem:    ex_getln.c code has insufficient test coverage.
Solution:   Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693)
Files:      src/cmdhist.c, src/testdir/test_cmdline.vim,
            src/testdir/test_functions.vim, src/testdir/test_history.vim,
            src/testdir/test_menu.vim

Patch 8.2.0317
Problem:    MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build.
Solution:   Move where CFLAGS is updated. (Ken Takata, closes #5692)
Files:      src/Make_mvc.mak

Patch 8.2.0318
Problem:    Vim9: types not sufficiently tested.
Solution:   Add tests with more types.
Files:      src/globals.h, src/vim9compile.c,
            src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim

Patch 8.2.0319
Problem:    File missing in distribution, comments outdated.
Solution:   Correct path of README file.  Update comments.
Files:      Filelist, src/evalvars.c, src/register.c, src/if_python3.c

Patch 8.2.0320
Problem:    No Haiku support.
Solution:   Add support for Haiku. (Emir Sarı, closes #5605)
Files:      Filelist, runtime/doc/Makefile, runtime/doc/eval.txt,
            runtime/doc/gui.txt, runtime/doc/help.txt,
            runtime/doc/options.txt, runtime/doc/os_haiku.txt,
            runtime/doc/starting.txt, runtime/doc/tags,
            runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
            src/INSTALL, src/Makefile, src/auto/configure, src/configure.ac,
            src/evalfunc.c, src/feature.h, src/fileio.c, src/globals.h,
            src/gui.c, src/gui.h, src/gui_haiku.cc, src/gui_haiku.h,
            src/mbyte.c, src/menu.c, src/misc1.c, src/mouse.c, src/option.h,
            src/os_haiku.h, src/os_haiku.rdef, src/os_unix.c, src/os_unix.h,
            src/osdef1.h.in, src/proto.h, src/proto/gui_haiku.pro, src/pty.c,
            src/screen.c, src/structs.h, src/term.c, src/version.c, src/vim.h

Patch 8.2.0321
Problem:    Vim9: ":execute" does not work yet.
Solution:   Add ISN_EXECUTE. (closes #5699) Also make :echo work with more
            than one argument.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0322
Problem:    Vim9: error checks not tested.
Solution:   Add more test cases.  Avoid error for function loaded later.
Files:      src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim

Patch 8.2.0323
Problem:    Vim9: calling a function that is defined later is slow.
Solution:   Once the function is found update the instruction so it can be
            called directly.
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0324
Problem:    Text property not updated correctly when inserting/deleting.
Solution:   Use the right column when deleting. Make zero-width text
            properties respect start_incl and end_incl. (Axel Forsman,
            closes #5696, closes #5679)
Files:      src/change.c, src/textprop.c, src/testdir/test_listener.vim,
            src/testdir/test_textprop.vim

Patch 8.2.0325
Problem:    Ex_getln.c code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5702)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_functions.vim, src/testdir/test_history.vim,
            src/testdir/test_options.vim

Patch 8.2.0326
Problem:    Compiler warning for using uninitialized variable. (Yegappan
            Lakshmanan)
Solution:   Do not jump to failed but return.
Files:      src/vim9execute.c

Patch 8.2.0327
Problem:    Crash when opening and closing two popup terminal windows.
Solution:   Check that prevwin is valid. (closes #5707)
Files:      src/popupwin.c, src/testdir/test_terminal.vim

Patch 8.2.0328
Problem:    No redraw when leaving terminal-normal mode in a terminal popup
            window.
Solution:   Redraw the popup window. (closes #5708)
Files:      src/macros.h, src/vim.h, src/terminal.c, src/drawscreen.c,
            src/move.c, src/popupwin.c, src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_7.dump,
            src/testdir/dumps/Test_terminal_popup_8.dump

Patch 8.2.0329
Problem:    Popup filter converts 0x80 bytes.
Solution:   Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706)
Files:      src/popupwin.c, src/testdir/test_popupwin.vim

Patch 8.2.0330
Problem:    Build error with popup window but without terminal.
Solution:   Add #ifdef.
Files:      src/popupwin.c

Patch 8.2.0331
Problem:    Internal error when using test_void() and test_unknown().
            (Dominique Pellé)
Solution:   Give a normal error.
Files:      src/evalfunc.c, src/testdir/test_functions.vim,
            src/testdir/test_vimscript.vim

Patch 8.2.0332
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5710)
Files:      src/testdir/test_arabic.vim, src/testdir/test_cmdline.vim

Patch 8.2.0333
Problem:    Terminal in popup test is flaky.
Solution:   Make sure redraw is done before opening the popup.
Files:      src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0334
Problem:    Abort called when using test_void(). (Dominique Pellé)
Solution:   Only give an error, don't abort.
Files:      src/message.c, src/proto/message.pro, src/evalfunc.c,
            src/eval.c, src/json.c, src/testdir/test_functions.vim

Patch 8.2.0335
Problem:    No completion for :disassemble.
Solution:   Make completion work.  Also complete script-local functions if the
            name starts with "s:".
Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
            runtime/doc/vim9.txt

Patch 8.2.0336
Problem:    Vim9: insufficient test coverage for compiling.
Solution:   Add more tests.
Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
            src/vim9.h, src/vim9compile.c, src/vim9execute.c

Patch 8.2.0337
Problem:    Build fails on a few systems.
Solution:   Use vim_snprintf() instead of snprintf().
Files:      src/cmdexpand.c

Patch 8.2.0338
Problem:    Build failure without the channel feature.
Solution:   Add #ifdef
Files:      src/vim9compile.c

Patch 8.2.0339
Problem:    Vim9: function return type may depend on arguments.
Solution:   Instead of a fixed return type use a function to figure out the
            return type.
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c,
            src/evalbuffer.c, src/proto/evalbuffer.pro,
            src/testdir/test_vim9_script.vim

Patch 8.2.0340
Problem:    Vim9: function and partial types not tested.
Solution:   Support more for partial, add tests.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0341
Problem:    Using ":for" in Vim9 script gives an error.
Solution:   Pass the LET_NO_COMMAND flag. (closes #5715)
Files:      src/eval.c, src/testdir/test_vim9_script.vim

Patch 8.2.0342
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5717)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_history.vim, src/testdir/test_iminsert.vim

Patch 8.2.0343
Problem:    Vim9: using wrong instruction, limited test coverage.
Solution:   Use ISN_PUSHJOB.  Add a few more tests.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0344
Problem:    ":def" not skipped properly.
Solution:   Add CMD_def to list of commands the require evaluation even when
            not being executed.
Files:      src/ex_docmd.c

Patch 8.2.0345
Problem:    Compiler warning when building without the float feature.
Solution:   Add #ifdef. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.0346
Problem:    Vim9: finding common list type not tested.
Solution:   Add more tests.  Fix listing function.  Fix overwriting type.
Files:      src/vim9compile.c, src/userfunc.c,
            src/testdir/test_vim9_script.vim, src/testdir/runtest.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0347
Problem:    Various code not covered by tests.
Solution:   Add more test coverage. (Yegappan Lakshmanan, closes #5720)
Files:      src/testdir/gen_opt_test.vim, src/testdir/test86.in,
            src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim,
            src/testdir/test_ex_mode.vim, src/testdir/test_history.vim

Patch 8.2.0348
Problem:    Vim9: not all code tested.
Solution:   Add a few more tests. fix using "b:" in literal dictionary.
Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c,
            src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim

Patch 8.2.0349
Problem:    Vim9: constant expression not well tested.
Solution:   Add tests for "if" with constant expression.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0350
Problem:    Vim9: expression tests don't use recognized constants.
Solution:   Recognize "true" and "false" as constants.  Make skipping work for
            assignment and expression evaluation.
Files:      src/vim9compile.c

Patch 8.2.0351
Problem:    Terminal in popup test is still a bit flaky.
Solution:   Clear and redraw before opening the popup.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0352
Problem:    FreeBSD: test for sourcing utf-8 is skipped.
Solution:   Run the matchadd_conceal test separately to avoid that setting
            'term' to "ansi" causes problems for other tests. (Ozaki Kiichi,
            closes #5721)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim,
            src/testdir/test_source_utf8.vim

Patch 8.2.0353
Problem:    Vim9: while loop not tested.
Solution:   Add test with "while", "break" and "continue"
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0354
Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
Solution:   Remove it, it was only for debugging.
Files:      src/if_python3.c

Patch 8.2.0355
Problem:    Vim9: str_val is confusing, it's a number
Solution:   Rename to stnr_val.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c

Patch 8.2.0356
Problem:    MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly.
Solution:   Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken
            Takata, closes #5726)
Files:      src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.vim

Patch 8.2.0357
Problem:    Cannot delete a text property matching both id and type. (Axel
            Forsman)
Solution:   Add the "both" argument.
Files:      src/textprop.c, runtime/doc/textprop.txt,
            src/testdir/test_textprop.vim

Patch 8.2.0358
Problem:    Insufficient testing for indent.c.
Solution:   Add indent tests. (Yegappan Lakshmanan, closes #5736)
Files:      src/testdir/Make_all.mak, src/testdir/test_ex_mode.vim,
            src/testdir/test_expand_func.vim, src/testdir/test_indent.vim,
            src/testdir/test_lispwords.vim, src/testdir/test_smartindent.vim,
            src/testdir/test_vartabs.vim

Patch 8.2.0359
Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
Solution:   Take the decoration into account. (closes #5728)
Files:      src/popupwin.c, src/testdir/test_popupwin.vim

Patch 8.2.0360
Problem:    Yaml files are only recognized by the file extension.
Solution:   Check for a line starting with "%YAML". (Jason Franklin)
Files:      runtime/scripts.vim, src/testdir/test_filetype.vim

Patch 8.2.0361
Problem:    Internal error when using "0" for a callback.
Solution:   Give a normal error. (closes #5743)
Files:      src/evalvars.c, src/testdir/test_timers.vim

Patch 8.2.0362
Problem:    MS-Windows: channel test fails if grep is not available.
Solution:   Use another command. (Ken Takata, closes #5739)
Files:      src/testdir/test_channel.vim

Patch 8.2.0363
Problem:    Some Normal mode commands not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5746)
Files:      src/testdir/test_cindent.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_edit.vim, src/testdir/test_indent.vim,
            src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim,
            src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim

Patch 8.2.0364
Problem:    Printf test failing on Haiku.
Solution:   Make a difference between int and short. (Dominique Pellé,
            closes #5749)
Files:      src/message.c

Patch 8.2.0365
Problem:    Tag kind can't be a multibyte character. (Marcin Szamotulski)
Solution:   Recognize multibyte character. (closes #5724)
Files:      src/tag.c, src/testdir/test_taglist.vim

Patch 8.2.0366
Problem:    Hardcopy command not tested enough.
Solution:   Add tests for printing. (Dominique Pellé, closes #5748)
Files:      src/testdir/test_hardcopy.vim

Patch 8.2.0367
Problem:    Can use :pedit in a popup window.
Solution:   Disallow it.
Files:      src/ex_docmd.c, src/testdir/test_popupwin.vim

Patch 8.2.0368
Problem:    Vim9: import that redefines local variable does not fail.
Solution:   Check for already defined symbols.
Files:      src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c,
            src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim

Patch 8.2.0369
Problem:    Various Normal mode commands not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5751)
Files:      src/testdir/test_arglist.vim, src/testdir/test_changelist.vim,
            src/testdir/test_charsearch.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_excmd.vim, src/testdir/test_gf.vim,
            src/testdir/test_iminsert.vim, src/testdir/test_increment.vim,
            src/testdir/test_marks.vim, src/testdir/test_normal.vim,
            src/testdir/test_prompt_buffer.vim, src/testdir/test_put.vim,
            src/testdir/test_registers.vim, src/testdir/test_tagjump.vim,
            src/testdir/test_visual.vim

Patch 8.2.0370
Problem:    The typebuf_was_filled flag is sometimes not reset, which may
            cause a hang.
Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
            empty.
Files:      src/edit.c, src/getchar.c,

Patch 8.2.0371
Problem:    Crash with combination of terminal popup and autocmd.
Solution:   Disallow closing a popup that is the current window.  Add a check
            that the current buffer is valid. (closes #5754)
Files:      src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c,
            src/testdir/test_terminal.vim

Patch 8.2.0372
Problem:    Prop_find() may not find text property at start of the line.
Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
            closes #5663)
Files:      src/textprop.c, src/testdir/test_textprop.vim

Patch 8.2.0373
Problem:    Type of term_sendkeys() is unknown.
Solution:   Just return zero. (closes #5762)
Files:      src/terminal.c, src/testdir/test_terminal.vim

Patch 8.2.0374
Problem:    Using wrong printf directive for jump location.
Solution:   Change "%lld" to "%d". (James McCoy, closes #5773)
Files:      src/vim9execute.c

Patch 8.2.0375
Problem:    Coverity warning for not using return value.
Solution:   Move error message to separate function.
Files:      src/popupwin.c

Patch 8.2.0376
Problem:    Nasty callback test fails on some systems.
Solution:   Increase the sleep time.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0377
Problem:    No CI test for a big-endian system.
Solution:   Test with s390x. (James McCoy, closes #5772)
Files:      .travis.yml

Patch 8.2.0378
Problem:    prop_find() does not find all props.
Solution:   Check being in the start line. (Axel Forsman, closes #5776)
Files:      src/textprop.c, src/testdir/test_textprop.vim

Patch 8.2.0379
Problem:    Gcc warns for ambiguous else.
Solution:   Add braces. (Dominique Pellé, closes #5778)
Files:      src/textprop.c

Patch 8.2.0380
Problem:    Tiny popup when creating a terminal popup without minwidth.
Solution:   Use a default minimum size of 5 lines of 20 characters.
Files:      src/popupwin.c, src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_m1.dump

Patch 8.2.0381
Problem:    Using freed memory with :lvimgrep and autocommand. (extracted from
            POC by Dominique Pellé)
Solution:   Avoid deleting a dummy buffer used in a window. (closes #5777)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.2.0382
Problem:    Some tests fail when run under valgrind.
Solution:   Increase timeouts.
Files:      src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim,
            src/testdir/test_channel.vim, src/testdir/test_ins_complete.vim,
            src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_1.dump,
            src/testdir/dumps/Test_terminal_popup_2.dump,
            src/testdir/dumps/Test_terminal_popup_3.dump,
            src/testdir/dumps/Test_terminal_popup_5.dump,
            src/testdir/dumps/Test_terminal_popup_6.dump,
            src/testdir/dumps/Test_terminal_popup_7.dump,
            src/testdir/dumps/Test_terminal_popup_8.dump,
            src/testdir/dumps/Test_terminal_popup_m1.dump

Patch 8.2.0383
Problem:    Wrong feature check causes test not to be run.
Solution:   Use CheckFunction instead of CheckFeature. (Ozaki Kiichi,
            closes #5781)
Files:      src/testdir/test_channel.vim

Patch 8.2.0384
Problem:    Travis CI has warnings.
Solution:   Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779)
Files:      .travis.yml

Patch 8.2.0385
Problem:    Menu functionality insufficiently tested.
Solution:   Add tests.  Add menu_info(). (Yegappan Lakshmanan, closes #5760)
Files:      runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/usr_41.txt,
            src/evalfunc.c, src/menu.c, src/proto/menu.pro,
            src/testdir/test_menu.vim, src/testdir/test_popup.vim,
            src/testdir/test_termcodes.vim

Patch 8.2.0386 (after 8.2.0385)
Problem:    Part from unfinished patch got included.
Solution:   Undo that part.
Files:      src/evalfunc.c

Patch 8.2.0387
Problem:    Error for possible NULL argument to qsort().
Solution:   Don't call qsort() when there is nothing to sort. (Dominique
            Pellé, closes #5780)
Files:      src/spellsuggest.c

Patch 8.2.0388
Problem:    Printmbcharset option not tested.
Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
            Pellé, closes #5783)
Files:      appveyor.yml, src/testdir/test_hardcopy.vim

Patch 8.2.0389
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes #5782)
Files:      src/ops.c

Patch 8.2.0390
Problem:    Terminal postponed scrollback test is flaky.
Solution:   Add delay in between sending keys.  Rename dump files.
Files:      src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_01.dump,
            src/testdir/dumps/Test_terminal_02.dump,
            src/testdir/dumps/Test_terminal_03.dump,
            src/testdir/dumps/Test_terminal_scrollback_1.dump,
            src/testdir/dumps/Test_terminal_scrollback_2.dump,
            src/testdir/dumps/Test_terminal_scrollback_3.dump

Patch 8.2.0391 (after 8.2.0377)
Problem:    CI test coverage dropped.
Solution:   Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788)
Files:      .travis.yml

Patch 8.2.0392
Problem:    Coverity warns for using array index out of range.
Solution:   Add extra "if" to avoid warning.
Files:      src/menu.c

Patch 8.2.0393
Problem:    Coverity warns for not using return value.
Solution:   Add (void).
Files:      src/popupmenu.c

Patch 8.2.0394
Problem:    Coverity complains about using NULL pointer.
Solution:   Use empty string when option value is NULL.
Files:      src/optionstr.c

Patch 8.2.0395
Problem:    Build fails with FEAT_EVAL but without FEAT_MENU.
Solution:   Add #ifdef. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.0396
Problem:    Cmdexpand.c insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5789)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_taglist.vim,
            src/testdir/test_terminal.vim, src/testdir/test_usercommands.vim

Patch 8.2.0397
Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
Files:      src/normal.c

Patch 8.2.0398
Problem:    Profile test fails when two functions take same time.
Solution:   Add a short sleep in once function. (closes #5797)
Files:      src/testdir/test_profile.vim

Patch 8.2.0399
Problem:    Various memory leaks.
Solution:   Avoid the leaks. (Ozaki Kiichi, closes #5803)
Files:      src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c,
            src/scriptfile.c, src/userfunc.c

Patch 8.2.0400
Problem:    Not all tests using a terminal are in the list of flaky tests.
Solution:   Introduce the test_is_flaky flag.
Files:      src/testdir/runtest.vim, src/testdir/term_util.vim,
            src/testdir/screendump.vim, src/testdir/test_autocmd.vim

Patch 8.2.0401
Problem:    Not enough test coverage for evalvars.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_const.vim,
            src/testdir/test_diffmode.vim, src/testdir/test_excmd.vim,
            src/testdir/test_functions.vim, src/testdir/test_let.vim,
            src/testdir/test_listdict.vim, src/testdir/test_spell.vim,
            src/testdir/test_unlet.vim, src/testdir/test_user_func.vim,
            src/testdir/test_vimscript.vim

Patch 8.2.0402 (after 8.2.0401)
Problem:    Setting local instead of global flag.
Solution:   Prepend "g:" to "test_is_flaky".
Files:      src/testdir/term_util.vim, src/testdir/screendump.vim,
            src/testdir/test_autocmd.vim

Patch 8.2.0403
Problem:    When 'buftype' is "nofile" there is no overwrite check.
Solution:   Also check for existing file when 'buftype' is set.
            (closes #5807)
Files:      src/ex_cmds.c, src/testdir/test_options.vim

Patch 8.2.0404
Problem:    Writefile() error does not give a hint.
Solution:   Add remark about first argument.
Files:      src/filepath.c, src/testdir/test_writefile.vim

Patch 8.2.0405
Problem:    MSVC: build fails with some combination of features.
Solution:   Enable CHANNEL if TERMINAL is enabled. (Mike Williams)
Files:      src/Make_mvc.mak

Patch 8.2.0406
Problem:    FileReadCmd event not well tested.
Solution:   Add a test.
Files:      src/testdir/test_autocmd.vim

Patch 8.2.0407
Problem:    No early check if :find and :sfind have an argument.
Solution:   Add EX_NEEDARG.
Files:      src/ex_cmds.h, src/testdir/test_findfile.vim,
            src/testdir/test_find_complete.vim

Patch 8.2.0408
Problem:    Delete() commented out for testing.
Solution:   Undo commenting-out.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0409
Problem:    Search test leaves file behind.
Solution:   Delete the file.  Also use Check commands.
Files:      src/testdir/test_search.vim

Patch 8.2.0410
Problem:    Channel test fails too often on slow Mac.
Solution:   Increase waiting time to 10 seconds.
Files:      src/testdir/test_channel.vim

Patch 8.2.0411
Problem:    Mac: breakcheck is using a value from the stone ages.
Solution:   Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson)
Files:      src/os_mac.h

Patch 8.2.0412
Problem:    MS-Windows: cannot use vimtutor from the start menu.
Solution:   Better check for writable directory. Use the right path for the
            executable. (Wu Yongwei, closes #5774, closes #5756)
Files:      vimtutor.bat

Patch 8.2.0413
Problem:    Buffer menu does not handle special buffers properly.
Solution:   Keep a dictionary with buffer names to reliably keep track of
            entries.
            Also trigger BufFilePre and BufFilePost for command-line and
            terminal buffers when the name changes.
Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak,
            runtime/menu.vim, src/ex_getln.c, src/terminal.c,
            src/testdir/test_menu.vim

Patch 8.2.0414
Problem:    Channel connect_waittime() test is flaky.
Solution:   Set the test_is_flaky flag.  Use test_is_flaky for more tests.
Files:      src/testdir/test_channel.vim, src/testdir/test_terminal.vim,
            src/testdir/runtest.vim

Patch 8.2.0415
Problem:    Bsdl filetype is not detected.
Solution:   Add an entry in the filetype list. (Daniel Kho, closes #5810)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0416
Problem:    Test leaves file behind.
Solution:   Delete the file.
Files:      src/testdir/test_indent.vim

Patch 8.2.0417
Problem:    Travis CI config can be improved.
Solution:   Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE"
            to avoid messages about viminfo. (Ozaki Kiichi, closes #5813)
Files:      .travis.yml, ci/load-snd-dummy.sh

Patch 8.2.0418
Problem:    Code in eval.c not sufficiently covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5815)
Files:      src/testdir/test_blob.vim, src/testdir/test_channel.vim,
            src/testdir/test_cmdline.vim, src/testdir/test_eval_stuff.vim,
            src/testdir/test_expr.vim, src/testdir/test_functions.vim,
            src/testdir/test_job_fails.vim, src/testdir/test_lambda.vim,
            src/testdir/test_let.vim, src/testdir/test_listdict.vim,
            src/testdir/test_marks.vim, src/testdir/test_method.vim,
            src/testdir/test_normal.vim, src/testdir/test_unlet.vim,
            src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_window_cmd.vim

Patch 8.2.0419
Problem:    Various memory leaks in Vim9 script code.
Solution:   Fix the leaks. (Ozaki Kiichi, closes #5814)
Files:      src/proto/vim9compile.pro, src/scriptfile.c, src/structs.h,
            src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c,
            src/vim9execute.c, src/vim9script.c

Patch 8.2.0420
Problem:    Vim9: cannot interrupt a loop with CTRL-C.
Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
Files:      src/misc1.c, src/proto/misc1.pro,
            src/testdir/test_vim9_script.vim

Patch 8.2.0421
Problem:    Interrupting with CTRL-C does not always work.
Solution:   Recognize CTRL-C while modifyOtherKeys is set.
Files:      src/ui.c, src/testdir/test_vim9_script.vim, src/evalfunc.c

Patch 8.2.0422
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes #5816)
Files:      src/testdir/test_popupwin.vim, src/evalwindow.c

Patch 8.2.0423
Problem:    In some environments a few tests are expected to fail.
Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
            fail.
Files:      src/testdir/runtest.vim

Patch 8.2.0424
Problem:    Checking for wrong return value. (Tom)
Solution:   Invert the check and fix the test.
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

Patch 8.2.0425
Problem:    Code for modeless selection not sufficiently tested.
Solution:   Add tests.  Move mouse code functionality to a common script file.
            (Yegappan Lakshmanan, closes #5821)
Files:      src/testdir/Make_all.mak, src/testdir/gen_opt_test.vim,
            src/testdir/mouse.vim, src/testdir/test_edit.vim,
            src/testdir/test_global.vim, src/testdir/test_modeless.vim,
            src/testdir/test_normal.vim, src/testdir/test_selectmode.vim,
            src/testdir/test_termcodes.vim, src/testdir/test_visual.vim,
            src/ui.c

Patch 8.2.0426
Problem:    Some errors were not tested for.
Solution:   Add tests. (Dominique Pellé, closes #5824)
Files:      src/testdir/test_buffer.vim, src/testdir/test_options.vim,
            src/testdir/test_tcl.vim, src/testdir/test_terminal.vim,
            src/testdir/test_window_cmd.vim

Patch 8.2.0427
Problem:    It is not possible to check for a typo in a feature name.
Solution:   Add an extra argument to has().
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.vim,
            src/testdir/test_functions.vim

Patch 8.2.0428
Problem:    Buffer name may leak.
Solution:   Free the buffer name before overwriting it.
Files:      src/terminal.c

Patch 8.2.0429
Problem:    No warning when test checks for option that never exists.
Solution:   In tests check that the option can exist.
Files:      src/testdir/check.vim

Patch 8.2.0430
Problem:    Window creation failure not properly tested.
Solution:   Improve the test. (Yegappan Lakshmanan, closes #5826)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_window_cmd.vim

Patch 8.2.0431
Problem:    Some compilers don't support using \e for Esc. (Yegappan
            Lakshmanan)
Solution:   use \033 instead.
Files:      src/ui.c

Patch 8.2.0432
Problem:    A few tests fail in a huge terminal.
Solution:   Make the tests pass. (Dominique Pellé, closes #5829)
Files:      src/testdir/test_autocmd.vim, src/testdir/test_options.vim,
            src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim,
            src/testdir/test_window_cmd.vim

Patch 8.2.0433
Problem:    INT signal not properly tested.
Solution:   Add a test.  Also clean up some unnecessary lines. (Dominique
            Pellé, closes #5828)
Files:      src/testdir/test_display.vim, src/testdir/test_ex_mode.vim,
            src/testdir/test_excmd.vim, src/testdir/test_messages.vim,
            src/testdir/test_signals.vim

Patch 8.2.0434
Problem:    MS-Windows with VTP: Normal color not working.
Solution:   After changing the Normal color update the VTP console color.
            (Nobuhiro Takasaki, closes #5836)
Files:      src/highlight.c

Patch 8.2.0435
Problem:    Channel contents might be freed twice.
Solution:   Call either channel_free_channel() or channel_free(), not both.
            (Nobuhiro Takasaki, closes #5835)
Files:      src/channel.c

Patch 8.2.0436
Problem:    No warnings for incorrect printf arguments.
Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
            Pellé, closes #5834)
Files:      src/proto.h, src/eval.c, src/ops.c, src/spellfile.c,
            src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/gui.c

Patch 8.2.0437
Problem:    MS-Windows installer contains old stuff.
Solution:   Rely on Windows NT. (Ken Takata, closes #5832)
Files:      src/dosinst.c

Patch 8.2.0438
Problem:    Terminal noblock test is very flaky on BSD.
Solution:   Change WaitFor() to WaitForAssert() to be able to see why it
            failed.  Add a short wait in between sending keys.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0439
Problem:    :disassemble has minor flaws.
Solution:   Format the code.  Use (int) instead of (char) for %c.
            (also by James McCoy, closes #5831)
Files:      src/vim9execute.c

Patch 8.2.0440
Problem:    Terminal noblock test is still very flaky on BSD.
Solution:   Increase the waiting time.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0441
Problem:    Terminal noblock test is still failing on BSD.
Solution:   Reduce the amount of text.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0442
Problem:    Channel contents might be used after being freed.
Solution:   Reset the job channel before freeing the channel.
Files:      src/channel.c

Patch 8.2.0443
Problem:    Clipboard code is spread out.
Solution:   Move clipboard code to its own file. (Yegappan Lakshmanan,
            closes #5827)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/clipboard.c, src/ops.c, src/proto.h, src/proto/clipboard.pro,
            src/proto/ops.pro, src/proto/register.pro, src/proto/ui.pro,
            src/register.c, src/ui.c

Patch 8.2.0444
Problem:    Swap file test fails on some systems.
Solution:   Preserve the swap file. Send NL terminated keys.
Files:      src/testdir/test_swap.vim

Patch 8.2.0445
Problem:    Png and xpm files not in MS-Windows zip file.
Solution:   Move files to shared between Unix and Windows target.
Files:      Filelist

Patch 8.2.0446
Problem:    Listener with undo of deleting all lines not tested.
Solution:   Add a test.
Files:      src/testdir/test_listener.vim

Patch 8.2.0447
Problem:    Terminal scroll tests fails on some systems.
Solution:   Remove the fixed 100msec wait for Win32.  Add a loop to wait until
            scrolling has finished. (James McCoy, closes #5842)
Files:      src/testdir/test_terminal.vim

Patch 8.2.0448
Problem:    Various functions not properly tested.
Solution:   Add more tests, especially for failures. (Yegappan Lakshmanan,
            closes #5843)
Files:      runtime/doc/eval.txt, src/testdir/test_blob.vim,
            src/testdir/test_breakindent.vim, src/testdir/test_charsearch.vim,
            src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_exists.vim, src/testdir/test_expand_func.vim,
            src/testdir/test_expr.vim, src/testdir/test_file_perm.vim,
            src/testdir/test_functions.vim, src/testdir/test_gui.vim,
            src/testdir/test_listdict.vim, src/testdir/test_marks.vim,
            src/testdir/test_partial.vim, src/testdir/test_registers.vim,
            src/testdir/test_search.vim, src/testdir/test_spell.vim,
            src/testdir/test_substitute.vim, src/testdir/test_syn_attr.vim,
            src/testdir/test_syntax.vim, src/testdir/test_taglist.vim,
            src/testdir/test_utf8.vim, src/testdir/test_vartabs.vim,
            src/testdir/test_window_cmd.vim

Patch 8.2.0449
Problem:    Vim9: crash if return type is invalid. (Yegappan Lakshmanan)
Solution:   Always return some type, not NULL.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0450
Problem:    Not enough testing for restricted mode and function calls.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5847)
Files:      src/testdir/test_method.vim, src/testdir/test_restricted.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0451
Problem:    Win32: double-width character displayed incorrectly.
Solution:   First move the cursor to the first column. (Nobuhiro Takasaki,
            closes #5848)
Files:      src/os_win32.c

Patch 8.2.0452
Problem:    channel_parse_messages() fails when called recursively.
Solution:   Return for a recursive call. (closes #5835)
Files:      src/channel.c

Patch 8.2.0453
Problem:    Trailing space in job_start() command causes empty argument.
Solution:   Ignore trailing space. (closes #5851)
Files:      src/misc2.c, src/testdir/test_channel.vim

Patch 8.2.0454
Problem:    Some tests fail when the system is slow.
Solution:   Make the run number global, use in the test to increase the
            waiting time. (closes #5841)
Files:      src/testdir/runtest.vim, src/testdir/test_functions.vim

Patch 8.2.0455
Problem:    Cannot set the highlight group for a specific terminal.
Solution:   Add the "highlight" option to term_start(). (closes #5818)
Files:      src/terminal.c, src/structs.h, src/channel.c,
            src/testdir/test_terminal.vim, runtime/doc/terminal.txt,
            src/testdir/dumps/Test_terminal_popup_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_MyTermCol.dump

Patch 8.2.0456
Problem:    Test_confirm_cmd is flaky.
Solution:   Add a term_wait() call. (closes #5854)
Files:      src/testdir/test_excmd.vim

Patch 8.2.0457
Problem:    Test_quotestar() often fails when run under valgrind.
Solution:   Wait longer for the GUI to start.
Files:      src/testdir/test_quotestar.vim

Patch 8.2.0458
Problem:    Missing feature check in test function.
Solution:   Add check commands.
Files:      src/testdir/test_excmd.vim

Patch 8.2.0459
Problem:    Cannot check if a function name is correct.
Solution:   Add "?funcname" to exists().
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.vim,
            src/testdir/check.vim

Patch 8.2.0460 (after 8.2.0459)
Problem:    Build failure because of wrong feature name.
Solution:   Correct feature name.
Files:      src/evalfunc.c

Patch 8.2.0461
Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
Solution:   Add an extra WaitForAssert(). (Dominique Pellé)
Files:      src/testdir/test_excmd.vim

Patch 8.2.0462
Problem:    Previewwindow test fails on some systems. (James McCoy)
Solution:   Wait a bit after sending the "o". (closes #5849)
Files:      src/testdir/test_popup.vim,
            src/testdir/dumps/Test_popup_and_previewwindow_01.dump

Patch 8.2.0463
Problem:    Build error without float and channel feature. (John Marriott)
Solution:   Define return types always.
Files:      src/globals.h, src/evalfunc.c

Patch 8.2.0464
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing files to the distribution.
Files:      Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c,
            src/os_unixx.h, src/proto/popupwin.pro

Patch 8.2.0465
Problem:    Vim9: dead code and wrong return type.
Solution:   Remove dead code.  Fix return type.  Add more tests.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0466 (after 8.2.0452)
Problem:    Not parsing messages recursively breaks the govim plugin.
Solution:   When called recursively do handle messages but do not close
            channels.
Files:      src/channel.c

Patch 8.2.0467
Problem:    Vim9: some errors are not tested
Solution:   Add more tests.  Fix that Vim9 script flag is not reset.
Files:      src/vim9compile.c, src/scriptfile.c, src/dict.c,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0468
Problem:    GUI: pixel dust with some fonts and characters.
Solution:   Always redraw the character before the cursor. (Nir Lichtman,
            closes #5549, closes #5856)
Files:      src/gui.c, src/proto/gui.pro, src/screen.c

Patch 8.2.0469
Problem:    Vim9: no error for missing ] after list.
Solution:   Add error message. Add more tests.
Files:      src/globals.h, src/list.c, src/userfunc.c,
            src/testdir/test_vim9_expr.vim, src/testdir/test_lambda.vim

Patch 8.2.0470
Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes #5861)
Files:      src/testdir/test_excmd.vim

Patch 8.2.0471
Problem:    Missing change to compile_list().
Solution:   Add error message.
Files:      src/vim9compile.c

Patch 8.2.0472
Problem:    Terminal highlight name is set twice, leaking memory.
Solution:   Delete one.
Files:      src/terminal.c

Patch 8.2.0473
Problem:    Variables declared in an outer scope.
Solution:   Declare variables only in the scope where they are used.
Files:      src/evalvars.c

Patch 8.2.0474 (after 8.2.0403)
Problem:    Cannot use :write when using a plugin with BufWriteCmd.
Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes #5807)
Files:      src/fileio.c, src/testdir/test_autocmd.vim

Patch 8.2.0475
Problem:    Channel out_cb test still fails sometimes on Mac.
Solution:   Use an even longer timeout.
Files:      src/testdir/test_channel.vim

Patch 8.2.0476
Problem:    Terminal nasty callback test fails sometimes.
Solution:   use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865)
Files:      src/testdir/test_terminal.vim

Patch 8.2.0477
Problem:    Vim9: error messages not tested.
Solution:   Add more tests.
Files:      src/testdir/test_vim9_expr.vim, src/vim9execute.c

Patch 8.2.0478
Problem:    New buffers are not added to the Buffers menu.
Solution:   Turn number into string. (Yee Cheng Chin, closes #5864)
Files:      runtime/menu.vim, src/testdir/test_menu.vim

Patch 8.2.0479
Problem:    Unloading shared libraries on exit has no purpose.
Solution:   Do not unload shared libraries on exit.
Files:      src/if_lua.c, src/if_perl.xs, src/if_python.c, src/if_python3.c,
            src/if_ruby.c, src/if_tcl.c

Patch 8.2.0480
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.
Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c

Patch 8.2.0481
Problem:    Travis is still using trusty.
Solution:   Adjust config to use bionic. (Ozaki Kiichi, closes #5868)
Files:      .travis.yml, src/testdir/lsan-suppress.txt

Patch 8.2.0482
Problem:    Channel and sandbox code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5855)
Files:      src/option.h, src/testdir/test_channel.vim,
            src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
            src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim,
            src/testdir/test_restricted.vim, src/testdir/test_smartindent.vim,
            src/testdir/test_substitute.vim, src/testdir/test_terminal.vim,
            src/testdir/test_textformat.vim, src/testdir/test_visual.vim

Patch 8.2.0483
Problem:    Vim9: "let x = x + 1" does not give an error.
Solution:   Hide the variable when compiling the expression.
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0484
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.
Files:      src/testdir/test_vim9_expr.vim

Patch 8.2.0485 (after 8.2.0483)
Problem:    Vim9 script test fails.
Solution:   Stricter condition for adding new local variable.
Files:      Stricter condition for adding new local variable.

Patch 8.2.0486
Problem:    Vim9: some code and error messages not tested.
Solution:   Add more tests.
Files:      src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0487
Problem:    Vim9: compiling not sufficiently tested.
Solution:   Add more tests.  Fix bug with PCALL.
Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0488
Problem:    Vim9: Compiling can break when using a lambda inside :def.
Solution:   Do not keep a pointer to the dfunc_T for longer time.
Files:      src/vim9compile.c, src/vim9.h

Patch 8.2.0489
Problem:    Vim9: memory leaks.
Solution:   Free memory in the right place.  Add hints for using asan.
Files:      src/vim9compile.c, src/testdir/lsan-suppress.txt, src/Makefile

Patch 8.2.0490
Problem:    Win32: VTP doesn't respect 'restorescreen'.
Solution:   Use escape codes to switch to alternate screen. (Nobuhiro
            Takasaki, closes #5872)
Files:      src/os_win32.c

Patch 8.2.0491
Problem:    Cannot recognize a <script> mapping using maparg().
Solution:   Add the "script" key. (closes #5873)
Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim

Patch 8.2.0492
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Remove dead code.  Fix uncovered bugs.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0493
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Fix uncovered bugs.
Files:      src/vim9compile.c, src/vim9execute.c, src/testing.c, src/eval.c,
            src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt,
            runtime/doc/testing.txt, src/testdir/test_vim9_script.vim

Patch 8.2.0494
Problem:    Vim9: asan error.
Solution:   Only get the type when there is one.
Files:      src/vim9compile.c

Patch 8.2.0495
Problem:    Vim9: some code not tested.
Solution:   Add more tests.  Support more const expressions.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0496
Problem:    Vim9: disassemble test fails.
Solution:   Separate test cases with recognized constant expressions.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0497
Problem:    Too verbose output from the asan build in Travis.
Solution:   Filter out suppression messages. (Ozaki Kiichi, closes #5874)
Files:      .travis.yml

Patch 8.2.0498
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the whole typval_T.
Files:      src/vim9compile.c

Patch 8.2.0499
Problem:    Calling a lambda is slower than evaluating a string.
Solution:   Make calling a lambda faster. (Ken Takata, closes #5727)
Files:      src/userfunc.c

Patch 8.2.0500
Problem:    Using the same loop in many places.
Solution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
Files:      src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c,
            src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c,
            src/evalbuffer.c, src/evalfunc.c, src/evalvars.c,
            src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h,
            src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c,
            src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c,
            src/quickfix.c, src/screen.c, src/sign.c, src/spell.c,
            src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c,
            src/userfunc.c, src/window.c

Patch 8.2.0501
Problem:    Vim9: script test fails when channel feature is missing.
Solution:   Add a has() condition.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0502
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.  Fix uncovered problems.
Files:      src/vim9compile.c, src/regexp.c, src/proto/regexp.pro,
            src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c,
            src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c,
            src/tag.c, src/userfunc.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0503
Problem:    Vim9: some code is not tested.
Solution:   Add tests.  Fix uncovered problems.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0504
Problem:    Vim9: leaking scope memory when compilation fails.
Solution:   Cleanup the scope list.
Files:      src/vim9compile.c

Patch 8.2.0505
Problem:    term_gettty() not sufficiently tested.
Solution:   Add more asserts. (Dominique Pellé, closes #5877)
Files:      src/testdir/test_terminal.vim

Patch 8.2.0506
Problem:    Coverity complains about ignoring return value.
Solution:   Add (void).
Files:      src/userfunc.c

Patch 8.2.0507 (after 8.2.0472)
Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
Solution:   Check for empty name. (closes #5878)
Files:      src/evalvars.c, src/testdir/test_functions.vim

Patch 8.2.0508
Problem:    Vim9: func and partial types not done yet
Solution:   Fill in details about func declaration, drop a separate partial
            declaration.
Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/globals.h,
            src/structs.h, src/evalfunc.c, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0509
Problem:    various code is not properly tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5871)
Files:      src/main.c, src/testdir/check.vim, src/testdir/shared.vim,
            src/testdir/term_util.vim, src/testdir/test_clientserver.vim,
            src/testdir/test_ex_mode.vim, src/testdir/test_expand.vim,
            src/testdir/test_functions.vim, src/testdir/test_options.vim,
            src/testdir/test_startup.vim, src/testdir/test_textformat.vim,
            src/testdir/test_trycatch.vim, src/testdir/test_viminfo.vim

Patch 8.2.0510
Problem:    Coverity complains about using uninitialized variable.
Solution:   Assign a value to "scol".  Move code inside NULL check.
Files:      src/beval.c, src/popupwin.c

Patch 8.2.0511
Problem:    Cscope code not fully tested.
Solution:   Add more test cases. (Dominique Pellé, closes #5886)
Files:      src/testdir/test_cscope.vim

Patch 8.2.0512
Problem:    Vim9: no optional arguments in func type.
Solution:   Check for question mark after type.  Find function reference
            without function().
Files:      src/vim9compile.c, src/vim9execute.c, src/structs.h,
            src/globals.h, src/vim.h, src/vim9.h, src/userfunc.c,
            src/testdir/Make_all.mak, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0513
Problem:    Reading past allocated memory when using varargs.
Solution:   Fix copying function argument types.
Files:      src/vim9compile.c

Patch 8.2.0514
Problem:    Several global functions are used in only one file.
Solution:   Make the functions static. (Yegappan Lakshmanan, closes #5884)
Files:      src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c,
            src/proto/drawscreen.pro, src/proto/evalvars.pro,
            src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro,
            src/version.c

Patch 8.2.0515
Problem:    Some compilers cannot add to "void *".
Solution:   Cast to "char *".
Files:      src/vim9compile.c

Patch 8.2.0516
Problem:    Client-server code is spread out.
Solution:   Move client-server code to a new file. (Yegappan Lakshmanan,
            closes #5885)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h,
            src/proto/clientserver.pro, src/proto/main.pro

Patch 8.2.0517
Problem:    Vim9: cannot separate "func" and "func(): void".
Solution:   Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
Files:      src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/testing.c, src/vim9compile.c,
            src/vim9execute.c, src/viminfo.c, src/if_py_both.h, src/json.c,
            src/testdir/test_vim9_func.vim

Patch 8.2.0518
Problem:    A terminal falls back to setting $TERM to "xterm".
Solution:   Use "xterm-color" if more than 16 colors are supported and
            "xterm-256color" if at least 256 colors are supported.
            (closes #5887)
Files:      src/os_unix.c

Patch 8.2.0519
Problem:    Vim9: return type not properly checked.
Solution:   Check type properly, also at runtime.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0520
Problem:    Tests are not listed in sorted order.
Solution:   Move test_ex_mode. (Doug Richardson, closes #5889)
Files:      src/testdir/Make_all.mak

Patch 8.2.0521
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pellé,
            closes #5890)  Adjust error messages.
Files:      src/filepath.c, src/testdir/test_blob.vim

Patch 8.2.0522
Problem:    Several errors are not tested for.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
Files:      src/testdir/test_autocmd.vim, src/testdir/test_clientserver.vim,
            src/testdir/test_digraph.vim, src/testdir/test_expand.vim,
            src/testdir/test_expr.vim, src/testdir/test_functions.vim,
            src/testdir/test_gui.vim, src/testdir/test_highlight.vim,
            src/testdir/test_ins_complete.vim, src/testdir/test_lambda.vim,
            src/testdir/test_listdict.vim, src/testdir/test_normal.vim,
            src/testdir/test_options.vim, src/testdir/test_preview.vim,
            src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim,
            src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim,
            src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim

Patch 8.2.0523
Problem:    Loops are repeated.
Solution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
Files:      src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c,
            src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c,
            src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c,
            src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c,
            src/userfunc.c, src/vim9compile.c

Patch 8.2.0524
Problem:    Win32: searching for file matches is slow.
Solution:   Instead of making another round to find any short filename, check
            for the short name right away. Avoid using an ordinary file like a
            directory.  (Nir Lichtman, closes #5883)
Files:      src/filepath.c

Patch 8.2.0525 (after 8.2.0524)
Problem:    Win32: typo in assignment and misplaced paren.
Solution:   Fix the syntax.
Files:      src/filepath.c

Patch 8.2.0526
Problem:    Gcc 9 complains about empty statement.
Solution:   Add {}. (Dominique Pellé, closes #5894)
Files:      src/evalfunc.c

Patch 8.2.0527
Problem:    Vim9: function types insufficiently tested.
Solution:   Add more tests.  Fix white space check.  Add "test_vim9" target.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim, src/Makefile,
            src/testdir/Makefile, src/testdir/Make_all.mak

Patch 8.2.0528
Problem:    Vim9: function arguments insufficiently tested.
Solution:   Check types.  Add more tests.  Fix function with varargs only.
Files:      src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim

Patch 8.2.0529
Problem:    Vim9: function argument with default not checked.
Solution:   Check type of argument with default value.
Files:      src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim

Patch 8.2.0530
Problem:    Test crashes on s390. (James McCoy)
Solution:   Explicitly define an 8 big signed type. (closes #5897)
Files:      src/structs.h

Patch 8.2.0531
Problem:    Various errors not tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
Files:      src/testdir/test_search.vim, src/testdir/test_source.vim,
            src/testdir/test_syntax.vim, src/testdir/test_user_func.vim,
            src/testdir/test_vimscript.vim

Patch 8.2.0532
Problem:    Cannot use simplify() as a method.
Solution:   Add FEARG_1. (closes #5896)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.vim

Patch 8.2.0533
Problem:    Tests using term_wait() can still be flaky.
Solution:   Increase the wait time when rerunning a test. (James McCoy,
            closes #5899)  Halve the initial times to make tests run faster
            when there is no rerun.
Files:      src/testdir/term_util.vim, src/testdir/test_arglist.vim,
            src/testdir/test_autocmd.vim, src/testdir/test_balloon.vim,
            src/testdir/test_bufline.vim, src/testdir/test_channel.vim,
            src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim,
            src/testdir/test_cursorline.vim, src/testdir/test_debugger.vim,
            src/testdir/test_diffmode.vim, src/testdir/test_display.vim,
            src/testdir/test_functions.vim, src/testdir/test_highlight.vim,
            src/testdir/test_ins_complete.vim, src/testdir/test_mapping.vim,
            src/testdir/test_match.vim, src/testdir/test_matchadd_conceal.vim,
            src/testdir/test_messages.vim, src/testdir/test_number.vim,
            src/testdir/test_popup.vim, src/testdir/test_popupwin.vim,
            src/testdir/test_profile.vim, src/testdir/test_search.vim,
            src/testdir/test_search_stat.vim, src/testdir/test_startup.vim,
            src/testdir/test_startup_utf8.vim,
            src/testdir/test_statusline.vim, src/testdir/test_suspend.vim,
            src/testdir/test_swap.vim, src/testdir/test_tagjump.vim,
            src/testdir/test_terminal.vim, src/testdir/test_terminal_fail.vim,
            src/testdir/test_timers.vim, src/testdir/test_vimscript.vim

Patch 8.2.0534
Problem:    Client-server test fails under valgrind.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_clientserver.vim

Patch 8.2.0535
Problem:    Regexp patterns not fully tested.
Solution:   Add more regexp tests and others. (Yegappan Lakshmanan,
            closes #5901)
Files:      src/testdir/test_marks.vim, src/testdir/test_options.vim,
            src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim

Patch 8.2.0536
Problem:    Vim9: some compilation code not tested.
Solution:   Add more test cases.
Files:      src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0537
Problem:    Vim9: no check for sandbox when setting v:var.
Solution:   Check for sandbox.
Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

Patch 8.2.0538
Problem:    Vim9: VAR_PARTIAL is not used during compilation.
Solution:   Remove VAR_PARTIAL.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c

Patch 8.2.0539
Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
Files:      src/list.c, src/testdir/test_assert.vim

Patch 8.2.0540
Problem:    Regexp and other code not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5904)
Files:      src/testdir/test_backspace_opt.vim, src/testdir/test_expr.vim,
            src/testdir/test_increment.vim, src/testdir/test_normal.vim,
            src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim,
            src/testdir/test_search.vim, src/testdir/test_substitute.vim,
            src/testdir/test_terminal.vim, src/testdir/test_virtualedit.vim

Patch 8.2.0541
Problem:    Travis CI does not give compiler warnings.
Solution:   Add flags for warnings.  Fix uncovered problems. (Ozaki Kiichi,
            closes #5898)
Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
            ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c,
            src/libvterm/t/harness.c

Patch 8.2.0542
Problem:    No test for E386.
Solution:   Add a test. (Dominique Pellé, closes #5911)
Files:      src/testdir/test_search.vim

Patch 8.2.0543
Problem:    Vim9: function with varargs does not work properly.
Solution:   Improve function type spec and add tests.  Fix bugs.
Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c,
            src/structs.h, src/testdir/test_vim9_func.vim

Patch 8.2.0544
Problem:    Memory leak in search test.
Solution:   Free msgbuf. (Dominique Pellé, closes #5912)
Files:      src/search.c

Patch 8.2.0545
Problem:    Unused arguments ignored in non-standard way.
Solution:   Add UNUSED instead of (void).
Files:      src/libvterm/t/harness.c

Patch 8.2.0546
Problem:    Vim9: varargs implementation is inefficient.
Solution:   Create list without moving the arguments.
Files:      src/vim9compile.c, src/vim9execute.c

Patch 8.2.0547
Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
Files:      src/os_win32.c

Patch 8.2.0548
Problem:    Vim9: not all possible func type errors tested.
Solution:   Add more tests.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0549
Problem:    User systemd files not recognized.
Solution:   Add filetype patterns. (Kevin Locke, closes #5914)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0550
Problem:    Some changes in the libvterm upstream code.
Solution:   Include some changes.
Files:      src/libvterm/t/harness.c

Patch 8.2.0551
Problem:    Not all code for options is tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5913)
Files:      src/testdir/test_options.vim, src/testdir/test_python3.vim,
            src/testdir/test_undo.vim, src/testdir/test_vimscript.vim

Patch 8.2.0552
Problem:    Vim9: some errors not covered by tests.
Solution:   Add more tests.  Check Funcref argument types.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0553 (after 8.2.0550)
Problem:    Error for unused argument.
Solution:   Add UNUSED.
Files:      src/libvterm/t/harness.c

Patch 8.2.0554
Problem:    The GUI doesn't set t_Co.
Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes #5903)
Files:      src/term.c, src/proto/term.pro, src/gui.c,
            src/testdir/test_gui.vim

Patch 8.2.0555
Problem:    Vim9: line continuation is not always needed.
Solution:   Recognize continuation lines automatically in list and dict.
Files:      runtime/doc/vim9.txt, src/vim9compile.c,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0556
Problem:    Vim9: memory leak when finding common type.
Solution:   Store allocated memory in type growarray.
Files:      src/vim9compile.c

Patch 8.2.0557
Problem:    No IPv6 support for channels.
Solution:   Add IPv6 support. (Ozaki Kiichi, closes #5893)
Files:      .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c,
            src/proto/channel.pro, src/testdir/check.vim,
            src/testdir/runtest.vim, src/testdir/test_cdo.vim,
            src/testdir/test_channel.py, src/testdir/test_channel.vim,
            src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.vim,
            src/testdir/test_getcwd.vim, src/testdir/test_hide.vim

Patch 8.2.0558
Problem:    Vim9: dict code not covered by tests.
Solution:   Remove dead code, adjust test case.
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0559
Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
Files:      src/vim.h, src/blowfish.c, src/channel.c, src/charset.c,
            src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c,
            src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c,
            src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c,
            src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c,
            src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c,
            src/main.c, src/map.c, src/memfile.c, src/message_test.c,
            src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c,
            src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c,
            src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
            src/search.c, src/sign.c, src/spell.c, src/spellfile.c,
            src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c,
            src/time.c, src/undo.c, src/userfunc.c, src/vim9compile.c,
            src/vim9execute.c, src/if_py_both.h

Patch 8.2.0560
Problem:    Compiler warning in tiny build.
Solution:   Move declaration inside #ifdef. (Dominique Pellé, closes #5915)
Files:      src/ex_docmd.c

Patch 8.2.0561
Problem:    Vim9: cannot split function call in multiple lines.
Solution:   Find more arguments in following lines.
Files:      runtime/doc/vim9.txt, src/vim9compile.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0562
Problem:    Vim9: cannot split an expression into multiple lines.
Solution:   Continue in next line after an operator.
Files:      runtime/doc/vim9.txt, src/macros.h, src/vim9compile.c,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0563
Problem:    Vim9: cannot split a function line.
Solution:   Continue in next line so long as the function isn't done.
Files:      runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro,
            src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0564
Problem:    Vim9: calling a def function from non-vim9 may fail.
Solution:   Convert varargs to a list.
Files:      src/testdir/test_vim9_func.vim, src/vim9execute.c

Patch 8.2.0565
Problem:    Vim9: tests contain superfluous line continuation.
Solution:   Remove line continuation no longer needed.  Skip empty lines.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0566
Problem:    Vim9: variable can be used uninitialized.
Solution:   Jump to after where variable is used.
Files:      src/vim9execute.c

Patch 8.2.0567
Problem:    Vim9: cannot put comments halfway expressions.
Solution:   Support # comments in many places.
Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c,
            src/ex_docmd.c, src/testdir/test_vim9_func.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0568
Problem:    The man filetype plugin overwrites the unnamed register.
Solution:   Use the black hole register. (Jason Franklin)
Files:      runtime/ftplugin/man.vim, src/testdir/test_man.vim

Patch 8.2.0569
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.0570
Problem:    Vim9: no error when omitting type from argument.
Solution:   Enforce specifying argument types.
Files:      src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0571
Problem:    Double free when passing invalid argument to job_start().
Solution:   Clear the argument when freed. (Masato Nishihata, closes #5926)
Files:      src/misc2.c, src/testdir/test_channel.vim

Patch 8.2.0572 (after 8.2.0571)
Problem:    Using two lines for free and reset.
Solution:   Use VIM_CLEAR() instead. (Yegappan Lakshmanan)
Files:      src/misc2.c

Patch 8.2.0573
Problem:    using :version twice leaks memory
Solution:   Only initialize variables once. (Dominique Pellé, closes #5917)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
            src/testdir/test_version.vim, src/version.c, src/globals.h

Patch 8.2.0574
Problem:    Ipv6 feature not shown in :version output.
Solution:   Add ipv6 in :version output. (Ozaki Kiichi, closes #5924)
Files:      runtime/doc/eval.txt, src/version.c

Patch 8.2.0575
Problem:    :digraph! not tested.
Solution:   Add a test. (Dominique Pellé, closes #5925)
Files:      src/testdir/test_digraph.vim

Patch 8.2.0576
Problem:    Some errors are not covered by tests.
Solution:   Add a few more tests. (Dominique Pellé, closes #5920)
Files:      src/testdir/test_buffer.vim, src/testdir/test_digraph.vim,
            src/testdir/test_expr.vim, src/testdir/test_messages.vim

Patch 8.2.0577
Problem:    Not all modifiers supported for :options.
Solution:   Use all cmdmod.split flags. (closes #4401)
Files:      src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c,
            src/testdir/test_options.vim, src/testdir/test_usercommands.vim

Patch 8.2.0578
Problem:    Heredoc for interfaces does not support "trim".
Solution:   Update the script heredoc support to be same as the :let command.
            (Yegappan Lakshmanan, closes #5916)
Files:      runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt,
            runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt,
            runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c,
            src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in,
            src/testdir/test87.in, src/testdir/test_lua.vim,
            src/testdir/test_perl.vim, src/testdir/test_python2.vim,
            src/testdir/test_python3.vim, src/testdir/test_pyx2.vim,
            src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim,
            src/testdir/test_tcl.vim, src/userfunc.c, src/vim9compile.c

Patch 8.2.0579
Problem:    Coverity warns for unused value.
Solution:   Change order and use "else if".
Files:      src/os_unix.c

Patch 8.2.0580
Problem:    Window size wrong if 'ea' is off and 'splitright' is on and
            splitting then closing a window.
Solution:   Put abandoned window space in the right place. (Mark Waggoner)
Files:      src/testdir/test_winbuf_close.vim, src/window.c

Patch 8.2.0581 (after 8.2.0547)
Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
Files:      src/os_win32.c

Patch 8.2.0582
Problem:    Color ramp test does not show text colors.
Solution:   Add a row of 16 text colors and 16 bold text colors.
Files:      src/testdir/color_ramp.vim

Patch 8.2.0583
Problem:    Vim9: # comment not recognized in :def function.
Solution:   Recognize and skip # comment.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0584
Problem:    Viminfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes #5934)
Files:      src/session.c

Patch 8.2.0585
Problem:    Vim9: # comment not recognized after :vim9script.
Solution:   Check script type. Make comment after ":echo" work.  And in
            several other places.
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c,
            src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.0586
Problem:    Vim9: # comment not sufficiently tested
Solution:   Check for preceding white space.
Files:      src/eval.c, src/testdir/test_vim9_script.vim

Patch 8.2.0587
Problem:    Compiler warning for unused variable.
Solution:   Add UNUSED.
Files:      src/ex_docmd.c

Patch 8.2.0588
Problem:    Putty does not use "sgr" 'ttymouse' by default.
Solution:   Make "sgr" the default for Putty. (Christian Brabandt,
            closes #5942)
Files:      src/term.c

Patch 8.2.0589
Problem:    .bsd file type not recognized.
Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes #5945)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0590
Problem:    No 'backspace' value allows ignoring the insertion point.
Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes #5940)
Files:      runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h,
            src/optionstr.c, src/testdir/gen_opt_test.vim,
            src/testdir/test_backspace_opt.vim

Patch 8.2.0591
Problem:    MS-Windows: should always support IPv6
Solution:   Add build flag. (Ozaki Kiichi, closes #5944)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.0592
Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes #5941)
Files:      src/os_win32.c

Patch 8.2.0593
Problem:    Finding a user command is not optimal.
Solution:   Start further down in the list of commands.
Files:      src/ex_cmds.h, src/ex_docmd.c

Patch 8.2.0594
Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/channel.c, src/config.h.in, src/configure.ac

Patch 8.2.0595
Problem:    Vim9: not all commands using ends_excmd() tested.
Solution:   Find # comment after regular commands. Add more tests.  Report
            error for where it was caused.
Files:      src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/usercmd.c,
            src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0596
Problem:    Crash in test49.
Solution:   Check the right pointer.
Files:      src/userfunc.c, src/testdir/test_eval.ok

Patch 8.2.0597
Problem:    Test_eval is old style.
Solution:   Change some tests to a new style test.
Files:      src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_stuff.vim

Patch 8.2.0598
Problem:    Test_eval_stuff fails in normal terminal.
Solution:   Close the new window.
Files:      src/testdir/test_eval_stuff.vim

Patch 8.2.0599
Problem:    Netbeans interface insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5921)
Files:      runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c,
            src/testdir/runtest.vim, src/testdir/test_netbeans.py,
            src/testdir/test_netbeans.vim

Patch 8.2.0600
Problem:    Vim9: cannot read or write w:, t: and b: variables.
Solution:   Implement load and store for w:, t: and b: variables.
            (closes #5950)
Files:      src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
            src/vim9.h, src/vim9compile.c, src/vim9execute.c

Patch 8.2.0601
Problem:    Vim9: :unlet is not compiled.
Solution:   Implement :unlet instruction and check for errors.
Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9.h,
            src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro,
            src/eval.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0602
Problem:    :unlet $VAR does not work properly.
Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
Files:      src/evalvars.c, src/globals.h, src/testdir/test_vimscript.vim

Patch 8.2.0603
Problem:    Configure does not detect moonjit.
Solution:   Add check for moonjit. (Shlomi Fish, closes #5947)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0604
Problem:    :startinsert in a terminal window used later.
Solution:   Ignore :startinsert in a terminal window. (closes #5952)
Files:      src/ex_docmd.c, src/testdir/test_terminal.vim

Patch 8.2.0605
Problem:    Vim9: cannot unlet an environment variable.
Solution:   Implement unlet for $VAR.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0606
Problem:    Several syntax HL errors not checked.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5954)
Files:      src/testdir/test_syntax.vim

Patch 8.2.0607
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
Files:      src/evalvars.c

Patch 8.2.0608
Problem:    Warning from clang when building message test.
Solution:   Use a void pointer.  (Dominique Pellé, closes #5958)
Files:      src/message_test.c

Patch 8.2.0609
Problem:    Configure does not detect moonjit correctly.
Solution:   Double the brackets. (Ozaki Kiichi)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0610
Problem:    Some tests are still old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
Files:      src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim,
            src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim,
            src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
            src/testdir/test_functions.vim, src/testdir/test_listdict.vim,
            src/testdir/test_sort.vim, src/testdir/test_syntax.vim,
            src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim

Patch 8.2.0611
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/eval.c, src/evalvars.c, src/ex_docmd.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0612
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro,
            src/gui.c, src/highlight.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_sort.vim

Patch 8.2.0613
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/highlight.c, src/menu.c, src/syntax.c,
            src/testdir/test_vim9_script.vim,
            runtime/lang/menu_de_de.latin1.vim

Patch 8.2.0614
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
Files:      src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c,
            src/undo.c, src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
            src/testdir/test_gf.vim, src/testdir/test_popup.vim,
            src/testdir/test_ex_mode.vim, runtime/doc/insert.txt

Patch 8.2.0615
Problem:    Regexp benchmark test is old style.
Solution:   Make it a new style test.  Fix using a NULL list.  Add more tests.
            (Yegappan Lakshmanan, closes #5963)
Files:      src/evalbuffer.c, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Makefile,
            src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim,
            src/testdir/test_autocmd.vim, src/testdir/test_bench_regexp.vim,
            src/testdir/test_blob.vim, src/testdir/test_bufline.vim,
            src/testdir/test_channel.vim, src/testdir/test_cmdline.vim,
            src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim,
            src/testdir/test_popupwin.vim, src/testdir/test_prompt_buffer.vim,
            src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim

Patch 8.2.0616
Problem:    Build error when disabling the diff feature.
Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
Files:      src/drawline.c

Patch 8.2.0617
Problem:    New error check triggers in Swedish menu.
Solution:   Insert backslash. (Mats Tegner, closes #5966)
Files:      runtime/lang/menu_sv_se.latin1.vim

Patch 8.2.0618
Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution:   Return "[]" instead of NULL in echo_string_core().
Files:      src/eval.c, src/testdir/test_messages.vim

Patch 8.2.0619
Problem:    Null dict is not handled like an empty dict.
Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
Files:      src/dict.c, src/eval.c, src/testdir/test_blob.vim,
            src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
            src/testdir/test_let.vim, src/testdir/test_listdict.vim,
            src/testdir/test_search.vim, src/testdir/test_unlet.vim,
            src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim

Patch 8.2.0620
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space.
Files:      runtime/lang/menu_it_it.latin1.vim,
            runtime/lang/menu_chinese_gb.936.vim

Patch 8.2.0621
Problem:    After running tests asan files may remain.
Solution:   Clean up asan files with "make testclean".
Files:      src/testdir/Makefile, src/Makefile

Patch 8.2.0622
Problem:    Haiku: GUI does not compile.
Solution:   Various fixes. (Emir Sarı, closes #5961)
Files:      Filelist, README.md, READMEdir/README_haiku.txt,
            runtime/doc/os_haiku.txt, src/Makefile, src/beval.h,
            src/gui_haiku.cc, src/proto/gui_haiku.pro

Patch 8.2.0623
Problem:    Typo in test comment. (Christ van Willegen)
Solution:   Avoid mixing up a data structure with a body part.
Files:      src/testdir/test_listdict.vim

Patch 8.2.0624
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.  Fix :throw with double quoted string.
Files:      src/usercmd.c, src/userfunc.c, src/vim9compile.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0625
Problem:    Vim9: confusing error when calling unknown function.
Solution:   Give error while compiling.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_func.vim

Patch 8.2.0626
Problem:    Vim9: wrong syntax of function in Vim9 script.
Solution:   Give error for missing space. Implement :echomsg and :echoerr.
            (closes #5670)
Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c,
            src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim,
            src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0627
Problem:    Vim9: error message does not work. (Yegappan Lakshmanan)
Solution:   Swap lines.
Files:      src/userfunc.c

Patch 8.2.0628
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space in one more file. (Shun Bai,
            Emir Sarı)
Files:      runtime/lang/menu_zh_cn.utf-8.vim,
            runtime/lang/menu_ca_es.latin1.vim,
            runtime/lang/menu_cs_cz.iso_8859-2.vim,
            runtime/lang/menu_cs_cz.utf-8.vim,
            runtime/lang/menu_czech_czech_republic.1250.vim,
            runtime/lang/menu_czech_czech_republic.ascii.vim,
            runtime/lang/menu_da.utf-8.vim,
            runtime/lang/menu_fi_fi.latin1.vim,
            runtime/lang/menu_hu_hu.iso_8859-2.vim,
            runtime/lang/menu_hu_hu.utf-8.vim,
            runtime/lang/menu_is_is.latin1.vim,
            runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pt_br.vim,
            runtime/lang/menu_pt_pt.vim,
            runtime/lang/menu_sk_sk.iso_8859-2.vim,
            runtime/lang/menu_sl_si.latin2.vim,
            runtime/lang/menu_slovak_slovak_republic.1250.vim,
            runtime/lang/menu_tr_tr.cp1254.vim,
            runtime/lang/menu_tr_tr.iso_8859-9.vim,
            runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_vi_vn.vim

Patch 8.2.0629
Problem:    Setting a boolean option to v:false does not work.
Solution:   Do not use the string representation of the value. (Christian
            Brabandt, closes #5974)
Files:      src/evalvars.c, src/testdir/test_options.vim

Patch 8.2.0630
Problem:    "make tags" does not cover Haiku GUI file.
Solution:   Add *.cc files.
Files:      src/Make_all.mak

Patch 8.2.0631
Problem:    Haiku file formatted with wrong tabstop.
Solution:   Use normal tabstop. Fix white space.
Files:      src/gui_haiku.cc

Patch 8.2.0632
Problem:    Crash when using Haiku.
Solution:   Lock the screen. (closes #5975, closes #5973)
Files:      src/screen.c

Patch 8.2.0633
Problem:    Crash when using null partial in filter().
Solution:   Fix crash.  Add more tests. (Yegappan Lakshmanan, closes #5976)
Files:      src/eval.c, src/testdir/test_blob.vim,
            src/testdir/test_channel.vim, src/testdir/test_eval_stuff.vim,
            src/testdir/test_execute_func.vim, src/testdir/test_expr.vim,
            src/testdir/test_filter_map.vim, src/testdir/test_fold.vim,
            src/testdir/test_functions.vim, src/testdir/test_let.vim,
            src/testdir/test_listdict.vim, src/testdir/test_partial.vim,
            src/testdir/test_usercommands.vim

Patch 8.2.0634
Problem:    Crash with null partial and blob.
Solution:   Check for NULL pointer.  Add more tests. (Yegappan Lakshmanan,
            closes #5984)
Files:      src/eval.c, src/list.c, src/testdir/test_blob.vim,
            src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim,
            src/testdir/test_channel.vim, src/testdir/test_cursor_func.vim,
            src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim,
            src/testdir/test_filter_map.vim, src/testdir/test_fnamemodify.vim,
            src/testdir/test_functions.vim, src/testdir/test_getvar.vim,
            src/testdir/test_listdict.vim, src/testdir/test_messages.vim,
            src/testdir/test_partial.vim, src/testdir/test_quickfix.vim,
            src/testdir/test_tabpage.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0635
Problem:    When using 256 colors DarkYellow does not show expected color.
Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes #5985)
Files:      src/highlight.c

Patch 8.2.0636
Problem:    :messages does not show the maintainer when $LANG is unset.
Solution:   Call get_mess_lang() if available. (closes #5978)
Files:      src/message.c

Patch 8.2.0637
Problem:    Incsearch highlighting does not work for ":sort!".
Solution:   Skip over the exclamation point. (closes #5983)
Files:      src/ex_getln.c, src/testdir/test_search.vim,
            src/testdir/dumps/Test_incsearch_sort_02.dump

Patch 8.2.0638
Problem:    MS-Windows: messages test fails.
Solution:   Clear environment variables.
Files:      src/testdir/test_messages.vim

Patch 8.2.0639
Problem:    MS-Windows: messages test still fails.
Solution:   Filter out the maintainer message.
Files:      src/testdir/test_messages.vim

Patch 8.2.0640
Problem:    Vim9: expanding `=expr` does not work.
Solution:   Find wildcards in not compiled commands.  Reorganize test files.
Files:      Filelist, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/vim9.vim, src/testdir/test_vim9_cmd.vim,
            src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
            src/testdir/Make_all.mak

Patch 8.2.0641
Problem:    Vim9: `=expr` not expanded in :hardcopy and "syntax include".
Solution:   Add the EX_EXPAND flag.  Expend "syntax include".
Files:      src/ex_cmds.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_cmd.vim

Patch 8.2.0642
Problem:    Vim9: using invalid index.
Solution:   Check index for being valid.  Fix memory leak.
Files:      src/vim9compile.c, src/clientserver.c

Patch 8.2.0643 (after 8.2.0635)
Problem:    Terminal uses brown instead of dark yellow. (Romain Lafourcade)
Solution:   Use color index 3 instead of 130. (closes #5993)
Files:      src/terminal.c

Patch 8.2.0644
Problem:    Insufficient testing for invalid function arguments.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5988)
Files:      runtime/doc/eval.txt, src/testdir/test_bufline.vim,
            src/testdir/test_channel.vim, src/testdir/test_clientserver.vim,
            src/testdir/test_expr.vim, src/testdir/test_functions.vim,
            src/testdir/test_listener.vim, src/testdir/test_match.vim,
            src/testdir/test_menu.vim, src/testdir/test_quickfix.vim,
            src/testdir/test_registers.vim, src/testdir/test_reltime.vim,
            src/testdir/test_terminal.vim, src/testdir/test_textprop.vim,
            src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0645
Problem:    MS-Windows terminal: CTRL-C does not get to child job.
Solution:   Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro
            Takasaki, closes #5987)
Files:      src/terminal.c

Patch 8.2.0646
Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes #5992)
Files:      src/os_unix.c, src/term.c

Patch 8.2.0647
Problem:    MS-Windows: repeat count for events was not used.
Solution:   Check the repeat count. (Nobuhiro Takasaki, closes #5989)
Files:      src/os_win32.c

Patch 8.2.0648
Problem:    Semicolon search does not work in first line.
Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
            closes #5996)
Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

Patch 8.2.0649
Problem:    Undo problem when an InsertLeave autocommand resets undo. (Kutsan
            Kaplan)
Solution:   Do not create a new undo block when leaving Insert mode.
Files:      src/edit.c, src/testdir/test_edit.vim

Patch 8.2.0650
Problem:    Vim9: script function can be deleted.
Solution:   Disallow deleting script function.  Delete functions when sourcing
            a script again.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
            src/vim9compile.c, src/vim9execute.c, src/vim9script.c,
            src/scriptfile.c, src/testing.c, src/testdir/test_vim9_expr.vim,
            src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0651
Problem:    Old style benchmark test still in list of distributed files.
Solution:   Remove the files from the list.
Files:      Filelist

Patch 8.2.0652 (after 8.2.0650)
Problem:    Compiler warning for char conversion.
Solution:   Use unsigned char buffer.
Files:      src/userfunc.c

Patch 8.2.0653 (after 8.2.0650)
Problem:    using uninitialized pointer.
Solution:   Move assignment up. (John Marriott)
Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

Patch 8.2.0654
Problem:    Building with Python fails.
Solution:   Add missing argument.
Files:      src/if_py_both.h

Patch 8.2.0655
Problem:    Search code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5999)
Files:      src/testdir/test_charsearch.vim, src/testdir/test_gn.vim,
            src/testdir/test_goto.vim, src/testdir/test_ins_complete.vim,
            src/testdir/test_normal.vim, src/testdir/test_search.vim,
            src/testdir/test_textformat.vim, src/testdir/test_textobjects.vim,
            src/testdir/test_visual.vim

Patch 8.2.0656
Problem:    MS-Windows: redrawing right screen edge may not be needed.
Solution:   Check the build version. (Nobuhiro Takasaki, closes #6002)
Files:      src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro

Patch 8.2.0657
Problem:    Vim9: no check if called variable is a FuncRef.
Solution:   Add a type check.
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0658 (after 8.2.0646)
Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
Files:      src/os_unix.c

Patch 8.2.0659
Problem:    Vim9: no test for equal func type.
Solution:   Add a test.  Improve type check.
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0660
Problem:    The search.c file is a bit big.
Solution:   Split off the text object code to a separate file. (Yegappan
            Lakshmanan, closes #6007)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/proto.h, src/proto/search.pro, src/proto/textobject.pro,
            src/search.c, src/textobject.c

Patch 8.2.0661
Problem:    Eval test is still old style.
Solution:   Change into new style tests. (Yegappan Lakshmanan, closes #6009)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_stuff.vim

Patch 8.2.0662
Problem:    Cannot use input() in a channel callback.
Solution:   Reset vgetc_busy. (closes #6010)
Files:      src/globals.h, src/ex_getln.c, src/evalfunc.c,
            src/testdir/test_channel.vim

Patch 8.2.0663
Problem:    Not all systemd temp files are recognized.
Solution:   Add two more patterns. (Jamie Macdonald, closes #6003)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0664
Problem:    Included undesired changes in Makefile.
Solution:   Revert the changes.
Files:      src/Makefile

Patch 8.2.0665
Problem:    Wrongly assuming Python executable is called "python".
Solution:   Use detected python command. (Ken Takata, closes #6016)
            Also use CheckFunction if possible.
Files:      src/testdir/test_terminal.vim, src/testdir/check.vim

Patch 8.2.0666
Problem:    Ruby test fails on MS-Windows.
Solution:   Remove the "maintainer" line. (Ken Takata, closes #6015)
Files:      src/testdir/shared.vim, src/testdir/test_messages.vim,
            src/testdir/test_ruby.vim

Patch 8.2.0667
Problem:    Cannot install Haiku version from source.
Solution:   Update Makefile and rdef file. (Emir Sarı, closes #6013)
Files:      Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt,
            src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef

Patch 8.2.0668
Problem:    Compiler warning for int/size_t usage.
Solution:   Change "int" to "size_t". (Mike Williams)
Files:      src/vim9execute.c

Patch 8.2.0669
Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes #6014)
Files:      src/os_win32.c, src/screen.c

Patch 8.2.0670
Problem:    Cannot change window when evaluating 'completefunc'.
Solution:   Make a difference between not changing text or buffers and also
            not changing window.
Files:      src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c,
            src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c,
            src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c,
            src/undo.c, src/testdir/test_edit.vim,
            src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim

Patch 8.2.0671
Problem:    Haiku: compiler warnings.
Solution:   Avoid the warnings. Drop display_errors() copy. (Emir Sarı,
            closes #6018)
Files:      .gitignore, src/gui.c, src/gui_haiku.cc

Patch 8.2.0672
Problem:    Heredoc in scripts does not accept lower case marker.
Solution:   Allow lower case only in non-Vim scripts. (Ken Takata,
            closes #6019)
Files:      src/evalvars.c, src/testdir/test_lua.vim,
            src/testdir/test_perl.vim, src/testdir/test_python2.vim,
            src/testdir/test_python3.vim, src/testdir/test_pyx2.vim,
            src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim

Patch 8.2.0673
Problem:    Cannot build Haiku in shadow directory.
Solution:   Add symlink. (Ozaki Kiichi, closes #6023)
Files:      src/Makefile

Patch 8.2.0674
Problem:    Some source files are too big.
Solution:   Move text formatting functions to a new file. (Yegappan
            Lakshmanan, closes #6021)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h,
            src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro,
            src/proto/option.pro, src/proto/textformat.pro, src/textformat.c

Patch 8.2.0675
Problem:    Vim9: no support for closures.
Solution:   Do not re-use stack entries.
Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/evalvars.c, src/proto/evalvars.pro

Patch 8.2.0676
Problem:    Pattern in list of distributed files does not match.
Solution:   Drop "testdir/test_[a-z]*.ok".  Add CI sed files.
Files:      Filelist

Patch 8.2.0677
Problem:    Vim9: no support for closures.
Solution:   Find variables in the outer function scope, so long as the scope
            exists.
Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
            src/vim9execute.c, src/structs.h, src/vim9.h,
            src/testdir/test_vim9_func.vim

Patch 8.2.0678
Problem:    Rare crash for popup menu.
Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes #6027)
Files:      src/popupmenu.c

Patch 8.2.0679
Problem:    Vim9: incomplete support for closures.
Solution:   At the end of a function copy arguments and local variables if
            they are still used by a referenced closure.
Files:      src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_func.vim

Patch 8.2.0680
Problem:    PTYGROUP and PTYMODE are unused.
Solution:   Remove from autoconf. (closes #6024)
Files:      src/configure.ac, src/auto/configure, src/config.h.in

Patch 8.2.0681
Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé)
Solution:   Call end_search_hl() to make sure the previous pattern is freed.
            (closes #6028)
Files:      src/screen.c

Patch 8.2.0682
Problem:    Vim9: parsing function argument type can get stuck.
Solution:   Bail out when not making progress.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0683
Problem:    Vim9: parsing type does not always work.
Solution:   Handle func type without return value.  Test more closures.
            Fix type check offset.  Fix garbage collection.
Files:      src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro,
            src/userfunc.c, src/testdir/test_vim9_func.vim

Patch 8.2.0684
Problem:    Vim9: memory leak when using lambda.
Solution:   Move the funccal context to the partial. Free the function when
            exiting.
Files:      src/vim9.h, src/structs.h, src/vim9execute.c, src/userfunc.c,
            src/eval.c, src/testdir/test_vim9_func.vim

Patch 8.2.0685 (after 8.2.0684)
Problem:    Build failure.
Solution:   Include missing changes.
Files:      src/vim9compile.c

Patch 8.2.0686
Problem:    Formatoptions not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6031)
Files:      src/testdir/test_normal.vim, src/testdir/test_textformat.vim

Patch 8.2.0687
Problem:    Some tests do not work on FreeBSD.
Solution:   Enable modeline.  Use WaitFor() in more cases. (Ozaki Kiichi,
            closes #6036)
Files:      src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim

Patch 8.2.0688
Problem:    Output clobbered if setting 'verbose' to see shell commands.
Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
Files:      src/scriptfile.c, runtime/doc/options.txt

Patch 8.2.0689
Problem:    When using getaddrinfo() the error message is unclear.
Solution:   Use gai_strerror() to get the message. (Ozaki Kiichi,
            closes #6034)
Files:      src/channel.c

Patch 8.2.0690
Problem:    Line number of option set by modeline is wrong.
Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
Files:      src/option.c, src/testdir/test_modeline.vim

Patch 8.2.0691
Problem:    Startup test fails.
Solution:   Adjust expected output from -V2 argument.
Files:      src/testdir/test_startup.vim

Patch 8.2.0692
Problem:    Startup test fails on MS-Windows.
Solution:   Allow for any path.
Files:      src/testdir/test_startup.vim

Patch 8.2.0693
Problem:    Closure using argument not tested.
Solution:   Add a test, make it work.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0694
Problem:    Haiku: channel and terminal do not work.
Solution:   Close files when the job has finished. (Ozaki Kiichi,
            closes #6039)
Files:      src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c

Patch 8.2.0695
Problem:    Vim9: cannot define a function inside a function.
Solution:   Initial support for :def inside :def.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c,
            src/vim9execute.c, src/testdir/test_vim9_func.vim

Patch 8.2.0696
Problem:    Vim9: nested function does not work properly
Solution:   Create a function reference.  Check argument count.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_func.vim

Patch 8.2.0697
Problem:    Vim9: memory leak when using nested function.
Solution:   Unreference function when deleting instructions. Adjust reference
            count for local variables.
Files:      src/vim9compile.c, src/vim9execute.c

Patch 8.2.0698
Problem:    Insert mode completion not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6041)
Files:      src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim,
            src/testdir/test_textformat.vim

Patch 8.2.0699
Problem:    Vim9: not all errors tested.
Solution:   Add test for deleted function.  Bail out on first error.
Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim,
            src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim

Patch 8.2.0700
Problem:    Vim9: converting error message to exception not tested.
Solution:   Test exception from error.  Do not continue after :echoerr.
Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

Patch 8.2.0701
Problem:    Vim9 test fails without job feature.
Solution:   Add feature check.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0702
Problem:    Running channel tests may leave running process behind.
Solution:   Make Python client exit when running into EOF. (Kurtis Rader,
            part of #6046)
Files:      src/testdir/test_channel_pipe.py

Patch 8.2.0703
Problem:    Vim9: closure cannot store value in outer context.
Solution:   Make storing value in outer context work.  Make :disassemble
            accept a function reference.
Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/eval.c,
            src/structs.h, src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_func.vim

Patch 8.2.0704
Problem:    Vim9: memory leak in disassemble test.
Solution:   Decrement refcount when creating funccal.
Files:      src/vim9execute.c

Patch 8.2.0705
Problem:    Indent tests don't run on CI for FreeBSD.
Solution:   Set modeline. (Ozaki Kiichi, closes #6048)
Files:      .cirrus.yml, runtime/indent/testdir/runtest.vim

Patch 8.2.0706
Problem:    Vim9: using assert_fails() causes function to finish.
Solution:   Check did_emsg instead of called_emsg.
Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0707
Problem:    Vim9 function test fails.
Solution:   Adjust expected error code.
Files:      src/testdir/test_vim9_func.vim

Patch 8.2.0708
Problem:    Vim9: constant expressions are not simplified.
Solution:   Simplify string concatenation.
Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0709
Problem:    MS-Windows: compiler warning for int vs size_t.
Solution:   Add type cast. (Mike Williams)
Files:      src/channel.c

Patch 8.2.0710
Problem:    Netbeans test sometimes fails.
Solution:   Mark any test using an external command as flaky.
Files:      src/testdir/shared.vim

Patch 8.2.0711
Problem:    With a long running Vim the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes #6044)
Files:      src/config.h.in, src/configure.ac, src/auto/configure,
            src/fileio.c, src/globals.h, src/os_unix.h

Patch 8.2.0712
Problem:    Various code not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6049)
Files:      src/testdir/test_functions.vim, src/testdir/test_options.vim,
            src/testdir/test_system.vim, src/testdir/test_termcodes.vim

Patch 8.2.0713
Problem:    The pam_environment file is not recognized.
Solution:   Add a filetype pattern for pamenv. (closes #6051)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0714
Problem:    Vim9: handling constant expression does not scale.
Solution:   Use another solution, passing typval_T.
Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0715
Problem:    Vim9: leaking memory.
Solution:   Free strings after concatenating them.
Files:      src/vim9compile.c

Patch 8.2.0716
Problem:    Vim9: another memory leak.
Solution:   Clear typval when failing.
Files:      src/vim9compile.c

Patch 8.2.0717
Problem:    Vim9: postponed constant expressions does not scale.
Solution:   Add a structure to pass around postponed constants.
Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

Patch 8.2.0718
Problem:    Gcc warning for returning pointer to local variable. (John
            Marriott)
Solution:   Return another pointer.
Files:      src/evalvars.c

Patch 8.2.0719
Problem:    Vim9: more expressions can be evaluated at compile time
Solution:   Recognize has('name').
Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_expr.vim

Patch 8.2.0720
Problem:    Occasional exit when encountering an X error. (Manfred Lotz)
Solution:   On an X error do not exit, do preserve files.
Files:      src/os_unix.c

Patch 8.2.0721
Problem:    Vim9: leaking memory when skipping.
Solution:   Disable skipping in generate_ppconst().
Files:      src/vim9compile.c

Patch 8.2.0722
Problem:    Vim9: not handling constant expression for elseif.
Solution:   Use postponed constants.  Delete the code for evaluating a
            constant expression.
Files:      src/vim9compile.c

Patch 8.2.0723
Problem:    Vim9: nested constant expression not evaluated compile time.
Solution:   Use compile_expr1() for parenthesis.
Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

Patch 8.2.0724
Problem:    Vim9: appending to buffer/window/tab variable not tested
Solution:   Add a test.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0725
Problem:    Vim9: cannot call a function declared later in Vim9 script.
Solution:   Make two passes through the script file.
Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c,
            src/vim9compile.c, src/vim9execute.c, src/proto/vim9compile.pro,
            src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c,
            src/proto/evalvars.pro, src/vim.h,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0726
Problem:    Vim9: leaking memory when calling not compiled :def function.
Solution:   Check if function is compiled earlier.
Files:      src/vim9execute.c

Patch 8.2.0727
Problem:    MS-Windows: new gcc compiler does not support scanf format.
Solution:   Use "%ll" instead of "%I". (Ken Takata)
Files:      src/vim.h

Patch 8.2.0728
Problem:    Messages about a deadly signal are not left aligned.
Solution:   Output a CR before the NL. (Dominique Pellé, #6055)
Files:      src/misc1.c, src/os_unix.c

Patch 8.2.0729
Problem:    Vim9: When reloading a script variables are not cleared.
Solution:   When sourcing a script again clear all script-local variables.
Files:      src/dict.c, src/proto/dict.pro, src/scriptfile.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0730
Problem:    Vim9: Assignment to dict member does not work.
Solution:   Parse dict assignment. Implement getting dict member.
Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/globals.h,
            src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim,
            src/testdir/test_vim9_script.vim

Patch 8.2.0731
Problem:    Vim9: parsing declarations continues after :finish.
Solution:   Bail out when encountering :finish.
Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

Patch 8.2.0732
Problem:    Vim9: storing value in dict messes up stack.
Solution:   Correct item count of stack.
Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

Patch 8.2.0733
Problem:    Vim9: assigning to dict or list argument does not work.
Solution:   Recognize an argument as assignment target.
Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

Patch 8.2.0734
Problem:    Vim9: leaking memory when using :finish.
Solution:   Do not check for next line in third pass.
Files:      src/scriptfile.c

Patch 8.2.0735
Problem:    Vim9: using uninitialized memory.
Solution:   Clear the arg_lvar field.
Files:      src/vim9compile.c

Patch 8.2.0736
Problem:    Some files not recognized as pamenv.
Solution:   Add pam_inv.conf. (closes #6065)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0737
Problem:    When shell doesn't support CTRL-Z Vim still handles it.
Solution:   Ignore the STOP signal if it was ignored on startup.
            (Kurtis Rader, closes #5990, closes #6058)
Files:      src/os_unix.c

Patch 8.2.0738
Problem:    Mouse handling in a terminal window not well tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6052)
Files:      src/testdir/term_util.vim, src/testdir/test_gui.vim,
            src/testdir/test_modeless.vim, src/testdir/test_terminal.vim

Patch 8.2.0739
Problem:    Incomplete profiling when exiting because of a deadly signal.
Solution:   Call __gcov_flush() if available.
Files:      src/os_unix.c, src/Makefile, .travis.yml

Patch 8.2.0740
Problem:    Minor message mistakes.
Solution:   Change vim to Vim and other fixes.
Files:      src/if_py_both.h, src/if_tcl.c, src/main.c

Patch 8.2.0741
Problem:    Python tests fail because of changed message.
Solution:   Adjust the expected messages (Dominique Pellé, closes #6066)
Files:      src/testdir/test86.ok, src/testdir/test87.ok

Patch 8.2.0742
Problem:    Handling of a TERM signal not tested.
Solution:   Add a test for SIGTERM. (Dominique Pellé, closes #6055)
Files:      src/testdir/test_signals.vim

Patch 8.2.0743
Problem:    Can move to another buffer from a terminal in popup window.
Solution:   Do not allow "gf" or editing a file. (closes #6072)
Files:      src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.vim

Patch 8.2.0744
Problem:    The name vim is not capitalized in a message.
Solution:   Use "Vim" instead of "vim".
Files:      src/main.c

Patch 8.2.0745
Problem:    Crash on exit when not all popups are closed.
Solution:   Close popups when freeing all memory.  Disable checking for popup
            when editing a file for now.
Files:      src/misc2.c, src/ex_cmds.c

Patch 8.2.0746
Problem:    popup_clear() hangs when a popup can't be closed.
Solution:   Bail out when a popup can't be closed.
Files:      src/popupwin.c, src/proto/popupwin.pro

Patch 8.2.0747
Problem:    Cannot forcefully close all popups.
Solution:   Add the "force" argument to popup_clear().  Use it after running a
            test.  Put back the check for a popup when editing a file.
Files:      runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c,
            src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c,
            src/ex_cmds.c, src/channel.c, src/testdir/runtest.vim,
            src/testdir/test_terminal.vim

Patch 8.2.0748
Problem:    Cannot get a list of all popups.
Solution:   Add popup_list().  Use it in the test runner.
Files:      runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c,
            src/proto/popupwin.pro, src/evalfunc.c,
            src/testdir/test_popupwin.vim, src/testdir/runtest.vim

Patch 8.2.0749
Problem:    TERM signal test fails on FreeBSD.
Solution:   Do not check the messages, the may appear anywhere. (Dominique
            Pellé, closes #6075)
Files:      src/testdir/test_signals.vim

Patch 8.2.0750
Problem:    Netbeans test is a bit flaky.
Solution:   Allow for standard sign to be defined.  Use WaitForAssert().
Files:      src/testdir/test_netbeans.vim

Patch 8.2.0751
Problem:    Vim9: performance can be improved.
Solution:   Don't call break.  Inline check for list materialize.  Make an
            inline version of ga_grow().
Files:      src/macros.h, src/evalfunc.c, src/misc2.c,
            src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c,
            src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c,
            src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c,
            src/userfunc.c, src/if_py_both.h

Patch 8.2.0752
Problem:    Terminal in popup window test is a bit flaky.
Solution:   Wait for shell job status to be "run".  Mark as flaky test.
Files:      src/testdir/test_popupwin.vim

Patch 8.2.0753
Problem:    Vim9: expressions are evaluated in the discovery phase.
Solution:   Bail out if an expression is not a constant.  Require a type for
            declared constants.
Files:      src/vim.h, src/evalvars.c, src/eval.c, src/ex_eval.c,
            src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c,
            src/vim9compile.c, src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.0754
Problem:    Vim9: No test for forward declaration.
Solution:   Add a test.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0755
Problem:    Vim9: No error when variable initializer is not a constant.
Solution:   Return FAIL when trying to get a variable value.  Do not execute a
            script when an error is detected in the first or second phase.
Files:      src/eval.c, src/vim9script.c, src/testdir/test_vim9_script.vim

Patch 8.2.0756 (after 8.2.0249)
Problem:    MS-Windows: still a compiler warning.
Solution:   Move flag to another place in the Makefile. (Ken Takata,
            closes #6083)
Files:      src/Make_mvc.mak

Patch 8.2.0757
Problem:    Vim9: no test for MEMBER instruction.
Solution:   Add a test.  Make matches stricter.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0758
Problem:    Vim9: no test for STORELIST and STOREDICT.
Solution:   Add a test.  Make matches stricter.
Files:      src/testdir/test_vim9_disassemble.vim

Patch 8.2.0759 (after 8.2.0751)
Problem:    Vim9: missing changes for performance improvements
Solution:   Use GA_GROW().  Don't call breakcheck so often.
Files:      src/vim9execute.c

Patch 8.2.0760
Problem:    Vim9: dict member errors not tested.
Solution:   Delete unreachable error.  Add tests.
Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

Patch 8.2.0761
Problem:    Vim9: instructions not tested
Solution:   Use a variable instead of a constant.
Files:      src/testdir/test_vim9_expr.vim

Patch 8.2.0762
Problem:    Buffer is not considered modified after setting crypt key.
Solution:   Set the modified flag. (Christian Brabandt, closes #6082)
Files:      src/optionstr.c, src/testdir/test_crypt.vim

Patch 8.2.0763
Problem:    GUI test fails without the terminal feature.
Solution:   Check the terminal feature is supported. (Ken Takata,
            closes #6084)
Files:      src/testdir/test_gui.vim

Patch 8.2.0764
Problem:    Vim9: assigning to option not fully tested.
Solution:   Add more test cases. Allow using any type for assignment.
Files:      src/vim9compile.c, src/vim9execute.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0765
Problem:    In the GUI can't use all the modifiers. (Andri Möll)
Solution:   Do not apply Alt/Meta early, do it later like with the terminal.
            Avoid the Motif test from crashing.
Files:      src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c,
            src/gui_motif.c

Patch 8.2.0766
Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
            closes #5986)
Files:      src/drawline.c, src/testdir/test_breakindent.vim

Patch 8.2.0767
Problem:    ModifyOtherKeys active when using a shell command in autocmd.
Solution:   Output T_CTE when going to cooked mode. (closes 5617)
Files:      src/term.c

Patch 8.2.0768
Problem:    Vim9: memory leak in script test.
Solution:   Clear typval before giving an error message.
Files:      src/vim9execute.c

Patch 8.2.0769
Problem:    VimLeavePre not triggered when Vim is terminated.
Solution:   Unblock autocommands.
Files:      src/main.c, src/testdir/test_signals.vim

Patch 8.2.0770
Problem:    Cannot map CTRL-B when using the GUI.
Solution:   Reset the CTRL modifier when used. (closes #6092)
Files:      src/gui_gtk_x11.c

Patch 8.2.0771
Problem:    Vim9: cannot call a compiled closure from not compiled code.
Solution:   Pass funcexe to call_user_func().
Files:      src/userfunc.c, src/vim9execute.c, src/proto/vim9execute.pro,
            src/eval.c, src/testdir/test_vim9_func.vim

Patch 8.2.0772
Problem:    Vim9: some variable initializations not tested.
Solution:   Add a few more tests
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0773
Problem:    Switching to raw mode every time ":" is used.
Solution:   When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the
            next time TMODE_RAW is used it is set, but not every time.
Files:      src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c,
            src/os_win32.c

Patch 8.2.0774
Problem:    t_TI and t_TE are output when using 'visualbell'. (Dominique
            Pellé)
Solution:   Do not change the terminal mode for a short sleep.  Do not output
            t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an
            enum.
Files:      src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c,
            src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
            src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c,
            src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h

Patch 8.2.0775
Problem:    Not easy to call a Vim function from Lua.
Solution:   Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063)
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim

Patch 8.2.0776
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 719.
Files:      Filelist, src/libvterm/README, src/libvterm/Makefile,
            src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc,
            src/libvterm/src/unicode.c

Patch 8.2.0777 (after 8.2.0776)
Problem:    Terminal test fails.
Solution:   Adjust character position for double-wide characters.
Files:      src/testdir/test_terminal.vim

Patch 8.2.0778
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 720 - 723.
Files:      src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile,
            src/libvterm/t/run-test.pl, src/libvterm/src/state.c,
            src/libvterm/t/92lp1805050.test

Patch 8.2.0779
Problem:    Tmode_T not used everywhere.
Solution:   Also use tmode_T for settmode().
Files:      src/term.c, src/proto/term.pro

Patch 8.2.0780
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 724 - 726.
Files:      Filelist, src/libvterm/t/40screen_ascii.test,
            src/libvterm/t/60screen_ascii.test,
            src/libvterm/t/41screen_unicode.test,
            src/libvterm/t/61screen_unicode.test,
            src/libvterm/t/42screen_damage.test,
            src/libvterm/t/62screen_damage.test,
            src/libvterm/t/43screen_resize.test,
            src/libvterm/t/63screen_resize.test,
            src/libvterm/t/44screen_pen.test,
            src/libvterm/t/64screen_pen.test,
            src/libvterm/t/45screen_protect.test,
            src/libvterm/t/65screen_protect.test,
            src/libvterm/t/46screen_extent.test,
            src/libvterm/t/66screen_extent.test,
            src/libvterm/t/47screen_dbl_wh.test,
            src/libvterm/t/67screen_dbl_wh.test,
            src/libvterm/t/48screen_termprops.test,
            src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test,
            src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test,
            src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt

Patch 8.2.0781 (after 8.2.0775)
Problem:    Compiler warning for not using value in Lua.
Solution:   Add "(void)".
Files:      src/if_lua.c

Patch 8.2.0782
Problem:    Cannot build with Lua on MS-Windows.
Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
Files:      src/if_lua.c

Patch 8.2.0783
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 728 - 729.
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile,
            src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test,
            src/libvterm/t/harness.c, src/libvterm/src/vterm.c,
            src/libvterm/src/vterm_internal.h,
            src/libvterm/t/26state_query.test

Patch 8.2.0784
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 730 - 733.
Files:      src/libvterm/src/vterm.c, src/libvterm/src/state.c,
            src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/harness.c

Patch 8.2.0785
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 734 - 740.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
            src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt,
            src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl,
            src/libvterm/Makefile, src/libvterm/CONTRIBUTING

Patch 8.2.0786
Problem:    Channel test is flaky on FreeBSD.
Solution:   Set the socket TCP_NODELAY option. Adjust expected line count in
            netbeans test. (Ozaki Kiichi, closes #6097)
Files:      src/testdir/test_channel.py, src/testdir/test_netbeans.vim

Patch 8.2.0787
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 741 - 742.
Files:      Filelist, src/libvterm/src/screen.c

Patch 8.2.0788
Problem:    Memory leak in libvterm.
Solution:   free tmpbuffer.
Files:      src/libvterm/src/vterm.c

Patch 8.2.0789
Problem:    Vim9: expression testing lost coverage using constants.
Solution:   Use a few variables instead of constants.
Files:      src/testdir/test_vim9_expr.vim

Patch 8.2.0790
Problem:    Vim9: list index not well tested.
Solution:   Add a few more tests.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.0791
Problem:    A second popup window with terminal causes trouble.
Solution:   Disallow opening a second terminal-popup window. (closes #6101,
            closes #6103) Avoid defaulting to an invalid line number.
Files:      runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c,
            src/testdir/test_popupwin.vim, src/testdir/test_terminal.vim

Patch 8.2.0792
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/popupwin.c

Patch 8.2.0793
Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
Files:      src/os_win32.c

Patch 8.2.0794
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 743 - 747.
Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c,
            src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h,
            src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl

Patch 8.2.0795
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 748 - 754.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/screen.c,
            src/libvterm/src/state.c, src/libvterm/t/32state_flow.test,
            src/libvterm/t/60screen_ascii.test,
            src/libvterm/t/62screen_damage.test,
            src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c,
            src/libvterm/t/run-test.pl

Patch 8.2.0796
Problem:    MS-Windows: compiler can't handle C99 construct in libvterm.
Solution:   Change to C90 construct.
Files:      src/libvterm/src/state.c

Patch 8.2.0797
Problem:    MS-Windows: compiler still can't handle C99 construct.
Solution:   Change to C90 construct. (Dominique Pellé, closes #6106)
Files:      src/libvterm/src/state.c

Patch 8.2.0798
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 755 - 758.
Files:      src/libvterm/t/run-test.pl, src/libvterm/src/screen.c,
            src/libvterm/t/harness.c, src/libvterm/include/vterm.h,
            src/libvterm/src/parser.c, src/libvterm/src/state.c,
            src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/02parser.test,
            src/libvterm/t/18state_termprops.test,
            src/libvterm/t/29state_fallback.test,
            src/libvterm/t/68screen_termprops.test, src/terminal.c

Patch 8.2.0799
Problem:    Build fails if snprintf is not available.
Solution:   Use vim_snprintf().
Files:      src/libvterm/src/state.c

Patch 8.2.0800
Problem:    Errors from failing test are unclear.
Solution:   Include text where parsing failed.
Files:      src/json.c, src/testdir/test_json.vim

Patch 8.2.0801
Problem:    Terminal test fails on Mac.
Solution:   Concatenate OSC pieces.
Files:      src/terminal.c

Patch 8.2.0802
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 759 - 762.
Files:      src/terminal.c, src/libvterm/doc/seqs.txt,
            src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
            src/libvterm/src/screen.c, src/libvterm/src/state.c,
            src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test

Patch 8.2.0803
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 764 - 767
Files:      src/Makefile, src/libvterm/src/parser.c,
            src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test,
            src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl,
            src/libvterm/src/fullwidth.inc

Patch 8.2.0804
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 727, but add the index instead of switching
            between RGB and indexed.
Files:      src/terminal.c, src/term.c, src/libvterm/include/vterm.h,
            src/libvterm/src/pen.c, src/libvterm/src/screen.c,
            src/libvterm/src/vterm_internal.h,
            src/libvterm/t/30state_pen.test,
            src/libvterm/t/harness.c, src/libvterm/src/state.c,
            src/libvterm/t/26state_query.test,
            src/libvterm/t/64screen_pen.test

Patch 8.2.0805
Problem:    Terminal key codes test fails on some systems.
Solution:   Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070)
Files:      src/testdir/test_terminal.vim

Patch 8.2.0806
Problem:    using "func!" after vim9script gives confusing error.
Solution:   Give E477. (closes #6107)
Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

Patch 8.2.0807
Problem:    Cannot easily restore a mapping.
Solution:   Add mapset().
Files:      runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c
            src/testdir/test_maparg.vim

Patch 8.2.0808
Problem:    Not enough testing for the terminal window.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6069)  Fix memory
            leak.
Files:      src/testdir/test_gui.vim, src/testdir/test_terminal.vim,
            src/terminal.c

Patch 8.2.0809
Problem:    Build failure with small features. (Tony Mechelynck)
Solution:   Move "expr" inside #ifdef.
Files:      src/map.c

Patch 8.2.0810
Problem:    Error when appending "tagfile" to 'wildoptions'.
Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
            closes #6105)
Files:      src/optiondefs.h, src/testdir/test_options.vim

Patch 8.2.0811
Problem:    Terminal keycode test is flaky.
Solution:   Use WaitForAssert()
Files:      src/testdir/test_terminal.vim

Patch 8.2.0812
Problem:    mapset() does not properly handle <> notation.
Solution:   Convert <> codes. (closes #6116)
Files:      src/map.c, src/testdir/test_maparg.vim

Patch 8.2.0813
Problem:    libvterm code is slightly different from upstream.
Solution:   Use upstream text to avoid future merge problems.  Mainly comment
            style changes.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/rect.h,
            src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h,
            src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c,
            src/libvterm/src/mouse.c, src/libvterm/src/parser.c,
            src/libvterm/src/pen.c, src/libvterm/src/screen.c,
            src/libvterm/src/state.c, src/libvterm/src/unicode.c,
            src/libvterm/src/vterm.c

Patch 8.2.0814
Problem:    Clang warning for implicit conversion.
Solution:   Add type cast. (Dominique Pellé, closes #6124)
Files:      src/evalfunc.c

Patch 8.2.0815
Problem:    maparg() does not provide enough information for mapset().
Solution:   Add "lhsraw" and "lhsrawalt" items.  Drop "simplified"
Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim

Patch 8.2.0816
Problem:    Terminal test fails when compiled with Athena.
Solution:   Do give an error when the GUI is not running. (hint by Dominique
            Pellé, closes #5928, closes #6132)
Files:      src/globals.h, src/gui.c, src/term.c, src/channel.c,
            src/testdir/test_terminal.vim

Patch 8.2.0817
Problem:    Not enough memory allocated when converting string with special
            character.
Solution:   Reserve space for modifier code. (closes #6130)
Files:      src/eval.c, src/testdir/test_functions.vim

Patch 8.2.0818
Problem:    Vim9: using a discovery phase doesn't work well.
Solution:   Remove the discovery phase, instead compile a function only when
            it is used.  Add :defcompile to compile def functions earlier.
Files:      runtime/doc/vim9.txt, src/vim9script.c, src/structs.h,
            src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
            src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
            src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h,
            src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim,
            src/testdir/test_vim9_disassemble.vim,
            src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

Patch 8.2.0819
Problem:    Compiler warning for unused variable.
Solution:   Remove the variable.
Files:      src/evalvars.c

Patch 8.2.0820
Problem:    Vim9: function type isn't set until compiled.
Solution:   Set function type early.
Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
            src/testdir/test_vim9_func.vim

Patch 8.2.0821
Problem:    Vim9: memory leak in expr test.
Solution:   Do not decrement the length of the list of functions if the
            current function is not at the end.
Files:      src/vim9compile.c

Patch 8.2.0822
Problem:    Vim9: code left over from discovery phase.
Solution:   Remove the dead code.
Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h,
            src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c

Patch 8.2.0823
Problem:    Vim9: script reload test is disabled.
Solution:   Compile a function in the context of the script where it was
            defined.  Set execution stack for compiled function.  Add a test
            that an error is reported for the right file/function.
Files:      src/vim9compile.c, src/vim9execute.c, src/scriptfile.c,
            src/proto/scriptfile.pro, src/userfunc.c, src/globals.h,
            src/structs.h, src/ex_docmd.c, src/ex_eval.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.0824 (after 8.2.0817)
Problem:    Still not enough memory allocated when converting string with
            special character.
Solution:   Reserve space for expanding K_SPECIAL. (closes #6130)
Files:      src/eval.c, src/testdir/test_functions.vim

Patch 8.2.0825
Problem:    def_function() may return pointer that was freed.
Solution:   Set "fp" to NULL after freeing it.
Files:      src/userfunc.c

Patch 8.2.0826
Problem:    Vim9: crash in :defcompile.
Solution:   Restart the loop after a call to compile_def_function() caused the
            hash table to resize.
Files:      src/userfunc.c

Patch 8.2.0827
Problem:    Vim9: crash in :defcompile.
Solution:   Fix off-by-one error.
Files:      src/userfunc.c

Patch 8.2.0828
Problem:    Travis: regexp pattern doesn't work everywhere.
Solution:   Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146)
Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
            ci/config.mk.sed, src/if_ruby.c

Patch 8.2.0829
Problem:    filter() may give misleading error message.
Solution:   Also mention Blob as an allowed argument.
Files:      src/list.c, src/testdir/test_filter_map.vim

Patch 8.2.0830
Problem:    Motif: can't map "!". (Ben Jackson)
Solution:   Remove the shift modifier if it's already included in the key.
            (closes #6147)
Files:      src/gui_x11.c

Patch 8.2.0831
Problem:    Compiler warnings for integer sizes.
Solution:   Add type casts. (Mike Williams)
Files:      src/libvterm/src/pen.c, src/terminal.c

Patch 8.2.0832
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add initial value.
Files:      src/map.c

Patch 8.2.0833
Problem:    Mapping <C-bslash> doesn't work in the GUI.
Solution:   Reset seenModifyOtherKeys when starting the GUI. (closes #6150)
Files:      src/gui.c

Patch 8.2.0834
Problem:    :drop command in terminal popup causes problems.
Solution:   Check for using a popup window. (closes #6151)
Files:      src/ex_cmds.c, src/testdir/test_popupwin.vim

Patch 8.2.0835
Problem:    Motif: mapping <C-bslash> still doesn't work.
Solution:   Accept CSI for K_SPECIAL.  Do not apply CTRL to the character
            early.  (closes #6150)
Files:      src/getchar.c, src/gui_x11.c

Patch 8.2.0836
Problem:    Not all :cdo output is visible.
Solution:   Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155)
Files:      src/ex_cmds2.c, src/testdir/test_cdo.vim

Patch 8.2.0837
Problem:    Compiler warning for value set but not used.
Solution:   Move variable inside #ifdef.
Files:      src/channel.c

Patch 8.2.0838
Problem:    MS-Windows: compiler warning for uninitialized variables.
Solution:   Initialize variables.
Files:      src/screen.c

Patch 8.2.0839
Problem:    Dropping modifier when putting a character back in typeahead.
Solution:   Add modifier to ins_char_typebuf(). (closes #6158)
Files:      src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c,
            src/terminal.c, src/globals.h, src/testdir/test_messages.vim

Patch 8.2.0840
Problem:    Search match count wrong when only match is in fold.
Solution:   Update search stats when in a closed fold. (Christian Brabandt,
            closes #6160, closes #6152)
Files:      src/search.c, src/testdir/dumps/Test_searchstat_3.dump,
            src/testdir/test_search_stat.vim

Patch 8.2.0841
Problem:    'verbose' value 16 causes duplicate output.
Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
            closes #6153)
Files:      runtime/doc/options.txt, src/ex_docmd.c

Patch 8.2.0842 (after 8.2.0837)
Problem:    MS-Windows: channel tests fail.
Solution:   Adjust #ifdefs. (closes #6162)
Files:      src/channel.c

Patch 8.2.0843
Problem:    Filetype elm not detected.
Solution:   Recognize *.elm files. (closes #6157)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0844
Problem:    Text properties crossing lines not handled correctly.
Solution:   When saving for undo include an extra line when needed and do not
            adjust properties when undoing. (Axel Forsman, closes #5875)
Files:      src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h

Patch 8.2.0845
Problem:    Text properties crossing lines not handled correctly.
Solution:   When joining lines merge text properties if possible.
            (Axel Forsman, closes #5839, closes #5683)
Files:      src/testdir/test_textprop.vim, src/memline.c, src/ops.c,
            src/proto/textprop.pro, src/textprop.c,
            src/testdir/dumps/Test_textprop_01.dump

Patch 8.2.0846
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/undo.c

Patch 8.2.0847
Problem:    Typval related code is spread out.
Solution:   Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h,
            src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro,
            src/typval.c

Patch 8.2.0848
Problem:    MS-Windows: the Windows terminal code has some flaws.
Solution:   Do not redraw the right edge of the screen.  Remove the background
            color trick.  Flush the screen output buffer often.  (Nobuhiro
            Takasaki, #5546)
Files:      src/os_win32.c, src/proto/os_win32.pro, src/term.c

Patch 8.2.0849
Problem:    BeOS code is not maintained and probably unused.
Solution:   Remove the BeOS code. (Emir Sarı, closes #5817)
Files:      Filelist, src/Makefile, src/configure.ac, src/auto/configure,
            src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h,
            src/os_beos.rsrc, src/os_unix.c, src/proto.h,
            src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c,
            src/testdir/test_functions.vim, src/ui.c, src/vim.h

Patch 8.2.0850
Problem:    MS-Windows: exepath() works differently from cmd.exe.
Solution:   Make exepath() work better on MS-Windows. (closes #6115)
Files:      runtime/doc/eval.txt, src/os_win32.c,
            src/testdir/test_functions.vim

Patch 8.2.0851 (after 8.2.0833)
Problem:    Can't distinguish <M-a> from accented "a" in the GUI.
Solution:   Use another way to make mapping <C-bslash> work. (closes #6163)
Files:      src/gui.c, src/gui_gtk_x11.c, src/getchar.c

Patch 8.2.0852
Problem:    Cannot map CTRL-S on some systems.
Solution:   Do not use CTRL-S for flow control.
Files:      src/os_unix.c

Patch 8.2.0853
Problem:    ml_delete() often called with FALSE argument.
Solution:   Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
Files:      src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c,
            src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c,
            src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c,
            src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c,
            src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c,
            src/proto/memline.pro

Patch 8.2.0854
Problem:    Xxd cannot show offset as a decimal number.
Solution:   Add the "-d" flag. (Aapo Rantalainen, closes #5616)
Files:      src/testdir/test_xxd.vim, src/xxd/xxd.c

Patch 8.2.0855
Problem:    GUI tests fail because the test doesn't use a modifier.
Solution:   Add "\{xxx}" to be able to encode a modifier.
Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h,
            src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c,
            src/term.c, src/testdir/test_backspace_opt.vim,
            src/testdir/test_mapping.vim, src/testdir/test_messages.vim

Patch 8.2.0856 (after 8.2.0852)
Problem:    CTRL-S stops output.
Solution:   Invert the IXON flag. (closes #6166)
Files:      src/os_unix.c

Patch 8.2.0857
Problem:    GTK cell height can be a pixel too much.
Solution:   Subtract 3 instead of 1 when rounding. (closes #6168)
Files:      src/gui_gtk_x11.c

Patch 8.2.0858
Problem:    Not easy to require Lua modules.
Solution:   Improve use of Lua path. (Prabir Shrestha, closes #6098)
Files:      Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro,
            src/testdir/test_lua.vim,
            src/testdir/testluaplugin/lua/testluaplugin/hello.lua,
            src/testdir/testluaplugin/lua/testluaplugin/init.lua

Patch 8.2.0859
Problem:    No Turkish translation of the manual.
Solution:   Add Turkish translations. (Emir Sarı, closes #5641)
Files:      Filelist, runtime/doc/Makefile, runtime/doc/evim-tr.1,
            runtime/doc/evim-tr.UTF-8.1, runtime/doc/vim-tr.1,
            runtime/doc/vim-tr.UTF-8.1, runtime/doc/vimdiff-tr.1,
            runtime/doc/vimdiff-tr.UTF-8.1, runtime/doc/vimtutor-tr.1,
            runtime/doc/vimtutor-tr.UTF-8.1, src/Makefile

Patch 8.2.0860
Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144)
Files:      runtime/doc/options.txt, src/ops.c, src/optionstr.c,
            src/testdir/test_increment.vim

Patch 8.2.0861
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/mark.c, src/proto/mark.pro, src/testdir/test_marks.vim

Patch 8.2.0862
Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
            Hennepe)
Solution:   Do not hide the current buffer. (closes #6170)
Files:      src/terminal.c, src/testdir/test_terminal.vim

Patch 8.2.0863
Problem:    Cannot set a separate color for underline/undercurl.
Solution:   Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011)
Files:      runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h,
            src/highlight.c, src/optiondefs.h, src/proto/term.pro,
            src/screen.c, src/structs.h, src/term.c, src/term.h,
            src/testdir/test_options.vim

Patch 8.2.0864
Problem:    Pragmas are indented all the way to the left.
Solution:   Add an option to indent pragmas like normal code. (Max Rumpf,
            closes #5468)
Files:      runtime/doc/indent.txt, src/cindent.c, src/structs.h,
            src/testdir/test_cindent.vim

Patch 8.2.0865
Problem:    Syntax foldlevel is taken from the start of the line.
Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in
            the line. (Brad King, closes #6087)
Files:      runtime/doc/syntax.txt, src/structs.h, src/syntax.c,
            src/testdir/test_syntax.vim

Patch 8.2.0866
Problem:    Not enough tests for buffer writing.
Solution:   Add more tests. Use CheckRunVimInTerminal in more places.
            (Yegappan Lakshmanan, closes #6167)
Files:      src/testdir/test_arglist.vim, src/testdir/test_match.vim,
            src/testdir/test_messages.vim, src/testdir/test_netbeans.py,
            src/testdir/test_netbeans.vim, src/testdir/test_search.vim,
            src/testdir/test_signals.vim, src/testdir/test_signs.vim,
            src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim,
            src/testdir/test_syntax.vim, src/testdir/test_tabpage.vim,
            src/testdir/test_timers.vim, src/testdir/test_vimscript.vim,
            src/testdir/test_writefile.vim

Patch 8.2.0867
Problem:    Using \{xxx} for encoding a modifier is not nice.
Solution:   Use \<*xxx> instead, since it's the same as \<xxx> but producing a
            different code.
Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h,
            src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim,
            src/testdir/test_messages.vim

Patch 8.2.0868
Problem:    trim() always trims both ends.
Solution:   Add an argument to only trim the beginning or end. (Yegappan
            Lakshmanan, closes #6126)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.vim

Patch 8.2.0869
Problem:    It is not possible to customize the quickfix window contents.
Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465)
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h,
            src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.2.0870
Problem:    MS-Windows: Control keys don't work in the GUI.
Solution:   Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto,
            closes #6175)
Files:      src/gui.c

Patch 8.2.0871
Problem:    Cannot use getmarklist() as a method.
Solution:   Make getmarklist() work as a method.  Add one to the column
            number to match getpos(). (Yegappan Lakshmanan, closes #6176)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/mark.c,
            src/testdir/test_marks.vim

Patch 8.2.0872
Problem:    XIM code is mixed with multibyte code.
Solution:   Move the XIM code to a separate file. (Yegappan Lakshmanan,
            closes #6177)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c,
            src/mbyte.c, src/proto.h, src/proto/gui_xim.pro,
            src/proto/mbyte.pro

Patch 8.2.0873
Problem:    A .jl file can be sawfish (lisp) or Julia.
Solution:   Do not recognize *.jl as lisp, since it might be Julia.
            (closes #6178)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0874
Problem:    Signals test is a bit flaky.
Solution:   Flush the XautoOut file.  Delete files that may be left behind
            from a failure. (Dominique Pellé, closes #6179)
Files:      src/testdir/test_signals.vim

Patch 8.2.0875
Problem:    Getting attributes for directory entries is slow.
Solution:   Add readdirex(). (Ken Takata, closes #5619)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/fileio.c, src/filepath.c, src/proto/fileio.pro,
            src/proto/filepath.pro, src/testdir/test_functions.vim

Patch 8.2.0876
Problem:    :pwd does not give a hint about the scope of the directory
Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
Files:      runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim

Patch 8.2.0877
Problem:    Cannot get the search statistics.
Solution:   Add the searchcount() function. (Fujiwara Takuya, closes #4446)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/macros.h,
            src/proto/search.pro, src/search.c,
            src/testdir/test_search_stat.vim

Patch 8.2.0878
Problem:    No reduce() function.
Solution:   Add a reduce() function. (closes #5481)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c,
            src/proto/list.pro, src/testdir/test_listdict.vim

Patch 8.2.0879
Problem:    Compiler warning for unused function argument.
Solution:   Add UNUSED.
Files:      src/search.c

Patch 8.2.0880 (after 8.2.0877)
Problem:    Leaking memory when using searchcount().
Solution:   Free the last used search pattern.
Files:      src/search.c

Patch 8.2.0881
Problem:    Compiler warning for argument type.
Solution:   Add type cast. (Mike Williams)
Files:      src/ops.c

Patch 8.2.0882
Problem:    Leaking memory when using reduce().
Solution:   Free the intermediate value.
Files:      src/list.c

Patch 8.2.0883
Problem:    Memory leak in test 49.
Solution:   Free "sfile" from the exception.
Files:      src/ex_docmd.c

Patch 8.2.0884
Problem:    Searchcount() test fails on slower systems.
Solution:   Set a longer timeout.
Files:      src/search.c, src/testdir/test_search_stat.vim

Patch 8.2.0885
Problem:    "make shadow" does not link new lua test dir.
Solution:   Also link testdir/testluaplugin. (Elimar Riesebieter)
Files:      src/Makefile

Patch 8.2.0886
Problem:    Cannot use octal numbers in scriptversion 4.
Solution:   Add the "0o" notation. (Ken Takata, closes #5304)
Files:      runtime/doc/eval.txt, src/charset.c, src/evalfunc.c,
            src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim,
            src/vim.h

Patch 8.2.0887
Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
Files:      src/search.c, src/testdir/test_search_stat.vim

Patch 8.2.0888
Problem:    Readdirex() returns size -2 for a directory.
Solution:   Add missing "else". (Ken Takata, closes #6185)
Files:      src/fileio.c, src/testdir/test_functions.vim

Patch 8.2.0889
Problem:    Using old style comments.
Solution:   Use // comments. (Yegappan Lakshmanan, closes #6190)
Files:      src/gui_xim.c

Patch 8.2.0890
Problem:    No color in terminal window when 'termguicolors' is set.
Solution:   Clear the underline color. (closes #6186)
Files:      src/highlight.c

Patch 8.2.0891
Problem:    Clang warns for invalid conversion.
Solution:   Use zero instead of INVALCOLOR.
Files:      src/highlight.c

Patch 8.2.0892
Problem:    Ubsan warns for undefined behavior.
Solution:   Use unsigned instead of signed variable. (Dominique Pellé,
            closes #6193)
Files:      src/regexp_nfa.c

Patch 8.2.0893
Problem:    Assert_equalfile() does not take a third argument.
Solution:   Implement the third argument. (Gary Johnson)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c,
            src/testdir/test_assert.vim, src/testing.c

Patch 8.2.0894
Problem:    :mkspell can take very long if the word count is high.
Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
            the compression did not have effect.
Files:      src/spellfile.c

Patch 8.2.0895
Problem:    :mkspell output does not mention the tree type.
Solution:   Back out increasing the limits, it has no effect.  Mention the
            tree being compressed.  Only give a message once per second.
Files:      src/spellfile.c

Patch 8.2.0896
Problem:    Crash when calling searchcount() with a string.
Solution:   Check the argument is a dict. (closes #6192)
Files:      src/search.c, src/testdir/test_search_stat.vim

Patch 8.2.0897
Problem:    List of functions in patched version is outdated.
Solution:   Update the function lists only.
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt

Patch 8.2.0898
Problem:    Missing help for a function goes unnoticed.
Solution:   Add a test. (Gary Johnson)
Files:      src/testdir/test_function_lists.vim, src/testdir/Make_all.mak

Patch 8.2.0899
Problem:    Assert_equalfile() does not give a hint about the difference.
Solution:   Display the last seen text.
Files:      src/testing.c, src/testdir/test_assert.vim

Patch 8.2.0900
Problem:    Function list test fails on MS-Windows.
Solution:   Make sure the fileformat is "unix"
Files:      src/testdir/test_function_lists.vim

Patch 8.2.0901
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes #3875)
Files:      runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h,
            src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c,
            src/testdir/test_cjk_linebreak.vim

Patch 8.2.0902
Problem:    Using searchcount() in 'statusline' causes an error.
Solution:   Avoid saving/restoring the search pattern recursively.
            (closes #6194)
Files:      src/search.c, src/testdir/test_search_stat.vim,
            src/testdir/dumps/Test_searchstat_4.dump

Patch 8.2.0903
Problem:    comparing WINVER does not work correctly.
Solution:   Use arithmetic expansion. (Ozaki Kiichi, closes #6197)
Files:      src/Make_cyg_ming.mak

Patch 8.2.0904
Problem:    Assuming modifyOtherKeys for rhs of mapping.
Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes #6200)
Files:      src/getchar.c, src/testdir/test_gui.vim

Patch 8.2.0905
Problem:    Test coverage could be better.
Solution:   Add a couple of tests. (Dominique Pellé, closes #6202)
Files:      src/testdir/test_cmdline.vim, src/testdir/test_ga.vim

Patch 8.2.0906
Problem:    When setting 'termguicolors' SpellBad is no longer red.
Solution:   Only use the RGB guisp color for cterm when using the "underline"
            or "undercurl" attributes to avoid the background color to be
            cleared. Also make t_8u empty when the termresponse indicates a
            real xterm. (closes #6207)
Files:      src/highlight.c, src/term.c

Patch 8.2.0907
Problem:    When using :global clipboard isn't set correctly.
Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
            Brabandt, closes #6203, closes #6198)
Files:      src/clipboard.c, src/testdir/test_global.vim

Patch 8.2.0908
Problem:    Crash when changing the function table while listing it.
Solution:   Bail out when the function table changes. (closes #6209)
Files:      src/userfunc.c, src/testdir/test_timers.vim

Patch 8.2.0909
Problem:    Cannot go back to the previous local directory.
Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362)
Files:      runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c,
            src/structs.h, src/testdir/test_cd.vim, src/window.c

Patch 8.2.0910
Problem:    Vim is not reproducibly buildable.
Solution:   Use the $SOURCE_DATE_EPOCH environment variable in configure.
            (James McCoy, closes #513)  Give a warning about using it.
Files:      src/config.h.in, src/config.mk.in, src/configure.ac,
            src/auto/configure, src/version.c, src/Makefile

Patch 8.2.0911
Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
            Barber)
Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
            more prompt. (closes #6211)
Files:      src/ex_getln.c, src/testdir/test_cmdline.vim,
            src/testdir/dumps/Test_cmdwin_interrupted.dump

Patch 8.2.0912
Problem:    A few test cases for CJK formatting are disabled.
Solution:   Fix the tests and enable them. (closes #6212)
Files:      src/testdir/test_cjk_linebreak.vim

Patch 8.2.0913
Problem:    Code for resetting v:register is duplicated.
Solution:   Add reset_reg_var().
Files:      src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c

Patch 8.2.0914
Problem:    MS-Windows: cannot specify a "modified by" text.
Solution:   Add MODIFIED_BY in the MSVC build file.  (Chen Lei, closes #1275)
Files:      src/Make_mvc.mak

Patch 8.2.0915
Problem:    Search() cannot skip over matches like searchpair() can.
Solution:   Add an optional "skip" argument. (Christian Brabandt, closes #861)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.vim,
            src/structs.h, src/evalvars.c, src/proto/evalvars.pro

Patch 8.2.0916
Problem:    Mapping with partly modifyOtherKeys code does not work.
Solution:   If there is no mapping with a separate modifier include the
            modifier in the key and then try mapping again. (closes #6200)
Files:      src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c,
            src/proto/term.pro, src/testdir/test_termcodes.vim

Patch 8.2.0917
Problem:    Quickfix entries do not support a "note" type.
Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
            closes #5527, closes #6216)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.vim

Patch 8.2.0918
Problem:    Duplicate code for evaluating expression argument.
Solution:   Merge the code and make the use more flexible.
Files:      src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c,
            src/proto/evalvars.pro, src/structs.h

Patch 8.2.0919
Problem:    Merging modifier for modifyOtherKeys is done twice.
Solution:   Remove the merging done in vgetc().
Files:      src/getchar.c, src/ex_getln.c

Patch 8.2.0920
Problem:    Writing viminfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes #6217)
Files:      src/testdir/test_viminfo.vim, src/viminfo.c

Patch 8.2.0921
Problem:    CTRL-W T in cmdline window causes trouble.
Solution:   Disallow CTRL-W T in the cmdline window.  Add more tests.
            (Naruhiko Nishino, closes #6219)
Files:      src/testdir/test_cmdline.vim, src/window.c

Patch 8.2.0922
Problem:    Search test fails.
Solution:   Remove failure tests for calls that no longer fail.
Files:      src/testdir/test_search.vim

Patch 8.2.0923
Problem:    Cmdline test is slow.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_cmdline.vim

Patch 8.2.0924
Problem:    Cannot save and restore a register properly.
Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
            Massimino, closes #3370)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/proto/register.pro, src/register.c,
            src/testdir/test_eval_stuff.vim, src/testdir/test_registers.vim

Patch 8.2.0925
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes #1140)
Files:      runtime/doc/eval.txt, src/cmdexpand.c,
            src/testdir/test_cmdline.vim

Patch 8.2.0926
Problem:    Cmdline test fails on Appveyor.
Solution:   Add CR to the commands. (Naruhiko Nishino, closes #6220)
Files:      src/testdir/test_cmdline.vim

Patch 8.2.0927
Problem:    Some sshconfig and ssdhconfig files are not recognized.
Solution:   Add filetype patterns.
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.0928
Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes #5633)  Remove some type casts.
Files:      src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c,
            src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c,
            src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c

Patch 8.2.0929
Problem:    v:register is not cleared after an operator was executed.
Solution:   Clear v:register after finishing an operator (Andy Massimino,
            closes #5305)
Files:      src/normal.c, src/testdir/test_registers.vim

Patch 8.2.0930
Problem:    Script filetype detection trips over env -S argument.
Solution:   Remove "-S" and "--ignore-environment". (closes #5013)
            Add tests.
Files:      runtime/scripts.vim, src/testdir/test_filetype.vim

Patch 8.2.0931
Problem:    Some remarks about BeOS remain.
Solution:   Remove BeOS remarks from the help and other files. (Emir Sarı,
            closes #6221)
Files:      READMEdir/README_extra.txt, runtime/doc/options.txt,
            runtime/doc/os_beos.txt, runtime/doc/os_vms.txt,
            runtime/doc/vi_diff.txt, src/INSTALL

Patch 8.2.0932
Problem:    Misspelling spelllang.
Solution:   Add an "l". (Dominique Pellé)
Files:      src/optionstr.c, src/proto/spell.pro, src/spell.c

Patch 8.2.0933
Problem:    'quickfixtextfunc' does not get window ID of location list.
Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
            closes #6222)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.vim

Patch 8.2.0934
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes #6215)
Files:      src/quickfix.c, src/testdir/test_quickfix.vim

Patch 8.2.0935
Problem:    Flattening a list with existing code is slow.
Solution:   Add flatten(). (Mopp, closes #3676)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/list.c, src/proto/list.pro, src/testdir/Make_all.mak,
            src/testdir/test_flatten.vim

Patch 8.2.0936
Problem:    Some terminals misinterpret the code for getting cursor style.
Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
            Kouichi, closes #2126)  Merged with current code.
Files:      src/main.c, src/term.c, src/proto/term.pro,
            src/testdir/term_util.vim, src/testdir/test_quickfix.vim,
            src/testdir/test_terminal.vim, src/testdir/test_startup_utf8.vim,
            src/testdir/dumps/Test_balloon_eval_term_01.dump,
            src/testdir/dumps/Test_balloon_eval_term_01a.dump,
            src/testdir/dumps/Test_balloon_eval_term_02.dump,
            src/testdir/dumps/Test_terminal_all_ansi_colors.dump

Patch 8.2.0937
Problem:    Asan failure in the flatten() test.
Solution:   Free the flattened list.
Files:      src/list.c

Patch 8.2.0938
Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution:   Use utf_fold() when possible. (ref. neovim #12456)
Files:      src/ma                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      