// Code generated by qtc from "web.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. //line app/vmalert/web.qtpl:1 package main //line app/vmalert/web.qtpl:3 import ( "sort" "time" "github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/tpl" ) //line app/vmalert/web.qtpl:11 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) //line app/vmalert/web.qtpl:11 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) //line app/vmalert/web.qtpl:11 func StreamWelcome(qw422016 *qt422016.Writer) { //line app/vmalert/web.qtpl:11 qw422016.N().S(` `) //line app/vmalert/web.qtpl:12 tpl.StreamHeader(qw422016, "vmalert", navItems) //line app/vmalert/web.qtpl:12 qw422016.N().S(`

API:
`) //line app/vmalert/web.qtpl:15 for _, p := range apiLinks { //line app/vmalert/web.qtpl:15 qw422016.N().S(` `) //line app/vmalert/web.qtpl:17 p, doc := p[0], p[1] //line app/vmalert/web.qtpl:18 qw422016.N().S(` `) //line app/vmalert/web.qtpl:19 qw422016.E().S(p) //line app/vmalert/web.qtpl:19 qw422016.N().S(` - `) //line app/vmalert/web.qtpl:19 qw422016.E().S(doc) //line app/vmalert/web.qtpl:19 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:20 } //line app/vmalert/web.qtpl:20 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:22 tpl.StreamFooter(qw422016) //line app/vmalert/web.qtpl:22 qw422016.N().S(` `) //line app/vmalert/web.qtpl:23 } //line app/vmalert/web.qtpl:23 func WriteWelcome(qq422016 qtio422016.Writer) { //line app/vmalert/web.qtpl:23 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:23 StreamWelcome(qw422016) //line app/vmalert/web.qtpl:23 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:23 } //line app/vmalert/web.qtpl:23 func Welcome() string { //line app/vmalert/web.qtpl:23 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:23 WriteWelcome(qb422016) //line app/vmalert/web.qtpl:23 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:23 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:23 return qs422016 //line app/vmalert/web.qtpl:23 } //line app/vmalert/web.qtpl:25 func StreamListGroups(qw422016 *qt422016.Writer, groups []APIGroup) { //line app/vmalert/web.qtpl:25 qw422016.N().S(` `) //line app/vmalert/web.qtpl:26 tpl.StreamHeader(qw422016, "Groups", navItems) //line app/vmalert/web.qtpl:26 qw422016.N().S(` `) //line app/vmalert/web.qtpl:27 if len(groups) > 0 { //line app/vmalert/web.qtpl:27 qw422016.N().S(` `) //line app/vmalert/web.qtpl:29 rOk := make(map[string]int) rNotOk := make(map[string]int) for _, g := range groups { for _, r := range g.AlertingRules { if r.LastError != "" { rNotOk[g.Name]++ } else { rOk[g.Name]++ } } for _, r := range g.RecordingRules { if r.LastError != "" { rNotOk[g.Name]++ } else { rOk[g.Name]++ } } } //line app/vmalert/web.qtpl:47 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:50 for _, g := range groups { //line app/vmalert/web.qtpl:50 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:53 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:53 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:53 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:53 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:53 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:53 } //line app/vmalert/web.qtpl:53 qw422016.N().S(` (every `) //line app/vmalert/web.qtpl:53 qw422016.E().S(g.Interval) //line app/vmalert/web.qtpl:53 qw422016.N().S(`) `) //line app/vmalert/web.qtpl:54 if rNotOk[g.Name] > 0 { //line app/vmalert/web.qtpl:54 qw422016.N().S(``) //line app/vmalert/web.qtpl:54 qw422016.N().D(rNotOk[g.Name]) //line app/vmalert/web.qtpl:54 qw422016.N().S(` `) //line app/vmalert/web.qtpl:54 } //line app/vmalert/web.qtpl:54 qw422016.N().S(` `) //line app/vmalert/web.qtpl:55 qw422016.N().D(rOk[g.Name]) //line app/vmalert/web.qtpl:55 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:56 qw422016.E().S(g.File) //line app/vmalert/web.qtpl:56 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:57 if len(g.ExtraFilterLabels) > 0 { //line app/vmalert/web.qtpl:57 qw422016.N().S(`
Extra filter labels `) //line app/vmalert/web.qtpl:59 for k, v := range g.ExtraFilterLabels { //line app/vmalert/web.qtpl:59 qw422016.N().S(` `) //line app/vmalert/web.qtpl:60 qw422016.E().S(k) //line app/vmalert/web.qtpl:60 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:60 qw422016.E().S(v) //line app/vmalert/web.qtpl:60 qw422016.N().S(` `) //line app/vmalert/web.qtpl:61 } //line app/vmalert/web.qtpl:61 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:63 } //line app/vmalert/web.qtpl:63 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:76 for _, ar := range g.AlertingRules { //line app/vmalert/web.qtpl:76 qw422016.N().S(` `) //line app/vmalert/web.qtpl:90 } //line app/vmalert/web.qtpl:90 qw422016.N().S(` `) //line app/vmalert/web.qtpl:91 for _, rr := range g.RecordingRules { //line app/vmalert/web.qtpl:91 qw422016.N().S(` `) //line app/vmalert/web.qtpl:105 } //line app/vmalert/web.qtpl:105 qw422016.N().S(`
Rule Error Samples Updated
alert: `) //line app/vmalert/web.qtpl:79 qw422016.E().S(ar.Name) //line app/vmalert/web.qtpl:79 qw422016.N().S(` (for: `) //line app/vmalert/web.qtpl:79 qw422016.E().V(ar.For) //line app/vmalert/web.qtpl:79 qw422016.N().S(`)
`)
//line app/vmalert/web.qtpl:80
				qw422016.E().S(ar.Expression)
//line app/vmalert/web.qtpl:80
				qw422016.N().S(`

`) //line app/vmalert/web.qtpl:81 if len(ar.Labels) > 0 { //line app/vmalert/web.qtpl:81 qw422016.N().S(` Labels:`) //line app/vmalert/web.qtpl:81 } //line app/vmalert/web.qtpl:81 qw422016.N().S(` `) //line app/vmalert/web.qtpl:82 for k, v := range ar.Labels { //line app/vmalert/web.qtpl:82 qw422016.N().S(` `) //line app/vmalert/web.qtpl:83 qw422016.E().S(k) //line app/vmalert/web.qtpl:83 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:83 qw422016.E().S(v) //line app/vmalert/web.qtpl:83 qw422016.N().S(` `) //line app/vmalert/web.qtpl:84 } //line app/vmalert/web.qtpl:84 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:86 qw422016.E().S(ar.LastError) //line app/vmalert/web.qtpl:86 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:87 qw422016.N().D(ar.LastSamples) //line app/vmalert/web.qtpl:87 qw422016.N().S(` `) //line app/vmalert/web.qtpl:88 qw422016.N().FPrec(time.Since(ar.LastExec).Seconds(), 3) //line app/vmalert/web.qtpl:88 qw422016.N().S(`s ago
record: `) //line app/vmalert/web.qtpl:94 qw422016.E().S(rr.Name) //line app/vmalert/web.qtpl:94 qw422016.N().S(`
`)
//line app/vmalert/web.qtpl:95
				qw422016.E().S(rr.Expression)
//line app/vmalert/web.qtpl:95
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:96 if len(rr.Labels) > 0 { //line app/vmalert/web.qtpl:96 qw422016.N().S(` Labels:`) //line app/vmalert/web.qtpl:96 } //line app/vmalert/web.qtpl:96 qw422016.N().S(` `) //line app/vmalert/web.qtpl:97 for k, v := range rr.Labels { //line app/vmalert/web.qtpl:97 qw422016.N().S(` `) //line app/vmalert/web.qtpl:98 qw422016.E().S(k) //line app/vmalert/web.qtpl:98 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:98 qw422016.E().S(v) //line app/vmalert/web.qtpl:98 qw422016.N().S(` `) //line app/vmalert/web.qtpl:99 } //line app/vmalert/web.qtpl:99 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:101 qw422016.E().S(rr.LastError) //line app/vmalert/web.qtpl:101 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:102 qw422016.N().D(rr.LastSamples) //line app/vmalert/web.qtpl:102 qw422016.N().S(` `) //line app/vmalert/web.qtpl:103 qw422016.N().FPrec(time.Since(rr.LastExec).Seconds(), 3) //line app/vmalert/web.qtpl:103 qw422016.N().S(`s ago
`) //line app/vmalert/web.qtpl:109 } //line app/vmalert/web.qtpl:109 qw422016.N().S(` `) //line app/vmalert/web.qtpl:111 } else { //line app/vmalert/web.qtpl:111 qw422016.N().S(`

No items...

`) //line app/vmalert/web.qtpl:115 } //line app/vmalert/web.qtpl:115 qw422016.N().S(` `) //line app/vmalert/web.qtpl:117 tpl.StreamFooter(qw422016) //line app/vmalert/web.qtpl:117 qw422016.N().S(` `) //line app/vmalert/web.qtpl:119 } //line app/vmalert/web.qtpl:119 func WriteListGroups(qq422016 qtio422016.Writer, groups []APIGroup) { //line app/vmalert/web.qtpl:119 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:119 StreamListGroups(qw422016, groups) //line app/vmalert/web.qtpl:119 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:119 } //line app/vmalert/web.qtpl:119 func ListGroups(groups []APIGroup) string { //line app/vmalert/web.qtpl:119 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:119 WriteListGroups(qb422016, groups) //line app/vmalert/web.qtpl:119 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:119 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:119 return qs422016 //line app/vmalert/web.qtpl:119 } //line app/vmalert/web.qtpl:122 func StreamListAlerts(qw422016 *qt422016.Writer, groupAlerts []GroupAlerts) { //line app/vmalert/web.qtpl:122 qw422016.N().S(` `) //line app/vmalert/web.qtpl:123 tpl.StreamHeader(qw422016, "Alerts", navItems) //line app/vmalert/web.qtpl:123 qw422016.N().S(` `) //line app/vmalert/web.qtpl:124 if len(groupAlerts) > 0 { //line app/vmalert/web.qtpl:124 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:127 for _, ga := range groupAlerts { //line app/vmalert/web.qtpl:127 qw422016.N().S(` `) //line app/vmalert/web.qtpl:128 g := ga.Group //line app/vmalert/web.qtpl:128 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:131 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:131 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:131 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:131 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:131 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:131 } //line app/vmalert/web.qtpl:131 qw422016.N().S(` `) //line app/vmalert/web.qtpl:132 qw422016.N().D(len(ga.Alerts)) //line app/vmalert/web.qtpl:132 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:134 qw422016.E().S(g.File) //line app/vmalert/web.qtpl:134 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:137 var keys []string alertsByRule := make(map[string][]*APIAlert) for _, alert := range ga.Alerts { if len(alertsByRule[alert.RuleID]) < 1 { keys = append(keys, alert.RuleID) } alertsByRule[alert.RuleID] = append(alertsByRule[alert.RuleID], alert) } sort.Strings(keys) //line app/vmalert/web.qtpl:146 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:148 for _, ruleID := range keys { //line app/vmalert/web.qtpl:148 qw422016.N().S(` `) //line app/vmalert/web.qtpl:150 defaultAR := alertsByRule[ruleID][0] var labelKeys []string for k := range defaultAR.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) //line app/vmalert/web.qtpl:156 qw422016.N().S(`
alert: `) //line app/vmalert/web.qtpl:158 qw422016.E().S(defaultAR.Name) //line app/vmalert/web.qtpl:158 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:158 qw422016.N().D(len(alertsByRule[ruleID])) //line app/vmalert/web.qtpl:158 qw422016.N().S(`) | Source
expr:
`)
//line app/vmalert/web.qtpl:161
				qw422016.E().S(defaultAR.Expression)
//line app/vmalert/web.qtpl:161
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:173 for _, ar := range alertsByRule[ruleID] { //line app/vmalert/web.qtpl:173 qw422016.N().S(` `) //line app/vmalert/web.qtpl:190 } //line app/vmalert/web.qtpl:190 qw422016.N().S(`
Labels State Active at Value Link
`) //line app/vmalert/web.qtpl:176 for _, k := range labelKeys { //line app/vmalert/web.qtpl:176 qw422016.N().S(` `) //line app/vmalert/web.qtpl:177 qw422016.E().S(k) //line app/vmalert/web.qtpl:177 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:177 qw422016.E().S(ar.Labels[k]) //line app/vmalert/web.qtpl:177 qw422016.N().S(` `) //line app/vmalert/web.qtpl:178 } //line app/vmalert/web.qtpl:178 qw422016.N().S(` `) //line app/vmalert/web.qtpl:180 streambadgeState(qw422016, ar.State) //line app/vmalert/web.qtpl:180 qw422016.N().S(` `) //line app/vmalert/web.qtpl:182 qw422016.E().S(ar.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:182 qw422016.N().S(` `) //line app/vmalert/web.qtpl:183 if ar.Restored { //line app/vmalert/web.qtpl:183 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:183 } //line app/vmalert/web.qtpl:183 qw422016.N().S(` `) //line app/vmalert/web.qtpl:185 qw422016.E().S(ar.Value) //line app/vmalert/web.qtpl:185 qw422016.N().S(` Details
`) //line app/vmalert/web.qtpl:193 } //line app/vmalert/web.qtpl:193 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:196 } //line app/vmalert/web.qtpl:196 qw422016.N().S(` `) //line app/vmalert/web.qtpl:198 } else { //line app/vmalert/web.qtpl:198 qw422016.N().S(`

No items...

`) //line app/vmalert/web.qtpl:202 } //line app/vmalert/web.qtpl:202 qw422016.N().S(` `) //line app/vmalert/web.qtpl:204 tpl.StreamFooter(qw422016) //line app/vmalert/web.qtpl:204 qw422016.N().S(` `) //line app/vmalert/web.qtpl:206 } //line app/vmalert/web.qtpl:206 func WriteListAlerts(qq422016 qtio422016.Writer, groupAlerts []GroupAlerts) { //line app/vmalert/web.qtpl:206 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:206 StreamListAlerts(qw422016, groupAlerts) //line app/vmalert/web.qtpl:206 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:206 } //line app/vmalert/web.qtpl:206 func ListAlerts(groupAlerts []GroupAlerts) string { //line app/vmalert/web.qtpl:206 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:206 WriteListAlerts(qb422016, groupAlerts) //line app/vmalert/web.qtpl:206 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:206 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:206 return qs422016 //line app/vmalert/web.qtpl:206 } //line app/vmalert/web.qtpl:208 func StreamAlert(qw422016 *qt422016.Writer, alert *APIAlert) { //line app/vmalert/web.qtpl:208 qw422016.N().S(` `) //line app/vmalert/web.qtpl:209 tpl.StreamHeader(qw422016, "", navItems) //line app/vmalert/web.qtpl:209 qw422016.N().S(` `) //line app/vmalert/web.qtpl:211 var labelKeys []string for k := range alert.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) var annotationKeys []string for k := range alert.Annotations { annotationKeys = append(annotationKeys, k) } sort.Strings(annotationKeys) //line app/vmalert/web.qtpl:222 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:223 qw422016.E().S(alert.Name) //line app/vmalert/web.qtpl:223 qw422016.N().S(``) //line app/vmalert/web.qtpl:223 qw422016.E().S(alert.State) //line app/vmalert/web.qtpl:223 qw422016.N().S(`
Active at
`) //line app/vmalert/web.qtpl:230 qw422016.E().S(alert.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:230 qw422016.N().S(`
Expr
`)
//line app/vmalert/web.qtpl:240
	qw422016.E().S(alert.Expression)
//line app/vmalert/web.qtpl:240
	qw422016.N().S(`
Labels
`) //line app/vmalert/web.qtpl:250 for _, k := range labelKeys { //line app/vmalert/web.qtpl:250 qw422016.N().S(` `) //line app/vmalert/web.qtpl:251 qw422016.E().S(k) //line app/vmalert/web.qtpl:251 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:251 qw422016.E().S(alert.Labels[k]) //line app/vmalert/web.qtpl:251 qw422016.N().S(` `) //line app/vmalert/web.qtpl:252 } //line app/vmalert/web.qtpl:252 qw422016.N().S(`
Annotations
`) //line app/vmalert/web.qtpl:262 for _, k := range annotationKeys { //line app/vmalert/web.qtpl:262 qw422016.N().S(` `) //line app/vmalert/web.qtpl:263 qw422016.E().S(k) //line app/vmalert/web.qtpl:263 qw422016.N().S(`:

`) //line app/vmalert/web.qtpl:264 qw422016.E().S(alert.Annotations[k]) //line app/vmalert/web.qtpl:264 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:265 } //line app/vmalert/web.qtpl:265 qw422016.N().S(`
Group
Source link
`) //line app/vmalert/web.qtpl:289 tpl.StreamFooter(qw422016) //line app/vmalert/web.qtpl:289 qw422016.N().S(` `) //line app/vmalert/web.qtpl:291 } //line app/vmalert/web.qtpl:291 func WriteAlert(qq422016 qtio422016.Writer, alert *APIAlert) { //line app/vmalert/web.qtpl:291 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:291 StreamAlert(qw422016, alert) //line app/vmalert/web.qtpl:291 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:291 } //line app/vmalert/web.qtpl:291 func Alert(alert *APIAlert) string { //line app/vmalert/web.qtpl:291 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:291 WriteAlert(qb422016, alert) //line app/vmalert/web.qtpl:291 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:291 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:291 return qs422016 //line app/vmalert/web.qtpl:291 } //line app/vmalert/web.qtpl:293 func streambadgeState(qw422016 *qt422016.Writer, state string) { //line app/vmalert/web.qtpl:293 qw422016.N().S(` `) //line app/vmalert/web.qtpl:295 badgeClass := "bg-warning text-dark" if state == "firing" { badgeClass = "bg-danger" } //line app/vmalert/web.qtpl:299 qw422016.N().S(` `) //line app/vmalert/web.qtpl:300 qw422016.E().S(state) //line app/vmalert/web.qtpl:300 qw422016.N().S(` `) //line app/vmalert/web.qtpl:301 } //line app/vmalert/web.qtpl:301 func writebadgeState(qq422016 qtio422016.Writer, state string) { //line app/vmalert/web.qtpl:301 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:301 streambadgeState(qw422016, state) //line app/vmalert/web.qtpl:301 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:301 } //line app/vmalert/web.qtpl:301 func badgeState(state string) string { //line app/vmalert/web.qtpl:301 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:301 writebadgeState(qb422016, state) //line app/vmalert/web.qtpl:301 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:301 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:301 return qs422016 //line app/vmalert/web.qtpl:301 } //line app/vmalert/web.qtpl:303 func streambadgeRestored(qw422016 *qt422016.Writer) { //line app/vmalert/web.qtpl:303 qw422016.N().S(` restored `) //line app/vmalert/web.qtpl:305 } //line app/vmalert/web.qtpl:305 func writebadgeRestored(qq422016 qtio422016.Writer) { //line app/vmalert/web.qtpl:305 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:305 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:305 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:305 } //line app/vmalert/web.qtpl:305 func badgeRestored() string { //line app/vmalert/web.qtpl:305 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:305 writebadgeRestored(qb422016) //line app/vmalert/web.qtpl:305 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:305 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:305 return qs422016 //line app/vmalert/web.qtpl:305 }