<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.politik-sim.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3Aplebiscite-graph</id>
	<title>Modul:Vorlage:plebiscite-graph - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.politik-sim.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3Aplebiscite-graph"/>
	<link rel="alternate" type="text/html" href="https://wiki.politik-sim.de/index.php?title=Modul:Vorlage:plebiscite-graph&amp;action=history"/>
	<updated>2026-09-07T02:05:02Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in vBundesrepublik</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.politik-sim.de/index.php?title=Modul:Vorlage:plebiscite-graph&amp;diff=13&amp;oldid=prev</id>
		<title>Administrator: Die Seite wurde neu angelegt: „local p = {}   function p.bars(frame)     local args = frame:getParent().args     local hasArgs = false     for k, v in pairs(args) do         hasArgs = true         break     end     if not hasArgs then args = frame.args end       -- localisation table (i18n)     local i18n = {         error_no_title = &#039;Fehler: Ein &quot;titel&quot; (oder &quot;title&quot;) ist für das Diagramm zwingend erforderlich.&#039;,         source_prefix = &quot;&#039;&#039;&#039;Quelle:&#039;&#039;&#039; &quot;,         bar_default_prefix =…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.politik-sim.de/index.php?title=Modul:Vorlage:plebiscite-graph&amp;diff=13&amp;oldid=prev"/>
		<updated>2026-09-06T17:42:34Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „local p = {}   function p.bars(frame)     local args = frame:getParent().args     local hasArgs = false     for k, v in pairs(args) do         hasArgs = true         break     end     if not hasArgs then args = frame.args end       -- localisation table (i18n)     local i18n = {         error_no_title = &amp;#039;Fehler: Ein &amp;quot;titel&amp;quot; (oder &amp;quot;title&amp;quot;) ist für das Diagramm zwingend erforderlich.&amp;#039;,         source_prefix = &amp;quot;&amp;#039;&amp;#039;&amp;#039;Quelle:&amp;#039;&amp;#039;&amp;#039; &amp;quot;,         bar_default_prefix =…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
 &lt;br /&gt;
function p.bars(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local hasArgs = false&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        hasArgs = true&lt;br /&gt;
        break&lt;br /&gt;
    end&lt;br /&gt;
    if not hasArgs then args = frame.args end&lt;br /&gt;
 &lt;br /&gt;
    -- localisation table (i18n)&lt;br /&gt;
    local i18n = {&lt;br /&gt;
        error_no_title = &amp;#039;Fehler: Ein &amp;quot;titel&amp;quot; (oder &amp;quot;title&amp;quot;) ist für das Diagramm zwingend erforderlich.&amp;#039;,&lt;br /&gt;
        source_prefix = &amp;quot;&amp;#039;&amp;#039;&amp;#039;Quelle:&amp;#039;&amp;#039;&amp;#039; &amp;quot;,&lt;br /&gt;
        bar_default_prefix = &amp;quot;Balken &amp;quot;,&lt;br /&gt;
        option_default_prefix = &amp;quot;Option &amp;quot;,&lt;br /&gt;
        option_yes = &amp;quot;Ja&amp;quot;,&lt;br /&gt;
        option_no = &amp;quot;Nein&amp;quot;,&lt;br /&gt;
        nvoters_name_default = &amp;quot;Stimmverzicht&amp;quot;,&lt;br /&gt;
        majority_cast = &amp;quot;Mehrheit der abgegebenen Stimmen&amp;quot;,&lt;br /&gt;
        majority_valid = &amp;quot;Mehrheit der gültigen Stimmen&amp;quot;,&lt;br /&gt;
        bracket_cast = &amp;quot;abgegebene Stimmen&amp;quot;,&lt;br /&gt;
        bracket_valid = &amp;quot;gültige Stimmen&amp;quot;,&lt;br /&gt;
        quorum_turnout = &amp;quot;Beteiligungs&amp;quot;,&lt;br /&gt;
        quorum_approval = &amp;quot;Zustimmungs&amp;quot;,&lt;br /&gt;
        quorum_veto = &amp;quot;Veto&amp;quot;,&lt;br /&gt;
        quorum_suffix = &amp;quot;quorum&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    -- alias-mapping for German parameters&lt;br /&gt;
    local aliasMap = {&lt;br /&gt;
        title = &amp;quot;titel&amp;quot;,&lt;br /&gt;
        subtitle = &amp;quot;untertitel&amp;quot;,&lt;br /&gt;
        legend_type = &amp;quot;legendentyp&amp;quot;,&lt;br /&gt;
        source = &amp;quot;quelle&amp;quot;,&lt;br /&gt;
        annotation = &amp;quot;anmerkung&amp;quot;,&lt;br /&gt;
        btitle = &amp;quot;btitel&amp;quot;,&lt;br /&gt;
        eligible = &amp;quot;stimmberechtigte&amp;quot;,&lt;br /&gt;
        cast = &amp;quot;abgegeben&amp;quot;,&lt;br /&gt;
        valid = &amp;quot;gültig&amp;quot;,&lt;br /&gt;
        nvoters_name = &amp;quot;nstimmende_name&amp;quot;,&lt;br /&gt;
        nvoters_color = &amp;quot;nstimmende_farbe&amp;quot;,&lt;br /&gt;
        votes = &amp;quot;stimmen&amp;quot;,&lt;br /&gt;
        proposal = &amp;quot;vorlage&amp;quot;,&lt;br /&gt;
        color = &amp;quot;farbe&amp;quot;,&lt;br /&gt;
        threshold = &amp;quot;schwelle&amp;quot;,&lt;br /&gt;
        threshold_type = &amp;quot;schwellen_typ&amp;quot;,&lt;br /&gt;
        threshold_mode = &amp;quot;schwellen_modus&amp;quot;,&lt;br /&gt;
        threshold_legend = &amp;quot;schwelle_legende&amp;quot;,&lt;br /&gt;
        quorum = &amp;quot;quorum&amp;quot;,&lt;br /&gt;
        quorum_type = &amp;quot;quorum_typ&amp;quot;,&lt;br /&gt;
        quorum_mode = &amp;quot;quorum_modus&amp;quot;,&lt;br /&gt;
        quorum_value = &amp;quot;quorum_wert&amp;quot;,&lt;br /&gt;
        quorum_legend = &amp;quot;quorum_legende&amp;quot;,&lt;br /&gt;
        -- Parameter für das zweite Quorum&lt;br /&gt;
        quorum2 = &amp;quot;quorum2&amp;quot;,&lt;br /&gt;
        quorum2_type = &amp;quot;quorum2_typ&amp;quot;,&lt;br /&gt;
        quorum2_mode = &amp;quot;quorum2_modus&amp;quot;,&lt;br /&gt;
        quorum2_value = &amp;quot;quorum2_wert&amp;quot;,&lt;br /&gt;
        quorum2_legend = &amp;quot;quorum2_legende&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    -- alias-mapping for German values&lt;br /&gt;
    local valueMap = {&lt;br /&gt;
        turnout = &amp;quot;Beteiligung&amp;quot;,&lt;br /&gt;
        approval = &amp;quot;Zustimmung&amp;quot;,&lt;br /&gt;
        veto = &amp;quot;Veto&amp;quot;,&lt;br /&gt;
        relative = &amp;quot;relativ&amp;quot;,&lt;br /&gt;
        absolute = &amp;quot;absolut&amp;quot;,&lt;br /&gt;
        valid = &amp;quot;gültig&amp;quot;,&lt;br /&gt;
        cast = &amp;quot;abgegeben&amp;quot;,&lt;br /&gt;
        common = &amp;quot;gemeinsam&amp;quot;,&lt;br /&gt;
        exists = &amp;quot;vorhanden&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    -- support function for localised parameters&lt;br /&gt;
    local function getArg(b, key)&lt;br /&gt;
        local deKey = aliasMap[key] or key&lt;br /&gt;
        local val = nil&lt;br /&gt;
 &lt;br /&gt;
        if key == &amp;quot;bar_title&amp;quot; then&lt;br /&gt;
            local deBtitle = aliasMap[&amp;quot;btitle&amp;quot;]&lt;br /&gt;
            val = args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_&amp;quot; .. deBtitle] or args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_btitle&amp;quot;]&lt;br /&gt;
            if b == 1 then &lt;br /&gt;
                val = val or args[deBtitle] or args[&amp;quot;btitle&amp;quot;] &lt;br /&gt;
            end&lt;br /&gt;
            return val&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        if b == 1 then&lt;br /&gt;
            val = args[&amp;quot;b1_&amp;quot; .. deKey] or args[&amp;quot;b1_&amp;quot; .. key] or args[deKey] or args[key]&lt;br /&gt;
        else&lt;br /&gt;
            val = args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_&amp;quot; .. deKey] or args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_&amp;quot; .. key]&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        if not val then&lt;br /&gt;
            local base, num = key:match(&amp;quot;^(%a+)(%d+)$&amp;quot;)&lt;br /&gt;
            if base and num then&lt;br /&gt;
                local deBase = aliasMap[base] or base&lt;br /&gt;
                if b == 1 then&lt;br /&gt;
                    val = args[&amp;quot;b1_&amp;quot; .. deBase .. num] or args[&amp;quot;b1_&amp;quot; .. base .. num] or args[deBase .. num] or args[base .. num]&lt;br /&gt;
                else&lt;br /&gt;
                    val = args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_&amp;quot; .. deBase .. num] or args[&amp;quot;b&amp;quot; .. b .. &amp;quot;_&amp;quot; .. base .. num]&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return val&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local title = getArg(1, &amp;quot;title&amp;quot;)&lt;br /&gt;
    if not title or title == &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;#039;&amp;lt;span style=&amp;quot;color:red; font-weight:bold;&amp;quot;&amp;gt;&amp;#039; .. i18n.error_no_title .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local function cleanNumber(val)&lt;br /&gt;
        if not val or val == &amp;quot;&amp;quot; then return nil end&lt;br /&gt;
        local s = tostring(val):gsub(&amp;quot;[.,%s]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
        return tonumber(s)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local function isValidHexColor(val)&lt;br /&gt;
        if type(val) ~= &amp;quot;string&amp;quot; then return false end&lt;br /&gt;
        return val:match(&amp;quot;^#[0-9a-fA-F]+$&amp;quot;) and (#val == 4 or #val == 5 or #val == 7 or #val == 9)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local legendTypeArg = getArg(1, &amp;quot;legend_type&amp;quot;)&lt;br /&gt;
    local legendCommon = (legendTypeArg == &amp;quot;common&amp;quot; or legendTypeArg == valueMap.common)&lt;br /&gt;
    &lt;br /&gt;
    local maxBars = 10 &lt;br /&gt;
    local maxGroups = 20 &lt;br /&gt;
    local fallbackColor = &amp;quot;#cccccc&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    local allData = {}&lt;br /&gt;
    local globalLegendItems = {} &lt;br /&gt;
    local legendKeys = {}&lt;br /&gt;
 &lt;br /&gt;
    for b = 1, maxBars do&lt;br /&gt;
        local hasVotes = false&lt;br /&gt;
        local votesTotal = 0&lt;br /&gt;
        for i = 1, maxGroups do&lt;br /&gt;
            local v = cleanNumber(getArg(b, &amp;quot;votes&amp;quot; .. i))&lt;br /&gt;
            if v then hasVotes = true; votesTotal = votesTotal + v end&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        local quorumArg = getArg(b, &amp;quot;quorum&amp;quot;)&lt;br /&gt;
        if quorumArg == &amp;quot;exists&amp;quot; or quorumArg == valueMap.exists or hasVotes or getArg(b, &amp;quot;cast&amp;quot;) or getArg(b, &amp;quot;valid&amp;quot;) then&lt;br /&gt;
            local eligibleVal = cleanNumber(getArg(b, &amp;quot;eligible&amp;quot;))&lt;br /&gt;
            local validValParam = cleanNumber(getArg(b, &amp;quot;valid&amp;quot;))&lt;br /&gt;
            local castVal = cleanNumber(getArg(b, &amp;quot;cast&amp;quot;))&lt;br /&gt;
 &lt;br /&gt;
            -- Keine ungültigen Stimmen mehr: gültige = abgegebene Stimmen&lt;br /&gt;
            local validVal = validValParam or castVal or votesTotal&lt;br /&gt;
            castVal = validVal&lt;br /&gt;
 &lt;br /&gt;
            local thresholdRaw = getArg(b, &amp;quot;threshold&amp;quot;)&lt;br /&gt;
            local tType = getArg(b, &amp;quot;threshold_type&amp;quot;) or &amp;quot;valid&amp;quot;&lt;br /&gt;
            local tMode = getArg(b, &amp;quot;threshold_mode&amp;quot;) or &amp;quot;relative&amp;quot;&lt;br /&gt;
            local tVal = tonumber((string.gsub(tostring(thresholdRaw or &amp;quot;&amp;quot;), &amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)))&lt;br /&gt;
            local tLegendCustom = getArg(b, &amp;quot;threshold_legend&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
            -- Erstes Quorum auslesen&lt;br /&gt;
            local qStatus = (quorumArg == &amp;quot;exists&amp;quot; or quorumArg == valueMap.exists)&lt;br /&gt;
            local qType = getArg(b, &amp;quot;quorum_type&amp;quot;) or &amp;quot;turnout&amp;quot;&lt;br /&gt;
            local qMode = getArg(b, &amp;quot;quorum_mode&amp;quot;) or &amp;quot;relative&amp;quot; &lt;br /&gt;
            local qThresholdRaw = getArg(b, &amp;quot;quorum_value&amp;quot;)&lt;br /&gt;
            local qVal = tonumber((string.gsub(tostring(qThresholdRaw or &amp;quot;&amp;quot;), &amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)))&lt;br /&gt;
            local qLegendCustom = getArg(b, &amp;quot;quorum_legend&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
            -- Zweites Quorum auslesen&lt;br /&gt;
            local q2Arg = getArg(b, &amp;quot;quorum2&amp;quot;)&lt;br /&gt;
            local q2Status = (q2Arg == &amp;quot;exists&amp;quot; or q2Arg == valueMap.exists)&lt;br /&gt;
            local q2Type = getArg(b, &amp;quot;quorum2_type&amp;quot;) or &amp;quot;turnout&amp;quot;&lt;br /&gt;
            local q2Mode = getArg(b, &amp;quot;quorum2_mode&amp;quot;) or &amp;quot;relative&amp;quot; &lt;br /&gt;
            local q2ThresholdRaw = getArg(b, &amp;quot;quorum2_value&amp;quot;)&lt;br /&gt;
            local q2Val = tonumber((string.gsub(tostring(q2ThresholdRaw or &amp;quot;&amp;quot;), &amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)))&lt;br /&gt;
            local q2LegendCustom = getArg(b, &amp;quot;quorum2_legend&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
            local tempBarData = {}&lt;br /&gt;
            local currentVisualSum = 0&lt;br /&gt;
            &lt;br /&gt;
            local voteOrder = {}&lt;br /&gt;
            if qType == &amp;quot;veto&amp;quot; or qType == valueMap.veto then&lt;br /&gt;
                for i = 2, maxGroups, 2 do table.insert(voteOrder, i) end&lt;br /&gt;
                for i = 1, maxGroups, 2 do table.insert(voteOrder, i) end&lt;br /&gt;
            else&lt;br /&gt;
                for i = 1, maxGroups do table.insert(voteOrder, i) end&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            for _, i in ipairs(voteOrder) do&lt;br /&gt;
                local vRaw = getArg(b, &amp;quot;votes&amp;quot; .. i)&lt;br /&gt;
                if vRaw and vRaw ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    local votes = cleanNumber(vRaw) or 0&lt;br /&gt;
                    local defaultProposal = (i == 1 and i18n.option_yes or (i == 2 and i18n.option_no or i18n.option_default_prefix .. i))&lt;br /&gt;
                    local proposal = getArg(b, &amp;quot;proposal&amp;quot; .. i) or defaultProposal&lt;br /&gt;
                    local rawColor = getArg(b, &amp;quot;color&amp;quot; .. i) or (i == 1 and &amp;quot;#128710&amp;quot; or (i == 2 and &amp;quot;#D93025&amp;quot; or fallbackColor))&lt;br /&gt;
                    local color = isValidHexColor(rawColor) and rawColor or fallbackColor&lt;br /&gt;
                    &lt;br /&gt;
                    table.insert(tempBarData, {proposal = proposal, value = votes, color = color, isVote = true})&lt;br /&gt;
                    currentVisualSum = currentVisualSum + votes&lt;br /&gt;
 &lt;br /&gt;
                    if legendCommon and not legendKeys[proposal] then&lt;br /&gt;
                        table.insert(globalLegendItems, {proposal = proposal, color = color})&lt;br /&gt;
                        legendKeys[proposal] = true&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            if qStatus and eligibleVal then&lt;br /&gt;
                local uncast = math.max(0, eligibleVal - castVal)&lt;br /&gt;
                local rawNvColor = getArg(b, &amp;quot;nvoters_color&amp;quot;) or &amp;quot;#E2E8F0&amp;quot;&lt;br /&gt;
                local nvColor = isValidHexColor(rawNvColor) and rawNvColor or &amp;quot;#E2E8F0&amp;quot;&lt;br /&gt;
                local nvName = (getArg(b, &amp;quot;nvoters_name&amp;quot;) or i18n.nvoters_name_default)&lt;br /&gt;
                table.insert(tempBarData, {proposal = nvName, value = uncast, color = nvColor, isNV = true})&lt;br /&gt;
                currentVisualSum = currentVisualSum + uncast&lt;br /&gt;
                if legendCommon and not legendKeys[nvName] then&lt;br /&gt;
                    table.insert(globalLegendItems, {proposal = nvName, color = nvColor})&lt;br /&gt;
                    legendKeys[nvName] = true&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            local m1, m2, m3 = nil, nil, nil&lt;br /&gt;
            local m1Label, m2Label, m3Label = &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;&lt;br /&gt;
            local bracketWidth = 0&lt;br /&gt;
            &lt;br /&gt;
            -- Berechnung Mehrheit (Marker 1)&lt;br /&gt;
            if tVal and currentVisualSum &amp;gt; 0 then&lt;br /&gt;
                local basis = (tType == &amp;quot;cast&amp;quot; or tType == valueMap.cast) and castVal or validVal&lt;br /&gt;
                m1 = (tMode == &amp;quot;relative&amp;quot; or tMode == valueMap.relative) and (((tVal / 100) * basis) / currentVisualSum * 100) or ((tVal / currentVisualSum) * 100)&lt;br /&gt;
                bracketWidth = (basis / currentVisualSum) * 100&lt;br /&gt;
                m1Label = (tLegendCustom and tLegendCustom ~= &amp;quot;&amp;quot;) and tLegendCustom or ((tType == &amp;quot;cast&amp;quot; or tType == valueMap.cast) and i18n.majority_cast or i18n.majority_valid)&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            -- Berechnung Erstes Quorum (Marker 2)&lt;br /&gt;
            if qStatus and qVal and currentVisualSum &amp;gt; 0 then&lt;br /&gt;
                m2 = (qMode == &amp;quot;relative&amp;quot; or qMode == valueMap.relative) and (((qVal / 100) * eligibleVal) / currentVisualSum * 100) or ((qVal / currentVisualSum) * 100)&lt;br /&gt;
                if qLegendCustom and qLegendCustom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    m2Label = qLegendCustom&lt;br /&gt;
                else&lt;br /&gt;
                    local qPrefix = i18n.quorum_turnout&lt;br /&gt;
                    if qType == &amp;quot;approval&amp;quot; or qType == valueMap.approval then qPrefix = i18n.quorum_approval &lt;br /&gt;
                    elseif qType == &amp;quot;veto&amp;quot; or qType == valueMap.veto then qPrefix = i18n.quorum_veto end&lt;br /&gt;
                    m2Label = (qThresholdRaw or &amp;quot;0&amp;quot;) .. &amp;quot; % &amp;quot; .. qPrefix .. i18n.quorum_suffix&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            -- Berechnung Zweites Quorum (Marker 3)&lt;br /&gt;
            if q2Status and q2Val and currentVisualSum &amp;gt; 0 then&lt;br /&gt;
                m3 = (q2Mode == &amp;quot;relative&amp;quot; or q2Mode == valueMap.relative) and (((q2Val / 100) * eligibleVal) / currentVisualSum * 100) or ((q2Val / currentVisualSum) * 100)&lt;br /&gt;
                if q2LegendCustom and q2LegendCustom ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    m3Label = q2LegendCustom&lt;br /&gt;
                else&lt;br /&gt;
                    local q2Prefix = i18n.quorum_turnout&lt;br /&gt;
                    if q2Type == &amp;quot;approval&amp;quot; or q2Type == valueMap.approval then q2Prefix = i18n.quorum_approval &lt;br /&gt;
                    elseif q2Type == &amp;quot;veto&amp;quot; or q2Type == valueMap.veto then q2Prefix = i18n.quorum_veto end&lt;br /&gt;
                    m3Label = (q2ThresholdRaw or &amp;quot;0&amp;quot;) .. &amp;quot; % &amp;quot; .. q2Prefix .. i18n.quorum_suffix&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
 &lt;br /&gt;
            local markerTexts = {}&lt;br /&gt;
            if m1 then table.insert(markerTexts, {text = m1Label, type = 1, pos = m1}) end&lt;br /&gt;
            if m2 then table.insert(markerTexts, {text = m2Label, type = 2, pos = m2}) end&lt;br /&gt;
            if m3 then table.insert(markerTexts, {text = m3Label, type = 3, pos = m3}) end&lt;br /&gt;
 &lt;br /&gt;
            table.insert(allData, {&lt;br /&gt;
                data = tempBarData, total = currentVisualSum, id = b, &lt;br /&gt;
                validTotal = validVal, tType = tType, &lt;br /&gt;
                markerTexts = markerTexts, &lt;br /&gt;
                marker1 = m1, marker1Label = m1Label, &lt;br /&gt;
                marker2 = m2, marker2Label = m2Label,&lt;br /&gt;
                marker3 = m3, marker3Label = m3Label,&lt;br /&gt;
                bracketWidth = bracketWidth, bracketLabel = ((tType == &amp;quot;cast&amp;quot; or tType == valueMap.cast) and i18n.bracket_cast or i18n.bracket_valid)&lt;br /&gt;
            })&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    -- Rendering&lt;br /&gt;
    local container = mw.html.create(&amp;#039;div&amp;#039;):css({[&amp;#039;float&amp;#039;]=&amp;#039;right&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;320px&amp;#039;, [&amp;#039;border&amp;#039;]=&amp;#039;1px solid #a2a9b1&amp;#039;, [&amp;#039;padding&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;background&amp;#039;]=&amp;#039;#f8f9fa&amp;#039;, [&amp;#039;margin&amp;#039;]=&amp;#039;0 0 1em 1em&amp;#039;, [&amp;#039;font-family&amp;#039;]=&amp;#039;sans-serif&amp;#039;})&lt;br /&gt;
    container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-weight&amp;#039;]=&amp;#039;bold&amp;#039;, [&amp;#039;font-size&amp;#039;]=&amp;#039;1.1em&amp;#039;, [&amp;#039;text-align&amp;#039;]=&amp;#039;center&amp;#039;, [&amp;#039;margin-bottom&amp;#039;]=&amp;#039;1px&amp;#039;}):wikitext(title)&lt;br /&gt;
    &lt;br /&gt;
    local subtitle = getArg(1, &amp;quot;subtitle&amp;quot;)&lt;br /&gt;
    if subtitle and subtitle ~= &amp;quot;&amp;quot; then container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.85em&amp;#039;, [&amp;#039;color&amp;#039;]=&amp;#039;#555&amp;#039;, [&amp;#039;text-align&amp;#039;]=&amp;#039;center&amp;#039;, [&amp;#039;margin-bottom&amp;#039;]=&amp;#039;10px&amp;#039;}):wikitext(subtitle) end&lt;br /&gt;
 &lt;br /&gt;
    for _, bSet in ipairs(allData) do&lt;br /&gt;
        local bTitle = getArg(bSet.id, &amp;quot;bar_title&amp;quot;)&lt;br /&gt;
        if bTitle then container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.9em&amp;#039;, [&amp;#039;font-weight&amp;#039;]=&amp;#039;bold&amp;#039;, [&amp;#039;margin-top&amp;#039;]=&amp;#039;15px&amp;#039;, [&amp;#039;border-bottom&amp;#039;]=&amp;#039;1px solid #eee&amp;#039;}):wikitext(bTitle) end&lt;br /&gt;
        &lt;br /&gt;
        local labelLevelHeight = 16&lt;br /&gt;
        local totalLabelHeight = #bSet.data * labelLevelHeight + 10&lt;br /&gt;
        local graphWrapper = container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;] = &amp;#039;relative&amp;#039;, [&amp;#039;width&amp;#039;] = &amp;#039;100%&amp;#039;, [&amp;#039;margin-top&amp;#039;] = &amp;#039;15px&amp;#039;, [&amp;#039;margin-bottom&amp;#039;] = totalLabelHeight .. &amp;#039;px&amp;#039;})&lt;br /&gt;
 &lt;br /&gt;
        local graphContainer = graphWrapper:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;relative&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;100%&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;24px&amp;#039;, [&amp;#039;border&amp;#039;]=&amp;#039;1px solid #777&amp;#039;, [&amp;#039;background&amp;#039;]=&amp;#039;#eee&amp;#039;, [&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;box-sizing&amp;#039;]=&amp;#039;border-box&amp;#039;, [&amp;#039;z-index&amp;#039;]=&amp;#039;2&amp;#039;})&lt;br /&gt;
        &lt;br /&gt;
        local currentOffset = 0&lt;br /&gt;
        for i, g in ipairs(bSet.data) do&lt;br /&gt;
            local percent = (g.value / bSet.total) * 100&lt;br /&gt;
            &lt;br /&gt;
            -- Mouseover: Name und absolute Zahl&lt;br /&gt;
            local barSegment = graphContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;flex&amp;#039;]=string.format(&amp;quot;%.6f 0 0&amp;quot;, g.value), [&amp;#039;background-color&amp;#039;]=g.color, [&amp;#039;height&amp;#039;]=&amp;#039;100%&amp;#039;, [&amp;#039;position&amp;#039;]=&amp;#039;relative&amp;#039;}):attr(&amp;#039;title&amp;#039;, string.format(&amp;quot;%s: %s&amp;quot;, g.proposal, mw.language.getContentLanguage():formatNum(g.value)))&lt;br /&gt;
 &lt;br /&gt;
            -- Vertical label lines &amp;amp; Text unter dem Balken&lt;br /&gt;
            if percent &amp;gt; 0 then&lt;br /&gt;
                local centerX = currentOffset + (percent / 2)&lt;br /&gt;
                local lineContainer = graphWrapper:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;top&amp;#039;]=&amp;#039;24px&amp;#039;, [&amp;#039;left&amp;#039;]=&amp;#039;0&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;100%&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;1px&amp;#039;})&lt;br /&gt;
                &lt;br /&gt;
                -- Vertical line&lt;br /&gt;
                lineContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;left&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, centerX), [&amp;#039;top&amp;#039;]=&amp;#039;0&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;1px&amp;#039;, [&amp;#039;height&amp;#039;]=(i * labelLevelHeight) .. &amp;#039;px&amp;#039;, [&amp;#039;background-color&amp;#039;]=&amp;#039;#aaa&amp;#039;})&lt;br /&gt;
 &lt;br /&gt;
                -- Horizontal line to center&lt;br /&gt;
                local lineWidth = math.abs(centerX - 50)&lt;br /&gt;
                local lineLeft = math.min(centerX, 50)&lt;br /&gt;
                lineContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;left&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, lineLeft), [&amp;#039;top&amp;#039;]=(i * labelLevelHeight) .. &amp;#039;px&amp;#039;, [&amp;#039;width&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, lineWidth), [&amp;#039;height&amp;#039;]=&amp;#039;1px&amp;#039;, [&amp;#039;background-color&amp;#039;]=&amp;#039;#aaa&amp;#039;})&lt;br /&gt;
 &lt;br /&gt;
                -- Label text (nur noch ein Prozentwert)&lt;br /&gt;
                local labelContent = string.format(&amp;quot;%.1f%%&amp;quot;, percent)&lt;br /&gt;
                if g.isNV then&lt;br /&gt;
                    labelContent = labelContent .. &amp;quot; (&amp;quot; .. mw.language.getContentLanguage():formatNum(g.value) .. &amp;quot;)&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
 &lt;br /&gt;
                graphWrapper:tag(&amp;#039;div&amp;#039;):css({&lt;br /&gt;
                    [&amp;#039;position&amp;#039;] = &amp;#039;absolute&amp;#039;,&lt;br /&gt;
                    [&amp;#039;top&amp;#039;] = (24 + i * labelLevelHeight - 7) .. &amp;#039;px&amp;#039;,&lt;br /&gt;
                    [&amp;#039;left&amp;#039;] = &amp;#039;50%&amp;#039;,&lt;br /&gt;
                    [&amp;#039;transform&amp;#039;] = &amp;#039;translateX(-50%)&amp;#039;,&lt;br /&gt;
                    [&amp;#039;background&amp;#039;] = &amp;#039;#f8f9fa&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding&amp;#039;] = &amp;#039;0 4px&amp;#039;,&lt;br /&gt;
                    [&amp;#039;font-size&amp;#039;] = &amp;#039;10px&amp;#039;,&lt;br /&gt;
                    [&amp;#039;font-weight&amp;#039;] = &amp;#039;bold&amp;#039;,&lt;br /&gt;
                    [&amp;#039;white-space&amp;#039;] = &amp;#039;nowrap&amp;#039;,&lt;br /&gt;
                    [&amp;#039;z-index&amp;#039;] = &amp;#039;3&amp;#039;&lt;br /&gt;
                }):wikitext(labelContent)&lt;br /&gt;
            end&lt;br /&gt;
            currentOffset = currentOffset + percent&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        -- Markers (Threshold/Quorums) - Linien einzeichnen&lt;br /&gt;
        if bSet.marker1 then&lt;br /&gt;
            graphContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;left&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, bSet.marker1), [&amp;#039;top&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;bottom&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;z-index&amp;#039;]=&amp;#039;10&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;2px&amp;#039;, [&amp;#039;background-color&amp;#039;]=&amp;#039;#000&amp;#039;, [&amp;#039;cursor&amp;#039;]=&amp;#039;help&amp;#039;}):attr(&amp;#039;title&amp;#039;, bSet.marker1Label)&lt;br /&gt;
        end&lt;br /&gt;
        if bSet.marker2 then&lt;br /&gt;
            graphContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;left&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, bSet.marker2), [&amp;#039;top&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;bottom&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;z-index&amp;#039;]=&amp;#039;10&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;0&amp;#039;, [&amp;#039;border-left&amp;#039;]=&amp;#039;2px dotted #000&amp;#039;, [&amp;#039;cursor&amp;#039;]=&amp;#039;help&amp;#039;}):attr(&amp;#039;title&amp;#039;, bSet.marker2Label)&lt;br /&gt;
        end&lt;br /&gt;
        if bSet.marker3 then&lt;br /&gt;
            graphContainer:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;position&amp;#039;]=&amp;#039;absolute&amp;#039;, [&amp;#039;left&amp;#039;]=string.format(&amp;quot;%.2f%%&amp;quot;, bSet.marker3), [&amp;#039;top&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;bottom&amp;#039;]=&amp;#039;-2px&amp;#039;, [&amp;#039;z-index&amp;#039;]=&amp;#039;10&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;0&amp;#039;, [&amp;#039;border-left&amp;#039;]=&amp;#039;2px dashed #000&amp;#039;, [&amp;#039;cursor&amp;#039;]=&amp;#039;help&amp;#039;}):attr(&amp;#039;title&amp;#039;, bSet.marker3Label)&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        -- Local Legend&lt;br /&gt;
        if not legendCommon then&lt;br /&gt;
            local leg = container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;margin-top&amp;#039;]=&amp;#039;5px&amp;#039;})&lt;br /&gt;
            local icons = leg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;flex-wrap&amp;#039;]=&amp;#039;wrap&amp;#039;, [&amp;#039;gap&amp;#039;]=&amp;#039;5px&amp;#039;, [&amp;#039;font-size&amp;#039;]=&amp;#039;0.8em&amp;#039;})&lt;br /&gt;
            for _, g in ipairs(bSet.data) do&lt;br /&gt;
                local e = icons:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                e:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;inline-block&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;8px&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;8px&amp;#039;, [&amp;#039;background-color&amp;#039;]=g.color, [&amp;#039;border&amp;#039;]=&amp;#039;1px solid #999&amp;#039;, [&amp;#039;margin-right&amp;#039;]=&amp;#039;3px&amp;#039;})&lt;br /&gt;
                e:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;font-weight&amp;#039;]=&amp;#039;bold&amp;#039;}):wikitext(g.proposal)&lt;br /&gt;
            end&lt;br /&gt;
            if #bSet.markerTexts &amp;gt; 0 then&lt;br /&gt;
                local mLeg = leg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.75em&amp;#039;, [&amp;#039;color&amp;#039;]=&amp;#039;#444&amp;#039;, [&amp;#039;margin-top&amp;#039;]=&amp;#039;6px&amp;#039;})&lt;br /&gt;
                for _, tObj in ipairs(bSet.markerTexts) do&lt;br /&gt;
                    local row = mLeg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;align-items&amp;#039;]=&amp;#039;center&amp;#039;, [&amp;#039;margin-bottom&amp;#039;]=&amp;#039;2px&amp;#039;})&lt;br /&gt;
                    &lt;br /&gt;
                    local bTop = &amp;#039;none&amp;#039;&lt;br /&gt;
                    if tObj.type == 2 then bTop = &amp;#039;2px dotted #000&amp;#039;&lt;br /&gt;
                    elseif tObj.type == 3 then bTop = &amp;#039;2px dashed #000&amp;#039; end&lt;br /&gt;
                    local bgCol = (tObj.type == 2 or tObj.type == 3) and &amp;#039;transparent&amp;#039; or &amp;#039;#000&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
                    row:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;inline-block&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;12px&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;3px&amp;#039;, [&amp;#039;background-color&amp;#039;]=bgCol, [&amp;#039;border-top&amp;#039;]=bTop, [&amp;#039;margin-right&amp;#039;]=&amp;#039;8px&amp;#039;})&lt;br /&gt;
                    row:tag(&amp;#039;span&amp;#039;):wikitext(tObj.text)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    -- Global Legend&lt;br /&gt;
    if legendCommon and #globalLegendItems &amp;gt; 0 then&lt;br /&gt;
        local leg = container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;margin-top&amp;#039;]=&amp;#039;15px&amp;#039;, [&amp;#039;padding-top&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;border-top&amp;#039;]=&amp;#039;1px solid #ccc&amp;#039;})&lt;br /&gt;
        local icons = leg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;flex-wrap&amp;#039;]=&amp;#039;wrap&amp;#039;, [&amp;#039;gap&amp;#039;]=&amp;#039;8px&amp;#039;, [&amp;#039;font-size&amp;#039;]=&amp;#039;0.8em&amp;#039;})&lt;br /&gt;
        for _, g in ipairs(globalLegendItems) do&lt;br /&gt;
            local e = icons:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;align-items&amp;#039;]=&amp;#039;center&amp;#039;})&lt;br /&gt;
            e:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;inline-block&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;background-color&amp;#039;]=g.color, [&amp;#039;border&amp;#039;]=&amp;#039;1px solid #999&amp;#039;, [&amp;#039;margin-right&amp;#039;]=&amp;#039;4px&amp;#039;, [&amp;#039;flex-shrink&amp;#039;]=&amp;#039;0&amp;#039;})&lt;br /&gt;
            e:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;font-weight&amp;#039;]=&amp;#039;bold&amp;#039;}):wikitext(g.proposal)&lt;br /&gt;
        end&lt;br /&gt;
        if allData[1] and #allData[1].markerTexts &amp;gt; 0 then&lt;br /&gt;
            local mLeg = leg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.75em&amp;#039;, [&amp;#039;color&amp;#039;]=&amp;#039;#444&amp;#039;, [&amp;#039;margin-top&amp;#039;]=&amp;#039;10px&amp;#039;})&lt;br /&gt;
            for _, tObj in ipairs(allData[1].markerTexts) do&lt;br /&gt;
                local row = mLeg:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;flex&amp;#039;, [&amp;#039;align-items&amp;#039;]=&amp;#039;center&amp;#039;, [&amp;#039;margin-bottom&amp;#039;]=&amp;#039;2px&amp;#039;})&lt;br /&gt;
                &lt;br /&gt;
                local bTop = &amp;#039;none&amp;#039;&lt;br /&gt;
                if tObj.type == 2 then bTop = &amp;#039;2px dotted #000&amp;#039;&lt;br /&gt;
                elseif tObj.type == 3 then bTop = &amp;#039;2px dashed #000&amp;#039; end&lt;br /&gt;
                local bgCol = (tObj.type == 2 or tObj.type == 3) and &amp;#039;transparent&amp;#039; or &amp;#039;#000&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
                row:tag(&amp;#039;span&amp;#039;):css({[&amp;#039;display&amp;#039;]=&amp;#039;inline-block&amp;#039;, [&amp;#039;width&amp;#039;]=&amp;#039;12px&amp;#039;, [&amp;#039;height&amp;#039;]=&amp;#039;3px&amp;#039;, [&amp;#039;background-color&amp;#039;]=bgCol, [&amp;#039;border-top&amp;#039;]=bTop, [&amp;#039;margin-right&amp;#039;]=&amp;#039;8px&amp;#039;})&lt;br /&gt;
                row:tag(&amp;#039;span&amp;#039;):wikitext(tObj.text)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    -- Annotation (Sicheres Kürzen für UTF-8)&lt;br /&gt;
    local annotation = getArg(1, &amp;quot;annotation&amp;quot;)&lt;br /&gt;
    if annotation and annotation ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        if mw.ustring.len(annotation) &amp;gt; 250 then&lt;br /&gt;
            annotation = mw.ustring.sub(annotation, 1, 247) .. &amp;quot;...&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.75em&amp;#039;, [&amp;#039;margin-top&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;border-top&amp;#039;]=&amp;#039;1px solid #ccc&amp;#039;, [&amp;#039;padding-top&amp;#039;]=&amp;#039;5px&amp;#039;, [&amp;#039;color&amp;#039;]=&amp;#039;#333&amp;#039;}):wikitext(&amp;quot;&amp;#039;&amp;#039;&amp;#039;Anmerkung:&amp;#039;&amp;#039;&amp;#039; &amp;quot; .. annotation)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local source = getArg(1, &amp;quot;source&amp;quot;)&lt;br /&gt;
    if source and source ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        container:tag(&amp;#039;div&amp;#039;):css({[&amp;#039;font-size&amp;#039;]=&amp;#039;0.7em&amp;#039;, [&amp;#039;margin-top&amp;#039;]=&amp;#039;10px&amp;#039;, [&amp;#039;border-top&amp;#039;]=&amp;#039;1px solid #ccc&amp;#039;, [&amp;#039;padding-top&amp;#039;]=&amp;#039;5px&amp;#039;, [&amp;#039;color&amp;#039;]=&amp;#039;#666&amp;#039;}):wikitext(i18n.source_prefix .. source)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return tostring(container)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
</feed>