html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-family:inherit;font-size:100%;vertical-align:baseline}body{line-height:1;color:#000;background:#fff}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0;vertical-align:middle}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}a{text-decoration:inherit}a:hover{text-decoration:underline}a img{border:none}*{box-sizing:border-box}article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,main{margin:0;padding:0;border:0;outline:0;display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]),[hidden]{display:none}.markdown-body{padding:20px 30px 20px 30px;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.6;color:#24292e}@media screen and (max-width:768px){.markdown-body{padding:16px 12px;font-size:15px}}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body strong{font-weight:bold}.markdown-body hr{border:none;border-top:1px solid #d8dee4;margin:20px 0}.markdown-body em{font-style:italic}.markdown-body img{max-width:100%;height:auto;border-radius:4px;transition:opacity .2s ease}@media screen and (max-width:768px){.markdown-body img{display:block;margin:12px auto}}.markdown-body img.image-preview{cursor:zoom-in}.markdown-body img.image-preview:hover{opacity:.9}.markdown-body a{color:#0969da;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body a:visited{color:#0969da}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{position:relative;margin-top:.8em;margin-bottom:12px;font-weight:600;line-height:1.25;color:#1f2328}@media screen and (max-width:768px){.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:.6em;margin-bottom:10px}}.markdown-body h1 a,.markdown-body h2 a,.markdown-body h3 a,.markdown-body h4 a,.markdown-body h5 a,.markdown-body h6 a{display:none}.markdown-body h1:hover a,.markdown-body h2:hover a,.markdown-body h3:hover a,.markdown-body h4:hover a,.markdown-body h5:hover a,.markdown-body h6:hover a{display:inline;color:#000;font-size:85%}.markdown-body h1,.markdown-body h2{border-bottom:1px solid #d8dee4}.markdown-body h1{font-size:1.5em;line-height:1.2;padding-bottom:.25em;margin-top:0}.markdown-body h2{padding-bottom:.25em;font-size:1.3em;line-height:1.3;border-bottom:1px solid #d8dee4}.markdown-body h3{font-size:1.15em}.markdown-body h4{font-size:1.05em}.markdown-body h5{font-size:1em}.markdown-body h6{font-size:1em;color:#656d76}.markdown-body blockquote{padding:0 1em;color:#656d76;border-left:3px solid #d8dee4;margin:0;background-color:#f6f8fa;border-radius:3px;padding:8px 16px}@media screen and (max-width:768px){.markdown-body blockquote{margin-left:-12px;margin-right:-12px;padding:8px 12px;border-left:none;border-radius:0}}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre{margin-top:0;margin-bottom:12px}@media screen and (max-width:768px){.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre{margin-bottom:10px}}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin-bottom:12px}.markdown-body ul li,.markdown-body ol li{margin-bottom:4px;line-height:1.6}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body pre{padding:12px 16px;overflow:auto;-webkit-overflow-scrolling:touch;background-color:#f6f8fa;border:1px solid #d8dee4;border-radius:6px;word-break:break-all;word-wrap:break-word;font:15px "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;white-space:pre-wrap;position:relative;margin-bottom:12px}@media screen and (max-width:768px){.markdown-body pre{padding:10px 12px;font-size:14px;border-radius:4px;margin-left:-12px;margin-right:-12px;border-left:none;border-right:none}}.markdown-body pre .code-copy-btn{position:absolute;top:0;right:0;padding:0;background-color:transparent;color:#333;border:none;border-radius:4px;font-size:0;cursor:pointer;opacity:.5;transition:all .2s;z-index:10;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:24px;height:24px}@media screen and (max-width:768px){.markdown-body pre .code-copy-btn{width:32px;height:32px;opacity:.7;top:4px;right:4px}}.markdown-body pre .code-copy-btn:hover{opacity:1;color:#007bff}.markdown-body pre .code-copy-btn:active{transform:scale(.95)}.markdown-body pre .code-copy-btn.copied{color:#28a745;opacity:1}.markdown-body pre .code-copy-btn svg{width:20px;height:20px;pointer-events:none}@media screen and (max-width:768px){.markdown-body pre .code-copy-btn svg{width:22px;height:22px}}.markdown-body pre code{background-color:transparent;color:#24292e;line-height:1.45;display:block;font-size:15px;white-space:pre-wrap}@media screen and (max-width:768px){.markdown-body pre code{font-size:14px}}.markdown-body pre code::before{content:none}.markdown-body code,.markdown-body tt{padding:2px 6px;margin:0 2px;vertical-align:baseline;background-color:rgba(175,184,193,0.2);border-radius:3px;font-size:15px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;color:#e36209;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}.markdown-body code:before,.markdown-body code:after,.markdown-body tt:before,.markdown-body tt:after{content:"\00a0";vertical-align:text-top}.markdown-body table{width:100%;border-collapse:collapse;border-spacing:0;max-width:100%;display:table;margin-bottom:12px}@media screen and (max-width:768px){.markdown-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-12px;margin-right:-12px}}.markdown-body table th,.markdown-body table td{border:1px solid #d8dee4;padding:6px 13px;text-align:left}@media screen and (max-width:768px){.markdown-body table th,.markdown-body table td{padding:8px 10px;font-size:14px;white-space:nowrap}}.markdown-body table th{font-weight:600;background:#f6f8fa}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table tbody{background:#fff}.markdown-body .task-list-item{padding:0}.markdown-body .task-list-item li{list-style-type:none}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header{color:#969896;font-size:90%}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#a71d5d;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:#008080}.hljs-string,.hljs-tag .hljs-value,.hljs-doctag,.tex .hljs-formula{color:#183691}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:#000080;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:#008080}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}*{box-sizing:border-box}body,html{height:100%;font-family:Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol"}body .logo,html .logo{float:left;padding:10px 20px 0 0;font-size:24px;color:#61dafb}@media screen and (max-width:768px){body .logo,html .logo{float:none;padding:0;font-size:20px;text-align:left;border-bottom:none;margin-bottom:0}}body .logo img,html .logo img{vertical-align:middle;margin:-4px 0 0 0}.menu-icon{position:fixed;top:12px;right:20px;width:32px;height:32px;background:rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:4px;cursor:pointer;z-index:1000;display:none;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;padding:0;box-shadow:0 1px 3px rgba(0,0,0,0.08);transition:all .3s ease;pointer-events:auto;-webkit-tap-highlight-color:transparent}.menu-icon:hover{background:rgba(0,0,0,0.08);border-color:rgba(0,0,0,0.15);box-shadow:0 2px 6px rgba(0,0,0,0.12)}.menu-icon:active{transform:scale(.95)}.menu-icon span{width:18px;height:2px;background:#666;border-radius:1px;margin:2.5px 0;transition:all .3s ease;transform-origin:center}.menu-icon.menu-icon-active span:nth-child(1){transform:rotate(45deg) translate(7px,7px)}.menu-icon.menu-icon-active span:nth-child(2){opacity:0}.menu-icon.menu-icon-active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1001;opacity:0;visibility:hidden;transition:all .3s ease}.menu-overlay.menu-overlay-show{opacity:1;visibility:visible}.menu-popup{position:fixed;top:0;right:-400px;width:400px;height:100%;background:#fff;z-index:1002;box-shadow:-2px 0 10px rgba(0,0,0,0.1);transition:right .3s ease;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media screen and (max-width:768px){.menu-popup{width:80%;right:-80%}}.menu-popup.menu-popup-show{right:0}.menu-popup .menu-popup-header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:10px 20px;border-bottom:1px solid #e5e9f2;background:#f5f7fa}.menu-popup .menu-popup-header h3{margin:0;font-size:16px;color:#2c3e50;font-weight:600}.menu-popup .menu-popup-header .menu-close{width:24px;height:24px;background:transparent;border:none;font-size:20px;color:#2c3e50;cursor:pointer;line-height:1;padding:0;transition:all .2s ease}.menu-popup .menu-popup-header .menu-close:hover{color:#4a90e2;transform:scale(1.1)}.menu-popup .menu-popup-content{-ms-flex:1;flex:1;overflow-y:auto;padding:20px}.menu-popup .menu-popup-content ul{list-style:none;margin:0;padding:0}.menu-popup .menu-popup-content ul li{margin:0;padding:0}.menu-popup .menu-popup-content ul li a{display:block;padding:12px 15px;color:#2c3e50;text-decoration:none;border-radius:4px;transition:all .2s ease;font-size:15px}.menu-popup .menu-popup-content ul li a:hover{background:#f5f7fa;color:#4a90e2}.menu-popup .menu-popup-content ul li.active a{background:rgba(74,144,226,0.1);color:#4a90e2;font-weight:600}.menu-popup .menu-popup-content ul li ul{margin-left:20px;margin-top:5px}.menu-popup .menu-popup-content ul li ul li a{padding:8px 15px;font-size:14px;color:#476582}.menu-popup .menu-popup-content ul li ul li.active a{color:#4a90e2}.warpper{width:100%;padding:0;height:100%;overflow:auto}.warpper .page-toc,.warpper .markdown-body{height:100%}.warpper .markdown-body{margin-left:200px;overflow:auto}@media screen and (max-width:768px){.warpper .markdown-body{margin-left:0}}.warpper .markdown-body.index-page-content{margin-left:0}.warpper .page-toc{height:100%;position:fixed;width:200px;border-right:1px solid #bbb;box-shadow:0 0 20px #ccc;background:#f7f7f7;overflow-y:auto;overflow-x:hidden;font-family:"Lucida Grande","Lucida Sans Unicode",Helvetica,Arial,sans-serif !important;padding-top:20px}@media screen and (max-width:768px){.warpper .page-toc{display:none}}.warpper .page-toc ul{list-style-type:none;margin:0;padding:0;padding-right:5px}.warpper .page-toc ul a{display:block;padding:3px 0;color:#2c3e50;text-decoration:none;font-weight:700;line-height:16px;font-size:14px}.warpper .page-toc ul a:hover{text-decoration:underline}.warpper .page-toc ul li{padding-left:3px;line-height:25px;text-align:left}.warpper .page-toc ul ul{margin:0;padding-left:12px;padding-right:5px}.warpper .page-toc ul ul li a{font-size:90%;font-weight:normal;border-bottom:0;position:relative}.warpper .copyright{border-top:1px dashed #e9e9e9;padding:6px 0 5px 2px;margin:32px 0 0 0;line-height:16px;font-size:12px;color:#dfdfdf}.warpper .copyright a{color:#d6ddf8;text-decoration:underline}.warpper .copyright a:hover{color:#333}.forkgithub{position:absolute;z-index:2;right:0;background:url("../img/forkgithub.png") 14px -15px no-repeat}@media screen and (max-width:768px){.forkgithub{display:none}}.forkgithub a{display:block;width:149px;height:149px}.my-active{font-weight:bold !important;margin-top:-3px}.my-active:before{content:'';display:block;height:16px;border-left:4px solid #4a90e2;padding-left:16px;position:absolute;left:-12px}::-webkit-scrollbar-track-piece{background-color:#fff;-webkit-border-radius:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{height:50px;background-color:#999;-webkit-border-radius:4px;outline:2px solid #fff;outline-offset:-2px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{height:50px;background-color:#9f9f9f;-webkit-border-radius:4px}.sidebar{background:#fff;border-right:1px solid #e5e9f2}.sidebar a{color:#2c3e50}.sidebar a:hover{color:#1abc9c;background:#fafbfd}.content{background:#fff;color:#2c3e50}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#283848}.content a{color:#3498db}.content a:hover{color:#1abc9c}.content code{background:#f8f9fb;color:#e74c3c}.content pre{background:#f5f7fa;border:1px solid #e5e9f2}.content blockquote{border-left:4px solid #4a90e2;background:#f9fafc}.hljs{background:#f5f7fa}.hljs .hljs-keyword{color:#8e44ad}.hljs .hljs-string{color:#27ae60}.hljs .hljs-number{color:#e67e22}.hljs .hljs-comment{color:#95a5a6}table th{background:#f5f7fa}table tr:nth-child(even){background:#f9fafc}table td,table th{border:1px solid #e5e9f2}.button{background:#4a90e2;color:#fff}.button:hover{background:#3080de}.content{position:relative}.katex-display{margin:1.5em 0;overflow-x:auto;overflow-y:hidden;text-align:center}.katex{font-size:1.1em}.katex-error{color:#f00}.index-page{padding:40px 20px;max-width:1200px;margin:0 auto}.index-page h1{font-size:32px;color:#2c3e50;margin-bottom:30px;font-weight:600;border-bottom:2px solid #4a90e2;padding-bottom:15px}.index-page .index-list ul{list-style:none;margin:0;padding:0}.index-page .index-list .index-category{margin:15px 0}.index-page .index-list .index-category .category-title{display:block;font-size:18px;font-weight:600;color:#4a90e2;margin-bottom:10px;padding:8px 12px;background:rgba(74,144,226,0.1);border-left:4px solid #4a90e2;border-radius:4px}.index-page .index-list .index-category ul{margin-left:20px !important;margin-top:10px}.index-page .index-list .index-item{margin:8px 0}.index-page .index-list .index-item a{display:inline-block;padding:10px 15px;color:#2c3e50;text-decoration:none;border-radius:4px;transition:all .2s ease;font-size:16px;border-left:3px solid transparent}.index-page .index-list .index-item a:hover{background:#f5f7fa;color:#4a90e2;border-left-color:#4a90e2;transform:translateX(5px)}