diff --git a/404.html b/404.html new file mode 100644 index 00000000..1d0fb1d2 --- /dev/null +++ b/404.html @@ -0,0 +1,4 @@ +404 页面没找到 - dingyufan's blog

抱歉,您要查找的页面不存在。  +

0%
\ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..4cc1be42 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +blog.dingyufan.cn \ No newline at end of file diff --git a/baidu_urls.txt b/baidu_urls.txt new file mode 100644 index 00000000..b45f41fc --- /dev/null +++ b/baidu_urls.txt @@ -0,0 +1,3 @@ +https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/ +https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/ +https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ diff --git a/categories/coding/index.html b/categories/coding/index.html new file mode 100644 index 00000000..b0aef451 --- /dev/null +++ b/categories/coding/index.html @@ -0,0 +1,5 @@ +coding - 分类 - dingyufan's blog
0%
\ No newline at end of file diff --git a/categories/coding/index.xml b/categories/coding/index.xml new file mode 100644 index 00000000..63fd4326 --- /dev/null +++ b/categories/coding/index.xml @@ -0,0 +1 @@ +coding - 分类 - dingyufan's bloghttps://dingyufan.github.io/categories/coding/coding - 分类 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 30 Apr 2022 11:34:02 +0800JDK8日期时间API导致Dubbo调用StackOverflow错误https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/ \ No newline at end of file diff --git a/categories/coding/page/1/index.html b/categories/coding/page/1/index.html new file mode 100644 index 00000000..ce2f5a07 --- /dev/null +++ b/categories/coding/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/categories/coding/ \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 00000000..c7a399de --- /dev/null +++ b/categories/index.html @@ -0,0 +1,6 @@ +所有分类 - dingyufan's blog
0%
\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 00000000..5ac07adf --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories - 分类 - dingyufan's bloghttps://dingyufan.github.io/categories/Categories - 分类 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000techhttps://dingyufan.github.io/categories/tech/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/categories/tech/codinghttps://dingyufan.github.io/categories/coding/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/categories/coding/ \ No newline at end of file diff --git a/categories/tech/index.html b/categories/tech/index.html new file mode 100644 index 00000000..32ac4370 --- /dev/null +++ b/categories/tech/index.html @@ -0,0 +1,6 @@ +tech - 分类 - dingyufan's blog
0%
\ No newline at end of file diff --git a/categories/tech/index.xml b/categories/tech/index.xml new file mode 100644 index 00000000..b66c9c15 --- /dev/null +++ b/categories/tech/index.xml @@ -0,0 +1 @@ +tech - 分类 - dingyufan's bloghttps://dingyufan.github.io/categories/tech/tech - 分类 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/GitHub Pages + Hugo搭建个人博客https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ \ No newline at end of file diff --git a/categories/tech/page/1/index.html b/categories/tech/page/1/index.html new file mode 100644 index 00000000..51510684 --- /dev/null +++ b/categories/tech/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/categories/tech/ \ No newline at end of file diff --git a/css/style.min.css b/css/style.min.css new file mode 100644 index 00000000..667b1d8d --- /dev/null +++ b/css/style.min.css @@ -0,0 +1,3 @@ +:root{--fi-primary: #1772ee;--fi-secondary: #919191;--fi-success: #13ce66;--fi-info: #0dcaf0;--fi-warning: #ffba00;--fi-danger: #ff4949;--fi-primary-dark: #1066db;--fi-secondary-dark: #848484;--fi-success-dark: #11b75a;--fi-info-dark: #0cb6d8;--fi-warning-dark: #e6a700;--fi-danger-dark: #ff3030;--fi-scroll-mt: calc(3.5rem + .5rem);--fi-breadcrumb-offset: 2.5rem}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[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-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%;scroll-behavior:smooth;overflow:overlay}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}::-webkit-scrollbar{width:0.5rem;height:0.5rem}::-webkit-scrollbar-thumb{background-color:#87878d;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}::-webkit-scrollbar-thumb:hover{background-color:#b1b1ba}::selection{background-color:rgba(53,166,247,0.25)}[data-theme='dark'] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;scrollbar-color:auto;word-wrap:break-word;overflow-wrap:break-word}body::-webkit-scrollbar{width:0.75rem;height:0.75rem;background-color:transparent}body::-webkit-scrollbar-thumb{background-color:transparent;background-clip:content-box;border:2px solid transparent;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem}body[data-scroll]::-webkit-scrollbar-thumb{background-color:#87878d}body[data-theme='dark']{color:#b1b1ba;background-color:#292a2e}iframe{border:0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}[role='button']{cursor:pointer}summary{cursor:pointer}abbr[title]{cursor:help;text-decoration-skip-ink:none}a,a::before,a::after{text-decoration:none;color:#161209}[data-theme='dark'] a,[data-theme='dark'] a::before,[data-theme='dark'] a::after{color:#b1b1ba}a:active,a:hover{color:#2983bb}[data-theme='dark'] a:active,[data-theme='dark'] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0);z-index:-1}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}img{-webkit-border-radius:2.5px;-moz-border-radius:2.5px;border-radius:2.5px}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{display:inline-block;height:1em;width:1em;margin:0 0.05em 0 0.1em;vertical-align:-0.1em}.fixit-icon{display:inline-block;height:1.5em;width:1.5em;line-height:1.5em;position:relative;vertical-align:text-bottom}.details .details-summary{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#b1b1ba;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[data-theme='dark'] .details i.details-icon{color:#909092}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open .details-summary{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.details.open i.details-icon{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:100%;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.cc-window.cc-banner .cc-btn{color:#161209}.cc-window.cc-banner .cc-btn:hover,.cc-window.cc-banner .cc-btn:focus{background-color:#ccc}[data-theme='dark'] .cc-window.cc-banner .cc-btn{color:#161209}[data-theme='dark'] .cc-window.cc-banner .cc-btn:hover,[data-theme='dark'] .cc-window.cc-banner .cc-btn:focus{background-color:#fff}.fixed-button{position:fixed;right:1.5rem;font-size:1rem;line-height:1.5rem;padding:0.5rem 0.625rem;color:#b1b1ba;background-color:#f8f8f8;z-index:100;-webkit-border-radius:1.25rem;-moz-border-radius:1.25rem;border-radius:1.25rem;-webkit-transition:color 0.4s ease;-moz-transition:color 0.4s ease;-o-transition:color 0.4s ease;transition:color 0.4s ease}.blur .fixed-button{-webkit-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[data-theme='dark'] .fixed-button{color:#909092;background-color:#252627}[data-theme='dark'] .fixed-button:hover,[data-theme='dark'] .fixed-button:active{color:#b1b1ba}.back-to-top{bottom:1.5rem}.view-comments{bottom:4.5rem}@keyframes octocat-wave{0%,100%{-webkit-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);-ms-transform:rotate(-25deg);-o-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);-ms-transform:rotate(10deg);-o-transform:rotate(10deg);transform:rotate(10deg)}}.github-corner{position:fixed;top:0;z-index:200}.github-corner :hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{width:3.5rem;height:3.5rem;border:0;color:#fff;fill:#252627}[data-theme='dark'] .github-corner svg{color:#000;fill:#f8f8f8}.github-corner.left{left:0}.github-corner.left svg{-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.github-corner.right{right:0}.noscript-warning{background-color:var(--fi-danger);color:white;font-size:1rem;font-weight:bold;position:fixed;text-align:center;left:0;bottom:0;width:100%;z-index:200}[data-theme='dark'] .noscript-warning{background-color:var(--fi-danger-dark)}.reading-progress-bar{--progress: 0;height:var(--progress-h, 2px);width:var(--progress);background-color:var(--bg-progress, var(--fi-info));position:fixed;z-index:200}[data-theme="dark"] .reading-progress-bar{background-color:var(--bg-progress-dark, var(--fi-info-dark))}.typeit{--ti-cursor-font-family: system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;--ti-cursor-font-size: 16px;--ti-cursor-font-style: normal;--ti-cursor-font-weight: 400;--ti-cursor-line-height: 1.5rem;--ti-cursor-color: #161209;--ti-cursor-transform: translateX(0)}.typeit .highlight{padding:0.375rem;font-size:0.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all;white-space:pre-wrap}[data-theme='dark'] .typeit{--ti-cursor-color: #b1b1ba}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main aside{flex:1;padding-inline:0.5rem}.wrapper main aside:first-child{order:2}.wrapper main.container{display:flex;align-items:flex-start;justify-content:center;padding:0 1rem}.wrapper main.container.container-reverse{flex-direction:row-reverse}.wrapper main.container:has(.home:not(.posts)){align-items:center}header{width:100%;background-color:#f8f8f8;z-index:200;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease}[data-theme='dark'] header{background-color:#252627}header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}[data-theme='dark'] header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1)}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:0.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.header-title .logo{min-height:1.5em;height:1.5em;vertical-align:middle;width:auto}.header-title .header-title-text{margin-left:0.25rem;margin-right:0.25rem}.header-title .header-subtitle{margin-left:0.25rem;font-size:0.6em}.menu{margin:0;padding:0}.menu .menu-item{list-style:none}.menu .menu-item .dropdown-icon{margin-left:0.25rem;font-size:.875em;color:#161209}[data-theme='dark'] .menu .menu-item .dropdown-icon{color:#b1b1ba}.menu .menu-item .dropdown-icon.open::before{content:"\f078"}.menu .menu-item.active>.menu-link,.menu .menu-item.active>.nested-item>.menu-link{font-weight:bold;color:#161209}[data-theme='dark'] .menu .menu-item.active>.menu-link,[data-theme='dark'] .menu .menu-item.active>.nested-item>.menu-link{color:#fff}.menu .menu-item.language-switch,.menu .menu-item.theme-switch{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:1.25rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:transparent;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:0.5rem;right:auto}#header-desktop.open .search .search-toggle{left:1rem}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[data-theme='dark'] .open .search input,[data-theme='dark'] .search.mobile input{color:#b1b1ba;background-color:#363636}[data-theme='dark'] .open .search input::-webkit-input-placeholder,[data-theme='dark'] .search.mobile input::-webkit-input-placeholder{color:#909092}[data-theme='dark'] .open .search input:-moz-placeholder,[data-theme='dark'] .search.mobile input:-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input::-moz-placeholder,[data-theme='dark'] .search.mobile input::-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input:-ms-input-placeholder,[data-theme='dark'] .search.mobile input:-ms-input-placeholder{color:#909092}[data-theme='dark'] .open .search input::placeholder,[data-theme='dark'] .search.mobile input::placeholder{color:#909092}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#b1b1ba}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#b1b1ba}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#b1b1ba}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#b1b1ba}.open .search input::placeholder,.search.mobile input::placeholder{color:#b1b1ba}.open .search .search-button,.search.mobile .search-button{color:#b1b1ba}[data-theme='dark'] .open .search .search-button,[data-theme='dark'] .search.mobile .search-button{color:#909092}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg);-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.theme-switch:hover i{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}#header-desktop{display:block;position:sticky;top:0;height:3.5rem;line-height:3.5rem;box-sizing:border-box}[data-header-desktop='normal'] #header-desktop{position:static}#header-desktop nav{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper{padding:0 2rem 0 MAX(10vh, 3.5rem);height:100%}#header-desktop .header-wrapper[data-github-corner='right']{padding-right:3.5rem}#header-desktop .header-wrapper .header-title{font-size:1.5rem;height:100%}#header-desktop .header-wrapper .menu{display:flex;flex-direction:row;flex-wrap:nowrap;float:right}#header-desktop .header-wrapper .menu>.menu-item:hover .sub-menu{display:block;-webkit-transform:translateX(-0.5rem);-ms-transform:translateX(-0.5rem);-o-transform:translateX(-0.5rem);transform:translateX(-0.5rem)}#header-desktop .header-wrapper .menu>.menu-item.language-switch:hover .sub-menu{-webkit-transform:translateX(calc(1.75rem - 100%));-ms-transform:translateX(calc(1.75rem - 100%));-o-transform:translateX(calc(1.75rem - 100%));transform:translateX(calc(1.75rem - 100%))}#header-desktop .header-wrapper .menu .menu-item{padding:0 0.5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{width:0;margin:0.125rem 0.25rem;padding:0;border-left:1px dashed #dadade}[data-theme='dark'] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#6a6a6c}#header-desktop .header-wrapper .menu .sub-menu{position:absolute;margin:0;padding:0.25rem 0;display:none;top:calc(3.5rem - 0.75rem);border-radius:5px;border:1px solid #f0f0f0;background-color:#f8f8f8;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease;-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}[data-theme='dark'] #header-desktop .header-wrapper .menu .sub-menu{background-color:#252627;border-color:#363636;-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1)}#header-desktop .header-wrapper .menu .sub-menu .menu-item{height:1.75rem;line-height:1.75rem;max-width:15rem;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:sticky;top:0;min-height:3.5rem;line-height:3.5rem}[data-header-mobile='normal'] #header-mobile{position:static}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[data-theme='dark'] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#b1b1ba}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;overflow-y:overlay;max-height:70vh;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}[data-theme='dark'] #header-mobile .header-container .menu{-webkit-box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1);box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1)}#header-mobile .header-container .menu::-webkit-scrollbar{width:0}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem;position:sticky;top:0;background-color:#f8f8f8;z-index:50}[data-theme='dark'] #header-mobile .header-container .menu .search-wrapper{background-color:#252627}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-loading,#header-mobile .header-container .menu .search-clear{right:0.5rem}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:0.75rem}#header-mobile .header-container .menu .menu-item{display:block;position:relative;line-height:2.5rem;padding:0 1rem}#header-mobile .header-container .menu .menu-item:not(.menu-system):hover{background-color:#f2f2f3}[data-theme='dark'] #header-mobile .header-container .menu .menu-item:not(.menu-system):hover{background-color:#535355}#header-mobile .header-container .menu .menu-item .menu-link{display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;-webkit-flex:4;flex:4}#header-mobile .header-container .menu .menu-item .nested-item{display:flex;justify-content:space-between;align-items:center}#header-mobile .header-container .menu .menu-item .nested-item .menu-link{max-width:80%}#header-mobile .header-container .menu .menu-system{display:flex;justify-content:center;gap:0.25rem;position:sticky;bottom:0;line-height:2.5rem;padding:0 1rem;background-color:#f8f8f8}[data-theme='dark'] #header-mobile .header-container .menu .menu-system{background-color:#252627}#header-mobile .header-container .menu .menu-system .menu-system-item{padding-inline:0.5rem}#header-mobile .header-container .menu .menu-system .language-switch{position:relative}#header-mobile .header-container .menu .menu-system .language-switch .language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}#header-mobile .header-container .menu .sub-menu{padding-left:0;display:none}#header-mobile .header-container .menu .sub-menu.open{display:block}#header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#e7e7ea}[data-theme='dark'] #header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#5d5d5f}#header-mobile .header-container .menu.active{display:block}[data-theme='dark'] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;top:3.5rem;z-index:200;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}[data-theme='dark'] .search-dropdown{-webkit-box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1);box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[data-theme='dark'] .search-dropdown .dropdown-menu{background-color:#292a2e}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:0.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:0.875rem;float:right;text-align:right;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e6ebf1}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#384049}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[data-theme='dark'] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:0.5rem 1rem;float:right;font-size:0.8rem;color:#b1b1ba}.search-dropdown .dropdown-menu .search-footer [data-theme='dark']{color:#909092}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::before,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::after{color:#1781b5}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ea517f}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:active,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:hover{color:#619ac3}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}.breadcrumb-container{padding-inline:1rem;font-size:0.75rem;z-index:100}.breadcrumb-container.sticky{position:sticky;top:3.5rem}.breadcrumb-container .breadcrumb{display:flex;flex-wrap:wrap;padding:0.5rem 0;margin:0 auto;list-style:none;border-bottom:1px inset #f0f0f0;background-color:#fff}[data-theme='dark'] .breadcrumb-container .breadcrumb{border-bottom-color:#363636;background-color:#292a2e}.breadcrumb-container .breadcrumb .breadcrumb-item{display:flex}.breadcrumb-container .breadcrumb .breadcrumb-item+.breadcrumb-item::before{content:"/";display:inline-block;padding-inline:0.5rem;color:#b1b1ba}[data-theme='dark'] .breadcrumb-container .breadcrumb .breadcrumb-item+.breadcrumb-item::before{color:#909092}footer{height:auto;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{display:flex;flex-direction:column;font-size:0.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .footer-divider:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}footer .footer-container .footer-line .fixit-icon{top:0.25em}footer .footer-container .footer-line .animate-icon{color:#dc143c;animation:icon-animate 1.33s ease-in-out infinite}footer .footer-container .footer-line .run-times{font-variant-numeric:tabular-nums lining-nums}.blur footer{-webkit-filter:blur(1.5px);filter:blur(1.5px)}@keyframes icon-animate{0%,100%{-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%,30%{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);-o-transform:scale(0.9);transform:scale(0.9)}20%,40%,60%,80%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}50%,70%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}.pagination{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;list-style:none;white-space:nowrap;width:100%;padding:1rem 0}.pagination a{font-size:0.8rem;color:#bfbfbf;letter-spacing:0.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}[data-theme='dark'] .pagination a{color:#b1b1ba}.pagination li{padding:5px;margin:0 10px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[data-theme='dark'] .pagination li:hover a{color:#fff}.pagination li::before,.pagination li::after{position:absolute;content:'';width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[data-theme='dark'] .pagination li::before,[data-theme='dark'] .pagination li::after{background:#fff}.pagination li::before{left:50%}.pagination li::after{right:50%}.pagination li:hover::before,.pagination li:hover::after{width:50%}.pagination li.active a{color:#000}[data-theme='dark'] .pagination li.active a{color:#fff}.pagination li.active::before,.pagination li.active::after{width:50%}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.d-none{display:none !important}.d-none-desktop{display:none}.d-none-mobile{display:block}.ms-1,.mx-1{margin-left:0.25rem !important}.me-1,.mx-1{margin-right:0.25rem !important}.ps-1,.px-1{padding-left:0.25rem !important}.pe-1,.px-1{padding-right:0.25rem !important}.text-primary{color:#1772ee !important}[data-theme='dark'] .text-primary{color:#1066db !important}.text-secondary,.breadcrumb-container .breadcrumb .breadcrumb-item.active{color:#919191 !important}[data-theme='dark'] .text-secondary,[data-theme='dark'] .breadcrumb-container .breadcrumb .breadcrumb-item.active,.breadcrumb-container .breadcrumb [data-theme='dark'] .breadcrumb-item.active{color:#848484 !important}.text-success{color:#13ce66 !important}[data-theme='dark'] .text-success{color:#11b75a !important}.text-info{color:#0dcaf0 !important}[data-theme='dark'] .text-info{color:#0cb6d8 !important}.text-warning{color:#ffba00 !important}[data-theme='dark'] .text-warning{color:#e6a700 !important}.text-danger{color:#ff4949 !important}[data-theme='dark'] .text-danger{color:#ff3030 !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.variant-numeric{font-variant-numeric:tabular-nums lining-nums}@keyframes fi-pulse{from{-webkit-transform:scale3d(1, 1, 1);-ms-transform:scale3d(1, 1, 1);-o-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);-ms-transform:scale3d(1.05, 1.05, 1.05);-o-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}to{-webkit-transform:scale3d(1, 1, 1);-ms-transform:scale3d(1, 1, 1);-o-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.animate__pulse{-webkit-animation-name:fi-pulse !important;animation-name:fi-pulse !important}.page{position:relative}.page .content [id]{scroll-margin-top:var(--fi-scroll-mt)}.blur .page{-webkit-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.8rem;padding-left:0.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:'|';font-weight:bolder;margin-right:0.5rem;color:#2376b7}[data-theme='dark'] .toc .toc-content ul a:first-child::before{color:#1781b5}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f6f8fa}.toc ruby rt{color:#b1b1ba}[data-theme='dark'] .toc ruby{background:#2d333b}[data-theme='dark'] .toc ruby rt{color:#909092}#toc-auto{display:block;position:sticky;top:var(--fi-scroll-mt);box-sizing:border-box;visibility:hidden;z-index:100;word-wrap:break-word;overflow-wrap:break-word}.blur #toc-auto{-webkit-filter:blur(1.5px);filter:blur(1.5px)}[data-header-desktop='normal'] #toc-auto{--fi-scroll-mt: .5rem}#toc-auto .toc-title{margin:0.5rem 0;cursor:pointer;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}#toc-auto .toc-title::before{content:'|';font-weight:bolder;margin-right:0.5rem;color:#f0f0f0}[data-theme='dark'] #toc-auto .toc-title::before{color:#363636}#toc-auto .toc-title i.toc-icon{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto.toc-hidden i.toc-icon{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto .toc-content{overflow-y:scroll;max-height:calc(100vh - 7rem)}#toc-auto .toc-content::-webkit-scrollbar{width:0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2376b7}[data-theme='dark'] #toc-auto .toc-content a.active{color:#1781b5}#toc-auto .toc-content a.active::before{color:#ea517f}[data-theme='dark'] #toc-auto .toc-content a.active::before{color:#619ac3}#toc-static{display:none;margin:0.8rem 0}#toc-static[data-kept='true']{display:block}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 0.75rem;background:#ecf0f5}[data-theme='dark'] #toc-static .toc-title{background:#20242a}#toc-static .toc-content{background-color:#f6f8fa}#toc-static .toc-content>nav>ul{margin:0;padding:0.4rem 1rem 0.4rem 1.8rem}[data-theme='dark'] #toc-static .toc-content{background-color:#2d333b}#toc-static.open .toc-title{background:#e2e9ef}[data-theme='dark'] #toc-static.open .toc-title{background:#262b32}.fixit-decryptor-container{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;text-align:center;margin-top:3rem}.fixit-encryptor-shortcode .fixit-decryptor-container{margin-top:1rem}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input,.fixit-decryptor-container .fixit-encryptor-btn{display:inline-block;box-sizing:border-box;outline:none;color:#161209;border:1px solid #cacaca;border-radius:5px;-webkit-transition:all 0.1s ease-out;-moz-transition:all 0.1s ease-out;-o-transition:all 0.1s ease-out;transition:all 0.1s ease-out;box-shadow:0px 0px 5px 0px #cacaca}.fixit-decryptor-container #fixit-decryptor-input:active,.fixit-decryptor-container #fixit-decryptor-input:focus,.fixit-decryptor-container #fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-decryptor-input:active,.fixit-decryptor-container .fixit-decryptor-input:focus,.fixit-decryptor-container .fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-encryptor-btn:active,.fixit-decryptor-container .fixit-encryptor-btn:focus,.fixit-decryptor-container .fixit-encryptor-btn:hover{color:#2371a2;border-color:#2983bb;box-shadow:0px 0px 5px 0px #6bb2df}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:active,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:hover{color:#fff;border-color:#fff;box-shadow:0px 0px 5px 0px #ccc}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{color:#b1b1ba;border-color:#5c5c5c;box-shadow:0px 0px 5px 0px #5c5c5c}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input{width:clamp(50%, 400px, 100%);height:3rem;padding-left:1rem;padding-right:1rem;background-color:#fff}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input{background-color:#292a2e}.fixit-decryptor-container .fixit-encryptor-btn{cursor:pointer;-webkit-transition:all 0.1s ease-out;-moz-transition:all 0.1s ease-out;-o-transition:all 0.1s ease-out;transition:all 0.1s ease-out;padding:0.6rem 1rem;background-color:#f8f8f8}[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{background-color:#252627}.single .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-title .icon-repost{color:var(--fi-success);display:inline-block;width:max-content;margin-right:0.25rem}[data-theme='dark'] .single .single-title .icon-repost{color:var(--fi-success-dark)}.single .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%}.single .post-meta{font-size:0.875rem;color:#b1b1ba}.single .post-meta span{display:inline-block}[data-theme='dark'] .single .post-meta{color:#909092}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-meta a,[data-theme='dark'] .single .post-meta a::before,[data-theme='dark'] .single .post-meta a::after{color:#b1b1ba}.single .post-meta a:active,.single .post-meta a:hover{color:#ea517f}[data-theme='dark'] .single .post-meta a:active,[data-theme='dark'] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .post-meta .author img.avatar{width:1.3rem;height:1.3rem;border-radius:50%;vertical-align:text-bottom;border:0.25px solid #f0f0f0;box-sizing:border-box;object-position:center;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}[data-theme='dark'] .single .post-meta .author img.avatar{border-color:#363636}.single .featured-image{margin:0.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single #content[data-end-flag]:not([data-password])::after{content:attr(data-end-flag);display:block;text-align:center;color:#b1b1ba;font-size:15px;padding:5px}.single .content>h1,.single .content>h2{font-size:1.5rem}.single .content>h1 code,.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[data-theme='dark'] .single .content h2,[data-theme='dark'] .single .content h3,[data-theme='dark'] .single .content h4,[data-theme='dark'] .single .content h5,[data-theme='dark'] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:'|';margin-right:0.3125rem;color:#2376b7}[data-theme='dark'] .single .content>h2>.header-mark::before,[data-theme='dark'] .single .content>h3>.header-mark::before,[data-theme='dark'] .single .content>h4>.header-mark::before,[data-theme='dark'] .single .content>h5>.header-mark::before,[data-theme='dark'] .single .content>h6>.header-mark::before{color:#1781b5}.single .content>h2>.header-mark::before{content:'#'}.single .content p{margin:0.5rem 0}.single .content b,.single .content strong{font-weight:bold}[data-theme='dark'] .single .content b,[data-theme='dark'] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content a,[data-theme='dark'] .single .content a::before,[data-theme='dark'] .single .content a::after{color:#1781b5}.single .content a:active,.single .content a:hover{color:#ea517f}[data-theme='dark'] .single .content a:active,[data-theme='dark'] .single .content a:hover{color:#619ac3}.single .content a{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}[data-theme='dark'] .single .content a b,[data-theme='dark'] .single .content a strong{color:#1781b5}.single .content [data-theme='dark'] a:hover b,.single .content [data-theme='dark'] a:hover strong{color:#619ac3}.single .content ul,.single .content ol{margin:0.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f6f8fa}.single .content ruby rt{color:#b1b1ba}[data-theme='dark'] .single .content ruby{background:#2d333b}[data-theme='dark'] .single .content ruby rt{color:#909092}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[data-theme='dark'] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:0.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[data-theme='dark'] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[data-theme='dark'] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background:#f9f9f9}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background-color:#2d333c}.single .content .table-wrapper>table:not([class]) tbody tr:hover{background:#f4f4f4}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:hover{background-color:#333a44}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:0.3rem 1rem;border:1px solid #e8e8e8}[data-theme='dark'] .single .content .table-wrapper>table th,[data-theme='dark'] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content img:not([data-h]){height:auto}.single .content img.version{height:1.25em;vertical-align:text-bottom}.single .content svg{max-width:100%}.single .content figure{margin:0.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:0.5rem;margin:0 auto;font-size:0.875rem;color:#969696}.single .content figure img{display:block;margin:0 auto;overflow:hidden}.single .content figure img:not([width]){width:100%}.single .content blockquote{display:block;border-left:0.25em solid #f0f0f0;color:#697681;padding:0 1em;margin:1rem 0}.single .content blockquote ul,.single .content blockquote ol{padding-left:1.5em}[data-theme='dark'] .single .content blockquote{color:#9ba3aa;border-left-color:#363636}.single .content blockquote a,.single .content blockquote a::before,.single .content blockquote a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content blockquote a,[data-theme='dark'] .single .content blockquote a::before,[data-theme='dark'] .single .content blockquote a::after{color:#b1b1ba}.single .content blockquote a:active,.single .content blockquote a:hover{color:#ea517f}[data-theme='dark'] .single .content blockquote a:active,[data-theme='dark'] .single .content blockquote a:hover{color:#fff}.single .content .footnotes{color:#b1b1ba}[data-theme='dark'] .single .content .footnotes{color:#909092}.single .content .footnotes p{margin:0.25rem 0}.single .content code{padding:0.2em 0.4em;margin:0;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f;background-color:rgba(175,184,193,0.2);text-decoration:inherit;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:auto;-ms-line-break:auto;line-break:auto}[data-theme='dark'] .single .content code{color:#adbac7;background-color:rgba(99,110,123,0.4)}.single .content pre{margin:0;line-height:1.45em;padding:0.5rem;overflow:auto;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;background-color:#f6f8fa}[data-theme='dark'] .single .content pre{background-color:#2d333b}.single .content pre code{padding:0;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}[data-theme='dark'] .single .content pre code{background-color:transparent}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content .highlight,.single .content .gist{font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{margin:0.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.4em;color:#9c9c9c;background-color:#ecf0f5;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-transition:border-radius 0.2s ease;-moz-transition:border-radius 0.2s ease;-o-transition:border-radius 0.2s ease;transition:border-radius 0.2s ease}[data-theme='dark'] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background-color:#20242a}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:0.4rem}.single .content .highlight>.chroma .code-header .code-title .arrow{padding:0 0.2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .code-header .code-title .title-inner{position:absolute;left:50%;transform:translateX(-50%)}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:0.2rem;content:'Code'}.single .content .highlight>.chroma .code-header .ellipses{padding:0.4rem}.single .content .highlight>.chroma .code-header .edit,.single .content .highlight>.chroma .code-header .copy{display:none;padding:0.4rem}.single .content .highlight>.chroma .code-header .edit:hover,.single .content .highlight>.chroma .code-header .copy:hover{cursor:pointer;color:#2983bb}[data-theme='dark'] .single .content .highlight>.chroma .code-header .edit:hover,[data-theme='dark'] .single .content .highlight>.chroma .code-header .copy:hover{color:#fff}.single .content .highlight>.chroma .code-header.language-abap .code-title::after{content:"ABAP"}.single .content .highlight>.chroma .code-header.language-abnf .code-title::after{content:"ABNF"}.single .content .highlight>.chroma .code-header.language-as .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-actionscript .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-as3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-actionscript3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-ada .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada95 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada2005 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-al .code-title::after{content:"AL"}.single .content .highlight>.chroma .code-header.language-ng2 .code-title::after{content:"Angular2"}.single .content .highlight>.chroma .code-header.language-antlr .code-title::after{content:"ANTLR"}.single .content .highlight>.chroma .code-header.language-apacheconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-aconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apache .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apl .code-title::after{content:"APL"}.single .content .highlight>.chroma .code-header.language-applescript .code-title::after{content:"AppleScript"}.single .content .highlight>.chroma .code-header.language-arduino .code-title::after{content:"Arduino"}.single .content .highlight>.chroma .code-header.language-armasm .code-title::after{content:"ArmAsm"}.single .content .highlight>.chroma .code-header.language-awk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-gawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-mawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-nawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-ballerina .code-title::after{content:"Ballerina"}.single .content .highlight>.chroma .code-header.language-make .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-mf .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bsdmake .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-sh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-ksh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-zsh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-bash-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-console .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-shell-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-bat .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-batch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-dosbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-winbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-bib .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bibtex .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bicep .code-title::after{content:"Bicep"}.single .content .highlight>.chroma .code-header.language-blitzbasic .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-b3d .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bplus .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bnf .code-title::after{content:"BNF"}.single .content .highlight>.chroma .code-header.language-brainfuck .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-bf .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-csharp .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-c\# .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-c\+\+ .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-caddyfile .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddy .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddyfile-directives .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddyfile-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddy-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-capnp .code-title::after{content:"Cap'n Proto"}.single .content .highlight>.chroma .code-header.language-cassandra .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-cql .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-ceylon .code-title::after{content:"Ceylon"}.single .content .highlight>.chroma .code-header.language-cfengine3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cf3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cfs .code-title::after{content:"cfstatement"}.single .content .highlight>.chroma .code-header.language-chai .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-chaiscript .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-cheetah .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-spitfire .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-clj .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-cmake .code-title::after{content:"CMake"}.single .content .highlight>.chroma .code-header.language-cobol .code-title::after{content:"COBOL"}.single .content .highlight>.chroma .code-header.language-coffee-script .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffee .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-common-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-cl .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-coq .code-title::after{content:"Coq"}.single .content .highlight>.chroma .code-header.language-cr .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-crystal .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-cython .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyx .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyrex .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-d .code-title::after{content:"D"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-udiff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-django .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-jinja .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-docker .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dockerfile .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dtd .code-title::after{content:"DTD"}.single .content .highlight>.chroma .code-header.language-dylan .code-title::after{content:"Dylan"}.single .content .highlight>.chroma .code-header.language-ebnf .code-title::after{content:"EBNF"}.single .content .highlight>.chroma .code-header.language-elixir .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-ex .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-exs .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-elm .code-title::after{content:"Elm"}.single .content .highlight>.chroma .code-header.language-emacs .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-elisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-emacs-lisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-factor .code-title::after{content:"Factor"}.single .content .highlight>.chroma .code-header.language-fennel .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fnl .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fish .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-fishshell .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-forth .code-title::after{content:"Forth"}.single .content .highlight>.chroma .code-header.language-fortran .code-title::after{content:"Fortran"}.single .content .highlight>.chroma .code-header.language-fortranfixed .code-title::after{content:"FortranFixed"}.single .content .highlight>.chroma .code-header.language-fsharp .code-title::after{content:"FSharp"}.single .content .highlight>.chroma .code-header.language-gas .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-asm .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-gdscript .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-gd .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-html\+genshi .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-html\+kid .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-genshitext .code-title::after{content:"Genshi Text"}.single .content .highlight>.chroma .code-header.language-cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-glsl .code-title::after{content:"GLSL"}.single .content .highlight>.chroma .code-header.language-gnuplot .code-title::after{content:"Gnuplot"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-golang .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-go-text-template .code-title::after{content:"Go Text Template"}.single .content .highlight>.chroma .code-header.language-graphql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-graphqls .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-gql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-groff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-nroff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-man .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-handlebars .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-hbs .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hs .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hx .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-haxe .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hxsl .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hcl .code-title::after{content:"HCL"}.single .content .highlight>.chroma .code-header.language-hexdump .code-title::after{content:"Hexdump"}.single .content .highlight>.chroma .code-header.language-hlb .code-title::after{content:"HLB"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-hylang .code-title::after{content:"Hy"}.single .content .highlight>.chroma .code-header.language-idris .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-idr .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-igor .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-igorpro .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-ini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-cfg .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-dosini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-io .code-title::after{content:"Io"}.single .content .highlight>.chroma .code-header.language-j .code-title::after{content:"J"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-julia .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jl .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jungle .code-title::after{content:"Jungle"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-lighty .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-lighttpd .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-llvm .code-title::after{content:"LLVM"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-mako .code-title::after{content:"Mako"}.single .content .highlight>.chroma .code-header.language-md .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mkd .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mason .code-title::after{content:"Mason"}.single .content .highlight>.chroma .code-header.language-mathematica .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-mma .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-nb .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-mcfunction .code-title::after{content:"mcfunction"}.single .content .highlight>.chroma .code-header.language-meson .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-meson\.build .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-metal .code-title::after{content:"Metal"}.single .content .highlight>.chroma .code-header.language-minizinc .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-MZN .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mzn .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mlir .code-title::after{content:"MLIR"}.single .content .highlight>.chroma .code-header.language-modula2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-m2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-monkeyc .code-title::after{content:"MonkeyC"}.single .content .highlight>.chroma .code-header.language-morrowind .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-mwscript .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-myghty .code-title::after{content:"Myghty"}.single .content .highlight>.chroma .code-header.language-mysql .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-mariadb .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-nasm .code-title::after{content:"NASM"}.single .content .highlight>.chroma .code-header.language-newspeak .code-title::after{content:"Newspeak"}.single .content .highlight>.chroma .code-header.language-nginx .code-title::after{content:"Nginx configuration file"}.single .content .highlight>.chroma .code-header.language-nim .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nimrod .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nixos .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-nix .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-objective-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-obj-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objc .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-ocaml .code-title::after{content:"OCaml"}.single .content .highlight>.chroma .code-header.language-octave .code-title::after{content:"Octave"}.single .content .highlight>.chroma .code-header.language-ones .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-onesenterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S:Enterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-openedge .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-abl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-progress .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openedgeabl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openscad .code-title::after{content:"OpenSCAD"}.single .content .highlight>.chroma .code-header.language-org .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-orgmode .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-pacmanconf .code-title::after{content:"PacmanConf"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-pl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php3 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php4 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php5 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-phtml .code-title::after{content:"PHTML"}.single .content .highlight>.chroma .code-header.language-pig .code-title::after{content:"Pig"}.single .content .highlight>.chroma .code-header.language-pkgconfig .code-title::after{content:"PkgConfig"}.single .content .highlight>.chroma .code-header.language-plpgsql .code-title::after{content:"PL/pgSQL"}.single .content .highlight>.chroma .code-header.language-text .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plain .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-no-highlight .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plutus-core .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-plc .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-pony .code-title::after{content:"Pony"}.single .content .highlight>.chroma .code-header.language-postgresql .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postgres .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postscript .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-postscr .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-pov .code-title::after{content:"POVRay"}.single .content .highlight>.chroma .code-header.language-powerquery .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-pq .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-powershell .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-posh .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-ps1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psm1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psd1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-prolog .code-title::after{content:"Prolog"}.single .content .highlight>.chroma .code-header.language-promql .code-title::after{content:"PromQL"}.single .content .highlight>.chroma .code-header.language-protobuf .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-proto .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-puppet .code-title::after{content:"Puppet"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-sage .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-py2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-qbasic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-basic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-qml .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-qbs .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-splus .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-s .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-racket .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-rkt .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-ragel .code-title::after{content:"Ragel"}.single .content .highlight>.chroma .code-header.language-perl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-pl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-raku .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-jsx .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-react .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-reason .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-reasonml .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-registry .code-title::after{content:"reg"}.single .content .highlight>.chroma .code-header.language-rst .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rest .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-restructuredtext .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-arexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-rb .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-duby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-rs .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-sas .code-title::after{content:"SAS"}.single .content .highlight>.chroma .code-header.language-sass .code-title::after{content:"Sass"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scheme .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scm .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scilab .code-title::after{content:"Scilab"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"SCSS"}.single .content .highlight>.chroma .code-header.language-sieve .code-title::after{content:"Sieve"}.single .content .highlight>.chroma .code-header.language-smalltalk .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-squeak .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-st .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-smarty .code-title::after{content:"Smarty"}.single .content .highlight>.chroma .code-header.language-snobol .code-title::after{content:"Snobol"}.single .content .highlight>.chroma .code-header.language-sol .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-solidity .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-sparql .code-title::after{content:"SPARQL"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-squidconf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid\.conf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-sml .code-title::after{content:"Standard ML"}.single .content .highlight>.chroma .code-header.language-stylus .code-title::after{content:"Stylus"}.single .content .highlight>.chroma .code-header.language-svelte .code-title::after{content:"Svelte"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-systemd .code-title::after{content:"SYSTEMD"}.single .content .highlight>.chroma .code-header.language-systemverilog .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-sv .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-tablegen .code-title::after{content:"TableGen"}.single .content .highlight>.chroma .code-header.language-tasm .code-title::after{content:"TASM"}.single .content .highlight>.chroma .code-header.language-tcl .code-title::after{content:"Tcl"}.single .content .highlight>.chroma .code-header.language-tcsh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-csh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-termcap .code-title::after{content:"Termcap"}.single .content .highlight>.chroma .code-header.language-terminfo .code-title::after{content:"Terminfo"}.single .content .highlight>.chroma .code-header.language-terraform .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tf .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-thrift .code-title::after{content:"Thrift"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-tradingview .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tv .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tsql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-t-sql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-turing .code-title::after{content:"Turing"}.single .content .highlight>.chroma .code-header.language-turtle .code-title::after{content:"Turtle"}.single .content .highlight>.chroma .code-header.language-twig .code-title::after{content:"Twig"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-tsx .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typoscript .code-title::after{content:"TypoScript"}.single .content .highlight>.chroma .code-header.language-typoscriptcssdata .code-title::after{content:"TypoScriptCssData"}.single .content .highlight>.chroma .code-header.language-typoscripthtmldata .code-title::after{content:"TypoScriptHtmlData"}.single .content .highlight>.chroma .code-header.language-v .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vlang .code-title::after{content:"V"}.single .content .highlight>.chroma .code-header.language-vsh .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vshell .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vb\.net .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-vbnet .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-verilog .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vhdl .code-title::after{content:"VHDL"}.single .content .highlight>.chroma .code-header.language-vim .code-title::after{content:"VimL"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-vuejs .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-whiley .code-title::after{content:"Whiley"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-xorg\.conf .code-title::after{content:"Xorg"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yang .code-title::after{content:"YANG"}.single .content .highlight>.chroma .code-header.language-zed .code-title::after{content:"Zed"}.single .content .highlight>.chroma .code-header.language-zig .code-title::after{content:"Zig"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow:hidden;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma table{border-spacing:0;width:auto;overflow:auto;display:block;background-color:#f6f8fa}[data-theme='dark'] .single .content .highlight>.chroma table{background-color:#2d333b}.single .content .highlight>.chroma table td{vertical-align:top;padding:0}.single .content .highlight>.chroma table pre{padding:0.25rem;outline-offset:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .highlight>.chroma table .ln{min-width:1.25rem}.single .content .highlight>.chroma table .lntd:first-child{min-width:1.6rem;text-align:right;position:sticky;left:0}.single .content .highlight>.chroma table .lntd:first-child pre{-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}.single .content .highlight>.chroma table .lntd:last-child{width:100%}.single .content .highlight>.chroma table .lntd:last-child pre{padding-left:0.5rem;padding-right:0.5rem}.single .content .highlight>.chroma table .lntd:last-child code{width:100%}.single .content .highlight>.chroma.open .code-header{background-color:#e2e9ef;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}[data-theme='dark'] .single .content .highlight>.chroma.open .code-header{background-color:#262b32}.single .content .highlight>.chroma.open .table-wrapper{max-height:100%;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .edit,.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .hl{display:block;background-color:#fff8c5;box-shadow:-0.5rem 0 0 #fff8c5,0.5rem 0 0 #fff8c5}[data-theme='dark'] .single .content .highlight .hl{background-color:rgba(174,124,20,0.15);box-shadow:-0.5rem 0 0 rgba(174,124,20,0.15),0.5rem 0 0 rgba(174,124,20,0.15)}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .gs{font-weight:bold}.single .content .highlight .ge{font-style:italic}.single .content .highlight .ln{padding-right:0.5rem;display:inline-block;min-width:1.1rem;text-align:right}.single .content .highlight .lnt,.single .content .highlight .ln{color:#b1b1ba}[data-theme='dark'] .single .content .highlight .lnt,[data-theme='dark'] .single .content .highlight .ln{color:#909092}.single .content .highlight .err{font-style:italic;border-bottom:1px dotted #dc3545}.single .content .highlight .gd{background-color:#ffebe9}[data-theme='dark'] .single .content .highlight .gd{background-color:#78191b}.single .content .highlight .gi{background-color:#dafbe1}[data-theme='dark'] .single .content .highlight .gi{background-color:#1b4721}.single .content .highlight .err{color:#dc3545}.single .content .highlight .k{color:#cf222e}.single .content .highlight .kc{color:#0550ae}.single .content .highlight .kd{color:#cf222e}.single .content .highlight .kn{color:#cf222e}.single .content .highlight .kp{color:#cf222e}.single .content .highlight .kr{color:#cf222e}.single .content .highlight .kt{color:#cf222e}.single .content .highlight .n{color:#24292f}.single .content .highlight .na{color:#0550ae}.single .content .highlight .nb{color:#0550ae}.single .content .highlight .bp{color:#24292f}.single .content .highlight .nc{color:#8250df}.single .content .highlight .no{color:#cf222e}.single .content .highlight .nd{color:#8250df}.single .content .highlight .ni{color:#0550ae}.single .content .highlight .ne{color:#0550ae}.single .content .highlight .nf{color:#0550ae}.single .content .highlight .fm{color:#0550ae}.single .content .highlight .nl{color:#0550ae}.single .content .highlight .nn{color:#8250df}.single .content .highlight .nx{color:#0550ae}.single .content .highlight .py{color:#0550ae}.single .content .highlight .nt{color:#116329}.single .content .highlight .nv{color:#953800}.single .content .highlight .vc{color:#0550ae}.single .content .highlight .vg{color:#0550ae}.single .content .highlight .vi{color:#0550ae}.single .content .highlight .vm{color:#0550ae}.single .content .highlight .l{color:#0550ae}.single .content .highlight .ld{color:#0a3069}.single .content .highlight .s{color:#0a3069}.single .content .highlight .sa{color:#0a3069}.single .content .highlight .sb{color:#0a3069}.single .content .highlight .sc{color:#0a3069}.single .content .highlight .dl{color:#0a3069}.single .content .highlight .sd{color:#0a3069}.single .content .highlight .s2{color:#0a3069}.single .content .highlight .se{color:#0a3069}.single .content .highlight .sh{color:#0a3069}.single .content .highlight .si{color:#0a3069}.single .content .highlight .sx{color:#0a3069}.single .content .highlight .sr{color:#0a3069}.single .content .highlight .s1{color:#0a3069}.single .content .highlight .ss{color:#0a3069}.single .content .highlight .m{color:#0550ae}.single .content .highlight .mb{color:#0550ae}.single .content .highlight .mf{color:#0550ae}.single .content .highlight .mh{color:#0550ae}.single .content .highlight .mi{color:#0550ae}.single .content .highlight .il{color:#0550ae}.single .content .highlight .mo{color:#0550ae}.single .content .highlight .o{color:#cf222e}.single .content .highlight .ow{color:#cf222e}.single .content .highlight .p{color:#24292f}.single .content .highlight .c{color:#6e7781}.single .content .highlight .ch{color:#6e7781}.single .content .highlight .cm{color:#6e7781}.single .content .highlight .c1{color:#6e7781}.single .content .highlight .cs{color:#6e7781}.single .content .highlight .cp{color:#0550ae}.single .content .highlight .cpf{color:#6e7781}.single .content .highlight .g{color:#24292f}.single .content .highlight .gd{color:#82071e}.single .content .highlight .ge{color:#24292f}.single .content .highlight .gr{color:#dc3545}.single .content .highlight .gh{color:#24292f}.single .content .highlight .gi{color:#116329}.single .content .highlight .go{color:#24292f}.single .content .highlight .gp{color:#24292f}.single .content .highlight .gs{color:#24292f}.single .content .highlight .gu{color:#24292f}.single .content .highlight .gt{color:#dc3545}.single .content .highlight .gl{color:#24292f}.single .content .highlight .w{color:#24292f}.single .content .highlight .x{color:#24292f}[data-theme='dark'] .single .content .highlight .err{color:#dc3545}[data-theme='dark'] .single .content .highlight .k{color:#f47067}[data-theme='dark'] .single .content .highlight .kc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .kd{color:#f47067}[data-theme='dark'] .single .content .highlight .kn{color:#f47067}[data-theme='dark'] .single .content .highlight .kp{color:#f47067}[data-theme='dark'] .single .content .highlight .kr{color:#f47067}[data-theme='dark'] .single .content .highlight .kt{color:#f47067}[data-theme='dark'] .single .content .highlight .n{color:#adbac7}[data-theme='dark'] .single .content .highlight .na{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nb{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .bp{color:#adbac7}[data-theme='dark'] .single .content .highlight .nc{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .no{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nd{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .ni{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ne{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nf{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .fm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nl{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nn{color:#f47067}[data-theme='dark'] .single .content .highlight .nx{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .py{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nt{color:#8ddb8c}[data-theme='dark'] .single .content .highlight .nv{color:#f69d50}[data-theme='dark'] .single .content .highlight .vc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vg{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .l{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ld{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sa{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sb{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sc{color:#96d0ff}[data-theme='dark'] .single .content .highlight .dl{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sd{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s2{color:#96d0ff}[data-theme='dark'] .single .content .highlight .se{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sh{color:#96d0ff}[data-theme='dark'] .single .content .highlight .si{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sx{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sr{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s1{color:#96d0ff}[data-theme='dark'] .single .content .highlight .ss{color:#96d0ff}[data-theme='dark'] .single .content .highlight .m{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mb{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mf{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mh{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .il{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mo{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .o{color:#f47067}[data-theme='dark'] .single .content .highlight .ow{color:#f47067}[data-theme='dark'] .single .content .highlight .p{color:#adbac7}[data-theme='dark'] .single .content .highlight .c{color:#768390}[data-theme='dark'] .single .content .highlight .ch{color:#768390}[data-theme='dark'] .single .content .highlight .cm{color:#768390}[data-theme='dark'] .single .content .highlight .c1{color:#768390}[data-theme='dark'] .single .content .highlight .cs{color:#768390}[data-theme='dark'] .single .content .highlight .cp{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .cpf{color:#768390}[data-theme='dark'] .single .content .highlight .g{color:#adbac7}[data-theme='dark'] .single .content .highlight .gd{color:#ffd8d3}[data-theme='dark'] .single .content .highlight .ge{color:#adbac7}[data-theme='dark'] .single .content .highlight .gr{color:#dc3545}[data-theme='dark'] .single .content .highlight .gh{color:#adbac7}[data-theme='dark'] .single .content .highlight .gi{color:#b4f1b4}[data-theme='dark'] .single .content .highlight .go{color:#adbac7}[data-theme='dark'] .single .content .highlight .gp{color:#adbac7}[data-theme='dark'] .single .content .highlight .gs{color:#adbac7}[data-theme='dark'] .single .content .highlight .gu{color:#adbac7}[data-theme='dark'] .single .content .highlight .gt{color:#dc3545}[data-theme='dark'] .single .content .highlight .gl{color:#adbac7}[data-theme='dark'] .single .content .highlight .w{color:#adbac7}[data-theme='dark'] .single .content .highlight .x{color:#adbac7}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-data{background-color:transparent}.single .content .gist .gist-meta{padding:0.4rem 0.8rem;background-color:#e6ebf1}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content .gist .gist-meta a,[data-theme='dark'] .single .content .gist .gist-meta a::before,[data-theme='dark'] .single .content .gist .gist-meta a::after{color:#1781b5}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ea517f}[data-theme='dark'] .single .content .gist .gist-meta a:active,[data-theme='dark'] .single .content .gist .gist-meta a:hover{color:#619ac3}[data-theme='dark'] .single .content .gist .gist-meta{background-color:#22262d}.single .content .gist .table-wrapper .highlight,.single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#f6f8fa}[data-theme='dark'] .single .content .gist .table-wrapper .highlight,[data-theme='dark'] .single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#2d333b}[data-theme='dark'] .single .content .gist{--color-fg-default: #adbac7;--color-prettylights-syntax-comment: #768390;--color-prettylights-syntax-constant: #6cb6ff;--color-prettylights-syntax-entity: #dcbdfb;--color-prettylights-syntax-storage-modifier-import: #adbac7;--color-prettylights-syntax-entity-tag: #8ddb8c;--color-prettylights-syntax-keyword: #f47067;--color-prettylights-syntax-string: #96d0ff;--color-prettylights-syntax-variable: #f69d50;--color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;--color-prettylights-syntax-invalid-illegal-text: #cdd9e5;--color-prettylights-syntax-invalid-illegal-bg: #922323;--color-prettylights-syntax-carriage-return-text: #cdd9e5;--color-prettylights-syntax-carriage-return-bg: #ad2e2c;--color-prettylights-syntax-string-regexp: #8ddb8c;--color-prettylights-syntax-markup-list: #eac55f;--color-prettylights-syntax-markup-heading: #316dca;--color-prettylights-syntax-markup-italic: #adbac7;--color-prettylights-syntax-markup-bold: #adbac7;--color-prettylights-syntax-markup-deleted-text: #ffd8d3;--color-prettylights-syntax-markup-deleted-bg: #78191b;--color-prettylights-syntax-markup-inserted-text: #b4f1b4;--color-prettylights-syntax-markup-inserted-bg: #1b4721;--color-prettylights-syntax-markup-changed-text: #ffddb0;--color-prettylights-syntax-markup-changed-bg: #682d0f;--color-prettylights-syntax-markup-ignored-text: #adbac7;--color-prettylights-syntax-markup-ignored-bg: #255ab2;--color-prettylights-syntax-meta-diff-range: #dcbdfb;--color-prettylights-syntax-brackethighlighter-angle: #768390;--color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;--color-prettylights-syntax-constant-other-reference-link: #96d0ff}[data-theme='dark'] .single .content .gist .blob-num,[data-theme='dark'] .single .content .gist .blob-code-inner{color:val(--color-fg-default)}[data-theme='dark'] .single .content .gist .pl-c{color:var(--color-prettylights-syntax-comment)}[data-theme='dark'] .single .content .gist .pl-c1,[data-theme='dark'] .single .content .gist .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}[data-theme='dark'] .single .content .gist .pl-e,[data-theme='dark'] .single .content .gist .pl-en{color:var(--color-prettylights-syntax-entity)}[data-theme='dark'] .single .content .gist .pl-smi,[data-theme='dark'] .single .content .gist .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}[data-theme='dark'] .single .content .gist .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}[data-theme='dark'] .single .content .gist .pl-k{color:var(--color-prettylights-syntax-keyword)}[data-theme='dark'] .single .content .gist .pl-s,[data-theme='dark'] .single .content .gist .pl-pds,[data-theme='dark'] .single .content .gist .pl-s .pl-pse .pl-s1,[data-theme='dark'] .single .content .gist .pl-sr,[data-theme='dark'] .single .content .gist .pl-sr .pl-cce,[data-theme='dark'] .single .content .gist .pl-sr .pl-sre,[data-theme='dark'] .single .content .gist .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}[data-theme='dark'] .single .content .gist .pl-v,[data-theme='dark'] .single .content .gist .pl-smw{color:var(--color-prettylights-syntax-variable)}[data-theme='dark'] .single .content .gist .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}[data-theme='dark'] .single .content .gist .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}[data-theme='dark'] .single .content .gist .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}[data-theme='dark'] .single .content .gist .pl-c2::before{content:'^M'}[data-theme='dark'] .single .content .gist .pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}[data-theme='dark'] .single .content .gist .pl-ml{color:var(--color-prettylights-syntax-markup-list)}[data-theme='dark'] .single .content .gist .pl-mh,[data-theme='dark'] .single .content .gist .pl-mh .pl-en,[data-theme='dark'] .single .content .gist .pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}[data-theme='dark'] .single .content .gist .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}[data-theme='dark'] .single .content .gist .pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}[data-theme='dark'] .single .content .gist .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}[data-theme='dark'] .single .content .gist .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}[data-theme='dark'] .single .content .gist .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}[data-theme='dark'] .single .content .gist .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}[data-theme='dark'] .single .content .gist .pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}[data-theme='dark'] .single .content .gist .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}[data-theme='dark'] .single .content .gist .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}[data-theme='dark'] .single .content .gist .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.single .content .admonition{position:relative;margin:1rem 0;padding:0 0.75rem;border-left:.25rem solid;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-color:rgba(68,138,255,0.1);border-left-color:#448aff}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:0.25rem 1.8rem;border-bottom:1px solid;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .admonition .admonition-content{padding:0.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;position:absolute;top:0.6rem;left:0.4rem}.single .content .admonition i.details-icon{position:absolute;top:0.6rem;right:0.3rem}.single .content .admonition .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition i.icon{color:#448aff}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1);border-left-color:#00b0ff}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{background-color:rgba(0,184,212,0.1);border-left-color:#00b8d4}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1);border-left-color:#00bfa5}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{background-color:rgba(0,200,83,0.1);border-left-color:#00c853}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{background-color:rgba(100,221,23,0.1);border-left-color:#64dd17}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1);border-left-color:#ff9100}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1);border-left-color:#ff5252}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1);border-left-color:#ff1744}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1);border-left-color:#f50057}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{background-color:rgba(101,31,255,0.1);border-left-color:#651fff}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1);border-left-color:#9e9e9e}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition:last-child{margin-bottom:0.75rem}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content .card-link{position:relative;display:block;margin:0.5rem auto;box-sizing:border-box;width:clamp(50%, 400px, 100%);max-width:100%;overflow:hidden;text-decoration:none;border:none;-webkit-border-radius:.75rem;-moz-border-radius:.75rem;border-radius:.75rem}.single .content .cl-backdrop{position:absolute;top:0.75rem;bottom:0.75rem;left:0;right:0;background-image:var(--cl-bg-url);background-repeat:no-repeat;filter:blur(0.5rem);opacity:0.5;background-size:contain;background-position:center}.single .content .cl-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0.75rem;background-color:rgba(245,245,245,0.88)}.single .content .cl-text{overflow:hidden}.single .content .cl-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;max-height:calc(1rem * 1.25 * 2);font-size:1rem;font-weight:500;line-height:1.25;color:#161209}.single .content .cl-meta{display:flex;align-items:center;margin-top:0.25rem;font-size:0.825rem;color:#b1b1ba}.single .content .cl-icon-link{width:1rem;height:1rem;flex-shrink:0;margin-right:0.25rem}.single .content .cl-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.single .content .cl-icon-globe{width:4rem;height:4rem;flex-shrink:0;margin-left:0.25rem}[data-theme='dark'] .single .content .cl-content{background-color:rgba(61,62,65,0.88)}[data-theme='dark'] .single .content .cl-title{color:#b1b1ba}[data-theme='dark'] .single .content .cl-meta{color:#909092}.single .content .blockquote-center{border-left:none;margin:40px 0;padding:0;position:relative;text-align:center;color:initial}.single .content .blockquote-center::after,.single .content .blockquote-center::before{left:0;line-height:1;opacity:0.6;position:absolute;width:100%}.single .content .blockquote-center::before{border-top:1px solid #f0f0f0;text-align:left;top:-20px;content:'\f10d';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::before{border-top-color:#363636}.single .content .blockquote-center::after{border-bottom:1px solid #f0f0f0;bottom:-20px;text-align:right;content:'\f10e';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::after{border-bottom-color:#363636}.single .content .echarts{margin:0.5rem 0;text-align:center}[data-theme='dark'] .single .content iframe.instagram-media{border:none !important}.single .content .mapbox{margin:0.5rem 0;padding:0.5rem 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.single .content .mermaid{text-align:center}.single .content .mermaid svg{max-width:100%;height:auto}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[data-theme='dark'] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:0 0.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;font-size:0.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0}[data-theme='dark'] .single .content kbd{background-color:#292a2e;border:1px solid #363636;border-bottom-color:#363636;color:#adbac7;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636}.single .post-reward{padding:1rem;text-align:center}.single .post-reward~.post-footer{margin-top:0}.single .post-reward:has(.reward-ways:empty){display:none}.single .post-reward .comment{margin:0.5rem 0;font-weight:500}.single .post-reward .reward-ways{display:none}.single .post-reward .reward-input:checked~.reward-ways{display:block;padding-top:20px}.single .post-reward .reward-input:checked~.reward-ways div{display:inline-block;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}.single .post-reward .reward-input:checked~.reward-ways div span{display:block}.single .post-reward .reward-input:checked~.reward-ways div:hover span[data-animation]{animation:var(--animation-reward, jackInTheBox) 0.8s infinite linear;pointer-events:none}.single .post-reward .reward-input:checked~.reward-ways div img{display:inline-block;margin:0.8em 2em 0;max-width:100%;width:180px}.single .post-reward .reward-input:checked~.reward-ways[data-mode='fixed']{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:1rem;background-color:#fff;z-index:200;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.2);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.2)}[data-theme='dark'] .single .post-reward .reward-input:checked~.reward-ways[data-mode='fixed']{background-color:#292a2e;-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.2);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.2)}.single .post-reward .reward-button{display:inline-block;box-sizing:border-box;cursor:pointer;outline:none;color:#ff7961;border:2px solid #ff8e7a;border-radius:5px;padding:0.6rem 1rem;background-color:#fff;vertical-align:text-top;line-height:1rem;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-reward .reward-button:active,.single .post-reward .reward-button:hover{color:#ffffff;border-color:tomato;background-color:tomato}[data-theme='dark'] .single .post-reward .reward-button:active,[data-theme='dark'] .single .post-reward .reward-button:hover{color:#ffffff;border-color:#ff4d2e;background-color:#ff4d2e}[data-theme='dark'] .single .post-reward .reward-button{color:tomato;border-color:#ff7961;background-color:#292a2e}.single .post-footer{margin:2rem 0}.single .post-footer:has(~.post-reward){margin-bottom:0}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[data-theme='dark'] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod{color:#909092}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license{color:#909092}.single .post-footer .post-info .post-info-line .post-info-license a,.single .post-footer .post-info .post-info-line .post-info-license a::before,.single .post-footer .post-info .post-info-line .post-info-license a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-license a:active,.single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:fit-content}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-md>span:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-tags a,.single .post-footer .post-tags a::before,.single .post-footer .post-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .single .post-footer .post-tags a,[data-theme='dark'] .single .post-footer .post-tags a::before,[data-theme='dark'] .single .post-footer .post-tags a::after{color:#b1b1ba}.single .post-footer .post-tags a:active,.single .post-footer .post-tags a:hover{color:#2983bb}[data-theme='dark'] .single .post-footer .post-tags a:active,[data-theme='dark'] .single .post-footer .post-tags a:hover{color:#fff}.single .post-footer .post-tags .post-tag:not(:last-child)::after{content:',';margin-right:0.25rem}.single .post-footer .post-nav{display:flex;justify-content:space-between;gap:1.5rem}.single .post-footer .post-nav .post-nav-item{flex:1;font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav .post-nav-item[rel='next']{text-align:right}.single .post-footer .post-nav .post-nav-item[rel='prev']:hover{-webkit-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav .post-nav-item[rel='next']:hover{-webkit-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single>#comments{padding:2rem 0}.lg-toolbar .lg-icon::after{color:#999}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%;text-align:right}.archive .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%;text-align:right}.archive .group-title{font-size:1.2rem;margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:0.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item:nth-child(n+3){margin-top:2rem}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:0.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:0.25rem 0 0.25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2983bb;background-color:transparent}[data-theme='dark'] .archive .archive-item-link{color:#b1b1ba}[data-theme='dark'] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{text-align:right;color:#b1b1ba;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}[data-theme='dark'] .archive .archive-item-date{color:#909092}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .archive .tag-cloud-tags a,[data-theme='dark'] .archive .tag-cloud-tags a::before,[data-theme='dark'] .archive .tag-cloud-tags a::after{color:#b1b1ba}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2983bb}[data-theme='dark'] .archive .tag-cloud-tags a:active,[data-theme='dark'] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a:active sup,.archive .tag-cloud-tags a:focus sup,.archive .tag-cloud-tags a:hover sup{color:#161209;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}[data-theme='dark'] .archive .tag-cloud-tags a:active sup,[data-theme='dark'] .archive .tag-cloud-tags a:focus sup,[data-theme='dark'] .archive .tag-cloud-tags a:hover sup{color:#b1b1ba}.archive .tag-cloud-tags a sup{color:#b1b1ba}[data-theme='dark'] .archive .tag-cloud-tags a sup{color:#909092}.archive .tag-cloud-0{color:#b1b1ba !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-0:active,.archive .tag-cloud-0:focus,.archive .tag-cloud-0:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-0:active,[data-theme='dark'] .archive .tag-cloud-0:focus,[data-theme='dark'] .archive .tag-cloud-0:hover{color:#fff}.archive .tag-cloud-0:active sup,.archive .tag-cloud-0:focus sup,.archive .tag-cloud-0:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-0{color:#909092 !important}.archive .tag-cloud-0 sup{opacity:0}.archive .tag-cloud-1{color:#a2a1a8 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-1:active,.archive .tag-cloud-1:focus,.archive .tag-cloud-1:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-1:active,[data-theme='dark'] .archive .tag-cloud-1:focus,[data-theme='dark'] .archive .tag-cloud-1:hover{color:#fff}.archive .tag-cloud-1:active sup,.archive .tag-cloud-1:focus sup,.archive .tag-cloud-1:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-1{color:#939396 !important}.archive .tag-cloud-1 sup{opacity:0}.archive .tag-cloud-2{color:#929197 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-2:active,.archive .tag-cloud-2:focus,.archive .tag-cloud-2:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-2:active,[data-theme='dark'] .archive .tag-cloud-2:focus,[data-theme='dark'] .archive .tag-cloud-2:hover{color:#fff}.archive .tag-cloud-2:active sup,.archive .tag-cloud-2:focus sup,.archive .tag-cloud-2:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-2{color:#97979a !important}.archive .tag-cloud-2 sup{opacity:0}.archive .tag-cloud-3{color:#838185 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-3:active,.archive .tag-cloud-3:focus,.archive .tag-cloud-3:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-3:active,[data-theme='dark'] .archive .tag-cloud-3:focus,[data-theme='dark'] .archive .tag-cloud-3:hover{color:#fff}.archive .tag-cloud-3:active sup,.archive .tag-cloud-3:focus sup,.archive .tag-cloud-3:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-3{color:#9a9a9e !important}.archive .tag-cloud-3 sup{opacity:0}.archive .tag-cloud-4{color:#737173 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-4:active,.archive .tag-cloud-4:focus,.archive .tag-cloud-4:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-4:active,[data-theme='dark'] .archive .tag-cloud-4:focus,[data-theme='dark'] .archive .tag-cloud-4:hover{color:#fff}.archive .tag-cloud-4:active sup,.archive .tag-cloud-4:focus sup,.archive .tag-cloud-4:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-4{color:#9d9da2 !important}.archive .tag-cloud-4 sup{opacity:0}.archive .tag-cloud-5{color:#646262 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-5:active,.archive .tag-cloud-5:focus,.archive .tag-cloud-5:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-5:active,[data-theme='dark'] .archive .tag-cloud-5:focus,[data-theme='dark'] .archive .tag-cloud-5:hover{color:#fff}.archive .tag-cloud-5:active sup,.archive .tag-cloud-5:focus sup,.archive .tag-cloud-5:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-5{color:#a1a1a6 !important}.archive .tag-cloud-5 sup{opacity:0}.archive .tag-cloud-6{color:#545250 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-6:active,.archive .tag-cloud-6:focus,.archive .tag-cloud-6:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-6:active,[data-theme='dark'] .archive .tag-cloud-6:focus,[data-theme='dark'] .archive .tag-cloud-6:hover{color:#fff}.archive .tag-cloud-6:active sup,.archive .tag-cloud-6:focus sup,.archive .tag-cloud-6:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-6{color:#a4a4aa !important}.archive .tag-cloud-6 sup{opacity:0}.archive .tag-cloud-7{color:#45423e !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-7:active,.archive .tag-cloud-7:focus,.archive .tag-cloud-7:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-7:active,[data-theme='dark'] .archive .tag-cloud-7:focus,[data-theme='dark'] .archive .tag-cloud-7:hover{color:#fff}.archive .tag-cloud-7:active sup,.archive .tag-cloud-7:focus sup,.archive .tag-cloud-7:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-7{color:#a7a7ae !important}.archive .tag-cloud-7 sup{opacity:0}.archive .tag-cloud-8{color:#35322c !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-8:active,.archive .tag-cloud-8:focus,.archive .tag-cloud-8:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-8:active,[data-theme='dark'] .archive .tag-cloud-8:focus,[data-theme='dark'] .archive .tag-cloud-8:hover{color:#fff}.archive .tag-cloud-8:active sup,.archive .tag-cloud-8:focus sup,.archive .tag-cloud-8:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-8{color:#aaaab2 !important}.archive .tag-cloud-8 sup{opacity:0}.archive .tag-cloud-9{color:#26221b !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-9:active,.archive .tag-cloud-9:focus,.archive .tag-cloud-9:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-9:active,[data-theme='dark'] .archive .tag-cloud-9:focus,[data-theme='dark'] .archive .tag-cloud-9:hover{color:#fff}.archive .tag-cloud-9:active sup,.archive .tag-cloud-9:focus sup,.archive .tag-cloud-9:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-9{color:#aeaeb6 !important}.archive .tag-cloud-9 sup{opacity:0}.archive .tag-cloud-10{color:#161209 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-10:active,.archive .tag-cloud-10:focus,.archive .tag-cloud-10:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-10:active,[data-theme='dark'] .archive .tag-cloud-10:focus,[data-theme='dark'] .archive .tag-cloud-10:hover{color:#fff}.archive .tag-cloud-10:active sup,.archive .tag-cloud-10:focus sup,.archive .tag-cloud-10:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-10{color:#b1b1ba !important}.archive .tag-cloud-10 sup{opacity:0}.home .home-profile{text-align:center}.home .home-profile .home-avatar{padding:0.5rem}.home .home-profile .home-avatar img{display:inline-block;width:8rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease}[data-theme='dark'] .home .home-profile .home-avatar img{-webkit-box-shadow:0 0 0 0.3618em rgba(255,255,255,0.05);box-shadow:0 0 0 0.3618em rgba(255,255,255,0.05)}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem)}.home .home-profile .home-title{font-size:1.25rem;font-weight:bold;margin:0;padding:0.5rem}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:0.5rem}.home .home-profile .links{padding:0.5rem;font-size:1.5rem}.home .home-profile .links a *{vertical-align:text-bottom}.home .home-profile .links img{height:1.5rem;padding:0 0.25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.5rem;font-weight:normal;margin:0;padding:0.5rem;color:#b1b1ba}[data-theme='dark'] .home .home-profile .home-disclaimer{color:#909092}.home.posts .home-profile{padding:2rem 0}.home.posts .home-avatar img{width:6rem}.home.posts .summary{padding-top:1rem;padding-bottom:0.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}.home.posts .summary:first-of-type{padding-top:0}[data-theme='dark'] .home.posts .summary{color:#b1b1ba;border-bottom:1px dashed #363636}.home.posts .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home.posts .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home.posts .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home.posts .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home.posts .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:0.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content{color:#909092}.home.posts .summary .content h2,.home.posts .summary .content h3,.home.posts .summary .content h4,.home.posts .summary .content h5,.home.posts .summary .content h6,.home.posts .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home.posts .summary .content h2::after,.home.posts .summary .content h3::after,.home.posts .summary .content h4::after,.home.posts .summary .content h5::after,.home.posts .summary .content h6::after,.home.posts .summary .content p::after{content:'\A';white-space:pre}.home.posts .summary .content h2{font-size:1.125rem}.home.posts .summary .content a,.home.posts .summary .content a::before,.home.posts .summary .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .content a,[data-theme='dark'] .home.posts .summary .content a::before,[data-theme='dark'] .home.posts .summary .content a::after{color:#b1b1ba}.home.posts .summary .content a:active,.home.posts .summary .content a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .content a:active,[data-theme='dark'] .home.posts .summary .content a:hover{color:#fff}.home.posts .summary .content b,.home.posts .summary .content strong{color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content b,[data-theme='dark'] .home.posts .summary .content strong{color:#909092}.home.posts .summary .post-footer{margin-top:0.4rem;display:flex;justify-content:space-between;align-items:center;font-size:0.875rem}.home.posts .summary .post-footer a,.home.posts .summary .post-footer a::before,.home.posts .summary .post-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .post-footer a,[data-theme='dark'] .home.posts .summary .post-footer a::before,[data-theme='dark'] .home.posts .summary .post-footer a::after{color:#1781b5}.home.posts .summary .post-footer a:active,.home.posts .summary .post-footer a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .post-footer a:active,[data-theme='dark'] .home.posts .summary .post-footer a:hover{color:#619ac3}.home.posts .summary .post-footer .post-tags{padding:0}.home.posts .summary .post-footer .post-tags a,.home.posts .summary .post-footer .post-tags a::before,.home.posts .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::before,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::after{color:#b1b1ba}.home.posts .summary .post-footer .post-tags a:active,.home.posts .summary .post-footer .post-tags a:hover{color:#2983bb}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:active,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:hover{color:#fff}.home.posts .summary .post-footer .post-tags .post-tag:not(:last-child)::after{content:',';margin-right:0.25rem}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline{-webkit-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline .offline-title{font-size:3.6rem}#content-offline .offline-subtitle{margin:0.4rem 0;font-size:1rem;font-weight:normal;font-style:italic;line-height:100%;color:#57606a}#content-offline .error-text{font-size:1.2rem}.friend-links{margin-top:1rem;display:flex;flex-direction:row;justify-content:space-between;flex-wrap:wrap}@media (max-width: 576px){.friend-links{justify-content:space-around}}.friend-link{width:150px;height:200px;font-size:1rem;text-align:center;background:rgba(255,255,255,0.3);box-sizing:border-box;box-shadow:3px 3px 5px #aaa;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:none;transition-duration:0.3s;margin-bottom:1rem;display:flex;flex-direction:column;justify-content:space-between}.friend-link:hover{background:#fff;-webkit-transform:scale(1.03);-ms-transform:scale(1.03);-o-transform:scale(1.03);transform:scale(1.03);box-shadow:0 0 3px #aaa}.friend-avatar{object-fit:cover;object-position:center;width:100% !important;height:150px !important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;margin:0;padding:0}.friend-nickname{display:block;position:relative;color:#2bbc8a;font-weight:bold;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px;margin-bottom:1rem}.friend-nickname:hover{color:#d480aa}@media only screen and (min-width: 1441px){.breadcrumb-container .breadcrumb,.page{width:60%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:64%}[data-page-style='narrow'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='narrow'] .breadcrumb,[data-page-style='narrow'] .page{max-width:800px}}@media only screen and (max-width: 1440px){.breadcrumb-container .breadcrumb,.page{width:56%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:60%}}@media only screen and (max-width: 1200px){.breadcrumb-container .breadcrumb,.page{width:52%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:56%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){.breadcrumb-container .breadcrumb,.page{width:80% !important}aside{display:none !important}#toc-static{display:block}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (min-width: 681px){body:not([data-header-desktop='sticky']) .breadcrumb-container.sticky{top:0}body:not([data-header-desktop='auto']) .breadcrumb-container.sticky+.container .content [id]{scroll-margin-top:calc(var(--fi-scroll-mt) + var(--fi-breadcrumb-offset))}[data-header-desktop='normal'] .page .content [id]{--fi-scroll-mt: .5rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile,.d-none-desktop{display:block}.d-none-mobile{display:none !important}body:not([data-header-mobile='sticky']) .breadcrumb-container.sticky{top:0}body:not([data-header-mobile='auto']) .breadcrumb-container.sticky+.container .content [id]{scroll-margin-top:calc(var(--fi-scroll-mt) + var(--fi-breadcrumb-offset))}[data-header-mobile='normal'] .page .content [id]{--fi-scroll-mt: .5rem}.breadcrumb-container .breadcrumb,.page{width:100% !important}.page .categories-card .card-item{width:100%}footer .footer-container{font-size:0.618rem}.pagination .page-item{margin:0 5px}}@media only print{@page{size:A4 portrait;margin:1.27cm}.page{width:100% !important;padding-top:0 !important}.page.single .single-title,.page.single .single-subtitle,.page.single .post-meta{text-align:center}.page h1:not(.single-title),.page .page-break-before{page-break-before:always}.page .page-break-after{page-break-after:always}.print-d-none,.fixed-button,.github-corner,.reading-progress-bar,header,.breadcrumb-container,footer,#toc-auto,.single .post-meta .comment-visitors,.single .post-meta .comment-count,.single .content .highlight>.chroma .code-header .ellipses,.single .content .highlight>.chroma .code-header .edit,.single .content .highlight>.chroma .code-header .copy,.single .post-reward,.single .post-footer .post-info .post-info-line .post-info-share,.single .post-footer .post-info-more section:last-child,.single .post-footer .post-nav,.single>#comments{display:none !important}} + +/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/css/style.min.css.map b/css/style.min.css.map new file mode 100644 index 00000000..d01b4119 --- /dev/null +++ b/css/style.min.css.map @@ -0,0 +1,137 @@ +{ + "version": 3, + "file": "style.min.css", + "sourceRoot": "/home/runner/work/dingyufan.github.io/dingyufan.github.io", + "sources": [ + "themes/FixIt/assets/css/style.scss", + "themes/FixIt/assets/css/_variables.scss", + "themes/FixIt/assets/css/_partials/_maps/_admonition.scss", + "themes/FixIt/assets/css/_partials/_maps/_code-highlight.scss", + "themes/FixIt/assets/css/_partials/_maps/_code-type.scss", + "themes/FixIt/assets/css/_partials/_maps/_colors.scss", + "themes/FixIt/assets/css/_partials/_maps/_utilities.scss", + "themes/FixIt/assets/css/_override.scss", + "themes/FixIt/assets/css/_mixin/_index.scss", + "themes/FixIt/assets/css/_mixin/_compatibility.scss", + "themes/FixIt/assets/css/_mixin/_link.scss", + "themes/FixIt/assets/css/_mixin/_blur.scss", + "themes/FixIt/assets/css/_mixin/_details.scss", + "themes/FixIt/assets/css/_mixin/_z-index.scss", + "themes/FixIt/assets/css/_core/_root.scss", + "themes/FixIt/assets/css/_core/_base.scss", + "themes/FixIt/assets/lib/normalize/normalize.css", + "themes/FixIt/assets/css/_partials/_mask.scss", + "themes/FixIt/assets/css/_partials/_img.scss", + "themes/FixIt/assets/css/_partials/_icon.scss", + "themes/FixIt/assets/css/_partials/_details.scss", + "themes/FixIt/assets/css/_partials/_widgets.scss", + "themes/FixIt/assets/css/_partials/_widgets/_cookieconsent.scss", + "themes/FixIt/assets/css/_partials/_widgets/_fixed-button.scss", + "themes/FixIt/assets/css/_partials/_widgets/_github-corner.scss", + "themes/FixIt/assets/css/_partials/_widgets/_noscript-warning.scss", + "themes/FixIt/assets/css/_partials/_widgets/_reading-progress.scss", + "themes/FixIt/assets/css/_partials/_widgets/_typeit.scss", + "themes/FixIt/assets/css/_core/_layout.scss", + "themes/FixIt/assets/css/_core/_header.scss", + "themes/FixIt/assets/css/_core/_breadcrumb.scss", + "themes/FixIt/assets/css/_core/_footer.scss", + "themes/FixIt/assets/css/_core/_pagination.scss", + "themes/FixIt/assets/css/_core/_common.scss", + "themes/FixIt/assets/css/_core/_patch.scss", + "themes/FixIt/assets/css/_page/_index.scss", + "themes/FixIt/assets/css/_page/_single.scss", + "themes/FixIt/assets/css/_partials/_single/_toc.scss", + "themes/FixIt/assets/css/_partials/_single/_fixit-decryptor.scss", + "themes/FixIt/assets/css/_partials/_single/_code.scss", + "themes/FixIt/assets/css/_partials/_single/_github-dark-dimmed.scss", + "themes/FixIt/assets/css/_shortcodes/_index.scss", + "themes/FixIt/assets/css/_shortcodes/_admonition.scss", + "themes/FixIt/assets/css/_shortcodes/_bilibili.scss", + "themes/FixIt/assets/css/_shortcodes/_cardlink.scss", + "themes/FixIt/assets/css/_shortcodes/_center-quote.scss", + "themes/FixIt/assets/css/_shortcodes/_echarts.scss", + "themes/FixIt/assets/css/_shortcodes/_instagram.scss", + "themes/FixIt/assets/css/_shortcodes/_mapbox.scss", + "themes/FixIt/assets/css/_shortcodes/_mermaid.scss", + "themes/FixIt/assets/css/_partials/_single/_reward.scss", + "themes/FixIt/assets/css/_partials/_single/_footer.scss", + "themes/FixIt/assets/css/_partials/_single/_comment.scss", + "themes/FixIt/assets/css/_page/_special.scss", + "themes/FixIt/assets/css/_page/_archive.scss", + "themes/FixIt/assets/css/_partials/_archive/_terms.scss", + "themes/FixIt/assets/css/_partials/_archive/_tags.scss", + "themes/FixIt/assets/css/_page/_home.scss", + "themes/FixIt/assets/css/_page/_404.scss", + "themes/FixIt/assets/css/_page/_offline.scss", + "themes/FixIt/assets/css/_page/_friends.scss", + "themes/FixIt/assets/css/_core/_media.scss", + "themes/FixIt/assets/css/_custom.scss" + ], + "sourcesContent": [ + "@charset \"utf-8\";\n\n@import \"_variables\";\n@import \"_override\";\n@import \"_mixin/index\";\n@import \"_core/root\";\n@import \"_core/base\";\n@import \"_core/layout\";\n@import \"_core/common\";\n@import \"_core/patch\";\n@import \"_page\";\n@import \"_core/media\";\n@import \"_custom\";\n", + "// ==============================\n// Variables\n// ==============================\n\n// ========== Global ========== //\n// Prefix for :root CSS variables.\n$prefix: fi- !default;\n\n// Font and Line Height\n$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;\n$global-font-size: 16px !default;\n$global-font-weight: 400 !default;\n$global-line-height: 1.5rem !default;\n\n// scroll-margin-top of content anchor\n$global-scroll-margin-top: 0.5rem;\n\n// Radius of the border\n$global-border-radius: 5px !default;\n\n// Color of the background\n$global-background-color: #ffffff !default;\n$global-background-color-dark: #292a2e !default;\n\n// Color of the text\n$global-font-color: #161209 !default;\n$global-font-color-dark: #b1b1ba !default;\n\n// Color of the secondary text\n$global-font-secondary-color: #b1b1ba !default;\n$global-font-secondary-color-dark: #909092 !default;\n\n// Color of the link\n$global-link-color: #161209 !default;\n$global-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link\n$global-link-hover-color: #2983bb !default; // 潮蓝\n$global-link-hover-color-dark: #fff !default;\n\n// Color of the border\n$global-border-color: #f0f0f0 !default;\n$global-border-color-dark: #363636 !default;\n// ========== Global ========== //\n\n// ========== Scrollbar ========== //\n// Color of the scrollbar\n$scrollbar-color: #87878d !default;\n\n// Color of the hover scrollbar\n$scrollbar-hover-color: #b1b1ba !default;\n// ========== Scrollbar ========== //\n\n// ========== Selection ========== //\n// Color of the selected text\n$selection-color: rgba(53, 166, 247, 0.25) !default;\n$selection-color-dark: rgba(50, 112, 194, 0.4) !default;\n// ========== Selection ========== //\n\n// ========== Header ========== //\n// Height of the header\n$header-height: 3.5rem !default;\n\n// Color of the header background\n$header-background-color: #f8f8f8 !default;\n$header-background-color-dark: #252627 !default;\n\n// Font style of the header title\n$header-title-font-family: $global-font-family !default;\n$header-title-font-size: 1.5rem !default;\n\n// Color of the active menu item\n$menu-active-color: #161209 !default;\n$menu-active-color-dark: #fff !default;\n\n// Color of the search background\n$search-background-color: #e9e9e9 !default;\n$search-background-color-dark: #363636 !default;\n// ========== Header ========== //\n\n// ========== Tag Cloud ========== //\n// Color range of tag cloud\n$tag-cloud-start: $global-font-secondary-color!default;\n$tag-cloud-end: $global-font-color!default;\n$tag-cloud-start-dark: $global-font-secondary-color-dark!default;\n$tag-cloud-end-dark: $global-font-color-dark!default;\n// ========== Tag Cloud ========== //\n\n// ========== Single Content ========== //\n// Font size of the TOC\n$toc-title-font-size: 1.2rem !default;\n$toc-content-font-size: 1rem !default;\n\n// Color of the single link\n$single-link-color: #2376b7 !default; // 花青\n$single-link-color-dark: #1781b5 !default; // 釉蓝\n\n// Color of the hover single link\n$single-link-hover-color: #ea517f !default; // 莲瓣红\n$single-link-hover-color-dark: #619ac3 !default; // 羽扇豆蓝\n\n// Color of the table background\n$table-background-color: #fff !default;\n$table-background-color-dark: #272c34 !default;\n\n// Color of the table thead\n$table-thead-color: #ededed !default;\n$table-thead-color-dark: #20252b !default;\n\n// Color of the blockquote\n$blockquote-color: #697681 !default;\n$blockquote-color-dark: #9ba3aa !default;\n\n// Color of reward\n$reward-color: tomato !default;\n$reward-color-dark: darken($reward-color, 5%) !default;\n\n// Width of reward image\n$reward-img-width: 180px !default;\n// ========== Single Content ========== //\n\n// ========== Pagination ========== //\n// Color of the link in pagination\n$pagination-link-color: #bfbfbf !default;\n$pagination-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link in pagination\n$pagination-link-hover-color: #000 !default;\n$pagination-link-hover-color-dark: #fff !default;\n// ========== Pagination ========== //\n\n// ========== Code ========== //\n// Color of the code\n$code-color: #24292f !default;\n$code-color-dark: #adbac7 !default;\n\n// Color of the code background\n$code-background-color: #f6f8fa !default;\n$code-background-color-dark: #2d333b !default;\n\n$code-error-color: #dc3545 !default;\n\n// Color of the hightlight code\n$code-hightlight-color: #fff8c5 !default;\n$code-hightlight-color-dark: rgba(174, 124, 20, 0.15) !default;\n\n$code-info-color: #9c9c9c !default;\n$code-info-color-dark: #b1b0b0 !default;\n\n// Font size of the code\n$code-font-size: 0.875rem !default;\n\n// Font family of the code\n$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;\n// ========== Code ========== //\n\n// ========== GitHub Corners ========== //\n// Color of the GitHub Corners\n$github-corner-color: white !default;\n$github-corner-color-dark: black !default;\n\n// Color of the GitHub Corners background\n$github-corner-fill: $header-background-color-dark !default;\n$github-corner-fill-dark: $header-background-color !default;\n// ========== GitHub Corners ========== //\n\n@import '_partials/_maps/admonition';\n@import '_partials/_maps/code-highlight';\n@import '_partials/_maps/code-type';\n@import '_partials/_maps/colors';\n@import '_partials/_maps/utilities';\n", + "// Color map of admonition [$type $color $background-color, ... ]\n$admonition-color-map:\n 'note' #448aff rgba(68, 138, 255, 0.1),\n 'abstract' #00b0ff rgba(0, 176, 255, 0.1),\n 'info' #00b8d4 rgba(0, 184, 212, 0.1),\n 'tip' #00bfa5 rgba(0, 191, 165, 0.1),\n 'success' #00c853 rgba(0, 200, 83, 0.1),\n 'question' #64dd17 rgba(100, 221, 23, 0.1),\n 'warning' #ff9100 rgba(255, 145, 0, 0.1),\n 'failure' #ff5252 rgba(255, 82, 82, 0.1),\n 'danger' #ff1744 rgba(255, 23, 68, 0.1),\n 'bug' #f50057 rgba(245, 0, 87, 0.1),\n 'example' #651fff rgba(101, 31, 255, 0.1),\n 'quote' #9e9e9e rgba(159, 159, 159, 0.1)\n !default;\n", + "// Color map of the code highlight\n$code-highlight-color-map: (\n /* Error */ 'err': $code-error-color,\n /* Keyword */ 'k': #cf222e,\n /* KeywordConstant */ 'kc': #0550ae,\n /* KeywordDeclaration */ 'kd': #cf222e,\n /* KeywordNamespace */ 'kn': #cf222e,\n /* KeywordPseudo */ 'kp': #cf222e,\n /* KeywordReserved */ 'kr': #cf222e,\n /* KeywordType */ 'kt': #cf222e,\n /* Name */ 'n': $code-color,\n /* NameAttribute */ 'na': #0550ae,\n /* NameBuiltin */ 'nb': #0550ae,\n /* NameBuiltinPseudo */ 'bp': $code-color,\n /* NameClass */ 'nc': #8250df,\n /* NameConstant */ 'no': #cf222e,\n /* NameDecorator */ 'nd': #8250df,\n /* NameEntity */ 'ni': #0550ae,\n /* NameException */ 'ne': #0550ae,\n /* NameFunction */ 'nf': #0550ae,\n /* NameFunctionMagic */ 'fm': #0550ae,\n /* NameLabel */ 'nl': #0550ae,\n /* NameNamespace */ 'nn': #8250df,\n /* NameOther */ 'nx': #0550ae,\n /* NameProperty */ 'py': #0550ae,\n /* NameTag */ 'nt': #116329,\n /* NameVariable */ 'nv': #953800,\n /* NameVariableClass */ 'vc': #0550ae,\n /* NameVariableGlobal */ 'vg': #0550ae,\n /* NameVariableInstance */ 'vi': #0550ae,\n /* NameVariableMagic */ 'vm': #0550ae,\n /* Literal */ 'l': #0550ae,\n /* LiteralDate */ 'ld': #0a3069,\n /* LiteralString */ 's': #0a3069,\n /* LiteralStringAffix */ 'sa': #0a3069,\n /* LiteralStringBacktick */ 'sb': #0a3069,\n /* LiteralStringChar */ 'sc': #0a3069,\n /* LiteralStringDelimiter */ 'dl': #0a3069,\n /* LiteralStringDoc */ 'sd': #0a3069,\n /* LiteralStringDouble */ 's2': #0a3069,\n /* LiteralStringEscape */ 'se': #0a3069,\n /* LiteralStringHeredoc */ 'sh': #0a3069,\n /* LiteralStringInterpol */ 'si': #0a3069,\n /* LiteralStringOther */ 'sx': #0a3069,\n /* LiteralStringRegex */ 'sr': #0a3069,\n /* LiteralStringSingle */ 's1': #0a3069,\n /* LiteralStringSymbol */ 'ss': #0a3069,\n /* LiteralNumber */ 'm': #0550ae,\n /* LiteralNumberBin */ 'mb': #0550ae,\n /* LiteralNumberFloat */ 'mf': #0550ae,\n /* LiteralNumberHex */ 'mh': #0550ae,\n /* LiteralNumberInteger */ 'mi': #0550ae,\n /* LiteralNumberIntegerLong */ 'il': #0550ae,\n /* LiteralNumberOct */ 'mo': #0550ae,\n /* Operator */ 'o': #cf222e,\n /* OperatorWord */ 'ow': #cf222e,\n /* Punctuation */ 'p': $code-color,\n /* Comment */ 'c': #6e7781,\n /* CommentHashbang */ 'ch': #6e7781,\n /* CommentMultiline */ 'cm': #6e7781,\n /* CommentSingle */ 'c1': #6e7781,\n /* CommentSpecial */ 'cs': #6e7781,\n /* CommentPreproc */ 'cp': #0550ae,\n /* CommentPreprocFile */ 'cpf': #6e7781,\n /* Generic */ 'g': $code-color,\n /* GenericDeleted */ 'gd': #82071e,\n /* GenericEmph */ 'ge': $code-color,\n /* GenericError */ 'gr': $code-error-color,\n /* GenericHeading */ 'gh': $code-color,\n /* GenericInserted */ 'gi': #116329,\n /* GenericOutput */ 'go': $code-color,\n /* GenericPrompt */ 'gp': $code-color,\n /* GenericStrong */ 'gs': $code-color,\n /* GenericSubheading */ 'gu': $code-color,\n /* GenericTraceback */ 'gt': $code-error-color,\n /* GenericUnderline */ 'gl': $code-color,\n /* TextWhitespace */ 'w': $code-color,\n /* Other */ 'x': $code-color\n) !default;\n$code-highlight-color-map-dark: (\n /* Error */ 'err': $code-error-color,\n /* Keyword */ 'k': #f47067,\n /* KeywordConstant */ 'kc': #6cb6ff,\n /* KeywordDeclaration */ 'kd': #f47067,\n /* KeywordNamespace */ 'kn': #f47067,\n /* KeywordPseudo */ 'kp': #f47067,\n /* KeywordReserved */ 'kr': #f47067,\n /* KeywordType */ 'kt': #f47067,\n /* Name */ 'n': $code-color-dark,\n /* NameAttribute */ 'na': #6cb6ff,\n /* NameBuiltin */ 'nb': #dcbdfb,\n /* NameBuiltinPseudo */ 'bp': $code-color-dark,\n /* NameClass */ 'nc': #dcbdfb,\n /* NameConstant */ 'no': #6cb6ff,\n /* NameDecorator */ 'nd': #dcbdfb,\n /* NameEntity */ 'ni': #6cb6ff,\n /* NameException */ 'ne': #6cb6ff,\n /* NameFunction */ 'nf': #dcbdfb,\n /* NameFunctionMagic */ 'fm': #6cb6ff,\n /* NameLabel */ 'nl': #6cb6ff,\n /* NameNamespace */ 'nn': #f47067,\n /* NameOther */ 'nx': #dcbdfb,\n /* NameProperty */ 'py': #6cb6ff,\n /* NameTag */ 'nt': #8ddb8c,\n /* NameVariable */ 'nv': #f69d50,\n /* NameVariableClass */ 'vc': #6cb6ff,\n /* NameVariableGlobal */ 'vg': #6cb6ff,\n /* NameVariableInstance */ 'vi': #6cb6ff,\n /* NameVariableMagic */ 'vm': #6cb6ff,\n /* Literal */ 'l': #6cb6ff,\n /* LiteralDate */ 'ld': #96d0ff,\n /* LiteralString */ 's': #96d0ff,\n /* LiteralStringAffix */ 'sa': #96d0ff,\n /* LiteralStringBacktick */ 'sb': #96d0ff,\n /* LiteralStringChar */ 'sc': #96d0ff,\n /* LiteralStringDelimiter */ 'dl': #96d0ff,\n /* LiteralStringDoc */ 'sd': #96d0ff,\n /* LiteralStringDouble */ 's2': #96d0ff,\n /* LiteralStringEscape */ 'se': #96d0ff,\n /* LiteralStringHeredoc */ 'sh': #96d0ff,\n /* LiteralStringInterpol */ 'si': #96d0ff,\n /* LiteralStringOther */ 'sx': #96d0ff,\n /* LiteralStringRegex */ 'sr': #96d0ff,\n /* LiteralStringSingle */ 's1': #96d0ff,\n /* LiteralStringSymbol */ 'ss': #96d0ff,\n /* LiteralNumber */ 'm': #6cb6ff,\n /* LiteralNumberBin */ 'mb': #6cb6ff,\n /* LiteralNumberFloat */ 'mf': #6cb6ff,\n /* LiteralNumberHex */ 'mh': #6cb6ff,\n /* LiteralNumberInteger */ 'mi': #6cb6ff,\n /* LiteralNumberIntegerLong */ 'il': #6cb6ff,\n /* LiteralNumberOct */ 'mo': #6cb6ff,\n /* Operator */ 'o': #f47067,\n /* OperatorWord */ 'ow': #f47067,\n /* Punctuation */ 'p': $code-color-dark,\n /* Comment */ 'c': #768390,\n /* CommentHashbang */ 'ch': #768390,\n /* CommentMultiline */ 'cm': #768390,\n /* CommentSingle */ 'c1': #768390,\n /* CommentSpecial */ 'cs': #768390,\n /* CommentPreproc */ 'cp': #6cb6ff,\n /* CommentPreprocFile */ 'cpf': #768390,\n /* Generic */ 'g': $code-color-dark,\n /* GenericDeleted */ 'gd': #ffd8d3,\n /* GenericEmph */ 'ge': $code-color-dark,\n /* GenericError */ 'gr': $code-error-color,\n /* GenericHeading */ 'gh': $code-color-dark,\n /* GenericInserted */ 'gi': #b4f1b4,\n /* GenericOutput */ 'go': $code-color-dark,\n /* GenericPrompt */ 'gp': $code-color-dark,\n /* GenericStrong */ 'gs': $code-color-dark,\n /* GenericSubheading */ 'gu': $code-color-dark,\n /* GenericTraceback */ 'gt': $code-error-color,\n /* GenericUnderline */ 'gl': $code-color-dark,\n /* TextWhitespace */ 'w': $code-color-dark,\n /* Other */ 'x': $code-color-dark\n) !default;", + "// Code type map\n$code-type-map: (\n // Chroma supported languages\n // @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js\n \"abap\": \"ABAP\",\n \"abnf\": \"ABNF\",\n \"as\": \"ActionScript\",\n \"actionscript\": \"ActionScript\",\n \"as3\": \"ActionScript 3\",\n \"actionscript3\": \"ActionScript 3\",\n \"ada\": \"Ada\",\n \"ada95\": \"Ada\",\n \"ada2005\": \"Ada\",\n \"al\": \"AL\",\n \"ng2\": \"Angular2\",\n \"antlr\": \"ANTLR\",\n \"apacheconf\": \"ApacheConf\",\n \"aconf\": \"ApacheConf\",\n \"apache\": \"ApacheConf\",\n \"apl\": \"APL\",\n \"applescript\": \"AppleScript\",\n \"arduino\": \"Arduino\",\n \"armasm\": \"ArmAsm\",\n \"awk\": \"Awk\",\n \"gawk\": \"Awk\",\n \"mawk\": \"Awk\",\n \"nawk\": \"Awk\",\n \"ballerina\": \"Ballerina\",\n \"make\": \"Base Makefile\",\n \"makefile\": \"Base Makefile\",\n \"mf\": \"Base Makefile\",\n \"bsdmake\": \"Base Makefile\",\n \"bash\": \"Bash\",\n \"sh\": \"Bash\",\n \"ksh\": \"Bash\",\n \"zsh\": \"Bash\",\n \"shell\": \"Bash\",\n \"bash-session\": \"BashSession\",\n \"console\": \"BashSession\",\n \"shell-session\": \"BashSession\",\n \"bat\": \"Batchfile\",\n \"batch\": \"Batchfile\",\n \"dosbatch\": \"Batchfile\",\n \"winbatch\": \"Batchfile\",\n \"bib\": \"BibTeX\",\n \"bibtex\": \"BibTeX\",\n \"bicep\": \"Bicep\",\n \"blitzbasic\": \"BlitzBasic\",\n \"b3d\": \"BlitzBasic\",\n \"bplus\": \"BlitzBasic\",\n \"bnf\": \"BNF\",\n \"brainfuck\": \"Brainfuck\",\n \"bf\": \"Brainfuck\",\n \"c\": \"C\",\n \"csharp\": \"C#\",\n \"c\\\\#\": \"C#\",\n \"cpp\": \"C++\",\n \"c\\\\+\\\\+\": \"C++\",\n \"caddyfile\": \"Caddyfile\",\n \"caddy\": \"Caddyfile\",\n \"caddyfile-directives\": \"Caddyfile Directives\",\n \"caddyfile-d\": \"Caddyfile Directives\",\n \"caddy-d\": \"Caddyfile Directives\",\n \"capnp\": \"Cap'n Proto\",\n \"cassandra\": \"Cassandra CQL\",\n \"cql\": \"Cassandra CQL\",\n \"ceylon\": \"Ceylon\",\n \"cfengine3\": \"CFEngine3\",\n \"cf3\": \"CFEngine3\",\n \"cfs\": \"cfstatement\",\n \"chai\": \"ChaiScript\",\n \"chaiscript\": \"ChaiScript\",\n \"cheetah\": \"Cheetah\",\n \"spitfire\": \"Cheetah\",\n \"clojure\": \"Clojure\",\n \"clj\": \"Clojure\",\n \"cmake\": \"CMake\",\n \"cobol\": \"COBOL\",\n \"coffee-script\": \"CoffeeScript\",\n \"coffeescript\": \"CoffeeScript\",\n \"coffee\": \"CoffeeScript\",\n \"common-lisp\": \"Common Lisp\",\n \"cl\": \"Common Lisp\",\n \"lisp\": \"Common Lisp\",\n \"coq\": \"Coq\",\n \"cr\": \"Crystal\",\n \"crystal\": \"Crystal\",\n \"css\": \"CSS\",\n \"cython\": \"Cython\",\n \"pyx\": \"Cython\",\n \"pyrex\": \"Cython\",\n \"d\": \"D\",\n \"dart\": \"Dart\",\n \"diff\": \"Diff\",\n \"udiff\": \"Diff\",\n \"django\": \"Django/Jinja\",\n \"jinja\": \"Django/Jinja\",\n \"docker\": \"Docker\",\n \"dockerfile\": \"Docker\",\n \"dtd\": \"DTD\",\n \"dylan\": \"Dylan\",\n \"ebnf\": \"EBNF\",\n \"elixir\": \"Elixir\",\n \"ex\": \"Elixir\",\n \"exs\": \"Elixir\",\n \"elm\": \"Elm\",\n \"emacs\": \"EmacsLisp\",\n \"elisp\": \"EmacsLisp\",\n \"emacs-lisp\": \"EmacsLisp\",\n \"erlang\": \"Erlang\",\n \"factor\": \"Factor\",\n \"fennel\": \"Fennel\",\n \"fnl\": \"Fennel\",\n \"fish\": \"Fish\",\n \"fishshell\": \"Fish\",\n \"forth\": \"Forth\",\n \"fortran\": \"Fortran\",\n \"fortranfixed\": \"FortranFixed\",\n \"fsharp\": \"FSharp\",\n \"gas\": \"GAS\",\n \"asm\": \"GAS\",\n \"gdscript\": \"GDScript\",\n \"gd\": \"GDScript\",\n \"genshi\": \"Genshi\",\n \"kid\": \"Genshi\",\n \"xml\\\\+genshi\": \"Genshi\",\n \"xml\\\\+kid\": \"Genshi\",\n \"html\\\\+genshi\": \"Genshi HTML\",\n \"html\\\\+kid\": \"Genshi HTML\",\n \"genshitext\": \"Genshi Text\",\n \"cucumber\": \"Gherkin\",\n \"Cucumber\": \"Gherkin\",\n \"gherkin\": \"Gherkin\",\n \"Gherkin\": \"Gherkin\",\n \"glsl\": \"GLSL\",\n \"gnuplot\": \"Gnuplot\",\n \"go\": \"Go\",\n \"golang\": \"Go\",\n \"go-html-template\": \"Go HTML Template\",\n \"go-text-template\": \"Go Text Template\",\n \"graphql\": \"GraphQL\",\n \"graphqls\": \"GraphQL\",\n \"gql\": \"GraphQL\",\n \"groff\": \"Groff\",\n \"nroff\": \"Groff\",\n \"man\": \"Groff\",\n \"groovy\": \"Groovy\",\n \"handlebars\": \"Handlebars\",\n \"hbs\": \"Handlebars\",\n \"haskell\": \"Haskell\",\n \"hs\": \"Haskell\",\n \"hx\": \"Haxe\",\n \"haxe\": \"Haxe\",\n \"hxsl\": \"Haxe\",\n \"hcl\": \"HCL\",\n \"hexdump\": \"Hexdump\",\n \"hlb\": \"HLB\",\n \"html\": \"HTML\",\n \"http\": \"HTTP\",\n \"hylang\": \"Hy\",\n \"idris\": \"Idris\",\n \"idr\": \"Idris\",\n \"igor\": \"Igor\",\n \"igorpro\": \"Igor\",\n \"ini\": \"INI\",\n \"cfg\": \"INI\",\n \"dosini\": \"INI\",\n \"io\": \"Io\",\n \"j\": \"J\",\n \"java\": \"Java\",\n \"js\": \"JavaScript\",\n \"javascript\": \"JavaScript\",\n \"json\": \"JSON\",\n \"julia\": \"Julia\",\n \"jl\": \"Julia\",\n \"jungle\": \"Jungle\",\n \"kotlin\": \"Kotlin\",\n \"lighty\": \"Lighttpd configuration file\",\n \"lighttpd\": \"Lighttpd configuration file\",\n \"llvm\": \"LLVM\",\n \"lua\": \"Lua\",\n \"mako\": \"Mako\",\n \"md\": \"markdown\",\n \"mkd\": \"markdown\",\n \"mason\": \"Mason\",\n \"mathematica\": \"Mathematica\",\n \"mma\": \"Mathematica\",\n \"nb\": \"Mathematica\",\n \"matlab\": \"Matlab\",\n \"mcfunction\": \"mcfunction\",\n \"meson\": \"Meson\",\n \"meson\\\\.build\": \"Meson\",\n \"metal\": \"Metal\",\n \"minizinc\": \"MiniZinc\",\n \"MZN\": \"MiniZinc\",\n \"mzn\": \"MiniZinc\",\n \"mlir\": \"MLIR\",\n \"modula2\": \"Modula-2\",\n \"m2\": \"Modula-2\",\n \"monkeyc\": \"MonkeyC\",\n \"morrowind\": \"MorrowindScript\",\n \"mwscript\": \"MorrowindScript\",\n \"myghty\": \"Myghty\",\n \"mysql\": \"MySQL\",\n \"mariadb\": \"MySQL\",\n \"nasm\": \"NASM\",\n \"newspeak\": \"Newspeak\",\n \"nginx\": \"Nginx configuration file\",\n \"nim\": \"Nim\",\n \"nimrod\": \"Nim\",\n \"nixos\": \"Nix\",\n \"nix\": \"Nix\",\n \"objective-c\": \"Objective-C\",\n \"objectivec\": \"Objective-C\",\n \"obj-c\": \"Objective-C\",\n \"objc\": \"Objective-C\",\n \"ocaml\": \"OCaml\",\n \"octave\": \"Octave\",\n \"ones\": \"OnesEnterprise\",\n \"onesenterprise\": \"OnesEnterprise\",\n \"1S\": \"OnesEnterprise\",\n \"1S:Enterprise\": \"OnesEnterprise\",\n \"openedge\": \"OpenEdge ABL\",\n \"abl\": \"OpenEdge ABL\",\n \"progress\": \"OpenEdge ABL\",\n \"openedgeabl\": \"OpenEdge ABL\",\n \"openscad\": \"OpenSCAD\",\n \"org\": \"Org Mode\",\n \"orgmode\": \"Org Mode\",\n \"pacmanconf\": \"PacmanConf\",\n \"perl\": \"Perl\",\n \"pl\": \"Perl\",\n \"php\": \"PHP\",\n \"php3\": \"PHP\",\n \"php4\": \"PHP\",\n \"php5\": \"PHP\",\n \"phtml\": \"PHTML\",\n \"pig\": \"Pig\",\n \"pkgconfig\": \"PkgConfig\",\n \"plpgsql\": \"PL/pgSQL\",\n \"text\": \"plaintext\",\n \"plain\": \"plaintext\",\n \"no-highlight\": \"plaintext\",\n \"plutus-core\": \"Plutus Core\",\n \"plc\": \"Plutus Core\",\n \"pony\": \"Pony\",\n \"postgresql\": \"PostgreSQL SQL dialect\",\n \"postgres\": \"PostgreSQL SQL dialect\",\n \"postscript\": \"PostScript\",\n \"postscr\": \"PostScript\",\n \"pov\": \"POVRay\",\n \"powerquery\": \"PowerQuery\",\n \"pq\": \"PowerQuery\",\n \"powershell\": \"PowerShell\",\n \"posh\": \"PowerShell\",\n \"ps1\": \"PowerShell\",\n \"psm1\": \"PowerShell\",\n \"psd1\": \"PowerShell\",\n \"prolog\": \"Prolog\",\n \"promql\": \"PromQL\",\n \"protobuf\": \"Protocol Buffer\",\n \"proto\": \"Protocol Buffer\",\n \"puppet\": \"Puppet\",\n \"python\": \"Python\",\n \"py\": \"Python\",\n \"sage\": \"Python\",\n \"python3\": \"Python\",\n \"py3\": \"Python\",\n \"python2\": \"Python 2\",\n \"py2\": \"Python 2\",\n \"qbasic\": \"QBasic\",\n \"basic\": \"QBasic\",\n \"qml\": \"QML\",\n \"qbs\": \"QML\",\n \"splus\": \"R\",\n \"s\": \"R\",\n \"r\": \"R\",\n \"racket\": \"Racket\",\n \"rkt\": \"Racket\",\n \"ragel\": \"Ragel\",\n \"perl6\": \"Raku\",\n \"pl6\": \"Raku\",\n \"raku\": \"Raku\",\n \"jsx\": \"react\",\n \"react\": \"react\",\n \"reason\": \"ReasonML\",\n \"reasonml\": \"ReasonML\",\n \"registry\": \"reg\",\n \"rst\": \"reStructuredText\",\n \"rest\": \"reStructuredText\",\n \"restructuredtext\": \"reStructuredText\",\n \"rexx\": \"Rexx\",\n \"arexx\": \"Rexx\",\n \"rb\": \"Ruby\",\n \"ruby\": \"Ruby\",\n \"duby\": \"Ruby\",\n \"rust\": \"Rust\",\n \"rs\": \"Rust\",\n \"sas\": \"SAS\",\n \"sass\": \"Sass\",\n \"scala\": \"Scala\",\n \"scheme\": \"Scheme\",\n \"scm\": \"Scheme\",\n \"scilab\": \"Scilab\",\n \"scss\": \"SCSS\",\n \"sieve\": \"Sieve\",\n \"smalltalk\": \"Smalltalk\",\n \"squeak\": \"Smalltalk\",\n \"st\": \"Smalltalk\",\n \"smarty\": \"Smarty\",\n \"snobol\": \"Snobol\",\n \"sol\": \"Solidity\",\n \"solidity\": \"Solidity\",\n \"sparql\": \"SPARQL\",\n \"sql\": \"SQL\",\n \"squidconf\": \"SquidConf\",\n \"squid\\\\.conf\": \"SquidConf\",\n \"squid\": \"SquidConf\",\n \"sml\": \"Standard ML\",\n \"stylus\": \"Stylus\",\n \"svelte\": \"Svelte\",\n \"swift\": \"Swift\",\n \"systemd\": \"SYSTEMD\",\n \"systemverilog\": \"systemverilog\",\n \"sv\": \"systemverilog\",\n \"tablegen\": \"TableGen\",\n \"tasm\": \"TASM\",\n \"tcl\": \"Tcl\",\n \"tcsh\": \"Tcsh\",\n \"csh\": \"Tcsh\",\n \"termcap\": \"Termcap\",\n \"terminfo\": \"Terminfo\",\n \"terraform\": \"Terraform\",\n \"tf\": \"Terraform\",\n \"tex\": \"TeX\",\n \"latex\": \"TeX\",\n \"thrift\": \"Thrift\",\n \"toml\": \"TOML\",\n \"tradingview\": \"TradingView\",\n \"tv\": \"TradingView\",\n \"tsql\": \"Transact-SQL\",\n \"t-sql\": \"Transact-SQL\",\n \"turing\": \"Turing\",\n \"turtle\": \"Turtle\",\n \"twig\": \"Twig\",\n \"ts\": \"TypeScript\",\n \"tsx\": \"TypeScript\",\n \"typescript\": \"TypeScript\",\n \"typoscript\": \"TypoScript\",\n \"typoscriptcssdata\": \"TypoScriptCssData\",\n \"typoscripthtmldata\": \"TypoScriptHtmlData\",\n \"v\": \"verilog\",\n \"vlang\": \"V\",\n \"vsh\": \"V shell\",\n \"vshell\": \"V shell\",\n \"vb\\\\.net\": \"VB.net\",\n \"vbnet\": \"VB.net\",\n \"verilog\": \"verilog\",\n \"vhdl\": \"VHDL\",\n \"vim\": \"VimL\",\n \"vue\": \"vue\",\n \"vuejs\": \"vue\",\n \"whiley\": \"Whiley\",\n \"xml\": \"XML\",\n \"xorg\\\\.conf\": \"Xorg\",\n \"yaml\": \"YAML\",\n \"yang\": \"YANG\",\n \"zed\": \"Zed\",\n \"zig\": \"Zig\",\n // Custom code type\n \"markdown\": \"markdown\",\n \"yml\": \"YAML\"\n) !default;\n", + "// Theme colors\n$primary: #1772ee !default;\n$secondary: #919191 !default;\n$success: #13ce66 !default;\n$info: #0dcaf0 !default;\n$warning: #ffba00 !default;\n$danger: #ff4949 !default;\n\n// Theme colors map\n$theme-colors: (\n 'primary': $primary,\n 'secondary': $secondary,\n 'success': $success,\n 'info': $info,\n 'warning': $warning,\n 'danger': $danger\n) !default;\n", + "// Utilities\n\n// property order\n$orders: (\n first: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n last: 6,\n) !default;", + "// ==============================\n// Override Variables\n// 覆盖变量\n// ==============================\n", + "@import '_compatibility';\n@import '_link';\n@import '_blur';\n@import '_details';\n@import '_z-index';\n", + "@mixin border-radius($value) {\n -webkit-border-radius: $value;\n -moz-border-radius: $value;\n border-radius: $value;\n}\n\n@mixin box-shadow($values...) {\n -webkit-box-shadow: $values;\n box-shadow: $values;\n}\n\n@mixin transition($values...) {\n -webkit-transition: $values;\n -moz-transition: $values;\n -o-transition: $values;\n transition: $values;\n}\n\n@mixin transform($value) {\n -webkit-transform: $value;\n -ms-transform: $value;\n -o-transform: $value;\n transform: $value;\n}\n\n@mixin filter($value) {\n -webkit-filter: $value;\n filter: $value;\n}\n\n@mixin flex($value) {\n -webkit-flex: $value;\n flex: $value;\n}\n\n@mixin box($orient) {\n display: -moz-box;\n display: -webkit-box;\n display: box;\n\n -webkit-box-orient: $orient;\n -moz-box-orient: $orient;\n box-orient: $orient;\n}\n\n@mixin placeholder($color) {\n input::-webkit-input-placeholder {\n color: $color;\n }\n\n input:-moz-placeholder {\n color: $color;\n }\n\n input::-moz-placeholder {\n color: $color;\n }\n\n input:-ms-input-placeholder {\n color: $color;\n }\n\n input::placeholder {\n color: $color;\n }\n}\n\n@mixin max-content($property) {\n #{$property}: -webkit-max-content;\n #{$property}: -moz-max-content;\n #{$property}: intrinsic;\n #{$property}: max-content;\n}\n\n@mixin tab-size($value) {\n -moz-tab-size: $value;\n -o-tab-size: $value;\n tab-size: $value;\n}\n\n@mixin appearance($value) {\n -moz-appearance: $value;\n -webkit-appearance: $value;\n}\n\n@mixin overflow-wrap($value) {\n word-wrap: $value;\n overflow-wrap: $value;\n}\n\n@mixin line-break($value) {\n -webkit-line-break: $value;\n -ms-line-break: $value;\n line-break: $value;\n}\n\n@mixin object-fit($value) {\n -o-object-fit: $value;\n object-fit: $value;\n font-family: 'object-fit: #{$value};';\n}\n\n@mixin user-select($value) {\n -webkit-user-select: $value !important;\n -moz-user-select: $value !important;\n user-select: $value !important;\n}\n", + "@mixin link($light, $dark) {\n a,\n a::before,\n a::after {\n text-decoration: none;\n\n @if $light {\n color: $global-link-color;\n }\n\n @else {\n color: $single-link-color;\n }\n\n [data-theme='dark'] & {\n @if $dark {\n color: $global-link-color-dark;\n }\n\n @else {\n color: $single-link-color-dark;\n }\n }\n }\n\n a:active,\n a:hover {\n @if $light {\n color: $global-link-hover-color;\n }\n\n @else {\n color: $single-link-hover-color;\n }\n\n [data-theme='dark'] & {\n @if $dark {\n color: $global-link-hover-color-dark;\n }\n\n @else {\n color: $single-link-hover-color-dark;\n }\n }\n }\n}\n", + "@mixin blur {\n .blur & {\n @include filter(blur(1.5px));\n }\n}\n", + "@mixin details-transition-open {\n @include transition(max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s);\n}\n\n@mixin details-transition-close {\n @include transition(max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s);\n}\n", + "@mixin z-index($level, $diff: 0) {\n z-index: ($level * 100) + $diff;\n}\n", + ":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Theme colors varibles\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}-dark: #{darken($value, 5%)};\n }\n\n // Scroll margin top and Stack sticky top related\n --#{$prefix}scroll-mt: calc(#{$header-height} + #{$global-scroll-margin-top});\n --#{$prefix}breadcrumb-offset: 2.5rem;\n}\n", + "@import \"../../lib/normalize/normalize\";\n\nhtml {\n font-family: $global-font-family;\n font-weight: $global-font-weight;\n font-display: swap;\n font-size: $global-font-size;\n line-height: $global-line-height;\n width: 100%;\n scroll-behavior: smooth;\n overflow: overlay;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n html {\n scroll-behavior: auto;\n }\n}\n\n/* scrollbar, only support webkit */\n::-webkit-scrollbar {\n width: 0.5rem;\n height: 0.5rem;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: $scrollbar-color;\n @include border-radius($global-border-radius);\n\n &:hover {\n background-color: $scrollbar-hover-color;\n }\n}\n\n::selection {\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n}\n\nbody {\n background-color: $global-background-color;\n color: $global-font-color;\n scrollbar-color: auto;\n @include overflow-wrap(break-word);\n\n &::-webkit-scrollbar {\n width: 0.75rem;\n height: 0.75rem;\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: transparent;\n background-clip: content-box;\n border: 2px solid transparent;\n @include border-radius(0.5rem);\n }\n\n &[data-scroll]::-webkit-scrollbar-thumb {\n background-color: $scrollbar-color;\n }\n\n &[data-theme='dark'] {\n color: $global-font-color-dark;\n background-color: $global-background-color-dark;\n }\n}\n\niframe {\n border: 0;\n @include border-radius($global-border-radius);\n}\n\n[role='button'] {\n cursor: pointer;\n}\n\nsummary {\n cursor: pointer;\n}\n\nabbr[title] {\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\n@include link(true, true);\n\n@import '../_partials/mask';\n@import '../_partials/img';\n@import '../_partials/icon';\n@import '../_partials/details';\n@import '../_partials/widgets';\n", + "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n", + "#mask {\n background-repeat: no-repeat;\n background-position: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0);\n @include z-index(0, -1);\n\n .blur & {\n @include z-index(1);\n background-color: rgba(0, 0, 0, 0.25);\n }\n}\n", + "img {\n @include border-radius($global-border-radius/2);\n}\n", + "svg.icon {\n display: inline-block;\n width: 1.25em;\n height: 1em;\n text-align: center;\n\n path {\n fill: currentColor;\n }\n}\n\nimg.emoji {\n display: inline-block;\n height: 1em;\n width: 1em;\n margin: 0 0.05em 0 0.1em;\n vertical-align: -0.1em;\n}\n\n.fixit-icon {\n display: inline-block;\n height: 1.5em;\n width: 1.5em;\n line-height: 1.5em;\n position: relative;\n vertical-align: text-bottom;\n}\n", + ".details {\n .details-summary {\n @include border-radius($global-border-radius);\n\n &:hover {\n cursor: pointer;\n }\n }\n\n i.details-icon {\n color: $global-font-secondary-color;\n @include transition(transform 0.2s ease);\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .details-content {\n max-height: 0;\n overflow-y: hidden;\n @include details-transition-open;\n }\n\n &.open {\n .details-summary {\n @include border-radius($global-border-radius $global-border-radius 0 0);\n }\n\n i.details-icon {\n @include transform(rotate(90deg));\n }\n\n .details-content {\n max-height: 100%;\n @include border-radius(0 0 $global-border-radius $global-border-radius);\n @include details-transition-close;\n }\n }\n}\n", + "@import '_widgets/cookieconsent';\n@import '_widgets/fixed-button';\n@import '_widgets/github-corner';\n@import '_widgets/noscript-warning';\n@import '_widgets/reading-progress';\n@import '_widgets/typeit';\n", + ".cc-window.cc-banner {\n .cc-btn {\n color: $global-font-color;\n\n &:hover,\n &:focus {\n background-color: #ccc;\n }\n\n [data-theme='dark'] & {\n color: $global-font-color;\n\n &:hover,\n &:focus {\n background-color: #fff;\n }\n }\n }\n}\n", + ".fixed-button {\n position: fixed;\n right: 1.5rem;\n font-size: 1rem;\n line-height: 1.5rem;\n padding: 0.5rem 0.625rem;\n color: $global-font-secondary-color;\n background-color: $header-background-color;\n @include z-index(1);\n @include border-radius(1.25rem);\n @include transition(color 0.4s ease);\n @include blur;\n @extend .print-d-none;\n\n &:hover,\n &:active {\n color: $global-font-color;\n cursor: pointer;\n }\n\n &:active,\n &:focus,\n &:hover {\n outline: none;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n background-color: $header-background-color-dark;\n\n &:hover,\n &:active {\n color: $global-font-color-dark;\n }\n }\n}\n\n.back-to-top {\n bottom: 1.5rem;\n}\n\n.view-comments {\n bottom: 4.5rem;\n}\n", + "@keyframes octocat-wave {\n 0%,\n 100% {\n @include transform(rotate(0));\n }\n 20%,\n 60% {\n @include transform(rotate(-25deg));\n }\n 40%,\n 80% {\n @include transform(rotate(10deg));\n }\n}\n\n.github-corner {\n position: fixed;\n top: 0;\n @include z-index(2);\n @extend .print-d-none;\n\n :hover .octo-arm {\n animation: octocat-wave 560ms ease-in-out;\n }\n svg {\n width: $header-height;\n height: $header-height;\n border: 0;\n color: $github-corner-color;\n fill: $github-corner-fill;\n\n [data-theme='dark'] & {\n color: $github-corner-color-dark;\n fill: $github-corner-fill-dark;\n }\n }\n &.left {\n left: 0;\n\n svg {\n @include transform(scale(-1, 1));\n }\n }\n &.right {\n right: 0;\n }\n}\n", + ".noscript-warning {\n background-color: var(--#{$prefix}danger);\n color: white;\n font-size: 1rem;\n font-weight: bold;\n position: fixed;\n text-align: center;\n left: 0;\n bottom: 0;\n width: 100%;\n @include z-index(2);\n\n [data-theme='dark'] & {\n background-color: var(--#{$prefix}danger-dark);\n }\n}\n", + ".reading-progress-bar {\n --progress: 0;\n height: var(--progress-h, 2px);\n width: var(--progress);\n background-color: var(--bg-progress, var(--#{$prefix}info));\n position: fixed;\n @include z-index(2);\n @extend .print-d-none;\n \n [data-theme=\"dark\"] & {\n background-color: var(--bg-progress-dark, var(--#{$prefix}info-dark));\n }\n}\n", + ".typeit {\n .highlight {\n padding: 0.375rem;\n font-size: 0.875rem;\n font-family: $code-font-family;\n font-weight: bold;\n word-break: break-all;\n white-space: pre-wrap;\n }\n\n --ti-cursor-font-family: #{$global-font-family};\n --ti-cursor-font-size: #{$global-font-size};\n --ti-cursor-font-style: normal;\n --ti-cursor-font-weight: #{$global-font-weight};\n --ti-cursor-line-height: #{$global-line-height};\n --ti-cursor-color: #{$global-font-color};\n --ti-cursor-transform: translateX(0);\n\n [data-theme='dark'] & {\n --ti-cursor-color: #{$global-font-color-dark};\n }\n}\n", + "/** Layout **/\n.wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n width: 100%;\n\n main {\n flex: 1 0 auto;\n\n aside {\n flex: 1;\n padding-inline: 0.5rem;\n\n &:first-child {\n order: 2;\n }\n }\n \n\n &.container {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 0 1rem;\n\n &.container-reverse {\n flex-direction: row-reverse;\n }\n\n &:has(.home:not(.posts)) {\n align-items: center;\n }\n }\n }\n}\n\n@import \"_core/header\";\n@import \"_core/breadcrumb\";\n@import \"_core/footer\";\n@import \"_core/pagination\";\n", + "header {\n width: 100%;\n background-color: $header-background-color;\n @include z-index(2);\n @include transition(box-shadow 0.3s ease);\n @extend .print-d-none;\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n\n &:hover {\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.1));\n }\n }\n}\n\n.header-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n\n.header-title {\n font-family: $header-title-font-family;\n font-weight: bold;\n margin-right: 0.5rem;\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n @include flex(10);\n\n .logo {\n min-height: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n width: auto;\n }\n\n .header-title-text {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .header-subtitle {\n margin-left: 0.25rem;\n font-size: 0.6em;\n }\n}\n\n.menu {\n margin: 0;\n padding: 0;\n\n .menu-item {\n list-style: none;\n\n & .dropdown-icon {\n margin-left: 0.25rem;\n font-size: .875em;\n color: $global-font-color;\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n }\n\n &.open::before {\n content: \"\\f078\";\n }\n }\n\n &.active {\n >.menu-link,\n >.nested-item>.menu-link {\n font-weight: bold;\n color: $menu-active-color;\n\n [data-theme='dark'] & {\n color: $menu-active-color-dark;\n }\n }\n }\n\n &.language-switch,\n &.theme-switch {\n cursor: pointer;\n }\n }\n}\n\n.search {\n position: relative;\n\n input {\n color: transparent;\n box-sizing: border-box;\n height: 2.5rem;\n width: 1.25rem;\n @include border-radius(0.5rem);\n border: none;\n outline: none;\n background-color: transparent;\n vertical-align: baseline !important;\n @include transition(width 0.3s ease);\n }\n\n @include placeholder(transparent);\n\n .search-button {\n margin: 0;\n position: absolute;\n left: auto;\n right: 1rem;\n }\n\n .search-toggle {\n left: 0.5rem;\n right: auto;\n\n #header-desktop.open & {\n left: 1rem;\n }\n }\n\n .search-loading {\n display: none;\n }\n\n .search-clear {\n display: none;\n }\n\n .open &,\n &.mobile {\n input {\n color: $global-font-color;\n background-color: $search-background-color;\n padding: 0 2rem 0 2rem;\n }\n\n [data-theme='dark'] & {\n input {\n color: $global-font-color-dark;\n background-color: $search-background-color-dark;\n }\n\n @include placeholder($global-font-secondary-color-dark);\n }\n\n @include placeholder($global-font-secondary-color);\n\n .search-button {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .search-clear:hover {\n color: #ff6b6b;\n }\n\n .search-toggle:hover {\n cursor: default;\n }\n }\n}\n\n.theme-switch {\n i {\n @include transform(rotate(225deg));\n @include transition(transform 0.4s ease);\n }\n\n &:hover i {\n @include transform(rotate(45deg));\n }\n}\n\n#header-desktop {\n display: block;\n position: sticky;\n top: 0;\n height: $header-height;\n line-height: $header-height;\n box-sizing: border-box;\n\n [data-header-desktop='normal'] & {\n position: static;\n }\n\n nav {\n overflow: hidden;\n white-space: nowrap;\n }\n\n .header-wrapper {\n // use css native function to calculate max value\n padding: 0 2rem 0 MAX(10vh, $header-height);\n height: 100%;\n\n &[data-github-corner='right'] {\n padding-right: $header-height;\n }\n\n .header-title {\n font-size: $header-title-font-size;\n height: 100%;\n }\n\n .menu {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n float: right;\n\n >.menu-item {\n &:hover .sub-menu {\n display: block;\n @include transform(translateX(-0.5rem));\n }\n &.language-switch:hover .sub-menu {\n @include transform(translateX(calc(1.75rem - 100%)));\n }\n }\n\n .menu-item {\n padding: 0 0.5rem;\n\n &.delimiter {\n width: 0;\n margin: 0.125rem 0.25rem;\n padding: 0;\n border-left: 1px dashed lighten($global-font-secondary-color, 15%);\n\n [data-theme='dark'] & {\n border-left-color: darken($global-font-secondary-color-dark, 15%);\n }\n }\n }\n\n .sub-menu {\n position: absolute;\n margin: 0;\n padding: 0.25rem 0;\n display: none;\n top: calc(#{$header-height} - 0.75rem);\n border-radius: $global-border-radius;\n border: 1px solid $global-border-color;\n background-color: $header-background-color;\n @include transition(box-shadow 0.3s ease);\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n border-color: $global-border-color-dark;\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.1));\n }\n\n .menu-item {\n height: $header-height*0.5;\n line-height: $header-height*0.5;\n max-width: 15rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n }\n }\n }\n\n &.open .header-wrapper .menu .menu-item.search {\n input {\n width: 24rem;\n }\n }\n}\n\n#header-mobile {\n display: none;\n position: sticky;\n top: 0;\n min-height: $header-height;\n line-height: $header-height;\n\n [data-header-mobile='normal'] & {\n position: static;\n }\n\n .header-container {\n padding: 0;\n margin: 0;\n\n .header-wrapper {\n padding: 0 1rem;\n font-size: 1.125rem;\n @include transition(margin-top 0.3s ease);\n\n .header-title {\n font-size: $header-title-font-size;\n max-width: 80%;\n }\n\n .menu-toggle {\n line-height: 4rem;\n cursor: pointer;\n @include transition(width 0.3s ease);\n\n span {\n display: block;\n background: $global-font-color;\n width: 1.5rem;\n height: 2px;\n @include border-radius(3px);\n @include transition(all 0.3s ease-in-out);\n\n [data-theme='dark'] & {\n background: $global-font-color-dark;\n }\n }\n\n span:nth-child(1) {\n margin-bottom: 0.5rem;\n }\n\n span:nth-child(3) {\n margin-top: 0.5rem;\n }\n\n &.active {\n span:nth-child(1) {\n @include transform(rotate(45deg) translate(0.4rem, 0.5rem));\n }\n\n span:nth-child(2) {\n opacity: 0;\n }\n\n span:nth-child(3) {\n @include transform(rotate(-45deg) translate(0.4rem, -0.5rem));\n }\n }\n }\n }\n\n .menu {\n background: $header-background-color;\n border-top: 2px solid $global-border-color;\n display: none;\n overflow-y: overlay;\n max-height: 70vh;\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0.125rem 0.25rem rgba(255, 255, 255, 0.1));\n }\n \n &::-webkit-scrollbar {\n width: 0;\n }\n\n .search-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n padding: ($header-height - 2.5rem) / 2 1rem;\n line-height: 2.5rem;\n position: sticky;\n top: 0;\n background-color: $header-background-color;\n @include z-index(0, 50);\n \n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n }\n\n .search {\n flex-grow: 10;\n\n .algolia-autocomplete,\n input {\n width: 100%;\n }\n }\n\n .search-loading,\n .search-clear {\n right: 0.5rem;\n }\n\n .search-button {\n top: 0;\n }\n\n .search-cancel {\n display: none;\n margin-left: 0.75rem;\n }\n\n .menu-item {\n display: block;\n position: relative;\n line-height: 2.5rem;\n padding: 0 1rem;\n\n &:not(.menu-system):hover {\n background-color: lighten($global-font-secondary-color, 24%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 24%);\n }\n }\n\n .menu-link {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n @include flex(4);\n }\n\n & .nested-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .menu-link {\n max-width: 80%;\n }\n }\n }\n\n .menu-system {\n display: flex;\n justify-content: center;\n gap: 0.25rem;\n position: sticky;\n bottom: 0;\n line-height: 2.5rem;\n padding: 0 1rem;\n background-color: $header-background-color;\n \n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n\n .menu-system-item {\n padding-inline: 0.5rem;\n }\n\n .language-switch {\n position: relative;\n\n .language-select {\n position: absolute;\n opacity: 0;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .sub-menu {\n padding-left: 0;\n display: none;\n\n &.open {\n display: block;\n }\n\n .menu-item:hover {\n background-color: lighten($global-font-secondary-color, 20%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 20%);\n }\n }\n }\n\n &.active {\n display: block;\n }\n\n [data-theme='dark'] & {\n background: $header-background-color-dark;\n border-top-color: $global-border-color-dark;\n }\n }\n }\n\n &.open {\n .header-wrapper {\n margin-top: -$header-height;\n }\n\n .menu {\n padding-top: 0;\n border-top: none;\n\n .menu-item {\n display: none;\n }\n\n .search-cancel {\n display: inline;\n }\n }\n }\n}\n\n.search-dropdown {\n position: fixed;\n top: $header-height;\n @include z-index(2);\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0.125rem 0.25rem rgba(255, 255, 255, 0.1));\n }\n\n &.desktop {\n right: 2rem;\n width: 30rem;\n }\n\n &.mobile {\n right: 0;\n width: 100%;\n }\n\n .dropdown-menu {\n right: 0 !important;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n\n .suggestions {\n overflow-y: auto;\n max-height: calc(100vh - #{$header-height});\n\n .suggestion {\n padding: 0.75rem 1rem;\n\n .suggestion-title {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 1rem;\n font-weight: bold;\n max-width: 75%;\n }\n\n .suggestion-date {\n font-size: 0.875rem;\n float: right;\n text-align: right;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .suggestion-context {\n line-height: 1.25rem;\n @include box(vertical);\n -webkit-line-clamp: 2;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n em {\n font-style: normal;\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n }\n\n &.cursor {\n background: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background: lighten($code-background-color-dark, 5%);\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n }\n }\n\n .search-empty {\n padding: 1rem;\n text-align: center;\n\n .search-query {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n }\n\n .search-footer {\n padding: 0.5rem 1rem;\n float: right;\n font-size: 0.8rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n\n a {\n font-size: 1rem;\n }\n }\n }\n}\n", + ".breadcrumb-container {\n padding-inline: 1rem;\n font-size: 0.75rem;\n @include z-index(1);\n @extend .print-d-none;\n\n &.sticky {\n position: sticky;\n top: $header-height;\n }\n\n .breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.5rem 0;\n margin: 0 auto;\n list-style: none;\n border-bottom: 1px inset $global-border-color;\n background-color: $global-background-color;\n @extend %page-style;\n\n [data-theme='dark'] & {\n border-bottom-color: $global-border-color-dark;\n background-color: $global-background-color-dark;\n }\n\n .breadcrumb-item {\n display: flex;\n\n +.breadcrumb-item::before {\n content: \"/\";\n display: inline-block;\n padding-inline: 0.5rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n &.active {\n @extend .text-secondary;\n }\n }\n }\n}\n", + "footer {\n height: auto;\n width: 100%;\n text-align: center;\n line-height: 1.25rem;\n padding: 1rem 0;\n @extend .print-d-none;\n\n .footer-container {\n display: flex;\n flex-direction: column;\n font-size: 0.875rem;\n\n .footer-line {\n width: 100%;\n\n .footer-divider:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .fixit-icon {\n top: 0.25em;\n }\n\n .animate-icon {\n color: #dc143c;\n animation: icon-animate 1.33s ease-in-out infinite;\n }\n\n .run-times {\n font-variant-numeric: tabular-nums lining-nums;\n }\n }\n }\n\n @include blur;\n}\n\n@keyframes icon-animate {\n 0%,\n 100% {\n @include transform(scale(1));\n }\n\n 10%,\n 30% {\n @include transform(scale(0.9));\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n @include transform(scale(1.1));\n }\n\n 50%,\n 70% {\n @include transform(scale(1.1));\n }\n}\n", + ".pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n flex-wrap: wrap;\n list-style: none;\n white-space: nowrap;\n width: 100%;\n padding: 1rem 0;\n\n a {\n font-size: 0.8rem;\n color: $pagination-link-color;\n letter-spacing: 0.1rem;\n font-weight: 700;\n padding: 5px 5px;\n text-decoration: none;\n @include transition(0.3s);\n\n [data-theme='dark'] & {\n color: $pagination-link-color-dark;\n }\n }\n\n li {\n padding: 5px;\n margin: 0 10px;\n box-sizing: border-box;\n position: relative;\n display: inline;\n\n &.disabled {\n display: none;\n }\n\n &:hover a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] &:hover a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n position: absolute;\n content: '';\n width: 0;\n height: 3px;\n background: $pagination-link-hover-color;\n @include transition(0.3s);\n bottom: 0px;\n }\n\n [data-theme='dark'] &::before,\n [data-theme='dark'] &::after {\n background: $pagination-link-hover-color-dark;\n }\n\n &::before {\n left: 50%;\n }\n\n &::after {\n right: 50%;\n }\n\n &:hover {\n &::before,\n &::after {\n width: 50%;\n }\n }\n\n &.active {\n a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] & a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n width: 50%;\n }\n }\n }\n}\n", + "// ==============================\n// Common Styles\n// 常用样式\n// ==============================\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-start {\n text-align: left !important;\n}\n.text-end {\n text-align: right !important;\n}\n.text-center {\n text-align: center !important;\n}\n\n.d-none {\n display: none !important;\n}\n.d-none-desktop {\n display: none;\n}\n.d-none-mobile {\n display: block;\n}\n\n.ms-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n.me-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n.ps-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n.pe-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n@each $color, $value in $theme-colors {\n .text-#{$color} {\n color: #{$value} !important;\n\n [data-theme='dark'] & {\n color: #{darken($value, 5%)} !important;\n }\n }\n}\n\n@each $key, $value in $orders {\n .order-#{$key} {\n order: #{$value} !important;\n }\n}\n\n.variant-numeric {\n font-variant-numeric: tabular-nums lining-nums;\n}\n", + "/* Resolve style conflicts between third-party plugins */\n\n@keyframes #{$prefix}pulse {\n from {\n @include transform(scale3d(1, 1, 1));\n }\n\n 50% {\n @include transform(scale3d(1.05, 1.05, 1.05));\n }\n\n to {\n @include transform(scale3d(1, 1, 1));\n }\n}\n\n.animate__pulse {\n -webkit-animation-name: #{$prefix}pulse !important;\n animation-name: #{$prefix}pulse !important;\n}\n", + ".page {\n position: relative;\n @extend %page-style;\n\n .content {\n [id] {\n scroll-margin-top: var(--#{$prefix}scroll-mt);\n }\n }\n\n @include blur;\n}\n\n@import '_single';\n@import '_special';\n@import '_archive';\n@import '_home';\n@import '_404';\n@import '_offline';\n@import '_friends';\n", + "@import '../_partials/_single/toc';\n@import '../_partials/_single/fixit-decryptor';\n\n.single {\n .single-title {\n padding: 1rem 0 0.5rem;\n margin: 0;\n font-size: 1.6rem;\n font-weight: bold;\n line-height: 140%;\n \n .icon-repost {\n color: var(--#{$prefix}success);\n display: inline-block;\n width: max-content;\n margin-right: 0.25rem;\n\n [data-theme='dark'] & {\n color: var(--#{$prefix}success-dark);\n }\n }\n }\n\n .single-subtitle {\n margin: 0.5rem 0;\n font-size: 1.2rem;\n font-weight: normal;\n line-height: 100%;\n }\n\n .post-meta {\n font-size: 0.875rem;\n color: $global-font-secondary-color;\n\n .comment-visitors,\n .comment-count {\n @extend .print-d-none;\n }\n\n span {\n display: inline-block;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, true);\n\n .author {\n font-size: 1.05rem;\n \n img.avatar {\n width: 1.3rem;\n height: 1.3rem;\n border-radius: 50%;\n vertical-align: text-bottom;\n border: 0.25px solid $global-border-color;\n box-sizing: border-box;\n object-position: center;\n @include object-fit(cover);\n\n [data-theme='dark'] & {\n border-color: $global-border-color-dark;\n }\n }\n }\n }\n\n .featured-image {\n margin: 0.5rem 0 1rem 0;\n\n img {\n display: block;\n width: 100%;\n max-width: 100%;\n height: auto;\n margin: 0 auto;\n overflow: hidden;\n }\n }\n\n #content[data-end-flag]:not([data-password])::after {\n content: attr(data-end-flag);\n display: block;\n text-align: center;\n color: $global-font-secondary-color;\n font-size: 15px;\n padding: 5px;\n }\n\n .content {\n > h1,\n > h2 {\n font-size: 1.5rem;\n\n & code {\n font-size: 1.25rem;\n }\n }\n\n > h3 {\n font-size: 1.375rem;\n\n & code {\n font-size: 1.125rem;\n }\n }\n\n > h4 {\n font-size: 1.25rem;\n\n & code {\n font-size: 1rem;\n }\n }\n\n > h5 {\n font-size: 1.125rem;\n }\n\n > h6 {\n font-size: 1rem;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: bold;\n margin: 1.2rem 0;\n\n [data-theme='dark'] & {\n font-weight: bolder;\n }\n }\n\n > h2,\n > h3,\n > h4,\n > h5,\n > h6 {\n > .header-mark::before {\n content: '|';\n margin-right: 0.3125rem;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n }\n\n > h2 > .header-mark::before {\n content: '#';\n }\n\n p {\n margin: 0.5rem 0;\n }\n\n b,\n strong {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n\n @include link(false, false);\n\n a {\n white-space: normal;\n @include overflow-wrap(break-word);\n\n [data-theme='dark'] & b,\n [data-theme='dark'] & strong {\n color: $single-link-color-dark;\n }\n }\n\n [data-theme='dark'] a:hover b,\n [data-theme='dark'] a:hover strong {\n color: $single-link-hover-color-dark;\n }\n\n ul,\n ol {\n margin: 0.5rem 0;\n padding-left: 2.5rem;\n }\n\n ul {\n list-style-type: disc;\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .table-wrapper {\n overflow-x: auto;\n\n &::-webkit-scrollbar {\n background-color: $table-background-color;\n\n [data-theme='dark'] & {\n background-color: $table-background-color-dark;\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin: 0.625rem 0;\n border-spacing: 0;\n background: $table-background-color;\n border-collapse: collapse;\n\n [data-theme='dark'] & {\n background: $table-background-color-dark;\n }\n\n thead {\n background: $table-thead-color;\n\n [data-theme='dark'] & {\n background-color: $table-thead-color-dark;\n }\n }\n\n &:not([class]) tbody {\n & tr:nth-child(odd) {\n background: darken($table-background-color, 2.25%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 2.75%);\n }\n }\n \n & tr:hover {\n background: darken($table-background-color, 4.5%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 5.5%);\n }\n }\n }\n\n th,\n td {\n padding: 0.3rem 1rem;\n border: 1px solid darken($table-thead-color, 2%);\n\n [data-theme='dark'] & {\n border-color: darken($table-thead-color-dark, 2%);\n }\n }\n }\n }\n\n img {\n max-width: 100%;\n min-height: 1em;\n\n &:not([data-h]) {\n height: auto;\n }\n\n &.version {\n height: 1.25em;\n vertical-align: text-bottom;\n }\n }\n svg {\n max-width: 100%;\n }\n\n figure {\n margin: 0.5rem;\n text-align: center;\n\n .image-caption:not(:empty) {\n min-width: 20%;\n max-width: 80%;\n display: inline-block;\n padding: 0.5rem;\n margin: 0 auto;\n font-size: 0.875rem;\n color: #969696;\n }\n\n img {\n display: block;\n margin: 0 auto;\n overflow: hidden;\n\n &:not([width]) {\n width: 100%;\n }\n }\n }\n\n blockquote {\n display: block;\n border-left: 0.25em solid $global-border-color;\n color: $blockquote-color;\n padding: 0 1em;\n margin: 1rem 0;\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n [data-theme='dark'] & {\n color: $blockquote-color-dark;\n border-left-color: $global-border-color-dark;\n }\n\n @include link(false, true);\n }\n\n .footnotes {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n p {\n margin: 0.25rem 0;\n }\n }\n\n @import '../_partials/_single/code';\n @import '../_shortcodes';\n\n hr {\n margin: 1rem 0;\n position: relative;\n border-top: 1px dashed $global-border-color;\n border-bottom: none;\n\n [data-theme='dark'] & {\n border-top: 1px dashed $global-border-color-dark;\n }\n }\n\n kbd {\n display: inline-block;\n padding: 0 0.25rem;\n background-color: $global-background-color;\n border: 1px solid $global-border-color;\n border-bottom-color: $global-border-color;\n font-size: 0.8rem;\n font-family: $code-font-family;\n color: $code-color;\n @include border-radius($global-border-radius);\n @include box-shadow(inset 0 -1px 0 $global-border-color);\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n border: 1px solid $global-border-color-dark;\n border-bottom-color: $global-border-color-dark;\n color: $code-color-dark;\n @include box-shadow(inset 0 -1px 0 $global-border-color-dark);\n }\n }\n }\n\n @import '../_partials/_single/reward';\n @import '../_partials/_single/footer';\n @import '../_partials/_single/comment';\n}\n\n.lg-toolbar .lg-icon::after {\n color: #999;\n}\n", + ".toc {\n .toc-title {\n font-size: $toc-title-font-size;\n font-weight: bold;\n text-transform: uppercase;\n }\n\n .toc-content {\n font-size: $toc-content-font-size;\n\n ul {\n text-indent: -0.8rem;\n padding-left: 0.8rem;\n list-style: none;\n\n a:first-child::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5rem;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n\n ul {\n padding-left: 1.5rem;\n }\n }\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n#toc-auto {\n display: block;\n position: sticky;\n top: var(--#{$prefix}scroll-mt);\n box-sizing: border-box;\n visibility: hidden;\n @include z-index(1);\n @include overflow-wrap(break-word);\n @include blur;\n @extend .print-d-none;\n\n [data-header-desktop='normal'] & {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n\n .toc-title {\n margin: 0.5rem 0;\n cursor: pointer;\n @include user-select(none);\n\n &::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5rem;\n color: $global-border-color;\n\n [data-theme='dark'] & {\n color: $global-border-color-dark;\n }\n }\n\n i.toc-icon {\n @include transition(transform 0.2s ease);\n }\n }\n\n &.toc-hidden i.toc-icon {\n @include transform(rotate(-90deg));\n @include transition(transform 0.2s ease);\n }\n\n .toc-content {\n overflow-y: scroll;\n max-height: calc(100vh - #{2*$header-height});\n \n &::-webkit-scrollbar {\n width: 0;\n }\n\n &.always-active ul {\n display: block;\n }\n\n > nav > ul {\n margin: 0;\n }\n\n ul {\n ul {\n display: none;\n }\n\n .has-active > ul {\n display: block;\n }\n }\n\n a.active {\n font-weight: bold;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n\n &::before {\n color: $single-link-hover-color;\n\n [data-theme='dark'] & {\n color: $single-link-hover-color-dark;\n }\n }\n }\n }\n}\n\n#toc-static {\n display: none;\n margin: 0.8rem 0;\n\n &[data-kept='true'] {\n display: block;\n }\n\n .toc-title {\n display: flex;\n justify-content: space-between;\n line-height: 2em;\n padding: 0 0.75rem;\n background: darken($code-background-color, 3%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 6%);\n }\n }\n\n .toc-content {\n background-color: $code-background-color;\n\n > nav > ul {\n margin: 0;\n padding: 0.4rem 1rem 0.4rem 1.8rem;\n }\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n }\n\n &.open {\n .toc-title {\n background: darken($code-background-color, 6%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 3%);\n }\n }\n }\n}\n", + ".fixit-decryptor-container {\n font-family: $global-font-family;\n text-align: center;\n margin-top: 3rem;\n\n .fixit-encryptor-shortcode & {\n margin-top: 1rem;\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input,\n .fixit-encryptor-btn {\n display: inline-block;\n box-sizing: border-box;\n outline: none;\n color: $global-font-color;\n border: 1px solid darken($global-border-color, 15%);\n border-radius: $global-border-radius;\n @include transition(all 0.1s ease-out);\n box-shadow: 0px 0px 5px 0px darken($global-border-color, 15%);\n\n &:active,\n &:focus,\n &:hover {\n color: darken($global-link-hover-color, 6%);\n border-color: $global-link-hover-color;\n box-shadow: 0px 0px 5px 0px lighten($global-link-hover-color, 20%);\n\n [data-theme='dark'] & {\n color: lighten($global-link-hover-color-dark, 6%);\n border-color: $global-link-hover-color-dark;\n box-shadow: 0px 0px 5px 0px darken($global-link-hover-color-dark, 20%);\n }\n }\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-color: lighten($global-border-color-dark, 15%);\n box-shadow: 0px 0px 5px 0px lighten($global-border-color-dark, 15%);\n }\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input {\n width: clamp(50%, 400px, 100%);\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n }\n\n .fixit-encryptor-btn {\n cursor: pointer;\n @include transition(all 0.1s ease-out);\n padding: 0.6rem 1rem;\n\n background-color: $header-background-color;\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n }\n}\n", + "// inline code\ncode {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: $code-font-size;\n font-family: $code-font-family;\n color: $code-color;\n background-color: rgba(175, 184, 193, 0.2);\n text-decoration: inherit;\n @include border-radius($global-border-radius);\n @include overflow-wrap(break-word);\n @include line-break(auto);\n\n [data-theme='dark'] & {\n color: $code-color-dark;\n background-color: rgba(99, 110, 123, 0.4);\n }\n}\n\n// indented code\npre {\n margin: 0;\n line-height: 1.45em;\n padding: 0.5rem;\n overflow: auto;\n font-size: $code-font-size;\n font-family: $code-font-family;\n @include border-radius($global-border-radius);\n @include tab-size(4);\n\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n code {\n padding: 0;\n background-color: transparent;\n @include border-radius(0);\n @include max-content(min-width);\n\n [data-theme='dark'] & {\n background-color: transparent;\n }\n }\n\n img {\n min-height: 1em;\n max-height: 1.2em;\n vertical-align: text-bottom;\n }\n}\n\n.highlight,\n.gist {\n font-size: $code-font-size;\n font-family: $code-font-family;\n\n .table-wrapper {\n > table,\n > table thead,\n > table tr,\n > table td {\n margin: 0;\n padding: 0;\n border: none !important;\n white-space: nowrap;\n }\n }\n}\n\n// block fenced code\n.highlight {\n margin: 0.5rem 0;\n\n > .chroma {\n position: relative;\n\n .code-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n font-family: $global-font-family;\n font-weight: bold;\n line-height: 1.4em;\n color: $code-info-color;\n background-color: darken($code-background-color, 3%);\n @include border-radius($global-border-radius);\n @include transition(border-radius 0.2s ease);\n\n [data-theme='dark'] & {\n color: $code-info-color-dark;\n background-color: darken($code-background-color-dark, 6%);\n }\n\n &:hover {\n cursor: pointer;\n }\n\n .ellipses,\n .edit,\n .copy {\n @extend .print-d-none;\n }\n\n .code-title {\n width: 100%;\n padding: 0.4rem;\n\n .arrow {\n padding: 0 0.2rem;\n @include transition(transform 0.2s ease);\n }\n\n .title-inner {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n .code-title::after {\n padding-left: 0.2rem;\n content: 'Code';\n }\n\n .ellipses {\n padding: 0.4rem;\n }\n\n .edit,\n .copy {\n display: none;\n padding: 0.4rem;\n\n &:hover {\n cursor: pointer;\n color: $global-link-hover-color;\n\n [data-theme='dark'] & {\n color: $global-link-hover-color-dark;\n }\n }\n }\n\n @each $type, $text in $code-type-map {\n &.language-#{$type} .code-title::after {\n content: $text;\n }\n }\n }\n\n // delayed loading table-wrapper\n .table-wrapper {\n max-height: 0;\n overflow: hidden;\n @include border-radius(0 0 $global-border-radius $global-border-radius);\n @include details-transition-open;\n }\n\n table {\n border-spacing: 0;\n width: auto;\n overflow: auto;\n display: block;\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n td {\n vertical-align: top;\n padding: 0;\n }\n\n pre {\n padding: 0.25rem;\n outline-offset: -1px;\n @include border-radius(0);\n }\n\n /* lineNumbersInTable=false */\n .ln {\n min-width: 1.25rem;\n }\n\n // ========== lineNumbersInTable ========== //\n // line numbers\n .lntd:first-child {\n min-width: 1.6rem;\n text-align: right;\n position: sticky;\n left: 0;\n\n pre {\n @include user-select(none);\n }\n }\n // code content\n .lntd:last-child {\n width: 100%;\n\n pre {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n code {\n width: 100%;\n }\n }\n // ========== lineNumbersInTable ========== //\n }\n\n &.open {\n .code-header {\n background-color: darken($code-background-color, 6%);\n @include border-radius($global-border-radius $global-border-radius 0 0);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 3%);\n }\n }\n\n .table-wrapper {\n max-height: 100%;\n @include details-transition-close;\n }\n\n .arrow {\n @include transform(rotate(90deg));\n }\n\n .ellipses {\n display: none;\n }\n\n .edit,\n .copy {\n display: inline;\n }\n }\n }\n\n /* LineHighlight */\n .hl {\n display: block;\n background-color: $code-hightlight-color;\n box-shadow: -0.5rem 0 0 $code-hightlight-color, 0.5rem 0 0 $code-hightlight-color;\n\n [data-theme='dark'] & {\n background-color: $code-hightlight-color-dark;\n box-shadow: -0.5rem 0 0 $code-hightlight-color-dark, 0.5rem 0 0 $code-hightlight-color-dark;\n }\n }\n /* GenericUnderline */\n .gl {\n text-decoration: underline;\n }\n /* GenericStrong */\n .gs {\n font-weight: bold;\n }\n /* GenericEmph */\n .ge {\n font-style: italic;\n }\n /* lineNumbersInTable=false */\n .ln {\n padding-right: 0.5rem;\n display: inline-block;\n min-width: 1.1rem;\n text-align: right;\n }\n /* LineNumbers */\n .lnt,\n .ln {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n // ========== Higtlight Color ========== //\n\n /* Error */\n .err {\n font-style: italic;\n border-bottom: 1px dotted $code-error-color;\n }\n /* GenericDeleted */\n .gd {\n background-color: #ffebe9;\n\n [data-theme='dark'] & {\n background-color: #78191b;\n }\n }\n /* GenericInserted */\n .gi {\n background-color: #dafbe1;\n\n [data-theme='dark'] & {\n background-color: #1b4721;\n }\n }\n\n @each $class, $color in $code-highlight-color-map {\n .#{$class} {\n color: $color;\n }\n }\n\n [data-theme='dark'] & {\n @each $class, $color in $code-highlight-color-map-dark {\n .#{$class} {\n color: $color;\n }\n }\n }\n // ========== Higtlight Color ========== //\n}\n\n// gist shortcode\n.gist {\n .gist-file,\n .gist-data,\n .gist-meta {\n border: none;\n }\n\n .gist-data {\n background-color: transparent;\n }\n\n .gist-meta {\n padding: 0.4rem 0.8rem;\n @include link(false, false);\n background-color: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 5%);\n }\n }\n\n .table-wrapper {\n .highlight,\n &::-webkit-scrollbar {\n background-color: #f6f8fa;\n\n [data-theme='dark'] & {\n background-color: #2d333b;\n }\n }\n }\n\n [data-theme='dark'] & {\n @import './github-dark-dimmed';\n }\n}\n", + "/**\n * Theme: GitHub Dark Dimmed\n * Description: Dark Dimmed theme as seen on github.com\n * Author: github.com\n * Maintainer: https://github.com/hugo-fixit/FixIt\n * Updated: 2022-03-01\n */\n& {\n --color-fg-default: #adbac7;\n --color-prettylights-syntax-comment: #768390;\n --color-prettylights-syntax-constant: #6cb6ff;\n --color-prettylights-syntax-entity: #dcbdfb;\n --color-prettylights-syntax-storage-modifier-import: #adbac7;\n --color-prettylights-syntax-entity-tag: #8ddb8c;\n --color-prettylights-syntax-keyword: #f47067;\n --color-prettylights-syntax-string: #96d0ff;\n --color-prettylights-syntax-variable: #f69d50;\n --color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;\n --color-prettylights-syntax-invalid-illegal-text: #cdd9e5;\n --color-prettylights-syntax-invalid-illegal-bg: #922323;\n --color-prettylights-syntax-carriage-return-text: #cdd9e5;\n --color-prettylights-syntax-carriage-return-bg: #ad2e2c;\n --color-prettylights-syntax-string-regexp: #8ddb8c;\n --color-prettylights-syntax-markup-list: #eac55f;\n --color-prettylights-syntax-markup-heading: #316dca;\n --color-prettylights-syntax-markup-italic: #adbac7;\n --color-prettylights-syntax-markup-bold: #adbac7;\n --color-prettylights-syntax-markup-deleted-text: #ffd8d3;\n --color-prettylights-syntax-markup-deleted-bg: #78191b;\n --color-prettylights-syntax-markup-inserted-text: #b4f1b4;\n --color-prettylights-syntax-markup-inserted-bg: #1b4721;\n --color-prettylights-syntax-markup-changed-text: #ffddb0;\n --color-prettylights-syntax-markup-changed-bg: #682d0f;\n --color-prettylights-syntax-markup-ignored-text: #adbac7;\n --color-prettylights-syntax-markup-ignored-bg: #255ab2;\n --color-prettylights-syntax-meta-diff-range: #dcbdfb;\n --color-prettylights-syntax-brackethighlighter-angle: #768390;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;\n --color-prettylights-syntax-constant-other-reference-link: #96d0ff;\n\n .blob-num,\n .blob-code-inner {\n color: val(--color-fg-default);\n }\n\n .pl-c /* comment, punctuation.definition.comment, string.comment */ {\n color: var(--color-prettylights-syntax-comment);\n }\n\n .pl-c1 /* constant, entity.name.constant, variable.other.constant, variable.language, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header, meta.output */,\n .pl-s .pl-v /* string variable */ {\n color: var(--color-prettylights-syntax-constant);\n }\n\n .pl-e /* entity */,\n .pl-en /* entity.name */ {\n color: var(--color-prettylights-syntax-entity);\n }\n\n .pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */,\n .pl-s .pl-s1 /* string source */ {\n color: var(--color-prettylights-syntax-storage-modifier-import);\n }\n\n .pl-ent /* entity.name.tag, markup.quote */ {\n color: var(--color-prettylights-syntax-entity-tag);\n }\n\n .pl-k /* keyword, storage, storage.type */ {\n color: var(--color-prettylights-syntax-keyword);\n }\n\n .pl-s /* string */,\n .pl-pds /* punctuation.definition.string, source.regexp, string.regexp.character-class */,\n .pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,\n .pl-sr /* string.regexp */,\n .pl-sr .pl-cce /* string.regexp constant.character.escape */,\n .pl-sr .pl-sre /* string.regexp source.ruby.embedded */,\n .pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ {\n color: var(--color-prettylights-syntax-string);\n }\n\n .pl-v /* variable */,\n .pl-smw /* sublimelinter.mark.warning */ {\n color: var(--color-prettylights-syntax-variable);\n }\n\n .pl-bu /* invalid.broken, invalid.deprecated, invalid.unimplemented, message.error, brackethighlighter.unmatched, sublimelinter.mark.error */ {\n color: var(--color-prettylights-syntax-brackethighlighter-unmatched);\n }\n\n .pl-ii /* invalid.illegal */ {\n color: var(--color-prettylights-syntax-invalid-illegal-text);\n background-color: var(--color-prettylights-syntax-invalid-illegal-bg);\n }\n\n .pl-c2 /* carriage-return */ {\n color: var(--color-prettylights-syntax-carriage-return-text);\n background-color: var(--color-prettylights-syntax-carriage-return-bg);\n }\n\n .pl-c2::before /* carriage-return */ {\n content: '^M';\n }\n\n .pl-sr .pl-cce /* string.regexp constant.character.escape */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-string-regexp);\n }\n\n .pl-ml /* markup.list */ {\n color: var(--color-prettylights-syntax-markup-list);\n }\n\n .pl-mh /* markup.heading */,\n .pl-mh .pl-en /* markup.heading entity.name */,\n .pl-ms /* meta.separator */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-markup-heading);\n }\n\n .pl-mi /* markup.italic */ {\n font-style: italic;\n color: var(--color-prettylights-syntax-markup-italic);\n }\n\n .pl-mb /* markup.bold */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-markup-bold);\n }\n\n .pl-md /* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */ {\n color: var(--color-prettylights-syntax-markup-deleted-text);\n background-color: var(--color-prettylights-syntax-markup-deleted-bg);\n }\n\n .pl-mi1 /* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */ {\n color: var(--color-prettylights-syntax-markup-inserted-text);\n background-color: var(--color-prettylights-syntax-markup-inserted-bg);\n }\n\n .pl-mc /* markup.changed, punctuation.definition.changed */ {\n color: var(--color-prettylights-syntax-markup-changed-text);\n background-color: var(--color-prettylights-syntax-markup-changed-bg);\n }\n\n .pl-mi2 /* markup.ignored, markup.untracked */ {\n color: var(--color-prettylights-syntax-markup-ignored-text);\n background-color: var(--color-prettylights-syntax-markup-ignored-bg);\n }\n\n .pl-mdr /* meta.diff.range */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-meta-diff-range);\n }\n\n .pl-ba /* brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote */ {\n color: var(--color-prettylights-syntax-brackethighlighter-angle);\n }\n\n .pl-sg /* sublimelinter.gutter-mark */ {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n }\n\n .pl-corl /* constant.other.reference.link, string.other.link */ {\n text-decoration: underline;\n color: var(--color-prettylights-syntax-constant-other-reference-link);\n }\n}\n", + "@import '_admonition';\n@import '_bilibili';\n@import '_cardlink';\n@import '_center-quote';\n@import '_echarts';\n@import '_instagram';\n@import '_mapbox';\n@import '_mermaid';\n", + ".admonition {\n position: relative;\n margin: 1rem 0;\n padding: 0 0.75rem;\n border-left: .25rem solid;\n overflow: auto;\n @include border-radius($global-border-radius);\n\n .admonition-title {\n font-weight: bold;\n margin: 0 -0.75rem;\n padding: 0.25rem 1.8rem;\n border-bottom: 1px solid;\n @include border-radius(0);\n }\n\n .admonition-content {\n padding: 0.5rem 0;\n }\n\n i.icon {\n font-size: 0.85rem;\n position: absolute;\n top: 0.6rem;\n left: 0.4rem;\n }\n\n i.details-icon {\n position: absolute;\n top: 0.6rem;\n right: 0.3rem;\n }\n\n @each $type, $color, $background-color in $admonition-color-map {\n @if $type == 'note' {\n background-color: $background-color;\n border-left-color: $color;\n\n .admonition-title {\n border-bottom-color: $background-color;\n background-color: opacify($background-color, 0.15);\n }\n\n &.open .admonition-title {\n background-color: $background-color;\n }\n\n i.icon {\n color: $color;\n }\n }\n \n @else {\n &.#{$type} {\n background-color: $background-color;\n border-left-color: $color;\n\n .admonition-title {\n border-bottom-color: $background-color;\n background-color: opacify($background-color, 0.15);\n }\n\n &.open .admonition-title {\n background-color: $background-color;\n }\n\n i.icon {\n color: $color;\n }\n }\n }\n }\n\n &:last-child {\n margin-bottom: 0.75rem;\n }\n}\n", + ".bilibili {\n position: relative;\n width: 100%;\n height: 0;\n padding-bottom: 75%;\n margin: 3% auto;\n text-align: center;\n\n iframe {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n }\n}\n", + "/**\n * Card link style\n * @author @Lruihao https://lruihao.cn\n */\n\n.card-link {\n position: relative;\n display: block;\n margin: 0.5rem auto;\n box-sizing: border-box;\n width: clamp(50%, 400px, 100%);\n max-width: 100%;\n overflow: hidden;\n text-decoration: none;\n border: none;\n @include border-radius(0.75rem);\n}\n\n.cl- {\n &backdrop {\n position: absolute;\n top: 0.75rem;\n bottom: 0.75rem;\n left: 0;\n right: 0;\n background-image: var(--cl-bg-url);\n background-repeat: no-repeat;\n filter: blur(0.5rem);\n opacity: 0.5;\n background-size: contain;\n background-position: center;\n }\n\n &content {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem;\n background-color: rgba(245, 245, 245, 0.88);\n }\n\n &text {\n overflow: hidden;\n }\n\n &title {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n overflow: hidden;\n max-height: calc(1rem * 1.25 * 2);\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.25;\n color: $global-font-color;\n }\n\n &meta {\n display: flex;\n align-items: center;\n margin-top: 0.25rem;\n font-size: 0.825rem;\n color: $global-font-secondary-color;\n }\n\n &icon-link {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n margin-right: 0.25rem;\n }\n\n &url {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &icon-globe {\n width: 4rem;\n height: 4rem;\n flex-shrink: 0;\n margin-left: 0.25rem;\n }\n\n [data-theme='dark'] & {\n &content {\n background-color: rgba(61, 62, 65, 0.88);\n }\n\n &title {\n color: $global-font-color-dark;\n }\n\n &meta {\n color: $global-font-secondary-color-dark;\n }\n }\n}\n", + ".blockquote-center {\n border-left: none;\n margin: 40px 0;\n padding: 0;\n position: relative;\n text-align: center;\n color: initial;\n\n &::after,\n &::before {\n left: 0;\n line-height: 1;\n opacity: 0.6;\n position: absolute;\n width: 100%;\n }\n\n &::before {\n border-top: 1px solid $global-border-color;\n text-align: left;\n top: -20px;\n content: '\\f10d';\n font-family: 'Font Awesome 5 Free';\n font-weight: 900;\n\n [data-theme='dark'] & {\n border-top-color: $global-border-color-dark;\n }\n }\n\n &::after {\n border-bottom: 1px solid $global-border-color;\n bottom: -20px;\n text-align: right;\n content: '\\f10e';\n font-family: 'Font Awesome 5 Free';\n font-weight: 900;\n\n [data-theme='dark'] & {\n border-bottom-color: $global-border-color-dark;\n }\n }\n}\n", + ".echarts {\n margin: 0.5rem 0;\n text-align: center;\n}\n", + "iframe.instagram-media {\n [data-theme='dark'] & {\n border: none !important;\n }\n}\n", + ".mapbox {\n margin: 0.5rem 0;\n padding: 0.5rem 0;\n @include border-radius($global-border-radius);\n}\n", + ".mermaid {\n text-align: center;\n\n svg {\n max-width: 100%;\n height: auto; \n }\n}\n", + ".post-reward {\n padding: 1rem;\n text-align: center;\n @extend .print-d-none;\n\n &~.post-footer {\n margin-top: 0;\n }\n\n &:has(.reward-ways:empty) {\n display: none;\n }\n\n .comment {\n margin: 0.5rem 0;\n font-weight: 500;\n }\n\n .reward-ways {\n display: none;\n }\n\n .reward-input:checked~.reward-ways {\n display: block;\n padding-top: 20px;\n\n div {\n display: inline-block;\n @include user-select(none);\n \n span {\n display: block;\n }\n \n &:hover span[data-animation] {\n animation: var(--animation-reward, jackInTheBox) 0.8s infinite linear;\n // The animation may affect :hover of img in dark mode\n pointer-events: none;\n }\n \n img {\n display: inline-block;\n margin: 0.8em 2em 0;\n max-width: 100%;\n width: $reward-img-width;\n }\n }\n\n // `fixed` mode only supports desktop\n &[data-mode='fixed'] {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 1rem;\n background-color: $global-background-color;\n @include z-index(2);\n @include border-radius($global-border-radius);\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.2));\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.2));\n }\n }\n }\n\n .reward-button {\n display: inline-block;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n color: lighten($reward-color, 5%);\n border: 2px solid lighten($reward-color, 10%);\n border-radius: $global-border-radius;\n padding: 0.6rem 1rem;\n background-color: $global-background-color;\n vertical-align: text-top;\n line-height: 1rem;\n @include transition(all 0.3s ease-out);\n\n &:active,\n &:hover {\n color: #ffffff;\n border-color: $reward-color;\n background-color: $reward-color;\n\n [data-theme='dark'] & {\n color: #ffffff;\n border-color: $reward-color-dark;\n background-color: $reward-color-dark;\n }\n }\n\n [data-theme='dark'] & {\n color: $reward-color;\n border-color: lighten($reward-color, 5%);\n background-color: $global-background-color-dark;\n }\n }\n}\n", + ".post-footer {\n margin: 2rem 0;\n\n &:has(~.post-reward) {\n margin-bottom: 0;\n }\n\n .post-info {\n border-bottom: 1px solid $global-border-color;\n padding: 1rem 0 0.3rem;\n\n [data-theme='dark'] & {\n border-bottom: 1px solid $global-border-color-dark;\n }\n\n .post-info-line {\n display: flex;\n justify-content: space-between;\n\n .post-info-mod {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-license {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-md {\n font-size: 0.8rem;\n width: fit-content;\n\n @include link(false, false);\n\n >span:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n }\n\n .post-info-share {\n @extend .print-d-none;\n a * {\n vertical-align: text-bottom;\n }\n }\n }\n }\n\n .post-info-more {\n padding: 0.3rem 0 1rem;\n display: flex;\n justify-content: space-between;\n font-size: 0.9rem;\n\n section:last-child {\n @extend .print-d-none;\n }\n }\n\n .post-tags {\n max-width: 65%;\n\n * {\n display: inline;\n }\n\n @include link(true, true);\n\n .post-tag:not(:last-child)::after {\n content: ',';\n margin-right: 0.25rem;\n }\n }\n\n .post-nav {\n display: flex;\n justify-content: space-between;\n gap: 1.5rem;\n @extend .print-d-none;\n\n .post-nav-item {\n flex: 1;\n font-size: 1rem;\n font-weight: 600;\n @include transition(all 0.3s ease-out);\n\n &[rel='next'] {\n text-align: right;\n }\n\n &[rel='prev']:hover {\n @include transform(translateX(-4px));\n }\n\n &[rel='next']:hover {\n @include transform(translateX(4px));\n }\n }\n }\n}\n", + ">#comments {\n padding: 2rem 0;\n @extend .print-d-none;\n}\n", + ".special {\n .single-title,\n .single-subtitle {\n text-align: right;\n }\n}\n", + ".archive {\n .single-title {\n padding: 1rem 0 0.5rem;\n margin: 0;\n font-size: 1.6rem;\n font-weight: bold;\n line-height: 140%;\n text-align: right;\n }\n\n .single-subtitle {\n margin: 0.5rem 0;\n font-size: 1.2rem;\n font-weight: normal;\n line-height: 100%;\n text-align: right;\n }\n\n .group-title {\n font-size: 1.2rem;\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n }\n\n @import '../_partials/_archive/terms';\n @import '../_partials/_archive/tags';\n}\n", + ".categories-card {\n margin: 0 auto;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex-direction: row;\n flex-wrap: wrap;\n line-height: 1.6rem;\n\n .card-item {\n font-size: 0.875rem;\n text-align: left;\n width: 45%;\n display: flex;\n align-items: flex-start;\n min-height: 10rem;\n padding: 0 2%;\n position: relative;\n\n &:nth-child(n+3){\n margin-top: 2rem;\n }\n\n .card-item-wrapper {\n width: 100%;\n overflow: hidden;\n\n .card-item-title {\n font-size: 1.2rem;\n font-weight: bold;\n display: inline-block;\n margin-top: 1rem;\n margin-bottom: 0.75rem;\n }\n\n span {\n float: right;\n padding-right: 1rem;\n }\n }\n }\n}\n\n.archive-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n margin: 0.25rem 0 0.25rem 1.5rem;\n}\n\n.archive-item-link {\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover {\n color: $global-link-hover-color;\n background-color: transparent;\n }\n\n [data-theme='dark'] & {\n color: $global-link-color-dark;\n\n &:hover {\n color: $global-link-hover-color-dark;\n }\n }\n}\n\n.archive-item-date {\n text-align: right;\n color: $global-font-secondary-color;\n white-space: nowrap;\n font-variant-numeric: tabular-nums lining-nums;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n}\n\n.more-post {\n text-align: right;\n}\n", + ".tag-cloud-tags {\n margin: 10px 0;\n\n @include link(true, true);\n\n a {\n display: inline-block;\n position: relative;\n margin: 5px 10px;\n @include overflow-wrap(break-word);\n @include transition(all ease-out 0.3s);\n\n &:active,\n &:focus,\n &:hover {\n @include transform(scale(1.2));\n\n sup {\n color: $global-font-color;\n @include transition(all ease-out 0.3s);\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n }\n }\n }\n\n sup {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n@for $grade from 0 through 10 {\n $tag-cloud-color: mix($tag-cloud-end, $tag-cloud-start, $grade * 10);\n $tag-cloud-color-dark: mix($tag-cloud-end-dark, $tag-cloud-start-dark, $grade * 10);\n\n .tag-cloud-#{$grade} {\n color: $tag-cloud-color!important;\n font-size: var(--tag-font);\n margin: 10px!important;\n\n &:active,\n &:focus,\n &:hover {\n color: $global-link-hover-color!important;\n\n [data-theme='dark'] & {\n color: $global-link-hover-color-dark;\n }\n\n sup {\n opacity: 1;\n }\n }\n\n [data-theme='dark'] & {\n color: $tag-cloud-color-dark!important;\n }\n\n sup {\n opacity: 0;\n }\n }\n}\n", + ".home {\n .home-profile {\n text-align: center;\n\n .home-avatar {\n padding: 0.5rem;\n\n img {\n display: inline-block;\n width: 8rem;\n height: auto;\n margin: 0 auto;\n @include border-radius(100%);\n @include box-shadow(0 0 0 0.3618em rgba(0, 0, 0, 0.05));\n @include transition(all 0.4s ease);\n\n [data-theme='dark'] & {\n @include box-shadow(0 0 0 0.3618em rgba(255, 255, 255, 0.05));\n }\n\n &:hover {\n position: relative;\n @include transform(translateY(-0.75rem));\n }\n }\n }\n\n .home-title {\n font-size: 1.25rem;\n font-weight: bold;\n margin: 0;\n padding: 0.5rem;\n }\n\n .home-subtitle {\n font-size: 1rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n }\n\n .links {\n padding: 0.5rem;\n font-size: 1.5rem;\n\n a * {\n vertical-align: text-bottom;\n }\n\n img {\n height: 1.5rem;\n padding: 0 0.25rem;\n }\n }\n\n .home-disclaimer {\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n.home.posts {\n .home-profile {\n padding: 2rem 0;\n }\n\n .home-avatar img {\n width: 6rem;\n }\n\n .summary {\n padding-top: 1rem;\n padding-bottom: 0.8rem;\n color: $global-font-color;\n border-bottom: 1px dashed $global-border-color;\n\n &:first-of-type {\n padding-top: 0;\n }\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-bottom: 1px dashed $global-border-color-dark;\n }\n\n .featured-image-preview {\n width: 100%;\n padding: 30% 0 0;\n position: relative;\n margin: 0.6rem auto;\n @include transition(transform 0.4s ease);\n\n img {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n @include object-fit(cover);\n }\n\n &:hover {\n @include transform(scale(1.01));\n }\n }\n\n .single-title {\n font-size: 1.25rem;\n line-height: 140%;\n margin: 0.4rem 0;\n }\n\n .content {\n @include box(vertical);\n -webkit-line-clamp: 3;\n margin-top: 0.3rem;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n font-size: 1rem;\n line-height: 1.5;\n display: inline;\n\n &::after {\n content: '\\A';\n white-space: pre;\n }\n }\n\n h2 {\n font-size: 1.125rem;\n }\n\n @include link(false, true);\n\n b,\n strong {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .post-footer {\n margin-top: 0.4rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.875rem;\n\n @include link(false, false);\n\n .post-tags {\n padding: 0;\n\n @include link(true, true);\n \n .post-tag:not(:last-child)::after {\n content: ',';\n margin-right: 0.25rem;\n }\n }\n }\n }\n}\n", + "#content-404 {\n font-size: 1.8rem;\n line-height: 3rem;\n @include transform(translateY(30vh));\n text-align: center;\n}\n", + "#content-offline {\n @include transform(translateY(30vh));\n text-align: center;\n\n .offline-title {\n font-size: 3.6rem;\n }\n .offline-subtitle {\n margin: 0.4rem 0;\n font-size: 1rem;\n font-weight: normal;\n font-style: italic;\n line-height: 100%;\n color: #57606a;\n }\n .error-text {\n font-size: 1.2rem;\n }\n}\n", + "/**\n * @Description: Style of layout named 'friends'.\n * @Author: Lruihao \n * @Updated: 2022/3/11 21:36\n */\n\n.friend-links {\n margin-top: 1rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n@media (max-width: 576px) {\n .friend-links {\n justify-content: space-around;\n }\n}\n.friend-link {\n width: 150px;\n height: 200px;\n font-size: 1rem;\n text-align: center;\n background: rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n box-shadow: 3px 3px 5px #aaa;\n @include border-radius($global-border-radius);\n border: none;\n transition-duration: 0.3s;\n margin-bottom: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.friend-link:hover {\n background: #fff;\n @include transform(scale(1.03));\n box-shadow: 0 0 3px #aaa;\n}\n.friend-avatar {\n object-fit: cover;\n object-position: center;\n width: 100% !important;\n height: 150px !important;\n @include border-radius($global-border-radius);\n margin: 0;\n padding: 0;\n}\n.friend-nickname {\n display: block;\n position: relative;\n color: #2bbc8a;\n font-weight: bold;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 18px;\n margin-bottom: 1rem;\n}\n.friend-nickname:hover {\n color: #d480aa;\n}\n", + "@media only screen and (min-width: 1441px) {\n %page-style {\n width: 60%;\n\n [data-page-style='wide'] & {\n width: 64%;\n }\n\n [data-page-style='narrow'] & {\n max-width: 800px;\n }\n }\n}\n\n@media only screen and (max-width: 1440px) {\n %page-style {\n width: 56%;\n\n [data-page-style='wide'] & {\n width: 60%;\n }\n }\n}\n\n@media only screen and (max-width: 1200px) {\n %page-style {\n width: 52%;\n\n [data-page-style='wide'] & {\n width: 56%;\n }\n }\n\n #header-desktop .header-wrapper {\n padding-right: 1rem;\n }\n\n .search-dropdown.desktop {\n right: 1rem;\n }\n}\n\n@media only screen and (max-width: 960px) {\n %page-style {\n width: 80% !important;\n }\n \n aside {\n display: none !important;\n }\n\n #toc-static {\n display: block;\n }\n\n #header-desktop .header-wrapper {\n padding-left: 1rem;\n }\n}\n\n\n@media only screen and (min-width: 681px) {\n .breadcrumb-container.sticky {\n body:not([data-header-desktop='sticky']) & {\n top: 0;\n }\n // adjust the scroll margin top of the content anchors on the page\n body:not([data-header-desktop='auto']) &+.container .content [id] {\n scroll-margin-top: calc(var(--#{$prefix}scroll-mt) + var(--#{$prefix}breadcrumb-offset));\n }\n }\n\n [data-header-desktop='normal'] .page .content [id] {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n}\n\n@media only screen and (max-width: 680px) {\n #header-desktop {\n display: none;\n }\n\n #header-mobile,\n .d-none-desktop {\n display: block;\n }\n\n .d-none-mobile {\n display: none !important;\n }\n\n .breadcrumb-container.sticky {\n body:not([data-header-mobile='sticky']) & {\n top: 0;\n }\n // adjust the scroll margin top of the content anchors on the page\n body:not([data-header-mobile='auto']) &+.container .content [id] {\n scroll-margin-top: calc(var(--#{$prefix}scroll-mt) + var(--#{$prefix}breadcrumb-offset));\n }\n }\n\n [data-header-mobile='normal'] .page .content [id] {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n \n %page-style {\n width: 100% !important;\n }\n\n .page {\n .categories-card {\n .card-item {\n width: 100%;\n }\n }\n }\n\n footer {\n .footer-container {\n font-size: 0.618rem;\n }\n }\n\n .pagination .page-item {\n margin: 0 5px;\n }\n}\n\n@media only print {\n @page {\n size: A4 portrait;\n margin: 1.27cm;\n }\n\n .page {\n width: 100% !important;\n padding-top: 0 !important;\n\n &.single {\n .single-title,\n .single-subtitle,\n .post-meta {\n text-align: center;\n }\n }\n\n h1:not(.single-title),\n .page-break-before {\n page-break-before: always;\n }\n\n .page-break-after {\n page-break-after: always;\n }\n }\n\n .print-d-none {\n display: none !important;\n }\n}\n", + "// ==============================\n// Custom style\n// 自定义样式\n// ==============================\n" + ], + "names": [], + "mappings": "CcAC,AAAD,IAAK,AAAC,CAKF,YAAqB,CAAe,QAAC,CAArC,cAAqB,CAAe,QAAC,CAArC,YAAqB,CAAe,QAAC,CAArC,SAAqB,CAAe,QAAC,CAArC,YAAqB,CAAe,QAAC,CAArC,WAAqB,CAAe,QAAC,CAGrC,iBAA0B,CAAoB,QAAC,CAA/C,mBAA0B,CAAoB,QAAC,CAA/C,iBAA0B,CAAoB,QAAC,CAA/C,cAA0B,CAAoB,QAAC,CAA/C,iBAA0B,CAAoB,QAAC,CAA/C,gBAA0B,CAAoB,QAAC,CAIjD,cAAqB,CAAkB,qBAAC,CACxC,sBAA6B,CAA0B,OAAC,CACzD,AEdD,4EAA4E,AAU5E,AAAA,IAAI,AAAC,CACH,WAAW,CAAE,IAAI,CACjB,wBAAwB,CAAE,IAAI,CAC/B,AASD,AAAA,IAAI,AAAC,CACH,MAAM,CAAE,CAAC,CACV,AAMD,AAAA,IAAI,AAAC,CACH,OAAO,CAAE,KAAK,CACf,AAOD,AAAA,EAAE,AAAC,CACD,SAAS,CAAE,GAAG,CACd,MAAM,CAAE,QAAQ,CACjB,AAUD,AAAA,EAAE,AAAC,CACD,UAAU,CAAE,WAAW,CACvB,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,OAAO,CAClB,AAOD,AAAA,GAAG,AAAC,CACF,WAAW,CAAE,oBAAoB,CACjC,SAAS,CAAE,GAAG,CACf,AASD,AAAA,CAAC,AAAC,CACA,gBAAgB,CAAE,WAAW,CAC9B,AAOD,AAAA,IAAI,CAAA,AAAA,KAAC,AAAA,CAAO,CACV,aAAa,CAAE,IAAI,CACnB,eAAe,CAAE,SAAS,CAC1B,eAAe,CAAE,gBAAgB,CAClC,AAMD,AAAA,CAAC,CACD,MAAM,AAAC,CACL,WAAW,CAAE,MAAM,CACpB,AAOD,AAAA,IAAI,CACJ,GAAG,CACH,IAAI,AAAC,CACH,WAAW,CAAE,oBAAoB,CACjC,SAAS,CAAE,GAAG,CACf,AAMD,AAAA,KAAK,AAAC,CACJ,SAAS,CAAE,GAAG,CACf,AAOD,AAAA,GAAG,CACH,GAAG,AAAC,CACF,SAAS,CAAE,GAAG,CACd,WAAW,CAAE,CAAC,CACd,QAAQ,CAAE,QAAQ,CAClB,cAAc,CAAE,QAAQ,CACzB,AAED,AAAA,GAAG,AAAC,CACF,MAAM,CAAE,OAAO,CAChB,AAED,AAAA,GAAG,AAAC,CACF,GAAG,CAAE,MAAM,CACZ,AASD,AAAA,GAAG,AAAC,CACF,YAAY,CAAE,IAAI,CACnB,AAUD,AAAA,MAAM,CACN,KAAK,CACL,QAAQ,CACR,MAAM,CACN,QAAQ,AAAC,CACP,WAAW,CAAE,OAAO,CACpB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,CAAC,CACV,AAOD,AAAA,MAAM,CACN,KAAK,AAAC,CACJ,QAAQ,CAAE,OAAO,CAClB,AAOD,AAAA,MAAM,CACN,MAAM,AAAC,CACL,cAAc,CAAE,IAAI,CACrB,AAMD,AAAA,MAAM,EACN,AAAA,IAAC,CAAK,QAAQ,AAAb,GACD,AAAA,IAAC,CAAK,OAAO,AAAZ,GACD,AAAA,IAAC,CAAK,QAAQ,AAAb,CAAe,CACd,kBAAkB,CAAE,MAAM,CAC3B,AAMD,AAAA,MAAM,EAAE,gBAAgB,EACxB,AAAA,IAAC,CAAK,QAAQ,AAAb,GAAgB,gBAAgB,EACjC,AAAA,IAAC,CAAK,OAAO,AAAZ,GAAe,gBAAgB,EAChC,AAAA,IAAC,CAAK,QAAQ,AAAb,GAAgB,gBAAgB,AAAC,CAChC,YAAY,CAAE,IAAI,CAClB,OAAO,CAAE,CAAC,CACX,AAMD,AAAA,MAAM,CAAC,cAAc,EACrB,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe,cAAc,EAC9B,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc,cAAc,EAC7B,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe,cAAc,AAAC,CAC7B,OAAO,CAAE,qBAAqB,CAC/B,AAMD,AAAA,QAAQ,AAAC,CACP,OAAO,CAAE,qBAAqB,CAC/B,AASD,AAAA,MAAM,AAAC,CACL,UAAU,CAAE,UAAU,CACtB,KAAK,CAAE,OAAO,CACd,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,CAAC,CACV,WAAW,CAAE,MAAM,CACpB,AAMD,AAAA,QAAQ,AAAC,CACP,cAAc,CAAE,QAAQ,CACzB,AAMD,AAAA,QAAQ,AAAC,CACP,QAAQ,CAAE,IAAI,CACf,CAOD,AAAA,AAAA,IAAC,CAAK,UAAU,AAAf,GACD,AAAA,IAAC,CAAK,OAAO,AAAZ,CAAc,CACb,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,CAAC,CACX,CAMD,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,GAAgB,yBAAyB,EAC1C,AAAA,IAAC,CAAK,QAAQ,AAAb,GAAgB,yBAAyB,AAAC,CACzC,MAAM,CAAE,IAAI,CACb,CAOD,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAAe,CACd,kBAAkB,CAAE,SAAS,CAC7B,cAAc,CAAE,IAAI,CACrB,CAMD,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,GAAgB,yBAAyB,AAAC,CACzC,kBAAkB,CAAE,IAAI,CACzB,EAOC,AAAF,0BAA4B,AAAC,CAC3B,kBAAkB,CAAE,MAAM,CAC1B,IAAI,CAAE,OAAO,CACd,AASD,AAAA,OAAO,AAAC,CACN,OAAO,CAAE,KAAK,CACf,AAMD,AAAA,OAAO,AAAC,CACN,OAAO,CAAE,SAAS,CACnB,AASD,AAAA,QAAQ,AAAC,CACP,OAAO,CAAE,IAAI,CACd,CAMD,AAAA,AAAA,MAAC,AAAA,CAAQ,CACP,OAAO,CAAE,IAAI,CACd,AD1VD,AAAA,IAAI,AAAC,CACH,WAAW,CdMQ,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CcLlN,WAAW,CdOQ,GAAG,CcNtB,YAAY,CAAE,IAAI,CAClB,SAAS,CdIQ,IAAI,CcHrB,WAAW,CdKQ,MAAM,CcJzB,KAAK,CAAE,IAAI,CACX,eAAe,CAAE,MAAM,CACvB,QAAQ,CAAE,OAAO,CAClB,AAED,MAAM,4CACJ,CAAA,AAAA,IAAI,AAAC,CACH,eAAe,CAAE,IAAI,CACtB,CAAA,EAID,AAAF,iBAAmB,AAAC,CAClB,KAAK,CAAE,MAAM,CACb,MAAM,CAAE,MAAM,CACf,EAEC,AAAF,uBAAyB,AAAC,CACxB,gBAAgB,CdqBA,OAAO,CQ9CvB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CcczB,EAPC,AAIA,uBAJuB,CAIrB,KAAK,AAAC,CACN,gBAAgB,CdoBI,OAAO,CcnB5B,EAGD,AAAF,SAAW,AAAC,CACV,gBAAgB,CdoBA,qBAAwB,CcfzC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,IAHD,SAAS,AAGa,CACpB,gBAAgB,CdkBG,oBAAuB,CcjB3C,AAGH,AAAA,IAAI,AAAC,CACH,gBAAgB,CdtBQ,IAAO,CcuB/B,KAAK,CdnBa,OAAO,CcoBzB,eAAe,CAAE,IAAI,CNyCrB,SAAS,CMxCc,UAAU,CNyCjC,aAAa,CMzCU,UAAU,CAuBlC,AA3BD,AAME,IANE,EAMC,iBAAiB,AAAC,CACnB,KAAK,CAAE,OAAO,CACd,MAAM,CAAE,OAAO,CACf,gBAAgB,CAAE,WAAW,CAC9B,AAVH,AAYE,IAZE,EAYC,uBAAuB,AAAC,CACzB,gBAAgB,CAAE,WAAW,CAC7B,eAAe,CAAE,WAAW,CAC5B,MAAM,CAAE,qBAAqB,CNxD/B,qBAAqB,CMyDI,KAAM,CNxD/B,kBAAkB,CMwDO,KAAM,CNvD/B,aAAa,CMuDY,KAAM,CAC9B,AAjBH,AAmBE,IAnBE,CAmBD,AAAA,WAAC,AAAA,GAAc,uBAAuB,AAAC,CACtC,gBAAgB,CdfF,OAAO,CcgBtB,AArBH,AAuBE,IAvBE,CAuBD,AAAA,UAAC,CAAW,MAAM,AAAjB,CAAmB,CACnB,KAAK,CdxCgB,OAAO,CcyC5B,gBAAgB,Cd7CW,OAAO,Cc8CnC,AAGH,AAAA,MAAM,AAAC,CACL,MAAM,CAAE,CAAC,CNvET,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CcwDzB,CAED,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAAe,CACd,MAAM,CAAE,OAAO,CAChB,AAED,AAAA,OAAO,AAAC,CACN,MAAM,CAAE,OAAO,CAChB,AAED,AAAA,IAAI,CAAA,AAAA,KAAC,AAAA,CAAO,CACV,MAAM,CAAE,IAAI,CACZ,wBAAwB,CAAE,IAAI,CAC/B,ALtFC,AAAA,CAAC,CACD,CAAC,EAAE,MAAM,CACT,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAGnB,KAAK,CT0BS,OAAO,CSVxB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAbH,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,EAZH,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,EAXH,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,AAGH,AAAA,CAAC,CAAC,MAAM,CACR,CAAC,CAAC,KAAK,AAAC,CAEJ,KAAK,CTSe,OAAO,CSO9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAVH,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,EATH,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,AO3CL,AAAA,KAAK,AAAC,CACJ,iBAAiB,CAAE,SAAS,CAC5B,mBAAmB,CAAE,MAAM,CAC3B,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,gBAAgB,CAAE,aAAgB,CJPlC,OAAO,CIQU,EAAC,CAMnB,AAJC,AAAA,KAAK,CAXP,KAAK,AAWK,CJVR,OAAO,CIWY,GAAC,CAClB,gBAAgB,CAAE,gBAAmB,CACtC,ACdH,AAAA,GAAG,AAAC,CTCF,qBAAqB,CSAE,KAAuB,CTC9C,kBAAkB,CSDK,KAAuB,CTE9C,aAAa,CSFU,KAAuB,CAC/C,ACFD,AAAA,GAAG,AAAA,KAAK,AAAC,CACP,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,MAAM,CACb,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,MAAM,CAKnB,AATD,AAME,GANC,AAAA,KAAK,CAMN,IAAI,AAAC,CACH,IAAI,CAAE,YAAY,CACnB,AAGH,AAAA,GAAG,AAAA,MAAM,AAAC,CACR,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,GAAG,CACX,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,gBAAgB,CACxB,cAAc,CAAE,MAAM,CACvB,AAED,AAAA,WAAW,AAAC,CACV,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,KAAK,CACZ,WAAW,CAAE,KAAK,CAClB,QAAQ,CAAE,QAAQ,CAClB,cAAc,CAAE,WAAW,CAC5B,AC1BD,AACE,QADM,CACN,gBAAgB,AAAC,CXAjB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CmBXvB,AAPH,AAII,QAJI,CACN,gBAAgB,CAGZ,KAAK,AAAC,CACN,MAAM,CAAE,OAAO,CAChB,AANL,AASE,QATM,CASN,CAAC,AAAA,aAAa,AAAC,CACb,KAAK,CnBmBqB,OAAO,CQjBnC,kBAAkB,CWDI,SAAS,CAAC,IAAI,CAAC,IAAI,CXEzC,eAAe,CWFO,SAAS,CAAC,IAAI,CAAC,IAAI,CXGzC,aAAa,CWHS,SAAS,CAAC,IAAI,CAAC,IAAI,CXIzC,UAAU,CWJY,SAAS,CAAC,IAAI,CAAC,IAAI,CAKxC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAbL,QAAQ,CASN,CAAC,AAAA,aAAa,AAIU,CACpB,KAAK,CnBgBwB,OAAO,CmBfrC,AAfL,AAkBE,QAlBM,CAkBN,gBAAgB,AAAC,CACf,UAAU,CAAE,CAAC,CACb,UAAU,CAAE,MAAM,CXRpB,kBAAkB,CGXE,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHYlE,eAAe,CGZK,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHalE,aAAa,CGbO,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHclE,UAAU,CGdU,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CQqBjE,AAtBH,AAyBI,QAzBI,AAwBL,KAAK,CACJ,gBAAgB,AAAC,CXxBnB,qBAAqB,CRiBA,GAAG,CAAH,GAAG,CmBQ+C,CAAC,CAAC,CAAC,CXxB1E,kBAAkB,CRgBG,GAAG,CAAH,GAAG,CmBQ+C,CAAC,CAAC,CAAC,CXvB1E,aAAa,CReQ,GAAG,CAAH,GAAG,CmBQ+C,CAAC,CAAC,CAAC,CACvE,AA3BL,AA6BI,QA7BI,AAwBL,KAAK,CAKJ,CAAC,AAAA,aAAa,AAAC,CXVjB,iBAAiB,CWWM,aAAa,CXVpC,aAAa,CWUU,aAAa,CXTpC,YAAY,CWSW,aAAa,CXRpC,SAAS,CWQc,aAAa,CACjC,AA/BL,AAiCI,QAjCI,AAwBL,KAAK,CASJ,gBAAgB,AAAC,CACf,UAAU,CAAE,IAAI,CXjCpB,qBAAqB,CWkCM,CAAC,CAAC,CAAC,CnBjBT,GAAG,CAAH,GAAG,CQhBxB,kBAAkB,CWiCS,CAAC,CAAC,CAAC,CnBjBT,GAAG,CAAH,GAAG,CQfxB,aAAa,CWgCc,CAAC,CAAC,CAAC,CnBjBT,GAAG,CAAH,GAAG,CQNxB,kBAAkB,CGPE,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHQjE,eAAe,CGRK,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHSjE,aAAa,CGTO,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHUjE,UAAU,CGVU,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CQgC9D,AErCL,AACE,UADQ,AAAA,UAAU,CAClB,OAAO,AAAC,CACN,KAAK,CrBuBW,OAAO,CqBRxB,AAjBH,AAII,UAJM,AAAA,UAAU,CAClB,OAAO,CAGH,KAAK,CAJX,UAAU,AAAA,UAAU,CAClB,OAAO,CAIH,KAAK,AAAC,CACN,gBAAgB,CAAE,IAAI,CACvB,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EATL,UAAU,AAAA,UAAU,CAClB,OAAO,AAQiB,CACpB,KAAK,CrBeS,OAAO,CqBTtB,CAPD,AAAA,AAGE,UAHD,CAAW,MAAM,AAAjB,EATL,UAAU,AAAA,UAAU,CAClB,OAAO,CAWD,KAAK,EAHT,AAAA,UAAC,CAAW,MAAM,AAAjB,EATL,UAAU,AAAA,UAAU,CAClB,OAAO,CAYD,KAAK,AAAC,CACN,gBAAgB,CAAE,IAAI,CACvB,ACfP,AAAA,aAAa,AAAC,CACZ,QAAQ,CAAE,KAAK,CACf,KAAK,CAAE,MAAM,CACb,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,eAAe,CACxB,KAAK,CtBuBuB,OAAO,CsBtBnC,gBAAgB,CtByDQ,OAAO,CY/D/B,OAAO,CUOU,GAAC,CdPlB,qBAAqB,CcQE,OAAO,CdP9B,kBAAkB,CcOK,OAAO,CdN9B,aAAa,CcMU,OAAO,CdG9B,kBAAkB,CcFE,KAAK,CAAC,IAAI,CAAC,IAAI,CdGnC,eAAe,CcHK,KAAK,CAAC,IAAI,CAAC,IAAI,CdInC,aAAa,CcJO,KAAK,CAAC,IAAI,CAAC,IAAI,CdKnC,UAAU,CcLU,KAAK,CAAC,IAAI,CAAC,IAAI,CAyBpC,AZlCC,AAAA,KAAK,CYDP,aAAa,AZCH,CFyBR,cAAc,CExBI,WAAW,CFyB7B,MAAM,CEzBY,WAAW,CAC5B,AYHH,AAcE,aAdW,CAcT,KAAK,CAdT,aAAa,CAeT,MAAM,AAAC,CACP,KAAK,CtBSW,OAAO,CsBRvB,MAAM,CAAE,OAAO,CAChB,AAlBH,AAoBE,aApBW,CAoBT,MAAM,CApBV,aAAa,CAqBT,KAAK,CArBT,aAAa,CAsBT,KAAK,AAAC,CACN,OAAO,CAAE,IAAI,CACd,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1BH,aAAa,AA0BW,CACpB,KAAK,CtBG0B,OAAO,CsBFtC,gBAAgB,CtBqCW,OAAO,CsB/BnC,CARD,AAAA,AAIE,UAJD,CAAW,MAAM,AAAjB,EA1BH,aAAa,CA8BP,KAAK,EAJT,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1BH,aAAa,CA+BP,MAAM,AAAC,CACP,KAAK,CtBNc,OAAO,CsBO3B,AAIL,AAAA,YAAY,AAAC,CACX,MAAM,CAAE,MAAM,CACf,AAED,AAAA,cAAc,AAAC,CACb,MAAM,CAAE,MAAM,CACf,AC3CD,UAAU,CAAV,YAAU,CACR,EAAE,CACF,IAAI,CfiBJ,iBAAiB,CehBI,SAAS,CfiB9B,aAAa,CejBQ,SAAS,CfkB9B,YAAY,CelBS,SAAS,CfmB9B,SAAS,CenBY,SAAS,CAE9B,GAAG,CACH,GAAG,CfaH,iBAAiB,CeZI,cAAc,CfanC,aAAa,CebQ,cAAc,CfcnC,YAAY,CedS,cAAc,CfenC,SAAS,CefY,cAAc,CAEnC,GAAG,CACH,GAAG,CfSH,iBAAiB,CeRI,aAAa,CfSlC,aAAa,CeTQ,aAAa,CfUlC,YAAY,CeVS,aAAa,CfWlC,SAAS,CeXY,aAAa,EAIpC,AAAA,cAAc,AAAC,CACb,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CXhBN,OAAO,CWiBU,GAAC,CA4BnB,AA/BD,AAME,cANY,EAMX,KAAK,CAAC,SAAS,AAAC,CACf,SAAS,CAAE,8BAA8B,CAC1C,AARH,AASE,cATY,CASZ,GAAG,AAAC,CACF,KAAK,CvBoCO,MAAM,CuBnClB,MAAM,CvBmCM,MAAM,CuBlClB,MAAM,CAAE,CAAC,CACT,KAAK,CvBkIa,IAAK,CuBjIvB,IAAI,CvBoCuB,OAAO,CuB9BnC,CAJC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAhBL,cAAc,CASZ,GAAG,AAOqB,CACpB,KAAK,CvB+HgB,IAAK,CuB9H1B,IAAI,CvB+BgB,OAAO,CuB9B5B,AAnBL,AAqBE,cArBY,AAqBX,KAAK,AAAC,CACL,IAAI,CAAE,CAAC,CAKR,AA3BH,AAwBI,cAxBU,AAqBX,KAAK,CAGJ,GAAG,AAAC,CfpBN,iBAAiB,CeqBM,YAAY,CfpBnC,aAAa,CeoBU,YAAY,CfnBnC,YAAY,CemBW,YAAY,CflBnC,SAAS,CekBc,YAAY,CAChC,AA1BL,AA4BE,cA5BY,AA4BX,MAAM,AAAC,CACN,KAAK,CAAE,CAAC,CACT,AC7CH,AAAA,iBAAiB,AAAC,CAChB,gBAAgB,CAAE,gBAAsC,CACxD,KAAK,CAAE,KAAK,CACZ,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,QAAQ,CAAE,KAAK,CACf,UAAU,CAAE,MAAM,CAClB,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,IAAI,CZRX,OAAO,CYSU,GAAC,CAKnB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAZH,iBAAiB,AAYO,CACpB,gBAAgB,CAAE,qBAAgD,CACnE,ACdH,AAAA,qBAAqB,AAAC,CACpB,UAAU,CAAA,EAAC,CACX,MAAM,CAAE,sBAAsB,CAC9B,KAAK,CAAE,eAAe,CACtB,gBAAgB,CAAE,kCAAsD,CACxE,QAAQ,CAAE,KAAK,CbJf,OAAO,CaKU,GAAC,CAMnB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EATH,qBAAqB,AASG,CACpB,gBAAgB,CAAE,4CAAqE,CACxF,ACXH,AAAA,OAAO,AAAC,CAUN,uBAAuB,CAAA,iLAAC,CACxB,qBAAqB,CAAA,KAAC,CACtB,sBAAsB,CAAA,OAAC,CACvB,uBAAuB,CAAA,IAAC,CACxB,uBAAuB,CAAA,OAAC,CACxB,iBAAiB,CAAA,QAAC,CAClB,qBAAqB,CAAA,cAAC,CAKvB,AArBD,AACE,OADK,CACL,UAAU,AAAC,CACT,OAAO,CAAE,QAAQ,CACjB,SAAS,CAAE,QAAQ,CACnB,WAAW,C1BqJI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,QAAQ,CAAE,MAAM,CAAE,SAAS,CAhJjD,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,C0BJhN,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,SAAS,CACrB,WAAW,CAAE,QAAQ,CACtB,CAUD,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlBH,OAAO,AAkBiB,CACpB,iBAAiB,CAAA,QAAC,CACnB,ACnBH,AAAA,QAAQ,AAAC,CACP,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,UAAU,CAAE,KAAK,CACjB,KAAK,CAAE,IAAI,CA8BZ,AAlCD,AAME,QANM,CAMN,IAAI,AAAC,CACH,IAAI,CAAE,QAAQ,CA0Bf,AAjCH,AASI,QATI,CAMN,IAAI,CAGF,KAAK,AAAC,CACJ,IAAI,CAAE,CAAC,CACP,cAAc,CAAE,MAAM,CAKvB,AAhBL,AAaM,QAbE,CAMN,IAAI,CAGF,KAAK,CAID,WAAW,AAAC,CACZ,KAAK,CAAE,CAAC,CACT,AAfP,AAmBI,QAnBI,CAMN,IAAI,AAaD,UAAU,AAAC,CACV,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,UAAU,CACvB,eAAe,CAAE,MAAM,CACvB,OAAO,CAAE,MAAM,CAShB,AAhCL,AAyBM,QAzBE,CAMN,IAAI,AAaD,UAAU,AAMR,kBAAkB,AAAC,CAClB,cAAc,CAAE,WAAW,CAC5B,AA3BP,AA6BM,QA7BE,CAMN,IAAI,AAaD,UAAU,CAUP,GAAI,CAAA,KAAK,CAAA,GAAK,CAAA,MAAM,EAAG,CACvB,WAAW,CAAE,MAAM,CACpB,AChCP,AAAA,MAAM,AAAC,CACL,KAAK,CAAE,IAAI,CACX,gBAAgB,C5B8DQ,OAAO,CY/D/B,OAAO,CgBEU,GAAC,CpBSlB,kBAAkB,CoBRE,UAAU,CAAC,IAAI,CAAC,IAAI,CpBSxC,eAAe,CoBTK,UAAU,CAAC,IAAI,CAAC,IAAI,CpBUxC,aAAa,CoBVO,UAAU,CAAC,IAAI,CAAC,IAAI,CpBWxC,UAAU,CoBXU,UAAU,CAAC,IAAI,CAAC,IAAI,CAczC,CAXC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAPH,MAAM,AAOkB,CACpB,gBAAgB,C5ByDW,OAAO,C4BxDnC,AATH,AAWE,MAXI,CAWF,KAAK,AAAC,CpBJR,kBAAkB,CoBKI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CpBJrD,UAAU,CoBIY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CAKpD,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAdL,MAAM,CAWF,KAAK,AAGiB,CpBPxB,kBAAkB,CoBQM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CpBP7D,UAAU,CoBOc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CAC1D,AAIL,AAAA,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,UAAU,CACtB,KAAK,CAAE,IAAI,CACZ,AAED,AAAA,aAAa,AAAC,CACZ,WAAW,C5BpBQ,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,C4BqBlN,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,MAAM,CACpB,SAAS,CAAE,GAAG,CACd,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CpBJvB,YAAY,CoBKE,EAAE,CpBJhB,IAAI,CoBIU,EAAE,CAkBjB,AA1BD,AAUE,aAVW,CAUX,KAAK,AAAC,CACJ,UAAU,CAAE,KAAK,CACjB,MAAM,CAAE,KAAK,CACb,cAAc,CAAE,MAAM,CACtB,KAAK,CAAE,IAAI,CACZ,AAfH,AAiBE,aAjBW,CAiBX,kBAAkB,AAAC,CACjB,WAAW,CAAE,OAAO,CACpB,YAAY,CAAE,OAAO,CACtB,AApBH,AAsBE,aAtBW,CAsBX,gBAAgB,AAAC,CACf,WAAW,CAAE,OAAO,CACpB,SAAS,CAAE,KAAK,CACjB,AAGH,AAAA,KAAK,AAAC,CACJ,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAoCX,AAtCD,AAIE,KAJG,CAIH,UAAU,AAAC,CACT,UAAU,CAAE,IAAI,CAgCjB,AArCH,AAOI,KAPC,CAIH,UAAU,CAGN,cAAc,AAAC,CACf,WAAW,CAAE,OAAO,CACpB,SAAS,CAAE,MAAM,CACjB,KAAK,C5BzCS,OAAO,C4BkDtB,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAZP,KAAK,CAIH,UAAU,CAGN,cAAc,AAKQ,CACpB,KAAK,C5B3CY,OAAO,C4B4CzB,AAdP,AAgBM,KAhBD,CAIH,UAAU,CAGN,cAAc,AASb,KAAK,EAAE,MAAM,AAAC,CACb,OAAO,CAAE,OAAO,CACjB,AAlBP,AAsBM,KAtBD,CAIH,UAAU,AAiBP,OAAO,CACL,UAAU,CAtBjB,KAAK,CAIH,UAAU,AAiBP,OAAO,CAEL,YAAY,CAAC,UAAU,AAAC,CACvB,WAAW,CAAE,IAAI,CACjB,KAAK,C5BTO,OAAO,C4BcpB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3BT,KAAK,CAIH,UAAU,AAiBP,OAAO,CACL,UAAU,EAKT,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3BT,KAAK,CAIH,UAAU,AAiBP,OAAO,CAEL,YAAY,CAAC,UAAU,AAIA,CACpB,KAAK,C5BXU,IAAI,C4BYpB,AA7BT,AAiCI,KAjCC,CAIH,UAAU,AA6BP,gBAAgB,CAjCrB,KAAK,CAIH,UAAU,AA8BP,aAAa,AAAC,CACb,MAAM,CAAE,OAAO,CAChB,AAIL,AAAA,OAAO,AAAC,CACN,QAAQ,CAAE,QAAQ,CA4EnB,AA7ED,AAGE,OAHK,CAGL,KAAK,AAAC,CACJ,KAAK,CAAE,WAAW,CAClB,UAAU,CAAE,UAAU,CACtB,MAAM,CAAE,MAAM,CACd,KAAK,CAAE,OAAO,CpBtGhB,qBAAqB,CoBuGI,KAAM,CpBtG/B,kBAAkB,CoBsGO,KAAM,CpBrG/B,aAAa,CoBqGY,KAAM,CAC7B,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,IAAI,CACb,gBAAgB,CAAE,WAAW,CAC7B,cAAc,CAAE,mBAAmB,CpBhGrC,kBAAkB,CoBiGI,KAAK,CAAC,IAAI,CAAC,IAAI,CpBhGrC,eAAe,CoBgGO,KAAK,CAAC,IAAI,CAAC,IAAI,CpB/FrC,aAAa,CoB+FS,KAAK,CAAC,IAAI,CAAC,IAAI,CpB9FrC,UAAU,CoB8FY,KAAK,CAAC,IAAI,CAAC,IAAI,CACpC,AAdH,ApBlDE,OoBkDK,CpBlDL,KAAK,EAAE,yBAAyB,AAAC,CAC/B,KAAK,CoBiEc,aAAW,CpBhE/B,AoBgDH,ApB9CE,OoB8CK,CpB9CL,KAAK,CAAC,gBAAgB,AAAC,CACrB,KAAK,CoB6Dc,aAAW,CpB5D/B,AoB4CH,ApB1CE,OoB0CK,CpB1CL,KAAK,EAAE,gBAAgB,AAAC,CACtB,KAAK,CoByDc,aAAW,CpBxD/B,AoBwCH,ApBtCE,OoBsCK,CpBtCL,KAAK,CAAC,qBAAqB,AAAC,CAC1B,KAAK,CoBqDc,aAAW,CpBpD/B,AoBoCH,ApBlCE,OoBkCK,CpBlCL,KAAK,EAAE,WAAW,AAAC,CACjB,KAAK,CoBiDc,aAAW,CpBhD/B,AoBgCH,AAkBE,OAlBK,CAkBL,cAAc,AAAC,CACb,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CACZ,AAvBH,AAyBE,OAzBK,CAyBL,cAAc,AAAC,CACb,IAAI,CAAE,MAAM,CACZ,KAAK,CAAE,IAAI,CAKZ,AAHC,AAAA,eAAe,AAAA,KAAK,CA7BxB,OAAO,CAyBL,cAAc,AAIW,CACrB,IAAI,CAAE,IAAI,CACX,AA/BL,AAkCE,OAlCK,CAkCL,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACd,AApCH,AAsCE,OAtCK,CAsCL,aAAa,AAAC,CACZ,OAAO,CAAE,IAAI,CACd,AAED,AAEE,KAFG,CA1CP,OAAO,CA4CH,KAAK,CA5CT,OAAO,AA2CJ,OAAO,CACN,KAAK,AAAC,CACJ,KAAK,C5BpHS,OAAO,C4BqHrB,gBAAgB,C5BlEI,OAAO,C4BmE3B,OAAO,CAAE,aAAa,CACvB,CAED,AAAA,AACE,UADD,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CAmDD,KAAK,EADP,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CAQJ,KAAK,AAAC,CACJ,KAAK,C5B1HY,OAAO,C4B2HxB,gBAAgB,C5BxEO,OAAO,C4ByE/B,CAJH,AAAA,ApBpGF,UoBoGG,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CpBlDL,KAAK,EAAE,yBAAyB,EoBoG9B,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CpB7FR,KAAK,EAAE,yBAAyB,AAAC,CAC/B,KAAK,CRjB0B,OAAO,CQkBvC,CoBkGC,AAAA,ApBhGF,UoBgGG,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CpB9CL,KAAK,CAAC,gBAAgB,EoBgGpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CpBzFR,KAAK,CAAC,gBAAgB,AAAC,CACrB,KAAK,CRrB0B,OAAO,CQsBvC,CoB8FC,AAAA,ApB5FF,UoB4FG,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CpB1CL,KAAK,EAAE,gBAAgB,EoB4FrB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CpBrFR,KAAK,EAAE,gBAAgB,AAAC,CACtB,KAAK,CRzB0B,OAAO,CQ0BvC,CoB0FC,AAAA,ApBxFF,UoBwFG,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CpBtCL,KAAK,CAAC,qBAAqB,EoBwFzB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CpBjFR,KAAK,CAAC,qBAAqB,AAAC,CAC1B,KAAK,CR7B0B,OAAO,CQ8BvC,CoBsFC,AAAA,ApBpFF,UoBoFG,CAAW,MAAM,AAAjB,EARH,KAAK,CA1CP,OAAO,CpBlCL,KAAK,EAAE,WAAW,EoBoFhB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,OAAO,AA2CJ,OAAO,CpB7ER,KAAK,EAAE,WAAW,AAAC,CACjB,KAAK,CRjC0B,OAAO,CQkCvC,AoB0ED,ApB5FA,KoB4FK,CA1CP,OAAO,CpBlDL,KAAK,EAAE,yBAAyB,CoBkDlC,OAAO,AA2CJ,OAAO,CpB7FR,KAAK,EAAE,yBAAyB,AAAC,CAC/B,KAAK,CRlBqB,OAAO,CQmBlC,AoB0FD,ApBxFA,KoBwFK,CA1CP,OAAO,CpB9CL,KAAK,CAAC,gBAAgB,CoB8CxB,OAAO,AA2CJ,OAAO,CpBzFR,KAAK,CAAC,gBAAgB,AAAC,CACrB,KAAK,CRtBqB,OAAO,CQuBlC,AoBsFD,ApBpFA,KoBoFK,CA1CP,OAAO,CpB1CL,KAAK,EAAE,gBAAgB,CoB0CzB,OAAO,AA2CJ,OAAO,CpBrFR,KAAK,EAAE,gBAAgB,AAAC,CACtB,KAAK,CR1BqB,OAAO,CQ2BlC,AoBkFD,ApBhFA,KoBgFK,CA1CP,OAAO,CpBtCL,KAAK,CAAC,qBAAqB,CoBsC7B,OAAO,AA2CJ,OAAO,CpBjFR,KAAK,CAAC,qBAAqB,AAAC,CAC1B,KAAK,CR9BqB,OAAO,CQ+BlC,AoB8ED,ApB5EA,KoB4EK,CA1CP,OAAO,CpBlCL,KAAK,EAAE,WAAW,CoBkCpB,OAAO,AA2CJ,OAAO,CpB7ER,KAAK,EAAE,WAAW,AAAC,CACjB,KAAK,CRlCqB,OAAO,CQmClC,AoB0ED,AAmBE,KAnBG,CA1CP,OAAO,CA6DH,cAAc,CA7DlB,OAAO,AA2CJ,OAAO,CAkBN,cAAc,AAAC,CACb,KAAK,C5BjImB,OAAO,C4BsIhC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtBL,KAAK,CA1CP,OAAO,CA6DH,cAAc,EAGZ,AAAA,UAAC,CAAW,MAAM,AAAjB,EAhEP,OAAO,AA2CJ,OAAO,CAkBN,cAAc,AAGU,CACpB,KAAK,C5BnIsB,OAAO,C4BoInC,AAxBL,AA2BE,KA3BG,CA1CP,OAAO,CAqEH,aAAa,CAAC,KAAK,CArEvB,OAAO,AA2CJ,OAAO,CA0BN,aAAa,CAAC,KAAK,AAAC,CAClB,KAAK,CAAE,OAAO,CACf,AA7BH,AA+BE,KA/BG,CA1CP,OAAO,CAyEH,cAAc,CAAC,KAAK,CAzExB,OAAO,AA2CJ,OAAO,CA8BN,cAAc,CAAC,KAAK,AAAC,CACnB,MAAM,CAAE,OAAO,CAChB,AAIL,AACE,aADW,CACX,CAAC,AAAC,CpB7JF,iBAAiB,CoB8JI,cAAc,CpB7JnC,aAAa,CoB6JQ,cAAc,CpB5JnC,YAAY,CoB4JS,cAAc,CpB3JnC,SAAS,CoB2JY,cAAc,CpBrKnC,kBAAkB,CoBsKI,SAAS,CAAC,IAAI,CAAC,IAAI,CpBrKzC,eAAe,CoBqKO,SAAS,CAAC,IAAI,CAAC,IAAI,CpBpKzC,aAAa,CoBoKS,SAAS,CAAC,IAAI,CAAC,IAAI,CpBnKzC,UAAU,CoBmKY,SAAS,CAAC,IAAI,CAAC,IAAI,CACxC,AAJH,AAME,aANW,CAMT,KAAK,CAAC,CAAC,AAAC,CpBlKV,iBAAiB,CoBmKI,aAAa,CpBlKlC,aAAa,CoBkKQ,aAAa,CpBjKlC,YAAY,CoBiKS,aAAa,CpBhKlC,SAAS,CoBgKY,aAAa,CACjC,AAGH,AAAA,eAAe,AAAC,CACd,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,MAAM,CAChB,GAAG,CAAE,CAAC,CACN,MAAM,C5BjIQ,MAAM,C4BkIpB,WAAW,C5BlIG,MAAM,C4BmIpB,UAAU,CAAE,UAAU,CA2FvB,CAzFC,AAAA,AAAA,mBAAC,CAAoB,QAAQ,AAA5B,EARH,eAAe,AAQoB,CAC/B,QAAQ,CAAE,MAAM,CACjB,AAVH,AAYE,eAZa,CAYb,GAAG,AAAC,CACF,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACpB,AAfH,AAiBE,eAjBa,CAiBb,eAAe,AAAC,CAEd,OAAO,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAyB,CAC3C,MAAM,CAAE,IAAI,CAsEb,AA1FH,AAsBI,eAtBW,CAiBb,eAAe,CAKZ,AAAA,kBAAC,CAAmB,OAAO,AAA1B,CAA4B,CAC5B,aAAa,C5BpJH,MAAM,C4BqJjB,AAxBL,AA0BI,eA1BW,CAiBb,eAAe,CASb,aAAa,AAAC,CACZ,SAAS,C5BhJU,MAAM,C4BiJzB,MAAM,CAAE,IAAI,CACb,AA7BL,AA+BI,eA/BW,CAiBb,eAAe,CAcb,KAAK,AAAC,CACJ,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,GAAG,CACnB,SAAS,CAAE,MAAM,CACjB,KAAK,CAAE,KAAK,CAsDb,AAzFL,AAsCQ,eAtCO,CAiBb,eAAe,CAcb,KAAK,CAMF,UAAU,CACP,KAAK,CAAC,SAAS,AAAC,CAChB,OAAO,CAAE,KAAK,CpB9MtB,iBAAiB,CoB+MU,mBAAmB,CpB9M9C,aAAa,CoB8Mc,mBAAmB,CpB7M9C,YAAY,CoB6Me,mBAAmB,CpB5M9C,SAAS,CoB4MkB,mBAAmB,CACvC,AAzCT,AA0CQ,eA1CO,CAiBb,eAAe,CAcb,KAAK,CAMF,UAAU,AAKR,gBAAgB,CAAC,KAAK,CAAC,SAAS,AAAC,CpBjNxC,iBAAiB,CoBkNU,gCAAgC,CpBjN3D,aAAa,CoBiNc,gCAAgC,CpBhN3D,YAAY,CoBgNe,gCAAgC,CpB/M3D,SAAS,CoB+MkB,gCAAgC,CACpD,AA5CT,AA+CM,eA/CS,CAiBb,eAAe,CAcb,KAAK,CAgBH,UAAU,AAAC,CACT,OAAO,CAAE,QAAQ,CAYlB,AA5DP,AAkDQ,eAlDO,CAiBb,eAAe,CAcb,KAAK,CAgBH,UAAU,AAGP,UAAU,AAAC,CACV,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,gBAAgB,CACxB,OAAO,CAAE,CAAC,CACV,WAAW,CAAE,GAAG,CAAC,MAAM,C5BnNH,OAAO,C4BwN5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAxDX,eAAe,CAiBb,eAAe,CAcb,KAAK,CAgBH,UAAU,AAGP,UAAU,AAMa,CACpB,iBAAiB,C5BrNM,OAAO,C4BsN/B,AA1DX,AA8DM,eA9DS,CAiBb,eAAe,CAcb,KAAK,CA+BH,SAAS,AAAC,CACR,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,SAAS,CAClB,OAAO,CAAE,IAAI,CACb,GAAG,CAAE,sBAA6D,CAClE,aAAa,C5B5OE,GAAG,C4B6OlB,MAAM,CAAE,GAAG,CAAC,KAAK,C5BtNH,OAAO,C4BuNrB,gBAAgB,C5BhME,OAAO,CQpD/B,kBAAkB,CoBqPQ,UAAU,CAAC,IAAI,CAAC,IAAI,CpBpP9C,eAAe,CoBoPW,UAAU,CAAC,IAAI,CAAC,IAAI,CpBnP9C,aAAa,CoBmPa,UAAU,CAAC,IAAI,CAAC,IAAI,CpBlP9C,UAAU,CoBkPgB,UAAU,CAAC,IAAI,CAAC,IAAI,CpB1P9C,kBAAkB,CoB2PQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CpB1PzD,UAAU,CoB0PgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CAgBpD,CAdC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1ET,eAAe,CAiBb,eAAe,CAcb,KAAK,CA+BH,SAAS,AAYe,CACpB,gBAAgB,C5BpMK,OAAO,C4BqM5B,YAAY,C5B5NK,OAAO,CQnChC,kBAAkB,CoBgQU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CpB/PjE,UAAU,CoB+PkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CAC1D,AA9ET,AAgFQ,eAhFO,CAiBb,eAAe,CAcb,KAAK,CA+BH,SAAS,CAkBP,UAAU,AAAC,CACT,MAAM,CAAE,OAAkB,CAC1B,WAAW,CAAE,OAAkB,CAC/B,SAAS,CAAE,KAAK,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CACvB,UAAU,CAAE,MAAM,CACnB,AAvFT,AA6FI,eA7FW,AA4FZ,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,AAAA,OAAO,CAC5C,KAAK,AAAC,CACJ,KAAK,CAAE,KAAK,CACb,AAIL,AAAA,cAAc,AAAC,CACb,OAAO,CAAE,IAAI,CACb,QAAQ,CAAE,MAAM,CAChB,GAAG,CAAE,CAAC,CACN,UAAU,C5BpOI,MAAM,C4BqOpB,WAAW,C5BrOG,MAAM,C4B0crB,CAnOC,AAAA,AAAA,kBAAC,CAAmB,QAAQ,AAA3B,EAPH,cAAc,AAOoB,CAC9B,QAAQ,CAAE,MAAM,CACjB,AATH,AAWE,cAXY,CAWZ,iBAAiB,AAAC,CAChB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,CAyMV,AAtNH,AAeI,cAfU,CAWZ,iBAAiB,CAIf,eAAe,AAAC,CACd,OAAO,CAAE,MAAM,CACf,SAAS,CAAE,QAAQ,CpBlSvB,kBAAkB,CoBmSM,UAAU,CAAC,IAAI,CAAC,IAAI,CpBlS5C,eAAe,CoBkSS,UAAU,CAAC,IAAI,CAAC,IAAI,CpBjS5C,aAAa,CoBiSW,UAAU,CAAC,IAAI,CAAC,IAAI,CpBhS5C,UAAU,CoBgSc,UAAU,CAAC,IAAI,CAAC,IAAI,CA+CzC,AAjEL,AAoBM,cApBQ,CAWZ,iBAAiB,CAIf,eAAe,CAKb,aAAa,AAAC,CACZ,SAAS,C5B7OQ,MAAM,C4B8OvB,SAAS,CAAE,GAAG,CACf,AAvBP,AAyBM,cAzBQ,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,AAAC,CACX,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,OAAO,CpB5SrB,kBAAkB,CoB6SQ,KAAK,CAAC,IAAI,CAAC,IAAI,CpB5SzC,eAAe,CoB4SW,KAAK,CAAC,IAAI,CAAC,IAAI,CpB3SzC,aAAa,CoB2Sa,KAAK,CAAC,IAAI,CAAC,IAAI,CpB1SzC,UAAU,CoB0SgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAoCpC,AAhEP,AA8BQ,cA9BM,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,CAKV,IAAI,AAAC,CACH,OAAO,CAAE,KAAK,CACd,UAAU,C5BpSA,OAAO,C4BqSjB,KAAK,CAAE,MAAM,CACb,MAAM,CAAE,GAAG,CpB9TnB,qBAAqB,CoB+TU,GAAG,CpB9TlC,kBAAkB,CoB8Ta,GAAG,CpB7TlC,aAAa,CoB6TkB,GAAG,CpBpTlC,kBAAkB,CoBqTU,GAAG,CAAC,IAAI,CAAC,WAAW,CpBpThD,eAAe,CoBoTa,GAAG,CAAC,IAAI,CAAC,WAAW,CpBnThD,aAAa,CoBmTe,GAAG,CAAC,IAAI,CAAC,WAAW,CpBlThD,UAAU,CoBkTkB,GAAG,CAAC,IAAI,CAAC,WAAW,CAKzC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtCX,cAAc,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,CAKV,IAAI,AAQoB,CACpB,UAAU,C5B1SG,OAAO,C4B2SrB,AAxCX,AA2CQ,cA3CM,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,CAkBV,IAAI,CAAC,SAAU,CAAA,CAAC,CAAE,CAChB,aAAa,CAAE,MAAM,CACtB,AA7CT,AA+CQ,cA/CM,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,CAsBV,IAAI,CAAC,SAAU,CAAA,CAAC,CAAE,CAChB,UAAU,CAAE,MAAM,CACnB,AAjDT,AAoDU,cApDI,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,AA0BT,OAAO,CACN,IAAI,CAAC,SAAU,CAAA,CAAC,CAAE,CpB9T1B,iBAAiB,CoB+TY,aAAa,CAAC,yBAAyB,CpB9TpE,aAAa,CoB8TgB,aAAa,CAAC,yBAAyB,CpB7TpE,YAAY,CoB6TiB,aAAa,CAAC,yBAAyB,CpB5TpE,SAAS,CoB4ToB,aAAa,CAAC,yBAAyB,CAC3D,AAtDX,AAwDU,cAxDI,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,AA0BT,OAAO,CAKN,IAAI,CAAC,SAAU,CAAA,CAAC,CAAE,CAChB,OAAO,CAAE,CAAC,CACX,AA1DX,AA4DU,cA5DI,CAWZ,iBAAiB,CAIf,eAAe,CAUb,YAAY,AA0BT,OAAO,CASN,IAAI,CAAC,SAAU,CAAA,CAAC,CAAE,CpBtU1B,iBAAiB,CoBuUY,cAAc,CAAC,0BAA0B,CpBtUtE,aAAa,CoBsUgB,cAAc,CAAC,0BAA0B,CpBrUtE,YAAY,CoBqUiB,cAAc,CAAC,0BAA0B,CpBpUtE,SAAS,CoBoUoB,cAAc,CAAC,0BAA0B,CAC7D,AA9DX,AAmEI,cAnEU,CAWZ,iBAAiB,CAwDf,KAAK,AAAC,CACJ,UAAU,C5BjSU,OAAO,C4BkS3B,UAAU,CAAE,GAAG,CAAC,KAAK,C5BzTL,OAAO,C4B0TvB,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,OAAO,CACnB,UAAU,CAAE,IAAI,CpB9VpB,kBAAkB,CoB+VM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAkB,CpB9V7D,UAAU,CoB8Vc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAkB,CA4I1D,CA1IC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3EP,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,AAQmB,CpBjW1B,kBAAkB,CoBkWQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAwB,CpBjWrE,UAAU,CoBiWgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAwB,CAChE,AA7EP,AA+EM,cA/EQ,CAWZ,iBAAiB,CAwDf,KAAK,EAYA,iBAAiB,AAAC,CACnB,KAAK,CAAE,CAAC,CACT,AAjFP,AAmFM,cAnFQ,CAWZ,iBAAiB,CAwDf,KAAK,CAgBH,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,KAA6B,CAAC,IAAI,CAC3C,WAAW,CAAE,MAAM,CACnB,QAAQ,CAAE,MAAM,CAChB,GAAG,CAAE,CAAC,CACN,gBAAgB,C5BzTE,OAAO,CY/D/B,OAAO,CgByXgB,EAAC,CAKnB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA/FT,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CAgBH,eAAe,AAYS,CACpB,gBAAgB,C5B5TK,OAAO,C4B6T7B,AAjGT,AAoGM,cApGQ,CAWZ,iBAAiB,CAwDf,KAAK,CAiCH,OAAO,AAAC,CACN,SAAS,CAAE,EAAE,CAMd,AA3GP,AAuGQ,cAvGM,CAWZ,iBAAiB,CAwDf,KAAK,CAiCH,OAAO,CAGL,qBAAqB,CAvG7B,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CAiCH,OAAO,CAIL,KAAK,AAAC,CACJ,KAAK,CAAE,IAAI,CACZ,AA1GT,AA6GM,cA7GQ,CAWZ,iBAAiB,CAwDf,KAAK,CA0CH,eAAe,CA7GrB,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CA2CH,aAAa,AAAC,CACZ,KAAK,CAAG,MAAM,CACf,AAhHP,AAkHM,cAlHQ,CAWZ,iBAAiB,CAwDf,KAAK,CA+CH,cAAc,AAAC,CACb,GAAG,CAAE,CAAC,CACP,AApHP,AAsHM,cAtHQ,CAWZ,iBAAiB,CAwDf,KAAK,CAmDH,cAAc,AAAC,CACb,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,OAAO,CACrB,AAzHP,AA2HM,cA3HQ,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,AAAC,CACT,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,MAAM,CA2BhB,AA1JP,AAiIQ,cAjIM,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,CAMP,GAAK,CAAA,YAAY,EAAE,KAAK,AAAC,CACxB,gBAAgB,C5BlYI,OAAO,C4BuY5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EApIX,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,CAMP,GAAK,CAAA,YAAY,EAAE,KAAK,AAGD,CACpB,gBAAgB,C5BpYO,OAAO,C4BqY/B,AAtIX,AAyIQ,cAzIM,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,CAcR,UAAU,AAAC,CACT,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CACvB,UAAU,CAAE,MAAM,CpB3Y1B,YAAY,CoB4YU,CAAC,CpB3YvB,IAAI,CoB2YkB,CAAC,CAChB,AA/IT,AAiJQ,cAjJM,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,CAsBN,YAAY,AAAC,CACb,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CAKpB,AAzJT,AAsJU,cAtJI,CAWZ,iBAAiB,CAwDf,KAAK,CAwDH,UAAU,CAsBN,YAAY,CAKZ,UAAU,AAAC,CACT,SAAS,CAAE,GAAG,CACf,AAxJX,AA4JM,cA5JQ,CAWZ,iBAAiB,CAwDf,KAAK,CAyFH,YAAY,AAAC,CACX,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,MAAM,CACvB,GAAG,CAAE,OAAO,CACZ,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,CAAC,CACT,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,MAAM,CACf,gBAAgB,C5BjYE,OAAO,C4BuZ1B,CApBC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtKT,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CAyFH,YAAY,AAUY,CACpB,gBAAgB,C5BnYK,OAAO,C4BoY7B,AAxKT,AA0KQ,cA1KM,CAWZ,iBAAiB,CAwDf,KAAK,CAyFH,YAAY,CAcV,iBAAiB,AAAC,CAChB,cAAc,CAAE,MAAM,CACvB,AA5KT,AA8KQ,cA9KM,CAWZ,iBAAiB,CAwDf,KAAK,CAyFH,YAAY,CAkBV,gBAAgB,AAAC,CACf,QAAQ,CAAE,QAAQ,CAUnB,AAzLT,AAiLU,cAjLI,CAWZ,iBAAiB,CAwDf,KAAK,CAyFH,YAAY,CAkBV,gBAAgB,CAGd,gBAAgB,AAAC,CACf,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CACV,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACb,AAxLX,AA4LM,cA5LQ,CAWZ,iBAAiB,CAwDf,KAAK,CAyHH,SAAS,AAAC,CACR,YAAY,CAAE,CAAC,CACf,OAAO,CAAE,IAAI,CAad,AA3MP,AAgMQ,cAhMM,CAWZ,iBAAiB,CAwDf,KAAK,CAyHH,SAAS,AAIN,KAAK,AAAC,CACL,OAAO,CAAE,KAAK,CACf,AAlMT,AAoMQ,cApMM,CAWZ,iBAAiB,CAwDf,KAAK,CAyHH,SAAS,CAQP,UAAU,CAAC,KAAK,AAAC,CACf,gBAAgB,C5BrcI,OAAO,C4B0c5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAvMX,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,CAyHH,SAAS,CAQP,UAAU,CAAC,KAAK,AAGQ,CACpB,gBAAgB,C5BvcO,OAAO,C4Bwc/B,AAzMX,AA6MM,cA7MQ,CAWZ,iBAAiB,CAwDf,KAAK,AA0IF,OAAO,AAAC,CACP,OAAO,CAAE,KAAK,CACf,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjNP,cAAc,CAWZ,iBAAiB,CAwDf,KAAK,AA8ImB,CACpB,UAAU,C5B9aa,OAAO,C4B+a9B,gBAAgB,C5BtcG,OAAO,C4Buc3B,AApNP,AAyNI,cAzNU,AAwNX,KAAK,CACJ,eAAe,AAAC,CACd,UAAU,C5B1bA,OAAM,C4B2bjB,AA3NL,AA6NI,cA7NU,AAwNX,KAAK,CAKJ,KAAK,AAAC,CACJ,WAAW,CAAE,CAAC,CACd,UAAU,CAAE,IAAI,CASjB,AAxOL,AAiOM,cAjOQ,AAwNX,KAAK,CAKJ,KAAK,CAIH,UAAU,AAAC,CACT,OAAO,CAAE,IAAI,CACd,AAnOP,AAqOM,cArOQ,AAwNX,KAAK,CAKJ,KAAK,CAQH,cAAc,AAAC,CACb,OAAO,CAAE,MAAM,CAChB,AAKP,AAAA,gBAAgB,AAAC,CACf,QAAQ,CAAE,KAAK,CACf,GAAG,C5B9cW,MAAM,CY5DpB,OAAO,CgB2gBU,GAAC,CpBrgBlB,kBAAkB,CoBsgBE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAkB,CpBrgBzD,UAAU,CoBqgBU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAkB,CAuH1D,CArHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EANH,gBAAgB,AAMQ,CpBxgBtB,kBAAkB,CoBygBI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAwB,CpBxgBjE,UAAU,CoBwgBY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAwB,CAChE,AARH,AAUE,gBAVc,AAUb,QAAQ,AAAC,CACR,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,KAAK,CACb,AAbH,AAeE,gBAfc,AAeb,OAAO,AAAC,CACP,KAAK,CAAE,CAAC,CACR,KAAK,CAAE,IAAI,CACZ,AAlBH,AAoBE,gBApBc,CAoBd,cAAc,AAAC,CACb,KAAK,CAAE,YAAY,CACnB,gBAAgB,C5B1gBM,IAAO,C4B8mB9B,CAlGC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAxBL,gBAAgB,CAoBd,cAAc,AAIU,CACpB,gBAAgB,C5B5gBS,OAAO,C4B6gBjC,AA1BL,AA4BI,gBA5BY,CAoBd,cAAc,CAQZ,YAAY,AAAC,CACX,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,oBAA2D,CA6DxE,AA3FL,AAgCM,gBAhCU,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,AAAC,CACV,OAAO,CAAE,YAAY,CAyDtB,AA1FP,AAmCQ,gBAnCQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAGT,iBAAiB,AAAC,CAChB,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CACnB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,SAAS,CAAE,GAAG,CACf,AA3CT,AA6CQ,gBA7CQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAaT,gBAAgB,AAAC,CACf,SAAS,CAAE,QAAQ,CACnB,KAAK,CAAE,KAAK,CACZ,UAAU,CAAE,KAAK,CACjB,KAAK,C5B7hBe,OAAO,C4BkiB5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDX,gBAAgB,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAaT,gBAAgB,AAMQ,CACpB,KAAK,C5B/hBkB,OAAO,C4BgiB/B,AArDX,AAwDQ,gBAxDQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAwBT,mBAAmB,AAAC,CAClB,WAAW,CAAE,OAAO,CpB9hB5B,OAAO,CAAE,QAAQ,CACjB,OAAO,CAAE,WAAW,CACpB,OAAO,CAAE,GAAG,CAEZ,kBAAkB,CoB2hBG,QAAQ,CpB1hB7B,eAAe,CoB0hBM,QAAQ,CpBzhB7B,UAAU,CoByhBW,QAAQ,CACrB,kBAAkB,CAAE,CAAC,CACrB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CpBhf/B,SAAS,CoBifsB,UAAU,CpBhfzC,aAAa,CoBgfkB,UAAU,CACjC,KAAK,C5B3iBe,OAAO,C4BgjB5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjEX,gBAAgB,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAwBT,mBAAmB,AASK,CACpB,KAAK,C5B7iBkB,OAAO,C4B8iB/B,AAnEX,AAsEQ,gBAtEQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAsCT,EAAE,AAAC,CACD,UAAU,CAAE,MAAM,CAClB,gBAAgB,C5B1hBR,qBAAwB,C4B+hBjC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1EX,gBAAgB,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAsCT,EAAE,AAIsB,CACpB,gBAAgB,C5B5hBL,oBAAuB,C4B6hBnC,AA5EX,AA+EQ,gBA/EQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,AA+CR,OAAO,AAAC,CACP,UAAU,C5BhdI,OAAO,C4BqdtB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlFX,gBAAgB,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,AA+CR,OAAO,AAGgB,CACpB,UAAU,C5BldO,OAAO,C4BmdzB,AApFX,AAuFQ,gBAvFQ,CAoBd,cAAc,CAQZ,YAAY,CAIV,WAAW,CAuDP,KAAK,AAAC,CACN,MAAM,CAAE,OAAO,CAChB,AAzFT,AA6FI,gBA7FY,CAoBd,cAAc,CAyEZ,aAAa,AAAC,CACZ,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,MAAM,CASnB,AAxGL,AAiGM,gBAjGU,CAoBd,cAAc,CAyEZ,aAAa,CAIX,aAAa,AAAC,CACZ,WAAW,CAAE,IAAI,CAKlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EApGT,gBAAgB,CAoBd,cAAc,CAyEZ,aAAa,CAIX,aAAa,AAGW,CACpB,KAAK,CAAE,IAAI,CACZ,AAtGT,AA0GI,gBA1GY,CAoBd,cAAc,CAsFZ,cAAc,AAAC,CACb,OAAO,CAAE,WAAW,CACpB,KAAK,CAAE,KAAK,CACZ,SAAS,CAAE,MAAM,CACjB,KAAK,C5B1lBmB,OAAO,C4BqmBhC,AAzHL,AAgHM,gBAhHU,CAoBd,cAAc,CAsFZ,cAAc,EAMZ,AAAA,UAAC,CAAW,MAAM,AAAjB,CAAmB,CAClB,KAAK,C5B5lBsB,OAAO,C4B6lBnC,AAlHP,AnBxgBE,gBmBwgBc,CAoBd,cAAc,CAsFZ,cAAc,CnBlnBhB,CAAC,CmBwgBH,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBjnBhB,CAAC,EAAE,MAAM,CmBugBX,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBhnBhB,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EmB2fL,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBlnBhB,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,EmB2fL,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBjnBhB,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,EmB2fL,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBhnBhB,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,AmBmfL,AnBhfE,gBmBgfc,CAoBd,cAAc,CAsFZ,cAAc,CnB1lBhB,CAAC,CAAC,MAAM,CmBgfV,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBzlBhB,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EmBseL,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnB1lBhB,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,EmBseL,gBAAgB,CAoBd,cAAc,CAsFZ,cAAc,CnBzlBhB,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,AmB8dL,AAsHM,gBAtHU,CAoBd,cAAc,CAsFZ,cAAc,CAYZ,CAAC,AAAC,CACA,SAAS,CAAE,IAAI,CAChB,ACjoBP,AAAA,qBAAqB,AAAC,CACpB,cAAc,CAAE,IAAI,CACpB,SAAS,CAAE,OAAO,CjBDlB,OAAO,CiBEU,GAAC,CA0CnB,AA7CD,AAME,qBANmB,AAMlB,OAAO,AAAC,CACP,QAAQ,CAAE,MAAM,CAChB,GAAG,C7BqDS,MAAM,C6BpDnB,AATH,AAWE,qBAXmB,CAWnB,WAAW,AAAC,CACV,OAAO,CAAE,IAAI,CACb,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,QAAQ,CACjB,MAAM,CAAE,MAAM,CACd,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,GAAG,CAAC,KAAK,C7BwBN,OAAO,C6BvBzB,gBAAgB,C7BGM,IAAO,C6BuB9B,CAvBC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EArBL,qBAAqB,CAWnB,WAAW,AAUa,CACpB,mBAAmB,C7BoBE,OAAO,C6BnB5B,gBAAgB,C7BDS,OAAO,C6BEjC,AAxBL,AA0BI,qBA1BiB,CAWnB,WAAW,CAeT,gBAAgB,AAAC,CACf,OAAO,CAAE,IAAI,CAgBd,AA3CL,AA6BM,qBA7Be,CAWnB,WAAW,CAeT,gBAAgB,CAGb,gBAAgB,EAAE,MAAM,AAAC,CACxB,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,KAAK,C7BJiB,OAAO,C6BS9B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnCT,qBAAqB,CAWnB,WAAW,CAeT,gBAAgB,CAGb,gBAAgB,EAAE,MAAM,AAMD,CACpB,KAAK,C7BNoB,OAAO,C6BOjC,ACrCT,AAAA,MAAM,AAAC,CACL,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,OAAO,CACpB,OAAO,CAAE,MAAM,CAiChB,AAtCD,AAQE,MARI,CAQJ,iBAAiB,AAAC,CAChB,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,SAAS,CAAE,QAAQ,CAwBpB,AAnCH,AAaI,MAbE,CAQJ,iBAAiB,CAKf,YAAY,AAAC,CACX,KAAK,CAAE,IAAI,CAoBZ,AAlCL,AAgBM,MAhBA,CAQJ,iBAAiB,CAKf,YAAY,CAGV,eAAe,CAAA,GAAK,EAAC,WAAW,GAAG,MAAM,AAAC,CACxC,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,OAAO,CACpB,YAAY,CAAE,OAAO,CACtB,AApBP,AAsBM,MAtBA,CAQJ,iBAAiB,CAKf,YAAY,CASV,WAAW,AAAC,CACV,GAAG,CAAE,MAAM,CACZ,AAxBP,AA0BM,MA1BA,CAQJ,iBAAiB,CAKf,YAAY,CAaV,aAAa,AAAC,CACZ,KAAK,CAAE,OAAO,CACd,SAAS,CAAE,uCAAuC,CACnD,AA7BP,AA+BM,MA/BA,CAQJ,iBAAiB,CAKf,YAAY,CAkBV,UAAU,AAAC,CACT,oBAAoB,CAAE,wBAAwB,CAC/C,ApBhCL,AAAA,KAAK,CoBDP,MAAM,ApBCI,CFyBR,cAAc,CExBI,WAAW,CFyB7B,MAAM,CEzBY,WAAW,CAC5B,AoBqCH,UAAU,CAAV,YAAU,CACR,EAAE,CACF,IAAI,CtBvBJ,iBAAiB,CsBwBI,QAAQ,CtBvB7B,aAAa,CsBuBQ,QAAQ,CtBtB7B,YAAY,CsBsBS,QAAQ,CtBrB7B,SAAS,CsBqBY,QAAQ,CAG7B,GAAG,CACH,GAAG,CtB5BH,iBAAiB,CsB6BI,UAAU,CtB5B/B,aAAa,CsB4BQ,UAAU,CtB3B/B,YAAY,CsB2BS,UAAU,CtB1B/B,SAAS,CsB0BY,UAAU,CAG/B,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CtBnCH,iBAAiB,CsBoCI,UAAU,CtBnC/B,aAAa,CsBmCQ,UAAU,CtBlC/B,YAAY,CsBkCS,UAAU,CtBjC/B,SAAS,CsBiCY,UAAU,CAG/B,GAAG,CACH,GAAG,CtBxCH,iBAAiB,CsByCI,UAAU,CtBxC/B,aAAa,CsBwCQ,UAAU,CtBvC/B,YAAY,CsBuCS,UAAU,CtBtC/B,SAAS,CsBsCY,UAAU,EC5DjC,AAAA,WAAW,AAAC,CACV,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,GAAG,CACnB,eAAe,CAAE,MAAM,CACvB,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,MAAM,CACnB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,MAAM,CAiFhB,AAzFD,AAUE,WAVS,CAUT,CAAC,AAAC,CACA,SAAS,CAAE,MAAM,CACjB,KAAK,C/B+Ge,OAAO,C+B9G3B,cAAc,CAAE,MAAM,CACtB,WAAW,CAAE,GAAG,CAChB,OAAO,CAAE,OAAO,CAChB,eAAe,CAAE,IAAI,CvBJvB,kBAAkB,CuBKI,IAAI,CvBJ1B,eAAe,CuBIO,IAAI,CvBH1B,aAAa,CuBGS,IAAI,CvBF1B,UAAU,CuBEY,IAAI,CAKzB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnBL,WAAW,CAUT,CAAC,AASuB,CACpB,KAAK,C/BwGkB,OAAO,C+BvG/B,AArBL,AAwBE,WAxBS,CAwBT,EAAE,AAAC,CACD,OAAO,CAAE,GAAG,CACZ,MAAM,CAAE,MAAM,CACd,UAAU,CAAE,UAAU,CACtB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,MAAM,CA2DhB,AAxFH,AA+BI,WA/BO,CAwBT,EAAE,AAOC,SAAS,AAAC,CACT,OAAO,CAAE,IAAI,CACd,AAjCL,AAmCI,WAnCO,CAwBT,EAAE,CAWE,KAAK,CAAC,CAAC,AAAC,CACR,KAAK,C/B2FmB,IAAI,C+B1F7B,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAvCL,WAAW,CAwBT,EAAE,CAesB,KAAK,CAAC,CAAC,AAAC,CAC5B,KAAK,C/BwFwB,IAAI,C+BvFlC,AAzCL,AA2CI,WA3CO,CAwBT,EAAE,EAmBG,MAAM,CA3Cb,WAAW,CAwBT,EAAE,EAoBG,KAAK,AAAC,CACP,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,EAAE,CACX,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,GAAG,CACX,UAAU,C/B8Ec,IAAI,CQnHhC,kBAAkB,CuBsCM,IAAI,CvBrC5B,eAAe,CuBqCS,IAAI,CvBpC5B,aAAa,CuBoCW,IAAI,CvBnC5B,UAAU,CuBmCc,IAAI,CACxB,MAAM,CAAE,GAAG,CACZ,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtDL,WAAW,CAwBT,EAAE,EA8BuB,MAAM,EAC7B,AAAA,UAAC,CAAW,MAAM,AAAjB,EAvDL,WAAW,CAwBT,EAAE,EA+BuB,KAAK,AAAC,CAC3B,UAAU,C/BwEmB,IAAI,C+BvElC,AAzDL,AA2DI,WA3DO,CAwBT,EAAE,EAmCG,MAAM,AAAC,CACR,IAAI,CAAE,GAAG,CACV,AA7DL,AA+DI,WA/DO,CAwBT,EAAE,EAuCG,KAAK,AAAC,CACP,KAAK,CAAE,GAAG,CACX,AAjEL,AAoEM,WApEK,CAwBT,EAAE,CA2CE,KAAK,EACF,MAAM,CApEf,WAAW,CAwBT,EAAE,CA2CE,KAAK,EAEF,KAAK,AAAC,CACP,KAAK,CAAE,GAAG,CACX,AAvEP,AA2EM,WA3EK,CAwBT,EAAE,AAkDC,OAAO,CACN,CAAC,AAAC,CACA,KAAK,C/BmDiB,IAAI,C+BlD3B,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA/EP,WAAW,CAwBT,EAAE,AAkDC,OAAO,CAKgB,CAAC,AAAC,CACtB,KAAK,C/BgDsB,IAAI,C+B/ChC,AAjFP,AAmFM,WAnFK,CAwBT,EAAE,AAkDC,OAAO,EASH,MAAM,CAnFf,WAAW,CAwBT,EAAE,AAkDC,OAAO,EAUH,KAAK,AAAC,CACP,KAAK,CAAE,GAAG,CACX,ACjFP,AAAA,cAAc,AAAC,CACb,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CACpB,AACD,AAAA,WAAW,AAAC,CACV,UAAU,CAAE,eAAe,CAC5B,AACD,AAAA,SAAS,AAAC,CACR,UAAU,CAAE,gBAAgB,CAC7B,AACD,AAAA,YAAY,AAAC,CACX,UAAU,CAAE,iBAAiB,CAC9B,AAED,AAAA,OAAO,AAAC,CACN,OAAO,CAAE,eAAe,CACzB,AACD,AAAA,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACd,AACD,AAAA,cAAc,AAAC,CACb,OAAO,CAAE,KAAK,CACf,AAED,AAAA,KAAK,CACL,KAAK,AAAC,CACJ,WAAW,CAAE,kBAAkB,CAChC,AACD,AAAA,KAAK,CACL,KAAK,AAAC,CACJ,YAAY,CAAE,kBAAkB,CACjC,AACD,AAAA,KAAK,CACL,KAAK,AAAC,CACJ,YAAY,CAAE,kBAAkB,CACjC,AACD,AAAA,KAAK,CACL,KAAK,AAAC,CACJ,aAAa,CAAE,kBAAkB,CAClC,AA7CD,AAgDE,aAhDW,AAgDH,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,aAAa,AAmDa,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AAgDE,eAhDa,CHAf,qBAAqB,CAWnB,WAAW,CAeT,gBAAgB,AAcb,OAAO,AGQJ,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,eAAe,EAmDX,AAAA,UAAC,CAAW,MAAM,AAAjB,EHnDL,qBAAqB,CAWnB,WAAW,CAeT,gBAAgB,AAcb,OAAO,CAxCd,qBAAqB,CAWnB,WAAW,EGwCT,AAAA,UAAC,CAAW,MAAM,AAAjB,EHzBD,gBAAgB,AAcb,OAAO,AGWY,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AAgDE,aAhDW,AAgDH,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,aAAa,AAmDa,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AAgDE,UAhDQ,AAgDA,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,UAAU,AAmDgB,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AAgDE,aAhDW,AAgDH,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,aAAa,AAmDa,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AAgDE,YAhDU,AAgDF,CACN,KAAK,CAAE,OAAe,CAAC,UAAU,CAKlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnDL,YAAY,AAmDc,CACpB,KAAK,CAAE,OAAuC,CAAC,UAAU,CAC1D,AArDL,AA0DE,YA1DU,AA0DJ,CACJ,KAAK,CAAE,EAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,QA1DM,AA0DA,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AA5DH,AA0DE,WA1DS,AA0DH,CACJ,KAAK,CAAE,CAAe,CAAC,UAAU,CAClC,AAGH,AAAA,gBAAgB,AAAC,CACf,oBAAoB,CAAE,wBAAwB,CAC/C,AC/DD,UAAU,CAAV,QAAU,CACR,IAAI,CzBgBJ,iBAAiB,CyBfI,gBAAgB,CzBgBrC,aAAa,CyBhBQ,gBAAgB,CzBiBrC,YAAY,CyBjBS,gBAAgB,CzBkBrC,SAAS,CyBlBY,gBAAgB,CAGrC,GAAG,CzBYH,iBAAiB,CyBXI,yBAAyB,CzBY9C,aAAa,CyBZQ,yBAAyB,CzBa9C,YAAY,CyBbS,yBAAyB,CzBc9C,SAAS,CyBdY,yBAAyB,CAG9C,EAAE,CzBQF,iBAAiB,CyBPI,gBAAgB,CzBQrC,aAAa,CyBRQ,gBAAgB,CzBSrC,YAAY,CyBTS,gBAAgB,CzBUrC,SAAS,CyBVY,gBAAgB,EAIvC,AAAA,eAAe,AAAC,CACd,sBAAsB,CAAE,QAA2B,CAAC,UAAU,CAC9D,cAAc,CAAE,QAA2B,CAAC,UAAU,CACvD,ACnBD,AAAA,KAAK,AAAC,CACJ,QAAQ,CAAE,QAAQ,CAUnB,AAXD,AAKI,KALC,CAIH,QAAQ,EACN,AAAA,EAAC,AAAA,CAAI,CACH,iBAAiB,CAAE,mBAA4C,CAChE,AxBNH,AAAA,KAAK,CwBDP,KAAK,AxBCK,CFyBR,cAAc,CExBI,WAAW,CFyB7B,MAAM,CEzBY,WAAW,CAC5B,A0BHH,AACE,IADE,CACF,UAAU,AAAC,CACT,SAAS,CpCwFS,MAAM,CoCvFxB,WAAW,CAAE,IAAI,CACjB,cAAc,CAAE,SAAS,CAC1B,AALH,AAOE,IAPE,CAOF,YAAY,AAAC,CACX,SAAS,CpCmFW,IAAI,CoC7DzB,AA9BH,AAUI,IAVA,CAOF,YAAY,CAGV,EAAE,AAAC,CACD,WAAW,CAAE,OAAO,CACpB,YAAY,CAAE,MAAM,CACpB,UAAU,CAAE,IAAI,CAgBjB,AA7BL,AAeM,IAfF,CAOF,YAAY,CAGV,EAAE,CAKA,CAAC,CAAC,WAAW,EAAE,MAAM,AAAC,CACpB,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,MAAM,CACnB,YAAY,CAAE,MAAM,CACpB,KAAK,CpC2EO,OAAO,CoCtEpB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EArBT,IAAI,CAOF,YAAY,CAGV,EAAE,CAKA,CAAC,CAAC,WAAW,EAAE,MAAM,AAMG,CACpB,KAAK,CpCyEU,OAAO,CoCxEvB,AAvBT,AA0BM,IA1BF,CAOF,YAAY,CAGV,EAAE,CAgBA,EAAE,AAAC,CACD,YAAY,CAAE,MAAM,CACrB,AA5BP,AAgCE,IAhCE,CAgCF,IAAI,AAAC,CACH,UAAU,CpCwGU,OAAO,CoC3F5B,AA9CH,AAmCI,IAnCA,CAgCF,IAAI,CAGF,EAAE,AAAC,CACD,KAAK,CpCPmB,OAAO,CoCQhC,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAvCL,IAAI,CAgCF,IAAI,AAOoB,CACpB,UAAU,CpCkGa,OAAO,CoC7F/B,CAND,AAAA,AAGE,UAHD,CAAW,MAAM,AAAjB,EAvCL,IAAI,CAgCF,IAAI,CAUA,EAAE,AAAC,CACD,KAAK,CpCbsB,OAAO,CoCcnC,AAKP,AAAA,SAAS,AAAC,CACR,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,MAAM,CAChB,GAAG,CAAE,mBAA4C,CACjD,UAAU,CAAE,UAAU,CACtB,UAAU,CAAE,MAAM,CxBrDlB,OAAO,CwBsDU,GAAC,C5B+BlB,SAAS,C4B9Bc,UAAU,C5B+BjC,aAAa,C4B/BU,UAAU,CA6ElC,A1BpIC,AAAA,KAAK,C0BgDP,SAAS,A1BhDC,CFyBR,cAAc,CExBI,WAAW,CFyB7B,MAAM,CEzBY,WAAW,CAC5B,C0ByDD,AAAA,AAAA,mBAAC,CAAoB,QAAQ,AAA5B,EAXH,SAAS,AAW0B,CAC/B,cAAqB,CAAkB,MAAC,CACzC,AAbH,AAeE,SAfO,CAeP,UAAU,AAAC,CACT,MAAM,CAAE,QAAQ,CAChB,MAAM,CAAE,OAAO,C5BqCjB,mBAAmB,C4BpCI,IAAI,C5BoCC,UAAU,CACtC,gBAAgB,C4BrCO,IAAI,C5BqCF,UAAU,CACnC,WAAW,C4BtCY,IAAI,C5BsCP,UAAU,C4BtB7B,AAlCH,AAoBI,SApBK,CAeP,UAAU,EAKL,MAAM,AAAC,CACR,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,MAAM,CACnB,YAAY,CAAE,MAAM,CACpB,KAAK,CpChCW,OAAO,CoCqCxB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1BP,SAAS,CAeP,UAAU,EAKL,MAAM,AAMe,CACpB,KAAK,CpClCc,OAAO,CoCmC3B,AA5BP,AA+BI,SA/BK,CAeP,UAAU,CAgBR,CAAC,AAAA,SAAS,AAAC,C5BpEb,kBAAkB,C4BqEM,SAAS,CAAC,IAAI,CAAC,IAAI,C5BpE3C,eAAe,C4BoES,SAAS,CAAC,IAAI,CAAC,IAAI,C5BnE3C,aAAa,C4BmEW,SAAS,CAAC,IAAI,CAAC,IAAI,C5BlE3C,UAAU,C4BkEc,SAAS,CAAC,IAAI,CAAC,IAAI,CACxC,AAjCL,AAoCE,SApCO,AAoCN,WAAW,CAAC,CAAC,AAAA,SAAS,AAAC,C5BlExB,iBAAiB,C4BmEI,cAAc,C5BlEnC,aAAa,C4BkEQ,cAAc,C5BjEnC,YAAY,C4BiES,cAAc,C5BhEnC,SAAS,C4BgEY,cAAc,C5B1EnC,kBAAkB,C4B2EI,SAAS,CAAC,IAAI,CAAC,IAAI,C5B1EzC,eAAe,C4B0EO,SAAS,CAAC,IAAI,CAAC,IAAI,C5BzEzC,aAAa,C4ByES,SAAS,CAAC,IAAI,CAAC,IAAI,C5BxEzC,UAAU,C4BwEY,SAAS,CAAC,IAAI,CAAC,IAAI,CACxC,AAvCH,AAyCE,SAzCO,CAyCP,YAAY,AAAC,CACX,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,kBAAiE,CAwC9E,AAnFH,AA6CI,SA7CK,CAyCP,YAAY,EAIP,iBAAiB,AAAC,CACnB,KAAK,CAAE,CAAC,CACT,AA/CL,AAiDI,SAjDK,CAyCP,YAAY,AAQT,cAAc,CAAC,EAAE,AAAC,CACjB,OAAO,CAAE,KAAK,CACf,AAnDL,AAqDI,SArDK,CAyCP,YAAY,CAYR,GAAG,CAAG,EAAE,AAAC,CACT,MAAM,CAAE,CAAC,CACV,AAvDL,AA0DM,SA1DG,CAyCP,YAAY,CAgBV,EAAE,CACA,EAAE,AAAC,CACD,OAAO,CAAE,IAAI,CACd,AA5DP,AA8DM,SA9DG,CAyCP,YAAY,CAgBV,EAAE,CAKA,WAAW,CAAG,EAAE,AAAC,CACf,OAAO,CAAE,KAAK,CACf,AAhEP,AAmEI,SAnEK,CAyCP,YAAY,CA0BV,CAAC,AAAA,OAAO,AAAC,CACP,WAAW,CAAE,IAAI,CACjB,KAAK,CpCxBS,OAAO,CoCqCtB,CAXC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAvEP,SAAS,CAyCP,YAAY,CA0BV,CAAC,AAAA,OAAO,AAIgB,CACpB,KAAK,CpC1BY,OAAO,CoC2BzB,AAzEP,AA2EM,SA3EG,CAyCP,YAAY,CA0BV,CAAC,AAAA,OAAO,EAQH,MAAM,AAAC,CACR,KAAK,CpC3Ba,OAAO,CoCgC1B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA9ET,SAAS,CAyCP,YAAY,CA0BV,CAAC,AAAA,OAAO,EAQH,MAAM,AAGe,CACpB,KAAK,CpC7BgB,OAAO,CoC8B7B,AAMT,AAAA,WAAW,AAAC,CACV,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,QAAQ,CAwCjB,AA1CD,AAIE,WAJS,CAIR,AAAA,SAAC,CAAU,MAAM,AAAhB,CAAkB,CAClB,OAAO,CAAE,KAAK,CACf,AANH,AAQE,WARS,CAQT,UAAU,AAAC,CACT,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,GAAG,CAChB,OAAO,CAAE,SAAS,CAClB,UAAU,CpCXU,OAAO,CoCgB5B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAfL,WAAW,CAQT,UAAU,AAOc,CACpB,UAAU,CpCba,OAAO,CoCc/B,AAjBL,AAoBE,WApBS,CAoBT,YAAY,AAAC,CACX,gBAAgB,CpCnBI,OAAO,CoC6B5B,AA/BH,AAuBI,WAvBO,CAoBT,YAAY,CAGR,GAAG,CAAG,EAAE,AAAC,CACT,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,yBAAyB,CACnC,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BL,WAAW,CAoBT,YAAY,AAQY,CACpB,gBAAgB,CpC1BO,OAAO,CoC2B/B,AA9BL,AAkCI,WAlCO,AAiCR,KAAK,CACJ,UAAU,AAAC,CACT,UAAU,CpCjCQ,OAAO,CoCsC1B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EArCP,WAAW,AAiCR,KAAK,CACJ,UAAU,AAGc,CACpB,UAAU,CpCnCW,OAAO,CoCoC7B,AC9KP,AAAA,0BAA0B,AAAC,CACzB,WAAW,CrCQQ,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CqCPlN,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,IAAI,CA+DjB,AA7DC,AAAA,0BAA0B,CAL5B,0BAA0B,AAKK,CAC3B,UAAU,CAAE,IAAI,CACjB,AAPH,AASE,0BATwB,CASxB,sBAAsB,CATxB,0BAA0B,CAUxB,sBAAsB,CAVxB,0BAA0B,CAWxB,oBAAoB,AAAC,CACnB,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,IAAI,CACb,KAAK,CrCUW,OAAO,CqCTvB,MAAM,CAAE,GAAG,CAAC,KAAK,CrCyBC,OAAO,CqCxBzB,aAAa,CrCCM,GAAG,CQNxB,kBAAkB,C6BMI,GAAG,CAAC,IAAI,CAAC,QAAQ,C7BLvC,eAAe,C6BKO,GAAG,CAAC,IAAI,CAAC,QAAQ,C7BJvC,aAAa,C6BIS,GAAG,CAAC,IAAI,CAAC,QAAQ,C7BHvC,UAAU,C6BGY,GAAG,CAAC,IAAI,CAAC,QAAQ,CACrC,UAAU,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CrCsBT,OAAO,CqCD1B,AAxCH,AAqBI,0BArBsB,CASxB,sBAAsB,CAYlB,MAAM,CArBZ,0BAA0B,CASxB,sBAAsB,CAalB,KAAK,CAtBX,0BAA0B,CASxB,sBAAsB,CAclB,KAAK,CAvBX,0BAA0B,CAUxB,sBAAsB,CAWlB,MAAM,CArBZ,0BAA0B,CAUxB,sBAAsB,CAYlB,KAAK,CAtBX,0BAA0B,CAUxB,sBAAsB,CAalB,KAAK,CAvBX,0BAA0B,CAWxB,oBAAoB,CAUhB,MAAM,CArBZ,0BAA0B,CAWxB,oBAAoB,CAWhB,KAAK,CAtBX,0BAA0B,CAWxB,oBAAoB,CAYhB,KAAK,AAAC,CACN,KAAK,CrCae,OAAO,CqCZ3B,YAAY,CrCYQ,OAAO,CqCX3B,UAAU,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CrCWP,OAAO,CqCJ5B,CALC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CASxB,sBAAsB,CAYlB,MAAM,EAON,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CASxB,sBAAsB,CAalB,KAAK,EAML,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CASxB,sBAAsB,CAclB,KAAK,EAKL,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAUxB,sBAAsB,CAWlB,MAAM,EAON,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAUxB,sBAAsB,CAYlB,KAAK,EAML,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAUxB,sBAAsB,CAalB,KAAK,EAKL,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAWxB,oBAAoB,CAUhB,MAAM,EAON,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAWxB,oBAAoB,CAWhB,KAAK,EAML,AAAA,UAAC,CAAW,MAAM,AAAjB,EA5BP,0BAA0B,CAWxB,oBAAoB,CAYhB,KAAK,AAKiB,CACpB,KAAK,CrCSkB,IAAI,CqCR3B,YAAY,CrCQW,IAAI,CqCP3B,UAAU,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CrCOJ,IAAI,CqCN5B,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnCL,0BAA0B,CASxB,sBAAsB,EA0BpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnCL,0BAA0B,CAUxB,sBAAsB,EAyBpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnCL,0BAA0B,CAWxB,oBAAoB,AAwBI,CACpB,KAAK,CrCVc,OAAO,CqCW1B,YAAY,CrCKS,OAAO,CqCJ5B,UAAU,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CrCIN,OAAO,CqCH7B,AAvCL,AA0CE,0BA1CwB,CA0CxB,sBAAsB,CA1CxB,0BAA0B,CA2CxB,sBAAsB,AAAC,CACrB,KAAK,CAAE,uBAAuB,CAC9B,MAAM,CAAE,IAAI,CACZ,YAAY,CAAE,IAAI,CAClB,aAAa,CAAE,IAAI,CACnB,gBAAgB,CrC3BM,IAAO,CqCgC9B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,0BAA0B,CA0CxB,sBAAsB,EAQpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlDL,0BAA0B,CA2CxB,sBAAsB,AAOE,CACpB,gBAAgB,CrC7BS,OAAO,CqC8BjC,AApDL,AAuDE,0BAvDwB,CAuDxB,oBAAoB,AAAC,CACnB,MAAM,CAAE,OAAO,C7B5CjB,kBAAkB,C6B6CI,GAAG,CAAC,IAAI,CAAC,QAAQ,C7B5CvC,eAAe,C6B4CO,GAAG,CAAC,IAAI,CAAC,QAAQ,C7B3CvC,aAAa,C6B2CS,GAAG,CAAC,IAAI,CAAC,QAAQ,C7B1CvC,UAAU,C6B0CY,GAAG,CAAC,IAAI,CAAC,QAAQ,CACrC,OAAO,CAAE,WAAW,CAEpB,gBAAgB,CrCIM,OAAO,CqCC9B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA9DL,0BAA0B,CAuDxB,oBAAoB,AAOI,CACpB,gBAAgB,CrCES,OAAO,CqCDjC,AF7DL,AACE,OADK,CACL,aAAa,AAAC,CACZ,OAAO,CAAE,aAAa,CACtB,MAAM,CAAE,CAAC,CACT,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,IAAI,CAYlB,AAlBH,AAQI,OARG,CACL,aAAa,CAOX,YAAY,AAAC,CACX,KAAK,CAAE,iBAAwC,CAC/C,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,WAAW,CAClB,YAAY,CAAE,OAAO,CAKtB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAdP,OAAO,CACL,aAAa,CAOX,YAAY,AAMY,CACpB,KAAK,CAAE,sBAAkD,CAC1D,AAhBP,AAoBE,OApBK,CAoBL,gBAAgB,AAAC,CACf,MAAM,CAAE,QAAQ,CAChB,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CAClB,AAzBH,AA2BE,OA3BK,CA2BL,UAAU,AAAC,CACT,SAAS,CAAE,QAAQ,CACnB,KAAK,CnCHqB,OAAO,CmCsClC,AAhEH,AAoCI,OApCG,CA2BL,UAAU,CASR,IAAI,AAAC,CACH,OAAO,CAAE,YAAY,CACtB,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAxCL,OAAO,CA2BL,UAAU,AAac,CACpB,KAAK,CnCdwB,OAAO,CmCerC,AA1CL,A1BFE,O0BEK,CA2BL,UAAU,C1B7BV,CAAC,C0BEH,OAAO,CA2BL,UAAU,C1B5BV,CAAC,EAAE,MAAM,C0BCX,OAAO,CA2BL,UAAU,C1B3BV,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CA2BL,UAAU,C1B7BV,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CA2BL,UAAU,C1B5BV,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CA2BL,UAAU,C1B3BV,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A0BnBL,A1BsBE,O0BtBK,CA2BL,UAAU,C1BLV,CAAC,CAAC,MAAM,C0BtBV,OAAO,CA2BL,UAAU,C1BJV,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CA2BL,UAAU,C1BLV,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CA2BL,UAAU,C1BJV,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A0BxCL,AA8CI,OA9CG,CA2BL,UAAU,CAmBR,OAAO,AAAC,CACN,SAAS,CAAE,OAAO,CAgBnB,AA/DL,AAiDM,OAjDC,CA2BL,UAAU,CAmBR,OAAO,CAGL,GAAG,AAAA,OAAO,AAAC,CACT,KAAK,CAAE,MAAM,CACb,MAAM,CAAE,MAAM,CACd,aAAa,CAAE,GAAG,CAClB,cAAc,CAAE,WAAW,CAC3B,MAAM,CAAE,MAAM,CAAC,KAAK,CnChBN,OAAO,CmCiBrB,UAAU,CAAE,UAAU,CACtB,eAAe,CAAE,MAAM,C3BsC7B,aAAa,C2BrCa,KAAK,C3BsC/B,UAAU,C2BtCgB,KAAK,C3BuC/B,WAAW,CAAE,oBAA8B,C2BlCtC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3DT,OAAO,CA2BL,UAAU,CAmBR,OAAO,CAGL,GAAG,AAAA,OAAO,AAUc,CACpB,YAAY,CnCrBK,OAAO,CmCsBzB,AA7DT,AAkEE,OAlEK,CAkEL,eAAe,AAAC,CACd,MAAM,CAAE,eAAe,CAUxB,AA7EH,AAqEI,OArEG,CAkEL,eAAe,CAGb,GAAG,AAAC,CACF,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,MAAM,CACd,QAAQ,CAAE,MAAM,CACjB,AA5EL,AA+EE,OA/EK,CA+EL,QAAQ,CAAA,AAAA,aAAC,AAAA,EAAc,GAAK,EAAA,AAAA,aAAC,AAAA,IAAiB,KAAK,AAAC,CAClD,OAAO,CAAE,mBAAmB,CAC5B,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,MAAM,CAClB,KAAK,CnCzDqB,OAAO,CmC0DjC,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,GAAG,CACb,AAtFH,AAyFI,OAzFG,CAwFL,QAAQ,CACJ,EAAE,CAzFR,OAAO,CAwFL,QAAQ,CAEJ,EAAE,AAAC,CACH,SAAS,CAAE,MAAM,CAKlB,AAhGL,AA6FM,OA7FC,CAwFL,QAAQ,CACJ,EAAE,CAIA,IAAI,CA7FZ,OAAO,CAwFL,QAAQ,CAEJ,EAAE,CAGA,IAAI,AAAC,CACL,SAAS,CAAE,OAAO,CACnB,AA/FP,AAkGI,OAlGG,CAwFL,QAAQ,CAUJ,EAAE,AAAC,CACH,SAAS,CAAE,QAAQ,CAKpB,AAxGL,AAqGM,OArGC,CAwFL,QAAQ,CAUJ,EAAE,CAGA,IAAI,AAAC,CACL,SAAS,CAAE,QAAQ,CACpB,AAvGP,AA0GI,OA1GG,CAwFL,QAAQ,CAkBJ,EAAE,AAAC,CACH,SAAS,CAAE,OAAO,CAKnB,AAhHL,AA6GM,OA7GC,CAwFL,QAAQ,CAkBJ,EAAE,CAGA,IAAI,AAAC,CACL,SAAS,CAAE,IAAI,CAChB,AA/GP,AAkHI,OAlHG,CAwFL,QAAQ,CA0BJ,EAAE,AAAC,CACH,SAAS,CAAE,QAAQ,CACpB,AApHL,AAsHI,OAtHG,CAwFL,QAAQ,CA8BJ,EAAE,AAAC,CACH,SAAS,CAAE,IAAI,CAChB,AAxHL,AA0HI,OA1HG,CAwFL,QAAQ,CAkCN,EAAE,CA1HN,OAAO,CAwFL,QAAQ,CAmCN,EAAE,CA3HN,OAAO,CAwFL,QAAQ,CAoCN,EAAE,CA5HN,OAAO,CAwFL,QAAQ,CAqCN,EAAE,CA7HN,OAAO,CAwFL,QAAQ,CAsCN,EAAE,AAAC,CACD,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,QAAQ,CAKjB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlIP,OAAO,CAwFL,QAAQ,CAkCN,EAAE,EAQA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlIP,OAAO,CAwFL,QAAQ,CAmCN,EAAE,EAOA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlIP,OAAO,CAwFL,QAAQ,CAoCN,EAAE,EAMA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlIP,OAAO,CAwFL,QAAQ,CAqCN,EAAE,EAKA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAlIP,OAAO,CAwFL,QAAQ,CAsCN,EAAE,AAIsB,CACpB,WAAW,CAAE,MAAM,CACpB,AApIP,AA4IM,OA5IC,CAwFL,QAAQ,CA+CJ,EAAE,CAKA,YAAY,EAAE,MAAM,CA5I5B,OAAO,CAwFL,QAAQ,CAgDJ,EAAE,CAIA,YAAY,EAAE,MAAM,CA5I5B,OAAO,CAwFL,QAAQ,CAiDJ,EAAE,CAGA,YAAY,EAAE,MAAM,CA5I5B,OAAO,CAwFL,QAAQ,CAkDJ,EAAE,CAEA,YAAY,EAAE,MAAM,CA5I5B,OAAO,CAwFL,QAAQ,CAmDJ,EAAE,CACA,YAAY,EAAE,MAAM,AAAC,CACrB,OAAO,CAAE,GAAG,CACZ,YAAY,CAAE,SAAS,CACvB,KAAK,CnCpDO,OAAO,CmCyDpB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjJT,OAAO,CAwFL,QAAQ,CA+CJ,EAAE,CAKA,YAAY,EAAE,MAAM,EAKpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjJT,OAAO,CAwFL,QAAQ,CAgDJ,EAAE,CAIA,YAAY,EAAE,MAAM,EAKpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjJT,OAAO,CAwFL,QAAQ,CAiDJ,EAAE,CAGA,YAAY,EAAE,MAAM,EAKpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjJT,OAAO,CAwFL,QAAQ,CAkDJ,EAAE,CAEA,YAAY,EAAE,MAAM,EAKpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjJT,OAAO,CAwFL,QAAQ,CAmDJ,EAAE,CACA,YAAY,EAAE,MAAM,AAKE,CACpB,KAAK,CnCtDU,OAAO,CmCuDvB,AAnJT,AAuJI,OAvJG,CAwFL,QAAQ,CA+DJ,EAAE,CAAG,YAAY,EAAE,MAAM,AAAC,CAC1B,OAAO,CAAE,GAAG,CACb,AAzJL,AA2JI,OA3JG,CAwFL,QAAQ,CAmEN,CAAC,AAAC,CACA,MAAM,CAAE,QAAQ,CACjB,AA7JL,AA+JI,OA/JG,CAwFL,QAAQ,CAuEN,CAAC,CA/JL,OAAO,CAwFL,QAAQ,CAwEN,MAAM,AAAC,CACL,WAAW,CAAE,IAAI,CAKlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnKP,OAAO,CAwFL,QAAQ,CAuEN,CAAC,EAIC,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnKP,OAAO,CAwFL,QAAQ,CAwEN,MAAM,AAGkB,CACpB,KAAK,CAAE,IAAI,CACZ,AArKP,A1BFE,O0BEK,CAwFL,QAAQ,C1B1FR,CAAC,C0BEH,OAAO,CAwFL,QAAQ,C1BzFR,CAAC,EAAE,MAAM,C0BCX,OAAO,CAwFL,QAAQ,C1BxFR,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,C1B1FR,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,C1BzFR,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,C1BxFR,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A0BnBL,A1BsBE,O0BtBK,CAwFL,QAAQ,C1BlER,CAAC,CAAC,MAAM,C0BtBV,OAAO,CAwFL,QAAQ,C1BjER,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,C1BlER,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,C1BjER,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,A0BxCL,AA0KI,OA1KG,CAwFL,QAAQ,CAkFN,CAAC,AAAC,CACA,WAAW,CAAE,MAAM,C3BxFvB,SAAS,C2ByFkB,UAAU,C3BxFrC,aAAa,C2BwFc,UAAU,CAMlC,CAJC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA9KP,OAAO,CAwFL,QAAQ,CAkFN,CAAC,CAIuB,CAAC,EACvB,AAAA,UAAC,CAAW,MAAM,AAAjB,EA/KP,OAAO,CAwFL,QAAQ,CAkFN,CAAC,CAKuB,MAAM,AAAC,CAC3B,KAAK,CnCpFY,OAAO,CmCqFzB,AAjLP,AAoLI,OApLG,CAwFL,QAAQ,EA4FN,AAAA,UAAC,CAAW,MAAM,AAAjB,EAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CApLjC,OAAO,CAwFL,QAAQ,EA6FN,AAAA,UAAC,CAAW,MAAM,AAAjB,EAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,AAAC,CACjC,KAAK,CnCtFoB,OAAO,CmCuFjC,AAvLL,AAyLI,OAzLG,CAwFL,QAAQ,CAiGN,EAAE,CAzLN,OAAO,CAwFL,QAAQ,CAkGN,EAAE,AAAC,CACD,MAAM,CAAE,QAAQ,CAChB,YAAY,CAAE,MAAM,CACrB,AA7LL,AA+LI,OA/LG,CAwFL,QAAQ,CAuGN,EAAE,AAAC,CACD,eAAe,CAAE,IAAI,CACtB,AAjML,AAmMI,OAnMG,CAwFL,QAAQ,CA2GN,IAAI,AAAC,CACH,UAAU,CnC9DQ,OAAO,CmC2E1B,AAjNL,AAsMM,OAtMC,CAwFL,QAAQ,CA2GN,IAAI,CAGF,EAAE,AAAC,CACD,KAAK,CnC7KiB,OAAO,CmC8K9B,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA1MP,OAAO,CAwFL,QAAQ,CA2GN,IAAI,AAOoB,CACpB,UAAU,CnCpEW,OAAO,CmCyE7B,CAND,AAAA,AAGE,UAHD,CAAW,MAAM,AAAjB,EA1MP,OAAO,CAwFL,QAAQ,CA2GN,IAAI,CAUA,EAAE,AAAC,CACD,KAAK,CnCnLoB,OAAO,CmCoLjC,AA/MT,AAmNI,OAnNG,CAwFL,QAAQ,CA2HN,cAAc,AAAC,CACb,UAAU,CAAE,IAAI,CA0DjB,AA9QL,AAsNM,OAtNC,CAwFL,QAAQ,CA2HN,cAAc,EAGT,iBAAiB,AAAC,CACnB,gBAAgB,CnCpHC,IAAI,CmCyHtB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAzNT,OAAO,CAwFL,QAAQ,CA2HN,cAAc,EAGT,iBAAiB,AAGI,CACpB,gBAAgB,CnCtHI,OAAO,CmCuH5B,AA3NT,AA8NM,OA9NC,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,AAAC,CACN,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,UAAU,CAClB,cAAc,CAAE,CAAC,CACjB,UAAU,CnChIO,IAAI,CmCiIrB,eAAe,CAAE,QAAQ,CAyC1B,CAvCC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtOT,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,AAQiB,CACpB,UAAU,CnCnIU,OAAO,CmCoI5B,AAxOT,AA0OQ,OA1OD,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAYL,KAAK,AAAC,CACJ,UAAU,CnCpIA,OAAO,CmCyIlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA7OX,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAYL,KAAK,AAGmB,CACpB,gBAAgB,CnCtIH,OAAO,CmCuIrB,AA/OX,AAmPU,OAnPH,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAoBJ,GAAK,EAAA,AAAA,KAAC,AAAA,GAAQ,KAAK,CAChB,EAAE,CAAC,SAAU,CAAA,GAAG,CAAE,CAClB,UAAU,CnCjJG,OAAI,CmCsJlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtPb,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAoBJ,GAAK,EAAA,AAAA,KAAC,AAAA,GAAQ,KAAK,CAChB,EAAE,CAAC,SAAU,CAAA,GAAG,CAGM,CACpB,gBAAgB,CnCnJA,OAAO,CmCoJxB,AAxPb,AA2PU,OA3PH,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAoBJ,GAAK,EAAA,AAAA,KAAC,AAAA,GAAQ,KAAK,CAShB,EAAE,CAAC,KAAK,AAAC,CACT,UAAU,CnCzJG,OAAI,CmC8JlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA9Pb,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAoBJ,GAAK,EAAA,AAAA,KAAC,AAAA,GAAQ,KAAK,CAShB,EAAE,CAAC,KAAK,AAGc,CACpB,gBAAgB,CnC3JA,OAAO,CmC4JxB,AAhQb,AAoQQ,OApQD,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAsCL,EAAE,CApQV,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAuCL,EAAE,AAAC,CACD,OAAO,CAAE,WAAW,CACpB,MAAM,CAAE,GAAG,CAAC,KAAK,CnChKP,OAAO,CmCqKlB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAzQX,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAsCL,EAAE,EAKA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAzQX,OAAO,CAwFL,QAAQ,CA2HN,cAAc,CAWV,KAAK,CAuCL,EAAE,AAIsB,CACpB,YAAY,CnClKC,OAAO,CmCmKrB,AA3QX,AAgRI,OAhRG,CAwFL,QAAQ,CAwLN,GAAG,AAAC,CACF,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,GAAG,CAUhB,AA5RL,AAoRM,OApRC,CAwFL,QAAQ,CAwLN,GAAG,CAIA,GAAK,EAAA,AAAA,MAAC,AAAA,EAAS,CACd,MAAM,CAAE,IAAI,CACb,AAtRP,AAwRM,OAxRC,CAwFL,QAAQ,CAwLN,GAAG,AAQA,QAAQ,AAAC,CACR,MAAM,CAAE,MAAM,CACd,cAAc,CAAE,WAAW,CAC5B,AA3RP,AA6RI,OA7RG,CAwFL,QAAQ,CAqMN,GAAG,AAAC,CACF,SAAS,CAAE,IAAI,CAChB,AA/RL,AAiSI,OAjSG,CAwFL,QAAQ,CAyMN,MAAM,AAAC,CACL,MAAM,CAAE,MAAM,CACd,UAAU,CAAE,MAAM,CAqBnB,AAxTL,AAqSM,OArSC,CAwFL,QAAQ,CAyMN,MAAM,CAIJ,cAAc,CAAA,GAAK,EAAC,KAAK,CAAE,CACzB,SAAS,CAAE,GAAG,CACd,SAAS,CAAE,GAAG,CACd,OAAO,CAAE,YAAY,CACrB,OAAO,CAAE,MAAM,CACf,MAAM,CAAE,MAAM,CACd,SAAS,CAAE,QAAQ,CACnB,KAAK,CAAE,OAAO,CACf,AA7SP,AA+SM,OA/SC,CAwFL,QAAQ,CAyMN,MAAM,CAcJ,GAAG,AAAC,CACF,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,MAAM,CACd,QAAQ,CAAE,MAAM,CAKjB,AAvTP,AAoTQ,OApTD,CAwFL,QAAQ,CAyMN,MAAM,CAcJ,GAAG,CAKA,GAAK,EAAA,AAAA,KAAC,AAAA,EAAQ,CACb,KAAK,CAAE,IAAI,CACZ,AAtTT,AA0TI,OA1TG,CAwFL,QAAQ,CAkON,UAAU,AAAC,CACT,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,MAAM,CAAC,KAAK,CnCtRT,OAAO,CmCuRvB,KAAK,CnClNQ,OAAO,CmCmNpB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,MAAM,CAaf,AA5UL,AAiUM,OAjUC,CAwFL,QAAQ,CAkON,UAAU,CAOR,EAAE,CAjUR,OAAO,CAwFL,QAAQ,CAkON,UAAU,CAQR,EAAE,AAAC,CACD,YAAY,CAAE,KAAK,CACpB,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAtUP,OAAO,CAwFL,QAAQ,CAkON,UAAU,AAYc,CACpB,KAAK,CnC3NW,OAAO,CmC4NvB,iBAAiB,CnCjSE,OAAO,CmCkS3B,AAzUP,A1BFE,O0BEK,CAwFL,QAAQ,CAkON,UAAU,C1B5TZ,CAAC,C0BEH,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1B3TZ,CAAC,EAAE,MAAM,C0BCX,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1B1TZ,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1B5TZ,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1B3TZ,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1B1TZ,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A0BnBL,A1BsBE,O0BtBK,CAwFL,QAAQ,CAkON,UAAU,C1BpSZ,CAAC,CAAC,MAAM,C0BtBV,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1BnSZ,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1BpSZ,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,CAkON,UAAU,C1BnSZ,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A0BxCL,AA8UI,OA9UG,CAwFL,QAAQ,CAsPN,UAAU,AAAC,CACT,KAAK,CnCrTmB,OAAO,CmC8ThC,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAjVP,OAAO,CAwFL,QAAQ,CAsPN,UAAU,AAGc,CACpB,KAAK,CnCvTsB,OAAO,CmCwTnC,AAnVP,AAqVM,OArVC,CAwFL,QAAQ,CAsPN,UAAU,CAOR,CAAC,AAAC,CACA,MAAM,CAAE,SAAS,CAClB,AAvVP,AGFA,OHEO,CAwFL,QAAQ,CG1FV,IAAI,AAAC,CACH,OAAO,CAAE,WAAW,CACpB,MAAM,CAAE,CAAC,CACT,SAAS,CtCkJM,OAAQ,CsCjJvB,WAAW,CtCoJM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,QAAQ,CAAE,MAAM,CAAE,SAAS,CAhJjD,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CsCHlN,KAAK,CtC+HM,OAAO,CsC9HlB,gBAAgB,CAAE,qBAAwB,CAC1C,eAAe,CAAE,OAAO,C9BPxB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CQoExB,SAAS,C8B5Ec,UAAU,C9B6EjC,aAAa,C8B7EU,UAAU,C9BiFjC,kBAAkB,C8BhFE,IAAI,C9BiFxB,cAAc,C8BjFM,IAAI,C9BkFxB,UAAU,C8BlFU,IAAI,CAMzB,CAJC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHVH,OAAO,CAwFL,QAAQ,CG1FV,IAAI,AAYoB,CACpB,KAAK,CtCwHS,OAAO,CsCvHrB,gBAAgB,CAAE,oBAAuB,CAC1C,AHbH,AGiBA,OHjBO,CAwFL,QAAQ,CGvEV,GAAG,AAAC,CACF,MAAM,CAAE,CAAC,CACT,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,MAAM,CACf,QAAQ,CAAE,IAAI,CACd,SAAS,CtC6HM,OAAQ,CsC5HvB,WAAW,CtC+HM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,QAAQ,CAAE,MAAM,CAAE,SAAS,CAhJjD,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CQRlN,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CQyDxB,aAAa,C8B/CK,CAAC,C9BgDnB,WAAW,C8BhDO,CAAC,C9BiDnB,QAAQ,C8BjDU,CAAC,CAEnB,gBAAgB,CtC2GM,OAAO,CsCrF9B,CApBC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH7BH,OAAO,CAwFL,QAAQ,CGvEV,GAAG,AAYqB,CACpB,gBAAgB,CtCyGS,OAAO,CsCxGjC,AH/BH,AGiCE,OHjCK,CAwFL,QAAQ,CGvEV,GAAG,CAgBD,IAAI,AAAC,CACH,OAAO,CAAE,CAAC,CACV,gBAAgB,CAAE,WAAW,C9BrC/B,qBAAqB,C8BsCI,CAAC,C9BrC1B,kBAAkB,C8BqCO,CAAC,C9BpC1B,aAAa,C8BoCY,CAAC,C9B6B1B,SAAY,CAAW,mBAAmB,CAC1C,SAAY,CAAW,gBAAgB,CACvC,SAAY,CAAW,SAAS,CAChC,SAAY,CAAW,WAAW,C8B1BjC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHvCL,OAAO,CAwFL,QAAQ,CGvEV,GAAG,CAgBD,IAAI,AAMoB,CACpB,gBAAgB,CAAE,WAAW,CAC9B,AHzCL,AG4CE,OH5CK,CAwFL,QAAQ,CGvEV,GAAG,CA2BD,GAAG,AAAC,CACF,UAAU,CAAE,GAAG,CACf,UAAU,CAAE,KAAK,CACjB,cAAc,CAAE,WAAW,CAC5B,AHhDH,AGmDA,OHnDO,CAwFL,QAAQ,CGrCV,UAAU,CHnDV,OAAO,CAwFL,QAAQ,CGpCV,KAAK,AAAC,CACJ,SAAS,CtC8FM,OAAQ,CsC7FvB,WAAW,CtCgGM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,QAAQ,CAAE,MAAM,CAAE,SAAS,CAhJjD,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CsC6DnN,AHnED,AGyDI,OHzDG,CAwFL,QAAQ,CGrCV,UAAU,CAKR,cAAc,CACV,KAAK,CHzDX,OAAO,CAwFL,QAAQ,CGrCV,UAAU,CAKR,cAAc,CAEV,KAAK,CAAC,KAAK,CH1DjB,OAAO,CAwFL,QAAQ,CGrCV,UAAU,CAKR,cAAc,CAGV,KAAK,CAAC,EAAE,CH3Dd,OAAO,CAwFL,QAAQ,CGrCV,UAAU,CAKR,cAAc,CAIV,KAAK,CAAC,EAAE,CH5Dd,OAAO,CAwFL,QAAQ,CGpCV,KAAK,CAIH,cAAc,CACV,KAAK,CHzDX,OAAO,CAwFL,QAAQ,CGpCV,KAAK,CAIH,cAAc,CAEV,KAAK,CAAC,KAAK,CH1DjB,OAAO,CAwFL,QAAQ,CGpCV,KAAK,CAIH,cAAc,CAGV,KAAK,CAAC,EAAE,CH3Dd,OAAO,CAwFL,QAAQ,CGpCV,KAAK,CAIH,cAAc,CAIV,KAAK,CAAC,EAAE,AAAC,CACT,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,eAAe,CACvB,WAAW,CAAE,MAAM,CACpB,AHjEL,AGsEA,OHtEO,CAwFL,QAAQ,CGlBV,UAAU,AAAC,CACT,MAAM,CAAE,QAAQ,CA2PjB,AHlUD,AGyEE,OHzEK,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AAAC,CACR,QAAQ,CAAE,QAAQ,CAwKnB,AHlPH,AG4EI,OH5EG,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AAAC,CACX,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,UAAU,CACtB,KAAK,CAAE,IAAI,CACX,WAAW,CtC5EI,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CsC6E9M,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,KAAK,CAClB,KAAK,CtC0DO,OAAO,CsCzDnB,gBAAgB,CtCgDE,OAAO,CQxI7B,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CQNxB,kBAAkB,C8B+EM,aAAa,CAAC,IAAI,CAAC,IAAI,C9B9E/C,eAAe,C8B8ES,aAAa,CAAC,IAAI,CAAC,IAAI,C9B7E/C,aAAa,C8B6EW,aAAa,CAAC,IAAI,CAAC,IAAI,C9B5E/C,UAAU,C8B4Ec,aAAa,CAAC,IAAI,CAAC,IAAI,CA8D5C,CA5DC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH1FP,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AAcY,CACpB,KAAK,CtCqDU,OAAO,CsCpDtB,gBAAgB,CtC2CK,OAAO,CsC1C7B,AH7FP,AG+FM,OH/FC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAmBR,KAAK,AAAC,CACN,MAAM,CAAE,OAAO,CAChB,AHjGP,AGyGM,OHzGC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CA6BV,WAAW,AAAC,CACV,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,MAAM,CAYhB,AHvHP,AG6GQ,OH7GD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CA6BV,WAAW,CAIT,MAAM,AAAC,CACL,OAAO,CAAE,QAAQ,C9BrGzB,kBAAkB,C8BsGU,SAAS,CAAC,IAAI,CAAC,IAAI,C9BrG/C,eAAe,C8BqGa,SAAS,CAAC,IAAI,CAAC,IAAI,C9BpG/C,aAAa,C8BoGe,SAAS,CAAC,IAAI,CAAC,IAAI,C9BnG/C,UAAU,C8BmGkB,SAAS,CAAC,IAAI,CAAC,IAAI,CACxC,AHhHT,AGkHQ,OHlHD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CA6BV,WAAW,CAST,YAAY,AAAC,CACX,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,GAAG,CACT,SAAS,CAAE,gBAAgB,CAC5B,AHtHT,AGyHM,OHzHC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CA6CV,WAAW,EAAE,KAAK,AAAC,CACjB,YAAY,CAAE,MAAM,CACpB,OAAO,CAAE,MAAM,CAChB,AH5HP,AG8HM,OH9HC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAkDV,SAAS,AAAC,CACR,OAAO,CAAE,MAAM,CAChB,AHhIP,AGkIM,OHlIC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAsDV,KAAK,CHlIX,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAuDV,KAAK,AAAC,CACJ,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,MAAM,CAUhB,AH/IP,AGuIQ,OHvID,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAsDV,KAAK,CAKD,KAAK,CHvIf,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAuDV,KAAK,CAID,KAAK,AAAC,CACN,MAAM,CAAE,OAAO,CACf,KAAK,CtCvGW,OAAO,CsC4GxB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH3IX,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAsDV,KAAK,CAKD,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EH3IX,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAuDV,KAAK,CAID,KAAK,AAIiB,CACpB,KAAK,CtCzGc,IAAI,CsC0GxB,AH7IX,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnClJP,MAAM,CmCmJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCjJP,MAAM,CmCkJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnChJT,cAAc,CmCiJb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnC/IC,cAAc,CmCgJvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC9IR,gBAAgB,CmC+IhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,uBAAuB,CAAC,WAAW,EAAE,KAAK,AAqJT,CACxB,OAAO,CnC7IE,gBAAgB,CmC8I1B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC5IR,KAAK,CmC6IL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC3IN,KAAK,CmC4IP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC1IJ,KAAK,CmC2IT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCzIT,IAAI,CmC0IH,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCxIR,UAAU,CmCyIV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCvIN,OAAO,CmCwIT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCtID,YAAY,CmCuInB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCrIN,YAAY,CmCsId,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCpIL,YAAY,CmCqIf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCnIR,KAAK,CmCoIL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnClIA,aAAa,CmCmIrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCjIJ,SAAS,CmCkIb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnChIL,QAAQ,CmCiIX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC/HR,KAAK,CmCgIL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC9HP,KAAK,CmC+HN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC7HP,KAAK,CmC8HN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC5HP,KAAK,CmC6HN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnC3HF,WAAW,CmC4HjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC1HP,eAAe,CmC2HhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCzHH,eAAe,CmC0HpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCxHT,eAAe,CmCyHd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCvHJ,eAAe,CmCwHnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCtHP,MAAM,CmCuHP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCrHT,MAAM,CmCsHL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCpHR,MAAM,CmCqHN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCnHR,MAAM,CmCoHN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnClHN,MAAM,CmCmHR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnCjHC,aAAa,CmCkHtB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnChHJ,aAAa,CmCiHjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,uBAAuB,CAAC,WAAW,EAAE,KAAK,AAqJT,CACxB,OAAO,CnC/GE,aAAa,CmCgHvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC9GR,WAAW,CmC+GX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC7GN,WAAW,CmC8Gb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC5GH,WAAW,CmC6GhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC3GH,WAAW,CmC4GhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC1GR,QAAQ,CmC2GR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCzGL,QAAQ,CmC0GX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCxGN,OAAO,CmCyGT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCvGD,YAAY,CmCwGnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCtGR,YAAY,CmCuGZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCrGN,YAAY,CmCsGd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCpGR,KAAK,CmCqGL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCnGF,WAAW,CmCoGjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnClGT,WAAW,CmCmGV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnCjGV,GAAG,CmCkGD,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnChGL,IAAI,CmCiGP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC/FP,IAAI,CmCgGL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC9FR,KAAK,CmC+FL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC7FJ,KAAK,CmC8FT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnC5FF,WAAW,CmC6FjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC3FN,WAAW,CmC4Fb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,8BAA8B,CAAC,WAAW,EAAE,KAAK,AAqJhB,CACxB,OAAO,CnC1FS,sBAAsB,CmC2FvC,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnCzFA,sBAAsB,CmC0F9B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCxFJ,sBAAsB,CmCyF1B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCvFN,aAAa,CmCwFf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCtFF,eAAe,CmCuFrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCrFR,eAAe,CmCsFf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCpFL,QAAQ,CmCqFX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCnFF,WAAW,CmCoFjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnClFR,WAAW,CmCmFX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCjFR,aAAa,CmCkFb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnChFP,YAAY,CmCiFb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnC/ED,YAAY,CmCgFnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC9EJ,SAAS,CmC+Eb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC7EH,SAAS,CmC8Ed,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC5EJ,SAAS,CmC6Eb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC3ER,SAAS,CmC4ET,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC1EN,OAAO,CmC2ET,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCzEN,OAAO,CmC0ET,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,uBAAuB,CAAC,WAAW,EAAE,KAAK,AAqJT,CACxB,OAAO,CnCxEE,cAAc,CmCyExB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnCvEC,cAAc,CmCwEvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCtEL,cAAc,CmCuEjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnCrEA,aAAa,CmCsErB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCpET,aAAa,CmCqEZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCnEP,aAAa,CmCoEd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnClER,KAAK,CmCmEL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCjET,SAAS,CmCkER,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnChEJ,SAAS,CmCiEb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC/DR,KAAK,CmCgEL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC9DL,QAAQ,CmC+DX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC7DR,QAAQ,CmC8DR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC5DN,QAAQ,CmC6DV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnC3DV,GAAG,CmC4DD,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC1DP,MAAM,CmC2DP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCzDP,MAAM,CmC0DP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCxDN,MAAM,CmCyDR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCvDL,cAAc,CmCwDjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCtDN,cAAc,CmCuDhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCrDL,QAAQ,CmCsDX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCpDD,QAAQ,CmCqDf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCnDR,KAAK,CmCoDL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnClDN,OAAO,CmCmDT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCjDP,MAAM,CmCkDP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnChDL,QAAQ,CmCiDX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC/CT,QAAQ,CmCgDP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC9CR,QAAQ,CmC+CR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC7CR,KAAK,CmC8CL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC5CN,WAAW,CmC6Cb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC3CN,WAAW,CmC4Cb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnC1CD,WAAW,CmC2ClB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCzCL,QAAQ,CmC0CX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCxCL,QAAQ,CmCyCX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCvCL,QAAQ,CmCwCX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCtCR,QAAQ,CmCuCR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCrCP,MAAM,CmCsCP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCpCF,MAAM,CmCqCZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCnCN,OAAO,CmCoCT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnClCJ,SAAS,CmCmCb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnCjCC,cAAc,CmCkCvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnChCL,QAAQ,CmCiCX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC/BR,KAAK,CmCgCL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC9BR,KAAK,CmC+BL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC7BH,UAAU,CmC8Bf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC5BT,UAAU,CmC6BT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC3BL,QAAQ,CmC4BX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC1BR,QAAQ,CmC2BR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnCzBC,QAAQ,CmC0BjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCxBF,QAAQ,CmCyBd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnCvBE,aAAa,CmCwBvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCtBD,aAAa,CmCuBpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCrBD,aAAa,CmCsBpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCpBH,SAAS,CmCqBd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCnBH,SAAS,CmCoBd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnClBJ,SAAS,CmCmBb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCjBJ,SAAS,CmCkBb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnChBP,MAAM,CmCiBP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCfJ,SAAS,CmCgBb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCdT,IAAI,CmCeH,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCbL,IAAI,CmCcP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,0BAA0B,CAAC,WAAW,EAAE,KAAK,AAqJZ,CACxB,OAAO,CnCZK,kBAAkB,CmCa/B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,0BAA0B,CAAC,WAAW,EAAE,KAAK,AAqJZ,CACxB,OAAO,CnCXK,kBAAkB,CmCY/B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCVJ,SAAS,CmCWb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCTH,SAAS,CmCUd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCRR,SAAS,CmCST,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCPN,OAAO,CmCQT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCNN,OAAO,CmCOT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCLR,OAAO,CmCMP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCJL,QAAQ,CmCKX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCHD,YAAY,CmCInB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCFR,YAAY,CmCGZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCDJ,SAAS,CmCEb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCAT,SAAS,CmCCR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCCT,MAAM,CmCAL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCEP,MAAM,CmCDP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCGP,MAAM,CmCFP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCIR,KAAK,CmCHL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCKJ,SAAS,CmCJb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCMR,KAAK,CmCLL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCOP,MAAM,CmCNP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCQP,MAAM,CmCPP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCSL,IAAI,CmCRP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCUN,OAAO,CmCTT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCWR,OAAO,CmCVP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCYP,MAAM,CmCXP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCaJ,MAAM,CmCZV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCcR,KAAK,CmCbL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCeR,KAAK,CmCdL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCgBL,KAAK,CmCfR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCiBT,IAAI,CmChBH,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnCkBV,GAAG,CmCjBD,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCmBP,MAAM,CmClBP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCoBT,YAAY,CmCnBX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCqBD,YAAY,CmCpBnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCsBP,MAAM,CmCrBP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCuBN,OAAO,CmCtBT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCwBT,OAAO,CmCvBN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCyBL,QAAQ,CmCxBX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC0BL,QAAQ,CmCzBX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC2BL,6BAA6B,CmC1BhC,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC4BH,6BAA6B,CmC3BlC,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC6BP,MAAM,CmC5BP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC8BR,KAAK,CmC7BL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC+BP,MAAM,CmC9BP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCgCT,UAAU,CmC/BT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCiCR,UAAU,CmChCV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCkCN,OAAO,CmCjCT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnCmCA,aAAa,CmClCrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCoCR,aAAa,CmCnCb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCqCT,aAAa,CmCpCZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCsCL,QAAQ,CmCrCX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCuCD,YAAY,CmCtCnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCwCN,OAAO,CmCvCT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnCyCE,OAAO,CmCxCjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC0CN,OAAO,CmCzCT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC2CH,UAAU,CmC1Cf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC4CR,UAAU,CmC3CV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC6CR,UAAU,CmC5CV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC8CP,MAAM,CmC7CP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC+CJ,UAAU,CmC9Cd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCgDT,UAAU,CmC/CT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCiDJ,SAAS,CmChDb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCkDF,iBAAiB,CmCjDvB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCmDH,iBAAiB,CmClDtB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCoDL,QAAQ,CmCnDX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCqDN,OAAO,CmCpDT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCsDJ,OAAO,CmCrDX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCuDP,MAAM,CmCtDP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCwDH,UAAU,CmCvDf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCyDN,0BAA0B,CmCxD5B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC0DR,KAAK,CmCzDL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC2DL,KAAK,CmC1DR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC4DN,KAAK,CmC3DP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC6DR,KAAK,CmC5DL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnC8DA,aAAa,CmC7DrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnC+DD,aAAa,CmC9DpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCgEN,aAAa,CmC/Df,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCiEP,aAAa,CmChEd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCkEN,OAAO,CmCjET,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCmEL,QAAQ,CmClEX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCoEP,gBAAgB,CmCnEjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,wBAAwB,CAAC,WAAW,EAAE,KAAK,AAqJV,CACxB,OAAO,CnCqEG,gBAAgB,CmCpE3B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCsET,gBAAgB,CmCrEf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,AAqJT,CACxB,OAAO,CnCuEE,gBAAgB,CmCtE1B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCwEH,cAAc,CmCvEnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCyER,cAAc,CmCxEd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC0EH,cAAc,CmCzEnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnC2EA,cAAc,CmC1EtB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC4EH,UAAU,CmC3Ef,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC6ER,UAAU,CmC5EV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC8EJ,UAAU,CmC7Ed,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnC+ED,YAAY,CmC9EnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCgFP,MAAM,CmC/EP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCiFT,MAAM,CmChFL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCkFR,KAAK,CmCjFL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCmFP,KAAK,CmClFN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCoFP,KAAK,CmCnFN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCqFP,KAAK,CmCpFN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCsFN,OAAO,CmCrFT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCuFR,KAAK,CmCtFL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCwFF,WAAW,CmCvFjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCyFJ,UAAU,CmCxFd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC0FP,WAAW,CmCzFZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC2FN,WAAW,CmC1Fb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,sBAAsB,CAAC,WAAW,EAAE,KAAK,AAqJR,CACxB,OAAO,CnC4FC,WAAW,CmC3FpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnC6FA,aAAa,CmC5FrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC8FR,aAAa,CmC7Fb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC+FP,MAAM,CmC9FP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCgGD,wBAAwB,CmC/F/B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCiGH,wBAAwB,CmChG7B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCkGD,YAAY,CmCjGnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCmGJ,YAAY,CmClGhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCoGR,QAAQ,CmCnGR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCqGD,YAAY,CmCpGnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCsGT,YAAY,CmCrGX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCuGD,YAAY,CmCtGnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCwGP,YAAY,CmCvGb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCyGR,YAAY,CmCxGZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC0GP,YAAY,CmCzGb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC2GP,YAAY,CmC1Gb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC4GL,QAAQ,CmC3GX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC6GL,QAAQ,CmC5GX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC8GH,iBAAiB,CmC7GtB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC+GN,iBAAiB,CmC9GnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCgHL,QAAQ,CmC/GX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCiHL,QAAQ,CmChHX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCkHT,QAAQ,CmCjHP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCmHP,QAAQ,CmClHT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCoHJ,QAAQ,CmCnHZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCqHR,QAAQ,CmCpHR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCsHJ,UAAU,CmCrHd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCuHR,UAAU,CmCtHV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCwHL,QAAQ,CmCvHX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCyHN,QAAQ,CmCxHV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC0HR,KAAK,CmCzHL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC2HR,KAAK,CmC1HL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC4HN,GAAG,CmC3HL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnC6HV,GAAG,CmC5HD,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnC8HV,GAAG,CmC7HD,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC+HL,QAAQ,CmC9HX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCgIR,QAAQ,CmC/HR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCiIN,OAAO,CmChIT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCkIN,MAAM,CmCjIR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCmIR,MAAM,CmClIN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCoIP,MAAM,CmCnIP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCqIR,OAAO,CmCpIP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCsIN,OAAO,CmCrIT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCuIL,UAAU,CmCtIb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCwIH,UAAU,CmCvIf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCyIH,KAAK,CmCxIV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC0IR,kBAAkB,CmCzIlB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC2IP,kBAAkB,CmC1InB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,0BAA0B,CAAC,WAAW,EAAE,KAAK,AAqJZ,CACxB,OAAO,CnC4IK,kBAAkB,CmC3I/B,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC6IP,MAAM,CmC5IP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC8IN,MAAM,CmC7IR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC+IT,MAAM,CmC9IL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCgJP,MAAM,CmC/IP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCiJP,MAAM,CmChJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCkJP,MAAM,CmCjJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCmJT,MAAM,CmClJL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCoJR,KAAK,CmCnJL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCqJP,MAAM,CmCpJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCsJN,OAAO,CmCrJT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCuJL,QAAQ,CmCtJX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCwJR,QAAQ,CmCvJR,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCyJL,QAAQ,CmCxJX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC0JP,MAAM,CmCzJP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC2JN,OAAO,CmC1JT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnC4JF,WAAW,CmC3JjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC6JL,WAAW,CmC5Jd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC8JT,WAAW,CmC7JV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC+JL,QAAQ,CmC9JX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCgKL,QAAQ,CmC/JX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCiKR,UAAU,CmChKV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCkKH,UAAU,CmCjKf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCmKL,QAAQ,CmClKX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCoKR,KAAK,CmCnKL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCqKF,WAAW,CmCpKjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnCsKC,WAAW,CmCrKpB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCuKN,WAAW,CmCtKb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCwKR,aAAa,CmCvKb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCyKL,QAAQ,CmCxKX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC0KL,QAAQ,CmCzKX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC2KN,OAAO,CmC1KT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC4KJ,SAAS,CmC3Kb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,uBAAuB,CAAC,WAAW,EAAE,KAAK,AAqJT,CACxB,OAAO,CnC6KE,eAAe,CmC5KzB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC8KT,eAAe,CmC7Kd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC+KH,UAAU,CmC9Kf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCgLP,MAAM,CmC/KP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCiLR,KAAK,CmChLL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCkLP,MAAM,CmCjLP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCmLR,MAAM,CmClLN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnCoLJ,SAAS,CmCnLb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnCqLH,UAAU,CmCpLf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,mBAAmB,CAAC,WAAW,EAAE,KAAK,AAqJL,CACxB,OAAO,CnCsLF,WAAW,CmCrLjB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCuLT,WAAW,CmCtLV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCwLR,KAAK,CmCvLL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCyLN,KAAK,CmCxLP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC0LL,QAAQ,CmCzLX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC2LP,MAAM,CmC1LP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,qBAAqB,CAAC,WAAW,EAAE,KAAK,AAqJP,CACxB,OAAO,CnC4LA,aAAa,CmC3LrB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnC6LT,aAAa,CmC5LZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnC8LP,cAAc,CmC7Lf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC+LN,cAAc,CmC9LhB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCgML,QAAQ,CmC/LX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCiML,QAAQ,CmChMX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCkMP,MAAM,CmCjMP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,YAAY,CAAC,WAAW,EAAE,KAAK,AAqJE,CACxB,OAAO,CnCmMT,YAAY,CmClMX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCoMR,YAAY,CmCnMZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCqMD,YAAY,CmCpMnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCsMD,YAAY,CmCrMnB,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,2BAA2B,CAAC,WAAW,EAAE,KAAK,AAqJb,CACxB,OAAO,CnCuMM,mBAAmB,CmCtMjC,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,4BAA4B,CAAC,WAAW,EAAE,KAAK,AAqJd,CACxB,OAAO,CnCwMO,oBAAoB,CmCvMnC,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,WAAW,CAAC,WAAW,EAAE,KAAK,AAqJG,CACxB,OAAO,CnCyMV,SAAS,CmCxMP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC0MN,GAAG,CmCzML,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC2MR,SAAS,CmC1MT,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnC4ML,SAAS,CmC3MZ,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC6MH,QAAQ,CmC5Mb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnC8MN,QAAQ,CmC7MV,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,iBAAiB,CAAC,WAAW,EAAE,KAAK,AAqJH,CACxB,OAAO,CnC+MJ,SAAS,CmC9Mb,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCgNP,MAAM,CmC/MP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCiNR,MAAM,CmChNN,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCkNR,KAAK,CmCjNL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,eAAe,CAAC,WAAW,EAAE,KAAK,AAqJD,CACxB,OAAO,CnCmNN,KAAK,CmClNP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,gBAAgB,CAAC,WAAW,EAAE,KAAK,AAqJF,CACxB,OAAO,CnCoNL,QAAQ,CmCnNX,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCqNR,KAAK,CmCpNL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,oBAAoB,CAAC,WAAW,EAAE,KAAK,AAqJN,CACxB,OAAO,CnCsNA,MAAM,CmCrNd,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCuNP,MAAM,CmCtNP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,cAAc,CAAC,WAAW,EAAE,KAAK,AAqJA,CACxB,OAAO,CnCwNP,MAAM,CmCvNP,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnCyNR,KAAK,CmCxNL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC0NR,KAAK,CmCzNL,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,kBAAkB,CAAC,WAAW,EAAE,KAAK,AAqJJ,CACxB,OAAO,CnC4NH,UAAU,CmC3Nf,AHpJT,AGkJQ,OHlJD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,AA/Ef,aAAa,CAAC,WAAW,EAAE,KAAK,AAqJC,CACxB,OAAO,CnC6NR,MAAM,CmC5NN,AHpJT,AGyJI,OHzJG,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAgFP,cAAc,AAAC,CACb,UAAU,CAAE,CAAC,CACb,QAAQ,CAAE,MAAM,C9B7JpB,qBAAqB,C8B8JM,CAAC,CAAC,CAAC,CtC7IT,GAAG,CAAH,GAAG,CQhBxB,kBAAkB,C8B6JS,CAAC,CAAC,CAAC,CtC7IT,GAAG,CAAH,GAAG,CQfxB,aAAa,C8B4Jc,CAAC,CAAC,CAAC,CtC7IT,GAAG,CAAH,GAAG,CQNxB,kBAAkB,CGXE,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHYlE,eAAe,CGZK,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHalE,aAAa,CGbO,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,CHclE,UAAU,CGdU,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAE,KAAI,C2BgK/D,AH9JL,AGgKI,OHhKG,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,AAAC,CACJ,cAAc,CAAE,CAAC,CACjB,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,IAAI,CACd,OAAO,CAAE,KAAK,CACd,gBAAgB,CtC/BE,OAAO,CsC8E1B,CA7CC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHvKP,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,AAOmB,CACpB,gBAAgB,CtCjCK,OAAO,CsCkC7B,AHzKP,AG2KM,OH3KC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAWH,EAAE,AAAC,CACD,cAAc,CAAE,GAAG,CACnB,OAAO,CAAE,CAAC,CACX,AH9KP,AGgLM,OHhLC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAgBH,GAAG,AAAC,CACF,OAAO,CAAE,OAAO,CAChB,cAAc,CAAE,IAAI,C9BpL1B,qBAAqB,C8BqLQ,CAAC,C9BpL9B,kBAAkB,C8BoLW,CAAC,C9BnL9B,aAAa,C8BmLgB,CAAC,CACzB,AHpLP,AGuLM,OHvLC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAuBH,GAAG,AAAC,CACF,SAAS,CAAE,OAAO,CACnB,AHzLP,AG6LM,OH7LC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CA6BH,KAAK,CAAC,WAAW,AAAC,CAChB,SAAS,CAAE,MAAM,CACjB,UAAU,CAAE,KAAK,CACjB,QAAQ,CAAE,MAAM,CAChB,IAAI,CAAE,CAAC,CAKR,AHtMP,AGmMQ,OHnMD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CA6BH,KAAK,CAAC,WAAW,CAMf,GAAG,AAAC,C9B/FV,mBAAmB,C8BgGU,IAAI,C9BhGL,UAAU,CACtC,gBAAgB,C8B+Fa,IAAI,C9B/FR,UAAU,CACnC,WAAW,C8B8FkB,IAAI,C9B9Fb,UAAU,C8B+FvB,AHrMT,AGwMM,OHxMC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAwCH,KAAK,CAAC,UAAU,AAAC,CACf,KAAK,CAAE,IAAI,CASZ,AHlNP,AG2MQ,OH3MD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAwCH,KAAK,CAAC,UAAU,CAGd,GAAG,AAAC,CACF,YAAY,CAAE,MAAM,CACpB,aAAa,CAAE,MAAM,CACtB,AH9MT,AG+MQ,OH/MD,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAuFP,KAAK,CAwCH,KAAK,CAAC,UAAU,CAOd,IAAI,AAAC,CACH,KAAK,CAAE,IAAI,CACZ,AHjNT,AGuNM,OHvNC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CACJ,YAAY,AAAC,CACX,gBAAgB,CtClFA,OAAO,CQxI7B,qBAAqB,CRiBA,GAAG,CAAH,GAAG,CsC0MiD,CAAC,CAAC,CAAC,C9B1N5E,kBAAkB,CRgBG,GAAG,CAAH,GAAG,CsC0MiD,CAAC,CAAC,CAAC,C9BzN5E,aAAa,CReQ,GAAG,CAAH,GAAG,CsC0MiD,CAAC,CAAC,CAAC,CAKvE,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH3NT,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CACJ,YAAY,AAIY,CACpB,gBAAgB,CtCrFG,OAAO,CsCsF3B,AH7NT,AGgOM,OHhOC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CAUJ,cAAc,AAAC,CACb,UAAU,CAAE,IAAI,C9BxNtB,kBAAkB,CGPE,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHQjE,eAAe,CGRK,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHSjE,aAAa,CGTO,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CHUjE,UAAU,CGVU,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,C2BiO5D,AHnOP,AGqOM,OHrOC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CAeJ,MAAM,AAAC,C9BrNX,iBAAiB,C8BsNQ,aAAa,C9BrNtC,aAAa,C8BqNY,aAAa,C9BpNtC,YAAY,C8BoNa,aAAa,C9BnNtC,SAAS,C8BmNgB,aAAa,CACjC,AHvOP,AGyOM,OHzOC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CAmBJ,SAAS,AAAC,CACR,OAAO,CAAE,IAAI,CACd,AH3OP,AG6OM,OH7OC,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CAuBJ,KAAK,CH7OX,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,AA6IN,KAAK,CAwBJ,KAAK,AAAC,CACJ,OAAO,CAAE,MAAM,CAChB,AHhPP,AGqPE,OHrPK,CAwFL,QAAQ,CGlBV,UAAU,CA+KR,GAAG,AAAC,CACF,OAAO,CAAE,KAAK,CACd,gBAAgB,CtC3GI,OAAO,CsC4G3B,UAAU,CAAG,OAAM,CAAC,CAAC,CAAC,CAAC,CtC5GH,OAAO,CsC4GqB,MAAM,CAAC,CAAC,CAAC,CAAC,CtC5GtC,OAAO,CsCkH5B,CAJC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH1PL,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CA+KR,GAAG,AAKqB,CACpB,gBAAgB,CtC9GO,qBAAwB,CsC+G/C,UAAU,CAAG,OAAM,CAAC,CAAC,CAAC,CAAC,CtC/GA,qBAAwB,CsC+GM,MAAM,CAAC,CAAC,CAAC,CAAC,CtC/GxC,qBAAwB,CsCgHhD,AH7PL,AGgQE,OHhQK,CAwFL,QAAQ,CGlBV,UAAU,CA0LR,GAAG,AAAC,CACF,eAAe,CAAE,SAAS,CAC3B,AHlQH,AGoQE,OHpQK,CAwFL,QAAQ,CGlBV,UAAU,CA8LR,GAAG,AAAC,CACF,WAAW,CAAE,IAAI,CAClB,AHtQH,AGwQE,OHxQK,CAwFL,QAAQ,CGlBV,UAAU,CAkMR,GAAG,AAAC,CACF,UAAU,CAAE,MAAM,CACnB,AH1QH,AG4QE,OH5QK,CAwFL,QAAQ,CGlBV,UAAU,CAsMR,GAAG,AAAC,CACF,aAAa,CAAE,MAAM,CACrB,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,MAAM,CACjB,UAAU,CAAE,KAAK,CAClB,AHjRH,AGmRE,OHnRK,CAwFL,QAAQ,CGlBV,UAAU,CA6MR,IAAI,CHnRN,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CA8MR,GAAG,AAAC,CACF,KAAK,CtC3PqB,OAAO,CsCgQlC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHvRL,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CA6MR,IAAI,EAIF,AAAA,UAAC,CAAW,MAAM,AAAjB,EHvRL,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CA8MR,GAAG,AAGqB,CACpB,KAAK,CtC7PwB,OAAO,CsC8PrC,AHzRL,AG+RE,OH/RK,CAwFL,QAAQ,CGlBV,UAAU,CAyNR,IAAI,AAAC,CACH,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,GAAG,CAAC,MAAM,CtCxJV,OAAO,CsCyJvB,AHlSH,AGoSE,OHpSK,CAwFL,QAAQ,CGlBV,UAAU,CA8NR,GAAG,AAAC,CACF,gBAAgB,CAAE,OAAO,CAK1B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHvSL,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CA8NR,GAAG,AAGqB,CACpB,gBAAgB,CAAE,OAAO,CAC1B,AHzSL,AG4SE,OH5SK,CAwFL,QAAQ,CGlBV,UAAU,CAsOR,GAAG,AAAC,CACF,gBAAgB,CAAE,OAAO,CAK1B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH/SL,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAsOR,GAAG,AAGqB,CACpB,gBAAgB,CAAE,OAAO,CAC1B,AHjTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,IAAI,AAwTQ,CACN,KAAK,CtC7KQ,OAAO,CsC8KrB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpCtTU,OAAO,CoCuTvB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCrTmB,OAAO,CoCsThC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCpTsB,OAAO,CoCqTnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCnToB,OAAO,CoCoTjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpClTiB,OAAO,CoCmT9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCjTmB,OAAO,CoCkThC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpChTe,OAAO,CoCiT5B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC9SiB,OAAO,CoC+S9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC7Se,OAAO,CoC8S5B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC3Sa,OAAO,CoC4S1B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC1SgB,OAAO,CoC2S7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCzSiB,OAAO,CoC0S9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCxSc,OAAO,CoCyS3B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCvSiB,OAAO,CoCwS9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCtSgB,OAAO,CoCuS7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCrSqB,OAAO,CoCsSlC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCpSa,OAAO,CoCqS1B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCnSiB,OAAO,CoCoS9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpClSa,OAAO,CoCmS1B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCjSgB,OAAO,CoCkS7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpChSW,OAAO,CoCiSxB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC/RgB,OAAO,CoCgS7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC9RqB,OAAO,CoC+RlC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC7RsB,OAAO,CoC8RnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC5RwB,OAAO,CoC6RrC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC3RqB,OAAO,CoC4RlC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpC1RU,OAAO,CoC2RvB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCzRe,OAAO,CoC0R5B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpCxRgB,OAAO,CoCyR7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCvRsB,OAAO,CoCwRnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCtRyB,OAAO,CoCuRtC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCrRqB,OAAO,CoCsRlC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCpR0B,OAAO,CoCqRvC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCnRoB,OAAO,CoCoRjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpClRuB,OAAO,CoCmRpC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCjRuB,OAAO,CoCkRpC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpChRwB,OAAO,CoCiRrC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC/QyB,OAAO,CoCgRtC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC9QsB,OAAO,CoC+QnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC7QsB,OAAO,CoC8QnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC5QuB,OAAO,CoC6QpC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC3QuB,OAAO,CoC4QpC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpC1QgB,OAAO,CoC2Q7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCzQoB,OAAO,CoC0QjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCxQsB,OAAO,CoCyQnC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCvQoB,OAAO,CoCwQjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCtQwB,OAAO,CoCuQrC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCrQ4B,OAAO,CoCsQzC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCpQoB,OAAO,CoCqQjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpCnQW,OAAO,CoCoQxB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpClQgB,OAAO,CoCmQ7B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CpChQU,OAAO,CoCiQvB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC/PmB,OAAO,CoCgQhC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC9PoB,OAAO,CoC+PjC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC7PiB,OAAO,CoC8P9B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC5PkB,OAAO,CoC6P/B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpC3PkB,OAAO,CoC4P/B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,IAAI,AAwTQ,CACN,KAAK,CpC1PuB,OAAO,CoC2PpC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCxPkB,OAAO,CoCyP/B,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtC7KQ,OAAO,CsC8KrB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CpCpPmB,OAAO,CoCqPhC,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtC7KQ,OAAO,CsC8KrB,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AAwTS,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CtCpLE,OAAO,CsCqLf,AHvTL,AGqTI,OHrTG,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AAwTU,CACN,KAAK,CtCpLE,OAAO,CsCqLf,CAGH,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,IAAI,AA+TU,CACN,KAAK,CtCpLM,OAAO,CsCqLnB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpC/OQ,OAAO,CoCgPrB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC9OiB,OAAO,CoC+O9B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC7OoB,OAAO,CoC8OjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC5OkB,OAAO,CoC6O/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC3Oe,OAAO,CoC4O5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC1OiB,OAAO,CoC2O9B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCzOa,OAAO,CoC0O1B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCvOe,OAAO,CoCwO5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCtOa,OAAO,CoCuO1B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCpOW,OAAO,CoCqOxB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCnOc,OAAO,CoCoO3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpClOe,OAAO,CoCmO5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCjOY,OAAO,CoCkOzB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpChOe,OAAO,CoCiO5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC/Nc,OAAO,CoCgO3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC9NmB,OAAO,CoC+NhC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC7NW,OAAO,CoC8NxB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC5Ne,OAAO,CoC6N5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC3NW,OAAO,CoC4NxB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC1Nc,OAAO,CoC2N3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCzNS,OAAO,CoC0NtB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCxNc,OAAO,CoCyN3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCvNmB,OAAO,CoCwNhC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCtNoB,OAAO,CoCuNjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCrNsB,OAAO,CoCsNnC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCpNmB,OAAO,CoCqNhC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpCnNQ,OAAO,CoCoNrB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpClNa,OAAO,CoCmN1B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpCjNc,OAAO,CoCkN3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpChNoB,OAAO,CoCiNjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC/MuB,OAAO,CoCgNpC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC9MmB,OAAO,CoC+MhC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC7MwB,OAAO,CoC8MrC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC5MkB,OAAO,CoC6M/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC3MqB,OAAO,CoC4MlC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC1MqB,OAAO,CoC2MlC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCzMsB,OAAO,CoC0MnC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCxMuB,OAAO,CoCyMpC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCvMoB,OAAO,CoCwMjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCtMoB,OAAO,CoCuMjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCrMqB,OAAO,CoCsMlC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCpMqB,OAAO,CoCqMlC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpCnMc,OAAO,CoCoM3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpClMkB,OAAO,CoCmM/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCjMoB,OAAO,CoCkMjC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpChMkB,OAAO,CoCiM/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC/LsB,OAAO,CoCgMnC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC9L0B,OAAO,CoC+LvC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC7LkB,OAAO,CoC8L/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpC5LS,OAAO,CoC6LtB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC3Lc,OAAO,CoC4L3B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CpCzLQ,OAAO,CoC0LrB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCxLiB,OAAO,CoCyL9B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCvLkB,OAAO,CoCwL/B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCtLe,OAAO,CoCuL5B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCrLgB,OAAO,CoCsL7B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCpLgB,OAAO,CoCqL7B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,IAAI,AA+TU,CACN,KAAK,CpCnLqB,OAAO,CoCoLlC,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpCjLgB,OAAO,CoCkL7B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtCpLM,OAAO,CsCqLnB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CpC7KiB,OAAO,CoC8K9B,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtCpLM,OAAO,CsCqLnB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,GAAG,AA+TW,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,CAJL,AAAA,AAEI,UAFH,CAAW,MAAM,AAAjB,EH1TH,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAzEV,EAAE,AA+TY,CACN,KAAK,CtC1LK,OAAO,CsC2LlB,AH9TP,AGsUE,OHtUK,CAwFL,QAAQ,CG6OV,KAAK,CACH,UAAU,CHtUZ,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAEH,UAAU,CHvUZ,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAGH,UAAU,AAAC,CACT,MAAM,CAAE,IAAI,CACb,AH1UH,AG4UE,OH5UK,CAwFL,QAAQ,CG6OV,KAAK,CAOH,UAAU,AAAC,CACT,gBAAgB,CAAE,WAAW,CAC9B,AH9UH,AGgVE,OHhVK,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,AAAC,CACT,OAAO,CAAE,aAAa,CAEtB,gBAAgB,CtC7MI,OAAO,CsCkN5B,AHxVH,A1BFE,O0BEK,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BlVV,CAAC,C0BEH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BjVV,CAAC,EAAE,MAAM,C0BCX,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BhVV,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BlVV,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BjVV,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BhVV,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A0BnBL,A1BsBE,O0BtBK,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7B1TV,CAAC,CAAC,MAAM,C0BtBV,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BzTV,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7B1TV,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,C7BzTV,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,C6B6SD,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrVL,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAWH,UAAU,AAKc,CACpB,gBAAgB,CtC/MO,OAAO,CsCgN/B,AHvVL,AG2VI,OH3VG,CAwFL,QAAQ,CG6OV,KAAK,CAqBH,cAAc,CACZ,UAAU,CH3Vd,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAqBH,cAAc,EAET,iBAAiB,AAAC,CACnB,gBAAgB,CAAE,OAAO,CAK1B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EH/VP,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAqBH,cAAc,CACZ,UAAU,EAIR,AAAA,UAAC,CAAW,MAAM,AAAjB,EH/VP,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CAqBH,cAAc,EAET,iBAAiB,AAGI,CACpB,gBAAgB,CAAE,OAAO,CAC1B,CAIL,AAAA,ACjWF,UDiWG,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,ACjUH,CACA,kBAAkB,CAAA,QAAC,CACnB,mCAAmC,CAAA,QAAC,CACpC,oCAAoC,CAAA,QAAC,CACrC,kCAAkC,CAAA,QAAC,CACnC,mDAAmD,CAAA,QAAC,CACpD,sCAAsC,CAAA,QAAC,CACvC,mCAAmC,CAAA,QAAC,CACpC,kCAAkC,CAAA,QAAC,CACnC,oCAAoC,CAAA,QAAC,CACrC,wDAAwD,CAAA,QAAC,CACzD,gDAAgD,CAAA,QAAC,CACjD,8CAA8C,CAAA,QAAC,CAC/C,gDAAgD,CAAA,QAAC,CACjD,8CAA8C,CAAA,QAAC,CAC/C,yCAAyC,CAAA,QAAC,CAC1C,uCAAuC,CAAA,QAAC,CACxC,0CAA0C,CAAA,QAAC,CAC3C,yCAAyC,CAAA,QAAC,CAC1C,uCAAuC,CAAA,QAAC,CACxC,+CAA+C,CAAA,QAAC,CAChD,6CAA6C,CAAA,QAAC,CAC9C,gDAAgD,CAAA,QAAC,CACjD,8CAA8C,CAAA,QAAC,CAC/C,+CAA+C,CAAA,QAAC,CAChD,6CAA6C,CAAA,QAAC,CAC9C,+CAA+C,CAAA,QAAC,CAChD,6CAA6C,CAAA,QAAC,CAC9C,2CAA2C,CAAA,QAAC,CAC5C,oDAAoD,CAAA,QAAC,CACrD,qDAAqD,CAAA,QAAC,CACtD,yDAAyD,CAAA,QAAC,CAkI3D,CDgMC,AAAA,AChUA,UDgUC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CChSH,SAAS,EDgUT,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC/RH,gBAAgB,AAAC,CACf,KAAK,CAAE,uBAAuB,CAC/B,CD6TD,AAAA,AC3TA,UD2TC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC3RH,KAAK,AAA+D,CAClE,KAAK,CAAE,wCAAwC,CAChD,CDyTD,AAAA,ACvTA,UDuTC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCvRH,MAAM,EDuTN,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCtRH,KAAK,CAAC,KAAK,AAAuB,CAChC,KAAK,CAAE,yCAAyC,CACjD,CDoTD,AAAA,AClTA,UDkTC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CClRH,KAAK,EDkTL,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCjRH,MAAM,AAAmB,CACvB,KAAK,CAAE,uCAAuC,CAC/C,CD+SD,AAAA,AC7SA,UD6SC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC7QH,OAAO,ED6SP,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC5QH,KAAK,CAAC,MAAM,AAAqB,CAC/B,KAAK,CAAE,wDAAwD,CAChE,CD0SD,AAAA,ACxSA,UDwSC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCxQH,OAAO,AAAqC,CAC1C,KAAK,CAAE,2CAA2C,CACnD,CDsSD,AAAA,ACpSA,UDoSC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCpQH,KAAK,AAAsC,CACzC,KAAK,CAAE,wCAAwC,CAChD,CDkSD,AAAA,AChSA,UDgSC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CChQH,KAAK,EDgSL,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC/PH,OAAO,ED+RP,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC9PH,KAAK,CAAC,OAAO,CAAC,MAAM,ED8RpB,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC7PH,MAAM,ED6RN,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC5PH,MAAM,CAAC,OAAO,ED4Rd,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC3PH,MAAM,CAAC,OAAO,ED2Rd,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC1PH,MAAM,CAAC,OAAO,AAAwD,CACpE,KAAK,CAAE,uCAAuC,CAC/C,CDwRD,AAAA,ACtRA,UDsRC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCtPH,KAAK,EDsRL,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCrPH,OAAO,AAAkC,CACvC,KAAK,CAAE,yCAAyC,CACjD,CDmRD,AAAA,ACjRA,UDiRC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCjPH,MAAM,AAAwI,CAC5I,KAAK,CAAE,6DAA6D,CACrE,CD+QD,AAAA,AC7QA,UD6QC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC7OH,MAAM,AAAuB,CAC3B,KAAK,CAAE,qDAAqD,CAC5D,gBAAgB,CAAE,mDAAmD,CACtE,CD0QD,AAAA,ACxQA,UDwQC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCxOH,MAAM,AAAuB,CAC3B,KAAK,CAAE,qDAAqD,CAC5D,gBAAgB,CAAE,mDAAmD,CACtE,CDqQD,AAAA,ACnQA,UDmQC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCnOH,MAAM,EAAE,MAAM,AAAuB,CACnC,OAAO,CAAE,IAAI,CACd,CDiQD,AAAA,AC/PA,UD+PC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC/NH,MAAM,CAAC,OAAO,AAA+C,CAC3D,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,8CAA8C,CACtD,CD4PD,AAAA,AC1PA,UD0PC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC1NH,MAAM,AAAmB,CACvB,KAAK,CAAE,4CAA4C,CACpD,CDwPD,AAAA,ACtPA,UDsPC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCtNH,MAAM,EDsPN,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCrNH,MAAM,CAAC,MAAM,EDqPb,AAAA,UAAC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCpNH,MAAM,AAAsB,CAC1B,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,+CAA+C,CACvD,CDiPD,AAAA,AC/OA,UD+OC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC/MH,MAAM,AAAqB,CACzB,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,8CAA8C,CACtD,CD4OD,AAAA,AC1OA,UD0OC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC1MH,MAAM,AAAmB,CACvB,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,4CAA4C,CACpD,CDuOD,AAAA,ACrOA,UDqOC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCrMH,MAAM,AAAkF,CACtF,KAAK,CAAE,oDAAoD,CAC3D,gBAAgB,CAAE,kDAAkD,CACrE,CDkOD,AAAA,AChOA,UDgOC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CChMH,OAAO,AAAkF,CACvF,KAAK,CAAE,qDAAqD,CAC5D,gBAAgB,CAAE,mDAAmD,CACtE,CD6ND,AAAA,AC3NA,UD2NC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC3LH,MAAM,AAAsD,CAC1D,KAAK,CAAE,oDAAoD,CAC3D,gBAAgB,CAAE,kDAAkD,CACrE,CDwND,AAAA,ACtNA,UDsNC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCtLH,OAAO,AAAwC,CAC7C,KAAK,CAAE,oDAAoD,CAC3D,gBAAgB,CAAE,kDAAkD,CACrE,CDmND,AAAA,ACjNA,UDiNC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCjLH,OAAO,AAAuB,CAC5B,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,gDAAgD,CACxD,CD8MD,AAAA,AC5MA,UD4MC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CC5KH,MAAM,AAAiK,CACrK,KAAK,CAAE,yDAAyD,CACjE,CD0MD,AAAA,ACxMA,UDwMC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCxKH,MAAM,AAAiC,CACrC,KAAK,CAAE,0DAA0D,CAClE,CDsMD,AAAA,ACpMA,UDoMC,CAAW,MAAM,AAAjB,EHrWH,OAAO,CAwFL,QAAQ,CG6OV,KAAK,CCpKH,QAAQ,AAAwD,CAC9D,eAAe,CAAE,SAAS,CAC1B,KAAK,CAAE,8DAA8D,CACtE,AJpKH,AMHA,ONGO,CAwFL,QAAQ,CM3FV,WAAW,AAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,SAAS,CAClB,WAAW,CAAE,YAAY,CACzB,QAAQ,CAAE,IAAI,CjCJd,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CyCiBpB,gBAAgB,CxCjCL,oBAAuB,CwCkClC,iBAAiB,CxClCd,OAAO,CwC0Ef,ANzED,AMKE,ONLK,CAwFL,QAAQ,CM3FV,WAAW,CAQT,iBAAiB,AAAC,CAChB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,UAAU,CAClB,OAAO,CAAE,cAAc,CACvB,aAAa,CAAE,SAAS,CjCX1B,qBAAqB,CiCYI,CAAC,CjCX1B,kBAAkB,CiCWO,CAAC,CjCV1B,aAAa,CiCUY,CAAC,CACzB,ANXH,AMaE,ONbK,CAwFL,QAAQ,CM3FV,WAAW,CAgBT,mBAAmB,AAAC,CAClB,OAAO,CAAE,QAAQ,CAClB,ANfH,AMiBE,ONjBK,CAwFL,QAAQ,CM3FV,WAAW,CAoBT,CAAC,AAAA,KAAK,AAAC,CACL,SAAS,CAAE,OAAO,CAClB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,MAAM,CACX,IAAI,CAAE,MAAM,CACb,ANtBH,AMwBE,ONxBK,CAwFL,QAAQ,CM3FV,WAAW,CA2BT,CAAC,AAAA,aAAa,AAAC,CACb,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,MAAM,CACX,KAAK,CAAE,MAAM,CACd,AN5BH,AMmCM,ONnCC,CAwFL,QAAQ,CM3FV,WAAW,CAsCL,iBAAiB,AAAC,CAChB,mBAAmB,CxCrCV,oBAAuB,CwCsChC,gBAAgB,CxCtCP,qBAAuB,CwCuCjC,ANtCP,AMwCM,ONxCC,CAwFL,QAAQ,CM3FV,WAAW,AA2CJ,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxC1CP,oBAAuB,CwC2CjC,AN1CP,AM4CM,ON5CC,CAwFL,QAAQ,CM3FV,WAAW,CA+CL,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC9CJ,OAAO,CwC+CT,AN9CP,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,AAqDG,CACL,gBAAgB,CxCnDH,mBAAsB,CwCoDnC,iBAAiB,CxCpDZ,OAAO,CwCkEb,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,CAyDF,iBAAiB,AAAC,CAChB,mBAAmB,CxCvDR,mBAAsB,CwCwDjC,gBAAgB,CxCxDL,oBAAsB,CwCyDlC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,AA8DD,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxC5DL,mBAAsB,CwC6DlC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,CAkEF,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxChEF,OAAO,CwCiEX,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,KAAK,AAqDO,CACL,gBAAgB,CxClDP,mBAAsB,CwCmD/B,iBAAiB,CxCnDhB,OAAO,CwCiET,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,KAAK,CAyDE,iBAAiB,AAAC,CAChB,mBAAmB,CxCtDZ,mBAAsB,CwCuD7B,gBAAgB,CxCvDT,oBAAsB,CwCwD9B,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,KAAK,AA8DG,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxC3DT,mBAAsB,CwC4D9B,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,KAAK,CAkEE,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC/DN,OAAO,CwCgEP,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,AAqDQ,CACL,gBAAgB,CxCjDR,mBAAsB,CwCkD9B,iBAAiB,CxClDjB,OAAO,CwCgER,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,CAyDG,iBAAiB,AAAC,CAChB,mBAAmB,CxCrDb,mBAAsB,CwCsD5B,gBAAgB,CxCtDV,oBAAsB,CwCuD7B,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,AA8DI,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxC1DV,mBAAsB,CwC2D7B,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,CAkEG,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC9DP,OAAO,CwC+DN,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AAqDI,CACL,gBAAgB,CxChDJ,kBAAqB,CwCiDjC,iBAAiB,CxCjDb,OAAO,CwC+DZ,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAyDD,iBAAiB,AAAC,CAChB,mBAAmB,CxCpDT,kBAAqB,CwCqD/B,gBAAgB,CxCrDN,mBAAqB,CwCsDhC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AA8DA,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCzDN,kBAAqB,CwC0DhC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAkED,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC7DH,OAAO,CwC8DV,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,AAqDG,CACL,gBAAgB,CxC/CH,oBAAuB,CwCgDpC,iBAAiB,CxChDZ,OAAO,CwC8Db,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,CAyDF,iBAAiB,AAAC,CAChB,mBAAmB,CxCnDR,oBAAuB,CwCoDlC,gBAAgB,CxCpDL,qBAAuB,CwCqDnC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,AA8DD,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCxDL,oBAAuB,CwCyDnC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,SAAS,CAkEF,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC5DF,OAAO,CwC6DX,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AAqDI,CACL,gBAAgB,CxC9CJ,mBAAsB,CwC+ClC,iBAAiB,CxC/Cb,OAAO,CwC6DZ,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAyDD,iBAAiB,AAAC,CAChB,mBAAmB,CxClDT,mBAAsB,CwCmDhC,gBAAgB,CxCnDN,oBAAsB,CwCoDjC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AA8DA,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCvDN,mBAAsB,CwCwDjC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAkED,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC3DH,OAAO,CwC4DV,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AAqDI,CACL,gBAAgB,CxC7CJ,mBAAsB,CwC8ClC,iBAAiB,CxC9Cb,OAAO,CwC4DZ,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAyDD,iBAAiB,AAAC,CAChB,mBAAmB,CxCjDT,mBAAsB,CwCkDhC,gBAAgB,CxClDN,oBAAsB,CwCmDjC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AA8DA,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCtDN,mBAAsB,CwCuDjC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAkED,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxC1DH,OAAO,CwC2DV,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,OAAO,AAqDK,CACL,gBAAgB,CxC5CL,mBAAsB,CwC6CjC,iBAAiB,CxC7Cd,OAAO,CwC2DX,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,OAAO,CAyDA,iBAAiB,AAAC,CAChB,mBAAmB,CxChDV,mBAAsB,CwCiD/B,gBAAgB,CxCjDP,oBAAsB,CwCkDhC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,OAAO,AA8DC,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCrDP,mBAAsB,CwCsDhC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,OAAO,CAkEA,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxCzDJ,OAAO,CwC0DT,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,AAqDQ,CACL,gBAAgB,CxC3CR,kBAAqB,CwC4C7B,iBAAiB,CxC5CjB,OAAO,CwC0DR,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,CAyDG,iBAAiB,AAAC,CAChB,mBAAmB,CxC/Cb,kBAAqB,CwCgD3B,gBAAgB,CxChDV,mBAAqB,CwCiD5B,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,AA8DI,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCpDV,kBAAqB,CwCqD5B,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,IAAI,CAkEG,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxCxDP,OAAO,CwCyDN,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AAqDI,CACL,gBAAgB,CxC1CJ,oBAAuB,CwC2CnC,iBAAiB,CxC3Cb,OAAO,CwCyDZ,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAyDD,iBAAiB,AAAC,CAChB,mBAAmB,CxC9CT,oBAAuB,CwC+CjC,gBAAgB,CxC/CN,qBAAuB,CwCgDlC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,AA8DA,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxCnDN,oBAAuB,CwCoDlC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,QAAQ,CAkED,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxCvDH,OAAO,CwCwDV,ANjET,AMkDM,ONlDC,CAwFL,QAAQ,CM3FV,WAAW,AAAV,MAAM,AAqDM,CACL,gBAAgB,CxCzCN,qBAAwB,CwC0ClC,iBAAiB,CxC1Cf,OAAO,CwCwDV,ANlEP,AMsDQ,ONtDD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,MAAM,CAyDC,iBAAiB,AAAC,CAChB,mBAAmB,CxC7CX,qBAAwB,CwC8ChC,gBAAgB,CxC9CR,sBAAwB,CwC+CjC,ANzDT,AM2DQ,ON3DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,MAAM,AA8DE,KAAK,CAAC,iBAAiB,AAAC,CACvB,gBAAgB,CxClDR,qBAAwB,CwCmDjC,AN7DT,AM+DQ,ON/DD,CAwFL,QAAQ,CM3FV,WAAW,AAAV,MAAM,CAkEC,CAAC,AAAA,KAAK,AAAC,CACL,KAAK,CxCtDL,OAAO,CwCuDR,ANjET,AMsEE,ONtEK,CAwFL,QAAQ,CM3FV,WAAW,CAyEP,UAAU,AAAC,CACX,aAAa,CAAE,OAAO,CACvB,ANxEH,AOHA,OPGO,CAwFL,QAAQ,CO3FV,SAAS,AAAC,CACR,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,cAAc,CAAE,GAAG,CACnB,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,MAAM,CASnB,APZD,AOKE,OPLK,CAwFL,QAAQ,CO3FV,SAAS,CAQP,MAAM,AAAC,CACL,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACP,APXH,AQEA,ORFO,CAwFL,QAAQ,CQtFV,UAAU,AAAC,CACT,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,WAAW,CACnB,UAAU,CAAE,UAAU,CACtB,KAAK,CAAE,uBAAuB,CAC9B,SAAS,CAAE,IAAI,CACf,QAAQ,CAAE,MAAM,CAChB,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,IAAI,CnCbZ,qBAAqB,CmCcE,MAAO,CnCb9B,kBAAkB,CmCaK,MAAO,CnCZ9B,aAAa,CmCYU,MAAO,CAC/B,ARbD,AQgBE,ORhBK,CAwFL,QAAQ,CQzEV,YAAI,AACQ,CACR,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,OAAO,CACZ,MAAM,CAAE,OAAO,CACf,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,gBAAgB,CAAE,gBAAgB,CAClC,iBAAiB,CAAE,SAAS,CAC5B,MAAM,CAAE,YAAY,CACpB,OAAO,CAAE,GAAG,CACZ,eAAe,CAAE,OAAO,CACxB,mBAAmB,CAAE,MAAM,CAC5B,AR5BH,AQ8BE,OR9BK,CAwFL,QAAQ,CQzEV,WAAI,AAeO,CACP,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,MAAM,CACnB,eAAe,CAAE,aAAa,CAC9B,OAAO,CAAE,OAAO,CAChB,gBAAgB,CAAE,sBAAyB,CAC5C,ARrCH,AQuCE,ORvCK,CAwFL,QAAQ,CQzEV,QAAI,AAwBI,CACJ,QAAQ,CAAE,MAAM,CACjB,ARzCH,AQ2CE,OR3CK,CAwFL,QAAQ,CQzEV,SAAI,AA4BK,CACL,OAAO,CAAE,WAAW,CACpB,kBAAkB,CAAE,CAAC,CACrB,QAAQ,CAAE,MAAM,CAChB,UAAU,CAAE,qBAAqB,CACjC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,WAAW,CAAE,IAAI,CACjB,KAAK,C3C7BW,OAAO,C2C8BxB,ARpDH,AQsDE,ORtDK,CAwFL,QAAQ,CQzEV,QAAI,AAuCI,CACJ,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,OAAO,CACnB,SAAS,CAAE,QAAQ,CACnB,KAAK,C3CjCqB,OAAO,C2CkClC,AR5DH,AQ8DE,OR9DK,CAwFL,QAAQ,CQzEV,aAAI,AA+CS,CACT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,CAAC,CACd,YAAY,CAAE,OAAO,CACtB,ARnEH,AQqEE,ORrEK,CAwFL,QAAQ,CQzEV,OAAI,AAsDG,CACH,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CACpB,ARzEH,AQ2EE,OR3EK,CAwFL,QAAQ,CQzEV,cAAI,AA4DU,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,CAAC,CACd,WAAW,CAAE,OAAO,CACrB,CAED,AAAA,AACE,UADD,CAAW,MAAM,AAAjB,ERlFH,OAAO,CAwFL,QAAQ,CQzEV,WAAI,AAoES,CACP,gBAAgB,CAAE,mBAAsB,CACzC,CAHH,AAAA,AAKE,UALD,CAAW,MAAM,AAAjB,ERlFH,OAAO,CAwFL,QAAQ,CQzEV,SAAI,AAwEO,CACL,KAAK,C3CjEc,OAAO,C2CkE3B,CAPH,AAAA,AASE,UATD,CAAW,MAAM,AAAjB,ERlFH,OAAO,CAwFL,QAAQ,CQzEV,QAAI,AA4EM,CACJ,KAAK,C3CjEwB,OAAO,C2CkErC,AR7FL,ASHA,OTGO,CAwFL,QAAQ,CS3FV,kBAAkB,AAAC,CACjB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,OAAO,CAoCf,ATvCD,ASKE,OTLK,CAwFL,QAAQ,CS3FV,kBAAkB,EAQb,KAAK,CTLV,OAAO,CAwFL,QAAQ,CS3FV,kBAAkB,EASb,MAAM,AAAC,CACR,IAAI,CAAE,CAAC,CACP,WAAW,CAAE,CAAC,CACd,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACZ,ATZH,AScE,OTdK,CAwFL,QAAQ,CS3FV,kBAAkB,EAiBb,MAAM,AAAC,CACR,UAAU,CAAE,GAAG,CAAC,KAAK,C5CuBH,OAAO,C4CtBzB,UAAU,CAAE,IAAI,CAChB,GAAG,CAAE,KAAK,CACV,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,GAAG,CAKjB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,ETtBL,OAAO,CAwFL,QAAQ,CS3FV,kBAAkB,EAiBb,MAAM,AAQe,CACpB,gBAAgB,C5CgBK,OAAO,C4Cf7B,ATxBL,AS2BE,OT3BK,CAwFL,QAAQ,CS3FV,kBAAkB,EA8Bb,KAAK,AAAC,CACP,aAAa,CAAE,GAAG,CAAC,KAAK,C5CUN,OAAO,C4CTzB,MAAM,CAAE,KAAK,CACb,UAAU,CAAE,KAAK,CACjB,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,GAAG,CAKjB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,ETnCL,OAAO,CAwFL,QAAQ,CS3FV,kBAAkB,EA8Bb,KAAK,AAQgB,CACpB,mBAAmB,C5CGE,OAAO,C4CF7B,ATrCL,AUHA,OVGO,CAwFL,QAAQ,CU3FV,QAAQ,AAAC,CACP,MAAM,CAAE,QAAQ,CAChB,UAAU,CAAE,MAAM,CACnB,CCFC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EXEH,OAAO,CAwFL,QAAQ,CW3FV,MAAM,AAAA,gBAAgB,AACE,CACpB,MAAM,CAAE,eAAe,CACxB,AXAH,AYHA,OZGO,CAwFL,QAAQ,CY3FV,OAAO,AAAC,CACN,MAAM,CAAE,QAAQ,CAChB,OAAO,CAAE,QAAQ,CvCDjB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,C+CdzB,AZDD,AaHA,ObGO,CAwFL,QAAQ,Ca3FV,QAAQ,AAAC,CACP,UAAU,CAAE,MAAM,CAMnB,AbJD,AaAE,ObAK,CAwFL,QAAQ,Ca3FV,QAAQ,CAGN,GAAG,AAAC,CACF,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACb,AbHH,AA6VI,OA7VG,CAwFL,QAAQ,CAqQN,EAAE,AAAC,CACD,MAAM,CAAE,MAAM,CACd,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,GAAG,CAAC,MAAM,CnC1TN,OAAO,CmC2TvB,aAAa,CAAE,IAAI,CAKpB,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnWP,OAAO,CAwFL,QAAQ,CAqQN,EAAE,AAMsB,CACpB,UAAU,CAAE,GAAG,CAAC,MAAM,CnC7TH,OAAO,CmC8T3B,AArWP,AAwWI,OAxWG,CAwFL,QAAQ,CAgRN,GAAG,AAAC,CACF,OAAO,CAAE,YAAY,CACrB,OAAO,CAAE,SAAS,CAClB,gBAAgB,CnCzVI,IAAO,CmC0V3B,MAAM,CAAE,GAAG,CAAC,KAAK,CnCtUD,OAAO,CmCuUvB,mBAAmB,CnCvUH,OAAO,CmCwUvB,SAAS,CAAE,MAAM,CACjB,WAAW,CnCzNE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,QAAQ,CAAE,MAAM,CAAE,SAAS,CAhJjD,SAAS,CAAE,aAAa,CAAE,kBAAkB,CAAE,QAAQ,CAAC,EAAE,CAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE,KAAK,CAAC,EAAE,CAAE,MAAM,CAAE,MAAM,CAAE,MAAM,CAAE,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CmC0W9M,KAAK,CnC9OE,OAAO,CQpIlB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CQXxB,kBAAkB,C2B8WM,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CnC5UlB,OAAO,CQjC3B,UAAU,C2B6Wc,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CnC5UlB,OAAO,CmCqVxB,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EApXP,OAAO,CAwFL,QAAQ,CAgRN,GAAG,AAYqB,CACpB,gBAAgB,CnClWO,OAAO,CmCmW9B,MAAM,CAAE,GAAG,CAAC,KAAK,CnC/UE,OAAO,CmCgV1B,mBAAmB,CnChVA,OAAO,CmCiV1B,KAAK,CnCrPK,OAAO,CQ/HvB,kBAAkB,C2BqXQ,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CnClVf,OAAO,CQlChC,UAAU,C2BoXgB,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CnClVf,OAAO,CmCmV3B,AA1XP,AcHA,OdGO,CcHP,YAAY,AAAC,CACX,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,MAAM,CAkGnB,AdjGD,AcEE,OdFK,CcHP,YAAY,CAKR,YAAY,AAAC,CACb,UAAU,CAAE,CAAC,CACd,AdJH,AcME,OdNK,CcHP,YAAY,CASR,GAAI,CAAA,YAAY,CAAC,KAAK,CAAE,CACxB,OAAO,CAAE,IAAI,CACd,AdRH,AcUE,OdVK,CcHP,YAAY,CAaV,QAAQ,AAAC,CACP,MAAM,CAAE,QAAQ,CAChB,WAAW,CAAE,GAAG,CACjB,AdbH,AceE,OdfK,CcHP,YAAY,CAkBV,YAAY,AAAC,CACX,OAAO,CAAE,IAAI,CACd,AdjBH,AcmBE,OdnBK,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,AAAC,CACjC,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,IAAI,CAyClB,Ad9DH,AcuBI,OdvBG,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CAIhC,GAAG,AAAC,CACF,OAAO,CAAE,YAAY,CzC4EzB,mBAAmB,CyC3EM,IAAI,CzC2ED,UAAU,CACtC,gBAAgB,CyC5ES,IAAI,CzC4EJ,UAAU,CACnC,WAAW,CyC7Ec,IAAI,CzC6ET,UAAU,CyC3D3B,Ad3CL,Ac2BM,Od3BC,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CAIhC,GAAG,CAID,IAAI,AAAC,CACH,OAAO,CAAE,KAAK,CACf,Ad7BP,Ac+BM,Od/BC,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CAIhC,GAAG,CAQC,KAAK,CAAC,IAAI,CAAA,AAAA,cAAC,AAAA,CAAgB,CAC3B,SAAS,CAAE,qCAAqC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAErE,cAAc,CAAE,IAAI,CACrB,AdnCP,AcqCM,OdrCC,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CAIhC,GAAG,CAcD,GAAG,AAAC,CACF,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,WAAW,CACnB,SAAS,CAAE,IAAI,CACf,KAAK,CjD0EM,KAAK,CiDzEjB,Ad1CP,Ac8CI,Od9CG,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CA2B/B,AAAA,SAAC,CAAU,OAAO,AAAjB,CAAmB,CACnB,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,SAAS,CAAE,qBAAqB,CAChC,OAAO,CAAE,IAAI,CACb,gBAAgB,CjDlCI,IAAO,CYpB/B,OAAO,CqCuDc,GAAC,CzCvDtB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,CQXxB,kBAAkB,CyCmDM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CzClDvD,UAAU,CyCkDc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAkB,CAMpD,CAJC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EdzDP,OAAO,CcHP,YAAY,CAsBV,aAAa,CAAC,OAAO,CAAC,YAAY,CA2B/B,AAAA,SAAC,CAAU,OAAO,AAAjB,CAWsB,CACpB,gBAAgB,CjDvCO,OAAO,CQfpC,kBAAkB,CyCuDQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CzCtD/D,UAAU,CyCsDgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAwB,CAC1D,Ad5DP,AcgEE,OdhEK,CcHP,YAAY,CAmEV,cAAc,AAAC,CACb,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,UAAU,CACtB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,IAAI,CACb,KAAK,CjD0CM,OAAM,CiDzCjB,MAAM,CAAE,GAAG,CAAC,KAAK,CjDyCN,OAAM,CiDxCjB,aAAa,CjDxDM,GAAG,CiDyDtB,OAAO,CAAE,WAAW,CACpB,gBAAgB,CjDvDM,IAAO,CiDwD7B,cAAc,CAAE,QAAQ,CACxB,WAAW,CAAE,IAAI,CzClEnB,kBAAkB,CyCmEI,GAAG,CAAC,IAAI,CAAC,QAAQ,CzClEvC,eAAe,CyCkEO,GAAG,CAAC,IAAI,CAAC,QAAQ,CzCjEvC,aAAa,CyCiES,GAAG,CAAC,IAAI,CAAC,QAAQ,CzChEvC,UAAU,CyCgEY,GAAG,CAAC,IAAI,CAAC,QAAQ,CAoBtC,AdhGH,Ac8EI,Od9EG,CcHP,YAAY,CAmEV,cAAc,CAcV,MAAM,Cd9EZ,OAAO,CcHP,YAAY,CAmEV,cAAc,CAeV,KAAK,AAAC,CACN,KAAK,CAAE,OAAO,CACd,YAAY,CjD8BH,MAAM,CiD7Bf,gBAAgB,CjD6BP,MAAM,CiDtBhB,CALC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EdpFP,OAAO,CcHP,YAAY,CAmEV,cAAc,CAcV,MAAM,EAMN,AAAA,UAAC,CAAW,MAAM,AAAjB,EdpFP,OAAO,CcHP,YAAY,CAmEV,cAAc,CAeV,KAAK,AAKiB,CACpB,KAAK,CAAE,OAAO,CACd,YAAY,CjDyBL,OAAM,CiDxBb,gBAAgB,CjDwBT,OAAM,CiDvBd,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,Ed3FL,OAAO,CcHP,YAAY,CAmEV,cAAc,AA2BU,CACpB,KAAK,CjDmBI,MAAM,CiDlBf,YAAY,CjDkBH,OAAM,CiDjBf,gBAAgB,CjD3ES,OAAO,CiD4EjC,Ad/FL,AeHA,OfGO,CeHP,YAAY,AAAC,CACX,MAAM,CAAE,MAAM,CAiHf,Af/GD,AeAE,OfAK,CeHP,YAAY,CAGR,GAAI,EAAC,YAAY,CAAE,CACnB,aAAa,CAAE,CAAC,CACjB,AfFH,AeIE,OfJK,CeHP,YAAY,CAOV,UAAU,AAAC,CACT,aAAa,CAAE,GAAG,CAAC,KAAK,ClDiCN,OAAO,CkDhCzB,OAAO,CAAE,aAAa,CAoDvB,CAlDC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EfRL,OAAO,CeHP,YAAY,CAOV,UAAU,AAIc,CACpB,aAAa,CAAE,GAAG,CAAC,KAAK,ClD8BH,OAAO,CkD7B7B,AfVL,AeYI,OfZG,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CA2C/B,AfzDL,AegBM,OfhBC,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,AAAC,CACb,SAAS,CAAE,KAAK,CAChB,KAAK,ClDQiB,OAAO,CkDD9B,CALC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EfpBT,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,AAIU,CACpB,KAAK,ClDMoB,OAAO,CkDLjC,AftBT,A1BFE,O0BEK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzClBlB,CAAC,C0BEH,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCjBlB,CAAC,EAAE,MAAM,C0BCX,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzChBlB,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzClBlB,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCjBlB,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzChBlB,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A0BnBL,A1BsBE,O0BtBK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCMlB,CAAC,CAAC,MAAM,C0BtBV,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCOlB,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCMlB,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAIb,cAAc,CzCOlB,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,A0BxCL,Ae2BM,Of3BC,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,AAAC,CACjB,SAAS,CAAE,KAAK,CAChB,KAAK,ClDHiB,OAAO,CkDU9B,CALC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,Ef/BT,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,AAIM,CACpB,KAAK,ClDLoB,OAAO,CkDMjC,AfjCT,A1BFE,O0BEK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC7BtB,CAAC,C0BEH,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC5BtB,CAAC,EAAE,MAAM,C0BCX,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC3BtB,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC7BtB,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC5BtB,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzC3BtB,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A0BnBL,A1BsBE,O0BtBK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzCLtB,CAAC,CAAC,MAAM,C0BtBV,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzCJtB,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzCLtB,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAeb,kBAAkB,CzCJtB,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,A0BxCL,AesCM,OftCC,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,AAAC,CACZ,SAAS,CAAE,MAAM,CACjB,KAAK,CAAE,WAAW,CASnB,AfjDP,A1BFE,O0BEK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCxCjB,CAAC,C0BEH,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCvCjB,CAAC,EAAE,MAAM,C0BCX,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCtCjB,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCxCjB,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCvCjB,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCtCjB,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A0BnBL,A1BsBE,O0BtBK,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzChBjB,CAAC,CAAC,MAAM,C0BtBV,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCfjB,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzChBjB,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CzCfjB,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,A0BxCL,Ae4CQ,Of5CD,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CA0Bb,aAAa,CAMV,IAAI,CAAA,GAAK,EAAC,WAAW,GAAG,MAAM,AAAC,CAC9B,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,OAAO,CACpB,YAAY,CAAE,OAAO,CACtB,AfhDT,AeqDQ,OfrDD,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAuCb,gBAAgB,CAEd,CAAC,CAAC,CAAC,AAAC,CACF,cAAc,CAAE,WAAW,CAC5B,AfvDT,Ae4DE,Of5DK,CeHP,YAAY,CA+DV,eAAe,AAAC,CACd,OAAO,CAAE,aAAa,CACtB,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,SAAS,CAAE,MAAM,CAKlB,AfrEH,AeuEE,OfvEK,CeHP,YAAY,CA0EV,UAAU,AAAC,CACT,SAAS,CAAE,GAAG,CAYf,AfpFH,Ae0EI,Of1EG,CeHP,YAAY,CA0EV,UAAU,CAGR,CAAC,AAAC,CACA,OAAO,CAAE,MAAM,CAChB,Af5EL,A1BFE,O0BEK,CeHP,YAAY,CA0EV,UAAU,CzCzEV,CAAC,C0BEH,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCxEV,CAAC,EAAE,MAAM,C0BCX,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCvEV,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAGnB,KAAK,CT0BS,OAAO,CSVxB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCzEV,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCxEV,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BXL,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCvEV,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A0BnBL,A1BsBE,O0BtBK,CeHP,YAAY,CA0EV,UAAU,CzCjDV,CAAC,CAAC,MAAM,C0BtBV,OAAO,CeHP,YAAY,CA0EV,UAAU,CzChDV,CAAC,CAAC,KAAK,AAAC,CAEJ,KAAK,CTSe,OAAO,CSO9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CA0EV,UAAU,CzCjDV,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E0BhCL,OAAO,CeHP,YAAY,CA0EV,UAAU,CzChDV,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A0BxCL,AegFI,OfhFG,CeHP,YAAY,CA0EV,UAAU,CASR,SAAS,CAAA,GAAK,EAAC,UAAU,GAAG,KAAK,AAAC,CAChC,OAAO,CAAE,GAAG,CACZ,YAAY,CAAE,OAAO,CACtB,AfnFL,AesFE,OftFK,CeHP,YAAY,CAyFV,SAAS,AAAC,CACR,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,GAAG,CAAE,MAAM,CAqBZ,Af9GH,Ae4FI,Of5FG,CeHP,YAAY,CAyFV,SAAS,CAMP,cAAc,AAAC,CACb,IAAI,CAAE,CAAC,CACP,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,C1CtFpB,kBAAkB,C0CuFM,GAAG,CAAC,IAAI,CAAC,QAAQ,C1CtFzC,eAAe,C0CsFS,GAAG,CAAC,IAAI,CAAC,QAAQ,C1CrFzC,aAAa,C0CqFW,GAAG,CAAC,IAAI,CAAC,QAAQ,C1CpFzC,UAAU,C0CoFc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAatC,Af7GL,AekGM,OflGC,CeHP,YAAY,CAyFV,SAAS,CAMP,cAAc,CAMX,AAAA,GAAC,CAAI,MAAM,AAAV,CAAY,CACZ,UAAU,CAAE,KAAK,CAClB,AfpGP,AesGM,OftGC,CeHP,YAAY,CAyFV,SAAS,CAMP,cAAc,CAUX,AAAA,GAAC,CAAI,MAAM,AAAV,EAAY,KAAK,AAAC,C1CtFxB,iBAAiB,C0CuFQ,gBAAgB,C1CtFzC,aAAa,C0CsFY,gBAAgB,C1CrFzC,YAAY,C0CqFa,gBAAgB,C1CpFzC,SAAS,C0CoFgB,gBAAgB,CACpC,AfxGP,Ae0GM,Of1GC,CeHP,YAAY,CAyFV,SAAS,CAMP,cAAc,CAcX,AAAA,GAAC,CAAI,MAAM,AAAV,EAAY,KAAK,AAAC,C1C1FxB,iBAAiB,C0C2FQ,eAAe,C1C1FxC,aAAa,C0C0FY,eAAe,C1CzFxC,YAAY,C0CyFa,eAAe,C1CxFxC,SAAS,C0CwFgB,eAAe,CACnC,Af5GP,AgBHA,OhBGO,CgBHN,SAAS,AAAC,CACT,OAAO,CAAE,MAAM,CAEhB,AhBmYD,AAAA,WAAW,CAAC,QAAQ,EAAE,KAAK,AAAC,CAC1B,KAAK,CAAE,IAAI,CACZ,AiBxYD,AACE,QADM,CACN,aAAa,CADf,QAAQ,CAEN,gBAAgB,AAAC,CACf,UAAU,CAAE,KAAK,CAClB,ACJH,AACE,QADM,CACN,aAAa,AAAC,CACZ,OAAO,CAAE,aAAa,CACtB,MAAM,CAAE,CAAC,CACT,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,KAAK,CAClB,AARH,AAUE,QAVM,CAUN,gBAAgB,AAAC,CACf,MAAM,CAAE,QAAQ,CAChB,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,KAAK,CAClB,AAhBH,AAkBE,QAlBM,CAkBN,YAAY,AAAC,CACX,SAAS,CAAE,MAAM,CACjB,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,IAAI,CACpB,AAtBH,ACAA,QDAQ,CCAR,gBAAgB,AAAC,CACf,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,UAAU,CACvB,eAAe,CAAE,aAAa,CAC9B,cAAc,CAAE,GAAG,CACnB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CAkCpB,ADzCD,ACSE,QDTM,CCAR,gBAAgB,CASd,UAAU,AAAC,CACT,SAAS,CAAE,QAAQ,CACnB,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,GAAG,CACV,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,UAAU,CACvB,UAAU,CAAE,KAAK,CACjB,OAAO,CAAE,IAAI,CACb,QAAQ,CAAE,QAAQ,CAuBnB,ADxCH,ACmBI,QDnBI,CCAR,gBAAgB,CASd,UAAU,CAUN,SAAU,CAAA,GAAG,CAAC,CACd,UAAU,CAAE,IAAI,CACjB,ADrBL,ACuBI,QDvBI,CCAR,gBAAgB,CASd,UAAU,CAcR,kBAAkB,AAAC,CACjB,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAcjB,ADvCL,AC2BM,QD3BE,CCAR,gBAAgB,CASd,UAAU,CAcR,kBAAkB,CAIhB,gBAAgB,AAAC,CACf,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,OAAO,CACvB,ADjCP,ACmCM,QDnCE,CCAR,gBAAgB,CASd,UAAU,CAcR,kBAAkB,CAYhB,IAAI,AAAC,CACH,KAAK,CAAE,KAAK,CACZ,aAAa,CAAE,IAAI,CACpB,ADtCP,AC2CA,QD3CQ,CC2CR,aAAa,AAAC,CACZ,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,UAAU,CACtB,MAAM,CAAE,wBAAwB,CACjC,ADjDD,ACmDA,QDnDQ,CCmDR,kBAAkB,AAAC,CACjB,SAAS,CAAE,GAAG,CACd,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CAcxB,ADrED,ACyDE,QDzDM,CCmDR,kBAAkB,CAMd,KAAK,AAAC,CACN,KAAK,CtDrBiB,OAAO,CsDsB7B,gBAAgB,CAAE,WAAW,CAC9B,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,ED9DH,QAAQ,CCmDR,kBAAkB,AAWM,CACpB,KAAK,CtD7BgB,OAAO,CsDkC7B,CAND,AAAA,AAGE,UAHD,CAAW,MAAM,AAAjB,ED9DH,QAAQ,CCmDR,kBAAkB,CAcZ,KAAK,AAAC,CACN,KAAK,CtD5BoB,IAAI,CsD6B9B,ADnEL,ACuEA,QDvEQ,CCuER,kBAAkB,AAAC,CACjB,UAAU,CAAE,KAAK,CACjB,KAAK,CtD5CuB,OAAO,CsD6CnC,WAAW,CAAE,MAAM,CACnB,oBAAoB,CAAE,wBAAwB,CAK/C,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,ED7EH,QAAQ,CCuER,kBAAkB,AAMM,CACpB,KAAK,CtDhD0B,OAAO,CsDiDvC,AD/EH,ACkFA,QDlFQ,CCkFR,UAAU,AAAC,CACT,UAAU,CAAE,KAAK,CAClB,ADpFD,AEAA,QFAQ,CEAR,eAAe,AAAC,CACd,MAAM,CAAE,MAAM,CAkCf,AFnCD,A5CCE,Q4CDM,CEAR,eAAe,C9CCb,CAAC,C4CDH,QAAQ,CEAR,eAAe,C9CEb,CAAC,EAAE,MAAM,C4CFX,QAAQ,CEAR,eAAe,C9CGb,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAGnB,KAAK,CT0BS,OAAO,CSVxB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E4CdL,QAAQ,CEAR,eAAe,C9CCb,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E4CdL,QAAQ,CEAR,eAAe,C9CEb,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E4CdL,QAAQ,CEAR,eAAe,C9CGb,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A4CtBL,A5CyBE,Q4CzBM,CEAR,eAAe,C9CyBb,CAAC,CAAC,MAAM,C4CzBV,QAAQ,CEAR,eAAe,C9C0Bb,CAAC,CAAC,KAAK,AAAC,CAEJ,KAAK,CTSe,OAAO,CSO9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E4CnCL,QAAQ,CEAR,eAAe,C9CyBb,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E4CnCL,QAAQ,CEAR,eAAe,C9C0Bb,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A4C3CL,AEKE,QFLM,CEAR,eAAe,CAKb,CAAC,AAAC,CACA,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,QAAQ,C/C8ElB,SAAS,C+C7EgB,UAAU,C/C8EnC,aAAa,C+C9EY,UAAU,C/CGnC,kBAAkB,C+CFI,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CGvC,eAAe,C+CHO,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CIvC,aAAa,C+CJS,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CKvC,UAAU,C+CLY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAwBtC,AFlCH,AEYI,QFZI,CEAR,eAAe,CAKb,CAAC,CAOG,MAAM,CFZZ,QAAQ,CEAR,eAAe,CAKb,CAAC,CAQG,KAAK,CFbX,QAAQ,CEAR,eAAe,CAKb,CAAC,CASG,KAAK,AAAC,C/CKV,iBAAiB,C+CJM,UAAU,C/CKjC,aAAa,C+CLU,UAAU,C/CMjC,YAAY,C+CNW,UAAU,C/COjC,SAAS,C+CPc,UAAU,CAU9B,AFzBL,AEiBM,QFjBE,CEAR,eAAe,CAKb,CAAC,CAOG,MAAM,CAKN,GAAG,CFjBT,QAAQ,CEAR,eAAe,CAKb,CAAC,CAQG,KAAK,CAIL,GAAG,CFjBT,QAAQ,CEAR,eAAe,CAKb,CAAC,CASG,KAAK,CAGL,GAAG,AAAC,CACF,KAAK,CvDOO,OAAO,CQbzB,kBAAkB,C+COQ,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CN3C,eAAe,C+CMW,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CL3C,aAAa,C+CKa,GAAG,CAAC,QAAQ,CAAC,IAAI,C/CJ3C,UAAU,C+CIgB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAKtC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFrBT,QAAQ,CEAR,eAAe,CAKb,CAAC,CAOG,MAAM,CAKN,GAAG,EAID,AAAA,UAAC,CAAW,MAAM,AAAjB,EFrBT,QAAQ,CEAR,eAAe,CAKb,CAAC,CAQG,KAAK,CAIL,GAAG,EAID,AAAA,UAAC,CAAW,MAAM,AAAjB,EFrBT,QAAQ,CEAR,eAAe,CAKb,CAAC,CASG,KAAK,CAGL,GAAG,AAIqB,CACpB,KAAK,CvDIU,OAAO,CuDHvB,AFvBT,AE2BI,QF3BI,CEAR,eAAe,CAKb,CAAC,CAsBC,GAAG,AAAC,CACF,KAAK,CvDCmB,OAAO,CuDIhC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF9BP,QAAQ,CEAR,eAAe,CAKb,CAAC,CAsBC,GAAG,AAGqB,CACpB,KAAK,CvDDsB,OAAO,CuDEnC,AFhCP,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,YAAY,AAyCF,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,YAAY,CA8CN,MAAM,CF9CZ,QAAQ,CEAR,YAAY,CA+CN,KAAK,CF/CX,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA8CN,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CA+CN,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,YAAY,CAgDN,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,YAAY,CA8CN,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,YAAY,CA+CN,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,YAAY,CAgDN,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,YAAY,AA4Dc,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,YAAY,CAgER,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AFlEL,AEyCE,QFzCM,CEAR,aAAa,AAyCH,CACN,KAAK,CAJW,OAAkD,CAI3C,UAAU,CACjC,SAAS,CAAE,eAAe,CAC1B,MAAM,CAAE,IAAI,CAAA,UAAU,CAuBvB,AFnEH,AE8CI,QF9CI,CEAR,aAAa,CA8CP,MAAM,CF9CZ,QAAQ,CEAR,aAAa,CA+CP,KAAK,CF/CX,QAAQ,CEAR,aAAa,CAgDP,KAAK,AAAC,CACN,KAAK,CvDZe,OAAO,CuDYI,UAAU,CAS1C,CAPC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,aAAa,CA8CP,MAAM,EAKN,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,aAAa,CA+CP,KAAK,EAIL,AAAA,UAAC,CAAW,MAAM,AAAjB,EFnDP,QAAQ,CEAR,aAAa,CAgDP,KAAK,AAGiB,CACpB,KAAK,CvDdkB,IAAI,CuDe5B,AFrDP,AEuDM,QFvDE,CEAR,aAAa,CA8CP,MAAM,CASN,GAAG,CFvDT,QAAQ,CEAR,aAAa,CA+CP,KAAK,CAQL,GAAG,CFvDT,QAAQ,CEAR,aAAa,CAgDP,KAAK,CAOL,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,CAGH,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EF5DL,QAAQ,CEAR,aAAa,AA4Da,CACpB,KAAK,CAtBc,OAA4D,CAsBnD,UAAU,CACvC,AF9DL,AEgEI,QFhEI,CEAR,aAAa,CAgET,GAAG,AAAC,CACF,OAAO,CAAE,CAAC,CACX,AClEL,AACE,KADG,CACH,aAAa,AAAC,CACZ,UAAU,CAAE,MAAM,CAiEnB,AAnEH,AAII,KAJC,CACH,aAAa,CAGX,YAAY,AAAC,CACX,OAAO,CAAE,MAAM,CAoBhB,AAzBL,AAOM,KAPD,CACH,aAAa,CAGX,YAAY,CAGV,GAAG,AAAC,CACF,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,MAAM,ChDVpB,qBAAqB,CgDWQ,IAAI,ChDVjC,kBAAkB,CgDUW,IAAI,ChDTjC,aAAa,CgDSgB,IAAI,ChDLjC,kBAAkB,CgDMQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAmB,ChDL5D,UAAU,CgDKgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAmB,ChDD5D,kBAAkB,CgDEQ,GAAG,CAAC,IAAI,CAAC,IAAI,ChDDvC,eAAe,CgDCW,GAAG,CAAC,IAAI,CAAC,IAAI,ChDAvC,aAAa,CgDAa,GAAG,CAAC,IAAI,CAAC,IAAI,ChDCvC,UAAU,CgDDgB,GAAG,CAAC,IAAI,CAAC,IAAI,CAUlC,CARC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAhBT,KAAK,CACH,aAAa,CAGX,YAAY,CAGV,GAAG,AASqB,ChDT5B,kBAAkB,CgDUU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAyB,ChDTpE,UAAU,CgDSkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAyB,CAC7D,AAlBT,AAoBQ,KApBH,CACH,aAAa,CAGX,YAAY,CAGV,GAAG,CAaC,KAAK,AAAC,CACN,QAAQ,CAAE,QAAQ,ChDF1B,iBAAiB,CgDGU,oBAAoB,ChDF/C,aAAa,CgDEc,oBAAoB,ChDD/C,YAAY,CgDCe,oBAAoB,ChDA/C,SAAS,CgDAkB,oBAAoB,CACxC,AAvBT,AA2BI,KA3BC,CACH,aAAa,CA0BX,WAAW,AAAC,CACV,SAAS,CAAE,OAAO,CAClB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,MAAM,CAChB,AAhCL,AAkCI,KAlCC,CACH,aAAa,CAiCX,cAAc,AAAC,CACb,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CACnB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,MAAM,CAChB,AAvCL,AAyCI,KAzCC,CACH,aAAa,CAwCX,MAAM,AAAC,CACL,OAAO,CAAE,MAAM,CACf,SAAS,CAAE,MAAM,CAUlB,AArDL,AA6CM,KA7CD,CACH,aAAa,CAwCX,MAAM,CAIJ,CAAC,CAAC,CAAC,AAAC,CACF,cAAc,CAAE,WAAW,CAC5B,AA/CP,AAiDM,KAjDD,CACH,aAAa,CAwCX,MAAM,CAQJ,GAAG,AAAC,CACF,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,SAAS,CACnB,AApDP,AAuDI,KAvDC,CACH,aAAa,CAsDX,gBAAgB,AAAC,CACf,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,MAAM,CACnB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,MAAM,CACf,KAAK,CxDhCmB,OAAO,CwDqChC,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA/DP,KAAK,CACH,aAAa,CAsDX,gBAAgB,AAQQ,CACpB,KAAK,CxDlCsB,OAAO,CwDmCnC,AAKP,AACE,KADG,AAAA,MAAM,CACT,aAAa,AAAC,CACZ,OAAO,CAAE,MAAM,CAChB,AAHH,AAKE,KALG,AAAA,MAAM,CAKT,YAAY,CAAC,GAAG,AAAC,CACf,KAAK,CAAE,IAAI,CACZ,AAPH,AASE,KATG,AAAA,MAAM,CAST,QAAQ,AAAC,CACP,WAAW,CAAE,IAAI,CACjB,cAAc,CAAE,MAAM,CACtB,KAAK,CxDzDW,OAAO,CwD0DvB,aAAa,CAAE,GAAG,CAAC,MAAM,CxD1CP,OAAO,CwDkJ1B,AArHH,AAeI,KAfC,AAAA,MAAM,CAST,QAAQ,CAMJ,aAAa,AAAC,CACd,WAAW,CAAE,CAAC,CACf,CAED,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EAnBL,KAAK,AAAA,MAAM,CAST,QAAQ,AAUgB,CACpB,KAAK,CxDhEc,OAAO,CwDiE1B,aAAa,CAAE,GAAG,CAAC,MAAM,CxDjDJ,OAAO,CwDkD7B,AAtBL,AAwBI,KAxBC,AAAA,MAAM,CAST,QAAQ,CAeN,uBAAuB,AAAC,CACtB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,OAAO,CAChB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,WAAW,ChDtFvB,kBAAkB,CgDuFM,SAAS,CAAC,IAAI,CAAC,IAAI,ChDtF3C,eAAe,CgDsFS,SAAS,CAAC,IAAI,CAAC,IAAI,ChDrF3C,aAAa,CgDqFW,SAAS,CAAC,IAAI,CAAC,IAAI,ChDpF3C,UAAU,CgDoFc,SAAS,CAAC,IAAI,CAAC,IAAI,CAcxC,AA3CL,AA+BM,KA/BD,AAAA,MAAM,CAST,QAAQ,CAeN,uBAAuB,CAOrB,GAAG,AAAC,CACF,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,ChDTZ,aAAa,CgDUa,KAAK,ChDT/B,UAAU,CgDSgB,KAAK,ChDR/B,WAAW,CAAE,oBAA8B,CgDStC,AAtCP,AAwCM,KAxCD,AAAA,MAAM,CAST,QAAQ,CAeN,uBAAuB,CAgBnB,KAAK,AAAC,ChD3FZ,iBAAiB,CgD4FQ,WAAW,ChD3FpC,aAAa,CgD2FY,WAAW,ChD1FpC,YAAY,CgD0Fa,WAAW,ChDzFpC,SAAS,CgDyFgB,WAAW,CAC/B,AA1CP,AA6CI,KA7CC,AAAA,MAAM,CAST,QAAQ,CAoCN,aAAa,AAAC,CACZ,SAAS,CAAE,OAAO,CAClB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,QAAQ,CACjB,AAjDL,AAmDI,KAnDC,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,AAAC,ChDrFX,OAAO,CAAE,QAAQ,CACjB,OAAO,CAAE,WAAW,CACpB,OAAO,CAAE,GAAG,CAEZ,kBAAkB,CgDkFD,QAAQ,ChDjFzB,eAAe,CgDiFE,QAAQ,ChDhFzB,UAAU,CgDgFO,QAAQ,CACrB,kBAAkB,CAAE,CAAC,CACrB,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,ChDzC3B,SAAS,CgD0CkB,UAAU,ChDzCrC,aAAa,CgDyCc,UAAU,CACjC,KAAK,CxDpGmB,OAAO,CwDwIhC,CAlCC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA7DP,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,AAUgB,CACpB,KAAK,CxDtGsB,OAAO,CwDuGnC,AA/DP,AAiEM,KAjED,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAcN,EAAE,CAjER,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAeN,EAAE,CAlER,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAgBN,EAAE,CAnER,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAiBN,EAAE,CApER,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAkBN,EAAE,CArER,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAmBN,CAAC,AAAC,CACA,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,OAAO,CAAE,MAAM,CAMhB,AA/EP,AA2EQ,KA3EH,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAcN,EAAE,EAUG,KAAK,CA3EhB,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAeN,EAAE,EASG,KAAK,CA3EhB,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAgBN,EAAE,EAQG,KAAK,CA3EhB,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAiBN,EAAE,EAOG,KAAK,CA3EhB,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAkBN,EAAE,EAMG,KAAK,CA3EhB,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAmBN,CAAC,EAKI,KAAK,AAAC,CACP,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,GAAG,CACjB,AA9ET,AAiFM,KAjFD,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CA8BN,EAAE,AAAC,CACD,SAAS,CAAE,QAAQ,CACpB,AAnFP,A/CrEE,K+CqEG,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CxHV,CAAC,C+CqEH,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CvHV,CAAC,EAAE,MAAM,C+CoEX,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CtHV,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CxHV,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CvHV,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/CtHV,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A+CgDL,A/C7CE,K+C6CG,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/ChGV,CAAC,CAAC,MAAM,C+C6CV,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/C/FV,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/ChGV,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,C/C/FV,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A+C2BL,AAuFM,KAvFD,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAoCN,CAAC,CAvFP,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAqCN,MAAM,AAAC,CACL,KAAK,CxDlIiB,OAAO,CwDuI9B,CAHC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3FT,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAoCN,CAAC,EAIC,AAAA,UAAC,CAAW,MAAM,AAAjB,EA3FT,KAAK,AAAA,MAAM,CAST,QAAQ,CA0CN,QAAQ,CAqCN,MAAM,AAGkB,CACpB,KAAK,CxDpIoB,OAAO,CwDqIjC,AA7FT,AAiGI,KAjGC,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,AAAC,CACX,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,SAAS,CAAE,QAAQ,CAcpB,AApHL,A/CrEE,K+CqEG,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CtKd,CAAC,C+CqEH,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CrKd,CAAC,EAAE,MAAM,C+CoEX,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CpKd,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAOnB,KAAK,CTmFS,OAAO,CSvExB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CtKd,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CrKd,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/CpKd,CAAC,EAAE,KAAK,AAWgB,CAMlB,KAAK,CT2EY,OAAO,CSzE3B,A+CgDL,A/C7CE,K+C6CG,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/C9Id,CAAC,CAAC,MAAM,C+C6CV,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/C7Id,CAAC,CAAC,KAAK,AAAC,CAMJ,KAAK,CTkEe,OAAO,CStD9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/C9Id,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,C/C7Id,CAAC,CAAC,KAAK,AASiB,CAMlB,KAAK,CT0DkB,OAAO,CSxDjC,A+C2BL,AA0GM,KA1GD,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,AAAC,CACT,OAAO,CAAE,CAAC,CAQX,AAnHP,A/CrEE,K+CqEG,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C/Kd,CAAC,C+CqEH,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C9Kd,CAAC,EAAE,MAAM,C+CoEX,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C7Kd,CAAC,EAAE,KAAK,AAAC,CACP,eAAe,CAAE,IAAI,CAGnB,KAAK,CT0BS,OAAO,CSVxB,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C/Kd,CAAC,EAaC,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C9Kd,CAAC,EAAE,MAAM,EAYP,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CwDL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/C7Kd,CAAC,EAAE,KAAK,AAWgB,CAElB,KAAK,CTkBY,OAAO,CSZ3B,A+CgDL,A/C7CE,K+C6CG,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/CvJd,CAAC,CAAC,MAAM,C+C6CV,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/CtJd,CAAC,CAAC,KAAK,AAAC,CAEJ,KAAK,CTSe,OAAO,CSO9B,CATC,AAAA,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/CvJd,CAAC,CAAC,MAAM,EAUN,AAAA,UAAC,CAAW,MAAM,AAAjB,E+CmCL,KAAK,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,C/CtJd,CAAC,CAAC,KAAK,AASiB,CAElB,KAAK,CTCkB,IAAI,CSK9B,A+C2BL,AA+GQ,KA/GH,AAAA,MAAM,CAST,QAAQ,CAwFN,YAAY,CASV,UAAU,CAKR,SAAS,CAAA,GAAK,EAAC,UAAU,GAAG,KAAK,AAAC,CAChC,OAAO,CAAE,GAAG,CACZ,YAAY,CAAE,OAAO,CACtB,ACxLT,AAAA,YAAY,AAAC,CACX,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,IAAI,CjDiBjB,iBAAiB,CiDhBE,gBAAgB,CjDiBnC,aAAa,CiDjBM,gBAAgB,CjDkBnC,YAAY,CiDlBO,gBAAgB,CjDmBnC,SAAS,CiDnBU,gBAAgB,CACnC,UAAU,CAAE,MAAM,CACnB,ACLD,AAAA,gBAAgB,AAAC,ClDmBf,iBAAiB,CkDlBE,gBAAgB,ClDmBnC,aAAa,CkDnBM,gBAAgB,ClDoBnC,YAAY,CkDpBO,gBAAgB,ClDqBnC,SAAS,CkDrBU,gBAAgB,CACnC,UAAU,CAAE,MAAM,CAgBnB,AAlBD,AAIE,gBAJc,CAId,cAAc,AAAC,CACb,SAAS,CAAE,MAAM,CAClB,AANH,AAOE,gBAPc,CAOd,iBAAiB,AAAC,CAChB,MAAM,CAAE,QAAQ,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,OAAO,CACf,AAdH,AAeE,gBAfc,CAed,WAAW,AAAC,CACV,SAAS,CAAE,MAAM,CAClB,ACXH,AAAA,aAAa,AAAC,CACZ,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,GAAG,CACnB,eAAe,CAAE,aAAa,CAC9B,SAAS,CAAE,IAAI,CAChB,AACD,MAAM,mBACJ,CAAA,AAAA,aAAa,AAAC,CACZ,eAAe,CAAE,YAAY,CAC9B,CAAA,AAEH,AAAA,YAAY,AAAC,CACX,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CACb,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,qBAAwB,CACpC,UAAU,CAAE,UAAU,CACtB,UAAU,CAAE,gBAAgB,CnDxB5B,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,C2DSxB,MAAM,CAAE,IAAI,CACZ,mBAAmB,CAAE,IAAI,CACzB,aAAa,CAAE,IAAI,CACnB,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,eAAe,CAAE,aAAa,CAC/B,AACD,AAAA,YAAY,CAAC,KAAK,AAAC,CACjB,UAAU,CAAE,IAAI,CnDhBhB,iBAAiB,CmDiBE,WAAW,CnDhB9B,aAAa,CmDgBM,WAAW,CnDf9B,YAAY,CmDeO,WAAW,CnDd9B,SAAS,CmDcU,WAAW,CAC9B,UAAU,CAAE,YAAY,CACzB,AACD,AAAA,cAAc,AAAC,CACb,UAAU,CAAE,KAAK,CACjB,eAAe,CAAE,MAAM,CACvB,KAAK,CAAE,eAAe,CACtB,MAAM,CAAE,gBAAgB,CnD1CxB,qBAAqB,CRiBA,GAAG,CQhBxB,kBAAkB,CRgBG,GAAG,CQfxB,aAAa,CReQ,GAAG,C2D2BxB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACX,AACD,AAAA,gBAAgB,AAAC,CACf,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,OAAO,CACd,WAAW,CAAE,IAAI,CACjB,SAAS,CAAE,IAAI,CACf,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,IAAI,CACpB,AACD,AAAA,gBAAgB,CAAC,KAAK,AAAC,CACrB,KAAK,CAAE,OAAO,CACf,AC9DD,MAAM,oCACJ,C/BDF,A+BCE,qB/BDmB,CAWnB,WAAW,CKXb,KAAK,A0BCS,CACV,KAAK,CAAE,GAAG,CASX,CAPC,AAAA,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/BJL,qBAAqB,CAWnB,WAAW,CAXb,qBAAqB,E+BIjB,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/BOH,WAAW,E+BPT,AAAA,eAAC,CAAgB,MAAM,AAAtB,E1BJL,KAAK,A0BI0B,CACzB,KAAK,CAAE,GAAG,CACX,CAED,AAAA,AAAA,eAAC,CAAgB,QAAQ,AAAxB,E/BRL,qBAAqB,CAWnB,WAAW,CAXb,qBAAqB,E+BQjB,AAAA,eAAC,CAAgB,QAAQ,AAAxB,E/BGH,WAAW,E+BHT,AAAA,eAAC,CAAgB,QAAQ,AAAxB,E1BRL,KAAK,A0BQ4B,CAC3B,SAAS,CAAE,KAAK,CACjB,CACF,AAGH,MAAM,oCACJ,C/BfF,A+BeE,qB/BfmB,CAWnB,WAAW,CKXb,KAAK,A0BeS,CACV,KAAK,CAAE,GAAG,CAKX,CAHC,AAAA,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/BlBL,qBAAqB,CAWnB,WAAW,CAXb,qBAAqB,E+BkBjB,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/BPH,WAAW,E+BOT,AAAA,eAAC,CAAgB,MAAM,AAAtB,E1BlBL,KAAK,A0BkB0B,CACzB,KAAK,CAAE,GAAG,CACX,CACF,AAGH,MAAM,oCACJ,C/BzBF,A+ByBE,qB/BzBmB,CAWnB,WAAW,CKXb,KAAK,A0ByBS,CACV,KAAK,CAAE,GAAG,CAKX,CAHC,AAAA,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/B5BL,qBAAqB,CAWnB,WAAW,CAXb,qBAAqB,E+B4BjB,AAAA,eAAC,CAAgB,MAAM,AAAtB,E/BjBH,WAAW,E+BiBT,AAAA,eAAC,CAAgB,MAAM,AAAtB,E1B5BL,KAAK,A0B4B0B,CACzB,KAAK,CAAE,GAAG,CACX,AAGH,AAAA,eAAe,CAAC,eAAe,AAAC,CAC9B,aAAa,CAAE,IAAI,CACpB,AAED,AAAA,gBAAgB,AAAA,QAAQ,AAAC,CACvB,KAAK,CAAE,IAAI,CACZ,CARA,AAWH,MAAM,mCACJ,C/B3CF,A+B2CE,qB/B3CmB,CAWnB,WAAW,CKXb,KAAK,A0B2CS,CACV,KAAK,CAAE,cAAc,CACtB,AAED,AAAA,KAAK,AAAC,CACJ,OAAO,CAAE,eAAe,CACzB,AAED,AAAA,WAAW,AAAC,CACV,OAAO,CAAE,KAAK,CACf,AAED,AAAA,eAAe,CAAC,eAAe,AAAC,CAC9B,YAAY,CAAE,IAAI,CACnB,CAZA,AAgBH,MAAM,mCAEF,CAAA,AAAA,IAAI,CAAA,GAAK,EAAA,AAAA,mBAAC,CAAoB,QAAQ,AAA5B,GADZ,qBAAqB,AAAA,OAAO,AACiB,CACzC,GAAG,CAAE,CAAC,CACP,AAED,AAAA,IAAI,CAAA,GAAK,EAAA,AAAA,mBAAC,CAAoB,MAAM,AAA1B,GALZ,qBAAqB,AAAA,OAAO,CAKe,UAAU,CAAC,QAAQ,EAAC,AAAA,EAAC,AAAA,CAAI,CAChE,iBAAiB,CAAE,uDAA+H,CACnJ,CAGH,AAAA,AAAA,mBAAC,CAAoB,QAAQ,AAA5B,EAA8B,KAAK,CAAC,QAAQ,EAAC,AAAA,EAAC,AAAA,CAAI,CACjD,cAAqB,CAAkB,MAAC,CACzC,CATE,AAYL,MAAM,mCACJ,CAAA,AAAA,eAAe,AAAC,CACd,OAAO,CAAE,IAAI,CACd,AAED,AAAA,cAAc,CACd,eAAe,AAAC,CACd,OAAO,CAAE,KAAK,CACf,AAED,AAAA,cAAc,AAAC,CACb,OAAO,CAAE,eAAe,CACzB,AAGC,AAAA,IAAI,CAAA,GAAK,EAAA,AAAA,kBAAC,CAAmB,QAAQ,AAA3B,GADZ,qBAAqB,AAAA,OAAO,AACgB,CACxC,GAAG,CAAE,CAAC,CACP,AAED,AAAA,IAAI,CAAA,GAAK,EAAA,AAAA,kBAAC,CAAmB,MAAM,AAAzB,GALZ,qBAAqB,AAAA,OAAO,CAKc,UAAU,CAAC,QAAQ,EAAC,AAAA,EAAC,AAAA,CAAI,CAC/D,iBAAiB,CAAE,uDAA+H,CACnJ,CAGH,AAAA,AAAA,kBAAC,CAAmB,QAAQ,AAA3B,EAA6B,KAAK,CAAC,QAAQ,EAAC,AAAA,EAAC,AAAA,CAAI,CAChD,cAAqB,CAAkB,MAAC,CACzC,A/BvGH,A+ByGE,qB/BzGmB,CAWnB,WAAW,CKXb,KAAK,A0ByGS,CACV,KAAK,CAAE,eAAe,CACvB,AAED,AAEI,KAFC,CACH,gBAAgB,CACd,UAAU,AAAC,CACT,KAAK,CAAE,IAAI,CACZ,AAIL,AACE,MADI,CACJ,iBAAiB,AAAC,CAChB,SAAS,CAAE,QAAQ,CACpB,AAGH,AAAA,WAAW,CAAC,UAAU,AAAC,CACrB,MAAM,CAAE,KAAK,CACd,CA7CA,AAgDH,MAAM,WACJ,CAAA,KAAK,CACH,IAAI,CAAE,WAAW,CACjB,MAAM,CAAE,MAAM,CAGhB,AAAA,KAAK,AAAC,CACJ,KAAK,CAAE,eAAe,CACtB,WAAW,CAAE,YAAY,CAkB1B,AApBD,AAKI,KALC,AAIF,OAAO,CACN,aAAa,CALjB,KAAK,AAIF,OAAO,CAEN,gBAAgB,CANpB,KAAK,AAIF,OAAO,CAGN,UAAU,AAAC,CACT,UAAU,CAAE,MAAM,CACnB,AATL,AAYE,KAZG,CAYH,EAAE,CAAA,GAAK,CAAA,aAAa,EAZtB,KAAK,CAaH,kBAAkB,AAAC,CACjB,iBAAiB,CAAE,MAAM,CAC1B,AAfH,AAiBE,KAjBG,CAiBH,iBAAiB,AAAC,CAChB,gBAAgB,CAAE,MAAM,CACzB,AAGH,AAAA,aAAa,CtC5Jf,aAAa,CCeb,cAAc,CEfd,qBAAqB,CGArB,MAAM,CCAN,qBAAqB,CCArB,MAAM,CMiDN,SAAS,CD9CT,OAAO,CA2BL,UAAU,CAIR,iBAAiB,CA/BrB,OAAO,CA2BL,UAAU,CAKR,cAAc,CAhClB,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAuBV,SAAS,CHnGf,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAwBV,KAAK,CHpGX,OAAO,CAwFL,QAAQ,CGlBV,UAAU,CAGN,OAAO,CAGP,YAAY,CAyBV,KAAK,CHrGX,OAAO,CcHP,YAAY,CdGZ,OAAO,CeHP,YAAY,CAOV,UAAU,CAQR,eAAe,CAuCb,gBAAgB,CfnDtB,OAAO,CeHP,YAAY,CA+DV,eAAe,CAMb,OAAO,CAAC,UAAU,CflEtB,OAAO,CeHP,YAAY,CAyFV,SAAS,CftFX,OAAO,CgBHN,SAAS,AS4JM,CACZ,OAAO,CAAE,eAAe,CACzB,CA7BI" +} \ No newline at end of file diff --git a/images/profile-picture.jpg b/images/profile-picture.jpg new file mode 100644 index 00000000..130d43e5 Binary files /dev/null and b/images/profile-picture.jpg differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..d1f406ac --- /dev/null +++ b/index.html @@ -0,0 +1,4 @@ +dingyufan's blog
0%
\ No newline at end of file diff --git a/index.json b/index.json new file mode 100644 index 00000000..81c514c2 --- /dev/null +++ b/index.json @@ -0,0 +1 @@ +[{"categories":["tech"],"content":"0 前言 树莓派(Raspberry Pi)是一种基于ARM架构的单板计算机,仅有银行卡大小,本意是提供一种低成本的计算机学习硬件。但前几年由于各种原因,价格一路高歌猛进,让人望而却步。最近逛淘宝发现,树莓派价格差不多回归了正常架构,于是果断下手买一个尝尝。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:1:0","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"1 安装 Ubuntu22.04 到手的是 树莓派4B 4G内存版,因为内存足够,准备安装带GUI界面的 Ubuntu Desktop 22.04 。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:2:0","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"1.1 烧录操作系统 树莓派的存储是在一张SD卡上,所以需要通过 Raspberry Pi Imager 将操作系统烧录到SD卡中。 不需要提前下载镜像,直接可以在工具中选择系统,然后选中目标SD卡,点击烧录。 \u003e Other general-purpose OS \u003e Ubuntu \u003e Ubuntu Desktop 22.04.3 LTS (64-bit) 烧录完成后,将SD卡插入树莓派,通电启动即可。系统安装后,即可通过 micro HMDI 连接到显示设备,并使用键盘、鼠标进行操作。首次启动会引导设置语言时区、用户名主机名等信息,不在此赘述。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:2:1","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"1.2 Ubuntu软件源修改 树莓派切换镜像源的方式和一般Ubuntu设备并无不同,唯一需要注意的是 要使用 ubuntu-ports 镜像,这里面才有arm64的源。 我们使用清华镜像站,页面比较友好,可以直接在页面切换选项并产生配置内容。 备份原 sources.list,将清华源信息覆写到 sources.list,执行 sudo apt update 更新软件包信息。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:2:2","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"1.3 固定网络IP 为了方便ssh登录,以及作为网络代理服务器,需要设置一个固定的IP地址。 编辑netplan配置文件 /etc/netplan/01-network-manager-all.yaml。 network: version: 2 renderer: NetworkManager # 无线网络配置 wifis: # 无线网卡 wlan0 wlan0: # 关闭dhcp dhcp4: false # 固定IP, /24 用来表示掩码信息 addresses: [192.168.31.250/24] optional: true # 配置项 gateway4 在新版本中已弃用,通过routes配置网关 routes: - to: default via: 192.168.31.1 # DNS服务 nameservers: addresses: [114.114.114.114] # 配置WiFi信息 access-points: \"WiFi名称\": password: 'WiFi密码' 配置修改完成后,使用 sudo netplan try 测试网络配置,无异常即可使用 sudo netplan apply 应用配置。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:2:3","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"1.4 安装 openssh-server 配置完成后,发现无法ssh访问,发现默认没有安装 openssh-server,通过apt安装。安装后即可远程ssh访问。 sudo apt install openssh-server ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:2:4","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"2 Clash Clash 是一个基于规则的代理工具,主要的用途不多说了,如果你知道这个软件,就说明你大概率有这个需求。这个安装方式也不限于树莓派设备,只要是运行Linux系统的设备,都可以 这次之所以选择带GUI的Ubuntu,很大一部分原因就是想要通过图形化界面,比较方便的配置Clash。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:3:0","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"2.1 Clash for Windows Clash for Windows 是比较好用的一个 Clash GUI 客户端。 但是!它这个名字太具有迷惑性了! 它其实 支持 Windows系统!也支持 Linux!还支持 macOS ! 从GitHub release页面下载,Clash.for.Windows-0.20.34-arm64-linux.tar.gz,从它提供的各种安装包也能看出支持多平台 下载后解压,运行 cfw,即可出现GUI界面,然后开始进行配置。 在左侧 General 菜单中,打开 Allow LAN开关,允许局域网连接。这样不止为本机提供网络代理,也能为局域网其他设备提供代理。 在左侧 Profiles 菜单中,将机场提供的订阅地址填入输入框,下载得到代理规则。config.yaml为默认配置,sub为订阅到的规则。 到这为止,Clash for Windows就已经准备完毕了,随时可以使用了。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:3:1","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"2.2 Clash(无图形界面) 如是是无图形界面的情况,可以通过命令安装Clash。 下载Clash,注意版本,这里以树莓派使用的ARM版本为例 mkdir ~/clash \u0026\u0026 cd ~/clash wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-armv7-v1.18.0.gz 解压后重命名 gunzip clash-linux-armv7-v1.18.0.gz mv clash-linux-armv7-v1.18.0 clash 移动clash到指定位置,并赋予执行权限 sudo cp clash /usr/local/bin sudo chmod +x /usr/local/bin/clash 初始化执行,自动生成config.yaml 和 Country.mmdb sudo /usr/local/bin/clash -d /etc/clash/ # 输出 # INFO[0000] Can't find config, create a initial config file # INFO[0000] Can't find MMDB, start download # INFO[0003] inbound mixed://127.0.0.1:7890 create success. ctrl+c中断执行,修改config.yaml。这个就替换成你机场Clash订阅地址返回的yaml代理站点内容。 需要注意的是,在config.yaml中有几个配置,可能需要自己修改一下,因为机场提供的值可能不是你想要的 关于端口 代理端口分为 http代理端口(port)、socks代理端口(socks-port) 和 混合代理端口 (mixed-port)。这里建议直接将混合代理端口 (mixed-port)设置为7890,其他两项设为0。这样不管是http、socks都是用同一个7890端口,更加方便 关于外部控制 Clash是支持通过 RESTful 接口来对Clash进行功能配置的,目前市面上的GUI客户端配置管理也是基于这个方式。 config.yaml中有一项配置 external-controller,修改为 0.0.0.0:9090 这样方便我从局域网其他设备对其进行控制。 还有一项配置 secret 主要用于 RESTful 控制接口的身份认证密码。如果是局域网不对外的话,可暂时不配。 clash.razord.top 对于没有GUI的Clash,可以在其他设备上通过这个网站,获得一个控制的Dashboard。 网站打开时会让填写 Host、端口、秘钥,填写后就可以借助这个网页,对无图形界面设备上安装的Clash进行配置。具体原理的话就是页面发起配置对应功能的http请求。 代理配置完后,创建systemd 配置文件 /etc/systemd/system/clash.service,让我们的Clash能够开机自启。 [Unit] Description=Clash 守护进程, Go 语言实现的基于规则的代理. After=network-online.target [Service] Type=simple Restart=always ExecStart=/usr/local/bin/clash -d /etc/clash [Install] WantedBy=multi-user.target 重新加载 systemd,设置开机启动 和 立即启动 sudo systemctl daemon-reload # 设置系统启动时启动clash sudo systemctl enable clash # 立即启动clash sudo systemctl start clash # 查看clash运行状态 sudo systemctl status clash 到这为止,Clash就已经准备完毕了,随时可以使用了。 ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:3:2","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["tech"],"content":"2.3 使用方式 如果你使用的设备安装了SSR、V2ray或者Clash,那你可以直接在软件界面上操作,通过界面提供的功能来开启系统代理。 这里主要是介绍一下没有安装代理软件的设备,如何借助局域网内其他已安装的代理设备(即代理服务器),实现网络代理功能。 2.3.1 Windows 10 设备 在 Window 10 设置 \u003e 网络和Internet \u003e 代理 中,打开【使用代理服务器】开关,地址填树莓派IP地址,端口为Clash使用的7890端口。 也可以设置对 本地地址(localhost)、常见的局域网网段(192.168.x.x) 不使用代理服务器。 2.3.2 手机、iPad等无线设备 进入 无线局域网设置(WLAN设置),点击已连接的无线网络,将网络详情页面拉到底,有HTTP代理设置,填入树莓派IP地址,Clash的7890端口保存即可。 2.3.3 Ubuntu/Linux 如果是带有GUI界面的操作系统,直接在界面上配置,以Ubuntu为例,在 Settings \u003e Network \u003e Network Proxy 中,将代理配置中填入树莓派IP地址和Clash的7890端口保存即可 如果是没有界面的Linux系统,可以通过设置环境变量的方式设置 export https_proxy=http://192.168.31.250:7890 export http_proxy=http://192.168.31.250:7890 export all_proxy=socks5://192.168.31.250:7890 2.3.4 按需配置 总的来说,我个人并不喜欢为系统配置全局网络代理,我更喜欢给有需要的程序配置网络代理。举个几个例子: 容器运行时containerd 使用containerd时,有些镜像国内无法拉取,而且国内没有厂商同步这些镜像,这就可以为containerd配置代理服务器,来帮助拉取这些镜像。 sudo mkdir -p /etc/systemd/system/containerd.service.d/ cat \u003c\u003c EOF | sudo tee -a /etc/systemd/system/containerd.service.d/http-proxy.conf [Service] Environment=\"HTTP_PROXY=192.168.31.250:7890\" Environment=\"HTTPS_PROXY=192.168.31.250:7890\" EOF sudo systemctl restart containerd proxychains4 这是一个很简单、好用的代理工工具。你只需要通过apt安装 sudo apt install proxychains4 安装后修改配置文件 /etc/proxychains.config,将文件最后的代理地址改为代理服务器的地址,比如 socks5 192.168.31.250 7890即可。 使用方法的话,只需要在原本命令前添加 proxychains4 即可 proxychains4 wget xxx proxychains4 curl xxx proxychains4 git clone xxx ","date":"2023-09-09","objectID":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/:3:3","tags":["Raspberry Pi","Ubuntu","Clash"],"title":"浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器","uri":"/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"categories":["coding"],"content":"0 前言 博客搭建之后,不知道从何写起。思来想去,决定从记录一些工作中遇到的问题开始。一来对问题有个归档,算是有一些积累,方便日后回顾;二来促使自己遇到问题时能探本朔源,做到知其然知其所以然,不要草草百度了事。不积跬步,无以至千里;不积小流,无以成江海。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:1:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"1 问题 最近项目中使用dubbo(v2.5.3)的时候,遇到一个问题:dubbo服务方在对response编码时失败,发生了栈溢出异常。可以通过一个demo(dubbo-stack-overflow-due-to-jkd8-instant)复现这个异常。 看到栈溢出,一般想到的情况要么是递归过深,或是循环调用方法次数过多。为什么会在dubbo序列化编码的时候发生这个异常呢?通过查看源码提交记录,结合异常信息Fail to encode repsonse,并且在异常栈中出现JavaSerializer类,判断问题出在Dubbo在对Response序列化时无法处理Instant类型对象。 网上搜索到的博客基本上只是说了有这样的问题,但是没有说明具体的原因,都是草草改用Date了事。通过这篇博客,记录一下Instant类型对象引起Dubbo对Response序列化失败导致栈溢出的根本原因以及解决方案。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:2:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3 Dubbo序列化Response dubbo对不同协议、不同序列化方式处理方式是不一样的。此项目使用默认协议:dubbo协议,同时也采用dubbo协议默认序列化方式**:hessian2**。下文的序列化过程分析就是基于此的。 \u003c!-- dubbo协议hessian2序列化方式,是dubbo的默认值。所以在xml配置中写不写这行配置都可以 --\u003e \u003cdubbo:protocol name=\"dubbo\" serialization=\"hessian2\"/\u003e **参考官网文档 2.4 服务提供方返回调用结果 **,我们从Dubbo处理返回结果入手。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.1 ExchangeCodec / DubboCodec ExchangeCodec是Dubbo exchange信息交换层的编码器。ExchangeCodec#encode(Channel, ChannelBuffer, Object)方法是Dubbo对Request和Response进行编码的入口,逻辑很简单,主要是根据消息的类型,交由对应方法进行编码,对于不是自己负责的非Request、Response类型的消息对象,交给父类处理。 // ExchangeCodec.java public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException { if (msg instanceof Request) { encodeRequest(channel, buffer, (Request) msg); } else if (msg instanceof Response) { // 对response对象进行编码 encodeResponse(channel, buffer, (Response) msg); } else { super.encode(channel, buffer, msg); } } ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法主要做的就是组装消息写入ChannelBuffer,这样消息就可以发送给调用方。消息两部分组成:消息头,包含状态序列化等相关信息的字节数组;消息体:Response返回的具体数据转换成的字节数组。 // ExchangeCodec.java protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response res) throws IOException { try { // 获取序列化方式* Serialization serialization = getSerialization(channel); // 消息头字节数组。长度16 byte[] header = new byte[HEADER_LENGTH]; // 消息头 写入魔数 Bytes.short2bytes(MAGIC, header); // 消息头 写入序列化器ID信息 header[2] = serialization.getContentTypeId(); if (res.isHeartbeat()) header[2] |= FLAG_EVENT; byte status = res.getStatus(); // 消息头 写入状态 header[3] = status; // 消息头 写入 Bytes.long2bytes(res.getId(), header, 4); int savedWriteIndex = buffer.writerIndex(); buffer.writerIndex(savedWriteIndex + HEADER_LENGTH); ChannelBufferOutputStream bos = new ChannelBufferOutputStream(buffer); // 得到序列化器* ObjectOutput out = serialization.serialize(channel.getUrl(), bos); if (status == Response.OK) { if (res.isHeartbeat()) { encodeHeartbeatData(channel, out, res.getResult()); } else { // 对调用结果进行序列化* // 这个方法会调用子类DubboCodec的override方法实现 encodeResponseData(channel, out, res.getResult()); } } else out.writeUTF(res.getErrorMessage()); out.flushBuffer(); bos.flush(); bos.close(); // 消息体字节长度 int len = bos.writtenBytes(); checkPayload(channel, len); Bytes.int2bytes(len, header, 12); // 先写完消息体,再写消息头,再设置writeIndex位置 buffer.writerIndex(savedWriteIndex); buffer.writeBytes(header); buffer.writerIndex(savedWriteIndex + HEADER_LENGTH + len); } catch (Throwable t) { // 略... } } 在这里先不关注消息头、ChannelBuffer等操作,这次主要看序列化相关的几个步骤: 3.1.1 获取序列化方式 这里实际是父类中的方法AbstractCodec#getSerialization(Channel)方法。这一步是利用Dubbo SPI机制,实例化一个序列化方式对象。具体过程不是本次的重点,只要理解这一步会根据\u003cdubbo:protocol\u003e配置的序列化方式返回对应的序列化方式对象。比如这里得到的就是Hessian2Serialization对象。 3.1.2 得到序列化器 这里调用Serialization#serialize(URL, OutputStream)方法,得到一个序列化器。hessian2序列化提供的序列化器是Hessian2ObjectOutput对象,通过构造函数传入了ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法中定义的包装了buffer的bos。这样Hessian2ObjectOutput对象可以将具体数据写入到buffer中。 public class Hessian2Serialization implements Serialization { public static final byte ID = 2; public byte getContentTypeId() { return ID; } public String getContentType() { return \"x-application/hessian2\"; } public ObjectOutput serialize(URL url, OutputStream out) throws IOException { // 序列化器对象 return new Hessian2ObjectOutput(out); } public ObjectInput deserialize(URL url, InputStream is) throws IOException { return new Hessian2ObjectInput(is); } } 3.1.3 对调用结果进行序列化 配置中指定的是dubbo协议,这里实际会被调用的是DubboCodec#encodeResponseData(Channel, ObjectOutput, Object)重写方法。DubboCodec继承自ExchangeCodec,是Dubbo protocol远程调用层的编码器,主要负责实现协议层面的Response数据编码。 // DubboCodec.java @Override protected void encodeResponseData(Channel channel, ObjectOutput out, Object data) throws IOException { Result result = (Result) data; Throwable th = result.getException(); if (th == null) { Object ret = result.getValue(); if (ret == null) { out.writeByte(RESPONSE_NULL_VALUE); } else { // 序列化器中写入response数据标志位 out.writeByte(RESPONSE_VALUE); // 序列化器中写入正常返回的对象 out.writeObject(ret); } } else { out.writeByte(RESPONSE_WITH_EXCEPTION); out.writeObject(th); } } ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:1","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.2 Hessian2ObjectOutput 在3.1.2中提到过,得到的序列化器是Hessian2ObjectOutput,实现了ObjectOutput接口。对于常见的简单数据对象,ObjectOutput接口中都定义了相应处理方法,同时还定义writeObject(Object)方法处理复杂对象的序列化。 Hessian2ObjectOutput实现了接口定义的各个方法,通过一个Hessian2Output对象,完成各种数据类型hessian2序列化的具体操作。 public class Hessian2ObjectOutput implements ObjectOutput { private final Hessian2Output mH2o; public Hessian2ObjectOutput(OutputStream os) { mH2o = new Hessian2Output(os); mH2o.setSerializerFactory(Hessian2SerializerFactory.SERIALIZER_FACTORY); } public void writeBool(boolean v) throws IOException { mH2o.writeBoolean(v); } // 略... public void writeObject(Object obj) throws IOException { mH2o.writeObject(obj); } public void flushBuffer() throws IOException { mH2o.flushBuffer(); } } Hessian2ObjectOutput#writeObject(Object)方法是response数据对象序列化的入口,数据对象序列化的操作从这一步正式开始。这个方法中调用的是Hessian2Output#writeObject(Object)方法。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:2","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.3 Hessian2Output 注意Hessian2Output的方法,如writeBoolean(boolean),对值进行编码写入的时候,没有直接写入 _os,而是维护一个字节数组 _buffer和 _offset值。回头看3.1中的ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法,会调用out.flushBuffer(),通过Hessian2ObjectOutput来调用Hessian2Output#flushBuffer()方法,将 _buffer内容写入 _os ,即写入 bos,即ChannelBuffer对象buffer。 Hessian2Output#writeObject(Object)方法不像其他方法,没有直接向_buffer写入具体的字节,而是尝试获取一个Serializer对象,完成对象的序列化。 public class Hessian2Output extends AbstractHessianOutput implements Hessian2Constants { protected OutputStream _os; private final byte []_buffer = new byte[SIZE]; // 略... public Hessian2Output(OutputStream os) { _os = os; } // 略... public void writeBoolean(boolean value) throws IOException { if (SIZE \u003c _offset + 16) flush(); if (value) // 不直接写入_os _buffer[_offset++] = (byte) 'T'; else _buffer[_offset++] = (byte) 'F'; } public void writeObject(Object object) throws IOException { if (object == null) { writeNull(); return; } Serializer serializer; // 获得序列化工厂类,获得一个Serializer对象 serializer = findSerializerFactory().getSerializer(object.getClass()); // 完成对象的序列化 serializer.writeObject(object, this); } public final void flushBuffer() throws IOException { int offset = _offset; if (! _isStreaming \u0026\u0026 offset \u003e 0) { _offset = 0; _os.write(_buffer, 0, offset); } else if (_isStreaming \u0026\u0026 offset \u003e 3) { int len = offset - 3; _buffer[0] = 'p'; _buffer[1] = (byte) (len \u003e\u003e 8); _buffer[2] = (byte) len; _offset = 3; _os.write(_buffer, 0, offset); } } } findSerializerFactory()会从父类获得一个SerializerFactory对象,回头从3.2看到,在Hessian2ObjectOutput中,为Hessian2Output指定SerializerFactory 具体对象为Hessian2SerializerFactory.SERIALIZER_FACTORY。我们主要来看getSerializer(object.getClass()) ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:3","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.4 SerializerFactory / Hessian2SerializerFactory Hessian2SerializerFactory相对比较简单,只是实现了getClassLoader() 方法,然后在公共静态常量量中构造了一个Hessian2SerializerFactory对象供使用。 public class Hessian2SerializerFactory extends SerializerFactory { public static final SerializerFactory SERIALIZER_FACTORY = new Hessian2SerializerFactory(); private Hessian2SerializerFactory() { } @Override public ClassLoader getClassLoader() { return Thread.currentThread().getContextClassLoader(); } } 他父类SerializerFactory功能更加丰富。SerializerFactory#getSerializer(Class)方法比较长,但是其实整体逻辑并不复杂:根据类型Class返回相应的Serializer实例,如果类型和方法中列举的都不匹配,则会返回一个默认的Serializer对象,即 JavaSerializer对象。 public class SerializerFactory extends AbstractSerializerFactory { // 略... public Serializer getSerializer(Class cl) throws HessianProtocolException { Serializer serializer; serializer = (Serializer) _staticSerializerMap.get(cl); if (serializer != null) return serializer; if (_cachedSerializerMap != null) { synchronized (_cachedSerializerMap) { serializer = (Serializer) _cachedSerializerMap.get(cl); } if (serializer != null) return serializer; } for (int i = 0; serializer == null \u0026\u0026 _factories != null \u0026\u0026 i \u003c _factories.size(); i++) { AbstractSerializerFactory factory; factory = (AbstractSerializerFactory) _factories.get(i); serializer = factory.getSerializer(cl); } if (serializer != null) { } else if (JavaSerializer.getWriteReplace(cl) != null) serializer = new JavaSerializer(cl, _loader); else if (HessianRemoteObject.class.isAssignableFrom(cl)) serializer = new RemoteSerializer(); // else if (BurlapRemoteObject.class.isAssignableFrom(cl)) // serializer = new RemoteSerializer(); else if (Map.class.isAssignableFrom(cl)) { if (_mapSerializer == null) _mapSerializer = new MapSerializer(); serializer = _mapSerializer; } else if (Collection.class.isAssignableFrom(cl)) { if (_collectionSerializer == null) { _collectionSerializer = new CollectionSerializer(); } serializer = _collectionSerializer; } else if (cl.isArray()) serializer = new ArraySerializer(); else if (Throwable.class.isAssignableFrom(cl)) serializer = new ThrowableSerializer(cl, getClassLoader()); else if (InputStream.class.isAssignableFrom(cl)) serializer = new InputStreamSerializer(); else if (Iterator.class.isAssignableFrom(cl)) serializer = IteratorSerializer.create(); else if (Enumeration.class.isAssignableFrom(cl)) serializer = EnumerationSerializer.create(); else if (Calendar.class.isAssignableFrom(cl)) serializer = CalendarSerializer.create(); else if (Locale.class.isAssignableFrom(cl)) serializer = LocaleSerializer.create(); else if (Enum.class.isAssignableFrom(cl)) serializer = new EnumSerializer(cl); if (serializer == null) // 都不符合以上类似,则返回默认的serializer serializer = getDefaultSerializer(cl); if (_cachedSerializerMap == null) _cachedSerializerMap = new HashMap(8); synchronized (_cachedSerializerMap) { // 缓存这个类型对应的serializer,下次直接从缓存获取 _cachedSerializerMap.put(cl, serializer); } return serializer; } protected Serializer getDefaultSerializer(Class cl) { if (_defaultSerializer != null) return _defaultSerializer; if (!Serializable.class.isAssignableFrom(cl) \u0026\u0026 ! _isAllowNonSerializable) { throw new IllegalStateException(\"Serialized class \" + cl.getName() + \" must implement java.io.Serializable\"); } return new JavaSerializer(cl, _loader); } } 对于demo中的返回的数据对象DemoDTO,很显然就是会得到一个JavaSerializer,通过它的完成序列化。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:4","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.5 JavaSerializer 回顾上文3.3节中,serializer对象完成序列哈的入库也是writeObject()方法。来看JavaSerializer#writeObject(Object, AbstractHessianOutput)方法。这里面序列化分两种情况:一是要序列化的对象有writeReplce()方法的,直接调用writeReplce()方法完成序列化;而是常规的使用静态类FieldSerializer序列化。 // JavaSerializer.java public void writeObject(Object obj, AbstractHessianOutput out) throws IOException { if (out.addRef(obj)) { return; } Class cl = obj.getClass(); try { // 调用序列化对象的writeReplace方法完成序列化 if (_writeReplace != null) { Object repl; if (_writeReplaceFactory != null) repl = _writeReplace.invoke(_writeReplaceFactory, obj); else repl = _writeReplace.invoke(obj); out.removeRef(obj); out.writeObject(repl); out.replaceRef(repl, obj); return; } } catch (RuntimeException e) { throw e; } catch (Exception e) { // log.log(Level.FINE, e.toString(), e); throw new RuntimeException(e); } // hessian2会写入对象开始标记;hessian会写map开始标记并返回-2 int ref = out.writeObjectBegin(cl.getName()); if (ref \u003c -1) { // 这种情况看起来是兼容hessian序列化的,而不是hessian2序列化的 // hessian序列化是把对象当做map处理,所以writeObject10()方法里会循环写入字段名称然后马上字段序列化,最后还会写一个map结束标志 writeObject10(obj, out); } else { if (ref == -1) { // 写入对象包含字段长度,以及各个类型字段信息 writeDefinition20(out); // 类型信息编码处理 out.writeObjectBegin(cl.getName()); } // 这里会开始会遍历序列化对象包含的各个字段 writeInstance(obj, out); } } 3.5.1 writeReplace方法 JavaSerializer 使用一个Method变量 _writeReplace保存writeReplace()方法,这个方法是从那里来的呢?在JavaSerializer构造方法中,会调用一个私有方法introspectWriteReplace(Class, ClassLoader)。它会从两个地方找writeReplace()方法:一是序列化类相应的HessianSerializer类;二是序列化类本身。但是要注意,HessianSerializer类的writeReplace方法签名 和 序列化类本身writeReplace方法签名 是有区别的。 // JavaSerializer.java private void introspectWriteReplace(Class cl, ClassLoader loader) { try { String className = cl.getName() + \"HessianSerializer\"; // 加载 序列化类类名+HessianSerializer的类。例如demo中的DemoDTO类,则会 // 尝试加载cn.dingyufan.blog.demo.dubbostackoverflowduetojkd8instantprovider.api.dto.DemoDTOHessianSerializer类 Class serializerClass = Class.forName(className, false, loader); // 实例化相应的HessianSerializer类型 Object serializerObject = serializerClass.newInstance(); // 反射获取WriteReplace方法 Method writeReplace = getWriteReplace(serializerClass, cl); if (writeReplace != null) { _writeReplaceFactory = serializerObject; _writeReplace = writeReplace; return; } } catch (ClassNotFoundException e) { // 没有相应HessianSerializer类就会抛出ClassNotFoundException,这个异常不处理,后面会再次尝试从序列化类本身寻找 } catch (Exception e) { log.log(Level.FINER, e.toString(), e); } // 从序列化类本身找writeReplace方法 _writeReplace = getWriteReplace(cl); } // 从要序列化的类型寻找 方法名为writeReplace、入参为空 的方法 protected static Method getWriteReplace(Class cl) { for (; cl != null; cl = cl.getSuperclass()) { Method []methods = cl.getDeclaredMethods(); for (int i = 0; i \u003c methods.length; i++) { Method method = methods[i]; if (method.getName().equals(\"writeReplace\") \u0026\u0026 method.getParameterTypes().length == 0) return method; } } return null; } // 从相应HessianSerializer类找到 方法名为writeReplace、 入参有且仅为要序列化类型 的方法 protected Method getWriteReplace(Class cl, Class param) { for (; cl != null; cl = cl.getSuperclass()) { for (Method method : cl.getDeclaredMethods()) { if (method.getName().equals(\"writeReplace\") \u0026\u0026 method.getParameterTypes().length == 1 \u0026\u0026 param.equals(method.getParameterTypes()[0])) return method; } } return null; } writeReplace方法提供了一种扩展序列化的方式,对与Dubbo暂不支持的类型,可以通过这个扩展点,返回一个自定义的类型的对象,替代原本需要序列化的对象,然后对自定义的对象进行序列化。 但是有个问题,如果producer通过writeReplace方法自定义一个对象来序列化,consumer反序列化时,怎么把自定义的对象转回原本类型呢?这里不展开讲,但是办法肯定是有的,答案就是readResolve方法 。: ) 3.5.2 FieldSerializer 对于没有writeReplace方法的类型,就继续走hessian2设定的序列化逻辑。从JavaSerializer#writeInstance(Object, AbstractHessianOutput)继续。 // JavaSerializer.java public void writeInstance(Object obj, AbstractHessianOutput out) throws IOException { for (int i = 0; i \u003c _fields.length; i++) { Field field = _fields[i]; // _fieldSerializers是数组 FieldSerializer[] // 是在JavaSerializer构造方法中,根据序列化类中各个字段类型,依次创建FieldSerializer(或子类)的实例存入 _fieldSerializers[i].serialize(out, obj, field); } } // JavaSerializer构造方法中调用 // 根据序列化类中各个字段类型,返回对应类型的FieldSerializer(或子类)实例 private static FieldSerializer getFieldSerial","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:5","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"3.6 序列化调用栈 了解dubbo在hessian2序列化方式时的逻辑之后,再来看本文开头的异常。上述大段文字内容繁多,很难串联起来,我们根据hessian2的序列化逻辑,整理整个序列化过程的调用栈,当然也可以直接打断点看 ExchangeCodec#encode -\u003eExchangeCodec#encodeResponseData -\u003eDubboCodec#encodeResponseData -\u003eHessian2ObjectOutput#writeObject // DemoDTO类型开始序列化 -\u003eHessian2Output#writeObject -\u003eSerializerFactory#getSerializer -\u003eJavaSerializer#writeObject -\u003eJavaSerializer#writeInstance -\u003eFieldSerializer#serialize // Instant类型开始序列化 -\u003eHessian2Output#writeObject -\u003eSerializerFactory#getSerializer -\u003eJavaSerializer#writeObject // Ser类型开始序列化(Instant的writeReplace方法产生的替代对象) -\u003eHessian2Output#writeObject -\u003eSerializerFactory#getSerializer -\u003eJavaSerializer#writeObject -\u003eJavaSerializer#writeInstance -\u003eFieldSerializer#serialize // Instant类型开始序列化(Ser类中的object字段) -\u003eHessian2Output#writeObject -\u003eSerializerFactory#getSerializer -\u003eJavaSerializer#writeObject // Ser(Instant的writeReplace方法产生的替代类) -\u003eHessian2Output#writeObject -\u003e ...... 通过调用栈,是不是一眼就发现问题所在了?这个调用栈倒序来看,可以发现正好开头是异常栈的顺序。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:3:6","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"4 结论 在Dubbo反序列化的过程中,产生的栈溢出的原因是: Dubbo(v2.5.3)没有相应的Serializer或FieldSerializer能处理Instant数据类型,并且Instant正好有writeReplace方法,返回的替代类中的object字段又包含Instant本身。导致需要序列化的对象在Instant、Ser之间反复横跳,不断调用序列化方法逻辑,最终方法栈满,导致栈溢出错误。 结合网上信息,可以发现不只是Instant类,在JDK8新增的时间API,如LocalDateTime、Period等,都会和Instant有一样的问题,也是一样的原因。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:4:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5 解决方案 知道了问题的原因之后,就可以对症下药了。本人水平有限,暂时想到以下几种方案: ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5.1 使用Date类型 首先最简单的方式,就是不使用JDK8中引入的时间API,改为使用Date。 这种方式没有直接解决问题,而是有些逃避问题了。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:1","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5.1 writeReplace / readResolve 方法 修改Instant的writeReplace方法可能不是很方便,我们可以为DemoDTO添加writeReplace方法。总体思路的话就是:provider把Instant拆解成支持的数据类型,到了consumer再转化成Instant。 public class DemoDTO implements Serializable { private static final long serialVersionUID = -311647434535770294L; private String consumer; private Instant instant; // 序列化时JavaSerializer会调用此方法,然后序列化替代类对象repl private DemoDTOHandle writeReplace() { System.out.println(\"call writeReplace\"); DemoDTOHandle repl = new DemoDTOHandle(); repl.setConsumer(consumer); if (instant != null) { repl.setSeconds(instant.getEpochSecond()); repl.setNanos(instant.getNano()); } return repl; } // getter,setter略... } DemoDTOHandle中Instant拆成seconds、nanos字段存储,然后会代替DemoDTO进行序列化传输。代码如下。 public class DemoDTOHandle implements HessianHandle, Serializable { private static final long serialVersionUID = -8532997896892606136L; private String consumer; private long seconds; private int nanos; // 反序列化时,JavaDeserializer会调用此方法,重新组装实际的类 private DemoDTO readResolve() { System.out.println(\"call readResolve\"); DemoDTO dto = new DemoDTO(); dto.setConsumer(consumer); dto.setInstant(Instant.ofEpochSecond(seconds, nanos)); return dto; } // getter,setter略... } DemoDTOHandle为什么要实现HessianHandle接口呢?答案在SerializerFactory#getObjectDeserializer(String, Class)中,如果不是HessianHandle实现类的话,是得不到DemoDTOHandle相关的Deserializer,只有DemoDTO相关的Deserializer,那么就无法使用DemoDTOHandle中的readResolve方法转换回对象了。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:2","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5.2 修改序列化方式 之前提到,使用的是dubbo协议、hessian2序列化方式。事实上dubbo协议同样可以使用其他多种序列化方式。下面列举的序列化方式,都可以支持JDK8时间API的序列化处理。 \u003cdubbo:protocol serialization=\"java\"/\u003e \u003cdubbo:protocol serialization=\"compactedjava\"/\u003e \u003cdubbo:protocol serialization=\"nativejava\"/\u003e \u003cdubbo:protocol serialization=\"json\"/\u003e \u003cdubbo:protocol serialization=\"fastjson\"/\u003e 当然如果升级了Dubbo版本的话,会支持更多的序列化方式。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:3","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5.3 升级Dubbo版本(√) 当然,使用的Dubbo版本是2.5.3,实在是太老了。搜索maven仓库,看到2.5.3版本更新时间是2012年,十年前。 可以选择升级到2.6.x版本。会发现2.6.x版本在序列化方面也做了一些优化。新版本不仅包含了新功能,扩展性也有所提升。但是需要注意,如果是升级2.6.6+版本,需要关注netty版本的变化。 2.6.x 支持JDK8时间API 在2.6.x版本中,在SerializerFactory 中增加了对JDK8时间API的处理,加入了Java8TimeSerializer以及一系列的HessianHandle。意味着2.6.x版本Dubbo将不再有本文开头遇到的问题。 2.6.x 支持扩展SerializerFactory 同时SerializerFactory 也提供了一定的扩展性,支持添加你想要的SerializerFactory。如果还有目标序列化方式无法处理的类型,可以自定义SerializerFactory、Serializer,只要将自定义SerializerFactory添加到当前序列化方式的SerializerFactory 中,就可以轻松扩展。在2.5.x上是不支持这种扩展的。 // SerializerFactory.java 2.6.x public class SerializerFactory extends AbstractSerializerFactory { // 略... protected ArrayList _factories = new ArrayList(); // 略... public void addFactory(AbstractSerializerFactory factory) { _factories.add(factory); } public Serializer getSerializer(Class cl) throws HessianProtocolException{ Serializer serializer; serializer = (Serializer) _staticSerializerMap.get(cl); if (serializer != null) return serializer; if (_cachedSerializerMap != null) { synchronized (_cachedSerializerMap) { serializer = (Serializer) _cachedSerializerMap.get(cl); } if (serializer != null) return serializer; } // 遍历扩展的SerializerFactory。尝试由扩展的SerializerFactory提供Serializer // 2.5.3没有这个功能 for (int i = 0; serializer == null \u0026\u0026 _factories != null \u0026\u0026 i \u003c _factories.size(); i++) { AbstractSerializerFactory factory; factory = (AbstractSerializerFactory) _factories.get(i); serializer = factory.getSerializer(cl); } if (serializer != null) { } else if (JavaSerializer.getWriteReplace(cl) != null) serializer = new JavaSerializer(cl, _loader); else if (HessianRemoteObject.class.isAssignableFrom(cl)) serializer = new RemoteSerializer(); // else if (BurlapRemoteObject.class.isAssignableFrom(cl)) // serializer = new RemoteSerializer(); else if (Map.class.isAssignableFrom(cl)) { if (_mapSerializer == null) _mapSerializer = new MapSerializer(); serializer = _mapSerializer; } else if (Collection.class.isAssignableFrom(cl)) { if (_collectionSerializer == null) { _collectionSerializer = new CollectionSerializer(); } serializer = _collectionSerializer; } else if (cl.isArray()) serializer = new ArraySerializer(); else if (Throwable.class.isAssignableFrom(cl)) serializer = new ThrowableSerializer(cl, getClassLoader()); else if (InputStream.class.isAssignableFrom(cl)) serializer = new InputStreamSerializer(); else if (Iterator.class.isAssignableFrom(cl)) serializer = IteratorSerializer.create(); else if (Enumeration.class.isAssignableFrom(cl)) serializer = EnumerationSerializer.create(); else if (Calendar.class.isAssignableFrom(cl)) serializer = CalendarSerializer.create(); else if (Locale.class.isAssignableFrom(cl)) serializer = LocaleSerializer.create(); else if (Enum.class.isAssignableFrom(cl)) serializer = new EnumSerializer(cl); if (serializer == null) serializer = getDefaultSerializer(cl); if (_cachedSerializerMap == null) _cachedSerializerMap = new HashMap(8); synchronized (_cachedSerializerMap) { _cachedSerializerMap.put(cl, serializer); } return serializer; } } ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:4","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"5.4 SPI扩展Serialization 这个方法理论上是完全可行的,但是有些过于大动干戈了。总体思路是:借助Dubbo的SPI机制,对Serialization进行扩展,基于hessian2的SerializerFactory ,对Serializer、Deserializer进行扩展。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:5:5","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["coding"],"content":"6 写在最后 最开始计划用一两天的时间写完这篇博客,但是过程中又不断的遇到问题、解决问题,最终花了整个五一假期才完成。通过这个问题,算是对Dubbo框架的序列化这块有了一些了解了。 ","date":"2022-04-30","objectID":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/:6:0","tags":["Dubbo","Java"],"title":"JDK8日期时间API导致Dubbo调用StackOverflow错误","uri":"/posts/dubbo-stack-overflow-due-to-jdk8-instant/"},{"categories":["tech"],"content":"0 前言 去年年底开始,就一直有写博客的想法,一方面来沉淀自己的技术,另一方面也希望能对他人有些小小的帮助。如今各种平台非常的多,但是不是广告铺天盖地,就是样式固定,不够个性化。最终决定借助Github Pages来搭建一个属于自己的个性化博客。 Github Pages 是由GitHub提供的一个免费构建网站的方式。通过创建名为github用户名.github.io的仓库,上传文件后,就可以通过 http://github用户名.github.io访问你的网站。 GIthub Pages默认使用Jekyll构建静态网站,由于Jekyll依赖于Ruby,并且个人对Ruby完全不熟悉,所以最终选择了基于Golang的静态网站生成器Hugo来生成静态网站,然后托管在Github上。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:1:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"1 创建github仓库 创建一个 名为github用户名.github.io的仓库,github用户名填写自己的GIthub用户名。比如我,仓库名就是dingyufan.github.io。 创建之后,是一个空仓库,先放着暂时不管。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:2:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"2 安装Golang Windows系统安装Golang非常简单,下载msi安装包,直接安装即可。默认会安装到 C:\\Go 目录下,同时C:\\Go\\bin 目录也会被添加到PATH 环境变量中。可以通过go version验证安装的版本。目前最新版本应该是go1.18,我是之前安装的老版本。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:3:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"3 安装hugo 创建文件夹C:\\Hugo、C:\\Hugo\\bin、C:\\Hugo\\sites。其中bin目录用来存放hugo可执行程序,sites目录则用来保存站点。 从Github下载Hugo发布的安装包,注意要使用extended版本,我下载的就是 hugo_extended_0.96.0_Windows-64bit.zip 将下载的hugo解压,并把解压得到的内容放到 C:\\Hugo\\bin下。 为了方便使用hugo.exe,我们把C:\\Hugo\\bin添加到环境变量PATH中。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:4:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"4 创建网站 准备完全后,就可以开始构建网站了。进入C:\\Hugo\\sites目录,使用hugo new site 网站名创建网站。 注意,为了方便关联Github仓库,建议网站名与Github仓库名一致,比如我站点名、Github仓库名都为 dingyufan.github.io。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:5:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"5 修改主题 Hugo拥有非常丰富的主题,可以实现各种个性化需求。我这次选择的主题是 FixIt。 安装主题的方式有很多 一:可以直接下载主题,放置在站点的 themes文件夹下。需要注意的是,下载的主题要放在themes下和主题同名的文件夹内。比如FixIt,放置在C:\\Hugo\\sites\\dingyufan.github.io\\themes\\FixIt中,文件夹不存在则自行创建; 二:可以把主题克隆到 themes 目录。 cd C:/Hugo/sites/dingyufan.github.io git clone https://github.com/Lruihao/FixIt.git themes/FixIt 三:初始化仓库,并将主题仓库作为你的网站目录的子模块。 cd C:/Hugo/sites/dingyufan.github.io git init git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt 注意:推荐使用第三种方式!推荐使用第三种方式!推荐使用第三种方式! 否则之后Github Pages在构建时会有异常!No url found for submodule path 'themes/FixIt' in .gitmodules 安装主题之后,如何选择使用该主题呢?修改站点下配置文件config.toml 修改其中的 theme 选项,同时可以根据FitIt主题说明,设置更多个性化配置。 我的config.toml文件基础配置如下: baseURL = \"http://dingyufan.github.io/\" # [en, zh-cn, fr, ...] 设置默认的语言 defaultContentLanguage = \"zh-cn\" # 网站语言,仅在这里 CN 大写 languageCode = \"zh-CN\" # 是否包括中日韩文字 hasCJKLanguage = true # 网站标题 title = \"我的全新 Hugo 网站\" # 文章发布位置 publishDir = \"docs\" # 更改使用 Hugo 构建网站时使用的默认主题 theme = \"FixIt\" [params] # FixIt 主题版本 version = \"0.2.X\" [menu] [[menu.main]] identifier = \"posts\" # 你可以在名称(允许 HTML 格式)之前添加其他信息,例如图标 pre = \"\" # 你可以在名称(允许 HTML 格式)之后添加其他信息,例如图标 post = \"\" name = \"文章\" url = \"/posts/\" # 当你将鼠标悬停在此菜单链接上时,将显示的标题 title = \"\" weight = 1 [[menu.main]] identifier = \"categories\" pre = \"\" post = \"\" name = \"分类\" url = \"/categories/\" title = \"\" weight = 2 [[menu.main]] identifier = \"tags\" pre = \"\" post = \"\" name = \"标签\" url = \"/tags/\" title = \"\" weight = 3 # Hugo 解析文档的配置 [markup] # 语法高亮设置 (https://gohugo.io/content-management/syntax-highlighting) [markup.highlight] # false 是必要的设置 (https://github.com/Lruihao/FixIt/issues/43) noClasses = false ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:6:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"6 写文章 创建文章。hugo new posts/文件名.md, 会在站点的 content/post路径下创建一个md文件。这就是要写的博文。 注意,默认创建的md文件是草稿。草稿在构建网站时是会被忽略的。所以一定要在发布前,修改文件头中 draft为false。 在里面写一行 hello github pages 可以通过hugo serve命令启动本地预览,通过localhost:1313即可访问预览。 看到预览效果 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:7:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"7 发布网站 Hugo默认会把构建后的网站放在 public 文件夹下,但是为了方用github统一管理 发布前、后的内容,我想要将构建后网站路径,修改为放在docs文件夹下。 可以通过-d docs指定构建后放在docs文件夹下。也可以在config.toml中添加一行配置publishDir = \"docs\",这样就不需要在构建时使用 -d ,直接执行 hugo就可以完成侯建并放入docs文件夹。 构建网站之后,需要将网站托管到Github上,即 上传到刚开始创建的空仓库里。 git init git add -A git commit -m 'init' git branch -M main git remote add origin git@githubcom:dingyufan/dingyufan.github.io.git git push -u origin main ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:8:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"8 Github Pages配置 提交代码之后,需要修改Github Pages配置。指定Github Pages发布docs文件夹下的内容。 这样,仓库里的内容就是hugo生成的site的全部内容,docs文件夹下则是构建后的静态页面。这样可以对这个site完整的进行版本控制。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:9:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"},{"categories":["tech"],"content":"9 绑定域名 在完成以上步骤后,已经可以通过 http://dingyufan.github.io访问到网站了。 Github Pages还支持自定义域名。我希望通能过自己的域名 http://blog.dingyufan.cn 访问 配置后,要在域名注册商那里修改 域名解析规则。添加CNAME记录类型。 待解析生效之后,即可通过自定义域名访问。 ","date":"2022-04-10","objectID":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/:10:0","tags":["Github Pages","Hugo"],"title":"GitHub Pages + Hugo搭建个人博客","uri":"/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"}] \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 00000000..9024c65a --- /dev/null +++ b/index.xml @@ -0,0 +1 @@ +dingyufan's bloghttps://dingyufan.github.io/this is dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/JDK8日期时间API导致Dubbo调用StackOverflow错误https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/GitHub Pages + Hugo搭建个人博客https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ \ No newline at end of file diff --git a/js/theme.min.js b/js/theme.min.js new file mode 100644 index 00000000..f8903119 --- /dev/null +++ b/js/theme.min.js @@ -0,0 +1,3 @@ +"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure "+obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this4=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this4.isDark=!_this4.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$localStorage.setItem("theme",_this4.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this4.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _searchConfig$maxResu,_searchConfig$snippet,_searchConfig$highlig,_searchConfig$isCaseS,_searchConfig$minMatc,_searchConfig$findAll,_searchConfig$locatio,_searchConfig$thresho,_searchConfig$distanc,_searchConfig$ignoreL,_searchConfig$useExte,_searchConfig$ignoreF,_this5=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=(_searchConfig$maxResu=searchConfig.maxResultLength)!==null&&_searchConfig$maxResu!==void 0?_searchConfig$maxResu:10;var snippetLength=(_searchConfig$snippet=searchConfig.snippetLength)!==null&&_searchConfig$snippet!==void 0?_searchConfig$snippet:50;var highlightTag=(_searchConfig$highlig=searchConfig.highlightTag)!==null&&_searchConfig$highlig!==void 0?_searchConfig$highlig:"em";var isCaseSensitive=(_searchConfig$isCaseS=searchConfig.isCaseSensitive)!==null&&_searchConfig$isCaseS!==void 0?_searchConfig$isCaseS:false;var minMatchCharLength=(_searchConfig$minMatc=searchConfig.minMatchCharLength)!==null&&_searchConfig$minMatc!==void 0?_searchConfig$minMatc:1;var findAllMatches=(_searchConfig$findAll=searchConfig.findAllMatches)!==null&&_searchConfig$findAll!==void 0?_searchConfig$findAll:false;var location=(_searchConfig$locatio=searchConfig.location)!==null&&_searchConfig$locatio!==void 0?_searchConfig$locatio:0;var threshold=(_searchConfig$thresho=searchConfig.threshold)!==null&&_searchConfig$thresho!==void 0?_searchConfig$thresho:0.3;var distance=(_searchConfig$distanc=searchConfig.distance)!==null&&_searchConfig$distanc!==void 0?_searchConfig$distanc:100;var ignoreLocation=(_searchConfig$ignoreL=searchConfig.ignoreLocation)!==null&&_searchConfig$ignoreL!==void 0?_searchConfig$ignoreL:false;var useExtendedSearch=(_searchConfig$useExte=searchConfig.useExtendedSearch)!==null&&_searchConfig$useExte!==void 0?_searchConfig$useExte:false;var ignoreFieldNorm=(_searchConfig$ignoreF=searchConfig.ignoreFieldNorm)!==null&&_searchConfig$ignoreF!==void 0?_searchConfig$ignoreF:false;var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this5.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this5.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this5._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this5._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this5._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this5._index=lunr(function(){var _this6=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this6.add(record)})});_this5._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this5._algoliaIndex=_this5._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this5._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}else if(searchConfig.type==="fuse"){var _search=function _search(){var results={};window._index.search(query).forEach(function(_ref5){var item=_ref5.item,refIndex=_ref5.refIndex,matches=_ref5.matches;var title=item.title;var content=item.content;matches.forEach(function(_ref6){var indices=_ref6.indices,value=_ref6.value,key=_ref6.key;if(key==="content"){var offset=0;for(var i=0;i")+substr+"");content=content.substring(0,indices[i][0]+offset)+tag+content.substring(indices[i][1]+1+offset,content.length);offset+=highlightTag.length*2+5}}else if(key==="title"){var _offset=0;for(var _i=0;_i")+_substr+"");title=title.substring(0,indices[_i][0]+_offset)+_tag+title.substring(indices[_i][1]+1+_offset,content.length);_offset+=highlightTag.length*2+5}}});results[item.uri]={uri:item.uri,title:title,date:item.date,context:content}});return Object.values(results).slice(0,maxResultLength)};if(!window._index){fetch(searchConfig.fuseIndexURL).then(function(response){return response.json()}).then(function(data){var options={isCaseSensitive:isCaseSensitive,findAllMatches:findAllMatches,minMatchCharLength:minMatchCharLength,location:location,threshold:threshold,distance:distance,ignoreLocation:ignoreLocation,useExtendedSearch:useExtendedSearch,ignoreFieldNorm:ignoreFieldNorm,includeScore:false,shouldSort:true,includeMatches:true,keys:["content","title"]};window._index=new Fuse(data,options);finish(_search())}).catch(function(err){console.error(err);finish([])})}else finish(_search())}},templates:{suggestion:function suggestion(_ref7){var title=_ref7.title,date=_ref7.date,context=_ref7.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref8){var query=_ref8.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref9){_objectDestructuringEmpty(_ref9);var _ref10=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:searchConfig.type==="lunr"?{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"}:{searchType:"Fuse.js",icon:"",href:"https://fusejs.io/"},searchType=_ref10.searchType,icon=_ref10.icon,href=_ref10.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this5._searchMobile=autosearch}else{_this5._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{key:"initHighlight",value:function initHighlight(){var _this7=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var _hlAttrs$title;var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");var hlAttrs=_this7.data[$chroma.parentNode.id];$title.insertAdjacentHTML("afterbegin","".concat((_hlAttrs$title=hlAttrs===null||hlAttrs===void 0?void 0:hlAttrs.title)!==null&&_hlAttrs$title!==void 0?_hlAttrs$title:"",""));$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this7.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this7.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this7.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this7.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText.trim();if(_this7.config.code.maxShownLines<0||code.split("\n").length<_this7.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this7.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this7.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this8=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(typeof APlayer==="function"){var $newTocCore=$tocCore.cloneNode(true);$tocCore.parentElement.replaceChild($newTocCore,$tocCore);$tocCore=$newTocCore}if(document.getElementById("toc-static").dataset.kept===true||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);var $postMeta=document.querySelector(".post-meta");$toc.style.marginTop="".concat($postMeta.offsetTop+$postMeta.clientHeight,"px");var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.dataset.headerDesktop!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px")});this._tocOnScroll=this._tocOnScroll||function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px");_this8.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this8.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect2,_this9=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect2=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this9.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"switchMermaidTheme",value:function switchMermaidTheme(theme){var _this10=this;var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this$config$mermaid$;var themes=(_this$config$mermaid$=this.config.mermaid.themes)!==null&&_this$config$mermaid$!==void 0?_this$config$mermaid$:["default","dark","neutral"];mermaid.initialize({startOnLoad:false,theme:theme!==null&&theme!==void 0?theme:this.isDark?themes[1]:themes[0],securityLevel:"loose"});this.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this10.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this.switchMermaidTheme();this.switchThemeEventSet.add(function(){_this11.switchMermaidTheme()});this.beforeprintEventSet.add(function(){_this11.switchMermaidTheme("neutral")})}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var _typeitConfig$loop;var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";var loop=(_typeitConfig$loop=typeitConfig.loop)!==null&&_typeitConfig$loop!==void 0?_typeitConfig$loop:false;Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var shortcodeLoop=document.querySelector("#".concat(id)).parentElement.dataset.loop;var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,loop:shortcodeLoop?JSON.parse(shortcodeLoop):loop,afterComplete:function afterComplete(){if(i===group.length-1){if(typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration)}return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}this.config.comment.expired&&document.querySelector("#comments").remove();if(this.config.comment.artalk){if(this.config.comment.expired){return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl})}var artalk=Artalk.init(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect3;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect3=document.querySelector(".utterances-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this15.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect4;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect4=document.querySelector(".giscus-frame"))===null||_document$querySelect4===void 0?void 0:_document$querySelect4.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this15._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}},{once:true});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar,_document$querySelect5,_document$querySelect6;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"".concat((_document$querySelect5=(_document$querySelect6=document.querySelector("footer .fixit-icon"))===null||_document$querySelect6===void 0?void 0:_document$querySelect6.outerHTML)!==null&&_document$querySelect5!==void 0?_document$querySelect5:""," FixIt Theme"),appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){var _this$config$pangu;if(!((_this$config$pangu=this.config.pangu)!==null&&_this$config$pangu!==void 0&&_this$config$pangu.enable)){return}var selector=this.config.pangu.selector;if(selector){if(selector.startsWith("#")){pangu.spacingElementById(selector.slice(1))}else if(selector.startsWith(".")){pangu.spacingElementByClassName(selector.slice(1))}else{pangu.spacingElementByTagName(selector)}return}pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this17.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this18=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this18.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"initReward",value:function initReward(){var _this20=this;var $rewards=document.querySelectorAll(".post-reward [data-mode=\"fixed\"]");if(!$rewards.length){return}if(this.util.isMobile()){this.util.forEach($rewards,function($reward){$reward.removeAttribute("data-mode")});return}var _closeRewardExclude=function _closeRewardExclude(id){_this20.util.forEach($rewards,function($reward){var $rewardInput=$reward.parentElement.querySelector(".reward-input");if($rewardInput.id!==id){$rewardInput.checked=false}})};this.util.forEach($rewards,function($reward){$reward.previousElementSibling.addEventListener("click",function(){_closeRewardExclude(this.getAttribute("for"))},false)});this.scrollEventSet.add(_closeRewardExclude)}},{key:"onScroll",value:function onScroll(){var _this21=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");var scrollTimer=void 0;if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this21.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this21.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this21.newScrollTop=_this21.util.getScrollTop();var scroll=_this21.newScrollTop-_this21.oldScrollTop;document.body.toggleAttribute("data-scroll",true);scrollTimer&&window.clearTimeout(scrollTimer);scrollTimer=window.setTimeout(function(){document.body.toggleAttribute("data-scroll")},500);_this21.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this21.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this21.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this21.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this21.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this21.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this21.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this21.oldScrollTop=_this21.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this22=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this22._resizeTimeout){_this22._resizeTimeout=window.setTimeout(function(){_this22._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this22.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this22.initToc();_this22.switchMermaidTheme();_this22.initSearch();var isMobile=_this22.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this23=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this23.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this23.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"beforeprint",value:function beforeprint(){var _this24=this;window.addEventListener("beforeprint",function(){_this24.util.forEach(document.querySelectorAll(".chroma"),function($el){$el.classList.toggle("open",true)});var _iterator5=_createForOfIteratorHelper(_this24.beforeprintEventSet),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var event=_step5.value;event()}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}},false)}},{key:"init",value:function init(){var _this25=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();this.initReward();window.setTimeout(function(){var _this25$config$encryp;_this25.initComment();if(!((_this25$config$encryp=_this25.config.encryption)!==null&&_this25$config$encryp!==void 0&&_this25$config$encryp.all)){_this25.initToc();_this25.initTocListener()}_this25.onScroll();_this25.onResize();_this25.onClickMask();_this25.beforeprint()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} + +//# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/js/theme.min.js.map b/js/theme.min.js.map new file mode 100644 index 00000000..63b5feab --- /dev/null +++ b/js/theme.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"theme.min.js","names":["Util","_classCallCheck","_createClass","key","value","forEach","elements","handler","i","length","getScrollTop","_document$documentEle","document","documentElement","body","scrollTop","isMobile","window","matchMedia","matches","isTocStatic","animateCSS","element","animation","reserved","callback","_element$classList","Array","isArray","classList","add","apply","concat","_toConsumableArray","addEventListener","_element$classList2","remove","once","isValidDate","date","Date","isNaN","getTime","scrollIntoView","selector","startsWith","getElementById","slice","querySelector","behavior","FixIt","_this","_defineProperty","_document$querySelect","now","run","config","siteTime","$runTimes","util","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","dataset","theme","newScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","beforeprintEventSet","disableScrollEvent","objectFitImages","initThemeColor","_this2","$meta","_themeColorOnSwitchTheme","content","dark","light","initSVGIcon","querySelectorAll","$icon","fetch","svgSrc","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","initTwemoji","twemoji","parse","initMenu","initMenuDesktop","initMenuMobile","$item","style","minWidth","offsetWidth","_this3","$menuToggleMobile","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","initSwitchTheme","_this4","getElementsByClassName","$themeSwitch","_window$localStorage","localStorage","setItem","_iterator","_createForOfIteratorHelper","_step","s","n","done","e","f","initSearch","_searchConfig$maxResu","_searchConfig$snippet","_searchConfig$highlig","_searchConfig$isCaseS","_searchConfig$minMatc","_searchConfig$findAll","_searchConfig$locatio","_searchConfig$thresho","_searchConfig$distanc","_searchConfig$ignoreL","_searchConfig$useExte","_searchConfig$ignoreF","_this5","searchConfig","search","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","isCaseSensitive","minMatchCharLength","findAllMatches","location","threshold","distance","ignoreLocation","useExtendedSearch","ignoreFieldNorm","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","_ref","ref","metadata","matchData","_indexData","uri","title","context","position","Object","values","_ref2","matchPosition","substr","lastIndexOf","keys","replace","RegExp","lunrIndexURL","json","indexData","_this6","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","_ref3","hits","_ref4","_highlightResult","_snippetResult","_ref5","item","refIndex","_ref6","indices","substring","tag","fuseIndexURL","options","includeScore","shouldSort","includeMatches","Fuse","templates","suggestion","_ref7","empty","_ref8","noResultsFound","footer","_ref9","_objectDestructuringEmpty","_ref10","searchType","icon","href","on","_event","_dataset","_context","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","initDetails","$details","$summary","initLightGallery","lightgallery","lightGallery","plugins","lgThumbnail","lgZoom","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","licenseKey","initHighlight","_this7","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","_hlAttrs$title","$code","toLowerCase","$title","hlAttrs","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","setAttribute","blur","copyTitle","$copy","innerText","trim","maxShownLines","split","navigator","clipboard","writeText","insertBefore","initTable","$wrapper","initHeaderLink","num","initToc","_this8","$tocCore","APlayer","$newTocCore","cloneNode","kept","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","$postMeta","marginTop","offsetTop","clientHeight","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerDesktop","headerHeight","offsetHeight","marginBottom","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","getBoundingClientRect","top","nextTop","$parent","initTocListener","_document$querySelect2","_this9","tocHidden","push","initMath","math","renderMathInElement","switchMermaidTheme","_this10","$mermaidElements","_this$config$mermaid$","themes","mermaid","initialize","startOnLoad","securityLevel","$mermaid","render","svgCode","initMermaid","_this11","initEcharts","_this12","echarts","registerTheme","lightTheme","darkTheme","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","init","renderer","setOption","JSON","_echartsOnResize","resize","initMapbox","_this13","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","_this13$data$$mapbox$","lng","lat","zoom","lightStyle","darkStyle","marked","navigation","geolocate","scale","fullscreen","Map","container","center","minZoom","attributionControl","Marker","setLngLat","addTo","addControl","NavigationControl","GeolocateControl","positionOptions","enableHighAccuracy","showUserLocation","trackUserLocation","ScaleControl","FullscreenControl","MapboxLanguage","_mapboxOnSwitchTheme","getContainer","_this13$data$$mapbox$2","setStyle","initTypeit","_this14","typeit","_typeitConfig$loop","typeitConfig","cursorSpeed","cursorChar","loop","group","typeone","shortcodeLoop","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","initCommentLightGallery","comments","images","$content","$imgs","$img","$link","append","replaceWith","initComment","_this$config$comment","_this15","comment","enable","$viewCommentsBtn","expired","artalk","Artalk","LoadCountWidget","server","site","pvEl","countEl","setDarkMode","gitalk","decodeURI","Gitalk","valine","Valine","waline","pageview","Waline","pageviewCount","serverURL","path","pathname","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","_document$querySelect3","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","_document$querySelect4","setConfig","giscus2parentMsg","$script","initCookieconsent","cookieconsent","initialise","initSiteTime","_this16","setInterval","getSiteTime","hidden","initServiceWorker","enablePWA","serviceWorker","register","scope","registration","ready","initWatermark","_this$config$watermar","_document$querySelect5","_document$querySelect6","watermark","Watermark","outerHTML","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","initPangu","_this$config$pangu","pangu","spacingElementById","spacingElementByClassName","spacingElementByTagName","autoSpacingPage","initFixItDecryptor","_this17","_this$config$encrypti","_this$config$encrypti2","$tocNodes","decryptor","FixItDecryptor","decrypted","$element","reset","encryption","shortcode","initShortcodes","all","initMDevtools","_this$config","_this18","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","initAutoMark","_this19","_window$localStorage3","autoBookmark","_window$localStorage2","Number","getItem","hash","scrollTo","initReward","_this20","$rewards","$reward","removeAttribute","_closeRewardExclude","$rewardInput","checked","previousElementSibling","getAttribute","onScroll","_this21","$headers","ACCURACY","$fixedButtons","$backToTop","$readingProgressBar","scrollTimer","headerMobile","preventDefault","$mask","scroll","toggleAttribute","clearTimeout","click","contentHeight","scrollHeight","innerHeight","scrollPercent","max","min","setProperty","toFixed","round","_iterator2","_step2","onResize","_this22","resizeBefore","_resizeTimeout","_iterator3","_step3","onClickMask","_this23","_iterator4","_step4","beforeprint","_this24","$el","_iterator5","_step5","_this25","_this$config$encrypti3","_this25$config$encryp","themeInit","fixit"],"sources":["../../src/js/theme.js"],"sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) {\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement ?? document.body).scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n /**\n * add animate to element\n * @param {Element} element animate element\n * @param {String|Array} animation animation name\n * @param {Boolean} reserved reserved animation\n * @param {Function} callback remove callback\n */\n animateCSS(element, animation, reserved, callback) {\n !Array.isArray(animation) && (animation = [animation]);\n element.classList.add('animate__animated', ...animation);\n element.addEventListener('animationend', () => {\n !reserved && element.classList.remove('animate__animated', ...animation);\n typeof callback === 'function' && callback();\n }, { once: true });\n }\n\n /**\n * date validator\n * @param {*} date may be date or not\n * @returns {Boolean}\n */\n isValidDate(date) {\n return date instanceof Date && !isNaN(date.getTime());\n }\n \n /**\n * scroll some element into view\n * @param {String} selector element to scroll\n */\n scrollIntoView(selector) {\n const element = selector.startsWith('#')\n ? document.getElementById(selector.slice(1))\n : document.querySelector(selector);\n element?.scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data || [];\n this.isDark = document.body.dataset.theme === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n this.beforeprintEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initThemeColor() {\n const $meta = document.querySelector('[name=\"theme-color\"]');\n if (!$meta) {\n return;\n }\n this._themeColorOnSwitchTheme = this._themeColorOnSwitchTheme || (() => {\n $meta.content = this.isDark ? $meta.dataset.dark : $meta.dataset.light;\n });\n this.switchThemeEventSet.add(this._themeColorOnSwitchTheme);\n this._themeColorOnSwitchTheme();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.dataset.svgSrc)\n .then((response) => response.text())\n .then((svg) => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.dataset.svgSrc = $icon.dataset.svgSrc\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n $titleElements.length && $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch((err) => {\n console.error(err);\n });\n });\n }\n\n initTwemoji() {\n this.config.twemoji && twemoji.parse(document.body);\n }\n\n initMenu() {\n this.initMenuDesktop();\n this.initMenuMobile();\n }\n\n initMenuDesktop() {\n this.util.forEach(document.querySelectorAll('.has-children'), ($item) => {\n $item.querySelector('.sub-menu').style.minWidth = `${$item.offsetWidth - 8}px`;\n });\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', (event) => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n this.disableScrollEvent = document.body.classList.contains('blur');\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n // add nested menu toggler\n this.util.forEach(document.querySelectorAll('.menu-item>.nested-item'), ($nestedItem) => {\n $nestedItem.addEventListener('click', function () {\n this.parentNode.querySelector('.sub-menu').classList.toggle('open');\n this.querySelector('.dropdown-icon').classList.toggle('open');\n });\n });\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), ($themeSwitch) => {\n $themeSwitch.addEventListener('click', () => {\n document.body.dataset.theme = document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n this.isDark = !this.isDark;\n window.localStorage?.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) {\n event();\n }\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || (isMobile && this._searchMobileOnce) || (!isMobile && this._searchDesktopOnce)) {\n return;\n }\n // Initialize default search config\n const maxResultLength = searchConfig.maxResultLength ?? 10;\n const snippetLength = searchConfig.snippetLength ?? 50;\n const highlightTag = searchConfig.highlightTag ?? 'em';\n const isCaseSensitive = searchConfig.isCaseSensitive ?? false;\n const minMatchCharLength = searchConfig.minMatchCharLength ?? 1;\n const findAllMatches = searchConfig.findAllMatches ?? false;\n const location = searchConfig.location ?? 0;\n const threshold = searchConfig.threshold ?? 0.3;\n const distance = searchConfig.distance ?? 100;\n const ignoreLocation = searchConfig.ignoreLocation ?? false;\n const useExtendedSearch = searchConfig.useExtendedSearch ?? false;\n const ignoreFieldNorm = searchConfig.ignoreFieldNorm ?? false;\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n this.disableScrollEvent = true;\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n this.disableScrollEvent = false;\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask ||(() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`,\n {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true\n },\n {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) {\n query = lunr.queryHandler(query);\n }\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) {\n return;\n }\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) {\n position = matchPosition;\n }\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach((key) => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n uri: uri,\n title: title,\n date: matchData.date,\n context: context\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex =\n this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) {\n return;\n }\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else if (searchConfig.type === 'fuse') {\n const search = () => {\n const results = {};\n window._index.search(query).forEach(({ item, refIndex, matches }) => {\n let title = item.title;\n let content = item.content;\n matches.forEach(({ indices, value, key }) => {\n if (key === 'content') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = content.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n content = content.substring(0, indices[i][0] + offset) + tag + content.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n } else if (key === 'title') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = title.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n title = title.substring(0, indices[i][0] + offset) + tag + title.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n }\n });\n results[item.uri] = {\n uri: item.uri,\n title: title,\n date: item.date,\n context: content\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!window._index) {\n fetch(searchConfig.fuseIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const options = {\n isCaseSensitive: isCaseSensitive,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n location: location,\n threshold: threshold,\n distance: distance,\n ignoreLocation: ignoreLocation,\n useExtendedSearch: useExtendedSearch,\n ignoreFieldNorm: ignoreFieldNorm,\n includeScore: false,\n shouldSort: true,\n includeMatches: true,\n keys: ['content', 'title']\n };\n window._index = new Fuse(data, options);\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } \n },\n templates: {\n suggestion: ({ title, date, context }) =>\n `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } =\n searchConfig.type === 'algolia'\n ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/'\n }\n : (searchConfig.type === 'lunr'\n ? {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n }\n : {\n searchType: 'Fuse.js',\n icon: '',\n href: 'https://fusejs.io/'\n })\n return ``;\n }\n }\n }\n );\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) {\n this._searchMobile = autosearch;\n } else {\n this._searchDesktop = autosearch;\n }\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else {\n initAutosearch();\n }\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), ($details) => {\n const $summary = $details.querySelector('.details-summary');\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightgallery) {\n lightGallery(document.getElementById('content'), {\n plugins: [lgThumbnail, lgZoom],\n selector: '.lightgallery',\n speed: 400,\n hideBarsDelay: 2000,\n allowMediaOverlap: true,\n exThumbImage: 'data-thumbnail',\n toggleThumb: true,\n thumbWidth: 80,\n thumbHeight: '60px',\n actualSize: false,\n showZoomInOutIcons: true,\n licenseKey: 'none'\n });\n }\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), ($chroma) => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n // code title\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n const hlAttrs = this.data[$chroma.parentNode.id];\n $title.insertAdjacentHTML('afterbegin', `${hlAttrs?.title ?? ''}`);\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n // ellipses icon\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n // edit button\n if (this.config.code.editable) {\n const $edit = document.createElement('span');\n $edit.classList.add('edit');\n $edit.insertAdjacentHTML('afterbegin', ``);\n $edit.addEventListener('click', () => {\n const $iconKey = $edit.querySelector('.fa-key');\n const $iconLock = $edit.querySelector('.fa-lock');\n const $preChromas = $edit.parentElement.parentElement.querySelectorAll('pre.chroma');\n const $preChroma = $preChromas.length === 2 ? $preChromas[1] : $preChromas[0];\n if ($iconKey) {\n $iconKey.classList.add('fa-lock');\n $iconKey.classList.remove('fa-key');\n $iconKey.title = this.config.code.editLockTitle;\n $preChroma.setAttribute('contenteditable', true);\n $preChroma.focus();\n } else {\n $iconLock.classList.add('fa-key');\n $iconLock.classList.remove('fa-lock');\n $iconLock.title = this.config.code.editUnLockTitle;\n $preChroma.setAttribute('contenteditable', false);\n $preChroma.blur();\n }\n }, false);\n $header.appendChild($edit);\n }\n // copy button\n if (this.config.code.copyTitle) {\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n // remove the leading and trailing whitespace of the code string\n const code = $code.innerText.trim();\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) {\n $chroma.classList.add('open');\n }\n $copy.title = this.config.code.copyTitle;\n $copy.addEventListener('click', () => {\n navigator.clipboard.writeText(code).then(() => {\n this.util.animateCSS($code, 'animate__flash');\n }, () => {\n console.error('Clipboard write failed!', 'Your browser does not support clipboard API!');\n });\n }, false);\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), ($table) => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), ($header) => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n /**\n * init table of contents\n */\n initToc() {\n let $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n // It's a dirty hack to fix the bug of APlayer, see https://github.com/hugo-fixit/FixIt/issues/292\n if (typeof APlayer === 'function') {\n const $newTocCore = $tocCore.cloneNode(true);\n $tocCore.parentElement.replaceChild($newTocCore, $tocCore);\n $tocCore = $newTocCore;\n }\n if (document.getElementById('toc-static').dataset.kept === true || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n this._tocOnScroll && this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n $toc.style.visibility = 'visible';\n this.util.animateCSS($toc, ['animate__fadeIn', 'animate__faster'], true);\n const $postMeta = document.querySelector('.post-meta');\n $toc.style.marginTop = `${$postMeta.offsetTop + $postMeta.clientHeight}px`;\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.dataset.headerDesktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n document.querySelector('.container').addEventListener('resize', () => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n });\n this._tocOnScroll = this._tocOnScroll || (() => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n this.util.forEach($tocLinkElements, ($tocLink) => {\n $tocLink.classList.remove('active');\n });\n this.util.forEach($tocLiElements, ($tocLi) => {\n $tocLi.classList.remove('has-active');\n });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING) || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initTocListener() {\n const $toc = document.getElementById('toc-auto');\n const $tocContentAuto = document.getElementById('toc-content-auto');\n document.querySelector('#toc-auto>.toc-title')?.addEventListener('click', () => {\n const animation = ['animate__faster'];\n const tocHidden = $toc.classList.contains('toc-hidden');\n animation.push(tocHidden ? 'animate__fadeIn' : 'animate__fadeOut');\n $tocContentAuto.classList.remove(tocHidden ? 'animate__fadeOut' : 'animate__fadeIn');\n this.util.animateCSS($tocContentAuto, animation, true);\n $toc.classList.toggle('toc-hidden');\n }, false);\n }\n\n initMath() {\n if (this.config.math) {\n renderMathInElement(document.body, this.config.math);\n }\n }\n\n switchMermaidTheme(theme) {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n // TODO perf\n const themes = this.config.mermaid.themes ?? ['default', 'dark', 'neutral'];\n mermaid.initialize({ startOnLoad: false, theme: theme ?? (this.isDark ? themes[1] : themes[0]), securityLevel: 'loose' });\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.innerHTML = svgCode;\n }, $mermaid);\n });\n }\n };\n\n initMermaid() {\n this.switchMermaidTheme();\n this.switchThemeEventSet.add(() => { this.switchMermaidTheme(); });\n this.beforeprintEventSet.add(() => { this.switchMermaidTheme('neutral'); });\n }\n\n initEcharts() {\n if (!this.config.echarts) {\n return;\n }\n echarts.registerTheme('light', this.config.echarts.lightTheme);\n echarts.registerTheme('dark', this.config.echarts.darkTheme);\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), ($echarts) => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'light', { renderer: 'svg' });\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), ($mapbox) => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: 0.2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(\n new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true\n },\n showUserLocation: true,\n trackUserLocation: true\n }),\n 'bottom-right'\n );\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, (mapbox) => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed || 100;\n const cursorSpeed = typeitConfig.cursorSpeed || 1000;\n const cursorChar = typeitConfig.cursorChar || '|';\n const loop = typeitConfig.loop ?? false;\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const shortcodeLoop = document.querySelector(`#${id}`).parentElement.dataset.loop;\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n loop: shortcodeLoop ? JSON.parse(shortcodeLoop) : loop,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n }\n return;\n }\n instance.destroy();\n typeone(i + 1);\n }\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initCommentLightGallery(comments, images) {\n document.querySelectorAll(comments).forEach(($content) => {\n const $imgs = $content.querySelectorAll(images + ':not([lightgallery-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('lightgallery-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'comment-lightgallery');\n $link.setAttribute('href', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n });\n if ($imgs.length) {\n lightGallery($content, {\n selector: '.comment-lightgallery',\n actualSize: false,\n hideBarsDelay: 2000,\n speed: 400\n });\n }\n });\n }\n\n initComment() {\n if (!this.config.comment?.enable) {\n return;\n }\n // whether to show the view comments button\n if (document.querySelector('#comments')) {\n const $viewCommentsBtn = document.querySelector('.view-comments');\n $viewCommentsBtn.classList.remove('d-none');\n // view comments button click event\n $viewCommentsBtn.addEventListener('click', () => {\n this.util.scrollIntoView('#comments');\n }, false);\n }\n this.config.comment.expired && document.querySelector('#comments').remove();\n if (this.config.comment.artalk) {\n if (this.config.comment.expired) {\n return Artalk.LoadCountWidget({\n server: this.config.comment.artalk.server,\n site: this.config.comment.artalk.site,\n pvEl: this.config.comment.artalk.pvEl,\n countEl: this.config.comment.artalk.countEl\n })\n }\n const artalk = Artalk.init(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n });\n artalk.on('comments-loaded', () => {\n this.config.comment.artalk.lightgallery && this.initCommentLightGallery('.atk-comment .atk-content', 'img:not([atk-emoticon])');\n });\n return artalk;\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n return gitalk;\n }\n if (this.config.comment.valine) {\n return new Valine(this.config.comment.valine);\n }\n if (this.config.comment.waline) {\n if (this.config.comment.expired) {\n this.config.comment.waline.pageview && Waline.pageviewCount({\n serverURL: this.config.comment.waline.serverURL,\n path: window.location.pathname\n });\n return;\n }\n return Waline.init(this.config.comment.waline);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme\n };\n document.querySelector('.utterances-frame')?.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n return;\n }\n if (this.config.comment.twikoo) {\n const twikooConfig = this.config.comment.twikoo;\n if (twikooConfig.lightgallery) {\n twikooConfig.onCommentLoaded = () => {\n this.initCommentLightGallery('.tk-comments .tk-content', 'img:not(.tk-owo-emotion)');\n };\n }\n twikoo.init(twikooConfig);\n if (twikooConfig.commentCount) {\n // https://twikoo.js.org/api.html#get-comments-count\n twikoo\n .getCommentsCount({\n envId: twikooConfig.envId,\n region: twikooConfig.region,\n urls: [window.location.pathname],\n includeReply: false\n })\n .then(function (response) {\n const twikooCommentCount = document.getElementById('twikoo-comment-count');\n if (twikooCommentCount) twikooCommentCount.innerHTML = response[0].count;\n });\n }\n return;\n }\n if (this.config.comment.giscus) {\n const giscusConfig = this.config.comment.giscus;\n this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {\n const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};\n document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');\n });\n this.switchThemeEventSet.add(this._giscusOnSwitchTheme);\n this.giscus2parentMsg = window.addEventListener('message', (event) => {\n const $script = document.querySelector('#giscus>script');\n if ($script){\n this._giscusOnSwitchTheme();\n $script.parentElement.removeChild($script);\n }\n }, { once: true });\n return;\n }\n }\n\n initCookieconsent() {\n this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime = () => {\n let now = new Date();\n let run = new Date(this.config.siteTime);\n let $runTimes = document.querySelector('.run-times');\n if (!this.util.isValidDate(run) || !$runTimes) {\n clearInterval(this.siteTime);\n $runTimes && $runTimes.parentNode.remove();\n return;\n }\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - 24 * days),\n minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n $runTimes.innerHTML = `${days}, ${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`;\n document.querySelector('.site-time .d-none')?.classList.remove('d-none');\n };\n\n initSiteTime() {\n if (this.config.siteTime) {\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener('visibilitychange', () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n }, false);\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker\n .ready\n .then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark?.enable &&\n new Watermark({\n content: this.config.watermark.content || `${document.querySelector('footer .fixit-icon')?.outerHTML ?? ''} FixIt Theme`,\n appendTo: this.config.watermark.appendto || '.wrapper>main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowspacing,\n colSpacing: this.config.watermark.colspacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontsize,\n fontFamily: this.config.watermark.fontfamily\n });\n }\n\n initPangu() {\n if (!this.config.pangu?.enable) {\n return;\n }\n const selector = this.config.pangu.selector;\n if (selector) {\n if (selector.startsWith('#')) {\n pangu.spacingElementById(selector.slice(1));\n } else if (selector.startsWith('.')) {\n pangu.spacingElementByClassName(selector.slice(1));\n } else {\n pangu.spacingElementByTagName(selector)\n }\n return;\n }\n pangu.autoSpacingPage();\n }\n\n initFixItDecryptor() {\n const $tocNodes = document.querySelectorAll('#toc-auto>.d-none, #toc-static.d-none');\n this.decryptor = new FixItDecryptor({\n decrypted: () => {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.remove('d-none');\n });\n this.initToc();\n this.initTocListener();\n this.initPangu();\n },\n reset: () => {\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.add('d-none');\n });\n }\n });\n if (this.config.encryption?.shortcode) {\n this.decryptor.addEventListener('decrypted', () => {\n this.decryptor.initShortcodes();\n })\n this.decryptor.initShortcodes();\n }\n this.config.encryption?.all && this.decryptor.init();\n }\n\n initMDevtools() {\n const type = this.config?.mDevtools;\n if (typeof window.orientation === 'undefined') {\n return;\n }\n if (type === 'vConsole') {\n const vConsole = new VConsole({\n target: '.widgets',\n theme: this.isDark ? 'dark' : 'light'\n });\n this._vConsoleOnSwitchTheme = this._vConsoleOnSwitchTheme || (() => {\n vConsole.setOption('theme', this.isDark ? 'dark' : 'light');\n });\n this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme);\n }\n if(type === 'eruda') {\n eruda.init({\n defaults: { theme: this.isDark ? 'Dark' : 'Light' }\n });\n this._erudaOnSwitchTheme = this._erudaOnSwitchTheme || (() => {\n eruda.util.evalCss.setTheme(this.isDark ? 'Dark' : 'Light');\n });\n this.switchThemeEventSet.add(this._erudaOnSwitchTheme);\n }\n }\n\n initAutoMark() {\n if (!this.config.autoBookmark) {\n return;\n }\n window.addEventListener('beforeunload', () => {\n window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());\n });\n const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));\n // If the page opens with a specific hash, just jump out\n if (scrollTop && location.hash === '') {\n window.scrollTo({ \n top: scrollTop,\n behavior: 'smooth'\n });\n }\n }\n\n initReward() {\n const $rewards = document.querySelectorAll('.post-reward [data-mode=\"fixed\"]');\n if (!$rewards.length) {\n return;\n }\n // `fixed` mode only supports desktop\n if (this.util.isMobile()) {\n this.util.forEach($rewards, ($reward) => {\n $reward.removeAttribute('data-mode');\n });\n return;\n }\n // Close post reward images exclude special id\n const _closeRewardExclude = (id) => {\n this.util.forEach($rewards, ($reward) => {\n const $rewardInput = $reward.parentElement.querySelector('.reward-input');\n if ($rewardInput.id !== id) {\n $rewardInput.checked = false;\n }\n });\n };\n // Add additional click event to reward buttons\n this.util.forEach($rewards, ($reward) => {\n $reward.previousElementSibling.addEventListener('click', function () {\n _closeRewardExclude(this.getAttribute('for'));\n }, false)\n });\n this.scrollEventSet.add(_closeRewardExclude);\n }\n\n onScroll() {\n const $headers = [];\n const ACCURACY = 20;\n const $fixedButtons = document.querySelector('.fixed-buttons');\n const $backToTop = document.querySelector('.back-to-top');\n const $readingProgressBar = document.querySelector('.reading-progress-bar');\n let scrollTimer = void 0;\n if (document.body.dataset.headerDesktop === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.dataset.headerMobile === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n // b2t button click event\n $backToTop?.addEventListener('click', () => {\n this.util.scrollIntoView('body');\n });\n window.addEventListener('scroll', (event) => {\n if (this.disableScrollEvent) {\n event.preventDefault();\n return;\n }\n const $mask = document.getElementById('mask');\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n // body scrollbar style\n document.body.toggleAttribute('data-scroll', true);\n scrollTimer && window.clearTimeout(scrollTimer);\n scrollTimer = window.setTimeout(() => {\n document.body.toggleAttribute('data-scroll');\n }, 500);\n // header animation\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown'], true);\n $mask.click();\n }\n });\n const contentHeight = document.body.scrollHeight - window.innerHeight;\n const scrollPercent = Math.max(Math.min(100 * Math.max(this.newScrollTop, 0) / contentHeight, 100), 0);\n if ($readingProgressBar) {\n $readingProgressBar.style.setProperty('--progress', `${scrollPercent.toFixed(2)}%`);\n }\n // whether to show fixed buttons\n if ($fixedButtons) {\n if (scrollPercent > 1) {\n $fixedButtons.classList.remove('d-none', 'animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn'], true);\n } else {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut'], true, () => {\n $fixedButtons.classList.contains('animate__fadeOut') && $fixedButtons.classList.add('d-none');\n });\n }\n if ($backToTop) {\n $backToTop.querySelector('span').innerText = `${Math.round(scrollPercent)}%`;\n }\n }\n for (let event of this.scrollEventSet) {\n event();\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n let resizeBefore = this.util.isMobile();\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) {\n event();\n }\n this.initToc();\n this.switchMermaidTheme();\n this.initSearch();\n\n const isMobile = this.util.isMobile()\n if (isMobile !== resizeBefore) {\n document.getElementById('mask').click();\n resizeBefore = isMobile;\n }\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n if (!document.body.classList.contains('blur')) {\n return;\n }\n for (let event of this.clickMaskEventSet) {\n event();\n }\n this.disableScrollEvent = false;\n document.body.classList.remove('blur');\n }, false);\n }\n\n beforeprint() {\n window.addEventListener('beforeprint', () => {\n this.util.forEach(document.querySelectorAll('.chroma'), ($el) => {\n $el.classList.toggle('open', true)\n });\n for (let event of this.beforeprintEventSet) {\n event();\n }\n }, false);\n }\n\n init() {\n try {\n if (this.config.encryption) {\n this.initFixItDecryptor();\n } else if (!this.config.encryption?.all) {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initPangu();\n }\n this.initThemeColor();\n this.initSVGIcon();\n this.initMenu();\n this.initSwitchTheme();\n this.initSearch();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initMDevtools();\n this.initAutoMark();\n this.initReward();\n\n window.setTimeout(() => {\n this.initComment();\n if (!this.config.encryption?.all) {\n this.initToc();\n this.initTocListener();\n }\n this.onScroll();\n this.onResize();\n this.onClickMask();\n this.beforeprint();\n }, 100);\n } catch (err) {\n console.error(err);\n }\n }\n}\n\nconst themeInit = () => {\n window.fixit = new FixIt();\n window.fixit.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/lib/animate/animate.min.css b/lib/animate/animate.min.css new file mode 100644 index 00000000..76d2fe1a --- /dev/null +++ b/lib/animate/animate.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * animate.css - https://animate.style/ + * Version - 4.1.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2020 Animate.css + */:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*0.8);animation-duration:calc(var(--animate-duration)*0.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/lib/cookieconsent/cookieconsent.min.css b/lib/cookieconsent/cookieconsent.min.css new file mode 100644 index 00000000..d4d43902 --- /dev/null +++ b/lib/cookieconsent/cookieconsent.min.css @@ -0,0 +1,6 @@ +.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s} +.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1} +.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em} +@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}} +.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block} +.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0} \ No newline at end of file diff --git a/lib/cookieconsent/cookieconsent.min.js b/lib/cookieconsent/cookieconsent.min.js new file mode 100644 index 00000000..1e3dccf1 --- /dev/null +++ b/lib/cookieconsent/cookieconsent.min.js @@ -0,0 +1 @@ +!function(e){if(!e.hasInitialised){var t={escapeRegExp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},hasClass:function(e,t){var i=" ";return 1===e.nodeType&&(i+e.className+i).replace(/[\n\t]/g,i).indexOf(i+t+i)>=0},addClass:function(e,t){e.className+=" "+t},removeClass:function(e,t){var i=new RegExp("\\b"+this.escapeRegExp(t)+"\\b");e.className=e.className.replace(i,"")},interpolateString:function(e,t){return e.replace(/{{([a-z][a-z0-9\-_]*)}}/gi,function(e){return t(arguments[1])||""})},getCookie:function(e){var t=("; "+document.cookie).split("; "+e+"=");return t.length<2?void 0:t.pop().split(";").shift()},setCookie:function(e,t,i,n,o,s){var r=new Date;r.setHours(r.getHours()+24*(i||365));var a=[e+"="+t,"expires="+r.toUTCString(),"path="+(o||"/")];n&&a.push("domain="+n),s&&a.push("secure"),document.cookie=a.join(";")},deepExtend:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(i in e&&this.isPlainObject(e[i])&&this.isPlainObject(t[i])?this.deepExtend(e[i],t[i]):e[i]=t[i]);return e},throttle:function(e,t){var i=!1;return function(){i||(e.apply(this,arguments),i=!0,setTimeout(function(){i=!1},t))}},hash:function(e){var t,i,n=0;if(0===e.length)return n;for(t=0,i=e.length;t=128?"#000":"#fff"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),i=38+(t>>16),n=38+(t>>8&255),o=38+(255&t);return"#"+(16777216+65536*(i<255?i<1?0:i:255)+256*(n<255?n<1?0:n:255)+(o<255?o<1?0:o:255)).toString(16).slice(1)},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return"object"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,i){return e&&e.parentNode?t.hasClass(e,i)?e:this.traverseDOMPath(e.parentNode,i):null}};e.status={deny:"deny",allow:"allow",dismiss:"dismiss"},e.transitionEnd=function(){var e=document.createElement("div"),t={t:"transitionend",OT:"oTransitionEnd",msT:"MSTransitionEnd",MozT:"transitionend",WebkitT:"webkitTransitionEnd"};for(var i in t)if(t.hasOwnProperty(i)&&void 0!==e.style[i+"ransition"])return t[i];return""}(),e.hasTransition=!!e.transitionEnd;var i=Object.keys(e.status).map(t.escapeRegExp);e.customStyles={},e.Popup=function(){var n={enabled:!0,container:null,cookie:{name:"cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(e){},onStatusChange:function(e,t){},onRevokeChoice:function(){},onNoCookieLaw:function(e,t){},content:{header:"Cookies used on the website!",message:"This website uses cookies to ensure you get the best experience on our website.",dismiss:"Got it!",allow:"Allow cookies",deny:"Decline",link:"Learn more",href:"https://www.cookiesandyou.com",close:"❌",target:"_blank",policy:"Cookie Policy"},elements:{header:'{{header}} ',message:'{{message}}',messagelink:'{{message}} {{link}}',dismiss:'{{dismiss}}',allow:'{{allow}}',deny:'{{deny}}',link:'{{link}}',close:'{{close}}'},window:'',revokeBtn:'
{{policy}}
',compliance:{info:'
{{dismiss}}
',"opt-in":'
{{deny}}{{allow}}
',"opt-out":'
{{deny}}{{allow}}
'},type:"info",layouts:{basic:"{{messagelink}}{{compliance}}","basic-close":"{{messagelink}}{{compliance}}{{close}}","basic-header":"{{header}}{{message}}{{link}}{{compliance}}"},layout:"basic",position:"bottom",theme:"block",static:!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:["cc-revoke","cc-btn"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};function o(){this.initialise.apply(this,arguments)}function s(e){this.openingTimeout=null,t.removeClass(e,"cc-invisible")}function r(t){t.style.display="none",t.removeEventListener(e.transitionEnd,this.afterTransition),this.afterTransition=null}function a(){var e=this.options.position.split("-"),t=[];return e.forEach(function(e){t.push("cc-"+e)}),t}function c(n){var o=this.options,s=document.createElement("div"),r=o.container&&1===o.container.nodeType?o.container:document.body;s.innerHTML=n;var a=s.children[0];return a.style.display="none",t.hasClass(a,"cc-window")&&e.hasTransition&&t.addClass(a,"cc-invisible"),this.onButtonClick=function(n){var o=t.traverseDOMPath(n.target,"cc-btn")||n.target;if(t.hasClass(o,"cc-btn")){var s=o.className.match(new RegExp("\\bcc-("+i.join("|")+")\\b")),r=s&&s[1]||!1;r&&(this.setStatus(r),this.close(!0))}t.hasClass(o,"cc-close")&&(this.setStatus(e.status.dismiss),this.close(!0));t.hasClass(o,"cc-revoke")&&this.revokeChoice()}.bind(this),a.addEventListener("click",this.onButtonClick),o.autoAttach&&(r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a)),a}function l(e){return"000000"==(e=t.normaliseHex(e))?"#222":t.getLuminance(e)}function u(e,t){for(var i=0,n=e.length;i=0;o&&t(n);return o}.call(this)&&(this.options.enabled=!1),u(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),u(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var o=this.options.window.replace("{{classes}}",function(){var i=this.options,n="top"==i.position||"bottom"==i.position?"banner":"floating";t.isMobile()&&(n="floating");var o=["cc-"+n,"cc-type-"+i.type,"cc-theme-"+i.theme];i.static&&o.push("cc-static");o.push.apply(o,a.call(this));(function(i){var n=t.hash(JSON.stringify(i)),o="cc-color-override-"+n,s=t.isPlainObject(i);this.customStyleSelector=s?o:null,s&&function(i,n,o){if(e.customStyles[i])return void++e.customStyles[i].references;var s={},r=n.popup,a=n.button,c=n.highlight;r&&(r.text=r.text?r.text:t.getContrast(r.background),r.link=r.link?r.link:r.text,s[o+".cc-window"]=["color: "+r.text,"background-color: "+r.background],s[o+".cc-revoke"]=["color: "+r.text,"background-color: "+r.background],s[o+" .cc-link,"+o+" .cc-link:active,"+o+" .cc-link:visited"]=["color: "+r.link],a&&(a.text=a.text?a.text:t.getContrast(a.background),a.border=a.border?a.border:"transparent",s[o+" .cc-btn"]=["color: "+a.text,"border-color: "+a.border,"background-color: "+a.background],a.padding&&s[o+" .cc-btn"].push("padding: "+a.padding),"transparent"!=a.background&&(s[o+" .cc-btn:hover, "+o+" .cc-btn:focus"]=["background-color: "+(a.hover||l(a.background))]),c?(c.text=c.text?c.text:t.getContrast(c.background),c.border=c.border?c.border:"transparent",s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+c.text,"border-color: "+c.border,"background-color: "+c.background]):s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+r.text]));var u=document.createElement("style");document.head.appendChild(u),e.customStyles[i]={references:1,element:u.sheet};var h=-1;for(var p in s)s.hasOwnProperty(p)&&u.sheet.insertRule(p+"{"+s[p].join(";")+"}",++h)}(n,i,"."+o);return s}).call(this,this.options.palette);this.customStyleSelector&&o.push(this.customStyleSelector);return o}.call(this).join(" ")).replace("{{children}}",function(){var e={},i=this.options;i.showLink||(i.elements.link="",i.elements.messagelink=i.elements.message);Object.keys(i.elements).forEach(function(n){e[n]=t.interpolateString(i.elements[n],function(e){var t=i.content[e];return e&&"string"==typeof t&&t.length?t:""})});var n=i.compliance[i.type];n||(n=i.compliance.info);e.compliance=t.interpolateString(n,function(t){return e[t]});var o=i.layouts[i.layout];o||(o=i.layouts.basic);return t.interpolateString(o,function(t){return e[t]})}.call(this)),s=this.options.overrideHTML;if("string"==typeof s&&s.length&&(o=s),this.options.static){var r=c.call(this,'
'+o+"
");r.style.display="",this.element=r.firstChild,this.element.style.display="none",t.addClass(this.element,"cc-invisible")}else this.element=c.call(this,o);(function(){var i=this.setStatus.bind(this),n=this.close.bind(this),o=this.options.dismissOnTimeout;"number"==typeof o&&o>=0&&(this.dismissTimeout=window.setTimeout(function(){i(e.status.dismiss),n(!0)},Math.floor(o)));var s=this.options.dismissOnScroll;if("number"==typeof s&&s>=0){var r=function(t){window.pageYOffset>Math.floor(s)&&(i(e.status.dismiss),n(!0),window.removeEventListener("scroll",r),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=r,window.addEventListener("scroll",r))}var a=this.options.dismissOnWindowClick,c=this.options.ignoreClicksFrom;if(a){var l=function(o){for(var s=!1,r=o.path.length,a=c.length,u=0;uo&&(i=!0),i?t.hasClass(n,"cc-active")||t.addClass(n,"cc-active"):t.hasClass(n,"cc-active")&&t.removeClass(n,"cc-active")},200);this.onMouseMove=o,window.addEventListener("mousemove",o)}}}.call(this),this.options.autoOpen&&this.autoOpen()},o.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener("click",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener("scroll",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener("click",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,function(i){if(t.isPlainObject(i)){var n=t.hash(JSON.stringify(i)),o=e.customStyles[n];if(o&&!--o.references){var s=o.element.ownerNode;s&&s.parentNode&&s.parentNode.removeChild(s),e.customStyles[n]=null}}}(this.options.palette),this.options=null},o.prototype.open=function(t){if(this.element)return this.isOpen()||(e.hasTransition?this.fadeIn():this.element.style.display="",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},o.prototype.close=function(t){if(this.element)return this.isOpen()&&(e.hasTransition?this.fadeOut():this.element.style.display="none",t&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},o.prototype.fadeIn=function(){var i=this.element;if(e.hasTransition&&i&&(this.afterTransition&&r.call(this,i),t.hasClass(i,"cc-invisible"))){if(i.style.display="",this.options.static){var n=this.element.clientHeight;this.element.parentNode.style.maxHeight=n+"px"}this.openingTimeout=setTimeout(s.bind(this,i),20)}},o.prototype.fadeOut=function(){var i=this.element;e.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),s.bind(this,i)),t.hasClass(i,"cc-invisible")||(this.options.static&&(this.element.parentNode.style.maxHeight=""),this.afterTransition=r.bind(this,i),i.addEventListener(e.transitionEnd,this.afterTransition),t.addClass(i,"cc-invisible")))},o.prototype.isOpen=function(){return this.element&&""==this.element.style.display&&(!e.hasTransition||!t.hasClass(this.element,"cc-invisible"))},o.prototype.toggleRevokeButton=function(e){this.revokeBtn&&(this.revokeBtn.style.display=e?"":"none")},o.prototype.revokeChoice=function(e){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),e||this.autoOpen()},o.prototype.hasAnswered=function(t){return Object.keys(e.status).indexOf(this.getStatus())>=0},o.prototype.hasConsented=function(t){var i=this.getStatus();return i==e.status.allow||i==e.status.dismiss},o.prototype.autoOpen=function(e){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},o.prototype.setStatus=function(i){var n=this.options.cookie,o=t.getCookie(n.name),s=Object.keys(e.status).indexOf(o)>=0;Object.keys(e.status).indexOf(i)>=0?(t.setCookie(n.name,i,n.expiryDays,n.domain,n.path,n.secure),this.options.onStatusChange.call(this,i,s)):this.clearStatus()},o.prototype.getStatus=function(){return t.getCookie(this.options.cookie.name)},o.prototype.clearStatus=function(){var e=this.options.cookie;t.setCookie(e.name,"",-1,e.domain,e.path)},o}(),e.Location=function(){var e={timeout:5e3,services:["ipinfo"],serviceDefinitions:{ipinfo:function(){return{url:"//ipinfo.io",headers:["Accept: application/json"],callback:function(e,t){try{var i=JSON.parse(t);return i.error?s(i):{code:i.country}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},ipinfodb:function(e){return{url:"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}",isScript:!0,callback:function(e,t){try{var i=JSON.parse(t);return"ERROR"==i.statusCode?s({error:i.statusMessage}):{code:i.countryCode}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},maxmind:function(){return{url:"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js",isScript:!0,callback:function(e){window.geoip2?geoip2.country(function(t){try{e({code:t.country.iso_code})}catch(t){e(s(t))}},function(t){e(s(t))}):e(new Error("Unexpected response format. The downloaded script should have exported `geoip2` to the global scope"))}}}}};function i(i){t.deepExtend(this.options={},e),t.isPlainObject(i)&&t.deepExtend(this.options,i),this.currentServiceIndex=-1}function n(e,t,i){var n,o=document.createElement("script");o.type="text/"+(e.type||"javascript"),o.src=e.src||e,o.async=!1,o.onreadystatechange=o.onload=function(){var e=o.readyState;clearTimeout(n),t.done||e&&!/loaded|complete/.test(e)||(t.done=!0,t(),o.onreadystatechange=o.onload=null)},document.body.appendChild(o),n=setTimeout(function(){t.done=!0,t(),o.onreadystatechange=o.onload=null},i)}function o(e,t,i,n,o){var s=new(window.XMLHttpRequest||window.ActiveXObject)("MSXML2.XMLHTTP.3.0");if(s.open(n?"POST":"GET",e,1),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),Array.isArray(o))for(var r=0,a=o.length;r3&&t(s)}),s.send(n)}function s(e){return new Error("Error ["+(e.code||"UNKNOWN")+"]: "+e.error)}return i.prototype.getNextService=function(){var e;do{e=this.getServiceByIdx(++this.currentServiceIndex)}while(this.currentServiceIndex=0,revokable:t.revokable.indexOf(e)>=0,explicitAction:t.explicitAction.indexOf(e)>=0}},i.prototype.applyLaw=function(e,t){var i=this.get(t);return i.hasLaw||(e.enabled=!1,"function"==typeof e.onNoCookieLaw&&e.onNoCookieLaw(t,i)),this.options.regionalLaw&&(i.revokable&&(e.revokable=!0),i.explicitAction&&(e.dismissOnScroll=!1,e.dismissOnTimeout=!1)),e},i}(),e.initialise=function(i,n,o){var s=new e.Law(i.law);n||(n=function(){}),o||(o=function(){});var r=Object.keys(e.status),a=t.getCookie("cookieconsent_status");r.indexOf(a)>=0?n(new e.Popup(i)):e.getCountryCode(i,function(t){delete i.law,delete i.location,t.code&&(i=s.applyLaw(i,t.code)),n(new e.Popup(i))},function(t){delete i.law,delete i.location,o(t,new e.Popup(i))})},e.getCountryCode=function(t,i,n){t.law&&t.law.countryCode?i({code:t.law.countryCode}):t.location?new e.Location(t.location).locate(function(e){i(e||{})},n):i({})},e.utils=t,e.hasInitialised=!0,window.cookieconsent=e}}(window.cookieconsent||{}); \ No newline at end of file diff --git a/lib/fontawesome-free/all.min.css b/lib/fontawesome-free/all.min.css new file mode 100644 index 00000000..5dddbd50 --- /dev/null +++ b/lib/fontawesome-free/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-child-rifle:before{content:"\e4e0"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/lib/katex/auto-render.min.js b/lib/katex/auto-render.min.js new file mode 100644 index 00000000..74f07c2f --- /dev/null +++ b/lib/katex/auto-render.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;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 .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.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 .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.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;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.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{position:relative;width:0}.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{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.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;min-width:1px}.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{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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.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 .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.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;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/lib/katex/katex.min.js b/lib/katex/katex.min.js new file mode 100644 index 00000000..f5fc1c15 --- /dev/null +++ b/lib/katex/katex.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Qn}});var r=function e(t,r){this.position=void 0;var n,a="KaTeX parse error: "+t,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;n=i.start;var s=i.end;n===o.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332");a+=(n>15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var m=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:c(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[y[this.id]]},t.text=function(){return p[b[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],y=[1,1,3,3,5,5,7,7],b=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=q[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return q[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();O.BASESIZE=6;var E=O,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},V=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},P=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},F=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=F(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,ye,"\u2208","\\in",!0),ie(oe,le,ye,"\ue020","\\@not"),ie(oe,le,ye,"\u2282","\\subset",!0),ie(oe,le,ye,"\u2283","\\supset",!0),ie(oe,le,ye,"\u2286","\\subseteq",!0),ie(oe,le,ye,"\u2287","\\supseteq",!0),ie(oe,he,ye,"\u2288","\\nsubseteq",!0),ie(oe,he,ye,"\u2289","\\nsupseteq",!0),ie(oe,le,ye,"\u22a8","\\models"),ie(oe,le,ye,"\u2190","\\leftarrow",!0),ie(oe,le,ye,"\u2264","\\le"),ie(oe,le,ye,"\u2264","\\leq",!0),ie(oe,le,ye,"<","\\lt",!0),ie(oe,le,ye,"\u2192","\\rightarrow",!0),ie(oe,le,ye,"\u2192","\\to"),ie(oe,he,ye,"\u2271","\\ngeq",!0),ie(oe,he,ye,"\u2270","\\nleq",!0),ie(oe,le,be,"\xa0","\\ "),ie(oe,le,be,"\xa0","\\space"),ie(oe,le,be,"\xa0","\\nobreakspace"),ie(se,le,be,"\xa0","\\ "),ie(se,le,be,"\xa0"," "),ie(se,le,be,"\xa0","\\space"),ie(se,le,be,"\xa0","\\nobreakspace"),ie(oe,le,be,null,"\\nobreak"),ie(oe,le,be,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,me,"\u22bc","\\barwedge",!0),ie(oe,he,me,"\u22bb","\\veebar",!0),ie(oe,le,me,"\u2299","\\odot",!0),ie(oe,le,me,"\u2295","\\oplus",!0),ie(oe,le,me,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,me,"\u2298","\\oslash",!0),ie(oe,he,me,"\u229a","\\circledcirc",!0),ie(oe,he,me,"\u22a1","\\boxdot",!0),ie(oe,le,me,"\u25b3","\\bigtriangleup"),ie(oe,le,me,"\u25bd","\\bigtriangledown"),ie(oe,le,me,"\u2020","\\dagger"),ie(oe,le,me,"\u22c4","\\diamond"),ie(oe,le,me,"\u22c6","\\star"),ie(oe,le,me,"\u25c3","\\triangleleft"),ie(oe,le,me,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,ye,"\u2191","\\uparrow",!0),ie(oe,le,ye,"\u21d1","\\Uparrow",!0),ie(oe,le,ye,"\u2193","\\downarrow",!0),ie(oe,le,ye,"\u21d3","\\Downarrow",!0),ie(oe,le,ye,"\u2195","\\updownarrow",!0),ie(oe,le,ye,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,ce,"\u02ca","\\acute"),ie(oe,le,ce,"\u02cb","\\grave"),ie(oe,le,ce,"\xa8","\\ddot"),ie(oe,le,ce,"~","\\tilde"),ie(oe,le,ce,"\u02c9","\\bar"),ie(oe,le,ce,"\u02d8","\\breve"),ie(oe,le,ce,"\u02c7","\\check"),ie(oe,le,ce,"^","\\hat"),ie(oe,le,ce,"\u20d7","\\vec"),ie(oe,le,ce,"\u02d9","\\dot"),ie(oe,le,ce,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,ce,"\u02ca","\\'"),ie(se,le,ce,"\u02cb","\\`"),ie(se,le,ce,"\u02c6","\\^"),ie(se,le,ce,"\u02dc","\\~"),ie(se,le,ce,"\u02c9","\\="),ie(se,le,ce,"\u02d8","\\u"),ie(se,le,ce,"\u02d9","\\."),ie(se,le,ce,"\xb8","\\c"),ie(se,le,ce,"\u02da","\\r"),ie(se,le,ce,"\u02c7","\\v"),ie(se,le,ce,"\xa8",'\\"'),ie(se,le,ce,"\u02dd","\\H"),ie(se,le,ce,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Fe(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=F(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var c=ct(["katex-html"],o);if(c.setAttribute("aria-hidden","true"),i){var m=i.children[0];m.style.height=F(c.height+c.depth),c.depth&&(m.style.verticalAlign=F(-c.depth))}return c}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",F(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},Nt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),N(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},qt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(qt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ht(e,t,r,n,a){var i,o=qt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),c=new Tt.MathNode("math",[h]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var m=a?"katex":"katex-mathml";return Ke.makeSpan([m],[c])}var Ot=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ot(r);if("mathml"===r.output)return Ht(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ht(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Vt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Pt=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:F(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=F(o),i},Ft=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var c=new J(i),m=new K([c],{width:"100%",height:F(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[m],t),minWidth:0,height:o}}var u,p,d,f=[],g=Vt[n],v=g[0],y=g[1],b=g[2],x=b/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=F(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,c="\\c"===n.label,m=c?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+F(2*o)+")",marginLeft:F(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,c&&(m+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),m=i.height);var f=o;d||(f-=p/2),h.style.left=F(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-m},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Ft(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Ft(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,c=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(c-=i.depth),r){var m=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:m}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Ft(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt=Ke.makeSpan;function Kt(e,t){var r=ft(e.body,t,!0);return Zt([e.mclass],r,t)}function Jt(e,t){var r,n=qt(e.body,t);return"minner"===e.mclass?r=new Tt.MathNode("mpadded",n):"mord"===e.mclass?e.isCharacterBox?(r=n[0]).type="mi":r=new Tt.MathNode("mi",n):(e.isCharacterBox?(r=n[0]).type="mo":r=new Tt.MathNode("mo",n),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ot({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ht(a),isCharacterBox:l.isCharacterBox(a)}},htmlBuilder:Kt,mathmlBuilder:Jt});var Qt=function(e){var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};ot({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler:function(e,t){return{type:"mclass",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),ot({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler:function(e,t){var r,n=e.parser,a=e.funcName,i=t[1],o=t[0];r="\\stackrel"!==a?Qt(i):"mrel";var s={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==a,body:ht(i)},h={type:"supsub",mode:o.mode,base:s,sup:"\\underset"===a?null:o,sub:"\\underset"===a?o:null};return{type:"mclass",mode:n.mode,mclass:r,body:[h],isCharacterBox:l.isCharacterBox(h)}},htmlBuilder:Kt,mathmlBuilder:Jt}),ot({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"pmb",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[0])}},htmlBuilder:function(e,t){var r=ft(e.body,t,!0),n=Ke.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder:function(e,t){var r=qt(e.body,t),n=new Tt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var er={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},tr=function(e){return"textord"===e.type&&"@"===e.text};function rr(e,t,r){var n=er[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=F(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var nr=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},ar=function(e,t){var r=qt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=r[0],i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=F(P(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",F(P(e.size,t)))),r}});var ir={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},or=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},sr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(ir[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=ir[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===ir[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return sr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return sr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var lr=function(e,t,r){var n=N(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},hr=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},cr=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=F(a),e.height-=a,e.depth+=a},mr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=hr(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&cr(s,n,x.TEXT),s},ur=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},pr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:F(n),height:F(t),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=F(t),o.style.width=F(n),{type:"elem",elem:o}},dr={type:"kern",size:-.008},fr=["|","\\lvert","\\rvert","\\vert"],gr=["\\|","\\lVert","\\rVert","\\Vert"],vr=function(e,t,r,n,a,i){var o,s,h,c,m="",u=0;o=h=c=e,s=null;var p="Size1-Regular";"\\uparrow"===e?h=c="\u23d0":"\\Uparrow"===e?h=c="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",c="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",c="\\Downarrow"):l.contains(fr,e)?(h="\u2223",m="vert",u=333):l.contains(gr,e)?(h="\u2225",m="doublevert",u=556):"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",c="\u23a3",p="Size4-Regular",m="lbrack",u=667):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",c="\u23a6",p="Size4-Regular",m="rbrack",u=667):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",c="\u23a3",p="Size4-Regular",m="lfloor",u=667):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=c="\u23a2",p="Size4-Regular",m="lceil",u=667):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",c="\u23a6",p="Size4-Regular",m="rfloor",u=667):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=c="\u23a5",p="Size4-Regular",m="rceil",u=667):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",c="\u239d",p="Size4-Regular",m="lparen",u=875):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",c="\u23a0",p="Size4-Regular",m="rparen",u=875):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",c="\u23a9",h="\u23aa",p="Size4-Regular");var d=lr(o,p,a),f=d.height+d.depth,g=lr(h,p,a),v=g.height+g.depth,y=lr(c,p,a),b=y.height+y.depth,w=0,k=1;if(null!==s){var S=lr(s,p,a);w=S.height+S.depth,k=2}var M=f+b+w,z=M+Math.max(0,Math.ceil((t-M)/(k*v)))*k*v,A=n.fontMetrics().axisHeight;r&&(A*=n.sizeMultiplier);var T=z/2-A,B=[];if(m.length>0){var C=z-f-b,N=Math.round(1e3*z),q=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(m,Math.round(1e3*C)),I=new J(m,q),R=(u/1e3).toFixed(3)+"em",H=(N/1e3).toFixed(3)+"em",O=new K([I],{width:R,height:H,viewBox:"0 0 "+u+" "+N}),E=Ke.makeSvgSpan([],[O],n);E.height=N/1e3,E.style.width=R,E.style.height=H,B.push({type:"elem",elem:E})}else{if(B.push(ur(c,p,a)),B.push(dr),null===s){var L=z-f-b+.016;B.push(pr(h,L,n))}else{var D=(z-f-b-w)/2+.016;B.push(pr(h,D,n)),B.push(dr),B.push(ur(s,p,a)),B.push(dr),B.push(pr(h,D,n))}B.push(dr),B.push(ur(o,p,a))}var V=n.havingBaseStyle(x.TEXT),P=Ke.makeVList({positionType:"bottom",positionData:T,children:B},V);return hr(Ke.makeSpan(["delimsizing","mult"],[P],V),x.TEXT,n,i)},yr=.08,br=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:F(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},xr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],wr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],kr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Sr=[0,1.2,1.8,2.4,3],Mr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],zr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],Ar=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Tr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Br=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},Cr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(kr,e)?Mr:l.contains(xr,e)?Ar:zr;var s=Br(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=hr(o,t,n,i);return r&&cr(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?mr(e,s.size,r,n,a,i):vr(e,t,r,n,a,i)},Nr={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Br("\\surd",e*a.sizeMultiplier,Ar,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,c=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=br("sqrtMain",l=(1+s+yr)/o,c=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(c=1080*Sr[i.size],h=(Sr[i.size]+s)/o,l=(Sr[i.size]+s+yr)/o,(r=br("sqrtSize"+i.size,l,c,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+yr,h=e+s,c=Math.floor(1e3*e+s)+80,(r=br("sqrtTall",l,c,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=F(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(xr,e)||l.contains(kr,e))return mr(e,t,!1,r,a,i);if(l.contains(wr,e))return vr(e,Sr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:Sr,customSizedDelim:Cr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return Cr(e,h,!0,n,a,i)}},qr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Ir=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Rr(e,t){var r=Xt(e);if(r&&l.contains(Ir,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function Hr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Rr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:qr[e.funcName].size,mclass:qr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Nr.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=F(Nr.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Rr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Rr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){Hr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Lr={};function Dr(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!m)&&g.pop(),y.length0&&(b+=.25),c.push({pos:b,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=y)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,b+=S,z.pos=b,b+=M+B,h[r]=z,w(o[r+1])}var C,N,q=b/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],H=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(V.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=F(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,m),J=Ke.makeLineSpan("hdashline",t,m),Q=[{type:"elem",elem:h,shift:0}];c.length>0;){var ee=c.pop(),te=ee.pos-q;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===H.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:H},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},$r={c:"center ",l:"left ",r:"right "},Zr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(m+="top ",g=1),"separator"===p[p.length-1].type&&(m+="bottom ",v-=1);for(var y=g;y0?"left ":"",m+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Wr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Xr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var c="",m=0;m0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Dr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Wr(e.parser,a,_r(e.envName))},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Wr(e.parser,a,_r(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Wr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},_r(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Yr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Xr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Yr(e);var t={autoTag:Xr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Yr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[m]);for(var d=0;d<2;d++){for(var f=!0,g=m+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*m:7*m,d=t.fontMetrics().denom1):(c>0?(u=t.fontMetrics().num2,p=m):(u=t.fontMetrics().num3,p=3*m),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*c)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,c=Ut(t[2],"size"),m=null;r=!!c.isBlank||(m=c.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:m,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Ft(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=P(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=P(e.width,t));var i={height:F(r+n)};a>0&&(i.width=F(a)),n>0&&(i.verticalAlign=F(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=P(e.height,t),a=0;if(e.totalheight.number>0&&(a=P(e.totalheight,t)-n,r.setAttribute("valign",F(-a))),r.setAttribute("height",F(n+a)),e.width.number>0){var i=P(e.width,t);r.setAttribute("width",F(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=P(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=F(a.height+a.depth),a.depth&&(i.style.verticalAlign=F(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var cn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=cn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=cn(e,t);return It(r,t)}});var mn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,c,m=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;c=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[c];if(s&&0!==i&&!m){var y=Ke.makeSpan(["mspace"],[],n);y.style.marginRight=F(i),v.unshift(y)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var c=h?"Size2-Regular":"Size1-Regular",m="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(m=a.name.slice(1),a.name="oiint"===m?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,c,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),m.length>0){var u=o.italic,p=Ke.staticSvg(m+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+m,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",F(a)):(s.setAttribute("height",F(a)),s.setAttribute("depth",F(-a))),s.setAttribute("voffset",F(a)),s}});var bn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:bn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:bn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return yn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=qt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",F(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=F(c);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),y=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[y,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return yn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=qt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,c=wt(o,t),m=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=c.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=c.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?m.sup1:t.style.cramped?m.sup3:m.sup2;var v,y=t.sizeMultiplier,b=F(.5/m.ptPerEm/y),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(c instanceof Z||k)&&(w=F(-c.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:b,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:b}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,m.sub1,a.height-.8*m.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:b}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*m.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:b}]},t)}var T=bt(c,"right")||"mord";return Ke.makeSpan([T],[c,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=Nt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=Nt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=Nt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=Nn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),On=Vr;Pr("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Pr("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Pr("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Pr("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Pr("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Pr("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Pr("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var En={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Pr("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=En[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=En[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Pr("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Dn?t=Dn[r]:("\\not"===r.slice(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Vn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Pr("\\dotso",(function(e){return e.future().text in Vn?"\\ldots\\,":"\\ldots"})),Pr("\\dotsc",(function(e){var t=e.future().text;return t in Vn&&","!==t?"\\ldots\\,":"\\ldots"})),Pr("\\cdots",(function(e){return e.future().text in Vn?"\\@cdots\\,":"\\@cdots"})),Pr("\\dotsb","\\cdots"),Pr("\\dotsm","\\cdots"),Pr("\\dotsi","\\!\\cdots"),Pr("\\dotsx","\\ldots\\,"),Pr("\\DOTSI","\\relax"),Pr("\\DOTSB","\\relax"),Pr("\\DOTSX","\\relax"),Pr("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Pr("\\,","\\tmspace+{3mu}{.1667em}"),Pr("\\thinspace","\\,"),Pr("\\>","\\mskip{4mu}"),Pr("\\:","\\tmspace+{4mu}{.2222em}"),Pr("\\medspace","\\:"),Pr("\\;","\\tmspace+{5mu}{.2777em}"),Pr("\\thickspace","\\;"),Pr("\\!","\\tmspace-{3mu}{.1667em}"),Pr("\\negthinspace","\\!"),Pr("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Pr("\\negthickspace","\\tmspace-{5mu}{.277em}"),Pr("\\enspace","\\kern.5em "),Pr("\\enskip","\\hskip.5em\\relax"),Pr("\\quad","\\hskip1em\\relax"),Pr("\\qquad","\\hskip2em\\relax"),Pr("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Pr("\\tag@paren","\\tag@literal{({#1})}"),Pr("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Pr("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Pr("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Pr("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Pr("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Pr("\\newline","\\\\\\relax"),Pr("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Pn=F(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Pr("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Pn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Pr("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Pn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Pr("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Pr("\\@hspace","\\hskip #1\\relax"),Pr("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Pr("\\ordinarycolon",":"),Pr("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Pr("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Pr("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Pr("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Pr("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Pr("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Pr("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Pr("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Pr("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Pr("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Pr("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Pr("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Pr("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Pr("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Pr("\u2237","\\dblcolon"),Pr("\u2239","\\eqcolon"),Pr("\u2254","\\coloneqq"),Pr("\u2255","\\eqqcolon"),Pr("\u2a74","\\Coloneqq"),Pr("\\ratio","\\vcentcolon"),Pr("\\coloncolon","\\dblcolon"),Pr("\\colonequals","\\coloneqq"),Pr("\\coloncolonequals","\\Coloneqq"),Pr("\\equalscolon","\\eqqcolon"),Pr("\\equalscoloncolon","\\Eqqcolon"),Pr("\\colonminus","\\coloneq"),Pr("\\coloncolonminus","\\Coloneq"),Pr("\\minuscolon","\\eqcolon"),Pr("\\minuscoloncolon","\\Eqcolon"),Pr("\\coloncolonapprox","\\Colonapprox"),Pr("\\coloncolonsim","\\Colonsim"),Pr("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Pr("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Pr("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Pr("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Pr("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Pr("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Pr("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Pr("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Pr("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Pr("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Pr("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Pr("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Pr("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Pr("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Pr("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Pr("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Pr("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Pr("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Pr("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Pr("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Pr("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Pr("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Pr("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Pr("\\imath","\\html@mathml{\\@imath}{\u0131}"),Pr("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Pr("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Pr("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Pr("\u27e6","\\llbracket"),Pr("\u27e7","\\rrbracket"),Pr("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Pr("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Pr("\u2983","\\lBrace"),Pr("\u2984","\\rBrace"),Pr("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Pr("\u29b5","\\minuso"),Pr("\\darr","\\downarrow"),Pr("\\dArr","\\Downarrow"),Pr("\\Darr","\\Downarrow"),Pr("\\lang","\\langle"),Pr("\\rang","\\rangle"),Pr("\\uarr","\\uparrow"),Pr("\\uArr","\\Uparrow"),Pr("\\Uarr","\\Uparrow"),Pr("\\N","\\mathbb{N}"),Pr("\\R","\\mathbb{R}"),Pr("\\Z","\\mathbb{Z}"),Pr("\\alef","\\aleph"),Pr("\\alefsym","\\aleph"),Pr("\\Alpha","\\mathrm{A}"),Pr("\\Beta","\\mathrm{B}"),Pr("\\bull","\\bullet"),Pr("\\Chi","\\mathrm{X}"),Pr("\\clubs","\\clubsuit"),Pr("\\cnums","\\mathbb{C}"),Pr("\\Complex","\\mathbb{C}"),Pr("\\Dagger","\\ddagger"),Pr("\\diamonds","\\diamondsuit"),Pr("\\empty","\\emptyset"),Pr("\\Epsilon","\\mathrm{E}"),Pr("\\Eta","\\mathrm{H}"),Pr("\\exist","\\exists"),Pr("\\harr","\\leftrightarrow"),Pr("\\hArr","\\Leftrightarrow"),Pr("\\Harr","\\Leftrightarrow"),Pr("\\hearts","\\heartsuit"),Pr("\\image","\\Im"),Pr("\\infin","\\infty"),Pr("\\Iota","\\mathrm{I}"),Pr("\\isin","\\in"),Pr("\\Kappa","\\mathrm{K}"),Pr("\\larr","\\leftarrow"),Pr("\\lArr","\\Leftarrow"),Pr("\\Larr","\\Leftarrow"),Pr("\\lrarr","\\leftrightarrow"),Pr("\\lrArr","\\Leftrightarrow"),Pr("\\Lrarr","\\Leftrightarrow"),Pr("\\Mu","\\mathrm{M}"),Pr("\\natnums","\\mathbb{N}"),Pr("\\Nu","\\mathrm{N}"),Pr("\\Omicron","\\mathrm{O}"),Pr("\\plusmn","\\pm"),Pr("\\rarr","\\rightarrow"),Pr("\\rArr","\\Rightarrow"),Pr("\\Rarr","\\Rightarrow"),Pr("\\real","\\Re"),Pr("\\reals","\\mathbb{R}"),Pr("\\Reals","\\mathbb{R}"),Pr("\\Rho","\\mathrm{P}"),Pr("\\sdot","\\cdot"),Pr("\\sect","\\S"),Pr("\\spades","\\spadesuit"),Pr("\\sub","\\subset"),Pr("\\sube","\\subseteq"),Pr("\\supe","\\supseteq"),Pr("\\Tau","\\mathrm{T}"),Pr("\\thetasym","\\vartheta"),Pr("\\weierp","\\wp"),Pr("\\Zeta","\\mathrm{Z}"),Pr("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Pr("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Pr("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Pr("\\bra","\\mathinner{\\langle{#1}|}"),Pr("\\ket","\\mathinner{|{#1}\\rangle}"),Pr("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Pr("\\Bra","\\left\\langle#1\\right|"),Pr("\\Ket","\\left|#1\\right\\rangle");var Fn=function(e){return function(t){var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=function(t){return function(r){e&&(r.macros.set("|",o),a.length&&r.macros.set("\\|",s));var i=t;!t&&a.length&&("|"===r.future().text&&(r.popToken(),i=!0));return{tokens:i?a:n,numArgs:0}}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,c=t.expandTokens([].concat(i,h,r));return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}}};Pr("\\bra@ket",Fn(!1)),Pr("\\bra@set",Fn(!0)),Pr("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Pr("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Pr("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Pr("\\angln","{\\angl n}"),Pr("\\blue","\\textcolor{##6495ed}{#1}"),Pr("\\orange","\\textcolor{##ffa500}{#1}"),Pr("\\pink","\\textcolor{##ff00af}{#1}"),Pr("\\red","\\textcolor{##df0030}{#1}"),Pr("\\green","\\textcolor{##28ae7b}{#1}"),Pr("\\gray","\\textcolor{gray}{#1}"),Pr("\\purple","\\textcolor{##9d38bd}{#1}"),Pr("\\blueA","\\textcolor{##ccfaff}{#1}"),Pr("\\blueB","\\textcolor{##80f6ff}{#1}"),Pr("\\blueC","\\textcolor{##63d9ea}{#1}"),Pr("\\blueD","\\textcolor{##11accd}{#1}"),Pr("\\blueE","\\textcolor{##0c7f99}{#1}"),Pr("\\tealA","\\textcolor{##94fff5}{#1}"),Pr("\\tealB","\\textcolor{##26edd5}{#1}"),Pr("\\tealC","\\textcolor{##01d1c1}{#1}"),Pr("\\tealD","\\textcolor{##01a995}{#1}"),Pr("\\tealE","\\textcolor{##208170}{#1}"),Pr("\\greenA","\\textcolor{##b6ffb0}{#1}"),Pr("\\greenB","\\textcolor{##8af281}{#1}"),Pr("\\greenC","\\textcolor{##74cf70}{#1}"),Pr("\\greenD","\\textcolor{##1fab54}{#1}"),Pr("\\greenE","\\textcolor{##0d923f}{#1}"),Pr("\\goldA","\\textcolor{##ffd0a9}{#1}"),Pr("\\goldB","\\textcolor{##ffbb71}{#1}"),Pr("\\goldC","\\textcolor{##ff9c39}{#1}"),Pr("\\goldD","\\textcolor{##e07d10}{#1}"),Pr("\\goldE","\\textcolor{##a75a05}{#1}"),Pr("\\redA","\\textcolor{##fca9a9}{#1}"),Pr("\\redB","\\textcolor{##ff8482}{#1}"),Pr("\\redC","\\textcolor{##f9685d}{#1}"),Pr("\\redD","\\textcolor{##e84d39}{#1}"),Pr("\\redE","\\textcolor{##bc2612}{#1}"),Pr("\\maroonA","\\textcolor{##ffbde0}{#1}"),Pr("\\maroonB","\\textcolor{##ff92c6}{#1}"),Pr("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Pr("\\maroonD","\\textcolor{##ca337c}{#1}"),Pr("\\maroonE","\\textcolor{##9e034e}{#1}"),Pr("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Pr("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Pr("\\purpleC","\\textcolor{##aa87ff}{#1}"),Pr("\\purpleD","\\textcolor{##7854ab}{#1}"),Pr("\\purpleE","\\textcolor{##543b78}{#1}"),Pr("\\mintA","\\textcolor{##f5f9e8}{#1}"),Pr("\\mintB","\\textcolor{##edf2df}{#1}"),Pr("\\mintC","\\textcolor{##e0e5cc}{#1}"),Pr("\\grayA","\\textcolor{##f6f7f7}{#1}"),Pr("\\grayB","\\textcolor{##f0f1f2}{#1}"),Pr("\\grayC","\\textcolor{##e3e5e6}{#1}"),Pr("\\grayD","\\textcolor{##d6d8da}{#1}"),Pr("\\grayE","\\textcolor{##babec2}{#1}"),Pr("\\grayF","\\textcolor{##888d93}{#1}"),Pr("\\grayG","\\textcolor{##626569}{#1}"),Pr("\\grayH","\\textcolor{##3b3e40}{#1}"),Pr("\\grayI","\\textcolor{##21242c}{#1}"),Pr("\\kaBlue","\\textcolor{##314453}{#1}"),Pr("\\kaGreen","\\textcolor{##71B307}{#1}");var Gn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Un=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Hn(On,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Rn(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Gr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof Gr)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Gr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof Gr&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Rn(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||qn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Gn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:qn.hasOwnProperty(e)&&!qn[e].primitive},e}(),Yn=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,Xn=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Wn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},_n={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},jn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Un(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Gr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&qn[a.text]&&qn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Fr.range(e);if(te.hasOwnProperty(l)){var c=l;s={type:"atom",mode:this.mode,family:c,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Fr.range(e),text:t}}if(this.consume(),o)for(var m=0;m=0;i--)t[i].loc.start>o&&(n+=" ",o=t[i].loc.start),n+=t[i].text,o+=t[i].text.length;return r.go(a.go(n,e))},a={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",r={};r.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var i=10,c=[];;){n!==t?(i=10,n=t):i--;var u=a.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(i<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return a.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return a.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=a.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return a.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return a.concatArray(n,this.output(t)),a.concatArray(n,a.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=a.patterns.match_("orbital",t.o||""),r=a.patterns.match_("one lowercase greek letter $",t.o||""),i=a.patterns.match_("one lowercase latin letter $",t.o||""),c=a.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||r||i||c);!u||t.a||t.b||t.p||t.d||t.q||o||!i||(t.o="$"+t.o+"$");var p=[];return u?(a.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=a.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(a.concatArray(p,a.actions["d="](t,e)),a.concatArray(p,this.output(t))):(a.concatArray(p,this.output(t)),a.concatArray(p,a.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:a.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,r,i;t.r?(r="M"===t.rdt?a.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:a.go(t.rd),i="M"===t.rqt?a.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:a.go(t.rq),o={type_:"arrow",r:t.r,rd:r,rq:i}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&a.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:a.go(t.a,"a"),b:a.go(t.b,"bd"),p:a.go(t.p,"pq"),o:a.go(t.o,"o"),q:a.go(t.q,"pq"),d:a.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return a.concatArray(n,a.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:a.go(e[0]),p2:a.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:a.go(e[0]),p2:a.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:a.go(e[0]),p2:a.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:a.go(e[0]),p2:a.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:a.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:a.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"pq")}}}},bd:{transitions:a.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"bd")}}}},oxidation:{transitions:a.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:a.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(a.concatArray(n,a.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?a.concatArray(n,a.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),a.concatArray(n,a.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=a.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=a.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var r={d:a.go(t.d,"pu"),q:a.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:r.d,p2:r.q}:(e=r.d,r.d.length>1||r.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),a.concatArray(e,r.q))}else e=a.go(t.d,"pu-2");for(var i in t)delete t[i];return e}}},"pu-2":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=a.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?a.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:a.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}(),a=a.default}()})); \ No newline at end of file diff --git a/lib/lightgallery/fonts/lg.svg b/lib/lightgallery/fonts/lg.svg new file mode 100644 index 00000000..fe8b0756 --- /dev/null +++ b/lib/lightgallery/fonts/lg.svg @@ -0,0 +1,54 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 2, + "minorVersion": 0, + "fontURL": "", + "copyright": "", + "license": "", + "licenseURL": "", + "description": "Font generated by IcoMoon.", + "version": "Version 2.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg" +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/lightgallery/fonts/lg.ttf b/lib/lightgallery/fonts/lg.ttf new file mode 100644 index 00000000..825f4832 Binary files /dev/null and b/lib/lightgallery/fonts/lg.ttf differ diff --git a/lib/lightgallery/fonts/lg.woff b/lib/lightgallery/fonts/lg.woff new file mode 100644 index 00000000..fd02a6f4 Binary files /dev/null and b/lib/lightgallery/fonts/lg.woff differ diff --git a/lib/lightgallery/fonts/lg.woff2 b/lib/lightgallery/fonts/lg.woff2 new file mode 100644 index 00000000..2c2e2892 Binary files /dev/null and b/lib/lightgallery/fonts/lg.woff2 differ diff --git a/lib/lightgallery/images/loading.gif b/lib/lightgallery/images/loading.gif new file mode 100644 index 00000000..4744c455 Binary files /dev/null and b/lib/lightgallery/images/loading.gif differ diff --git a/lib/sharer/sharer.min.js b/lib/sharer/sharer.min.js new file mode 100644 index 00000000..953a4517 --- /dev/null +++ b/lib/sharer/sharer.min.js @@ -0,0 +1 @@ +(function(m,r){"use strict";var s=function(t){this.elem=t};s.init=function(){var t=r.querySelectorAll("[data-sharer]"),e,a=t.length;for(e=0;e0?"?":"";for(r=0;rArray.isArray(e),t=t=>e(t)?t:[t];const n=e=>Array.from(e),r=e=>document.createTextNode(e);let i=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(r(t),e)})),void e.remove();i(e)})),e);const a=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,i(t.body)},o="data-typeit-id",s="ti-cursor",l={started:!1,completed:!1,frozen:!1,destroyed:!1},u={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},c=`[${o}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;function d(e,t=!1,n=!1){let r,i=e.querySelector(`.${s}`),a=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(i&&n){if(e.classList?.contains(s))return NodeFilter.FILTER_ACCEPT;if(i.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(s)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),o=[];for(;r=a.nextNode();)r.originalParent||(r.originalParent=r.parentNode),o.push(r);return t?o.reverse():o}function f(e,t=!0){return t?d(a(e)):n(e).map(r)}const h=e=>document.createElement(e),y=(e,t="")=>{let n=h("style");n.id=t,n.appendChild(r(e)),document.head.appendChild(n)},p=t=>(e(t)||(t=[t/2,t/2]),t),m=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let g=e=>e/2;const b=e=>"value"in e;let w=e=>"function"==typeof e?e():e;const T=e=>Number.isInteger(e);let v=(e,t=document,n=!1)=>t["querySelector"+(n?"All":"")](e);const E=(e,t)=>Object.assign({},e,t);let P={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};const S=(e,t)=>new Array(t).fill(e),N=({queueItems:e,selector:t,cursorPosition:n,to:r})=>{if(T(t))return-1*t;let i=new RegExp("END","i").test(r),a=t?[...e].reverse().findIndex((({char:e})=>{let n=e.parentElement,r=n.matches(t);return!(!i||!r)||r&&n.firstChild.isSameNode(e)})):-1;return a<0&&(a=i?0:e.length-1),a-n+(i?0:1)};let L=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),C=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),D=({cursor:e,frames:t,options:n})=>{let r=e.animate(t,n);return r.pause(),r.id=e.dataset.tiAnimationId,L((()=>{L((()=>{r.play()}))})),r},I=e=>e.func?.call(null),M=async({index:e,queueItems:t,wait:n,cursor:r,cursorOptions:i})=>{let a=t[e][1],o=[],s=e,l=a,u=()=>l&&!l.delay,c=a.shouldPauseCursor()&&i.autoPause;for(;u();)o.push(l),u()&&s++,l=t[s]?t[s][1]:null;if(o.length)return await L((async()=>{for(let e of o)await I(e)})),s-1;let d,f=C(r);return f&&(d={...f.effect.getComputedTiming(),delay:c?i.autoPauseDelay:0}),await n((async()=>{f&&c&&f.cancel(),await L((()=>{I(a)}))}),a.delay),await(({cursor:e,options:t,cursorOptions:n})=>{if(!e||!n)return;let r,i=C(e);i&&(t.delay=i.effect.getComputedTiming().delay,r=i.currentTime,i.cancel());let a=D({cursor:e,frames:n.animation.frames,options:t});return r&&(a.currentTime=r),a})({cursor:r,options:d,cursorOptions:i}),e};return function(e,r={}){let L=async(e,t,n=!1)=>{K.frozen&&await new Promise((e=>{this.unfreeze=()=>{K.frozen=!1,e()}})),n||await Y.beforeStep(this),await((e,t,n)=>new Promise((r=>{n.push(setTimeout((async()=>{await e(),r()}),t||0))})))(e,t,W),n||await Y.afterStep(this)},C=(e,t)=>M({index:e,queueItems:t,wait:L,cursor:ne,cursorOptions:Y.cursor}),I=e=>((e,t)=>{if(!e)return;let n=e.parentNode;(n.childNodes.length>1||n.isSameNode(t)?e:n).remove()})(e,J),x=()=>b(J),A=(e=0)=>function(e){let{speed:t,deleteSpeed:n,lifeLike:r}=e;return n=null!==n?n:t/3,r?[m(t,g(t)),m(n,g(n))]:[t,n]}(Y)[e],$=()=>(e=>b(e)?n(e.value):d(e,!0).filter((e=>!(e.childNodes.length>0))))(J),H=(e,t)=>(ee.add(e),((e={})=>{let t=e.delay;t&&ee.add({delay:t})})(t),this),O=()=>G??X,F=(e={})=>[{func:()=>j(e)},{func:()=>j(Y)}],k=e=>{let t=Y.nextStringDelay;ee.add([{delay:t[0]},...e,{delay:t[1]}])},R=async()=>{if(!x()&&ne&&J.appendChild(ne),te){((e,t)=>{let n=`[${o}='${e}'] .${s}`,r=getComputedStyle(t),i=Object.entries(P).reduce(((e,[t,n])=>`${e} ${t}: var(--ti-cursor-${t}, ${n||r[t]});`),"");y(`${n} { display: inline-block; width: 0; ${i} }`,e)})(Z,J),ne.dataset.tiAnimationId=Z;let{animation:e}=Y.cursor,{frames:t,options:n}=e;D({frames:t,cursor:ne,options:{duration:Y.cursorSpeed,...n}})}},q=()=>{let e=Y.strings.filter((e=>!!e));e.forEach(((t,n)=>{if(this.type(t),n+1===e.length)return;let r=Y.breakLines?[{func:()=>_(h("BR")),typeable:!0}]:S({func:Q,delay:A(1)},ee.getTypeable().length);k(r)}))},z=async(e=!0)=>{K.started=!0;let t=t=>{ee.done(t,!e)};try{let n=[...ee.getQueue()];for(let e=0;ee+t)).forEach((e=>{let[r]=n[e];t(r)})),e=r}t(r)}}if(!e)return this;if(K.completed=!0,await Y.afterComplete(this),!Y.loop)throw"";let r=Y.loopDelay;L((async()=>{await(async e=>{let t=O();t&&await B({value:t});let n=$().map((e=>[Symbol(),{func:Q,delay:A(1),deletable:!0,shouldPauseCursor:()=>!0}]));for(let r=0;r{var t,n,r;t=e,n=X,r=$(),X=Math.min(Math.max(n+t,0),r.length),((e,t,n)=>{let r=t[n-1],i=v(`.${s}`,e);(e=r?.parentNode||e).insertBefore(i,r||null)})(J,$(),X)},_=e=>((e,t)=>{if(b(e))return void(e.value=`${e.value}${t.textContent}`);t.innerHTML="";let n=(r=t.originalParent,/body/i.test(r?.tagName)?e:t.originalParent||e);var r;n.insertBefore(t,v("."+s,n)||null)})(J,e),j=async e=>Y=E(Y,e),V=async()=>{x()?J.value="":$().forEach(I)},Q=()=>{let e=$();e.length&&(x()?J.value=J.value.slice(0,-1):I(e[X]))};this.break=function(e){return H({func:()=>_(h("BR")),typeable:!0},e)},this.delete=function(e=null,t={}){e=w(e);let n=F(t),r=e,{instant:i,to:a}=t,o=ee.getTypeable(),s=null===r?o.length:T(r)?r:N({queueItems:o,selector:r,cursorPosition:O(),to:a});return H([n[0],...S({func:Q,delay:i?0:A(1),deletable:!0},s),n[1]],t)},this.empty=function(e={}){return H({func:V},e)},this.exec=function(e,t={}){let n=F(t);return H([n[0],{func:()=>e(this)},n[1]],t)},this.move=function(e,t={}){e=w(e);let n=F(t),{instant:r,to:i}=t,a=N({queueItems:ee.getTypeable(),selector:null===e?"":e,to:i,cursorPosition:O()}),o=a<0?-1:1;return G=O()+a,H([n[0],...S({func:()=>B(o),delay:r?0:A(),cursorable:!0},Math.abs(a)),n[1]],t)},this.options=function(e,t={}){return e=w(e),j(e),H({},t)},this.pause=function(e,t={}){return H({delay:w(e)},t)},this.type=function(e,t={}){e=w(e);let{instant:n}=t,r=F(t),i=f(e,Y.html).map((e=>{return{func:()=>_(e),char:e,delay:n||(t=e,/<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML))?0:A(),typeable:e.nodeType===Node.TEXT_NODE};var t})),a=[r[0],{func:async()=>await Y.beforeString(e,this)},...i,{func:async()=>await Y.afterString(e,this)},r[1]];return H(a,t)},this.is=function(e){return K[e]},this.destroy=function(e=!0){W.forEach(clearTimeout),W=[],w(e)&&ne&&I(ne),K.destroyed=!0},this.freeze=function(){K.frozen=!0},this.unfreeze=()=>{},this.reset=function(e){!this.is("destroyed")&&this.destroy(),e?(ee.wipe(),e(this)):ee.reset(),X=0;for(let t in K)K[t]=!1;return J[x()?"value":"innerHTML"]="",this},this.go=function(){return K.started?this:(R(),Y.waitUntilVisible?(((e,t)=>{new IntersectionObserver(((n,r)=>{n.forEach((n=>{n.isIntersecting&&(t(),r.unobserve(e))}))}),{threshold:1}).observe(e)})(J,z.bind(this)),this):(z(),this))},this.flush=function(e=(()=>{})){return R(),z(!1).then(e),this},this.getQueue=()=>ee,this.getOptions=()=>Y,this.updateOptions=e=>j(e),this.getElement=()=>J;let J="string"==typeof(U=e)?v(U):U;var U;let W=[],X=0,G=null,K=E({},l);r.cursor=(e=>{if("object"==typeof e){let t={},{frames:n,options:r}=u.cursor.animation;return t.animation=e.animation||{},t.animation.frames=e.animation?.frames||n,t.animation.options=E(r,e.animation?.options||{}),t.autoPause=e.autoPause??u.cursor.autoPause,t.autoPauseDelay=e.autoPauseDelay||u.cursor.autoPauseDelay,t}return!0===e?u.cursor:e})(r.cursor??u.cursor);let Y=E(u,r);Y=E(Y,{html:!x()&&Y.html,nextStringDelay:p(Y.nextStringDelay),loopDelay:p(Y.loopDelay)});let Z=Math.random().toString().substring(2,9),ee=function(e){let n=function(e){return t(e).forEach((e=>a.set(Symbol(e.char?.innerText),r({...e})))),this},r=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),i=()=>Array.from(a.values()),a=new Map;return n(e),{add:n,set:function(e,t){let n=[...a.keys()];a.set(n[e],r(t))},wipe:function(){a=new Map,n(e)},reset:function(){a.forEach((e=>delete e.done))},destroy:e=>a.delete(e),done:(e,t=!1)=>t?a.delete(e):a.get(e).done=!0,getItems:(e=!1)=>e?i():i().filter((e=>!e.done)),getQueue:()=>a,getTypeable:()=>i().filter((e=>e.typeable))}}([{delay:Y.startDelay}]);J.dataset.typeitId=Z,y(c);let te=!!Y.cursor&&!x(),ne=(()=>{if(x())return;let e=h("span");return e.className=s,te?(e.innerHTML=a(Y.cursorChar).innerHTML,e):(e.style.visibility="hidden",e)})();Y.strings=(e=>{let t=J.innerHTML;return t?(J.innerHTML="",Y.startDelete?(J.innerHTML=t,i(J),k(S({func:Q,delay:A(1),deletable:!0},$().length)),e):t.replace(//g,"").trim().split(//).concat(e)):e})(t(Y.strings)),Y.strings.length&&q()}})); diff --git a/lib/webfonts/fa-brands-400.ttf b/lib/webfonts/fa-brands-400.ttf new file mode 100644 index 00000000..502f3621 Binary files /dev/null and b/lib/webfonts/fa-brands-400.ttf differ diff --git a/lib/webfonts/fa-brands-400.woff2 b/lib/webfonts/fa-brands-400.woff2 new file mode 100644 index 00000000..d801b51f Binary files /dev/null and b/lib/webfonts/fa-brands-400.woff2 differ diff --git a/lib/webfonts/fa-regular-400.ttf b/lib/webfonts/fa-regular-400.ttf new file mode 100644 index 00000000..e0abe271 Binary files /dev/null and b/lib/webfonts/fa-regular-400.ttf differ diff --git a/lib/webfonts/fa-regular-400.woff2 b/lib/webfonts/fa-regular-400.woff2 new file mode 100644 index 00000000..d736e4b2 Binary files /dev/null and b/lib/webfonts/fa-regular-400.woff2 differ diff --git a/lib/webfonts/fa-solid-900.ttf b/lib/webfonts/fa-solid-900.ttf new file mode 100644 index 00000000..13c94897 Binary files /dev/null and b/lib/webfonts/fa-solid-900.ttf differ diff --git a/lib/webfonts/fa-solid-900.woff2 b/lib/webfonts/fa-solid-900.woff2 new file mode 100644 index 00000000..3516fdbe Binary files /dev/null and b/lib/webfonts/fa-solid-900.woff2 differ diff --git a/lib/webfonts/fa-v4compatibility.ttf b/lib/webfonts/fa-v4compatibility.ttf new file mode 100644 index 00000000..dc298194 Binary files /dev/null and b/lib/webfonts/fa-v4compatibility.ttf differ diff --git a/lib/webfonts/fa-v4compatibility.woff2 b/lib/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 00000000..28d46b15 Binary files /dev/null and b/lib/webfonts/fa-v4compatibility.woff2 differ diff --git a/page/1/index.html b/page/1/index.html new file mode 100644 index 00000000..451fbda8 --- /dev/null +++ b/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/ \ No newline at end of file diff --git a/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.html b/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.html new file mode 100644 index 00000000..4f39a68a --- /dev/null +++ b/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.html @@ -0,0 +1,1219 @@ +JDK8日期时间API导致Dubbo调用StackOverflow错误 - dingyufan's blog

JDK8日期时间API导致Dubbo调用StackOverflow错误

0 前言

博客搭建之后,不知道从何写起。思来想去,决定从记录一些工作中遇到的问题开始。一来对问题有个归档,算是有一些积累,方便日后回顾;二来促使自己遇到问题时能探本朔源,做到知其然知其所以然,不要草草百度了事。不积跬步,无以至千里;不积小流,无以成江海。

1 问题

最近项目中使用dubbo(v2.5.3)的时候,遇到一个问题:dubbo服务方在对response编码时失败,发生了栈溢出异常。可以通过一个demo(dubbo-stack-overflow-due-to-jkd8-instant)复现这个异常。

看到栈溢出,一般想到的情况要么是递归过深,或是循环调用方法次数过多。为什么会在dubbo序列化编码的时候发生这个异常呢?通过查看源码提交记录,结合异常信息Fail to encode repsonse,并且在异常栈中出现JavaSerializer类,判断问题出在Dubbo在对Response序列化时无法处理Instant类型对象

网上搜索到的博客基本上只是说了有这样的问题,但是没有说明具体的原因,都是草草改用Date了事。通过这篇博客,记录一下Instant类型对象引起Dubbo对Response序列化失败导致栈溢出的根本原因以及解决方案。

3 Dubbo序列化Response

dubbo对不同协议、不同序列化方式处理方式是不一样的。此项目使用默认协议:dubbo协议,同时也采用dubbo协议默认序列化方式**:hessian2**。下文的序列化过程分析就是基于此的。

1
+2
+
<!-- dubbo协议hessian2序列化方式,是dubbo的默认值。所以在xml配置中写不写这行配置都可以 -->
+<dubbo:protocol name="dubbo" serialization="hessian2"/>

**参考官网文档 2.4 服务提供方返回调用结果 **,我们从Dubbo处理返回结果入手。

3.1 ExchangeCodec / DubboCodec

ExchangeCodec是Dubbo exchange信息交换层的编码器。ExchangeCodec#encode(Channel, ChannelBuffer, Object)方法是Dubbo对Request和Response进行编码的入口,逻辑很简单,主要是根据消息的类型,交由对应方法进行编码,对于不是自己负责的非Request、Response类型的消息对象,交给父类处理。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+
// ExchangeCodec.java
+public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException {
+    if (msg instanceof Request) {
+        encodeRequest(channel, buffer, (Request) msg);
+    } else if (msg instanceof Response) {
+        // 对response对象进行编码
+        encodeResponse(channel, buffer, (Response) msg);
+    } else {
+        super.encode(channel, buffer, msg);
+    }
+}

ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法主要做的就是组装消息写入ChannelBuffer,这样消息就可以发送给调用方。消息两部分组成:消息头,包含状态序列化等相关信息的字节数组;消息体:Response返回的具体数据转换成的字节数组。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+
// ExchangeCodec.java
+protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response res) throws IOException {
+    try {
+        // 获取序列化方式*
+        Serialization serialization = getSerialization(channel);
+        // 消息头字节数组。长度16
+        byte[] header = new byte[HEADER_LENGTH];
+        // 消息头 写入魔数
+        Bytes.short2bytes(MAGIC, header);
+        // 消息头 写入序列化器ID信息
+        header[2] = serialization.getContentTypeId();
+        if (res.isHeartbeat()) header[2] |= FLAG_EVENT;
+        byte status = res.getStatus();
+        // 消息头 写入状态
+        header[3] = status;
+        // 消息头 写入
+        Bytes.long2bytes(res.getId(), header, 4);
+
+        int savedWriteIndex = buffer.writerIndex();
+        buffer.writerIndex(savedWriteIndex + HEADER_LENGTH);
+        ChannelBufferOutputStream bos = new ChannelBufferOutputStream(buffer);
+        // 得到序列化器*
+        ObjectOutput out = serialization.serialize(channel.getUrl(), bos);
+        if (status == Response.OK) {
+            if (res.isHeartbeat()) {
+                encodeHeartbeatData(channel, out, res.getResult());
+            } else {
+                // 对调用结果进行序列化*
+                // 这个方法会调用子类DubboCodec的override方法实现
+                encodeResponseData(channel, out, res.getResult());
+            }
+        }
+        else out.writeUTF(res.getErrorMessage());
+        out.flushBuffer();
+        bos.flush();
+        bos.close();
+        // 消息体字节长度
+        int len = bos.writtenBytes();
+        checkPayload(channel, len);
+        Bytes.int2bytes(len, header, 12);
+        // 先写完消息体,再写消息头,再设置writeIndex位置
+        buffer.writerIndex(savedWriteIndex);
+        buffer.writeBytes(header); 
+        buffer.writerIndex(savedWriteIndex + HEADER_LENGTH + len);
+    } catch (Throwable t) {
+        // 略...
+    }
+}

在这里先不关注消息头、ChannelBuffer等操作,这次主要看序列化相关的几个步骤:

3.1.1 获取序列化方式

这里实际是父类中的方法AbstractCodec#getSerialization(Channel)方法。这一步是利用Dubbo SPI机制,实例化一个序列化方式对象。具体过程不是本次的重点,只要理解这一步会根据<dubbo:protocol>配置的序列化方式返回对应的序列化方式对象。比如这里得到的就是Hessian2Serialization对象。

3.1.2 得到序列化器

这里调用Serialization#serialize(URL, OutputStream)方法,得到一个序列化器。hessian2序列化提供的序列化器是Hessian2ObjectOutput对象,通过构造函数传入了ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法中定义的包装了buffer的bos。这样Hessian2ObjectOutput对象可以将具体数据写入到buffer中。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+
public class Hessian2Serialization implements Serialization {
+    
+    public static final byte ID = 2;
+
+    public byte getContentTypeId() {
+        return ID;
+    }
+
+    public String getContentType() {
+        return "x-application/hessian2";
+    }
+
+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {
+        // 序列化器对象
+        return new Hessian2ObjectOutput(out);
+    }
+
+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {
+        return new Hessian2ObjectInput(is);
+    }
+}

3.1.3 对调用结果进行序列化

配置中指定的是dubbo协议,这里实际会被调用的是DubboCodec#encodeResponseData(Channel, ObjectOutput, Object)重写方法。DubboCodec继承自ExchangeCodec,是Dubbo protocol远程调用层的编码器,主要负责实现协议层面的Response数据编码。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+
// DubboCodec.java
+@Override
+protected void encodeResponseData(Channel channel, ObjectOutput out, Object data) throws IOException {
+    Result result = (Result) data;
+
+    Throwable th = result.getException();
+    if (th == null) {
+        Object ret = result.getValue();
+        if (ret == null) {
+            out.writeByte(RESPONSE_NULL_VALUE);
+        } else {
+            // 序列化器中写入response数据标志位
+            out.writeByte(RESPONSE_VALUE);
+            // 序列化器中写入正常返回的对象
+            out.writeObject(ret);
+        }
+    } else {
+        out.writeByte(RESPONSE_WITH_EXCEPTION);
+        out.writeObject(th);
+    }
+}

3.2 Hessian2ObjectOutput

在3.1.2中提到过,得到的序列化器是Hessian2ObjectOutput,实现了ObjectOutput接口。对于常见的简单数据对象,ObjectOutput接口中都定义了相应处理方法,同时还定义writeObject(Object)方法处理复杂对象的序列化。

Hessian2ObjectOutput实现了接口定义的各个方法,通过一个Hessian2Output对象,完成各种数据类型hessian2序列化的具体操作。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+
public class Hessian2ObjectOutput implements ObjectOutput {
+	private final Hessian2Output mH2o;
+
+	public Hessian2ObjectOutput(OutputStream os) {
+		mH2o = new Hessian2Output(os);
+		mH2o.setSerializerFactory(Hessian2SerializerFactory.SERIALIZER_FACTORY);
+	}
+    
+    public void writeBool(boolean v) throws IOException {
+		mH2o.writeBoolean(v);
+	}
+    // 略...
+    
+    public void writeObject(Object obj) throws IOException {
+		mH2o.writeObject(obj);
+	}
+    
+    public void flushBuffer() throws IOException {
+		mH2o.flushBuffer();
+	}
+}

Hessian2ObjectOutput#writeObject(Object)方法是response数据对象序列化的入口,数据对象序列化的操作从这一步正式开始。这个方法中调用的是Hessian2Output#writeObject(Object)方法。

3.3 Hessian2Output

注意Hessian2Output的方法,如writeBoolean(boolean),对值进行编码写入的时候,没有直接写入 _os,而是维护一个字节数组 _buffer_offset值。回头看3.1中的ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)方法,会调用out.flushBuffer(),通过Hessian2ObjectOutput来调用Hessian2Output#flushBuffer()方法,将 _buffer内容写入 _os ,即写入 bos,即ChannelBuffer对象buffer

Hessian2Output#writeObject(Object)方法不像其他方法,没有直接向_buffer写入具体的字节,而是尝试获取一个Serializer对象,完成对象的序列化。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+
public class Hessian2Output extends AbstractHessianOutput implements Hessian2Constants {
+	protected OutputStream _os;
+    private final byte []_buffer = new byte[SIZE];
+    // 略...
+    
+    public Hessian2Output(OutputStream os) {
+        _os = os;
+    }
+    // 略...
+    
+    public void writeBoolean(boolean value) throws IOException {
+        if (SIZE < _offset + 16)
+            flush();
+
+        if (value)
+            // 不直接写入_os
+            _buffer[_offset++] = (byte) 'T';
+        else
+            _buffer[_offset++] = (byte) 'F';
+    }
+    
+    public void writeObject(Object object) throws IOException {
+        if (object == null) {
+            writeNull();
+            return;
+        }
+        
+        Serializer serializer;
+        // 获得序列化工厂类,获得一个Serializer对象
+        serializer = findSerializerFactory().getSerializer(object.getClass());
+        // 完成对象的序列化
+        serializer.writeObject(object, this);
+    }
+    
+    public final void flushBuffer() throws IOException {
+        int offset = _offset;
+        if (! _isStreaming && offset > 0) {
+            _offset = 0;
+            _os.write(_buffer, 0, offset);
+        } else if (_isStreaming && offset > 3) {
+            int len = offset - 3;
+            _buffer[0] = 'p';
+            _buffer[1] = (byte) (len >> 8);
+            _buffer[2] = (byte) len;
+            _offset = 3;
+            
+            _os.write(_buffer, 0, offset);
+        }
+  }
+}

findSerializerFactory()会从父类获得一个SerializerFactory对象,回头从3.2看到,在Hessian2ObjectOutput中,为Hessian2Output指定SerializerFactory 具体对象为Hessian2SerializerFactory.SERIALIZER_FACTORY。我们主要来看getSerializer(object.getClass())

3.4 SerializerFactory / Hessian2SerializerFactory

Hessian2SerializerFactory相对比较简单,只是实现了getClassLoader() 方法,然后在公共静态常量量中构造了一个Hessian2SerializerFactory对象供使用。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+
public class Hessian2SerializerFactory extends SerializerFactory {
+
+	public static final SerializerFactory SERIALIZER_FACTORY = new Hessian2SerializerFactory();
+
+	private Hessian2SerializerFactory() {
+	}
+
+	@Override
+	public ClassLoader getClassLoader() {
+		return Thread.currentThread().getContextClassLoader();
+	}
+
+}

他父类SerializerFactory功能更加丰富。SerializerFactory#getSerializer(Class)方法比较长,但是其实整体逻辑并不复杂:根据类型Class返回相应的Serializer实例,如果类型和方法中列举的都不匹配,则会返回一个默认的Serializer对象,即 JavaSerializer对象

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+
public class SerializerFactory extends AbstractSerializerFactory {
+    // 略...
+    
+    public Serializer getSerializer(Class cl) throws HessianProtocolException {
+        Serializer serializer;
+        serializer = (Serializer) _staticSerializerMap.get(cl);
+        
+        if (serializer != null)
+            return serializer;
+        
+        if (_cachedSerializerMap != null) {
+            synchronized (_cachedSerializerMap) {
+                serializer = (Serializer) _cachedSerializerMap.get(cl);
+            }
+            if (serializer != null)
+                return serializer;
+        }
+        
+        for (int i = 0; serializer == null && _factories != null && i < _factories.size(); i++) {
+            AbstractSerializerFactory factory;
+            factory = (AbstractSerializerFactory) _factories.get(i);
+            serializer = factory.getSerializer(cl);
+        }
+
+        if (serializer != null) {
+
+        } else if (JavaSerializer.getWriteReplace(cl) != null)
+            serializer = new JavaSerializer(cl, _loader);
+        else if (HessianRemoteObject.class.isAssignableFrom(cl))
+          serializer = new RemoteSerializer();
+//      else if (BurlapRemoteObject.class.isAssignableFrom(cl))
+//        serializer = new RemoteSerializer();
+        else if (Map.class.isAssignableFrom(cl)) {
+            if (_mapSerializer == null)
+                _mapSerializer = new MapSerializer();
+            serializer = _mapSerializer;
+        }
+        else if (Collection.class.isAssignableFrom(cl)) {
+            if (_collectionSerializer == null) {
+                _collectionSerializer = new CollectionSerializer();
+            }
+            serializer = _collectionSerializer;
+        }
+        else if (cl.isArray())
+          serializer = new ArraySerializer();
+        else if (Throwable.class.isAssignableFrom(cl))
+          serializer = new ThrowableSerializer(cl, getClassLoader());
+        else if (InputStream.class.isAssignableFrom(cl))
+          serializer = new InputStreamSerializer();
+        else if (Iterator.class.isAssignableFrom(cl))
+          serializer = IteratorSerializer.create();
+        else if (Enumeration.class.isAssignableFrom(cl))
+          serializer = EnumerationSerializer.create();
+        else if (Calendar.class.isAssignableFrom(cl))
+          serializer = CalendarSerializer.create();
+        else if (Locale.class.isAssignableFrom(cl))
+          serializer = LocaleSerializer.create();
+        else if (Enum.class.isAssignableFrom(cl))
+          serializer = new EnumSerializer(cl);
+
+        if (serializer == null)
+            // 都不符合以上类似,则返回默认的serializer
+            serializer = getDefaultSerializer(cl);
+
+        if (_cachedSerializerMap == null)
+            _cachedSerializerMap = new HashMap(8);
+
+        synchronized (_cachedSerializerMap) {
+            // 缓存这个类型对应的serializer,下次直接从缓存获取
+            _cachedSerializerMap.put(cl, serializer);
+        }
+
+        return serializer;
+    }
+    
+    protected Serializer getDefaultSerializer(Class cl) {
+        if (_defaultSerializer != null)
+            return _defaultSerializer;
+        if (!Serializable.class.isAssignableFrom(cl) && ! _isAllowNonSerializable) {
+            throw new IllegalStateException("Serialized class " + cl.getName() + " must implement java.io.Serializable");
+        }
+        
+        return new JavaSerializer(cl, _loader);
+  }
+}

对于demo中的返回的数据对象DemoDTO,很显然就是会得到一个JavaSerializer,通过它的完成序列化。

3.5 JavaSerializer

回顾上文3.3节中,serializer对象完成序列哈的入库也是writeObject()方法。来看JavaSerializer#writeObject(Object, AbstractHessianOutput)方法。这里面序列化分两种情况:一是要序列化的对象有writeReplce()方法的,直接调用writeReplce()方法完成序列化;而是常规的使用静态类FieldSerializer序列化。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
// JavaSerializer.java
+public void writeObject(Object obj, AbstractHessianOutput out) throws IOException {
+    if (out.addRef(obj)) {
+        return;
+    }
+
+    Class cl = obj.getClass();
+    try {
+        // 调用序列化对象的writeReplace方法完成序列化
+        if (_writeReplace != null) {
+            Object repl;
+            if (_writeReplaceFactory != null)
+                repl = _writeReplace.invoke(_writeReplaceFactory, obj);
+            else
+                repl = _writeReplace.invoke(obj);
+
+            out.removeRef(obj);
+            out.writeObject(repl);
+            out.replaceRef(repl, obj);
+            return;
+        }
+    } catch (RuntimeException e) {
+        throw e;
+    } catch (Exception e) {
+        // log.log(Level.FINE, e.toString(), e);
+        throw new RuntimeException(e);
+    }
+
+    // hessian2会写入对象开始标记;hessian会写map开始标记并返回-2
+    int ref = out.writeObjectBegin(cl.getName());
+
+    if (ref < -1) {
+        // 这种情况看起来是兼容hessian序列化的,而不是hessian2序列化的
+        // hessian序列化是把对象当做map处理,所以writeObject10()方法里会循环写入字段名称然后马上字段序列化,最后还会写一个map结束标志
+        writeObject10(obj, out);
+    }
+    else {
+        if (ref == -1) {
+            // 写入对象包含字段长度,以及各个类型字段信息
+            writeDefinition20(out);
+            // 类型信息编码处理
+            out.writeObjectBegin(cl.getName());
+        }
+        // 这里会开始会遍历序列化对象包含的各个字段
+        writeInstance(obj, out);
+    }
+}

3.5.1 writeReplace方法

JavaSerializer 使用一个Method变量 _writeReplace保存writeReplace()方法,这个方法是从那里来的呢?在JavaSerializer构造方法中,会调用一个私有方法introspectWriteReplace(Class, ClassLoader)。它会从两个地方找writeReplace()方法:一是序列化类相应的HessianSerializer类;二是序列化类本身。但是要注意,HessianSerializer类的writeReplace方法签名 和 序列化类本身writeReplace方法签名 是有区别的。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+
// JavaSerializer.java
+private void introspectWriteReplace(Class cl, ClassLoader loader) {
+    try {
+        String className = cl.getName() + "HessianSerializer";
+        // 加载 序列化类类名+HessianSerializer的类。例如demo中的DemoDTO类,则会
+        // 尝试加载cn.dingyufan.blog.demo.dubbostackoverflowduetojkd8instantprovider.api.dto.DemoDTOHessianSerializer类
+        Class serializerClass = Class.forName(className, false, loader);
+        // 实例化相应的HessianSerializer类型
+        Object serializerObject = serializerClass.newInstance();
+        // 反射获取WriteReplace方法
+        Method writeReplace = getWriteReplace(serializerClass, cl);
+
+        if (writeReplace != null) {
+            _writeReplaceFactory = serializerObject;
+            _writeReplace = writeReplace;
+            return;
+        }
+    } catch (ClassNotFoundException e) {
+        // 没有相应HessianSerializer类就会抛出ClassNotFoundException,这个异常不处理,后面会再次尝试从序列化类本身寻找
+    } catch (Exception e) {
+        log.log(Level.FINER, e.toString(), e);
+    }
+    // 从序列化类本身找writeReplace方法
+    _writeReplace = getWriteReplace(cl);
+}
+
+// 从要序列化的类型寻找 方法名为writeReplace、入参为空 的方法
+protected static Method getWriteReplace(Class cl) {
+    for (; cl != null; cl = cl.getSuperclass()) {
+        Method []methods = cl.getDeclaredMethods();
+
+        for (int i = 0; i < methods.length; i++) {
+            Method method = methods[i];
+
+            if (method.getName().equals("writeReplace") &&
+                method.getParameterTypes().length == 0)
+                return method;
+        }
+    }
+
+    return null;
+}
+
+// 从相应HessianSerializer类找到  方法名为writeReplace、 入参有且仅为要序列化类型  的方法
+protected Method getWriteReplace(Class cl, Class param)
+{
+    for (; cl != null; cl = cl.getSuperclass()) {
+        for (Method method : cl.getDeclaredMethods()) {
+            if (method.getName().equals("writeReplace")
+                && method.getParameterTypes().length == 1
+                && param.equals(method.getParameterTypes()[0]))
+                return method;
+        }
+    }
+
+    return null;
+}

writeReplace方法提供了一种扩展序列化的方式,对与Dubbo暂不支持的类型,可以通过这个扩展点,返回一个自定义的类型的对象,替代原本需要序列化的对象,然后对自定义的对象进行序列化。

但是有个问题,如果producer通过writeReplace方法自定义一个对象来序列化,consumer反序列化时,怎么把自定义的对象转回原本类型呢?这里不展开讲,但是办法肯定是有的,答案就是readResolve方法 。: )

3.5.2 FieldSerializer

对于没有writeReplace方法的类型,就继续走hessian2设定的序列化逻辑。从JavaSerializer#writeInstance(Object, AbstractHessianOutput)继续。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+
// JavaSerializer.java
+public void writeInstance(Object obj, AbstractHessianOutput out) throws IOException {
+    for (int i = 0; i < _fields.length; i++) {
+        Field field = _fields[i];
+        // _fieldSerializers是数组 FieldSerializer[]
+        // 是在JavaSerializer构造方法中,根据序列化类中各个字段类型,依次创建FieldSerializer(或子类)的实例存入
+        _fieldSerializers[i].serialize(out, obj, field);
+    }
+}
+
+// JavaSerializer构造方法中调用
+// 根据序列化类中各个字段类型,返回对应类型的FieldSerializer(或子类)实例
+private static FieldSerializer getFieldSerializer(Class type)
+{
+    if (int.class.equals(type)
+        || byte.class.equals(type)
+        || short.class.equals(type)
+        || int.class.equals(type)) {
+        return IntFieldSerializer.SER;
+    }
+    else if (long.class.equals(type)) {
+        return LongFieldSerializer.SER;
+    }
+    else if (double.class.equals(type) ||
+             float.class.equals(type)) {
+        return DoubleFieldSerializer.SER;
+    }
+    else if (boolean.class.equals(type)) {
+        return BooleanFieldSerializer.SER;
+    }
+    else if (String.class.equals(type)) {
+        return StringFieldSerializer.SER;
+    }
+    else if (java.util.Date.class.equals(type)
+             || java.sql.Date.class.equals(type)
+             || java.sql.Timestamp.class.equals(type)
+             || java.sql.Time.class.equals(type)) {
+        return DateFieldSerializer.SER;
+    }
+    else
+        return FieldSerializer.SER;
+}

JavaSerializer#writeObject(Object, AbstractHessianOutput)方法中,写完类型信息、类型字段长度、各字段名称后,就会通过writeInstance方法依次序列化类型中的各字段。字段的序列化,就是由静态类FieldSerializer类完成。

比如DemoDTO中的String类型字段,就会有FieldSerializer的子类StringFieldSerializer,完成String consumer字段序列化。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+
// JavaSerializer.java
+static class StringFieldSerializer extends FieldSerializer {
+    static final FieldSerializer SER = new StringFieldSerializer();
+    
+    void serialize(AbstractHessianOutput out, Object obj, Field field) throws IOException {
+        String value = null;
+        try {
+            value = (String) field.get(obj);
+        } catch (IllegalAccessException e) {
+            log.log(Level.FINE, e.toString(), e);
+        }
+        // 调用Hessian2Output类的writeString方法,值写入输出流
+        out.writeString(value);
+    }
+}

但是DemoDTO中的Instant类型字段,在JavaSerializer#getFieldSerializer(Class)方法中没有对应类型的,得到的是默认的FieldSerializer实例。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+
static class FieldSerializer {
+    static final FieldSerializer SER = new FieldSerializer();
+
+    void serialize(AbstractHessianOutput out, Object obj, Field field) throws IOException {
+        Object value = null;
+
+        try {
+            value = field.get(obj);
+        } catch (IllegalAccessException e) {
+            log.log(Level.FINE, e.toString(), e);
+        }
+        
+        try {
+            // 又回到 Hessian2Output#writeObject(Object)方法
+            // 再次获得序列化工厂类Hessian2SerializerFactory,获得一个Serializer对象,又通过Serializer对象序列化
+            // 这里有递归的感觉了
+            out.writeObject(value);
+        } catch (RuntimeException e) {
+            throw new RuntimeException(e.getMessage() + "\n Java field: " + field, e);
+        } catch (IOException e) {
+            throw new IOExceptionWrapper(e.getMessage() + "\n Java field: " + field, e);
+        }
+    }
+}

综上所述,Hessian2序列化的核心的几个类是:Hessian2Output、SerializerFactory(Hessian2SerializerFactory) 、JavaSerializer和FieldSerializer。

整体思路是:

  • Hessian2Output#writeObject(Object):对象 序列化的入口
  • SerializerFactory#getSerializer(Class):根据对象类型,找到对应类型的Serializer完成对象序列化,无对应类型的交给JavaSerializer
  • JavaSerializer#getFieldSerializer(Class):完成对象类型信息的序列化,然后依次序列化各个字段,为各字段找到对应类型的FieldSerializer子类完成字段序列化,无对应类型的字段交给FieldSerializer。
  • FieldSerializer#serialize(AbstractHessianOutput, Object, Field):FieldSerializer会把字段值再当做一个对象,再走一遍整个对象序列化过程。

这个设计想法是蛮好的,简单对象直接有对应类序列化,没有对应序列化方法的把对象的序列化拆解成各个字段的序列化。在理想的情况下,所有对象都可以通过不断的拆解,形成简单的对象,然后有相应的Serializer或FieldSerializer完成序列化。就好像像复杂问题拆解成数个简单问题,也有点像庖丁解牛的感觉。

3.6 序列化调用栈

了解dubbo在hessian2序列化方式时的逻辑之后,再来看本文开头的异常。上述大段文字内容繁多,很难串联起来,我们根据hessian2的序列化逻辑,整理整个序列化过程的调用栈,当然也可以直接打断点看

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+
ExchangeCodec#encode
+  ->ExchangeCodec#encodeResponseData
+    ->DubboCodec#encodeResponseData
+      ->Hessian2ObjectOutput#writeObject
+        // DemoDTO类型开始序列化
+        ->Hessian2Output#writeObject
+          ->SerializerFactory#getSerializer
+            ->JavaSerializer#writeObject
+              ->JavaSerializer#writeInstance
+                ->FieldSerializer#serialize
+                  // Instant类型开始序列化
+                  ->Hessian2Output#writeObject
+                    ->SerializerFactory#getSerializer
+                      ->JavaSerializer#writeObject
+                        // Ser类型开始序列化(Instant的writeReplace方法产生的替代对象)
+                        ->Hessian2Output#writeObject
+                          ->SerializerFactory#getSerializer
+                            ->JavaSerializer#writeObject
+                              ->JavaSerializer#writeInstance
+                                ->FieldSerializer#serialize
+                                  // Instant类型开始序列化(Ser类中的object字段)
+                                  ->Hessian2Output#writeObject
+                                    ->SerializerFactory#getSerializer
+                                      ->JavaSerializer#writeObject
+                                        // Ser(Instant的writeReplace方法产生的替代类)
+                                        ->Hessian2Output#writeObject
+                                          -> ......

通过调用栈,是不是一眼就发现问题所在了?这个调用栈倒序来看,可以发现正好开头是异常栈的顺序。

4 结论

在Dubbo反序列化的过程中,产生的栈溢出的原因是:

Dubbo(v2.5.3)没有相应的Serializer或FieldSerializer能处理Instant数据类型,并且Instant正好有writeReplace方法,返回的替代类中的object字段又包含Instant本身。导致需要序列化的对象在Instant、Ser之间反复横跳,不断调用序列化方法逻辑,最终方法栈满,导致栈溢出错误。

结合网上信息,可以发现不只是Instant类,在JDK8新增的时间API,如LocalDateTime、Period等,都会和Instant有一样的问题,也是一样的原因。

5 解决方案

知道了问题的原因之后,就可以对症下药了。本人水平有限,暂时想到以下几种方案:

5.1 使用Date类型

首先最简单的方式,就是不使用JDK8中引入的时间API,改为使用Date。

这种方式没有直接解决问题,而是有些逃避问题了。

5.1 writeReplace / readResolve 方法

修改Instant的writeReplace方法可能不是很方便,我们可以为DemoDTO添加writeReplace方法。总体思路的话就是:provider把Instant拆解成支持的数据类型,到了consumer再转化成Instant。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+
public class DemoDTO implements Serializable {
+
+    private static final long serialVersionUID = -311647434535770294L;
+
+    private String consumer;
+    private Instant instant;
+
+
+    // 序列化时JavaSerializer会调用此方法,然后序列化替代类对象repl
+    private DemoDTOHandle writeReplace() {
+        System.out.println("call writeReplace");
+        DemoDTOHandle repl = new DemoDTOHandle();
+        repl.setConsumer(consumer);
+        if (instant != null) {
+            repl.setSeconds(instant.getEpochSecond());
+            repl.setNanos(instant.getNano());
+        }
+        return repl;
+    }
+    
+    // getter,setter略...
+}

DemoDTOHandle中Instant拆成seconds、nanos字段存储,然后会代替DemoDTO进行序列化传输。代码如下。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
public class DemoDTOHandle implements HessianHandle, Serializable {
+
+    private static final long serialVersionUID = -8532997896892606136L;
+
+    private String consumer;
+
+    private long seconds;
+    private int nanos;
+
+    // 反序列化时,JavaDeserializer会调用此方法,重新组装实际的类
+    private DemoDTO readResolve() {
+        System.out.println("call readResolve");
+        DemoDTO dto = new DemoDTO();
+        dto.setConsumer(consumer);
+        dto.setInstant(Instant.ofEpochSecond(seconds, nanos));
+        return dto;
+    }
+    
+    // getter,setter略...
+}

DemoDTOHandle为什么要实现HessianHandle接口呢?答案在SerializerFactory#getObjectDeserializer(String, Class)中,如果不是HessianHandle实现类的话,是得不到DemoDTOHandle相关的Deserializer,只有DemoDTO相关的Deserializer,那么就无法使用DemoDTOHandle中的readResolve方法转换回对象了。

5.2 修改序列化方式

之前提到,使用的是dubbo协议、hessian2序列化方式。事实上dubbo协议同样可以使用其他多种序列化方式。下面列举的序列化方式,都可以支持JDK8时间API的序列化处理。

1
+2
+3
+4
+5
+6
+7
+8
+9
+
<dubbo:protocol serialization="java"/>
+
+<dubbo:protocol serialization="compactedjava"/>
+
+<dubbo:protocol serialization="nativejava"/>
+
+<dubbo:protocol serialization="json"/>
+
+<dubbo:protocol serialization="fastjson"/>

当然如果升级了Dubbo版本的话,会支持更多的序列化方式。

5.3 升级Dubbo版本(√)

当然,使用的Dubbo版本是2.5.3,实在是太老了。搜索maven仓库,看到2.5.3版本更新时间是2012年,十年前。

可以选择升级到2.6.x版本。会发现2.6.x版本在序列化方面也做了一些优化。新版本不仅包含了新功能,扩展性也有所提升。但是需要注意,如果是升级2.6.6+版本,需要关注netty版本的变化。

2.6.x 支持JDK8时间API

在2.6.x版本中,在SerializerFactory 中增加了对JDK8时间API的处理,加入了Java8TimeSerializer以及一系列的HessianHandle。意味着2.6.x版本Dubbo将不再有本文开头遇到的问题。

2.6.x 支持扩展SerializerFactory

同时SerializerFactory 也提供了一定的扩展性,支持添加你想要的SerializerFactory。如果还有目标序列化方式无法处理的类型,可以自定义SerializerFactory、Serializer,只要将自定义SerializerFactory添加到当前序列化方式的SerializerFactory 中,就可以轻松扩展。在2.5.x上是不支持这种扩展的

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+
// SerializerFactory.java  2.6.x
+public class SerializerFactory extends AbstractSerializerFactory {
+    // 略...
+    
+    protected ArrayList _factories = new ArrayList();
+    // 略...
+    
+    public void addFactory(AbstractSerializerFactory factory) {
+        _factories.add(factory);
+    }
+    
+    public Serializer getSerializer(Class cl) throws HessianProtocolException{
+        Serializer serializer;
+        serializer = (Serializer) _staticSerializerMap.get(cl);
+        if (serializer != null)
+            return serializer;
+
+        if (_cachedSerializerMap != null) {
+            synchronized (_cachedSerializerMap) {
+                serializer = (Serializer) _cachedSerializerMap.get(cl);
+            }
+            if (serializer != null)
+                return serializer;
+        }
+
+        // 遍历扩展的SerializerFactory。尝试由扩展的SerializerFactory提供Serializer
+        // 2.5.3没有这个功能
+        for (int i = 0; serializer == null && _factories != null && i < _factories.size();  i++) {
+            AbstractSerializerFactory factory;
+            factory = (AbstractSerializerFactory) _factories.get(i);
+            serializer = factory.getSerializer(cl);
+        }
+
+        if (serializer != null) {
+        }
+
+        else if (JavaSerializer.getWriteReplace(cl) != null)
+            serializer = new JavaSerializer(cl, _loader);
+        else if (HessianRemoteObject.class.isAssignableFrom(cl))
+            serializer = new RemoteSerializer();
+        //    else if (BurlapRemoteObject.class.isAssignableFrom(cl))
+        //      serializer = new RemoteSerializer();
+        else if (Map.class.isAssignableFrom(cl)) {
+            if (_mapSerializer == null)
+                _mapSerializer = new MapSerializer();
+            serializer = _mapSerializer;
+        }
+        else if (Collection.class.isAssignableFrom(cl)) {
+            if (_collectionSerializer == null) {
+                _collectionSerializer = new CollectionSerializer();
+            }
+            serializer = _collectionSerializer;
+        }
+        else if (cl.isArray())
+            serializer = new ArraySerializer();
+        else if (Throwable.class.isAssignableFrom(cl))
+            serializer = new ThrowableSerializer(cl, getClassLoader());
+        else if (InputStream.class.isAssignableFrom(cl))
+            serializer = new InputStreamSerializer();
+        else if (Iterator.class.isAssignableFrom(cl))
+            serializer = IteratorSerializer.create();
+
+        else if (Enumeration.class.isAssignableFrom(cl))
+            serializer = EnumerationSerializer.create();
+        else if (Calendar.class.isAssignableFrom(cl))
+            serializer = CalendarSerializer.create();
+        else if (Locale.class.isAssignableFrom(cl))
+            serializer = LocaleSerializer.create();
+        else if (Enum.class.isAssignableFrom(cl))
+            serializer = new EnumSerializer(cl);
+        if (serializer == null)
+            serializer = getDefaultSerializer(cl);
+        if (_cachedSerializerMap == null)
+            _cachedSerializerMap = new HashMap(8);
+        
+        synchronized (_cachedSerializerMap) {
+            _cachedSerializerMap.put(cl, serializer);
+        }
+        return serializer;
+    }
+}

5.4 SPI扩展Serialization

这个方法理论上是完全可行的,但是有些过于大动干戈了。总体思路是:借助Dubbo的SPI机制,对Serialization进行扩展,基于hessian2的SerializerFactory ,对Serializer、Deserializer进行扩展。

6 写在最后

最开始计划用一两天的时间写完这篇博客,但是过程中又不断的遇到问题、解决问题,最终花了整个五一假期才完成。通过这个问题,算是对Dubbo框架的序列化这块有了一些了解了。

0%
\ No newline at end of file diff --git a/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.md b/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.md new file mode 100644 index 00000000..8a6c38c0 --- /dev/null +++ b/posts/dubbo-stack-overflow-due-to-jdk8-instant/index.md @@ -0,0 +1,887 @@ +# JDK8日期时间API导致Dubbo调用StackOverflow错误 + + + + + + +## 0 前言 + +博客搭建之后,不知道从何写起。思来想去,决定从记录一些工作中遇到的问题开始。一来对问题有个归档,算是有一些积累,方便日后回顾;二来促使自己遇到问题时能探本朔源,做到知其然知其所以然,不要草草百度了事。不积跬步,无以至千里;不积小流,无以成江海。 + + + +## 1 问题 + +最近项目中使用dubbo(**v2.5.3**)的时候,遇到一个问题:dubbo服务方在对response编码时失败,发生了栈溢出异常。可以通过一个demo([dubbo-stack-overflow-due-to-jkd8-instant](https://github.com/dingyufan/blog-demo-all/tree/main/dubbo-stack-overflow-due-to-jkd8-instant))复现这个异常。 + +![image-20220421171300795](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220421171300795.png) + +看到栈溢出,一般想到的情况要么是递归过深,或是循环调用方法次数过多。为什么会在dubbo序列化编码的时候发生这个异常呢?通过查看源码提交记录,结合异常信息Fail to encode repsonse,并且在异常栈中出现JavaSerializer类,判断**问题出在Dubbo在对Response序列化时无法处理Instant类型对象**。 + +网上搜索到的博客基本上只是说了有这样的问题,但是没有说明具体的原因,都是草草改用Date了事。通过这篇博客,记录一下Instant类型对象引起Dubbo对Response序列化失败导致栈溢出的根本原因以及解决方案。 + + + +## 3 Dubbo序列化Response + +dubbo对不同协议、不同序列化方式处理方式是不一样的。此项目使用默认协议:**dubbo协议**,同时也采用dubbo协议默认序列化方式**:hessian2**。下文的序列化过程分析就是基于此的。 + +```xml + + +``` + +**参考官网文档 [2.4 服务提供方返回调用结果](https://dubbo.apache.org/zh/docs/v2.7/dev/source/service-invoking-process/#24-%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E6%96%B9%E8%BF%94%E5%9B%9E%E8%B0%83%E7%94%A8%E7%BB%93%E6%9E%9C) **,我们从Dubbo处理返回结果入手。 + + + +### 3.1 ExchangeCodec / DubboCodec + +ExchangeCodec是Dubbo **exchange信息交换层**的编码器。`ExchangeCodec#encode(Channel, ChannelBuffer, Object)`方法是Dubbo对Request和Response进行编码的入口,逻辑很简单,主要是根据消息的类型,交由对应方法进行编码,对于不是自己负责的非Request、Response类型的消息对象,交给父类处理。 + +```java +// ExchangeCodec.java +public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException { + if (msg instanceof Request) { + encodeRequest(channel, buffer, (Request) msg); + } else if (msg instanceof Response) { + // 对response对象进行编码 + encodeResponse(channel, buffer, (Response) msg); + } else { + super.encode(channel, buffer, msg); + } +} +``` + +`ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)`方法主要做的就是组装消息写入ChannelBuffer,这样消息就可以发送给调用方。消息两部分组成:**消息头**,包含状态序列化等相关信息的字节数组;**消息体**:Response返回的具体数据转换成的字节数组。 + +```java +// ExchangeCodec.java +protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response res) throws IOException { + try { + // 获取序列化方式* + Serialization serialization = getSerialization(channel); + // 消息头字节数组。长度16 + byte[] header = new byte[HEADER_LENGTH]; + // 消息头 写入魔数 + Bytes.short2bytes(MAGIC, header); + // 消息头 写入序列化器ID信息 + header[2] = serialization.getContentTypeId(); + if (res.isHeartbeat()) header[2] |= FLAG_EVENT; + byte status = res.getStatus(); + // 消息头 写入状态 + header[3] = status; + // 消息头 写入 + Bytes.long2bytes(res.getId(), header, 4); + + int savedWriteIndex = buffer.writerIndex(); + buffer.writerIndex(savedWriteIndex + HEADER_LENGTH); + ChannelBufferOutputStream bos = new ChannelBufferOutputStream(buffer); + // 得到序列化器* + ObjectOutput out = serialization.serialize(channel.getUrl(), bos); + if (status == Response.OK) { + if (res.isHeartbeat()) { + encodeHeartbeatData(channel, out, res.getResult()); + } else { + // 对调用结果进行序列化* + // 这个方法会调用子类DubboCodec的override方法实现 + encodeResponseData(channel, out, res.getResult()); + } + } + else out.writeUTF(res.getErrorMessage()); + out.flushBuffer(); + bos.flush(); + bos.close(); + // 消息体字节长度 + int len = bos.writtenBytes(); + checkPayload(channel, len); + Bytes.int2bytes(len, header, 12); + // 先写完消息体,再写消息头,再设置writeIndex位置 + buffer.writerIndex(savedWriteIndex); + buffer.writeBytes(header); + buffer.writerIndex(savedWriteIndex + HEADER_LENGTH + len); + } catch (Throwable t) { + // 略... + } +} +``` + +在这里先不关注消息头、ChannelBuffer等操作,这次主要看序列化相关的几个步骤: + +#### 3.1.1 获取序列化方式 + +这里实际是父类中的方法`AbstractCodec#getSerialization(Channel)`方法。这一步是利用Dubbo SPI机制,实例化一个序列化方式对象。具体过程不是本次的重点,只要理解这一步会根据``配置的序列化方式返回对应的序列化方式对象。比如这里得到的就是Hessian2Serialization对象。 + +#### 3.1.2 得到序列化器 + +这里调用`Serialization#serialize(URL, OutputStream)`方法,得到一个序列化器。hessian2序列化提供的序列化器是Hessian2ObjectOutput对象,通过构造函数传入了`ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)`方法中定义的包装了buffer的bos。这样Hessian2ObjectOutput对象可以将具体数据写入到buffer中。 + +```java +public class Hessian2Serialization implements Serialization { + + public static final byte ID = 2; + + public byte getContentTypeId() { + return ID; + } + + public String getContentType() { + return "x-application/hessian2"; + } + + public ObjectOutput serialize(URL url, OutputStream out) throws IOException { + // 序列化器对象 + return new Hessian2ObjectOutput(out); + } + + public ObjectInput deserialize(URL url, InputStream is) throws IOException { + return new Hessian2ObjectInput(is); + } +} +``` + +#### 3.1.3 对调用结果进行序列化 + +配置中指定的是dubbo协议,这里实际会被调用的是`DubboCodec#encodeResponseData(Channel, ObjectOutput, Object)`重写方法。DubboCodec继承自ExchangeCodec,是Dubbo **protocol远程调用层**的编码器,主要负责实现协议层面的Response数据编码。 + +```java +// DubboCodec.java +@Override +protected void encodeResponseData(Channel channel, ObjectOutput out, Object data) throws IOException { + Result result = (Result) data; + + Throwable th = result.getException(); + if (th == null) { + Object ret = result.getValue(); + if (ret == null) { + out.writeByte(RESPONSE_NULL_VALUE); + } else { + // 序列化器中写入response数据标志位 + out.writeByte(RESPONSE_VALUE); + // 序列化器中写入正常返回的对象 + out.writeObject(ret); + } + } else { + out.writeByte(RESPONSE_WITH_EXCEPTION); + out.writeObject(th); + } +} +``` + + + +### 3.2 Hessian2ObjectOutput + +在3.1.2中提到过,得到的序列化器是Hessian2ObjectOutput,实现了ObjectOutput接口。对于常见的简单数据对象,ObjectOutput接口中都定义了相应处理方法,同时还定义writeObject(Object)方法处理复杂对象的序列化。 + +Hessian2ObjectOutput实现了接口定义的各个方法,通过一个Hessian2Output对象,完成各种数据类型hessian2序列化的具体操作。 + +```java +public class Hessian2ObjectOutput implements ObjectOutput { + private final Hessian2Output mH2o; + + public Hessian2ObjectOutput(OutputStream os) { + mH2o = new Hessian2Output(os); + mH2o.setSerializerFactory(Hessian2SerializerFactory.SERIALIZER_FACTORY); + } + + public void writeBool(boolean v) throws IOException { + mH2o.writeBoolean(v); + } + // 略... + + public void writeObject(Object obj) throws IOException { + mH2o.writeObject(obj); + } + + public void flushBuffer() throws IOException { + mH2o.flushBuffer(); + } +} +``` + +**`Hessian2ObjectOutput#writeObject(Object)`方法是response数据对象序列化的入口**,数据对象序列化的操作从这一步正式开始。这个方法中调用的是`Hessian2Output#writeObject(Object)`方法。 + + + +### 3.3 Hessian2Output + +注意Hessian2Output的方法,如`writeBoolean(boolean)`,对值进行编码写入的时候,没有直接写入` _os`,而是维护一个字节数组 `_buffer`和 `_offset`值。回头看3.1中的`ExchangeCodec#encodeResponse(Channel, ChannelBuffer, Response)`方法,会调用`out.flushBuffer()`,通过Hessian2ObjectOutput来调用`Hessian2Output#flushBuffer()`方法,将 `_buffer`内容写入 `_os` ,即写入 `bos`,即ChannelBuffer对象`buffer`。 + +`Hessian2Output#writeObject(Object)`方法不像其他方法,没有直接向`_buffer`写入具体的字节,而是尝试获取一个Serializer对象,完成对象的序列化。 + +```java +public class Hessian2Output extends AbstractHessianOutput implements Hessian2Constants { + protected OutputStream _os; + private final byte []_buffer = new byte[SIZE]; + // 略... + + public Hessian2Output(OutputStream os) { + _os = os; + } + // 略... + + public void writeBoolean(boolean value) throws IOException { + if (SIZE < _offset + 16) + flush(); + + if (value) + // 不直接写入_os + _buffer[_offset++] = (byte) 'T'; + else + _buffer[_offset++] = (byte) 'F'; + } + + public void writeObject(Object object) throws IOException { + if (object == null) { + writeNull(); + return; + } + + Serializer serializer; + // 获得序列化工厂类,获得一个Serializer对象 + serializer = findSerializerFactory().getSerializer(object.getClass()); + // 完成对象的序列化 + serializer.writeObject(object, this); + } + + public final void flushBuffer() throws IOException { + int offset = _offset; + if (! _isStreaming && offset > 0) { + _offset = 0; + _os.write(_buffer, 0, offset); + } else if (_isStreaming && offset > 3) { + int len = offset - 3; + _buffer[0] = 'p'; + _buffer[1] = (byte) (len >> 8); + _buffer[2] = (byte) len; + _offset = 3; + + _os.write(_buffer, 0, offset); + } + } +} + +``` + +findSerializerFactory()会从父类获得一个SerializerFactory对象,回头从3.2看到,在Hessian2ObjectOutput中,为Hessian2Output指定SerializerFactory 具体对象为`Hessian2SerializerFactory.SERIALIZER_FACTORY`。我们主要来看getSerializer(object.getClass()) + + + +### 3.4 SerializerFactory / Hessian2SerializerFactory + +Hessian2SerializerFactory相对比较简单,只是实现了getClassLoader() 方法,然后在公共静态常量量中构造了一个Hessian2SerializerFactory对象供使用。 + +```java +public class Hessian2SerializerFactory extends SerializerFactory { + + public static final SerializerFactory SERIALIZER_FACTORY = new Hessian2SerializerFactory(); + + private Hessian2SerializerFactory() { + } + + @Override + public ClassLoader getClassLoader() { + return Thread.currentThread().getContextClassLoader(); + } + +} +``` + +他父类SerializerFactory功能更加丰富。`SerializerFactory#getSerializer(Class)`方法比较长,但是其实整体逻辑并不复杂:**根据类型Class返回相应的Serializer实例,如果类型和方法中列举的都不匹配,则会返回一个默认的Serializer对象,即 JavaSerializer对象**。 + +```java +public class SerializerFactory extends AbstractSerializerFactory { + // 略... + + public Serializer getSerializer(Class cl) throws HessianProtocolException { + Serializer serializer; + serializer = (Serializer) _staticSerializerMap.get(cl); + + if (serializer != null) + return serializer; + + if (_cachedSerializerMap != null) { + synchronized (_cachedSerializerMap) { + serializer = (Serializer) _cachedSerializerMap.get(cl); + } + if (serializer != null) + return serializer; + } + + for (int i = 0; serializer == null && _factories != null && i < _factories.size(); i++) { + AbstractSerializerFactory factory; + factory = (AbstractSerializerFactory) _factories.get(i); + serializer = factory.getSerializer(cl); + } + + if (serializer != null) { + + } else if (JavaSerializer.getWriteReplace(cl) != null) + serializer = new JavaSerializer(cl, _loader); + else if (HessianRemoteObject.class.isAssignableFrom(cl)) + serializer = new RemoteSerializer(); +// else if (BurlapRemoteObject.class.isAssignableFrom(cl)) +// serializer = new RemoteSerializer(); + else if (Map.class.isAssignableFrom(cl)) { + if (_mapSerializer == null) + _mapSerializer = new MapSerializer(); + serializer = _mapSerializer; + } + else if (Collection.class.isAssignableFrom(cl)) { + if (_collectionSerializer == null) { + _collectionSerializer = new CollectionSerializer(); + } + serializer = _collectionSerializer; + } + else if (cl.isArray()) + serializer = new ArraySerializer(); + else if (Throwable.class.isAssignableFrom(cl)) + serializer = new ThrowableSerializer(cl, getClassLoader()); + else if (InputStream.class.isAssignableFrom(cl)) + serializer = new InputStreamSerializer(); + else if (Iterator.class.isAssignableFrom(cl)) + serializer = IteratorSerializer.create(); + else if (Enumeration.class.isAssignableFrom(cl)) + serializer = EnumerationSerializer.create(); + else if (Calendar.class.isAssignableFrom(cl)) + serializer = CalendarSerializer.create(); + else if (Locale.class.isAssignableFrom(cl)) + serializer = LocaleSerializer.create(); + else if (Enum.class.isAssignableFrom(cl)) + serializer = new EnumSerializer(cl); + + if (serializer == null) + // 都不符合以上类似,则返回默认的serializer + serializer = getDefaultSerializer(cl); + + if (_cachedSerializerMap == null) + _cachedSerializerMap = new HashMap(8); + + synchronized (_cachedSerializerMap) { + // 缓存这个类型对应的serializer,下次直接从缓存获取 + _cachedSerializerMap.put(cl, serializer); + } + + return serializer; + } + + protected Serializer getDefaultSerializer(Class cl) { + if (_defaultSerializer != null) + return _defaultSerializer; + if (!Serializable.class.isAssignableFrom(cl) && ! _isAllowNonSerializable) { + throw new IllegalStateException("Serialized class " + cl.getName() + " must implement java.io.Serializable"); + } + + return new JavaSerializer(cl, _loader); + } +} +``` + +对于demo中的返回的数据对象DemoDTO,很显然就是会得到一个JavaSerializer,通过它的完成序列化。 + + + +### 3.5 JavaSerializer + +回顾上文3.3节中,serializer对象完成序列哈的入库也是writeObject()方法。来看`JavaSerializer#writeObject(Object, AbstractHessianOutput)`方法。这里面序列化分两种情况:一是要序列化的对象有writeReplce()方法的,直接调用writeReplce()方法完成序列化;而是常规的使用静态类FieldSerializer序列化。 + +```java +// JavaSerializer.java +public void writeObject(Object obj, AbstractHessianOutput out) throws IOException { + if (out.addRef(obj)) { + return; + } + + Class cl = obj.getClass(); + try { + // 调用序列化对象的writeReplace方法完成序列化 + if (_writeReplace != null) { + Object repl; + if (_writeReplaceFactory != null) + repl = _writeReplace.invoke(_writeReplaceFactory, obj); + else + repl = _writeReplace.invoke(obj); + + out.removeRef(obj); + out.writeObject(repl); + out.replaceRef(repl, obj); + return; + } + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + // log.log(Level.FINE, e.toString(), e); + throw new RuntimeException(e); + } + + // hessian2会写入对象开始标记;hessian会写map开始标记并返回-2 + int ref = out.writeObjectBegin(cl.getName()); + + if (ref < -1) { + // 这种情况看起来是兼容hessian序列化的,而不是hessian2序列化的 + // hessian序列化是把对象当做map处理,所以writeObject10()方法里会循环写入字段名称然后马上字段序列化,最后还会写一个map结束标志 + writeObject10(obj, out); + } + else { + if (ref == -1) { + // 写入对象包含字段长度,以及各个类型字段信息 + writeDefinition20(out); + // 类型信息编码处理 + out.writeObjectBegin(cl.getName()); + } + // 这里会开始会遍历序列化对象包含的各个字段 + writeInstance(obj, out); + } +} +``` + + + +#### 3.5.1 writeReplace方法 + +JavaSerializer 使用一个Method变量 `_writeReplace`保存writeReplace()方法,这个方法是从那里来的呢?在JavaSerializer构造方法中,会调用一个私有方法`introspectWriteReplace(Class, ClassLoader)`。它会从两个地方找writeReplace()方法:**一是序列化类相应的HessianSerializer类;二是序列化类本身**。但是要注意,HessianSerializer类的writeReplace方法签名 和 序列化类本身writeReplace方法签名 是有区别的。 + +```java +// JavaSerializer.java +private void introspectWriteReplace(Class cl, ClassLoader loader) { + try { + String className = cl.getName() + "HessianSerializer"; + // 加载 序列化类类名+HessianSerializer的类。例如demo中的DemoDTO类,则会 + // 尝试加载cn.dingyufan.blog.demo.dubbostackoverflowduetojkd8instantprovider.api.dto.DemoDTOHessianSerializer类 + Class serializerClass = Class.forName(className, false, loader); + // 实例化相应的HessianSerializer类型 + Object serializerObject = serializerClass.newInstance(); + // 反射获取WriteReplace方法 + Method writeReplace = getWriteReplace(serializerClass, cl); + + if (writeReplace != null) { + _writeReplaceFactory = serializerObject; + _writeReplace = writeReplace; + return; + } + } catch (ClassNotFoundException e) { + // 没有相应HessianSerializer类就会抛出ClassNotFoundException,这个异常不处理,后面会再次尝试从序列化类本身寻找 + } catch (Exception e) { + log.log(Level.FINER, e.toString(), e); + } + // 从序列化类本身找writeReplace方法 + _writeReplace = getWriteReplace(cl); +} + +// 从要序列化的类型寻找 方法名为writeReplace、入参为空 的方法 +protected static Method getWriteReplace(Class cl) { + for (; cl != null; cl = cl.getSuperclass()) { + Method []methods = cl.getDeclaredMethods(); + + for (int i = 0; i < methods.length; i++) { + Method method = methods[i]; + + if (method.getName().equals("writeReplace") && + method.getParameterTypes().length == 0) + return method; + } + } + + return null; +} + +// 从相应HessianSerializer类找到 方法名为writeReplace、 入参有且仅为要序列化类型 的方法 +protected Method getWriteReplace(Class cl, Class param) +{ + for (; cl != null; cl = cl.getSuperclass()) { + for (Method method : cl.getDeclaredMethods()) { + if (method.getName().equals("writeReplace") + && method.getParameterTypes().length == 1 + && param.equals(method.getParameterTypes()[0])) + return method; + } + } + + return null; +} +``` + +writeReplace方法提供了一种扩展序列化的方式,对与Dubbo暂不支持的类型,可以通过这个扩展点,返回一个自定义的类型的对象,替代原本需要序列化的对象,然后对自定义的对象进行序列化。 + +但是有个问题,**如果producer通过writeReplace方法自定义一个对象来序列化,consumer反序列化时,怎么把自定义的对象转回原本类型呢?**这里不展开讲,但是办法肯定是有的,答案就是**readResolve方法** 。: ) + + + +#### 3.5.2 FieldSerializer + +对于没有writeReplace方法的类型,就继续走hessian2设定的序列化逻辑。从`JavaSerializer#writeInstance(Object, AbstractHessianOutput)`继续。 + +```java +// JavaSerializer.java +public void writeInstance(Object obj, AbstractHessianOutput out) throws IOException { + for (int i = 0; i < _fields.length; i++) { + Field field = _fields[i]; + // _fieldSerializers是数组 FieldSerializer[] + // 是在JavaSerializer构造方法中,根据序列化类中各个字段类型,依次创建FieldSerializer(或子类)的实例存入 + _fieldSerializers[i].serialize(out, obj, field); + } +} + +// JavaSerializer构造方法中调用 +// 根据序列化类中各个字段类型,返回对应类型的FieldSerializer(或子类)实例 +private static FieldSerializer getFieldSerializer(Class type) +{ + if (int.class.equals(type) + || byte.class.equals(type) + || short.class.equals(type) + || int.class.equals(type)) { + return IntFieldSerializer.SER; + } + else if (long.class.equals(type)) { + return LongFieldSerializer.SER; + } + else if (double.class.equals(type) || + float.class.equals(type)) { + return DoubleFieldSerializer.SER; + } + else if (boolean.class.equals(type)) { + return BooleanFieldSerializer.SER; + } + else if (String.class.equals(type)) { + return StringFieldSerializer.SER; + } + else if (java.util.Date.class.equals(type) + || java.sql.Date.class.equals(type) + || java.sql.Timestamp.class.equals(type) + || java.sql.Time.class.equals(type)) { + return DateFieldSerializer.SER; + } + else + return FieldSerializer.SER; +} +``` + +在`JavaSerializer#writeObject(Object, AbstractHessianOutput)`方法中,写完类型信息、类型字段长度、各字段名称后,就会通过writeInstance方法依次序列化类型中的各字段。字段的序列化,就是由静态类FieldSerializer类完成。 + +比如DemoDTO中的String类型字段,就会有FieldSerializer的子类StringFieldSerializer,完成`String consumer`字段序列化。 + +```java +// JavaSerializer.java +static class StringFieldSerializer extends FieldSerializer { + static final FieldSerializer SER = new StringFieldSerializer(); + + void serialize(AbstractHessianOutput out, Object obj, Field field) throws IOException { + String value = null; + try { + value = (String) field.get(obj); + } catch (IllegalAccessException e) { + log.log(Level.FINE, e.toString(), e); + } + // 调用Hessian2Output类的writeString方法,值写入输出流 + out.writeString(value); + } +} +``` + +但是DemoDTO中的Instant类型字段,在`JavaSerializer#getFieldSerializer(Class)`方法中没有对应类型的,得到的是默认的FieldSerializer实例。 + +```java +static class FieldSerializer { + static final FieldSerializer SER = new FieldSerializer(); + + void serialize(AbstractHessianOutput out, Object obj, Field field) throws IOException { + Object value = null; + + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + log.log(Level.FINE, e.toString(), e); + } + + try { + // 又回到 Hessian2Output#writeObject(Object)方法 + // 再次获得序列化工厂类Hessian2SerializerFactory,获得一个Serializer对象,又通过Serializer对象序列化 + // 这里有递归的感觉了 + out.writeObject(value); + } catch (RuntimeException e) { + throw new RuntimeException(e.getMessage() + "\n Java field: " + field, e); + } catch (IOException e) { + throw new IOExceptionWrapper(e.getMessage() + "\n Java field: " + field, e); + } + } +} +``` + + + +综上所述,Hessian2序列化的核心的几个类是:Hessian2Output、SerializerFactory(Hessian2SerializerFactory) 、JavaSerializer和FieldSerializer。 + +整体思路是: + +- `Hessian2Output#writeObject(Object)`:对象 序列化的入口 +- `SerializerFactory#getSerializer(Class)`:根据对象类型,找到对应类型的Serializer完成对象序列化,无对应类型的交给JavaSerializer +- `JavaSerializer#getFieldSerializer(Class)`:完成对象类型信息的序列化,然后依次序列化各个字段,为各字段找到对应类型的FieldSerializer子类完成字段序列化,无对应类型的字段交给FieldSerializer。 +- `FieldSerializer#serialize(AbstractHessianOutput, Object, Field)`:FieldSerializer会把字段值再当做一个对象,再走一遍整个对象序列化过程。 + +这个设计想法是蛮好的,**简单对象直接有对应类序列化,没有对应序列化方法的把对象的序列化拆解成各个字段的序列化。在理想的情况下,所有对象都可以通过不断的拆解,形成简单的对象,然后有相应的Serializer或FieldSerializer完成序列化**。就好像像复杂问题拆解成数个简单问题,也有点像庖丁解牛的感觉。 + + + +### 3.6 序列化调用栈 + +了解dubbo在hessian2序列化方式时的逻辑之后,再来看本文开头的异常。上述大段文字内容繁多,很难串联起来,我们根据hessian2的序列化逻辑,整理整个序列化过程的调用栈,当然也可以直接打断点看 + +```java +ExchangeCodec#encode + ->ExchangeCodec#encodeResponseData + ->DubboCodec#encodeResponseData + ->Hessian2ObjectOutput#writeObject + // DemoDTO类型开始序列化 + ->Hessian2Output#writeObject + ->SerializerFactory#getSerializer + ->JavaSerializer#writeObject + ->JavaSerializer#writeInstance + ->FieldSerializer#serialize + // Instant类型开始序列化 + ->Hessian2Output#writeObject + ->SerializerFactory#getSerializer + ->JavaSerializer#writeObject + // Ser类型开始序列化(Instant的writeReplace方法产生的替代对象) + ->Hessian2Output#writeObject + ->SerializerFactory#getSerializer + ->JavaSerializer#writeObject + ->JavaSerializer#writeInstance + ->FieldSerializer#serialize + // Instant类型开始序列化(Ser类中的object字段) + ->Hessian2Output#writeObject + ->SerializerFactory#getSerializer + ->JavaSerializer#writeObject + // Ser(Instant的writeReplace方法产生的替代类) + ->Hessian2Output#writeObject + -> ...... +``` + +通过调用栈,是不是一眼就发现问题所在了?这个调用栈倒序来看,可以发现正好开头是异常栈的顺序。 + + + +## 4 结论 + +在Dubbo反序列化的过程中,产生的栈溢出的原因是: + +**Dubbo(v2.5.3)没有相应的Serializer或FieldSerializer能处理Instant数据类型,并且Instant正好有writeReplace方法,返回的替代类中的object字段又包含Instant本身。导致需要序列化的对象在Instant、Ser之间反复横跳,不断调用序列化方法逻辑,最终方法栈满,导致栈溢出错误。** + +结合网上信息,可以发现不只是Instant类,在JDK8新增的时间API,如LocalDateTime、Period等,都会和Instant有一样的问题,也是一样的原因。 + + + +## 5 解决方案 + +知道了问题的原因之后,就可以对症下药了。本人水平有限,暂时想到以下几种方案: + +### 5.1 使用Date类型 + +首先最简单的方式,就是不使用JDK8中引入的时间API,改为使用Date。 + +这种方式没有直接解决问题,而是有些逃避问题了。 + + + +### 5.1 writeReplace / readResolve 方法 + +修改Instant的writeReplace方法可能不是很方便,我们可以为DemoDTO添加writeReplace方法。总体思路的话就是:provider把Instant拆解成支持的数据类型,到了consumer再转化成Instant。 + +```java +public class DemoDTO implements Serializable { + + private static final long serialVersionUID = -311647434535770294L; + + private String consumer; + private Instant instant; + + + // 序列化时JavaSerializer会调用此方法,然后序列化替代类对象repl + private DemoDTOHandle writeReplace() { + System.out.println("call writeReplace"); + DemoDTOHandle repl = new DemoDTOHandle(); + repl.setConsumer(consumer); + if (instant != null) { + repl.setSeconds(instant.getEpochSecond()); + repl.setNanos(instant.getNano()); + } + return repl; + } + + // getter,setter略... +} +``` + +DemoDTOHandle中Instant拆成seconds、nanos字段存储,然后会代替DemoDTO进行序列化传输。代码如下。 + +```java +public class DemoDTOHandle implements HessianHandle, Serializable { + + private static final long serialVersionUID = -8532997896892606136L; + + private String consumer; + + private long seconds; + private int nanos; + + // 反序列化时,JavaDeserializer会调用此方法,重新组装实际的类 + private DemoDTO readResolve() { + System.out.println("call readResolve"); + DemoDTO dto = new DemoDTO(); + dto.setConsumer(consumer); + dto.setInstant(Instant.ofEpochSecond(seconds, nanos)); + return dto; + } + + // getter,setter略... +} +``` + +DemoDTOHandle为什么要实现HessianHandle接口呢?答案在`SerializerFactory#getObjectDeserializer(String, Class)`中,如果不是HessianHandle实现类的话,是得不到DemoDTOHandle相关的Deserializer,只有DemoDTO相关的Deserializer,那么就无法使用DemoDTOHandle中的readResolve方法转换回对象了。 + +![image-20220504103337575](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220504103337575.png) + + + +### 5.2 修改序列化方式 + +之前提到,使用的是dubbo协议、hessian2序列化方式。事实上dubbo协议同样可以使用其他多种序列化方式。下面列举的序列化方式,都可以支持JDK8时间API的序列化处理。 + +```xml + + + + + + + + + +``` + +当然如果升级了Dubbo版本的话,会支持更多的序列化方式。 + + + +### 5.3 升级Dubbo版本(√) + +当然,使用的Dubbo版本是2.5.3,实在是太老了。搜索maven仓库,看到2.5.3版本更新时间是2012年,十年前。 + +![image-20220503122841533](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220503122841533.png) + +**可以选择升级到2.6.x版本**。会发现2.6.x版本在序列化方面也做了一些优化。新版本不仅包含了新功能,扩展性也有所提升。但是需要注意,如果是升级2.6.6+版本,需要关注netty版本的变化。 + +#### 2.6.x 支持JDK8时间API + +在2.6.x版本中,在SerializerFactory 中增加了对JDK8时间API的处理,加入了Java8TimeSerializer以及一系列的HessianHandle。**意味着2.6.x版本Dubbo将不再有本文开头遇到的问题。** + +![image-20220503123444697](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220503123444697.png) + +#### 2.6.x 支持扩展SerializerFactory + +同时SerializerFactory 也提供了一定的扩展性,支持添加你想要的SerializerFactory。如果还有目标序列化方式无法处理的类型,可以自定义SerializerFactory、Serializer,只要将自定义SerializerFactory添加到当前序列化方式的SerializerFactory 中,就可以轻松扩展。**在2.5.x上是不支持这种扩展的**。 + +```java +// SerializerFactory.java 2.6.x +public class SerializerFactory extends AbstractSerializerFactory { + // 略... + + protected ArrayList _factories = new ArrayList(); + // 略... + + public void addFactory(AbstractSerializerFactory factory) { + _factories.add(factory); + } + + public Serializer getSerializer(Class cl) throws HessianProtocolException{ + Serializer serializer; + serializer = (Serializer) _staticSerializerMap.get(cl); + if (serializer != null) + return serializer; + + if (_cachedSerializerMap != null) { + synchronized (_cachedSerializerMap) { + serializer = (Serializer) _cachedSerializerMap.get(cl); + } + if (serializer != null) + return serializer; + } + + // 遍历扩展的SerializerFactory。尝试由扩展的SerializerFactory提供Serializer + // 2.5.3没有这个功能 + for (int i = 0; serializer == null && _factories != null && i < _factories.size(); i++) { + AbstractSerializerFactory factory; + factory = (AbstractSerializerFactory) _factories.get(i); + serializer = factory.getSerializer(cl); + } + + if (serializer != null) { + } + + else if (JavaSerializer.getWriteReplace(cl) != null) + serializer = new JavaSerializer(cl, _loader); + else if (HessianRemoteObject.class.isAssignableFrom(cl)) + serializer = new RemoteSerializer(); + // else if (BurlapRemoteObject.class.isAssignableFrom(cl)) + // serializer = new RemoteSerializer(); + else if (Map.class.isAssignableFrom(cl)) { + if (_mapSerializer == null) + _mapSerializer = new MapSerializer(); + serializer = _mapSerializer; + } + else if (Collection.class.isAssignableFrom(cl)) { + if (_collectionSerializer == null) { + _collectionSerializer = new CollectionSerializer(); + } + serializer = _collectionSerializer; + } + else if (cl.isArray()) + serializer = new ArraySerializer(); + else if (Throwable.class.isAssignableFrom(cl)) + serializer = new ThrowableSerializer(cl, getClassLoader()); + else if (InputStream.class.isAssignableFrom(cl)) + serializer = new InputStreamSerializer(); + else if (Iterator.class.isAssignableFrom(cl)) + serializer = IteratorSerializer.create(); + + else if (Enumeration.class.isAssignableFrom(cl)) + serializer = EnumerationSerializer.create(); + else if (Calendar.class.isAssignableFrom(cl)) + serializer = CalendarSerializer.create(); + else if (Locale.class.isAssignableFrom(cl)) + serializer = LocaleSerializer.create(); + else if (Enum.class.isAssignableFrom(cl)) + serializer = new EnumSerializer(cl); + if (serializer == null) + serializer = getDefaultSerializer(cl); + if (_cachedSerializerMap == null) + _cachedSerializerMap = new HashMap(8); + + synchronized (_cachedSerializerMap) { + _cachedSerializerMap.put(cl, serializer); + } + return serializer; + } +} +``` + + + +### 5.4 SPI扩展Serialization + +这个方法理论上是完全可行的,但是有些过于大动干戈了。总体思路是:借助Dubbo的SPI机制,对Serialization进行扩展,基于hessian2的SerializerFactory ,对Serializer、Deserializer进行扩展。 + + + +## 6 写在最后 + +最开始计划用一两天的时间写完这篇博客,但是过程中又不断的遇到问题、解决问题,最终花了整个五一假期才完成。通过这个问题,算是对Dubbo框架的序列化这块有了一些了解了。 + + + +--- + +> 作者: [dingyufan](https://github.com/dingyufan) +> URL: https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/ + diff --git "a/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" "b/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" new file mode 100644 index 00000000..ee9665ce --- /dev/null +++ "b/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" @@ -0,0 +1,131 @@ +GitHub Pages + Hugo搭建个人博客 - dingyufan's blog

GitHub Pages + Hugo搭建个人博客

0 前言

去年年底开始,就一直有写博客的想法,一方面来沉淀自己的技术,另一方面也希望能对他人有些小小的帮助。如今各种平台非常的多,但是不是广告铺天盖地,就是样式固定,不够个性化。最终决定借助Github Pages来搭建一个属于自己的个性化博客。

Github Pages 是由GitHub提供的一个免费构建网站的方式。通过创建名为github用户名.github.io的仓库,上传文件后,就可以通过 http://github用户名.github.io访问你的网站。

GIthub Pages默认使用Jekyll构建静态网站,由于Jekyll依赖于Ruby,并且个人对Ruby完全不熟悉,所以最终选择了基于Golang的静态网站生成器Hugo来生成静态网站,然后托管在Github上。

1 创建github仓库

创建一个 名为github用户名.github.io的仓库,github用户名填写自己的GIthub用户名。比如我,仓库名就是dingyufan.github.io

创建之后,是一个空仓库,先放着暂时不管。

2 安装Golang

Windows系统安装Golang非常简单,下载msi安装包,直接安装即可。默认会安装到 C:\Go 目录下,同时C:\Go\bin 目录也会被添加到PATH 环境变量中。可以通过go version验证安装的版本。目前最新版本应该是go1.18,我是之前安装的老版本。

3 安装hugo

创建文件夹C:\HugoC:\Hugo\binC:\Hugo\sites。其中bin目录用来存放hugo可执行程序,sites目录则用来保存站点。

从Github下载Hugo发布的安装包,注意要使用extended版本,我下载的就是 hugo_extended_0.96.0_Windows-64bit.zip

将下载的hugo解压,并把解压得到的内容放到 C:\Hugo\bin下。

为了方便使用hugo.exe,我们把C:\Hugo\bin添加到环境变量PATH中。

4 创建网站

准备完全后,就可以开始构建网站了。进入C:\Hugo\sites目录,使用hugo new site 网站名创建网站。

注意,为了方便关联Github仓库,建议网站名与Github仓库名一致,比如我站点名、Github仓库名都为 dingyufan.github.io。

5 修改主题

Hugo拥有非常丰富的主题,可以实现各种个性化需求。我这次选择的主题是 FixIt

安装主题的方式有很多

  • 一:可以直接下载主题,放置在站点的 themes文件夹下。需要注意的是,下载的主题要放在themes下和主题同名的文件夹内。比如FixIt,放置在C:\Hugo\sites\dingyufan.github.io\themes\FixIt中,文件夹不存在则自行创建;

  • 二:可以把主题克隆到 themes 目录。

    1
    +2
    +
    cd C:/Hugo/sites/dingyufan.github.io
    +git clone https://github.com/Lruihao/FixIt.git themes/FixIt
  • 三:初始化仓库,并将主题仓库作为你的网站目录的子模块

    1
    +2
    +3
    +
    cd C:/Hugo/sites/dingyufan.github.io
    +git init
    +git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt

注意:推荐使用第三种方式!推荐使用第三种方式!推荐使用第三种方式!

否则之后Github Pages在构建时会有异常!No url found for submodule path 'themes/FixIt' in .gitmodules

安装主题之后,如何选择使用该主题呢?修改站点下配置文件config.toml

修改其中的 theme 选项,同时可以根据FitIt主题说明,设置更多个性化配置。

我的config.toml文件基础配置如下:

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+
baseURL = "http://dingyufan.github.io/"
+# [en, zh-cn, fr, ...] 设置默认的语言
+defaultContentLanguage = "zh-cn"
+# 网站语言,仅在这里 CN 大写
+languageCode = "zh-CN"
+# 是否包括中日韩文字
+hasCJKLanguage = true
+# 网站标题
+title = "我的全新 Hugo 网站"
+# 文章发布位置
+publishDir = "docs"
+
+# 更改使用 Hugo 构建网站时使用的默认主题
+theme = "FixIt"
+
+[params]
+  # FixIt 主题版本
+  version = "0.2.X"
+
+[menu]
+  [[menu.main]]
+    identifier = "posts"
+    # 你可以在名称(允许 HTML 格式)之前添加其他信息,例如图标
+    pre = ""
+    # 你可以在名称(允许 HTML 格式)之后添加其他信息,例如图标
+    post = ""
+    name = "文章"
+    url = "/posts/"
+    # 当你将鼠标悬停在此菜单链接上时,将显示的标题
+    title = ""
+    weight = 1
+  [[menu.main]]
+    identifier = "categories"
+    pre = ""
+    post = ""
+    name = "分类"
+    url = "/categories/"
+    title = ""
+    weight = 2
+  [[menu.main]]
+    identifier = "tags"
+    pre = ""
+    post = ""
+    name = "标签"
+    url = "/tags/"
+    title = ""
+    weight = 3
+
+# Hugo 解析文档的配置
+[markup]
+  # 语法高亮设置 (https://gohugo.io/content-management/syntax-highlighting)
+  [markup.highlight]
+    # false 是必要的设置 (https://github.com/Lruihao/FixIt/issues/43)
+    noClasses = false

6 写文章

创建文章。hugo new posts/文件名.md, 会在站点的 content/post路径下创建一个md文件。这就是要写的博文。

注意,默认创建的md文件是草稿。草稿在构建网站时是会被忽略的。所以一定要在发布前,修改文件头中 draft为false

在里面写一行 hello github pages

可以通过hugo serve命令启动本地预览,通过localhost:1313即可访问预览。

看到预览效果

7 发布网站

Hugo默认会把构建后的网站放在 public 文件夹下,但是为了方用github统一管理 发布前、后的内容,我想要将构建后网站路径,修改为放在docs文件夹下。

可以通过-d docs指定构建后放在docs文件夹下。也可以在config.toml中添加一行配置publishDir = "docs",这样就不需要在构建时使用 -d ,直接执行 hugo就可以完成侯建并放入docs文件夹。

构建网站之后,需要将网站托管到Github上,即 上传到刚开始创建的空仓库里。

1
+2
+3
+4
+5
+6
+
git init
+git add -A
+git commit -m 'init'
+git branch -M main
+git remote add origin git@githubcom:dingyufan/dingyufan.github.io.git
+git push -u origin main

8 Github Pages配置

提交代码之后,需要修改Github Pages配置。指定Github Pages发布docs文件夹下的内容。

这样,仓库里的内容就是hugo生成的site的全部内容,docs文件夹下则是构建后的静态页面。这样可以对这个site完整的进行版本控制。

9 绑定域名

在完成以上步骤后,已经可以通过 http://dingyufan.github.io访问到网站了。

Github Pages还支持自定义域名。我希望通能过自己的域名 http://blog.dingyufan.cn 访问

配置后,要在域名注册商那里修改 域名解析规则。添加CNAME记录类型。

待解析生效之后,即可通过自定义域名访问。

0%
\ No newline at end of file diff --git "a/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.md" "b/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.md" new file mode 100644 index 00000000..90572676 --- /dev/null +++ "b/posts/githubpages-hugo\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.md" @@ -0,0 +1,246 @@ +# GitHub Pages + Hugo搭建个人博客 + + + + +## 0 前言 + +去年年底开始,就一直有写博客的想法,一方面来沉淀自己的技术,另一方面也希望能对他人有些小小的帮助。如今各种平台非常的多,但是不是广告铺天盖地,就是样式固定,不够个性化。最终决定借助Github Pages来搭建一个属于自己的个性化博客。 + +[Github Pages](https://pages.github.com/) 是由GitHub提供的一个免费构建网站的方式。通过创建名为`github用户名.github.io`的仓库,上传文件后,就可以通过 `http://github用户名.github.io`访问你的网站。 + +GIthub Pages默认使用[Jekyll](https://jekyllrb.com/)构建静态网站,由于Jekyll依赖于Ruby,并且个人对Ruby完全不熟悉,所以最终选择了基于Golang的静态网站生成器[Hugo](https://gohugo.io/)来生成静态网站,然后托管在Github上。 + + + +## 1 创建github仓库 + +创建一个 名为`github用户名.github.io`的仓库,`github用户名`填写自己的GIthub用户名。比如我,仓库名就是`dingyufan.github.io`。 + +![create-repository](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/create-repository.png) + +创建之后,是一个空仓库,先放着暂时不管。 + + + +## 2 安装Golang + +Windows系统安装Golang非常简单,[下载msi安装包](https://studygolang.com/dl),直接安装即可。默认会安装到 `C:\Go` 目录下,同时`C:\Go\bin` 目录也会被添加到PATH 环境变量中。可以通过`go version`验证安装的版本。目前最新版本应该是go1.18,我是之前安装的老版本。 + +![微信截图_20220410185748](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220410185748.png) + + + +## 3 安装hugo + +创建文件夹`C:\Hugo`、`C:\Hugo\bin`、`C:\Hugo\sites`。其中bin目录用来存放hugo可执行程序,sites目录则用来保存站点。 + +![微信截图_20220409125654](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409125654.png) + + + +从Github下载[Hugo发布的安装包](https://github.com/gohugoio/hugo/releases),注意要使用**extended版本**,我下载的就是 hugo_extended_0.96.0_Windows-64bit.zip + +![微信截图_20220409130146](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409130146.png) + + + +将下载的hugo解压,并把解压得到的内容放到 `C:\Hugo\bin`下。 + +![微信截图_20220409125710](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409125710.png) + +为了方便使用hugo.exe,我们把`C:\Hugo\bin`添加到环境变量PATH中。 + +![image-20220410191852967](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220410191852967.png) + + + + + +## 4 创建网站 + +准备完全后,就可以开始构建网站了。进入`C:\Hugo\sites`目录,使用`hugo new site 网站名`创建网站。 + +注意,为了方便关联Github仓库,建议网站名与Github仓库名一致,比如我站点名、Github仓库名都为 dingyufan.github.io。 + +![微信截图_20220409130406](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409130406.png) + + + +## 5 修改主题 + +Hugo拥有非常丰富的主题,可以实现各种个性化需求。我这次选择的主题是 [FixIt](https://github.com/Lruihao/FixIt)。 + +安装主题的方式有很多 + +- 一:可以直接下载主题,放置在站点的 themes文件夹下。需要注意的是,下载的主题要放在themes下和主题同名的文件夹内。比如FixIt,放置在`C:\Hugo\sites\dingyufan.github.io\themes\FixIt`中,文件夹不存在则自行创建; + +- 二:可以把主题克隆到 `themes` 目录。 + + ```bash + cd C:/Hugo/sites/dingyufan.github.io + git clone https://github.com/Lruihao/FixIt.git themes/FixIt + ``` + +- **三:初始化仓库,并将主题仓库作为你的网站目录的子模块**。 + + ```bash + cd C:/Hugo/sites/dingyufan.github.io + git init + git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt + ``` + + + +注意:**推荐使用第三种方式!推荐使用第三种方式!推荐使用第三种方式!** + +否则之后Github Pages在构建时会有异常!`No url found for submodule path 'themes/FixIt' in .gitmodules` + + + +安装主题之后,如何选择使用该主题呢?修改站点下配置文件config.toml + +![image-20220410195927557](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220410195927557.png) + +修改其中的 theme 选项,同时可以根据[FitIt主题说明](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/),设置更多个性化配置。 + +我的config.toml文件基础配置如下: + +```toml +baseURL = "http://dingyufan.github.io/" +# [en, zh-cn, fr, ...] 设置默认的语言 +defaultContentLanguage = "zh-cn" +# 网站语言,仅在这里 CN 大写 +languageCode = "zh-CN" +# 是否包括中日韩文字 +hasCJKLanguage = true +# 网站标题 +title = "我的全新 Hugo 网站" +# 文章发布位置 +publishDir = "docs" + +# 更改使用 Hugo 构建网站时使用的默认主题 +theme = "FixIt" + +[params] + # FixIt 主题版本 + version = "0.2.X" + +[menu] + [[menu.main]] + identifier = "posts" + # 你可以在名称(允许 HTML 格式)之前添加其他信息,例如图标 + pre = "" + # 你可以在名称(允许 HTML 格式)之后添加其他信息,例如图标 + post = "" + name = "文章" + url = "/posts/" + # 当你将鼠标悬停在此菜单链接上时,将显示的标题 + title = "" + weight = 1 + [[menu.main]] + identifier = "categories" + pre = "" + post = "" + name = "分类" + url = "/categories/" + title = "" + weight = 2 + [[menu.main]] + identifier = "tags" + pre = "" + post = "" + name = "标签" + url = "/tags/" + title = "" + weight = 3 + +# Hugo 解析文档的配置 +[markup] + # 语法高亮设置 (https://gohugo.io/content-management/syntax-highlighting) + [markup.highlight] + # false 是必要的设置 (https://github.com/Lruihao/FixIt/issues/43) + noClasses = false +``` + + + +## 6 写文章 + +创建文章。`hugo new posts/文件名.md`, 会在站点的 content/post路径下创建一个md文件。这就是要写的博文。 + +![微信截图_20220409191339](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409191339.png) + +注意,默认创建的md文件是草稿。草稿在构建网站时是会被忽略的。所以**一定要在发布前,修改文件头中 draft为false**。 + +在里面写一行 hello github pages + +![微信截图_20220409191751](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409191751.png) + + + +可以通过`hugo serve`命令启动本地预览,通过localhost:1313即可访问预览。 + +![微信截图_20220409191826](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409191826.png) + + + +看到预览效果 + +![微信截图_20220409191900](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409191900.png) + + + +## 7 发布网站 + +Hugo默认会把构建后的网站放在 public 文件夹下,但是为了方用github统一管理 发布前、后的内容,我想要将构建后网站路径,修改为放在docs文件夹下。 + +可以通过`-d docs`指定构建后放在docs文件夹下。**也可以在config.toml中添加一行配置`publishDir = "docs"`,这样就不需要在构建时使用 -d ,直接执行 `hugo`就可以完成侯建并放入docs文件夹。** + +![微信截图_20220409191950](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20220409191950.png) + + + +构建网站之后,需要将网站托管到Github上,即 上传到刚开始创建的空仓库里。 + +```bash +git init +git add -A +git commit -m 'init' +git branch -M main +git remote add origin git@githubcom:dingyufan/dingyufan.github.io.git +git push -u origin main +``` + + + +## 8 Github Pages配置 + +提交代码之后,需要修改Github Pages配置。指定Github Pages发布docs文件夹下的内容。 + +![image-20220410202202488](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220410202202488.png) + +这样,仓库里的内容就是hugo生成的site的全部内容,docs文件夹下则是构建后的静态页面。这样可以对这个site完整的进行版本控制。 + + + +## 9 绑定域名 + +在完成以上步骤后,已经可以通过 `http://dingyufan.github.io`访问到网站了。 + +Github Pages还支持自定义域名。我希望通能过自己的域名 `http://blog.dingyufan.cn` 访问 + +![image-20220410202804130](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220410202804130.png) + +配置后,要在域名注册商那里修改 域名解析规则。添加CNAME记录类型。 + +![image-20220410203010269](https://dingyufan-github-io.oss-cn-hangzhou.aliyuncs.com/image-20220410203010269.png) + +待解析生效之后,即可通过自定义域名访问。 + + +--- + +> 作者: [dingyufan](https://github.com/dingyufan) +> URL: https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ + diff --git a/posts/index.html b/posts/index.html new file mode 100644 index 00000000..43804312 --- /dev/null +++ b/posts/index.html @@ -0,0 +1,7 @@ +所有文章 - dingyufan's blog
0%
\ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml new file mode 100644 index 00000000..45336295 --- /dev/null +++ b/posts/index.xml @@ -0,0 +1 @@ +所有文章 - dingyufan's bloghttps://dingyufan.github.io/posts/所有文章 | dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/JDK8日期时间API导致Dubbo调用StackOverflow错误https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/GitHub Pages + Hugo搭建个人博客https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ \ No newline at end of file diff --git a/posts/page/1/index.html b/posts/page/1/index.html new file mode 100644 index 00000000..c0c989c8 --- /dev/null +++ b/posts/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/posts/ \ No newline at end of file diff --git "a/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.html" "b/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.html" new file mode 100644 index 00000000..195932b2 --- /dev/null +++ "b/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.html" @@ -0,0 +1,136 @@ +浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器 - dingyufan's blog

浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器

0 前言

树莓派(Raspberry Pi)是一种基于ARM架构的单板计算机,仅有银行卡大小,本意是提供一种低成本的计算机学习硬件。但前几年由于各种原因,价格一路高歌猛进,让人望而却步。最近逛淘宝发现,树莓派价格差不多回归了正常架构,于是果断下手买一个尝尝。

1694243814807的副本

1 安装 Ubuntu22.04

到手的是 树莓派4B 4G内存版,因为内存足够,准备安装带GUI界面的 Ubuntu Desktop 22.04 。

1.1 烧录操作系统

树莓派的存储是在一张SD卡上,所以需要通过 Raspberry Pi Imager 将操作系统烧录到SD卡中。

不需要提前下载镜像,直接可以在工具中选择系统,然后选中目标SD卡,点击烧录。

1
+2
+3
+
> Other general-purpose OS
+  > Ubuntu
+    > Ubuntu Desktop 22.04.3 LTS (64-bit)
截屏2023-09-09 15.48.11

烧录完成后,将SD卡插入树莓派,通电启动即可。系统安装后,即可通过 micro HMDI 连接到显示设备,并使用键盘、鼠标进行操作。首次启动会引导设置语言时区、用户名主机名等信息,不在此赘述。

1.2 Ubuntu软件源修改

树莓派切换镜像源的方式和一般Ubuntu设备并无不同,唯一需要注意的是 要使用 ubuntu-ports 镜像,这里面才有arm64的源。

我们使用清华镜像站,页面比较友好,可以直接在页面切换选项并产生配置内容。

备份原 sources.list,将清华源信息覆写到 sources.list,执行 sudo apt update 更新软件包信息。

1.3 固定网络IP

为了方便ssh登录,以及作为网络代理服务器,需要设置一个固定的IP地址。

编辑netplan配置文件 /etc/netplan/01-network-manager-all.yaml

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+
network:
+  version: 2
+  renderer: NetworkManager
+  # 无线网络配置
+  wifis:
+    # 无线网卡 wlan0
+    wlan0:
+      # 关闭dhcp
+      dhcp4: false
+      # 固定IP, /24 用来表示掩码信息
+      addresses: [192.168.31.250/24] 
+      optional: true
+      # 配置项 gateway4 在新版本中已弃用,通过routes配置网关
+      routes:
+        - to: default
+          via: 192.168.31.1
+      # DNS服务
+      nameservers:
+        addresses: [114.114.114.114]
+      # 配置WiFi信息
+      access-points:
+        "WiFi名称":
+          password: 'WiFi密码'

配置修改完成后,使用 sudo netplan try 测试网络配置,无异常即可使用 sudo netplan apply 应用配置。

1.4 安装 openssh-server

配置完成后,发现无法ssh访问,发现默认没有安装 openssh-server,通过apt安装。安装后即可远程ssh访问。

1
+
sudo apt install openssh-server

2 Clash

Clash 是一个基于规则的代理工具,主要的用途不多说了,如果你知道这个软件,就说明你大概率有这个需求。这个安装方式也不限于树莓派设备,只要是运行Linux系统的设备,都可以

这次之所以选择带GUI的Ubuntu,很大一部分原因就是想要通过图形化界面,比较方便的配置Clash。

2.1 Clash for Windows

Clash for Windows 是比较好用的一个 Clash GUI 客户端。

但是!它这个名字太具有迷惑性了!

它其实 支持 Windows系统!也支持 Linux!还支持 macOS !

从GitHub release页面下载,Clash.for.Windows-0.20.34-arm64-linux.tar.gz,从它提供的各种安装包也能看出支持多平台

截屏2023-09-09 18.58.02

下载后解压,运行 cfw,即可出现GUI界面,然后开始进行配置。

clashforwin-0
  1. 在左侧 General 菜单中,打开 Allow LAN开关,允许局域网连接。这样不止为本机提供网络代理,也能为局域网其他设备提供代理。
  2. 在左侧 Profiles 菜单中,将机场提供的订阅地址填入输入框,下载得到代理规则。config.yaml为默认配置,sub为订阅到的规则。
202309091916624

到这为止,Clash for Windows就已经准备完毕了,随时可以使用了。

2.2 Clash(无图形界面)

如是是无图形界面的情况,可以通过命令安装Clash。

下载Clash,注意版本,这里以树莓派使用的ARM版本为例

1
+2
+
mkdir ~/clash && cd ~/clash
+wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-armv7-v1.18.0.gz

解压后重命名

1
+2
+
gunzip clash-linux-armv7-v1.18.0.gz
+mv clash-linux-armv7-v1.18.0 clash

移动clash到指定位置,并赋予执行权限

1
+2
+
sudo cp clash /usr/local/bin
+sudo chmod +x /usr/local/bin/clash

初始化执行,自动生成config.yaml 和 Country.mmdb

1
+2
+3
+4
+5
+
sudo /usr/local/bin/clash -d /etc/clash/
+# 输出
+# INFO[0000] Can't find config, create a initial config file 
+# INFO[0000] Can't find MMDB, start download              
+# INFO[0003] inbound mixed://127.0.0.1:7890 create success. 

ctrl+c中断执行,修改config.yaml。这个就替换成你机场Clash订阅地址返回的yaml代理站点内容。

需要注意的是,在config.yaml中有几个配置,可能需要自己修改一下,因为机场提供的值可能不是你想要的

  1. 关于端口

    代理端口分为 http代理端口(port)socks代理端口(socks-port)混合代理端口 (mixed-port)。这里建议直接将混合代理端口 (mixed-port)设置为7890,其他两项设为0。这样不管是http、socks都是用同一个7890端口,更加方便

  2. 关于外部控制

    Clash是支持通过 RESTful 接口来对Clash进行功能配置的,目前市面上的GUI客户端配置管理也是基于这个方式。

    config.yaml中有一项配置 external-controller,修改为 0.0.0.0:9090 这样方便我从局域网其他设备对其进行控制。

    还有一项配置 secret 主要用于 RESTful 控制接口的身份认证密码。如果是局域网不对外的话,可暂时不配。

  3. clash.razord.top

    对于没有GUI的Clash,可以在其他设备上通过这个网站,获得一个控制的Dashboard。

    网站打开时会让填写 Host、端口、秘钥,填写后就可以借助这个网页,对无图形界面设备上安装的Clash进行配置。具体原理的话就是页面发起配置对应功能的http请求。

代理配置完后,创建systemd 配置文件 /etc/systemd/system/clash.service,让我们的Clash能够开机自启。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+
[Unit]
+Description=Clash 守护进程, Go 语言实现的基于规则的代理.
+After=network-online.target
+
+[Service]
+Type=simple
+Restart=always
+ExecStart=/usr/local/bin/clash -d /etc/clash
+
+[Install]
+WantedBy=multi-user.target

重新加载 systemd,设置开机启动 和 立即启动

1
+2
+3
+4
+5
+6
+7
+
sudo systemctl daemon-reload
+# 设置系统启动时启动clash
+sudo systemctl enable clash
+# 立即启动clash
+sudo systemctl start clash
+# 查看clash运行状态
+sudo systemctl status clash

到这为止,Clash就已经准备完毕了,随时可以使用了。

2.3 使用方式

如果你使用的设备安装了SSR、V2ray或者Clash,那你可以直接在软件界面上操作,通过界面提供的功能来开启系统代理。

这里主要是介绍一下没有安装代理软件的设备,如何借助局域网内其他已安装的代理设备(即代理服务器),实现网络代理功能。

2.3.1 Windows 10 设备

在 Window 10 设置 > 网络和Internet > 代理 中,打开【使用代理服务器】开关,地址填树莓派IP地址,端口为Clash使用的7890端口。

也可以设置对 本地地址(localhost)、常见的局域网网段(192.168.x.x) 不使用代理服务器。

VD7~4$~CB7W10@9NIW6HVFH

2.3.2 手机、iPad等无线设备

进入 无线局域网设置(WLAN设置),点击已连接的无线网络,将网络详情页面拉到底,有HTTP代理设置,填入树莓派IP地址,Clash的7890端口保存即可。

MTXX_PT20230910_111545372

2.3.3 Ubuntu/Linux

如果是带有GUI界面的操作系统,直接在界面上配置,以Ubuntu为例,在 Settings > Network > Network Proxy 中,将代理配置中填入树莓派IP地址和Clash的7890端口保存即可

截屏2023-09-10 11.47.19

如果是没有界面的Linux系统,可以通过设置环境变量的方式设置

1
+2
+3
+
export https_proxy=http://192.168.31.250:7890 
+export http_proxy=http://192.168.31.250:7890
+export all_proxy=socks5://192.168.31.250:7890

2.3.4 按需配置

总的来说,我个人并不喜欢为系统配置全局网络代理,我更喜欢给有需要的程序配置网络代理。举个几个例子:

容器运行时containerd

使用containerd时,有些镜像国内无法拉取,而且国内没有厂商同步这些镜像,这就可以为containerd配置代理服务器,来帮助拉取这些镜像。

1
+2
+3
+4
+5
+6
+7
+8
+9
+
sudo mkdir -p /etc/systemd/system/containerd.service.d/
+
+cat << EOF | sudo tee -a /etc/systemd/system/containerd.service.d/http-proxy.conf
+[Service]
+Environment="HTTP_PROXY=192.168.31.250:7890"
+Environment="HTTPS_PROXY=192.168.31.250:7890"
+EOF
+
+sudo systemctl restart containerd

proxychains4

这是一个很简单、好用的代理工工具。你只需要通过apt安装

1
+
sudo apt install proxychains4

安装后修改配置文件 /etc/proxychains.config,将文件最后的代理地址改为代理服务器的地址,比如 socks5 192.168.31.250 7890即可。

使用方法的话,只需要在原本命令前添加 proxychains4 即可

1
+2
+3
+
proxychains4 wget xxx
+proxychains4 curl xxx
+proxychains4 git clone xxx
0%
\ No newline at end of file diff --git "a/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.md" "b/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.md" new file mode 100644 index 00000000..3e409516 --- /dev/null +++ "b/posts/\346\265\205\345\260\235\346\240\221\350\216\223\346\264\2764bubuntu22.04\345\256\211\350\243\205clash\344\275\234\344\270\272\344\273\243\347\220\206\346\234\215\345\212\241\345\231\250/index.md" @@ -0,0 +1,316 @@ +# 浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器 + + + + + + +## 0 前言 + +树莓派([Raspberry Pi](https://www.raspberrypi.com/))是一种基于ARM架构的单板计算机,仅有银行卡大小,本意是提供一种低成本的计算机学习硬件。但前几年由于各种原因,价格一路高歌猛进,让人望而却步。最近逛淘宝发现,树莓派价格差不多回归了正常架构,于是果断下手买一个尝尝。 + +1694243814807的副本 + + + +## 1 安装 Ubuntu22.04 + +到手的是 树莓派4B 4G内存版,因为内存足够,准备安装带GUI界面的 Ubuntu Desktop 22.04 。 + + + +### 1.1 烧录操作系统 + +树莓派的存储是在一张SD卡上,所以需要通过 [Raspberry Pi Imager](https://www.raspberrypi.com/software/) 将操作系统烧录到SD卡中。 + +不需要提前下载镜像,直接可以在工具中选择系统,然后选中目标SD卡,点击烧录。 + +```txt +> Other general-purpose OS + > Ubuntu + > Ubuntu Desktop 22.04.3 LTS (64-bit) +``` + +
截屏2023-09-09 15.48.11
+ + + +烧录完成后,将SD卡插入树莓派,通电启动即可。系统安装后,即可通过 micro HMDI 连接到显示设备,并使用键盘、鼠标进行操作。首次启动会引导设置语言时区、用户名主机名等信息,不在此赘述。 + + + +### 1.2 Ubuntu软件源修改 + +树莓派切换镜像源的方式和一般Ubuntu设备并无不同,唯一需要注意的是 **要使用 ubuntu-ports 镜像**,这里面才有arm64的源。 + +我们使用[清华镜像站](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/),页面比较友好,可以直接在页面切换选项并产生配置内容。 + +
+ +备份原 `sources.list`,将清华源信息覆写到 `sources.list`,执行 `sudo apt update ` 更新软件包信息。 + + + +### 1.3 固定网络IP + +为了方便ssh登录,以及作为网络代理服务器,需要设置一个固定的IP地址。 + +编辑netplan配置文件 `/etc/netplan/01-network-manager-all.yaml`。 + +```yaml +network: + version: 2 + renderer: NetworkManager + # 无线网络配置 + wifis: + # 无线网卡 wlan0 + wlan0: + # 关闭dhcp + dhcp4: false + # 固定IP, /24 用来表示掩码信息 + addresses: [192.168.31.250/24] + optional: true + # 配置项 gateway4 在新版本中已弃用,通过routes配置网关 + routes: + - to: default + via: 192.168.31.1 + # DNS服务 + nameservers: + addresses: [114.114.114.114] + # 配置WiFi信息 + access-points: + "WiFi名称": + password: 'WiFi密码' +``` + +配置修改完成后,使用 `sudo netplan try` 测试网络配置,无异常即可使用 `sudo netplan apply` 应用配置。 + + + +### 1.4 安装 openssh-server + +配置完成后,发现无法ssh访问,发现默认没有安装 openssh-server,通过apt安装。安装后即可远程ssh访问。 + +```shell +sudo apt install openssh-server +``` + + + +## 2 Clash + +[Clash](https://github.com/Dreamacro/clash) 是一个基于规则的代理工具,主要的用途不多说了,如果你知道这个软件,就说明你大概率有这个需求。这个安装方式也不限于树莓派设备,只要是运行Linux系统的设备,都可以 + + + +这次之所以选择带GUI的Ubuntu,很大一部分原因就是想要通过图形化界面,比较方便的配置Clash。 + + + +### 2.1 Clash for Windows + +[Clash for Windows](https://github.com/Fndroid/clash_for_windows_pkg/releases) 是比较好用的一个 Clash GUI 客户端。 + +***但是!它这个名字太具有迷惑性了!*** + +***它其实 支持 Windows系统!也支持 Linux!还支持 macOS !*** + +从GitHub release页面下载,`Clash.for.Windows-0.20.34-arm64-linux.tar.gz`,从它提供的各种安装包也能看出支持多平台 + +
截屏2023-09-09 18.58.02
+ +下载后解压,运行 `cfw`,即可出现GUI界面,然后开始进行配置。 + +
clashforwin-0
+ +1. 在左侧 **General 菜单**中,**打开 Allow LAN开关,允许局域网连接**。这样不止为本机提供网络代理,也能为局域网其他设备提供代理。 +2. 在左侧 **Profiles 菜单**中,**将机场提供的订阅地址填入输入框,下载得到代理规则**。config.yaml为默认配置,sub为订阅到的规则。 + +
202309091916624
+ +到这为止,Clash for Windows就已经准备完毕了,随时可以使用了。 + + + +### 2.2 Clash(无图形界面) + +如是是无图形界面的情况,可以通过命令安装Clash。 + +下载Clash,注意版本,这里以树莓派使用的ARM版本为例 + +```shell +mkdir ~/clash && cd ~/clash +wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-armv7-v1.18.0.gz +``` + +解压后重命名 + +```shell +gunzip clash-linux-armv7-v1.18.0.gz +mv clash-linux-armv7-v1.18.0 clash +``` + +移动clash到指定位置,并赋予执行权限 + +```shell +sudo cp clash /usr/local/bin +sudo chmod +x /usr/local/bin/clash +``` + +初始化执行,自动生成config.yaml 和 Country.mmdb + +```shell +sudo /usr/local/bin/clash -d /etc/clash/ +# 输出 +# INFO[0000] Can't find config, create a initial config file +# INFO[0000] Can't find MMDB, start download +# INFO[0003] inbound mixed://127.0.0.1:7890 create success. +``` + +ctrl+c中断执行,**修改config.yaml**。这个就替换成你机场Clash订阅地址返回的yaml代理站点内容。 + +**需要注意的是,在config.yaml中有几个配置,可能需要自己修改一下,因为机场提供的值可能不是你想要的** + +1. **关于端口** + + 代理端口分为 `http代理端口(port)`、`socks代理端口(socks-port)` 和 `混合代理端口 (mixed-port)`。这里建议直接将`混合代理端口 (mixed-port)`设置为7890,其他两项设为0。这样不管是http、socks都是用同一个7890端口,更加方便 + +2. **关于外部控制** + + Clash是支持通过 RESTful 接口来对Clash进行功能配置的,目前市面上的GUI客户端配置管理也是基于这个方式。 + + config.yaml中有一项配置 `external-controller`,修改为 `0.0.0.0:9090` 这样方便我从局域网其他设备对其进行控制。 + + 还有一项配置 `secret` 主要用于 RESTful 控制接口的身份认证密码。如果是局域网不对外的话,可暂时不配。 + +3. **clash.razord.top** + + 对于没有GUI的Clash,可以在其他设备上通过这个网站,获得一个控制的Dashboard。 + + 网站打开时会让填写 Host、端口、秘钥,填写后就可以借助这个网页,对无图形界面设备上安装的Clash进行配置。具体原理的话就是页面发起配置对应功能的http请求。 + + + +代理配置完后,创建systemd 配置文件 `/etc/systemd/system/clash.service`,让我们的Clash能够开机自启。 + +```ini +[Unit] +Description=Clash 守护进程, Go 语言实现的基于规则的代理. +After=network-online.target + +[Service] +Type=simple +Restart=always +ExecStart=/usr/local/bin/clash -d /etc/clash + +[Install] +WantedBy=multi-user.target +``` + +重新加载 systemd,设置开机启动 和 立即启动 + +```shell +sudo systemctl daemon-reload +# 设置系统启动时启动clash +sudo systemctl enable clash +# 立即启动clash +sudo systemctl start clash +# 查看clash运行状态 +sudo systemctl status clash +``` + +到这为止,Clash就已经准备完毕了,随时可以使用了。 + + + +### 2.3 使用方式 + +> 如果你使用的设备安装了SSR、V2ray或者Clash,那你可以直接在软件界面上操作,通过界面提供的功能来开启系统代理。 + +这里主要是介绍一下没有安装代理软件的设备,如何借助局域网内其他已安装的代理设备(即代理服务器),实现网络代理功能。 + + + +#### 2.3.1 Windows 10 设备 + +在 Window 10 设置 > 网络和Internet > 代理 中,打开【使用代理服务器】开关,地址填树莓派IP地址,端口为Clash使用的7890端口。 + +也可以设置对 本地地址(localhost)、常见的局域网网段(192.168.x.x) 不使用代理服务器。 + +
VD7~4$~CB7W10@9NIW6HVFH
+ + + +#### 2.3.2 手机、iPad等无线设备 + +进入 无线局域网设置(WLAN设置),点击已连接的无线网络,将网络详情页面拉到底,有HTTP代理设置,填入树莓派IP地址,Clash的7890端口保存即可。 + +
MTXX_PT20230910_111545372
+ + + +#### 2.3.3 Ubuntu/Linux + +如果是带有GUI界面的操作系统,直接在界面上配置,以Ubuntu为例,在 Settings > Network > Network Proxy 中,将代理配置中填入树莓派IP地址和Clash的7890端口保存即可 + +
截屏2023-09-10 11.47.19
+ +如果是没有界面的Linux系统,可以通过设置环境变量的方式设置 + +```shell +export https_proxy=http://192.168.31.250:7890 +export http_proxy=http://192.168.31.250:7890 +export all_proxy=socks5://192.168.31.250:7890 +``` + + + +#### 2.3.4 按需配置 + +总的来说,我个人并不喜欢为系统配置全局网络代理,我更喜欢**给有需要的程序配置网络代理**。举个几个例子: + + + +**容器运行时containerd** + +使用containerd时,有些镜像国内无法拉取,而且国内没有厂商同步这些镜像,这就可以为containerd配置代理服务器,来帮助拉取这些镜像。 + +```shell +sudo mkdir -p /etc/systemd/system/containerd.service.d/ + +cat << EOF | sudo tee -a /etc/systemd/system/containerd.service.d/http-proxy.conf +[Service] +Environment="HTTP_PROXY=192.168.31.250:7890" +Environment="HTTPS_PROXY=192.168.31.250:7890" +EOF + +sudo systemctl restart containerd +``` + + + +**proxychains4** + +这是一个很简单、好用的代理工工具。你只需要通过apt安装 + +```shell +sudo apt install proxychains4 +``` + +安装后修改配置文件 `/etc/proxychains.config`,将文件最后的代理地址改为代理服务器的地址,比如 `socks5 192.168.31.250 7890`即可。 + +使用方法的话,只需要在原本命令前添加 proxychains4 即可 + +```shell +proxychains4 wget xxx +proxychains4 curl xxx +proxychains4 git clone xxx +``` + + + +--- + +> 作者: [dingyufan](https://github.com/dingyufan) +> URL: https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/ + diff --git a/robots.txt b/robots.txt new file mode 100644 index 00000000..ad6dc5aa --- /dev/null +++ b/robots.txt @@ -0,0 +1,68 @@ +User-agent: * + +Disallow: /images/ +Disallow: /js/ +Disallow: /css/ + +Disallow: /*offline/ +Disallow: /*404.html$ +Disallow: /*.md$ + +User-agent: MJ12bot +Disallow: / + +User-agent: AhrefsBot +Disallow: / + +User-agent: BLEXBot +Disallow: / + +# Block SISTRIX +User-agent: SISTRIX Crawler +Disallow: / +User-agent: sistrix +Disallow: / +User-agent: 007ac9 +Disallow: / +User-agent: 007ac9 Crawler +Disallow: / + +# Block Uptime robot +User-agent: UptimeRobot/2.0 +Disallow: / + +# Block Ezooms Robot +User-agent: Ezooms Robot +Disallow: / + +# Block Perl LWP +User-agent: Perl LWP +Disallow: / + +# Block netEstate NE Crawler (+http://www.website-datenbank.de/) +User-agent: netEstate NE Crawler (+http://www.website-datenbank.de/) +Disallow: / + +# Block WiseGuys Robot +User-agent: WiseGuys Robot +Disallow: / + +# Block Turnitin Robot +User-agent: Turnitin Robot +Disallow: / + +# Block Heritrix +User-agent: Heritrix +Disallow: / + +# Block pricepi +User-agent: pimonster +Disallow: / + +User-agent: SurdotlyBot +Disallow: / + +User-agent: ZoominfoBot +Disallow: / + +Sitemap: https://dingyufan.github.io/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..a87d4a50 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://dingyufan.github.io/categories/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/tags/clash/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/posts/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/tags/raspberry-pi/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/tags/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/categories/tech/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/tags/ubuntu/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/categories/coding/2023-07-28T16:32:25+08:00weekly0.5https://dingyufan.github.io/tags/dubbo/2023-07-28T16:32:25+08:00weekly0.5https://dingyufan.github.io/tags/java/2023-07-28T16:32:25+08:00weekly0.5https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/2023-07-28T16:32:25+08:00weekly0.5https://dingyufan.github.io/tags/github-pages/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-15T01:08:37+00:00weekly1https://dingyufan.github.io/tags/hugo/2023-09-15T01:08:37+00:00weekly1 \ No newline at end of file diff --git a/svg/loading.min.svg b/svg/loading.min.svg new file mode 100644 index 00000000..efb11940 --- /dev/null +++ b/svg/loading.min.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tags/clash/index.html b/tags/clash/index.html new file mode 100644 index 00000000..d77a1527 --- /dev/null +++ b/tags/clash/index.html @@ -0,0 +1,5 @@ +Clash - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/clash/index.xml b/tags/clash/index.xml new file mode 100644 index 00000000..975c4379 --- /dev/null +++ b/tags/clash/index.xml @@ -0,0 +1 @@ +Clash - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/clash/Clash - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/ \ No newline at end of file diff --git a/tags/clash/page/1/index.html b/tags/clash/page/1/index.html new file mode 100644 index 00000000..d04c4775 --- /dev/null +++ b/tags/clash/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/clash/ \ No newline at end of file diff --git a/tags/dubbo/index.html b/tags/dubbo/index.html new file mode 100644 index 00000000..045cec72 --- /dev/null +++ b/tags/dubbo/index.html @@ -0,0 +1,5 @@ +Dubbo - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/dubbo/index.xml b/tags/dubbo/index.xml new file mode 100644 index 00000000..45fc6fd6 --- /dev/null +++ b/tags/dubbo/index.xml @@ -0,0 +1 @@ +Dubbo - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/dubbo/Dubbo - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 30 Apr 2022 11:34:02 +0800JDK8日期时间API导致Dubbo调用StackOverflow错误https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/ \ No newline at end of file diff --git a/tags/dubbo/page/1/index.html b/tags/dubbo/page/1/index.html new file mode 100644 index 00000000..3ae0ef74 --- /dev/null +++ b/tags/dubbo/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/dubbo/ \ No newline at end of file diff --git a/tags/github-pages/index.html b/tags/github-pages/index.html new file mode 100644 index 00000000..f48b4ae4 --- /dev/null +++ b/tags/github-pages/index.html @@ -0,0 +1,5 @@ +Github Pages - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/github-pages/index.xml b/tags/github-pages/index.xml new file mode 100644 index 00000000..645c3669 --- /dev/null +++ b/tags/github-pages/index.xml @@ -0,0 +1 @@ +Github Pages - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/github-pages/Github Pages - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sun, 10 Apr 2022 11:34:02 +0800GitHub Pages + Hugo搭建个人博客https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ \ No newline at end of file diff --git a/tags/github-pages/page/1/index.html b/tags/github-pages/page/1/index.html new file mode 100644 index 00000000..07b8d561 --- /dev/null +++ b/tags/github-pages/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/github-pages/ \ No newline at end of file diff --git a/tags/hugo/index.html b/tags/hugo/index.html new file mode 100644 index 00000000..fd229e8e --- /dev/null +++ b/tags/hugo/index.html @@ -0,0 +1,5 @@ +Hugo - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/hugo/index.xml b/tags/hugo/index.xml new file mode 100644 index 00000000..3055117c --- /dev/null +++ b/tags/hugo/index.xml @@ -0,0 +1 @@ +Hugo - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/hugo/Hugo - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sun, 10 Apr 2022 11:34:02 +0800GitHub Pages + Hugo搭建个人博客https://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/githubpages-hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/ \ No newline at end of file diff --git a/tags/hugo/page/1/index.html b/tags/hugo/page/1/index.html new file mode 100644 index 00000000..3796581d --- /dev/null +++ b/tags/hugo/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/hugo/ \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 00000000..c6587ca2 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,4 @@ +所有标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 00000000..40a10769 --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/Tags - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000Clashhttps://dingyufan.github.io/tags/clash/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/tags/clash/Raspberry Pihttps://dingyufan.github.io/tags/raspberry-pi/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/tags/raspberry-pi/Ubuntuhttps://dingyufan.github.io/tags/ubuntu/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/tags/ubuntu/Dubbohttps://dingyufan.github.io/tags/dubbo/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/tags/dubbo/Javahttps://dingyufan.github.io/tags/java/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/tags/java/Github Pageshttps://dingyufan.github.io/tags/github-pages/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/tags/github-pages/Hugohttps://dingyufan.github.io/tags/hugo/Sun, 10 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/tags/hugo/ \ No newline at end of file diff --git a/tags/java/index.html b/tags/java/index.html new file mode 100644 index 00000000..6a8d475a --- /dev/null +++ b/tags/java/index.html @@ -0,0 +1,5 @@ +Java - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/java/index.xml b/tags/java/index.xml new file mode 100644 index 00000000..fdd0daa0 --- /dev/null +++ b/tags/java/index.xml @@ -0,0 +1 @@ +Java - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/java/Java - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 30 Apr 2022 11:34:02 +0800JDK8日期时间API导致Dubbo调用StackOverflow错误https://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/Sat, 30 Apr 2022 11:34:02 +0800dingyufanhttps://dingyufan.github.io/posts/dubbo-stack-overflow-due-to-jdk8-instant/ \ No newline at end of file diff --git a/tags/java/page/1/index.html b/tags/java/page/1/index.html new file mode 100644 index 00000000..5bf6c41f --- /dev/null +++ b/tags/java/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/java/ \ No newline at end of file diff --git a/tags/raspberry-pi/index.html b/tags/raspberry-pi/index.html new file mode 100644 index 00000000..2c621766 --- /dev/null +++ b/tags/raspberry-pi/index.html @@ -0,0 +1,5 @@ +Raspberry Pi - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/raspberry-pi/index.xml b/tags/raspberry-pi/index.xml new file mode 100644 index 00000000..c5d08df3 --- /dev/null +++ b/tags/raspberry-pi/index.xml @@ -0,0 +1 @@ +Raspberry Pi - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/raspberry-pi/Raspberry Pi - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/ \ No newline at end of file diff --git a/tags/raspberry-pi/page/1/index.html b/tags/raspberry-pi/page/1/index.html new file mode 100644 index 00000000..08297ace --- /dev/null +++ b/tags/raspberry-pi/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/raspberry-pi/ \ No newline at end of file diff --git a/tags/ubuntu/index.html b/tags/ubuntu/index.html new file mode 100644 index 00000000..306da797 --- /dev/null +++ b/tags/ubuntu/index.html @@ -0,0 +1,5 @@ +Ubuntu - 标签 - dingyufan's blog
0%
\ No newline at end of file diff --git a/tags/ubuntu/index.xml b/tags/ubuntu/index.xml new file mode 100644 index 00000000..3c6e5dda --- /dev/null +++ b/tags/ubuntu/index.xml @@ -0,0 +1 @@ +Ubuntu - 标签 - dingyufan's bloghttps://dingyufan.github.io/tags/ubuntu/Ubuntu - 标签 - dingyufan's blogHugo -- gohugo.iozh-CNdingyufan@outlook.com (dingyufan)dingyufan@outlook.com (dingyufan)Sat, 09 Sep 2023 00:00:00 +0000浅尝树莓派4B(Ubuntu22.04)安装Clash作为代理服务器https://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/Sat, 09 Sep 2023 00:00:00 +0000dingyufanhttps://dingyufan.github.io/posts/%E6%B5%85%E5%B0%9D%E6%A0%91%E8%8E%93%E6%B4%BE4bubuntu22.04%E5%AE%89%E8%A3%85clash%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8/ \ No newline at end of file diff --git a/tags/ubuntu/page/1/index.html b/tags/ubuntu/page/1/index.html new file mode 100644 index 00000000..6a56c786 --- /dev/null +++ b/tags/ubuntu/page/1/index.html @@ -0,0 +1 @@ +https://dingyufan.github.io/tags/ubuntu/ \ No newline at end of file