    public function __construct($strSystemid = "") {

        //Generating all the required objects. For this we use our cool cool carrier-object
        //take care of loading just the necessary objects
        $objCarrier = class_carrier::getInstance();

        $this->objConfig = $objCarrier->getObjConfig();
        $this->objSession = $objCarrier->getObjSession();
        $this->objLang = $objCarrier->getObjLang();
        $this->objTemplate = $objCarrier->getObjTemplate();

        //Setting SystemID
        if($strSystemid == "") {
            $this->setSystemid(class_carrier::getInstance()->getParam("systemid"));
        }
        else {
            $this->setSystemid($strSystemid);
        }


        //And keep the action
        $this->setAction($this->getParam("action"));
        //in most cases, the list is the default action if no other action was passed
        if($this->getAction() == "") {
            $this->setAction("list");
        }

        //try to load the current module-name and the moduleId by reflection
        $objReflection = new class_reflection($this);
        if(!isset($this->arrModule["modul"])) {
            $arrAnnotationValues = $objReflection->getAnnotationValuesFromClass(self::STR_MODULE_ANNOTATION);
            if(count($arrAnnotationValues) > 0)
                $this->setArrModuleEntry("modul", trim($arrAnnotationValues[0]));
        }

        if(!isset($this->arrModule["moduleId"])) {
            $arrAnnotationValues = $objReflection->getAnnotationValuesFromClass(self::STR_MODULEID_ANNOTATION);
            if(count($arrAnnotationValues) > 0)
                $this->setArrModuleEntry("moduleId", constant(trim($arrAnnotationValues[0])));
        }

        $this->strLangBase = $this->getArrModule("modul");
    }
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.