From 1cf6327385ad1c683e2bc7e153118691935835d7 Mon Sep 17 00:00:00 2001 From: xing Date: Mon, 31 Oct 2022 19:47:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=AB=98=E4=BA=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=EF=BC=8C=E5=B8=83=E5=B1=80=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=84=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actions/comment.go | 41 ++- actions/login.go | 12 + phpass/phpass.go | 253 ++++++++++++++++++ route/route.go | 2 +- .../wp-content/plugins/enlighter/cache/.empty | 0 .../enlighter/cache/enlighterjs.min.css | 19 ++ .../enlighter/cache/enlighterjs.min.js | 4 + .../plugins/enlighter/cache/tinymce.css | 65 +++++ templates/layout/base.gohtml | 7 +- templates/layout/footer.gohtml | 20 +- templates/layout/head.gohtml | 2 + templates/posts/detail.gohtml | 15 +- templates/posts/index.gohtml | 15 -- 13 files changed, 414 insertions(+), 41 deletions(-) create mode 100644 phpass/phpass.go create mode 100755 static/wp-content/plugins/enlighter/cache/.empty create mode 100644 static/wp-content/plugins/enlighter/cache/enlighterjs.min.css create mode 100644 static/wp-content/plugins/enlighter/cache/enlighterjs.min.js create mode 100644 static/wp-content/plugins/enlighter/cache/tinymce.css diff --git a/actions/comment.go b/actions/comment.go index d2a6830..134e44c 100644 --- a/actions/comment.go +++ b/actions/comment.go @@ -1,12 +1,18 @@ package actions import ( + "bytes" "errors" + "fmt" "github.com/gin-gonic/gin" + "github/fthvgb1/wp-go/actions/common" + "github/fthvgb1/wp-go/logs" + "github/fthvgb1/wp-go/mail" "github/fthvgb1/wp-go/vars" - "io/ioutil" + "io" "net/http" "net/http/cookiejar" + "strconv" "strings" "time" ) @@ -17,7 +23,7 @@ func PostComment(c *gin.Context) { Jar: jar, Timeout: time.Second * 3, } - body, err := ioutil.ReadAll(c.Request.Body) + data, err := c.GetRawData() defer func() { if err != nil { c.String(http.StatusConflict, err.Error()) @@ -26,6 +32,16 @@ func PostComment(c *gin.Context) { if err != nil { return } + c.Request.Body = io.NopCloser(bytes.NewBuffer(data)) + i := c.PostForm("comment_post_ID") + author := c.PostForm("author") + m := c.PostForm("email") + comment := c.PostForm("comment") + c.Request.Body = io.NopCloser(bytes.NewBuffer(data)) + body, err := io.ReadAll(c.Request.Body) + if err != nil { + return + } req, err := http.NewRequest("POST", vars.Conf.PostCommentUrl, strings.NewReader(string(body))) if err != nil { return @@ -38,14 +54,31 @@ func PostComment(c *gin.Context) { if err != nil { return } - if res.StatusCode == http.StatusOK && res.Request.Response.StatusCode == http.StatusFound { + //todo 待优化 + if res.Request.Response != nil && res.Request.Response.StatusCode == http.StatusFound { for _, cookie := range res.Request.Response.Cookies() { c.SetCookie(cookie.Name, cookie.Value, cookie.MaxAge, cookie.Path, cookie.Domain, cookie.Secure, cookie.HttpOnly) } c.Redirect(http.StatusFound, res.Request.Response.Header.Get("Location")) + cc := c.Copy() + go func() { + id, err := strconv.ParseUint(i, 10, 64) + if err != nil { + logs.ErrPrintln(err, "获取文档id", i) + return + } + post, err := common.GetPostById(cc, id) + if err != nil { + logs.ErrPrintln(err, "获取文档", id) + return + } + su := fmt.Sprintf("%s[%s]发表了评论对文档[%v]的评论", author, m, post.PostTitle) + err = mail.SendMail([]string{vars.Conf.Mail.User}, su, comment) + logs.ErrPrintln(err, "发送邮件") + }() return } - s, err := ioutil.ReadAll(res.Body) + s, err := io.ReadAll(res.Body) if err != nil { return } diff --git a/actions/login.go b/actions/login.go index 84891c6..f40b6f8 100644 --- a/actions/login.go +++ b/actions/login.go @@ -1,8 +1,12 @@ package actions import ( + "fmt" "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" + "github/fthvgb1/wp-go/helper" + "github/fthvgb1/wp-go/models" + "github/fthvgb1/wp-go/phpass" "net/http" "strings" ) @@ -24,5 +28,13 @@ func Login(c *gin.Context) { c.Error(err) return } + pass, err := phpass.NewPasswordHash(8, true).HashPassword(password) + if err != nil { + c.Error(err) + return + } + cohash := fmt.Sprintf("wp-postpass_%s", helper.StringMd5(models.Options["siteurl"])) + c.SetCookie(cohash, pass, 24*3600, "/", "", false, false) + c.Redirect(http.StatusFound, ref) } diff --git a/phpass/phpass.go b/phpass/phpass.go new file mode 100644 index 0000000..b1b5d17 --- /dev/null +++ b/phpass/phpass.go @@ -0,0 +1,253 @@ +package phpass + +import ( + "crypto/md5" + "fmt" + "github/fthvgb1/wp-go/helper" + "golang.org/x/crypto/bcrypt" + "io" + "os" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +type PasswordHash struct { + itoa64 string + iterationCountLog2 int + portableHashes bool + randomState string +} + +func NewPasswordHash(iterationCountLog2 int, portableHashes bool) *PasswordHash { + if iterationCountLog2 < 4 || iterationCountLog2 > 31 { + iterationCountLog2 = 8 + } + return &PasswordHash{ + iterationCountLog2: iterationCountLog2, + portableHashes: portableHashes, + itoa64: "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", + randomState: strconv.Itoa(os.Getgid()), + } +} + +func (p *PasswordHash) getRandomBytes(count int) (r string, err error) { + urand := "/dev/urandom" + f, err := os.OpenFile(urand, os.O_RDWR, 0644) + if err != nil { + return "", err + } + defer f.Close() + buf := make([]byte, count) + _, err = f.Read(buf) + if err != nil { + return "", err + } + r = string(buf) + if len(buf) < count { + r = "" + for i := 0; i < count; i = i + 16 { + p.randomState = helper.StringMd5(fmt.Sprintf("%d%s", time.Now().UnixMilli(), p.randomState)) + + n, err := md5Raw(p.randomState) + if err != nil { + return "", err + } + r = fmt.Sprintf("%s%s", r, n) + } + r = r[0:count] + } + return +} + +func (p *PasswordHash) Encode64(input string, count int) (out string) { + i := 0 + s := strings.Builder{} + for { + if i >= count { + break + } + v := 0 + if i < len(input) { + v = int(input[i]) + } + s.WriteString(string(p.itoa64[v&0x3f])) + i++ + if i < count { + if i < len(input) { + v |= int(input[i]) << 8 + } else { + v = 0 + } + } + s.WriteString(string(p.itoa64[(v>>6)&0x3f])) + if i >= count { + break + } + i++ + if i < count { + if i < len(input) { + v |= int(input[i]) << 16 + } else { + v = 0 + } + } + + s.WriteString(string(p.itoa64[(v>>12)&0x3f])) + if i >= count { + break + } + i++ + s.WriteString(string(p.itoa64[(v>>18)&0x3f])) + } + out = s.String() + return +} + +func (p *PasswordHash) CryptPrivate(password, set string) (rr string, err error) { + rr = "*0" + r := []rune(rr) + setting := []rune(set) + if string(r) == string(setting[0:2]) { + rr = "*1" + } + id := setting[0:3] + idx := string(id) + if idx != "$P$" && idx != "$H$" { + return + } + log2 := strings.Index(p.itoa64, string(setting[3])) + if log2 < 7 || log2 > 30 { + return + } + count := 1 << log2 + l := 12 + if len(setting) < 12 { + l = len(setting) + } + salt := setting[4:l] + if len(salt) != 8 { + return + } + hash, err := md5Raw(fmt.Sprintf("%s%s", string(salt), password)) + if err != nil { + return + } + for i := 0; i < count; i++ { + hash, err = md5Raw(fmt.Sprintf("%s%s", hash, password)) + if err != nil { + return + } + } + rr = string(setting[0:l]) + rr = fmt.Sprintf("%s%s", rr, p.Encode64(hash, 16)) + return +} + +func (p *PasswordHash) genSaltBlowFish(input string) (out string, err error) { + itoa64 := "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + s := strings.Builder{} + s.WriteString("$2a$") + s.WriteString(fmt.Sprintf("%c", '0'+p.iterationCountLog2/10)) + s.WriteString(fmt.Sprintf("%c", '0'+p.iterationCountLog2%10)) + s.WriteString("$") + i := 0 + for { + c1 := int(input[i]) + i++ + s.WriteString(string(itoa64[c1>>2])) + c1 = (c1 & 0x03) << 4 + if i >= 16 { + s.WriteString(string(itoa64[c1])) + break + } + + c2 := int(input[i]) + i++ + c1 |= c2 >> 4 + s.WriteString(string(input[c1])) + c1 = (c2 & 0x0f) << 2 + c2 = int(input[i]) + i++ + c1 |= c2 >> 6 + s.WriteString(string(itoa64[c1])) + s.WriteString(string(itoa64[c2])) + } + out = s.String() + return +} + +func (p *PasswordHash) HashPassword(pass string) (r string, err error) { + if utf8.RuneCountInString(pass) > 4096 { + r = "*" + return + } + random := "" + hash := "" + if !p.portableHashes { + random, err = p.getRandomBytes(16) + if err != nil { + return + } + h, er := bcrypt.GenerateFromPassword([]byte(pass), 16) + if er != nil { + err = er + return + } + hash = string(h) + if len(hash) == 60 { + r = hash + return + } + } + if len(random) < 6 { + random, err = p.getRandomBytes(6) + if err != nil { + return + } + salt := p.genSaltPrivate(random) + hash, err = p.CryptPrivate(pass, salt) + if err != nil { + return + } + if len(hash) == 34 { + r = hash + return + } + } + r = "*" + return +} + +func (p *PasswordHash) CheckPassword(pass, hash string) bool { + if utf8.RuneCountInString(pass) > 4096 { + return false + } + err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(pass)) + if err != nil { + return false + } + return true +} + +func (p *PasswordHash) genSaltPrivate(input string) string { + s := strings.Builder{} + s.WriteString("$P$") + min := 30 + if p.iterationCountLog2+5 < 30 { + min = p.iterationCountLog2 + 5 + } + s.WriteString(string(p.itoa64[min])) + s.WriteString(p.Encode64(input, 6)) + return s.String() +} + +func md5Raw(s string) (string, error) { + h := md5.New() + _, err := io.WriteString(h, s) + if err != nil { + return "", err + } + return string(h.Sum(nil)), err +} diff --git a/route/route.go b/route/route.go index 38626f7..8c37664 100644 --- a/route/route.go +++ b/route/route.go @@ -71,7 +71,7 @@ func SetupRouter() *gin.Engine { r.GET("/p/:id/feed", actions.PostFeed) r.GET("/feed", actions.Feed) r.GET("/comments/feed", actions.CommentsFeed) - r.POST("/comment", actions.PostComment) + r.POST("/comment", middleware.FlowLimit(vars.Conf.MaxRequestSleepNum, 5, vars.Conf.SleepTime), actions.PostComment) if helper.IsContainInArr(gin.Mode(), []string{gin.DebugMode, gin.TestMode}) { pprof.Register(r, "dev/pprof") } diff --git a/static/wp-content/plugins/enlighter/cache/.empty b/static/wp-content/plugins/enlighter/cache/.empty new file mode 100755 index 0000000..e69de29 diff --git a/static/wp-content/plugins/enlighter/cache/enlighterjs.min.css b/static/wp-content/plugins/enlighter/cache/enlighterjs.min.css new file mode 100644 index 0000000..1fc2128 --- /dev/null +++ b/static/wp-content/plugins/enlighter/cache/enlighterjs.min.css @@ -0,0 +1,19 @@ +/*! EnlighterJS Syntax Highlighter 3.5.0 | Mozilla Public License 2.0 | https://enlighterjs.org */ +.enlighter-tooltip{z-index:100}.enlighter-default{font-family:"Source Code Pro","Liberation Mono","Courier New",Courier,monospace;font-size:12px;line-height:1.35em;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;margin:0 0 20px 0;padding:0;position:relative;text-align:left;direction:ltr}.enlighter-default .enlighter-special:hover{background-color:#f4f8fc}.enlighter-default .enlighter-raw{display:none;min-width:100%;line-height:inherit;font-size:1em;font-family:inherit;margin:0;padding:0;white-space:pre-wrap;word-wrap:break-word;border:none;box-shadow:none}.enlighter-default:hover .enlighter-toolbar{display:block}.enlighter-default .enlighter-btn{display:inline-block;margin:0 5px 0 5px;padding:3px 5px 3px 5px;border:solid 1px #333;background-color:#f0f0f0;cursor:pointer;font-family:inherit}.enlighter-default .enlighter-toolbar .enlighter-btn-raw{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Ebene_2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20width%3D%2246px%22%20height%3D%2246px%22%20viewBox%3D%220%200%2046%2046%22%20enable-background%3D%22new%200%200%2046%2046%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cg%3E%0D%0A%09%3Cpath%20d%3D%22M19.436%2C36.875L6.568%2C25.002v-3.863L19.436%2C9.267v5.041l-9.583%2C8.668v0.188l9.583%2C8.669V36.875z%22%2F%3E%0D%0A%09%3Cpath%20d%3D%22M26.343%2C36.875v-5.041l9.583-8.669v-0.188l-9.583-8.668V9.267l12.868%2C11.872v3.863L26.343%2C36.875z%22%2F%3E%0D%0A%3C%2Fg%3E%0D%0A%3C%2Fsvg%3E%0D%0A)}.enlighter-default .enlighter-toolbar .enlighter-btn-copy{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Ebene_2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20width%3D%2246px%22%20height%3D%2246px%22%20viewBox%3D%220%200%2046%2046%22%20enable-background%3D%22new%200%200%2046%2046%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%2253.75%22%20y1%3D%2239.353%22%20x2%3D%2286.375%22%20y2%3D%2239.353%22%2F%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%2251.711%22%20y1%3D%2230.534%22%20x2%3D%2284.336%22%20y2%3D%2230.534%22%2F%3E%0D%0A%3Crect%20x%3D%228.932%22%20y%3D%227.334%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23000000%22%20stroke-width%3D%223%22%20stroke-miterlimit%3D%2210%22%20width%3D%2221.097%22%20height%3D%2224.952%22%2F%3E%0D%0A%3Crect%20x%3D%2218.942%22%20y%3D%2215.424%22%20fill%3D%22%23FFFFFF%22%20stroke%3D%22%23000000%22%20stroke-width%3D%223%22%20stroke-miterlimit%3D%2210%22%20width%3D%2221.096%22%20height%3D%2224.953%22%2F%3E%0D%0A%3C%2Fsvg%3E%0D%0A)}.enlighter-default .enlighter-toolbar .enlighter-btn-window{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Ebene_2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20width%3D%2246px%22%20height%3D%2246px%22%20viewBox%3D%220%200%2046%2046%22%20enable-background%3D%22new%200%200%2046%2046%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%227.125%22%20y1%3D%229.25%22%20x2%3D%2239.75%22%20y2%3D%229.25%22%2F%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%227.125%22%20y1%3D%2218.167%22%20x2%3D%2239.75%22%20y2%3D%2218.167%22%2F%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%227.125%22%20y1%3D%2227.083%22%20x2%3D%2239.75%22%20y2%3D%2227.083%22%2F%3E%0D%0A%3Cline%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%224%22%20stroke-miterlimit%3D%2210%22%20x1%3D%227.125%22%20y1%3D%2236%22%20x2%3D%2229.809%22%20y2%3D%2236%22%2F%3E%0D%0A%3C%2Fsvg%3E%0D%0A)}.enlighter-default .enlighter-toolbar .enlighter-btn-website{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22E%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20width%3D%2246px%22%20height%3D%2246px%22%20viewBox%3D%220%200%2046%2046%22%20enable-background%3D%22new%200%200%2046%2046%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cg%3E%0D%0A%09%3Cpath%20fill%3D%22%23202F65%22%20d%3D%22M32.48%2C25.614H19.64l-4.933%2C9.826l17.746%2C0.037l-6.173%2C5.358L8.167%2C40.912L16.29%2C6.055h22.974l-5.734%2C5.354%0D%0A%09%09l-13.306-0.027l0.672%2C8.797h12.841L32.48%2C25.614z%22%2F%3E%0D%0A%3C%2Fg%3E%0D%0A%3C%2Fsvg%3E%0D%0A)}.enlighter-origin{display:none!important}.enlighter-clipboard{position:absolute;left:0;bottom:0;width:1px;height:1px;overflow:hidden}.enlighter-v-inline{display:inline-block;overflow:inherit;margin:0}.enlighter-v-standard{display:block}.enlighter-v-codegroup{display:block}.enlighter-v-codegroup .enlighter-codegroup-wrapper{position:relative}div.enlighter{display:table;width:100%;border-collapse:collapse;border-spacing:0;empty-cells:show;min-width:100%;font-size:1em;margin:0;padding:0;text-indent:0;counter-reset:enlighter 0}div.enlighter>div{display:table-row;margin:0;border:solid 0 #fff;list-style:none;font-size:inherit;line-height:1.15em;min-height:14px}div.enlighter>div>div{display:table-cell;padding-left:10px}div.enlighter>div>div::before{content:" "}span.enlighter{display:inline-block;padding:3px 5px 1px 5px;margin:0 2px 0 2px}.enlighter span{margin:0;padding:0;line-height:inherit;font-size:1em;font-family:inherit}.enlighter-linenumbers div.enlighter>div::before{white-space:nowrap;display:block;display:table-cell;width:45px;min-width:45px;counter-increment:enlighter;content:counter(enlighter,decimal) ".";text-align:right;padding-right:8px}.enlighter-toolbar{display:none;position:absolute;right:10px;top:10px;z-index:10}.enlighter-toolbar-bottom{top:unset;bottom:0}.enlighter-overflow-scroll.enlighter-v-standard{overflow-x:auto;word-wrap:normal!important}.enlighter-overflow-scroll.enlighter-v-codegroup .enlighter-codegroup-wrapper{overflow-x:auto;word-wrap:normal!important}.enlighter-overflow-scroll.enlighter-v-codegroup .enlighter>div>div,.enlighter-overflow-scroll.enlighter-v-standard .enlighter>div>div{white-space:pre!important}.enlighter-overflow-scroll.enlighter-v-codegroup .enlighter-raw,.enlighter-overflow-scroll.enlighter-v-standard .enlighter-raw{white-space:pre!important}.enlighter-collapse.enlighter-v-standard{overflow-y:auto;max-height:500px}.enlighter-collapse.enlighter-v-codegroup .enlighter-codegroup-wrapper{overflow-y:auto;max-height:500px}.enlighter-collapse.enlighter-collapse-full.enlighter-v-standard{max-height:none}.enlighter-collapse.enlighter-collapse-full.enlighter-v-codegroup .enlighter-codegroup-wrapper{max-height:none}.enlighter-show-rawcode .enlighter-raw{display:block}.enlighter-show-rawcode .enlighter{display:none!important} +.enlighter-t-enlighter{color:#939393;border-radius:8px;border:solid 1px #e0e0e0}.enlighter-t-enlighter .enlighter-btn{border-radius:3px;background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-enlighter .enlighter-btn:hover{border-color:#c9c9c9}.enlighter-t-enlighter .enlighter-btn:after{content:''}.enlighter-t-enlighter.enlighter-hover.enlighter-linenumbers div.enlighter>div:hover{color:#444;background-color:#fffcd3}.enlighter-t-enlighter.enlighter-hover div.enlighter>div:hover{color:#444;background-color:#fffcd3}.enlighter-t-enlighter .enlighter-raw{font-size:1em;color:#000;background-color:#f9f9f9;border-radius:8px;line-height:1.4em;padding:0 5px 0 60px}.enlighter-t-enlighter div.enlighter>div{border:solid 0 #fff;line-height:1.35em;color:#aaa}.enlighter-t-enlighter div.enlighter>div:FIRST-CHILD{border-radius:8px 8px 0 0}.enlighter-t-enlighter div.enlighter>div:LAST-CHILD{border-radius:0 0 8px 8px}.enlighter-t-enlighter div.enlighter>div.enlighter-special{background-color:#fdf5f0}.enlighter-t-enlighter.enlighter-linenumbers div.enlighter>div::before{border-right:solid 1px #e0e0e0;background-color:#f9f9f9}.enlighter-t-enlighter.enlighter-linenumbers div.enlighter>div:FIRST-CHILD::before{border-radius:8px 0 0 0}.enlighter-t-enlighter.enlighter-linenumbers div.enlighter>div:LAST-CHILD::before{border-radius:0 0 0 8px}.enlighter-t-enlighter .enlighter-text{color:#000}.enlighter-t-enlighter .enlighter-c0{color:#99a}.enlighter-t-enlighter .enlighter-c1{color:#99a}.enlighter-t-enlighter .enlighter-c2{color:#99a}.enlighter-t-enlighter .enlighter-c9{color:#9baa8f}.enlighter-t-enlighter .enlighter-k0{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-k1{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-k2{color:#458;font-weight:700}.enlighter-t-enlighter .enlighter-k3{color:#4da0d2;background-color:#f0f0f0}.enlighter-t-enlighter .enlighter-k4{color:#4a9141;font-weight:700}.enlighter-t-enlighter .enlighter-k5{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-k6{color:#286491;font-style:italic}.enlighter-t-enlighter .enlighter-k7{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-k8{color:#4da0d2}.enlighter-t-enlighter .enlighter-k9{color:#990073;font-weight:700}.enlighter-t-enlighter .enlighter-k10{color:#4a9141;font-style:italic}.enlighter-t-enlighter .enlighter-k11{color:#99a}.enlighter-t-enlighter .enlighter-e0{color:#34068a;font-weight:700}.enlighter-t-enlighter .enlighter-e1{color:#34068a;font-weight:700}.enlighter-t-enlighter .enlighter-e2{color:#009926}.enlighter-t-enlighter .enlighter-e3{color:#286491}.enlighter-t-enlighter .enlighter-e4{color:#ff8c00;font-style:italic}.enlighter-t-enlighter .enlighter-s0{color:#d14}.enlighter-t-enlighter .enlighter-s1{color:#d14}.enlighter-t-enlighter .enlighter-s2{color:#d14}.enlighter-t-enlighter .enlighter-s3{color:#737383}.enlighter-t-enlighter .enlighter-s4{color:#ff8c00;font-weight:700}.enlighter-t-enlighter .enlighter-s5{color:#d14;font-style:italic}.enlighter-t-enlighter .enlighter-n0{color:#099}.enlighter-t-enlighter .enlighter-n1{color:#099}.enlighter-t-enlighter .enlighter-n2{color:#099;font-style:italic}.enlighter-t-enlighter .enlighter-n3{color:#099;font-style:italic}.enlighter-t-enlighter .enlighter-n4{color:#099;font-style:italic}.enlighter-t-enlighter .enlighter-n5{color:#099;text-decoration:underline}.enlighter-t-enlighter .enlighter-m0{color:#0086b3}.enlighter-t-enlighter .enlighter-m1{color:#0086b3}.enlighter-t-enlighter .enlighter-m2{color:#0086b3}.enlighter-t-enlighter .enlighter-m3{color:#0086b3}.enlighter-t-enlighter .enlighter-g0{color:#777}.enlighter-t-enlighter .enlighter-g1{color:#777}.enlighter-t-enlighter .enlighter-t0{color:#777}.enlighter-t-enlighter .enlighter-t1{color:#d14;font-weight:700}.enlighter-t-enlighter .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-enlighter .enlighter-t3{color:#0086b3}.enlighter-t-enlighter .enlighter-t4{color:#009926}.enlighter-t-enlighter .enlighter-t5{color:#009926}.enlighter-t-enlighter .enlighter-t6{color:#d14}.enlighter-t-enlighter .enlighter-t7{color:#535353;font-weight:700}.enlighter-t-enlighter .enlighter-t8{color:#777;background-color:#f0f0f0;font-style:italic}.enlighter-t-enlighter .enlighter-x1{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-x2{color:#4da0d2}.enlighter-t-enlighter .enlighter-x10{color:#000;font-weight:700}.enlighter-t-enlighter .enlighter-x11{color:#286491;font-weight:700}.enlighter-t-enlighter .enlighter-x12{color:#286491;text-decoration:underline}.enlighter-t-enlighter .enlighter-x13{color:#0086b3}.enlighter-t-enlighter .enlighter-x14{color:#099;font-style:italic}.enlighter-t-enlighter .enlighter-x15{color:#990073;font-style:italic}.enlighter-t-enlighter.enlighter-v-inline{border-radius:3px;background-color:#fafafa}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter,.enlighter-t-enlighter.enlighter-v-codegroup .enlighter-raw{border-top-left-radius:0;border-top-right-radius:0}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter div:first-child{border-radius:0}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter-codegroup-wrapper{position:relative}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter-codegroup-switch{border-radius:8px 8px 0 0;background-color:#f9f9f9;border-bottom:1px solid #e0e0e0;padding:5px 5px 5px 45px}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{padding:3px 10px 3px 10px;border-radius:4px;border:1px solid #e0e0e0;font-size:1em;color:#000;background-color:transparent;width:auto}.enlighter-t-enlighter.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#e5e5e5;color:#000;border-color:#c9c9c9} +.enlighter-t-beyond{color:#333;background-color:#f7f7fa;border-radius:5px;border:solid 2px #e2e2e8;padding:10px 10px 10px 5px}.enlighter-t-beyond .enlighter-btn{border-radius:3px;background-color:#fff;color:#717171;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;width:23px;height:23px;background-position:0 0;background-size:contain;font-family:"Open Sans",Arial,Verdana,sans-serif}.enlighter-t-beyond .enlighter-btn:hover{border-color:#c9c9c9}.enlighter-t-beyond .enlighter-btn:after{content:''}.enlighter-t-beyond.enlighter-hover div.enlighter>div:hover{color:#444;background-color:#fff}.enlighter-t-beyond.enlighter-hover div.enlighter>div:hover.enlighter-special{background-color:#fffcd3;border:solid 0 #fff;color:#444}.enlighter-t-beyond .enlighter-raw{background-color:#f7f7fa;font-size:1.1em;color:#333;padding:10px 15px 10px 59px;line-height:1.7em}.enlighter-t-beyond div.enlighter>div{border:solid 0 #fff;padding:1px 5px 1px 10px;line-height:1.5em;color:#aaa;background-color:#f7f7fa}.enlighter-t-beyond div.enlighter>div:FIRST-CHILD{border-radius:8px 8px 0 0}.enlighter-t-beyond div.enlighter>div:LAST-CHILD{border-radius:0 0 8px 8px}.enlighter-t-beyond div.enlighter>div:AFTER{content:' '}.enlighter-t-beyond div.enlighter>div.enlighter-special{background-color:#fff}.enlighter-t-beyond.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 14px;font-size:.9em}.enlighter-t-beyond.enlighter-linenumbers div.enlighter>div:FIRST-CHILD::before{border-radius:0 8px 0 0}.enlighter-t-beyond.enlighter-linenumbers div.enlighter>div:LAST-CHILD::before{border-radius:0 0 8px 0}.enlighter-t-beyond .enlighter span{font-size:1.1em}.enlighter-t-beyond .enlighter-text{color:#2f3235}.enlighter-t-beyond .enlighter-c0{color:#8181a1}.enlighter-t-beyond .enlighter-c1{color:#8181a1}.enlighter-t-beyond .enlighter-c2{color:#8181a1}.enlighter-t-beyond .enlighter-c9{color:#8181a1}.enlighter-t-beyond .enlighter-k0{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-k1{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-k2{color:#458;font-weight:700}.enlighter-t-beyond .enlighter-k3{color:#4da0d2;background-color:#f0f0f0}.enlighter-t-beyond .enlighter-k4{color:#4a9141;font-weight:700}.enlighter-t-beyond .enlighter-k5{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-k6{color:#286491;font-style:italic}.enlighter-t-beyond .enlighter-k7{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-k8{color:#4da0d2}.enlighter-t-beyond .enlighter-k9{color:#990073;font-weight:700}.enlighter-t-beyond .enlighter-k10{color:#4a9141;font-style:italic}.enlighter-t-beyond .enlighter-k11{color:#8181a1}.enlighter-t-beyond .enlighter-e0{color:#34068a;font-weight:700}.enlighter-t-beyond .enlighter-e1{color:#34068a;font-weight:700}.enlighter-t-beyond .enlighter-e2{color:#009926}.enlighter-t-beyond .enlighter-e3{color:#286491}.enlighter-t-beyond .enlighter-e4{color:#049595;font-style:italic}.enlighter-t-beyond .enlighter-s0{color:#d14}.enlighter-t-beyond .enlighter-s1{color:#d14}.enlighter-t-beyond .enlighter-s2{color:#d14}.enlighter-t-beyond .enlighter-s3{color:#737383}.enlighter-t-beyond .enlighter-s4{color:#049595;font-weight:700}.enlighter-t-beyond .enlighter-s5{color:#d14;font-style:italic}.enlighter-t-beyond .enlighter-n0{color:#099}.enlighter-t-beyond .enlighter-n1{color:#099}.enlighter-t-beyond .enlighter-n2{color:#099;font-style:italic}.enlighter-t-beyond .enlighter-n3{color:#099;font-style:italic}.enlighter-t-beyond .enlighter-n4{color:#099;font-style:italic}.enlighter-t-beyond .enlighter-n5{color:#099;text-decoration:underline}.enlighter-t-beyond .enlighter-m0{color:#0086b3}.enlighter-t-beyond .enlighter-m1{color:#0086b3}.enlighter-t-beyond .enlighter-m2{color:#0086b3}.enlighter-t-beyond .enlighter-m3{color:#0086b3}.enlighter-t-beyond .enlighter-g0{color:#777}.enlighter-t-beyond .enlighter-g1{color:#777}.enlighter-t-beyond .enlighter-t0{color:#777}.enlighter-t-beyond .enlighter-t1{color:#d14;font-weight:700}.enlighter-t-beyond .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-beyond .enlighter-t3{color:#0086b3}.enlighter-t-beyond .enlighter-t4{color:#009926}.enlighter-t-beyond .enlighter-t5{color:#009926}.enlighter-t-beyond .enlighter-t6{color:#d14}.enlighter-t-beyond .enlighter-t7{color:#535353;font-weight:700}.enlighter-t-beyond .enlighter-t8{color:#777;background-color:#f0f0f0;font-style:italic}.enlighter-t-beyond .enlighter-x1{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-x2{color:#4da0d2}.enlighter-t-beyond .enlighter-x10{color:#000;font-weight:700}.enlighter-t-beyond .enlighter-x11{color:#286491;font-weight:700}.enlighter-t-beyond .enlighter-x12{color:#286491;text-decoration:underline}.enlighter-t-beyond .enlighter-x13{color:#0086b3}.enlighter-t-beyond .enlighter-x14{color:#099;font-style:italic}.enlighter-t-beyond .enlighter-x15{color:#990073;font-style:italic}.enlighter-t-beyond.enlighter-v-inline{border-radius:3px;background-color:#f7f7fa;border:dotted 1px #e2e2e8;padding:0}.enlighter-t-beyond.enlighter-v-codegroup{padding:0;border:none}.enlighter-t-beyond.enlighter-v-codegroup .enlighter-codegroup-wrapper{background-color:#f7f7fa;border-radius:5px;border:solid 2px #e2e2e8;padding:10px 10px 10px 5px}.enlighter-t-beyond.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#fff;padding:0 0 0 45px}.enlighter-t-beyond.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{border:solid 2px #e2e2e8;border-radius:5px 5px 0 0;font-size:1em;color:#286491;font-weight:700;background-color:#fff;border-bottom:none;padding:3px 10px 3px 10px;width:auto}.enlighter-t-beyond.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#e2e2e8;border-color:#d8d8dd;color:#505050;font-weight:700} +.enlighter-t-classic{background-color:#fff;border:1px solid #e8e8e2}.enlighter-t-classic .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain;font-family:"Open Sans",Arial,Verdana,sans-serif}.enlighter-t-classic .enlighter-btn:hover{border-color:#c9c9c9}.enlighter-t-classic .enlighter-btn:after{content:''}.enlighter-t-classic.enlighter-hover div.enlighter>div:hover{background-color:#ddf0dd}.enlighter-t-classic .enlighter-raw{font-size:1.25em;color:#000;line-height:1.85em;padding:4px 5px 4px 58px}.enlighter-t-classic div.enlighter{line-height:1.7em}.enlighter-t-classic div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.7em;color:#aaa}.enlighter-t-classic div.enlighter>div>div{border-left:solid 4px #52ce52}.enlighter-t-classic div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-classic div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-classic div.enlighter>div:AFTER{content:' '}.enlighter-t-classic div.enlighter>div:nth-child(even){background-color:#f8f8f8}.enlighter-t-classic div.enlighter>div.enlighter-special{background-color:#edf9ec;border-left-color:#3fa03f}.enlighter-t-classic.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 14px;color:#000;background-color:#f8f8f8;font-size:1.15em;width:55px;min-width:55px}.enlighter-t-classic .enlighter span{font-size:1.25em}.enlighter-t-classic .enlighter-text{color:#000}.enlighter-t-classic .enlighter-c0{color:#888}.enlighter-t-classic .enlighter-c1{color:#888}.enlighter-t-classic .enlighter-c2{color:#888}.enlighter-t-classic .enlighter-c9{color:#888}.enlighter-t-classic .enlighter-k0{color:#066da1;font-weight:700}.enlighter-t-classic .enlighter-k1{color:#066da1;font-weight:700}.enlighter-t-classic .enlighter-k2{color:#404247;font-weight:700}.enlighter-t-classic .enlighter-k3{color:#404247;background-color:#f0f0f0}.enlighter-t-classic .enlighter-k4{color:#404247;font-weight:700}.enlighter-t-classic .enlighter-k5{color:#404247;font-weight:700}.enlighter-t-classic .enlighter-k6{color:#066da1;font-style:italic}.enlighter-t-classic .enlighter-k7{color:#066da1;font-weight:700}.enlighter-t-classic .enlighter-k8{color:#404247}.enlighter-t-classic .enlighter-k9{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-k10{color:#404247;font-style:italic}.enlighter-t-classic .enlighter-k11{color:#888}.enlighter-t-classic .enlighter-e0{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-e1{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-e2{color:#009926}.enlighter-t-classic .enlighter-e3{color:#d53aa9}.enlighter-t-classic .enlighter-e4{color:#d53aa9;font-style:italic}.enlighter-t-classic .enlighter-s0{color:#2d47e6}.enlighter-t-classic .enlighter-s1{color:#2d47e6}.enlighter-t-classic .enlighter-s2{color:#2d47e6}.enlighter-t-classic .enlighter-s3{color:#2d47e6}.enlighter-t-classic .enlighter-s4{color:#2d47e6;font-weight:700}.enlighter-t-classic .enlighter-s5{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-n0{color:#d53aa9}.enlighter-t-classic .enlighter-n1{color:#d53aa9}.enlighter-t-classic .enlighter-n2{color:#d53aa9}.enlighter-t-classic .enlighter-n3{color:#d53aa9}.enlighter-t-classic .enlighter-n4{color:#d53aa9}.enlighter-t-classic .enlighter-n5{color:#d53aa9}.enlighter-t-classic .enlighter-m0{color:#404247}.enlighter-t-classic .enlighter-m1{color:#404247}.enlighter-t-classic .enlighter-m2{color:#404247}.enlighter-t-classic .enlighter-m3{color:#404247}.enlighter-t-classic .enlighter-g0{color:#444}.enlighter-t-classic .enlighter-g1{color:#444}.enlighter-t-classic .enlighter-t0{color:#444}.enlighter-t-classic .enlighter-t1{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-t2{color:#d53aa9;font-weight:700}.enlighter-t-classic .enlighter-t3{color:#066da1}.enlighter-t-classic .enlighter-t4{color:#009926}.enlighter-t-classic .enlighter-t5{color:#009926}.enlighter-t-classic .enlighter-t6{color:#d53aa9}.enlighter-t-classic .enlighter-t7{color:#444;font-weight:700}.enlighter-t-classic .enlighter-t8{color:#444;background-color:#f0f0f0;font-style:italic}.enlighter-t-classic .enlighter-x1{color:#066da1;font-weight:700}.enlighter-t-classic .enlighter-x2{color:#404247;font-weight:700}.enlighter-t-classic .enlighter-x10{color:#000;font-weight:700}.enlighter-t-classic .enlighter-x11{color:#286491;font-weight:700}.enlighter-t-classic .enlighter-x12{color:#286491;text-decoration:underline}.enlighter-t-classic .enlighter-x13{color:#0086b3}.enlighter-t-classic .enlighter-x14{color:#099;font-style:italic}.enlighter-t-classic .enlighter-x15{color:#990073;font-style:italic}.enlighter-t-classic.enlighter-v-inline{background-color:transparent;border:none}.enlighter-t-classic.enlighter-v-codegroup{display:block}.enlighter-t-classic.enlighter-v-codegroup .enlighter-codegroup-wrapper{position:relative}.enlighter-t-classic.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#f8f8f8;padding-left:45px}.enlighter-t-classic.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{border:none;font-size:1.25em;line-height:2.1em;width:auto;height:auto;background-color:transparent;padding:5px 10px 5px 10px}.enlighter-t-classic.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#52ce52;color:#f9f9f9;font-weight:700} +.enlighter-t-godzilla{border-left:solid 6px #4a80b3;background-image:url(data:image/gif;base64,R0lGODlhHgAeAJEAAPLz9ezt7vf39wAAACwAAAAAHgAeAAACYYyPqXvi/wCccr5gY3Y1491Z4fRlI3Rem5ByaymurQBT8nuDuM57wA8MCodEQA2V8yRjm6OmZ3G6oKSlrWlFYqlaJffpNWUvxbL5J2WNHenZrL2mxd/znfjLrm/v/Kg+UwAAOw==);background-repeat:repeat;background-position:0 0}.enlighter-t-godzilla .enlighter-btn{border-radius:3px;background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-godzilla .enlighter-btn:hover{border-color:#c9c9c9}.enlighter-t-godzilla .enlighter-btn:after{content:''}.enlighter-t-godzilla.enlighter-hover div.enlighter>div:hover{background-color:#f0f0f1}.enlighter-t-godzilla .enlighter-raw{font-size:1.15em;line-height:1.6em;color:#2b333a;padding:4px 5px 4px 54px}.enlighter-t-godzilla div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.35em;color:#9c9ea0}.enlighter-t-godzilla div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-godzilla div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-godzilla div.enlighter>div:AFTER{content:' '}.enlighter-t-godzilla div.enlighter>div.enlighter-special{background-color:#fffcd3}.enlighter-t-godzilla.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 14px;background-color:transparent;font-size:.9em}.enlighter-t-godzilla .enlighter span{font-size:1.15em}.enlighter-t-godzilla .enlighter-text{color:#2b333a}.enlighter-t-godzilla .enlighter-c0{color:#6b7c8b}.enlighter-t-godzilla .enlighter-c1{color:#6b7c8b}.enlighter-t-godzilla .enlighter-c2{color:#6b7c8b}.enlighter-t-godzilla .enlighter-c9{color:#5b7c9c}.enlighter-t-godzilla .enlighter-k0{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-k1{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-k2{color:#4284ae;font-weight:700}.enlighter-t-godzilla .enlighter-k3{color:#4284ae;background-color:#f0f0f0}.enlighter-t-godzilla .enlighter-k4{color:#4284ae;font-weight:700}.enlighter-t-godzilla .enlighter-k5{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-k6{color:#085789;font-style:italic}.enlighter-t-godzilla .enlighter-k7{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-k8{color:#4284ae}.enlighter-t-godzilla .enlighter-k9{color:#ae42a0;font-weight:700}.enlighter-t-godzilla .enlighter-k10{color:#ae42a0;font-style:italic}.enlighter-t-godzilla .enlighter-k11{color:#6b7c8b}.enlighter-t-godzilla .enlighter-e0{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-e1{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-e2{color:#085789}.enlighter-t-godzilla .enlighter-e3{color:#085789}.enlighter-t-godzilla .enlighter-e4{color:#d2901d}.enlighter-t-godzilla .enlighter-s0{color:#5e860f}.enlighter-t-godzilla .enlighter-s1{color:#5e860f}.enlighter-t-godzilla .enlighter-s2{color:#5e860f}.enlighter-t-godzilla .enlighter-s3{color:#5e860f}.enlighter-t-godzilla .enlighter-s4{color:#5e860f}.enlighter-t-godzilla .enlighter-s5{color:#5e860f}.enlighter-t-godzilla .enlighter-n0{color:#9b0d5c}.enlighter-t-godzilla .enlighter-n1{color:#9b0d5c}.enlighter-t-godzilla .enlighter-n2{color:#9b0d5c;font-style:italic}.enlighter-t-godzilla .enlighter-n3{color:#9b0d5c;font-style:italic}.enlighter-t-godzilla .enlighter-n4{color:#9b0d5c;font-style:italic}.enlighter-t-godzilla .enlighter-n5{color:#9b0d5c;text-decoration:underline}.enlighter-t-godzilla .enlighter-m0{color:#d0284a}.enlighter-t-godzilla .enlighter-m1{color:#d0284a}.enlighter-t-godzilla .enlighter-m2{color:#d0284a}.enlighter-t-godzilla .enlighter-m3{color:#d0284a}.enlighter-t-godzilla .enlighter-g0{color:#35434c}.enlighter-t-godzilla .enlighter-g1{color:#35434c}.enlighter-t-godzilla .enlighter-t0{color:#35434c}.enlighter-t-godzilla .enlighter-t1{color:#d0284a;font-weight:700}.enlighter-t-godzilla .enlighter-t2{color:#9b0d5c;font-weight:700}.enlighter-t-godzilla .enlighter-t3{color:#085789}.enlighter-t-godzilla .enlighter-t4{color:#085789}.enlighter-t-godzilla .enlighter-t5{color:#085789}.enlighter-t-godzilla .enlighter-t6{color:#d0284a}.enlighter-t-godzilla .enlighter-t7{color:#35434c;font-weight:700}.enlighter-t-godzilla .enlighter-t8{color:#35434c;background-color:#f0f0f0;font-style:italic}.enlighter-t-godzilla .enlighter-x1{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-x2{color:#4284ae}.enlighter-t-godzilla .enlighter-x10{color:#35434c;font-weight:700}.enlighter-t-godzilla .enlighter-x11{color:#085789;font-weight:700}.enlighter-t-godzilla .enlighter-x12{color:#085789;text-decoration:underline}.enlighter-t-godzilla .enlighter-x13{color:#4284ae}.enlighter-t-godzilla .enlighter-x14{color:#4284ae;font-style:italic}.enlighter-t-godzilla .enlighter-x15{color:#9b0d5c;font-style:italic}.enlighter-t-godzilla.enlighter-v-inline{background-color:#f7f7f7;border:dotted 1px #e0e0e1;border-left:solid 2px #4a80b3}.enlighter-t-godzilla.enlighter-v-codegroup .enlighter-codegroup-switch{font-family:"Open Sans",Arial,Verdana,sans-serif;background-color:#4a80b3;padding:5px 5px 5px 5px}.enlighter-t-godzilla.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{padding:3px 10px 3px 10px;border:none;background-color:transparent;line-height:1.7em;font-size:1.15em;color:#f0f0f0;width:auto}.enlighter-t-godzilla.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#00417f} +.enlighter-t-atomic{font-family:Inconsolata,Consolas,"Source Code Pro","Liberation Mono","Courier New",Courier,monospace;background-color:#272b33;font-size:12px;color:#939393}.enlighter-t-atomic .enlighter-toolbar{top:10px;right:10px}.enlighter-t-atomic .enlighter-btn{font-family:"Open Sans",Arial,Verdana,sans-serif;background-image:none;background-color:transparent;color:#939393;font-size:1.1em;padding:2px 8px 2px 8px;margin:0 5px 0 5px;border:solid 1px #383e49;border-radius:4px;background-color:#13151a}.enlighter-t-atomic .enlighter-btn:hover{background-color:#121518;color:#f0f0f0}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-raw{background-image:none}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-raw:after{content:'Raw'}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-copy{background-image:none}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-copy:after{content:'Copy'}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-window{background-image:none}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-window:after{content:'Extern'}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-website{background-image:none}.enlighter-t-atomic .enlighter-toolbar .enlighter-btn-website:after{content:'EnlighterJS'}.enlighter-t-atomic .enlighter-raw{font-size:1.4em;color:#cfd5e0;background-color:#272b33;line-height:1.85em;padding:4px 5px 4px 54px}.enlighter-t-atomic div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.6em;color:#596174;background-color:#272b33}.enlighter-t-atomic div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-atomic div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-atomic div.enlighter>div:AFTER{content:' '}.enlighter-t-atomic div.enlighter>div.enlighter-special{background-color:#392d3b}.enlighter-t-atomic.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 14px;font-size:1.3em}.enlighter-t-atomic.enlighter-hover div.enlighter>div:hover{background-color:#2e353e}.enlighter-t-atomic .enlighter span{font-size:1.4em}.enlighter-t-atomic .enlighter-text{color:#cfd5e0}.enlighter-t-atomic .enlighter-c0{color:#6b7c8b}.enlighter-t-atomic .enlighter-c1{color:#6b7c8b}.enlighter-t-atomic .enlighter-c2{color:#6b7c8b}.enlighter-t-atomic .enlighter-c9{color:#5b7c9c}.enlighter-t-atomic .enlighter-k0{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-k1{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-k2{color:#d19252;border-bottom:dotted 1px #d19252}.enlighter-t-atomic .enlighter-k3{color:#4284ae}.enlighter-t-atomic .enlighter-k4{color:#4284ae;font-weight:700}.enlighter-t-atomic .enlighter-k5{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-k6{color:#d171dd;font-style:italic}.enlighter-t-atomic .enlighter-k7{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-k8{color:#4284ae}.enlighter-t-atomic .enlighter-k9{color:#fff}.enlighter-t-atomic .enlighter-k10{color:#4284ae;font-style:italic}.enlighter-t-atomic .enlighter-k11{color:#6b7c8b}.enlighter-t-atomic .enlighter-e0{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-e1{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-e2{color:#d19252}.enlighter-t-atomic .enlighter-e3{color:#ae42a0}.enlighter-t-atomic .enlighter-e4{color:#d2901d;font-style:italic}.enlighter-t-atomic .enlighter-s0{color:#7cc379}.enlighter-t-atomic .enlighter-s1{color:#7cc379}.enlighter-t-atomic .enlighter-s2{color:#7cc379}.enlighter-t-atomic .enlighter-s3{color:#7cc379}.enlighter-t-atomic .enlighter-s4{color:#7cc379;font-weight:700}.enlighter-t-atomic .enlighter-s5{color:#5e860f;font-style:italic}.enlighter-t-atomic .enlighter-n0{color:#d19a66}.enlighter-t-atomic .enlighter-n1{color:#d19a66}.enlighter-t-atomic .enlighter-n2{color:#d19a66}.enlighter-t-atomic .enlighter-n3{color:#d19a66}.enlighter-t-atomic .enlighter-n4{color:#d19a66}.enlighter-t-atomic .enlighter-n5{color:#d19a66}.enlighter-t-atomic .enlighter-m0{color:#4284ae}.enlighter-t-atomic .enlighter-m1{color:#4284ae}.enlighter-t-atomic .enlighter-m2{color:#4284ae}.enlighter-t-atomic .enlighter-m3{color:#4284ae}.enlighter-t-atomic .enlighter-g0{color:#6b7c8b;font-weight:700}.enlighter-t-atomic .enlighter-g1{color:#6b7c8b;font-weight:700}.enlighter-t-atomic .enlighter-t0{color:#6b7c8b}.enlighter-t-atomic .enlighter-t1{color:#9b0d5c;font-weight:700}.enlighter-t-atomic .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-atomic .enlighter-t3{color:#d171dd}.enlighter-t-atomic .enlighter-t4{color:#4284ae}.enlighter-t-atomic .enlighter-t5{color:#4284ae}.enlighter-t-atomic .enlighter-t6{color:#9b0d5c}.enlighter-t-atomic .enlighter-t7{color:#6b7c8b;font-weight:700}.enlighter-t-atomic .enlighter-t8{color:#6b7c8b}.enlighter-t-atomic .enlighter-x1{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-x2{color:#d19252;border-bottom:dotted 1px #d19252}.enlighter-t-atomic .enlighter-x10{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-x11{color:#d171dd;font-weight:700}.enlighter-t-atomic .enlighter-x12{color:#d171dd;text-decoration:underline}.enlighter-t-atomic .enlighter-x13{color:#d19252;border-bottom:dotted 1px #d19252}.enlighter-t-atomic .enlighter-x14{color:#d19a66;font-style:italic}.enlighter-t-atomic .enlighter-x15{color:#9b0d5c;font-style:italic}.enlighter-t-atomic.enlighter-v-codegroup .enlighter-codegroup-wrapper{position:relative}.enlighter-t-atomic.enlighter-v-codegroup .enlighter-codegroup-switch{padding:5px 5px 0 45px;background-color:#121518}.enlighter-t-atomic.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{padding:2px 8px 0 8px;border:none;background-color:transparent;line-height:2.1em;font-weight:700;color:#f0f0f0;border-radius:5px 5px 0 0;text-transform:lowercase}.enlighter-t-atomic.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#272b33} +.enlighter-t-droide{background-color:#f7f7f9;border:solid 1px #e0e0e0}.enlighter-t-droide .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-droide .enlighter-btn:hover{background-color:#fff}.enlighter-t-droide .enlighter-btn:after{content:''}.enlighter-t-droide.enlighter-hover div.enlighter>div:hover{background-color:#fae9d9}.enlighter-t-droide .enlighter-raw{font-size:1.1em;color:#404141;line-height:1.5em;padding:4px 5px 4px 55px}.enlighter-t-droide div.enlighter>div{border:solid 0 #fff;padding:1px 5px 1px 14px;line-height:1.35em;color:#aaa}.enlighter-t-droide div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-droide div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-droide div.enlighter>div:AFTER{content:' '}.enlighter-t-droide div.enlighter>div.enlighter-special{background-color:#fae9d9;border-left:solid 5px #e07c19}.enlighter-t-droide.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 0;border-right:1px dashed #e0e0e0;font-size:.9em;color:#707070;background-color:#f7f7f9}.enlighter-t-droide .enlighter span{font-size:1.1em}.enlighter-t-droide .enlighter-text{color:#000}.enlighter-t-droide .enlighter-c0{color:#086b08}.enlighter-t-droide .enlighter-c1{color:#086b08}.enlighter-t-droide .enlighter-c2{color:#086b08}.enlighter-t-droide .enlighter-c9{color:#086b08}.enlighter-t-droide .enlighter-k0{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-k1{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-k2{color:#458;font-weight:700}.enlighter-t-droide .enlighter-k3{color:#6e0d6e}.enlighter-t-droide .enlighter-k4{color:#6e0d6e;font-weight:700}.enlighter-t-droide .enlighter-k5{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-k6{color:#12217c;font-style:italic}.enlighter-t-droide .enlighter-k7{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-k8{color:#458}.enlighter-t-droide .enlighter-k9{color:#990073;font-weight:700}.enlighter-t-droide .enlighter-k10{color:#6e0d6e;font-style:italic}.enlighter-t-droide .enlighter-k11{color:#086b08}.enlighter-t-droide .enlighter-e0{color:#34068a;font-weight:700}.enlighter-t-droide .enlighter-e1{color:#34068a;font-weight:700}.enlighter-t-droide .enlighter-e2{color:#009926}.enlighter-t-droide .enlighter-e3{color:#286491}.enlighter-t-droide .enlighter-e4{color:#ff8c00;font-style:italic}.enlighter-t-droide .enlighter-s0{color:#961414}.enlighter-t-droide .enlighter-s1{color:#961414}.enlighter-t-droide .enlighter-s2{color:#961414}.enlighter-t-droide .enlighter-s3{color:#961414}.enlighter-t-droide .enlighter-s4{color:#963f14;font-weight:700}.enlighter-t-droide .enlighter-s5{color:#961414;font-style:italic}.enlighter-t-droide .enlighter-n0{color:#007f7f}.enlighter-t-droide .enlighter-n1{color:#007f7f}.enlighter-t-droide .enlighter-n2{color:#007f7f;font-style:italic}.enlighter-t-droide .enlighter-n3{color:#007f7f;font-style:italic}.enlighter-t-droide .enlighter-n4{color:#007f7f;font-style:italic}.enlighter-t-droide .enlighter-n5{color:#007f7f;text-decoration:underline}.enlighter-t-droide .enlighter-m0{color:#000}.enlighter-t-droide .enlighter-m1{color:#000}.enlighter-t-droide .enlighter-m2{color:#000}.enlighter-t-droide .enlighter-m3{color:#000}.enlighter-t-droide .enlighter-g0{color:#12217c}.enlighter-t-droide .enlighter-g1{color:#12217c}.enlighter-t-droide .enlighter-t0{color:#777}.enlighter-t-droide .enlighter-t1{color:#961414;font-weight:700}.enlighter-t-droide .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-droide .enlighter-t3{color:#458}.enlighter-t-droide .enlighter-t4{color:#6e0d6e}.enlighter-t-droide .enlighter-t5{color:#6e0d6e}.enlighter-t-droide .enlighter-t6{color:#961414}.enlighter-t-droide .enlighter-t7{color:#535353;font-weight:700}.enlighter-t-droide .enlighter-t8{color:#777;font-style:italic}.enlighter-t-droide .enlighter-x1{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-x2{color:#6e0d6e}.enlighter-t-droide .enlighter-x10{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-x11{color:#12217c;font-weight:700}.enlighter-t-droide .enlighter-x12{color:#458}.enlighter-t-droide .enlighter-x13{color:#007f7f}.enlighter-t-droide .enlighter-x14{color:#007f7f}.enlighter-t-droide .enlighter-x15{color:#990073;font-style:italic}.enlighter-t-droide.enlighter-v-codegroup{background-color:transparent;border:none}.enlighter-t-droide.enlighter-v-codegroup .enlighter-codegroup-wrapper{background-color:#f7f7f9;border:solid 1px #e0e0e0}.enlighter-t-droide.enlighter-v-codegroup .enlighter-codegroup-switch{padding-left:15px}.enlighter-t-droide.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{border:solid 1px #e0e0e0;font-size:1em;color:#000;background-color:transparent;border-radius:0;border-bottom-width:0;padding:5px 10px 5px 10px;font-weight:700;width:auto;height:auto}.enlighter-t-droide.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#f7f7f9;color:#000;border-color:#c9c9c9} +.enlighter-t-minimal{border-top:solid 3px #e0e0e0;border-bottom:solid 3px #e0e0e0;background-color:transparent;padding:10px 0 10px 0}.enlighter-t-minimal .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-minimal .enlighter-btn:after{content:''}.enlighter-t-minimal.enlighter-hover div.enlighter>div:hover{background-color:#f0f0f0}.enlighter-t-minimal .enlighter-raw{font-size:1.1em;line-height:1.75em;padding:13px 5px 15px 50px;color:#404141}.enlighter-t-minimal div.enlighter>div{border:solid 0 #fff;background-color:transparent;padding:1px 5px 1px 0;line-height:1.5em;color:#a0a0a0}.enlighter-t-minimal div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-minimal div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-minimal div.enlighter>div:AFTER{content:' '}.enlighter-t-minimal div.enlighter>div.enlighter-special{background-color:#f9f9f9}.enlighter-t-minimal.enlighter-linenumbers div.enlighter>div::before{padding:1px 10px 1px 10px;font-size:.8em;color:#404141}.enlighter-t-minimal .enlighter span{font-size:1.1em}.enlighter-t-minimal .enlighter-text{color:#2a2a2a}.enlighter-t-minimal .enlighter-c0{color:#a0a0a0}.enlighter-t-minimal .enlighter-c1{color:#a0a0a0}.enlighter-t-minimal .enlighter-c2{color:#a0a0a0}.enlighter-t-minimal .enlighter-c9{color:#a0a0a0}.enlighter-t-minimal .enlighter-k0{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-k1{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-k2{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-k3{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-k4{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-k5{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-k6{color:#12217c;font-style:italic}.enlighter-t-minimal .enlighter-k7{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-k8{color:#458}.enlighter-t-minimal .enlighter-k9{color:#990073}.enlighter-t-minimal .enlighter-k10{color:#990073}.enlighter-t-minimal .enlighter-k11{color:#a0a0a0}.enlighter-t-minimal .enlighter-e0{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-e1{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-e2{color:#996700;border-bottom:solid 1px #996700}.enlighter-t-minimal .enlighter-e3{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-e4{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-s0{color:#217908;border-bottom:dotted 1px #387905}.enlighter-t-minimal .enlighter-s1{color:#217908;border-bottom:dotted 1px #387905}.enlighter-t-minimal .enlighter-s2{color:#cf6a4c}.enlighter-t-minimal .enlighter-s3{color:#217908;border-bottom:dotted 1px #387905}.enlighter-t-minimal .enlighter-s4{color:#217908;border-bottom:dotted 1px #387905}.enlighter-t-minimal .enlighter-s5{color:#217908;border-bottom:dotted 1px #387905}.enlighter-t-minimal .enlighter-n0{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-n1{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-n2{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-n3{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-n4{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-n5{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-m0{color:#12217c;background-color:#e0e0e0}.enlighter-t-minimal .enlighter-m1{color:#12217c;background-color:#e0e0e0}.enlighter-t-minimal .enlighter-m2{color:#12217c;background-color:#e0e0e0}.enlighter-t-minimal .enlighter-m3{color:#12217c;background-color:#e0e0e0}.enlighter-t-minimal .enlighter-g0{color:#12217c}.enlighter-t-minimal .enlighter-g1{color:#2a2a2a}.enlighter-t-minimal .enlighter-t0{color:#a0a0a0}.enlighter-t-minimal .enlighter-t1{color:#387905;font-weight:700}.enlighter-t-minimal .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-minimal .enlighter-t3{color:#458}.enlighter-t-minimal .enlighter-t4{color:#458}.enlighter-t-minimal .enlighter-t5{color:#458}.enlighter-t-minimal .enlighter-t6{color:#387905}.enlighter-t-minimal .enlighter-t7{color:#a0a0a0;font-weight:700}.enlighter-t-minimal .enlighter-t8{color:#a0a0a0;font-style:italic}.enlighter-t-minimal .enlighter-x1{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-x2{color:#458;border-bottom:dotted 1px #458}.enlighter-t-minimal .enlighter-x10{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-x11{color:#12217c;font-weight:700}.enlighter-t-minimal .enlighter-x12{color:#458}.enlighter-t-minimal .enlighter-x13{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-x14{color:#a61d1b;font-weight:700}.enlighter-t-minimal .enlighter-x15{color:#990073}.enlighter-t-minimal.enlighter-v-inline{background-color:transparent;border:none;padding:0}.enlighter-t-minimal.enlighter-v-codegroup{border-top:none;padding-top:0}.enlighter-t-minimal.enlighter-v-codegroup .enlighter-codegroup-wrapper{border-top:solid 3px #e0e0e0;padding-top:10px}.enlighter-t-minimal.enlighter-v-codegroup .enlighter-codegroup-switch{padding-left:5px;padding-bottom:5px}.enlighter-t-minimal.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{font-size:1em;color:#000;background-color:transparent;font-weight:700;text-transform:uppercase;padding:1px 6px 1px 6px;border:none;width:auto;height:auto}.enlighter-t-minimal.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#e0e0e0;color:#2a2a2a} +.enlighter-t-eclipse{color:#787878;border-radius:5px;border:solid 8px #f3f3f3;background-color:#fff}.enlighter-t-eclipse .enlighter-toolbar{top:15px;right:15px}.enlighter-t-eclipse .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain;border-radius:8px}.enlighter-t-eclipse .enlighter-btn:hover{background-color:#e0e0e0}.enlighter-t-eclipse .enlighter-btn:after{content:''}.enlighter-t-eclipse.enlighter-hover.enlighter-linenumbers div.enlighter>div:hover{background-color:#e8f2fe;color:#444}.enlighter-t-eclipse.enlighter-hover div.enlighter>div:hover{background-color:#e8f2fe;color:#444;border-left-color:#e0e0e0}.enlighter-t-eclipse .enlighter-raw{font-size:1.1em;line-height:1.5em;padding:4px 5px 4px 56px;color:#717171}.enlighter-t-eclipse div.enlighter{background-color:#fff}.enlighter-t-eclipse div.enlighter>div{border:solid 0 #fff;background-color:transparent;padding:1px 5px 1px 0;line-height:1.35em;color:#787878}.enlighter-t-eclipse div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-eclipse div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-eclipse div.enlighter>div:AFTER{content:' '}.enlighter-t-eclipse div.enlighter>div.enlighter-special{background-color:#f9f9f9}.enlighter-t-eclipse.enlighter-linenumbers div.enlighter>div::before{border-right:2px solid #f8f8f8;padding:1px 5px 1px 14px}.enlighter-t-eclipse .enlighter span{font-size:1.1em}.enlighter-t-eclipse .enlighter-text{color:#000}.enlighter-t-eclipse .enlighter-c0{color:#3f7f5f}.enlighter-t-eclipse .enlighter-c1{color:#3f5fbf}.enlighter-t-eclipse .enlighter-c2{color:#3f5fbf}.enlighter-t-eclipse .enlighter-c9{color:#3f5fbf}.enlighter-t-eclipse .enlighter-k0{color:#3f7f95;font-weight:700}.enlighter-t-eclipse .enlighter-k1{color:#3f7f95;font-weight:700}.enlighter-t-eclipse .enlighter-k2{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-k3{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-k4{color:#458}.enlighter-t-eclipse .enlighter-k5{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-k6{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-k7{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-k8{color:#458}.enlighter-t-eclipse .enlighter-k9{color:#990073}.enlighter-t-eclipse .enlighter-k10{color:#990073}.enlighter-t-eclipse .enlighter-k11{color:#3f5fbf}.enlighter-t-eclipse .enlighter-e0{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-e1{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-e2{color:#009926}.enlighter-t-eclipse .enlighter-e3{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-e4{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-s0{color:#320fe3}.enlighter-t-eclipse .enlighter-s1{color:#320fe3}.enlighter-t-eclipse .enlighter-s2{color:#320fe3}.enlighter-t-eclipse .enlighter-s3{color:#320fe3}.enlighter-t-eclipse .enlighter-s4{color:#320fe3}.enlighter-t-eclipse .enlighter-s5{color:#990073}.enlighter-t-eclipse .enlighter-n0{color:#000}.enlighter-t-eclipse .enlighter-n1{color:#000}.enlighter-t-eclipse .enlighter-n2{color:#000}.enlighter-t-eclipse .enlighter-n3{color:#000}.enlighter-t-eclipse .enlighter-n4{color:#000}.enlighter-t-eclipse .enlighter-n5{color:#000}.enlighter-t-eclipse .enlighter-m0{color:#000}.enlighter-t-eclipse .enlighter-m1{color:#000}.enlighter-t-eclipse .enlighter-m2{color:#000}.enlighter-t-eclipse .enlighter-m3{color:#000}.enlighter-t-eclipse .enlighter-g0{color:#777}.enlighter-t-eclipse .enlighter-g1{color:#777}.enlighter-t-eclipse .enlighter-t0{color:#777}.enlighter-t-eclipse .enlighter-t1{color:#3f7f5f;font-weight:700}.enlighter-t-eclipse .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-eclipse .enlighter-t3{color:#458}.enlighter-t-eclipse .enlighter-t4{color:#458}.enlighter-t-eclipse .enlighter-t5{color:#458}.enlighter-t-eclipse .enlighter-t6{color:#3f7f5f}.enlighter-t-eclipse .enlighter-t7{color:#a0a0a0;font-weight:700}.enlighter-t-eclipse .enlighter-t8{color:#a0a0a0;font-style:italic}.enlighter-t-eclipse .enlighter-x1{color:#3f7f95;font-weight:700}.enlighter-t-eclipse .enlighter-x2{color:#7f007f;font-weight:700}.enlighter-t-eclipse .enlighter-x10{color:#3f7f95;font-weight:700}.enlighter-t-eclipse .enlighter-x11{color:#3f7f95;font-weight:700}.enlighter-t-eclipse .enlighter-x12{color:#458}.enlighter-t-eclipse .enlighter-x13{color:#3f7f95}.enlighter-t-eclipse .enlighter-x14{color:#000}.enlighter-t-eclipse .enlighter-x15{color:#000}.enlighter-t-eclipse.enlighter-v-inline{border-radius:3px;background-color:#f8f8f8;border:solid 0 #fff}.enlighter-t-eclipse.enlighter-v-codegroup{display:block}.enlighter-t-eclipse.enlighter-v-codegroup .enlighter,.enlighter-t-eclipse.enlighter-v-codegroup .enlighter-raw{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.enlighter-t-eclipse.enlighter-v-codegroup .enlighter-codegroup-wrapper{position:relative}.enlighter-t-eclipse.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#f3f3f3;padding:8px 5px 0 60px;border-radius:5px 5px 0 0}.enlighter-t-eclipse.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{font-size:1em;color:#000;background-color:transparent;padding:5px 10px 5px 10px;border-radius:5px 5px 0 0;border:none;width:auto}.enlighter-t-eclipse.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#fff;color:#000;border-color:#c9c9c9} +.enlighter-t-mowtwo{background-color:#f0f0f1;border:solid 1px #f0f0f1;border-radius:7px}.enlighter-t-mowtwo .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-mowtwo .enlighter-btn:after{content:''}.enlighter-t-mowtwo.enlighter-hover div.enlighter>div:hover{background-color:#e9e9e9}.enlighter-t-mowtwo .enlighter-raw{font-size:1.15em;line-height:1.75em;color:#313437;padding:5px 5px 5px 51px;background-color:transparent}.enlighter-t-mowtwo div.enlighter>div{line-height:1.5em;padding:1px 5px 1px 14px;color:#9c9ea0}.enlighter-t-mowtwo div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-mowtwo div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-mowtwo div.enlighter>div:AFTER{content:' '}.enlighter-t-mowtwo div.enlighter>div.enlighter-special{background-color:#e9e9e9}.enlighter-t-mowtwo.enlighter-linenumbers div.enlighter>div::before{padding:1px 10px 1px 10px;font-size:.9em}.enlighter-t-mowtwo.enlighter-linenumbers div.enlighter>div:FIRST-CHILD::before{border-radius:0 8px 0 0}.enlighter-t-mowtwo.enlighter-linenumbers div.enlighter>div:LAST-CHILD::before{border-radius:0 0 8px 0}.enlighter-t-mowtwo .enlighter span{font-size:1.15em}.enlighter-t-mowtwo .enlighter-text{color:#313437}.enlighter-t-mowtwo .enlighter-c0{color:#9c9ea0}.enlighter-t-mowtwo .enlighter-c1{color:#9c9ea0}.enlighter-t-mowtwo .enlighter-c2{color:#9c9ea0}.enlighter-t-mowtwo .enlighter-c9{color:#9c9ea0}.enlighter-t-mowtwo .enlighter-k0{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-k1{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-k2{color:#b05098}.enlighter-t-mowtwo .enlighter-k3{color:#b05098}.enlighter-t-mowtwo .enlighter-k4{color:#b05098}.enlighter-t-mowtwo .enlighter-k5{color:#b05098}.enlighter-t-mowtwo .enlighter-k6{color:#b05098}.enlighter-t-mowtwo .enlighter-k7{color:#b05098}.enlighter-t-mowtwo .enlighter-k8{color:#313437}.enlighter-t-mowtwo .enlighter-k9{color:#313437}.enlighter-t-mowtwo .enlighter-k10{color:#313437}.enlighter-t-mowtwo .enlighter-k11{color:#9c9ea0}.enlighter-t-mowtwo .enlighter-e0{color:#b05098}.enlighter-t-mowtwo .enlighter-e1{color:#b05098}.enlighter-t-mowtwo .enlighter-e2{color:#864c08}.enlighter-t-mowtwo .enlighter-e3{color:#b05098}.enlighter-t-mowtwo .enlighter-e4{color:#b05098}.enlighter-t-mowtwo .enlighter-s0{color:#83a440}.enlighter-t-mowtwo .enlighter-s1{color:#83a440}.enlighter-t-mowtwo .enlighter-s2{color:#83a440}.enlighter-t-mowtwo .enlighter-s3{color:#83a440}.enlighter-t-mowtwo .enlighter-s4{color:#83a440}.enlighter-t-mowtwo .enlighter-s5{color:#83a440}.enlighter-t-mowtwo .enlighter-n0{color:#429bc1}.enlighter-t-mowtwo .enlighter-n1{color:#429bc1}.enlighter-t-mowtwo .enlighter-n2{color:#429bc1}.enlighter-t-mowtwo .enlighter-n3{color:#429bc1}.enlighter-t-mowtwo .enlighter-n4{color:#429bc1}.enlighter-t-mowtwo .enlighter-n5{color:#429bc1}.enlighter-t-mowtwo .enlighter-m0{color:#666}.enlighter-t-mowtwo .enlighter-m1{color:#666}.enlighter-t-mowtwo .enlighter-m2{color:#666}.enlighter-t-mowtwo .enlighter-m3{color:#666}.enlighter-t-mowtwo .enlighter-g0{color:#864c08}.enlighter-t-mowtwo .enlighter-g1{color:#909090}.enlighter-t-mowtwo .enlighter-t0{color:#909090}.enlighter-t-mowtwo .enlighter-t1{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-t2{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-t3{color:#b05098}.enlighter-t-mowtwo .enlighter-t4{color:#b05098}.enlighter-t-mowtwo .enlighter-t5{color:#83a440}.enlighter-t-mowtwo .enlighter-t6{color:#b05098}.enlighter-t-mowtwo .enlighter-t7{color:#909090;font-weight:700}.enlighter-t-mowtwo .enlighter-t8{color:#909090;font-style:italic}.enlighter-t-mowtwo .enlighter-x1{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-x2{color:#b05098}.enlighter-t-mowtwo .enlighter-x10{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-x11{color:#b05098;font-weight:700}.enlighter-t-mowtwo .enlighter-x12{color:#313437}.enlighter-t-mowtwo .enlighter-x13{color:#429bc1}.enlighter-t-mowtwo .enlighter-x14{color:#429bc1}.enlighter-t-mowtwo .enlighter-x15{color:#313437}.enlighter-t-mowtwo.enlighter-v-inline{border-radius:4px}.enlighter-t-mowtwo.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#585b5e;padding:10px 0 10px 20px;border-radius:8px;margin-bottom:5px}.enlighter-t-mowtwo.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{border-radius:0;background-color:transparent;line-height:1.7em;font-size:1.25em;color:#f0f0f0;border:none;padding:0 10px 0 10px;width:auto;height:auto;font-family:"Open Sans",Arial,Verdana,sans-serif}.enlighter-t-mowtwo.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{text-decoration:underline} +.enlighter-t-rowhammer{background-color:transparent;border:none}.enlighter-t-rowhammer .enlighter-toolbar{top:20px}.enlighter-t-rowhammer .enlighter-btn{background-color:#fff;color:#717171;font-size:1em;padding:0;border:1px solid #e0e0e0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;background-position:0 0;background-size:contain}.enlighter-t-rowhammer .enlighter-btn:hover{background-color:#fff}.enlighter-t-rowhammer .enlighter-btn:after{content:''}.enlighter-t-rowhammer.enlighter-hover div.enlighter>div:hover{background-color:#f0f0f0}.enlighter-t-rowhammer .enlighter-raw{font-size:1.1em;color:#404141;background-color:transparent;padding:14px 0 15px 38px;line-height:2em}.enlighter-t-rowhammer div.enlighter>div{border:solid 0 #fff;padding:1px 5px 1px 0;line-height:1.67em;color:#94a9bf;background-color:transparent;border-bottom:dotted 1px #e9e9f0}.enlighter-t-rowhammer div.enlighter>div:nth-of-type(1){border-top:dotted 1px #e9e9f0}.enlighter-t-rowhammer div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-rowhammer div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-rowhammer div.enlighter>div:AFTER{content:' '}.enlighter-t-rowhammer div.enlighter>div.enlighter-special{background-color:#f9f9f9}.enlighter-t-rowhammer.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 14px;font-size:.8em;color:#94a9bf}.enlighter-t-rowhammer .enlighter span{font-size:1.1em}.enlighter-t-rowhammer .enlighter-text{color:#000}.enlighter-t-rowhammer .enlighter-c0{color:#758697}.enlighter-t-rowhammer .enlighter-c1{color:#758697}.enlighter-t-rowhammer .enlighter-c2{color:#758697}.enlighter-t-rowhammer .enlighter-c9{color:#758697}.enlighter-t-rowhammer .enlighter-k0{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-k1{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-k2{color:#07a;font-weight:700}.enlighter-t-rowhammer .enlighter-k3{color:#07a}.enlighter-t-rowhammer .enlighter-k4{color:#07a;font-weight:700}.enlighter-t-rowhammer .enlighter-k5{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-k6{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-k7{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-k8{color:#07a}.enlighter-t-rowhammer .enlighter-k9{color:#000}.enlighter-t-rowhammer .enlighter-k10{color:#07a;font-style:italic}.enlighter-t-rowhammer .enlighter-k11{color:#758697}.enlighter-t-rowhammer .enlighter-e0{color:#07a;font-weight:700}.enlighter-t-rowhammer .enlighter-e1{color:#07a;font-weight:700}.enlighter-t-rowhammer .enlighter-e2{color:#d2901d}.enlighter-t-rowhammer .enlighter-e3{color:#07a}.enlighter-t-rowhammer .enlighter-e4{color:#ff8c00;font-style:italic}.enlighter-t-rowhammer .enlighter-s0{color:#639500;border-bottom:dotted 1px #639500}.enlighter-t-rowhammer .enlighter-s1{color:#639500}.enlighter-t-rowhammer .enlighter-s2{color:#639500}.enlighter-t-rowhammer .enlighter-s3{color:#639500}.enlighter-t-rowhammer .enlighter-s4{color:#639500}.enlighter-t-rowhammer .enlighter-s5{color:#639500;font-style:italic}.enlighter-t-rowhammer .enlighter-n0{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-n1{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-n2{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-n3{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-n4{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-n5{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-m0{color:#d0284a;font-weight:700}.enlighter-t-rowhammer .enlighter-m1{color:#c2415b;font-weight:700}.enlighter-t-rowhammer .enlighter-m2{color:#c2415b;font-weight:700}.enlighter-t-rowhammer .enlighter-m3{color:#d0284a;font-weight:700}.enlighter-t-rowhammer .enlighter-g0{color:#35434c;font-weight:700}.enlighter-t-rowhammer .enlighter-g1{color:#6b7c8b;font-weight:700}.enlighter-t-rowhammer .enlighter-t0{color:#777}.enlighter-t-rowhammer .enlighter-t1{color:#961414;font-weight:700}.enlighter-t-rowhammer .enlighter-t2{color:#990073;font-weight:700}.enlighter-t-rowhammer .enlighter-t3{color:#458}.enlighter-t-rowhammer .enlighter-t4{color:#6e0d6e}.enlighter-t-rowhammer .enlighter-t5{color:#6e0d6e}.enlighter-t-rowhammer .enlighter-t6{color:#961414}.enlighter-t-rowhammer .enlighter-t7{color:#535353;font-weight:700}.enlighter-t-rowhammer .enlighter-t8{color:#777;font-style:italic}.enlighter-t-rowhammer .enlighter-x1{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-x2{color:#07a;font-weight:700}.enlighter-t-rowhammer .enlighter-x10{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-x11{color:#07a;font-weight:700;border-bottom:dotted 1px #07a}.enlighter-t-rowhammer .enlighter-x12{color:#07a}.enlighter-t-rowhammer .enlighter-x13{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-x14{color:#9b0d5c}.enlighter-t-rowhammer .enlighter-x15{color:#121212}.enlighter-t-rowhammer.enlighter-v-codegroup .enlighter-codegroup-switch{padding-left:15px;padding-bottom:15px}.enlighter-t-rowhammer.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{font-size:1em;color:#758697;background-color:transparent;border-radius:0;font-weight:700;text-transform:uppercase;padding:2px 10px 2px 10px;border:none;width:auto;height:auto}.enlighter-t-rowhammer.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{border-bottom:dotted 1px #758697;background-color:#f0f0f0} +.enlighter-t-bootstrap4{color:#212529;background-color:#f8f9fa;padding:25px 25px 25px 25px}.enlighter-t-bootstrap4 .enlighter-toolbar{top:10px;right:10px}.enlighter-t-bootstrap4 .enlighter-btn{background-image:none;background-color:transparent;color:#818a91;font-size:1em;padding:2px 8px 2px 8px;margin:0 5px 0 5px;border:none;border-radius:4px;font-family:"Open Sans",Arial,Verdana,sans-serif}.enlighter-t-bootstrap4 .enlighter-btn:hover{background-color:#007bff;color:#f0f0f0}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-raw{background-image:none}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-raw:after{content:'Raw'}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-copy{background-image:none}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-copy:after{content:'Copy'}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-window{background-image:none}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-window:after{content:'Extern'}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-website{background-image:none}.enlighter-t-bootstrap4 .enlighter-toolbar .enlighter-btn-website:after{content:'EnlighterJS'}.enlighter-t-bootstrap4.enlighter-hover div.enlighter>div:hover{background-color:#eceef0}.enlighter-t-bootstrap4 .enlighter-raw{font-size:1.15em;color:#212529;background-color:#f8f9fa;line-height:1.7em;padding:0 0 0 61px}.enlighter-t-bootstrap4 div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.35em;color:#999;background-color:transparent}.enlighter-t-bootstrap4 div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-bootstrap4 div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-bootstrap4 div.enlighter>div:AFTER{content:' '}.enlighter-t-bootstrap4 div.enlighter>div.enlighter-special{background-color:#eceef0}.enlighter-t-bootstrap4.enlighter-linenumbers div.enlighter>div::before{padding:1px 5px 1px 0;font-size:.8em}.enlighter-t-bootstrap4 .enlighter span{font-size:1.15em}.enlighter-t-bootstrap4 .enlighter-text{color:#212529}.enlighter-t-bootstrap4 .enlighter-c0{color:#999}.enlighter-t-bootstrap4 .enlighter-c1{color:#999}.enlighter-t-bootstrap4 .enlighter-c2{color:#999}.enlighter-t-bootstrap4 .enlighter-c9{color:#999}.enlighter-t-bootstrap4 .enlighter-k0{color:#069}.enlighter-t-bootstrap4 .enlighter-k1{color:#069}.enlighter-t-bootstrap4 .enlighter-k2{color:#069}.enlighter-t-bootstrap4 .enlighter-k3{color:#069}.enlighter-t-bootstrap4 .enlighter-k4{color:#069;font-style:italic}.enlighter-t-bootstrap4 .enlighter-k5{color:#212529}.enlighter-t-bootstrap4 .enlighter-k6{color:#069}.enlighter-t-bootstrap4 .enlighter-k7{color:#069;border-bottom:dotted 1px #069}.enlighter-t-bootstrap4 .enlighter-k8{color:#212529}.enlighter-t-bootstrap4 .enlighter-k9{color:#069}.enlighter-t-bootstrap4 .enlighter-k10{color:#212529}.enlighter-t-bootstrap4 .enlighter-k11{color:#999}.enlighter-t-bootstrap4 .enlighter-e0{color:#069}.enlighter-t-bootstrap4 .enlighter-e1{color:#069}.enlighter-t-bootstrap4 .enlighter-e2{color:#009926}.enlighter-t-bootstrap4 .enlighter-e3{color:#069}.enlighter-t-bootstrap4 .enlighter-e4{color:#069}.enlighter-t-bootstrap4 .enlighter-s0{color:#d44950}.enlighter-t-bootstrap4 .enlighter-s1{color:#d44950}.enlighter-t-bootstrap4 .enlighter-s2{color:#d44950}.enlighter-t-bootstrap4 .enlighter-s3{color:#d44950}.enlighter-t-bootstrap4 .enlighter-s4{color:#d44950}.enlighter-t-bootstrap4 .enlighter-s5{color:#d44950}.enlighter-t-bootstrap4 .enlighter-n0{color:#f60}.enlighter-t-bootstrap4 .enlighter-n1{color:#f60}.enlighter-t-bootstrap4 .enlighter-n2{color:#f60}.enlighter-t-bootstrap4 .enlighter-n3{color:#f60}.enlighter-t-bootstrap4 .enlighter-n4{color:#f60}.enlighter-t-bootstrap4 .enlighter-n5{color:#f60}.enlighter-t-bootstrap4 .enlighter-m0{color:#99f}.enlighter-t-bootstrap4 .enlighter-m1{color:#212529}.enlighter-t-bootstrap4 .enlighter-m2{color:#212529}.enlighter-t-bootstrap4 .enlighter-m3{color:#212529}.enlighter-t-bootstrap4 .enlighter-g0{color:#2f6f9f}.enlighter-t-bootstrap4 .enlighter-g1{color:#999;font-weight:700}.enlighter-t-bootstrap4 .enlighter-t0{color:#999}.enlighter-t-bootstrap4 .enlighter-t1{color:#d44950;font-weight:700}.enlighter-t-bootstrap4 .enlighter-t2{color:#d44950;font-weight:700}.enlighter-t-bootstrap4 .enlighter-t3{color:#0086b3}.enlighter-t-bootstrap4 .enlighter-t4{color:#0a8}.enlighter-t-bootstrap4 .enlighter-t5{color:#0a8}.enlighter-t-bootstrap4 .enlighter-t6{color:#f60}.enlighter-t-bootstrap4 .enlighter-t7{color:#999;font-weight:700}.enlighter-t-bootstrap4 .enlighter-t8{color:#999}.enlighter-t-bootstrap4 .enlighter-x1{color:#2f6f9f}.enlighter-t-bootstrap4 .enlighter-x2{color:#4f9fcf}.enlighter-t-bootstrap4 .enlighter-x10{color:#0a8}.enlighter-t-bootstrap4 .enlighter-x11{color:#0a8}.enlighter-t-bootstrap4 .enlighter-x12{color:#99f}.enlighter-t-bootstrap4 .enlighter-x13{color:#f60}.enlighter-t-bootstrap4 .enlighter-x14{color:#f60}.enlighter-t-bootstrap4 .enlighter-x15{color:#f60}.enlighter-t-bootstrap4.enlighter-v-inline{background-color:#f8f9fa;border:none;border-radius:5px;padding:3px}.enlighter-t-bootstrap4.enlighter-v-codegroup .enlighter-codegroup-switch{border:solid 3px #f8f9fa;border-bottom-width:0;padding:15px}.enlighter-t-bootstrap4.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{padding:3px 10px 3px 10px;border:none;font-size:.9em;color:#212529;font-weight:700;background-color:#f8f9fa;border-radius:5px}.enlighter-t-bootstrap4.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#007bff;color:#f0f0f0} +.enlighter-t-dracula{background-color:#282a36}.enlighter-t-dracula .enlighter-toolbar{top:10px;right:10px}.enlighter-t-dracula .enlighter-btn{background-image:none;background-color:#44475a;color:#f8f8f2;font-size:1em;padding:2px 8px 2px 8px;margin:0 5px 0 5px;border:none;border-radius:4px;font-family:Arial,Helvetica,sans-serif}.enlighter-t-dracula .enlighter-btn:hover{background-color:#6272a4;color:#f8f8f2}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-raw{background-image:none}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-raw:after{content:'Raw'}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-copy{background-image:none}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-copy:after{content:'Copy'}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-window{background-image:none}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-window:after{content:'Extern'}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-website{background-image:none}.enlighter-t-dracula .enlighter-toolbar .enlighter-btn-website:after{content:'EnlighterJS'}.enlighter-t-dracula.enlighter-hover div.enlighter>div:hover{background-color:#44475a}.enlighter-t-dracula .enlighter-raw{font-size:1.25em;color:#f8f8f2;line-height:1.85em;padding:4px 5px 4px 55px}.enlighter-t-dracula div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.6em;color:#6272a4;background-color:#282a36}.enlighter-t-dracula div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-dracula div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-dracula div.enlighter>div:AFTER{content:' '}.enlighter-t-dracula div.enlighter>div.enlighter-special{background-color:#44475a}.enlighter-t-dracula.enlighter-linenumbers div.enlighter>div::before{font-size:1em;color:#6272a4}.enlighter-t-dracula .enlighter span{font-size:1.25em}.enlighter-t-dracula .enlighter-text{color:#f8f8f2}.enlighter-t-dracula .enlighter-c0{color:#6272a4}.enlighter-t-dracula .enlighter-c1{color:#6272a4}.enlighter-t-dracula .enlighter-c2{color:#6272a4}.enlighter-t-dracula .enlighter-c9{color:#6272a4}.enlighter-t-dracula .enlighter-k0{color:#ff79c6;font-weight:700}.enlighter-t-dracula .enlighter-k1{color:#8be9fd;font-weight:700}.enlighter-t-dracula .enlighter-k2{color:#ff79c6;font-weight:700}.enlighter-t-dracula .enlighter-k3{color:#ff79c6}.enlighter-t-dracula .enlighter-k4{color:#8be9fd}.enlighter-t-dracula .enlighter-k5{color:#8be9fd}.enlighter-t-dracula .enlighter-k6{color:#8be9fd}.enlighter-t-dracula .enlighter-k7{color:#ffb86c}.enlighter-t-dracula .enlighter-k8{color:#8be9fd}.enlighter-t-dracula .enlighter-k9{color:#50fa7b}.enlighter-t-dracula .enlighter-k10{color:#50fa7b}.enlighter-t-dracula .enlighter-k11{color:#6272a4}.enlighter-t-dracula .enlighter-e0{color:#bd93f9;font-weight:700}.enlighter-t-dracula .enlighter-e1{color:#bd93f9;font-weight:700}.enlighter-t-dracula .enlighter-e2{color:#f1fa8c}.enlighter-t-dracula .enlighter-e3{color:#bd93f9}.enlighter-t-dracula .enlighter-e4{color:#bd93f9;font-style:italic}.enlighter-t-dracula .enlighter-s0{color:#f1fa8c}.enlighter-t-dracula .enlighter-s1{color:#f1fa8c}.enlighter-t-dracula .enlighter-s2{color:#f1fa8c}.enlighter-t-dracula .enlighter-s3{color:#f1fa8c}.enlighter-t-dracula .enlighter-s4{color:#f1fa8c;font-weight:700}.enlighter-t-dracula .enlighter-s5{color:#f1fa8c;font-style:italic}.enlighter-t-dracula .enlighter-n0{color:#bd93f9}.enlighter-t-dracula .enlighter-n1{color:#bd93f9}.enlighter-t-dracula .enlighter-n2{color:#bd93f9}.enlighter-t-dracula .enlighter-n3{color:#bd93f9}.enlighter-t-dracula .enlighter-n4{color:#bd93f9}.enlighter-t-dracula .enlighter-n5{color:#bd93f9}.enlighter-t-dracula .enlighter-m0{color:#8be9fd}.enlighter-t-dracula .enlighter-m1{color:#8be9fd}.enlighter-t-dracula .enlighter-m2{color:#8be9fd}.enlighter-t-dracula .enlighter-m3{color:#8be9fd}.enlighter-t-dracula .enlighter-g0{color:#f8f8f2;font-weight:700}.enlighter-t-dracula .enlighter-g1{color:#f8f8f2;font-weight:700}.enlighter-t-dracula .enlighter-t0{color:#6272a4}.enlighter-t-dracula .enlighter-t1{color:#8be9fd;font-weight:700}.enlighter-t-dracula .enlighter-t2{color:#8be9fd;font-weight:700}.enlighter-t-dracula .enlighter-t3{color:#ff79c6}.enlighter-t-dracula .enlighter-t4{color:#ffb86c}.enlighter-t-dracula .enlighter-t5{color:#50fa7b}.enlighter-t-dracula .enlighter-t6{color:#f55}.enlighter-t-dracula .enlighter-t7{color:#f8f8f2;font-weight:700}.enlighter-t-dracula .enlighter-t8{color:#f8f8f2}.enlighter-t-dracula .enlighter-x1{color:#ff79c6;font-weight:700}.enlighter-t-dracula .enlighter-x2{color:#50fa7b}.enlighter-t-dracula .enlighter-x10{color:#f8f8f2;font-weight:700}.enlighter-t-dracula .enlighter-x11{color:#50fa7b;font-weight:700}.enlighter-t-dracula .enlighter-x12{color:#8be9fd;font-style:italic}.enlighter-t-dracula .enlighter-x13{color:#bd93f9}.enlighter-t-dracula .enlighter-x14{color:#bd93f9;font-style:italic}.enlighter-t-dracula .enlighter-x15{color:#ffb86c;font-style:italic}.enlighter-t-dracula.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#282a36;padding:10px}.enlighter-t-dracula.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{background-image:none;background-color:transparent;color:#f8f8f2;font-size:1.15em;padding:2px 8px 2px 8px;margin:0 5px 0 5px;border:none;border-radius:4px;font-family:Arial,Helvetica,sans-serif}.enlighter-t-dracula.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#44475a;color:#f8f8f2} +.enlighter-t-monokai{background-color:#272822}.enlighter-t-monokai .enlighter-toolbar{top:10px;right:10px}.enlighter-t-monokai .enlighter-btn{background-image:none;background-color:#414339;color:#f8f8f2;font-size:1em;padding:2px 8px 2px 8px;margin:0 5px 0 5px;border:solid 1px #1e1f1c;font-family:"Open Sans",Arial,Verdana,sans-serif}.enlighter-t-monokai .enlighter-btn:hover{background-color:#4e5145}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-raw{background-image:none}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-raw:after{content:'Raw'}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-copy{background-image:none}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-copy:after{content:'Copy'}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-window{background-image:none}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-window:after{content:'Extern'}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-website{background-image:none}.enlighter-t-monokai .enlighter-toolbar .enlighter-btn-website:after{content:'EnlighterJS'}.enlighter-t-monokai.enlighter-hover div.enlighter>div:hover{background-color:#75715e}.enlighter-t-monokai .enlighter-raw{font-size:1.25em;color:#f8f8f2;line-height:1.85em;padding:4px 5px 4px 55px}.enlighter-t-monokai div.enlighter>div{padding:1px 5px 1px 14px;line-height:1.6em}.enlighter-t-monokai div.enlighter>div:FIRST-CHILD{padding-top:5px}.enlighter-t-monokai div.enlighter>div:LAST-CHILD{padding-bottom:5px}.enlighter-t-monokai div.enlighter>div:AFTER{content:' '}.enlighter-t-monokai div.enlighter>div.enlighter-special{background-color:#414339}.enlighter-t-monokai.enlighter-linenumbers div.enlighter>div::before{font-size:1em;color:grey}.enlighter-t-monokai .enlighter span{font-size:1.25em}.enlighter-t-monokai .enlighter-text{color:#f8f8f2}.enlighter-t-monokai .enlighter-c0{color:#75715e}.enlighter-t-monokai .enlighter-c1{color:#75715e}.enlighter-t-monokai .enlighter-c2{color:#75715e}.enlighter-t-monokai .enlighter-c9{color:#75715e}.enlighter-t-monokai .enlighter-k0{color:#f92672}.enlighter-t-monokai .enlighter-k1{color:#f92672}.enlighter-t-monokai .enlighter-k2{color:#f92672}.enlighter-t-monokai .enlighter-k3{color:#f92672}.enlighter-t-monokai .enlighter-k4{color:#f92672}.enlighter-t-monokai .enlighter-k5{color:#f92672}.enlighter-t-monokai .enlighter-k6{color:#f92672}.enlighter-t-monokai .enlighter-k7{color:#f8f8f2}.enlighter-t-monokai .enlighter-k8{color:#f92672}.enlighter-t-monokai .enlighter-k9{color:#fd971f}.enlighter-t-monokai .enlighter-k10{color:#f92672}.enlighter-t-monokai .enlighter-k11{color:#75715e}.enlighter-t-monokai .enlighter-e0{color:#ae81ff}.enlighter-t-monokai .enlighter-e1{color:#ae81ff}.enlighter-t-monokai .enlighter-e2{color:#ae81ff}.enlighter-t-monokai .enlighter-e3{color:#ae81ff}.enlighter-t-monokai .enlighter-e4{color:#ae81ff}.enlighter-t-monokai .enlighter-s0{color:#e6db74}.enlighter-t-monokai .enlighter-s1{color:#e6db74}.enlighter-t-monokai .enlighter-s2{color:#e6db74}.enlighter-t-monokai .enlighter-s3{color:#e6db74}.enlighter-t-monokai .enlighter-s4{color:#e6db74;font-weight:700}.enlighter-t-monokai .enlighter-s5{color:#e6db74;font-style:italic}.enlighter-t-monokai .enlighter-n0{color:#ae81ff}.enlighter-t-monokai .enlighter-n1{color:#ae81ff}.enlighter-t-monokai .enlighter-n2{color:#ae81ff}.enlighter-t-monokai .enlighter-n3{color:#ae81ff}.enlighter-t-monokai .enlighter-n4{color:#ae81ff}.enlighter-t-monokai .enlighter-n5{color:#ae81ff}.enlighter-t-monokai .enlighter-m0{color:#66d9ef}.enlighter-t-monokai .enlighter-m1{color:#66d9ef}.enlighter-t-monokai .enlighter-m2{color:#66d9ef}.enlighter-t-monokai .enlighter-m3{color:#66d9ef}.enlighter-t-monokai .enlighter-g0{color:#f8f8f2;font-weight:700}.enlighter-t-monokai .enlighter-g1{color:#f8f8f2;font-weight:700}.enlighter-t-monokai .enlighter-t0{color:#f8f8f2}.enlighter-t-monokai .enlighter-t1{color:#a6e22e}.enlighter-t-monokai .enlighter-t2{color:#a6e22e}.enlighter-t-monokai .enlighter-t3{color:#e6db74}.enlighter-t-monokai .enlighter-t4{color:#e6db74}.enlighter-t-monokai .enlighter-t5{color:#a6e22e}.enlighter-t-monokai .enlighter-t6{color:#f92672}.enlighter-t-monokai .enlighter-t7{color:#f92672}.enlighter-t-monokai .enlighter-t8{color:#75715e}.enlighter-t-monokai .enlighter-x1{color:#f92672}.enlighter-t-monokai .enlighter-x2{color:#a6e22e}.enlighter-t-monokai .enlighter-x10{color:#a6e22e}.enlighter-t-monokai .enlighter-x11{color:#a6e22e}.enlighter-t-monokai .enlighter-x12{color:#66d9ef;font-style:italic}.enlighter-t-monokai .enlighter-x13{color:#f92672}.enlighter-t-monokai .enlighter-x14{color:#ae81ff}.enlighter-t-monokai .enlighter-x15{color:#a6e22e}.enlighter-t-monokai.enlighter-v-codegroup .enlighter-codegroup-switch{background-color:#414339;padding:10px 10px 0 30px}.enlighter-t-monokai.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn{background-image:none;background-color:#414339;color:#f8f8f2;font-size:1.15em;padding:2px 8px 2px 8px;margin:0 10px 0 10px;border:none;line-height:2.1em;border-radius:0;font-style:italic}.enlighter-t-monokai.enlighter-v-codegroup .enlighter-codegroup-switch .enlighter-btn.enlighter-active{background-color:#272822;color:#f8f8f2;font-weight:700;font-style:normal} + +.enlighter-default{} + +/* Enlighter dynamic generated stylesheet - DO NOT EDIT */ \ No newline at end of file diff --git a/static/wp-content/plugins/enlighter/cache/enlighterjs.min.js b/static/wp-content/plugins/enlighter/cache/enlighterjs.min.js new file mode 100644 index 0000000..f0063d5 --- /dev/null +++ b/static/wp-content/plugins/enlighter/cache/enlighterjs.min.js @@ -0,0 +1,4 @@ +/* Enlighter dynamic generated script - DO NOT EDIT */ +/*! EnlighterJS Syntax Highlighter 3.5.0 | Mozilla Public License 2.0 | https://enlighterjs.org */ +var EnlighterJS=function(e){"use strict";var u={indent:4,ampersandCleanup:!0,linehover:!0,rawcodeDbclick:!1,textOverflow:"break",collapse:!1,retainCssClasses:!1,cssClasses:"",toolbarOuter:"{BTN_TABS}",toolbarTop:"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}",toolbarBottom:"{BTN_COLLAPSE}",linenumbers:!0,lineoffset:0,highlight:"",layout:"standard",language:"generic",theme:"enlighter",title:""};function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r]+/g,type:"g1"},floats:{regex:/[\b\W](-?((?:\d+\.\d+|\.\d+|\d+\.)(?:e[+-]?\d+)?)|\d+(?:e[+-]?\d+))/gi,type:"n0"},complex:{regex:/[\b\W](?:-?(?:(?:\d+\.\d+|\.\d+|\d+\.|\d+)(?:e[+-]?\d+)?)|\d+(?:e[+-]?\d+))[ij]/gi,type:"n5"},int:{regex:/[\b\W](-?\d+)(?!\.)\b/g,type:"n1"},hex:{regex:/[\b\W](-?0x[A-F0-9]+)\b/gi,type:"n2"},bin:{regex:/[\b\W](-?0b[01]+)\b/gi,type:"n3"},octal:{regex:/[\b\W](-?0[0-7]+)(?!\.)\b/g,type:"n4"},prop:{regex:/[\w\])]\.(\w+)\b/g,type:"m3"},fCalls:{regex:/\b([\w]+)\s*\(/gm,type:"m0"},mCalls:{regex:/\.([\w]+)\s*\(/gm,type:"m1"},boolean:{regex:/\b(true|false)\b/gi,type:"e0"},null:{regex:/\b(null)\b/gi,type:"e1"}};function b(e,t,r,n,i){return{text:e,type:t,index:n||0,end:e.length+n,filter:r||null,priority:i||0}}function B(){(console.error||console.log||function(){}).apply(void 0,arguments)}function Z(e,t,r){for(var n=2=c?t.type[c-1]:a,g=Array.isArray(t.filter)&&t.filter.length>=c?t.filter[c-1]:o,u=n[0].indexOf(n[c],p),i.push(b(n[c],l,g,n.index+(p=u),r)));else i.push(b(n[0],a,o,n.index,r))}}return i}(e,a,s),i=i.concat(o)}catch(e){B(e)}}i=i.sort(function(e,t){return e.index==t.index?e.priority=g){u=f-1,y=!0;break}if(!1===y)break}return g)/gi,type:["g1","x1","text","g1"],filter:[null,null,function(e){return f(e,c.dqStrings.regex,function(e){return[b(e[0],"s0")]})},null]},{regex:/(<\/)([A-Z:_][A-Z0-9:.-]*\s*)(>)/gi,type:["g1","x1","g1"]},{regex:/^\s*([A-Z]\w+)\b/gm,type:"k0"},{regex:/%\{\w+\}/g,type:"k7"},{regex:/\b(on|off)\b/gi,type:"e0"},c.int]}}],[{key:"alias",value:function(){return["apacheconf","httpd"]}}]),t}(),P=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/(;.*)$/gm,type:"co0"},{regex:/(\$.*)$/gm,type:"k4"},c.sqStrings,c.dqStrings,{regex:/(^|:)\s*?(\w+)\s+/gm,type:"k0"},{regex:/^\s*?([A-Z?_][A-Z0-9?_]+:)\s*?/gim,type:"k6"},{regex:/@\w+/gi,type:"k9"},{regex:/#\w+/gi,type:"k9"},{regex:/[A-F0-9][A-F0-9$]+?H/gi,type:"n2"},{regex:/\d[\d$]+?D/gi,type:"n1"},{regex:/[01][01$]+?B/gi,type:"n3"},{regex:/[0-7][0-7$]+?(?:Q|O)/gi,type:"nu4"},{regex:/(0x[A-F0-9]+|\$[A-F0-9]+)/gi,type:"n2"},{regex:/(0b[01]+)/g,type:"n3"},{regex:/\b(\d+)/g,type:"n1"},c.fCalls]}}],[{key:"alias",value:function(){return["asm"]}}]),t}(),U=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/(;.*)$/gm,type:"co0"},c.sqStrings,c.dqStrings,{regex:/^\s*?\.\w+\s+/gm,type:"kw4"},{regex:/\b(r\d{1,2})/gi,type:"kw0"},{regex:/(@[0-9])/gi,type:"k2"},{regex:/^\s*?(\w+:)\s*?/gm,type:"kw6"},{regex:/(^|:)\s*?(\w+)\s+/gm,type:"kw0"},{regex:/(0x[A-F0-9]+|\$[A-F0-9]+)/gi,type:"nu2"},c.bin,c.int,c.fCalls,{regex:/\b[A-Z]{2,}[0-9]?[0-9]?\b/g,type:"kw9"}]}}],[{key:"alias",value:function(){return["avrasm"]}}]),t}(),G=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:/(?:^|\b)(REM)(.*)?$/gim,type:["k0","c0"]},{regex:/^(::.*)$/gim,type:"c0"},{regex:/%%\w+/gi,type:"s4"},{regex:/(%[\d*])\b/gi,type:"k9"},{regex:/(%\w+%)/gi,type:"k7"},{regex:/\b(\w+)=/gi,type:["k0","k7"]},{regex:/\s(\/\w)\s/gi,type:"k8"},{regex:/\b(echo)\s+(.*)$/gim,type:["k1","text"]},{regex:/\s*(:[\w_]+)\s*/gi,type:"k6"},{regex:/\b(goto)\s+([\w_]+)\b/gi,type:["k1","k6"]},{regex:/\b(if|else|for|in|do|echo|goto)\b/gi,type:"k1"},{regex:/\b(set)\b/gi,type:"k0"},{regex:/\b(not@equ)\b/gi,type:"k3"},{regex:/\b(on|off)\b/gi,type:"e0"},{regex:/\b(nul)\b/gi,type:"e1"},c.mCalls,c.int]}}],[{key:"alias",value:function(){return["bat","cmd"]}}]),t}(),H=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.char,{regex:/@[\W\w_][\w]+/gm,type:"k11"},c.boolean,c.null,c.prop,{regex:/#.*$/gm,type:"k4"},{regex:/\b(break|case|catch|continue|do|else|for|if|goto|switch|try|throw|while)\b/g,type:"k1"},{regex:/\b(__[A-Z][A-Z0-9_]+__|__cplusplus)\b/g,type:"e3"},{regex:/\b(\w+\d+?_t)\b/g,type:"k5"},{regex:/\b(bool|char|double|float|int|long|short|void)\b/g,type:"k5"},{regex:/\b(enum|struct|typedef|union)\b/g,type:"k2"},{regex:/\b(const|volatile|unsigned|signed|restrict)\b/g,type:"k8"},{regex:/\b(asm|auto|class|auto|default|explicit|export|extern|friend|inline|thread_local|static_assert|nullptr|noexcept|friend|decltype|constexpr|alignof|alignas|virtual|using|typename|typeid|this|template|static|return|register|public|protected|private|operator|namespace|mutable|inline)\b/g,type:"k0"},{regex:/\b(new|delete|cast|const_cast|dynamic_cast|static_cast|reinterpret_cast|sizeof|and|bitand|and_eq|not|not_eq|or|bitor|or_eq|xor|xor_eq|compl)\b/g,type:"k3"},c.mCalls,c.fCalls,c.slashComments,c.blockComments,c.octal,c.bin,c.hex,c.floats,c.brackets]}}],[{key:"alias",value:function(){return["c++","c"]}}]),t}(),V=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/\$("(?:[^"\\]|\\.)*")/g,type:"s0",filter:function(e){return f(e,/\{.*?}/g,function(e){return[b(e[0],"s3")]})}},c.dqStrings,c.char,c.null,c.boolean,c.prop,{regex:/\b(bool|byte|char|decimal|double|float|int|long|sbyte|short|uint|ulong|ushort|void|string)\b/g,type:"k5"},{regex:/\b(while|try|throw|switch|if|goto|foreach|for|finally|else|do|continue|catch|case|break)\b/g,type:"k1"},{regex:/^((?:using|namespace)\s+)(\w[\w._]+[;{\n])/gm,type:["k0","k10"]},{regex:/\b(enum|struct|var)\b/g,type:"k2"},{regex:/\b(const|in|out)\b/g,type:"k8"},{regex:/\b(using|volatile|virtual|using|unsafe|unchecked|static|stackalloc|sealed|return|ref|readonly|public|protected|private|params|override|operator|object|namespace|lock|is|internal|interface|implicit|fixed|extern|explicit|event|delegate|default|class|checked|base|as|abstract)\b/g,type:"k0"},{regex:/\b(add|alias|ascending|async|await|by|descending|dynamic|equals|from|get|global|group|into|join|let|nameof|on|orderby|partial|remove|select|set|unmanaged|value|var|when|where|yield)\b/g,type:"k0"},{regex:/\b(this)\b/g,type:"k9"},{regex:/\b(new|sizeof|typeof)\b/g,type:"k3"},c.fCalls,c.mCalls,c.slashComments,c.blockComments,c.docComments,c.int,c.floats,c.bin,c.hex,c.octal,c.brackets]}}],[{key:"alias",value:function(){return["c#"]}}]),t}(),d={pseudoElements:{regex:/[\w\])](::?[\w-]+)\b/g,type:"x15"},idSelector:{regex:/(#[\w-]+)/g,type:"x10"},classSelector:{regex:/(\.[\w-]+)/g,type:"x11"},elementSelector:{regex:/\b([\w-]+)/g,type:"x16"}},h=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){var t=[d.pseudoElements,d.idSelector,d.classSelector,d.elementSelector,c.dqStrings,c.sqStrings];this.rules=[{regex:/(?:^|}|\*\/|;|{)\s*([^{};/]+?)\s*{/g,type:"text",filter:function(e){return Z(e.text,t)}},c.dqStrings,c.sqStrings,{regex:/\W@(charset|import|namespace|page|font-face|keyframes|viewport|document|supports)\b/gi,type:"k4"},{regex:/(url\s*)(\(.*?\))/gi,type:["m0","s0"]},{regex:/(#[a-z0-9]+)\W/gi,type:"x14"},{regex:/(-?\.?\d+[.\d]*(%|[a-z]{2,4})?)/gim,type:"x13"},{regex:/([\w-]+)\s*:/g,type:"x12"},c.blockComments,c.brackets]}}],[{key:"alias",value:function(){return["styles"]}}]),t}(),J=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/^("""[\s\S]*?"""|'''[\s\S]*?''')/gm,type:"c9"},{regex:/("""[\s\S]*?"""|'''[\s\S]*?''')/g,type:"s5"},c.dqStrings,c.sqStrings,{regex:/\b(__[a-z]+__)\b/g,type:"e3"},{regex:/[^;]\s*(from\s+)([\w.]+)(\s+import)/gi,type:["k0","k10","k0"]},{regex:/\b(raise|while|try|if|for|finally|else|elif|continue|break)\b/g,type:"k1"},{regex:/\b(yield|with|return|pass|lambda|is|in|import|global|from|except|def|class|assert|as|async|await)\b/g,type:"k0"},{regex:/\b(and|or|not|del)\b/g,type:"k3"},{regex:/\b(True|False)\b/g,type:"e0"},{regex:/\b(None)\b/g,type:"e1"},c.mCalls,c.fCalls,c.poundComments,c.int,c.hex,c.floats,c.octal,c.brackets]}}],[{key:"alias",value:function(){return["py"]}}]),t}(),Y=function(){i(t,J);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=[{regex:/\b(bool|char|double|float|int|long|short|void)\b/g,type:"k5"},{regex:/\b(enum|struct|typedef|union|object)\b/g,type:"k2"},{regex:/\b(const|volatile|unsigned|signed|restrict)\b/g,type:"k8"},{regex:/\b(readonly|extern|namespace|public|privat|include|cimport|pyximport|cythonize|cdef|cpdef|ctypedef|property|IF|ELIF|ELSE|DEF)\b/g,type:"k0"}].concat(this.rules)}}]),t}(),X=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.poundComments,c.brackets,{regex:/\[(\w+)\]/gm,type:"k9"},{regex:/\{([\w_-]+)\s*(?::\s*(.*?))?}/gm,type:["k7","s0"]}]}}]),t}(),K=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){function e(e){return f(e,/\\(x[A-F0-9]{2}|u[A-F0-9]{4}|.)/gi,function(e){return[b(e[0],"s4")]})}this.rules=[{regex:/@[\W\w_][\w]+/gm,type:"k11"},{regex:c.sqStrings.regex,type:"s0",filter:e},{regex:c.dqStrings.regex,type:"s0",filter:e},{regex:/`(?:[^`\\]|\\.)*`/g,type:"s2",filter:function(e){return f(e,/\$\{.*?}/g,function(e){return[b(e[0],"s3")]})}},c.boolean,c.null,c.prop,{regex:/\b(var|dynamic|enum|const)\b/g,type:"k2"},{regex:/\b(bool|int|num|double|String|Number|Map|List|Set|Symbol|Boolean|void|Object)\b/g,type:"k5"},{regex:/\b(break|case|catch|continue|do|else|finally|for|if|switch|try|while|throw|rethrow)\b/g,type:"k1"},{regex:/\b(abstract|as|assert|async|await|class|covariant|default|deferred|export|extends|extension|external|factory|false|final|from|Function|get|hide|implements|import|in|inferface|is|late|library|mixin|null|on|operator|part|required|return|set|show|static|sync|true|typedef|with|yield)\b/g,type:"k0"},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\W(=>)\W/g,type:"k3"},{regex:/\.{3}/g,type:"k3"},c.slashComments,c.blockComments,c.docComments,{regex:/(?:^|[^\\])(\/\/\/.*)$/gm,type:"c1"},c.mCalls,c.fCalls,c.octal,c.bin,c.hex,c.floats,c.int,c.brackets]}}]),t}(),Q=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/^([+-]{3}.*)$/gm,type:"c0"},{regex:/^(@@.*@@\s*)/gm,type:"t2"},{regex:/^(\+.*)/gm,type:"t5"},{regex:/^(-.*)/gm,type:"t6"}]}}]),t}(),ee=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:/\$\{\w+\}/gi,type:"k7"},{regex:/ARG\s+(\w+)(?:(=)(.*?)$)?/gim,type:["k7","k3","s0"]},{regex:/ENV\s+(\w+)(?:(\s+|=)(.*?)$)?/gim,type:["k7","k3","s0"]},{regex:/(?:^|[^\\])#\s*\w+=.*$/gm,type:"k4"},c.poundComments,{regex:/^([a-z]+)\b/gim,type:"k0"},{regex:/\b(AS)\b/gi,type:"k0"},{regex:/^\s+(&&)/gim,type:"k3"},c.brackets]}}],[{key:"alias",value:function(){return["docker"]}}]),t}(),te=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.bqStrings,c.char,c.boolean,{regex:/\b(nil)\b/gi,type:"e1"},c.prop,{regex:/\b(var)\b/g,type:"k2"},{regex:/\b(case|break|default|else|goto|switch|if|continue|for)\b/g,type:"k1"},{regex:/\b(func|interface|select|defer|go|map|chan|package|fallthrough|range|import|return)\b/g,type:"k0"},{regex:/\b(iota)\b/g,type:"k9"},{regex:/\b(bool|string|u?int(8|16|32|64)?|uintptr|byte|rune|float32|float64|complex64|complex128)\b/g,type:"k5"},{regex:/\b(struct|type)\b/g,type:"k2"},{regex:/\b(const)\b/g,type:"k8"},c.mCalls,c.fCalls,c.slashComments,c.octal,c.int,c.complex,c.floats,c.hex,c.brackets]}}],[{key:"alias",value:function(){return["golang"]}}]),t}(),re=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/("""[\s\S]*?"""|'''[\s\S]*?''')/g,type:"s5"},c.dqStrings,c.sqStrings,c.char,c.slashComments,c.blockComments,c.docComments,{regex:/(\/(?:[^/\\]|\\.)*\/)/g,type:"s5"},c.prop,{regex:/\b(byte|char|short|int|long|float|double|String)\b/g,type:"k5"},{regex:/\b(break|case|catch|continue|default|do|else|finally|for|goto|if|switch|throw|try|while)\b/g,type:"k1"},{regex:/^(package|import)(\s+[\w.]+)/gm,type:["k0","k10"]},{regex:/\b(const|enum|def)\b/g,type:"k2"},{regex:/\b(as|assert|class|extends|goto|implements|in|interface|return|thows|trait)\b/g,type:"k0"},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\b(instanceof|new)\b/g,type:"k3"},c.fCalls,c.mCalls,c.null,c.boolean,{regex:/^#.*/g,type:"k9"},{regex:/[\b\W](-?0[0-7][0-7_]+[GLIDF]?)\b/gi,type:"n4"},{regex:/[\b\W](-?\d[\d_]*[GLIDF]?)(?!\.)\b/gi,type:"n1"},{regex:/[\b\W](-?0x[A-F0-9][A-F0-9_]+[GLIDF]?)\b/gi,type:"n2"},{regex:/[\b\W](-?0b[01][01_]+[GLIDF]?)\b/gi,type:"n3"},{regex:/(-?((?:\d+\.\d+|\.\d+|\d+\.)(?:e[+-]?\d+)?)|\d+(?:e[+-]?\d+)?)/gi,type:"n0"},c.brackets]}}]),t}(),ne=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:/(;.*)$/gm,type:"c0"},c.poundComments,{regex:/^\s*?(\[.*])\s*?$/gm,type:"t2"},{regex:/^(\s*?[a-z0-9._-]+\s*?)(=)/gim,type:["k2","k3"]},{regex:/\b(true|false|on|off|yes|no)\b/gim,type:"e0"},c.octal,c.bin,c.hex,c.floats,c.brackets]}}],[{key:"alias",value:function(){return["conf","cnf"]}}]),t}(),ie=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.char,{regex:/@[\W\w_][\w]+/gm,type:"k11"},c.prop,{regex:/\b(boolean|byte|char|short|int|long|float|double|String|void|Integer|Double|BigInt|Float|Boolean|Byte|Char|Long)\b/g,type:"k5"},{regex:/\b(while|try|catch|case|else|throw|break|if|do|goto|switch|for|continue)\b/g,type:"k1"},{regex:/^(package|import)(\s+[\w.]+)/gm,type:["k0","k10"]},{regex:/\b(enum)\b/g,type:"k2"},{regex:/\b(const)\b/g,type:"k8"},{regex:/\b(native|volatile|strictfp|finally|class|static|interface|final|extends|transient|return|throws|public|protected|implements|private|synchronized|default|assert|abstract)\b/g,type:"k0"},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\b(instanceof|new)\b/g,type:"k3"},c.fCalls,c.mCalls,c.null,c.boolean,c.slashComments,c.blockComments,c.docComments,c.int,c.floats,c.bin,c.hex,c.octal,c.brackets]}}]),t}(),x=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){function e(e){return f(e,/\\(x[A-F0-9]{2}|u[A-F0-9]{4}|.)/gi,function(e){return[b(e[0],"s4")]})}this.rules=[{regex:c.sqStrings.regex,type:"s0",filter:e},{regex:c.dqStrings.regex,type:"s0",filter:e},{regex:/`(?:[^`\\]|\\.)*`/g,type:"s2",filter:function(e){return f(e,/\$\{.*?}/g,function(e){return[b(e[0],"s3")]})}},c.boolean,c.null,c.prop,{regex:/\b(var|let|enum|const)\b/g,type:"k2"},{regex:/\b(document|window|console)\b/g,type:"k9"},{regex:/\b(break|case|catch|continue|do|else|finally|for|if|switch|try|while|throw)\b/g,type:"k1"},{regex:/\b(as|async|class|constructor|debugger|default|export|extends|function|import|return|with|yield|implements|package|protected|static|interface|private|public|await|module)\b/g,type:"k0"},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\b(instanceof|new|delete|typeof|void|in)\b/g,type:"k3"},{regex:/\W(=>)\W/g,type:"k3"},c.slashComments,c.blockComments,{regex:/\W(\/(?:[^/\\\n]|\\.)*\/\w*)/g,type:"e2"},c.mCalls,c.fCalls,{regex:/\{|}|\(|\)|\[|]/g,type:"g1"},{regex:/[\b\W](-?0o[0-7]+)(?!\.)\b/g,type:"n4"},c.bin,c.hex,c.floats,c.int]}}],[{key:"alias",value:function(){return["js"]}}]),t}(),se=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/"(?:[^"\\]|\\.)*"\s*:/g,type:"k2"},c.dqStrings,c.boolean,c.null,{regex:/\{|}|\(|\)|\[|]/g,type:"g1"},c.int,c.floats,{regex:/,|:/g,type:"g0"}]}}]),t}(),ae=function(){i(t,x);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=this.rules.concat([{regex:/(<)([A-Z:_][A-Z0-9:.-]*)([\s\S]*?)(\/?>)/gi,type:["g1","x1","text","g1"],filter:[null,null,null,null]},{regex:/(<\/)([A-Z:_][A-Z0-9:.-]*\s*)(>)/gi,type:["g1","x1","g1"]}])}}]),t}(),oe=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){function e(e){return f(e,/\$(?:\{.*?}|\w+)/g,function(e){return[b(e[0],"s3")]})}this.rules=[{regex:/"""[\s\S]*?"""/g,type:"s5",filter:e},{regex:c.dqStrings.regex,type:"s0",filter:e},c.char,c.prop,{regex:/\b(Double|Float|Long|Int|Short|Byte|Any|String|Array)\b/g,type:"k5"},{regex:/\b(break|continue|do|else|for|if|throw|try|when|while|catch|finally)\b/g,type:"k1"},{regex:/^(package|import)(\s+[\w.]+)/gm,type:["k0","k10"]},{regex:/\b(enum|typealias|object|companion|val|var)\b/g,type:"k2"},{regex:/\b(actual|abstract|annotation|companion|crossinline|data|expect|external|final|infix|inline|inner|internal|lateinit|noinline|open|operator|out|override|private|protected|public|reified|sealed|suspend|tailrec|vararg)\b/g,type:"k8"},{regex:/\b(as|class|fun|in|interface|is|return|by|constructor|delegate|dynamic|field|file|get|init|param|property|receiver|set|setparam|where|field|it)\b/g,type:"k0"},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\b(instanceof|new)\b/g,type:"k3"},{regex:/(@\w+|\w+@)/gm,type:"k6"},c.fCalls,c.mCalls,c.null,c.boolean,c.slashComments,c.blockComments,{regex:/[\b\W](-?\d[\d_]*L?)(?!\.)\b/g,type:"n1"},c.floats,{regex:/[\b\W](-?0x[A-F0-9][A-F0-9_]+)\b/gi,type:"n2"},{regex:/[\b\W](-?0b[01][01_]+)\b/gi,type:"n3"},c.brackets]}}]),t}(),le=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/(?:^|[^\\])%.*$/gm,type:"c0"},{regex:/(?:^|[^\\])(\\\w+)(?:[\W\s])/gm,type:"k0"},{regex:/[$()]/g,type:["s3"]},c.int,c.floats,c.brackets]}}],[{key:"alias",value:function(){return["tex"]}}]),t}(),ge=function(){i(t,h);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this),this.rules.shift(),this.rules=this.rules.concat([c.slashComments,d.pseudoElements,d.idSelector,d.classSelector,{regex:/\b([\w][\w-]+)\s*\(/gm,type:"m0"},{regex:/@[\w-]+\b/g,type:"k7"},{regex:/&/gi,type:"k3"}])}}]),t}(),ue=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.poundComments,{regex:/[\w\])]\.([\w-]+)\b/g,type:"m3"},{regex:/\b(else)\b/g,type:"k1"},{regex:/\s\$[A-Z_]+/g,type:"k7"},{regex:/(==|!=|=~|!~)/g,type:"k3"},{regex:/\b(\w[\w-]+)\.\w/g,type:"k9"},c.int,c.brackets]}}],[{key:"alias",value:function(){return[]}}]),t}(),pe=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/---\[\[[\s\S]*?(]])/g,type:"c1"},{regex:/--\[\[[\s\S]*?]]/g,type:"c1"},{regex:/(--.*)$/gm,type:"c0"},c.dqStrings,c.sqStrings,{regex:/(\[(=*)\[[\S\s]*?]\2])/g,type:"s5"},{regex:/\b(true|false)\b/gi,type:"e0"},{regex:/\b(nil)\b/gi,type:"e1"},{regex:/\b(local)\b/g,type:"k2"},{regex:/\b(break|do|else|elseif|end|for|if|repeat|then|until|while)\b/g,type:"k1"},{regex:/\b(function|return|and|in|or|not)\b/g,type:"k0"},c.brackets,c.floats,c.mCalls,c.fCalls]}}]),t}(),m=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.blockComments,{regex:/--.*$/gm,type:"c0"},c.null,c.sqStrings,{regex:/\b(NOT NULL|UNIQUE|PRIMARY KEY|FOREIGN KEY|CHECK|DEFAULT|INDEX)\b/gi,type:"k4"},{regex:/`\S+?`(?:\.`\S+?`)*/g,type:"k9"},{regex:/\b(all|and|any|between|exists|in|like|not|or|is null|is not null|=|!=|<>|>|<|>=|<=|!<|!>)\b/gi,type:"k3"},{regex:/\b(SELECT|INSERT|UPDATE|DELETE|INTO|FROM|CREATE|TABLE|VIEW|WHERE|TRIGGER|ALTER|ORDER BY|DESC|ASC|AS|BETWEEN|JOIN|LEFT|RIGHT|INNER|OUTER|USING|ON|UNION)\b/gi,type:"k0"},{regex:/\b[A-Z]+\b/g,type:"k0"},c.int,c.floats]}}]),t}(),ce=function(){i(t,m);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this),this.rules=this.rules.concat([c.poundComments,{regex:/\b(tinyint|smallint|mediumint|bigint|int|integer|boolean|decimal|number|float|double|bit|double precision|real|dec|numeric|fixed)\b/g,type:"k5"},{regex:/\b(unsigned|signed|zerofill)\b/g,type:"k8"}])}}],[{key:"alias",value:function(){return["mysql"]}}]),t}(),ye=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/[\r|\n](```[a-z_-]*[\r|\n][\S\s]+?```)/gi,type:"t8"},{regex:/^\s*#{1,6}.+$/gm,type:"t1"},{regex:/(.+[\r|\n][=-]{3,})[\r|\n]/g,type:"t1"},{regex:/`.+?`/g,type:"t8"},{regex:/^(?:\*|_|-){3,}$/gm,type:"t2"},{regex:/\W(\*\*|\*|~~|~|__|_)(.*?\1)\W/gm,type:"t4"},{regex:/!?\[.*?]\(.*?\)/g,type:"t3"}]}}],[{key:"alias",value:function(){return["md","gfm"]}}]),t}(),fe=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/%.*$/gm,type:"c0"},{regex:/%%.*$/gm,type:"c1"},c.sqStrings,c.dqStrings,c.boolean,c.mCalls,c.prop,{regex:/\b(break|case|catch|continue|do|else|elseif|end|end_try_catch|endfor|endif|endmethods|endparfor|endproperties|endswitch|endwhile|for|if|switch|try|until|while)\b/gi,type:"k1"},{regex:/\b(__FILE__|__LINE__|classdef|end_unwind_protect|endclassdef|endenumeration|endevents|endfunctionenumeration|events|function|global|methods|otherwise|parfor|persistent|properties|return|static|unwind_protect|unwind_protect_cleanup)\b/gi,type:"k0"},{regex:/(@[\w]+)\s*/gm,type:"k7"},c.fCalls,c.floats,c.brackets]}}]),t}(),be=function(){i(t,m);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=this.rules.concat([])}}]),t}(),de=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.sqStrings,c.poundComments,{regex:/([a-z]+)\s*\{/g,type:"k9"},{regex:/^\s*([a-z]\w+)\s/gm,type:"k0"},{regex:/\W([a-z]+:\/\/.*?);/g,type:"k9"},{regex:/\b(\d+\.\d+\.\d+\.\d+(?::\d+))\b/g,type:"k9"},{regex:/(?:\W)\$[a-z_]+/g,type:"k7"},{regex:/[\b\W](\d+[kmgdyw])\b/g,type:"n0"},c.int,c.brackets]}}],[{key:"alias",value:function(){return[]}}]),t}(),he=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.sqStrings,c.bqStrings,{regex:/^\s*(Var(\s+\\GLOBAL)?)(\s+\w+)\b/g,type:["k2","k7"]},{regex:/\W(\$\{\w+})\W/g,type:"k9"},{regex:/\W(\$\w+)\b/g,type:"k7"},{regex:/^\s*([A-Z]\w+)\s+/gm,type:"k0"},{regex:/\b[A-Z][A-Z_]*[A-Z]\b/g,type:"e3"},{regex:/^\s*(!\w+)\s+/gm,type:"k4"},{regex:/^\s*(\w+:)\s*$/gim,type:"k6"},{regex:/\b(admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/gi,type:"k9"},c.blockComments,{regex:/[#;].*?$/gm,type:"c0"},c.int,c.hex,c.octal,c.brackets]}}]),t}(),xe=function(){i(t,m);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=this.rules.concat([])}}],[{key:"alias",value:function(){return["oracle"]}}]),t}(),me=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.sqStrings,c.dqStrings,c.heredoc,c.boolean,c.null,{regex:/(->)([\w]+)/gim,type:["k3","m1"]},{regex:/(::)([\w]+)/gim,type:["k3","m2"]},{regex:/(self|parent|\$this)/gi,type:"k9"},{regex:/\b(as|break|case|catch|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|finally|for|foreach|goto|if|switch|throw|try|while)\b/g,type:"k1"},{regex:/\b__[A-Z][A-Z0-9_]+__\b/g,type:"e3"},{regex:/\b(__halt_compiler|abstract|array|callable|class|const|continue|declare|default|die|echo|empty|eval|exit|extends|final|function|global|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|print|private|protected|public|require|require_once|return|static|trait|use|var|yield)\b/g,type:"k0"},{regex:/\b(and|or|xor|clone|new|unset)\b/g,type:"k3"},{regex:/\b(int|float|bool|string|resource|object|mixed|numeric)\b/g,type:"k5"},c.slashComments,c.poundComments,c.blockComments,{regex:/\$[^\s=;()'">:-]+/gim,type:"k7"},{regex:/\b(\w[^\s('"]+)\s*\(/gm,type:"m0"},c.octal,c.bin,c.hex,c.floats,c.int,c.brackets]}}]),t}(),ke=function(){i(t,m);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=this.rules.concat([])}}],[{key:"alias",value:function(){return["postgres"]}}]),t}(),ve=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){function e(e){return f(e,/\$(?:\w+|\(.*?\))/g,function(e){return[b(e[0],"k7")]})}this.rules=[{regex:/"(?:[^"`]|`.)*"/g,type:"s2",filter:e},c.sqStrings,{regex:/@"[\S\s]*?\n\s*"@/g,type:"s5",filter:e},{regex:/@'[\S\s]*?\n\s*'@/g,type:"s5"},{regex:/\b(Begin|Break|Catch|Continue|Else|Elseif|End|Finally|For|ForEach|If|Switch|Throw|Try|Until|While)\b/gi,type:"k1"},{regex:/\b(Data|Do|DynamicParam|Exit|Filter|From|Function|In|InlineScript|Hidden|Parallel|Param|Process|Return|Sequence|Trap|Workflow)\b/gi,type:"k0"},{regex:/\b([A-Z]\w+(?:-\w+)+)\b/gi,type:"m0"},{regex:/<#[\S\s]+?#>/gi,type:"c1"},c.poundComments,{regex:/\$[A-Z_][\w]*/gim,type:"k7"},c.mCalls,c.fCalls,c.int,c.floats,c.brackets]}}]),t}(),we=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/(%.*)$/gm,type:"c0"},c.blockComments,c.dqStrings,c.sqStrings,{regex:/^(\w+)(?:\(.*?\))?\s*(?::-|\.)/gm,type:"k9"},{regex:/\b(true|false|Yes|No|not|fail)\b/gi,type:"e0"},{regex:/\b(catch|throw|repeat)\b/g,type:"k1"},{regex:/^(\?-)/g,type:"k9"},{regex:/\b(is)\b/g,type:"k3"},{regex:/[A-Z_][\w]*/g,type:"k7"},c.brackets,c.floats,c.int,c.fCalls]}}]),t}(),Ce=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.int,c.floats,{regex:/[\b\W](-?\$[A-F0-9]+)\b/gi,type:"n2"},{regex:/[\b\W](-?%[01]+)\b/gi,type:"n3"},{regex:/[\b\W](\*\w+)\b/gi,type:"text"},c.dqStrings,{regex:/[[\]()]+/g,type:"g0"},{regex:/#\w+/gim,type:"g0"},{regex:/[@?]\w+/gim,type:"g1"},{regex:/(IncludeFile|XIncludeFile|IncludeBinary|IncludePath) (.*?)$/gim,type:"k0"},{regex:/\b(Break|Case|Continue|Default|Else|ElseIf|End|EndIf|EndSelect|For|ForEver|ForEach|Gosub|Goto|If|Next|Repeat|Return|FakeReturn|Select|Until|Wend|While|To|Step)\b/gi,type:"k1"},{regex:/\b(Array|List|Map|Procedure(?:C|Dll|CDll)?|ProcedureReturn|EndProcedure|Declare(?:C|Dll|CDll)?|ImportC?|EndImport|As|Macro|MacroExpandedCount|EndMacro|UndefineMacro|DeclareModule|EndDeclareModule|Module|EndModule|UseModule|UnuseModule|With|EndWith|PrototypeC?|Runtime|Swap|Data|DataSection|EndDataSection|Read|Restore)\b/gi,type:"k2"},{regex:/\b(ReDim|Dim|NewList|NewMap|Enumeration|EndEnumeration|Interface|Extends|EndInterface|Structure(?:Union)?|EndStructure(?:Union)?)\b/gi,type:"k4"},{regex:/\b(?:ReDim|Dim|NewList|NewMap)\s*([\w]+)\(/gim,type:"text"},{regex:/\b(Define|Global|Protected|Shared|Static|Threaded)\b/gi,type:"k3"},{regex:/[\w\])]\.(s{\d+}|(?:p-ascii|p-utf8|p-bstr|p-unicode|p-variant)|\w+)(?:\([\d,]*\))?/gi,type:"k4"},{regex:/\b(CompilerIf|CompilerElse|CompilerElseIf|CompilerEndIf|CompilerSelect|CompilerCase|CompilerDefault|CompilerEndSelect|CompilerError|CompilerWarning|EnableExplicit|DisableExplicit|EnableASM|DisableASM|EnableDebugger|DisableDebugger|Debug|DebugLevel|CallDebugger)\b/gi,type:"k5"},{regex:/\W(And|Not|Or|Xor)\W/gi,type:"k6"},{regex:/(<=|=<|>=|=>|<>|<<|>>|=|-|\+|\/|%|<|>|&|\||!|~)/gi,type:"k6"},{regex:/(\*)(?:\d|\s*(?:\b|-|\(|%|\$|\*))/gi,type:"k6"},{regex:/(\w+)::/gi,type:"k7"},{regex:/(\w+):/gi,type:"k8"},c.fCalls,{regex:/;.*$/gm,type:"c0"},{regex:/\\(\w+)\b/g,type:"m3"}]}}],[{key:"alias",value:function(){return["pb"]}}]),t}(),Se=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.prop,{regex:/\b([A-Z]\w+)\b/g,type:"k5"},{regex:/^(import)(\s+[\w.]+)/gm,type:["k0","k5"]},{regex:/\b(bool|char|double|float|int|long|short|void|string)\b/g,type:"k5"},c.mCalls,c.null,c.boolean,c.slashComments,c.blockComments,c.int,c.floats,c.brackets]}}]),t}(),_e=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,null,[{key:"alias",value:function(){return[]}}]),t}(),Ee=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/^(.*?)$/g,type:"text"}]}}]),t}(),Ae=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:/("[\s\S]*?")/g,type:"s5"},{regex:/\b(yes|no)\b/gi,type:"e0"},{regex:/\b([\w-]+)(=)/gi,type:["k6","k3"]},{regex:/[^\b](:local|:global)\s/gm,type:"k2"},{regex:/^\/\w+(?:\s+[a-z-]+)*\s*$/gm,type:"k10"},{regex:/\b(add|set|print|enable|disable|export|find|get|move|remove)\b/gi,type:"k9"},{regex:/[^\b](:[a-z-]+)\s/gm,type:"k0"},{regex:/\$[\w]*/gi,type:"k7"},{regex:/(?:[a-f0-9]{2}:){5}(?:[a-f0-9]{2})/gi,type:"s0"},{regex:/(?:\d{1,3}\.){3}(?:\d{1,3})(?:\/\d{1,2})?/gi,type:"s0"},c.poundComments,{regex:/[\b\W](-?\d+)([a-z]{1,4})?[\b\W]/gi,type:"n0"},c.int,c.hex,c.brackets]}}],[{key:"alias",value:function(){return["mikrotik","mt","switchos","ros"]}}]),t}(),Le=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){function e(e){return e.text.match(/^%r/)?e.type="e2":e.text.match(/^%x/)&&(e.type="e4"),[e]}this.rules=[c.dqStrings,c.sqStrings,c.heredoc,{regex:/(`(?:[^`\\]|\\.)*`)/g,type:"e4"},c.boolean,{regex:/\b(nil)\b/gi,type:"e1"},c.fCalls,c.prop,{regex:/@{1,2}[A-Za-z_]\w*\W/g,type:"k7"},{regex:/[^:](:[\w]+)\b/g,type:"k6"},{regex:/(\$[a-z0-9_-]+|\$.)\W/gi,type:"k9"},{regex:/\b(begin|break|case|do|else|elsif|end|ensure|for|if|in|next|redo|rescue|retry|then|unless|until|when|while)\b/gi,type:"k1"},{regex:/\b((?:__)?[A-Z][A-Z0-9_]+)\b/g,type:"e3"},{regex:/\b(alias|class|defined\?|undef|def|module|return|self|super|yield)\W/gi,type:"k0"},{regex:/\b(and|not|or)\b/gi,type:"k3"},c.poundComments,{regex:/^=begin[\S\s]*?^=end/gim,type:"c2"},{regex:/(%[iqrswx](\W)(?:[^\2\n\\]|\\.)*\2[iomx]*)/gim,type:"s2",filter:e},{regex:/(%[iqrswx]?(\{(?:[^}\\]|\\.)*}|\[(?:[^}\\]|\\.)*]|\((?:[^)\\]|\\.)*\))[iomx]*)/gim,type:"s2",filter:e},{regex:/\W(\/(?:[^/\\]|\\.)*\/\w*)\W/g,type:"e2"},{regex:/\W\?(?:\w|\\M|\\C)(?:-\w|-\\M|-\\C)*\b/g,type:"n1"},{regex:/[\b\W](-?\d[\d_]+?)(?!\.)\b/g,type:"n1"},{regex:/[\b\W](-?0x[A-F0-9][A-F0-9_]+)\b/gi,type:"n2"},{regex:/[\b\W](-?0b[01][01_]+)\b/gi,type:"n3"},{regex:/[\b\W](-?[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?[ji]?)\b/gi,type:"n0"},c.brackets]}}]),t}(),qe=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.char,{regex:/r((#+)".*?"\2)/gm,type:"s0"},{regex:/("(?:\\.|\\\s*\n|\\s*\r\n|[^\\"])*")/g,type:"s0"},{regex:/^\s*#.*$/gm,type:"k4"},{regex:/fn\s+([\w]+)\s*(<\w+\s*>)?\(/gm,type:"k0"},{regex:/\b\.?([\w]+)\s*(\(|::)/gm,type:"k1"},{regex:/\b([\w]+)!/gm,type:"k9"},{regex:/\bself\b/gi,type:"k9"},c.boolean,{regex:/\b(while|loop|in|for|if|else|do|continue|break)\b/g,type:"k1"},{regex:/\b(type|struct|let|enum)\b/g,type:"k2"},{regex:/\b(const)\b/g,type:"k8"},{regex:/\b(yield|where|virtual|use|unsized|unsafe|trait|super|static|return|ref|pure|pub|proc|priv|override|offsetof|mut|move|mod|match|macro|impl|fn|final|extern|crate|box|become|as|alignof|abstract)\b/g,type:"k0"},{regex:/\b(sizeof|typeof)\b/g,type:"k3"},{regex:/\b([0-9_]+\.?[0-9_]+?(e\+[0-9_]+)?)(?:f32|f64)?\b/gim,type:"n0"},{regex:/\b([0-9_]+|0o[0-9_]+|0x[A-F0-9_]+|0b[0-1_]+)(?:u8|i8|u16|i16|u32|i32|u64|i64|isize|usize)?\b/gim,type:"n1"},c.slashComments,c.blockComments,{regex:/(?:^|[^\\])\/\/[/!].*$/gm,type:"c2"},{regex:/\/\*[*!][\s\S]*?\*\//gm,type:"c2"},c.brackets,{regex:/\W(&)\w/g,type:"k3"}]}}]),t}(),Ie=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.char,{regex:/s"(?:[^"\\]|\\.)*"/g,type:"s2"},{regex:/`(?:[^`\\]|\\.)*`/g,type:"k7"},{regex:/@[\W\w_][\w]+/g,type:"k11"},{regex:/\b([A-Z]\w*)\b/g,type:"k5"},{regex:/\b(while|try|catch|else|throw|break|if|do|goto|switch|for|match)\b/g,type:"k1"},{regex:/(package|import)(\s+[\w.]+)/gm,type:["k0","k10"]},{regex:/[\b\w\s)](_|:|@|#|<-|←|<:|<%|=|=>|⇒|>:)[\b\w\s]/g,type:"k3"},{regex:/\b(abstract|class|case|extends|final|finally|forSome|implicit|lazy|object|override|private|protected|return|sealed|trait|with|yield)\b/g,type:"k0"},{regex:/\b(def)\s+(\w+)\b/gm,type:["k2","m0"]},{regex:/\b(type)\s+(\w+)\b/gm,type:["k2","k5"]},{regex:/\b(val)\s+(\w+)\b/gm,type:["k2","k7"]},{regex:/\b(var)\s+(\w+)\b/gm,type:["k2","k7"]},{regex:/\b(this|super)\b/g,type:"k9"},{regex:/\b(new)\b/g,type:"k3"},c.mCalls,c.fCalls,c.null,c.boolean,c.slashComments,c.blockComments,c.docComments,c.int,c.floats,c.bin,c.brackets]}}]),t}(),Ne=function(){i(t,h);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this),this.rules.shift(),this.rules=this.rules.concat([c.slashComments,d.pseudoElements,d.idSelector,d.classSelector,{regex:/\b([\w-]+)\s*\(/gm,type:"m0"},{regex:/\$[\w-]+\b/g,type:"k7"},{regex:/@[\w-]+\b/g,type:"k9"},{regex:/&/gi,type:"k3"}])}}],[{key:"alias",value:function(){return["sass"]}}]),t}(),We=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/(^#!.*?)\n/gi,type:"k4"},c.poundComments,{regex:/[^\\]("(?:[^"\\]|\\.)*")/g,type:"s0"},{regex:/`.*?`/gm,type:"s2"},{regex:/(\$)\(/gm,type:"s2"},{regex:/(\$\d)\b/gim,type:"k9"},{regex:/(\$\w+)\b/gim,type:"k7"},{regex:/^(\s*\w+)=/gm,type:"k7"},{regex:/^\s*\w+\)\s*$/gm,type:"k6"},{regex:/\b(if|fi|then|elif|else|for|do|done|until|while|break|continue|case|esac|in|eq|ne|gt|lt|ge|le)\b/gi,type:"k1"},{regex:/\b(return|function)\b/gi,type:"k0"},{regex:/^\s*\w+\(\)\s*\{/gm,type:"k0"},c.int]}}],[{key:"alias",value:function(){return["bash","sh","zsh"]}}]),t}(),$e=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:c.sqStrings.regex,type:"n0"},c.prop,c.slashComments,c.poundComments,c.blockComments,c.brackets,{regex:/\b(const|enum|local)\b/g,type:"k2"},{regex:/\b(break|case|catch|continue|else|for|foreach|if|switch|while|try|do)\b/g,type:"k1"},{regex:/\b(base|class|clone|constructor|default|extends|false|function|null|resume|return|static|this|throw|true|yield)\b/g,type:"k0"},{regex:/\b(delete|in|instanceof|typeof)\b/g,type:"k3"},c.mCalls,c.fCalls,c.octal,c.hex,c.floats,c.int]}}]),t}(),Oe=function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.boolean,{regex:/#.*$/gm,type:"k4"},c.prop,{regex:/(import )(.*?)$/gm,type:["k0","k10"]},{regex:/\b(nil)\b/gi,type:"e1"},{regex:/\b(break|case|continue|default|do|else|for|if|switch|while|catch|throw|try)\b/g,type:"k1"},{regex:/\b(var|let|enum|struct)\b/g,type:"k2"},{regex:/\b(Int|UInt|Float|Double|Bool|String|Character|Optional|Array|Dictionary)\b/g,type:"k5"},{regex:/\b(associatedtype|class|deinit|extension|func|init|inout|internal|operator|private|protocol|public|static|subscript|typealias|defer|fallthrough|guard|in|as|repeat|return|where|dynamicType|is|rethrows|super|self|Self|throws|associativity|convenience|dynamic|didSet|final|get|infix|indirect|lazy|left|mutating|none|nonmutating|optional|override|postfix|precedence|prefix|Protocol|required|right|set|Type|unowned|weak|willSet)\b/g,type:"k0"},c.mCalls,c.fCalls,{regex:/(?:^|[^\\])\/\/\/.*$/gm,type:"c2"},c.docComments,c.slashComments,c.blockComments,{regex:/[\b\W](-?0b[01_]+)\b/gi,type:"n3"},{regex:/[\b\W](-?0x[A-F0-9_]+)(?!\.)\b/gi,type:"n2"},{regex:/[\b\W](-?0o[0-7_]+)(?!\.)\b/g,type:"n4"},{regex:/[\b\W](-?[\d_]+)(?!\.)\b/g,type:"n1"},{regex:/(-?(?:[\d_]+\.[\d_]+(?:e[+-]?[\d_]+)?))/gi,type:"n0"},{regex:/(-?0x(?:[A-F0-9_]+\.[A-F0-9_]+(?:p[+-]?[A-F0-9_]+)?))/gi,type:"n2"},c.brackets]}}]),t}(),De=function(){i(t,x);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){l(s(t.prototype),"setupLanguage",this).call(this);this.rules=[{regex:/\b(boolean|number|string|any|void|undefined|never|symbol)\b/g,type:"k5"},{regex:/\b(type|interface)\b/g,type:"k2"},{regex:/\b(abstract|implements|readonly)\b/g,type:"k8"},{regex:/\b(declare|namespace)\b/g,type:"k0"},{regex:/\b([\w]+)\s*]/g,type:"g1"}].concat(this.rules)}}]),t}(),k=Object.freeze({__proto__:null,generic:y,abap:t,apache:M,assembly:P,avrassembly:U,batch:G,cpp:H,csharp:V,css:h,cython:Y,cordpro:X,dart:K,diff:Q,dockerfile:ee,go:te,groovy:re,ini:ne,java:ie,javascript:x,json:se,jsx:ae,kotlin:oe,latex:le,less:ge,lighttpd:ue,lua:pe,mariadb:ce,markdown:ye,matlab:fe,mssql:be,nginx:de,nsis:he,oracledb:xe,php:me,postgresql:ke,powershell:ve,prolog:we,purebasic:Ce,python:J,qml:Se,r:_e,raw:Ee,routeros:Ae,ruby:Le,rust:qe,scala:Ie,scss:Ne,shell:We,sql:m,squirrel:$e,swift:Oe,typescript:De,vhdl:function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex:/((?:^\s*|\s+)--.*$)/gm,type:"c0"},{regex:/^\s*(?:use|library)\s*(\S+);/gim,type:"k9"},c.fCalls,{regex:/\*\*|\*|\/|\+|-|&|=|\/=|<|<=|>|>=/g,type:"g0"},c.dqStrings,{regex:/('.')/g,type:"s0"},c.brackets,{regex:/\b(alias|array|variable|downto|range|to|type|units)\b/g,type:"k2"},{regex:/\b(array|buffer|bus|file)\b/g,type:"k5"},{regex:/\b(if|else|elsif|end|for|while|loop|when|begin|block|case|exit|next|then)\b/g,type:"k1"},{regex:/\b(access|after|all|architecture|attribute|assert|body|component|configuration|constant|disconnect|entity|function|generate|generic|group|guarded|impure|in|inertial|inout|is|label|library|linkage|literal|map|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|record|return|select|severity|signal|shared|subtype|transport|unaffected|use|vaiable|with|wait|until)\b/g,type:"k0"},{regex:/\b(abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|nor|xor|xnor|new)\b/g,type:"k3"},c.floats]}}]),t}(),visualbasic:function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,c.boolean,c.prop,{regex:/(#.*?)(?:'|$)/gim,type:"k4"},{regex:/\b(Case|Catch|Continue|Each|Else|ElseIf|End|EndIf|Do|Finally|For|If|Loop|Next|OrElse|Then|Throw|Try|When|While)\b/g,type:"k1"},{regex:/(Imports )(.*?)$/gm,type:["k0","k10"]},{regex:/\b(Boolean|Byte|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|CLng|CObj|CSByte|CShort|CSng|CStr|CType|CUInt|CULng|CUShort|Decimal|Double|Integer|Long|ParamArray|SByte|Short|Single|String|UInteger|ULong|UShort)\b/g,type:"k5"},{regex:/\b(Dim|Enum|Let|ReDim)\b/g,type:"k2"},{regex:/\b(Const|Shared|Static)\b/g,type:"k8"},{regex:/\b(AddHandler|AddressOf|Alias|As|ByRef|ByVal|Call|Class|Date|Declare|Default|Delegate|DirectCast|Erase|Error|Event|Exit|Friend|Function|Get|GetType|GetXMLNamespace|Global|GoSub|GoTo|Handles|Implements|In|Inherits|Interface|Lib|Like|Me|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|Narrowing|Nothing|NotInheritable|NotOverridable|Object|Of|On|Operator|Option|Optional|Out|Overloads|Overridable|Overrides|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|REM|RemoveHandler|Resume|Return|Select|Set|Shadows|Step|Stop|Structure|Sub|SyncLock|To|TryCast|Using|Variant|Wend|Widening|With|WithEvents|WriteOnly)\b/gi,type:"k0"},{regex:/\b(And|AndAlso|Is|IsNot|Mod|New|Not|Or|TypeOf|Xor)\b/g,type:"k3"},c.mCalls,c.fCalls,{regex:/'.*$/gm,type:"c0"},c.int,c.floats,c.brackets]}}],[{key:"alias",value:function(){return["vb"]}}]),t}(),xml:function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[{regex://g,type:"k9"},{regex:/<\?xml[\s\S]+\?>/gi,type:"k4"},{regex://g,type:"c1"},{regex:/()/gim,type:["c9","text","c9"]},{regex:/(<)([A-Z:_][A-Z0-9:.-]*)([\s\S]*?)(\/?>)/gi,type:["g1","x1","text","g1"],filter:[null,null,function(e){return f(e,/\b([^\s\0"'>/=]+)(\s*=\s*)((['"]).*?\4|[^'" \t]+)/gi,function(e){return[b(e[1],"x2"),b(e[2],"k3"),b(e[3],"s0")]})},null]},{regex:/(<\/)([A-Z:_][A-Z0-9:.-]*\s*)(>)/gi,type:["g1","x1","g1"]}]}}],[{key:"alias",value:function(){return["html"]}}]),t}(),yaml:function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.poundComments,c.boolean,c.null,{regex:/^%[A-Z]+\s+.*$/gm,type:"k4"},{regex:/\b!{1,2}[A-Z]+\b/gi,type:"k5"},{regex:/\b[a-z][a-z0-9_-]*:/gim,type:"k7"},{regex:/\{|}|\(|\)|\[|]/g,type:"g1"},c.dqStrings,c.sqStrings,c.floats,c.int]}}]),t}(),verilog:function(){i(t,y);var e=o(t);function t(){return r(this,t),e.apply(this,arguments)}return n(t,[{key:"setupLanguage",value:function(){this.rules=[c.dqStrings,{regex:/`\w*\b/g,type:"k4"},{regex:/\[( *\d+(?: *\: *\d+) *)\]/g,type:"e3"},{regex:/\b(for|generate|if|else|repeat|case|endcase|begin|end|ifnone)\b/g,type:"k1"},{regex:/\b(output|input|inout|reg|wire|assign)\b/g,type:"k5"},{regex:/\b(module|endmodule|always|function|endfunction)\b/g,type:"k2"},{regex:/\b(or|rpmos|tranif1|and|initial|rtran|tri|parameter|rtranif0|tri0|pmos|rtranif1|tri1|buf|endprimitive|integer|posedge|scalared|triand|bufif0|endspecify|join|primitive|small|trior|bufif1|endtable|large|pull0|specify|trireg|endtask|macromodule|pull1|specparam|vectored|casex|event|medium|pullup|strong0|wait|casez|pulldown|strong1|wand|cmos|force|nand|rcmos|supply0|weak0|deassign|forever|negedge|real|supply1|weak1|default|nmos|realtime|table|defparam|nor|task|disable|highz0|not|release|time|wor|edge|highz1|notif0|tran|xnor|notif1|rnmos|tranif0|xor)\b/g,type:"k0"},c.slashComments,c.blockComments,{regex:/-?\d*'s?d[0-9_xz]+\b/gi,type:"n1"},{regex:/-?\d*'s?h[0-9a-f_xz]+\b/gi,type:"n2"},{regex:/-?\d*'s?b[01_xz]+\b/gi,type:"n3"},{regex:/-?\d*'s?o[0-7_xz]+\b/gi,type:"n4"},c.int,c.brackets]}}]),t}()}),Te={standard:"generic"},v={},Re=!1;function Fe(e){if(!Re)for(var t in Re=!0,k)if("function"==typeof k[t].alias){var r,n=function(e,t){var r,n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=z(e))||t&&e&&"number"==typeof e.length)return n&&(e=n),r=0,{s:t=function(){},n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(k[t].alias());try{for(n.s();!(r=n.n()).done;){var i=r.value;Te[i]=t}}catch(e){n.e(e)}finally{n.f()}}return Te[e]}function je(e){return e=Fe(e=(e||"").toLowerCase())||e,k[e]?e:null}t={document:document,window:window};function w(){return document}function C(){return window}function S(e){e.style.display=!0===(!(1/g,">");e.document.body.innerHTML="
"+t+"
",e.document.title="Sourcecode | EnlighterJS Syntax Highlighter"}})},website:function(){return L(W,{name:"website",tooltip:"EnlighterJS 3 Syntax Highlighter",onClick:Je})},collapse:function(e){return L(W,{name:"collapse",tooltip:"Expand",onClick:function(){e.toggleClass("enlighter-collapse-full")}})}});function $(t){var e=function(e){for(var t,r=[],n=/{BTN_([A-Z_]+)}/g;null!=(t=n.exec(e));)r.push(t[1].toLowerCase());return r}(t.layout).map(function(e){return Ye[e]?L(Ye[e],{getRawCode:t.getRawCode,toggleClass:t.toggleClass}):null}).filter(function(e){return null!==e});return L(N,{name:"toolbar-"+t.name,className:"enlighter-toolbar"},e)}function Xe(e,t){return L("div",{className:"enlighter-raw"},t)}function Ke(e){var t=null,r=e[0].params,n=["enlighter-default","enlighter-v-standard","enlighter-t-"+e[0].params.theme];function i(e){Ue(t,e)}function s(){return e[0].code}return!0===r.linehover&&n.push("enlighter-hover"),!0===r.linenumbers&&n.push("enlighter-linenumbers"),"scroll"===r.textOverflow&&n.push("enlighter-overflow-scroll"),!0===r.collapse&&n.push("enlighter-collapse"),0").replace(/ /gim," "),!0===i.ampersandCleanup&&(t=t.replace(/&/gim,"&")),r=i.indent,t=!1!==r&&-1 - {{ block "footer" .}} - {{end}} + {{template "layout/footer" .}} {{ end }} \ No newline at end of file diff --git a/templates/layout/footer.gohtml b/templates/layout/footer.gohtml index e20eb25..3094fdd 100644 --- a/templates/layout/footer.gohtml +++ b/templates/layout/footer.gohtml @@ -1,7 +1,17 @@ {{define "layout/footer"}} - - - + + + + + + + + + + {{ block "footer" .}} + {{end}} {{end}} \ No newline at end of file diff --git a/templates/layout/head.gohtml b/templates/layout/head.gohtml index 9371884..43f0af7 100644 --- a/templates/layout/head.gohtml +++ b/templates/layout/head.gohtml @@ -14,6 +14,8 @@ + + +{{ define "footer"}} - - - -{{end}} +{{end}} \ No newline at end of file diff --git a/templates/posts/index.gohtml b/templates/posts/index.gohtml index b5bf372..3bf7ea1 100644 --- a/templates/posts/index.gohtml +++ b/templates/posts/index.gohtml @@ -1,7 +1,5 @@ {{template "layout/base" .}} -{{define "head"}} -{{end}} {{define "content" }} {{if .posts}}
@@ -73,16 +71,3 @@ {{end}} {{end}} - -{{define "footer"}} - - - - - - - - -{{end}}