.ant-affix{position:fixed;z-index:10}.articleContainer___2G4Lm{display:flex;grid-gap:24px;gap:24px;max-width:1200px;margin:0 auto}.articleContent___2T1ri{flex:1 1;min-width:0}.tocCard___3EMbY{width:280px;max-height:70vh;overflow-y:auto;flex-shrink:0}@media (max-width:1200px){.tocCard___3EMbY{display:none}}.tocCard___3EMbY .ant-card-head{padding:12px 16px;border-bottom:1px solid #f0f0f0}.tocCard___3EMbY .ant-card-body{padding:8px 0}.tocList___34_jD{max-height:60vh;overflow-y:auto;transition:max-height .3s ease}.tocList___34_jD.tocCollapsed___2St9i{max-height:0;overflow:hidden}.tocToggle___3uJAA{cursor:pointer;color:#999;font-size:12px;margin-left:8px}.tocToggle___3uJAA:hover{color:#40a9ff}.floatingTocButton___95kio{position:fixed;top:50%;right:20px;transform:translateY(-50%);z-index:1000;display:none}@media (min-width:1200px){.floatingTocButton___95kio{display:block}}.floatingTocBtn___1nmBR{width:50px;height:50px;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .3s ease;animation:tocPulse___1kYuA 2s infinite}.floatingTocBtn___1nmBR:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.2)}@keyframes tocPulse___1kYuA{0%{box-shadow:0 4px 12px rgba(0,0,0,.15)}50%{box-shadow:0 4px 12px rgba(24,144,255,.3)}to{box-shadow:0 4px 12px rgba(0,0,0,.15)}}.tocPreview___1Yh_c{position:absolute;right:70px;top:50%;transform:translateY(-50%);width:300px;max-height:500px;background:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);border:1px solid #f0f0f0;z-index:1001;animation:tocPreviewFadeIn___3KW98 .3s ease-out;overflow:hidden;display:flex;flex-direction:column}@keyframes tocPreviewFadeIn___3KW98{0%{opacity:0;transform:translateY(-50%) scale(.9)}to{opacity:1;transform:translateY(-50%) scale(1)}}.tocPreviewHeader___30mXf{padding:12px 16px;border-bottom:1px solid #f0f0f0;background:#fafafa;font-weight:600;font-size:14px;color:#333;display:flex;justify-content:space-between;align-items:center}.tocPreviewHint___M5t-h{font-size:11px;color:#999;font-weight:400}.tocPreviewList___ZnL5g{flex:1 1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1}.tocPreviewList___ZnL5g::-webkit-scrollbar{width:6px}.tocPreviewList___ZnL5g::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.tocPreviewList___ZnL5g::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.tocPreviewList___ZnL5g::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.tocPreviewItem___2P94v{padding:8px 16px;cursor:pointer;transition:background .2s ease;border-left:3px solid transparent}.tocPreviewItem___2P94v:hover{background:#f5f5f5}.tocPreviewItem___2P94v.active___3uGuF{background:#e6f7ff;border-left-color:#1890ff;color:#1890ff}.tocItem___1-h95{padding:8px 16px;cursor:pointer;transition:all .3s ease;border-left:3px solid transparent}.tocItem___1-h95:hover{background:#f5f5f5;border-left-color:#88adc7}.tocItem___1-h95.active___3uGuF{background:#e6f7ff;border-left-color:#88adc7;color:#88adc7}@media (prefers-color-scheme:dark){.tocPreview___1Yh_c{background:#2a2a2a;border-color:#404040}.tocPreviewHeader___30mXf{background:#1f1f1f;color:#fff;border-bottom-color:#404040}.tocPreviewHint___M5t-h{color:#666}.tocPreviewItem___2P94v:hover{background:#3a3a3a}.tocPreviewItem___2P94v.active___3uGuF{background:#1e3a5f;border-left-color:#1890ff;color:#1890ff}.tocPreviewList___ZnL5g{scrollbar-color:#555 #2a2a2a}.tocPreviewList___ZnL5g::-webkit-scrollbar-track{background:#2a2a2a}.tocPreviewList___ZnL5g::-webkit-scrollbar-thumb{background:#555}.tocPreviewList___ZnL5g::-webkit-scrollbar-thumb:hover{background:#666}}.mobileToolbar___27Z2E{position:fixed;bottom:120px;right:20px;z-index:1000;display:none}@media (max-width:1024px){.mobileToolbar___27Z2E{display:block}}.mobileToolbarButton___-UFJX{width:40px;height:40px;background:#fff;border:1px solid #d9d9d9;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:all .3s ease}.mobileToolbarButton___-UFJX:hover{background:#f5f5f5;transform:scale(1.05)}.mobileToolbarButton___-UFJX:active{transform:scale(.95)}@media (max-width:1200px){.articleContainer___2G4Lm{flex-direction:column}}.mobileTocOverlay___216_O{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1001;display:none}@media (max-width:1024px){.mobileTocOverlay___216_O{display:block}}.mobileTocContent___D9nbf{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;max-width:400px;max-height:70vh;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.3)}@media (min-width:768px) and (max-width:820px){.mobileTocContent___D9nbf{left:65%;transform:translate(-50%,-50%);width:65%;max-width:320px}}@media (min-width:821px) and (max-width:1024px){.mobileTocContent___D9nbf{left:60%;transform:translate(-50%,-50%);width:70%;max-width:350px}}.mobileTocHeader___2Uplz{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f0f0f0;background:#fafafa;font-weight:600}.mobileTocClose___omXKd{font-size:20px;cursor:pointer;color:#999}.mobileTocClose___omXKd:hover{color:#333}.mobileTocList___3Si7u{max-height:50vh;overflow-y:auto;padding:8px 0}.mobileTocList___3Si7u::-webkit-scrollbar{width:6px}.mobileTocList___3Si7u::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.mobileTocList___3Si7u::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.mobileTocList___3Si7u::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.mobileTocItem___3ji9n{padding:12px 20px;cursor:pointer;transition:background .2s ease;border-left:3px solid transparent}.mobileTocItem___3ji9n:hover{background:#f5f5f5}.mobileTocItem___3ji9n.active___3uGuF{background:#e6f7ff;border-left-color:#1890ff;color:#1890ff}@media (prefers-color-scheme:dark){.mobileTocContent___D9nbf{background:#1f1f1f}.mobileTocHeader___2Uplz{background:#2a2a2a;border-color:#333;color:#fff}.mobileTocItem___3ji9n{color:#fff}.mobileTocItem___3ji9n:hover{background-color:#333;color:#40a9ff}.mobileTocItem___3ji9n.active___3uGuF{background-color:#1a3a5c;color:#40a9ff}}.avatarHolder___3IgW_{width:100%;height:100%;text-align:center;border:1px solid #d9d9d9}.avatarHolder___3IgW_>img{width:100%;height:100%}.avatarHolder___3IgW_ .name___wOu1K{margin-bottom:4px;color:rgba(0,0,0,.85);font-weight:500;font-size:20px;line-height:28px}.pubMeta___f6HTF{padding-bottom:8px;font-style:normal;color:rgba(0,0,0,.25)}.pubMeta___f6HTF>em{margin-left:16px;color:rgba(0,0,0,.25);font-style:normal}.entry___2DSQI{padding-top:16px;margin-bottom:10px;font-size:14px;line-height:28px;color:#222;position:relative}.entry___2DSQI:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:none;background-image:var(--watermark-bg,none);background-repeat:repeat;background-size:200px 200px;pointer-events:none;z-index:0;opacity:.15}.entry___2DSQI>*{position:relative;z-index:1}.share___2myw1{float:inherit;margin-top:16px;margin-bottom:16px}.share___2myw1>img{margin-right:10px}.pubMetaBottom___3gSs5{margin:35px auto 60px;color:#999;border-bottom:1px solid #eee;overflow:hidden;clear:both}.pubMetaBottom___3gSs5 .tags___30z8s{float:left;padding-bottom:10px;text-indent:18px;overflow:hidden}.pubPrevNext___27O1y{margin-bottom:40px}.relatedPost___2OtfA h2{margin-bottom:25px;padding:10px 0;font-size:20px;font-weight:500;border-top:1px solid #eee;border-bottom:1px solid #eee}.comment___2d3Ev h3{margin-bottom:35px;padding:10px 0;font-size:20px;font-weight:500;border-top:1px solid #eee;border-bottom:1px solid #eee}.clearfix___qLX8G{clear:both;font-size:1px;width:1px;height:0;visibility:hidden;margin-top:0!important;*margin-top:-1px;line-height:0}@media screen and (max-width:375px){.avatarHolder___3IgW_{width:100%;height:100%}}@media screen and (max-width:768px){.hotRec___3PFJu{display:none}.cardListRight___1IvmZ{display:none}}.proButton___1PQmv{display:flex;float:right}.proButton___1PQmv>button{margin-right:24px}.cardListRight___1IvmZ{height:450px;overflow:hidden}.detail___CYR2O p{position:relative;margin-bottom:8px;padding-left:26px}.detail___CYR2O p:last-child{margin-bottom:0}.detail___CYR2O i{position:absolute;top:4px;left:0;width:14px;height:14px}.tagsTitle___3qnkS,.teamTitle___2UkTH{margin-bottom:12px;color:rgba(0,0,0,.85);font-weight:500}.tags___30z8s .ant-tag{margin-bottom:8px}.team___3Pw__{margin-top:24px}.team___3Pw__ a{display:block;overflow:hidden;color:rgba(0,0,0,.85);white-space:nowrap;text-overflow:ellipsis;word-break:break-all;transition:color .3s}.team___3Pw__ a:hover{color:#88adc7}.team___3Pw__ a>img{width:calc(100% - 2px);height:calc(100% - 2px)}.tabsCard___2ZWHl .ant-card-head{padding:0 16px}.title___2sNwH{margin-bottom:16px;color:rgba(0,0,0,.85);font-weight:500;font-size:16px}.entry___2DSQI img{max-width:100%;height:auto;display:block;margin:0 auto!important}.card___1gh_5 .ant-card-meta-title{margin-bottom:4px}.card___1gh_5 .ant-card-meta-title>a{display:inline-block;max-width:100%;color:rgba(0,0,0,.85)}.card___1gh_5 .ant-card-meta-description{height:44px;overflow:hidden;line-height:22px}.card___1gh_5:hover .ant-card-meta-title>a{color:#88adc7}.cardItemContent___1enWa{display:flex;height:20px;margin-top:16px;margin-bottom:-4px;line-height:20px}.cardItemContent___1enWa>span{flex:1 1;color:rgba(0,0,0,.45);font-size:12px}.cardItemContent___1enWa .avatarList___3wgn0{flex:0 1 auto}.markdown-body{color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3.02 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3.02 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>')}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:#0366d6;text-decoration:none}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body abbr[title]{border-bottom:1px dotted;text-decoration:none}.markdown-body b,.markdown-body strong{font-weight:600}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0}.markdown-body mark{background-color:#ff0;color:#24292e}.markdown-body small{font-size:80%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{box-sizing:content-box;height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0 0 16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body dd{margin-left:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-body h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:1.45;overflow:auto}.markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.ant-pro-grid-content{width:100%}.ant-pro-grid-content.wide{max-width:1200px;margin:0 auto}