body { padding: 50px; font:16px/1.5 Verdana, "Helvetica Neue", Helvetica, Arial, sans-serif; color: #444; } h1, h2, h3, h4, h5, h6 { color:#222; margin:48px 0 24px; } p, ul, ol, table, pre, dl, figure { margin:0 0 24px; } h1, h2, h3, h4 { line-height:1.1; } h1 { font-size:28px; margin-top: 0; } .site-title a{ text-decoration: none; color: inherit; font-weight: inherit; } h2 { color:#393939; } h3, h4, h5, h6 { color:#494949; } .subtitle { margin-top: 40px; } a { color:#39c; font-weight:400; text-decoration:none; } a small { font-size:11px; color:#777; display:block; } .wrapper { width:920px; margin:0 auto; } blockquote { border-left:1px solid #e5e5e5; margin:0; padding:0 0 0 20px; font-style:italic; } code, pre { font-family: monospace; color:#333; font-size:14px; } pre { padding:8px 15px; background: #f8f8f8; border-radius:5px; border:1px solid #e5e5e5; overflow-x: auto; } table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:5px 10px; border-bottom:1px solid #e5e5e5; } dt { color:#444; font-weight:700; } th { color:#444; } img { max-width:100%; } header { width:270px; float:left; position:fixed; } strong { color:#222; font-weight:700; } section { width:560px; float:right; padding-bottom:50px; } small { font-size:11px; } hr { border:0; background:#e5e5e5; height:1px; margin:0 0 20px; } footer { width:270px; float:left; position:fixed; bottom:50px; } h1 small { color: #888; font-size: 16px; display: block; margin-bottom: 10px; } .btn { display: inline-block; white-space: nowrap; margin-bottom: 10px; font-size: 14px; background: #39c; padding: 5px 10px; color: white; border-bottom: 2px solid #006699; } .btn:hover { background: #006699; border-bottom-color: #003366; } @media print, screen and (max-width: 960px) { div.wrapper { width:auto; margin:0; } header, section, footer { float:none; position:static; width:auto; } header { padding-right:320px; } section { border:1px solid #e5e5e5; border-width:1px 0; padding:20px 0; margin:0 0 20px; } header a small { display:inline; } header ul { position:absolute; right:50px; top:52px; } } @media print, screen and (max-width: 720px) { body { word-wrap:break-word; } header { padding:0; } header ul, header p.view { position:static; } pre, code { word-wrap:normal; } } @media print, screen and (max-width: 480px) { body { padding:15px; } header ul { display:none; } } @media print { body { padding:0.4in; font-size:12pt; color:#444; } } /* pygments */ .highlight { background: #ffffff; } .highlight .c { color: #999988; font-style: italic } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { font-weight: bold } /* Keyword */ .highlight .o { font-weight: bold } /* Operator */ .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #999999 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { font-weight: bold } /* Keyword.Constant */ .highlight .kd { font-weight: bold } /* Keyword.Declaration */ .highlight .kn { font-weight: bold } /* Keyword.Namespace */ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ .highlight .kr { font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #009999 } /* Literal.Number */ .highlight .s { color: #d14 } /* Literal.String */ .highlight .na { color: #008080 } /* Name.Attribute */ .highlight .nb { color: #0086B3 } /* Name.Builtin */ .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ .highlight .no { color: #008080 } /* Name.Constant */ .highlight .ni { color: #800080 } /* Name.Entity */ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ .highlight .nn { color: #555555 } /* Name.Namespace */ .highlight .nt { color: #000080 } /* Name.Tag */ .highlight .nv { color: #008080 } /* Name.Variable */ .highlight .ow { font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mf { color: #009999 } /* Literal.Number.Float */ .highlight .mh { color: #009999 } /* Literal.Number.Hex */ .highlight .mi { color: #009999 } /* Literal.Number.Integer */ .highlight .mo { color: #009999 } /* Literal.Number.Oct */ .highlight .sb { color: #d14 } /* Literal.String.Backtick */ .highlight .sc { color: #d14 } /* Literal.String.Char */ .highlight .sd { color: #d14 } /* Literal.String.Doc */ .highlight .s2 { color: #d14 } /* Literal.String.Double */ .highlight .se { color: #d14 } /* Literal.String.Escape */ .highlight .sh { color: #d14 } /* Literal.String.Heredoc */ .highlight .si { color: #d14 } /* Literal.String.Interpol */ .highlight .sx { color: #d14 } /* Literal.String.Other */ .highlight .sr { color: #009926 } /* Literal.String.Regex */ .highlight .s1 { color: #d14 } /* Literal.String.Single */ .highlight .ss { color: #990073 } /* Literal.String.Symbol */ .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ .highlight .vc { color: #008080 } /* Name.Variable.Class */ .highlight .vg { color: #008080 } /* Name.Variable.Global */ .highlight .vi { color: #008080 } /* Name.Variable.Instance */ .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ .type-csharp .highlight .k { color: #0000FF } .type-csharp .highlight .kt { color: #0000FF } .type-csharp .highlight .nf { color: #000000; font-weight: normal } .type-csharp .highlight .nc { color: #2B91AF } .type-csharp .highlight .nn { color: #000000 } .type-csharp .highlight .s { color: #A31515 } .type-csharp .highlight .sc { color: #A31515 } .icon { width: 16px; height: 16px; display: inline-block; vertical-align: middle; background-repeat: no-repeat; background-size: contain; } .icon-download { background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzOC41MzMgNDM4LjUzMyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUzMyA0MzguNTMzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQwOS4xMzMsMTA5LjIwM2MtMTkuNjA4LTMzLjU5Mi00Ni4yMDUtNjAuMTg5LTc5Ljc5OC03OS43OTZDMjk1LjczNiw5LjgwMSwyNTkuMDU4LDAsMjE5LjI3MywwICAgIGMtMzkuNzgxLDAtNzYuNDcsOS44MDEtMTEwLjA2MywyOS40MDdjLTMzLjU5NSwxOS42MDQtNjAuMTkyLDQ2LjIwMS03OS44LDc5Ljc5NkM5LjgwMSwxNDIuOCwwLDE3OS40ODksMCwyMTkuMjY3ICAgIGMwLDM5Ljc4LDkuODA0LDc2LjQ2MywyOS40MDcsMTEwLjA2MmMxOS42MDcsMzMuNTkyLDQ2LjIwNCw2MC4xODksNzkuNzk5LDc5Ljc5OGMzMy41OTcsMTkuNjA1LDcwLjI4MywyOS40MDcsMTEwLjA2MywyOS40MDcgICAgczc2LjQ3LTkuODAyLDExMC4wNjUtMjkuNDA3YzMzLjU5My0xOS42MDIsNjAuMTg5LTQ2LjIwNiw3OS43OTUtNzkuNzk4YzE5LjYwMy0zMy41OTYsMjkuNDAzLTcwLjI4NCwyOS40MDMtMTEwLjA2MiAgICBDNDM4LjUzMywxNzkuNDg1LDQyOC43MzIsMTQyLjc5NSw0MDkuMTMzLDEwOS4yMDN6IE0zNTMuNzQyLDI5Ny4yMDhjLTEzLjg5NCwyMy43OTEtMzIuNzM2LDQyLjYzMy01Ni41MjcsNTYuNTM0ICAgIGMtMjMuNzkxLDEzLjg5NC00OS43NzEsMjAuODM0LTc3Ljk0NSwyMC44MzRjLTI4LjE2NywwLTU0LjE0OS02Ljk0LTc3Ljk0My0yMC44MzRjLTIzLjc5MS0xMy45MDEtNDIuNjMzLTMyLjc0My01Ni41MjctNTYuNTM0ICAgIGMtMTMuODk3LTIzLjc5MS0yMC44NDMtNDkuNzcyLTIwLjg0My03Ny45NDFjMC0yOC4xNzEsNi45NDktNTQuMTUyLDIwLjg0My03Ny45NDNjMTMuODkxLTIzLjc5MSwzMi43MzgtNDIuNjM3LDU2LjUyNy01Ni41MyAgICBjMjMuNzkxLTEzLjg5NSw0OS43NzItMjAuODQsNzcuOTQzLTIwLjg0YzI4LjE3MywwLDU0LjE1NCw2Ljk0NSw3Ny45NDUsMjAuODRjMjMuNzkxLDEzLjg5NCw0Mi42MzQsMzIuNzM5LDU2LjUyNyw1Ni41MyAgICBjMTMuODk1LDIzLjc5MSwyMC44MzgsNDkuNzcyLDIwLjgzOCw3Ny45NDNDMzc0LjU4LDI0Ny40MzYsMzY3LjYzNywyNzMuNDE3LDM1My43NDIsMjk3LjIwOHoiIGZpbGw9IiNGRkZGRkYiLz4KCQk8cGF0aCBkPSJNMzEwLjYzMywyMTkuMjY3SDI1NS44MlYxMTguNzYzYzAtMi42NjYtMC44NjItNC44NTMtMi41NzMtNi41NjdjLTEuNzA0LTEuNzA5LTMuODk1LTIuNTY4LTYuNTU3LTIuNTY4aC01NC44MjMgICAgYy0yLjY2NCwwLTQuODU0LDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcxNCwxLjcxNS0yLjU3LDMuOTAxLTIuNTcsNi41Njd2MTAwLjVoLTU0LjgxOWMtNC4xODYsMC03LjA0MiwxLjkwNS04LjU2Niw1LjcwOSAgICBjLTEuNTI0LDMuNjIxLTAuODU0LDYuOTQ3LDEuOTk5LDkuOTk2bDkxLjM2Myw5MS4zNjFjMi4wOTYsMS43MTEsNC4yODMsMi41NjcsNi41NjcsMi41NjdjMi4yODEsMCw0LjQ3MS0wLjg1Niw2LjU2OS0yLjU2NyAgICBsOTEuMDc3LTkxLjA3M2MxLjkwMi0yLjI4MywyLjg1MS00LjU3NiwyLjg1MS02Ljg1MmMwLTIuNjYyLTAuODU1LTQuODUzLTIuNTczLTYuNTcgICAgQzMxNS40ODksMjIwLjEyMiwzMTMuMjk5LDIxOS4yNjcsMzEwLjYzMywyMTkuMjY3eiIgZmlsbD0iI0ZGRkZGRiIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=); } .icon-github { background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMjU2LDBDMTE0LjYxNSwwLDAsMTE0LjYxNSwwLDI1NnMxMTQuNjE1LDI1NiwyNTYsMjU2czI1Ni0xMTQuNjE1LDI1Ni0yNTZTMzk3LjM4NSwwLDI1NiwweiBNNDA4LjAyNyw0MDguMDI3ICAgYy0xOS43NiwxOS43NTktNDIuNzU2LDM1LjI2Ny02OC4zNTQsNDYuMDk0Yy02LjUwMiwyLjc1LTEzLjEwNSw1LjE2NC0xOS44MDEsNy4yNDZWNDIzYzAtMjAuMTY3LTYuOTE2LTM1LTIwLjc1LTQ0LjUgICBjOC42NjgtMC44MzMsMTYuNjI1LTIsMjMuODc1LTMuNXMxNC45MTgtMy42NjcsMjMtNi41YzguMDg0LTIuODMzLDE1LjMzNC02LjIwOCwyMS43NS0xMC4xMjVjNi40MTgtMy45MTcsMTIuNTg0LTksMTguNS0xNS4yNSAgIGM1LjkxOC02LjI1LDEwLjg3NS0xMy4zMzMsMTQuODc1LTIxLjI1czcuMTY4LTE3LjQxNyw5LjUtMjguNWMyLjMzNC0xMS4wODMsMy41LTIzLjI5MiwzLjUtMzYuNjI1YzAtMjUuODMzLTguNDE2LTQ3LjgzMy0yNS4yNS02NiAgIGM3LjY2OC0yMCw2LjgzNC00MS43NS0yLjUtNjUuMjVsLTYuMjUtMC43NWMtNC4zMzItMC41LTEyLjEyNSwxLjMzMy0yMy4zNzUsNS41cy0yMy44NzUsMTEtMzcuODc1LDIwLjUgICBjLTE5LjgzMi01LjUtNDAuNDE2LTguMjUtNjEuNzQ5LTguMjVjLTIxLjUsMC00MiwyLjc1LTYxLjUsOC4yNWMtOC44MzMtNi0xNy4yMDgtMTAuOTU4LTI1LjEyNS0xNC44NzVzLTE0LjI1LTYuNTgzLTE5LTggICBzLTkuMTY3LTIuMjkyLTEzLjI1LTIuNjI1cy02LjcwOC0wLjQxNy03Ljg3NS0wLjI1cy0yLDAuMzMzLTIuNSwwLjVjLTkuMzMzLDIzLjY2Ny0xMC4xNjcsNDUuNDE3LTIuNSw2NS4yNSAgIGMtMTYuODMzLDE4LjE2Ny0yNS4yNSw0MC4xNjctMjUuMjUsNjZjMCwxMy4zMzMsMS4xNjcsMjUuNTQyLDMuNSwzNi42MjVzNS41LDIwLjU4Myw5LjUsMjguNXM4Ljk1OCwxNSwxNC44NzUsMjEuMjUgICBzMTIuMDgzLDExLjMzMywxOC41LDE1LjI1czEzLjY2Nyw3LjI5MiwyMS43NSwxMC4xMjVzMTUuNzUsNSwyMyw2LjVzMTUuMjA4LDIuNjY3LDIzLjg3NSwzLjVjLTEzLjY2Nyw5LjMzMy0yMC41LDI0LjE2Ny0yMC41LDQ0LjUgICB2MzkuMTE1Yy03LjU0OS0yLjI0Ny0xNC45OS00LjkwMi0yMi4zLTcuOTk0Yy0yNS41OTctMTAuODI3LTQ4LjU5NC0yNi4zMzUtNjguMzUzLTQ2LjA5NCAgIGMtMTkuNzU4LTE5Ljc1OC0zNS4yNjctNDIuNzU2LTQ2LjA5My02OC4zNTRDNDYuNjc5LDMxMy4xOTUsNDEsMjg1LjA0Myw0MSwyNTZzNS42NzktNTcuMTk1LDE2Ljg3OS04My42NzUgICBjMTAuODI3LTI1LjU5NywyNi4zMzUtNDguNTk0LDQ2LjA5My02OC4zNTNjMTkuNzU4LTE5Ljc1OSw0Mi43NTYtMzUuMjY3LDY4LjM1My00Ni4wOTNDMTk4LjgwNSw0Ni42NzksMjI2Ljk1Nyw0MSwyNTYsNDEgICBzNTcuMTk1LDUuNjc5LDgzLjY3NiwxNi44NzljMjUuNTk4LDEwLjgyNyw0OC41OTQsMjYuMzM1LDY4LjM1NCw0Ni4wOTNjMTkuNzU4LDE5Ljc1OCwzNS4yNjYsNDIuNzU2LDQ2LjA5Miw2OC4zNTMgICBDNDY1LjMyLDE5OC44MDUsNDcxLDIyNi45NTcsNDcxLDI1NnMtNS42OCw1Ny4xOTUtMTYuODc5LDgzLjY3NUM0NDMuMjk1LDM2NS4yNzEsNDI3Ljc4NSwzODguMjcsNDA4LjAyNyw0MDguMDI3eiIgZmlsbD0iI0ZGRkZGRiIvPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=); }