/*
NOTICE: THIS FILE HAS BEEN MODIFIED BY sameerav@github UNDER COMPLIANCE WITH THE APACHE 2.0 LICENCE FROM THE ORIGINAL WORK 
OF benweet@github, STACKEDIT.

The modified codes consist of adding classes img.hover_img, a.link and a.link-helike.

The codes for class a.link and a.link-helike refer to codrops@github in his project LineHoverStyles/css/base.css Under compliance with 
the MIT licence.
*/

@font-face {
    font-family:KaTeX_AMS;src:url(/static/fonts/KaTeX_AMS-Regular.cd28a1d.woff2) format("woff2"),url(/static/fonts/KaTeX_AMS-Regular.b2d9296.woff) format("woff"),url(/static/fonts/KaTeX_AMS-Regular.dffd527.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Caligraphic;src:url(/static/fonts/KaTeX_Caligraphic-Bold.42a984d.woff2) format("woff2"),url(/static/fonts/KaTeX_Caligraphic-Bold.fe8c221.woff) format("woff"),url(/static/fonts/KaTeX_Caligraphic-Bold.c7e386d.ttf) format("truetype");font-weight:700;font-style:normal
}

@font-face {
    font-family:KaTeX_Caligraphic;src:url(/static/fonts/KaTeX_Caligraphic-Regular.7f4bec7.woff2) format("woff2"),url(/static/fonts/KaTeX_Caligraphic-Regular.93a79e0.woff) format("woff"),url(/static/fonts/KaTeX_Caligraphic-Regular.d04d484.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Fraktur;src:url(/static/fonts/KaTeX_Fraktur-Bold.b1a8794.woff2) format("woff2"),url(/static/fonts/KaTeX_Fraktur-Bold.8c43064.woff) format("woff"),url(/static/fonts/KaTeX_Fraktur-Bold.9b14862.ttf) format("truetype");font-weight:700;font-style:normal
}

@font-face {
    font-family:KaTeX_Fraktur;src:url(/static/fonts/KaTeX_Fraktur-Regular.e21a6db.woff2) format("woff2"),url(/static/fonts/KaTeX_Fraktur-Regular.801690b.woff) format("woff"),url(/static/fonts/KaTeX_Fraktur-Regular.576266a.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Main;src:url(/static/fonts/KaTeX_Main-Bold.2057e5c.woff2) format("woff2"),url(/static/fonts/KaTeX_Main-Bold.0dee095.woff) format("woff"),url(/static/fonts/KaTeX_Main-Bold.e493181.ttf) format("truetype");font-weight:700;font-style:normal
}

@font-face {
    font-family:KaTeX_Main;src:url(/static/fonts/KaTeX_Main-BoldItalic.2484936.woff2) format("woff2"),url(/static/fonts/KaTeX_Main-BoldItalic.a4ed2b0.woff) format("woff"),url(/static/fonts/KaTeX_Main-BoldItalic.a879e3a.ttf) format("truetype");font-weight:700;font-style:italic
}

@font-face {
    font-family:KaTeX_Main;src:url(/static/fonts/KaTeX_Main-Italic.c9d5a32.woff2) format("woff2"),url(/static/fonts/KaTeX_Main-Italic.6d2cd8f.woff) format("woff"),url(/static/fonts/KaTeX_Main-Italic.162d575.ttf) format("truetype");font-weight:400;font-style:italic
}

@font-face {
    font-family:KaTeX_Main;src:url(/static/fonts/KaTeX_Main-Regular.a547140.woff2) format("woff2"),url(/static/fonts/KaTeX_Main-Regular.54e5ba9.woff) format("woff"),url(/static/fonts/KaTeX_Main-Regular.424335d.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Math;src:url(/static/fonts/KaTeX_Math-BoldItalic.96b2297.woff2) format("woff2"),url(/static/fonts/KaTeX_Math-BoldItalic.6091397.woff) format("woff"),url(/static/fonts/KaTeX_Math-BoldItalic.d081a42.ttf) format("truetype");font-weight:700;font-style:italic
}

@font-face {
    font-family:KaTeX_Math;src:url(/static/fonts/KaTeX_Math-Italic.4b3b168.woff2) format("woff2"),url(/static/fonts/KaTeX_Math-Italic.dc91856.woff) format("woff"),url(/static/fonts/KaTeX_Math-Italic.5d2baf7.ttf) format("truetype");font-weight:400;font-style:italic
}

@font-face {
    font-family:KaTeX_SansSerif;src:url(/static/fonts/KaTeX_SansSerif-Bold.91efef2.woff2) format("woff2"),url(/static/fonts/KaTeX_SansSerif-Bold.e08eb43.woff) format("woff"),url(/static/fonts/KaTeX_SansSerif-Bold.4c2a414.ttf) format("truetype");font-weight:700;font-style:normal
}

@font-face {
    font-family:KaTeX_SansSerif;src:url(/static/fonts/KaTeX_SansSerif-Italic.ff63137.woff2) format("woff2"),url(/static/fonts/KaTeX_SansSerif-Italic.ada012c.woff) format("woff"),url(/static/fonts/KaTeX_SansSerif-Italic.66bab6b.ttf) format("truetype");font-weight:400;font-style:italic
}

@font-face {
    font-family:KaTeX_SansSerif;src:url(/static/fonts/KaTeX_SansSerif-Regular.fd6852d.woff2) format("woff2"),url(/static/fonts/KaTeX_SansSerif-Regular.c789d74.woff) format("woff"),url(/static/fonts/KaTeX_SansSerif-Regular.066914d.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Script;src:url(/static/fonts/KaTeX_Script-Regular.ec3e4a5.woff2) format("woff2"),url(/static/fonts/KaTeX_Script-Regular.ae1b970.woff) format("woff"),url(/static/fonts/KaTeX_Script-Regular.85007a5.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Size1;src:url(/static/fonts/KaTeX_Size1-Regular.2870a8f.woff2) format("woff2"),url(/static/fonts/KaTeX_Size1-Regular.df2ac4d.woff) format("woff"),url(/static/fonts/KaTeX_Size1-Regular.923e515.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Size2;src:url(/static/fonts/KaTeX_Size2-Regular.6dbdad7.woff2) format("woff2"),url(/static/fonts/KaTeX_Size2-Regular.aec9a67.woff) format("woff"),url(/static/fonts/KaTeX_Size2-Regular.e371798.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Size3;src:url(/static/fonts/KaTeX_Size3-Regular.dc7be16.woff2) format("woff2"),url(/static/fonts/KaTeX_Size3-Regular.f1a090a.woff) format("woff"),url(/static/fonts/KaTeX_Size3-Regular.ae9ca32.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Size4;src:url(/static/fonts/KaTeX_Size4-Regular.ecd52e1.woff2) format("woff2"),url(/static/fonts/KaTeX_Size4-Regular.1571003.woff) format("woff"),url(/static/fonts/KaTeX_Size4-Regular.b790cf1.ttf) format("truetype");font-weight:400;font-style:normal
}

@font-face {
    font-family:KaTeX_Typewriter;src:url(/static/fonts/KaTeX_Typewriter-Regular.efae405.woff2) format("woff2"),url(/static/fonts/KaTeX_Typewriter-Regular.6a862f8.woff) format("woff"),url(/static/fonts/KaTeX_Typewriter-Regular.dbf31d0.ttf) format("truetype");font-weight:400;font-style:normal
}

.katex {
    font: normal 1.21em KaTeX_Main,Times New Roman,serif;
    line-height: 1.2;
    text-indent: 0;
    text-rendering: auto
}

.katex * {
    -ms-high-contrast-adjust: none!important
}

.katex .katex-mathml {
    position: absolute;
    clip: rect(1px,1px,1px,1px);
    padding: 0;
    border: 0;
    height: 1px;
    width: 1px;
    overflow: hidden
}

.katex .katex-html>.newline {
    display: block
}

.katex .base {
    position: relative;
    white-space: nowrap;
    width: min-content
}

.katex .base,.katex .strut {
    display: inline-block
}

.katex .textbf {
    font-weight: 700
}

.katex .textit {
    font-style: italic
}

.katex .textrm {
    font-family: KaTeX_Main
}

.katex .textsf {
    font-family: KaTeX_SansSerif
}

.katex .texttt {
    font-family: KaTeX_Typewriter
}

.katex .mathit {
    font-family: KaTeX_Math;
    font-style: italic
}

.katex .mathrm {
    font-style: normal
}

.katex .mathbf {
    font-family: KaTeX_Main;
    font-weight: 700
}

.katex .boldsymbol {
    font-family: KaTeX_Math;
    font-weight: 700;
    font-style: italic
}

.katex .amsrm,.katex .mathbb,.katex .textbb {
    font-family: KaTeX_AMS
}

.katex .mathcal {
    font-family: KaTeX_Caligraphic
}

.katex .mathfrak,.katex .textfrak {
    font-family: KaTeX_Fraktur
}

.katex .mathtt {
    font-family: KaTeX_Typewriter
}

.katex .mathscr,.katex .textscr {
    font-family: KaTeX_Script
}

.katex .mathsf,.katex .textsf {
    font-family: KaTeX_SansSerif
}

.katex .mathboldsf,.katex .textboldsf {
    font-family: KaTeX_SansSerif;
    font-weight: 700
}

.katex .mathitsf,.katex .textitsf {
    font-family: KaTeX_SansSerif;
    font-style: italic
}

.katex .mainit {
    font-family: KaTeX_Main;
    font-style: italic
}

.katex .mainrm {
    font-family: KaTeX_Main;
    font-style: normal
}

.katex .vlist-t {
    display: inline-table;
    table-layout: fixed
}

.katex .vlist-r {
    display: table-row
}

.katex .vlist {
    display: table-cell;
    vertical-align: bottom;
    position: relative
}

.katex .vlist>span {
    display: block;
    height: 0;
    position: relative
}

.katex .vlist>span>span {
    display: inline-block
}

.katex .vlist>span>.pstrut {
    overflow: hidden;
    width: 0
}

.katex .vlist-t2 {
    margin-right: -2px
}

.katex .vlist-s {
    display: table-cell;
    vertical-align: bottom;
    font-size: 1px;
    width: 2px;
    min-width: 2px
}

.katex .msupsub {
    text-align: left
}

.katex .mfrac>span>span {
    text-align: center
}

.katex .mfrac .frac-line {
    display: inline-block;
    width: 100%;
    border-bottom-style: solid
}

.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line {
    min-height: 1px
}

.katex .mspace {
    display: inline-block
}

.katex .clap,.katex .llap,.katex .rlap {
    width: 0;
    position: relative
}

.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner {
    position: absolute
}

.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix {
    display: inline-block
}

.katex .llap>.inner {
    right: 0
}

.katex .clap>.inner,.katex .rlap>.inner {
    left: 0
}

.katex .clap>.inner>span {
    margin-left: -50%;
    margin-right: 50%
}

.katex .rule {
    display: inline-block;
    border: 0 solid;
    position: relative
}

.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line {
    display: inline-block;
    width: 100%;
    border-bottom-style: solid
}

.katex .hdashline {
    display: inline-block;
    width: 100%;
    border-bottom-style: dashed
}

.katex .sqrt>.root {
    margin-left: .27777778em;
    margin-right: -.55555556em
}

.katex .fontsize-ensurer,.katex .sizing {
    display: inline-block
}

.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3 {
    font-size: 1.4em
}

.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4 {
    font-size: 1.6em
}

.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5 {
    font-size: 1.8em
}

.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6 {
    font-size: 2em
}

.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7 {
    font-size: 2.4em
}

.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8 {
    font-size: 2.88em
}

.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9 {
    font-size: 3.456em
}

.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10 {
    font-size: 4.148em
}

.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11 {
    font-size: 4.976em
}

.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3 {
    font-size: 1.16666667em
}

.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4 {
    font-size: 1.33333333em
}

.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5 {
    font-size: 1.5em
}

.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6 {
    font-size: 1.66666667em
}

.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7 {
    font-size: 2em
}

.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8 {
    font-size: 2.4em
}

.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9 {
    font-size: 2.88em
}

.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10 {
    font-size: 3.45666667em
}

.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11 {
    font-size: 4.14666667em
}

.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1 {
    font-size: .71428571em
}

.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2 {
    font-size: .85714286em
}

.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4 {
    font-size: 1.14285714em
}

.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5 {
    font-size: 1.28571429em
}

.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6 {
    font-size: 1.42857143em
}

.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7 {
    font-size: 1.71428571em
}

.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8 {
    font-size: 2.05714286em
}

.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9 {
    font-size: 2.46857143em
}

.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10 {
    font-size: 2.96285714em
}

.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11 {
    font-size: 3.55428571em
}

.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1 {
    font-size: .625em
}

.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2 {
    font-size: .75em
}

.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3 {
    font-size: .875em
}

.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5 {
    font-size: 1.125em
}

.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6 {
    font-size: 1.25em
}

.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7 {
    font-size: 1.5em
}

.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8 {
    font-size: 1.8em
}

.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9 {
    font-size: 2.16em
}

.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10 {
    font-size: 2.5925em
}

.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11 {
    font-size: 3.11em
}

.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1 {
    font-size: .55555556em
}

.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2 {
    font-size: .66666667em
}

.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3 {
    font-size: .77777778em
}

.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4 {
    font-size: .88888889em
}

.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6 {
    font-size: 1.11111111em
}

.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7 {
    font-size: 1.33333333em
}

.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8 {
    font-size: 1.6em
}

.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9 {
    font-size: 1.92em
}

.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10 {
    font-size: 2.30444444em
}

.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11 {
    font-size: 2.76444444em
}

.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1 {
    font-size: .5em
}

.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2 {
    font-size: .6em
}

.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3 {
    font-size: .7em
}

.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4 {
    font-size: .8em
}

.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5 {
    font-size: .9em
}

.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8 {
    font-size: 1.44em
}

.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9 {
    font-size: 1.728em
}

.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10 {
    font-size: 2.074em
}

.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11 {
    font-size: 2.488em
}

.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1 {
    font-size: .41666667em
}

.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2 {
    font-size: .5em
}

.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3 {
    font-size: .58333333em
}

.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4 {
    font-size: .66666667em
}

.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5 {
    font-size: .75em
}

.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9 {
    font-size: 1.44em
}

.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10 {
    font-size: 1.72833333em
}

.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11 {
    font-size: 2.07333333em
}

.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1 {
    font-size: .34722222em
}

.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2 {
    font-size: .41666667em
}

.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3 {
    font-size: .48611111em
}

.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4 {
    font-size: .55555556em
}

.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5 {
    font-size: .625em
}

.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6 {
    font-size: .69444444em
}

.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10 {
    font-size: 1.44027778em
}

.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11 {
    font-size: 1.72777778em
}

.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1 {
    font-size: .28935185em
}

.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2 {
    font-size: .34722222em
}

.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3 {
    font-size: .40509259em
}

.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4 {
    font-size: .46296296em
}

.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5 {
    font-size: .52083333em
}

.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6 {
    font-size: .5787037em
}

.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7 {
    font-size: .69444444em
}

.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10 {
    font-size: 1.20023148em
}

.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11 {
    font-size: 1.43981481em
}

.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1 {
    font-size: .24108004em
}

.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2 {
    font-size: .28929605em
}

.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3 {
    font-size: .33751205em
}

.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4 {
    font-size: .38572806em
}

.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5 {
    font-size: .43394407em
}

.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6 {
    font-size: .48216008em
}

.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7 {
    font-size: .57859209em
}

.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8 {
    font-size: .69431051em
}

.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9 {
    font-size: .83317261em
}

.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11 {
    font-size: 1.19961427em
}

.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1 {
    font-size: .20096463em
}

.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2 {
    font-size: .24115756em
}

.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3 {
    font-size: .28135048em
}

.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4 {
    font-size: .32154341em
}

.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5 {
    font-size: .36173633em
}

.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6 {
    font-size: .40192926em
}

.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7 {
    font-size: .48231511em
}

.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8 {
    font-size: .57877814em
}

.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9 {
    font-size: .69453376em
}

.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10 {
    font-size: .83360129em
}

.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11 {
    font-size: 1em
}

.katex .delimsizing.size1 {
    font-family: KaTeX_Size1
}

.katex .delimsizing.size2 {
    font-family: KaTeX_Size2
}

.katex .delimsizing.size3 {
    font-family: KaTeX_Size3
}

.katex .delimsizing.size4 {
    font-family: KaTeX_Size4
}

.katex .delimsizing.mult .delim-size1>span {
    font-family: KaTeX_Size1
}

.katex .delimsizing.mult .delim-size4>span {
    font-family: KaTeX_Size4
}

.katex .nulldelimiter {
    display: inline-block;
    width: .12em
}

.katex .delimcenter,.katex .op-symbol {
    position: relative
}

.katex .op-symbol.small-op {
    font-family: KaTeX_Size1
}

.katex .op-symbol.large-op {
    font-family: KaTeX_Size2
}

.katex .accent>.vlist-t,.katex .op-limits>.vlist-t {
    text-align: center
}

.katex .accent .accent-body {
    position: relative
}

.katex .accent .accent-body:not(.accent-full) {
    width: 0
}

.katex .overlay {
    display: block
}

.katex .mtable .vertical-separator {
    display: inline-block;
    margin: 0 -.025em;
    border-right: .05em solid;
    min-width: 1px
}

.katex .mtable .vs-dashed {
    border-right: .05em dashed
}

.katex .mtable .arraycolsep {
    display: inline-block
}

.katex .mtable .col-align-c>.vlist-t {
    text-align: center
}

.katex .mtable .col-align-l>.vlist-t {
    text-align: left
}

.katex .mtable .col-align-r>.vlist-t {
    text-align: right
}

.katex .svg-align {
    text-align: left
}

.katex svg {
    display: block;
    position: absolute;
    width: 100%;
    height: inherit;
    fill: currentColor;
    stroke: currentColor;
    fill-rule: nonzero;
    fill-opacity: 1;
    stroke-width: 1;
    stroke-linecap: butt;
    stroke-linejoin: miter;
    stroke-miterlimit: 4;
    stroke-dasharray: none;
    stroke-dashoffset: 0;
    stroke-opacity: 1
}

.katex svg path {
    stroke: none
}

.katex .stretchy {
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden
}

.katex .stretchy:after,.katex .stretchy:before {
    content: ""
}

.katex .hide-tail {
    width: 100%;
    position: relative;
    overflow: hidden
}

.katex .halfarrow-left {
    position: absolute;
    left: 0;
    width: 50.2%;
    overflow: hidden
}

.katex .halfarrow-right {
    position: absolute;
    right: 0;
    width: 50.2%;
    overflow: hidden
}

.katex .brace-left {
    position: absolute;
    left: 0;
    width: 25.1%;
    overflow: hidden
}

.katex .brace-center {
    position: absolute;
    left: 25%;
    width: 50%;
    overflow: hidden
}

.katex .brace-right {
    position: absolute;
    right: 0;
    width: 25.1%;
    overflow: hidden
}

.katex .x-arrow-pad {
    padding: 0 .5em
}

.katex .mover,.katex .munder,.katex .x-arrow {
    text-align: center
}

.katex .boxpad {
    padding: 0 .3em
}

.katex .fbox {
    box-sizing: border-box;
    border: .04em solid #000
}

.katex .fcolorbox {
    box-sizing: border-box;
    border: .04em solid
}

.katex .cancel-pad {
    padding: 0 .2em
}

.katex .cancel-lap {
    margin-left: -.2em;
    margin-right: -.2em
}

.katex .sout {
    border-bottom-style: solid;
    border-bottom-width: .08em
}

.katex-display {
    display: block;
    margin: 1em 0;
    text-align: center
}

.katex-display>.katex {
    display: block;
    text-align: center;
    white-space: nowrap
}

.katex-display>.katex>.katex-html {
    display: block
}

.katex-display>.katex>.katex-html>.tag {
    position: absolute;
    right: 0
}

@font-face {
    font-family:Lato;font-style:normal;font-weight:400;src:url(/static/fonts/lato-normal.27bd77b.woff) format("woff")
}

@font-face {
    font-family:Lato;font-style:italic;font-weight:400;src:url(/static/fonts/lato-normal-italic.f28f2d6.woff) format("woff")
}

@font-face {
    font-family:Lato;font-style:normal;font-weight:600;src:url(/static/fonts/lato-black.f80bda6.woff) format("woff")
}

@font-face {
    font-family:Lato;font-style:italic;font-weight:600;src:url(/static/fonts/lato-black-italic.798eafd.woff) format("woff")
}

@font-face {
    font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(/static/fonts/RobotoMono-Regular.0b6a547.woff) format("woff")
}

@font-face {
    font-family:Roboto Mono;font-style:normal;font-weight:600;src:url(/static/fonts/RobotoMono-Bold.819f3b2.woff) format("woff")
}

.prism *,.token.pre.gfm * {
    font-weight: inherit!important
}

.prism .token.cdata,.prism .token.comment,.prism .token.doctype,.prism .token.prolog,.token.pre.gfm .token.cdata,.token.pre.gfm .token.comment,.token.pre.gfm .token.doctype,.token.pre.gfm .token.prolog {
    color: #708090
}

.prism .token.punctuation,.token.pre.gfm .token.punctuation {
    color: #999
}

.prism .namespace,.token.pre.gfm .namespace {
    opacity: .7
}

.prism .token.boolean,.prism .token.constant,.prism .token.deleted,.prism .token.number,.prism .token.property,.prism .token.symbol,.prism .token.tag,.token.pre.gfm .token.boolean,.token.pre.gfm .token.constant,.token.pre.gfm .token.deleted,.token.pre.gfm .token.number,.token.pre.gfm .token.property,.token.pre.gfm .token.symbol,.token.pre.gfm .token.tag {
    color: #905
}

.prism .token.attr-name,.prism .token.builtin,.prism .token.char,.prism .token.inserted,.prism .token.selector,.prism .token.string,.token.pre.gfm .token.attr-name,.token.pre.gfm .token.builtin,.token.pre.gfm .token.char,.token.pre.gfm .token.inserted,.token.pre.gfm .token.selector,.token.pre.gfm .token.string {
    color: #690
}

.prism .language-css .token.string,.prism .style .token.string,.prism .token.entity,.prism .token.operator,.prism .token.url,.token.pre.gfm .language-css .token.string,.token.pre.gfm .style .token.string,.token.pre.gfm .token.entity,.token.pre.gfm .token.operator,.token.pre.gfm .token.url {
    color: #a67f59
}

.prism .token.atrule,.prism .token.attr-value,.prism .token.keyword,.token.pre.gfm .token.atrule,.token.pre.gfm .token.attr-value,.token.pre.gfm .token.keyword {
    color: #07a
}

.prism .token.function,.token.pre.gfm .token.function {
    color: #dd4a68
}

.prism .token.important,.prism .token.regex,.prism .token.variable,.token.pre.gfm .token.important,.token.pre.gfm .token.regex,.token.pre.gfm .token.variable {
    color: #e90
}

.prism .token.bold,.prism .token.important,.token.pre.gfm .token.bold,.token.pre.gfm .token.important {
    font-weight: 500
}

.prism .token.italic,.token.pre.gfm .token.italic {
    font-style: italic
}

.mermaid {
    font-size: 16px
}

.mermaid svg {
    color: rgba(0,0,0,.75);
    width: 100%;
    max-width: 100%
}

.app--dark .mermaid svg {
    color: hsla(0,0%,100%,.75)
}

.mermaid svg * {
    font-family: Lato,Helvetica Neue,Helvetica,sans-serif
}

.mermaid .mermaid .label {
    color: #333
}

.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect {
    fill: #eee;
    stroke: #999;
    stroke-width: 1px
}

.mermaid .node.clickable {
    cursor: pointer
}

.mermaid .arrowheadPath {
    fill: #333
}

.mermaid .edgePath .path {
    stroke: #666;
    stroke-width: 1.5px
}

.mermaid .edgeLabel {
    background-color: #fff
}

.mermaid .cluster rect {
    fill: #eaf2fb!important;
    stroke: #26a!important;
    stroke-width: 1px!important
}

.mermaid .cluster text {
    fill: #333
}

.mermaid div.mermaidTooltip {
    position: absolute;
    text-align: center;
    max-width: 200px;
    padding: 2px;
    font-family: trebuchet ms,verdana,arial;
    font-size: 12px;
    background: #eaf2fb;
    border: 1px solid #26a;
    border-radius: 2px;
    pointer-events: none;
    z-index: 100
}

.mermaid .actor {
    stroke: #999;
    fill: #eee
}

.mermaid text.actor {
    fill: #333;
    stroke: none
}

.mermaid .actor-line {
    stroke: #666
}

.mermaid .messageLine0 {
    marker-end: "url(#arrowhead)"
}

.mermaid .messageLine0,.mermaid .messageLine1 {
    stroke-width: 1.5;
    stroke-dasharray: "2 2";
    stroke: #333
}

.mermaid #arrowhead {
    fill: #333
}

.mermaid #crosshead path {
    fill: #333!important;
    stroke: #333!important
}

.mermaid .messageText {
    fill: #333;
    stroke: none
}

.mermaid .labelBox {
    stroke: #999;
    fill: #eee
}

.mermaid .labelText,.mermaid .loopText {
    fill: #fff;
    stroke: none
}

.mermaid .loopLine {
    stroke-width: 2;
    stroke-dasharray: "2 2";
    marker-end: "url(#arrowhead)";
    stroke: #999
}

.mermaid .note {
    stroke: #770;
    fill: #ffa
}

.mermaid .noteText {
    fill: #000;
    stroke: none;
    font-family: trebuchet ms,verdana,arial;
    font-size: 14px
}

.mermaid .section {
    stroke: none;
    opacity: .2
}

.mermaid .section0,.mermaid .section2 {
    fill: #80b3e6
}

.mermaid .section1,.mermaid .section3 {
    fill: #fff;
    opacity: .2
}

.mermaid .sectionTitle0,.mermaid .sectionTitle1,.mermaid .sectionTitle2,.mermaid .sectionTitle3 {
    fill: #333
}

.mermaid .sectionTitle {
    text-anchor: start;
    font-size: 11px
}

.mermaid .grid .tick {
    stroke: #e6e6e6;
    opacity: .3;
    shape-rendering: crispEdges
}

.mermaid .grid path {
    stroke-width: 0
}

.mermaid .today {
    fill: none;
    stroke: #d42;
    stroke-width: 2px
}

.mermaid .task {
    stroke-width: 2
}

.mermaid .taskText {
    text-anchor: middle;
    font-size: 11px
}

.mermaid .taskTextOutsideRight {
    fill: #333;
    text-anchor: start;
    font-size: 11px
}

.mermaid .taskTextOutsideLeft {
    fill: #333;
    text-anchor: end;
    font-size: 11px
}

.mermaid .taskText0,.mermaid .taskText1,.mermaid .taskText2,.mermaid .taskText3 {
    fill: #fff
}

.mermaid .task0,.mermaid .task1,.mermaid .task2,.mermaid .task3 {
    fill: #26a;
    stroke: #1a4d80
}

.mermaid .taskTextOutside0,.mermaid .taskTextOutside1,.mermaid .taskTextOutside2,.mermaid .taskTextOutside3 {
    fill: #333
}

.mermaid .active0,.mermaid .active1,.mermaid .active2,.mermaid .active3 {
    fill: #eee;
    stroke: #1a4d80
}

.mermaid .activeText0,.mermaid .activeText1,.mermaid .activeText2,.mermaid .activeText3 {
    fill: #333!important
}

.mermaid .done0,.mermaid .done1,.mermaid .done2,.mermaid .done3 {
    stroke: #666;
    fill: #bbb;
    stroke-width: 2
}

.mermaid .doneText0,.mermaid .doneText1,.mermaid .doneText2,.mermaid .doneText3 {
    fill: #333!important
}

.mermaid .crit0,.mermaid .crit1,.mermaid .crit2,.mermaid .crit3 {
    stroke: #b1361b;
    fill: #d42;
    stroke-width: 2
}

.mermaid .activeCrit0,.mermaid .activeCrit1,.mermaid .activeCrit2,.mermaid .activeCrit3 {
    stroke: #b1361b;
    fill: #eee;
    stroke-width: 2
}

.mermaid .doneCrit0,.mermaid .doneCrit1,.mermaid .doneCrit2,.mermaid .doneCrit3 {
    stroke: #b1361b;
    fill: #bbb;
    stroke-width: 2;
    cursor: pointer;
    shape-rendering: crispEdges
}

.mermaid .activeCritText0,.mermaid .activeCritText1,.mermaid .activeCritText2,.mermaid .activeCritText3,.mermaid .doneCritText0,.mermaid .doneCritText1,.mermaid .doneCritText2,.mermaid .doneCritText3 {
    fill: #333!important
}

.mermaid .titleText {
    text-anchor: middle;
    font-size: 18px;
    fill: #333
}

.mermaid g.classGroup text {
    fill: #999;
    stroke: none;
    font-family: trebuchet ms,verdana,arial;
    font-size: 10px
}

.mermaid g.classGroup rect {
    fill: #eee;
    stroke: #999
}

.mermaid g.classGroup line {
    stroke: #999;
    stroke-width: 1
}

.mermaid .classLabel .box {
    stroke: none;
    stroke-width: 0;
    fill: #eee;
    opacity: .5
}

.mermaid .classLabel .label {
    fill: #999;
    font-size: 10px
}

.mermaid .relation {
    stroke: #999;
    stroke-width: 1;
    fill: none
}

.mermaid #compositionEnd,.mermaid #compositionStart {
    fill: #999;
    stroke: #999;
    stroke-width: 1
}

.mermaid #aggregationEnd,.mermaid #aggregationStart {
    fill: #eee;
    stroke: #999;
    stroke-width: 1
}

.mermaid #dependencyEnd,.mermaid #dependencyStart,.mermaid #extensionEnd,.mermaid #extensionStart {
    fill: #999;
    stroke: #999;
    stroke-width: 1
}

.mermaid .branch-label,.mermaid .commit-id,.mermaid .commit-msg {
    fill: #d3d3d3;
    color: #d3d3d3
}

.app--dark .mermaid .label {
    color: #323d47
}

.app--dark .mermaid .node circle,.app--dark .mermaid .node ellipse,.app--dark .mermaid .node polygon,.app--dark .mermaid .node rect {
    fill: #bdd5ea;
    stroke: purple;
    stroke-width: 1px
}

.app--dark .mermaid .node.clickable {
    cursor: pointer
}

.app--dark .mermaid .arrowheadPath {
    fill: #d3d3d3
}

.app--dark .mermaid .edgePath .path {
    stroke: #d3d3d3;
    stroke-width: 1.5px
}

.app--dark .mermaid .edgeLabel {
    background-color: #e8e8e8
}

.app--dark .mermaid .cluster rect {
    fill: #6d6d65!important;
    stroke: hsla(0,0%,100%,.25)!important;
    stroke-width: 1px!important
}

.app--dark .mermaid .cluster text {
    fill: #f9fffe
}

.app--dark .mermaid div.mermaidTooltip {
    position: absolute;
    text-align: center;
    max-width: 200px;
    padding: 2px;
    font-family: trebuchet ms,verdana,arial;
    font-size: 12px;
    background: #6d6d65;
    border: 1px solid hsla(0,0%,100%,.25);
    border-radius: 2px;
    pointer-events: none;
    z-index: 100
}

.app--dark .mermaid .actor {
    stroke: #81b1db;
    fill: #bdd5ea
}

.app--dark .mermaid text.actor {
    fill: #000;
    stroke: none
}

.app--dark .mermaid .actor-line {
    stroke: #d3d3d3
}

.app--dark .mermaid .messageLine0 {
    marker-end: "url(#arrowhead)"
}

.app--dark .mermaid .messageLine0,.app--dark .mermaid .messageLine1 {
    stroke-width: 1.5;
    stroke-dasharray: "2 2";
    stroke: #d3d3d3
}

.app--dark .mermaid #arrowhead {
    fill: #d3d3d3
}

.app--dark .mermaid #crosshead path {
    fill: #d3d3d3!important;
    stroke: #d3d3d3!important
}

.app--dark .mermaid .messageText {
    fill: #d3d3d3;
    stroke: none
}

.app--dark .mermaid .labelBox {
    stroke: #81b1db;
    fill: #bdd5ea
}

.app--dark .mermaid .labelText,.app--dark .mermaid .loopText {
    fill: #d3d3d3;
    stroke: none
}

.app--dark .mermaid .loopLine {
    stroke-width: 2;
    stroke-dasharray: "2 2";
    marker-end: "url(#arrowhead)";
    stroke: #81b1db
}

.app--dark .mermaid .note {
    stroke: hsla(0,0%,100%,.25);
    fill: #fff5ad
}

.app--dark .mermaid .noteText {
    fill: #000;
    stroke: none;
    font-family: trebuchet ms,verdana,arial;
    font-size: 14px
}

.app--dark .mermaid .section {
    stroke: none;
    opacity: .2
}

.app--dark .mermaid .section0 {
    fill: hsla(0,0%,100%,.3)
}

.app--dark .mermaid .section2 {
    fill: #eae8b9
}

.app--dark .mermaid .section1,.app--dark .mermaid .section3 {
    fill: #fff;
    opacity: .2
}

.app--dark .mermaid .sectionTitle0,.app--dark .mermaid .sectionTitle1,.app--dark .mermaid .sectionTitle2,.app--dark .mermaid .sectionTitle3 {
    fill: #f9fffe
}

.app--dark .mermaid .sectionTitle {
    text-anchor: start;
    font-size: 11px
}

.app--dark .mermaid .grid .tick {
    stroke: #d3d3d3;
    opacity: .3;
    shape-rendering: crispEdges
}

.app--dark .mermaid .grid path {
    stroke-width: 0
}

.app--dark .mermaid .today {
    fill: none;
    stroke: #db5757;
    stroke-width: 2px
}

.app--dark .mermaid .task {
    stroke-width: 2
}

.app--dark .mermaid .taskText {
    text-anchor: middle;
    font-size: 11px
}

.app--dark .mermaid .taskTextOutsideRight {
    fill: #323d47;
    text-anchor: start;
    font-size: 11px
}

.app--dark .mermaid .taskTextOutsideLeft {
    fill: #323d47;
    text-anchor: end;
    font-size: 11px
}

.app--dark .mermaid .taskText0,.app--dark .mermaid .taskText1,.app--dark .mermaid .taskText2,.app--dark .mermaid .taskText3 {
    fill: #323d47
}

.app--dark .mermaid .task0,.app--dark .mermaid .task1,.app--dark .mermaid .task2,.app--dark .mermaid .task3 {
    fill: #bdd5ea;
    stroke: hsla(0,0%,100%,.5)
}

.app--dark .mermaid .taskTextOutside0,.app--dark .mermaid .taskTextOutside1,.app--dark .mermaid .taskTextOutside2,.app--dark .mermaid .taskTextOutside3 {
    fill: #d3d3d3
}

.app--dark .mermaid .active0,.app--dark .mermaid .active1,.app--dark .mermaid .active2,.app--dark .mermaid .active3 {
    fill: #81b1db;
    stroke: hsla(0,0%,100%,.5)
}

.app--dark .mermaid .activeText0,.app--dark .mermaid .activeText1,.app--dark .mermaid .activeText2,.app--dark .mermaid .activeText3 {
    fill: #323d47!important
}

.app--dark .mermaid .done0,.app--dark .mermaid .done1,.app--dark .mermaid .done2,.app--dark .mermaid .done3 {
    stroke: grey;
    fill: #d3d3d3;
    stroke-width: 2
}

.app--dark .mermaid .doneText0,.app--dark .mermaid .doneText1,.app--dark .mermaid .doneText2,.app--dark .mermaid .doneText3 {
    fill: #323d47!important
}

.app--dark .mermaid .crit0,.app--dark .mermaid .crit1,.app--dark .mermaid .crit2,.app--dark .mermaid .crit3 {
    stroke: #e83737;
    fill: #e83737;
    stroke-width: 2
}

.app--dark .mermaid .activeCrit0,.app--dark .mermaid .activeCrit1,.app--dark .mermaid .activeCrit2,.app--dark .mermaid .activeCrit3 {
    stroke: #e83737;
    fill: #81b1db;
    stroke-width: 2
}

.app--dark .mermaid .doneCrit0,.app--dark .mermaid .doneCrit1,.app--dark .mermaid .doneCrit2,.app--dark .mermaid .doneCrit3 {
    stroke: #e83737;
    fill: #d3d3d3;
    stroke-width: 2;
    cursor: pointer;
    shape-rendering: crispEdges
}

.app--dark .mermaid .activeCritText0,.app--dark .mermaid .activeCritText1,.app--dark .mermaid .activeCritText2,.app--dark .mermaid .activeCritText3,.app--dark .mermaid .doneCritText0,.app--dark .mermaid .doneCritText1,.app--dark .mermaid .doneCritText2,.app--dark .mermaid .doneCritText3 {
    fill: #323d47!important
}

.app--dark .mermaid .titleText {
    text-anchor: middle;
    font-size: 18px;
    fill: #323d47
}

.app--dark .mermaid g.classGroup text {
    fill: purple;
    stroke: none;
    font-family: trebuchet ms,verdana,arial;
    font-size: 10px
}

.app--dark .mermaid g.classGroup rect {
    fill: #bdd5ea;
    stroke: purple
}

.app--dark .mermaid g.classGroup line {
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid .classLabel .box {
    stroke: none;
    stroke-width: 0;
    fill: #bdd5ea;
    opacity: .5
}

.app--dark .mermaid .classLabel .label {
    fill: purple;
    font-size: 10px
}

.app--dark .mermaid .relation {
    stroke: purple;
    stroke-width: 1;
    fill: none
}

.app--dark .mermaid #compositionEnd,.app--dark .mermaid #compositionStart {
    fill: purple;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid #aggregationEnd,.app--dark .mermaid #aggregationStart {
    fill: #bdd5ea;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid #dependencyEnd,.app--dark .mermaid #dependencyStart,.app--dark .mermaid #extensionEnd,.app--dark .mermaid #extensionStart {
    fill: purple;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid .branch-label,.app--dark .mermaid .commit-id,.app--dark .mermaid .commit-msg {
    fill: #d3d3d3;
    color: #d3d3d3
}/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html {
    line-height: 1.15;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

article,aside,footer,header,nav,section {
    display: block
}

h1 {
    font-size: 2em;
    margin: .67em 0
}

figcaption,figure {
    display: block;
}

figure {
    margin: 1em 40px;
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible
}

main {
    display: block
}

pre {
    font-family: monospace,monospace;
    font-size: 1em
}

a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects
}

a.link {
    cursor: pointer;
    position: relative;
/*  white-space: nowrap;*/
}

a.link::before,
a.link::after {
    position: absolute;
    width: 100%;
    height: 1px;
    background: currentColor;
    top: 100%;
    left: 0;
}

a.link::before {
    content: '';
    /* show by default */
}

a.link--helike:hover span {
    animation: glitchText 0.4s linear;
}

@keyframes glitchText {
    0% {
        opacity: 1;
        transform: translate3d(-10px, 0, 0) scale3d(-1, -1, 1);
        -webkit-clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
        clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
    }

    10% {
        -webkit-clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
        clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
    }

    20% {
        -webkit-clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
        clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
    }

    35% {
        -webkit-clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
        clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
    }

    50% {
        -webkit-clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
        clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
    }

    60% {
        -webkit-clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
        clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
    }

    70% {
        -webkit-clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
        clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
    }

    80% {
        -webkit-clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
        clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
    }

    90% {
        transform: translate3d(-10px, 0, 0) scale3d(-1, -1, 1);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
        -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    }
}

a.link--helike::before {
    height: 2px;
    opacity: 0;
}

a.link--helike:hover::before {
    opacity: 1;
    animation: glitchLine 0.4s steps(2, start) forwards;
}

@keyframes glitchLine {
    0% {
        transform: scale3d(1, 1, 1);
    }

    10% {
        transform: translate3d(10px, 0, 0);
    }

    20% {
        transform: translate3d(0, 4px, 0);
    }

    30% {
        transform: scale3d(0.1, 1.4, 1) translate3d(0, -25px, 0);
        transform-origin: 100% 0%;
    }

    40% {
        transform: scale3d(1, 0.3, 1) translate3d(0, 25px, 0);
    }

    50% {
        transform: scale3d(0.5, 0.3, 1) translate3d(-100px, -80px, 0);
    }

    60% {
        transform: scale3d(1, 1.25, 1) translate3d(10px, -5px, 0);
    }

    70% {
        transform: scale3d(0.5, 0.5, 1) translate3d(0, 20px, 0);
    }

    80% {
        transform: translate3d(-30, 10px, 0) scale3d(1, 0.4, 1);
        transform-origin: 100% 0%;
    }

    90% {
        transform: scale3d(1, 0.5, 1) translate3d(0, -15px, 0);
        ;
        transform-origin: 0% 50%;
    }

    95% {
        opacity: 1;
    }

    100% {
	opacity: 0;
    }
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted
}

b,strong {
    font-weight: inherit;
    font-weight: bolder
}

code,kbd,samp {
    font-family: monospace,monospace;
    font-size: 1em
}

dfn {
    font-style: italic
}

mark {
    background-color: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub,sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

audio,video {
    display: inline-block
}

audio:not([controls]) {
    display: none;
    height: 0
}

img {
    border-style: none;
}

svg:not(:root) {
    overflow: hidden
}

button,input,optgroup,select,textarea {
    font-family: sans-serif;
    font-size: 100%;
    line-height: 1.15;
    margin: 0
}

button {
    overflow: visible
}

button,select {
    text-transform: none
}[type=reset],[type=submit],button,html [type=button] {
    -webkit-appearance: button
}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner {
    border-style: none;
    padding: 0
}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring {
    outline: 1px dotted ButtonText
}

input {
    overflow: visible
}[type=checkbox],[type=radio] {
    box-sizing: border-box;
    padding: 0
}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button {
    height: auto
}[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

fieldset {
    padding: .35em .75em .625em
}

legend {
    box-sizing: border-box;
    display: table;
    max-width: 100%;
    padding: 0;
    color: inherit;
    white-space: normal
}

progress {
    display: inline-block;
    vertical-align: baseline
}

textarea {
    overflow: auto
}

details {
    display: block
}

summary {
    display: list-item
}

menu {
    display: block
}

canvas {
    display: inline-block
}[hidden],template {
    display: none
}

body,html {
    color: rgba(0,0,0,.75);
    font-size: 16px;
    font-family: Lato,Helvetica Neue,Helvetica,sans-serif;
    font-variant-ligatures: common-ligatures;
    line-height: 1.67;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

.app--dark .layout__panel--editor,.app--dark .layout__panel--preview {
    color: hsla(0,0%,100%,.75)
}

blockquote,dl,ol,p,pre,ul {
    margin: 1.2em 0
}

h1,h2,h3,h4,h5,h6 {
    margin: 1.8em 0;
    line-height: 1.33
}

h1:after,h2:after {
    content: "";
    display: block;
    position: relative;
    top: .33em;
    border-bottom: 1px solid hsla(0,0%,50%,.33)
}

ol ol,ol ul,ul ol,ul ul {
    margin: 0
}

dt {
    font-weight: 700
}

a {
    color: #0c93e4;
    text-decoration: underline;
    text-decoration-skip: ink
}

a:focus,a:hover {
    text-decoration: none
}

code,pre,samp {
    font-family: Roboto Mono,Lucida Sans Typewriter,Lucida Console,monaco,Courrier,monospace;
    font-size: .85em
}

code *,pre *,samp * {
    font-size: inherit
}

blockquote {
    color: rgba(0,0,0,.5);
    padding-left: 1.5em;
    border-left: 5px solid rgba(0,0,0,.1)
}

.app--dark .layout__panel--editor blockquote,.app--dark .layout__panel--preview blockquote {
    color: hsla(0,0%,100%,.4);
    border-left-color: hsla(0,0%,100%,.1)
}

code {
    background-color: rgba(0,0,0,.05);
    border-radius: 3px;
    padding: 2px 4px
}

hr {
    border: 0;
    border-top: 1px solid hsla(0,0%,50%,.33);
    margin: 2em 0
}

pre>code {
    background-color: rgba(0,0,0,.05);
    display: block;
    padding: .5em;
    -webkit-text-size-adjust: none;
    overflow-x: auto;
    white-space: pre
}

.toc ul {
    list-style-type: none;
    padding-left: 20px
}

table {
    background-color: transparent;
    border-collapse: collapse;
    border-spacing: 0
}

td,th {
    border-right: 1px solid #dcdcdc;
    padding: 8px 12px
}

td:last-child,th:last-child {
    border-right: 0
}

td {
    border-top: 1px solid #dcdcdc
}

mark {
    background-color: #f8f840
}

kbd {
    font-family: Lato,Helvetica Neue,Helvetica,sans-serif;
    background-color: #fff;
    border: 1px solid rgba(63,63,63,.25);
    border-radius: 3px;
    box-shadow: 0 1px 0 rgba(63,63,63,.25);
    color: #333;
    display: inline-block;
    font-size: .8em;
    margin: 0 .1em;
    padding: .1em .6em;
    white-space: nowrap
}

abbr[title] {
    border-bottom: 1px dotted #777;
    cursor: help
}

img {
    max-width: 100%;
}

img.hover_img{
    border-radius: 15px;
    filter: opacity(0.7);
    transition: all 0.8s ease-in-out;;
}

img.rounded_img{
    border-radius: 15px;
}

img.hover_img:hover {
    filter: none;
    transform: scale(1.01);
}



.task-list-item {
    list-style-type: none
}

.task-list-item-checkbox {
    margin: 0 .2em 0 -1.3em
}

.footnote {
    font-size: .8em;
    position: relative;
    top: -.25em;
    vertical-align: top
}

.page-break-after {
    page-break-after: always
}

.abc-notation-block {
    overflow-x: auto!important
}

.stackedit__html {
    margin-bottom: 180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 30px;
    padding-right: 30px;
    max-width: 750px
}

.stackedit__toc ul {
    padding: 0
}

.stackedit__toc ul a {
    margin: .5rem 0;
    padding: .5rem 1rem
}

.stackedit__toc ul ul {
    color: #888;
    font-size: .9em
}

.stackedit__toc ul ul a {
    margin: 0;
    padding: .1rem 1rem
}

.stackedit__toc li {
    display: block
}

.stackedit__toc a {
    display: block;
    color: inherit;
    text-decoration: none
}

.stackedit__toc a:active,.stackedit__toc a:focus,.stackedit__toc a:hover {
    background-color: rgba(0,0,0,.075);
    border-radius: 3px
}

.stackedit__left {
    position: fixed;
    display: none;
    width: 250px;
    height: 100%;
    top: 0;
    left: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none
}

@media (min-width:1060px) {
    .stackedit__left {
	display: block
	}
}

.stackedit__right {
    position: absolute;
    right: 0;
    top: 0;
    left: 0
}

@media (min-width:1060px) {
    .stackedit__right {
	left: 250px
	}
}

.stackedit--pdf blockquote {
    border-left-color: #ececec
}

.stackedit--pdf .stackedit__html {
    padding-left: 0;
    padding-right: 0;
    max-width: none
}