{"code":"/**\n * @license\n * Copyright 2021 Ludan Stoecklé\n * SPDX-License-Identifier: Apache-2.0\n */\n//-------- allows core to communicate with the inner of the template mechanic already used by Pug (i.e. pug_html)\nutil.setSpy({\n  getPugHtml: function () {\n    return pug_html;\n  },\n  setPugHtml: function (new_pug_html) {\n    pug_html = new_pug_html;\n  },\n  appendPugHtml: function (append) {\n    pug_html = pug_html + append;\n  },\n});\nutil.setEmbeddedLinguisticResources(embeddedLinguisticResources);\n/**\n * @license\n * Copyright 2021 Ludan Stoecklé\n * SPDX-License-Identifier: Apache-2.0\n */\n//-------- using GenderNumberManager\nfunction setRefGender(obj, gender) {\n  util.genderNumberManager.setRefGender(obj, gender, null);\n}\nfunction getRefGender(obj) {\n  return util.genderNumberManager.getRefGender(obj);\n}\nfunction setRefNumber(obj, number) {\n  util.genderNumberManager.setRefNumber(obj, number);\n}\nfunction getRefNumber(obj) {\n  return util.genderNumberManager.getRefNumber(obj);\n}\nfunction setRefGenderNumber(obj, gender, number) {\n  util.genderNumberManager.setRefGenderNumber(obj, gender, number);\n}\nfunction getAnonymous(gender, number) {\n  return util.genderNumberManager.getAnonymous(gender, number);\n}\nfunction getAnonMS() {\n  return util.genderNumberManager.getAnonMS();\n}\nfunction getAnonMP() {\n  return util.genderNumberManager.getAnonMP();\n}\nfunction getAnonFS() {\n  return util.genderNumberManager.getAnonFS();\n}\nfunction getAnonFP() {\n  return util.genderNumberManager.getAnonFP();\n}\n//-------- using RefsManager\nfunction resetRep(obj) {\n  util.refsManager.resetRep(obj);\n}\nfunction hasTriggeredRef(obj) {\n  return util.refsManager.hasTriggeredRef(obj);\n}\nfunction setTriggeredRef(obj) {\n  util.refsManager.setTriggeredRef(obj);\n}\nfunction dumpRefMap() {\n  util.refsManager.dumpRefMap();\n}\nfunction getNextRep(obj, params) {\n  return util.refsManager.getNextRep(obj, params);\n}\n//-------- using SaidManager\nfunction dumpHasSaid() {\n  util.saidManager.dumpHasSaid();\n}\nfunction getDumpHasSaid() {\n  return util.saidManager.getDumpHasSaid();\n}\nfunction getHasSaidCopy() {\n  return util.saidManager.getHasSaidCopy();\n}\nfunction recordSaid(key) {\n  util.saidManager.recordSaid(key);\n}\nfunction deleteSaid(key) {\n  util.saidManager.deleteSaid(key);\n}\nfunction hasSaid(key) {\n  return util.saidManager.hasSaid(key);\n}\nfunction recordValue(key, value) {\n  util.getSaidManager().recordValue(key, value);\n}\nfunction deleteValue(key) {\n  util.getSaidManager().deleteValue(key);\n}\nfunction getValue(key) {\n  return util.getSaidManager().getValue(key);\n}\n//-------- using helper\nfunction hasFlag(params, flag) {\n  return util.helper.hasFlag(params, flag);\n}\nfunction getFlagValue(params, flag) {\n  return util.helper.getFlagValue(params, flag);\n}\nfunction protectString(string) {\n  return util.helper.protectString(string);\n}\nfunction isSentenceStart() {\n  return util.helper.isSentenceStart();\n}\nfunction getMorF(table, obj) {\n  return util.helper.getMFN(table, obj);\n}\nfunction getMFN(table, obj) {\n  return util.helper.getMFN(table, obj);\n}\nfunction getSorP(table, obj) {\n  return util.helper.getSorP(table, obj);\n}\n//-------- using DictManager\nfunction setWordData(word, wordData) {\n  util.languageImpl.getDictManager().setWordData(word, wordData);\n}\nfunction setAdjData(word, wordData) {\n  util.languageImpl.getDictManager().setAdjData(word, wordData);\n}\n//-------- using VerbManager\nfunction isVerbWithPrefix(verb) {\n  // only works for German\n  return util.verbsManager.isVerbWithPrefix(verb);\n}\n/**\n * @license\n * Copyright 2021 Ludan Stoecklé\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction syn_fct(items) {\n  return util.synManager.synFct(items);\n}\nfunction printObj(before, obj) {\n  console.log(before + ' ' + JSON.stringify(obj).substring(0, 20));\n}\nfunction logParams(params) {\n  console.log('params: ' + JSON.stringify(params));\n}\nfunction valueToSorP(val) {\n  return util.languageImpl.isPlural(val) ? 'P' : 'S';\n}\nfunction debug(filename, line) {\n  if (filename !== null) {\n    pug_debug_filename = filename;\n  }\n  pug_debug_line = line;\n  if (locals.renderDebug) {\n    // locals is available\n    let id = line;\n    if (filename !== null) {\n      id = filename.replace(/\"/g, '') + ': ' + id;\n    }\n    pug_html = pug_html + `<span class=\"rosaenlg-debug\" id=\"${id}\"></span>`;\n  }\n}\npug_mixins[\"foreach\"] = pug_interp = function(elts, mixinFct, asm, params){ // NAME_foreach\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.asmManager.foreach(elts, mixinFct, asm, params);\n};\nvar foreach=pug_mixins[\"foreach\"];\npug_mixins[\"value\"] = pug_interp = function(obj, params){ // NAME_value\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.valueManager.value(obj, params);\n};\nvar value=pug_mixins[\"value\"];\npug_mixins[\"syn\"] = pug_interp = function(){ // NAME_syn\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar items = [];\nfor (pug_interp = 0; pug_interp < arguments.length; pug_interp++) {\n  items.push(arguments[pug_interp]);\n}\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.synManager.simpleSyn(items);\n};\nvar syn=pug_mixins[\"syn\"];\npug_mixins[\"agreeAdj\"] = pug_interp = function(adjective, subject, params){ // NAME_agreeAdj\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.adjectiveManager.agreeAdj(adjective, subject, params);\n};\nvar agreeAdj=pug_mixins[\"agreeAdj\"];\npug_mixins[\"recipientPossession\"] = pug_interp = function(owned){ // NAME_recipientPossession\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.possessiveManager.recipientPossession(owned);\n};\nvar recipientPossession=pug_mixins[\"recipientPossession\"];\npug_mixins[\"thirdPossession\"] = pug_interp = function(owner, owned, params){ // NAME_thirdPossession\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.possessiveManager.thirdPossession(owner, owned, params);\n};\nvar thirdPossession=pug_mixins[\"thirdPossession\"];\npug_mixins[\"dummy\"] = pug_interp = function(){ // NAME_dummy\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\npug_mixins['dummy']();\n};\nvar dummy=pug_mixins[\"dummy\"];\npug_mixins[\"flushBuffer\"] = pug_interp = function(){ // NAME_flushBuffer\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\npug_html = pug_html + \"¤¤\";\n};\nvar flushBuffer=pug_mixins[\"flushBuffer\"];\npug_mixins[\"eatSpace\"] = pug_interp = function(){ // NAME_eatSpace\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\npug_html = pug_html + \"¤EATSPACE¤\";\n};\nvar eatSpace=pug_mixins[\"eatSpace\"];\npug_mixins[\"uppercaseWords\"] = pug_interp = function(str){ // NAME_uppercaseWords\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\npug_html = pug_html + \"¤\" + (pug_escape(null == (pug_interp = util.helper.getUppercaseWords(str)) ? \"\" : pug_interp)) + \"¤\";\n};\nvar uppercaseWords=pug_mixins[\"uppercaseWords\"];\npug_mixins[\"toHtmlList\"] = pug_interp = function(obj){ // NAME_toHtmlList\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\npug_html = pug_html + \"\\u003Cul\\u003E\";\n// iterate obj\n;(function(){\n  var $$obj = obj;\n  if ('number' == typeof $$obj.length) {\n      for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n        var val = $$obj[index];\nif (val!=null && typeof(val) == \"object\") {\npug_html = pug_html + \"\\u003Cli\\u003E\" + \"¤\" + (pug_escape(null == (pug_interp = index) ? \"\" : pug_interp)) + \"¤\" + \"¤: ¤\";\npug_mixins[\"toHtmlList\"](val);\npug_html = pug_html + \"¤¤\\u003C\\u002Fli\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cli\\u003E\" + \"¤\" + (pug_escape(null == (pug_interp = index + ': ' + val) ? \"\" : pug_interp)) + \"¤\" + \"\\u003C\\u002Fli\\u003E\";\n}\n      }\n  } else {\n    var $$l = 0;\n    for (var index in $$obj) {\n      $$l++;\n      var val = $$obj[index];\nif (val!=null && typeof(val) == \"object\") {\npug_html = pug_html + \"\\u003Cli\\u003E\" + \"¤\" + (pug_escape(null == (pug_interp = index) ? \"\" : pug_interp)) + \"¤\" + \"¤: ¤\";\npug_mixins[\"toHtmlList\"](val);\npug_html = pug_html + \"¤¤\\u003C\\u002Fli\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cli\\u003E\" + \"¤\" + (pug_escape(null == (pug_interp = index + ': ' + val) ? \"\" : pug_interp)) + \"¤\" + \"\\u003C\\u002Fli\\u003E\";\n}\n    }\n  }\n}).call(this);\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";\n};\nvar toHtmlList=pug_mixins[\"toHtmlList\"];\npug_mixins[\"verb\"] = pug_interp = function(subject, verbInfo, params){ // NAME_verb\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.sentenceManager.verb(subject, verbInfo, params);\n};\nvar verb=pug_mixins[\"verb\"];\npug_mixins[\"subjectVerb\"] = pug_interp = function(subject, verbInfo, params){ // NAME_subjectVerb\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.sentenceManager.subjectVerb(subject, verbInfo, params);\n};\nvar subjectVerb=pug_mixins[\"subjectVerb\"];\npug_mixins[\"subjectVerbAdj\"] = pug_interp = function(subject, verbInfo, adjective, params){ // NAME_subjectVerbAdj\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.sentenceManager.subjectVerbAdj(subject, verbInfo, adjective, params);\n};\nvar subjectVerbAdj=pug_mixins[\"subjectVerbAdj\"];\npug_mixins[\"verbPart\"] = pug_interp = function(){ // NAME_verbPart\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.verbsManager.popVerbPartInBuffer();\n};\nvar verbPart=pug_mixins[\"verbPart\"];\npug_mixins[\"verbPrefix\"] = pug_interp = function(){ // NAME_verbPrefix\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.verbsManager.popVerbPrefixInBuffer();\n};\nvar verbPrefix=pug_mixins[\"verbPrefix\"];\npug_mixins[\"sentence\"] = pug_interp = function(params){ // NAME_sentence\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nfunction addToParams(_toAdd) { return Object.assign({}, params, _toAdd); }\nutil.sentenceManager.sentence(params);\n};\nvar sentence=pug_mixins[\"sentence\"];"}