Module:User:Sarri.greek/grk-nouns-decl/param

-- 2024.03.05. [[wikt:en:User:Sarri.greek]]
-- cases of nouns in Greek for declension tables
-- #top anchors: with Control+F type #NS #GS (genitive singulrar) ...
--[=[
XXcell has two lines
	XX  line
	XX2  line
XXline has XXtxt1 .. XXterm .. XXtxt
XXterm has common1 .. XXword .. common -- Term has transliteration with {{xlit|translit_lang|ωωωω}} preprocessed
XXword has a create_link with XXstem .. XXsuf (alternative output XXstem+, XXsuf+ for prosodies, bold, colours)

mod- suffix is for args parameters as set at /funcation pages
Without mod- are editor's overriding the module's args
]=]--

--------------------------------------------------------------------------
-- COPY HERE what is needed from the Module 
--------------------------------------------------------------------------


-- font colours (sample 1: all black)
local c_ending = '#000000'
local c_stem = '#000000'

--  ============== apply font colours
-- for parts of a word
local ending_color = function(suffix)
	suffix = suffix or ''
    return '<span style="color:' .. c_ending ..'; font-weight:normal;">' .. suffix .. '</span>'
end

local stem_color = function(thema)
    return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. thema .. '</span>'
end

local infix_color = function(infix)
    return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. infix .. '</span>'
end
	-- this is not exactly an inifix. It is extra letters of a 2nd stem.
	-- possible different colour or weight


-- thanks to [[w:en:User talk:Trappist the monk]]
--[[--------------------------< I S _ S E T >------------ 

Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.

]]
--[=[ explanation:
The is_set() function may be added so that tests like this:
	if args['ακε'] ~= '' and args['ακε'] ~= nil then args['ακε'] = args['ακε'] else args['ακε'] = '' end
can be reduced to:
	if not is_set (args['ακε']) then args['ακε'] = '' end
]=]--

local function is_set (var)
	return not (var == nil or var == '');
end

---------------------------------------------------------------------------
-- ========================MAIN FUNCTION================================ --
--                        Greek noun cases                               --
---------------------------------------------------------------------------
local function param (args)
	local lemma = args['lemma'] or ''
	PAGENAME = mw.title.getCurrentTitle().text
	if lemma  == '' or lemma == nil then args['lemma'] = PAGENAME:match( "^%s*(.-)%s*$" ) 
		else lemma = args['lemma']
	end


---------------------------------------------------------------------------
-- ============== START HERE ALL PARAMETERS ============== --
---------------------------------------------------------------------------
	pos = args['pos'] or 'Nouns' -- pos: Part of Speech -- NOT local, it does not work
	articles_in_table = args['articles'] or ''		args['articles'] = args['articles'] or ''

--#minus
-- CHECKTHIS why is this 'local?'
-- ===============  STEMS  - default stem = word minus 2 letters from end
-- stems
    local stem = {} -- do not move
    local minusletters = args['minus'] or ''
-- If subfunctions have a defintion for lemma and stem of their own
-- we need to write there the stems for all cases.
    if stemnumber == '' or stemnumber == nil then
-- must write all numbers one by one, and then, exclude them for else...
    	if minusletters == '0' then	-- it works! at /function pages and directly by editor minus=
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-1) -- test [[πῦρ]]
    	elseif minusletters == '1' then -- do not write == 1 (a number)
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-2)
    	elseif minusletters == '2' then
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-3)
    	elseif minusletters == '3' then
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-4)
    	elseif minusletters == '4' then
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-5)
    	elseif minusletters == '5' then
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-6)
    	elseif minusletters == '6' then -- probably not needed
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-7)	
    	elseif minusletters == 'stem' or minusletters == '-' then stem["s"] = '' -- it works
--!!TEST
		elseif minusletters == '[45]' then stem["s"] = mw.ustring.sub(args['lemma'],1,'[45]')
-- here, i must exclude all above conditions, or they will not work
		elseif minusletters ~= '0' and minusletters ~= '1' 
		and minusletters ~= '2' -- this is the default
		and minusletters ~= '3' and minusletters ~= '4' and minusletters ~= '5'
		and minusletters ~= '6'
    	and minusletters ~= 'stem' and minusletters ~= '-'
		and minusletters ~= '' and minusletters ~= nil then
    		stemnumber = minusletters+1
    	else
    		stem["s"] = mw.ustring.sub(args['lemma'],1,-3) or stem["s"]  -- default stem minus 2 letters from end
    			-- it works also with: or ''
    			-- CHECKTHIS -- stem["s"] = mw.ustring.sub(args['lemma'],1,-3) or stem["s"]
    			-- CHECKTHIS -- stem["s"] = mw.ustring.sub(args['lemma'],1,-3) or stem["s"] or ''
    	end
    end

-- =============== LANGUAGES for categories and notes in appendix
	lang_iso = lang_iso or ''
	lang_link = lang_link or ''
	lang_name = lang_name or ''
	anc_gre = args['grc'] or ''							args['grc'] = args['grc'] or ''
	koine_gre = args['grc-koi'] or ''					args['grc-koi'] = args['grc-koi'] or ''
	med_gre = args['gkm'] or args['grk-gkm'] or''		args['gkm'] = args['gkm'] or ''
	kath_gre = args['el-kth'] or args['kath'] or''		args['el-kth'] = args['el-kth'] or ''
	mod_gre = args['el'] or ''							args['el'] = args['el'] or ''
	comment = args['comment'] or ''				args['comment'] = args['comment'] or ''


--- TODO must i put ... elseif between all languages?
-- ======= grc Ancient Greek
if args['grc']  == '1' 
then
	lang_iso = 'grc'
	lang_link = 'Ancient Greek'
	lang_name = 'Ancient Greek'
	args['lang_title'] = ''
	c_3 = c_3
-- The comment goes IN the note ROW (font-size etc already done)
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) expected  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']

	if (args['grc-dor'] == '1' or args['grc-lak'] == '1') then
	args['lang_title'] = "<i>[[:Category:Doric Greek|Doric dialect]]</i>" 
--		.. '[[Category:Doric dialect ' .. mw.getContentLanguage():lcfirst(pos) .. ' with standard declension]]'
	-- ?? =2 if the declension in exclusively Doric (with Doric suffixes, not jusf Doric articles)
	end
	if (args['grc-epi'] == '1') then
	args['lang_title'] = "<i>[[:Category:Epic Greek|Epic dialect]]</i>"
--		.. '[[Category:Epic dialect ' .. mw.getContentLanguage():lcfirst(pos) .. ' with standard declension]]'
	-- ?? =2 if the declension in exclusively Epic (with Epic suffixes, not jusf Doric articles)
	end


if args['articles'] == 'grc-dor' then
	args['grc-dor'] = '1' lang_link = 'Ancient Greek' lang_name = 'Doric dialect'
end

--  not closing grc, more follows...


-- ======= HELLENISTIC KOINE -  HOST language is grc
-- @en.wikt 2024, etymological language
-- 1 = Koine inflections as in classic Anc.Gre
-- 2 = exclusively hellenistic declensions - they have categories -- e.g. like κοῦπα
elseif args['grc-koi']  == '2' then
	lang_iso = 'grc-koi'
	lang_link = 'Ancient Greek'
	lang_name = 'Ancient Greek'
	args['lang_title'] = '[[:Category:Koine Greek|Hellenistic Koine]]<br><i><small>dual is not attested</small></i>'
--		.. '[[Category:Koine Greek ' .. mw.getContentLanguage():lcfirst(pos) .. ' with Hellenistic declension]]'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) expected  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  {...} late  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']

elseif args['grc-koi']  == '1' then	-- but all categories grc
	lang_iso = 'grc-koi'
	lang_link = 'Ancient Greek'
	lang_name = 'Ancient Greek' -- This is the host.lang name of the Appendix:Ancient Greek nouns
	-- @en.wikt there is no Cat:Koine nouns
	args['lang_title'] = "<i>[[:Category:Koine Greek|Hellenistic Koine (standard declension as in Attic)]]</i><br><i><small>dual is not attested</small></i>" 
		.. '[[Category:Koine Greek ' .. mw.getContentLanguage():lcfirst(pos) .. ' with standard declension]]'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) expected  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']

-- (no prosody for the following languages, see below)		
-- ======= gkm MEDIAEVAL GREEK -- check learned [[Λεβαδία]] - vulgar [[παλληκάριον]] 
-- for vulgar mediaeval greek (it had no dative)
elseif args['gkm']  == '2' or args['grk-gkm'] == '2' then
	lang_iso = 'gkm' or 'grk-gkm'
	lang_link = 'Medieval Greek'
	lang_name = 'Medieval Greek'
	args['lang_title'] = '[[:Category:Medieval Greek language|Medieval Greek]]'
-- test [[παλληκάριον]]  [[κοῦπα]] (equiavelnt of hellenistic decl by the same name see above)
		.. '[[Category:Medieval Greek ' .. mw.getContentLanguage():lcfirst(pos) .. ' with declension]]'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) expected  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  {...} learned  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']
	c_extra= '#cfcfe2;'
	c_1 = '#afafcf'
--	c_3 = '#dfdfec;' -- title3
	c_4 = '#efeff5'
	args['du'] = '-'	-- no dual
	if args['dat'] == '1' then args['dat'] = '' else args['dat'] = '-' end	-- no datives, unelss
--	args['type'] = '' -- this param is compulsory (for clitic paradigm), skip it with pseudoname
--	args['nocat'] = '1' -- we do not need Decl-Categories as in grc
	-- NO prosody (see below)

-- for learned Medieval Koine = like Koine - inflections in the ancient standard fashion
elseif args['gkm']  == '1' or args['grk-gkm'] == '1' then
	lang_iso = 'gkm' or 'grk-gkm'
	lang_link = 'Medieval Greek'
	lang_name = 'Medieval Greek'
	args['lang_title'] = "<i>[[:Category:Medieval Greek language|learned Medieval Greek with ancient declension]]</i>" 
		.. '[[Category:Learned Medieval Greek ' .. mw.getContentLanguage():lcfirst(pos) .. ' with ancient declension]]'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) expected  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  {...} learned  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']
	c_extra= '#cfcfe2'
	c_4 = '#efeff5'
	args['du'] = '-'	-- no dual
	-- expected dative, check if attested
--	args['nocat'] = '1'	-- do not create subcategories	
	-- NO prosody (see below)
		

-- ======= el-kth for Katharevousa - HOST LANGUAGE is el Modern Greek -  check  [[Ἀχλαδέα]] 
-- @en.wikt 2024, etymological language
-- ?? has no =2 declensions of its own ?
-- elseif args['kath']  == '2' or args['el-kth'] == '2' then
--	lang_iso = 'kath' or 'el-kth'
--	c_3 = '#d5e2f6' -- title3, all the subtitles as in Modern Greek table-colours
elseif args['kath']  == '1' or args['el-kth'] == '1' then
	lang_iso = 'kath' or 'el-kth'
	lang_link = 'Greek'
	lang_name = 'Ancient Greek'	-- the Appendix, and the decl-categories are identical to AncGr
	args['lang_title'] = '<i>[[:Category:Katharevousa|Katharevousa]] (as in standard ancient declension)</i>'  
		.. '[[Category:Katharevousa ' .. mw.getContentLanguage():lcfirst(pos) .. ' with declension]]'
	c_3 = '#d5e2f6'
	args['du'] = '-'	-- no dual
	args['nocat'] = '1'	-- do not create subcategories	
	-- NO prosody (see below)

-- ======= el Modern Greek
elseif args['el'] == '1' then
	lang_iso = 'el'
	lang_link = 'Greek'
	lang_name = 'Greek'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) alternative  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  {...} learned  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']
-- colors (sample 2)
	-- borders
	c_border = '#a1bdea'
	c_bord = '#eaf0fa'
	-- background colours
	c_extra = '#d5e2f6'
	c_1 = '#a1bdea'
	c_2 = '#c1d3f1'
	c_3 = '#d5e2f6'
	c_4 = '#eaf0fa'
--	args['type'] = '' -- this param is compulsory (for clitic paradigm), skip it with pseudoname
--	args['nocat'] = '1' -- we do not need Decl-Categories as in grc
	args['du'] = '-'	-- no dual
	args['dat'] = '-'	-- no datives
	-- NO prosody (see below)
	
-- we need default
-- ======= no language DEFAULT
else
	args['lang_title'] = 'Template:create a noun inflectional table<br><span style="color:#b22222;">'
	..'please choose a language code with &#124;xx=1</span>'
	args['comment'] = '<div style="padding-bottom:0px;" class="center">'
	.. '(<span style="color:#777777;">ωωωω</span>) alternative  &nbsp;  &bull;  &nbsp;  [...] rare  &nbsp;  &bull;  &nbsp;  {...} learned  &nbsp;  &bull;  &nbsp;  &#8251; link with quotation'
	.. '</div>'	..'<hr>' .. args['comment']
	c_bord = '#eaf0fa'
	c_extra = '#eaf0fa'
	c_1 = '#ffffff'
	c_2 = '#ffffff'
	c_3 = '#ffffff'
	c_4 = '#ffffff'	
	args['du'] = '-'
	args['dat'] = '-'
	args['appendix'] = '-'
end



function create_link (page, text)
	if args['el'] == '1'
	-- or tsd, pnt etc
	then
		lang_link = '#Greek'
	elseif args['gkm'] == '1' or args['gkm'] == '2' or args['grk-gkm'] == '1' or args['grk-gkm'] == '2'
	then
		lang_link = '#Medieval Greek'
	elseif args['grc'] == '1' or args['grc-koi'] == '1' or args['grc-koi'] == '2'
	-- or grc-dor etc..
	then
		lang_link = '#Ancient Greek'
	else
		lang_link = ''
	end
	
		if text then
		return '[[' .. page .. lang_link .. '|' .. text .. ']]'
		else
		return '[[' .. page .. lang_link .. '|' .. page .. ']]'
		end
end -- close function create_link


-- ================================ GRAMMATICAL TERMS  = CANNOT PUT THEM HERE, must be at main page


-- #titles ================================ TTILES ===========
-- PLACE THIS UNDER LANGUAGES
	extratitle_str = args['mod-title'] or '' 	args['mod-title'] = args['mod-title'] or ''
	editor_title = args['title'] or ''			args['title'] = args['title'] or ''

	if args['mod-title'] ~= '' and args['mod-title'] ~= nil then
		if args['title'] ~= '' and args['title'] ~= nil then
			args['mod-title'] = args['mod-title'] .. "<br>" .. args['title']
			-- may add categories here
		else -- yes mod-title,  no title
			args['mod-title'] = args['mod-title']
			-- may add categories here
		end
	else -- NO mod-title
		-- no mod-title, yes title
		if args['title'] ~= '' and args['title'] ~= nil then
			args['mod-title'] = args['title']
			-- may add categories here
		else -- no mod-title, no title, nothing
			args['mod-title'] = args['mod-title'] or ''
			args['title'] = args['title'] or ''
			-- may add categories here
		end
	end -- close if mod-title

-- #br ================================ BREAKs for second forms
-- for dual (du), never change line. User brdu
-- do not use <br> but div with small margins BUT who close it?? <p>?

		if args['br'] == '&' then br = '&nbsp;&&nbsp;'	close_br = ''	brdu = '&nbsp;&&nbsp;'	-- & at same line nobreak
	elseif args['br'] == 'dash' then br = '&nbsp;-&nbsp;'	close_br = '' brdu = '&nbsp;-&nbsp;'	-- dash, same line nobreak
	elseif args['br'] == 'br' then 
		br = '<br />'	-- change line, no &
		close_br = ''
		brdu = '&nbsp;'		-- just a space
	elseif args['br'] == '' or args['br'] == nil then 
--else -- DEFAULT with div short line-height, because it may follow another div (of transliteration)
		br = '<div style="padding-top:0px; padding-bottom:0px;">'	
		close_br = '</div>'
		brdu = '&nbsp;-&nbsp;'		-- DEFAULT  at same line nobreak
	end
-- TODO more ? noo



-- TODO check this
-- ================================ NOTES (mod-comment from the Module, comment by the editor)
-- check [[Γλυκέριον]]
-- see MAIN PAGE for note = args['mod-comment']

-- if editor writes comment= then the module-comment changes
-- this goes IN the note ROW (font-size etc already done) see mod-comments at languages
if args['comment'] ~= '' and args['comment'] ~= nil then args['mod-comment'] = args['comment'] end
-- if the editor does not want the mod-comment of the Module
	-- but if we write args['comment'] ΙΝ module functions, then the editor cannot erase or edit it
	-- For some notes, we do not want the editor to change anything
	if args['comment'] == '-' then
		args['mod-comment'] = ''
	else
		args['comment'] = args['comment']
	end

-- ================================  common word for polylectics e.g. [[Ἀντινόου πόλις]]
-- before the word
	args['common1'] = args['common1']  or ''
	if args['common1'] ~= '' and args['common1'] ~= nil then
		args['common1'] = args['common1'] .. '&nbsp;'
	else
		args['common1'] = ''
	end

-- after the word -- [[άδεια οδήγησης]]
	args['common'] = args['common'] or ''
	if args['common'] ~= '' and args['common'] ~= nil then
		args['common'] =  '&nbsp;' .. args['common'] 
	else
		args['common'] = ''
	end



-- #no prosody ================================ NO PROSODY for some languages --TODO ?do double codes work?
-- languages with NO prosody

if args['el-kth'] == '1' or args['kth'] == '1'  or args['kath'] == '1' 
or args['gkm'] == '1' or args['grk-gkm'] == '1' -- = '2' ?TODO
then
-- STEMS no prosdy
-- @modules
	args['mod-NSstem+'] = args['mod-NSstem']	args['mod-GSstem+'] = args['mod-GSstem']	args['mod-DSstem+'] = args['mod-DSstem']
		args['mod-ASstem+'] = args['mod-ASstem']	args['mod-VSstem+'] = args['mod-VSstem']
	args['mod-NPstem+'] = args['mod-NPstem']	args['mod-GPstem+'] = args['mod-GPstem']	args['mod-DPstem+'] = args['mod-DPstem']
		args['mod-APstem+'] = args['mod-APstem']	args['mod-VPstem+'] = args['mod-VPstem']
	-- no dual
	args['mod-NS2stem+'] = args['mod-NS2stem']	args['mod-GS2stem+'] = args['mod-GS2stem']	args['mod-DS2stem+'] = args['mod-DS2stem']
		args['mod-AS2stem+'] = args['mod-AS2stem']	args['mod-VS2stem+'] = args['mod-VS2stem']
	args['mod-NP2stem+'] = args['mod-NP2stem']	args['mod-GP2stem+'] = args['mod-GP2stem']	args['mod-DP2stem+'] = args['mod-DP2stem']
		args['mod-AP2stem+'] = args['mod-AP2stem']	args['mod-VP2stem+'] = args['mod-VP2stem']
	-- no dual
-- editors
	args['NSstem+'] = args['NSstem']	args['GSstem+'] = args['GSstem']	args['DSstem+'] = args['DSstem']
		args['ASstem+'] = args['ASstem']	args['VSstem+'] = args['VSstem']
	args['NPstem+'] = args['NPstem']	args['GPstem+'] = args['GPstem']	args['DPstem+'] = args['DPstem']
		args['APstem+'] = args['APstem']	args['VPstem+'] = args['VPstem']
	-- no dual
	args['NS2stem+'] = args['NS2stem']	args['GS2stem+'] = args['GS2stem']	args['DS2stem+'] = args['DS2stem']
		args['AS2stem+'] = args['AS2stem']	args['VS2stem+'] = args['VS2stem']
	args['NP2stem+'] = args['NP2stem']	args['GP2stem+'] = args['GP2stem']	args['DP2stem+'] = args['DP2stem']
		args['AP2stem+'] = args['AP2stem']	args['VP2stem+'] = args['VP2stem']
	-- no dual
-- ENDINGS no prosody
-- @modules
	args['mod-NSsuf+'] = args['mod-NSsuf']	args['mod-GSsuf+'] = args['mod-GSsuf']	args['mod-DSsuf+'] = args['mod-DSsuf']
		args['mod-ASsuf+'] = args['mod-ASsuf']	args['mod-VSsuf+'] = args['mod-VSsuf']
	args['mod-NPsuf+'] = args['mod-NPsuf']	args['mod-GPsuf+'] = args['mod-GPsuf']	args['mod-DPsuf+'] = args['mod-DPsuf']
		args['mod-APsuf+'] = args['mod-APsuf']	args['mod-VPsuf+'] = args['mod-VPsuf']
	-- no dual
	args['mod-NS2suf+'] = args['mod-NS2suf']	args['mod-GS2suf+'] = args['mod-GS2suf']	args['mod-DS2suf+'] = args['mod-DS2suf']
		args['mod-AS2suf+'] = args['mod-AS2suf']	args['mod-VS2suf+'] = args['mod-VS2suf']
	args['mod-NP2suf+'] = args['mod-NP2suf']	args['mod-GP2suf+'] = args['mod-GP2suf']	args['mod-DP2suf+'] = args['mod-DP2suf']
		args['mod-AP2suf+'] = args['mod-AP2suf']	args['mod-VP2suf+'] = args['mod-VP2suf']
	-- no dual
-- editors
	args['NSsuf+'] = args['NSsuf']	args['GSsuf+'] = args['GSsuf']	args['DSsuf+'] = args['DSsuf']
		args['ASsuf+'] = args['ASsuf']	args['VSsuf+'] = args['VSsuf']
	args['NPsuf+'] = args['NPsuf']	args['GPsuf+'] = args['GPsuf']	args['DPsuf+'] = args['DPsuf']
		args['APsuf+'] = args['APsuf']	args['VPsuf+'] = args['VPsuf']
	-- no dual
	args['NS2suf+'] = args['NS2suf']	args['GS2suf+'] = args['GS2suf']	args['DS2suf+'] = args['DS2suf']
		args['AS2suf+'] = args['AS2suf']	args['VS2suf+'] = args['VS2suf']
	args['NP2suf+'] = args['NP2suf']	args['GP2suf+'] = args['GP2suf']	args['DP2suf+'] = args['DP2suf']
		args['AP2suf+'] = args['AP2suf']	args['VP2suf+'] = args['VP2suf']
	-- no dual
end

-- ================================  LINES
-- #lines @modules ALSO NUMBERED
	args['mod-NS'] = args['mod-NS'] or args['1'] or ''	args['mod-GS'] = args['mod-GS'] or args['2'] or ''	args['mod-DS'] = args['mod-DS'] or args['3'] or ''	
	args['mod-AS'] = args['mod-AS'] or args['4'] or ''	args['mod-VS'] = args['mod-VS'] or args['5'] or ''
	args['mod-NP'] = args['mod-NP'] or args['6'] or ''	args['mod-GP'] = args['mod-GP'] or args['7'] or ''	args['mod-DP'] = args['mod-DP'] or args['8'] or ''	
	args['mod-AP'] = args['mod-AP'] or args['9'] or ''	args['mod-VP'] = args['mod-VP'] or args['10'] or ''
	args['mod-ND'] = args['mod-ND'] or args['11'] or ''	args['mod-GD'] = args['mod-GD'] or args['12'] or ''
	-- second lines
	args['mod-NS2'] = args['mod-NS2'] or ''	args['mod-GS2'] = args['mod-GS2'] or ''	args['mod-DS2'] = args['mod-DS2'] or ''	
	args['mod-AS2'] = args['mod-AS2'] or ''	args['mod-VS2'] = args['mod-VS2'] or ''
	args['mod-NP2'] = args['mod-NP2'] or ''	args['mod-GP2'] = args['mod-GP2'] or ''	args['mod-DP2'] = args['mod-DP2'] or ''	
	args['mod-AP2'] = args['mod-AP2'] or ''	args['mod-VP2'] = args['mod-VP2'] or ''
	args['mod-ND2'] = args['mod-ND2'] or ''	args['mod-GD2'] = args['mod-GD2'] or ''
-- lines for editors
	args['NS'] = args['NS'] or ''	args['GS'] = args['GS'] or ''	args['DS'] = args['DS'] or ''	
	args['AS'] = args['AS'] or ''	args['VS'] = args['VS'] or ''
	args['NP'] = args['NP'] or ''	args['GP'] = args['GP'] or ''	args['DP'] = args['DP'] or ''	
	args['AP'] = args['AP'] or ''	args['VP'] = args['VP'] or ''
	args['ND'] = args['ND'] or ''	args['GD'] = args['GD'] or ''
	-- second lines
	args['NS2'] = args['NS2'] or ''	args['GS2'] = args['GS2'] or ''	args['DS2'] = args['DS2'] or ''	
	args['AS2'] = args['AS2'] or ''	args['VS2'] = args['VS2'] or ''
	args['NP2'] = args['NP2'] or ''	args['GP2'] = args['GP2'] or ''	args['DP2'] = args['DP2'] or ''	
	args['AP2'] = args['AP2'] or ''	args['VP2'] = args['VP2'] or ''
	args['ND2'] = args['ND2'] or ''	args['GD2'] = args['GD2'] or ''
-- column2 lines @modules
	args['mod-2NS'] = args['mod-2NS'] or ''	args['mod-2GS'] = args['mod-2GS'] or ''	args['mod-2DS'] = args['mod-2DS'] or ''	
	args['mod-2AS'] = args['mod-2AS'] or ''	args['mod-2VS'] = args['mod-2VS'] or ''
	args['mod-2NP'] = args['mod-2NP'] or ''	args['mod-2GP'] = args['mod-2GP'] or ''	args['mod-2DP'] = args['mod-2DP'] or ''	
	args['mod-2AP'] = args['mod-2A2'] or ''	args['mod-2VP'] = args['mod-2VP'] or ''
	args['mod-2ND'] = args['mod-2ND'] or ''	args['mod-2GD'] = args['mod-2GD'] or ''
	-- column2 second lines
	args['mod-2NS2'] = args['mod-2NS2'] or ''	args['mod-2GS2'] = args['mod-2GS2'] or ''	args['mod-2DS2'] = args['mod-2DS2'] or ''	
	args['mod-2AS2'] = args['mod-2AS2'] or ''	args['mod-2VS2'] = args['mod-2VS2'] or ''
	args['mod-2NP2'] = args['mod-2NP2'] or ''	args['mod-2GP2'] = args['mod-2GP2'] or ''	args['mod-2DP2'] = args['mod-2DP2'] or ''	
	args['mod-2AP2'] = args['mod-2AP2'] or ''	args['mod-2VP2'] = args['mod-2VP2'] or ''
	args['mod-2ND2'] = args['mod-2ND2'] or ''	args['mod-2GD2'] = args['mod-2GD2'] or ''
-- column2 lines for editors
	args['2NS'] = args['2NS'] or ''	args['2GS'] = args['2GS'] or ''	args['2DS'] = args['2DS'] or ''	
	args['2AS'] = args['2AS'] or ''	args['2VS'] = args['2VS'] or ''
	args['2NP'] = args['2NP'] or ''	args['2GP'] = args['2GP'] or ''	args['2DP'] = args['2DP'] or ''	
	args['2AP'] = args['2AP'] or ''	args['2VP'] = args['2VP'] or ''
	args['2ND'] = args['2ND'] or ''	args['2GD'] = args['2GD'] or ''
	-- column2 second lines
	args['2NS2'] = args['2NS2'] or ''	args['2GS2'] = args['2GS2'] or ''	args['2DS2'] = args['2DS2'] or ''	
	args['2AS2'] = args['2AS2'] or ''	args['2VS2'] = args['2VS2'] or ''
	args['2NP2'] = args['2NP2'] or ''	args['2GP2'] = args['2GP2'] or ''	args['2DP2'] = args['2DP2'] or ''	
	args['2AP2'] = args['2AP2'] or ''	args['2VP2'] = args['2VP2'] or ''
	args['2ND2'] = args['2ND2'] or ''	args['2GD2'] = args['2GD2'] or ''

	
-- OVERRIDE LINES mod- (if the editor writes a XX, it overrides the function's mod-XX)
	if args['NS'] ~= '' and args['NS'] ~= nil then args['mod-NS'] = args['NS'] end
	if args['GS'] ~= '' and args['GS'] ~= nil then args['mod-GS'] = args['GS'] end
	if args['DS'] ~= '' and args['DS'] ~= nil then args['mod-DS'] = args['DS'] end
	if args['AS'] ~= '' and args['AS'] ~= nil then args['mod-AS'] = args['AS'] end
	if args['VS'] ~= '' and args['VS'] ~= nil then args['mod-VS'] = args['VS'] end
	if args['NP'] ~= '' and args['NP'] ~= nil then args['mod-NP'] = args['NP'] end
	if args['GP'] ~= '' and args['GP'] ~= nil then args['mod-GP'] = args['GP'] end
	if args['DP'] ~= '' and args['DP'] ~= nil then args['mod-DP'] = args['DP'] end
	if args['AP'] ~= '' and args['AP'] ~= nil then args['mod-AP'] = args['AP'] end
	if args['VP'] ~= '' and args['VP'] ~= nil then args['mod-VP'] = args['VP'] end
	if args['ND'] ~= '' and args['ND'] ~= nil then args['mod-ND'] = args['ND'] end
	if args['GD'] ~= '' and args['GD'] ~= nil then args['mod-GD'] = args['GD'] end
	-- second lines OVERRIDE mod-
	if args['NS2'] ~= '' and args['NS2'] ~= nil then args['mod-NS2'] = args['NS2'] end
	if args['GS2'] ~= '' and args['GS2'] ~= nil then args['mod-GS2'] = args['GS2'] end
	if args['DS2'] ~= '' and args['DS2'] ~= nil then args['mod-DS2'] = args['DS2'] end
	if args['AS2'] ~= '' and args['AS2'] ~= nil then args['mod-AS2'] = args['AS2'] end
	if args['VS2'] ~= '' and args['VS2'] ~= nil then args['mod-VS2'] = args['VS2'] end
	if args['NP2'] ~= '' and args['NP2'] ~= nil then args['mod-NP2'] = args['NP2'] end
	if args['GP2'] ~= '' and args['GP2'] ~= nil then args['mod-GP2'] = args['GP2'] end
	if args['DP2'] ~= '' and args['DP2'] ~= nil then args['mod-DP2'] = args['DP2'] end
	if args['AP2'] ~= '' and args['AP2'] ~= nil then args['mod-AP2'] = args['AP2'] end
	if args['VP2'] ~= '' and args['VP2'] ~= nil then args['mod-VP2'] = args['VP2'] end
	if args['ND2'] ~= '' and args['ND2'] ~= nil then args['mod-ND2'] = args['ND2'] end
	if args['GD2'] ~= '' and args['GD2'] ~= nil then args['mod-GD2'] = args['GD2'] end
	-- column2 lines OVERRIDE mod-
	if args['2NS'] ~= '' and args['2NS'] ~= nil then args['mod-2NS'] = args['2NS'] end
	if args['2GS'] ~= '' and args['2GS'] ~= nil then args['mod-2GS'] = args['2GS'] end
	if args['2DS'] ~= '' and args['2DS'] ~= nil then args['mod-2DS'] = args['2DS'] end
	if args['2AS'] ~= '' and args['2AS'] ~= nil then args['mod-2AS'] = args['2AS'] end
	if args['2VS'] ~= '' and args['2VS'] ~= nil then args['mod-2VS'] = args['2VS'] end
	if args['2NP'] ~= '' and args['2NP'] ~= nil then args['mod-2NP'] = args['2NP'] end
	if args['2GP'] ~= '' and args['2GP'] ~= nil then args['mod-2GP'] = args['2GP'] end
	if args['2DP'] ~= '' and args['2DP'] ~= nil then args['mod-2DP'] = args['2DP'] end
	if args['2AP'] ~= '' and args['2AP'] ~= nil then args['mod-2AP'] = args['2AP'] end
	if args['2VP'] ~= '' and args['2VP'] ~= nil then args['mod-2VP'] = args['2VP'] end
	if args['2ND'] ~= '' and args['2ND'] ~= nil then args['mod-2ND'] = args['2ND'] end
	if args['2GD'] ~= '' and args['2GD'] ~= nil then args['mod-2GD'] = args['2GD'] end
	-- column2 second lines OVERRIDE mod-
	if args['2NS2'] ~= '' and args['2NS2'] ~= nil then args['mod-2NS2'] = args['2NS2'] end
	if args['2GS2'] ~= '' and args['2GS2'] ~= nil then args['mod-2GS2'] = args['2GS2'] end
	if args['2DS2'] ~= '' and args['2DS2'] ~= nil then args['mod-2DS2'] = args['2DS2'] end
	if args['2AS2'] ~= '' and args['2AS2'] ~= nil then args['mod-2AS2'] = args['2AS2'] end
	if args['2VS2'] ~= '' and args['2VS2'] ~= nil then args['mod-2VS2'] = args['2VS2'] end
	if args['2NP2'] ~= '' and args['2NP2'] ~= nil then args['mod-2NP2'] = args['2NP2'] end
	if args['2GP2'] ~= '' and args['2GP2'] ~= nil then args['mod-2GP2'] = args['2GP2'] end
	if args['2DP2'] ~= '' and args['2DP2'] ~= nil then args['mod-2DP2'] = args['2DP2'] end
	if args['2AP2'] ~= '' and args['2AP2'] ~= nil then args['mod-2AP2'] = args['2AP2'] end
	if args['2VP2'] ~= '' and args['2VP2'] ~= nil then args['mod-2VP2'] = args['2VP2'] end
	if args['2ND2'] ~= '' and args['2ND2'] ~= nil then args['mod-2ND2'] = args['2ND2'] end
	if args['2GD2'] ~= '' and args['2GD2'] ~= nil then args['mod-2GD2'] = args['2GD2'] end


-- ==================== STEMS
-- #stems @module
	args['mod-NSstem'] = args['mod-NSstem'] or ''	args['mod-GSstem'] = args['mod-GSstem'] or '' 	args['mod-DSstem'] = args['mod-DSstem'] or ''
		args['mod-ASstem'] = args['mod-ASstem'] or ''	args['mod-VSstem'] = args['mod-VSstem'] or ''
	args['mod-NPstem'] = args['mod-NPstem'] or ''	args['mod-GPstem'] = args['mod-GPstem'] or '' 	args['mod-DPstem'] = args['mod-DPstem'] or ''
		args['mod-APstem'] = args['mod-APstem'] or ''	args['mod-VPstem'] = args['mod-VPstem'] or ''
	args['mod-NDstem'] = args['mod-NDstem'] or ''	args['mod-GDstem'] = args['mod-GDstem'] or ''
	-- second-line stems
	args['mod-NS2stem'] = args['mod-NS2stem'] or ''	args['mod-GS2stem'] = args['mod-GS2stem'] or '' 	args['mod-DS2stem'] = args['mod-DS2stem'] or ''
		args['mod-AS2stem'] = args['mod-AS2stem'] or ''	args['mod-VS2stem'] = args['mod-VS2stem'] or ''
	args['mod-NP2stem'] = args['mod-NP2stem'] or ''	args['mod-GP2stem'] = args['mod-GP2stem'] or '' 	args['mod-DP2stem'] = args['mod-DP2stem'] or ''
		args['mod-AP2stem'] = args['mod-AP2stem'] or ''	args['mod-VP2stem'] = args['mod-VP2stem'] or ''
	args['mod-ND2stem'] = args['mod-ND2stem'] or ''	args['mod-GD2stem'] = args['mod-GD2stem'] or ''
-- stems for editors
	args['NSstem'] = args['NSstem'] or ''	args['GSstem'] = args['GSstem'] or '' 	args['DSstem'] = args['DSstem'] or ''
		args['ASstem'] = args['ASstem'] or ''	args['VSstem'] = args['VSstem'] or ''
	args['NPstem'] = args['NPstem'] or ''	args['GPstem'] = args['GPstem'] or '' 	args['DPstem'] = args['DPstem'] or ''
		args['APstem'] = args['APstem'] or ''	args['VPstem'] = args['VPstem'] or ''
	args['NDstem'] = args['NDstem'] or ''	args['GDstem'] = args['GDstem'] or ''
	-- second-line stems
	args['NS2stem'] = args['NS2stem'] or ''	args['GS2stem'] = args['GS2stem'] or '' 	args['DS2stem'] = args['DS2stem'] or ''
		args['AS2stem'] = args['AS2stem'] or ''	args['VS2stem'] = args['VS2stem'] or ''
	args['NP2stem'] = args['NP2stem'] or ''	args['GP2stem'] = args['GP2stem'] or '' 	args['DP2stem'] = args['DP2stem'] or ''
		args['AP2stem'] = args['AP2stem'] or ''	args['VP2stem'] = args['VP2stem'] or ''
	args['ND2stem'] = args['ND2stem'] or ''	args['GD2stem'] = args['GD2stem'] or ''


-- is this needed?
-- OVERRIDE STEMS mod- (if the editor writes a XXstem, it overrides the function's mod-XXstem)
	if args['NSstem'] ~= '' and args['NSstem'] ~= nil then args['mod-NSstem'] = args['NSstem'] end
	if args['GSstem'] ~= '' and args['GSstem'] ~= nil then args['mod-GSstem'] = args['GSstem'] end
	if args['DSstem'] ~= '' and args['DSstem'] ~= nil then args['mod-DSstem'] = args['DSstem'] end
	if args['ASstem'] ~= '' and args['ASstem'] ~= nil then args['mod-ASstem'] = args['ASstem'] end
	if args['VSstem'] ~= '' and args['VSstem'] ~= nil then args['mod-VSstem'] = args['VSstem'] end
	if args['NPstem'] ~= '' and args['NPstem'] ~= nil then args['mod-NPstem'] = args['NPstem'] end
	if args['GPstem'] ~= '' and args['GPstem'] ~= nil then args['mod-GPstem'] = args['GPstem'] end
	if args['DPstem'] ~= '' and args['DPstem'] ~= nil then args['mod-DPstem'] = args['DPstem'] end
	if args['APstem'] ~= '' and args['APstem'] ~= nil then args['mod-APstem'] = args['APstem'] end
	if args['VPstem'] ~= '' and args['VPstem'] ~= nil then args['mod-VPstem'] = args['VPstem'] end
	if args['NDstem'] ~= '' and args['NDstem'] ~= nil then args['mod-NDstem'] = args['NDstem'] end
	if args['GDstem'] ~= '' and args['GDstem'] ~= nil then args['mod-GDstem'] = args['GDstem'] end
	-- second-line stems OVERRIDE mod-
	if args['NS2stem'] ~= '' and args['NS2stem'] ~= nil then args['mod-NS2stem'] = args['NS2stem'] end
	if args['GS2stem'] ~= '' and args['GS2stem'] ~= nil then args['mod-GS2stem'] = args['GS2stem'] end
	if args['DS2stem'] ~= '' and args['DS2stem'] ~= nil then args['mod-DS2stem'] = args['DS2stem'] end
	if args['AS2stem'] ~= '' and args['AS2stem'] ~= nil then args['mod-AS2stem'] = args['AS2stem'] end
	if args['VS2stem'] ~= '' and args['VS2stem'] ~= nil then args['mod-VS2stem'] = args['VS2stem'] end
	if args['NP2stem'] ~= '' and args['NP2stem'] ~= nil then args['mod-NP2stem'] = args['NP2stem'] end
	if args['GP2stem'] ~= '' and args['GP2stem'] ~= nil then args['mod-GP2stem'] = args['GP2stem'] end
	if args['DP2stem'] ~= '' and args['DP2stem'] ~= nil then args['mod-DP2stem'] = args['DP2stem'] end
	if args['AP2stem'] ~= '' and args['AP2stem'] ~= nil then args['mod-AP2stem'] = args['AP2stem'] end
	if args['VP2stem'] ~= '' and args['VP2stem'] ~= nil then args['mod-VP2stem'] = args['VP2stem'] end
	if args['ND2stem'] ~= '' and args['ND2stem'] ~= nil then args['mod-ND2stem'] = args['ND2stem'] end
	if args['GD2stem'] ~= '' and args['GD2stem'] ~= nil then args['mod-GD2stem'] = args['GD2stem'] end
	-- no column2 



-- ================= ENDINGS/SUFFIXES
-- #suffixes / endings @module
	args['mod-NSsuf'] = args['mod-NSsuf'] or ''	args['mod-GSsuf'] = args['mod-GSsuf'] or '' 	args['mod-DSsuf'] = args['mod-DSsuf'] or ''
		args['mod-ASsuf'] = args['mod-ASsuf'] or ''	args['mod-VSsuf'] = args['mod-VSsuf'] or ''
	args['mod-NPsuf'] = args['mod-NPsuf'] or ''	args['mod-GPsuf'] = args['mod-GPsuf'] or '' 	args['mod-DPsuf'] = args['mod-DPsuf'] or ''
		args['mod-APsuf'] = args['mod-APsuf'] or ''	args['mod-VPsuf'] = args['mod-VPsuf'] or ''
	args['mod-NDsuf'] = args['mod-NDsuf'] or ''	args['mod-GDsuf'] = args['mod-GDsuf'] or ''
	-- second line's suffixes
	args['mod-NS2suf'] = args['mod-NS2suf'] or ''	args['mod-GS2suf'] = args['mod-GS2suf'] or '' 	args['mod-DS2suf'] = args['mod-DS2suf'] or ''
		args['mod-AS2suf'] = args['mod-AS2suf'] or ''	args['mod-VS2suf'] = args['mod-VS2suf'] or ''
	args['mod-NP2suf'] = args['mod-NP2suf'] or ''	args['mod-GP2suf'] = args['mod-GP2suf'] or '' 	args['mod-DP2suf'] = args['mod-DP2suf'] or ''
		args['mod-AP2suf'] = args['mod-AP2suf'] or ''	args['mod-VP2suf'] = args['mod-VP2suf'] or ''
	args['mod-ND2suf'] = args['mod-ND2suf'] or ''	args['mod-GD2suf'] = args['mod-GD2suf'] or ''
-- endings for editors
	args['NSsuf'] = args['NSsuf'] or ''	args['GSsuf'] = args['GSsuf'] or '' 	args['DSsuf'] = args['DSsuf'] or ''
		args['ASsuf'] = args['ASsuf'] or ''	args['VSsuf'] = args['VSsuf'] or ''
	args['NPsuf'] = args['NPsuf'] or ''	args['GPsuf'] = args['GPsuf'] or '' 	args['DPsuf'] = args['DPsuf'] or ''
		args['APsuf'] = args['APsuf'] or ''	args['VPsuf'] = args['VPsuf'] or ''
	args['NDsuf'] = args['NDsuf'] or ''	args['GDsuf'] = args['GDsuf'] or ''
	-- second line's suffixes
	args['NS2suf'] = args['NS2suf'] or ''	args['GS2suf'] = args['GS2suf'] or '' 	args['DS2suf'] = args['DS2suf'] or ''
		args['AS2suf'] = args['AS2suf'] or ''	args['VS2suf'] = args['VS2suf'] or ''
	args['NP2suf'] = args['NP2suf'] or ''	args['GP2suf'] = args['GP2suf'] or '' 	args['DP2suf'] = args['DP2suf'] or ''
		args['AP2suf'] = args['AP2suf'] or ''	args['VP2suf'] = args['VP2suf'] or ''
	args['ND2suf'] = args['ND2suf'] or ''	args['GD2suf'] = args['GD2suf'] or ''



-- is this needed?
-- OVERRIDE ENDINGS mod- (if the editor writes a XXsuf, it overrides the function's mod-XXsuf)
	if args['NSsuf'] ~= '' and args['NSsuf'] ~= nil then args['mod-NSsuf'] = args['NSsuf'] end
	if args['GSsuf'] ~= '' and args['GSsuf'] ~= nil then args['mod-GSsuf'] = args['GSsuf'] end
	if args['DSsuf'] ~= '' and args['DSsuf'] ~= nil then args['mod-DSsuf'] = args['DSsuf'] end
	if args['ASsuf'] ~= '' and args['ASsuf'] ~= nil then args['mod-ASsuf'] = args['ASsuf'] end
	if args['VSsuf'] ~= '' and args['VSsuf'] ~= nil then args['mod-VSsuf'] = args['VSsuf'] end
	if args['NPsuf'] ~= '' and args['NPsuf'] ~= nil then args['mod-NPsuf'] = args['NPsuf'] end
	if args['GPsuf'] ~= '' and args['GPsuf'] ~= nil then args['mod-GPsuf'] = args['GPsuf'] end
	if args['DPsuf'] ~= '' and args['DPsuf'] ~= nil then args['mod-DPsuf'] = args['DPsuf'] end
	if args['APsuf'] ~= '' and args['APsuf'] ~= nil then args['mod-APsuf'] = args['APsuf'] end
	if args['VPsuf'] ~= '' and args['VPsuf'] ~= nil then args['mod-VPsuf'] = args['VPsuf'] end
	if args['NDsuf'] ~= '' and args['NDsuf'] ~= nil then args['mod-NDsuf'] = args['NDsuf'] end
	if args['GDsuf'] ~= '' and args['GDsuf'] ~= nil then args['mod-GDsuf'] = args['GDsuf'] end
	-- second-line endings OVERRIDE mod-
	if args['NS2suf'] ~= '' and args['NS2suf'] ~= nil then args['mod-NS2suf'] = args['NS2suf'] end
	if args['GS2suf'] ~= '' and args['GS2suf'] ~= nil then args['mod-GS2suf'] = args['GS2suf'] end
	if args['DS2suf'] ~= '' and args['DS2suf'] ~= nil then args['mod-DS2suf'] = args['DS2suf'] end
	if args['AS2suf'] ~= '' and args['AS2suf'] ~= nil then args['mod-AS2suf'] = args['AS2suf'] end
	if args['VS2suf'] ~= '' and args['VS2suf'] ~= nil then args['mod-VS2suf'] = args['VS2suf'] end
	if args['NP2suf'] ~= '' and args['NP2suf'] ~= nil then args['mod-NP2suf'] = args['NP2suf'] end
	if args['GP2suf'] ~= '' and args['GP2suf'] ~= nil then args['mod-GP2suf'] = args['GP2suf'] end
	if args['DP2suf'] ~= '' and args['DP2suf'] ~= nil then args['mod-DP2suf'] = args['DP2suf'] end
	if args['AP2suf'] ~= '' and args['AP2suf'] ~= nil then args['mod-AP2suf'] = args['AP2suf'] end
	if args['VP2suf'] ~= '' and args['VP2suf'] ~= nil then args['mod-VP2suf'] = args['VP2suf'] end
	if args['ND2suf'] ~= '' and args['ND2suf'] ~= nil then args['mod-ND2suf'] = args['ND2suf'] end
	if args['GD2suf'] ~= '' and args['GD2suf'] ~= nil then args['mod-GD2suf'] = args['GD2suf'] end
	-- no column2 



-- THIS IS NEEDED - DO NOT ERASE
-- #auto stems ========== DEFAULT STEMS auto
-- this is for module stems, no need to rewrite default (minus 2 letters from end) 
-- BUT IF the function's stem is not the default stem, all stems have to be written
	if args['mod-NSstem'] == '' or args['mod-NSstem'] == nil then args['mod-NSstem'] = stem["s"] else args['mod-NSstem'] = args['mod-NSstem'] end
	if args['mod-GSstem'] == '' or args['mod-GSstem'] == nil then args['mod-GSstem'] = stem["s"] else args['mod-GSstem'] = args['mod-GSstem'] end
	if args['mod-DSstem'] == '' or args['mod-DSstem'] == nil then args['mod-DSstem'] = stem["s"] else args['mod-DSstem'] = args['mod-DSstem'] end
	if args['mod-ASstem'] == '' or args['mod-ASstem'] == nil then args['mod-ASstem'] = stem["s"] else args['mod-ASstem'] = args['mod-ASstem'] end
	if args['mod-VSstem'] == '' or args['mod-VSstem'] == nil then args['mod-VSstem'] = stem["s"] else args['mod-VSstem'] = args['mod-VSstem'] end
	if args['mod-NPstem'] == '' or args['mod-NPstem'] == nil then args['mod-NPstem'] = stem["s"] else args['mod-NPstem'] = args['mod-NPstem'] end
	if args['mod-GPstem'] == '' or args['mod-GPstem'] == nil then args['mod-GPstem'] = stem["s"] else args['mod-GPstem'] = args['mod-GPstem'] end
	if args['mod-DPstem'] == '' or args['mod-DPstem'] == nil then args['mod-DPstem'] = stem["s"] else args['mod-DPstem'] = args['mod-DPstem'] end
	if args['mod-APstem'] == '' or args['mod-APstem'] == nil then args['mod-APstem'] = stem["s"] else args['mod-APstem'] = args['mod-APstem'] end
	if args['mod-VPstem'] == '' or args['mod-VPstem'] == nil then args['mod-VPstem'] = stem["s"] else args['mod-VPstem'] = args['mod-VPstem'] end
	if args['mod-NDstem'] == '' or args['mod-NDstem'] == nil then args['mod-NDstem'] = stem["s"] else args['mod-NDstem'] = args['mod-NDstem'] end
	if args['mod-GDstem'] == '' or args['mod-GDstem'] == nil then args['mod-GDstem'] = stem["s"] else args['mod-GDstem'] = args['mod-GDstem'] end
	-- automatic stem for second-line words
	if args['mod-NS2stem'] == '' or args['mod-NS2stem'] == nil then args['mod-NS2stem'] = stem["s"] else args['mod-NS2stem'] = args['mod-NS2stem'] end
	if args['mod-GS2stem'] == '' or args['mod-GS2stem'] == nil then args['mod-GS2stem'] = stem["s"] else args['mod-GS2stem'] = args['mod-GS2stem'] end
	if args['mod-DS2stem'] == '' or args['mod-DS2stem'] == nil then args['mod-DS2stem'] = stem["s"] else args['mod-DS2stem'] = args['mod-DS2stem'] end
	if args['mod-AS2stem'] == '' or args['mod-AS2stem'] == nil then args['mod-AS2stem'] = stem["s"] else args['mod-AS2stem'] = args['mod-AS2stem'] end
	if args['mod-VS2stem'] == '' or args['mod-VS2stem'] == nil then args['mod-VS2stem'] = stem["s"] else args['mod-VS2stem'] = args['mod-VS2stem'] end
	if args['mod-NP2stem'] == '' or args['mod-NP2stem'] == nil then args['mod-NP2stem'] = stem["s"] else args['mod-NP2stem'] = args['mod-NP2stem'] end
	if args['mod-GP2stem'] == '' or args['mod-GP2stem'] == nil then args['mod-GP2stem'] = stem["s"] else args['mod-GP2stem'] = args['mod-GP2stem'] end
	if args['mod-DP2stem'] == '' or args['mod-DP2stem'] == nil then args['mod-DP2stem'] = stem["s"] else args['mod-DP2stem'] = args['mod-DP2stem'] end
	if args['mod-AP2stem'] == '' or args['mod-AP2stem'] == nil then args['mod-AP2stem'] = stem["s"] else args['mod-AP2stem'] = args['mod-AP2stem'] end
	if args['mod-VP2stem'] == '' or args['mod-VP2stem'] == nil then args['mod-VP2stem'] = stem["s"] else args['mod-VP2stem'] = args['mod-VP2stem'] end
	if args['mod-ND2stem'] == '' or args['mod-ND2stem'] == nil then args['mod-ND2stem'] = stem["s"] else args['mod-ND2stem'] = args['mod-ND2stem'] end
	if args['mod-GD2stem'] == '' or args['mod-GD2stem'] == nil then args['mod-GD2stem'] = stem["s"] else args['mod-GD2stem'] = args['mod-GD2stem'] end
--[=[
-- automatic stem for editor's words. Editor does not have to write the default stem
	if args['NSstem'] == '' or args['NSstem'] == nil then args['NSstem'] = stem["s"] else args['NSstem'] = args['NSstem'] end
	if args['GSstem'] == '' or args['GSstem'] == nil then args['GSstem'] = stem["s"] else args['GSstem'] = args['GSstem'] end
	if args['DSstem'] == '' or args['DSstem'] == nil then args['DSstem'] = stem["s"] else args['DSstem'] = args['DSstem'] end
	if args['ASstem'] == '' or args['ASstem'] == nil then args['ASstem'] = stem["s"] else args['ASstem'] = args['ASstem'] end
	if args['VSstem'] == '' or args['VSstem'] == nil then args['VSstem'] = stem["s"] else args['VSstem'] = args['VSstem'] end
	if args['NPstem'] == '' or args['NPstem'] == nil then args['NPstem'] = stem["s"] else args['NPstem'] = args['NPstem'] end
	if args['GPstem'] == '' or args['GPstem'] == nil then args['GPstem'] = stem["s"] else args['GPstem'] = args['GPstem'] end
	if args['DPstem'] == '' or args['DPstem'] == nil then args['DPstem'] = stem["s"] else args['DPstem'] = args['DPstem'] end
	if args['APstem'] == '' or args['APstem'] == nil then args['APstem'] = stem["s"] else args['APstem'] = args['APstem'] end
	if args['VPstem'] == '' or args['VPstem'] == nil then args['VPstem'] = stem["s"] else args['VPstem'] = args['VPstem'] end
	if args['NDstem'] == '' or args['NDstem'] == nil then args['NDstem'] = stem["s"] else args['NDstem'] = args['NDstem'] end
	if args['GDstem'] == '' or args['GDstem'] == nil then args['GDstem'] = stem["s"] else args['GDstem'] = args['GDstem'] end
	-- automatic stem for second-line words
	if args['NS2stem'] == '' or args['NS2stem'] == nil then args['NS2stem'] = stem["s"] else args['NS2stem'] = args['NS2stem'] end
	if args['GS2stem'] == '' or args['GS2stem'] == nil then args['GS2stem'] = stem["s"] else args['GS2stem'] = args['GS2stem'] end
	if args['DS2stem'] == '' or args['DS2stem'] == nil then args['DS2stem'] = stem["s"] else args['DS2stem'] = args['DS2stem'] end
	if args['AS2stem'] == '' or args['AS2stem'] == nil then args['AS2stem'] = stem["s"] else args['AS2stem'] = args['AS2stem'] end
	if args['VS2stem'] == '' or args['VS2stem'] == nil then args['VS2stem'] = stem["s"] else args['VS2stem'] = args['VS2stem'] end
	if args['NP2stem'] == '' or args['NP2stem'] == nil then args['NP2stem'] = stem["s"] else args['NP2stem'] = args['NP2stem'] end
	if args['GP2stem'] == '' or args['GP2stem'] == nil then args['GP2stem'] = stem["s"] else args['GP2stem'] = args['GP2stem'] end
	if args['DP2stem'] == '' or args['DP2stem'] == nil then args['DP2stem'] = stem["s"] else args['DP2stem'] = args['DP2stem'] end
	if args['AP2stem'] == '' or args['AP2stem'] == nil then args['AP2stem'] = stem["s"] else args['AP2stem'] = args['AP2stem'] end
	if args['VP2stem'] == '' or args['VP2stem'] == nil then args['VP2stem'] = stem["s"] else args['VP2stem'] = args['VP2stem'] end
	if args['ND2stem'] == '' or args['ND2stem'] == nil then args['ND2stem'] = stem["s"] else args['ND2stem'] = args['ND2stem'] end
	if args['GD2stem'] == '' or args['GD2stem'] == nil then args['GD2stem'] = stem["s"] else args['GD2stem'] = args['GD2stem'] end
]=]--

-- STEM #prosody - when no prosody stems are written in @module fucntions
if args['mod-NSstem+'] == '' or args['mod-NSstem+'] == nil then args['mod-NSstem+'] = args['mod-NSstem'] end
if args['mod-GSstem+'] == '' or args['mod-GSstem+'] == nil then args['mod-GSstem+'] = args['mod-GSstem'] end
if args['mod-DSstem+'] == '' or args['mod-DSstem+'] == nil then args['mod-DSstem+'] = args['mod-DSstem'] end
if args['mod-ASstem+'] == '' or args['mod-ASstem+'] == nil then args['mod-ASstem+'] = args['mod-ASstem'] end
if args['mod-VSstem+'] == '' or args['mod-VSstem+'] == nil then args['mod-VSstem+'] = args['mod-VSstem'] end
if args['mod-NPstem+'] == '' or args['mod-NPstem+'] == nil then args['mod-NPstem+'] = args['mod-NPstem'] end
if args['mod-GPstem+'] == '' or args['mod-GPstem+'] == nil then args['mod-GPstem+'] = args['mod-GPstem'] end
if args['mod-DPstem+'] == '' or args['mod-DPstem+'] == nil then args['mod-DPstem+'] = args['mod-DPstem'] end
if args['mod-APstem+'] == '' or args['mod-APstem+'] == nil then args['mod-APstem+'] = args['mod-APstem'] end
if args['mod-VPstem+'] == '' or args['mod-VPstem+'] == nil then args['mod-VPstem+'] = args['mod-VPstem'] end
if args['mod-NDstem+'] == '' or args['mod-NDstem+'] == nil then args['mod-NDstem+'] = args['mod-NDstem'] end
if args['mod-GDstem+'] == '' or args['mod-GDstem+'] == nil then args['mod-GDstem+'] = args['mod-GDstem'] end

if args['mod-NS2stem+'] == '' or args['mod-NS2stem+'] == nil then args['mod-NS2stem+'] = args['mod-NS2stem'] end
if args['mod-GS2stem+'] == '' or args['mod-GS2stem+'] == nil then args['mod-GS2stem+'] = args['mod-GS2stem'] end
if args['mod-DS2stem+'] == '' or args['mod-DS2stem+'] == nil then args['mod-DS2stem+'] = args['mod-DS2stem'] end
if args['mod-AS2stem+'] == '' or args['mod-AS2stem+'] == nil then args['mod-AS2stem+'] = args['mod-AS2stem'] end
if args['mod-VS2stem+'] == '' or args['mod-VS2stem+'] == nil then args['mod-VS2stem+'] = args['mod-VS2stem'] end
if args['mod-NP2stem+'] == '' or args['mod-NP2stem+'] == nil then args['mod-NP2stem+'] = args['mod-NP2stem'] end
if args['mod-GP2stem+'] == '' or args['mod-GP2stem+'] == nil then args['mod-GP2stem+'] = args['mod-GP2stem'] end
if args['mod-DP2stem+'] == '' or args['mod-DP2stem+'] == nil then args['mod-DP2stem+'] = args['mod-DP2stem'] end
if args['mod-AP2stem+'] == '' or args['mod-AP2stem+'] == nil then args['mod-AP2stem+'] = args['mod-AP2stem'] end
if args['mod-VP2stem+'] == '' or args['mod-VP2stem+'] == nil then args['mod-VP2stem+'] = args['mod-VP2stem'] end
if args['mod-ND2stem+'] == '' or args['mod-ND2stem+'] == nil then args['mod-ND2stem+'] = args['mod-ND2stem'] end
if args['mod-GD2stem+'] == '' or args['mod-GD2stem+'] == nil then args['mod-GD2stem+'] = args['mod-GD2stem'] end

-- STEM prosody - no prosody for editors
if args['NSstem+'] == '' or args['NSstem+'] == nil then args['NSstem+'] = args['NSstem'] end
if args['GSstem+'] == '' or args['GSstem+'] == nil then args['GSstem+'] = args['GSstem'] end
if args['DSstem+'] == '' or args['DSstem+'] == nil then args['DSstem+'] = args['DSstem'] end
if args['ASstem+'] == '' or args['ASstem+'] == nil then args['ASstem+'] = args['ASstem'] end
if args['VSstem+'] == '' or args['VSstem+'] == nil then args['VSstem+'] = args['VSstem'] end
if args['NPstem+'] == '' or args['NPstem+'] == nil then args['NPstem+'] = args['NPstem'] end
if args['GPstem+'] == '' or args['GPstem+'] == nil then args['GPstem+'] = args['GPstem'] end
if args['DPstem+'] == '' or args['DPstem+'] == nil then args['DPstem+'] = args['DPstem'] end
if args['APstem+'] == '' or args['APstem+'] == nil then args['APstem+'] = args['APstem'] end
if args['VPstem+'] == '' or args['VPstem+'] == nil then args['VPstem+'] = args['VPstem'] end
if args['NDstem+'] == '' or args['NDstem+'] == nil then args['NDstem+'] = args['NDstem'] end
if args['GDstem+'] == '' or args['GDstem+'] == nil then args['GDstem+'] = args['GDstem'] end

if args['NS2stem+'] == '' or args['NS2stem+'] == nil then args['NS2stem+'] = args['NS2stem'] end
if args['GS2stem+'] == '' or args['GS2stem+'] == nil then args['GS2stem+'] = args['GS2stem'] end
if args['DS2stem+'] == '' or args['DS2stem+'] == nil then args['DS2stem+'] = args['DS2stem'] end
if args['AS2stem+'] == '' or args['AS2stem+'] == nil then args['AS2stem+'] = args['AS2stem'] end
if args['VS2stem+'] == '' or args['VS2stem+'] == nil then args['VS2stem+'] = args['VS2stem'] end
if args['NP2stem+'] == '' or args['NP2stem+'] == nil then args['NP2stem+'] = args['NP2stem'] end
if args['GP2stem+'] == '' or args['GP2stem+'] == nil then args['GP2stem+'] = args['GP2stem'] end
if args['DP2stem+'] == '' or args['DP2stem+'] == nil then args['DP2stem+'] = args['DP2stem'] end
if args['AP2stem+'] == '' or args['AP2stem+'] == nil then args['AP2stem+'] = args['AP2stem'] end
if args['VP2stem+'] == '' or args['VP2stem+'] == nil then args['VP2stem+'] = args['VP2stem'] end
if args['ND2stem+'] == '' or args['ND2stem+'] == nil then args['ND2stem+'] = args['ND2stem'] end
if args['GD2stem+'] == '' or args['GD2stem+'] == nil then args['GD2stem+'] = args['GD2stem'] end

-- ENDINGS PROSODY
-- ENDINGS prosody - no prosody @modules
if args['mod-NSsuf+'] == '' or args['mod-NSsuf+'] == nil then args['mod-NSsuf+'] = args['mod-NSsuf'] end
if args['mod-GSsuf+'] == '' or args['mod-GSsuf+'] == nil then args['mod-GSsuf+'] = args['mod-GSsuf'] end
if args['mod-DSsuf+'] == '' or args['mod-DSsuf+'] == nil then args['mod-DSsuf+'] = args['mod-DSsuf'] end
if args['mod-ASsuf+'] == '' or args['mod-ASsuf+'] == nil then args['mod-ASsuf+'] = args['mod-ASsuf'] end
if args['mod-VSsuf+'] == '' or args['mod-VSsuf+'] == nil then args['mod-VSsuf+'] = args['mod-VSsuf'] end
if args['mod-NPsuf+'] == '' or args['mod-NPsuf+'] == nil then args['mod-NPsuf+'] = args['mod-NPsuf'] end
if args['mod-GPsuf+'] == '' or args['mod-GPsuf+'] == nil then args['mod-GPsuf+'] = args['mod-GPsuf'] end
if args['mod-DPsuf+'] == '' or args['mod-DPsuf+'] == nil then args['mod-DPsuf+'] = args['mod-DPsuf'] end
if args['mod-APsuf+'] == '' or args['mod-APsuf+'] == nil then args['mod-APsuf+'] = args['mod-APsuf'] end
if args['mod-VPsuf+'] == '' or args['mod-VPsuf+'] == nil then args['mod-VPsuf+'] = args['mod-VPsuf'] end
if args['mod-NDsuf+'] == '' or args['mod-NDsuf+'] == nil then args['mod-NDsuf+'] = args['mod-NDsuf'] end
if args['mod-GDsuf+'] == '' or args['mod-GDsuf+'] == nil then args['mod-GDsuf+'] = args['mod-GDsuf'] end

if args['mod-NS2suf+'] == '' or args['mod-NS2suf+'] == nil then args['mod-NS2suf+'] = args['mod-NS2suf'] end
if args['mod-GS2suf+'] == '' or args['mod-GS2suf+'] == nil then args['mod-GS2suf+'] = args['mod-GS2suf'] end
if args['mod-DS2suf+'] == '' or args['mod-DS2suf+'] == nil then args['mod-DS2suf+'] = args['mod-DS2suf'] end
if args['mod-AS2suf+'] == '' or args['mod-AS2suf+'] == nil then args['mod-AS2suf+'] = args['mod-AS2suf'] end
if args['mod-VS2suf+'] == '' or args['mod-VS2suf+'] == nil then args['mod-VS2suf+'] = args['mod-VS2suf'] end
if args['mod-NP2suf+'] == '' or args['mod-NP2suf+'] == nil then args['mod-NP2suf+'] = args['mod-NP2suf'] end
if args['mod-GP2suf+'] == '' or args['mod-GP2suf+'] == nil then args['mod-GP2suf+'] = args['mod-GP2suf'] end
if args['mod-DP2suf+'] == '' or args['mod-DP2suf+'] == nil then args['mod-DP2suf+'] = args['mod-DP2suf'] end
if args['mod-AP2suf+'] == '' or args['mod-AP2suf+'] == nil then args['mod-AP2suf+'] = args['mod-AP2suf'] end
if args['mod-VP2suf+'] == '' or args['mod-VP2suf+'] == nil then args['mod-VP2suf+'] = args['mod-VP2suf'] end
if args['mod-ND2suf+'] == '' or args['mod-ND2suf+'] == nil then args['mod-ND2suf+'] = args['mod-ND2suf'] end
if args['mod-GD2suf+'] == '' or args['mod-GD2suf+'] == nil then args['mod-GD2suf+'] = args['mod-GD2suf'] end

-- ENDINGS prosody - no prosody for editors
if args['NSsuf+'] == '' or args['NSsuf+'] == nil then args['NSsuf+'] = args['NSsuf'] end
if args['GSsuf+'] == '' or args['GSsuf+'] == nil then args['GSsuf+'] = args['GSsuf'] end
if args['DSsuf+'] == '' or args['DSsuf+'] == nil then args['DSsuf+'] = args['DSsuf'] end
if args['ASsuf+'] == '' or args['ASsuf+'] == nil then args['ASsuf+'] = args['ASsuf'] end
if args['VSsuf+'] == '' or args['VSsuf+'] == nil then args['VSsuf+'] = args['VSsuf'] end
if args['NPsuf+'] == '' or args['NPsuf+'] == nil then args['NPsuf+'] = args['NPsuf'] end
if args['GPsuf+'] == '' or args['GPsuf+'] == nil then args['GPsuf+'] = args['GPsuf'] end
if args['DPsuf+'] == '' or args['DPsuf+'] == nil then args['DPsuf+'] = args['DPsuf'] end
if args['APsuf+'] == '' or args['APsuf+'] == nil then args['APsuf+'] = args['APsuf'] end
if args['VPsuf+'] == '' or args['VPsuf+'] == nil then args['VPsuf+'] = args['VPsuf'] end
if args['NDsuf+'] == '' or args['NDsuf+'] == nil then args['NDsuf+'] = args['NDsuf'] end
if args['GDsuf+'] == '' or args['GDsuf+'] == nil then args['GDsuf+'] = args['GDsuf'] end

if args['NS2suf+'] == '' or args['NS2suf+'] == nil then args['NS2suf+'] = args['NS2suf'] end
if args['GS2suf+'] == '' or args['GS2suf+'] == nil then args['GS2suf+'] = args['GS2suf'] end
if args['DS2suf+'] == '' or args['DS2suf+'] == nil then args['DS2suf+'] = args['DS2suf'] end
if args['AS2suf+'] == '' or args['AS2suf+'] == nil then args['AS2suf+'] = args['AS2suf'] end
if args['VS2suf+'] == '' or args['VS2suf+'] == nil then args['VS2suf+'] = args['VS2suf'] end
if args['NP2suf+'] == '' or args['NP2suf+'] == nil then args['NP2suf+'] = args['NP2suf'] end
if args['GP2suf+'] == '' or args['GP2suf+'] == nil then args['GP2suf+'] = args['GP2suf'] end
if args['DP2suf+'] == '' or args['DP2suf+'] == nil then args['DP2suf+'] = args['DP2suf'] end
if args['AP2suf+'] == '' or args['AP2suf+'] == nil then args['AP2suf+'] = args['AP2suf'] end
if args['VP2suf+'] == '' or args['VP2suf+'] == nil then args['VP2suf+'] = args['VP2suf'] end
if args['ND2suf+'] == '' or args['ND2suf+'] == nil then args['ND2suf+'] = args['ND2suf'] end
if args['GD2suf+'] == '' or args['GD2suf+'] == nil then args['GD2suf+'] = args['GD2suf'] end


-- ================================  TRANSLITERATIONS have templates {{xlit, needing preprocessing.
-- #tr transliterations @modules
	args['mod-NStr'] = args['mod-NStr'] or ''	args['mod-GStr'] = args['mod-GStr'] or ''	args['mod-DStr'] = args['mod-DStr'] or ''	
	args['mod-AStr'] = args['mod-AStr'] or ''	args['mod-VStr'] = args['mod-VStr'] or ''
	args['mod-NPtr'] = args['mod-NPtr'] or ''	args['mod-GPtr'] = args['mod-GPtr'] or ''	args['mod-DPtr'] = args['mod-DPtr'] or ''	
	args['mod-APtr'] = args['mod-APtr'] or ''	args['mod-VPtr'] = args['mod-VPtr'] or ''
	args['mod-NDtr'] = args['mod-NDtr'] or ''	args['mod-GDtr'] = args['mod-GDtr'] or ''
	-- second-line transliterations
	args['mod-NS2tr'] = args['mod-NS2tr'] or ''	args['mod-GS2tr'] = args['mod-GS2tr'] or ''	args['mod-DS2tr'] = args['mod-DS2tr'] or ''	
	args['mod-AS2tr'] = args['mod-AS2tr'] or ''	args['mod-VS2tr'] = args['mod-VS2tr'] or ''
	args['mod-NP2tr'] = args['mod-NP2tr'] or ''	args['mod-GP2tr'] = args['mod-GP2tr'] or ''	args['mod-DP2tr'] = args['mod-DP2tr'] or ''	
	args['mod-AP2tr'] = args['mod-AP2tr'] or ''	args['mod-VP2tr'] = args['mod-VP2tr'] or ''
	args['mod-ND2tr'] = args['mod-ND2tr'] or ''	args['mod-GD2tr'] = args['mod-GD2tr'] or ''
-- transliterations for editors
-- is this needed?
	args['NStr'] = args['NStr'] or ''	args['GStr'] = args['GStr'] or ''	args['DStr'] = args['DStr'] or ''	
	args['AStr'] = args['AStr'] or ''	args['VStr'] = args['VStr'] or ''
	args['NPtr'] = args['NPtr'] or ''	args['GPtr'] = args['GPtr'] or ''	args['DPtr'] = args['DPtr'] or ''	
	args['APtr'] = args['APtr'] or ''	args['VPtr'] = args['VPtr'] or ''
	args['NDtr'] = args['NDtr'] or ''	args['GDtr'] = args['GDtr'] or ''
	-- second-line transliterations
	args['NS2tr'] = args['NS2tr'] or ''	args['GS2tr'] = args['GS2tr'] or ''	args['DS2tr'] = args['DS2tr'] or ''	
	args['AS2tr'] = args['AS2tr'] or ''	args['VS2tr'] = args['VS2tr'] or ''
	args['NP2tr'] = args['NP2tr'] or ''	args['GP2tr'] = args['GP2tr'] or ''	args['DP2tr'] = args['DP2tr'] or ''	
	args['AP2tr'] = args['AP2tr'] or ''	args['VP2tr'] = args['VP2tr'] or ''
	args['ND2tr'] = args['ND2tr'] or ''	args['GD2tr'] = args['GD2tr'] or ''
	-- no column2 words

-- is this needed?
-- OVERRIDE TRANSLITERATIONS mod- (if the editor writes a XXtr, it overrides the function's mod-XXtr)
	if args['NStr'] ~= '' and args['NStr'] ~= nil then args['mod-NStr'] = args['NStr'] end
	if args['GStr'] ~= '' and args['GStr'] ~= nil then args['mod-GStr'] = args['GStr'] end
	if args['DStr'] ~= '' and args['DStr'] ~= nil then args['mod-DStr'] = args['DStr'] end
	if args['AStr'] ~= '' and args['AStr'] ~= nil then args['mod-AStr'] = args['AStr'] end
	if args['VStr'] ~= '' and args['VStr'] ~= nil then args['mod-VStr'] = args['VStr'] end
	if args['NPtr'] ~= '' and args['NPtr'] ~= nil then args['mod-NPtr'] = args['NPtr'] end
	if args['GPtr'] ~= '' and args['GPtr'] ~= nil then args['mod-GPtr'] = args['GPtr'] end
	if args['DPtr'] ~= '' and args['DPtr'] ~= nil then args['mod-DPtr'] = args['DPtr'] end
	if args['APtr'] ~= '' and args['APtr'] ~= nil then args['mod-APtr'] = args['APtr'] end
	if args['VPtr'] ~= '' and args['VPtr'] ~= nil then args['mod-VPtr'] = args['VPtr'] end
	if args['NDtr'] ~= '' and args['NDtr'] ~= nil then args['mod-NDtr'] = args['NDtr'] end
	if args['GDtr'] ~= '' and args['GDtr'] ~= nil then args['mod-GDtr'] = args['GDtr'] end
	-- second-line transliterations OVERRIDE mod-
	if args['NS2tr'] ~= '' and args['NS2tr'] ~= nil then args['mod-NS2tr'] = args['NS2tr'] end
	if args['GS2tr'] ~= '' and args['GS2tr'] ~= nil then args['mod-GS2tr'] = args['GS2tr'] end
	if args['DS2tr'] ~= '' and args['DS2tr'] ~= nil then args['mod-DS2tr'] = args['DS2tr'] end
	if args['AS2tr'] ~= '' and args['AS2tr'] ~= nil then args['mod-AS2tr'] = args['AS2tr'] end
	if args['VS2tr'] ~= '' and args['VS2tr'] ~= nil then args['mod-VS2tr'] = args['VS2tr'] end
	if args['NP2tr'] ~= '' and args['NP2tr'] ~= nil then args['mod-NP2tr'] = args['NP2tr'] end
	if args['GP2tr'] ~= '' and args['GP2tr'] ~= nil then args['mod-GP2tr'] = args['GP2tr'] end
	if args['DP2tr'] ~= '' and args['DP2tr'] ~= nil then args['mod-DP2tr'] = args['DP2tr'] end
	if args['AP2tr'] ~= '' and args['AP2tr'] ~= nil then args['mod-AP2tr'] = args['AP2tr'] end
	if args['VP2tr'] ~= '' and args['VP2tr'] ~= nil then args['mod-VP2tr'] = args['VP2tr'] end
	if args['ND2tr'] ~= '' and args['ND2tr'] ~= nil then args['mod-ND2tr'] = args['ND2tr'] end
	if args['GD2tr'] ~= '' and args['GD2tr'] ~= nil then args['mod-GD2tr'] = args['GD2tr'] end
	-- no column2 

-- ================= TEXT AFTER WORD
-- #text @modules & for editors
    args['mod-NStxt'] = args['mod-NStxt'] or ''		args['NStxt'] = args['NStxt'] or ''
    if args['NStxt'] ~= '' and args['NStxt'] ~= nil then args['mod-NStxt'] = args['NStxt'] end
    args['mod-GStxt'] = args['mod-GStxt'] or ''		args['GStxt'] = args['GStxt'] or ''
    if args['GStxt'] ~= '' and args['GStxt'] ~= nil then args['mod-GStxt'] = args['GStxt'] end
    args['mod-DStxt'] = args['mod-DStxt'] or ''		args['DStxt'] = args['DStxt'] or ''
    if args['DStxt'] ~= '' and args['DStxt'] ~= nil then args['mod-DStxt'] = args['DStxt'] end
    args['mod-AStxt'] = args['mod-AStxt'] or ''		args['AStxt'] = args['AStxt'] or ''
    if args['AStxt'] ~= '' and args['AStxt'] ~= nil then args['mod-AStxt'] = args['AStxt'] end
    args['mod-VStxt'] = args['mod-VStxt'] or ''		args['VStxt'] = args['VStxt'] or ''
    if args['VStxt'] ~= '' and args['VStxt'] ~= nil then args['mod-VStxt'] = args['VStxt'] end
    args['mod-NPtxt'] = args['mod-NPtxt'] or ''		args['NPtxt'] = args['NPtxt'] or ''
    if args['NPtxt'] ~= '' and args['NPtxt'] ~= nil then args['mod-NPtxt'] = args['NPtxt'] end
    args['mod-GPtxt'] = args['mod-GPtxt'] or ''		args['GPtxt'] = args['GPtxt'] or ''
    if args['GPtxt'] ~= '' and args['GPtxt'] ~= nil then args['mod-GPtxt'] = args['GPtxt'] end
    args['mod-DPtxt'] = args['mod-DPtxt'] or ''		args['DPtxt'] = args['DPtxt'] or ''
    if args['DPtxt'] ~= '' and args['DPtxt'] ~= nil then args['mod-DPtxt'] = args['DPtxt'] end
    args['mod-APtxt'] = args['mod-APtxt'] or ''		args['APtxt'] = args['APtxt'] or ''
    if args['APtxt'] ~= '' and args['APtxt'] ~= nil then args['mod-APtxt'] = args['APtxt'] end
    args['mod-VPtxt'] = args['mod-VPtxt'] or ''		args['VPtxt'] = args['VPtxt'] or ''
    if args['VPtxt'] ~= '' and args['VPtxt'] ~= nil then args['mod-VPtxt'] = args['VPtxt'] end
    args['mod-NDtxt'] = args['mod-NDtxt'] or ''		args['NDtxt'] = args['NDtxt'] or ''
    if args['NDtxt'] ~= '' and args['NDtxt'] ~= nil then args['mod-NDtxt'] = args['NDtxt'] end
    args['mod-GDtxt'] = args['mod-GDtxt'] or ''		args['GDtxt'] = args['GDtxt'] or ''
    if args['GDtxt'] ~= '' and args['GDtxt'] ~= nil then args['mod-GDtxt'] = args['GDtxt'] end
	-- text after second-line words   
    args['mod-NS2txt'] = args['mod-NS2txt'] or ''		args['NS2txt'] = args['NS2txt'] or ''
    if args['NS2txt'] ~= '' and args['NS2txt'] ~= nil then args['mod-NS2txt'] = args['NS2txt'] end
    args['mod-GS2txt'] = args['mod-GS2txt'] or ''		args['GS2txt'] = args['GS2txt'] or ''
    if args['GS2txt'] ~= '' and args['GS2txt'] ~= nil then args['mod-GS2txt'] = args['GS2txt'] end
    args['mod-DS2txt'] = args['mod-DS2txt'] or ''		args['DS2txt'] = args['DS2txt'] or ''
    if args['DS2txt'] ~= '' and args['DS2txt'] ~= nil then args['mod-DS2txt'] = args['DS2txt'] end
    args['mod-AS2txt'] = args['mod-AS2txt'] or ''		args['AS2txt'] = args['AS2txt'] or ''
    if args['AS2txt'] ~= '' and args['AS2txt'] ~= nil then args['mod-AS2txt'] = args['AS2txt'] end
    args['mod-VS2txt'] = args['mod-VS2txt'] or ''		args['VS2txt'] = args['VS2txt'] or ''
    if args['VS2txt'] ~= '' and args['VS2txt'] ~= nil then args['mod-VS2txt'] = args['VS2txt'] end
    args['mod-NP2txt'] = args['mod-NP2txt'] or ''		args['NP2txt'] = args['NP2txt'] or ''
    if args['NP2txt'] ~= '' and args['NP2txt'] ~= nil then args['mod-NP2txt'] = args['NP2txt'] end
    args['mod-GP2txt'] = args['mod-GP2txt'] or ''		args['GP2txt'] = args['GP2txt'] or ''
    if args['GP2txt'] ~= '' and args['GP2txt'] ~= nil then args['mod-GP2txt'] = args['GP2txt'] end
    args['mod-DP2txt'] = args['mod-DP2txt'] or ''		args['DP2txt'] = args['DP2txt'] or ''
    if args['DP2txt'] ~= '' and args['DP2txt'] ~= nil then args['mod-DP2txt'] = args['DP2txt'] end
    args['mod-AP2txt'] = args['mod-AP2txt'] or ''		args['AP2txt'] = args['AP2txt'] or ''
    if args['AP2txt'] ~= '' and args['AP2txt'] ~= nil then args['mod-AP2txt'] = args['AP2txt'] end
    args['mod-VP2txt'] = args['mod-VP2txt'] or ''		args['VP2txt'] = args['VP2txt'] or ''
    if args['VP2txt'] ~= '' and args['VP2txt'] ~= nil then args['mod-VP2txt'] = args['VP2txt'] end
    args['mod-ND2txt'] = args['mod-ND2txt'] or ''		args['ND2txt'] = args['ND2txt'] or ''
    if args['ND2txt'] ~= '' and args['ND2txt'] ~= nil then args['mod-ND2txt'] = args['ND2txt'] end
    args['mod-GD2txt'] = args['mod-GD2txt'] or ''		args['GD2txt'] = args['GD2txt'] or ''
    if args['GD2txt'] ~= '' and args['GD2txt'] ~= nil then args['mod-GD2txt'] = args['GD2txt'] end

-- ================= TEXT BEFORE WORD
-- #1text @modules & for editors
    args['mod-NStxt1'] = args['mod-NStxt1'] or ''		args['NStxt1'] = args['NStxt1'] or ''
    if args['NStxt1'] ~= '' and args['NStxt1'] ~= nil then args['mod-NStxt1'] = args['NStxt1'] end
    args['mod-GStxt1'] = args['mod-GStxt1'] or ''		args['GStxt1'] = args['GStxt1'] or ''
    if args['GStxt1'] ~= '' and args['GStxt1'] ~= nil then args['mod-GStxt1'] = args['GStxt1'] end
    args['mod-DStxt1'] = args['mod-DStxt1'] or ''		args['DStxt1'] = args['DStxt1'] or ''
    if args['DStxt1'] ~= '' and args['DStxt1'] ~= nil then args['mod-DStxt1'] = args['DStxt1'] end
    args['mod-AStxt1'] = args['mod-AStxt1'] or ''		args['AStxt1'] = args['AStxt1'] or ''
    if args['AStxt1'] ~= '' and args['AStxt1'] ~= nil then args['mod-AStxt1'] = args['AStxt1'] end
    args['mod-VStxt1'] = args['mod-VStxt1'] or ''		args['VStxt1'] = args['VStxt1'] or ''
    if args['VStxt1'] ~= '' and args['VStxt1'] ~= nil then args['mod-VStxt1'] = args['VStxt1'] end
    args['mod-NPtxt1'] = args['mod-NPtxt1'] or ''		args['NPtxt1'] = args['NPtxt1'] or ''
    if args['NPtxt1'] ~= '' and args['NPtxt1'] ~= nil then args['mod-NPtxt1'] = args['NPtxt1'] end
    args['mod-GPtxt1'] = args['mod-GPtxt1'] or ''		args['GPtxt1'] = args['GPtxt1'] or ''
    if args['GPtxt1'] ~= '' and args['GPtxt1'] ~= nil then args['mod-GPtxt1'] = args['GPtxt1'] end
    args['mod-DPtxt1'] = args['mod-DPtxt1'] or ''		args['DPtxt1'] = args['DPtxt1'] or ''
    if args['DPtxt1'] ~= '' and args['DPtxt1'] ~= nil then args['mod-DPtxt1'] = args['DPtxt1'] end
    args['mod-APtxt1'] = args['mod-APtxt1'] or ''		args['APtxt1'] = args['APtxt1'] or ''
    if args['APtxt1'] ~= '' and args['APtxt1'] ~= nil then args['mod-APtxt1'] = args['APtxt1'] end
    args['mod-VPtxt1'] = args['mod-VPtxt1'] or ''		args['VPtxt1'] = args['VPtxt1'] or ''
    if args['VPtxt1'] ~= '' and args['VPtxt1'] ~= nil then args['mod-VPtxt1'] = args['VPtxt1'] end
    args['mod-NDtxt1'] = args['mod-NDtxt1'] or ''		args['NDtxt1'] = args['NDtxt1'] or ''
    if args['NDtxt1'] ~= '' and args['NDtxt1'] ~= nil then args['mod-NDtxt1'] = args['NDtxt1'] end
    args['mod-GDtxt1'] = args['mod-GDtxt1'] or ''		args['GDtxt1'] = args['GDtxt1'] or ''
    if args['GDtxt1'] ~= '' and args['GDtxt1'] ~= nil then args['mod-GDtxt1'] = args['GDtxt1'] end
	-- text before second-line words
    args['mod-NS2txt1'] = args['mod-NS2txt1'] or ''		args['NS2txt1'] = args['NS2txt1'] or ''
    if args['NS2txt1'] ~= '' and args['NS2txt1'] ~= nil then args['mod-NS2txt1'] = args['NS2txt1'] end
    args['mod-GS2txt1'] = args['mod-GS2txt1'] or ''		args['GS2txt1'] = args['GS2txt1'] or ''
    if args['GS2txt1'] ~= '' and args['GS2txt1'] ~= nil then args['mod-GS2txt1'] = args['GS2txt1'] end
    args['mod-DS2txt1'] = args['mod-DS2txt1'] or ''		args['DS2txt1'] = args['DS2txt1'] or ''
    if args['DS2txt1'] ~= '' and args['DS2txt1'] ~= nil then args['mod-DS2txt1'] = args['DS2txt1'] end
    args['mod-AS2txt1'] = args['mod-AS2txt1'] or ''		args['AS2txt1'] = args['AS2txt1'] or ''
    if args['AS2txt1'] ~= '' and args['AS2txt1'] ~= nil then args['mod-AS2txt1'] = args['AS2txt1'] end
    args['mod-VS2txt1'] = args['mod-VS2txt1'] or ''		args['VS2txt1'] = args['VS2txt1'] or ''
    if args['VS2txt1'] ~= '' and args['VS2txt1'] ~= nil then args['mod-VS2txt1'] = args['VS2txt1'] end
    args['mod-NP2txt1'] = args['mod-NP2txt1'] or ''		args['NP2txt1'] = args['NP2txt1'] or ''
    if args['NP2txt1'] ~= '' and args['NP2txt1'] ~= nil then args['mod-NP2txt1'] = args['NP2txt1'] end
    args['mod-GP2txt1'] = args['mod-GP2txt1'] or ''		args['GP2txt1'] = args['GP2txt1'] or ''
    if args['GP2txt1'] ~= '' and args['GP2txt1'] ~= nil then args['mod-GP2txt1'] = args['GP2txt1'] end
    args['mod-DP2txt1'] = args['mod-DP2txt1'] or ''		args['DP2txt1'] = args['DP2txt1'] or ''
    if args['DP2txt1'] ~= '' and args['DP2txt1'] ~= nil then args['mod-DP2txt1'] = args['DP2txt1'] end
    args['mod-AP2txt1'] = args['mod-AP2txt1'] or ''		args['AP2txt1'] = args['AP2txt1'] or ''
    if args['AP2txt1'] ~= '' and args['AP2txt1'] ~= nil then args['mod-AP2txt1'] = args['AP2txt1'] end
    args['mod-VP2txt1'] = args['mod-VP2txt1'] or ''		args['VP2txt1'] = args['VP2txt1'] or ''
    if args['VP2txt1'] ~= '' and args['VP2txt1'] ~= nil then args['mod-VP2txt1'] = args['VP2txt1'] end
    args['mod-ND2txt1'] = args['mod-ND2txt1'] or ''		args['ND2txt1'] = args['ND2txt1'] or ''
    if args['ND2txt1'] ~= '' and args['ND2txt1'] ~= nil then args['mod-ND2txt1'] = args['ND2txt1'] end
    args['mod-GD2txt1'] = args['mod-GD2txt1'] or ''		args['GD2txt1'] = args['GD2txt1'] or ''
    if args['GD2txt1'] ~= '' and args['GD2txt1'] ~= nil then args['mod-GD2txt1'] = args['GD2txt1'] end



---------------------------------------------------------------------------
-- ============== BUILD CASES ============== --
---------------------------------------------------------------------------
--[=[
	-- default stem
	if args['mod-NSstem'] == '' or args['mod-NSstem'] == nil then args['mod-NSstem'] = stem["s"] else args['mod-NSstem'] = args['mod-NSstem'] end
	if args['mod-NS2stem'] == '' or args['mod-NS2stem'] == nil then args['mod-NS2stem'] = stem["s"] else args['mod-NS2stem'] = args['mod-NS2stem'] end
	-- first word
	if args['mod-NSsuf'] ~= '-' and args['mod-NSsuf'] ~= '0' and args['mod-NSsuf'] ~= '' and args['mod-NSsuf'] ~= nil then
		args['mod-NS'] = args['mod-NStxt1'] .. args['common1']
		.. create_link((args['mod-NSstem'] .. args['mod-NSsuf']), (stem_color(args['mod-NSstem+']) .. ending_color(args['mod-NSsuf+']))) .. args['mod-NStxt']
	-- zero ending
	elseif args['mod-NSsuf'] == '0' then
		args['mod-NS'] = args['mod-NStxt1'] .. args['common1'] .. create_link((args['mod-NSstem']), (stem_color(args['mod-NSstem+']))) .. args['mod-NStxt']
   	elseif args['mod-NSsuf'] == '-' then
   		args['mod-NS'] = args['mod-NStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NStxt']
   	end
	-- second line at new line
	if args['mod-NS2suf'] ~= '-' and args['mod-NS2suf'] ~= '0' and args['mod-NS2suf'] ~= '' and args['mod-NS2suf'] ~= nil then
		if args['mod-NS2stem'] == '' or args['mod-NS2stem'] == nil then args['mod-NS2stem'] = args['mod-NSstem'] end
		args['mod-NS2'] = br .. args['mod-NS2txt'] .. args['common1'] 
		.. create_link((args['mod-NS2stem'] .. args['mod-NS2suf']), (stem_color(args['mod-NS2stem+']) .. ending_color(args['mod-NS2suf+']))) .. args['mod-NStxt']
	-- zero ending -- check ἔαρ
	elseif args['mod-NS2suf'] == "0" then
		args['mod-NS2'] = br .. args['mod-NS2txt1'] .. args['common1'] 
		.. create_link((args['mod-NS2stem']), (stem_color(args['mod-NS2stem+']))) .. args['mod-NStxt']
   	elseif args['mod-NS2suf'] == '-' then
   		args['mod-NS'] = br .. args['mod-NS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NS2txt']
   	end
-- for editors
	-- default stem
	if args['NSstem'] == '' or args['NSstem'] == nil then args['NSstem'] = stem["s"] else args['NSstem'] = args['NSstem'] end
	if args['NS2stem'] == '' or args['NS2stem'] == nil then args['NS2stem'] = stem["s"] else args['NS2stem'] = args['NS2stem'] end
	-- first word
	if args['NSsuf'] ~= '-' and args['NSsuf'] ~= '0' and args['NSsuf'] ~= '' and args['NSsuf'] ~= nil then
		args['NS'] = args['NStxt1'] .. args['common1'] 
		.. create_link((args['NSstem'] .. args['NSsuf']), (stem_color(args['NSstem+']) .. ending_color(args['NSsuf+']))) .. args['NStxt']
	-- zero ending
	elseif args['NSsuf'] == '0' then
		args['NS'] = args['NStxt1'] .. args['common1'] .. create_link((args['NSstem']), (stem_color(args['NSstem+']))) .. args['NStxt']
   	elseif args['NSsuf'] == '-' then
   		args['NS'] = args['NStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['NStxt']
   	end
	-- second line
	if args['NS2suf'] ~= '-' and args['NS2suf'] ~= '0' and args['NS2suf'] ~= '' and args['NS2suf'] ~= nil then
		if args['NS2stem'] == '' or args['NS2stem'] == nil then args['NS2stem'] = args['NSstem'] end
		args['NS2'] = br .. args['NS2txt1'] .. args['common1'] 
		.. create_link((args['NS2stem'] .. args['NS2suf']), (stem_color(args['NS2stem+']) .. ending_color(args['NS2suf+']))) .. args['NS2txt']
	-- zero ending
	elseif args['NS2suf'] == '0' then
		args['NS2'] = br .. args['NS2txt1'] .. args['common1'] 
		.. create_link((args['NS2stem']), (stem_color(args['NS2stem+']))) .. args['NS2txt']
   	elseif args['NS2suf'] == '-' then
   		args['NS2'] = br .. args['NS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['NS2txt']
   	end
-- option
   	if  args['NS'] ~= '' and args['NS'] ~= nil then
   		args['NScell'] =  args['NS'] .. args['NS2']  
   	else
   		if args['NS2suf'] ~= '' and args['NS2suf'] ~= nil then
   			args['NScell'] = args['mod-NS'] .. args['NS2']
   		else
			args['NScell'] = args['mod-NS'] .. args['mod-NS2'] 
		end
	end  
]=]--

-- #NS nominative singular
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-NS'] ~= '-' and args['mod-NS'] ~= '' and args['mod-NS'] ~= nil)
	-- of just write the suffix
	or (args['mod-NSsuf'] ~= '-' and args['mod-NSsuf'] ~= '0' and args['mod-NSsuf'] ~= '' and args['mod-NSsuf'] ~= nil) then
		args['mod-NS'] = args['mod-NStxt1'] .. args['common1']
		.. create_link((args['mod-NSstem'] .. args['mod-NSsuf']), (stem_color(args['mod-NSstem+']) .. ending_color(args['mod-NSsuf+']))) .. args['common'] .. args['mod-NStxt']
	end
	-- zero ending
	if args['mod-NSsuf'] == '0' then
		args['mod-NS'] = args['mod-NStxt1'] .. args['common1'] .. create_link((args['mod-NSstem']), (stem_color(args['mod-NSstem+']))) .. args['common'] .. args['mod-NStxt']
	end
	-- dash (the article remains, unless aNS=- )
   	if args['mod-NS'] == '-' or args['mod-NSsuf'] == '-' then
   		args['mod-NS'] = args['mod-NStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NStxt']
   	end

	-- second line  (br default = at new line)
	if (args['mod-NS2'] ~= '-' and args['mod-NS2'] ~= '' and args['mod-NS2'] ~= nil)
	-- of just write the suffix
	or (args['mod-NS2suf'] ~= '-' and args['mod-NS2suf'] ~= '0' and args['mod-NS2suf'] ~= '' and args['mod-NS2suf'] ~= nil) then
		args['mod-NS2'] = br .. args['mod-NS2txt1'] .. args['common1']
		.. create_link((args['mod-NS2stem'] .. args['mod-NS2suf']), (stem_color(args['mod-NS2stem+']) .. ending_color(args['mod-NS2suf+']))) .. args['common'] .. args['mod-NS2txt']
	end
	-- zero ending
	if args['mod-NS2suf'] == '0' then
		args['mod-NS2'] = br.. args['mod-NS2txt1'] .. args['common1'] .. create_link((args['mod-NS2stem']), (stem_color(args['mod-NS2stem+']))) .. args['common'] .. args['mod-NS2txt']
	end
	-- dash (the article remains, unless aNS=- )
   	if args['mod-NS2'] == '-' or args['mod-NS2suf'] == '-' then
   		args['mod-NS2'] = br .. args['mod-NS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NS2txt']
   	end
args['NScell'] = ''
-- QUESTION whe do I need to repeat this here? it exists above
	if args['NS'] ~= '' and args['NS'] ~= nil then args['mod-NS'] = args['NS'] end
	if args['NS2'] ~= '' and args['NS2'] ~= nil then args['mod-NS2'] = args['NS2'] end
   	args['NScell'] = args['mod-NS'] .. args['mod-NS2']


-- #GS genitive singular
-- @modules (editor overrides without the suffix mod-)
	-- first line
	-- override the default stem -2 letters from end
	if (args['mod-GS'] ~= '-' and args['mod-GS'] ~= '' and args['mod-GS'] ~= nil)
	-- of just write the suffix
	or (args['mod-GSsuf'] ~= '-' and args['mod-GSsuf'] ~= '0' and args['mod-GSsuf'] ~= '' and args['mod-GSsuf'] ~= nil) then
		args['mod-GS'] = args['mod-GStxt1'] .. args['common1']
		.. create_link((args['mod-GSstem'] .. args['mod-GSsuf']), (stem_color(args['mod-GSstem+']) .. ending_color(args['mod-GSsuf+']))) .. args['common'] .. args['mod-GStxt']
	end
	-- zero ending
	if args['mod-GSsuf'] == '0' then
		args['mod-GS'] = args['mod-GStxt1'] .. args['common1'] .. create_link((args['mod-GSstem']), (stem_color(args['mod-GSstem+']))) .. args['common'] .. args['mod-GStxt']
	end
	-- dash (the article remains, unless aGS=- )
   	if args['mod-GS'] == '-' or args['mod-GSsuf'] == '-' then
   		args['mod-GS'] = args['mod-GStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GStxt']
   	end

	-- second line (br default = at new line)
	if (args['mod-GS2'] ~= '-' and args['mod-GS2'] ~= '' and args['mod-GS2'] ~= nil)
	-- of just write the suffix
	or (args['mod-GS2suf'] ~= '-' and args['mod-GS2suf'] ~= '0' and args['mod-GS2suf'] ~= '' and args['mod-GS2suf'] ~= nil) then
		args['mod-GS2'] = br .. args['mod-GS2txt1'] .. args['common1']
		.. create_link((args['mod-GS2stem'] .. args['mod-GS2suf']), (stem_color(args['mod-GS2stem+']) .. ending_color(args['mod-GS2suf+']))) .. args['common'] .. args['mod-GS2txt']
	end
	-- zero ending
	if args['mod-GS2suf'] == '0' then
		args['mod-GS2'] = br.. args['mod-GS2txt1'] .. args['common1'] .. create_link((args['mod-GS2stem']), (stem_color(args['mod-GS2stem+']))) .. args['common'] .. args['mod-GS2txt']
	end
	-- dash (the article remains, unless aGS=- )
   	if args['mod-GS2'] == '-' or args['mod-GS2suf'] == '-' then
   		args['mod-GS2'] = br .. args['mod-GS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GS2txt']
   	end
args['GScell'] = ''
	if args['GS'] ~= '' and args['GS'] ~= nil then args['mod-GS'] = args['GS'] end
	if args['GS2'] ~= '' and args['GS2'] ~= nil then args['mod-GS2'] = args['GS2'] end
	args['GScell'] = args['mod-GS'] .. args['mod-GS2']



-- #DS dative singular
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-DS'] ~= '-' and args['mod-DS'] ~= '' and args['mod-DS'] ~= nil)
	-- of just write the suffix
	or (args['mod-DSsuf'] ~= '-' and args['mod-DSsuf'] ~= '0' and args['mod-DSsuf'] ~= '' and args['mod-DSsuf'] ~= nil) then
		args['mod-DS'] = args['mod-DStxt1'] .. args['common1']
		.. create_link((args['mod-DSstem'] .. args['mod-DSsuf']), (stem_color(args['mod-DSstem+']) .. ending_color(args['mod-DSsuf+']))) .. args['common'] .. args['mod-DStxt']
	end
	-- zero ending
	if args['mod-DSsuf'] == '0' then
		args['mod-DS'] = args['mod-DStxt1'] .. args['common1'] .. create_link((args['mod-DSstem']), (stem_color(args['mod-DSstem+']))) .. args['common'] .. args['mod-DStxt']
	end
	-- dash (the article remains, unless aDS=- )
   	if args['mod-DS'] == '-' or args['mod-DSsuf'] == '-' then
   		args['mod-DS'] = args['mod-DStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-DStxt']
   	end
   	
	-- second line (br default = at new line)
	if (args['mod-DS2'] ~= '-' and args['mod-DS2'] ~= '' and args['mod-DS2'] ~= nil)
	-- of just write the suffix
	or (args['mod-DS2suf'] ~= '-' and args['mod-DS2suf'] ~= '0' and args['mod-DS2suf'] ~= '' and args['mod-DS2suf'] ~= nil) then
		args['mod-DS2'] = br .. args['mod-DS2txt1'] .. args['common1']
		.. create_link((args['mod-DS2stem'] .. args['mod-DS2suf']), (stem_color(args['mod-DS2stem+']) .. ending_color(args['mod-DS2suf+']))) .. args['common'] .. args['mod-DS2txt']
	end
	-- zero ending
	if args['mod-DS2suf'] == '0' then
		args['mod-DS2'] = br.. args['mod-DS2txt1'] .. args['common1'] .. create_link((args['mod-DS2stem']), (stem_color(args['mod-DS2stem+']))) .. args['common'] .. args['mod-DS2txt']
	end
	-- dash (the article remains, unless aDS=- )
   	if args['mod-DS2'] == '-' or args['mod-DS2suf'] == '-' then
   		args['mod-DS2'] = br .. args['mod-DS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-DS2txt']
   	end
args['DScell'] = ''
	if args['DS'] ~= '' and args['DS'] ~= nil then args['mod-DS'] = args['DS'] end
	if args['DS2'] ~= '' and args['DS2'] ~= nil then args['mod-DS2'] = args['DS2'] end
	args['DScell'] = args['mod-DS'] .. args['mod-DS2']

-- #AS accusative singular
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-AS'] ~= '-' and args['mod-AS'] ~= '' and args['mod-AS'] ~= nil)
	-- of just write the suffix
	or (args['mod-ASsuf'] ~= '-' and args['mod-ASsuf'] ~= '0' and args['mod-ASsuf'] ~= '' and args['mod-ASsuf'] ~= nil) then
		args['mod-AS'] = args['mod-AStxt1'] .. args['common1']
		.. create_link((args['mod-ASstem'] .. args['mod-ASsuf']), (stem_color(args['mod-ASstem+']) .. ending_color(args['mod-ASsuf+']))) .. args['common'] .. args['mod-AStxt']
	end
	-- zero ending
	if args['mod-ASsuf'] == '0' then
		args['mod-AS'] = args['mod-AStxt1'] .. args['common1'] .. create_link((args['mod-ASstem']), (stem_color(args['mod-ASstem+']))) .. args['common'] .. args['mod-AStxt']
	end
	-- dash (the article remains, unless aAS=- )
   	if args['mod-AS'] == '-' or args['mod-ASsuf'] == '-' then
   		args['mod-AS'] = args['mod-AStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-AStxt']
   	end
   	
	-- second line (br default = at new line)
	if (args['mod-AS2'] ~= '-' and args['mod-AS2'] ~= '' and args['mod-AS2'] ~= nil)
	-- of just write the suffix
	or (args['mod-AS2suf'] ~= '-' and args['mod-AS2suf'] ~= '0' and args['mod-AS2suf'] ~= '' and args['mod-AS2suf'] ~= nil) then
		args['mod-AS2'] = br .. args['mod-AS2txt1'] .. args['common1']
		.. create_link((args['mod-AS2stem'] .. args['mod-AS2suf']), (stem_color(args['mod-AS2stem+']) .. ending_color(args['mod-AS2suf+']))) .. args['common'] .. args['mod-AS2txt']
	end
	-- zero ending
	if args['mod-AS2suf'] == '0' then
		args['mod-AS2'] = br.. args['mod-AS2txt1'] .. args['common1'] .. create_link((args['mod-AS2stem']), (stem_color(args['mod-AS2stem+']))) .. args['common'] .. args['mod-AS2txt']
	end
	-- dash (the article remains, unless aAS=- )
   	if args['mod-AS2'] == '-' or args['mod-AS2suf'] == '-' then
   		args['mod-AS2'] = br .. args['mod-AS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-AS2txt']
   	end
args['AScell'] = ''
	if args['AS'] ~= '' and args['AS'] ~= nil then args['mod-AS'] = args['AS'] end
	if args['AS2'] ~= '' and args['AS2'] ~= nil then args['mod-AS2'] = args['AS2'] end
	args['AScell'] = args['mod-AS'] .. args['mod-AS2']

-- #VS vocative singular
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-VS'] ~= '-' and args['mod-VS'] ~= '' and args['mod-VS'] ~= nil)
	-- of just write the suffix
	or (args['mod-VSsuf'] ~= '-' and args['mod-VSsuf'] ~= '0' and args['mod-VSsuf'] ~= '' and args['mod-VSsuf'] ~= nil) then
		args['mod-VS'] = args['mod-VStxt1'] .. args['common1']
		.. create_link((args['mod-VSstem'] .. args['mod-VSsuf']), (stem_color(args['mod-VSstem+']) .. ending_color(args['mod-VSsuf+']))) .. args['common'] .. args['mod-VStxt']
	end
	-- zero ending
	if args['mod-VSsuf'] == '0' then
		args['mod-VS'] = args['mod-VStxt1'] .. args['common1'] .. create_link((args['mod-VSstem']), (stem_color(args['mod-VSstem+']))) .. args['common'] .. args['mod-VStxt']
	end
	-- dash (the article remains, unless aVS=- )
   	if args['mod-VS'] == '-' or args['mod-VSsuf'] == '-' then
   		args['mod-VS'] = args['mod-VStxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-VStxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-VS2'] ~= '-' and args['mod-VS2'] ~= '' and args['mod-VS2'] ~= nil)
	-- of just write the suffix
	or (args['mod-VS2suf'] ~= '-' and args['mod-VS2suf'] ~= '0' and args['mod-VS2suf'] ~= '' and args['mod-VS2suf'] ~= nil) then
		args['mod-VS2'] = br .. args['mod-VS2txt1'] .. args['common1']
		.. create_link((args['mod-VS2stem'] .. args['mod-VS2suf']), (stem_color(args['mod-VS2stem+']) .. ending_color(args['mod-VS2suf+']))) .. args['common'] .. args['mod-VS2txt']
	end
	-- zero ending
	if args['mod-VS2suf'] == '0' then
		args['mod-VS2'] = br.. args['mod-VS2txt1'] .. args['common1'] .. create_link((args['mod-VS2stem']), (stem_color(args['mod-VS2stem+']))) .. args['common'] .. args['mod-VS2txt']
	end
	-- dash (the article remains, unless aVS=- )
   	if args['mod-VS2'] == '-' or args['mod-VS2suf'] == '-' then
   		args['mod-VS2'] = br .. args['mod-VS2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-VS2txt']
   	end
args['VScell'] = ''
	if args['VS'] ~= '' and args['VS'] ~= nil then args['mod-VS'] = args['VS'] end
	if args['VS2'] ~= '' and args['VS2'] ~= nil then args['mod-VS2'] = args['VS2'] end
	args['VScell'] = args['mod-VS'] .. args['mod-VS2']


-- #NP NOMINATIVE PLURAL
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-NP'] ~= '-' and args['mod-NP'] ~= '' and args['mod-NP'] ~= nil)
	-- of just write the suffix
	or (args['mod-NPsuf'] ~= '-' and args['mod-NPsuf'] ~= '0' and args['mod-NPsuf'] ~= '' and args['mod-NPsuf'] ~= nil) then
		args['mod-NP'] = args['mod-NPtxt1'] .. args['common1']
		.. create_link((args['mod-NPstem'] .. args['mod-NPsuf']), (stem_color(args['mod-NPstem+']) .. ending_color(args['mod-NPsuf+']))) .. args['common'] .. args['mod-NPtxt']
	end
	-- zero ending
	if args['mod-NPsuf'] == '0' then
		args['mod-NP'] = args['mod-NPtxt1'] .. args['common1'] .. create_link((args['mod-NPstem']), (stem_color(args['mod-NPstem+']))) .. args['common'] .. args['mod-NPtxt']
	end
	-- dash (the article remains, unless aNP=- )
   	if args['mod-NP'] == '-' or args['mod-NPsuf'] == '-' then
   		args['mod-NP'] = args['mod-NPtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NPtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-NP2'] ~= '-' and args['mod-NP2'] ~= '' and args['mod-NP2'] ~= nil)
	-- of just write the suffix
	or (args['mod-NP2suf'] ~= '-' and args['mod-NP2suf'] ~= '0' and args['mod-NP2suf'] ~= '' and args['mod-NP2suf'] ~= nil) then
		args['mod-NP2'] = br .. args['mod-NP2txt1'] .. args['common1']
		.. create_link((args['mod-NP2stem'] .. args['mod-NP2suf']), (stem_color(args['mod-NP2stem+']) .. ending_color(args['mod-NP2suf+']))) .. args['common'] .. args['mod-NP2txt']
	end
	-- zero ending
	if args['mod-NP2suf'] == '0' then
		args['mod-NP2'] = br.. args['mod-NP2txt1'] .. args['common1'] .. create_link((args['mod-NP2stem']), (stem_color(args['mod-NP2stem+']))) .. args['common'] .. args['mod-NP2txt']
	end
	-- dash (the article remains, unless aNP=- )
   	if args['mod-NP2'] == '-' or args['mod-NP2suf'] == '-' then
   		args['mod-NP2'] = br .. args['mod-NP2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NP2txt']
   	end
args['NPcell'] = ''
	if args['NP'] ~= '' and args['NP'] ~= nil then args['mod-NP'] = args['NP'] end
	if args['NP2'] ~= '' and args['NP2'] ~= nil then args['mod-NP2'] = args['NP2'] end
	args['NPcell'] = args['mod-NP'] .. args['mod-NP2']



-- #GP GENITIVE PLURAL
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-GP'] ~= '-' and args['mod-GP'] ~= '' and args['mod-GP'] ~= nil)
	-- of just write the suffix
	or (args['mod-GPsuf'] ~= '-' and args['mod-GPsuf'] ~= '0' and args['mod-GPsuf'] ~= '' and args['mod-GPsuf'] ~= nil) then
		args['mod-GP'] = args['mod-GPtxt1'] .. args['common1']
		.. create_link((args['mod-GPstem'] .. args['mod-GPsuf']), (stem_color(args['mod-GPstem+']) .. ending_color(args['mod-GPsuf+']))) .. args['common'] .. args['mod-GPtxt']
	end
	-- zero ending
	if args['mod-GPsuf'] == '0' then
		args['mod-GP'] = args['mod-GPtxt1'] .. args['common1'] .. create_link((args['mod-GPstem']), (stem_color(args['mod-GPstem+']))) .. args['common'] .. args['mod-GPtxt']
	end
	-- dash (the article remains, unless aGP=- )
   	if args['mod-GP'] == '-' or args['mod-GPsuf'] == '-' then
   		args['mod-GP'] = args['mod-GPtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GPtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-GP2'] ~= '-' and args['mod-GP2'] ~= '' and args['mod-GP2'] ~= nil)
	-- of just write the suffix
	or (args['mod-GP2suf'] ~= '-' and args['mod-GP2suf'] ~= '0' and args['mod-GP2suf'] ~= '' and args['mod-GP2suf'] ~= nil) then
		args['mod-GP2'] = br .. args['mod-GP2txt1'] .. args['common1']
		.. create_link((args['mod-GP2stem'] .. args['mod-GP2suf']), (stem_color(args['mod-GP2stem+']) .. ending_color(args['mod-GP2suf+']))) .. args['common'] .. args['mod-GP2txt']
	end
	-- zero ending
	if args['mod-GP2suf'] == '0' then
		args['mod-GP2'] = br.. args['mod-GP2txt1'] .. args['common1'] .. create_link((args['mod-GP2stem']), (stem_color(args['mod-GP2stem+']))) .. args['common'] .. args['mod-GP2txt']
	end
	-- dash (the article remains, unless aGP=- )
   	if args['mod-GP2'] == '-' or args['mod-GP2suf'] == '-' then
   		args['mod-GP2'] = br .. args['mod-GP2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GP2txt']
   	end
args['GPcell'] = ''
	if args['GP'] ~= '' and args['GP'] ~= nil then args['mod-GP'] = args['GP'] end
	if args['GP2'] ~= '' and args['GP2'] ~= nil then args['mod-GP2'] = args['GP2'] end
	args['GPcell'] = args['mod-GP'] .. args['mod-GP2']


-- #DP DATIVE PLURAL plus novable nu - νυ εφελκυτικόν e.g. [[πατρίς]], double forms at [[καρίς]]
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-DP'] ~= '-' and args['mod-DP'] ~= '' and args['mod-DP'] ~= nil)
	-- of just write the suffix
	or (args['mod-DPsuf'] ~= '-' and args['mod-DPsuf'] ~= '0' and args['mod-DPsuf'] ~= '' and args['mod-DPsuf'] ~= nil) then
		if args['nu'] == '1' then
		args['mod-DP'] = args['mod-DPtxt1'] .. args['common1']
		.. create_link((args['mod-DPstem'] .. args['mod-DPsuf']), (stem_color(args['mod-DPstem+']) .. ending_color(args['mod-DPsuf+'])))
		.. create_link((args['mod-DPstem'] .. args['mod-DPsuf'] .. "ν"), (stem_color("&#40;") .. ending_color("ν") .. stem_color("&#41;"))) 
		.. args['common'] .. args['mod-DPtxt']
		else
		args['mod-DP'] = args['mod-DPtxt1'] .. args['common1']
		.. create_link((args['mod-DPstem'] .. args['mod-DPsuf']), (stem_color(args['mod-DPstem+']) .. ending_color(args['mod-DPsuf+']))) .. args['common'] .. args['mod-DPtxt']
		end
	end
	-- zero ending
	if args['mod-DPsuf'] == '0' then
		args['mod-DP'] = args['mod-DPtxt1'] .. args['common1'] .. create_link((args['mod-DPstem']), (stem_color(args['mod-DPstem+']))) .. args['common'] .. args['mod-DPtxt']
	end
	-- dash (the article remains, unless aDP=- )
   	if args['mod-DP'] == '-' or args['mod-DPsuf'] == '-' then
   		args['mod-DP'] = args['mod-DPtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-DPtxt']
   	end
	-- second line (br default = at new line) + movable nu option
	if (args['mod-DP2'] ~= '-' and args['mod-DP2'] ~= '' and args['mod-DP2'] ~= nil)
	-- of just write the suffix
	or (args['mod-DP2suf'] ~= '-' and args['mod-DP2suf'] ~= '0' and args['mod-DP2suf'] ~= '' and args['mod-DP2suf'] ~= nil) then
		if args['nu2'] == '1' then
		args['mod-DP2'] = br .. args['mod-DP2txt1'] .. args['common1']
		.. create_link((args['mod-DP2stem'] .. args['mod-DP2suf']), (stem_color(args['mod-DP2stem+']) .. ending_color(args['mod-DP2suf+'])))
		.. create_link((args['mod-DP2stem'] .. args['mod-DP2suf'] .. "ν"), (stem_color("&#40;") .. ending_color("ν") .. stem_color("&#41;"))) 
		.. args['common'] .. args['mod-DP2txt']
		else
		args['mod-DP2'] = br .. args['mod-DP2txt1'] .. args['common1']
		.. create_link((args['mod-DP2stem'] .. args['mod-DP2suf']), (stem_color(args['mod-DP2stem+']) .. ending_color(args['mod-DP2suf+']))) .. args['common'] .. args['mod-DP2txt']
		end
	end
	-- zero ending
	if args['mod-DP2suf'] == '0' then
		args['mod-DP2'] = br.. args['mod-DP2txt1'] .. args['common1'] .. create_link((args['mod-DP2stem']), (stem_color(args['mod-DP2stem+']))) .. args['common'] .. args['mod-DP2txt']
	end
	-- dash (the article remains, unless aDP=- )
   	if args['mod-DP2'] == '-' or args['mod-DP2suf'] == '-' then
   		args['mod-DP2'] = br .. args['mod-DP2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-DP2txt']
   	end
args['DPcell'] = ''
	if args['DP'] ~= '' and args['DP'] ~= nil then args['mod-DP'] = args['DP'] end
	if args['DP2'] ~= '' and args['DP2'] ~= nil then args['mod-DP2'] = args['DP2'] end
	args['DPcell'] = args['mod-DP'] .. args['mod-DP2']


-- #AP ACCUSATIVE PLURAL
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-AP'] ~= '-' and args['mod-AP'] ~= '' and args['mod-AP'] ~= nil)
	-- of just write the suffix
	or (args['mod-APsuf'] ~= '-' and args['mod-APsuf'] ~= '0' and args['mod-APsuf'] ~= '' and args['mod-APsuf'] ~= nil) then
		args['mod-AP'] = args['mod-APtxt1'] .. args['common1']
		.. create_link((args['mod-APstem'] .. args['mod-APsuf']), (stem_color(args['mod-APstem+']) .. ending_color(args['mod-APsuf+']))) .. args['common'] .. args['mod-APtxt']
	end
	-- zero ending
	if args['mod-APsuf'] == '0' then
		args['mod-AP'] = args['mod-APtxt1'] .. args['common1'] .. create_link((args['mod-APstem']), (stem_color(args['mod-APstem+']))) .. args['common'] .. args['mod-APtxt']
	end
	-- dash (the article remains, unless aAP=- )
   	if args['mod-AP'] == '-' or args['mod-APsuf'] == '-' then
   		args['mod-AP'] = args['mod-APtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-APtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-AP2'] ~= '-' and args['mod-AP2'] ~= '' and args['mod-AP2'] ~= nil)
	-- of just write the suffix
	or (args['mod-AP2suf'] ~= '-' and args['mod-AP2suf'] ~= '0' and args['mod-AP2suf'] ~= '' and args['mod-AP2suf'] ~= nil) then
		args['mod-AP2'] = br .. args['mod-AP2txt1'] .. args['common1']
		.. create_link((args['mod-AP2stem'] .. args['mod-AP2suf']), (stem_color(args['mod-AP2stem+']) .. ending_color(args['mod-AP2suf+']))) .. args['common'] .. args['mod-AP2txt']
	end
	-- zero ending
	if args['mod-AP2suf'] == '0' then
		args['mod-AP2'] = br.. args['mod-AP2txt1'] .. args['common1'] .. create_link((args['mod-AP2stem']), (stem_color(args['mod-AP2stem+']))) .. args['common'] .. args['mod-AP2txt']
	end
	-- dash (the article remains, unless aAP=- )
   	if args['mod-AP2'] == '-' or args['mod-AP2suf'] == '-' then
   		args['mod-AP2'] = br .. args['mod-AP2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-AP2txt']
   	end
args['APcell'] = ''
	if args['AP'] ~= '' and args['AP'] ~= nil then args['mod-AP'] = args['AP'] end
	if args['AP2'] ~= '' and args['AP2'] ~= nil then args['mod-AP2'] = args['AP2'] end
	args['APcell'] = args['mod-AP'] .. args['mod-AP2']


-- #VP VOCATIVE PLURAL
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-VP'] ~= '-' and args['mod-VP'] ~= '' and args['mod-VP'] ~= nil)
	-- of just write the suffix
	or (args['mod-VPsuf'] ~= '-' and args['mod-VPsuf'] ~= '0' and args['mod-VPsuf'] ~= '' and args['mod-VPsuf'] ~= nil) then
		args['mod-VP'] = args['mod-VPtxt1'] .. args['common1']
		.. create_link((args['mod-VPstem'] .. args['mod-VPsuf']), (stem_color(args['mod-VPstem+']) .. ending_color(args['mod-VPsuf+']))) .. args['common'] .. args['mod-VPtxt']
	end
	-- zero ending
	if args['mod-VPsuf'] == '0' then
		args['mod-VP'] = args['mod-VPtxt1'] .. args['common1'] .. create_link((args['mod-VPstem']), (stem_color(args['mod-VPstem+']))) .. args['common'] .. args['mod-VPtxt']
	end
	-- dash (the article remains, unless aVP=- )
   	if args['mod-VP'] == '-' or args['mod-VPsuf'] == '-' then
   		args['mod-VP'] = args['mod-VPtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-VPtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-VP2'] ~= '-' and args['mod-VP2'] ~= '' and args['mod-VP2'] ~= nil)
	-- of just write the suffix
	or (args['mod-VP2suf'] ~= '-' and args['mod-VP2suf'] ~= '0' and args['mod-VP2suf'] ~= '' and args['mod-VP2suf'] ~= nil) then
		args['mod-VP2'] = br .. args['mod-VP2txt1'] .. args['common1']
		.. create_link((args['mod-VP2stem'] .. args['mod-VP2suf']), (stem_color(args['mod-VP2stem+']) .. ending_color(args['mod-VP2suf+']))) .. args['common'] .. args['mod-VP2txt']
	end
	-- zero ending
	if args['mod-VP2suf'] == '0' then
		args['mod-VP2'] = br.. args['mod-VP2txt1'] .. args['common1'] .. create_link((args['mod-VP2stem']), (stem_color(args['mod-VP2stem+']))) .. args['common'] .. args['mod-VP2txt']
	end
	-- dash (the article remains, unless aVP=- )
   	if args['mod-VP2'] == '-' or args['mod-VP2suf'] == '-' then
   		args['mod-VP2'] = br .. args['mod-VP2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-VP2txt']
   	end
args['VPcell'] = ''
	if args['VP'] ~= '' and args['VP'] ~= nil then args['mod-VP'] = args['VP'] end
	if args['VP2'] ~= '' and args['VP2'] ~= nil then args['mod-VP2'] = args['VP2'] end
	args['VPcell'] = args['mod-VP'] .. args['mod-VP2']


-- #ND nominative dual (and accusative, vocative)
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-ND'] ~= '-' and args['mod-ND'] ~= '' and args['mod-ND'] ~= nil)
	-- of just write the suffix
	or (args['mod-NDsuf'] ~= '-' and args['mod-NDsuf'] ~= '0' and args['mod-NDsuf'] ~= '' and args['mod-NDsuf'] ~= nil) then
		args['mod-ND'] = args['mod-NDtxt1'] .. args['common1']
		.. create_link((args['mod-NDstem'] .. args['mod-NDsuf']), (stem_color(args['mod-NDstem+']) .. ending_color(args['mod-NDsuf+']))) .. args['common'] .. args['mod-NDtxt']
	end
	-- zero ending
	if args['mod-NDsuf'] == '0' then
		args['mod-ND'] = args['mod-NDtxt1'] .. args['common1'] .. create_link((args['mod-NDstem']), (stem_color(args['mod-NDstem+']))) .. args['common'] .. args['mod-NDtxt']
	end
	-- dash (the article remains, unless aND=- )
   	if args['mod-ND'] == '-' or args['mod-NDsuf'] == '-' then
   		args['mod-ND'] = args['mod-NDtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-NDtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-ND2'] ~= '-' and args['mod-ND2'] ~= '' and args['mod-ND2'] ~= nil)
	-- of just write the suffix
	or (args['mod-ND2suf'] ~= '-' and args['mod-ND2suf'] ~= '0' and args['mod-ND2suf'] ~= '' and args['mod-ND2suf'] ~= nil) then
		args['mod-ND2'] = br .. args['mod-ND2txt1'] .. args['common1']
		.. create_link((args['mod-ND2stem'] .. args['mod-ND2suf']), (stem_color(args['mod-ND2stem+']) .. ending_color(args['mod-ND2suf+']))) .. args['common'] .. args['mod-ND2txt']
	end
	-- zero ending
	if args['mod-ND2suf'] == '0' then
		args['mod-ND2'] = br.. args['mod-ND2txt1'] .. args['common1'] .. create_link((args['mod-ND2stem']), (stem_color(args['mod-ND2stem+']))) .. args['common'] .. args['mod-ND2txt']
	end
	-- dash (the article remains, unless aND=- )
   	if args['mod-ND2'] == '-' or args['mod-ND2suf'] == '-' then
   		args['mod-ND2'] = br .. args['mod-ND2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-ND2txt']
   	end
args['NDcell'] = ''
	if args['ND'] ~= '' and args['ND'] ~= nil then args['mod-ND'] = args['ND'] end
	if args['ND2'] ~= '' and args['ND2'] ~= nil then args['mod-ND2'] = args['ND2'] end
	args['NDcell'] = args['mod-ND'] .. args['mod-ND2']

-- #GD genitive dual (and dative)
-- @modules (editor overrides without the suffix mod-)
	-- first line
	if (args['mod-GD'] ~= '-' and args['mod-GD'] ~= '' and args['mod-GD'] ~= nil)
	-- of just write the suffix
	or (args['mod-GDsuf'] ~= '-' and args['mod-GDsuf'] ~= '0' and args['mod-GDsuf'] ~= '' and args['mod-GDsuf'] ~= nil) then
		args['mod-GD'] = args['mod-GDtxt1'] .. args['common1']
		.. create_link((args['mod-GDstem'] .. args['mod-GDsuf']), (stem_color(args['mod-GDstem+']) .. ending_color(args['mod-GDsuf+']))) .. args['common'] .. args['mod-GDtxt']
	end
	-- zero ending
	if args['mod-GDsuf'] == '0' then
		args['mod-GD'] = args['mod-GDtxt1'] .. args['common1'] .. create_link((args['mod-GDstem']), (stem_color(args['mod-GDstem+']))) .. args['common'] .. args['mod-GDtxt']
	end
	-- dash (the article remains, unless aGD=- )
   	if args['mod-GD'] == '-' or args['mod-GDsuf'] == '-' then
   		args['mod-GD'] = args['mod-GDtxt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GDtxt']
   	end
	-- second line (br default = at new line)
	if (args['mod-GD2'] ~= '-' and args['mod-GD2'] ~= '' and args['mod-GD2'] ~= nil)
	-- of just write the suffix
	or (args['mod-GD2suf'] ~= '-' and args['mod-GD2suf'] ~= '0' and args['mod-GD2suf'] ~= '' and args['mod-GD2suf'] ~= nil) then
		args['mod-GD2'] = br .. args['mod-GD2txt1'] .. args['common1']
		.. create_link((args['mod-GD2stem'] .. args['mod-GD2suf']), (stem_color(args['mod-GD2stem+']) .. ending_color(args['mod-GD2suf+']))) .. args['common'] .. args['mod-GD2txt']
	end
	-- zero ending
	if args['mod-GD2suf'] == '0' then
		args['mod-GD2'] = br.. args['mod-GD2txt1'] .. args['common1'] .. create_link((args['mod-GD2stem']), (stem_color(args['mod-GD2stem+']))) .. args['common'] .. args['mod-GD2txt']
	end
	-- dash (the article remains, unless aGD=- )
   	if args['mod-GD2'] == '-' or args['mod-GD2suf'] == '-' then
   		args['mod-GD2'] = br .. args['mod-GD2txt1'] .. '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['mod-GD2txt']
   	end
args['GDcell'] = ''
	if args['GD'] ~= '' and args['GD'] ~= nil then args['mod-GD'] = args['GD'] end
	if args['GD2'] ~= '' and args['GD2'] ~= nil then args['mod-GD2'] = args['GD2'] end
	args['GDcell'] = args['mod-GD'] .. args['mod-GD2']


-- PLUS #columns  cells?TODO only for editors? for mod- and editors = write whole words?
-- 2nd singular
	args['mod-2NS'] = args['mod-2NS'] or ''	args['2NS'] = args['2NS'] or ''
	args['mod-2GS'] = args['mod-2GS'] or ''	args['2GS'] = args['2GS'] or ''
	args['2DS'] = args['2DS'] or ''
	args['2AS'] = args['2AS'] or ''
	args['2VS'] = args['2VS'] or ''
-- 2nd plural	-- ὁ [[θύρσος]] οἱ θύρσοι + τὰ θύρσα
	args['mod-2NP'] = args['mod-2NP'] or ''	args['2NPw'] = args['2NP'] or ''
	args['2GP'] = args['2GP'] or ''
	args['2DP'] = args['2DP'] or ''
	args['2AP'] = args['2AP'] or ''
	args['2VP'] = args['2VP'] or ''
-- no 2nd columns for dual ?


args['2NScell'] = ''
	if args['2NS'] ~= '' and args['2NS'] ~= nil then args['mod-2NS'] = args['2NS'] end
	if args['2NS2'] ~= '' and args['2NS2'] ~= nil then args['mod-2NS2'] = args['2NS2'] end
	args['2NScell'] = args['mod-2NS'] .. args['mod-2NS2']


args['2GScell'] = ''
	if args['2GS'] ~= '' and args['2GS'] ~= nil then args['mod-2GS'] = args['2GS'] end
	if args['2GS2'] ~= '' and args['2GS2'] ~= nil then args['mod-2GS2'] = args['2GS2'] end
	args['2GScell'] = args['mod-2GS'] .. args['mod-2GS2']

args['2DScell'] = ''
	if args['2DS'] ~= '' and args['2DS'] ~= nil then args['mod-2DS'] = args['2DS'] end
	if args['2DS2'] ~= '' and args['2DS2'] ~= nil then args['mod-2DS2'] = args['2DS2'] end
	args['2DScell'] = args['mod-2DS'] .. args['mod-2DS2']

args['2AScell'] = ''
	if args['2AS'] ~= '' and args['2AS'] ~= nil then args['mod-2AS'] = args['2AS'] end
	if args['2AS2'] ~= '' and args['2AS2'] ~= nil then args['mod-2AS2'] = args['2AS2'] end
	args['2AScell'] = args['mod-2AS'] .. args['mod-2AS2']

args['2VScell'] = ''
	if args['2VS'] ~= '' and args['2VS'] ~= nil then args['mod-2VS'] = args['2VS'] end
	if args['2VS2'] ~= '' and args['2VS2'] ~= nil then args['mod-2VS2'] = args['2VS2'] end
	args['2VScell'] = args['mod-2VS'] .. args['mod-2VS2']
	
args['2NPcell'] = ''
	if args['2NP'] ~= '' and args['2NP'] ~= nil then args['mod-2NP'] = args['2NP'] end
	if args['2NP2'] ~= '' and args['2NP2'] ~= nil then args['mod-2NP2'] = args['2NP2'] end
	args['2NPcell'] = args['mod-2NP'] .. args['mod-2NP2']

args['2GPcell'] = ''
	if args['2GP'] ~= '' and args['2GP'] ~= nil then args['mod-2GP'] = args['2GP'] end
	if args['2GP2'] ~= '' and args['2GP2'] ~= nil then args['mod-2GP2'] = args['2GP2'] end
	args['2GPcell'] = args['mod-2GP'] .. args['mod-2GP2']

args['2DPcell'] = ''
	if args['2DP'] ~= '' and args['2DP'] ~= nil then args['mod-2DP'] = args['2DP'] end
	if args['2DP2'] ~= '' and args['2DP2'] ~= nil then args['mod-2DP2'] = args['2DP2'] end
	args['2DPcell'] = args['mod-2DP'] .. args['mod-2DP2']

args['2APcell'] = ''
	if args['2AP'] ~= '' and args['2AP'] ~= nil then args['mod-2AP'] = args['2AP'] end
	if args['2AP2'] ~= '' and args['2AP2'] ~= nil then args['mod-2AP2'] = args['2AP2'] end
	args['2APcell'] = args['mod-2AP'] .. args['mod-2AP2']

args['2VPcell'] = ''
	if args['2VP'] ~= '' and args['2VP'] ~= nil then args['mod-2VP'] = args['2VP'] end
	if args['2VP2'] ~= '' and args['2VP2'] ~= nil then args['mod-2VP2'] = args['2VP2'] end
	args['2VPcell'] = args['mod-2VP'] .. args['mod-2VP2']

args['2NDcell'] = ''
	if args['2ND'] ~= '' and args['2ND'] ~= nil then args['mod-2ND'] = args['2ND'] end
	if args['2ND2'] ~= '' and args['2ND2'] ~= nil then args['mod-2ND2'] = args['2ND2'] end
	args['2NDcell'] = args['mod-2ND'] .. args['mod-2ND2']

args['2GDcell'] = ''
	if args['2GD'] ~= '' and args['2GD'] ~= nil then args['mod-2GD'] = args['2GD'] end
	if args['2GD2'] ~= '' and args['2GD2'] ~= nil then args['mod-2GD2'] = args['2GD2'] end
	args['2GDcell'] = args['mod-2GD'] .. args['mod-2GD2']



end -- close  function param

return {param = param}