Program: 171263
Project: 171263
Buggy source:
private void manageAttributeListeners(){
  documentAttributes=(Document)webEngineAttributes.executeScript("String_Node_Str");
  EventListenerDataMap.put(documentAttributes,new ArrayList<>());
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveNorthListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveSouthListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveWestListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveEastListener,true);
  }
  String id;
  for (  InventorySlot invSlot : InventorySlot.values()) {
    id=invSlot.toString() + "String_Node_Str";
    if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
      }
    }
 else {
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
      }
    }
  }
  id="String_Node_Str";
  if (((EventTarget)documentAttributes.getElementById(id)) != null) {
    ((EventTarget)documentAttributes.getElementById(id)).addEventListener("String_Node_Str",e -> {
      Main.getProperties().setValue(PropertyValue.calendarDisplay,!Main.getProperties().hasValue(PropertyValue.calendarDisplay));
      Main.saveProperties();
      MainController.updateUI();
    }
,false);
    addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
    TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
    addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
  }
  id="String_Node_Str";
  if (((EventTarget)documentAttributes.getElementById(id)) != null) {
    ((EventTarget)documentAttributes.getElementById(id)).addEventListener("String_Node_Str",e -> {
      Main.getProperties().setValue(PropertyValue.twentyFourHourTime,!Main.getProperties().hasValue(PropertyValue.twentyFourHourTime));
      Main.saveProperties();
      MainController.updateUI();
    }
,false);
    addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
    TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
    addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + TFEssence.ARCANE.hashCode())) != null) {
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",hideTooltipListener,false);
    InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(TFEssence.ARCANE);
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",el2,false);
  }
  Attribute[] attributes={Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.EXPERIENCE,Attribute.MAJOR_PHYSIQUE,Attribute.MAJOR_ARCANE,Attribute.MAJOR_CORRUPTION,Attribute.AROUSAL,Attribute.LUST};
  List<GameCharacter> charactersBeingRendered=new ArrayList<>();
  if (Main.game.isInSex()) {
    charactersBeingRendered.addAll(Sex.getDominantParticipants().keySet());
    charactersBeingRendered.addAll(Sex.getSubmissiveParticipants().keySet());
  }
 else   if (Main.game.isInCombat()) {
    charactersBeingRendered.add(Main.game.getPlayer());
    charactersBeingRendered.addAll(Combat.getAllies());
  }
 else {
    if (Main.game.getPlayer() != null) {
      charactersBeingRendered.add(Main.game.getPlayer());
      charactersBeingRendered.addAll(Main.game.getPlayer().getCompanions());
    }
  }
  for (  GameCharacter character : charactersBeingRendered) {
    String idModifier=(character.isPlayer() ? "String_Node_Str" : "String_Node_Str" + character.getId() + "String_Node_Str");
    for (    Attribute a : attributes) {
      if (((EventTarget)documentAttributes.getElementById(idModifier + a.getName())) != null) {
        if (a == Attribute.EXPERIENCE) {
          ((EventTarget)documentAttributes.getElementById(idModifier + a.getName())).addEventListener("String_Node_Str",e -> {
            if (character.isPlayer()) {
              if (Main.game.isInNewWorld()) {
                if (Main.game.getCurrentDialogueNode().getDialgoueNodeType() == DialogueNodeType.PHONE) {
                  if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_APPEARANCE) {
                    openPhone();
                  }
 else {
                    Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_APPEARANCE));
                  }
                }
 else                 if (!Main.game.getCurrentDialogueNode().isOptionsDisabled()) {
                  if (Main.game.getCurrentDialogueNode().getDialgoueNodeType() == DialogueNodeType.NORMAL) {
                    Main.game.saveDialogueNode();
                  }
                  Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_APPEARANCE));
                }
              }
            }
 else {
              openCharactersPresent(character);
            }
          }
,false);
        }
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,character);
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)documentAttributes.getElementById(idModifier + "String_Node_Str")) != null) {
      ((EventTarget)documentAttributes.getElementById(idModifier + "String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (character.isPlayer()) {
          if (Main.game.isInNewWorld()) {
            if (Main.game.getCurrentDialogueNode().getDialgoueNodeType() == DialogueNodeType.PHONE) {
              if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_LEVEL_UP) {
                openPhone();
              }
 else {
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_LEVEL_UP));
              }
            }
 else             if (!Main.game.getCurrentDialogueNode().isOptionsDisabled()) {
              if (Main.game.getCurrentDialogueNode().getDialgoueNodeType() == DialogueNodeType.NORMAL) {
                Main.game.saveDialogueNode();
              }
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_LEVEL_UP));
            }
          }
        }
 else {
          openCharactersPresent(character);
        }
      }
,false);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setExtraAttributes(character);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",el,false);
    }
    for (    StatusEffect se : character.getStatusEffects()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + se)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",el,false);
      }
    }
    for (    Perk trait : character.getTraits()) {
      id="String_Node_Str" + idModifier + trait;
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(trait,character);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : character.getFetishes()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + f)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : character.getSpecialAttacks()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + sa)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",el,false);
      }
    }
    for (    Spell s : character.getAllSpells()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + s)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",el,false);
      }
    }
  }
}

Fixed version (ground truth):
private void manageAttributeListeners(){
  documentAttributes=(Document)webEngineAttributes.executeScript("String_Node_Str");
  EventListenerDataMap.put(documentAttributes,new ArrayList<>());
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveNorthListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveSouthListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveWestListener,true);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str")) != null) {
    addEventListener(documentAttributes,"String_Node_Str","String_Node_Str",moveEastListener,true);
  }
  String id;
  for (  InventorySlot invSlot : InventorySlot.values()) {
    id=invSlot.toString() + "String_Node_Str";
    if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
      }
    }
 else {
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
      }
    }
  }
  id="String_Node_Str";
  if (((EventTarget)documentAttributes.getElementById(id)) != null) {
    ((EventTarget)documentAttributes.getElementById(id)).addEventListener("String_Node_Str",e -> {
      Main.getProperties().setValue(PropertyValue.calendarDisplay,!Main.getProperties().hasValue(PropertyValue.calendarDisplay));
      Main.saveProperties();
      MainController.updateUI();
    }
,false);
    addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
    TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
    addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
  }
  id="String_Node_Str";
  if (((EventTarget)documentAttributes.getElementById(id)) != null) {
    ((EventTarget)documentAttributes.getElementById(id)).addEventListener("String_Node_Str",e -> {
      Main.getProperties().setValue(PropertyValue.twentyFourHourTime,!Main.getProperties().hasValue(PropertyValue.twentyFourHourTime));
      Main.saveProperties();
      MainController.updateUI();
    }
,false);
    addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
    TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
    addEventListener(documentAttributes,id,"String_Node_Str",el2,false);
  }
  if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + TFEssence.ARCANE.hashCode())) != null) {
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",moveTooltipListener,false);
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",hideTooltipListener,false);
    InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(TFEssence.ARCANE);
    addEventListener(documentAttributes,"String_Node_Str" + TFEssence.ARCANE.hashCode(),"String_Node_Str",el2,false);
  }
  Attribute[] attributes={Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.EXPERIENCE,Attribute.MAJOR_PHYSIQUE,Attribute.MAJOR_ARCANE,Attribute.MAJOR_CORRUPTION,Attribute.AROUSAL,Attribute.LUST};
  List<GameCharacter> charactersBeingRendered=new ArrayList<>();
  if (Main.game.isInSex()) {
    charactersBeingRendered.addAll(Sex.getDominantParticipants().keySet());
    charactersBeingRendered.addAll(Sex.getSubmissiveParticipants().keySet());
  }
 else   if (Main.game.isInCombat()) {
    charactersBeingRendered.add(Main.game.getPlayer());
    charactersBeingRendered.addAll(Combat.getAllies());
  }
 else {
    if (Main.game.getPlayer() != null) {
      charactersBeingRendered.add(Main.game.getPlayer());
      charactersBeingRendered.addAll(Main.game.getPlayer().getCompanions());
    }
  }
  for (  GameCharacter character : charactersBeingRendered) {
    String idModifier=(character.isPlayer() ? "String_Node_Str" : "String_Node_Str" + character.getId() + "String_Node_Str");
    for (    Attribute a : attributes) {
      if (((EventTarget)documentAttributes.getElementById(idModifier + a.getName())) != null) {
        if (a == Attribute.EXPERIENCE) {
          ((EventTarget)documentAttributes.getElementById(idModifier + a.getName())).addEventListener("String_Node_Str",e -> {
            if (character.isPlayer()) {
              if (Main.game.isInNewWorld()) {
                if (Main.game.getCurrentDialogueNode().getDialogueNodeType() == DialogueNodeType.PHONE) {
                  if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_APPEARANCE) {
                    openPhone();
                  }
 else {
                    Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_APPEARANCE));
                  }
                }
 else                 if (!Main.game.getCurrentDialogueNode().isOptionsDisabled()) {
                  if (Main.game.getCurrentDialogueNode().getDialogueNodeType() == DialogueNodeType.NORMAL) {
                    Main.game.saveDialogueNode();
                  }
                  Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_APPEARANCE));
                }
              }
            }
 else {
              openCharactersPresent(character);
            }
          }
,false);
        }
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,character);
        addEventListener(documentAttributes,idModifier + a.getName(),"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)documentAttributes.getElementById(idModifier + "String_Node_Str")) != null) {
      ((EventTarget)documentAttributes.getElementById(idModifier + "String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (character.isPlayer()) {
          if (Main.game.isInNewWorld()) {
            if (Main.game.getCurrentDialogueNode().getDialogueNodeType() == DialogueNodeType.PHONE) {
              if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_LEVEL_UP) {
                openPhone();
              }
 else {
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_LEVEL_UP));
              }
            }
 else             if (!Main.game.getCurrentDialogueNode().isOptionsDisabled()) {
              if (Main.game.getCurrentDialogueNode().getDialogueNodeType() == DialogueNodeType.NORMAL) {
                Main.game.saveDialogueNode();
              }
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",PhoneDialogue.CHARACTER_LEVEL_UP));
            }
          }
        }
 else {
          openCharactersPresent(character);
        }
      }
,false);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setExtraAttributes(character);
      addEventListener(documentAttributes,idModifier + "String_Node_Str","String_Node_Str",el,false);
    }
    for (    StatusEffect se : character.getStatusEffects()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + se)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + se,"String_Node_Str",el,false);
      }
    }
    for (    Perk trait : character.getTraits()) {
      id="String_Node_Str" + idModifier + trait;
      if (((EventTarget)documentAttributes.getElementById(id)) != null) {
        addEventListener(documentAttributes,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,id,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(trait,character);
        addEventListener(documentAttributes,id,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : character.getFetishes()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + f)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : character.getSpecialAttacks()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + sa)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + sa,"String_Node_Str",el,false);
      }
    }
    for (    Spell s : character.getAllSpells()) {
      if (((EventTarget)documentAttributes.getElementById("String_Node_Str" + idModifier + s)) != null) {
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,character);
        addEventListener(documentAttributes,"String_Node_Str" + idModifier + s,"String_Node_Str",el,false);
      }
    }
  }
}